diff --git a/.mailmap b/.mailmap index 8ff87ed24d..49c266bf72 100644 --- a/.mailmap +++ b/.mailmap @@ -65,6 +65,7 @@ Sou Bunnbu (宋文武) Sou Bunnbu (宋文武) Stefan Reichör Taylan Ulrich Bayırlı/Kammer +Theodoros Foradis Thomas Danckaert Tobias Geerinckx-Rice Tomáš Čech diff --git a/configure.ac b/configure.ac index 5120df53fd..aa70f140d3 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ AC_INIT([GNU Guix], [https://www.gnu.org/software/guix/]) AC_CONFIG_AUX_DIR([build-aux]) -AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects \ +AM_INIT_AUTOMAKE([1.14 gnu silent-rules subdir-objects \ color-tests parallel-tests -Woverride -Wno-portability]) # Enable silent rules by default. diff --git a/doc/guix.texi b/doc/guix.texi index c57c0bab63..7b5b711793 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2532,8 +2532,10 @@ Produce verbose output, writing build logs to the standard error output. @item --url=@var{url} Download Guix from the Git repository at @var{url}. +@vindex GUIX_PULL_URL By default, the source is taken from its canonical Git repository at -@code{gnu.org}, for the stable branch of Guix. +@code{gnu.org}, for the stable branch of Guix. To use a different source, +set the @code{GUIX_PULL_URL} environment variable. @item --commit=@var{commit} Deploy @var{commit}, a valid Git commit ID represented as a hexadecimal @@ -3479,6 +3481,14 @@ build file @file{build.xml} with tasks to build the specified jar archive. In this case the parameter @code{#:source-dir} can be used to specify the source sub-directory, defaulting to ``src''. +The @code{#:main-class} parameter can be used with the minimal ant +buildfile to specify the main class of the resulting jar. This makes the +jar file executable. The @code{#:test-include} parameter can be used to +specify the list of junit tests to run. It defaults to +@code{(list "**/*Test.java")}. The @code{#:test-exclude} can be used to +disable some tests. It defaults to @code{(list "**/Abstract*.java")}, +because abstract classes cannot be run as tests. + The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase. By default the ``jar'' task will be run. @@ -12112,6 +12122,32 @@ Additional command line options to pass to @code{memcached}. @end table @end deftp +@defvr {Scheme Variable} mongodb-service-type +This is the service type for @uref{https://www.mongodb.com/, MongoDB}. +The value for the service type is a @code{mongodb-configuration} object. +@end defvr + +@example +(service mongodb-service-type) +@end example + +@deftp {Data Type} mongodb-configuration +Data type representing the configuration of mongodb. + +@table @asis +@item @code{mongodb} (default: @code{mongodb}) +The MongoDB package to use. + +@item @code{config-file} (default: @code{%default-mongodb-configuration-file}) +The configuration file for MongoDB. + +@item @code{data-directory} (default: @code{"/var/lib/mongodb"}) +This value is used to create the directory, so that it exists and is +owned by the mongodb user. It should match the data-directory which +MongoDB is configured to use through the configuration file. +@end table +@end deftp + @defvr {Scheme Variable} redis-service-type This is the service type for the @uref{https://redis.io/, Redis} key/value store, whose value is a @code{redis-configuration} object. @@ -17000,6 +17036,71 @@ Extra options will be passed to @code{git daemon}, please run @end table @end deftp +@subsubheading Cgit Service + +@cindex Cgit service +@cindex Git, web interface +@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git +repositories written in C. + +The following example will configure the service with default values. +By default, Cgit can be accessed on port 80 (@code{http://localhost:80}). + +@example +(service nginx-service-type) +(service fcgiwrap-service-type) +(service cgit-service-type) +@end example + +@deftp {Data Type} cgit-configuration +Data type representing the configuration of Cgit. +This type has the following parameters: + +@table @asis +@item @code{config-file} (default: @code{(cgit-configuration-file)}) +The configuration file to use for Cgit. This can be set to a +@dfn{cgit-configuration-file} record value, or any gexp +(@pxref{G-Expressions}). + +For example, to instead use a local file, the @code{local-file} function +can be used: + +@example +(service cgit-service-type + (cgit-configuration + (config-file (local-file "./my-cgitrc.conf")))) +@end example + +@item @code{package} (default: @code{cgit}) +The Cgit package to use. + +@end table +@end deftp + +@deftp {Data Type} cgit-configuration-file +Data type representing the configuration options for Cgit. +This type has the following parameters: + +@table @asis +@item @code{css} (default: @code{"/share/cgit/cgit.css"}) +URL which specifies the css document to include in all Cgit pages. + +@item @code{logo} (default: @code{"/share/cgit/cgit.png"}) +URL which specifies the source of an image which will be used as a logo +on all Cgit pages. + +@item @code{virtual-root} (default: @code{"/"}) +URL which, if specified, will be used as root for all Cgit links. + +@item @code{repository-directory} (default: @code{"/srv/git"}) +Name of the directory to scan for repositories. + +@item @code{robots} (default: @code{(list "noindex" "nofollow")}) +Text used as content for the ``robots'' meta-tag. + +@end table +@end deftp + @node Setuid Programs @subsection Setuid Programs @@ -19147,6 +19248,18 @@ Translation Project} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale. +To allow @command{xgettext} to extract them as translatable strings, +synopses and descriptions @emph{must be literal strings}. This means +that you cannot use @code{string-append} or @code{format} to construct +these strings: + +@lisp +(package + ;; @dots{} + (synopsis "This is translatable") + (description (string-append "This is " "*not*" " translatable."))) +@end lisp + Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators. In order to help them, it is possible diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 9c58370ec3..6c0d603ddf 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -353,24 +353,13 @@ they already exist." ;; Place where setuid programs are stored. "/run/setuid-programs") -(define (link-or-copy source target) - "Attempt to make TARGET a hard link to SOURCE; if it fails, fall back to -copy SOURCE to TARGET." - (catch 'system-error - (lambda () - (link source target)) - (lambda args - ;; Perhaps SOURCE and TARGET live in a different file system, so copy - ;; SOURCE. - (copy-file source target)))) - (define (activate-setuid-programs programs) "Turn PROGRAMS, a list of file names, into setuid programs stored under %SETUID-DIRECTORY." (define (make-setuid-program prog) (let ((target (string-append %setuid-directory "/" (basename prog)))) - (link-or-copy prog target) + (copy-file prog target) (chown target 0 0) (chmod target #o6555))) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 32885f1d2e..140bcb414b 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -415,12 +415,12 @@ was READ is = to the given value." (partition-predicate read-partition-label string=?)) (define partition-uuid-predicate - (partition-predicate read-partition-uuid bytevector=?)) + (partition-predicate read-partition-uuid uuid=?)) (define luks-partition-uuid-predicate (partition-predicate (partition-field-reader read-luks-header luks-header-uuid) - bytevector=?)) + uuid=?)) (define (find-partition predicate) "Return the first partition found that matches PREDICATE, or #f if none diff --git a/gnu/local.mk b/gnu/local.mk index 9e37e9bdd9..301058a703 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -326,6 +326,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/plotutils.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/profiling.scm \ %D%/packages/pth.scm \ %D%/packages/pulseaudio.scm \ %D%/packages/pumpio.scm \ @@ -501,6 +502,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/networking.scm \ %D%/tests/rsync.scm \ %D%/tests/ssh.scm \ + %D%/tests/version-control.scm \ %D%/tests/virtualization.scm \ %D%/tests/web.scm @@ -541,7 +543,6 @@ dist_patch_DATA = \ %D%/packages/patches/binutils-ld-new-dtags.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ - %D%/packages/patches/bluez-CVE-2017-1000250.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ @@ -558,6 +559,7 @@ dist_patch_DATA = \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/clang-libc-search-path.patch \ %D%/packages/patches/clang-3.8-libc-search-path.patch \ + %D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/cmake-fix-tests.patch \ @@ -574,7 +576,7 @@ dist_patch_DATA = \ %D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crossmap-allow-system-pysam.patch \ %D%/packages/patches/clucene-contribs-lib.patch \ - %D%/packages/patches/curl-bounds-check.patch \ + %D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-2017-12836.patch \ %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \ @@ -685,6 +687,7 @@ dist_patch_DATA = \ %D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-14042.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-14165.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-14649.patch \ %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/groff-source-date-epoch.patch \ @@ -789,7 +792,6 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ - %D%/packages/patches/libmwaw-CVE-2017-9433.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ @@ -808,8 +810,16 @@ dist_patch_DATA = \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunistring-gnulib-multi-core.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ + %D%/packages/patches/libvisio-fix-tests.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libxcb-python-3.5-compat.patch \ + %D%/packages/patches/libxfont-CVE-2017-13720.patch \ + %D%/packages/patches/libxfont-CVE-2017-13722.patch \ + %D%/packages/patches/libxml2-CVE-2017-0663.patch \ + %D%/packages/patches/libxml2-CVE-2017-7375.patch \ + %D%/packages/patches/libxml2-CVE-2017-7376.patch \ + %D%/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch \ + %D%/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \ @@ -850,6 +860,7 @@ dist_patch_DATA = \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ + %D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \ %D%/packages/patches/mozjs17-aarch64-support.patch \ %D%/packages/patches/mozjs24-aarch64-support.patch \ %D%/packages/patches/mozjs38-pkg-config-version.patch \ @@ -888,12 +899,6 @@ dist_patch_DATA = \ %D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ - %D%/packages/patches/openjpeg-CVE-2017-12982.patch \ - %D%/packages/patches/openjpeg-CVE-2017-14040.patch \ - %D%/packages/patches/openjpeg-CVE-2017-14041.patch \ - %D%/packages/patches/openjpeg-CVE-2017-14151.patch \ - %D%/packages/patches/openjpeg-CVE-2017-14152.patch \ - %D%/packages/patches/openjpeg-CVE-2017-14164.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openssl-runpath.patch \ @@ -967,6 +972,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-genshi-isstring-helper.patch \ %D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch \ %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ + %D%/packages/patches/python-nose-timer-drop-ordereddict.patch \ %D%/packages/patches/python-parse-too-many-fields.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ %D%/packages/patches/python-statsmodels-fix-tests.patch \ @@ -981,8 +987,7 @@ dist_patch_DATA = \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ - %D%/packages/patches/qemu-CVE-2017-13711.patch \ - %D%/packages/patches/qemu-CVE-2017-14167.patch \ + %D%/packages/patches/python2-unittest2-remove-argparse.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ @@ -1107,8 +1112,6 @@ dist_patch_DATA = \ %D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ - %D%/packages/patches/xorg-server-CVE-2017-10971.patch \ - %D%/packages/patches/xorg-server-CVE-2017-10972.patch \ %D%/packages/patches/libyaml-CVE-2014-9130.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch \ %D%/packages/patches/zziplib-CVE-2017-5974.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8e98174f47..bc8dc48f0e 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -361,32 +361,31 @@ login, passwd, su, groupadd, and useradd.") "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-replace 'configure - (lambda* (#:key inputs outputs - #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man8 (string-append - out "/share/man/man8")) - (sbin (string-append out "/sbin")) - (shadow (assoc-ref inputs "shadow")) - (login (string-append shadow - "/bin/login"))) - (substitute* "Makefile" - (("^SBINDIR.*") - (string-append "SBINDIR = " out - "/sbin\n")) - (("^MANDIR.*") - (string-append "MANDIR = " out - "/share/man/man8\n"))) + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man8 (string-append out "/share/man/man8")) + (sbin (string-append out "/sbin")) + (shadow (assoc-ref inputs "shadow")) + (login (string-append shadow "/bin/login"))) + (substitute* "Makefile" + (("^SBINDIR.*") + (string-append "SBINDIR = " out + "/sbin\n")) + (("^MANDIR.*") + (string-append "MANDIR = " out + "/share/man/man8\n"))) - ;; Pick the right 'login' by default. - (substitute* "mingetty.c" - (("\"/bin/login\"") - (string-append "\"" login "\""))) + ;; Pick the right 'login' by default. + (substitute* "mingetty.c" + (("\"/bin/login\"") + (string-append "\"" login "\""))) - (mkdir-p sbin) - (mkdir-p man8))) - %standard-phases) + (mkdir-p sbin) + (mkdir-p man8)) + #t))) #:tests? #f)) ; no tests (inputs `(("shadow" ,shadow))) @@ -725,25 +724,25 @@ by bandwidth they use.") ("perl-x11-protocol" ,perl-x11-protocol))) (arguments `(#:phases - (alist-cons-after - 'install 'set-load-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Put the perl-tk and perl-x11-protocol modules in the perl inc - ;; path for PROG - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/bin/cssh")) - (perl-ver ,(package-version perl)) - (x11-inc (string-append - (assoc-ref inputs "perl-x11-protocol") - "/lib/perl5/site_perl/" perl-ver)) - (tk-inc (string-append - (assoc-ref inputs "perl-tk") - "/lib/perl5/site_perl/" perl-ver - "/x86_64-linux"))) - (wrap-program - prog - `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'install 'set-load-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Put the perl-tk and perl-x11-protocol modules in the perl inc + ;; path for PROG + (let* ((out (assoc-ref outputs "out")) + (prog (string-append out "/bin/cssh")) + (perl-ver ,(package-version perl)) + (x11-inc (string-append + (assoc-ref inputs "perl-x11-protocol") + "/lib/perl5/site_perl/" perl-ver)) + (tk-inc (string-append + (assoc-ref inputs "perl-tk") + "/lib/perl5/site_perl/" perl-ver + "/x86_64-linux"))) + (wrap-program + prog + `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))) + #t))))) ;; The clusterssh.sourceforge.net address requires login to view (home-page "https://sourceforge.net/projects/clusterssh/") (synopsis "Secure concurrent multi-server terminal control") @@ -908,13 +907,14 @@ commands and their arguments.") "0l0l5gz3d5j9bqjsbjlfcv4w4jwndllp9fmyai4x9kg6qhs6v4xl")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (chdir "wpa_supplicant") - (copy-file "defconfig" ".config") - (let ((port (open-file ".config" "al"))) - (display " + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (chdir "wpa_supplicant") + (copy-file "defconfig" ".config") + (let ((port (open-file ".config" "al"))) + (display " CONFIG_DEBUG_SYSLOG=y # Choose GnuTLS (the default is OpenSSL.) @@ -924,26 +924,23 @@ commands and their arguments.") CFLAGS += $(shell pkg-config libnl-3.0 --cflags) CONFIG_LIBNL32=y CONFIG_READLINE=y\n" port) - (close-port port))) + (close-port port)))) + (add-after 'install 'install-man-pages + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man")) + (man5 (string-append man "/man5")) + (man8 (string-append man "/man8"))) + (define (copy-man-page target) + (lambda (file) + (install-file file target))) - (alist-cons-after - 'install 'install-man-pages - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man (string-append out "/share/man")) - (man5 (string-append man "/man5")) - (man8 (string-append man "/man8"))) - (define (copy-man-page target) - (lambda (file) - (install-file file target))) - - (mkdir-p man5) (mkdir man8) - (for-each (copy-man-page man5) - (find-files "doc/docbook" "\\.5")) - (for-each (copy-man-page man8) - (find-files "doc/docbook" "\\.8")) - #t)) - %standard-phases)) + (mkdir-p man5) (mkdir man8) + (for-each (copy-man-page man5) + (find-files "doc/docbook" "\\.5")) + (for-each (copy-man-page man8) + (find-files "doc/docbook" "\\.8")) + #t)))) #:make-flags (list "CC=gcc" (string-append "BINDIR=" (assoc-ref %outputs "out") @@ -980,25 +977,24 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.") (arguments (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal) ((#:phases phases) - `(alist-cons-after - 'configure 'configure-for-dbus - (lambda _ - (let ((port (open-file ".config" "al"))) - (display " + `(modify-phases ,phases + (add-after 'configure 'configure-for-dbus + (lambda _ + (let ((port (open-file ".config" "al"))) + (display " CONFIG_CTRL_IFACE_DBUS=y CONFIG_CTRL_IFACE_DBUS_NEW=y CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port) - (close-port port)) - #t) - (alist-cons-after - 'install-man-pages 'install-dbus-conf - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dir (string-append out "/etc/dbus-1/system.d"))) - (mkdir-p dir) - (copy-file "dbus/dbus-wpa_supplicant.conf" - (string-append dir "/wpa_supplicant.conf")))) - ,phases))))))) + (close-port port)) + #t)) + (add-after 'install-man-pages 'install-dbus-conf + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/etc/dbus-1/system.d"))) + (mkdir-p dir) + (copy-file "dbus/dbus-wpa_supplicant.conf" + (string-append dir "/wpa_supplicant.conf"))) + #t)))))))) (define-public wakelan (package @@ -1014,22 +1010,22 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.") "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/bin")) - (mkdir-p (string-append out "/share/man/man1")) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin")) + (mkdir-p (string-append out "/share/man/man1")) - ;; It's an old configure script that doesn't understand - ;; the extra options we pass. - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - (string-append "--mandir=" out - "/share/man"))))) - %standard-phases) + ;; It's an old configure script that doesn't understand + ;; the extra options we pass. + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + (string-append "--mandir=" out + "/share/man"))))))) #:tests? #f)) (home-page "http://kernel.org") ; really, no home page (synopsis "Send a wake-on-LAN packet") @@ -1088,7 +1084,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") "HOST=_LINUX" "OPT_CFLAGS=-Wall -fno-strict-aliasing") #:tests? #f ; no 'check' target. - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (home-page "http://acpica.org/") (synopsis "Tools for the development and debug of ACPI tables") (description @@ -1198,7 +1194,7 @@ recover lost partitions and/or make non-booting disks bootable again.") (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-delete 'configure %standard-phases) + '(#:phases (modify-phases %standard-phases (delete 'configure)) #:tests? #f ; no check target #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "prefix=" out))))) @@ -1227,23 +1223,23 @@ environment variable is set and output is to tty.") "#!$SHELL"))))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'build 'patch-/bin/sh - (lambda* (#:key inputs #:allow-other-keys) - ;; Use the right shell when executing the watcher and - ;; user-provided shell commands. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* '("src/direvent.c" "src/progman.c") - (("\"/bin/sh\"") - (string-append "\"" bash "/bin/sh\""))) + '(#:phases + (modify-phases %standard-phases + (add-before 'build 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + ;; Use the right shell when executing the watcher and + ;; user-provided shell commands. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* '("src/direvent.c" "src/progman.c") + (("\"/bin/sh\"") + (string-append "\"" bash "/bin/sh\""))) - ;; Adjust the 'shell.at' test accordingly. - (substitute* "tests/testsuite" - (("SHELL=/bin/sh") - (string-append "SHELL=" bash "/bin/sh"))) + ;; Adjust the 'shell.at' test accordingly. + (substitute* "tests/testsuite" + (("SHELL=/bin/sh") + (string-append "SHELL=" bash "/bin/sh"))) - #t)) - %standard-phases))) + #t)))))) (home-page "https://www.gnu.org/software/direvent/") (synopsis "Daemon to monitor directories for events such as file removal") (description @@ -1296,7 +1292,7 @@ various ways that may be running with too much privilege.") "1g25r6sx85b5lay5n6sbnqv05qxzj6xsafsp93hnrg1h044bps49")))) (build-system gnu-build-system) (inputs `(("libcap-ng" ,libcap-ng))) - (home-page "http://www.smartmontools.org/") + (home-page "https://www.smartmontools.org/") (synopsis "S.M.A.R.T. harddisk control and monitoring tools") (description "The smartmontools package contains utility programs to control and @@ -1535,7 +1531,7 @@ displays a table of current bandwidth usage by pairs of hosts.") (define-public munge (package (name "munge") - (version "0.5.12") + (version "0.5.13") (source (origin (method url-fetch) (uri (string-append "https://github.com/dun/munge/releases/" @@ -1543,7 +1539,7 @@ displays a table of current bandwidth usage by pairs of hosts.") version ".tar.xz")) (sha256 (base32 - "1s0vlwgm3hcx75vcmjf2y3icy5nv8y07bx93w2cmm6a7x71y6wp9")))) + "1nj486bbg1adfg298zck96vgx57kchcypc1zdz1n7w540vyksxcr")))) (inputs `(("openssl" ,openssl) ("libgcrypt" ,libgcrypt))) @@ -1700,7 +1696,7 @@ results (ndiff), and a packet generation and response analysis tool (nping).") (list (string-append "DESTDIR=" out) "prefix=/")) ;; no configure script - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("python-2" ,python-2))) (synopsis "Versatile resource statistics tool") (description "Dstat is a versatile replacement for @command{vmstat}, diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index e4f30a5791..08940e4f90 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -334,22 +334,21 @@ fast arithmetic.") ("mpfr" ,mpfr))) (arguments `(#:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (flint (assoc-ref inputs "flint")) - (gmp (assoc-ref inputs "gmp")) - (mpfr (assoc-ref inputs "mpfr"))) - ;; do not pass "--enable-fast-install", which makes the - ;; homebrew configure process fail - (zero? (system* - "./configure" - (string-append "--prefix=" out) - (string-append "--with-flint=" flint) - (string-append "--with-gmp=" gmp) - (string-append "--with-mpfr=" mpfr))))) - %standard-phases))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (flint (assoc-ref inputs "flint")) + (gmp (assoc-ref inputs "gmp")) + (mpfr (assoc-ref inputs "mpfr"))) + ;; do not pass "--enable-fast-install", which makes the + ;; homebrew configure process fail + (zero? (system* + "./configure" + (string-append "--prefix=" out) + (string-append "--with-flint=" flint) + (string-append "--with-gmp=" gmp) + (string-append "--with-mpfr=" mpfr))))))))) (synopsis "Arbitrary precision floating-point ball arithmetic") (description "Arb is a C library for arbitrary-precision floating-point ball diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index be3f50add2..d9be335be0 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2017 Hartmut Goebel +;;; Copyright © 2017 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system trivial) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages gnupg) @@ -305,6 +307,42 @@ of device actions, such as installing and debugging apps, and it provides access to a Unix shell that can run commands on the connected device or emulator.") (license license:asl2.0))) +(define-public android-udev-rules + (package + (name "android-udev-rules") + (version "20170910") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/M0Rf30/android-udev-rules") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "0vic40n3si0dxag3dyc3hi3pn7cjpm5q378x8v2ys19n3iz9fp1g")))) + (build-system trivial-build-system) + (native-inputs `(("source" ,source))) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source"))) + (install-file (string-append source "/51-android.rules") + (string-append %output "/lib/udev/rules.d")))))) + (home-page "https://github.com/M0Rf30/android-udev-rules") + (synopsis "udev rules for Android devices") + (description "Provides a set of udev rules to allow using Android devices +with tools such as @command{adb} and @command{fastboot} without root +privileges. This package is intended to be added as a rule to the +@code{udev-service-type} in your @code{operating-system} configuration. +Additionally, an @code{adbusers} group must be defined and your user added to +it. + +@emph{Simply installing this package will not have any effect.} It is meant +to be passed to the @code{udev} service.") + (license license:gpl3+))) + (define-public git-repo (package (name "git-repo") diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm index 17945c0390..baadb41b60 100644 --- a/gnu/packages/apr.scm +++ b/gnu/packages/apr.scm @@ -80,19 +80,18 @@ around or take advantage of platform-specific deficiencies or features.") `(("expat" ,expat))) (arguments '(#:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (apr (assoc-ref inputs "apr")) - (expat (assoc-ref inputs "expat"))) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - (string-append "--with-apr=" apr) - (string-append "--with-expat=" expat))))) - %standard-phases) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (apr (assoc-ref inputs "apr")) + (expat (assoc-ref inputs "expat"))) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + (string-append "--with-apr=" apr) + (string-append "--with-expat=" expat))))))) ;; There are race conditions during 'make check'. Typically, the ;; 'testall' executable is not built yet by the time 'make check' tries diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 3469c7a3ec..c97d32260b 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Christopher Andersson -;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 27db8fc559..769e5d2fca 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -103,14 +103,14 @@ debugging information in STABS, DWARF 2, and CodeView 8 formats.") (define-public lightning (package (name "lightning") - (version "2.1.0") + (version "2.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/lightning/lightning-" version ".tar.gz")) (sha256 (base32 - "19j9nwl88k660045s40cbz5zrl1wpd2mcxnnc8qqnnaj311a58qz")))) + "0sbs2lm8b9in2m8d52zf0x9gpp40x6r7sl6sha92yq3pr78rwa4v")))) (build-system gnu-build-system) (native-inputs `(("zlib" ,zlib))) (synopsis "Library for generating assembly code at runtime") diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 95a5fdd7c8..0900630df1 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -36,6 +36,7 @@ #:use-module (guix build-system trivial) #:use-module (guix build-system cmake) #:use-module (guix build-system python) + #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) @@ -79,6 +80,8 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) + #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) #:use-module (srfi srfi-1)) (define-public alsa-modular-synth @@ -186,7 +189,7 @@ streams from live audio.") (define-public ardour (package (name "ardour") - (version "5.8") + (version "5.12") (source (origin (method git-fetch) (uri (git-reference @@ -203,7 +206,7 @@ streams from live audio.") namespace ARDOUR { const char* revision = \"" version "\" ; }"))))) (sha256 (base32 - "1lcvslrcw6g4kp9w0h1jx46x6ilz4nzz0k2yrw4gd545k1rwx0c1")) + "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments @@ -617,23 +620,21 @@ language and software synthesizer.") `(#:tests? #f ; no "check" target #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases - (alist-cons-after - 'unpack 'patch-makefile-and-enter-directory - (lambda _ - (substitute* "libs/Makefile" - (("/sbin/ldconfig") "true") - (("^LIBDIR =.*") "LIBDIR = lib\n")) - (chdir "libs") - #t) - (alist-cons-after - 'install - 'install-symlink - (lambda _ - (symlink "libclalsadrv.so" - (string-append (assoc-ref %outputs "out") - "/lib/libclalsadrv.so.2"))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-makefile-and-enter-directory + (lambda _ + (substitute* "libs/Makefile" + (("/sbin/ldconfig") "true") + (("^LIBDIR =.*") "LIBDIR = lib\n")) + (chdir "libs") + #t)) + (add-after 'install 'install-symlink + (lambda _ + (symlink "libclalsadrv.so" + (string-append (assoc-ref %outputs "out") + "/lib/libclalsadrv.so.2")))) ;; no configure script - (alist-delete 'configure %standard-phases))))) + (delete 'configure)))) (inputs `(("alsa-lib" ,alsa-lib) ("fftw" ,fftw))) @@ -972,11 +973,9 @@ follower.") (build-system gnu-build-system) (arguments `(#:phases - (alist-cons-after - 'unpack - 'remove-broken-symlinks - (lambda _ (delete-file-recursively "m4") #t) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'remove-broken-symlinks + (lambda _ (delete-file-recursively "m4") #t))))) (inputs `(("libsndfile" ,libsndfile) ("alsa-lib" ,alsa-lib) @@ -1015,12 +1014,11 @@ also play midifiles using a Soundfont.") ("unzip" ,unzip))) (arguments '(#:phases - (alist-cons-after - 'unpack 'bootstrap - (lambda _ - (substitute* "bootstrap" (("\r\n") "\n")) - (zero? (system* "sh" "bootstrap"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (substitute* "bootstrap" (("\r\n") "\n")) + (zero? (system* "sh" "bootstrap"))))))) (home-page "http://www.audiocoding.com/faad2.html") (synopsis "MPEG-4 and MPEG-2 AAC decoder") (description @@ -1130,7 +1128,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") (define-public guitarix (package (name "guitarix") - (version "0.35.6") + (version "0.36.0") (source (origin (method url-fetch) (uri (string-append @@ -1138,7 +1136,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") version ".tar.xz")) (sha256 (base32 - "0ffvfnvhj6vz73zsrpi88hs69ys4zskm847zf825dl2r39n9nn41")))) + "0nb0gwcmvc9xjh9pjasjbaqgpadanv4rw1njccpcmmin9xvicsqn")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target @@ -1674,7 +1672,7 @@ software.") "TYPE=mdaPiano" (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:tests? #f ; no check target - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("lv2" ,lv2) ("lvtk" ,lvtk))) @@ -1697,7 +1695,7 @@ software.") "TYPE=mdaEPiano" (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:tests? #f ; no check target - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (home-page "http://elephly.net/lv2/mdaepiano.html") (synopsis "LV2 port of the mda EPiano plugin") (description "An LV2 port of the mda EPiano VSTi."))) @@ -2090,19 +2088,19 @@ Suil currently supports every combination of Gtk 2, Qt 4, and X11.") (string-append "--with-default-path=" (assoc-ref %outputs "out") "/etc/timidity")) #:phases - (alist-cons-after - 'install 'install-config - (lambda _ - (let ((out (string-append (assoc-ref %outputs "out") - "/etc/timidity"))) - (mkdir-p out) - (call-with-output-file - (string-append out "/timidity.cfg") - (lambda (port) - (format port (string-append "source " - (assoc-ref %build-inputs "freepats") - "/share/freepats/freepats.cfg")))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'install 'install-config + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/etc/timidity"))) + (mkdir-p out) + (call-with-output-file + (string-append out "/timidity.cfg") + (lambda (port) + (format port (string-append "source " + (assoc-ref %build-inputs "freepats") + "/share/freepats/freepats.cfg"))))) + #t))))) (inputs `(("alsa-lib" ,alsa-lib) ("ao" ,ao) @@ -2141,16 +2139,15 @@ disks as various audio file formats.") (arguments `(#:tests? #f ; no check target #:phases - (alist-cons-after - 'install 'remove-libvamp-hostsdk.la - (lambda* (#:key outputs #:allow-other-keys) - ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656 - (for-each delete-file - (let ((out (assoc-ref outputs "out"))) - (list (string-append out "/lib/libvamp-sdk.la") - (string-append out "/lib/libvamp-hostsdk.la")))) - #t) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'install 'remove-libvamp-hostsdk.la + (lambda* (#:key outputs #:allow-other-keys) + ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656 + (for-each delete-file + (let ((out (assoc-ref outputs "out"))) + (list (string-append out "/lib/libvamp-sdk.la") + (string-append out "/lib/libvamp-hostsdk.la")))) + #t))))) (inputs `(("libsndfile" ,libsndfile))) (native-inputs @@ -2312,11 +2309,10 @@ Tracker 3 S3M and Impulse Tracker IT files.") ("file" ,file))) (arguments '(#:phases - (alist-cons-after - 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "bootstrap"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (zero? (system* "sh" "bootstrap"))))))) (home-page "http://www.surina.net/soundtouch/") (synopsis "Audio processing library for changing tempo, pitch and playback rate") @@ -2450,11 +2446,10 @@ portions of LAME.") '(#:phases ;; Autoreconf is necessary because the audacity-compat patch modifies ;; .in files. - (alist-cons-after - 'unpack 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vif"))) - %standard-phases) + (modify-phases %standard-phases + (add-after 'unpack 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-vif"))))) #:tests? #f)) ;no 'check' target (home-page "http://www.portaudio.com/") (synopsis "Audio I/O library") @@ -2518,14 +2513,13 @@ synthesizer written in C++.") ("pulseaudio" ,pulseaudio))) (arguments '(#:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (setenv "CC" "gcc") - (zero? - (system* "./configure" - (string-append "--prefix=" (assoc-ref outputs "out"))))) - %standard-phases) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (setenv "CC" "gcc") + (zero? + (system* "./configure" + (string-append "--prefix=" (assoc-ref outputs "out"))))))) ;; No 'check' target. #:tests? #f)) (home-page "http://themaister.net/rsound.html") @@ -2592,22 +2586,20 @@ result.") `(#:tests? #f ; no "check" target #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases - (alist-cons-after - 'unpack 'patch-makefile-and-enter-directory - (lambda _ - (substitute* "libs/Makefile" - (("ldconfig") "true") - (("^LIBDIR =.*") "LIBDIR = lib\n")) - (chdir "libs") #t) - (alist-cons-after - 'install - 'install-symlink - (lambda _ - (symlink "libzita-convolver.so" - (string-append (assoc-ref %outputs "out") - "/lib/libzita-convolver.so.3"))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-makefile-and-enter-directory + (lambda _ + (substitute* "libs/Makefile" + (("ldconfig") "true") + (("^LIBDIR =.*") "LIBDIR = lib\n")) + (chdir "libs") #t)) + (add-after 'install 'install-symlink + (lambda _ + (symlink "libzita-convolver.so" + (string-append (assoc-ref %outputs "out") + "/lib/libzita-convolver.so.3")))) ;; no configure script - (alist-delete 'configure %standard-phases))))) + (delete 'configure)))) (inputs `(("fftwf" ,fftwf))) (home-page "http://kokkinizita.linuxaudio.org") (synopsis "Fast, partitioned convolution engine library") @@ -2682,23 +2674,21 @@ provide high-quality sample rate conversion.") `(#:tests? #f ; no "check" target #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases - (alist-cons-after - 'unpack 'patch-makefile-and-enter-directory - (lambda _ - (substitute* "libs/Makefile" - (("ldconfig") "true") - (("^LIBDIR =.*") "LIBDIR = lib\n")) - (chdir "libs") - #t) - (alist-cons-after - 'install - 'install-symlink - (lambda _ - (symlink "libzita-alsa-pcmi.so" - (string-append (assoc-ref %outputs "out") - "/lib/libzita-alsa-pcmi.so.0"))) - ;; no configure script - (alist-delete 'configure %standard-phases))))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-makefile-and-enter-directory + (lambda _ + (substitute* "libs/Makefile" + (("ldconfig") "true") + (("^LIBDIR =.*") "LIBDIR = lib\n")) + (chdir "libs") + #t)) + (add-after 'install 'install-symlink + (lambda _ + (symlink "libzita-alsa-pcmi.so" + (string-append (assoc-ref %outputs "out") + "/lib/libzita-alsa-pcmi.so.0")))) + ;; no configure script + (delete 'configure)))) (inputs `(("alsa-lib" ,alsa-lib) ("fftw" ,fftw))) @@ -2926,3 +2916,62 @@ mixers.") (define-public python2-pyalsaaudio (package-with-python2 python-pyalsaaudio)) + +(define-public snd + (package + (name "snd") + (version "17.7") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/" + "snd-" version ".tar.gz")) + (sha256 + (base32 + "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp")))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:tests? #f ; no tests + #:out-of-source? #f ; for the 'install-doc' phase + #:configure-flags + (let* ((out (assoc-ref %outputs "out")) + (docdir (string-append out "/share/doc/snd"))) + (list "--with-alsa" "--with-jack" "--with-gmp" + (string-append "--with-doc-dir=" docdir))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (docdir (string-append out "/share/doc/snd"))) + (mkdir-p docdir) + (for-each + (lambda (f) + (install-file f docdir)) + (find-files "." "\\.html$|COPYING")) + (copy-recursively "pix" (string-append docdir "/pix")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("fftw" ,fftw) + ("flac" ,flac) + ("gmp" ,gmp) + ("gsl" ,gsl) + ("gtk+" ,gtk+) + ("jack" ,jack-1) + ("libsamplerate" ,libsamplerate) + ("mpc" ,mpc) + ("mpfr" ,mpfr) + ("mpg123" ,mpg123) + ("speex" ,speex) + ("timidity++" ,timidity++) + ("vorbis-tools" ,vorbis-tools) + ("wavpack" ,wavpack))) + (synopsis "Sound editor") + (home-page "https://ccrma.stanford.edu/software/snd/") + (description + "Snd is a sound editor modelled loosely after Emacs. It can be +customized and extended using either the s7 Scheme implementation (included in +the Snd sources), Ruby, or Forth.") + (license (license:non-copyleft "file://COPYING")))) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 30a9aac824..79ef31fc1b 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015, 2017 Mark H Weaver ;;; Copyright © 2016 David Thompson ;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -194,7 +195,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\" (define-public autoconf-archive (package (name "autoconf-archive") - (version "2017.03.21") + (version "2017.09.28") (source (origin (method url-fetch) @@ -202,7 +203,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\" version ".tar.xz")) (sha256 (base32 - "0rfpapadka2023qhy8294ca5awxpb8d4904js6kv7piby5ax8siq")))) + "00gsh9hkrgg291my98plkrwlcpxkfrpq64pglf18kciqbf2bb7sw")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/autoconf-archive/") (synopsis "Collection of freely reusable Autoconf macros") diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 60b371f498..44670d3f03 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier ;;; Copyright © 2014 Ian Denhardt -;;; Copyright © 2015, 2016 Leo Famulari +;;; Copyright © 2015, 2016, 2017 Leo Famulari ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Arun Isaac @@ -119,7 +119,7 @@ spying and/or modification by the server.") (define-public par2cmdline (package (name "par2cmdline") - (version "0.7.3") + (version "0.7.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/Parchive/par2cmdline/archive/v" @@ -127,7 +127,7 @@ spying and/or modification by the server.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0dqwarc2aw5clgpf24d9dxh43b0k0z3l6kksn30arx9bdlmrk5rx")))) + "0iwwskiag3262mvhinvnbk6n0qh6sh56m86y4d0m285v0jl0y9pa")))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf))) @@ -279,20 +279,20 @@ random access nor for in-place modification.") ("nettle" ,nettle))) (arguments `(#:parallel-build? #f ;race conditions - #:phases (alist-cons-before - 'build 'remove-Werror - ;; rdup uses a deprecated function from libarchive - (lambda _ - (substitute* "GNUmakefile" - (("^(CFLAGS=.*)-Werror" _ front) front))) - (alist-cons-before - 'check 'pre-check - (lambda _ - (setenv "HOME" (getcwd)) - (substitute* "testsuite/rdup/rdup.rdup-up-t-with-file.exp" - (("/bin/cat") (which "cat")))) - - %standard-phases)))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'remove-Werror + ;; rdup uses a deprecated function from libarchive + (lambda _ + (substitute* "GNUmakefile" + (("^(CFLAGS=.*)-Werror" _ front) front)) + #t)) + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + (substitute* "testsuite/rdup/rdup.rdup-up-t-with-file.exp" + (("/bin/cat") (which "cat"))) + #t))))) (home-page "http://archive.miek.nl/projects/rdup/index.html") (synopsis "Provide a list of files to backup") (description @@ -322,9 +322,9 @@ list and implement the backup strategy.") "CC=gcc") #:tests? #f ;test input not distributed #:phases - (alist-delete - 'configure ;no configure phase - %standard-phases))) + ;; no configure phase + (modify-phases %standard-phases + (delete 'configure)))) (home-page "http://viric.name/cgi-bin/btar/doc/trunk/doc/home.wiki") (synopsis "Tar-compatible archiver") (description @@ -448,13 +448,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.0.11") + (version "1.1.0") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "14fjk5dfwmjkn7nmkbhhbrk3g1wfrn8arvqd5r9jaij534nzsvpw")) + "0vwyg0b4kxb0rspqwhvgi5c78dzimgkydf03wif27a40qhh1235l")) (modules '((guix build utils))) (snippet '(for-each @@ -526,7 +526,7 @@ detection, and lossless compression.") ("python-pytest" ,python-pytest-3.0) ;; For generating the documentation. ("python-sphinx" ,python-sphinx) - ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme))) + ("python-guzzle-sphinx-theme" ,python-guzzle-sphinx-theme))) (inputs `(("acl" ,acl) ("lz4" ,lz4) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index be19c5f76f..7e1177db9d 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -909,12 +909,12 @@ the 'share/locale' sub-directory of this package.") ,@(package-arguments glibc)))) (substitute-keyword-arguments args ((#:phases phases) - `(alist-replace - 'build - (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "make" "localedata/install-locales" - "-j" (number->string (parallel-job-count))))) - (alist-delete 'install ,phases))) + `(modify-phases ,phases + (replace 'build + (lambda _ + (zero? (system* "make" "localedata/install-locales" + "-j" (number->string (parallel-job-count)))))) + (delete 'install))) ((#:configure-flags flags) `(append ,flags ;; Use $(libdir)/locale/X.Y as is the case by default. diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 136f141d8b..feed7b545b 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2017 Dave Love ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,8 +25,10 @@ #:use-module (gnu packages compression) #:use-module (gnu packages linux) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages python) - #:use-module (gnu packages storage)) + #:use-module (gnu packages storage) + #:use-module (ice-9 match)) (define-public fio (package @@ -103,3 +106,65 @@ is to write a job file matching the I/O load one wants to simulate.") ;; are covered by other licenses. (license (list license:gpl2 license:gpl2+ license:bsd-2 license:public-domain)))) + +;; Parameterized in anticipation of m(va)pich support +(define (imb mpi) + (package + (name (string-append "imb-" (package-name mpi))) + (version "2017.2") + (source + (origin + (method url-fetch) + (uri (match (string-split version #\.) + ((major minor) + (string-append + "https://software.intel.com/sites/default/files/managed/76/6c/IMB_" + major "_Update" minor ".tgz")))) + (sha256 (base32 "11nczxm686rsppmw9gjc2p2sxc0jniv5kv18yxm1lzp5qfh5rqyb")))) + (build-system gnu-build-system) + (inputs + `(("mpi" ,mpi))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mpi-home (assoc-ref inputs "mpi"))) + (zero? + ;; Not safe for parallel build + (system* "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh" + (string-append "MPI_HOME=" mpi-home)))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name)) + (bin (string-append out "/bin"))) + (with-directory-excursion "imb/src" + (for-each + (lambda (file) + (install-file file bin)) + '("IMB-IO" "IMB-EXT" "IMB-MPI1" "IMB-NBC" "IMB-RMA"))) + (mkdir-p doc) + (with-directory-excursion "imb" + (copy-recursively "license" doc))) + #t))))) + (home-page "https://software.intel.com/en-us/articles/intel-mpi-benchmarks") + (synopsis "Intel MPI Benchmarks") + (description + "This package provides benchmarks for implementations of the @dfn{Message +Passing Interface} (MPI). It contains MPI performance measurements for +point-to-point and global communication, and file, operations for a range of +message sizes. The generated benchmark data fully characterize: + +@itemize +@item +Performance of a cluster system, including node performance, network latency, +and throughput; +@item +Efficiency of the MPI implementation. +@end itemize") + (license license:cpl1.0))) + +(define-public imb-openmpi (imb openmpi)) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5e98aea91f..f2f3b807c3 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -369,32 +369,33 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") '(#:tests? #f #:make-flags (list (string-append "BINDIR=" %output "/bin")) #:phases - (alist-cons-after - 'unpack 'unpack-tarballs - (lambda _ - ;; FIXME: Bedops includes tarballs of minimally patched upstream - ;; libraries jansson, zlib, and bzip2. We cannot just use stock - ;; libraries because at least one of the libraries (zlib) is - ;; patched to add a C++ function definition (deflateInit2cpp). - ;; Until the Bedops developers offer a way to link against system - ;; libraries we have to build the in-tree copies of these three - ;; libraries. + (modify-phases %standard-phases + (add-after 'unpack 'unpack-tarballs + (lambda _ + ;; FIXME: Bedops includes tarballs of minimally patched upstream + ;; libraries jansson, zlib, and bzip2. We cannot just use stock + ;; libraries because at least one of the libraries (zlib) is + ;; patched to add a C++ function definition (deflateInit2cpp). + ;; Until the Bedops developers offer a way to link against system + ;; libraries we have to build the in-tree copies of these three + ;; libraries. - ;; See upstream discussion: - ;; https://github.com/bedops/bedops/issues/124 + ;; See upstream discussion: + ;; https://github.com/bedops/bedops/issues/124 - ;; Unpack the tarballs to benefit from shebang patching. - (with-directory-excursion "third-party" - (and (zero? (system* "tar" "xvf" "jansson-2.6.tar.bz2")) - (zero? (system* "tar" "xvf" "zlib-1.2.7.tar.bz2")) - (zero? (system* "tar" "xvf" "bzip2-1.0.6.tar.bz2")))) - ;; Disable unpacking of tarballs in Makefile. - (substitute* "system.mk/Makefile.linux" - (("^\tbzcat .*") "\t@echo \"not unpacking\"\n") - (("\\./configure") "CONFIG_SHELL=bash ./configure")) - (substitute* "third-party/zlib-1.2.7/Makefile.in" - (("^SHELL=.*$") "SHELL=bash\n"))) - (alist-delete 'configure %standard-phases)))) + ;; Unpack the tarballs to benefit from shebang patching. + (with-directory-excursion "third-party" + (and (zero? (system* "tar" "xvf" "jansson-2.6.tar.bz2")) + (zero? (system* "tar" "xvf" "zlib-1.2.7.tar.bz2")) + (zero? (system* "tar" "xvf" "bzip2-1.0.6.tar.bz2")))) + ;; Disable unpacking of tarballs in Makefile. + (substitute* "system.mk/Makefile.linux" + (("^\tbzcat .*") "\t@echo \"not unpacking\"\n") + (("\\./configure") "CONFIG_SHELL=bash ./configure")) + (substitute* "third-party/zlib-1.2.7/Makefile.in" + (("^SHELL=.*$") "SHELL=bash\n")) + #t)) + (delete 'configure)))) (home-page "https://github.com/bedops/bedops") (synopsis "Tools for high-performance genomic feature operations") (description @@ -1325,20 +1326,21 @@ splice junctions between exons.") (arguments '(#:tests? #f ;no "check" target #:phases - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append - (assoc-ref outputs "out") "/bin")) - (doc (string-append - (assoc-ref outputs "out") "/share/doc/bwa")) - (man (string-append - (assoc-ref outputs "out") "/share/man/man1"))) - (install-file "bwa" bin) - (install-file "README.md" doc) - (install-file "bwa.1" man))) - ;; no "configure" script - (alist-delete 'configure %standard-phases)))) + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append + (assoc-ref outputs "out") "/bin")) + (doc (string-append + (assoc-ref outputs "out") "/share/doc/bwa")) + (man (string-append + (assoc-ref outputs "out") "/share/man/man1"))) + (install-file "bwa" bin) + (install-file "README.md" doc) + (install-file "bwa.1" man)) + #t)) + ;; no "configure" script + (delete 'configure)))) (inputs `(("zlib" ,zlib))) ;; Non-portable SSE instructions are used so building fails on platforms ;; other than x86_64. @@ -1815,10 +1817,9 @@ time.") (arguments `(#:python ,python-2 #:phases - (alist-cons-after - 'unpack 'set-env - (lambda _ (setenv "CROSSMAP_USE_SYSTEM_PYSAM" "1")) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ (setenv "CROSSMAP_USE_SYSTEM_PYSAM" "1") #t))))) (inputs `(("python-numpy" ,python2-numpy) ("python-pysam" ,python2-pysam) @@ -2365,19 +2366,18 @@ dynamic programming or a variety of heuristics.") (arguments `(#:tests? #f ;no "check" target #:phases - (alist-cons-after - 'unpack 'use-shared-boost-libs-and-set-bamtools-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("set\\(Boost_USE_STATIC_LIBS ON\\)") - "set(Boost_USE_STATIC_LIBS OFF)") - (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/bamtools/include") - (string-append (assoc-ref inputs "bamtools") "/include/bamtools"))) - (substitute* "src/CMakeLists.txt" - (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/\\.\\./bamtools/lib") - (string-append (assoc-ref inputs "bamtools") "/lib/bamtools"))) - #t) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'use-shared-boost-libs-and-set-bamtools-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("set\\(Boost_USE_STATIC_LIBS ON\\)") + "set(Boost_USE_STATIC_LIBS OFF)") + (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/bamtools/include") + (string-append (assoc-ref inputs "bamtools") "/include/bamtools"))) + (substitute* "src/CMakeLists.txt" + (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/\\.\\./bamtools/lib") + (string-append (assoc-ref inputs "bamtools") "/lib/bamtools"))) + #t))))) (inputs `(("boost" ,boost) ("bamtools" ,bamtools) @@ -2544,15 +2544,15 @@ results. The FASTX-Toolkit tools perform some of these preprocessing tasks.") (assoc-ref %outputs "out") "/bin/")) #:phases - (alist-replace - 'check - (lambda* (#:key outputs #:allow-other-keys) - (setenv "PATH" (string-append - (assoc-ref outputs "out") "/bin:" - (getenv "PATH"))) - (chdir "../flexbar_v2.5_src/test") - (zero? (system* "bash" "flexbar_validate.sh"))) - (alist-delete 'install %standard-phases)))) + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key outputs #:allow-other-keys) + (setenv "PATH" (string-append + (assoc-ref outputs "out") "/bin:" + (getenv "PATH"))) + (chdir "../flexbar_v2.5_src/test") + (zero? (system* "bash" "flexbar_validate.sh")))) + (delete 'install)))) (inputs `(("tbb" ,tbb) ("zlib" ,zlib))) @@ -2788,21 +2788,21 @@ association studies (GWAS).") (arguments `(#:python ,python-2 #:phases - (alist-cons-after - 'unpack 'generate-from-cython-sources - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Delete these C files to force fresh generation from pyx sources. - (delete-file "grit/sparsify_support_fns.c") - (delete-file "grit/call_peaks_support_fns.c") - (substitute* "setup.py" - (("Cython.Setup") "Cython.Build") - ;; Add numpy include path to fix compilation - (("pyx\", \\]") - (string-append "pyx\", ], include_dirs = ['" - (assoc-ref inputs "python-numpy") - "/lib/python2.7/site-packages/numpy/core/include/" - "']"))) #t) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'generate-from-cython-sources + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Delete these C files to force fresh generation from pyx sources. + (delete-file "grit/sparsify_support_fns.c") + (delete-file "grit/call_peaks_support_fns.c") + (substitute* "setup.py" + (("Cython.Setup") "Cython.Build") + ;; Add numpy include path to fix compilation + (("pyx\", \\]") + (string-append "pyx\", ], include_dirs = ['" + (assoc-ref inputs "python-numpy") + "/lib/python2.7/site-packages/numpy/core/include/" + "']"))) + #t))))) (inputs `(("python-scipy" ,python2-scipy) ("python-numpy" ,python2-numpy) @@ -2845,28 +2845,29 @@ estimates transcript expression.") '() '("POPCNT_CAPABILITY=0"))) #:phases - (alist-cons-after - 'unpack 'patch-sources - (lambda _ - ;; XXX Cannot use snippet because zip files are not supported - (substitute* "Makefile" - (("^CC = .*$") "CC = gcc") - (("^CPP = .*$") "CPP = g++") - ;; replace BUILD_HOST and BUILD_TIME for deterministic build - (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") - (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")) - (substitute* '("hisat-build" "hisat-inspect") - (("/usr/bin/env") (which "env")))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - (for-each (lambda (file) - (install-file file bin)) - (find-files - "." - "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$")))) - (alist-delete 'configure %standard-phases))))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-sources + (lambda _ + ;; XXX Cannot use snippet because zip files are not supported + (substitute* "Makefile" + (("^CC = .*$") "CC = gcc") + (("^CPP = .*$") "CPP = g++") + ;; replace BUILD_HOST and BUILD_TIME for deterministic build + (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") + (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")) + (substitute* '("hisat-build" "hisat-inspect") + (("/usr/bin/env") (which "env"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) + (for-each (lambda (file) + (install-file file bin)) + (find-files + "." + "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$"))) + #t)) + (delete 'configure)))) (native-inputs `(("unzip" ,unzip))) (inputs @@ -4680,23 +4681,21 @@ Roche 454, Ion Torrent and Pacific BioSciences SMRT.") `(#:parallel-build? #f ; not supported #:tests? #f ; no "check" target #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; Allow 'konfigure.perl' to find 'package.prl'. - (setenv "PERL5LIB" - (string-append ".:" (getenv "PERL5LIB"))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Allow 'konfigure.perl' to find 'package.prl'. + (setenv "PERL5LIB" + (string-append ".:" (getenv "PERL5LIB"))) - ;; The 'configure' script doesn't recognize things like - ;; '--enable-fast-install'. - (zero? (system* "./configure" - (string-append "--build-prefix=" (getcwd) "/build") - (string-append "--prefix=" out))))) - (alist-cons-after - 'unpack 'enter-dir - (lambda _ (chdir "ngs-sdk") #t) - %standard-phases)))) + ;; The 'configure' script doesn't recognize things like + ;; '--enable-fast-install'. + (zero? (system* "./configure" + (string-append "--build-prefix=" (getcwd) "/build") + (string-append "--prefix=" out)))))) + (add-after 'unpack 'enter-dir + (lambda _ (chdir "ngs-sdk") #t))))) (native-inputs `(("perl" ,perl))) ;; According to the test ;; unless ($MARCH =~ /x86_64/i || $MARCH =~ /i?86/i) @@ -5460,17 +5459,16 @@ sequences.") "-f" "Makefile.Linux" "CC=gcc ${CCFLAGS}") #:phases - (alist-cons-after - 'unpack 'enter-dir - (lambda _ (chdir "src") #t) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - (mkdir-p bin) - (copy-recursively "../bin" bin))) + (modify-phases %standard-phases + (add-after 'unpack 'enter-dir + (lambda _ (chdir "src") #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) + (mkdir-p bin) + (copy-recursively "../bin" bin)))) ;; no "configure" script - (alist-delete 'configure %standard-phases))))) + (delete 'configure)))) (inputs `(("zlib" ,zlib))) (home-page "http://bioinf.wehi.edu.au/subread-package/") (synopsis "Tool kit for processing next-gen sequencing data") @@ -6163,7 +6161,7 @@ SELECT or UPDATE queries to an end-point.") (define-public vsearch (package (name "vsearch") - (version "2.4.4") + (version "2.5.0") (source (origin (method url-fetch) @@ -6173,7 +6171,7 @@ SELECT or UPDATE queries to an end-point.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1d8a4gjwaqdv57krlr80x18mg5py1bbdiqs5m0jdn38filc9z40k")) + "1k8wf3qns4mqrsizywbkqcasqjw000m4drxsag3qd7390pwvf9kz")) (patches (search-patches "vsearch-unbundle-cityhash.patch")) (snippet '(begin diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 79a87dc8bf..9bd89d9085 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -74,23 +74,24 @@ "gui")) ; graphical user interface (arguments '(#:glib-or-gtk-wrap-excluded-outputs '("out") - #:phases (alist-cons-after - 'install 'move-gui - (lambda* (#:key outputs #:allow-other-keys) - ;; Move the GUI to its own output, so that "out" doesn't - ;; depend on GTK+. - (let ((out (assoc-ref outputs "out")) - (gui (assoc-ref outputs "gui"))) - (mkdir-p (string-append gui "/bin")) - (rename-file (string-append out "/bin/transmission-gtk") - (string-append gui - "/bin/transmission-gtk")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'move-gui + (lambda* (#:key outputs #:allow-other-keys) + ;; Move the GUI to its own output, so that "out" doesn't + ;; depend on GTK+. + (let ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui"))) + (mkdir-p (string-append gui "/bin")) + (rename-file (string-append out "/bin/transmission-gtk") + (string-append gui + "/bin/transmission-gtk")) - ;; Move the '.desktop' file as well. - (mkdir (string-append gui "/share")) - (rename-file (string-append out "/share/applications") - (string-append gui "/share/applications")))) - %standard-phases))) + ;; Move the '.desktop' file as well. + (mkdir (string-append gui "/share")) + (rename-file (string-append out "/share/applications") + (string-append gui "/share/applications"))) + #t))))) (inputs `(("inotify-tools" ,inotify-tools) ("libevent" ,libevent) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index c535f52400..a35ce3b067 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -70,7 +70,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (define-public meson (package (name "meson") - (version "0.42.0") + (version "0.42.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -78,7 +78,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0vyp9rkymzzzilhnf04ryszslyp9a0y0wf4agyijd4w5lcnqlcbc")))) + "1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q")))) (build-system python-build-system) (inputs `(("ninja", ninja))) (propagated-inputs `(("python" ,python))) @@ -97,7 +97,7 @@ Python.") (package (inherit meson) (name "meson-for-build") - (version "0.42.0") + (version "0.42.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -105,7 +105,7 @@ Python.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0vyp9rkymzzzilhnf04ryszslyp9a0y0wf4agyijd4w5lcnqlcbc")) + "1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q")) (patches (search-patches "meson-for-build-rpath.patch")))) ;; People should probably install "meson", not "meson-for-build". diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 9a3aab33ab..f208bc0803 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -84,13 +84,13 @@ data units.") (define-public khal (package (name "khal") - (version "0.9.5") + (version "0.9.8") (source (origin (method url-fetch) (uri (pypi-uri "khal" version)) (sha256 (base32 - "0fvv0kjym9q8v20zbpr5m8ig65b8hva4p0c935qsdvgdni68jidr")))) + "1blx3gxnv7sj302biqphfw7i6ilzl2xlmvzp130n3113scg9w17y")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -99,18 +99,24 @@ data units.") (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make installed package available for running the tests (add-installed-pythonpath inputs outputs) - (zero? (system* "make" "--directory=doc/" "man")) - (install-file - "doc/build/man/khal.1" - (string-append (assoc-ref outputs "out") "/share/man/man1")))) - - ;; The tests require us to choose a timezone. + (and + (zero? (system* "make" "--directory=doc/" "man")) + (install-file + "doc/build/man/khal.1" + (string-append (assoc-ref outputs "out") "/share/man/man1"))))) (replace 'check (lambda* (#:key inputs #:allow-other-keys) + ;; The tests require us to choose a timezone. (setenv "TZ" (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo/Zulu")) - (zero? (system* "py.test" "tests"))))))) + (zero? (system* "py.test" "tests" "-k" + (string-append + ;; These tests are known to fail in when not + ;; running in a TTY: + ;; https://github.com/pimutils/khal/issues/683 + "not test_printics_read_from_stdin " + "and not test_import_from_stdin")))))))) (native-inputs ;; XXX Uses tmpdir_factory, introduced in pytest 2.8. `(("python-pytest" ,python-pytest-3.0) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 2f708f0c0b..ddc035c1b0 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -454,7 +454,7 @@ the data.") (build-system gnu-build-system) (arguments '(#:tests? #f - #:phases (alist-delete 'configure %standard-phases) + #:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))))) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index fcfedb99aa..5236444abc 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -9,6 +9,8 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,6 +65,20 @@ faults or other signals. The output from unit tests can be used within source code editors and IDEs.") (license lgpl2.1+))) +;; XXX: Some packages require this newer version. Incorporate this +;; into the main 'check' package during the next rebuild cycle. +(define-public check-0.11.0 + (package + (inherit check) + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libcheck/check/releases" + "/download/" version "/check-" version ".tar.gz")) + (sha256 + (base32 + "05jn1pgb7hqb937xky2147nnq3r4qy5wwr79rddpax3bms5a9xr4")))))) + (define-public cunit (package (name "cunit") @@ -77,11 +93,10 @@ source code editors and IDEs.") "057j82da9vv4li4z5ri3227ybd18nzyq81f6gsvhifs5z0vr3cpm")))) (build-system gnu-build-system) (arguments '(#:phases - (alist-cons-before - 'configure 'autoconf - (lambda _ - (zero? (system* "autoreconf" "-vfi"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf) @@ -294,3 +309,26 @@ generation.") C++ but is used in C and C++ projects and frequently used in embedded systems but it works for any C/C++ project.") (license bsd-3))) + +(define-public python-parameterized + (package + (name "python-parameterized") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "parameterized" version)) + (sha256 + (base32 + "1qj1939shm48d9ql6fm1nrdy4p7sdyj8clz1szh5swwpf1qqxxfa")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; there are no tests + (home-page "https://github.com/wolever/parameterized") + (synopsis "Parameterized testing with any Python test framework") + (description + "Parameterized is a Python library that aims to fix parameterized testing +for every Python test framework. It supports nose, py.test, and unittest.") + (license bsd-2))) + +(define-public python2-parameterized + (package-with-python2 python-parameterized)) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 6e04739f62..859dfd0ca7 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -58,7 +58,11 @@ ;; Needed to have cflow-mode.el installed. (native-inputs `(("emacs" ,emacs-minimal))) - + (arguments + '(#:configure-flags (list (string-append "CPPFLAGS=" + "-D" "CFLOW_PREPROC=\\\"" + (assoc-ref %build-inputs "gcc") + "/bin/cpp\\\"")))) (home-page "https://www.gnu.org/software/cflow/") (synopsis "Create a graph of control flow within a program") (description diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index f3fe5e8de1..f8cfd4dde8 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -16,7 +16,7 @@ ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis -;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -479,7 +479,7 @@ some compression ratio).") (description "Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses -more than bzip2, which makes it well suited for software distribution and data +more than bzip2, which makes it well-suited for software distribution and data archiving. Lzip is a clean implementation of the LZMA algorithm.") (license license:gpl3+))) @@ -530,14 +530,14 @@ decompressors when faced with corrupted input.") `(("which" ,which))) (arguments `(#:phases - (alist-cons-after - 'patch-source-shebangs 'unpatch-source-shebang - ;; revert the patch-shebang phase on a script which is - ;; in fact test data - (lambda _ - (substitute* "tests/shar-1.ok" - (((which "sh")) "/bin/sh"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'unpatch-source-shebang + ;; revert the patch-shebang phase on a script which is + ;; in fact test data + (lambda _ + (substitute* "tests/shar-1.ok" + (((which "sh")) "/bin/sh")) + #t))))) (home-page "https://www.gnu.org/software/sharutils/") (synopsis "Archives in shell scripts, uuencode/uudecode") (description @@ -1312,7 +1312,7 @@ RAR archives.") (define-public zstd (package (name "zstd") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/archive/v" @@ -1320,17 +1320,7 @@ RAR archives.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1imddqjhczira626nf3nqmjwj3wb37xcfcwgkjydv2k6fpfbjbri")) - (modules '((guix build utils))) - (snippet - ;; Remove non-free source files. - '(begin - (for-each delete-file-recursively - (list - ;; Commercial use of the following is not allowed. - "examples" - "LICENSE-examples")) - #t)))) + "12krs9k5f408kyn0d7dwxqyc67177mgd14783ay10rafqsim8l5c")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1349,7 +1339,10 @@ zlib. In most scenarios, both compression and decompression can be performed in trade-off between compression ratio and speed, without affecting decompression speed.") (license (list license:bsd-3 ; the main top-level LICENSE file - license:bsd-2 ; quite a few files have but 2 clauses + license:bsd-2 ; many files explicitly state 2-Clause + license:gpl2 ; the mail top-level COPYING file + license:gpl3+ ; tests/gzip/*.sh + license:expat ; lib/dictBuilder/divsufsort.[ch] license:public-domain ; zlibWrapper/examples/fitblk* license:zlib)))) ; zlibWrapper/{gz*.c,gzguts.h} diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm index 1f5b38eef4..f0f19c5a0e 100644 --- a/gnu/packages/conky.scm +++ b/gnu/packages/conky.scm @@ -50,22 +50,21 @@ ;; TODO: add 'ncurses.pc' to the ncurses package. "-DBUILD_NCURSES=false") #:phases - (alist-cons-after - 'unpack 'add-freetype-to-search-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "cmake/ConkyPlatformChecks.cmake" - (("set\\(INCLUDE_SEARCH_PATH") - (string-append - "set(INCLUDE_SEARCH_PATH " - (assoc-ref inputs "freetype") "/include/freetype2 "))) - #t) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (mkdir-p bin) - (install-file "src/conky" bin))) - %standard-phases)))) + (modify-phases %standard-phases + (add-after 'unpack 'add-freetype-to-search-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "cmake/ConkyPlatformChecks.cmake" + (("set\\(INCLUDE_SEARCH_PATH") + (string-append + "set(INCLUDE_SEARCH_PATH " + (assoc-ref inputs "freetype") "/include/freetype2 "))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "src/conky" bin)) + #t))))) (inputs `(("freetype" ,freetype) ("ncurses" ,ncurses) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 9c657cd1f6..0f017888b2 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -58,7 +58,7 @@ (define-public libsodium (package (name "libsodium") - (version "1.0.14") + (version "1.0.15") (source (origin (method url-fetch) (uri (list (string-append @@ -69,7 +69,7 @@ "releases/old/libsodium-" version ".tar.gz"))) (sha256 (base32 - "1rvylybhxyn6ap3hrcingsl737zrqg12l7r91ns93j7xjz889z1w")))) + "1x3qw7lsz44vcxpcn1dvwig410phg6gmv31jwj94arrgka3rwspv")))) (build-system gnu-build-system) (synopsis "Portable NaCl-based crypto library") (description diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index cef586f763..d629e38032 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -57,7 +57,7 @@ (define-public cups-filters (package (name "cups-filters") - (version "1.14.1") + (version "1.17.7") (source(origin (method url-fetch) (uri @@ -65,7 +65,7 @@ "cups-filters-" version ".tar.xz")) (sha256 (base32 - "0175jhqpsyn7bkh7w43ydhyws5zsdak05hr1fsadvzslvwqkffgi")) + "1mg397kgfx0rs9j852f8ppmvaz2al5l75ildbgiqg6j3gwq5jssw")) (modules '((guix build utils))) (snippet ;; install backends, banners and filters to cups-filters output @@ -93,6 +93,13 @@ #:configure-flags `("--disable-driverless" ; TODO: enable this "--disable-mutool" ; depends on yet another PDF library (mupdf) + + ;; Look for the "domain socket of CUPS" in /var/run/cups. + "--localstatedir=/var" + + ;; Free software for the win. + "--with-acroread-path=evince" + ,(string-append "--with-test-font-path=" (assoc-ref %build-inputs "font-dejavu") "/share/fonts/truetype/DejaVuSans.ttf") @@ -103,7 +110,34 @@ (assoc-ref %build-inputs "bash") "/bin/bash") ,(string-append "--with-rcdir=" - (assoc-ref %outputs "out") "/etc/rc.d")))) + (assoc-ref %outputs "out") "/etc/rc.d")) + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-foomatic-hardcoded-file-names + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Foomatic has hardcoded file names we need to fix. + (let ((out (assoc-ref outputs "out")) + (gs (assoc-ref inputs "ghostscript"))) + (substitute* "filter/foomatic-rip/foomaticrip.c" + (("/usr/local/lib/cups/filter") + (string-append out "/lib/cups/filter"))) + #t))) + (add-after 'install 'wrap-filters + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Some filters expect to find 'gs' in $PATH. We cannot + ;; just hard-code its absolute file name in the source + ;; because foomatic-rip, for example, has tests like + ;; 'startswith(cmd, "gs")'. + (let ((out (assoc-ref outputs "out")) + (ghostscript (assoc-ref inputs "ghostscript"))) + (for-each (lambda (file) + (wrap-program file + `("PATH" ":" prefix + (,(string-append ghostscript + "/bin"))))) + (find-files (string-append + out "/lib/cups/filter"))) + #t)))))) (native-inputs `(("glib" ,glib "bin") ; for gdbus-codegen ("pkg-config" ,pkg-config))) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 2fb5245a45..60a71f8c6c 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -43,15 +43,15 @@ (define-public curl (package (name "curl") - (version "7.55.0") + (version "7.55.1") + (replacement curl-7.56.0) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" - version ".tar.lzma")) - (patches (search-patches "curl-bounds-check.patch")) + version ".tar.xz")) (sha256 (base32 - "1785vxi0jamiv9d1wr1l45g0fm9ircxdfyfzf7ld8zv0z0i8bmfd")))) + "1dvbcwcar3dv488h9378hy145ma3ws2fwpbr6mgszd7chipcmbry")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -131,3 +131,16 @@ tunneling, and so on.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) + +(define-public curl-7.56.0 + (package + (inherit curl) + (version "7.56.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://curl.haxx.se/download/curl-" + version ".tar.xz")) + (sha256 + (base32 + "0wni3zkw7jyrwgwkqnrkf2x2b7c78wsp7p4z6a246hz9l367nhrj")))))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 20981dced1..53827dad3c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 -;;; Copyright © 2016 Roel Janssen +;;; Copyright © 2016, 2017 Roel Janssen ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Andy Patterson @@ -19,6 +19,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Ben Woodcroft +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,8 +70,10 @@ #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) + #:use-module (gnu packages serialization) #:use-module (gnu packages tcl) #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -154,14 +157,14 @@ and provides interfaces to the traditional file format.") (define-public bdb (package (name "bdb") - (version "6.2.23") + (version "6.2.32") (source (origin (method url-fetch) (uri (string-append "http://download.oracle.com/berkeley-db/db-" version ".tar.gz")) (sha256 (base32 - "1isxx4jfmnh913jzhp8hhfngbk6dsg46f4kjpvvc56maj64jqqa7")))) + "1yx8wzhch5wwh016nh0kfxvknjkafv6ybkqh6nh7lxx50jqf5id9")))) (build-system gnu-build-system) (outputs '("out" ; programs, libraries, headers "doc")) ; 94 MiB of HTML docs @@ -169,34 +172,33 @@ and provides interfaces to the traditional file format.") '(#:tests? #f ; no check target available #:disallowed-references ("doc") #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - ;; '--docdir' is not honored, so we need to patch. - (substitute* "dist/Makefile.in" - (("docdir[[:blank:]]*=.*") - (string-append "docdir = " doc "/share/doc/bdb"))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + ;; '--docdir' is not honored, so we need to patch. + (substitute* "dist/Makefile.in" + (("docdir[[:blank:]]*=.*") + (string-append "docdir = " doc "/share/doc/bdb"))) - (zero? - (system* "./dist/configure" - (string-append "--prefix=" out) - (string-append "CONFIG_SHELL=" (which "bash")) - (string-append "SHELL=" (which "bash")) + (zero? + (system* "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")) - ;; Remove 7 MiB of .a files. - "--disable-static" + ;; Remove 7 MiB of .a files. + "--disable-static" - ;; The compatibility mode is needed by some packages, - ;; notably iproute2. - "--enable-compat185" + ;; The compatibility mode is needed by some packages, + ;; notably iproute2. + "--enable-compat185" - ;; The following flag is needed so that the inclusion - ;; of db_cxx.h into C++ files works; it leads to - ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. - "--enable-cxx")))) - %standard-phases))) + ;; The following flag is needed so that the inclusion + ;; of db_cxx.h into C++ files works; it leads to + ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. + "--enable-cxx")))))))) (synopsis "Berkeley database") (description "Berkeley DB is an embeddable database allowing developers the choice of @@ -224,39 +226,38 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") `(#:tests? #f ; no check target available #:disallowed-references ("doc") #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - ;; '--docdir' is not honored, so we need to patch. - (substitute* "dist/Makefile.in" - (("docdir[[:blank:]]*=.*") - (string-append "docdir = " doc "/share/doc/bdb"))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + ;; '--docdir' is not honored, so we need to patch. + (substitute* "dist/Makefile.in" + (("docdir[[:blank:]]*=.*") + (string-append "docdir = " doc "/share/doc/bdb"))) - (zero? - (system* "./dist/configure" - (string-append "--prefix=" out) - (string-append "CONFIG_SHELL=" (which "bash")) - (string-append "SHELL=" (which "bash")) + (zero? + (system* "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")) - ;; Bdb doesn't recognize aarch64 as an architecture. - ,@(if (string=? "aarch64-linux" (%current-system)) - '("--build=aarch64-unknown-linux-gnu") - '()) + ;; Bdb doesn't recognize aarch64 as an architecture. + ,@(if (string=? "aarch64-linux" (%current-system)) + '("--build=aarch64-unknown-linux-gnu") + '()) - ;; Remove 7 MiB of .a files. - "--disable-static" + ;; Remove 7 MiB of .a files. + "--disable-static" - ;; The compatibility mode is needed by some packages, - ;; notably iproute2. - "--enable-compat185" + ;; The compatibility mode is needed by some packages, + ;; notably iproute2. + "--enable-compat185" - ;; The following flag is needed so that the inclusion - ;; of db_cxx.h into C++ files works; it leads to - ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. - "--enable-cxx")))) - %standard-phases))))) + ;; The following flag is needed so that the inclusion + ;; of db_cxx.h into C++ files works; it leads to + ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. + "--enable-cxx")))))))))) (define-public es-dump-restore (package @@ -357,6 +358,98 @@ and generic API, and was originally intended for use with dynamic web applications.") (license license:bsd-3))) +(define-public mongodb + (package + (name "mongodb") + (version "3.4.9") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mongodb/mongo/archive/r" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0gidwyvh3bdwmk2pccgkqkaln4ysgn8iwa7ihjzllsq0rdg95045")) + (patches + (list + (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) + (build-system gnu-build-system) + (inputs + `(("openssl" ,openssl) + ("pcre" ,pcre) + ("yaml-cpp" ,yaml-cpp) + ("zlib" ,zlib) + ("snappy" ,snappy) + ("boost" ,boost))) + (native-inputs + `(("scons" ,scons) + ("python" ,python-2) + ("valgrind" ,valgrind) + ("perl" ,perl))) + (arguments + `(#:phases + (let ((common-options + `(;; "--use-system-tcmalloc" TODO: Missing gperftools + "--use-system-pcre" + ;; TODO + ;; build/opt/mongo/db/fts/unicode/string.o failed: Error 1 + ;; --use-system-boost + "--use-system-snappy" + "--use-system-zlib" + "--use-system-valgrind" + ;; "--use-system-stemmer" TODO: Missing relevant package + "--use-system-yaml" + "--disable-warnings-as-errors" + ,(format #f "--jobs=~a" (parallel-job-count)) + "--ssl"))) + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase + (add-after 'unpack 'scons-propagate-environment + (lambda _ + ;; Modify the SConstruct file to arrange for + ;; environment variables to be propagated. + (substitute* "SConstruct" + (("^env = Environment\\(") + "env = Environment(ENV=os.environ, ")) + #t)) + (add-after 'unpack 'create-version-file + (lambda _ + (call-with-output-file "version.json" + (lambda (port) + (display ,(simple-format #f "{ + \"version\": \"~A\" +}" version) port))) + #t)) + (replace 'build + (lambda _ + (zero? (apply system* + `("scons" + ,@common-options + "mongod" "mongo" "mongos"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (or (not tests?) + (zero? (apply system* + `("scons" + ,@common-options + "dbtest" "unittests")))))) + (replace 'install + (lambda _ + (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))) + (install-file "mongod" bin) + (install-file "mongos" bin) + (install-file "mongo" bin)) + #t)))))) + (home-page "https://www.mongodb.org/") + (synopsis "High performance and high availability document database") + (description + "Mongo is a high-performance, high availability, schema-free +document-oriented database. A key goal of MongoDB is to bridge the gap +between key/value stores (which are fast and highly scalable) and traditional +RDBMS systems (which are deep in functionality).") + (license (list license:agpl3 + ;; Some parts are licensed under the Apache License + license:asl2.0)))) + (define-public mysql (package (name "mysql") @@ -512,14 +605,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "9.6.5") + (version "10.0") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "0k3ls2x182jz6djjiqj9kycddabdl2gk1y1ajq1vipnxwfki5nh6")))) + "1lbzwpmdxmk5bh0ix0rn72qbd52dq5cb55nzajscb0bvwa95abvi")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-uuid=e2fs") @@ -1717,3 +1810,30 @@ implementation for Python.") (define-public python2-orator (package-with-python2 (strip-python2-variant python-orator))) + +(define-public virtuoso-ose + (package + (name "virtuoso-ose") + (version "7.2.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/openlink/virtuoso-opensource/releases/" + "download/v" version "/virtuoso-opensource-" version ".tar.gz")) + (sha256 + (base32 "12dqam1gc1v93l0bj0vlpvjqppki6y1hqrlznywxnw0rrz9pb002")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ; Tests require a network connection. + (inputs + `(("openssl" ,openssl) + ("net-tools" ,net-tools))) + (home-page "http://vos.openlinksw.com/owiki/wiki/VOS/") + (synopsis "Multi-model database system") + (description "Virtuoso is a scalable cross-platform server that combines +relational, graph, and document data management with web application server +and web services platform functionality.") + ;; configure: error: ... can only be build on 64bit platforms + (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux")) + (license license:gpl2))) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 6c466977d2..5a780b9148 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -55,13 +55,13 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.16.2") + (version "0.16.3") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "19xqzxcgmpm2z56l2d4a1n4sqmhrnzfwx3d9avfzgldwyhlrz0da")))) + "0dpwbfi97ksijqng191659m8k0v215y8ld95w8gb126m4m96qpzw")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -89,6 +89,7 @@ clients.") ("python-pytest" ,python-pytest) ("python-pytest-localserver" ,python-pytest-localserver) ("python-pytest-subtesthack" ,python-pytest-subtesthack) + ("python-urllib3" ,python-urllib3) ("python-wsgi-intercept" ,python-wsgi-intercept) ("radicale" ,radicale))) (propagated-inputs diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 43bfd9e514..83346a4eb3 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -58,23 +58,24 @@ `(("perl" ,perl))) (arguments `(#:phases - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - ;; Makefile contains no install target - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (doc (string-append out "/share/doc/delta-" ,version))) - (begin - (mkdir-p bin) - (mkdir-p doc) - (for-each (lambda (h) - (install-file h doc)) - `("License.txt" ,@(find-files "www" ".*\\.html"))) - (for-each (lambda (b) - (install-file b bin)) - `("delta" "multidelta" "topformflat"))))) - (alist-delete 'configure %standard-phases)))) + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; Makefile contains no install target + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/delta-" ,version))) + (begin + (mkdir-p bin) + (mkdir-p doc) + (for-each (lambda (h) + (install-file h doc)) + `("License.txt" ,@(find-files "www" ".*\\.html"))) + (for-each (lambda (b) + (install-file b bin)) + `("delta" "multidelta" "topformflat")))) + #t)) + (delete 'configure)))) (home-page "http://delta.tigris.org/") (synopsis "Heuristical file minimizer") (description @@ -114,23 +115,24 @@ program to exhibit a bug.") ("sys-cpu" ,perl-sys-cpu) ("term-readkey" ,perl-term-readkey))) (arguments - `(#:phases (alist-cons-after - 'install 'set-load-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Tell creduce where to find the perl modules it needs. - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/bin/creduce"))) - (wrap-program - prog - `("PERL5LIB" ":" prefix - ,(map (lambda (p) - (string-append (assoc-ref inputs p) - "/lib/perl5/site_perl/" - ,(package-version perl))) - '("term-readkey" "exporter-lite" - "file-which" "getopt-tabular" - "regex-common" "sys-cpu")))))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'set-load-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Tell creduce where to find the perl modules it needs. + (let* ((out (assoc-ref outputs "out")) + (prog (string-append out "/bin/creduce"))) + (wrap-program + prog + `("PERL5LIB" ":" prefix + ,(map (lambda (p) + (string-append (assoc-ref inputs p) + "/lib/perl5/site_perl/" + ,(package-version perl))) + '("term-readkey" "exporter-lite" + "file-which" "getopt-tabular" + "regex-common" "sys-cpu"))))) + #t))))) (home-page "http://embed.cs.utah.edu/creduce") (synopsis "Reducer for interesting code") (description diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 9f8d7b8250..8e5bca64c0 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -132,16 +132,16 @@ Qt-style API for Wayland clients.") (define-public sddm (package (name "sddm") - (version "0.15.0") + (version "0.16.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/sddm/sddm" "/releases/download/v" version "/" - "sddm-" version ".tar.gz")) + "sddm-" version ".tar.xz")) (sha256 (base32 - "0x1igkjm3k8q26xbmg0qah1fc2pn2sfc675w0xg42x7ncrdiw8d4")))) + "0fwf1wsdak5yglykfyq4wbx9g9gi079n8ncjrdynz17hwwiql4z9")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -337,17 +337,18 @@ GTK+, lets you select a desktop session and log in to it.") (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:phases (alist-cons-before - 'configure 'set-new-etc-location - (lambda _ - (substitute* "CMakeLists.txt" - (("/etc") - (string-append (assoc-ref %outputs "out") "/etc")) - (("install.*systemd.*") - ;; The build system's logic here is: if "Linux", then - ;; "systemd". Strip that. - ""))) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'set-new-etc-location + (lambda _ + (substitute* "CMakeLists.txt" + (("/etc") + (string-append (assoc-ref %outputs "out") "/etc")) + (("install.*systemd.*") + ;; The build system's logic here is: if "Linux", then + ;; "systemd". Strip that. + "")) + #t))) #:configure-flags '("-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no") #:tests? #f)) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index e0a3f5dc58..657e7eb2a4 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016 Ricardo Wurmus -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 ng0 ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice @@ -59,7 +59,7 @@ (define-public dnsmasq (package (name "dnsmasq") - (version "2.76") + (version "2.78") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +67,7 @@ version ".tar.xz")) (sha256 (base32 - "15lzih6671gh9knzpl8mxchiml7z5lfqzr7jm2r0rjhrxs6nk4jb")))) + "0ar5h5v3kas2qx2wgy5iqin15gc4jhqrqs067xacgc3lii1rz549")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -75,7 +75,7 @@ `(("dbus" ,dbus))) (arguments `(#:phases - (alist-delete 'configure %standard-phases) + (modify-phases %standard-phases (delete 'configure)) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "CC=gcc" "COPTS=\"-DHAVE_DBUS\"") @@ -483,14 +483,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.5.5") + (version "2.6.0") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "1bwv2a290inkjb5x9a9sahls39rgaqyq9dwfrk1ilmzy9nmls87f")) + "1zc3ybhcxgbysyy68kbmndh6xzy4jnr5iikyrf9s2sxzs1hlkq38")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 91209376cd..60dfa509aa 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5d1090fb7e..b29436154e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -304,14 +304,15 @@ editor (without an X toolkit)" ) "0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (symlink "geiser-install.el" - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/" - "geiser-autoloads.el"))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (symlink "geiser-install.el" + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp/" + "geiser-autoloads.el")) + #t))))) (inputs `(("guile" ,guile-2.0))) (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://nongnu.org/geiser/") @@ -770,25 +771,25 @@ provides an optional IDE-like error list.") (guix build emacs-utils)) #:tests? #f ; no check target #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("/usr/local") (assoc-ref outputs "out")) - (("/site-lisp/emacs-wget") "/site-lisp"))) - (alist-cons-before - 'build 'patch-exec-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((wget (assoc-ref inputs "wget"))) - (emacs-substitute-variables "wget.el" - ("wget-command" (string-append wget "/bin/wget"))))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (emacs-generate-autoloads - "wget" (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/"))) - %standard-phases))))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile" + (("/usr/local") (assoc-ref outputs "out")) + (("/site-lisp/emacs-wget") "/site-lisp")) + #t)) + (add-before 'build 'patch-exec-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((wget (assoc-ref inputs "wget"))) + (emacs-substitute-variables "wget.el" + ("wget-command" (string-append wget "/bin/wget")))) + #t)) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (emacs-generate-autoloads + "wget" (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp/")) + #t))))) (home-page "http://www.emacswiki.org/emacs/EmacsWget") (synopsis "Simple file downloader for Emacs based on wget") (description @@ -992,15 +993,16 @@ within a specified width. It is useful for displaying long track titles.") "doc_DATA =\n"))))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Add an autoloads file with the right name for guix.el. - (let* ((out (assoc-ref outputs "out")) - (site (string-append out "/share/emacs/site-lisp"))) - (with-directory-excursion site - (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Add an autoloads file with the right name for guix.el. + (let* ((out (assoc-ref outputs "out")) + (site (string-append out "/share/emacs/site-lisp"))) + (with-directory-excursion site + (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el"))) + #t))))) (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://savannah.nongnu.org/projects/bbdb/") (synopsis "Contact management utility for Emacs") @@ -2461,7 +2463,7 @@ in @code{html-mode}.") (define-public emacs-slime (package (name "emacs-slime") - (version "2.19") + (version "2.20") (source (origin (file-name (string-append name "-" version ".tar.gz")) @@ -2471,7 +2473,7 @@ in @code{html-mode}.") version ".tar.gz")) (sha256 (base32 - "1jhaq5cn89k45nzyl0jd12gmjxnh1bq9jlfwrxba342agxsscb0p")))) + "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk")))) (build-system emacs-build-system) (native-inputs `(("texinfo" ,texinfo))) @@ -4973,7 +4975,7 @@ containing words from the rime project.") (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) - ("emacs-exwm" ,emacs-pyim-basedict) + ("emacs-pyim-basedict" ,emacs-pyim-basedict) ("emacs-popup" ,emacs-popup) ("emacs-pos-tip" ,emacs-pos-tip))) (home-page "https://github.com/tumashu/pyim") @@ -4982,6 +4984,79 @@ containing words from the rime project.") and cangjie.") (license license:gpl2+))) +(define-public emacs-el2org + (package + (name "emacs-el2org") + (version "0.6.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/tumashu/el2org/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq")))) + (build-system emacs-build-system) + (home-page "https://github.com/tumashu/el2org") + (synopsis "Convert Emacs-lisp file to org file") + (description "El2org is a simple tool, which can convert Emacs-lisp file +to org file, you can use this tool to write orgify commentary.") + (license license:gpl2+))) + +(define-public emacs-mustache + (package + (name "emacs-mustache") + (version "0.23") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Wilfred/mustache.el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-ht" ,emacs-ht) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/Wilfred/mustache.el") + (synopsis "Mustache templating library for Emacs") + (description "Mustache templating library for Emacs, mustache is +a simple web template system, which is described as a logic-less system +because it lacks any explicit control flow statements, both looping and +conditional evaluation can be achieved using section tags processing lists +and lambdas.") + (license license:gpl3+))) + +(define-public emacs-org2web + (package + (name "emacs-org2web") + (version "0.9.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/tumashu/org2web/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-el2org" ,emacs-el2org) + ("emacs-ht" ,emacs-ht) + ("emacs-mustache" ,emacs-mustache) + ("emacs-simple-httpd" ,emacs-simple-httpd))) + (home-page "https://github.com/tumashu/org2web") + (synopsis "Static site generator based on org-mode ") + (description "Org2web is a static site generator based on org-mode, +which code derived from Kelvin H's org-page.") + (license license:gpl2+))) + (define-public emacs-xelb (package (name "emacs-xelb") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 5492f1c629..543a166da4 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016, 2017 Ludovic Courtès -;;; Copyright © 2016, 2017 Theodoros Foradis +;;; Copyright © 2016, 2017 Theodoros Foradis ;;; Copyright © 2017 Julien Lepiller ;;; ;;; This file is part of GNU Guix. @@ -192,28 +192,27 @@ utilities.") (build-system gnu-build-system) (arguments `(#:phases - (alist-cons-after - 'unpack 'use-wish8.6 - (lambda _ - (substitute* "configure" - (("wish85") "wish8.6"))) - (alist-cons-after - 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; FIXME: Mesa tries to dlopen libudev.so.0 and fails. Pending a - ;; fix of the mesa package we wrap the pcb executable such that - ;; Mesa can find libudev.so.0 through LD_LIBRARY_PATH. - (let* ((out (assoc-ref outputs "out")) - (path (string-append (assoc-ref inputs "udev") "/lib"))) - (wrap-program (string-append out "/bin/pcb") - `("LD_LIBRARY_PATH" ":" prefix (,path))))) - (alist-cons-before - 'check 'pre-check - (lambda _ - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - #t) - %standard-phases))))) + (modify-phases %standard-phases + (add-after 'unpack 'use-wish8.6 + (lambda _ + (substitute* "configure" + (("wish85") "wish8.6")) + #t)) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; FIXME: Mesa tries to dlopen libudev.so.0 and fails. Pending a + ;; fix of the mesa package we wrap the pcb executable such that + ;; Mesa can find libudev.so.0 through LD_LIBRARY_PATH. + (let* ((out (assoc-ref outputs "out")) + (path (string-append (assoc-ref inputs "udev") "/lib"))) + (wrap-program (string-append out "/bin/pcb") + `("LD_LIBRARY_PATH" ":" prefix (,path)))) + #t)) + (add-before 'check 'pre-check + (lambda _ + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t))))) (inputs `(("dbus" ,dbus) ("mesa" ,mesa) @@ -1178,3 +1177,105 @@ servers, ...") "ASCO brings circuit optimization capabilities to existing SPICE simulators using a high-performance parallel differential evolution (DE) optimization algorithm.") (license license:gpl2+))) + +(define-public libngspice + ;; Note: The ngspice's build system does not allow us to build both the + ;; library and the executables in one go. Thus, we have two packages. + ;; See . + (package + (name "libngspice") + (version "26") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/" + version "/ngspice-" version ".tar.gz")) + (sha256 + (base32 + "02019ndcl057nq9z41nxycqba7wxlb081ibvfj9jv010nz431qji")) + (modules '((guix build utils))) + ;; We remove the non-free cider and build without it. + (snippet + '(begin + (delete-file-recursively "src/ciderlib") + (delete-file "src/ciderinit") + (substitute* "configure" + (("src/ciderlib/Makefile") "") + (("src/ciderlib/input/Makefile") "") + (("src/ciderlib/support/Makefile") "") + (("src/ciderlib/oned/Makefile") "") + (("src/ciderlib/twod/Makefile") "")))))) + (build-system gnu-build-system) + (arguments + `(;; No tests for libngspice exist. + ;; The transient tests for ngspice fail. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-timestamps + (lambda _ + (substitute* "configure" + (("`date`") "Do 1. Jan 00:00:00 UTC 1970")) + #t)) + (add-after 'unpack 'delete-program-manuals + (lambda _ + (substitute* "man/man1/Makefile.in" + (("^man_MANS = ngspice\\.1 ngnutmeg\\.1 ngsconvert\\.1 ngmultidec\\.1") + "man_MANS = ")) + #t)) + (add-after 'install 'delete-script-files + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") + "/share/ngspice/scripts"))))) + #:configure-flags + (list "--enable-openmp" + "--enable-xspice" + "--with-ngshared" + "--with-readline=yes"))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex))) + (inputs + `(("libxaw" ,libxaw) + ("mpi" ,openmpi) + ("readline" ,readline))) + (home-page "http://ngspice.sourceforge.net/") + (synopsis "Mixed-level/mixed-signal circuit simulator") + (description + "Ngspice is a mixed-level/mixed-signal circuit simulator. It includes +@code{Spice3f5}, a circuit simulator, and @code{Xspice}, an extension that +provides code modeling support and simulation of digital components through +an embedded event driven algorithm.") + (license (list license:lgpl2.0+ ; code in frontend/numparam + (license:non-copyleft "file:///COPYING") ; spice3 bsd-style + license:public-domain)))) ; xspice + +(define-public ngspice + ;; The ngspice executables (see libngpsice above.) + (package (inherit libngspice) + (name "ngspice") + (arguments + (substitute-keyword-arguments (package-arguments libngspice) + ((#:configure-flags flags) + `(delete "--with-ngshared" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'delete-include-files + (lambda _ + (substitute* "src/Makefile.in" + (("^SUBDIRS = misc maths frontend spicelib include/ngspice") + "SUBDIRS = misc maths frontend spicelib")) + #t)) + (add-after 'install 'delete-cmpp-dlmain + (lambda* (#:key outputs #:allow-other-keys) + (for-each (lambda (file) + (delete-file + (string-append (assoc-ref outputs "out") + file))) + '("/bin/cmpp" "/share/ngspice/dlmain.c")) + #t)) + (delete 'delete-program-manuals) + (delete 'delete-script-files))))) + (inputs + `(("libngspice" ,libngspice) + ("readline" ,readline))))) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 9e346a6625..f82accb038 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -22,37 +22,37 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages finance) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix build-system cmake) - #:use-module (guix build-system python) - #:use-module (gnu packages base) - #:use-module (gnu packages boost) - #:use-module (gnu packages check) - #:use-module (gnu packages databases) - #:use-module (gnu packages documentation) - #:use-module (gnu packages dns) - #:use-module (gnu packages emacs) - #:use-module (gnu packages graphviz) - #:use-module (gnu packages groff) - #:use-module (gnu packages libedit) - #:use-module (gnu packages libevent) - #:use-module (gnu packages libunwind) - #:use-module (gnu packages linux) - #:use-module (gnu packages multiprecision) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages protobuf) - #:use-module (gnu packages python) - #:use-module (gnu packages qt) - #:use-module (gnu packages texinfo) - #:use-module (gnu packages textutils) - #:use-module (gnu packages tls) - #:use-module (gnu packages upnp) - #:use-module (gnu packages web) - #:use-module (gnu packages xml) - #:use-module (gnu packages gnuzilla)) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix build-system python) + #:use-module (gnu packages base) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) + #:use-module (gnu packages databases) + #:use-module (gnu packages documentation) + #:use-module (gnu packages dns) + #:use-module (gnu packages emacs) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages groff) + #:use-module (gnu packages libedit) + #:use-module (gnu packages libevent) + #:use-module (gnu packages libunwind) + #:use-module (gnu packages linux) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages textutils) + #:use-module (gnu packages tls) + #:use-module (gnu packages upnp) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages gnuzilla)) (define-public bitcoin-core (package diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 8d0b824784..7a57300b41 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -52,31 +52,31 @@ (patches (search-patches "ath9k-htc-firmware-objcopy.patch")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (chdir "target_firmware") + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + (chdir "target_firmware") - ;; 'configure' is a simple script that runs 'cmake' with - ;; the right flags. - (substitute* "configure" - (("^TOOLCHAIN=.*$") - (string-append "TOOLCHAIN=" - (assoc-ref inputs "cross-gcc") - "\n")))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (fw-dir (string-append out "/lib/firmware"))) - (mkdir-p fw-dir) - (for-each (lambda (file) - (copy-file file - (string-append fw-dir "/" - (basename file)))) - (find-files "." "\\.fw$")) - #t)) - %standard-phases)) + ;; 'configure' is a simple script that runs 'cmake' with + ;; the right flags. + (substitute* "configure" + (("^TOOLCHAIN=.*$") + (string-append "TOOLCHAIN=" + (assoc-ref inputs "cross-gcc") + "\n"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (fw-dir (string-append out "/lib/firmware"))) + (mkdir-p fw-dir) + (for-each (lambda (file) + (copy-file file + (string-append fw-dir "/" + (basename file)))) + (find-files "." "\\.fw$")) + #t)))) #:tests? #f)) ;; The firmware is cross-compiled using a "bare bones" compiler (no libc.) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index 127fc795a3..ef43310d77 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Ludovic Courtès ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Jonathan Brielmaier +;;; Copyright © 2017 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,19 +23,22 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages flashing-tools) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages bison) + #:use-module (gnu packages compression) #:use-module (gnu packages flex) #:use-module (gnu packages elf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages libusb) #:use-module (gnu packages libftdi) #:use-module (gnu packages pciutils) + #:use-module (gnu packages qt) #:use-module (gnu packages autotools) #:use-module (gnu packages admin)) @@ -62,17 +66,16 @@ "CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no") #:tests? #f ; no 'check' target #:phases - (alist-delete - 'configure - (alist-cons-before - 'build 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "dmi.c" - (("\"dmidecode\"") - (format #f "~S" - (string-append (assoc-ref inputs "dmidecode") - "/sbin/dmidecode"))))) - %standard-phases)))) + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "dmi.c" + (("\"dmidecode\"") + (format #f "~S" + (string-append (assoc-ref inputs "dmidecode") + "/sbin/dmidecode")))) + #t))))) (home-page "http://flashrom.org/") (synopsis "Identify, read, write, erase, and verify ROM/flash chips") (description @@ -81,7 +84,7 @@ verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.") - (license gpl2))) + (license license:gpl2))) (define-public 0xffff (package @@ -112,7 +115,7 @@ programmer devices.") for FIASCO images. It supports generating, unpacking, editing and flashing of FIASCO images for Maemo devices. Use it with care. It can brick your device.") - (license gpl3+))) + (license license:gpl3+))) (define-public avrdude (package @@ -140,7 +143,7 @@ brick your device.") "AVRDUDE is a utility to download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers using the in-system programming technique (ISP).") - (license gpl2+))) + (license license:gpl2+))) (define-public dfu-programmer (package @@ -166,7 +169,7 @@ technique (ISP).") "Dfu-programmer is a multi-platform command-line programmer for Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting ISP.") - (license gpl2+))) + (license license:gpl2+))) (define-public dfu-util (package @@ -193,7 +196,7 @@ ranges from small devices like micro-controller boards up to mobile phones. With dfu-util you are able to download firmware to your device or upload firmware from it.") (home-page "http://dfu-util.sourceforge.net/") - (license gpl2+))) + (license license:gpl2+))) (define-public teensy-loader-cli ;; The repo does not tag versions nor does it use releases, but a commit @@ -244,7 +247,7 @@ HalfKay bootloader is running, so you can upload new programs and run them. You need to add the udev rules to make the Teensy update available for non-root users.") (home-page "https://www.pjrc.com/teensy/loader_cli.html") - (license gpl3)))) + (license license:gpl3)))) (define-public rkflashtool (let ((commit "094bd6410cb016e487e2ccb1050c59eeac2e6dd1") @@ -278,4 +281,51 @@ non-root users.") (description "Allows flashing of Rockchip based embedded linux devices. The list of currently supported devices is: RK2818, RK2918, RK2928, RK3026, RK3036, RK3066, RK312X, RK3168, RK3188, RK3288, RK3368.") - (license bsd-2)))) + (license license:bsd-2)))) + +(define-public heimdall + (package + (name "heimdall") + (version "1.4.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/Benjamin-Dobell/Heimdall" + "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1y7gwg3lipyp2zcysm2vid1qg5nwin9bxbvgzs28lz2rya4fz6sq")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-invocations + (lambda* (#:key outputs #:allow-other-keys) + (substitute* '("heimdall-frontend/source/aboutform.cpp" + "heimdall-frontend/source/mainwindow.cpp") + (("start[(]\"heimdall\"") + (string-append "start(\"" (assoc-ref outputs "out") + "/bin/heimdall\""))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin")) + (lib (string-append (assoc-ref outputs "out") "/lib"))) + (install-file "bin/heimdall" bin) + (install-file "bin/heimdall-frontend" bin) + (install-file "libpit/libpit.a" lib) + #t)))))) + (inputs + `(("libusb" ,libusb) + ("qtbase" ,qtbase) + ("zlib" ,zlib))) + (home-page "http://glassechidna.com.au/heimdall/") + (synopsis "Flash firmware onto Samsung mobile devices") + (description "@command{heimdall} is a tool suite used to flash firmware (aka +ROMs) onto Samsung mobile devices. Heimdall connects to a mobile device over +USB and interacts with low-level software running on the device, known as Loke. +Loke and Heimdall communicate via the custom Samsung-developed protocol typically +referred to as the \"Odin 3 protocol\".") + (license license:expat))) diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index 0ca77cfa40..1c257abbec 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -63,27 +63,27 @@ (list "--enable-shared" (string-append "DSOFLAGS=-Wl,-rpath=" %output "/lib")) #:phases - (alist-cons-before - 'configure 'patch-makeinclude - (lambda _ - (substitute* "makeinclude.in" - (("/bin/sh") (which "sh")))) - (alist-cons-after - 'install 'patch-config - ;; Provide -L flags for image libraries when querying fltk-config to - ;; avoid propagating inputs. - (lambda* (#:key inputs outputs #:allow-other-keys) - (use-modules (srfi srfi-26)) - (let* ((conf (string-append (assoc-ref outputs "out") - "/bin/fltk-config")) - (jpeg (assoc-ref inputs "libjpeg")) - (png (assoc-ref inputs "libpng")) - (zlib (assoc-ref inputs "zlib"))) - (substitute* conf - (("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg")) - (("-lpng") (string-append "-L" png "/lib -lpng")) - (("-lz") (string-append "-L" zlib "/lib -lz"))))) - %standard-phases)))) + (modify-phases %standard-phases + (add-before 'configure 'patch-makeinclude + (lambda _ + (substitute* "makeinclude.in" + (("/bin/sh") (which "sh"))) + #t)) + (add-after 'install 'patch-config + ;; Provide -L flags for image libraries when querying fltk-config to + ;; avoid propagating inputs. + (lambda* (#:key inputs outputs #:allow-other-keys) + (use-modules (srfi srfi-26)) + (let* ((conf (string-append (assoc-ref outputs "out") + "/bin/fltk-config")) + (jpeg (assoc-ref inputs "libjpeg")) + (png (assoc-ref inputs "libpng")) + (zlib (assoc-ref inputs "zlib"))) + (substitute* conf + (("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg")) + (("-lpng") (string-append "-L" png "/lib -lpng")) + (("-lz") (string-append "-L" zlib "/lib -lz")))) + #t))))) (home-page "http://www.fltk.org") (synopsis "3D C++ GUI library") (description "FLTK is a C++ GUI toolkit providing modern GUI functionality diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 15401f652b..323cfab6f4 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -325,33 +325,24 @@ X11-system or any other graphical user interface.") (define-public teckit (package (name "teckit") - (version "2.5.4") + (version "2.5.7") (source (origin - ;; Downloaded tarballs vary with each download, so we use an - ;; svn snapshot. The 2.5.4 release seems to be made in r128, - ;; but r132 updates additional files to contain the correct - ;; version number (r129 to r131 do not concern TRUNK). - (method svn-fetch) - (uri (svn-reference - (url "https://scripts.sil.org/svn-public/teckit/TRUNK") - (revision 132))) - (file-name (string-append name "-" version)) + (method url-fetch) + (uri (string-append + "https://github.com/silnrsi/teckit/releases/download/v" + version "/teckit-" version ".tar.gz")) (sha256 (base32 - "1xqkqgw30pb24snh46srmjs2j4zhz2dfi5pf7znia0k34mrpwivz")))) + "1pbp97vcpj6x4yixx6ww0vsi1rrr99fksxdjafs6gdargzd24cj4")))) (build-system gnu-build-system) - (inputs `(("zlib" ,zlib))) + (inputs + `(("zlib" ,zlib) + ("expat" ,expat))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) ("perl" ,perl))) ; for the tests - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'autogen - (lambda _ - (zero? (system* "sh" "autogen.sh"))))))) (synopsis "Toolkit for encoding conversions") (description "TECkit is a low-level toolkit intended to be used by other applications diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 2208775772..f3dc805e36 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Danny Milosavljevic -;;; Copyright © 2016, 2017 Theodoros Foradis +;;; Copyright © 2016, 2017 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e822f390c5..950961ee9f 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -357,26 +357,25 @@ manager for the current system.") (build-system python-build-system) (arguments '(#:phases - (alist-replace - 'check - (lambda* (#:key inputs #:allow-other-keys) - (setenv "XDG_DATA_DIRS" - (string-append (assoc-ref inputs "shared-mime-info") - "/share/")) - (substitute* "test/test-icon.py" - (("/usr/share/icons/hicolor/index.theme") - (string-append (assoc-ref inputs "hicolor-icon-theme") - "/share/icons/hicolor/index.theme")) - ;; FIXME: This test fails because the theme contains the unknown - ;; key "Scale". - (("theme.validate\\(\\)") "#")) + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (setenv "XDG_DATA_DIRS" + (string-append (assoc-ref inputs "shared-mime-info") + "/share/")) + (substitute* "test/test-icon.py" + (("/usr/share/icons/hicolor/index.theme") + (string-append (assoc-ref inputs "hicolor-icon-theme") + "/share/icons/hicolor/index.theme")) + ;; FIXME: This test fails because the theme contains the unknown + ;; key "Scale". + (("theme.validate\\(\\)") "#")) - ;; One test fails with: - ;; AssertionError: 'x-apple-ios-png' != 'png' - (substitute* "test/test-mime.py" - (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#")) - (zero? (system* "nosetests" "-v"))) - %standard-phases))) + ;; One test fails with: + ;; AssertionError: 'x-apple-ios-png' != 'png' + (substitute* "test/test-mime.py" + (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#")) + (zero? (system* "nosetests" "-v"))))))) (native-inputs `(("shared-mime-info" ,shared-mime-info) ;for tests ("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests @@ -403,7 +402,19 @@ Python.") (base32 "0lgywr1m0d79vr4s8aimj8a307nss29hhy68gjpqj7m667055c39")))) (build-system gnu-build-system) - (arguments `(#:parallel-tests? #f)) + (arguments + `(#:parallel-tests? #f + #:phases + (modify-phases %standard-phases + ;; Remove record shapes to workaround graphviz 2.40.1 problems. + ;; http://www.graphviz.org/content/i-havent-been-able-render-these-files-graphviz-226 + ;; This will likely be fixed upstream in the next release. + ;; https://lists.freedesktop.org/archives/wayland-devel/2017-June/034218.html + (add-before 'build 'fix-graphviz + (lambda _ + (substitute* "doc/doxygen/dot/x-architecture.gv" + (("Mrecord") "none")) + #t))))) (native-inputs `(("doxygen" ,doxygen) ("graphviz" ,graphviz) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index f3f2b5ea71..cbec25be15 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -46,7 +46,7 @@ (define-public lftp (package (name "lftp") - (version "4.8.2") + (version "4.8.3") (source (origin (method url-fetch) ;; See https://lftp.tech/get.html for mirrors. @@ -58,7 +58,7 @@ "ftp/lftp/lftp-" version ".tar.xz"))) (sha256 (base32 - "176d90amkm1klwjpfpzdsvmjnyri8f74bv4fpip8app0fs25p1sw")))) + "12y77jlfs4x4zvcah92mw2h2sb4j0bvbaxkh3wwsm8gs392ywyny")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index aef6f01215..39cd71aebd 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Steve Webber -;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira +;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 nee @@ -133,6 +133,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages icu4c) #:use-module (gnu packages networking) + #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix build-system python) @@ -2796,60 +2797,67 @@ http://lavachat.symlynx.com/unix/") (license license:gpl2+))) (define-public red-eclipse - (let ((data-sources - '(("acerspyro" "0zmg78scrfdv33h7vszqvzylcqjwg7d5b0j2riav3rjfh326j8xx") - ("actors" "0l00rsvppqzdpsikm5qpj38jiygirszxlzay2nxp4g4n2qjq0m4a") - ("appleflap" "0jhfr7f13hk3nswwxqc4jajriipr6zz6j63v955nv4sgxs7lzbjd") - ("blendbrush" "1nk0zaisbqf2khrivq8ls6z2lnh6d51m133m2ppxk7k4c9gq1imq") - ("caustics" "1hq08k476wayi0kmk4ps8h6jr75yinq04f1r2p8r79xsdpxq9my5") - ("crosshairs" "1gmrmjm7i7n9py0qrzamk7ygi63yx1mr2pp6iwz2vwngprl03n8m") - ("dziq" "0gr36ydrv8syjxv7w9dw3ix8waaq201fzxr0klkqp260p8xp215s") - ("elyvisions" "05syxlpsap6nfwxnnd0ls7qj1p4vhw2jxi41pi5inwpfifapfphz") - ("fonts" "184syks602xc657q08973w5ji50x5zssvd4vp2q2ig8m68iyr51c") + (let ((release "1.5.8") + (revision 2) + (data-sources + '(("acerspyro" "0zmg78scrfdv33h7vszqvzylcqjwg7d5b0j2riav3rjfh326j8xx") + ("actors" "0l00rsvppqzdpsikm5qpj38jiygirszxlzay2nxp4g4n2qjq0m4a") + ("appleflap" "0jhfr7f13hk3nswwxqc4jajriipr6zz6j63v955nv4sgxs7lzbjd") + ("blendbrush" "1nk0zaisbqf2khrivq8ls6z2lnh6d51m133m2ppxk7k4c9gq1imq") + ("caustics" "1hq08k476wayi0kmk4ps8h6jr75yinq04f1r2p8r79xsdpxq9my5") + ("crosshairs" "1gmrmjm7i7n9py0qrzamk7ygi63yx1mr2pp6iwz2vwngprl03n8m") + ("dziq" "0gr36ydrv8syjxv7w9dw3ix8waaq201fzxr0klkqp260p8xp215s") + ("elyvisions" "05syxlpsap6nfwxnnd0ls7qj1p4vhw2jxi41pi5inwpfifapfphz") + ("fonts" "184syks602xc657q08973w5ji50x5zssvd4vp2q2ig8m68iyr51c") ("freezurbern" "020gpgcpy4rqjd9d18npfm96j8f02jcjnccbxcgzk1yb58y687ya") - ("john" "0hj5kwlb2gb0gsnl9bk7dkqlk8r7vxcw8gxpgrb3kfn8d9cwcb7k") - ("jojo" "0fij06040r7s5p7jksxm7wxi9jqwkhhm8iywys0dagk8j2wcbvsz") - ("jwin" "0ysfynjvypc8dszf7rsvk02jgw8fmsli49vy2xpm83zpkrqpddgf") + ("john" "0hj5kwlb2gb0gsnl9bk7dkqlk8r7vxcw8gxpgrb3kfn8d9cwcb7k") + ("jojo" "0fij06040r7s5p7jksxm7wxi9jqwkhhm8iywys0dagk8j2wcbvsz") + ("jwin" "0ysfynjvypc8dszf7rsvk02jgw8fmsli49vy2xpm83zpkrqpddgf") ("luckystrike" "1bm0xdqjv35ry5xwbzw3a3v1xf2gj1jwfg29nyl6w3ch0h6crr11") - ("maps" "0c9d1zxmpnngwhchzw6xb6cf84cx8xyycmdqcvyhamrd95d96qma") - ("mayhem" "133pdql7ari159skd9qdmw0p1m73x32d1v6jswkz0xwk8vgxmkil") - ("mikeplus64" "1d5npn9wlw0mviz9vhzzcsj98jvfh1wbvlh1nyqfj4ws5nfxhs7x") - ("misc" "19x2ps6yxnfrz0xdhqdwncaq25ds7i4w2l8sdfi95yh2r7c5k1qn") - ("nieb" "15029nipl92cb0jbh46z00k51hf3jk4v05pwx266b6b11bapdz0c") - ("nobiax" "0k9apim5z4ihd5ajmnbq4gyh24w872dv0mr5v8wqn31a8gxzahhp") - ("particles" "06827r9pnhzjil381xiwcbc93v9nxin7qlr59yrvk9gdzxmklk9m") - ("philipk" "1l6fhl6qz471vjn05hvk29bm8dhwnzqbmi2hdylpa9k998nzkfc1") + ("maps" "0c9d1zxmpnngwhchzw6xb6cf84cx8xyycmdqcvyhamrd95d96qma") + ("mayhem" "133pdql7ari159skd9qdmw0p1m73x32d1v6jswkz0xwk8vgxmkil") + ("mikeplus64" "1d5npn9wlw0mviz9vhzzcsj98jvfh1wbvlh1nyqfj4ws5nfxhs7x") + ("misc" "19x2ps6yxnfrz0xdhqdwncaq25ds7i4w2l8sdfi95yh2r7c5k1qn") + ("nieb" "15029nipl92cb0jbh46z00k51hf3jk4v05pwx266b6b11bapdz0c") + ("nobiax" "0k9apim5z4ihd5ajmnbq4gyh24w872dv0mr5v8wqn31a8gxzahhp") + ("particles" "06827r9pnhzjil381xiwcbc93v9nxin7qlr59yrvk9gdzxmklk9m") + ("philipk" "1l6fhl6qz471vjn05hvk29bm8dhwnzqbmi2hdylpa9k998nzkfc1") ("projectiles" "03ay8ik52n3vx723swqlnl5gpkzf1v1gadwj3zcnh43ch7nd2bqh") - ("props" "1yxz7gfmb79sqqrkyfdzp4ar9rf5f1kpfij4nrkk1l8vbw9liksc") - ("skyboxes" "1mm98mhb6yhb006p1hlic91jcwjxhq79mblxciwbqqa9c5g4yki6") - ("snipergoth" "1vlpmwlg71g6l5b706gp82bc07i5bbw2zphzynm2fx49za0zdi44") - ("sounds" "156g5wh8cvdh6zr33haqm566sd28ylnzdf2h4pqzpxbb2i19vbfg") - ("textures" "0wkhl5cgymr9kslzhksi83hs15rb0q01xvax5khi6b4dcl3mrmsh") - ("torley" "1xlag6ndjyqafl984n6d9zi96dv9aif7vrc2nvikc3iwgjwlbxav") - ("trak" "12x9ix8zkqn9svy56qmdgj4x2814qh25f4srplgq691lqn9qjhvd") - ("ulukai" "0gz1hd8hca2biskc85hw4jjacpsmqg9x4w6cwrka8x987xmc92k5") - ("unnamed" "09v8fjy6jqypm1i121kilg3z6zpw7dm0i4gxhd9b7ihprvzvy8r7") - ("vanities" "0m3vfq9l71pbb80qz4s3k8r5azmm158chqbw8snch09ymxm6h462") - ("vegetation" "07yzm9lbzr624j4i652ny5p762p83gadg40c1k8gwff4y7yk55gn") - ("weapons" "05fsp17gdrhjqdwia7rwdw9gcijaqwcnny8lf6krms43xmn8cj0x") - ("wicked" "0jjgwzdibr5my369gwvmvbklpjlwq939zgf643rv0168xc087xb2")))) + ("props" "1yxz7gfmb79sqqrkyfdzp4ar9rf5f1kpfij4nrkk1l8vbw9liksc") + ("skyboxes" "1mm98mhb6yhb006p1hlic91jcwjxhq79mblxciwbqqa9c5g4yki6") + ("snipergoth" "1vlpmwlg71g6l5b706gp82bc07i5bbw2zphzynm2fx49za0zdi44") + ("sounds" "156g5wh8cvdh6zr33haqm566sd28ylnzdf2h4pqzpxbb2i19vbfg") + ("textures" "0wkhl5cgymr9kslzhksi83hs15rb0q01xvax5khi6b4dcl3mrmsh") + ("torley" "1xlag6ndjyqafl984n6d9zi96dv9aif7vrc2nvikc3iwgjwlbxav") + ("trak" "12x9ix8zkqn9svy56qmdgj4x2814qh25f4srplgq691lqn9qjhvd") + ("ulukai" "0gz1hd8hca2biskc85hw4jjacpsmqg9x4w6cwrka8x987xmc92k5") + ("unnamed" "09v8fjy6jqypm1i121kilg3z6zpw7dm0i4gxhd9b7ihprvzvy8r7") + ("vanities" "0m3vfq9l71pbb80qz4s3k8r5azmm158chqbw8snch09ymxm6h462") + ("vegetation" "07yzm9lbzr624j4i652ny5p762p83gadg40c1k8gwff4y7yk55gn") + ("weapons" "05fsp17gdrhjqdwia7rwdw9gcijaqwcnny8lf6krms43xmn8cj0x") + ("wicked" "0jjgwzdibr5my369gwvmvbklpjlwq939zgf643rv0168xc087xb2")))) (package (name "red-eclipse") - (version "1.5.8") + (version (if (zero? revision) + release + (string-append release "-" + (number->string revision)))) (source (origin (method url-fetch) (uri (string-append "https://github.com/red-eclipse/base" - "/archive/v" version ".tar.gz")) + "/archive/v" release ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ah92axwcai0fhgm7pvfb2dxvfdiwwyh8iqyiffndh6782hxz3bc")))) + "0r66rsqxvd7hxrhb0fahqqmf3r0cw2drhv5vndbswcq90l1bxfmf")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target #:make-flags (list "CC=gcc" "-Csrc" (string-append "INSTDIR=" - (assoc-ref %outputs "out") "/bin")) + (assoc-ref %outputs "out") "/bin") + (string-append "prefix=" + (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-data @@ -2862,10 +2870,25 @@ http://lavachat.symlynx.com/unix/") "-Cdata" "--transform" (string-append "s/" - name "-" ,version "/" + name "-" ,release "/" name "/"))) (list ,@(map car data-sources))) #t)) + (add-after 'unpack-data 'add-store-data-package-path-as-default + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "src/engine/server.cpp" + (("(else[[:space:]]*)((addpackagedir\\()\"data\"(\\);))" _ else_part addpackagedir_original addpackagedir_open addpackagedir_close) + (string-append else_part + "{ " + addpackagedir_open + "\"" + (assoc-ref outputs "out") + "/share/redeclipse/data\"" + addpackagedir_close + " " + addpackagedir_original + " }"))) + #t)) (delete 'configure) ; no configure script (add-after 'set-paths 'set-sdl-paths (lambda* (#:key inputs #:allow-other-keys) @@ -2881,7 +2904,10 @@ http://lavachat.symlynx.com/unix/") (copy-file "doc/examples/servinit.cfg" (string-append out "/config/servinit.cfg")) (copy-recursively "data" - (string-append out "/data"))) + (string-append out "/share/redeclipse/data")) + (mkdir-p (string-append out "/lib/redeclipse")) + (symlink (string-append out "/share/redeclipse/data") + (string-append out "/lib/redeclipse/data"))) #t)) (add-after 'copy-data 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) @@ -2928,7 +2954,7 @@ exec -a \"$0\" ~a/.redeclipse_server_linux-real~%" (method url-fetch) (uri (string-append "https://github.com/red-eclipse/" - name "/archive/v" version ".tar.gz")) + name "/archive/v" release ".tar.gz")) (sha256 (base32 hash)) (file-name (string-append name "-" version ".tar.gz")))))) @@ -3045,7 +3071,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") (define-public mgba (package (name "mgba") - (version "0.6.0") + (version "0.6.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mgba-emu/mgba/archive/" @@ -3053,7 +3079,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "01zy2w5pihlkrmbm51icgyff6iqyqa5ha6qrm4aj8ibzznz03kyq")) + "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w")) (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. @@ -3898,7 +3924,7 @@ to the Space Age.") (define-public no-more-secrets (package (name "no-more-secrets") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) @@ -3907,7 +3933,7 @@ to the Space Age.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00mzdif859vm75n1igrffh8c07p1nr4rlm3yb7lrkwwxhrw8xzla")))) + "1kpx1rirc3i7fb4lymp0hx5rqr0s2ay4za261rw3bcy6d23l1kyg")))) (build-system gnu-build-system) (arguments `(#:tests? #f diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index f9864d7784..3b1def55e1 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -122,15 +122,16 @@ most common applications of GD involve website development.") (assoc-ref %build-inputs i))) '("zlib" "png" "ft" "jpeg" "fontconfig")) #:tests? #f ;; Failed 1/2 test programs. 1/12 subtests failed. - #:phases (alist-cons-after - 'configure 'clear-autogenerated-files - (lambda _ - ;; This file is autogenerated by its .PLS script at build - ;; time, but file creation fails because that file already - ;; exists in the distribution with non-writable - ;; permissions, so delete it first. - (delete-file "bdf_scripts/bdf2gdfont.pl")) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'configure 'clear-autogenerated-files + (lambda _ + ;; This file is autogenerated by its .PLS script at build + ;; time, but file creation fails because that file already + ;; exists in the distribution with non-writable + ;; permissions, so delete it first. + (delete-file "bdf_scripts/bdf2gdfont.pl") + #t))))) (home-page "http://search.cpan.org/dist/GD") (synopsis "Perl interface to the GD graphics library") (description "GD.pm is an autoloadable interface module for libgd, a diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index d5d5aa2dff..28477b2c42 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -131,6 +131,7 @@ printing, and psresize, for adjusting page sizes.") (define-public ghostscript (package (name "ghostscript") + (replacement ghostscript-9.22) (version "9.21") (source (origin @@ -254,6 +255,25 @@ output file formats and printers.") (home-page "https://www.ghostscript.com/") (license license:agpl3+))) +(define ghostscript-9.22 + (package + (inherit ghostscript) + (version "9.22") + (source + (origin + (inherit (package-source ghostscript)) + (uri (string-append "https://github.com/ArtifexSoftware/" + "ghostpdl-downloads/releases/download/gs" + (string-delete #\. version) + "/ghostscript-" version ".tar.xz")) + (sha256 + (base32 + "1fyi4yvdj39bjgs10klr31cda1fbx1ar7a7b7yz7v68gykk65y61")) + (patches (search-patches "ghostscript-runpath.patch" + "ghostscript-no-header-creationdate.patch" + "ghostscript-no-header-id.patch" + "ghostscript-no-header-uuid.patch")))))) + (define-public ghostscript/x (package/inherit ghostscript (name (string-append (package-name ghostscript) "-with-x")) diff --git a/gnu/packages/gkrellm.scm b/gnu/packages/gkrellm.scm index 68853eb8fc..6ad4fe6ff3 100644 --- a/gnu/packages/gkrellm.scm +++ b/gnu/packages/gkrellm.scm @@ -49,10 +49,7 @@ `(("pkg-config" ,pkg-config))) (arguments `(#:tests? #f ; there is no check target - #:phases - (alist-delete - 'configure - %standard-phases) + #:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "INSTALLROOT=" out) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index d017e375c9..039400851e 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -217,17 +217,19 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "17.1.4") + (version "17.2.1") (source (origin (method url-fetch) - (uri (list (string-append "ftp://ftp.freedesktop.org/pub/mesa/" + (uri (list (string-append "https://mesa.freedesktop.org/archive/" + "mesa-" version ".tar.xz") + (string-append "ftp://ftp.freedesktop.org/pub/mesa/" "mesa-" version ".tar.xz") (string-append "ftp://ftp.freedesktop.org/pub/mesa/" version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1bcwxin7nmbnv92xav381b6qxscsx1zzc71ryfvj03cglbkb1wq6")) + "07msr6xismw2jq87irwhz7vygvzj6hi38d71paij9zvwh8bmsf3p")) (patches (search-patches "mesa-wayland-egl-symbols-check-mips.patch" "mesa-skip-disk-cache-test.patch")))) @@ -253,13 +255,14 @@ also known as DXTn or DXTC) for Mesa.") ("libxvmc" ,libxvmc) ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") - `(("llvm" ,llvm))) + `(("llvm" ,llvm-3.9.1))) ; exactly 3.9.0 or 3.9.1 for swrast (_ `())) ("makedepend" ,makedepend) ("presentproto" ,presentproto) ("s2tc" ,s2tc) - ("wayland" ,wayland))) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols))) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-2) @@ -267,13 +270,17 @@ also known as DXTn or DXTC) for Mesa.") (arguments `(#:configure-flags '(,@(match (%current-system) - ((or "armhf-linux" "aarch64-linux") - '("--with-gallium-drivers=freedreno,nouveau,r300,r600,svga,swrast,vc4,virgl")) + ("armhf-linux" + ;; TODO: Add etnaviv when enabled in libdrm. + '("--with-gallium-drivers=freedreno,imx,nouveau,r300,r600,svga,swrast,vc4,virgl")) + ("aarch64-linux" + ;; TODO: Fix svga driver for aarch64. + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio - "--with-egl-platforms=x11,drm,wayland" + "--with-platforms=x11,drm,wayland,surfaceless" "--enable-glx-tls" ;Thread Local Storage, improves performance ;; "--enable-opencl" ;; "--enable-omx" @@ -422,7 +429,7 @@ glxgears, glxheads, and glxinfo.") (("/lib64") "/lib"))))) (build-system gnu-build-system) (arguments - '(#:phases (alist-delete 'configure %standard-phases) + '(#:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (list (string-append "GLEW_PREFIX=" (assoc-ref %outputs "out")) (string-append "GLEW_DEST=" diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index c5c48731fe..bacc63270a 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -67,7 +67,7 @@ (define dbus (package (name "dbus") - (version "1.10.18") + (version "1.10.22") (source (origin (method url-fetch) (uri (string-append @@ -75,7 +75,7 @@ version ".tar.gz")) (sha256 (base32 - "0jjirhw6xwz2ffmbg5kr79108l8i1bdaw7szc67n3qpkygaxsjb0")) + "15vv9gz5i4f5l7h0d045qz5iyvl89hjk2k83lb4vbizd7qg41cg2")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -137,7 +137,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.52.2") + (version "2.52.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -145,7 +145,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "1l65kab6jr9zlllgbjcbvrbgah3sdd577fpw4pdb2j195ag5s3ph")) + "0a71wkkhkvad84gm30w13micxxgqqw3sxhybj7nd9z60lwspdvi5")) (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything @@ -504,22 +504,23 @@ has an ease of use unmatched by other C++ callback libraries.") "1926b3adx903hzvdp8glblsgjyadzqnwgkj8hg605d4wv98m1n0z")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-cons-before - 'build 'pre-build - (lambda _ - ;; This test uses /etc/fstab as an example file to read - ;; from; choose a better example. - (substitute* "tests/giomm_simple/main.cc" - (("/etc/fstab") - (string-append (getcwd) - "/tests/giomm_simple/main.cc"))) + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda _ + ;; This test uses /etc/fstab as an example file to read + ;; from; choose a better example. + (substitute* "tests/giomm_simple/main.cc" + (("/etc/fstab") + (string-append (getcwd) + "/tests/giomm_simple/main.cc"))) - ;; This test does a DNS lookup, and then expects to be able - ;; to open a TLS session; just skip it. - (substitute* "tests/giomm_tls_client/main.cc" - (("Gio::init.*$") - "return 77;\n"))) - %standard-phases))) + ;; This test does a DNS lookup, and then expects to be able + ;; to open a TLS session; just skip it. + (substitute* "tests/giomm_tls_client/main.cc" + (("Gio::init.*$") + "return 77;\n")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin"))) (propagated-inputs diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 84c98b0ff8..f9a9de9e08 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -812,16 +812,16 @@ for settings shared by various components of the GNOME desktop.") ("perl-xml-simple" ,perl-xml-simple))) (arguments '(#:phases - (alist-cons-after - 'install 'set-load-paths - ;; Tell 'icon-name-mapping' where XML::Simple is. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/libexec/icon-name-mapping"))) - (wrap-program - prog - `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'install 'set-load-paths + ;; Tell 'icon-name-mapping' where XML::Simple is. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (prog (string-append out "/libexec/icon-name-mapping"))) + (wrap-program + prog + `("PERL5LIB" = ,(list (getenv "PERL5LIB"))))) + #t))))) (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification") (synopsis "Utility to implement the Freedesktop Icon Naming Specification") @@ -1055,7 +1055,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1063,7 +1063,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") name "-" version ".tar.xz")) (sha256 (base32 - "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2")))) + "1pxikhzdzd092d4x3nacf5gfzi3mvhywrhcfqc07xakbsinnfr40")))) (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ; needs X, GL, and software rendering @@ -1165,7 +1165,7 @@ dealing with different structured file formats.") (define-public librsvg (package (name "librsvg") - (version "2.40.17") + (version "2.40.18") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1173,7 +1173,7 @@ dealing with different structured file formats.") name "-" version ".tar.xz")) (sha256 (base32 - "1k39gyf7f5m9x0jvpcxvfcqswdb04xhm1lbwbjabn1f4xk5wbxp6")))) + "0k2nbd4g31qinkdfd8r5c5ih2ixl85fbkgkqqh9747lwr24c9j5z")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1263,12 +1263,12 @@ functionality was designed to be as reusable and portable as possible.") '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS") ;; ... which they then completly ignore !! #:phases - (alist-cons-before - 'configure 'ignore-deprecations - (lambda _ - (substitute* "linc2/src/Makefile.in" - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'ignore-deprecations + (lambda _ + (substitute* "linc2/src/Makefile.in" + (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")) + #t))))) (inputs `(("glib" ,glib) ("libidl" ,libidl))) (native-inputs @@ -1303,12 +1303,12 @@ featuring mature C, C++ and Python bindings.") '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS") ;; ... which they then completly ignore !! #:phases - (alist-cons-before - 'configure 'ignore-deprecations - (lambda _ - (substitute* "activation-server/Makefile.in" - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'ignore-deprecations + (lambda _ + (substitute* "activation-server/Makefile.in" + (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")) + #t))))) (inputs `(("popt" ,popt) ("libxml2" ,libxml2))) ;; The following are Required by the .pc file @@ -1411,19 +1411,18 @@ designed to be accessed through the MIME functions in GnomeVFS.") (build-system gnu-build-system) (arguments `(#:phases - (alist-cons-before - 'configure 'ignore-deprecations - (lambda _ - (substitute* '("libgnomevfs/Makefile.in" - "daemon/Makefile.in") - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")) - #t) - (alist-cons-before - 'configure 'patch-test-async-cancel-to-never-fail - (lambda _ - (substitute* "test/test-async-cancel.c" - (("EXIT_FAILURE") "77"))) - %standard-phases)))) + (modify-phases %standard-phases + (add-before 'configure 'ignore-deprecations + (lambda _ + (substitute* '("libgnomevfs/Makefile.in" + "daemon/Makefile.in") + (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")) + #t)) + (add-before 'configure 'patch-test-async-cancel-to-never-fail + (lambda _ + (substitute* "test/test-async-cancel.c" + (("EXIT_FAILURE") "77")) + #t))))) (inputs `(("libxml2" ,libxml2) ("dbus-glib" ,dbus-glib) ("gconf" ,gconf) @@ -1458,12 +1457,12 @@ to access local and remote files with a single consistent API.") (build-system gnu-build-system) (arguments `(#:phases - (alist-cons-before - 'configure 'enable-deprecated - (lambda _ - (substitute* "libgnome/Makefile.in" - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'enable-deprecated + (lambda _ + (substitute* "libgnome/Makefile.in" + (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")) + #t))))) (inputs `(("libxml2" ,libxml2))) (native-inputs `(("glib" ,glib "bin") ; for glib-mkenums, etc. @@ -1698,18 +1697,17 @@ since ca. 2006, when GTK+ itself incorporated printing support.") (build-system gnu-build-system) (arguments `(#:phases - (alist-cons-before - 'check 'start-xserver - (lambda* (#:key inputs #:allow-other-keys) - (let ((xorg-server (assoc-ref inputs "xorg-server")) - (disp ":1")) + (modify-phases %standard-phases + (add-before 'check 'start-xserver + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server")) + (disp ":1")) - (setenv "HOME" (getcwd)) - (setenv "DISPLAY" disp) - ;; There must be a running X server and make check doesn't start one. - ;; Therefore we must do it. - (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))))) - %standard-phases))) + (setenv "HOME" (getcwd)) + (setenv "DISPLAY" disp) + ;; There must be a running X server and make check doesn't start one. + ;; Therefore we must do it. + (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))))))))) ;; Mentioned as Required by the .pc file (propagated-inputs `(("libxml2" ,libxml2))) (inputs @@ -1823,14 +1821,13 @@ Hints specification (EWMH).") (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n")))) (arguments `(#:phases - (alist-cons-after - 'unpack 'fix-pcre-check - (lambda _ - ;; Only glib.h can be included directly. See - ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316 - (substitute* "configure" - (("glib/gregex\\.h") "glib.h")) #t) - %standard-phases) + (modify-phases %standard-phases + (add-after 'unpack 'fix-pcre-check + (lambda _ + ;; Only glib.h can be included directly. See + ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316 + (substitute* "configure" + (("glib/gregex\\.h") "glib.h")) #t))) ,@(package-arguments goffice))) (propagated-inputs @@ -2053,7 +2050,7 @@ editors, IDEs, etc.") (package (inherit vte) (name "vte-ng") - (version "0.48.3.a") + (version "0.50.1.a") (native-inputs `(("gtk-doc" ,gtk-doc) ("gperf" ,gperf) @@ -2068,7 +2065,7 @@ editors, IDEs, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1wdkf090zclqy11hxdjgy8f6fgzajl0xzzirajikhbaiill7f8zh")))) + "1r70jysdrc7r1vyn3mikpc8hh7rm4lpr0psakj8yssy11p451pja")))) (arguments `(#:configure-flags '("CXXFLAGS=-Wformat=0") #:phases (modify-phases %standard-phases @@ -2172,7 +2169,7 @@ and RDP protocols.") (define-public dconf (package (name "dconf") - (version "0.26.0") + (version "0.26.1") (source (origin (method url-fetch) (uri (string-append @@ -2181,7 +2178,7 @@ and RDP protocols.") name "-" version ".tar.xz")) (sha256 (base32 - "1jaqsr1r0grpd25rbsc2v3vb0sc51lia9w31wlqswgqsncp2k0w6")))) + "0da587hpiqy8h3pswn1102h4b905x8k6mk3ajpi7kf4kzkvv30ym")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) @@ -2203,19 +2200,19 @@ and RDP protocols.") (assoc-ref %outputs "out") "/lib") "--disable-gtk-doc-html") ; FIXME: requires gtk-doc #:phases - (alist-cons-before - 'configure 'fix-docbook - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "docs/Makefile.in" - (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl") - (string-append (assoc-ref inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl) - "/manpages/docbook.xsl"))) - (setenv "XML_CATALOG_FILES" - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/catalog.xml"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'fix-docbook + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "docs/Makefile.in" + (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl") + (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) + "/manpages/docbook.xsl"))) + (setenv "XML_CATALOG_FILES" + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/catalog.xml")) + #t))))) (home-page "https://developer.gnome.org/dconf") (synopsis "Low-level GNOME configuration system") (description "Dconf is a low-level configuration system. Its main purpose @@ -3091,7 +3088,7 @@ playlists in a variety of formats.") (define-public aisleriot (package (name "aisleriot") - (version "3.22.2") + (version "3.22.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3099,7 +3096,7 @@ playlists in a variety of formats.") name "-" version ".tar.xz")) (sha256 (base32 - "0a8cir7vgi67sncl0m7cypq11amardm7r68gr3q52a11l8ajycdx")))) + "12bqbyiqn2dwknz7ndgwgqqqz993s1ynh8qb82sshr7fy4zw8qph")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -3114,7 +3111,7 @@ playlists in a variety of formats.") ("xmllint" ,libxml2))) (inputs `(("gtk+" ,gtk+) - ("guile" ,guile-2.0) + ("guile" ,guile-2.2) ("libcanberra" ,libcanberra) ("librsvg" ,librsvg))) (home-page "https://wiki.gnome.org/Apps/Aisleriot") @@ -4933,7 +4930,7 @@ users.") (define-public network-manager (package (name "network-manager") - (version "1.8.2") + (version "1.8.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/NetworkManager/" @@ -4941,7 +4938,7 @@ users.") "NetworkManager-" version ".tar.xz")) (sha256 (base32 - "1x0vzxvrck0snga2n3pc7g74m20zz74cr4r8gfspl8sckv6yz9bi")) + "04lj081a5cdkhcnj1xs77chhy08d2h0648kmj1csxp46cfrjwpk2")) (snippet '(begin (use-modules (guix build utils)) @@ -5057,7 +5054,7 @@ services.") (define-public network-manager-openvpn (package (name "network-manager-openvpn") - (version "1.2.10") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append @@ -5066,7 +5063,7 @@ services.") "/NetworkManager-openvpn-" version ".tar.xz")) (sha256 (base32 - "0q9x61fq509gybz3ljzyvf9zn8nlya1r2vk7jl0gk3fp76jsg1mc")))) + "1973n89g66a3jfx8r45a811fga4kadh6r1w35cb25cz1mlii2vhn")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-absolute-paths"))) @@ -5111,7 +5108,7 @@ to virtual private networks (VPNs) via OpenVPN.") (define-public network-manager-applet (package (name "network-manager-applet") - (version "1.8.2") + (version "1.8.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5119,7 +5116,7 @@ to virtual private networks (VPNs) via OpenVPN.") name "-" version ".tar.xz")) (sha256 (base32 - "09f9hjpn9nkhw57mk6pi7q1bq3lhf5hvmwas0fknscssak7yjmry")))) + "0ag3pvjp58ykrzsjfbdxi0j5xd2i796jk7nns67zy03xwg9i0l0h")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags '("--disable-migration"))) (native-inputs @@ -6065,7 +6062,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") (define-public gnome-calendar (package (name "gnome-calendar") - (version "3.24.3") + (version "3.26.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6073,22 +6070,27 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") name "-" version ".tar.xz")) (sha256 (base32 - "1v7k1wcl5yg9bd4l0rz0z03h32d35zgfp4qzz21widjcyis41jry")))) - (build-system glib-or-gtk-build-system) + "03n51mvlc0vabr1rx9577z927icl3mrxrrv8zckfjav6p4vwg8hr")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t + ;; gnome-calendar has to be installed before the tests can be run + ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224 + #:tests? #f)) (native-inputs - `(("intltool" ,intltool) + `(("gettext" ,gettext-minimal) + ("glib-bin" ,glib "bin") ; For glib-compile-schemas + ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache ("pkg-config" ,pkg-config))) (inputs - `(("bdb" ,bdb) - ("desktop-file-utils" ,desktop-file-utils) - ("evolution-data-server" ,evolution-data-server) + `(("evolution-data-server" ,evolution-data-server) ("gnome-online-accounts" ,gnome-online-accounts) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) (home-page "https://wiki.gnome.org/Apps/Calendar") (synopsis "GNOME's calendar application") (description "GNOME Calendar is a simple calendar application designed to fit the GNOME -desktop. It supports multiple calendars, monthly view and yearly view.") +desktop. It supports multiple calendars, month, week and year view.") (license license:gpl3+))) (define-public gnome-todo diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 9a2713e66a..9b79dfd9d3 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -186,14 +186,14 @@ and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.55.1-4") + (version "7.56.0") (source (origin (method url-fetch) (uri (string-append "https://gnunet.org/sites/default/files/" name "-" version ".tar.bz2")) (sha256 (base32 - "09c1bfwiwxqlh0dl839lslwhvkf98bvpyg9x4pcn3sagz0i8hxfl")))) + "18inbbqg7jygxa37x313ivc51p215fkp0ppw3xznk6d5ci4bs8fg")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.5 MiB of man3 pages @@ -234,10 +234,6 @@ and support for SSL3 and TLS.") #t))) (replace 'check (lambda _ - ;; It is unclear why test1026 fails, however the content of it - ;; suggests that it is not vital for gnurl. - (delete-file "tests/data/test1026") - (substitute* "tests/runtests.pl" (("/bin/sh") (which "sh"))) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9f3ccc8f69..b1967b3f1a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -204,7 +204,7 @@ sequential processes (CSP) concurrent programming features added.") (package (inherit go-1.4) (name "go") - (version "1.9") + (version "1.9.1") (source (origin (method url-fetch) @@ -212,7 +212,7 @@ sequential processes (CSP) concurrent programming features added.") name version ".src.tar.gz")) (sha256 (base32 - "14z9azh8pk5cwyl2qdk893j68lk0cca7a9b8k2hpn5pd52825ax4")))) + "03jmrgqq852wqyphvd8p46i32f72xki3bmylhkxf0kynqyfzqjm8")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) diff --git a/gnu/packages/gprolog.scm b/gnu/packages/gprolog.scm index 87c833e947..b27b080ca7 100644 --- a/gnu/packages/gprolog.scm +++ b/gnu/packages/gprolog.scm @@ -41,14 +41,15 @@ `(#:configure-flags (list (string-append "--with-install-dir=" %output "/share/gprolog")) - #:phases (alist-cons-before - 'configure 'change-dir-n-fix-shells - (lambda _ - (chdir "src") - (substitute* "configure" - (("-/bin/sh") (string-append "-" (which "sh"))) - (("= /bin/sh") (string-append "= " (which "sh"))))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'change-dir-n-fix-shells + (lambda _ + (chdir "src") + (substitute* "configure" + (("-/bin/sh") (string-append "-" (which "sh"))) + (("= /bin/sh") (string-append "= " (which "sh")))) + #t))))) (home-page "https://www.gnu.org/software/gprolog/") (synopsis "Prolog compiler") (description diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 0a9038b7a4..10592c23ec 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -102,15 +102,16 @@ manipulate maps.") "006a6l8p38a4h7y2959sqrmjjn29d8pd50zj9nypcp5ph18nybjb")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; This is a rudimentary build system. - (substitute* "Makefile" - (("prefix[[:blank:]]*=.*$") - (string-append "prefix = " (assoc-ref outputs "out") - "\n")))) - %standard-phases) + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; This is a rudimentary build system. + (substitute* "Makefile" + (("prefix[[:blank:]]*=.*$") + (string-append "prefix = " (assoc-ref outputs "out") + "\n"))) + #t))) #:tests? #f)) (inputs `(("gtk+" ,gtk+-2) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 2a52c4c697..8e3c5563f6 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -630,13 +630,12 @@ and understanding different BRDFs (and other component functions).") (string-append "--x-libraries=" (assoc-ref %build-inputs "libx11") "/lib")) #:phases - (alist-cons-after - 'unpack 'autoreconf - (lambda _ - ;; let's call configure from configure phase and not now - (substitute* "autogen.sh" (("./configure") "# ./configure")) - (zero? (system* "sh" "autogen.sh"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'autoreconf + (lambda _ + ;; let's call configure from configure phase and not now + (substitute* "autogen.sh" (("./configure") "# ./configure")) + (zero? (system* "sh" "autogen.sh"))))))) (native-inputs `(("pkg-config" ,pkg-config) ("libtool" ,libtool) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index d47d45e527..8131871db4 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Ludovic Courtès ;;; Copyright © 2015 Efraim Flashner -;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,51 +44,41 @@ (define-public graphviz (package (name "graphviz") - (version "2.38.0") + (version "2.40.1") (source (origin - (method url-fetch) - (uri (string-append - "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-" - version ".tar.gz")) - (sha256 - (base32 - "17l5czpvv5ilmg17frg0w4qwf89jzh2aglm9fgx0l0aakn6j7al1")))) + (method url-fetch) + (uri (string-append + "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-" + version ".tar.gz")) + (sha256 + (base32 + "08d4ygkxz2f553bxj6087da56a23kx1khv0j8ycxa102vvx1hlna")))) (build-system gnu-build-system) (arguments ;; FIXME: rtest/rtest.sh is a ksh script (!). Add ksh as an input. '(#:tests? #f - - #:phases (alist-cons-before - 'build 'pre-build - (lambda _ - ;; Work around bogus makefile when using an external - ;; libltdl. Failing to do so, one hits this error: - ;; "No rule to make target `-lltdl', needed by `libgvc.la'." - (substitute* "lib/gvc/Makefile" - (("am__append_5 *=.*") - "am_append_5 =\n"))) - (alist-cons-after - 'install 'move-docs - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share/graphviz")) - (rename-file (string-append out "/share/graphviz/doc") - (string-append doc "/share/graphviz/doc")) - #t)) - (alist-cons-after - 'move-docs 'move-guile-bindings - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (extdir (string-append lib - "/guile/2.0/extensions"))) - (mkdir-p extdir) - (rename-file (string-append - lib "/graphviz/guile/libgv_guile.so") - (string-append extdir - "/libgv_guile.so")))) - %standard-phases))))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'move-docs + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share/graphviz")) + (rename-file (string-append out "/share/graphviz/doc") + (string-append doc "/share/graphviz/doc")) + #t))) + (add-after 'move-docs 'move-guile-bindings + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (extdir (string-append lib + "/guile/2.0/extensions"))) + (mkdir-p extdir) + (rename-file (string-append + lib "/graphviz/guile/libgv_guile.so") + (string-append extdir + "/libgv_guile.so")) + #t)))))) (inputs `(("libXrender" ,libxrender) ("libX11" ,libx11) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index bc8f75ba12..c308dc9f34 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -280,10 +280,10 @@ developers consider to have good quality code and correct functionality.") (modify-phases %standard-phases (add-after 'unpack 'patch-openjpeg-reference (lambda _ - ;; Remove hard-coded openjpeg-2.1 path. 2.2 is API- and + ;; Remove hard-coded openjpeg-2.2 path. 2.3 is API- and ;; ABI-compatible. (substitute* "ext/openjpeg/gstopenjpeg.h" - ((" ;;; Copyright © 2017 David Thompson ;;; Copyright © 2017 Mathieu Othacehe -;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,24 +95,24 @@ (arguments '(#:configure-flags '("--disable-error-on-warning") ;; Insert a phase before `configure' to patch things up. - #:phases (alist-cons-before - 'configure - 'patch-stuff - (lambda* (#:key outputs #:allow-other-keys) - ;; Add a call to `lt_dladdsearchdir' so that - ;; `libguile-readline.so' & co. are in the - ;; loader's search path. - (substitute* "libguile/dynl.c" - (("lt_dlinit.*$" match) - (format #f - " ~a~% lt_dladdsearchdir(\"~a/lib\");~%" - match - (assoc-ref outputs "out")))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-stuff + (lambda* (#:key outputs #:allow-other-keys) + ;; Add a call to `lt_dladdsearchdir' so that + ;; `libguile-readline.so' & co. are in the + ;; loader's search path. + (substitute* "libguile/dynl.c" + (("lt_dlinit.*$" match) + (format #f + " ~a~% lt_dladdsearchdir(\"~a/lib\");~%" + match + (assoc-ref outputs "out")))) - ;; The usual /bin/sh... - (substitute* "ice-9/popen.scm" - (("/bin/sh") (which "sh")))) - %standard-phases))) + ;; The usual /bin/sh... + (substitute* "ice-9/popen.scm" + (("/bin/sh") (which "sh"))) + #t))))) (inputs `(("gawk" ,gawk) ("readline" ,readline))) @@ -1966,4 +1967,49 @@ HTML (via SXML) or any other format for rendering.") It has a nice, simple s-expression based syntax.") (license license:lgpl3+))) +(define-public guile-colorized + (package + (name "guile-colorized") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/NalaGinrut/guile-colorized/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((system base compile) + ,@%gnu-build-system-modules) + #:tests? #f ;No tests included + #:phases + (modify-phases %standard-phases + (delete 'configure) ;No configure script + (replace 'install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (module-dir (string-append out "/share/guile/site/2.2")) + (language-dir (string-append module-dir "/ice-9")) + (guild (string-append (assoc-ref inputs "guile") + "/bin/guild"))) + ;; The original 'make install' is too primitive. + + ;; copy the source + (install-file "ice-9/colorized.scm" language-dir) + + ;; compile to the destination + (compile-file "ice-9/colorized.scm" + #:output-file (string-append + language-dir "/colorized.go")) + #t)))))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/NalaGinrut/guile-colorized") + (synopsis "Colorized REPL for Guile") + (description + "Guile-colorized provides you with a colorized REPL for GNU Guile.") + (license license:gpl3+))) + ;;; guile.scm ends here diff --git a/gnu/packages/hugs.scm b/gnu/packages/hugs.scm index 2367d5bc6d..a14b8a8583 100644 --- a/gnu/packages/hugs.scm +++ b/gnu/packages/hugs.scm @@ -39,36 +39,37 @@ "1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-cons-before - 'configure 'fix-sh-n-cp - (lambda _ - (substitute* - '("configure" - "libraries/configure" - "packages/time/configure" - "packages/base/configure" - "packages/X11/configure" - "packages/HGL/configure" - "packages/OpenAL/configure" - "packages/OpenGL/configure" - "packages/network/configure" - "packages/unix/configure" - "packages/Cabal/tests/HSQL/configure" - "packages/ALUT/configure" - "packages/GLUT/configure" - "packages/base/cbits/execvpe.c" - "packages/base/System/Process/Internals.hs" - "packages/Cabal/Distribution/attic" - "packages/Cabal/Distribution/Simple/Register.hs" - "packages/Cabal/Distribution/Simple/Hugs.hs" - "tools/hugs-hc" - "src/machdep.c" - "libraries/Makefile.in") - (("/bin/sh") (which "sh"))) - (substitute* '("demos/Makefile.in" - "libraries/Makefile.in") - (("/bin/cp") (which "cp")))) - %standard-phases) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-sh-n-cp + (lambda _ + (substitute* + '("configure" + "libraries/configure" + "packages/time/configure" + "packages/base/configure" + "packages/X11/configure" + "packages/HGL/configure" + "packages/OpenAL/configure" + "packages/OpenGL/configure" + "packages/network/configure" + "packages/unix/configure" + "packages/Cabal/tests/HSQL/configure" + "packages/ALUT/configure" + "packages/GLUT/configure" + "packages/base/cbits/execvpe.c" + "packages/base/System/Process/Internals.hs" + "packages/Cabal/Distribution/attic" + "packages/Cabal/Distribution/Simple/Register.hs" + "packages/Cabal/Distribution/Simple/Hugs.hs" + "tools/hugs-hc" + "src/machdep.c" + "libraries/Makefile.in") + (("/bin/sh") (which "sh"))) + (substitute* '("demos/Makefile.in" + "libraries/Makefile.in") + (("/bin/cp") (which "cp"))) + #t))) #:tests? #f)) ; no test target ;; FIXME: Fails to build with GCC 5. (native-inputs `(("gcc" ,gcc-4.9))) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index bd1eb4b085..a29e5bafd2 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -56,14 +56,13 @@ "02hygsfpd2dljl5lg1vjjg9pizi9jyxd4aiiqzjshz6jax62jm9f")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-replace - 'install - (lambda _ - (zero? - (system* "make" "install-data"))) - (alist-delete - 'build - %standard-phases)) + `(#:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + (zero? + (system* "make" "install-data")))) + (delete 'build)) ;; GNU Mach supports only IA32 currently, so cheat so that we can at ;; least install its headers. @@ -125,11 +124,12 @@ communication.") (native-inputs `(("mig" ,mig))) (arguments - `(#:phases (alist-replace - 'install - (lambda _ - (zero? (system* "make" "install-headers" "no_deps=t"))) - (alist-delete 'build %standard-phases)) + `(#:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + (zero? (system* "make" "install-headers" "no_deps=t")))) + (delete 'build)) #:configure-flags '(;; Pretend we're on GNU/Hurd; 'configure' wants ;; that. @@ -164,24 +164,22 @@ Library and other user programs.") (arguments (substitute-keyword-arguments (package-arguments hurd-headers) ((#:phases _) - '(alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; We need to copy libihash.a to the output directory manually, - ;; since there is no target for that in the makefile. - (mkdir-p (string-append out "/include")) - (copy-file "libihash/ihash.h" - (string-append out "/include/ihash.h")) - (mkdir-p (string-append out "/lib")) - (copy-file "libihash/libihash.a" - (string-append out "/lib/libihash.a")) - #t)) - (alist-replace - 'build - (lambda _ - (zero? (system* "make" "-Clibihash" "libihash.a"))) - %standard-phases))))) + '(modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; We need to copy libihash.a to the output directory manually, + ;; since there is no target for that in the makefile. + (mkdir-p (string-append out "/include")) + (copy-file "libihash/ihash.h" + (string-append out "/include/ihash.h")) + (mkdir-p (string-append out "/lib")) + (copy-file "libihash/libihash.a" + (string-append out "/lib/libihash.a")) + #t))) + (replace 'build + (lambda _ + (zero? (system* "make" "-Clibihash" "libihash.a")))))))) (home-page "https://www.gnu.org/software/hurd/hurd.html") (synopsis "GNU Hurd libraries") (description diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index dfb68488ee..95fb90fdab 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -54,7 +54,7 @@ (define-public feh (package (name "feh") - (version "2.20") + (version "2.21") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -62,13 +62,13 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "02vhdv16nf4kjna4inpbfy4k3p40bhl7xpc4kh4xvily14146l2b")))) + "0azgpr4al2pi4858z4xh4lfz84cvzxw3n426fn7rz6cdj34q212j")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-delete 'configure %standard-phases) - #:tests? #f ;FIXME: Requires 'perl-test-command'. - #:make-flags - (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + '(#:phases (modify-phases %standard-phases (delete 'configure)) + #:tests? #f ;FIXME: Requires 'perl-test-command'. + #:make-flags + (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (inputs `(("imlib2" ,imlib2) ("curl" ,curl) ("libpng" ,libpng) @@ -178,9 +178,8 @@ It is the default image viewer on LXDE desktop environment.") '(#:tests? #f ; no check target #:make-flags (list (string-append "PREFIX=" %output) "CC=gcc") - #:phases (alist-delete - 'configure ; no configure phase - %standard-phases))) + ;; no configure phase + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("libx11" ,libx11) ("imlib2" ,imlib2) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index e525c75693..b53247de82 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -167,7 +167,7 @@ APNG patch provides APNG support to libpng.") (define-public libpng-1.2 (package (inherit libpng) - (version "1.2.57") + (version "1.2.59") (source (origin (method url-fetch) @@ -180,7 +180,8 @@ APNG patch provides APNG support to libpng.") "ftp://ftp.simplesystems.org/pub/libpng/png/src/history" "/libpng12/libpng-" version ".tar.xz"))) (sha256 - (base32 "1n2lrzjkm5jhfg2bs10q398lkwbbx742fi27zgdgx0x23zhj0ihg")))))) + (base32 + "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl")))))) (define-public r-png (package @@ -509,7 +510,7 @@ work.") (define-public openjpeg (package (name "openjpeg") - (version "2.2.0") + (version "2.3.0") (source (origin (method url-fetch) @@ -519,13 +520,7 @@ work.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0yvfghxwfm3dcqr9krkw63pcd76hzkknc3fh7bh11s8qlvjvrpbg")) - (patches (search-patches "openjpeg-CVE-2017-12982.patch" - "openjpeg-CVE-2017-14040.patch" - "openjpeg-CVE-2017-14041.patch" - "openjpeg-CVE-2017-14151.patch" - "openjpeg-CVE-2017-14152.patch" - "openjpeg-CVE-2017-14164.patch")))) + "06npqzkg20avnygdwaqpap91r7qpdqgrn39adj2bl8v0pg0qgirx")))) (build-system cmake-build-system) (arguments ;; Trying to run `$ make check' results in a no rule fault. @@ -743,15 +738,15 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.") (define-public vigra (package (name "vigra") - (version "1.11.0") + (version "1.11.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/ukoethe/vigra/releases/download/" - "Version-1-11-0/vigra-" - version "-src.tar.gz")) + "Version-" (string-join (string-split version #\.) "-") + "/vigra-" version "-src.tar.gz")) (sha256 (base32 - "1jzm79kqiiilvys3b8mlzy9cvmiirrcwsrlg19qd9rza8zipsqb8")))) + "1bqs8vx5i1bzamvv563i24gx2xxdidqyxh9iaj46mbznhc84wmm5")))) (build-system cmake-build-system) (inputs `(("boost" ,boost) @@ -797,7 +792,7 @@ processing and analysis library that puts its main emphasis on customizable algorithms and data structures. It is particularly strong for multi-dimensional image processing.") (license license:expat) - (home-page "https://hci.iwr.uni-heidelberg.de/vigra"))) + (home-page "https://ukoethe.github.io/vigra/"))) (define-public libwebp (package diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 7599f87311..fabbd707ac 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,14 +46,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.9-15") + (version "6.9.9-18") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0bxgdc1qiyvag6a2iiqcbwp4ak0m1mzi9qhs51fbrvv6syy12m6c")))) + "1d70dvrgcasa3cla4c1dag4mw7vq4jk1nzbd604fk20l0l6xa78j")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") @@ -185,7 +185,8 @@ script.") "graphicsmagick-CVE-2017-13775.patch" "graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch" "graphicsmagick-CVE-2017-14042.patch" - "graphicsmagick-CVE-2017-14165.patch")))) + "graphicsmagick-CVE-2017-14165.patch" + "graphicsmagick-CVE-2017-14649.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 0f28e640ab..4c68af0088 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 John Darrington ;;; Copyright © 2014, 2016 Mark H Weaver ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +51,16 @@ (uri (string-append "https://media.inkscape.org/dl/" "resources/file/" "inkscape-" version ".tar.bz2")) + (patches + (list + ;; Fix compatibility with poppler >= 0.58. + (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/inkscape/inkscape/commit/" + "9418824967eb4c53371ef8588243fed4cab496e0.patch")) + (sha256 + (base32 + "0wwyhkqb1qyazz5f6wqrc223l6k8qnmadiw28q8gihlgvh38rvll"))))) (sha256 (base32 "01chr3vh728dkg7l7lilwgmh5nrp784khdhjgpqjbq9dh2zhax15")))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 806f13ab89..95fba20e88 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Roel Janssen ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Julien Lepiller +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -4207,6 +4208,40 @@ allowing the end user to plug in the desired logging framework at deployment time.") (license license:expat))) +(define-public java-slf4j-simple + (package + (name "java-slf4j-simple") + (version "1.7.25") + (source (package-source java-slf4j-api)) + (build-system ant-build-system) + (arguments + `(#:jar-name "slf4j-simple.jar" + #:source-dir "slf4j-simple/src/main" + #:test-dir "slf4j-simple/src/test" + #:phases + (modify-phases %standard-phases + ;; The tests need some test classes from slf4j-api + (add-before 'check 'build-slf4j-api-test-helpers + (lambda _ + ;; Add current dir to CLASSPATH ... + (setenv "CLASSPATH" + (string-append (getcwd) ":" (getenv "CLASSPATH"))) + ;; ... and build test helper classes here: + (zero? + (apply system* + `("javac" "-d" "." + ,@(find-files "slf4j-api/src/test" ".*\\.java"))))))))) + (inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-slf4j-api" ,java-slf4j-api))) + (home-page "https://www.slf4j.org/") + (synopsis "Simple implementation of simple logging facade for Java") + (description "SLF4J binding for the Simple implementation, which outputs +all events to System.err. Only messages of level INFO and higher are +printed.") + (license license:expat))) + (define-public antlr2 (package (name "antlr2") @@ -4716,3 +4751,1272 @@ complex transformations and code analysis tools.") #t))))) (native-inputs `(("java-junit" ,java-junit))))) + +(define-public java-microemulator-cldc + (package + (name "java-microemulator-cldc") + (version "2.0.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/barteo/microemu/archive/" + "microemulator_" + (string-map (lambda (c) (if (char=? c #\.) #\_ c)) + version) + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1x1apmz38gkppxnwnygwmi12j54v4p258v8ddzn6dldkk7vak1ll")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "microemulator-cldc.jar" + #:source-dir "microemu-cldc/src/main/java" + #:tests? #f)); Requires even older software + (home-page "https://github.com/barteo/microemu") + (synopsis "J2ME CLDC emulator") + (description "Microemulator is a Java 2 Micro Edition (J2ME) CLDC/MIDP +Emulator. It allows to demonstrate MIDlet based applications in web browser +applet and can be run as a standalone java application.") + (license (list license:asl2.0 + ;; or altenatively: + license:lgpl2.1+)))) + +(define-public java-datanucleus-javax-persistence + (package + (name "java-datanucleus-javax-persistence") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/datanucleus/" + "javax.persistence/archive/javax.persistence-" + version "-release.tar.gz")) + (sha256 + (base32 + "11jx0fjwgc2hhbqqgdd6m1pf2fplf9vslppygax0y1z5csnqjhpx")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-datanucleus-javax-persistence.jar" + #:jdk ,icedtea-8 + #:source-dir "src/main/java" + #:tests? #f)); no tests + (home-page "https://github.com/datanucleus/javax.persistence") + (synopsis "JPA API") + (description "This package contains a clean definition of JPA API intended +for use with DataNucleus JPA since the JCP haven't provided an official JPA API +jar. See @url{http://java.net/projects/jpa-spec/downloads} for the specification +used to generate this API.") + (license (list license:edl1.0 license:epl1.0)))) + +(define-public java-osgi-cmpn + (package + (name "java-osgi-cmpn") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/" + "org/osgi/osgi.cmpn/" version "/osgi.cmpn-" + version "-sources.jar")) + (sha256 + (base32 + "1lmb6xyrmkqdhv1kayf0514rlwq6ypvs4m44ibrck3snp8241wys")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-cmpn.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation) + ("core" ,java-osgi-core) + ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence) + ("microemulator" ,java-microemulator-cldc) + ("servlet" ,java-classpathx-servletapi))) + (home-page "http://www.osgi.org") + (synopsis "Compendium specification module of OSGi framework") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the compendium specification module, providing interfaces and classes for use +in compiling bundles.") + (license license:asl2.0))) + +(define-public java-osgi-service-component-annotations + (package + (name "java-osgi-service-component-annotations") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.component.annotations/" + version "/org.osgi.service.component.annotations-" + version "-sources.jar")) + (sha256 + (base32 + "15rq9cmp4fpn74q44m4j35qsqmjf5lx3hcrk6pzvbhc08igic2f0")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-component-annotations.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "Support annotations for osgi-service-component") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the support annotations for osgi-service-component.") + (license license:asl2.0))) + +(define-public java-osgi-dto + (package + (name "java-osgi-dto") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.dto/" version "/org.osgi.dto-" + version "-sources.jar")) + (sha256 + (base32 + "0f4bqjzadn0hwk6sd3h5gvbyfp3yci1s6r0v770cc15p0pg627yr")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-dto.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "Data Transfer Objects") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the Data Transfer Objects. It is easily serializable having only public fields +of primitive types and their wrapper classes, Strings, and DTOs. List, Set, +Map and array aggregates may also be used. The aggregates must only hold +objects of the listed types or aggregates.") + (license license:asl2.0))) + +(define-public java-osgi-resource + (package + (name "java-osgi-resource") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.resource/" + version "/org.osgi.resource-" + version "-sources.jar")) + (sha256 + (base32 + "0hi0fsc5v99q22bd7lrkvpz1y0ds4w9arjldpwsrcpqvz2js7q2d")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-resource.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation) + ("dto" ,java-osgi-dto))) + (home-page "http://www.osgi.org") + (synopsis "OSGI Resource") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the definition of common types in osgi packages.") + (license license:asl2.0))) + +(define-public java-osgi-namespace-contract + (package + (name "java-osgi-namespace-contract") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.namespace.contract/" + version "/org.osgi.namespace.contract-" + version "-sources.jar")) + (sha256 + (base32 + "1iz4f2i0fvqrlq90ki9nfzcfpvy2av434ri25bglywqssx8mmp36")))) + (build-system ant-build-system) + (inputs + `(("resource" ,java-osgi-resource) + ("annotation" ,java-osgi-annotation))) + (arguments + `(#:jar-name "osgi-namespace-contract.jar" + #:tests? #f)); no tests + (home-page "http://www.osgi.org") + (synopsis "Contract Capability and Requirement Namespace") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the names for the attributes and directives for a namespace with contracts.") + (license license:asl2.0))) + +(define-public java-osgi-namespace-extender + (package + (name "java-osgi-namespace-extender") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.namespace.extender/" + version "/org.osgi.namespace.extender-" + version "-sources.jar")) + (sha256 + (base32 + "0jgqiak2i05qv6j3gd33xlaifzzc0ylxxk376v2x0apfg3vvixmz")))) + (build-system ant-build-system) + (inputs + `(("resource" ,java-osgi-resource) + ("annotation" ,java-osgi-annotation))) + (arguments + `(#:jar-name "osgi-namespace-extendent.jar" + #:tests? #f)); no tests + (home-page "http://www.osgi.org") + (synopsis "Extender Capability and Requirement Namespace") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the names for the attributes and directives for an extender namespace.") + (license license:asl2.0))) + +(define-public java-osgi-namespace-service + (package + (name "java-osgi-namespace-service") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.namespace.service/" + version "/org.osgi.namespace.service-" + version "-sources.jar")) + (sha256 + (base32 + "0qmw8n2449nkmm56d1znz9zhazb6ya3vsimd5bf5jg23zzhgl8c8")))) + (build-system ant-build-system) + (inputs + `(("resource" ,java-osgi-resource) + ("annotation" ,java-osgi-annotation))) + (arguments + `(#:jar-name "osgi-namespace-service.jar" + #:tests? #f)); no tests + (home-page "http://www.osgi.org") + (synopsis "Service Capability and Requirement Namespace") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the names for the attributes and directives for a service namespace.") + (license license:asl2.0))) + +(define-public java-osgi-util-function + (package + (name "java-osgi-util-function") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.util.function/" + version "/org.osgi.util.function-" + version "-sources.jar")) + (sha256 + (base32 + "04l7j3hwmmj28w23m7paca0afzncs42j2mdr3liqq8kvp548sc6x")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-util-function.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "OSGI Util Function") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +an interface for a function that accepts a single argument and produces a result.") + (license license:asl2.0))) + +(define-public java-osgi-util-promise + (package + (name "java-osgi-util-promise") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.util.promise/" + version "/org.osgi.util.promise-" + version "-sources.jar")) + (sha256 + (base32 + "0y34dwiflg1c4ahvkswpf9z02xph2sr9fm04ia5493x3lshpw22c")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-util-promise.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation) + ("function" ,java-osgi-util-function))) + (home-page "http://www.osgi.org") + (synopsis "Promise of a value") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +an interface and utilitary classes for promises. A Promise represents a future +value. It handles the interactions for asynchronous processing.") + (license license:asl2.0))) + +(define-public java-osgi-service-metatype-annotations + (package + (name "java-osgi-service-metatype-annotations") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.metatype.annotations/" + version "/org.osgi.service.metatype.annotations-" + version "-sources.jar")) + (sha256 + (base32 + "12rwm3349wk80vm88rcdgs4435m4jxkpkj5mrx326skkz2c6hyw6")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-metatype-annotations.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "Support annotations for metatype") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the support annotations for metatype.") + (license license:asl2.0))) + +(define-public java-osgi-service-repository + (package + (name "java-osgi-service-repository") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.repository/" + version "/org.osgi.service.repository-" + version "-sources.jar")) + (sha256 + (base32 + "1k41mhg7b58pd8nsghr2qwcjrxdnf1p9spsw9v11k4257g6rl06n")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-repository.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation) + ("promise" ,java-osgi-util-promise) + ("resource" ,java-osgi-resource))) + (home-page "http://www.osgi.org") + (synopsis "OSGI service repository") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +a repository service that contains resources.") + (license license:asl2.0))) + +(define-public java-osgi-framework + (package + (name "java-osgi-framework") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.framework/" version "/org.osgi.framework-" + version "-sources.jar")) + (sha256 + (base32 + "1lwp2zfad3rybcc6q9bwz8xsgkc92ypzy5p6x54387f1qj65m73s")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-framework.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation) + ("resource" ,java-osgi-resource) + ("dto" ,java-osgi-dto))) + (home-page "http://www.osgi.org") + (synopsis "OSGi framework") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language.") + (license license:asl2.0))) + +(define-public java-osgi-service-log + (package + (name "java-osgi-service-log") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.log/" + version "/org.osgi.service.log-" + version "-sources.jar")) + (sha256 + (base32 + "1029j30dzcwializzca0j3fkhwwz08kmmsha5agw1iccscimj6r0")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-log.jar" + #:tests? #f)); no tests + (inputs + `(("java-osgi-framework" ,java-osgi-framework))) + (home-page "http://www.osgi.org") + (synopsis "Provides methods for bundles to write messages to the log") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the log service.") + (license license:asl2.0))) + +(define-public java-osgi-service-jdbc + (package + (name "java-osgi-service-jdbc") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.jdbc/" + version "/org.osgi.service.jdbc-" + version "-sources.jar")) + (sha256 + (base32 + "11iln5v7bk469cgb9ddkrz9sa95b3733gqgaqw9xf5g6wq652yjz")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-jdbc.jar" + #:tests? #f)); no tests + (home-page "http://www.osgi.org") + (synopsis "Factory for JDBC connection factories") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +a factory for JDBC connection factories. There are 3 preferred connection +factories for getting JDBC connections: + +@itemize +@item @code{javax.sql.DataSource}; +@item @code{javax.sql.ConnectionPoolDataSource}; +@item @code{javax.sql.XADataSource}. +@end itemize") + (license license:asl2.0))) + +(define-public java-osgi-service-resolver + (package + (name "java-osgi-service-resolver") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.resolver/" + version "/org.osgi.service.resolver-" + version "-sources.jar")) + (sha256 + (base32 + "1dzqn1ryfi2rq4zwsgp44bmj2wlfydjg1qbxw2b0z4xdjjy55vxd")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-resolver.jar" + #:tests? #f)); no tests + (inputs + `(("annotation" ,java-osgi-annotation) + ("resource" ,java-osgi-resource))) + (home-page "http://www.osgi.org") + (synopsis "OSGI Resolver service") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +a resolver service that resolves the specified resources in the context supplied +by the caller.") + (license license:asl2.0))) + +(define-public java-osgi-util-tracker + (package + (name "java-osgi-util-tracker") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.util.tracker/" + version "/org.osgi.util.tracker-" + version "-sources.jar")) + (sha256 + (base32 + "0c4fh9vxwzsx59r8dygda0gq2gx3z5vfhc3jsphlqwf5w0h403lz")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-util-tracker.jar" + #:tests? #f)); no tests + (inputs + `(("framework" ,java-osgi-framework) + ("annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "Bundle tracking") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +bundle tracking utility classes.") + (license license:asl2.0))) + +(define-public java-osgi-service-cm + (package + (name "java-osgi-service-cm") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.cm/" + version "/org.osgi.service.cm-" + version "-sources.jar")) + (sha256 + (base32 + "1z8kap48y3xi0ggj8v6czglfnpnd94mmismgi2wbqhj1nl5fzbp6")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-cm.jar" + #:tests? #f)); no tests + (inputs + `(("framework" ,java-osgi-framework) + ("annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "OSGI Configuration Management") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +utility classes for the configuration of services.") + (license license:asl2.0))) + +(define-public java-osgi-service-packageadmin + (package + (name "java-osgi-service-packageadmin") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/org/osgi/" + "org.osgi.service.packageadmin/" + version "/org.osgi.service.packageadmin-" + version "-sources.jar")) + (sha256 + (base32 + "041mpxzi7g36wmcily6y4ccn3jx15akpdy8gmhyb7m98x7qfvn52")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "osgi-service-packageadmin.jar" + #:tests? #f)); no tests + (inputs + `(("framework" ,java-osgi-framework))) + (home-page "http://www.osgi.org") + (synopsis "OSGI Package Administration") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the packageadmin service.") + (license license:asl2.0))) + +(define-public java-ops4j-base-lang + (package + (name "java-ops4j-base-lang") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ops4j/org.ops4j.base/" + "archive/base-" version ".tar.gz")) + (sha256 + (base32 + "18hl3lpchgpv8yh5rlk39l2gif5dlfgb8gxjmncf39pr2dprkniw")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-ops4j-base-lang.jar" + #:source-dir "ops4j-base-lang/src/main/java" + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'add-test-file + (lambda _ + ;; That file is required by a test in ops4j-pax-exam-core-spi + (mkdir-p "build/classes/META-INF/maven/org.ops4j.base/ops4j-base-lang") + (with-output-to-file "build/classes/META-INF/maven/org.ops4j.base/ops4j-base-lang/pom.properties" + (lambda _ + (display + (string-append + "version=" ,version "\n" + "groupId=org.ops4j.base" + "artifactId=ops4j-base-lang\n"))))))))) + (home-page "https://ops4j1.jira.com/wiki/spaces/base/overview") + (synopsis "Utility classes and extensions to be used in OPS4J projects") + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities and extensions related to @code{java.lang}.") + (license license:asl2.0))) + +(define-public java-ops4j-base-monitors + (package + (inherit java-ops4j-base-lang) + (name "java-ops4j-base-monitors") + (arguments + `(#:jar-name "java-ops4j-base-monitors.jar" + #:source-dir "ops4j-base-monitors/src/main/java" + #:tests? #f)); no tests + (inputs + `(("lang" ,java-ops4j-base-lang))) + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities and extensions related to monitoring."))) + +(define-public java-ops4j-base-io + (package + (inherit java-ops4j-base-lang) + (name "java-ops4j-base-io") + (arguments + `(#:jar-name "java-ops4j-base-io.jar" + #:source-dir "ops4j-base-io/src/main/java" + #:test-dir "ops4j-base-io/src/test" + #:test-exclude + (list "**/ListerTest.java"))) + (inputs + `(("lang" ,java-ops4j-base-monitors) + ("lang" ,java-ops4j-base-lang))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities and extensions related to handling streams and files."))) + +(define-public java-ops4j-base-util + (package + (inherit java-ops4j-base-lang) + (name "java-ops4j-base-util") + (arguments + `(#:jar-name "java-ops4j-base-util.jar" + #:source-dir "ops4j-base-util/src/main/java" + #:test-dir "ops4j-base-util/src/test")) + (inputs + `(("lang" ,java-ops4j-base-lang))) + (native-inputs + `(("junit" ,java-junit))) + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities and extensions related to environment, i18n and +mime types."))) + +(define-public java-ops4j-base-util-property + (package + (inherit java-ops4j-base-lang) + (name "java-ops4j-base-util-property") + (arguments + `(#:jar-name "java-ops4j-base-util-property.jar" + #:source-dir "ops4j-base-util-property/src/main/java" + #:tests? #f)); no tests + (inputs + `(("lang" ,java-ops4j-base-lang) + ("util" ,java-ops4j-base-util))) + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities and extensions related to resolving properties from +different sources."))) + +(define-public java-ops4j-base-store + (package + (inherit java-ops4j-base-lang) + (name "java-ops4j-base-store") + (arguments + `(#:jar-name "java-ops4j-base-store.jar" + #:source-dir "ops4j-base-store/src/main/java" + #:tests? #f)); no tests + (inputs + `(("lang" ,java-ops4j-base-lang) + ("slf4j" ,java-slf4j-api) + ("io" ,java-ops4j-base-io))) + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities for storing and retrieving data from an +@code{InputStream}."))) + +(define-public java-ops4j-base-spi + (package + (inherit java-ops4j-base-lang) + (name "java-ops4j-base-spi") + (arguments + `(#:jar-name "java-ops4j-base-spi.jar" + #:source-dir "ops4j-base-spi/src/main/java" + #:test-dir "ops4j-base-spi/src/test")) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (description "OPS4J stands for Open Participation Software for Java. This +package contains utilities for obtaining services via the Java SE 6 +@code{ServiceLoader}."))) + +(define-public java-aqute-bnd-annotation + (package + (name "java-aqute-bnd-annotation") + (version "3.4.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/bndtools/bnd/archive/" + version ".REL.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "09vgb6axikbz66zi9falijbnzh1qnp9ysfns123dmzdb01cbza9q")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-aqute-bnd-annotation.jar" + #:source-dir "biz.aQute.bnd.annotation/src" + #:tests? #f)); empty test dir + (home-page "http://bnd.bndtools.org/") + (synopsis "Tools for OSGi") + (description "Bnd is a swiss army knife for OSGi, it creates manifest +headers based on analyzing the class code, it verifies the project settings, +it manages project dependencies, gives diffs jars, and much more.") + (license license:asl2.0))) + +(define-public java-aqute-libg + (package + (inherit java-aqute-bnd-annotation) + (name "java-aqute-libg") + (arguments + `(#:jar-name "java-aqute-libg.jar" + #:source-dir "aQute.libg/src" + #:tests? #f)); FIXME: tests are in "aQute.libg/test", not in a java directory + (inputs + `(("slf4j" ,java-slf4j-api) + ("osgi-annot" ,java-osgi-annotation) + ("java-osgi-cmpn" ,java-osgi-cmpn) + ("osgi" ,java-osgi-core))))) + +(define-public java-aqute-bndlib + (package + (inherit java-aqute-bnd-annotation) + (name "java-aqute-bndlib") + (arguments + `(#:jar-name "java-bndlib.jar" + #:source-dir "biz.aQute.bndlib/src" + #:tests? #f)); no tests + (inputs + `(("slf4j" ,java-slf4j-api) + ("osgi-annot" ,java-osgi-annotation) + ("java-aqute-libg" ,java-aqute-libg) + ("java-aqute-bnd-annotation" ,java-aqute-bnd-annotation) + ("java-osgi-service-component-annotations" ,java-osgi-service-component-annotations) + ("java-osgi-service-repository" ,java-osgi-service-repository) + ("java-osgi-service-log" ,java-osgi-service-log) + ("java-osgi-service-metatype-annotations" ,java-osgi-service-metatype-annotations) + ("java-osgi-namespace-contract" ,java-osgi-namespace-contract) + ("java-osgi-namespace-extender" ,java-osgi-namespace-extender) + ("java-osgi-namespace-service" ,java-osgi-namespace-service) + ("promise" ,java-osgi-util-promise) + ("osgi" ,java-osgi-core))))) + +(define-public java-ops4j-pax-tinybundles + (package + (name "java-ops4j-pax-tinybundles") + (version "2.1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ops4j/org.ops4j.pax.tinybundles/" + "archive/tinybundles-" version ".tar.gz")) + (sha256 + (base32 + "0y0gq3pvv0iir2b885lmlwnvr724vv7vklzhhr4fs27d7mdkj871")))) + (arguments + `(#:jar-name "java-ops4j-pax-tinybundles.jar" + #:source-dir "src/main/java" + #:test-exclude + ;; Abstract base classes for other tests + (list "**/BndTest.java" "**/CoreTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-version + (lambda _ + ;; This test has a reference to an old version of bndlib we are not + ;; packaging. It uses the version referenced in pom.xml. We replace + ;; it with our own version. + (substitute* "src/test/java/org/ops4j/pax/tinybundles/bnd/BndTest.java" + (("2.4.0.201411031534") "3.4.0"))))))) + (inputs + `(("lang" ,java-ops4j-base-lang) + ("io" ,java-ops4j-base-io) + ("store" ,java-ops4j-base-store) + ("slf4j" ,java-slf4j-api) + ("libg" ,java-aqute-libg) + ("bndlib" ,java-aqute-bndlib))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core) + ("log4j" ,java-log4j-api) + ("bndannotation" ,java-aqute-bnd-annotation) + ("framework" ,java-osgi-framework))) + (build-system ant-build-system) + (home-page "https://ops4j1.jira.com/wiki/spaces/ops4j/pages/12060312/Tinybundles") + (synopsis "Java APIs to create OSGi related artifacts") + (description "Tinybundles is all about creating OSGi related artifacts like +Bundles, Fragments and Deployment Packages with Java Api. It is very convinient +to create such artifacts on-the-fly inside Tests (like in Pax Exam). On the +other hand, this library can be a foundation of real end user tools that need +to create those artifacts.") + (license license:asl2.0))) + +(define-public java-ops4j-pax-exam-core + (package + (name "java-ops4j-pax-exam-core") + (version "4.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ops4j/org.ops4j.pax.exam2/" + "archive/exam-reactor-" version ".tar.gz")) + (sha256 + (base32 + "08mzw8nkah3rj3vznlplnawspxhp61zgvb44ifqa1rni1cvbms2g")))) + (arguments + `(#:jar-name "java-ops4j-pax-exam-core.jar" + #:source-dir "core/pax-exam/src/main/java" + #:test-dir "core/pax-exam/src/test")) + (inputs + `(("slf4j" ,java-slf4j-api) + ("lang" ,java-ops4j-base-lang) + ("io" ,java-ops4j-base-io) + ("util-property" ,java-ops4j-base-util-property) + ("util-store" ,java-ops4j-base-store) + ("java-osgi-core" ,java-osgi-core))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (build-system ant-build-system) + (home-page "https://ops4j1.jira.com/wiki/spaces/PAXEXAM4/overview") + (synopsis "In-Container Testing for OSGi, Java EE and CDI") + (description "Pax Exam creates OSGi bundles for testing purposes. It lets +the user take control of the OSGi framework, the test framework (e.g. JUnit) and +the system under test at the same time.") + (license license:asl2.0))) + +(define-public java-ops4j-pax-exam-core-spi + (package + (inherit java-ops4j-pax-exam-core) + (name "java-ops4j-pax-exam-core-spi") + (arguments + `(#:jar-name "java-ops4j-pax-exam-spi.jar" + #:source-dir "src/main/java" + #:test-exclude + (list + ;; Abstract base class, not a test + "**/BaseStagedReactorTest.java" + ;; Depends on org.mortbay.jetty.testwars:test-war-dump + "**/WarBuilderTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + ;; Tests assume we are in this directory + (chdir "core/pax-exam-spi"))) + (add-before 'check 'fix-tests + (lambda _ + ;; One test checks that this file is present. + (mkdir-p "build/classes/META-INF/maven/org.ops4j.pax.exam/pax-exam-spi") + (with-output-to-file + "build/classes/META-INF/maven/org.ops4j.pax.exam/pax-exam-spi/pom.properties" + (lambda _ + (display + (string-append "artifactId = pax-exam-spi\n" + "version = " ,(package-version java-ops4j-pax-exam-core-spi))))) + ;; Maven puts compilation results in the target directory, while we + ;; put them in the build directory. + (substitute* '("src/test/java/org/ops4j/pax/exam/spi/war/WarBuilderTest.java" + "src/test/java/org/ops4j/pax/exam/spi/war/WarTestProbeBuilderTest.java" + "src/test/java/org/ops4j/pax/exam/spi/war/ZipBuilderTest.java") + (("target") "build")) + ;; One test is expected to fail, but it doesn't throw the expected exception + (substitute* "src/test/java/org/ops4j/pax/exam/spi/reactors/BaseStagedReactorTest.java" + (("AssertionError") "IllegalArgumentException"))))))) + (inputs + `(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core) + ("lang" ,java-ops4j-base-lang) + ("monitors" ,java-ops4j-base-monitors) + ("store" ,java-ops4j-base-store) + ("io" ,java-ops4j-base-io) + ("spi" ,java-ops4j-base-spi) + ("osgi" ,java-osgi-core) + ("slf4j" ,java-slf4j-api) + ("tinybundles" ,java-ops4j-pax-tinybundles))) + (native-inputs + `(("mockito" ,java-mockito-1) + ("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core) + ("cglib" ,java-cglib) + ("objenesis" ,java-objenesis) + ("asm" ,java-asm))))) + +(define-public java-ops4j-pax-exam-core-junit + (package + (inherit java-ops4j-pax-exam-core) + (name "java-ops4j-pax-exam-core-junit") + (arguments + `(#:jar-name "ops4j-pax-exam-core-junit.jar" + #:source-dir "drivers/pax-exam-junit4/src/main/java" + #:tests? #f)); no tests + (inputs + `(("junit" ,java-junit) + ("slf4j" ,java-slf4j-api) + ("core" ,java-ops4j-pax-exam-core) + ("spi" ,java-ops4j-pax-exam-core-spi))) + (native-inputs '()))) + +(define-public java-fasterxml-jackson-annotations + (package + (name "java-fasterxml-jackson-annotations") + (version "2.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/" + "jackson-annotations/archive/" + "jackson-annotations-" version ".tar.gz")) + (sha256 + (base32 + "005ksgqx2ds3zdmlvbcmmz82y28b1mx0i9bpvprim1jaddbba0bd")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jackson-annotations.jar" + #:source-dir "src/main/java" + #:test-dir "src/test")) + (native-inputs + `(("junit" ,java-junit))) + (home-page "https://github.com/FasterXML/jackson-annotations") + (synopsis "General purpose annotations for the Jackson Data Processor") + (description "This package contains general purpose annotations for the +Jackson Data Processor, used on value and handler types. The only annotations +not included are ones that require dependency to the Databind package.") + (license license:asl2.0))) + +(define-public java-fasterxml-jackson-core + (package + (name "java-fasterxml-jackson-core") + (version "2.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/" + "jackson-core/archive/" + "jackson-core-" version ".tar.gz")) + (sha256 + (base32 + "1sdfp74zvlh4xr5h5bj87yjlp6kny3i8ai9m0q3xs7f8hvmxpx09")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jackson-core.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:test-exclude + (list + ;; Expected failure. pom.xml excludes these + "**/failing/**" + ;; Base classes that have no constructor for junit + "**/BaseTest.java" + "**/ConcurrencyReadTest.java" + "**/ManualCharAccessTest.java" + "**/ManualCharAccessTest.java" + "**/TrailingCommasTest.java" + "**/AsyncMissingValuesInObjectTest.java" + "**/AsyncMissingValuesInArrayTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-PackageVersion.java + (lambda _ + (let* ((out "src/main/java/com/fasterxml/jackson/core/json/PackageVersion.java") + (in (string-append out ".in"))) + (copy-file in out) + (substitute* out + (("@package@") "com.fasterxml.jackson.core.json") + (("@projectversion@") ,version) + (("@projectgroupid@") "com.fasterxml.jackson.core") + (("@projectartifactid@") "jackson-core"))))) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" + "build/classes"))) + (add-before 'check 'copy-test-resources + (lambda _ + (copy-recursively "src/test/resources" + "build/test-classes")))))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (home-page "https://github.com/FasterXML/jackson-core") + (synopsis "") + (description "") + (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing + +(define-public java-fasterxml-jackson-databind + (package + (name "java-fasterxml-jackson-databind") + (version "2.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/" + "jackson-databind/archive/" + "jackson-databind-" version ".tar.gz")) + (sha256 + (base32 + "02xrbj6g7pzybq8q33xmpf7cxfapk6z6lgxvig7d38fijz400lji")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jackson-databind.jar" + #:source-dir "src/main/java" + #:tests? #f; requires javax.measures for which I can't find a free implementation + #:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-PackageVersion.java + (lambda _ + (let* ((out "src/main/java/com/fasterxml/jackson/databind/cfg/PackageVersion.java") + (in (string-append out ".in"))) + (copy-file in out) + (substitute* out + (("@package@") "com.fasterxml.jackson.databind.cfg") + (("@projectversion@") ,version) + (("@projectgroupid@") "com.fasterxml.jackson.databind") + (("@projectartifactid@") "jackson-databind"))))) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes")))))) + (inputs + `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) + ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core))) + (home-page "https://github.com/FasterXML/jackson-databind") + (synopsis "Data-binding functionality and tree-model for the Jackson Data Processor") + (description "This package contains the general-purpose data-binding +functionality and tree-model for Jackson Data Processor. It builds on core +streaming parser/generator package, and uses Jackson Annotations for +configuration.") + (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing + +(define-public java-fasterxml-jackson-modules-base-jaxb + (package + (name "java-fasterxml-jackson-modules-base-jaxb") + (version "2.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/" + "jackson-modules-base/archive/" + "jackson-modules-base-" version ".tar.gz")) + (sha256 + (base32 + "0bj2pzvycnj3ysbcfa6xl38dmvnp01mnjfcb9jyhv503fch2iv44")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jackson-modules-base-jaxb.jar" + #:source-dir "jaxb/src/main/java" + #:test-dir "jaxb/src/test" + #:test-exclude + ;; Base class for tests + (list "**/BaseJaxbTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-PackageVersion.java + (lambda _ + (let* ((out (string-append "jaxb/src/main/java/com/fasterxml/" + "jackson/module/jaxb/PackageVersion.java")) + (in (string-append out ".in"))) + (copy-file in out) + (substitute* out + (("@package@") "com.fasterxml.jackson.module.jaxb") + (("@projectversion@") ,version) + (("@projectgroupid@") "com.fasterxml.jackson.module.jaxb") + (("@projectartifactid@") "jackson-module-jaxb"))))) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "jaxb/src/main/resources" "build/classes")))))) + (inputs + `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) + ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core) + ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "https://github.com/FasterXML/jackson-modules-base") + (synopsis "Jaxb annotations jackson module") + (description "This package is the jaxb annotations module for jackson.") + (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing + +(define-public java-snakeyaml + (package + (name "java-snakeyaml") + (version "1.18") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/asomov/snakeyaml/get/v" + version ".tar.gz")) + (sha256 + (base32 + "0rf5ha6w0waz50jz2479jsrbgmd0dnx0gs337m126j5z7zlmg7mg")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-snakeyaml.jar" + #:source-dir "src/main/java" + ;; Tests require velocity, a cyclic dependency, and + ;; java-spring-framework-context which is not packaged. + #:tests? #f)) + (home-page "https://bitbucket.org/asomov/snakeyaml") + (synopsis "YAML processor") + (description "SnakeYAML is a YAML processor for the Java Virtual Machine.") + (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing + +(define-public java-fasterxml-jackson-dataformat-yaml + (package + (name "java-fasterxml-jackson-dataformat-yaml") + (version "2.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/" + "jackson-dataformats-text/archive/" + "jackson-dataformats-text-" version ".tar.gz")) + (sha256 + (base32 + "140fwcafv05zbh2ppa6z533dzmfcvzbdxf0dbpbyzqvd84v2vhl2")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jackson-dataformat-yaml.jar" + #:source-dir "yaml/src/main/java" + #:test-dir "yaml/src/test" + #:test-exclude (list "**/failing/**.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-PackageVersion.java + (lambda _ + (let* ((out "yaml/src/main/java/com/fasterxml/jackson/dataformat/yaml/PackageVersion.java") + (in (string-append out ".in"))) + (copy-file in out) + (substitute* out + (("@package@") "com.fasterxml.jackson.dataformat.yaml") + (("@projectversion@") ,version) + (("@projectgroupid@") "com.fasterxml.jackson.dataformat.yaml") + (("@projectartifactid@") "jackson-dataformat-yaml")))))))) + (inputs + `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) + ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core) + ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind) + ("java-snakeyaml" ,java-snakeyaml))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core) + ("java-ops4j-pax-exam-core-spi" ,java-ops4j-pax-exam-core-spi) + ("java-ops4j-pax-exam-core-junit" ,java-ops4j-pax-exam-core-junit) + ("java-ops4j-pax-exam" ,java-ops4j-pax-exam-core))) + (home-page "https://github.com/FasterXML/jackson-dataformats-text") + (synopsis "Yaml backend for Jackson") + (description "Dataformat backends are used to support format alternatives +to JSON, supported by default. This is done by sub-classing Jackson core +abstractions.") + (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing + +(define-public java-stax2-api + (package + (name "java-stax2-api") + (version "4.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/stax2-api/archive/" + "stax2-api-" version ".tar.gz")) + (sha256 + (base32 + "1amc1si0l0hyyw2sawmnzy4hkna3z6fp195y4nm5m9wb9ld5awkq")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-stax2-api.jar" + #:source-dir "src/main/java" + #:tests? #f)); no tests + (home-page "https://github.com/FasterXML/stax2-api") + (synopsis "Stax2 API") + (description "Stax2 API is an extension to basic Stax 1.0 API that adds +significant new functionalities, such as full-featured bi-direction validation +interface and high-performance Typed Access API.") + (license license:bsd-2))) + +(define-public java-woodstox-core + (package + (name "java-woodstox-core") + (version "5.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/woodstox/archive/" + "woodstox-core-" version ".tar.gz")) + (sha256 + (base32 + "1i7pdgb8jbw6gdy5kmm0l6rz109n2ns92pqalpyp24vb8vlvdfd4")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "woodstox.jar" + #:test-exclude + (list "**/Base*.java" "failing/**") + #:phases + (modify-phases %standard-phases + (add-before 'build 'remove-msv-dep + (lambda _ + ;; we don't need osgi, and it depends on msv + (delete-file-recursively "src/main/java/com/ctc/wstx/osgi") + ;; msv's latest release is from 2011 and we don't need it + (delete-file-recursively "src/main/java/com/ctc/wstx/msv") + (delete-file-recursively "src/test/java/wstxtest/osgi") + (delete-file-recursively "src/test/java/wstxtest/msv"))) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes")))))) + (inputs + `(("stax2" ,java-stax2-api))) + (native-inputs + `(("junit" ,java-junit))) + (home-page "https://github.com/FasterXML/woodstox") + (synopsis "Stax XML API implementation") + (description "Woodstox is a stax XML API implementation.") + (license license:asl2.0))) + +(define-public java-fasterxml-jackson-dataformat-xml + (package + (name "java-fasterxml-jackson-dataformat-xml") + (version "2.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/FasterXML/" + "jackson-dataformat-xml/archive/" + "jackson-dataformat-xml-" version ".tar.gz")) + (sha256 + (base32 + "0x3m9n4kwclcyvxhxjx654qpjza4crphml1q2392qpnbfydx6lnh")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jackson-dataformat-xml.jar" + #:source-dir "src/main/java" + #:test-exclude + (list "**/failing/**") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-PackageVersion.java + (lambda _ + (let* ((out "src/main/java/com/fasterxml/jackson/dataformat/xml/PackageVersion.java") + (in (string-append out ".in"))) + (copy-file in out) + (newline) + (substitute* out + (("@package@") "com.fasterxml.jackson.dataformat.xml") + (("@projectversion@") ,version) + (("@projectgroupid@") "com.fasterxml.jackson.dataformat.xml") + (("@projectartifactid@") "jackson-dataformat-xml"))))) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes")))))) + (inputs + `(("jackson-annotations" ,java-fasterxml-jackson-annotations) + ("jackson-core" ,java-fasterxml-jackson-core) + ("jackson-modules-base-jaxb" ,java-fasterxml-jackson-modules-base-jaxb) + ("jackson-databind" ,java-fasterxml-jackson-databind) + ("stax2-api" ,java-stax2-api) + ("woodstox" ,java-woodstox-core))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (home-page "https://github.com/FasterXML/jackson-dataformat-xml") + (synopsis "Read and write XML") + (description "This package contains Jackson extension component for reading +and writing XML encoded data. + +Further, the goal is to emulate how JAXB data-binding works with \"Code-first\" +approach (that is, no support is added for \"Schema-first\" approach). Support +for JAXB annotations is provided by JAXB annotation module; this module +provides low-level abstractions (@code{JsonParser}, @code{JsonGenerator}, +@code{JsonFactory}) as well as small number of higher level overrides needed to +make data-binding work.") + (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 91a7b6208c..57d4492fb8 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -102,17 +102,16 @@ (qtquickcontrols (assoc-ref inputs "qtquickcontrols")) (qtbase (assoc-ref inputs "qtbase")) (qtdeclarative (assoc-ref inputs "qtdeclarative")) - (profile "$HOME/.guix-profile") (qml "/qml")) (wrap-program (string-append out "/bin/kdevelop") `("XDG_DATA_DIRS" ":" prefix ,(map (lambda (s) (string-append s "/share")) - (list profile out kdevplatform kcmutils))) + (list out kdevplatform kcmutils))) `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" = (,(string-append qtbase "/plugins/platforms"))) `("QT_PLUGIN_PATH" ":" prefix ,(map (lambda (s) (string-append s "/lib/plugins")) - (list profile out kdevplatform kio))) + (list out kdevplatform kio))) `("QML2_IMPORT_PATH" ":" prefix (,(string-append qtquickcontrols qml) ,(string-append qtdeclarative qml)))))))))) diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 48b2204190..801b4e44a9 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Andreas Enge ;;; Copyright © 2014, 2015, 2016 Mark H Weaver -;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; Copyright © 2012, 2017 Ludovic Courtès @@ -46,6 +46,7 @@ (define-public mit-krb5 (package (name "mit-krb5") + (replacement mit-krb5-1.15.2) (version "1.15.1") (source (origin (method url-fetch) @@ -93,6 +94,19 @@ cryptography.") (home-page "http://web.mit.edu/kerberos/") (properties '((cpe-name . "kerberos"))))) +(define mit-krb5-1.15.2 ; CVE-2017-{11368,11462} + (package + (inherit mit-krb5) + (version "1.15.2") + (source (origin + (method url-fetch) + (uri (string-append "http://web.mit.edu/kerberos/dist/krb5/" + (version-major+minor version) + "/krb5-" version ".tar.gz")) + (sha256 + (base32 + "0zn8s7anb10hw3nzwjz7vg10fgmmgvwnibn2zrn3nppjxn9f6f8n")))))) + (define-public shishi (package (name "shishi") diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm index 6bac0bcd5b..941d3dcc45 100644 --- a/gnu/packages/libcanberra.scm +++ b/gnu/packages/libcanberra.scm @@ -79,15 +79,15 @@ `(("pkg-config" ,pkg-config))) (arguments `(#:phases - (alist-cons-before - 'build 'patch-default-sounds-directory - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/sound-theme-spec.c" - (("@SOUND_THEME_DIRECTORY@") - (string-append - (assoc-ref inputs "sound-theme-freedesktop") - "/share")))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'build 'patch-default-sounds-directory + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/sound-theme-spec.c" + (("@SOUND_THEME_DIRECTORY@") + (string-append + (assoc-ref inputs "sound-theme-freedesktop") + "/share"))) + #t))))) (home-page "http://0pointer.de/lennart/projects/libcanberra/") (synopsis "Implementation of the XDG Sound Theme and Name Specifications") diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 4f6064e939..55f39f2a6d 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -121,15 +121,14 @@ programs.") (define-public libuv (package (name "libuv") - (version "1.12.0") + (version "1.14.1") (source (origin (method url-fetch) - (uri (string-append "https://github.com/libuv/libuv/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://dist.libuv.org/dist/v" version + "/libuv-v" version ".tar.gz")) (sha256 (base32 - "0l0jrb5q3i8br10c8skc6xdwlxkmlpn3n0kngaqd68fsi1593kj1")))) + "08kx4mzjsdv90n9pivqxqjxlxk5vaf9p33zzvx661dwfmp9468pk")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 77c9ae108f..9980837c85 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Andy Wingo ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -129,14 +130,14 @@ CSV, CSS and XML.") (define-public librevenge (package (name "librevenge") - (version "0.0.2") + (version "0.0.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libwpd/" name "/" name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "03ygxyb0vfjv8raif5q62sl33b54wkr5rzgadb8slijm6k281wpn")))) + "1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) @@ -161,14 +162,14 @@ spreadsheets and presentations.") (define-public libwpd (package (name "libwpd") - (version "0.10.0") + (version "0.10.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "0b6krzr6kxzm89g6bapn805kdayq70hn16n5b5wfs2lwrf0ag2wx")))) + "0436gnidx45a9vx114hhh216jrh57mqb9zyssyjfadagmyz6hgrj")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -223,14 +224,14 @@ ZVR (simple compressed text format).") (define-public libwpg (package (name "libwpg") - (version "0.3.0") + (version "0.3.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "097jx8a638fwwfrzf6v29r1yhc34rq9526py7wf0ck2z4fcr2w3g")))) + "0cwc5zkp210c661l0bvk6q21jg9ak5g8gmy578w5fgfnjymz3yjp")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -323,17 +324,18 @@ AbiWord documents.") (define-public libcdr (package (name "libcdr") - (version "0.1.1") + (version "0.1.4") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "07yzb1yr5kzv0binzj5swz3zzay2gw3xb0fbkc2zwdssgrkf19nh")))) + "0vd6likgk51j46llybkx4wq3674xzrhp0k82220pkx9x1aqfi9z7")))) (build-system gnu-build-system) (native-inputs - `(("doxygen" ,doxygen) + `(("cppunit" ,cppunit) + ("doxygen" ,doxygen) ("pkg-config" ,pkg-config))) (propagated-inputs ; in Requires or Requires.private field of .pkg `(("icu4c" ,icu4c) @@ -362,7 +364,19 @@ CorelDRAW documents of all versions.") name "-" version ".tar.xz")) (sha256 (base32 "0y60vi1plyq69fqbcjnc0v8mvcjqjsl1ry6rmb3bq3q7j8a2fm6z")) - (patches (search-patches "libetonyek-build-with-mdds-1.2.patch")))) + (patches + (cons + (origin + (method url-fetch) + ;; Drop incorrect test that fails with latest liblangtag. + (uri (string-append "https://cgit.freedesktop.org/libreoffice" + "/libetonyek/patch/?id=" + "1a20d8ece2ea3e8aa1d319cd88e8a6aa637982f2")) + (file-name "libetonyek-build-with-liblangtag-0.6.patch") + (sha256 + (base32 + "0zdyykg3cmq226m54yjhg1fj5200c371h2qgjfna62dxa1jd6m97"))) + (search-patches "libetonyek-build-with-mdds-1.2.patch"))))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-mdds=1.2") @@ -393,7 +407,7 @@ Apple Keynote documents. It currently supports Keynote versions 2 to 5.") (define-public liblangtag (package (name "liblangtag") - (version "0.5.8") + (version "0.6.2") (source (origin (method url-fetch) @@ -401,7 +415,7 @@ Apple Keynote documents. It currently supports Keynote versions 2 to 5.") name "-" version ".tar.bz2")) (sha256 (base32 - "1akf0d7yp29pv3j2pw2riii4n5kyjr9szc0y77khnx9zzr5zdqh8")))) + "0bnm4hllr8cfrybm8rw7b8n0nlhzhnv73bkg1bxk452g6a82f96n")))) (build-system gnu-build-system) (native-inputs `(("libtool" ,libtool) @@ -420,14 +434,14 @@ standard 21.0.2.") (define-public libexttextcat (package (name "libexttextcat") - (version "3.4.4") + (version "3.4.5") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "14v2hkygnmf1zgahfm1fha47cr67iikrz2ymiqi28d2jydn0hk7j")))) + "1j6sjwkyhqvsgyw938bxxfwkzzi1mahk66g5342lv6j89jfvrz8k")))) (build-system gnu-build-system) (home-page "http://www.freedesktop.org/wiki/Software/libexttextcat/") (synopsis "Text Categorization library") @@ -439,20 +453,24 @@ library primarily intended for language guessing.") (define-public libfreehand (package (name "libfreehand") - (version "0.1.0") + (version "0.1.2") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "01j7mxi4lmf72w1mv2r098p8l0csdd94w2gq0ncp93djn34al6ai")))) + "1b1lvqh68rwij1yvmxy02hsmh7i74ma5767mk8mg5nx6chajshhf")))) (build-system gnu-build-system) (native-inputs - `(("doxygen" ,doxygen) + `(("cppunit" ,cppunit) + ("doxygen" ,doxygen) ("gperf" ,gperf) ("perl" ,perl) ("pkg-config" ,pkg-config))) + (inputs + `(("icu4c" ,icu4c) + ("lcms" ,lcms))) (propagated-inputs ; in Requires or Requires.private field of .pkg `(("librevenge" ,librevenge) ("zlib" ,zlib))) @@ -492,14 +510,14 @@ Microsoft Publisher documents of all versions.") (define-public libpagemaker (package (name "libpagemaker") - (version "0.0.2") + (version "0.0.3") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "05zgj5ngg9z4b7dnrfs59nm0macm99lzyxv4mg53jcvp0mkgigfd")))) + "1minj0q14d44qfas81a8lkpgj288h5xlkjp084sfx17xv9axr5nq")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -509,9 +527,6 @@ Microsoft Publisher documents of all versions.") (inputs `(("boost" ,boost) ("zlib" ,zlib))) - (arguments - ;; avoid triggering a build failure due to warnings - `(#:configure-flags '("--disable-werror"))) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libpagemaker") (synopsis "Library for parsing the PageMaker format") (description "Libpagemaker is a library that parses the file format of @@ -522,15 +537,15 @@ created by PageMaker version 6.x and 7.") (define-public libvisio (package (name "libvisio") - ;; FIXME: The newer version 0.1.1 fails its tests. - (version "0.1.0") + (version "0.1.5") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "libvisio-fix-tests.patch")) (sha256 (base32 - "0vvd2wyp4rw6s9xnj1dc9vgdpfvm45gnb5b9hhzif0fdnx4iskqf")))) + "132szijxm95ibzq5qqaylifbf6wa81g08jxggnwv22v60dwhc2j3")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) @@ -544,10 +559,6 @@ created by PageMaker version 6.x and 7.") ("libxml2" ,libxml2))) (inputs `(("boost" ,boost))) - ;; FIXME: Not needed any more for newer version 0.1.1. - (arguments - ;; avoid triggering a build failure due to warnings - `(#:configure-flags '("--disable-werror"))) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libvisio") (synopsis "Library for parsing the Microsoft Visio format") (description "Libvisio is a library that parses the file format of @@ -557,14 +568,14 @@ Microsoft Visio documents of all versions.") (define-public libodfgen (package (name "libodfgen") - (version "0.1.3") + (version "0.1.6") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "-" version ".tar.bz2")) (sha256 (base32 - "074qsav86ixwi9zm1f77g9vxdf1ihm6n930vxjg8q3lwzd8g7lb6")))) + "1hn91bm6dni7n3frh7lpbj3mjqmdrpn12ipq8rswd9445y4j2yrc")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -588,15 +599,14 @@ text documents, vector drawings, presentations and spreadsheets.") (define-public libmwaw (package (name "libmwaw") - (version "0.3.11") + (version "0.3.12") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.xz")) - (patches (search-patches "libmwaw-CVE-2017-9433.patch")) (sha256 (base32 - "16i9s9p4sjpdpbm3gq6jkc9r3nyfy47ggkdlgh7vr0mydccklj2b")))) + "1ryi1v38lgy5kv84fzjqkawidrg30y4hlqrz1v262792wzkad4bn")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -606,9 +616,6 @@ text documents, vector drawings, presentations and spreadsheets.") (inputs `(("boost" ,boost) ("zlib" ,zlib))) - (arguments - ;; avoid triggering configure errors by simple inclusion of boost headers - `(#:configure-flags '("--disable-werror"))) (home-page "https://sourceforge.net/p/libmwaw/wiki/Home/") (synopsis "Import library for some old Macintosh text documents") (description "Libmwaw contains some import filters for old Macintosh @@ -642,14 +649,14 @@ from the old StarOffice (.sdc, .sdw, ...).") (define-public libwps (package (name "libwps") - (version "0.4.0") + (version "0.4.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "0nlrdk7di015l0sk0ivjdqs86zdcvf73p9z9s9ry5glyhrknzxjk")))) + "05xjb35y5ha9grgjqs3viaglq7ydsry1hzdvkm7y5b6f1disnb1g")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -659,9 +666,6 @@ from the old StarOffice (.sdc, .sdw, ...).") (inputs `(("boost" ,boost) ("zlib" ,zlib))) - (arguments - ;; avoid triggering configure errors by simple inclusion of boost headers - `(#:configure-flags '("--disable-werror"))) (home-page "http://libwps.sourceforge.net/") (synopsis "Import library for Microsoft Works text documents") (description "Libwps is a library for importing files in the Microsoft @@ -671,14 +675,14 @@ Works word processor file format.") (define-public libzmf (package (name "libzmf") - (version "0.0.1") + (version "0.0.2") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/libzmf/libzmf-" version ".tar.xz")) (sha256 (base32 - "0yp5l1b90xim506zmr3ljkn3qkvbc7qk3dnwq1snxdpr57m37xga")))) + "08mg5kmkjrmqrd8j5rkzw9vdqlvibhb1ynp6bmfxnzq5rcq1l197")))) (build-system gnu-build-system) (inputs `(("boost" ,boost) @@ -962,7 +966,7 @@ and to return information on pronunciations, meanings and synonyms.") (list "sysui/CustomTarget_share.mk" "solenv/gbuild/gbuild.mk" "solenv/gbuild/platform/unxgcc.mk") - (("/bin/sh") (which "bash"))) + (("/bin/sh") (which "sh"))) (mkdir "external/tarballs") (symlink xmlsec diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index f1d75220a9..875d50a4ff 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Andy Wingo ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2017 Jonathan Brielmaier ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 04ad0a6451..edac75fc17 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -367,8 +367,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.13.4") -(define %linux-libre-hash "028dww9c6x22mvd0jd87bmibqiz5lrsyynrbzka18gh39sk0v8j7") +(define %linux-libre-version "4.13.5") +(define %linux-libre-hash "1crw61x7qrijhpw0azxf9b3fra0cxq87ncni2419p0s23jfdpc4m") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -377,14 +377,14 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.52" - "0zl1z13r4gg6r2sbx8mrif2cnjkjlfrswiap7wzb22jyfnlyj5nb" + (make-linux-libre "4.9.53" + "174i53cd090akbjq34dj4z00h1nyfmy3sl3fk6svcmbx6h34381h" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.89" - "1bw1cma8hxcj6wi8znc4nvw1p6dlc1lgciqak6n6ijn53xdd242h" + (make-linux-libre "4.4.90" + "1sqzvz8yrcf99vhphkxp1wm2agq6q9nshxb1mkypspm8rhm11vhw" %intel-compatible-systems #:configuration-file kernel-config)) @@ -511,7 +511,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.30") + (version "2.30.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -519,7 +519,7 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "13d0ax8bcapga8phj2nclx86w57ddqxbr98ajibpzjq6d7zs8262")) + "0hdq2fz405a89fyha4bgwg0rx8b65inxq17w8fg8qhmcj4x3dr0v")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet @@ -1434,22 +1434,22 @@ Linux-based operating systems.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (arguments - '(#:phases (alist-cons-after - 'unpack 'bootstrap - (lambda _ - ;; Fix "field ‘ip6’ has incomplete type" errors. - (substitute* "libbridge/libbridge.h" - (("#include ") - "#include \n#include ")) + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + ;; Fix "field ‘ip6’ has incomplete type" errors. + (substitute* "libbridge/libbridge.h" + (("#include ") + "#include \n#include ")) - ;; Ensure that the entire build fails if one of the - ;; sub-Makefiles fails. - (substitute* "Makefile.in" - (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;") - "$(MAKE) $(MFLAGS) -C $$x || exit 1;")) + ;; Ensure that the entire build fails if one of the + ;; sub-Makefiles fails. + (substitute* "Makefile.in" + (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;") + "$(MAKE) $(MFLAGS) -C $$x || exit 1;")) - (zero? (system* "autoreconf" "-vf"))) - %standard-phases) + (zero? (system* "autoreconf" "-vf"))))) #:tests? #f)) ; no 'check' target (home-page @@ -1466,7 +1466,7 @@ transparently through a bridge.") (define-public libnl (package (name "libnl") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) (uri (string-append @@ -1475,7 +1475,7 @@ transparently through a bridge.") "/libnl-" version ".tar.gz")) (sha256 (base32 - "1r3lw3hjvqxi5zqyq2w1qadm3gisd9nlf71dkl4yplacmssnhm3h")))) + "1gzm444rnsib64dddv0cwlpzy1q4bycjqhp1i5pxpikimqvpca5p")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) @@ -1490,7 +1490,7 @@ transparently through a bridge.") (string-join (string-split version #\.) "_") "/libnl-doc-" version ".tar.gz")) (sha256 - (base32 "0srab805yj8wb13l64qjyp3mdbqapxg5vk46v3zlhhzpmxqw8j7r")))))) + (base32 "1m5cnzviv31gjnz6fz5rgyl6ah4dbp2akm49j9973sgwl36gs8jx")))))) (inputs `(("python-2" ,python-2) ("python-3" ,python-3))) @@ -1554,7 +1554,7 @@ configuration and monitoring interfaces.") (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "CC=gcc") - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (home-page "https://wireless.wiki.kernel.org/") (synopsis "Tool for configuring wireless devices") (description @@ -1687,27 +1687,28 @@ processes currently causing I/O.") (string-append "UDEV_RULES_PATH=" (assoc-ref %outputs "out") "/lib/udev/rules.d")) - #:phases (alist-cons-before - 'build 'set-file-names - (lambda* (#:key inputs #:allow-other-keys) - ;; libfuse calls out to mount(8) and umount(8). Make sure - ;; it refers to the right ones. - (substitute* '("lib/mount_util.c" "util/mount_util.c") - (("/bin/(u?)mount" _ maybe-u) - (string-append (assoc-ref inputs "util-linux") - "/bin/" maybe-u "mount"))) - (substitute* '("util/mount.fuse.c") - (("/bin/sh") - (which "sh"))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'set-file-names + (lambda* (#:key inputs #:allow-other-keys) + ;; libfuse calls out to mount(8) and umount(8). Make sure + ;; it refers to the right ones. + (substitute* '("lib/mount_util.c" "util/mount_util.c") + (("/bin/(u?)mount" _ maybe-u) + (string-append (assoc-ref inputs "util-linux") + "/bin/" maybe-u "mount"))) + (substitute* '("util/mount.fuse.c") + (("/bin/sh") + (which "sh"))) - ;; This hack leads libfuse to search for 'fusermount' in - ;; $PATH, where it may find a setuid-root binary, instead of - ;; trying solely $out/sbin/fusermount and failing because - ;; it's not setuid. - (substitute* "lib/Makefile" - (("-DFUSERMOUNT_DIR=[[:graph:]]+") - "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))) - %standard-phases))) + ;; This hack leads libfuse to search for 'fusermount' in + ;; $PATH, where it may find a setuid-root binary, instead of + ;; trying solely $out/sbin/fusermount and failing because + ;; it's not setuid. + (substitute* "lib/Makefile" + (("-DFUSERMOUNT_DIR=[[:graph:]]+") + "-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")) + #t))))) (home-page "https://github.com/libfuse/libfuse") (synopsis "Support file systems implemented in user space") (description @@ -1785,20 +1786,20 @@ UnionFS-FUSE additionally supports copy-on-write.") (arguments '(#:tests? #f #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static") - #:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (exe (string-append out "/bin/unionfs"))) - ;; By default, 'unionfs' keeps references to - ;; $glibc/share/locale and similar stuff. Remove them. - (remove-store-references exe) + #:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (exe (string-append out "/bin/unionfs"))) + ;; By default, 'unionfs' keeps references to + ;; $glibc/share/locale and similar stuff. Remove them. + (remove-store-references exe) - ;; 'unionfsctl' has references to glibc as well. Since - ;; we don't need it, remove it. - (delete-file (string-append out "/bin/unionfsctl")) - #t)) - %standard-phases))) + ;; 'unionfsctl' has references to glibc as well. Since + ;; we don't need it, remove it. + (delete-file (string-append out "/bin/unionfsctl")) + #t)))))) (inputs `(("fuse" ,fuse-static))))) (define-public sshfs-fuse @@ -2398,43 +2399,42 @@ country-specific regulations for the wireless spectrum.") (string-append "MANDIR=" %output "/share/man") (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib")) #:phases - (alist-delete - 'configure - (alist-cons-before - 'build 'patch-exec-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "prog/detect/sensors-detect" - (("`uname") - (string-append "`" (assoc-ref inputs "coreutils") - "/bin/uname")) - (("(`|\")modprobe" all open-quote) - (string-append open-quote - (assoc-ref inputs "kmod") - "/bin/modprobe"))) - (substitute* '("prog/pwm/pwmconfig" - "prog/pwm/fancontrol") - (("gnuplot") - (string-append (assoc-ref inputs "gnuplot") - "/bin/gnuplot")) - (("cat ") - (string-append (assoc-ref inputs "coreutils") - "/bin/cat ")) - (("egrep ") - (string-append (assoc-ref inputs "grep") - "/bin/egrep ")) - (("sed -e") - (string-append (assoc-ref inputs "sed") - "/bin/sed -e")) - (("cut -d") - (string-append (assoc-ref inputs "coreutils") - "/bin/cut -d")) - (("sleep ") - (string-append (assoc-ref inputs "coreutils") - "/bin/sleep ")) - (("readlink -f") - (string-append (assoc-ref inputs "coreutils") - "/bin/readlink -f")))) - %standard-phases)))) + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'patch-exec-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "prog/detect/sensors-detect" + (("`uname") + (string-append "`" (assoc-ref inputs "coreutils") + "/bin/uname")) + (("(`|\")modprobe" all open-quote) + (string-append open-quote + (assoc-ref inputs "kmod") + "/bin/modprobe"))) + (substitute* '("prog/pwm/pwmconfig" + "prog/pwm/fancontrol") + (("gnuplot") + (string-append (assoc-ref inputs "gnuplot") + "/bin/gnuplot")) + (("cat ") + (string-append (assoc-ref inputs "coreutils") + "/bin/cat ")) + (("egrep ") + (string-append (assoc-ref inputs "grep") + "/bin/egrep ")) + (("sed -e") + (string-append (assoc-ref inputs "sed") + "/bin/sed -e")) + (("cut -d") + (string-append (assoc-ref inputs "coreutils") + "/bin/cut -d")) + (("sleep ") + (string-append (assoc-ref inputs "coreutils") + "/bin/sleep ")) + (("readlink -f") + (string-append (assoc-ref inputs "coreutils") + "/bin/readlink -f"))) + #t))))) (home-page "http://jdelvare.nerim.net/devel.html#lmsensors") (synopsis "Utilities to read temperature/voltage/fan sensors") (description @@ -2461,7 +2461,7 @@ It works with most newer systems.") #:make-flags (list (string-append "prefix=" %output) "CC=gcc") ;; no configure script - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("perl" ,perl))) (home-page "http://jdelvare.nerim.net/devel.html#i2ctools") @@ -2490,18 +2490,19 @@ SMBus access.") ("gtk" ,gtk+-2))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments - `(#:phases (alist-cons-before - 'configure 'enable-deprecated - (lambda _ - (substitute* "src/Makefile.in" - (("-DGDK_DISABLE_DEPRECATED") "") - (("-DGTK_DISABLE_DEPRECATED") ""))) - (alist-cons-before - 'configure 'remove-Werror - (lambda _ - (substitute* '("configure" "src/Makefile.in") - (("-Werror") ""))) - %standard-phases)))) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'enable-deprecated + (lambda _ + (substitute* "src/Makefile.in" + (("-DGDK_DISABLE_DEPRECATED") "") + (("-DGTK_DISABLE_DEPRECATED") "")) + #t)) + (add-before 'configure 'remove-Werror + (lambda _ + (substitute* '("configure" "src/Makefile.in") + (("-Werror") "")) + #t))))) (home-page "http://www.linuxhardware.org/xsensors/") (synopsis "Hardware health information viewer") (description @@ -2517,12 +2518,13 @@ in a digital read-out.") (source (package-source linux-libre)) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key inputs #:allow-other-keys) - (setenv "SHELL_PATH" (which "bash")) - (chdir "tools/perf")) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (setenv "SHELL_PATH" (which "bash")) + (chdir "tools/perf") + #t))) #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) "WERROR=0" @@ -2861,22 +2863,23 @@ MPEG-2 and audio over Linux IEEE 1394.") (string-append "BINDIR=" out "/sbin") (string-append "MANDIR=" out "/share/man") (string-append "UDEVDIR=" out "/lib/udev"))) - #:phases (alist-cons-before - 'build 'patch-program-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((coreutils (assoc-ref inputs "coreutils"))) - (substitute* "udev-md-raid-arrays.rules" - (("/usr/bin/(readlink|basename)" all program) - (string-append coreutils "/bin/" program))))) - (alist-cons-before - 'build 'remove-W-error - (lambda _ - ;; We cannot build with -Werror on i686 due to a - ;; 'sign-compare' warning in util.c. - (substitute* "Makefile" - (("-Werror") "")) - #t) - (alist-delete 'configure %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-program-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((coreutils (assoc-ref inputs "coreutils"))) + (substitute* "udev-md-raid-arrays.rules" + (("/usr/bin/(readlink|basename)" all program) + (string-append coreutils "/bin/" program)))) + #t)) + (add-before 'build 'remove-W-error + (lambda _ + ;; We cannot build with -Werror on i686 due to a + ;; 'sign-compare' warning in util.c. + (substitute* "Makefile" + (("-Werror") "")) + #t)) + (delete 'configure)) ;;tests must be done as root #:tests? #f)) (home-page "http://neil.brown.name/blog/mdadm") @@ -3011,7 +3014,7 @@ Linux Device Mapper multipathing driver: (list "CC=gcc" (string-append "prefix=" %output)) #:test-target "partcheck" ; need root for a full 'check' #:phases - (alist-delete 'configure %standard-phases))) ; no configure script + (modify-phases %standard-phases (delete 'configure)))) ; no configure script (home-page "http://lse.sourceforge.net/io/aio.html") (synopsis "Linux-native asynchronous I/O access library") (description @@ -3046,7 +3049,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.45") + (version "5.47") (source (origin (method url-fetch) (uri (string-append @@ -3054,8 +3057,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "1sb4aflgyrl7apricjipa8wx95qm69yja0lmn2f19g560c3v1b2c")) - (patches (search-patches "bluez-CVE-2017-1000250.patch")))) + "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -3182,7 +3184,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.13.1") + (version "4.13.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3190,7 +3192,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1clavvrlkswgicqsm2yfsxqw04lsn8dra0db84jqm6j2apz80kz0")))) + "1ga8jk2hkaxpm17z3gdfrpq0i62kqpv2wm5yzbzmsj862cgk7ivm")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" @@ -3669,13 +3671,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") ;; FIXME: The upstream tarball lacks man pages, and building them would ;; require DocBook & co. We used to use Gentoo's pre-built man pages, ;; but they vanished. In the meantime, fake it. - '(#:phases (alist-cons-before - 'configure 'fake-docbook - (lambda _ - (substitute* "Makefile.in" - (("^DOCBOOKTOMAN.*$") - "DOCBOOKTOMAN = true\n"))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fake-docbook + (lambda _ + (substitute* "Makefile.in" + (("^DOCBOOKTOMAN.*$") + "DOCBOOKTOMAN = true\n")) + #t))))) (home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/") (synopsis "Tools for loading and managing Linux kernel modules") (description diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 224cea56f6..e5b8ad3563 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages m4) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system asdf) @@ -42,6 +43,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages libffi) #:use-module (gnu packages libffcall) @@ -228,21 +230,31 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.") (define-public clisp (package (name "clisp") - (version "2.49") + (version "2.49-60") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/clisp/release/" version - "/clisp-" version ".tar.gz")) + (method hg-fetch) + (uri (hg-reference + (url "http://hg.code.sf.net/p/clisp/clisp") + (changeset "clisp_2_49_60-2017-06-25"))) + (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "0rp82nqp5362isl9i34rwgg04cidz7izljd9d85pqcw1qr964bxx")))) + (base32 "0qjv3z274rbdmb941hy03hl63f4z7bmci234f8dyz4skgfr82d3i")) + (patches (search-patches "clisp-remove-failing-test.patch")))) (build-system gnu-build-system) (inputs `(("libffcall" ,libffcall) - ("readline" ,readline-6.2) + ("ncurses" ,ncurses) + ("readline" ,readline) ("libsigsegv" ,libsigsegv))) (arguments '(;; XXX The custom configure script does not cope well when passed ;; --build=. + #:configure-flags '("CFLAGS=-falign-functions=4" + "--enable-portability" + "--with-dynamic-ffi" + "--with-dynamic-modules" + "--with-module=bindings/glibc" + "--with-module=rawsock") #:build #f #:phases (modify-phases %standard-phases @@ -262,11 +274,9 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.") (lambda _ (substitute* "src/constobj.d" (("__DATE__ __TIME__") "\"1\"")) - #t)) - (add-before 'build 'chdir-to-source - (lambda _ - ;; We are supposed to call make under the src sub-directory. - (chdir "src") + (substitute* "src/genclisph.d" + (("__DATE__") "\"1\"") + (("__TIME__") "\"1\"")) #t))) ;; Makefiles seem to have race conditions. #:parallel-build? #f)) @@ -445,36 +455,33 @@ statistical profiler, a code coverage tool, and many other extensions.") (guix build utils) (guix build gnu-build-system)) #:phases - (alist-replace - 'unpack - (lambda* (#:key inputs #:allow-other-keys) - (and (zero? (system* "tar" "xzvf" (assoc-ref inputs "ccl"))) - (begin (chdir "ccl") #t))) - (alist-delete - 'configure - (alist-cons-before - 'build 'pre-build - ;; Enter the source directory for the current platform's lisp - ;; kernel, and run 'make clean' to remove the precompiled one. - (lambda _ - (chdir (string-append - "lisp-kernel/" - ,(match (or (%current-target-system) (%current-system)) - ("i686-linux" "linuxx8632") - ("x86_64-linux" "linuxx8664") - ("armhf-linux" "linuxarm") - ;; Prevent errors when querying this package - ;; on unsupported platforms, e.g. when running - ;; "guix package --search=" - (_ "UNSUPPORTED")))) - (substitute* '("Makefile") - (("/bin/rm") "rm")) - (setenv "CC" "gcc") - (zero? (system* "make" "clean"))) - ;; XXX Do we need to recompile the heap image as well for Guix? - ;; For now just use the one we already got in the tarball. - (alist-replace - 'install + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key inputs #:allow-other-keys) + (and (zero? (system* "tar" "xzvf" (assoc-ref inputs "ccl"))) + (begin (chdir "ccl") #t)))) + (delete 'configure) + (add-before 'build 'pre-build + ;; Enter the source directory for the current platform's lisp + ;; kernel, and run 'make clean' to remove the precompiled one. + (lambda _ + (chdir (string-append + "lisp-kernel/" + ,(match (or (%current-target-system) (%current-system)) + ("i686-linux" "linuxx8632") + ("x86_64-linux" "linuxx8664") + ("armhf-linux" "linuxarm") + ;; Prevent errors when querying this package + ;; on unsupported platforms, e.g. when running + ;; "guix package --search=" + (_ "UNSUPPORTED")))) + (substitute* '("Makefile") + (("/bin/rm") "rm")) + (setenv "CC" "gcc") + (zero? (system* "make" "clean")))) + ;; XXX Do we need to recompile the heap image as well for Guix? + ;; For now just use the one we already got in the tarball. + (replace 'install (lambda* (#:key outputs inputs #:allow-other-keys) ;; The lisp kernel built by running 'make' in lisp-kernel/$system ;; is put back into the original directory, so go back. The heap @@ -513,8 +520,8 @@ statistical profiler, a code coverage tool, and many other extensions.") "CCL_DEFAULT_DIRECTORY=" libdir "\n" "export CCL_DEFAULT_DIRECTORY\n" "exec " libdir kernel "\n")))) - (chmod wrapper #o755))) - %standard-phases)))))) + (chmod wrapper #o755)) + #t))))) (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux")) (home-page "http://ccl.clozure.com/") (synopsis "Common Lisp implementation") diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index c3cb700be2..c8bc4ef85e 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -124,7 +124,7 @@ for configuration, scripting, and rapid prototyping.") (build-system gnu-build-system) (arguments '(#:tests? #f ;luajit is distributed without tests - #:phases (alist-delete 'configure %standard-phases) + #:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (home-page "http://www.luajit.org/") (synopsis "Just in time compiler for Lua programming language version 5.1") diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 77f64d5a41..8cd01062fd 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -376,54 +376,50 @@ sample proximities between pairs of cases.") (arguments '(#:tests? #f ;no check target #:phases - (alist-cons-after - 'unpack 'delete-broken-symlinks - (lambda _ - (for-each delete-file '("applications/arts/data" - "applications/asp/data" - "applications/easysvm/data" - "applications/msplicer/data" - "applications/ocr/data" - "examples/documented/data" - "examples/documented/matlab_static" - "examples/documented/octave_static" - "examples/undocumented/data" - "examples/undocumented/matlab_static" - "examples/undocumented/octave_static" - "tests/integration/data" - "tests/integration/matlab_static" - "tests/integration/octave_static" - "tests/integration/python_modular/tests")) - #t) - (alist-cons-after - 'unpack 'change-R-target-path - (lambda* (#:key outputs #:allow-other-keys) - (substitute* '("src/interfaces/r_modular/CMakeLists.txt" - "src/interfaces/r_static/CMakeLists.txt" - "examples/undocumented/r_modular/CMakeLists.txt") - (("\\$\\{R_COMPONENT_LIB_PATH\\}") - (string-append (assoc-ref outputs "out") - "/lib/R/library/"))) - #t) - (alist-cons-after - 'unpack 'fix-octave-modules - (lambda* (#:key outputs #:allow-other-keys) - (substitute* '("src/interfaces/octave_modular/CMakeLists.txt" - "src/interfaces/octave_static/CMakeLists.txt") - (("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}") - "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave")) + (modify-phases %standard-phases + (add-after 'unpack 'delete-broken-symlinks + (lambda _ + (for-each delete-file '("applications/arts/data" + "applications/asp/data" + "applications/easysvm/data" + "applications/msplicer/data" + "applications/ocr/data" + "examples/documented/data" + "examples/documented/matlab_static" + "examples/documented/octave_static" + "examples/undocumented/data" + "examples/undocumented/matlab_static" + "examples/undocumented/octave_static" + "tests/integration/data" + "tests/integration/matlab_static" + "tests/integration/octave_static" + "tests/integration/python_modular/tests")) + #t)) + (add-after 'unpack 'change-R-target-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* '("src/interfaces/r_modular/CMakeLists.txt" + "src/interfaces/r_static/CMakeLists.txt" + "examples/undocumented/r_modular/CMakeLists.txt") + (("\\$\\{R_COMPONENT_LIB_PATH\\}") + (string-append (assoc-ref outputs "out") + "/lib/R/library/"))) + #t)) + (add-after 'unpack 'fix-octave-modules + (lambda* (#:key outputs #:allow-other-keys) + (substitute* '("src/interfaces/octave_modular/CMakeLists.txt" + "src/interfaces/octave_static/CMakeLists.txt") + (("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}") + "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave")) - ;; change target directory - (substitute* "src/interfaces/octave_modular/CMakeLists.txt" - (("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}") - (string-append (assoc-ref outputs "out") - "/share/octave/packages"))) - #t) - (alist-cons-before - 'build 'set-HOME + ;; change target directory + (substitute* "src/interfaces/octave_modular/CMakeLists.txt" + (("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}") + (string-append (assoc-ref outputs "out") + "/share/octave/packages"))) + #t)) + (add-before 'build 'set-HOME ;; $HOME needs to be set at some point during the build phase - (lambda _ (setenv "HOME" "/tmp") #t) - %standard-phases)))) + (lambda _ (setenv "HOME" "/tmp") #t))) #:configure-flags (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" "-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 8c376b1e45..b7d5514f8e 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -225,14 +225,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.8.3") + (version "1.9.1") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "0hpd896mw630sd6ps60hpka8cg691nvr627n8kmabv7zcxnp90cv")) + "1c8vv4anl555a03pbnwf8wnf0d8pcnd4p35y3q8f5ikkcflq76vl")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -416,7 +416,7 @@ and corrections. It is based on a Bayesian filter.") (define-public offlineimap (package (name "offlineimap") - (version "7.1.2") + (version "7.1.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/OfflineIMAP/offlineimap/" @@ -424,7 +424,7 @@ and corrections. It is based on a Bayesian filter.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0rnw7gpx3cp4irja5143haszgv4xhndc8wivhg8r0gpp6ig460vj")))) + "0iaznh8q3fmia43r0600vrd3w8njis1x65ry9fv3zsyx0ili1z02")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc))) @@ -811,7 +811,7 @@ and search library.") (define-public getmail (package (name "getmail") - (version "5.1") + (version "5.4") (source (origin (method url-fetch) @@ -819,7 +819,7 @@ and search library.") name "-" version ".tar.gz")) (sha256 (base32 - "0zh220vx10wi6x61qi0mjayjxgvllk9f6vd4hjrgzha1xbjj0vix")))) + "1iwss9z94p165gxr2yw7s9q12a0bn71fcdbikzkykr5s7xxnz2ds")))) (build-system python-build-system) (arguments `(#:tests? #f ; no tests @@ -1034,51 +1034,51 @@ delivery.") ("perl" ,perl))) (arguments '(#:phases - (alist-replace - 'configure - ;; We'd use #:make-flags but the top-level Makefile calls others - ;; recursively, so just set all variables this way. - (lambda* (#:key outputs inputs #:allow-other-keys) - (substitute* '("Makefile" "OS/Makefile-Default") - (("(RM_COMMAND=).*" all var) - (string-append var "rm\n"))) - (copy-file "src/EDITME" "Local/Makefile") - (copy-file "exim_monitor/EDITME" "Local/eximon.conf") - (let ((out (assoc-ref outputs "out")) - (gzip (assoc-ref inputs "gzip")) - (bzip2 (assoc-ref inputs "bzip2")) - (xz (assoc-ref inputs "xz"))) - (substitute* '("Local/Makefile") - (("(BIN_DIRECTORY=).*" all var) - (string-append var out "/bin\n")) - (("(CONFIGURE_FILE=).*" all var) - (string-append var out "/etc/exim.conf\n")) - (("(EXIM_USER=).*" all var) - (string-append var "nobody\n")) - (("(FIXED_NEVER_USERS=).*" all var) - (string-append var "\n")) ;XXX no root in build environment - (("(COMPRESS_COMMAND=).*" all var) - (string-append var gzip "/bin/gzip\n")) - (("(ZCAT_COMMAND=).*" all var) - (string-append var gzip "/bin/zcat\n"))) - ;; This file has hardcoded names for tools despite the zcat - ;; configuration above. - (substitute* '("src/exigrep.src") - (("'zcat'") (string-append "'" gzip "/bin/zcat'")) - (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) - (("'xzcat'") (string-append "'" xz "/bin/xzcat'")) - (("'lzma'") (string-append "'" xz "/bin/lzma'"))))) - (alist-cons-before - 'build 'fix-sh-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("scripts/lookups-Makefile" "scripts/reversion") - (("SHELL=/bin/sh") "SHELL=sh")) - (substitute* '("scripts/Configure-config.h") - (("\\| /bin/sh") "| sh")) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* '("scripts/Configure-eximon") - (("#!/bin/sh") (string-append "#!" bash "/bin/sh"))))) - %standard-phases)) + (modify-phases %standard-phases + (replace 'configure + ;; We'd use #:make-flags but the top-level Makefile calls others + ;; recursively, so just set all variables this way. + (lambda* (#:key outputs inputs #:allow-other-keys) + (substitute* '("Makefile" "OS/Makefile-Default") + (("(RM_COMMAND=).*" all var) + (string-append var "rm\n"))) + (copy-file "src/EDITME" "Local/Makefile") + (copy-file "exim_monitor/EDITME" "Local/eximon.conf") + (let ((out (assoc-ref outputs "out")) + (gzip (assoc-ref inputs "gzip")) + (bzip2 (assoc-ref inputs "bzip2")) + (xz (assoc-ref inputs "xz"))) + (substitute* '("Local/Makefile") + (("(BIN_DIRECTORY=).*" all var) + (string-append var out "/bin\n")) + (("(CONFIGURE_FILE=).*" all var) + (string-append var out "/etc/exim.conf\n")) + (("(EXIM_USER=).*" all var) + (string-append var "nobody\n")) + (("(FIXED_NEVER_USERS=).*" all var) + (string-append var "\n")) ;XXX no root in build environment + (("(COMPRESS_COMMAND=).*" all var) + (string-append var gzip "/bin/gzip\n")) + (("(ZCAT_COMMAND=).*" all var) + (string-append var gzip "/bin/zcat\n"))) + ;; This file has hardcoded names for tools despite the zcat + ;; configuration above. + (substitute* '("src/exigrep.src") + (("'zcat'") (string-append "'" gzip "/bin/zcat'")) + (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) + (("'xzcat'") (string-append "'" xz "/bin/xzcat'")) + (("'lzma'") (string-append "'" xz "/bin/lzma'")))) + #t)) + (add-before 'build 'fix-sh-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("scripts/lookups-Makefile" "scripts/reversion") + (("SHELL=/bin/sh") "SHELL=sh")) + (substitute* '("scripts/Configure-config.h") + (("\\| /bin/sh") "| sh")) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* '("scripts/Configure-eximon") + (("#!/bin/sh") (string-append "#!" bash "/bin/sh")))) + #t))) #:make-flags '("INSTALL_ARG=-no_chown") ;; No 'check' target. #:tests? #f)) @@ -1244,15 +1244,17 @@ hashing schemes plugin for @code{Dovecot}.") (define-public isync (package (name "isync") - (version "1.2.1") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/isync/isync/" version "/isync-" version ".tar.gz")) (sha256 (base32 - "1bij6nm06ghkg98n2pdyacam2fyg5y8f7ajw0d5653m0r4ldw5p7")))) + "173wd7x8y5sp94slzwlnb7zhgs32r57zl9xspl2rf4g3fqwmhpwd")))) (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl))) (inputs `(("bdb" ,bdb) ("openssl" ,openssl))) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 60076f0f1a..fed7d08aee 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -154,7 +154,7 @@ the traditional flat-text whatis databases.") "1gri0rm9i3a6w5dvsmwawhwzywl5x80dwq05d2v8l92knv2hbh6m")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-delete 'configure %standard-phases) + '(#:phases (modify-phases %standard-phases (delete 'configure)) ;; The 'all' target depends on three targets that directly populate ;; $(MANDIR) based on its current contents. Doing that in parallel @@ -220,7 +220,7 @@ automatically.") (arguments `(#:tests? #f ; no "check" target #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("gawk" ,gawk))) (home-page "https://github.com/mvertes/txt2man") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 962bcd8278..f183cce8b3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -14,11 +14,12 @@ ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari -;;; Copyright © 2016 Thomas Danckaert +;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017 Paul Garlick ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Ben Woodcroft -;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,6 +70,7 @@ #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages java) #:use-module (gnu packages less) #:use-module (gnu packages lisp) #:use-module (gnu packages logging) @@ -456,13 +458,14 @@ large scale eigenvalue problems.") ;; Build the 'LAPACKE_clatms' functions. "-DLAPACKE_WITH_TMG=ON") - #:phases (alist-cons-before - 'check 'patch-python - (lambda* (#:key inputs #:allow-other-keys) - (let ((python (assoc-ref inputs "python"))) - (substitute* "lapack_testing.py" - (("/usr/bin/env python") python)))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'patch-python + (lambda* (#:key inputs #:allow-other-keys) + (let ((python (assoc-ref inputs "python"))) + (substitute* "lapack_testing.py" + (("/usr/bin/env python") python))) + #t))))) (synopsis "Library for numerical linear algebra") (description "LAPACK is a Fortran 90 library for solving the most commonly occurring @@ -742,6 +745,124 @@ extremely large and complex data collections.") (license (license:x11-style "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING")))) +(define-public hdf-java + (package + (name "hdf-java") + (version "3.3.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-" + version "/src/CMake-hdfjava-" version ".tar.gz")) + (sha256 + (base32 "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr")) + (modules '((guix build utils))) + (snippet ; Make sure we don't use the bundled sources and binaries. + `(begin + (for-each delete-file + (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz" + "HDF4.tar.gz" "HDF5.tar.gz")) + (delete-file-recursively ,(string-append "hdfjava-" version "/lib")))))) + (build-system gnu-build-system) + (native-inputs + `(("jdk" ,icedtea "jdk") + ("automake" ,automake) ; For up to date 'config.guess' and 'config.sub'. + ;; For tests: + ("hamcrest-core" ,java-hamcrest-core) + ("junit" ,java-junit) + ("slf4j-simple" ,java-slf4j-simple))) + (inputs + `(("hdf4" ,hdf4) + ("hdf5" ,hdf5) + ("zlib" ,zlib) + ("libjpeg" ,libjpeg) + ("slf4j-api" ,java-slf4j-api))) + (arguments + `(#:configure-flags + (list (string-append "--target=" ,(or (%current-target-system) (%current-system))) + (string-append "--with-jdk=" (assoc-ref %build-inputs "jdk") "/include," + (assoc-ref %build-inputs "jdk") "/lib" ) + (string-append "--with-hdf4=" (assoc-ref %build-inputs "hdf4") "/lib") + (string-append "--with-hdf5=" (assoc-ref %build-inputs "hdf5") "/lib")) + + #:make-flags + (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib") + (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib") + (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so") + (string-append "JPEGLIB=" + (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so") + "LLEXT=so") + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-to-source + (lambda _ (chdir ,(string-append "hdfjava-" version)))) + (add-before 'configure 'patch-build + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "configure" + (("COPT=\"") "COPT=\"-O2 ") ; CFLAGS is ignored in Makefiles + (("/bin/cat") (which "cat"))) + ;; Set classpath for compilation + (substitute* '("hdf/hdf5lib/Makefile.in" + "hdf/hdf5lib/exceptions/Makefile.in" + "hdf/hdflib/Makefile.in") + (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar") + (string-append (assoc-ref inputs "slf4j-api") + "/share/java/slf4j-api.jar"))) + ;; Replace outdated config.sub and config.guess: + (with-directory-excursion "config" + (for-each (lambda (file) + (copy-file + (string-append (assoc-ref inputs "automake") + "/share/automake-1.15/" file) file)) + '("config.sub" "config.guess"))) + (mkdir-p (string-append (assoc-ref outputs "out"))) + ;; Set classpath for tests + (let* ((build-dir (getcwd)) + (lib (string-append build-dir "/lib")) + (jhdf (string-append lib "/jhdf.jar")) + (jhdf5 (string-append lib "/jhdf5.jar")) + (testjars + (map (lambda (i) + (string-append (assoc-ref inputs i) + "/share/java/" i ".jar")) + '("junit" "hamcrest-core" "slf4j-api" "slf4j-simple"))) + (class-path + (string-join `("." ,build-dir ,jhdf ,jhdf5 ,@testjars) ":"))) + + (substitute* '("test/hdf5lib/Makefile.in" + "test/hdf5lib/junit.sh.in" + "examples/runExample.sh.in") + (("/usr/bin/test") + (string-append (assoc-ref inputs "coreutils") + "/bin/test")) + (("/usr/bin/uname") + (string-append (assoc-ref inputs "coreutils") + "/bin/uname")) + (("CLASSPATH=[^\n]*") + (string-append "CLASSPATH=" class-path))) + (setenv "CLASSPATH" class-path)) + #t)) + (add-before 'check 'build-examples + (lambda _ + (zero? (apply system* `("javac" + ,@(find-files "examples" ".*\\.java"))))))) + + #:parallel-build? #f + + #:parallel-tests? #f )) + (home-page "https://support.hdfgroup.org/products/java") + (synopsis "Java interface for the HDF4 and HDF5 libraries") + (description "Java HDF Interface (JHI) and Java HDF5 Interface (JHI5) use +the Java Native Interface to wrap the HDF4 and HDF5 libraries, which are +implemented in C.") + + ;; BSD-style license: + (license (license:x11-style + "https://support.hdfgroup.org/ftp/HDF5/hdf-java\ +/current/src/unpacked/COPYING")))) + (define-public hdf-eos2 (package (name "hdf-eos2") @@ -1126,7 +1247,7 @@ can solve two kinds of problems: (license license:bsd-3))) ;; For a fully featured Octave, users are strongly recommended also to install -;; the following packages: texinfo, less, ghostscript, gnuplot. +;; the following packages: less, ghostscript, gnuplot. (define-public octave (package (name "octave") @@ -1158,6 +1279,7 @@ can solve two kinds of problems: ("glu" ,glu) ("zlib" ,zlib) ("curl" ,curl) + ("texinfo" ,texinfo) ("graphicsmagick" ,graphicsmagick))) (native-inputs `(("lzip" ,lzip) @@ -1172,14 +1294,23 @@ can solve two kinds of problems: ;; will still run without them, albeit without the features they ;; provide. ("less" ,less) - ("texinfo" ,texinfo) ("ghostscript" ,ghostscript) ("gnuplot" ,gnuplot))) (arguments `(#:configure-flags (list (string-append "--with-shell=" (assoc-ref %build-inputs "bash") - "/bin/sh")))) + "/bin/sh")) + #:phases + (modify-phases %standard-phases + (add-after 'configure 'configure-makeinfo + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "libinterp/corefcn/help.cc" + (("Vmakeinfo_program = \"makeinfo\"") + (string-append "Vmakeinfo_program = \"" + (assoc-ref inputs "texinfo") + "/bin/makeinfo\""))) + #t))))) (home-page "https://www.gnu.org/software/octave/") (synopsis "High-level language for numerical computation") (description "GNU Octave is a high-level interpreted language that is @@ -1866,12 +1997,12 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, (arguments `(#:parallel-build? #f ;race conditions using ar #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (call-with-output-file "make.inc" - (lambda (port) - (format port " + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (call-with-output-file "make.inc" + (lambda (port) + (format port " PLAT = DSuperLUroot = ~a DSUPERLULIB = ~a/lib/libsuperlu_dist.a @@ -1894,47 +2025,46 @@ FORTRAN = mpifort FFLAGS = -O2 -g $(PIC) LOADER = $(CC) CDEFS = -DAdd_" - (getcwd) - (assoc-ref outputs "out") - (assoc-ref inputs "lapack") - (assoc-ref inputs "pt-scotch"))))) - (alist-cons-after - 'unpack 'remove-broken-symlinks - (lambda _ - (for-each delete-file - (find-files "MAKE_INC" "\\.#make\\..*"))) - (alist-cons-before - 'build 'create-install-directories - (lambda* (#:key outputs #:allow-other-keys) - (for-each - (lambda (dir) - (mkdir-p (string-append (assoc-ref outputs "out") - "/" dir))) - '("lib" "include"))) - (alist-replace - 'check + (getcwd) + (assoc-ref outputs "out") + (assoc-ref inputs "lapack") + (assoc-ref inputs "pt-scotch")))) + #t)) + (add-after 'unpack 'remove-broken-symlinks + (lambda _ + (for-each delete-file + (find-files "MAKE_INC" "\\.#make\\..*")) + #t)) + (add-before 'build 'create-install-directories + (lambda* (#:key outputs #:allow-other-keys) + (for-each + (lambda (dir) + (mkdir-p (string-append (assoc-ref outputs "out") + "/" dir))) + '("lib" "include")) + #t)) + (replace 'check (lambda _ (with-directory-excursion "EXAMPLE" (and (zero? (system* "mpirun" "-n" "2" "./pddrive" "-r" "1" "-c" "2" "g20.rua")) (zero? (system* "mpirun" "-n" "2" - "./pzdrive" "-r" "1" "-c" "2" "cg20.cua"))))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - ;; Library is placed in lib during the build phase. Copy over - ;; headers to include. - (let* ((out (assoc-ref outputs "out")) - (incdir (string-append out "/include"))) - (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base incdir) - (copy-file file - (string-append incdir "/" base)))) - (find-files "SRC" ".*\\.h$")))) - %standard-phases))))))) + "./pzdrive" "-r" "1" "-c" "2" "cg20.cua")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; Library is placed in lib during the build phase. Copy over + ;; headers to include. + (let* ((out (assoc-ref outputs "out")) + (incdir (string-append out "/include"))) + (for-each (lambda (file) + (let ((base (basename file))) + (format #t "installing `~a' to `~a'~%" + base incdir) + (copy-file file + (string-append incdir "/" base)))) + (find-files "SRC" ".*\\.h$"))) + #t))))) (home-page (package-home-page superlu)) (synopsis "Parallel supernodal direct solver") (description @@ -2621,7 +2751,7 @@ access to BLIS implementations via traditional BLAS routine calls.") (list (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases ;; no configure script - (alist-delete 'configure %standard-phases) + (modify-phases %standard-phases (delete 'configure)) #:tests? #f)) ;the tests are part of the default target (home-page "http://openlibm.org/") (synopsis "Portable C mathematical library (libm)") @@ -2660,7 +2790,7 @@ environments.") #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) ;; no configure script - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("fortran" ,gfortran))) (home-page "https://github.com/JuliaLang/openspecfun") diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 8e4b43aaf4..7e093bc111 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2017 Mekeor Melire ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice -;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,6 +90,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages less) #:use-module (gnu packages readline) + #:use-module (gnu packages photo) #:use-module (gnu packages texinfo)) (define-public libotr @@ -142,20 +143,19 @@ keys, no previous conversation is compromised.") ("python" ,python-2) ("perl" ,perl))) (arguments - `(#:phases (alist-cons-after - 'install 'install-etc - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "install-etc" make-flags))) - (alist-replace - 'configure - ;; bitlbee's configure script does not tolerate many of the - ;; variable settings that Guix would pass to it. - (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "./configure" - (string-append "--prefix=" - (assoc-ref outputs "out")) - "--otr=1"))) - %standard-phases)))) + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-etc + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "install-etc" make-flags)))) + (replace 'configure + ;; bitlbee's configure script does not tolerate many of the + ;; variable settings that Guix would pass to it. + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + "--otr=1"))))))) (synopsis "IRC to instant messaging gateway") (description "BitlBee brings IM (instant messaging) to IRC clients, for people who have an IRC client running all the time and don't want to run an @@ -801,14 +801,14 @@ instant messenger with audio and video chat capabilities.") (define-public qtox (package (name "qtox") - (version "1.11.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/qTox/qTox/archive/v" version ".tar.gz")) (sha256 (base32 - "1m1ca1ybgj4yfm6a61yyj21f5jpip8dsbliwkfypswhmv5y52f5y")) + "0ycgvcfn8hchc775dcn1wpdqff8chvzz1svx9g99wa5vcns9pflg")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (arguments @@ -830,6 +830,8 @@ instant messenger with audio and video chat capabilities.") ("libvpx" ,libvpx) ("libxscrnsaver" ,libxscrnsaver) ("libx11" ,libx11) + ("libexif" ,libexif) + ("sqlite" ,sqlite) ("openal" ,openal) ("qrencode" ,qrencode) ("qtbase" ,qtbase) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index f030e5b18e..7c8f32175d 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -66,12 +66,12 @@ (build-system gnu-build-system) (arguments `(#:phases - (alist-cons-before - 'configure 'remove-unsupported-gcc-flags - (lambda _ - ;; remove option that is not supported by gcc any more - (substitute* "configure" ((" -fforce-mem") ""))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'remove-unsupported-gcc-flags + (lambda _ + ;; remove option that is not supported by gcc any more + (substitute* "configure" ((" -fforce-mem") "")) + #t))))) (synopsis "MPEG audio decoder") (description "MAD (MPEG Audio Decoder) supports MPEG-1 and the MPEG-2 extension to @@ -123,20 +123,20 @@ versions of ID3v2.") (inputs `(("zlib" ,zlib))) (arguments `(#:phases - (alist-cons-before - 'configure 'apply-patches - ;; TODO: create a patch for origin instead? - (lambda _ - (substitute* "configure" - (("iomanip.h") "")) ; drop check for unused header - ;; see http://www.linuxfromscratch.org/patches/downloads/id3lib/ - (substitute* "include/id3/id3lib_strings.h" - (("include ") "include \n#include ")) - (substitute* "include/id3/writers.h" - (("//\\#include ") "#include ")) - (substitute* "examples/test_io.cpp" - (("dami;") "dami;\nusing namespace std;"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'apply-patches + ;; TODO: create a patch for origin instead? + (lambda _ + (substitute* "configure" + (("iomanip.h") "")) ; drop check for unused header + ;; see http://www.linuxfromscratch.org/patches/downloads/id3lib/ + (substitute* "include/id3/id3lib_strings.h" + (("include ") "include \n#include ")) + (substitute* "include/id3/writers.h" + (("//\\#include ") "#include ")) + (substitute* "examples/test_io.cpp" + (("dami;") "dami;\nusing namespace std;")) + #t))))) (synopsis "Library for reading, writing, and manipulating ID3v1 and ID3v2 tags") (description "Id3lib is a cross-platform software development library for reading, @@ -194,29 +194,30 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (build-system gnu-build-system) (outputs '("out" "gui")) ;GTK+ interface in "gui" (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("prefix=.*") - (string-append "prefix := " out "\n"))))) - (alist-cons-before - 'install 'pre-install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/bin")) - (mkdir-p (string-append out "/share/man/man1")))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Move the GTK+ interface to "gui". - (let ((out (assoc-ref outputs "out")) - (gui (assoc-ref outputs "gui"))) - (mkdir-p (string-append gui "/bin")) - (rename-file (string-append out "/bin/gmp3info") - (string-append gui "/bin/gmp3info")))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("prefix=.*") + (string-append "prefix := " out "\n")))) + #t)) + (add-before 'install 'pre-install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin")) + (mkdir-p (string-append out "/share/man/man1"))) + #t)) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Move the GTK+ interface to "gui". + (let ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui"))) + (mkdir-p (string-append gui "/bin")) + (rename-file (string-append out "/bin/gmp3info") + (string-append gui "/bin/gmp3info"))) + #t))) #:tests? #f)) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 517f912417..98b21219f5 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -131,6 +131,7 @@ bind processes, and much more.") (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) + (outputs '("out" "debug")) (arguments `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work "--enable-memchecker" diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c01bbc6e71..69d69a6185 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -871,60 +871,60 @@ complete studio.") `(#:tests? #f ; xmllint attempts to download DTD #:test-target "test" #:phases - (alist-cons-after - 'unpack 'fix-configuration - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "default.config" - (("csound=csound") - (string-append "csound=" - (assoc-ref inputs "csound") - "/bin/csound")) - (("/usr/bin/aplay") - (string-append (assoc-ref inputs "aplay") - "/bin/aplay")) - (("/usr/bin/timidity") - (string-append (assoc-ref inputs "timidity") - "/bin/timidity")) - (("/usr/bin/mpg123") - (string-append (assoc-ref inputs "mpg123") - "/bin/mpg123")) - (("/usr/bin/ogg123") - (string-append (assoc-ref inputs "ogg123") - "/bin/ogg123")))) - (alist-cons-before - 'build 'patch-python-shebangs - (lambda _ - ;; Two python scripts begin with a Unicode BOM, so patch-shebang - ;; has no effect. - (substitute* '("solfege/parsetree.py" - "solfege/presetup.py") - (("#!/usr/bin/python") (string-append "#!" (which "python"))))) - (alist-cons-before - 'build 'add-sitedirs - ;; .pth files are not automatically interpreted unless the - ;; directories containing them are added as "sites". The directories - ;; are then added to those in the PYTHONPATH. This is required for - ;; the operation of pygtk and pygobject. - (lambda _ - (substitute* "run-solfege.py" - (("import os") - "import os, site -for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))) - (alist-cons-before - 'build 'adjust-config-file-prefix + (modify-phases %standard-phases + (add-after 'unpack 'fix-configuration + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "default.config" + (("csound=csound") + (string-append "csound=" + (assoc-ref inputs "csound") + "/bin/csound")) + (("/usr/bin/aplay") + (string-append (assoc-ref inputs "aplay") + "/bin/aplay")) + (("/usr/bin/timidity") + (string-append (assoc-ref inputs "timidity") + "/bin/timidity")) + (("/usr/bin/mpg123") + (string-append (assoc-ref inputs "mpg123") + "/bin/mpg123")) + (("/usr/bin/ogg123") + (string-append (assoc-ref inputs "ogg123") + "/bin/ogg123"))) + #t)) + (add-before 'build 'patch-python-shebangs + (lambda _ + ;; Two python scripts begin with a Unicode BOM, so patch-shebang + ;; has no effect. + (substitute* '("solfege/parsetree.py" + "solfege/presetup.py") + (("#!/usr/bin/python") (string-append "#!" (which "python")))) + #t)) + (add-before 'build 'add-sitedirs + ;; .pth files are not automatically interpreted unless the + ;; directories containing them are added as "sites". The directories + ;; are then added to those in the PYTHONPATH. This is required for + ;; the operation of pygtk and pygobject. + (lambda _ + (substitute* "run-solfege.py" + (("import os") + "import os, site +for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)")) + #t)) + (add-before 'build 'adjust-config-file-prefix (lambda* (#:key outputs #:allow-other-keys) (substitute* "run-solfege.py" (("prefix = os.path.*$") - (string-append "prefix = " (assoc-ref outputs "out"))))) - (alist-cons-after - 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make sure 'solfege' runs with the correct PYTHONPATH. - (let* ((out (assoc-ref outputs "out")) - (path (getenv "PYTHONPATH"))) - (wrap-program (string-append out "/bin/solfege") - `("PYTHONPATH" ":" prefix (,path))))) - %standard-phases))))))) + (string-append "prefix = " (assoc-ref outputs "out")))) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'solfege' runs with the correct PYTHONPATH. + (let* ((out (assoc-ref outputs "out")) + (path (getenv "PYTHONPATH"))) + (wrap-program (string-append out "/bin/solfege") + `("PYTHONPATH" ":" prefix (,path)))) + #t))))) (inputs `(("python" ,python-2) ("pygtk" ,python2-pygtk) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 418d11ad07..b39f2875e8 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2017 Gábor Boskovits +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +38,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) @@ -56,6 +58,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages libidn) @@ -922,6 +925,38 @@ information by IP Address.") sockets in Perl.") (license license:perl-license))) +(define-public libproxy + (package + (name "libproxy") + (version "0.4.15") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libproxy/libproxy/" + "releases/download/" version "/libproxy-" + version ".tar.xz")) + (sha256 + (base32 + "0kvdrazlzwia876w988cmlypp253gwy6idlh8mjk958c29jb8kb5")))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("dbus" ,dbus) + ("zlib" ,zlib) + ("network-manager" ,network-manager))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "ctest" "-E" "url-test"))))))) + (synopsis "Library providing automatic proxy configuration management") + (description "Libproxy handles the details of HTTP/HTTPS proxy +configuration for applications across all scenarios. Applications using +libproxy only have to specify which proxy to use.") + (home-page "https://libproxy.github.io/libproxy") + (license license:lgpl2.1+))) + (define-public proxychains-ng (package (name "proxychains-ng") diff --git a/gnu/packages/noweb.scm b/gnu/packages/noweb.scm index be90e2dc64..0954e79952 100644 --- a/gnu/packages/noweb.scm +++ b/gnu/packages/noweb.scm @@ -35,47 +35,46 @@ "10hdd6mrk26kyh4bnng4ah5h1pnanhsrhqa7qwqy6dyv3rng44y9")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'install 'pre-install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/share/texmf/tex/latex")) - #t)) - (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs inputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (cu (assoc-ref inputs "coreutils")) - (du (assoc-ref inputs "diffutils"))) - (with-directory-excursion out - (for-each (lambda (prog) - (substitute* prog - (("nawk") (which "awk")))) - (append (map (lambda (x) - (string-append "bin/" x)) - '("noweb" "nountangle" - "noroots" "noroff" - "noindex")) - (map (lambda (x) - (string-append "lib/" x)) - '("btdefn" "emptydefn" "noidx" - "pipedocs" "toascii" "tohtml" - "toroff" "totex" "unmarkup")))) - (substitute* "bin/cpif" - (("^PATH=.*$") - (string-append "PATH=" cu "/bin:" du "/bin\n")))) - #t)) - (alist-replace - 'configure - (lambda _ - ;; Jump in the source. - (chdir "src") + '(#:phases + (modify-phases %standard-phases + (add-before 'install 'pre-install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/share/texmf/tex/latex")) + #t))) + (add-after 'install 'post-install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (cu (assoc-ref inputs "coreutils")) + (du (assoc-ref inputs "diffutils"))) + (with-directory-excursion out + (for-each (lambda (prog) + (substitute* prog + (("nawk") (which "awk")))) + (append (map (lambda (x) + (string-append "bin/" x)) + '("noweb" "nountangle" + "noroots" "noroff" + "noindex")) + (map (lambda (x) + (string-append "lib/" x)) + '("btdefn" "emptydefn" "noidx" + "pipedocs" "toascii" "tohtml" + "toroff" "totex" "unmarkup")))) + (substitute* "bin/cpif" + (("^PATH=.*$") + (string-append "PATH=" cu "/bin:" du "/bin\n")))) + #t))) + (replace 'configure + (lambda _ + ;; Jump in the source. + (chdir "src") - ;; The makefile reads "source: FAQ", but FAQ isn't - ;; available. - (substitute* "Makefile" - (("FAQ") ""))) - %standard-phases))) + ;; The makefile reads "source: FAQ", but FAQ isn't + ;; available. + (substitute* "Makefile" + (("FAQ") "")) + #t))) #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "BIN=" out "/bin") (string-append "LIB=" out "/lib") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1efb30e800..8d21f700e7 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -79,8 +79,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "a9468b422b6df2349a3f4d1451c9302c3d77011b") - (revision 6)) + (commit "8b920d707ed07a3251227f77526cf875d86a4417") + (revision 7)) (package (name "guix") @@ -96,7 +96,7 @@ (commit commit))) (sha256 (base32 - "0bv323yp657x0a2aa2z5pp5541hjqmn908kh9jqlbdw5gpx9vg3d")) + "15phwcadkw44mr4hnv1dxzzw9an6x7sbdfzwy4iciqw6y2wckncd")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/bluez-CVE-2017-1000250.patch b/gnu/packages/patches/bluez-CVE-2017-1000250.patch deleted file mode 100644 index 81f209d7b2..0000000000 --- a/gnu/packages/patches/bluez-CVE-2017-1000250.patch +++ /dev/null @@ -1,42 +0,0 @@ -Description: CVE-2017-1000250: information disclosure vulnerability in service_search_attr_req -Origin: vendor -Bug-Debian: https://bugs.debian.org/875633 -Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1489446 -Bug-SuSE: https://bugzilla.suse.com/show_bug.cgi?id=1057342 -Forwarded: no -Author: Armis Security -Reviewed-by: Salvatore Bonaccorso -Last-Update: 2017-09-13 - ---- a/src/sdpd-request.c -+++ b/src/sdpd-request.c -@@ -918,15 +918,20 @@ static int service_search_attr_req(sdp_r - /* continuation State exists -> get from cache */ - sdp_buf_t *pCache = sdp_get_cached_rsp(cstate); - if (pCache) { -- uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); -- pResponse = pCache->data; -- memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); -- buf->data_size += sent; -- cstate->cStateValue.maxBytesSent += sent; -- if (cstate->cStateValue.maxBytesSent == pCache->data_size) -- cstate_size = sdp_set_cstate_pdu(buf, NULL); -- else -- cstate_size = sdp_set_cstate_pdu(buf, cstate); -+ if (cstate->cStateValue.maxBytesSent >= pCache->data_size) { -+ status = SDP_INVALID_CSTATE; -+ SDPDBG("Got bad cstate with invalid size"); -+ } else { -+ uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); -+ pResponse = pCache->data; -+ memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); -+ buf->data_size += sent; -+ cstate->cStateValue.maxBytesSent += sent; -+ if (cstate->cStateValue.maxBytesSent == pCache->data_size) -+ cstate_size = sdp_set_cstate_pdu(buf, NULL); -+ else -+ cstate_size = sdp_set_cstate_pdu(buf, cstate); -+ } - } else { - status = SDP_INVALID_CSTATE; - SDPDBG("Non-null continuation state, but null cache buffer"); diff --git a/gnu/packages/patches/clisp-remove-failing-test.patch b/gnu/packages/patches/clisp-remove-failing-test.patch new file mode 100644 index 0000000000..e44ce80f74 --- /dev/null +++ b/gnu/packages/patches/clisp-remove-failing-test.patch @@ -0,0 +1,43 @@ +This test doesn't ever complete or timeout + +--- + tests/socket.tst | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/tests/socket.tst b/tests/socket.tst +index 93c6310..1d976ff 100644 +--- a/tests/socket.tst ++++ b/tests/socket.tst +@@ -551,30 +551,6 @@ T + interfaces)) + ("0.0.0.0" "127.0.0.1" "0.0.0.0" "127.0.0.1") + +-(multiple-value-bind (run args) (cmd-args) +- (let ((se (socket:socket-server))) +- (ext:run-program run :arguments (append args (list "-q" "-q" "-x" (format nil "(close (socket:socket-connect ~D))" (socket:socket-server-port se)))) +- :wait nil :input nil :output nil) +- (unwind-protect +- (with-open-stream (so (socket:socket-accept se)) +- (list +- (socket:socket-status so) +- (write-line "foo" so) +- (socket:socket-status so) +- #+macos (handler-case (read-char so) +- (end-of-file (c) +- (princ 'read-char) (princ-error c) t)) +- #-macos (check-os-error (read-char so) (:ECONNRESET 104)) +- (null (member (socket:socket-status so) '(:EOF :APPEND))) +- #+macos (string= (write-line "bar" so) "bar") +- #-macos (check-os-error (write-line "bar" so) (:EPIPE 32)) +- (null (member (socket:socket-status so) '(:EOF :APPEND))) +- (handler-case (read-char so) +- (end-of-file (c) +- (princ 'read-char) (princ-error c) 'end-of-file)))) +- (socket:socket-server-close se)))) +-(:OUTPUT "foo" :OUTPUT T NIL T NIL END-OF-FILE) +- + ;; https://sourceforge.net/p/clisp/feature-requests/46/ + (check-os-error (socket:socket-connect 0) + #-(or win32 macos) (:ECONNREFUSED 111) +-- + diff --git a/gnu/packages/patches/cube-nocheck.patch b/gnu/packages/patches/cube-nocheck.patch new file mode 100644 index 0000000000..576044e622 --- /dev/null +++ b/gnu/packages/patches/cube-nocheck.patch @@ -0,0 +1,16 @@ +Unconditionally disable network check for new versions (from Fedora). + +diff -u /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp\~ /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp +--- cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp~ 2016-04-03 00:05:37.942066948 +0100 ++++ cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp 2016-05-06 17:16:31.648143908 +0100 +@@ -52,7 +52,8 @@ + url = QUrl( UPDATE_CHECK_URL ); + download = NULL; + update_Available = false; +- bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) ); ++ // bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) ); ++ bool no_http = true; + if ( !no_http ) + { + updateDescription = tr( "Check for update is not performed yet." ); + diff --git a/gnu/packages/patches/curl-bounds-check.patch b/gnu/packages/patches/curl-bounds-check.patch deleted file mode 100644 index 4b8ff65304..0000000000 --- a/gnu/packages/patches/curl-bounds-check.patch +++ /dev/null @@ -1,19 +0,0 @@ -Fix test failure on some 32-bit platforms. - -Patch copied from upstream source repository: - -https://github.com/curl/curl/commit/45a560390c4356bcb81d933bbbb229c8ea2acb63 - -diff --git a/src/tool_paramhlp.c b/src/tool_paramhlp.c -index b9dedc989e..85c5e79a7e 100644 ---- a/src/tool_paramhlp.c -+++ b/src/tool_paramhlp.c -@@ -218,7 +218,7 @@ static ParameterError str2double(double *val, const char *str, long max) - num = strtod(str, &endptr); - if(errno == ERANGE) - return PARAM_NUMBER_TOO_LARGE; -- if((long)num > max) { -+ if(num > max) { - /* too large */ - return PARAM_NUMBER_TOO_LARGE; - } diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch new file mode 100644 index 0000000000..8e1166ba7a --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch @@ -0,0 +1,210 @@ +http://hg.code.sf.net/p/graphicsmagick/code/rev/358608a46f0a +http://www.openwall.com/lists/oss-security/2017/09/22/2 + +Some changes were made to make the patch apply. + +Notably, the DestroyJNG() function in the upstream diff has been replaced by +its equivalent, a series of calls to MagickFreeMemory(), DestroyImageInfo(), +and DestroyImage(). See +http://hg.code.sf.net/p/graphicsmagick/code/rev/d445af60a8d5. + +# HG changeset patch +# User Glenn Randers-Pehrson +# Date 1504014487 14400 +# Node ID 358608a46f0a9c55e9bb8b37d09bf1ac9bc87f06 +# Parent 38c362f0ae5e7a914c3fe822284c6953f8e6eee2 +Fix Issue 439 + +diff -ru a/coders/png.c b/coders/png.c +--- a/coders/png.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/coders/png.c 2017-09-30 08:20:16.218944991 -0400 +@@ -1176,15 +1176,15 @@ + /* allocate space */ + if (length == 0) + { +- (void) ThrowException2(&image->exception,CoderWarning, +- "invalid profile length",(char *) NULL); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "invalid profile length"); + return (MagickFail); + } + info=MagickAllocateMemory(unsigned char *,length); + if (info == (unsigned char *) NULL) + { +- (void) ThrowException2(&image->exception,CoderWarning, +- "unable to copy profile",(char *) NULL); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "Unable to copy profile"); + return (MagickFail); + } + /* copy profile, skipping white space and column 1 "=" signs */ +@@ -1197,8 +1197,8 @@ + if (*sp == '\0') + { + MagickFreeMemory(info); +- (void) ThrowException2(&image->exception,CoderWarning, +- "ran out of profile data",(char *) NULL); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "ran out of profile data"); + return (MagickFail); + } + sp++; +@@ -1234,8 +1234,9 @@ + if(SetImageProfile(image,profile_name,info,length) == MagickFail) + { + MagickFreeMemory(info); +- (void) ThrowException(&image->exception,ResourceLimitError, +- MemoryAllocationFailed,"unable to copy profile"); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "unable to copy profile"); ++ return MagickFail; + } + MagickFreeMemory(info); + return MagickTrue; +@@ -3285,7 +3286,6 @@ + if (status == MagickFalse) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- DestroyImage(alpha_image); + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " could not allocate alpha_image blob"); + return ((Image *)NULL); +@@ -3534,7 +3534,7 @@ + CloseBlob(color_image); + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +- " Reading jng_image from color_blob."); ++ " Reading jng_image from color_blob."); + + FormatString(color_image_info->filename,"%.1024s",color_image->filename); + +@@ -3558,13 +3558,18 @@ + + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +- " Copying jng_image pixels to main image."); ++ " Copying jng_image pixels to main image."); + image->rows=jng_height; + image->columns=jng_width; + length=image->columns*sizeof(PixelPacket); ++ if ((jng_height == 0 || jng_width == 0) && logging) ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " jng_width=%lu jng_height=%lu", ++ (unsigned long)jng_width,(unsigned long)jng_height); + for (y=0; y < (long) image->rows; y++) + { +- s=AcquireImagePixels(jng_image,0,y,image->columns,1,&image->exception); ++ s=AcquireImagePixels(jng_image,0,y,image->columns,1, ++ &image->exception); + q=SetImagePixels(image,0,y,image->columns,1); + (void) memcpy(q,s,length); + if (!SyncImagePixels(image)) +@@ -3589,45 +3594,79 @@ + CloseBlob(alpha_image); + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +- " Reading opacity from alpha_blob."); ++ " Reading opacity from alpha_blob."); + + FormatString(alpha_image_info->filename,"%.1024s", + alpha_image->filename); + + jng_image=ReadImage(alpha_image_info,exception); + +- for (y=0; y < (long) image->rows; y++) ++ if (jng_image == (Image *)NULL) + { +- s=AcquireImagePixels(jng_image,0,y,image->columns,1, +- &image->exception); +- if (image->matte) +- { +- q=SetImagePixels(image,0,y,image->columns,1); +- for (x=(long) image->columns; x > 0; x--,q++,s++) +- q->opacity=(Quantum) MaxRGB-s->red; +- } +- else ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " jng_image is NULL."); ++ if (color_image_info) ++ DestroyImageInfo(color_image_info); ++ if (alpha_image_info) ++ DestroyImageInfo(alpha_image_info); ++ if (color_image) ++ DestroyImage(color_image); ++ if (alpha_image) ++ DestroyImage(alpha_image); ++ } ++ else ++ { ++ ++ if (logging) + { +- q=SetImagePixels(image,0,y,image->columns,1); +- for (x=(long) image->columns; x > 0; x--,q++,s++) +- { +- q->opacity=(Quantum) MaxRGB-s->red; +- if (q->opacity != OpaqueOpacity) +- image->matte=MagickTrue; +- } ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " Read jng_image."); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " jng_image->width=%lu, jng_image->height=%lu", ++ (unsigned long)jng_width,(unsigned long)jng_height); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " image->rows=%lu, image->columns=%lu", ++ (unsigned long)image->rows, ++ (unsigned long)image->columns); + } +- if (!SyncImagePixels(image)) +- break; +- } +- (void) LiberateUniqueFileResource(alpha_image->filename); +- DestroyImage(alpha_image); +- alpha_image = (Image *)NULL; +- DestroyImageInfo(alpha_image_info); +- alpha_image_info = (ImageInfo *)NULL; +- (void) LogMagickEvent(CoderEvent,GetMagickModule(), +- " Destroy the JNG image"); +- DestroyImage(jng_image); +- jng_image = (Image *)NULL; ++ ++ for (y=0; y < (long) image->rows; y++) ++ { ++ s=AcquireImagePixels(jng_image,0,y,image->columns,1, ++ &image->exception); ++ if (image->matte) ++ { ++ q=SetImagePixels(image,0,y,image->columns,1); ++ for (x=(long) image->columns; x > 0; x--,q++,s++) ++ q->opacity=(Quantum) MaxRGB-s->red; ++ } ++ else ++ { ++ q=SetImagePixels(image,0,y,image->columns,1); ++ for (x=(long) image->columns; x > 0; x--,q++,s++) ++ { ++ q->opacity=(Quantum) MaxRGB-s->red; ++ if (q->opacity != OpaqueOpacity) ++ image->matte=MagickTrue; ++ } ++ } ++ if (!SyncImagePixels(image)) ++ break; ++ } ++ (void) LiberateUniqueFileResource(alpha_image->filename); ++ if (color_image_info) ++ DestroyImageInfo(color_image_info); ++ if (alpha_image_info) ++ DestroyImageInfo(alpha_image_info); ++ if (color_image) ++ DestroyImage(color_image); ++ if (alpha_image) ++ DestroyImage(alpha_image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " Destroy the JNG image"); ++ DestroyImage(jng_image); ++ jng_image = (Image *)NULL; ++ } + } + } diff --git a/gnu/packages/patches/libmwaw-CVE-2017-9433.patch b/gnu/packages/patches/libmwaw-CVE-2017-9433.patch deleted file mode 100644 index 502a11d2a8..0000000000 --- a/gnu/packages/patches/libmwaw-CVE-2017-9433.patch +++ /dev/null @@ -1,33 +0,0 @@ -Fix CVE-2017-9433: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9433 - -Patch copied from upstream source repository: - -https://sourceforge.net/p/libmwaw/libmwaw/ci/68b3b74569881248bfb6cbb4266177cc253b292f - -From 68b3b74569881248bfb6cbb4266177cc253b292f Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Sat, 8 Apr 2017 14:03:29 +0200 -Subject: [PATCH] ofz#1037 resize vector correctly - ---- - src/lib/MsWrd1Parser.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/lib/MsWrd1Parser.cxx b/src/lib/MsWrd1Parser.cxx -index 63547e6..3626064 100644 ---- a/src/lib/MsWrd1Parser.cxx -+++ b/src/lib/MsWrd1Parser.cxx -@@ -902,7 +902,7 @@ bool MsWrd1Parser::readFootnoteCorrespondance(MWAWVec2i limits) - int id = fIt++->second; - fPos[1] = fIt==footnoteMap.end() ? m_state->m_eot : fIt->first; - if (id >= int(m_state->m_footnotesList.size())) -- m_state->m_footnotesList.resize(size_t(id),MWAWVec2l(0,0)); -+ m_state->m_footnotesList.resize(size_t(id)+1,MWAWVec2l(0,0)); - m_state->m_footnotesList[size_t(id)]=fPos; - } - ascii().addDelimiter(input->tell(),'|'); --- -2.13.1 - diff --git a/gnu/packages/patches/libvisio-fix-tests.patch b/gnu/packages/patches/libvisio-fix-tests.patch new file mode 100644 index 0000000000..335f7c11a8 --- /dev/null +++ b/gnu/packages/patches/libvisio-fix-tests.patch @@ -0,0 +1,35 @@ +Tests assume a CET timezone, but do not respect the "TZ" variable. + +This patch is a "squashed" version of these upstream commits: + + + +diff --git a/src/test/Makefile.am b/src/test/Makefile.am +index 59d3419..23049b5 100644 +--- a/src/test/Makefile.am ++++ b/src/test/Makefile.am +@@ -29,4 +29,7 @@ EXTRA_DIST = \ + data/dwg.vsdx \ + $(test_SOURCES) + ++# ImportTest::testVsdMetadataTitleUtf8 checks formatted date string ++AM_TESTS_ENVIRONMENT = TZ=UTC; export TZ; ++ + TESTS = test +diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp +index e05b3c1..32fb185 100644 +--- a/src/test/importtest.cpp ++++ b/src/test/importtest.cpp +@@ -242,8 +242,8 @@ void ImportTest::testVsdMetadataTitleUtf8() + // Test the case when the string is UTF-8 encoded already in the file. + assertXPath(m_doc, "/document/setDocumentMetaData", "title", "mytitle\xC3\xA9\xC3\xA1\xC5\x91\xC5\xB1"); + // Test and . +- assertXPath(m_doc, "/document/setDocumentMetaData", "creation-date", "2014-11-26T09:24:56Z"); +- assertXPath(m_doc, "/document/setDocumentMetaData", "date", "2014-11-26T09:24:56Z"); ++ assertXPath(m_doc, "/document/setDocumentMetaData", "creation-date", "2014-11-26T08:24:56Z"); ++ assertXPath(m_doc, "/document/setDocumentMetaData", "date", "2014-11-26T08:24:56Z"); + } + + void ImportTest::testVsdUserDefinedMetadata() +-- +2.1.4 diff --git a/gnu/packages/patches/libxfont-CVE-2017-13720.patch b/gnu/packages/patches/libxfont-CVE-2017-13720.patch new file mode 100644 index 0000000000..0936171060 --- /dev/null +++ b/gnu/packages/patches/libxfont-CVE-2017-13720.patch @@ -0,0 +1,36 @@ +Fix CVE-2017-13720. + +Copied from upstream source repository: + + + +From d1e670a4a8704b8708e493ab6155589bcd570608 Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Thu, 20 Jul 2017 13:38:53 +0200 +Subject: Check for end of string in PatternMatch (CVE-2017-13720) + +If a pattern contains '?' character, any character in the string is skipped, +even if it is '\0'. The rest of the matching then reads invalid memory. + +Reviewed-by: Peter Hutterer +Signed-off-by: Julien Cristau + +diff --git a/src/fontfile/fontdir.c b/src/fontfile/fontdir.c +index 4ce2473..996b7d1 100644 +--- a/src/fontfile/fontdir.c ++++ b/src/fontfile/fontdir.c +@@ -400,8 +400,10 @@ PatternMatch(char *pat, int patdashes, char *string, int stringdashes) + } + } + case '?': +- if (*string++ == XK_minus) ++ if ((t = *string++) == XK_minus) + stringdashes--; ++ if (!t) ++ return 0; + break; + case '\0': + return (*string == '\0'); +-- +cgit v0.10.2 + diff --git a/gnu/packages/patches/libxfont-CVE-2017-13722.patch b/gnu/packages/patches/libxfont-CVE-2017-13722.patch new file mode 100644 index 0000000000..458fdfd1a7 --- /dev/null +++ b/gnu/packages/patches/libxfont-CVE-2017-13722.patch @@ -0,0 +1,53 @@ +Fix CVE-2017-13722. + +Copied from upstream source repository: + + +From 672bb944311392e2415b39c0d63b1e1902905bcd Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Thu, 20 Jul 2017 17:05:23 +0200 +Subject: pcfGetProperties: Check string boundaries (CVE-2017-13722) + +Without the checks a malformed PCF file can cause the library to make +atom from random heap memory that was behind the `strings` buffer. +This may crash the process or leak information. + +Signed-off-by: Julien Cristau + +diff --git a/src/bitmap/pcfread.c b/src/bitmap/pcfread.c +index dab1c44..ae34c28 100644 +--- a/src/bitmap/pcfread.c ++++ b/src/bitmap/pcfread.c +@@ -45,6 +45,7 @@ from The Open Group. + + #include + #include ++#include + + void + pcfError(const char* message, ...) +@@ -311,11 +312,19 @@ pcfGetProperties(FontInfoPtr pFontInfo, FontFilePtr file, + if (IS_EOF(file)) goto Bail; + position += string_size; + for (i = 0; i < nprops; i++) { ++ if (props[i].name >= string_size) { ++ pcfError("pcfGetProperties(): String starts out of bounds (%ld/%d)\n", props[i].name, string_size); ++ goto Bail; ++ } + props[i].name = MakeAtom(strings + props[i].name, +- strlen(strings + props[i].name), TRUE); ++ strnlen(strings + props[i].name, string_size - props[i].name), TRUE); + if (isStringProp[i]) { ++ if (props[i].value >= string_size) { ++ pcfError("pcfGetProperties(): String starts out of bounds (%ld/%d)\n", props[i].value, string_size); ++ goto Bail; ++ } + props[i].value = MakeAtom(strings + props[i].value, +- strlen(strings + props[i].value), TRUE); ++ strnlen(strings + props[i].value, string_size - props[i].value), TRUE); + } + } + free(strings); +-- +cgit v0.10.2 + diff --git a/gnu/packages/patches/mesa-skip-disk-cache-test.patch b/gnu/packages/patches/mesa-skip-disk-cache-test.patch index b3f9367fd5..190f6b6ee1 100644 --- a/gnu/packages/patches/mesa-skip-disk-cache-test.patch +++ b/gnu/packages/patches/mesa-skip-disk-cache-test.patch @@ -8,12 +8,12 @@ for now. @@ -170,11 +170,6 @@ unsetenv("MESA_GLSL_CACHE_DIR"); unsetenv("XDG_CACHE_HOME"); - -- cache = disk_cache_create("test", "make_check"); + +- cache = disk_cache_create("test", "make_check", 0); - expect_non_null(cache, "disk_cache_create with no environment variables"); - - disk_cache_destroy(cache); - /* Test with XDG_CACHE_HOME set */ setenv("XDG_CACHE_HOME", CACHE_TEST_TMP "/xdg-cache-home", 1); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); diff --git a/gnu/packages/patches/mongodb-support-unknown-linux-distributions.patch b/gnu/packages/patches/mongodb-support-unknown-linux-distributions.patch new file mode 100644 index 0000000000..6057ebeb08 --- /dev/null +++ b/gnu/packages/patches/mongodb-support-unknown-linux-distributions.patch @@ -0,0 +1,55 @@ +From e724bb7018a482640c4f194f88b554af2c59d76e Mon Sep 17 00:00:00 2001 +From: Mark Benvenuto +Date: Wed, 20 Sep 2017 11:50:02 -0400 +Subject: [PATCH] SERVER-30857 Support unknown Linux distributions + +--- + src/mongo/rpc/metadata/client_metadata.cpp | 6 ------ + src/mongo/util/processinfo_linux.cpp | 9 ++++++--- + 2 files changed, 6 insertions(+), 9 deletions(-) + +diff --git a/src/mongo/rpc/metadata/client_metadata.cpp b/src/mongo/rpc/metadata/client_metadata.cpp +index 845a315dd74..a959a4e31e9 100644 +--- a/src/mongo/rpc/metadata/client_metadata.cpp ++++ b/src/mongo/rpc/metadata/client_metadata.cpp +@@ -302,9 +302,6 @@ void ClientMetadata::serializePrivate(StringData driverName, + StringData osArchitecture, + StringData osVersion, + BSONObjBuilder* builder) { +- invariant(!driverName.empty() && !driverVersion.empty() && !osType.empty() && !osName.empty() && +- !osArchitecture.empty() && !osVersion.empty()); +- + BSONObjBuilder metaObjBuilder(builder->subobjStart(kMetadataDocumentName)); + + { +@@ -347,9 +344,6 @@ Status ClientMetadata::serializePrivate(StringData driverName, + StringData osVersion, + StringData appName, + BSONObjBuilder* builder) { +- invariant(!driverName.empty() && !driverVersion.empty() && !osType.empty() && !osName.empty() && +- !osArchitecture.empty() && !osVersion.empty()); +- + if (appName.size() > kMaxApplicationNameByteLength) { + return Status(ErrorCodes::ClientMetadataAppNameTooLarge, + str::stream() << "The '" << kApplication << "." << kName +diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp +index c3debf377bd..c2813b026b0 100644 +--- a/src/mongo/util/processinfo_linux.cpp ++++ b/src/mongo/util/processinfo_linux.cpp +@@ -376,10 +376,13 @@ class LinuxSysHelper { + if ((nl = name.find('\n', nl)) != string::npos) + // stop at first newline + name.erase(nl); +- // no standard format for name and version. use kernel version +- version = "Kernel "; +- version += LinuxSysHelper::readLineFromFile("/proc/sys/kernel/osrelease"); ++ } else { ++ name = "unknown"; + } ++ ++ // There is no standard format for name and version so use the kernel version. ++ version = "Kernel "; ++ version += LinuxSysHelper::readLineFromFile("/proc/sys/kernel/osrelease"); + } + + /** diff --git a/gnu/packages/patches/openjpeg-CVE-2017-12982.patch b/gnu/packages/patches/openjpeg-CVE-2017-12982.patch deleted file mode 100644 index 3929a73570..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2017-12982.patch +++ /dev/null @@ -1,28 +0,0 @@ -http://openwall.com/lists/oss-security/2017/08/21/1 -https://github.com/uclouvain/openjpeg/commit/baf0c1ad4572daa89caa3b12985bdd93530f0dd7.patch - -From baf0c1ad4572daa89caa3b12985bdd93530f0dd7 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Mon, 14 Aug 2017 17:26:58 +0200 -Subject: [PATCH] bmp_read_info_header(): reject bmp files with biBitCount == 0 - (#983) - ---- - src/bin/jp2/convertbmp.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c -index b49e7a080..2715fdf24 100644 ---- a/src/bin/jp2/convertbmp.c -+++ b/src/bin/jp2/convertbmp.c -@@ -392,6 +392,10 @@ static OPJ_BOOL bmp_read_info_header(FILE* IN, OPJ_BITMAPINFOHEADER* header) - - header->biBitCount = (OPJ_UINT16)getc(IN); - header->biBitCount |= (OPJ_UINT16)((OPJ_UINT32)getc(IN) << 8); -+ if (header->biBitCount == 0) { -+ fprintf(stderr, "Error, invalid biBitCount %d\n", 0); -+ return OPJ_FALSE; -+ } - - if (header->biSize >= 40U) { - header->biCompression = (OPJ_UINT32)getc(IN); diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14040.patch b/gnu/packages/patches/openjpeg-CVE-2017-14040.patch deleted file mode 100644 index bd7473ba0d..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2017-14040.patch +++ /dev/null @@ -1,83 +0,0 @@ -http://openwall.com/lists/oss-security/2017/08/28/3 -https://github.com/uclouvain/openjpeg/commit/2cd30c2b06ce332dede81cccad8b334cde997281.patch - -From 2cd30c2b06ce332dede81cccad8b334cde997281 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Thu, 17 Aug 2017 11:47:40 +0200 -Subject: [PATCH] tgatoimage(): avoid excessive memory allocation attempt, and - fixes unaligned load (#995) - ---- - src/bin/jp2/convert.c | 39 +++++++++++++++++++++++++++------------ - 1 file changed, 27 insertions(+), 12 deletions(-) - -diff --git a/src/bin/jp2/convert.c b/src/bin/jp2/convert.c -index a4eb81f6a..73dfc8d5f 100644 ---- a/src/bin/jp2/convert.c -+++ b/src/bin/jp2/convert.c -@@ -580,13 +580,10 @@ struct tga_header { - }; - #endif /* INFORMATION_ONLY */ - --static unsigned short get_ushort(const unsigned char *data) -+/* Returns a ushort from a little-endian serialized value */ -+static unsigned short get_tga_ushort(const unsigned char *data) - { -- unsigned short val = *(const unsigned short *)data; --#ifdef OPJ_BIG_ENDIAN -- val = ((val & 0xffU) << 8) | (val >> 8); --#endif -- return val; -+ return data[0] | (data[1] << 8); - } - - #define TGA_HEADER_SIZE 18 -@@ -613,17 +610,17 @@ static int tga_readheader(FILE *fp, unsigned int *bits_per_pixel, - id_len = tga[0]; - /*cmap_type = tga[1];*/ - image_type = tga[2]; -- /*cmap_index = get_ushort(&tga[3]);*/ -- cmap_len = get_ushort(&tga[5]); -+ /*cmap_index = get_tga_ushort(&tga[3]);*/ -+ cmap_len = get_tga_ushort(&tga[5]); - cmap_entry_size = tga[7]; - - - #if 0 -- x_origin = get_ushort(&tga[8]); -- y_origin = get_ushort(&tga[10]); -+ x_origin = get_tga_ushort(&tga[8]); -+ y_origin = get_tga_ushort(&tga[10]); - #endif -- image_w = get_ushort(&tga[12]); -- image_h = get_ushort(&tga[14]); -+ image_w = get_tga_ushort(&tga[12]); -+ image_h = get_tga_ushort(&tga[14]); - pixel_depth = tga[16]; - image_desc = tga[17]; - -@@ -817,6 +814,24 @@ opj_image_t* tgatoimage(const char *filename, opj_cparameters_t *parameters) - color_space = OPJ_CLRSPC_SRGB; - } - -+ /* If the declared file size is > 10 MB, check that the file is big */ -+ /* enough to avoid excessive memory allocations */ -+ if (image_height != 0 && image_width > 10000000 / image_height / numcomps) { -+ char ch; -+ OPJ_UINT64 expected_file_size = -+ (OPJ_UINT64)image_width * image_height * numcomps; -+ long curpos = ftell(f); -+ if (expected_file_size > (OPJ_UINT64)INT_MAX) { -+ expected_file_size = (OPJ_UINT64)INT_MAX; -+ } -+ fseek(f, (long)expected_file_size - 1, SEEK_SET); -+ if (fread(&ch, 1, 1, f) != 1) { -+ fclose(f); -+ return NULL; -+ } -+ fseek(f, curpos, SEEK_SET); -+ } -+ - subsampling_dx = parameters->subsampling_dx; - subsampling_dy = parameters->subsampling_dy; - diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14041.patch b/gnu/packages/patches/openjpeg-CVE-2017-14041.patch deleted file mode 100644 index 6e3fccf3c0..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2017-14041.patch +++ /dev/null @@ -1,25 +0,0 @@ -http://openwall.com/lists/oss-security/2017/08/28/4 -https://github.com/uclouvain/openjpeg/commit/e5285319229a5d77bf316bb0d3a6cbd3cb8666d9.patch - -From e5285319229a5d77bf316bb0d3a6cbd3cb8666d9 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Fri, 18 Aug 2017 13:39:20 +0200 -Subject: [PATCH] pgxtoimage(): fix write stack buffer overflow (#997) - ---- - src/bin/jp2/convert.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bin/jp2/convert.c b/src/bin/jp2/convert.c -index 5459f7d44..e606c9be7 100644 ---- a/src/bin/jp2/convert.c -+++ b/src/bin/jp2/convert.c -@@ -1185,7 +1185,7 @@ opj_image_t* pgxtoimage(const char *filename, opj_cparameters_t *parameters) - } - - fseek(f, 0, SEEK_SET); -- if (fscanf(f, "PG%[ \t]%c%c%[ \t+-]%d%[ \t]%d%[ \t]%d", temp, &endian1, -+ if (fscanf(f, "PG%31[ \t]%c%c%31[ \t+-]%d%31[ \t]%d%31[ \t]%d", temp, &endian1, - &endian2, signtmp, &prec, temp, &w, temp, &h) != 9) { - fclose(f); - fprintf(stderr, diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14151.patch b/gnu/packages/patches/openjpeg-CVE-2017-14151.patch deleted file mode 100644 index 4fcf6af6db..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2017-14151.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://github.com/uclouvain/openjpeg/commit/afb308b9ccbe129608c9205cf3bb39bbefad90b9.patch -http://openwall.com/lists/oss-security/2017/09/06/1 - -From afb308b9ccbe129608c9205cf3bb39bbefad90b9 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Mon, 14 Aug 2017 17:20:37 +0200 -Subject: [PATCH] Encoder: grow buffer size in - opj_tcd_code_block_enc_allocate_data() to avoid write heap buffer overflow in - opj_mqc_flush (#982) - ---- - src/lib/openjp2/tcd.c | 7 +++++-- - tests/nonregression/test_suite.ctest.in | 2 ++ - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c -index 301c7213e..53cdcf64d 100644 ---- a/src/lib/openjp2/tcd.c -+++ b/src/lib/openjp2/tcd.c -@@ -1187,8 +1187,11 @@ static OPJ_BOOL opj_tcd_code_block_enc_allocate_data(opj_tcd_cblk_enc_t * - { - OPJ_UINT32 l_data_size; - -- /* The +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */ -- l_data_size = 1 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) * -+ /* +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */ -+ /* and actually +2 required for https://github.com/uclouvain/openjpeg/issues/982 */ -+ /* TODO: is there a theoretical upper-bound for the compressed code */ -+ /* block size ? */ -+ l_data_size = 2 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) * - (p_code_block->y1 - p_code_block->y0) * (OPJ_INT32)sizeof(OPJ_UINT32)); - - if (l_data_size > p_code_block->data_size) { -diff --git a/tests/nonregression/test_suite.ctest.in b/tests/nonregression/test_suite.ctest.in -index aaf40d7d0..ffd964c2a 100644 ---- a/tests/nonregression/test_suite.ctest.in -+++ b/tests/nonregression/test_suite.ctest.in -@@ -169,6 +169,8 @@ opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_ban - # Same rate as Bretagne2_4.j2k - opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_band_r800.j2k -t 2591,1943 -n 2 -r 800 - -+opj_compress -i @INPUT_NR_PATH@/issue982.bmp -o @TEMP_PATH@/issue982.j2k -n 1 -+ - # DECODER TEST SUITE - opj_decompress -i @INPUT_NR_PATH@/Bretagne2.j2k -o @TEMP_PATH@/Bretagne2.j2k.pgx - opj_decompress -i @INPUT_NR_PATH@/_00042.j2k -o @TEMP_PATH@/_00042.j2k.pgx diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14152.patch b/gnu/packages/patches/openjpeg-CVE-2017-14152.patch deleted file mode 100644 index 6c083be123..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2017-14152.patch +++ /dev/null @@ -1,38 +0,0 @@ -https://github.com/uclouvain/openjpeg/commit/4241ae6fbbf1de9658764a80944dc8108f2b4154.patch -http://openwall.com/lists/oss-security/2017/09/06/2 - -From 4241ae6fbbf1de9658764a80944dc8108f2b4154 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Tue, 15 Aug 2017 11:55:58 +0200 -Subject: [PATCH] Fix assertion in debug mode / heap-based buffer overflow in - opj_write_bytes_LE for Cinema profiles with numresolutions = 1 (#985) - ---- - src/lib/openjp2/j2k.c | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c -index a2521ebbc..54b490a8c 100644 ---- a/src/lib/openjp2/j2k.c -+++ b/src/lib/openjp2/j2k.c -@@ -6573,10 +6573,16 @@ static void opj_j2k_set_cinema_parameters(opj_cparameters_t *parameters, - - /* Precincts */ - parameters->csty |= 0x01; -- parameters->res_spec = parameters->numresolution - 1; -- for (i = 0; i < parameters->res_spec; i++) { -- parameters->prcw_init[i] = 256; -- parameters->prch_init[i] = 256; -+ if (parameters->numresolution == 1) { -+ parameters->res_spec = 1; -+ parameters->prcw_init[0] = 128; -+ parameters->prch_init[0] = 128; -+ } else { -+ parameters->res_spec = parameters->numresolution - 1; -+ for (i = 0; i < parameters->res_spec; i++) { -+ parameters->prcw_init[i] = 256; -+ parameters->prch_init[i] = 256; -+ } - } - - /* The progression order shall be CPRL */ diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14164.patch b/gnu/packages/patches/openjpeg-CVE-2017-14164.patch deleted file mode 100644 index 2bfc5a6a85..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2017-14164.patch +++ /dev/null @@ -1,89 +0,0 @@ -https://github.com/uclouvain/openjpeg/commit/dcac91b8c72f743bda7dbfa9032356bc8110098a.patch -http://openwall.com/lists/oss-security/2017/09/06/3 - -From dcac91b8c72f743bda7dbfa9032356bc8110098a Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Wed, 16 Aug 2017 17:09:10 +0200 -Subject: [PATCH] opj_j2k_write_sot(): fix potential write heap buffer overflow - (#991) - ---- - src/lib/openjp2/j2k.c | 25 ++++++++++++++++++++----- - 1 file changed, 20 insertions(+), 5 deletions(-) - -diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c -index 54b490a8c..16915452e 100644 ---- a/src/lib/openjp2/j2k.c -+++ b/src/lib/openjp2/j2k.c -@@ -832,13 +832,15 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, - * Writes the SOT marker (Start of tile-part) - * - * @param p_j2k J2K codec. -- * @param p_data FIXME DOC -- * @param p_data_written FIXME DOC -+ * @param p_data Output buffer -+ * @param p_total_data_size Output buffer size -+ * @param p_data_written Number of bytes written into stream - * @param p_stream the stream to write data to. - * @param p_manager the user event manager. - */ - static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, - OPJ_BYTE * p_data, -+ OPJ_UINT32 p_total_data_size, - OPJ_UINT32 * p_data_written, - const opj_stream_private_t *p_stream, - opj_event_mgr_t * p_manager); -@@ -4201,6 +4203,7 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, - - static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, - OPJ_BYTE * p_data, -+ OPJ_UINT32 p_total_data_size, - OPJ_UINT32 * p_data_written, - const opj_stream_private_t *p_stream, - opj_event_mgr_t * p_manager -@@ -4214,6 +4217,12 @@ static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, - OPJ_UNUSED(p_stream); - OPJ_UNUSED(p_manager); - -+ if (p_total_data_size < 12) { -+ opj_event_msg(p_manager, EVT_ERROR, -+ "Not enough bytes in output buffer to write SOT marker\n"); -+ return OPJ_FALSE; -+ } -+ - opj_write_bytes(p_data, J2K_MS_SOT, - 2); /* SOT */ - p_data += 2; -@@ -11480,7 +11489,8 @@ static OPJ_BOOL opj_j2k_write_first_tile_part(opj_j2k_t *p_j2k, - - l_current_nb_bytes_written = 0; - l_begin_data = p_data; -- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, -+ if (! opj_j2k_write_sot(p_j2k, p_data, p_total_data_size, -+ &l_current_nb_bytes_written, p_stream, - p_manager)) { - return OPJ_FALSE; - } -@@ -11572,7 +11582,10 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, - l_part_tile_size = 0; - l_begin_data = p_data; - -- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, -+ if (! opj_j2k_write_sot(p_j2k, p_data, -+ p_total_data_size, -+ &l_current_nb_bytes_written, -+ p_stream, - p_manager)) { - return OPJ_FALSE; - } -@@ -11615,7 +11628,9 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, - l_part_tile_size = 0; - l_begin_data = p_data; - -- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, -+ if (! opj_j2k_write_sot(p_j2k, p_data, -+ p_total_data_size, -+ &l_current_nb_bytes_written, p_stream, - p_manager)) { - return OPJ_FALSE; - } diff --git a/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch b/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch new file mode 100644 index 0000000000..e1e71a332a --- /dev/null +++ b/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch @@ -0,0 +1,44 @@ +From 700076019b5aff72aac7651cc830aaef21ee9a47 Mon Sep 17 00:00:00 2001 +From: jakirkham +Date: Fri, 7 Jul 2017 05:57:56 -0400 +Subject: [PATCH] Drop ordereddict requirement (#84) + +* Drop ordereddict requirement + +As Python 2.7 is the minimum Python supported, every version of Python +should have `ordereddict` preincluded in the standard library one way or +another. So we can drop this dependency and just handle the differences +between Python 2 and Python 3. +--- + nosetimer/plugin.py | 5 +---- + setup.py | 1 - + 2 files changed, 1 insertion(+), 5 deletions(-) + +diff --git a/nosetimer/plugin.py b/nosetimer/plugin.py +index ef28e11..d093a51 100644 +--- a/nosetimer/plugin.py ++++ b/nosetimer/plugin.py +@@ -12,10 +12,7 @@ + except ImportError: + import queue as Queue + +-try: +- from collections import OrderedDict +-except ImportError: +- from ordereddict import OrderedDict ++from collections import OrderedDict + + + # define constants +diff --git a/setup.py b/setup.py +index 6a55b82..d249325 100755 +--- a/setup.py ++++ b/setup.py +@@ -27,7 +27,6 @@ + install_requires=[ + 'nose', + 'termcolor', +- 'ordereddict', + ], + license='MIT', + entry_points={ diff --git a/gnu/packages/patches/python2-unittest2-remove-argparse.patch b/gnu/packages/patches/python2-unittest2-remove-argparse.patch new file mode 100644 index 0000000000..c96738757e --- /dev/null +++ b/gnu/packages/patches/python2-unittest2-remove-argparse.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2017-09-12 01:22:06.273997788 +0200 ++++ b/setup.py 2017-09-12 01:22:14.297918757 +0200 +@@ -57,7 +57,7 @@ + # Both install and setup requires - because we read VERSION from within the + # package, and the package also exports all the APIs. + # six for compat helpers +-REQUIRES = ['argparse', 'six>=1.4', 'traceback2'], ++REQUIRES = ['six>=1.4', 'traceback2'], + + params = dict( + name=NAME, diff --git a/gnu/packages/patches/qemu-CVE-2017-13711.patch b/gnu/packages/patches/qemu-CVE-2017-13711.patch deleted file mode 100644 index 4070115419..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-13711.patch +++ /dev/null @@ -1,89 +0,0 @@ -Fix CVE-2017-13711: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13711 - -Patch copied from upstream source repository: - -https://git.qemu.org/?p=qemu.git;a=commitdiff;h=1201d308519f1e915866d7583d5136d03cc1d384 - -From 1201d308519f1e915866d7583d5136d03cc1d384 Mon Sep 17 00:00:00 2001 -From: Samuel Thibault -Date: Fri, 25 Aug 2017 01:35:53 +0200 -Subject: [PATCH] slirp: fix clearing ifq_so from pending packets -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The if_fastq and if_batchq contain not only packets, but queues of packets -for the same socket. When sofree frees a socket, it thus has to clear ifq_so -from all the packets from the queues, not only the first. - -Signed-off-by: Samuel Thibault -Reviewed-by: Philippe Mathieu-Daudé -Cc: qemu-stable@nongnu.org -Signed-off-by: Peter Maydell ---- - slirp/socket.c | 39 +++++++++++++++++++++++---------------- - 1 file changed, 23 insertions(+), 16 deletions(-) - -diff --git a/slirp/socket.c b/slirp/socket.c -index ecec0295a9..cb7b5b608d 100644 ---- a/slirp/socket.c -+++ b/slirp/socket.c -@@ -59,6 +59,27 @@ socreate(Slirp *slirp) - return(so); - } - -+/* -+ * Remove references to so from the given message queue. -+ */ -+static void -+soqfree(struct socket *so, struct quehead *qh) -+{ -+ struct mbuf *ifq; -+ -+ for (ifq = (struct mbuf *) qh->qh_link; -+ (struct quehead *) ifq != qh; -+ ifq = ifq->ifq_next) { -+ if (ifq->ifq_so == so) { -+ struct mbuf *ifm; -+ ifq->ifq_so = NULL; -+ for (ifm = ifq->ifs_next; ifm != ifq; ifm = ifm->ifs_next) { -+ ifm->ifq_so = NULL; -+ } -+ } -+ } -+} -+ - /* - * remque and free a socket, clobber cache - */ -@@ -66,23 +87,9 @@ void - sofree(struct socket *so) - { - Slirp *slirp = so->slirp; -- struct mbuf *ifm; - -- for (ifm = (struct mbuf *) slirp->if_fastq.qh_link; -- (struct quehead *) ifm != &slirp->if_fastq; -- ifm = ifm->ifq_next) { -- if (ifm->ifq_so == so) { -- ifm->ifq_so = NULL; -- } -- } -- -- for (ifm = (struct mbuf *) slirp->if_batchq.qh_link; -- (struct quehead *) ifm != &slirp->if_batchq; -- ifm = ifm->ifq_next) { -- if (ifm->ifq_so == so) { -- ifm->ifq_so = NULL; -- } -- } -+ soqfree(so, &slirp->if_fastq); -+ soqfree(so, &slirp->if_batchq); - - if (so->so_emu==EMU_RSH && so->extra) { - sofree(so->extra); --- -2.14.1 - diff --git a/gnu/packages/patches/qemu-CVE-2017-14167.patch b/gnu/packages/patches/qemu-CVE-2017-14167.patch deleted file mode 100644 index a6007ac082..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-14167.patch +++ /dev/null @@ -1,69 +0,0 @@ -Fix CVE-2017-14167: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14167 -http://seclists.org/oss-sec/2017/q3/407 - -Patch copied from upstream development mailing list: - -https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg01483.html - -From: Prasad J Pandit - -While loading kernel via multiboot-v1 image, (flags & 0x00010000) -indicates that multiboot header contains valid addresses to load -the kernel image. These addresses are used to compute kernel -size and kernel text offset in the OS image. Validate these -address values to avoid an OOB access issue. - -This is CVE-2017-14167. - -Reported-by: Thomas Garnier -Signed-off-by: Prasad J Pandit ---- - hw/i386/multiboot.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -Update: add CVE-ID to the commit message. - -diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c -index 6001f4caa2..c7b70c91d5 100644 ---- a/hw/i386/multiboot.c -+++ b/hw/i386/multiboot.c -@@ -221,15 +221,34 @@ int load_multiboot(FWCfgState *fw_cfg, - uint32_t mh_header_addr = ldl_p(header+i+12); - uint32_t mh_load_end_addr = ldl_p(header+i+20); - uint32_t mh_bss_end_addr = ldl_p(header+i+24); -+ - mh_load_addr = ldl_p(header+i+16); -+ if (mh_header_addr < mh_load_addr) { -+ fprintf(stderr, "invalid mh_load_addr address\n"); -+ exit(1); -+ } -+ - uint32_t mb_kernel_text_offset = i - (mh_header_addr - mh_load_addr); - uint32_t mb_load_size = 0; - mh_entry_addr = ldl_p(header+i+28); - - if (mh_load_end_addr) { -+ if (mh_bss_end_addr < mh_load_addr) { -+ fprintf(stderr, "invalid mh_bss_end_addr address\n"); -+ exit(1); -+ } - mb_kernel_size = mh_bss_end_addr - mh_load_addr; -+ -+ if (mh_load_end_addr < mh_load_addr) { -+ fprintf(stderr, "invalid mh_load_end_addr address\n"); -+ exit(1); -+ } - mb_load_size = mh_load_end_addr - mh_load_addr; - } else { -+ if (kernel_file_size < mb_kernel_text_offset) { -+ fprintf(stderr, "invalid kernel_file_size\n"); -+ exit(1); -+ } - mb_kernel_size = kernel_file_size - mb_kernel_text_offset; - mb_load_size = mb_kernel_size; - } --- -2.13.5 - diff --git a/gnu/packages/patches/xorg-server-CVE-2017-10971.patch b/gnu/packages/patches/xorg-server-CVE-2017-10971.patch deleted file mode 100644 index 2696033e58..0000000000 --- a/gnu/packages/patches/xorg-server-CVE-2017-10971.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 215f894965df5fb0bb45b107d84524e700d2073c Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Wed, 24 May 2017 15:54:40 +0300 -Subject: dix: Disallow GenericEvent in SendEvent request. - -The SendEvent request holds xEvent which is exactly 32 bytes long, no more, -no less. Both ProcSendEvent and SProcSendEvent verify that the received data -exactly match the request size. However nothing stops the client from passing -in event with xEvent::type = GenericEvent and any value of -xGenericEvent::length. - -In the case of ProcSendEvent, the event will be eventually passed to -WriteEventsToClient which will see that it is Generic event and copy the -arbitrary length from the receive buffer (and possibly past it) and send it to -the other client. This allows clients to copy unitialized heap memory out of X -server or to crash it. - -In case of SProcSendEvent, it will attempt to swap the incoming event by -calling a swapping function from the EventSwapVector array. The swapped event -is written to target buffer, which in this case is local xEvent variable. The -xEvent variable is 32 bytes long, but the swapping functions for GenericEvents -expect that the target buffer has size matching the size of the source -GenericEvent. This allows clients to cause stack buffer overflows. - -Signed-off-by: Michal Srb -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer - -diff --git a/dix/events.c b/dix/events.c -index 3e3a01e..d3a33ea 100644 ---- a/dix/events.c -+++ b/dix/events.c -@@ -5366,6 +5366,12 @@ ProcSendEvent(ClientPtr client) - client->errorValue = stuff->event.u.u.type; - return BadValue; - } -+ /* Generic events can have variable size, but SendEvent request holds -+ exactly 32B of event data. */ -+ if (stuff->event.u.u.type == GenericEvent) { -+ client->errorValue = stuff->event.u.u.type; -+ return BadValue; -+ } - if (stuff->event.u.u.type == ClientMessage && - stuff->event.u.u.detail != 8 && - stuff->event.u.u.detail != 16 && stuff->event.u.u.detail != 32) { -diff --git a/dix/swapreq.c b/dix/swapreq.c -index 719e9b8..6785059 100644 ---- a/dix/swapreq.c -+++ b/dix/swapreq.c -@@ -292,6 +292,13 @@ SProcSendEvent(ClientPtr client) - swapl(&stuff->destination); - swapl(&stuff->eventMask); - -+ /* Generic events can have variable size, but SendEvent request holds -+ exactly 32B of event data. */ -+ if (stuff->event.u.u.type == GenericEvent) { -+ client->errorValue = stuff->event.u.u.type; -+ return BadValue; -+ } -+ - /* Swap event */ - proc = EventSwapVector[stuff->event.u.u.type & 0177]; - if (!proc || proc == NotImplemented) /* no swapping proc; invalid event type? */ --- -cgit v0.10.2 - -From 8caed4df36b1f802b4992edcfd282cbeeec35d9d Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Wed, 24 May 2017 15:54:41 +0300 -Subject: Xi: Verify all events in ProcXSendExtensionEvent. - -The requirement is that events have type in range -EXTENSION_EVENT_BASE..lastEvent, but it was tested -only for first event of all. - -Signed-off-by: Michal Srb -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer - -diff --git a/Xi/sendexev.c b/Xi/sendexev.c -index 1cf118a..5e63bfc 100644 ---- a/Xi/sendexev.c -+++ b/Xi/sendexev.c -@@ -117,7 +117,7 @@ SProcXSendExtensionEvent(ClientPtr client) - int - ProcXSendExtensionEvent(ClientPtr client) - { -- int ret; -+ int ret, i; - DeviceIntPtr dev; - xEvent *first; - XEventClass *list; -@@ -141,10 +141,12 @@ ProcXSendExtensionEvent(ClientPtr client) - /* The client's event type must be one defined by an extension. */ - - first = ((xEvent *) &stuff[1]); -- if (!((EXTENSION_EVENT_BASE <= first->u.u.type) && -- (first->u.u.type < lastEvent))) { -- client->errorValue = first->u.u.type; -- return BadValue; -+ for (i = 0; i < stuff->num_events; i++) { -+ if (!((EXTENSION_EVENT_BASE <= first[i].u.u.type) && -+ (first[i].u.u.type < lastEvent))) { -+ client->errorValue = first[i].u.u.type; -+ return BadValue; -+ } - } - - list = (XEventClass *) (first + stuff->num_events); --- -cgit v0.10.2 - -From ba336b24052122b136486961c82deac76bbde455 Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Wed, 24 May 2017 15:54:42 +0300 -Subject: Xi: Do not try to swap GenericEvent. - -The SProcXSendExtensionEvent must not attempt to swap GenericEvent because -it is assuming that the event has fixed size and gives the swapping function -xEvent-sized buffer. - -A GenericEvent would be later rejected by ProcXSendExtensionEvent anyway. - -Signed-off-by: Michal Srb -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer - -diff --git a/Xi/sendexev.c b/Xi/sendexev.c -index 5e63bfc..5c2e0fc 100644 ---- a/Xi/sendexev.c -+++ b/Xi/sendexev.c -@@ -95,9 +95,17 @@ SProcXSendExtensionEvent(ClientPtr client) - - eventP = (xEvent *) &stuff[1]; - for (i = 0; i < stuff->num_events; i++, eventP++) { -+ if (eventP->u.u.type == GenericEvent) { -+ client->errorValue = eventP->u.u.type; -+ return BadValue; -+ } -+ - proc = EventSwapVector[eventP->u.u.type & 0177]; -- if (proc == NotImplemented) /* no swapping proc; invalid event type? */ -+ /* no swapping proc; invalid event type? */ -+ if (proc == NotImplemented) { -+ client->errorValue = eventP->u.u.type; - return BadValue; -+ } - (*proc) (eventP, &eventT); - *eventP = eventT; - } --- -cgit v0.10.2 - diff --git a/gnu/packages/patches/xorg-server-CVE-2017-10972.patch b/gnu/packages/patches/xorg-server-CVE-2017-10972.patch deleted file mode 100644 index f24e9c0ae6..0000000000 --- a/gnu/packages/patches/xorg-server-CVE-2017-10972.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 05442de962d3dc624f79fc1a00eca3ffc5489ced Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Wed, 24 May 2017 15:54:39 +0300 -Subject: Xi: Zero target buffer in SProcXSendExtensionEvent. - -Make sure that the xEvent eventT is initialized with zeros, the same way as -in SProcSendEvent. - -Some event swapping functions do not overwrite all 32 bytes of xEvent -structure, for example XSecurityAuthorizationRevoked. Two cooperating -clients, one swapped and the other not, can send -XSecurityAuthorizationRevoked event to each other to retrieve old stack data -from X server. This can be potentialy misused to go around ASLR or -stack-protector. - -Signed-off-by: Michal Srb -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer - -diff --git a/Xi/sendexev.c b/Xi/sendexev.c -index 11d8202..1cf118a 100644 ---- a/Xi/sendexev.c -+++ b/Xi/sendexev.c -@@ -78,7 +78,7 @@ SProcXSendExtensionEvent(ClientPtr client) - { - CARD32 *p; - int i; -- xEvent eventT; -+ xEvent eventT = { .u.u.type = 0 }; - xEvent *eventP; - EventSwapPtr proc; - --- -cgit v0.10.2 - diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index 42da56194c..f527231aa8 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -53,30 +53,31 @@ (inputs `(("perl" ,perl))) (arguments '(#:parallel-tests? #f - #:phases (alist-cons-before - 'check 'patch-test-scripts - (lambda _ - (let ((echo (which "echo"))) - (substitute* - (find-files "tests" "^run-test$") - (("/bin/echo") echo)))) - (alist-cons-after - 'install 'wrap-program - ;; Point installed scripts to the utilities they need. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (diffutils (assoc-ref inputs "diffutils")) - (sed (assoc-ref inputs "sed")) - (gawk (assoc-ref inputs "gawk"))) - (for-each - (lambda (prog) - (wrap-program (string-append out "/bin/" prog) - `("PATH" ":" prefix - ,(map (lambda (dir) - (string-append dir "/bin")) - (list diffutils sed gawk))))) - '("dehtmldiff" "editdiff" "espdiff")))) - %standard-phases)))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'patch-test-scripts + (lambda _ + (let ((echo (which "echo"))) + (substitute* + (find-files "tests" "^run-test$") + (("/bin/echo") echo))) + #t)) + (add-after 'install 'wrap-program + ;; Point installed scripts to the utilities they need. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (diffutils (assoc-ref inputs "diffutils")) + (sed (assoc-ref inputs "sed")) + (gawk (assoc-ref inputs "gawk"))) + (for-each + (lambda (prog) + (wrap-program (string-append out "/bin/" prog) + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin")) + (list diffutils sed gawk))))) + '("dehtmldiff" "editdiff" "espdiff"))) + #t))))) (home-page "http://cyberelk.net/tim/software/patchutils") (synopsis "Collection of tools for manipulating patch files") (description @@ -105,39 +106,39 @@ listing the files modified by a patch.") ("ed" ,ed))) (arguments '(#:parallel-tests? #f - #:phases - (alist-cons-before - 'check 'patch-tests - (lambda _ - (substitute* - '("test/run" - "test/edit.test") - (("/bin/sh") (which "sh"))) - ;; TODO: Run the mail tests once the mail feature can be supported. - (delete-file "test/mail.test")) - (alist-cons-after - 'install 'wrap-program - ;; quilt's configure checks for the absolute path to the utilities it - ;; needs, but uses only the name when invoking them, so we need to - ;; make sure the quilt script can find those utilities when run. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (coreutils (assoc-ref inputs "coreutils")) - (diffutils (assoc-ref inputs "diffutils")) - (findutils (assoc-ref inputs "findutils")) - (less (assoc-ref inputs "less")) - (file (assoc-ref inputs "file")) - (ed (assoc-ref inputs "ed")) - (sed (assoc-ref inputs "sed")) - (bash (assoc-ref inputs "bash")) - (grep (assoc-ref inputs "grep"))) - (wrap-program (string-append out "/bin/quilt") - `("PATH" ":" prefix - ,(map (lambda (dir) - (string-append dir "/bin")) - (list coreutils diffutils findutils - less file ed sed bash grep)))))) - %standard-phases)))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'patch-tests + (lambda _ + (substitute* + '("test/run" + "test/edit.test") + (("/bin/sh") (which "sh"))) + ;; TODO: Run the mail tests once the mail feature can be supported. + (delete-file "test/mail.test") + #t)) + (add-after 'install 'wrap-program + ;; quilt's configure checks for the absolute path to the utilities it + ;; needs, but uses only the name when invoking them, so we need to + ;; make sure the quilt script can find those utilities when run. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (coreutils (assoc-ref inputs "coreutils")) + (diffutils (assoc-ref inputs "diffutils")) + (findutils (assoc-ref inputs "findutils")) + (less (assoc-ref inputs "less")) + (file (assoc-ref inputs "file")) + (ed (assoc-ref inputs "ed")) + (sed (assoc-ref inputs "sed")) + (bash (assoc-ref inputs "bash")) + (grep (assoc-ref inputs "grep"))) + (wrap-program (string-append out "/bin/quilt") + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin")) + (list coreutils diffutils findutils + less file ed sed bash grep))))) + #t))))) (home-page "https://savannah.nongnu.org/projects/quilt/") (synopsis "Script for managing patches to software") (description @@ -164,8 +165,9 @@ refreshed, and more.") #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) "INSTALL_DIR=/bin" "MAN_DIR=/share/man/man1") #:phases - (alist-delete 'configure - (alist-delete 'build %standard-phases)))) + (modify-phases %standard-phases + (delete 'configure) + (delete 'build)))) (inputs `(("perl" ,perl) ("xmlto" ,xmlto))) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 5e52d87ca5..98df90e2d4 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -76,14 +76,14 @@ (define-public poppler (package (name "poppler") - (version "0.56.0") + (version "0.59.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "0wviayidfv2ix2ql0d4nl9r1ia6qi5kc1nybd9vjx27dk7gvm7c6")))) + "0hcnghliyr8pr887qza18qfgaclw5jr889g1cjcglkni9jr2dmm3")))) (build-system gnu-build-system) ;; FIXME: ;; use libcurl: no @@ -300,19 +300,19 @@ reading and editing of existing PDF files.") (assoc-ref %build-inputs "freetype") "/include/freetype2")) #:phases - (alist-replace - 'install - (lambda* (#:key outputs inputs #:allow-other-keys #:rest args) - (let* ((install (assoc-ref %standard-phases 'install)) - (out (assoc-ref outputs "out")) - (xpdfrc (string-append out "/etc/xpdfrc")) - (gs-fonts (assoc-ref inputs "gs-fonts"))) - (apply install args) - (substitute* xpdfrc + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs inputs #:allow-other-keys #:rest args) + (let* ((install (assoc-ref %standard-phases 'install)) + (out (assoc-ref outputs "out")) + (xpdfrc (string-append out "/etc/xpdfrc")) + (gs-fonts (assoc-ref inputs "gs-fonts"))) + (apply install args) + (substitute* xpdfrc (("/usr/local/share/ghostscript/fonts") (string-append gs-fonts "/share/fonts/type1/ghostscript")) - (("#fontFile") "fontFile")))) - %standard-phases))) + (("#fontFile") "fontFile"))) + #t))))) (synopsis "Viewer for PDF files based on the Motif toolkit") (description "Xpdf is a viewer for Portable Document Format (PDF) files.") @@ -343,7 +343,7 @@ reading and editing of existing PDF files.") "CC=gcc") #:tests? #f ; Package does not contain tests. #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases (delete 'configure)))) (home-page "https://pwmt.org/projects/zathura-cb/") (synopsis "Comic book support for zathura (libarchive backend)") (description "The zathura-cb plugin adds comic book support to zathura @@ -374,7 +374,7 @@ using libarchive.") "CC=gcc") #:tests? #f ; Package does not contain tests. #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases (delete 'configure)))) (home-page "https://pwmt.org/projects/zathura-ps/") (synopsis "PS support for zathura (libspectre backend)") (description "The zathura-ps plugin adds PS support to zathura @@ -406,7 +406,7 @@ using libspectre.") "CC=gcc") #:tests? #f ; Package does not contain tests. #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases (delete 'configure)))) (home-page "https://pwmt.org/projects/zathura-djvu/") (synopsis "DjVu support for zathura (DjVuLibre backend)") (description "The zathura-djvu plugin adds DjVu support to zathura @@ -439,7 +439,7 @@ using the DjVuLibre library.") "CC=gcc") #:tests? #f ; Package does not include tests. #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases (delete 'configure)))) (home-page "https://pwmt.org/projects/zathura-pdf-poppler/") (synopsis "PDF support for zathura (poppler backend)") (description "The zathura-pdf-poppler plugin adds PDF support to zathura @@ -477,7 +477,7 @@ by using the poppler rendering engine.") #:tests? #f ; Tests fail: "Gtk cannot open display". #:test-target "test" #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases (delete 'configure)))) (home-page "https://pwmt.org/projects/zathura/") (synopsis "Lightweight keyboard-driven PDF viewer") (description "Zathura is a customizable document viewer. It provides a @@ -510,14 +510,14 @@ interaction.") `(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON" "-DPODOFO_BUILD_STATIC=ON") #:phases - (alist-cons-before - 'configure 'patch - (lambda* (#:key inputs #:allow-other-keys) - (let ((freetype (assoc-ref inputs "freetype"))) - ;; Look for freetype include files in the correct place. - (substitute* "cmake/modules/FindFREETYPE.cmake" - (("/usr/local") freetype)))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'patch + (lambda* (#:key inputs #:allow-other-keys) + (let ((freetype (assoc-ref inputs "freetype"))) + ;; Look for freetype include files in the correct place. + (substitute* "cmake/modules/FindFREETYPE.cmake" + (("/usr/local") freetype))) + #t))))) (home-page "http://podofo.sourceforge.net") (synopsis "Tools to work with the PDF file format") (description @@ -763,12 +763,13 @@ the PDF pages.") "0bw224vb7jh0lrqaf4jgxk48xglvxs674qcpj5y0axyfbh896cfk")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-after - 'unpack 'patch-ldconfig - (lambda _ - (substitute* "mk/Autoconf.mk" - (("/sbin/ldconfig -p") "echo lib")) #t) - (alist-delete 'configure %standard-phases)) + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-ldconfig + (lambda _ + (substitute* "mk/Autoconf.mk" + (("/sbin/ldconfig -p") "echo lib")) #t)) + (delete 'configure)) #:tests? #f #:make-flags (list "CC=gcc" (string-append "prefix=" (assoc-ref %outputs "out"))))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index f0f98b278a..8a765e409b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3166,11 +3166,9 @@ at the end of the scope.") (build-system perl-build-system) (arguments `(#:phases - (alist-cons-after - 'unpack 'cd - (lambda* _ - (chdir "List")) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'cd + (lambda _ (chdir "List") #t))))) (license (package-license perl)) (synopsis "Perl extension for crawling directory trees and compiling lists of files") @@ -7342,16 +7340,17 @@ contents of a file is equal to a particular string.") "0chiqnzmna2mglm37nzxvn9qhq2j31iwz3i9isqjs7bf3k449gb9")))) (build-system perl-build-system) (arguments - `(#:phases (alist-cons-before - 'check 'patch-test - (lambda* (#:key inputs #:allow-other-keys) - ;; This test looks for "#!/usr/bin/perl" in some source. - ;; Patch what the test looks for. - (substitute* "t/source.t" - (("#!/usr/bin/perl") - (string-append "#!" (assoc-ref inputs "perl") - "/bin/perl")))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-test + (lambda* (#:key inputs #:allow-other-keys) + ;; This test looks for "#!/usr/bin/perl" in some source. + ;; Patch what the test looks for. + (substitute* "t/source.t" + (("#!/usr/bin/perl") + (string-append "#!" (assoc-ref inputs "perl") + "/bin/perl"))) + #t))))) (home-page "http://search.cpan.org/dist/Test-Harness") (synopsis "Run Perl standard test scripts with statistics") (description "Simple test harness which allows tests to be run and results @@ -8885,6 +8884,31 @@ YAML-style files, written with as little code as possible, reducing load time and memory overhead.") (license (package-license perl)))) +(define-public perl-parse-recdescent + (package + (name "perl-parse-recdescent") + (version "1.967015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/J/JT/JTBRAUN/Parse-RecDescent-" + version + ".tar.gz")) + (sha256 + (base32 + "0dvfcn2xvj9r4ra5xqgasl847nsm1iy85w1kly41fkxm9im36hqr")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page + "http://search.cpan.org/dist/Parse-RecDescent") + (synopsis "Generate recursive-descent parsers") + (description + "@code{Parse::RecDescent} can incrementally generate top-down +recursive-descent text parsers from simple yacc-like grammar specifications.") + (license perl-license))) + (define-public perl-parse-yapp (package (name "perl-parse-yapp") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 410d23a6ab..8862bdfcb9 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -152,13 +152,14 @@ from digital cameras.") ("libexif" ,libexif) ("libgphoto2" ,libgphoto2))) (arguments - '(#:phases (alist-cons-before - 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - (substitute* (find-files "tests/data" "\\.param$") - (("/usr/bin/env") - (which "env")))) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "tests/data" "\\.param$") + (("/usr/bin/env") + (which "env"))) + #t))) ;; FIXME: There are 2 test failures, most likely related to the build ;; environment. diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm index 4978ea7290..9c125dcc4f 100644 --- a/gnu/packages/popt.scm +++ b/gnu/packages/popt.scm @@ -66,14 +66,15 @@ line syntax.") "1j2c61nn2n351nhj4d25mnf3vpiddcykq005w2h6kw79dwlysa77")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'configure 'patch-test - (lambda _ - (substitute* "test-poptrc.in" - (("/bin/echo") (which "echo"))) - (substitute* "testit.sh" ; don't expect old libtool names - (("lt-test1") "test1"))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-test + (lambda _ + (substitute* "test-poptrc.in" + (("/bin/echo") (which "echo"))) + (substitute* "testit.sh" ; don't expect old libtool names + (("lt-test1") "test1")) + #t))))) (home-page "http://rpm5.org/files/popt/") (synopsis "Command line option parsing library") (description diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 9de2819749..e971930035 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -205,22 +205,23 @@ to @code{IOStreams}.") (list (string-append "--with-boost=" (assoc-ref %build-inputs "boost"))) #:parallel-tests? #f ;There appear to be race conditions - #:phases (alist-cons-before - 'check 'patch-test-files - (lambda _ - ;; Unpatch shebangs in test input so that source-highlight - ;; is still able to infer input language - (substitute* '("tests/test.sh" - "tests/test2.sh" - "tests/test.tcl") - (((string-append "#! *" (which "sh"))) "#!/bin/sh")) - ;; Initial patching unrecoverably removes whitespace, so - ;; remove it also in the comparison output. - (substitute* '("tests/test.sh.html" - "tests/test2.sh.html" - "tests/test.tcl.html") - (("#! */bin/sh") "#!/bin/sh"))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'patch-test-files + (lambda _ + ;; Unpatch shebangs in test input so that source-highlight + ;; is still able to infer input language + (substitute* '("tests/test.sh" + "tests/test2.sh" + "tests/test.tcl") + (((string-append "#! *" (which "sh"))) "#!/bin/sh")) + ;; Initial patching unrecoverably removes whitespace, so + ;; remove it also in the comparison output. + (substitute* '("tests/test.sh.html" + "tests/test2.sh.html" + "tests/test.tcl.html") + (("#! */bin/sh") "#!/bin/sh")) + #t))))) (home-page "https://www.gnu.org/software/src-highlite/") (synopsis "Produce a document with syntax highlighting from a source file") (description @@ -292,22 +293,22 @@ highlighting. Language definitions and color themes are customizable.") #:make-flags (list (string-append "prefix=" %output) "INSTALL=install" "all") - #:phases (alist-replace - 'configure - (lambda _ (chdir "build/gcc")) - (alist-cons-after - 'install 'install-libs - (lambda* (#:key outputs #:allow-other-keys) - ;; Libraries are not installed by default - (let* ((output (assoc-ref outputs "out")) - (libdir (string-append output "/lib"))) - (begin - (mkdir-p libdir) - (for-each (lambda (l) - (copy-file - l (string-append libdir "/" (basename l)))) - (find-files "bin" "lib*"))))) - %standard-phases)))) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (chdir "build/gcc") #t)) + (add-after 'install 'install-libs + (lambda* (#:key outputs #:allow-other-keys) + ;; Libraries are not installed by default + (let* ((output (assoc-ref outputs "out")) + (libdir (string-append output "/lib"))) + (begin + (mkdir-p libdir) + (for-each (lambda (l) + (copy-file + l (string-append libdir "/" (basename l)))) + (find-files "bin" "lib*")))) + #t))))) (home-page "http://astyle.sourceforge.net/") (synopsis "Source code indenter, formatter, and beautifier") (description diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm new file mode 100644 index 0000000000..4fdf260c67 --- /dev/null +++ b/gnu/packages/profiling.scm @@ -0,0 +1,399 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Dave Love +;;; +;;; 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 . + +(define-module (gnu packages profiling) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) ;for "which" + #:use-module (gnu packages bison) + #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) + #:use-module (gnu packages fabric-management) + #:use-module (gnu packages flex) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) + #:use-module (gnu packages libunwind) + #:use-module (gnu packages linux) + #:use-module (gnu packages mpi) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages qt)) + +;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm +;; output(?); build libmsr and add that component. +(define-public papi + (package + (name "papi") + (version "5.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://icl.utk.edu/projects/papi/downloads/papi-" + version ".tar.gz")) + (sha256 (base32 "1m62s8fkjjgq04ayf18jcxc33rqfd7nrkdw1gr54q5pn4cijrp29")))) + (build-system gnu-build-system) + (inputs + `(("ncurses" ,ncurses) + ("lm-sensors" ,lm-sensors "lib") + ("rdma-core" ,rdma-core) + ("infiniband-diags" ,infiniband-diags "lib") + ("net-tools" ,net-tools))) + (native-inputs + `(("autoconf" ,autoconf) + ("gfortran" ,gfortran))) + (arguments + '(#:tests? #f ; no check target + #:configure-flags + ;; These are roughly per Fedora, but elide mx (assumed to be dead, even + ;; Open-MX) and add and powercap -- I don't know the pros/cons of + ;; infiniband and infiniband_mad, but you can't use them together, and + ;; the umad version needs at least one patch. + ;; Implicit enabled components: perf_event perf_event_uncore + `("--with-perf-events" "--with-shared-lib=yes" "--with-shlib" + "--with-static-lib=no" + "--with-components=appio coretemp example lustre micpower net rapl \ +stealtime lmsensors infiniband powercap" + ;; So utils get rpath set correctly: + ,(string-append "LDFLAGS=-Xlinker -rpath -Xlinker " + (assoc-ref %outputs "out") "/lib")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (chdir "src") + (zero? (system* "autoconf")))) + ;; Amalgamating with the following clause gives double substitution. + (add-before 'patch-source-shebangs 'patch-components + (lambda _ + (with-directory-excursion "src/components" + (substitute* '("lmsensors/configure" "infiniband_umad/configure") + (("/bin/sh") (which "sh")))) + #t)) + (add-after 'configure 'components + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "components" + (and + (with-directory-excursion "infiniband_umad" + (zero? (system* "./configure"))) + (with-directory-excursion "lmsensors" + (let ((base (assoc-ref inputs "lm-sensors"))) + (zero? + (system* + "./configure" + (string-append "--with-sensors_incdir=" base + "/include/sensors") + (string-append "--with-sensors_libdir=" base "/lib"))))))))) + (add-after 'install 'extra-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "out") + "/share/doc"))) + (mkdir-p doc) + (chdir "..") ; we went into src above + (for-each (lambda (file) + (install-file file doc)) + '("README" "RELEASENOTES.txt" "LICENSE.txt")) + #t)))))) + (home-page "http://icl.cs.utk.edu/papi/") + (synopsis "Performance Application Programming Interface") + (description + "PAPI provides the tool designer and application engineer with a consistent +interface and methodology for use of the performance counter hardware found in +most major microprocessors. PAPI enables software engineers to see, in near +real time, the relation between software performance and processor events. + +In addition, PAPI provides access to a collection of components that expose +performance measurement opportunites across the hardware and software stack.") + ;; See Debian papi copyright file. + (license (list license:bsd-3 + license:lgpl2.1+ ;src/components/infiniband/pscanf.h + ;; not used in output + license:gpl2+ ;src/components/appio/tests/iozone/gengnuplot.sh + ;src/libpfm-3.y/*/multiplex* + ;; "BSD-like": src/libpfm-3.y/*, src/libpfm4/* + ;; lgpl2.1+: src/perfctr-2.*/* + )))) + +;; NB. there's a potential name clash with libotf. +(define-public otf2 + (package + (name "otf2") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.vi-hps.org/upload/packages/otf2/otf2-" + version ".tar.gz")) + (sha256 (base32 "1lyaqhdfaqm1kd23yk71g71vkscw83s7m57j017y768h8sh8xlwa")))) + (native-inputs `(("python" ,python))) + (outputs '("doc" ; 18MB + "lib" + "out")) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-shared" "--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'install 'licence + (lambda* (#:key outputs #:allow-other-keys) + (for-each (lambda (output) + (let ((doc (string-append (assoc-ref outputs output) + "/share/doc/otf2"))) + (install-file "COPYING" doc))) + '("lib" "doc")) + #t))))) + (home-page "http://www.vi-hps.org/projects/score-p/") + (synopsis "Open Trace Format 2 library") + (description "The Open Trace Format 2 (OTF2) is a scalable, memory +efficient event trace data format plus support library.") + (license license:bsd-3))) + +(define-public opari2 + (package + (name "opari2") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (let* ((parts (string-split version #\.) ) + (major (car parts)) + (minor (cadr parts))) + (string-append "http://www.vi-hps.org/upload/packages/opari2/opari2-" + version ".tar.gz"))) + (sha256 (base32 "1ph8l5c646bm9l5vcn8rrbjvkyi7y8yvn2ny95r6kmlzs766g3q8")))) + (build-system gnu-build-system) + (inputs `(("gfortran" ,gfortran))) + (native-inputs `(("gawk" ,gawk) ;for tests + ("which" ,which))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'licence + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "out") + "/share/doc/opari2"))) + (install-file "COPYING" doc) + #t)))))) + (home-page "http://www.vi-hps.org/projects/score-p") + (synopsis "OpenMP runtime performance measurement instrumenter") + (description "OPARI2 is a source-to-source instrumentation tool for OpenMP +and hybrid codes. It surrounds OpenMP directives and runtime library calls +with calls to the POMP2 measurement interface.") + (license license:bsd-3))) + +(define-public cube + (package + (name "cube") + (version "4.3.5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-" + version ".tar.gz")) + (sha256 (base32 "04irflia4rfw02093w9nx7rr98r640y4q8hisjywvd4b7r3nzhhx")) + (patches (search-patches "cube-nocheck.patch")))) + (inputs `(("dbus" ,dbus) + ("zlib" ,zlib))) + (native-inputs `(("perl" ,perl) + ("qtbase" ,qtbase) ; native because of qmake + ("which" ,which))) + + ;; FIXME: The doc is 14MB, but adding a doc output results in a cycle. + (outputs '("out" ;"doc" + "lib")) + + (build-system gnu-build-system) + (arguments + `(#:configure-flags + `("--enable-shared" "--disable-static" "--disable-silent-rules" + ,(string-append "LDFLAGS=-L" (assoc-ref %outputs "lib") "/lib")) + #:parallel-tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'configure 'rpath + ;; Account for moving GUI stuff + (lambda* (#:key outputs #:allow-other-keys) + (let ((wl (string-append "-Wl,-rpath=" (assoc-ref outputs "out") + "/lib"))) + (substitute* "build-backend/Makefile" + (("^cube_LDFLAGS =") (string-append "cube_LDFLAGS = " wl)) + (("^libheatmap_plugin_la_LDFLAGS =") + (string-append "libheatmap_plugin_la_LDFLAGS = " wl)) + (("^libbarplot_plugin_la_LDFLAGS =") + (string-append "libbarplot_plugin_la_LDFLAGS = " wl))) + #t))) + (add-before 'install 'includes-cube + ;; It tries to install here before include exists. + (lambda* (#:key outputs #:allow-other-keys) + (let ((inc (string-append (assoc-ref outputs "lib") "/include"))) + (mkdir-p (string-append inc "/cube")) + (mkdir-p (string-append inc "/cubew")) + #t))) + (add-after 'install 'licence + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "lib") + "/share/doc/cube"))) + (install-file "COPYING" doc) + #t))) + ;; XXX: Commented due to cycle (see comment above.) + ;; (add-after 'install 'doc + ;; (lambda _ + ;; (let ((share (string-append (assoc-ref %outputs "doc") + ;; "/share"))) + ;; (mkdir-p share) + ;; (rename-file (string-append %output "/share/doc") + ;; (string-append share "/doc"))))) + (add-after 'install 'gui-stuff + ;; Get the Qt horror dependencies out of the lib closure + (lambda _ + (let ((outlib (string-append (assoc-ref %outputs "out") "/lib")) + (lib (string-append (assoc-ref %outputs "lib") "/lib"))) + (mkdir-p outlib) + (rename-file (string-append lib "/cube-plugins") + (string-append outlib "/cube-plugins")) + (for-each (lambda (file) + (rename-file + file (string-append outlib "/" (basename file)))) + (append (find-files lib "libgraphwidgetcommon-plugin\\..*") + (find-files lib "libcube4gui\\.so.*"))) + #t))) + (add-after 'install 'move-include + ;; Most of the headers end up under %output for some reason, + ;; despite --includedir in configure. + (lambda* (#:key outputs #:allow-other-keys) + (let ((outinc (string-append (assoc-ref outputs "out") + "/include")) + (libinc (string-append (assoc-ref outputs "lib") + "/include"))) + (for-each (lambda (file) + (let ((from (string-append outinc "/" file))) + (copy-recursively from libinc) + (delete-file-recursively from))) + '("cube" "cubew")) + #t))) + + ;; XXX: This doesn't work because cube-config, which is needed for + ;; building stuff, sources cube-config-frontend. We don't want that + ;; in the lib output because it pulls in >1GB via QT. + ;; + ;; (add-after 'install 'cube-config + ;; (lambda _ + ;; (let* ((lib (assoc-ref %outputs "lib")) + ;; (libbin (string-append lib "/bin"))) + ;; (mkdir-p libbin) + ;; (system (string-append "mv " (assoc-ref %outputs "out") + ;; "/bin/cube-config* " libbin)) + ;; (substitute* (list (string-append libbin "/cube-config")) + ;; (("^prefix=.*") (string-append "prefix=" lib)) + ;; (("^exec_prefix=\"\\$\\{prefix\\}\"") + ;; (string-append "exec_prefix=" lib)))))) + (add-after 'install 'cube-config + (lambda* (#:key outputs #:allow-other-keys) + (let* ((lib (assoc-ref outputs "lib")) + (libbin (string-append lib "/bin"))) + (mkdir-p libbin) + (install-file (string-append %output "/bin/cube-config") libbin) + (install-file (string-append %output "/bin/cube-config-backend") + libbin) + (substitute* (list (string-append libbin "/cube-config")) + (("^source .*frontend.*$") "") + (((assoc-ref outputs "out")) lib)) + #t)))))) + (home-page "http://www.scalasca.org/software/cube-4.x/download.html") + (synopsis "Performance report explorer for parallel programs") + (description + "CUBE (CUBE Uniform Behavioral Encoding) is a tool to display a variety +of performance metrics for parallel programs including MPI and OpenMP +applications. CUBE allows interactive exploration of a multidimensional +performance space in a scalable fashion. Scalability is achieved in two ways: +hierarchical decomposition of individual dimensions and aggregation across +different dimensions. All performance metrics are uniformly accommodated in +the same display and thus provide the ability to easily compare the effects of +different kinds of performance behavior.") + (license license:bsd-3))) + +(define (make-scorep mpi) + (package + (name (string-append "scorep-" (package-name mpi))) + (version "3.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.vi-hps.org/upload/packages/scorep/scorep-" + version ".tar.gz")) + (sha256 + (base32 + "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9")) + (modules '((guix build utils))) + (snippet + ;; Remove bundled software. + '(for-each delete-file-recursively + '("vendor/opari2" "vendor/cube"))))) + (build-system gnu-build-system) + (inputs + `(("mpi" ,mpi) + ("papi" ,papi) + ("opari2" ,opari2) + ("libunwind" ,libunwind) + ("otf2" ,otf2) + ("cubelib" ,cube "lib") ;for lib, include + ("openmpi" ,openmpi) + ("zlib" ,zlib))) + (native-inputs + `(("gfortran" ,gfortran) + ("flex" ,flex) + ("cube" ,cube) ;for cube-config + ("bison" ,bison) + ("python" ,python) + ("doxygen" ,doxygen) + ("which" ,which))) + (arguments + `(#:configure-flags + (list "--enable-shared" "--disable-static" + (string-append "--with-opari2=" + (assoc-ref %build-inputs "opari2")) + (string-append "--with-cube=" + (assoc-ref %build-inputs "cube"))) + #:parallel-tests? #f + #:make-flags '("V=1") + #:phases + (modify-phases %standard-phases + (add-after 'install 'licence + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "out") + "/share/doc/scorep"))) + (install-file "COPYING" doc) + #t)))))) + (home-page "http://www.vi-hps.org/projects/score-p/") + (synopsis "Performance measurement infrastructure for parallel code") + (description + "The Score-P (Scalable Performance Measurement Infrastructure for +Parallel Codes) measurement infrastructure is a scalable and easy-to-use tool +suite for profiling, event trace recording, and online analysis of +high-performance computing (HPC) applications.") + (license license:cpl1.0))) + +(define-public scorep-openmpi (make-scorep openmpi)) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 846c174fa7..21753cf3fa 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -27,6 +27,7 @@ #:use-module (guix download) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) @@ -119,7 +120,7 @@ rates.") (define-public pulseaudio (package (name "pulseaudio") - (version "10.0") + (version "11.0") (source (origin (method url-fetch) (uri (string-append @@ -127,7 +128,7 @@ rates.") name "-" version ".tar.xz")) (sha256 (base32 - "0mrg8qvpwm4ifarzphl3749p7p050kdx1l6mvsaj03czvqj6h653")) + "0sf92knqkvqmfhrbz4vlsagzqlps72wycpmln5dygicg07a0a8q7")) (modules '((guix build utils))) (snippet ;; Disable console-kit support by default since it's deprecated @@ -259,3 +260,33 @@ easily control the volume of all clients, sinks, etc.") command-line interface. In addition, it is possible to use named sources and sinks.") (license l:expat))) + +(define-public pulsemixer + (package + (name "pulsemixer") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/GeorgeFilipkin/" + "pulsemixer/archive/" version ".tar.gz")) + (sha256 + (base32 + "03c94313fhxd5sbkl2ajzb2gmmm4hpv7m5rkbxmahwg9s8ih824r")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((pulse (assoc-ref inputs "pulseaudio"))) + (substitute* "pulsemixer" + (("libpulse.so.0") + (string-append pulse "/lib/libpulse.so.0"))) + #t)))))) + (inputs + `(("pulseaudio" ,pulseaudio))) + (home-page "https://github.com/GeorgeFilipkin/pulsemixer/") + (synopsis "Command-line and curses mixer for PulseAudio") + (description "Pulsemixer is a PulseAudio mixer with command-line and +curses-style interfaces.") + (license l:expat))) diff --git a/gnu/packages/pumpio.scm b/gnu/packages/pumpio.scm index a74d474368..e89418b6b1 100644 --- a/gnu/packages/pumpio.scm +++ b/gnu/packages/pumpio.scm @@ -42,22 +42,23 @@ (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Fix dependency tests. - (substitute* "pumpa.pro" - (("/usr/include/tidy\\.h") - (string-append (assoc-ref inputs "tidy") - "/include/tidy.h")) - (("/usr/include/aspell.h") - (string-append (assoc-ref inputs "aspell") - "/include/aspell.h"))) - ;; Run qmake with proper installation prefix. - (let ((prefix (string-append "PREFIX=" - (assoc-ref outputs "out")))) - (zero? (system* "qmake" prefix)))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Fix dependency tests. + (substitute* "pumpa.pro" + (("/usr/include/tidy\\.h") + (string-append (assoc-ref inputs "tidy") + "/include/tidy.h")) + (("/usr/include/aspell.h") + (string-append (assoc-ref inputs "aspell") + "/include/aspell.h"))) + ;; Run qmake with proper installation prefix. + (let ((prefix (string-append "PREFIX=" + (assoc-ref outputs "out")))) + (zero? (system* "qmake" prefix))) + #t))))) (inputs `(("aspell" ,aspell) ("qtbase" ,qtbase) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f1dc2da050..3f1328ddf0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -485,11 +485,10 @@ pidof, tty, taskset, pmap.") `(("python-py-bcrypt" ,python-py-bcrypt))) (arguments `(#:phases - (alist-cons-before - 'check 'set-PYTHON_EGG_CACHE - ;; some tests require access to "$HOME/.cython" - (lambda* _ (setenv "PYTHON_EGG_CACHE" "/tmp")) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'check 'set-PYTHON_EGG_CACHE + ;; some tests require access to "$HOME/.cython" + (lambda* _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t))))) (home-page "https://bitbucket.org/ecollins/passlib") (synopsis "Comprehensive password hashing framework") @@ -1079,12 +1078,10 @@ multiple Unicode code points, e.g. \"G\" + acute-accent) ("gmp" ,gmp))) (arguments `(#:phases - (alist-cons-before - 'build 'set-build-env - ;; pycrypto runs an autoconf configure script behind the scenes - (lambda _ - (setenv "CONFIG_SHELL" (which "bash"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'build 'set-build-env + ;; pycrypto runs an autoconf configure script behind the scenes + (lambda _ (setenv "CONFIG_SHELL" (which "bash")) #t))))) (home-page "http://www.pycrypto.org/") (synopsis "Cryptographic modules for Python") (description @@ -1496,11 +1493,11 @@ other Python program.") (build-system python-build-system) (arguments `(#:python ,python-2 - #:phases (alist-replace - 'check - (lambda _ - (zero? (system* "./test.sh"))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "./test.sh"))))))) (home-page "http://www.alcyone.com/software/empy/") (synopsis "Templating system for Python") (description @@ -1843,7 +1840,7 @@ standard library.") (define-public python2-unittest2 (package (inherit python-unittest2) (name "python2-unittest2") - (version "0.5.1") + (version "1.1.0") (source (origin (method url-fetch) @@ -1852,7 +1849,12 @@ standard library.") version ".tar.gz")) (sha256 (base32 - "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda")))) + "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212")) + (patches + (search-patches "python2-unittest2-remove-argparse.patch")))) + (propagated-inputs + `(("python2-six" ,python2-six) + ("python2-traceback2" ,python2-traceback2))) (arguments `(#:python ,python-2 #:tests? #f)))) ; no setup.py test command @@ -3390,6 +3392,30 @@ sources.") (define-public python2-sphinx-rtd-theme (package-with-python2 python-sphinx-rtd-theme)) +(define-public python-guzzle-sphinx-theme + (package + (name "python-guzzle-sphinx-theme") + (version "0.7.11") + (source + (origin + (method url-fetch) + (uri (pypi-uri "guzzle_sphinx_theme" version)) + (sha256 + (base32 + "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v")))) + (build-system python-build-system) + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/guzzle/guzzle_sphinx_theme") + (synopsis "Sphinx theme used by Guzzle") + (description "This package provides guzzle_sphinx_theme, a theme for the +Sphinx documentation system, used by @uref{http://docs.guzzlephp.org, Guzzle} +and several other projects.") + (license license:expat))) + +(define-public python2-guzzle-sphinx-theme + (package-with-python2 python-guzzle-sphinx-theme)) + (define-public python-rst.linker (package (name "python-rst.linker") @@ -3717,24 +3743,27 @@ producing implementations of dynamic languages, emphasizing a clean separation between language specification and implementation aspects.") (license license:expat))) +;; NOTE: when upgrading numpy please make sure that python-pandas and +;; python-scipy still build, as these three packages are often used together. (define-public python-numpy (package (name "python-numpy") - (version "1.13.1") + (version "1.12.0") (source (origin (method url-fetch) - (uri (pypi-uri "numpy" version ".zip")) + (uri (string-append + "https://github.com/numpy/numpy/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1fsgkhh1vdkhmlz8vmdgxnj9n9yaanckxxzz9s0b4p08fqvjic69")))) + "025d4j4aakcp8w5i5diqh812cbbjgac7jszx1j56ivrbi1i8vv7d")))) (build-system python-build-system) (inputs `(("openblas" ,openblas) ("lapack" ,lapack))) (native-inputs - `(("unzip" ,unzip) - ("python-cython" ,python-cython) + `(("python-cython" ,python-cython) ("python-nose" ,python-nose) ("gfortran" ,gfortran))) (arguments @@ -3742,8 +3771,6 @@ between language specification and implementation aspects.") (modify-phases %standard-phases (add-before 'build 'set-environment-variables (lambda* (#:key inputs #:allow-other-keys) - ;; numpy's distutils uses $SHELL to run external commands. - (setenv "SHELL" "bash") (call-with-output-file "site.cfg" (lambda (port) (format port @@ -3762,6 +3789,11 @@ include_dirs = ~a/include (assoc-ref inputs "openblas") (assoc-ref inputs "lapack") (assoc-ref inputs "lapack")))) + ;; Make /gnu/store/...-bash-.../bin/sh the default shell, instead of + ;; /bin/sh. + (substitute* "numpy/distutils/exec_command.py" + (("(os.environ.get\\('SHELL', ')(/bin/sh'\\))" match match-start match-end) + (string-append match-start (assoc-ref inputs "bash") match-end))) ;; Use "gcc" executable, not "cc". (substitute* "numpy/distutils/system_info.py" (("c = distutils\\.ccompiler\\.new_compiler\\(\\)") @@ -3789,6 +3821,26 @@ capabilities.") (define-public python2-numpy (package-with-python2 python-numpy)) +(define-public python-numpy-next + (package (inherit python-numpy) + (name "python-numpy-next") + (version "1.13.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "numpy" version ".zip")) + (sha256 + (base32 + "1fsgkhh1vdkhmlz8vmdgxnj9n9yaanckxxzz9s0b4p08fqvjic69")))) + (native-inputs + `(("unzip" ,unzip) + ("python-cython" ,python-cython) + ("python-nose" ,python-nose) + ("gfortran" ,gfortran))))) + +(define-public python2-numpy-next + (package-with-python2 python-numpy-next)) + (define-public python-munch (package (name "python-munch") @@ -4139,14 +4191,14 @@ that client code uses to construct the grammar directly in Python code.") (define-public python-numexpr (package (name "python-numexpr") - (version "2.6.1") + (version "2.6.4") (source (origin (method url-fetch) (uri (pypi-uri "numexpr" version)) (sha256 (base32 - "01lsja72m32z0i5p8rwxbfyzk4mplh72k2a140nwh8vv4wpyfbnv")))) + "1kpnbb5d5n927113zccfibn16z7gidjipyac6kbbhzs0lnizkgph")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests included (propagated-inputs @@ -4666,10 +4718,10 @@ as the original project seems to have been abandoned circa 2007.") ("python-pytest" ,python-pytest) ("python-mock" ,python-mock))) ;for tests (arguments - `(#:phases (alist-replace - 'check - (lambda _ (zero? (system* "py.test"))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ (zero? (system* "py.test"))))))) (home-page "http://www.sqlalchemy.org") (synopsis "Database abstraction library") (description @@ -4876,20 +4928,21 @@ You might also want to install the following optional dependencies: (define-public python-alembic (package (name "python-alembic") - (version "0.8.10") + (version "0.9.5") (source (origin (method url-fetch) (uri (pypi-uri "alembic" version)) (sha256 (base32 - "06br9sfqypnjlal6fsbnky3zb0askwcn3diz8k3kwa0qcblm0fqf")))) + "01gx2syqbaxh4hr9pf7pxhlb6p36qaf99140dy19lsx1paxb9p4b")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) ("python-pytest-cov" ,python-pytest-cov))) (propagated-inputs - `(("python-sqlalchemy" ,python-sqlalchemy) + `(("python-dateutil" ,python-dateutil) + ("python-sqlalchemy" ,python-sqlalchemy) ("python-mako" ,python-mako) ("python-editor" ,python-editor))) (home-page "http://bitbucket.org/zzzeek/alembic") @@ -4906,17 +4959,17 @@ SQLAlchemy Database Toolkit for Python.") (define-public python-autopep8 (package (name "python-autopep8") - (version "1.2.4") + (version "1.3.2") (source (origin (method url-fetch) (uri (pypi-uri "autopep8" version)) (sha256 (base32 - "18parm383lfn42a00wklv3qf20p4v277f1x3cn58x019dqk1xqrq")))) + "1p9pa1ffg4iy96l918808jggg9a69iaka5awmj8xid36yc5mk0ky")))) (build-system python-build-system) (propagated-inputs - `(("python-pep8" ,python-pep8))) + `(("python-pycodestyle" ,python-pycodestyle))) (home-page "https://github.com/hhatto/autopep8") (synopsis "Format Python code according to the PEP 8 style guide") (description @@ -7520,10 +7573,7 @@ reading and writing MessagePack data.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/n/netaddr/netaddr-" - version - ".tar.gz")) + (uri (pypi-uri "netaddr" version)) (sha256 (base32 "1zdfadvpq4lmcqzr383gywxn4xyn355kj1n3lk9q2l03vmyfrbiq")))) @@ -8583,10 +8633,10 @@ automatically detect a wide range of file encodings.") (native-inputs `(("python-pytest" ,python-pytest))) (arguments - `(#:phases (alist-replace - 'check - (lambda _ (zero? (system* "py.test"))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ (zero? (system* "py.test"))))))) (home-page "http://docopt.org") (synopsis "Command-line interface description language for Python") (description "This library allows the user to define a command-line @@ -9243,16 +9293,13 @@ for atomic file system operations.") (define-public python-requests-toolbelt (package (name "python-requests-toolbelt") - (version "0.6.2") + (version "0.8.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/" - "e1/a4/a94c037bc72ad70441aff1403d3243510d2542ddca7759faaeffeb11aefe/" - "requests-toolbelt-" version ".tar.gz")) + (uri (pypi-uri "requests-toolbelt" version)) (sha256 (base32 - "15q9nrgp85nqlr4kdz1zvj8z2npafi2sr12y7fqgxbkq28j1aci6")))) + "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn")))) (build-system python-build-system) (native-inputs `(("python-betamax" ,python-betamax) @@ -9266,6 +9313,9 @@ with python-requests.") (home-page "https://github.com/sigmavirus24/requests-toolbelt") (license license:asl2.0))) +(define-public python2-requests-toolbelt + (package-with-python2 python-requests-toolbelt)) + (define-public python-click-threading (package (name "python-click-threading") @@ -9840,10 +9890,11 @@ concurrent.futures package from Python 3.2") ("python-mock" ,python-mock) ("python-tornado" ,python-tornado))) (propagated-inputs - `(;; extra packages for https security + `(;; These 5 inputs are used to build urrlib3[secure] ("python-certifi" ,python-certifi) - ("python-ndg-httpsclient" ,python-ndg-httpsclient) - ("python-pyasn1" ,python-pyasn1) + ("python-cryptography" ,python-cryptography) ; + ("python-idna" ,python-idna) + ("python-ipaddress" ,python-ipaddress) ("python-pyopenssl" ,python-pyopenssl))) (home-page "https://urllib3.readthedocs.org/") (synopsis "HTTP library with thread-safe connection pooling") @@ -9926,14 +9977,14 @@ Pytest but stripped of Pytest specific details.") (define-public python-tox (package (name "python-tox") - (version "2.8.0") + (version "2.8.1") (source (origin (method url-fetch) (uri (pypi-uri "tox" version)) (sha256 (base32 - "00lrql2cfzhb712v70inac6mrgdv8s8fmvz7qpggkk623hkm2pgc")))) + "1drp6mwm8wdypjym15ia8lwjxbhcksb9vzxg4ay5dh4ji57by2ny")))) (build-system python-build-system) (arguments ;; FIXME: Tests require pytest-timeout, which itself requires @@ -10020,14 +10071,14 @@ interface to the Amazon Web Services (AWS) API.") (define-public awscli (package (name "awscli") - (version "1.11.151") + (version "1.11.164") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0h6rirbfy0f9cxm7ikll0kr720dircfmxf2vslmhn4n325831wsp")))) + "05r8cw7i7ff6barpmyxxk3i52gzb1xyxwj8isynmiyqlmk3c9r8w")))) (build-system python-build-system) (propagated-inputs `(("python-colorama" ,python-colorama) @@ -11468,8 +11519,21 @@ to occurrences in strings and comments.") (base32 "0i283z1pivmir61z8kbiycigc94l61v33ygzkhczf1ifq7cppyds")))) (build-system python-build-system) + (inputs + `(("file" ,file))) (arguments - '(#:tests? #f)) ; TODO: Requires many libraries not in Guix. + '(#:phases + (modify-phases %standard-phases + ;; 'file' is used for detection of configuration file encoding + ;; let's make link the dependency to particular input + (add-before 'build 'patch-file-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((file-path (assoc-ref inputs "file"))) + (substitute* "py3status/parse_config.py" + (("check_output\\(\\['file'") + (string-append "check_output(['" file-path "/bin/file'"))) + #t)))) + #:tests? #f)) ; TODO: Requires many libraries not in Guix. (home-page "https://github.com/ultrabug/py3status") (synopsis "Extensible i3status wrapper written in Python") (description "py3status is an i3status wrapper which extends i3status @@ -11913,13 +11977,13 @@ objects, patterned after the Mocha library for Ruby.") (define-public python-arrow (package (name "python-arrow") - (version "0.8.0") + (version "0.10.0") (source (origin (method url-fetch) (uri (pypi-uri "arrow" version)) (sha256 (base32 - "1bz7hkdgpqcjs866y58z8jywpy7al0f4rxdr00bh2l5qddyw245j")))) + "08n7q2l69hlainds1byd4lxhwrq7zsw7s640zkqc3bs5jkq0cnc0")))) (build-system python-build-system) (native-inputs `(;; For testing @@ -13400,14 +13464,14 @@ useful as a validator for JSON data.") (define-public python-aniso8601 (package (name "python-aniso8601") - (version "1.1.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (pypi-uri "aniso8601" version)) (sha256 (base32 - "1k5mjg9iqbjfslb5prrsfz7dhlvi6s35p1jxq8dm87w1b7dn5i2g")))) + "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil))) @@ -13419,6 +13483,9 @@ useful as a validator for JSON data.") "This package contains a library for parsing ISO 8601 datetime strings.") (license license:bsd-3))) +(define-public python2-aniso8601 + (package-with-python2 python-aniso8601)) + (define-public python-flask-restful (package (name "python-flask-restful") @@ -15888,14 +15955,14 @@ complex datatypes to and from native Python datatypes.") (define-public python-apispec (package (name "python-apispec") - (version "0.22.0") + (version "0.25.3") (source (origin (method url-fetch) (uri (pypi-uri "apispec" version)) (sha256 (base32 - "0y3jxmgp2d24am3hxl40f5rw9abb0r8037sagax3dv64h4n1azwq")))) + "0kxa8723zbisx10363yh4mmmn4higxrspymbjfz5zq8f644zagm9")))) (build-system python-build-system) (propagated-inputs `(("python-pyyaml" ,python-pyyaml))) @@ -16302,3 +16369,200 @@ Templates.") (define-public python2-uritemplate (package-with-python2 python-uritemplate)) + +(define-public python-pydiff + (package + (name "python-pydiff") + (version "0.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pydiff" version)) + (sha256 + (base32 + "1als83h9w0gab24ipyna6khm390qmpnpkc5jksmdbs2xc8hp2z44")))) + (build-system python-build-system) + (home-page "https://github.com/myint/pydiff") + (synopsis "Library to diff two Python files at the bytecode level") + (description + "@code{pydiff} makes it easy to look for actual code changes while +ignoring formatting changes.") + (license license:expat))) + +(define-public python2-pydiff + (package-with-python2 python-pydiff)) + +(define-public python-nose-timer + (package + (name "python-nose-timer") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "nose-timer" version)) + (patches + (search-patches + ;; This patch will not be needed in the next version. + ;; It is taken from the master branch. + "python-nose-timer-drop-ordereddict.patch")) + (sha256 + (base32 + "1s32ymsnby8lz2qk55ifj9zi50dqcg6swnj5cz2rmwxg2jsslsxp")))) + (build-system python-build-system) + (propagated-inputs + `(("python-nose" ,python-nose) + ("python-termcolor" ,python-termcolor))) + (home-page "https://github.com/mahmoudimus/nose-timer") + (synopsis "Timer plugin for nosetests") + (description "Shows how much time was needed to run individual tests.") + (license license:expat))) + +(define-public python2-nose-timer + (package-with-python2 python-nose-timer)) + +(define-public python-tqdm + (package + (name "python-tqdm") + (version "4.15.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tqdm" version)) + (sha256 + (base32 + "0lwrmby8qz23gvqwkpivfrv4q8nfh90cz9ml6slwvwmcxxsdrhbf")))) + (build-system python-build-system) + (native-inputs + `(("python-flake8" ,python-flake8) + ("python-nose" ,python-nose) + ("python-nose-timer" ,python-nose-timer) + ("python-coverage" ,python-coverage) + ("python-virtualenv" ,python-virtualenv))) + (home-page "https://github.com/tqdm/tqdm") + (synopsis "Fast, extensible progress meter") + (description + "Make loops show a progress bar on the console by just wrapping any +iterable with @code{|tqdm(iterable)|}. Offers many options to define +design and layout.") + (license (list license:mpl2.0 license:expat)))) + +(define-public python2-tqdm + (package-with-python2 python-tqdm)) + +(define-public python-pkginfo + (package + (name "python-pkginfo") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pkginfo" version)) + (sha256 + (base32 + "17pqjfpq3c6xzdmk8pski6jcjgjv78q00zjf2bgzb668pzm6l6mv")))) + (build-system python-build-system) + (arguments + ;; The tests are broken upstream. + '(#:tests? #f)) + (home-page + "https://code.launchpad.net/~tseaver/pkginfo/trunk") + (synopsis + "Query metadatdata from sdists, bdists, and installed packages") + (description + "API to query the distutils metadata written in @file{PKG-INFO} inside a +source distriubtion (an sdist) or a binary distribution (e.g., created by +running bdist_egg). It can also query the EGG-INFO directory of an installed +distribution, and the *.egg-info stored in a \"development checkout\" (e.g, +created by running @code{python setup.py develop}).") + (license license:expat))) + +(define-public python2-pkginfo + (package-with-python2 python-pkginfo)) + +(define-public python-twine + (package + (name "python-twine") + (version "1.9.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "twine" version)) + (sha256 + (base32 + "1ay1b6kdq6k4bfbjsvf6ymj41wrgpvinhxndb09355pwhxwmp96a")))) + (build-system python-build-system) + (propagated-inputs + `(("python-tqdm" ,python-tqdm) + ("python-pkginfo", python-pkginfo) + ("python-requests" ,python-requests) + ("python-requests-toolbelt" ,python-requests-toolbelt))) + (home-page "https://github.com/pypa/twine") + (synopsis "Collection of utilities for interacting with PyPI") + (description + "@code{twine} currently supports registering projects and uploading +distributions. It authenticates the user over HTTPS, allows them to pre-sign +their files and supports any packaging format (including wheels).") + (license license:asl2.0))) + +(define-public python2-twine + (package-with-python2 python-twine)) + +(define-public python-linecache2 + (package + (name "python-linecache2") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "linecache2" version)) + (sha256 + (base32 + "0z79g3ds5wk2lvnqw0y2jpakjf32h95bd9zmnvp7dnqhf57gy9jb")))) + (build-system python-build-system) + (arguments + `(;; The tests depend on unittest2, and our version is a bit too old. + #:tests? #f)) + (native-inputs + `(("python-pbr" ,python-pbr))) + (home-page + "https://github.com/testing-cabal/linecache2") + (synopsis "Backports of the linecache module") + (description + "The linecache module allows one to get any line from any file, while +attempting to optimize internally, using a cache, the common case where many +lines are read from a single file.") + (license license:psfl))) + +(define-public python2-linecache2 + (package-with-python2 python-linecache2)) + +(define-public python-traceback2 + (package + (name "python-traceback2") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "traceback2" version)) + (sha256 + (base32 + "0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05")))) + (build-system python-build-system) + (arguments + `(;; python-traceback2 and python-unittest2 depend on one another. + #:tests? #f)) + (native-inputs + `(("python-pbr" ,python-pbr))) + (propagated-inputs + `(("python-linecache2" ,python-linecache2))) + (home-page + "https://github.com/testing-cabal/traceback2") + (synopsis "Backports of the traceback module") + (description + "This module provides a standard interface to extract, format and print +stack traces of Python programs. It exactly mimics the behavior of the Python +interpreter when it prints a stack trace.") + (license license:psfl))) + +(define-public python2-traceback2 + (package-with-python2 python-traceback2)) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index bc275ebb09..8edef9c703 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -353,7 +353,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package (name "qtbase") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -362,7 +362,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1ikm896jzyfyjv2qv8n3fd81sxb4y24zkygx36865ygzyvlj36mw")) + "16v0dny4rcyd5p8qsnsfg89w98k8kqk3rp9x3g3k7xjmi53bpqkz")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 @@ -389,7 +389,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("glib" ,glib) ("harfbuzz" ,harfbuzz) ("icu4c" ,icu4c) - ("libinput" ,libinput) + ("libinput" ,libinput-minimal) ("libjpeg" ,libjpeg) ("libmng" ,libmng) ("libpng" ,libpng) @@ -536,7 +536,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -545,7 +545,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1rg2q4snh2g4n93zmk995swwkl0ab1jr9ka9xpj56ddifkw99wlr")))) + "020icrl9vi8jh8ygsssqrx2bl8bx28m15dwmf9a969qdnvxyp5ms")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -574,12 +574,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") (lambda _ ;; make Qt render "offscreen", required for tests (setenv "QT_QPA_PLATFORM" "offscreen") - #t))))))) + #t))))) + (synopsis "Qt module for displaying SVGs") + (description "The QtSvg module provides classes for displaying the + contents of SVG files."))) (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -588,7 +591,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0iwa3dys5rv706cpxwhmgircv783pmlyl1yrsc5i0rha643y7zkr")) + "1wwxxcl24mk1p4w6knyfai09axmwqsm6cgsbkjsmdz3zmjh6qqis")) (modules '((guix build utils))) (snippet '(delete-file-recursively "src/3rdparty")))) @@ -600,12 +603,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("libwebp" ,libwebp) ("mesa" ,mesa) ("qtbase" ,qtbase) - ("zlib" ,zlib))))) + ("zlib" ,zlib))) + (synopsis "Additional Image Format plugins for Qt") + (description "The QtImageFormats module contains plugins for adding +support for MNG, TGA, TIFF and WBMP image formats."))) (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -614,19 +620,22 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "00fn3bps48gjyw0pdqvvl9scknxdpmacby6hvdrdccc3jll0wgd6")))) + "1ias745j5lfnrfkgyk0pr8n8zlkqs08gq7yyzaj1c645sh54b1fv")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl))) (inputs `(("mesa" ,mesa) - ("qtbase" ,qtbase))))) + ("qtbase" ,qtbase))) + (synopsis "Qt Extras for X11") + (description "The QtX11Extras module includes the library to access X11 +from within Qt 5."))) (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -635,7 +644,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "094wwap2fsl23cys6rxh2ciw0gxbbiqbshnn4qs1n6xdjrj6i15m")))) + "0knk4bplqhvsxar1wv16bzfw57q0aja12gdaxz7m8mvx121sm9ha")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -646,12 +655,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") (("xmlpatterns ") "# xmlpatterns")) #t)))))) (native-inputs `(("perl" ,perl))) - (inputs `(("qtbase" ,qtbase))))) + (inputs `(("qtbase" ,qtbase))) + (synopsis "Qt XML patterns module") + (description "The QtXmlPatterns module is a XQuery and XPath engine for +XML and custom data models. It contains programs such as xmlpatterns and +xmlpatternsvalidator."))) (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -660,7 +673,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1zwlxrgraxhlsdkwsai3pjbz7f3a6rsnsg2mjrpay6cz3af6rznj")))) + "020bha6q8byxc8cj5zw7gms5rgsjg71hv31hv1rr2fy7x56zsh0d")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -672,12 +685,18 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("qtxmlpatterns" ,qtxmlpatterns))) (inputs `(("mesa" ,mesa) - ("qtbase" ,qtbase))))) + ("qtbase" ,qtbase))) + (synopsis "Qt QML module (Quick 2)") + (description "The Qt QML module provides a framework for developing +applications and libraries with the QML language. It defines and implements the +language and engine infrastructure, and provides an API to enable application +developers to extend the QML language with custom types and integrate QML code +with JavaScript and C++."))) (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -686,7 +705,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1mbzmqix0388iq20a1ljd1pgdq259rm1xzp9kx8gigqpamqqnqs0")))) + "1k7kjmlny0ykm40qx796wbsg3310v6b8hqizkbr597cmxjbrax9c")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -704,12 +723,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("qtdeclarative" ,qtdeclarative))) (inputs `(("bluez" ,bluez) - ("qtbase" ,qtbase))))) + ("qtbase" ,qtbase))) + (synopsis "Qt Connectivity module") + (description "The Qt Connectivity modules provides modules for interacting +with Bluetooth and NFC."))) (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -718,19 +740,25 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0r1lya2jj3wfci82zfn0vk6vr8sk9k7xiphnkb0panhb8di769q1")))) + "0x0nx1ampqsgj9qlc3l32z3ham1a5vq7m2lnxk5pr92yj6yw3pdg")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative))) - (inputs `(("qtbase" ,qtbase))))) + (inputs `(("qtbase" ,qtbase))) + (synopsis "Qt Web Sockets module") + (description "WebSocket is a web-based protocol designed to enable two-way +communication between a client application and a remote host. The Qt +WebSockets module provides C++ and QML interfaces that enable Qt applications +to act as a server that can process WebSocket requests, or a client that can +consume data received from the server, or both."))) (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -739,7 +767,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1772x7r6y9xv2sv0w2dfz2yhagsq5bpa9kdpzg0qikccmabr7was")))) + "1lxmhi19dbb8vjhpjph0l0ss6zh72hb4908lp4s1pgf8r641ai3r")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -752,12 +780,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative))) - (inputs `(("qtbase" ,qtbase))))) + (inputs `(("qtbase" ,qtbase))) + (synopsis "Qt Sensors module") + (description "The Qt Sensors API provides access to sensor hardware via QML +and C++ interfaces. The Qt Sensors API also provides a motion gesture +recognition API for devices."))) (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -766,7 +798,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1r76zvbv6wwb7lgw9jwlx382iyw34i1amxaypb5bg3j1niqvx3z4")) + "0815hi3cxy5zy6yc5fkdpx2xd6rk7968j1ziwl2g4wa80802g9n9")) (modules '((guix build utils))) (snippet '(begin @@ -798,12 +830,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("qtbase" ,qtbase) ;; Gstreamer is needed for the mediaplayer plugin ("gstreamer" ,gstreamer) - ("gst-plugins-base" ,gst-plugins-base))))) + ("gst-plugins-base" ,gst-plugins-base))) + (synopsis "Qt Multimedia module") + (description "The Qt Multimedia module provides set of APIs to play and +record media, and manage a collection of media content. It also contains a +set of plugins for interacting with pulseaudio and GStreamer."))) (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -812,7 +848,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1yizvbmh26mx1ffq0qaci02g2wihy68ld0y7r3z8nx3v5acb236g")) + "1ipn4xh0dj1kjg5i4vfl4gpx3hg2377w5gls47xpv1ikz41lshzn")) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail @@ -833,12 +869,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("mesa" ,mesa) ("mtdev" ,mtdev) ("qtbase" ,qtbase) - ("wayland" ,wayland))))) + ("wayland" ,wayland))) + (synopsis "Qt Wayland module") + (description "The Qt Wayland module provides the QtWayland client and +compositor libraries."))) (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -847,16 +886,19 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0sbsc7n701kxl16r247a907zg2afmbx1xlml5jkc6a9956zqbzp1")))) + "0hndc9z7qzxazzjvc6k5yd58afw13444plk70b05nqdi5p19rvah")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) - ("eudev" ,eudev))))) + ("eudev" ,eudev))) + (synopsis "Qt Serial Port module") + (description "The Qt Serial Port module provides the library for +interacting with serial ports from within Qt."))) (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -865,15 +907,19 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1hzk377c3zl4dm5hxwvpxg2w096m160448y9df6v6l8xpzpzxafa")))) + "025yv7zajz5scrmkjkmgkyvxpgkliqvrzc88is0gr481zpd4phmv")))) (inputs `(("qtbase" ,qtbase) - ("qtserialport" ,qtserialport))))) + ("qtserialport" ,qtserialport))) + (synopsis "Qt Serial Bus module") + (description "The Qt Serial Bus API provides classes and functions to +access the various industrial serial buses and protocols, such as CAN, ModBus, +and others."))) (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -882,17 +928,22 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "003h09mla82f2znb8jjigx13ivc68ikgv7w04594yy7qdmd5yhl0")))) + "09iss70c1iqgf8qpik35qlgrdw5y9935v0fm2ppgkmxdxkpls6ww")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) ("qtwebsockets" ,qtwebsockets))) - (inputs `(("qtbase" ,qtbase))))) + (inputs `(("qtbase" ,qtbase))) + (synopsis "Web communication library for Qt") + (description "The Qt WebChannel module enables peer-to-peer communication +between the host (QML/C++ application) and the client (HTML/JavaScript +application). The transport mechanism is supported out of the box by the two +popular web engines, Qt WebKit 2 and Qt WebEngine."))) (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -901,7 +952,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "058mgvlaml9rkfhkpr1n3avhi12zlva131sqhbwj4lwwyqfkri2b")))) + "033b6l6jbvmc0k5qvbgh5vkzvfga7npqcphrywrrqkmx9vj446n8")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -914,12 +965,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("icu4c" ,icu4c) ("openssl" ,openssl) ("qtbase" ,qtbase) - ("zlib" ,zlib))))) + ("zlib" ,zlib))) + (synopsis "Qt Location and Positioning modules") + (description "The Qt Location module provides an interface for location, +positioning and geolocation plugins."))) (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -928,7 +982,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1s50kh3sg5wc5gqhwwznnibh7jcnfginnmkv66w62mm74k7mdsy4")))) + "06nqsa5mj0mc9w9xbm7mgdkb66x4wlvkhnas32f97sb8ic8rdf9b")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -937,12 +991,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("qtdeclarative" ,qtdeclarative))) (inputs `(("mesa" ,mesa) - ("qtbase" ,qtbase))))) + ("qtbase" ,qtbase))) + (synopsis "Qt Tools and Designer modules") + (description "The Qt Tools module provides a set of applications to browse +the documentation, translate applications, generate help files and other stuff +that helps in Qt development."))) (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -951,18 +1009,22 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "13qq2mjfhqdcvkmzrgxg1gr5kww1ygbwb7r71xxl6rjzbn30hshp")) + "1wa0rnbphkhgydnwkf5bjwn0llskl6hgs0964nh0jik8qaspv027")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) ("qttools" ,qttools))) (inputs - `(("qtbase" ,qtbase))))) + `(("qtbase" ,qtbase))) + (synopsis "Qt Script module") + (description "Qt provides support for application scripting with ECMAScript. +The following guides and references cover aspects of programming with +ECMAScript and Qt."))) (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -971,18 +1033,22 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0bpc465q822phw3dcbddn70wj1fjlc2hxskkp1z9gl7r23hx03jj")))) + "07xxhkfsljwdwlp9jfp88pwkrig02y2pnwhdsaz8mkcackwfq2az")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Quick Controls and other Quick modules") + (description "The QtScript module provides classes for making Qt +applications scriptable. This module provides a set of extra components that +can be used to build complete interfaces in Qt Quick."))) (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -991,18 +1057,23 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1zq86kqz85wm3n84jcxkxw5x1mrhkqzldkigf8xm3l8j24rf0fr0")))) + "1ln83afxyp5dmvdnq6n7as82xrd5k3xvfx7b1jxnljivslyxsm9b")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Quick Controls 2 and other Quick 2 modules") + (description "The Qt Quick Controls 2 module contains the Qt Labs Platform +module that provides platform integration: native dialogs, menus and menu bars, +and tray icons. It falls back to Qt Widgets when a native implementation is +not available."))) (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1011,13 +1082,20 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1zsr3a5dsmpvrb5h4m4h42wqmkvkks3d8mmyrx4k0mfr6s7c71jz")))) + "0xpvigfiqfqvf05ywj8x69y57rp8dwq2hs1kpxlxs15pniz4wn8l")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Graphical Effects module") + (description "The Qt Graphical Effects module provides a set of QML types +for adding visually impressive and configurable effects to user interfaces. +Effects are visual items that can be added to Qt Quick user interface as UI +components. The API consists of over 20 effects provided as separate QML +types. The effects cover functional areas such as blending, masking, blurring, +coloring, and many more."))) (define-public qtdeclarative-render2d ;; As of Qt-5.8.0 this module has been merged into qtdeclarative @@ -1040,12 +1118,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Declarative Render module") + (description "The Qt Declarative Render 2D module provides a Raster +backend for QtQuick scene graph.") (properties `((superseded . ,qtdeclarative))))) (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1054,7 +1135,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "055w4649zi93q1sl32ngqwgnl2vxw1idnm040s9gjgjb67gi81zi")))) + "0lm5v43psf7r8zc79dcjdmmdnz4jm30ylgkvsyv8k88mj06yklbn")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1064,12 +1145,18 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("libxrender" ,libxrender) ("sdl2" ,sdl2) ("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Gamepad module") + (description "The Qt Gamepad module is an add-on library that enables Qt +applications to support the use of gamepad hardware and in some cases remote +control equipment. The module provides both QML and C++ interfaces. The +primary target audience are embedded devices with fullscreen user interfaces, +and mobile applications targeting TV-like form factors."))) (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1078,7 +1165,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "1m3b6wg5hqasdfc5igpj9bq3czql5kkvvn3rx1ig508kdlh5i5s0")) + "0pdimqwdrj8hckm81lwy1z58ji4bdv0bzgv336m0a8v3pj914awx")) (modules '((guix build utils))) (snippet '(begin @@ -1088,12 +1175,18 @@ developers using C++ or QML, a CSS & JavaScript like language.") (("scion") "#")))))) (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt SCXML module") + (description "The Qt SCXML module provides functionality to create state +machines from SCXML files. This includes both dynamically creating state +machines (loading the SCXML file and instantiating states and transitions) and +generating a C++ file that has a class implementing the state machine. It +also contains functionality to support data models and executable content."))) (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1102,15 +1195,18 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0b1hlaq6rb7d6b6h8kqd26klcpzf9vcdjrv610kdj0drb00jg3ss")))) + "04f28y7qcr4kd0pw26mm515qj7haxr0i8lijn1q47wkikxyhawca")))) (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Purchasing module") + (description "The Qt Purchasing module provides and in-app API for +purchasing goods and services."))) (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1119,7 +1215,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "10fy8wqfw2yhha6lyky5g1a72137aj8pji7mk0wjnggh629z12sb")) + "1siyzgm1mjx90rwyzzq9vw2s2xzyf6n7q0vn8gw7mdim5indda44")) (modules '((guix build utils))) (snippet '(delete-file-recursively "examples/canvas3d/3rdparty")))) @@ -1139,12 +1235,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") (native-inputs `()) (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Canvas 3D module") + (description "The Qt Canvas 3D module provides a way to make WebGL-like 3D +drawing calls from Qt Quick JavaScript."))) (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1153,18 +1252,25 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "180df5v7i1ki8hc3lgi6jcfdyz7f19pb73dvfkw402wa2gfcna3k")))) + "193a3imkgryw42s0gbwaj9gpqd673h3jrg86jvmy33l2fc5gfyjf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Charts module") + (description "The Qt Charts module provides a set of easy to use chart +components. It uses the Qt Graphics View Framework, therefore charts can be +easily integrated to modern user interfaces. Qt Charts can be used as QWidgets, +QGraphicsWidget, or QML types. Users can easily create impressive graphs by +selecting one of the charts themes.") + (license license:gpl3))) (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.9.1") + (version "5.9.2") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1173,13 +1279,100 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "14d1q07winh6n1bkc616dapwfnsfkcjyg5zngdqjdj9mza8ang13")))) + "1cmjjbbmdqdix1f8b7qyc2vwhj9pvchc8r4lp65qw11dhycmdbh6")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative))))) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Data Visualization module") + (description "The Qt Data Visualization module provides a way to visualize +data in 3D as bar, scatter, and surface graphs. It is especially useful for +visualizing depth maps and large quantities of rapidly changing data, such as +data received from multiple sensors. The look and feel of graphs can be +customized by using themes or by adding custom items and labels to them.") + (license license:gpl3))) + +(define-public qtnetworkauth + (package (inherit qtsvg) + (name "qtnetworkauth") + (version "5.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "16i33m8x5yii22ciq97bpfmnw0lwhvgv84i2az30a1ikm9dg00x0")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'remove-failing-test + (lambda _ + ;; These tests can't find their test data. + (substitute* "tests/auto/auto.pro" + (("oauth1 ") "# oauth1 ")) + #t)))))) + (inputs + `(("qtbase" ,qtbase))) + (synopsis "Qt Network Authorization module") + (description "The Qt Network Authorization module provides an +implementation of OAuth and OAuth2 authenticathon methods for Qt."))) + +(define-public qtremoteobjects + (package (inherit qtsvg) + (name "qtremoteobjects") + (version "5.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "1ylphdwis34y4pm9xiwh2xqfd0hh2gp8kkawlps2q5mh2bm11376")))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))) + (synopsis "Qt Remote Objects module") + (description "The Qt Remote Objects module is an @dfn{inter-process +communication} (IPC) module developed for Qt. The idea is to extend existing +Qt's functionalities to enable an easy exchange of information between +processes or computers."))) + +(define-public qtspeech + (package (inherit qtsvg) + (name "qtspeech") + (version "5.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "0cq33dffi7q7dnvzhdivky5prakb8xnwap0b76fwgirhbbn88ypg")))) + (inputs + `(("qtbase" ,qtbase))) + (native-inputs + `(("perl" ,perl) + ("qtdeclarative" ,qtdeclarative) + ("qtmultimedia" ,qtmultimedia) + ("qtxmlpatterns" ,qtxmlpatterns))) + (synopsis "Qt Speech module") + (description "The Qt Speech module enables a Qt application to support +accessibility features such as text-to-speech, which is useful for end-users +who are visually challenged or cannot access the application for whatever +reason. The most common use case where text-to-speech comes in handy is when +the end-user is driving and cannot attend the incoming messages on the phone. +In such a scenario, the messaging application can read out the incoming +message."))) (define-public python-sip (package diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 6b5cfb013c..2ccfc2cec4 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -127,26 +127,26 @@ Java Lucene text search engine API to C++.") "18p2flb2sv2hq6w2qkd29z9c7knnwqr3f12i2srshlzx6vwkm05s")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-after - 'remove-out-of-tree-references 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vfi"))) - (alist-cons-after - 'unpack 'remove-out-of-tree-references - (lambda _ - ;; remove symlinks to files in /usr/ - (delete-file-recursively "m4") - (for-each delete-file '("config.guess" - "config.sub" - "depcomp" - "install-sh" - "ltmain.sh" - "missing")) - ;; remove_test depends on an out-of-tree RDF file - (substitute* "examples/Makefile.am" - (("instances_test remove_test") "instances_test") - (("\\$\\(TESTS\\) remove_test") "$(TESTS)"))) - %standard-phases)))) + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-out-of-tree-references + (lambda _ + ;; remove symlinks to files in /usr/ + (delete-file-recursively "m4") + (for-each delete-file '("config.guess" + "config.sub" + "depcomp" + "install-sh" + "ltmain.sh" + "missing")) + ;; remove_test depends on an out-of-tree RDF file + (substitute* "examples/Makefile.am" + (("instances_test remove_test") "instances_test") + (("\\$\\(TESTS\\) remove_test") "$(TESTS)")) + #t)) + (add-after 'remove-out-of-tree-references 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) (inputs `(("raptor" ,raptor2) ("cyrus-sasl" ,cyrus-sasl) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index f35d3e63aa..a49fd89bf2 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -85,16 +85,16 @@ Python. It is a C++ library.") "0n36cgqys59r2gmb7jzbqiwsy790v8nbxk82d2n2saz0rp145ild")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-cons-before - 'check 'install-locales - (lambda _ - ;; The tests require the availability of the - ;; 'en_US.ISO-8859-1' locale. - (setenv "LOCPATH" (getcwd)) - (zero? (system* "localedef" "--no-archive" - "--prefix" (getcwd) "-i" "en_US" - "-f" "ISO-8859-1" "./en_US.ISO-8859-1"))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'install-locales + (lambda _ + ;; The tests require the availability of the + ;; 'en_US.ISO-8859-1' locale. + (setenv "LOCPATH" (getcwd)) + (zero? (system* "localedef" "--no-archive" + "--prefix" (getcwd) "-i" "en_US" + "-f" "ISO-8859-1" "./en_US.ISO-8859-1"))))))) (synopsis "Approximate regex matching library and agrep utility") (description "Superset of the POSIX regex API, enabling approximate matching. Also ships a version of the agrep utility which behaves similar to diff --git a/gnu/packages/rrdtool.scm b/gnu/packages/rrdtool.scm index a07d705373..fbb6a3403b 100644 --- a/gnu/packages/rrdtool.scm +++ b/gnu/packages/rrdtool.scm @@ -53,15 +53,16 @@ (native-inputs `(("pkg-config" ,pkg-config) ("groff" ,groff))) (arguments - '(#:phases (alist-cons-before - 'configure 'pre-configure - (lambda _ - (substitute* "libtool" - (("/bin/sed") (which "sed"))) - (substitute* "src/Makefile.in" - (("^rrdcached_LDADD = librrd_th.la") - "rrdcached_LDADD = librrd_th.la -lglib-2.0"))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda _ + (substitute* "libtool" + (("/bin/sed") (which "sed"))) + (substitute* "src/Makefile.in" + (("^rrdcached_LDADD = librrd_th.la") + "rrdcached_LDADD = librrd_th.la -lglib-2.0")) + #t))))) (home-page "http://oss.oetiker.ch/rrdtool/") (synopsis "Time-series data storage and display system") (description diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 56504520cb..c6b500bb16 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -151,16 +151,16 @@ a focus on simplicity and productivity.") `(#:test-target "test" #:parallel-tests? #f #:phases - (alist-cons-before - 'configure 'replace-bin-sh - (lambda _ - (substitute* '("Makefile.in" - "ext/pty/pty.c" - "io.c" - "lib/mkmf.rb" - "process.c") - (("/bin/sh") (which "sh")))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'replace-bin-sh + (lambda _ + (substitute* '("Makefile.in" + "ext/pty/pty.c" + "io.c" + "lib/mkmf.rb" + "process.c") + (("/bin/sh") (which "sh"))) + #t))))) (native-search-paths (list (search-path-specification (variable "GEM_PATH") @@ -185,16 +185,21 @@ a focus on simplicity and productivity.") `(#:test-target "test" #:parallel-tests? #f #:phases - (alist-cons-before - 'configure 'replace-bin-sh - (lambda _ - (substitute* '("Makefile.in" - "ext/pty/pty.c" - "io.c" - "lib/mkmf.rb" - "process.c") - (("/bin/sh") (which "sh")))) - %standard-phases))))) + (modify-phases %standard-phases + (add-before 'configure 'replace-bin-sh + (lambda _ + (substitute* '("Makefile.in" + "ext/pty/pty.c" + "io.c" + "lib/mkmf.rb" + "process.c") + (("/bin/sh") (which "sh"))) + #t))))))) + +(define (gem-directory ruby-version) + "Return the relative gem install directory for RUBY-VERSION." + (string-append "/lib/ruby/gems/" (version-major+minor ruby-version) + ".0/gems")) (define-public ruby-highline (package @@ -2087,17 +2092,19 @@ both CSS3 selector and XPath 1.0 support.") (define-public ruby-method-source (package (name "ruby-method-source") - (version "0.8.2") + (version "0.9.0") (source (origin (method url-fetch) (uri (rubygems-uri "method_source" version)) (sha256 (base32 - "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2")))) + "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn")))) (build-system ruby-build-system) + (arguments + `(#:test-target "spec")) (native-inputs - `(("ruby-bacon" ,ruby-bacon) + `(("ruby-rspec" ,ruby-rspec) ("git" ,git))) (synopsis "Retrieve the source code for Ruby methods") (description "Method_source retrieves the source code for Ruby methods. @@ -2160,21 +2167,20 @@ rate.") (define-public ruby-pry (package (name "ruby-pry") - (version "0.10.4") + (version "0.11.1") (source (origin (method url-fetch) (uri (rubygems-uri "pry" version)) (sha256 (base32 - "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar")))) + "0ci461a55sn50rlrmcl97ycf79681glp443a2gzp23rnm7y70fkj")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; no tests (propagated-inputs `(("ruby-coderay" ,ruby-coderay) - ("ruby-method-source" ,ruby-method-source) - ("ruby-slop" ,ruby-slop-3))) + ("ruby-method-source" ,ruby-method-source))) (synopsis "Ruby REPL") (description "Pry is an IRB alternative and runtime developer console for Ruby. It features syntax highlighting, a plugin architecture, runtime @@ -3779,10 +3785,9 @@ requests either using arguments or with an interactive prompt.") (add-before 'validate-runpath 'replace-broken-symlink (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (file (string-append out "/lib/ruby/gems/" - ,(package-version ruby) - "/gems/ansi-" ,version - "/lib/ansi.yml"))) + (file (string-append out + ,(gem-directory (package-version ruby)) + "/ansi-" ,version "/lib/ansi.yml"))) ;; XXX: This symlink is broken since ruby 2.4. ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html (delete-file file) @@ -3980,10 +3985,9 @@ requirement specifications systems like Cucumber.") (add-before 'validate-runpath 'replace-broken-symlink (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (file (string-append out "/lib/ruby/gems/" - ,(package-version ruby) - "/gems/ae-" ,version - "/lib/ae.yml"))) + (file (string-append out + ,(gem-directory (package-version ruby)) + "/ae-" ,version "/lib/ae.yml"))) ;; XXX: This symlink is broken since ruby 2.4. ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html (delete-file file) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index 535dd8eb06..ebb8c5e1f0 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -138,31 +138,31 @@ backend of Sawfish.") (arguments '(#:tests? #f ; no tests #:phases - (alist-cons-before - 'configure 'patch-exec-rep - (lambda _ - (substitute* '("lisp/sawfish/cfg/main.jl.in" - "scripts/sawfish-about.jl.in" - "scripts/sawfish-client.jl" - "scripts/sawfish-menu.jl") - (("exec rep") (string-append "exec " (which "rep"))))) - (alist-cons-after - 'install 'wrap-scripts - ;; Wrap scripts with REP_DL_LOAD_PATH for finding rep-gtk - ;; and sawfish.client. - (lambda* (#:key outputs #:allow-other-keys) - (define (wrap-script script) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out script) - `("REP_DL_LOAD_PATH" = - ,(list (getenv "REP_DL_LOAD_PATH") - (string-append out "/lib/rep")))))) - (for-each wrap-script - (list "/bin/sawfish-about" - "/bin/sawfish-client" - "/bin/sawfish-config" - "/lib/sawfish/sawfish-menu"))) - %standard-phases)))) + (modify-phases %standard-phases + (add-before 'configure 'patch-exec-rep + (lambda _ + (substitute* '("lisp/sawfish/cfg/main.jl.in" + "scripts/sawfish-about.jl.in" + "scripts/sawfish-client.jl" + "scripts/sawfish-menu.jl") + (("exec rep") (string-append "exec " (which "rep")))) + #t)) + (add-after 'install 'wrap-scripts + ;; Wrap scripts with REP_DL_LOAD_PATH for finding rep-gtk + ;; and sawfish.client. + (lambda* (#:key outputs #:allow-other-keys) + (define (wrap-script script) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out script) + `("REP_DL_LOAD_PATH" = + ,(list (getenv "REP_DL_LOAD_PATH") + (string-append out "/lib/rep")))))) + (for-each wrap-script + (list "/bin/sawfish-about" + "/bin/sawfish-client" + "/bin/sawfish-config" + "/lib/sawfish/sawfish-menu")) + #t))))) (native-inputs `(("gettext" ,gettext-minimal) ("makeinfo" ,texinfo) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 161138285e..bafc3da332 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -417,73 +417,73 @@ implementation techniques and as an expository tool.") (build-system gnu-build-system) (arguments '(#:phases - (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Patch dynamically loaded libraries with their absolute paths. - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path - library-path - (format #f "~a.so" soname)))) - (patch-ffi-libs (lambda (file libs) - (for-each - (lambda (lib) - (substitute* file - (((format #f "\"~a\"" lib)) - (format #f "\"~a\"" (find-so lib))))) - libs)))) - (substitute* "collects/db/private/sqlite3/ffi.rkt" - (("ffi-lib sqlite-so") - (format #f "ffi-lib \"~a\"" (find-so "libsqlite3")))) - (substitute* "collects/openssl/libssl.rkt" - (("ffi-lib libssl-so") - (format #f "ffi-lib \"~a\"" (find-so "libssl")))) - (substitute* "collects/openssl/libcrypto.rkt" - (("ffi-lib libcrypto-so") - (format #f "ffi-lib \"~a\"" (find-so "libcrypto")))) - (substitute* "share/pkgs/math-lib/math/private/bigfloat/gmp.rkt" - (("ffi-lib libgmp-so") - (format #f "ffi-lib \"~a\"" (find-so "libgmp")))) - (substitute* "share/pkgs/math-lib/math/private/bigfloat/mpfr.rkt" - (("ffi-lib libmpfr-so") - (format #f "ffi-lib \"~a\"" (find-so "libmpfr")))) - (for-each - (lambda (x) (apply patch-ffi-libs x)) - '(("share/pkgs/draw-lib/racket/draw/unsafe/cairo-lib.rkt" - ("libfontconfig" "libcairo")) - ("share/pkgs/draw-lib/racket/draw/unsafe/glib.rkt" - ("libglib-2.0" "libgmodule-2.0" "libgobject-2.0")) - ("share/pkgs/draw-lib/racket/draw/unsafe/jpeg.rkt" - ("libjpeg")) - ("share/pkgs/draw-lib/racket/draw/unsafe/pango.rkt" - ("libpango-1.0" "libpangocairo-1.0")) - ("share/pkgs/draw-lib/racket/draw/unsafe/png.rkt" - ("libpng")) - ("share/pkgs/db-lib/db/private/odbc/ffi.rkt" - ("libodbc")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/x11.rkt" - ("libX11")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/gsettings.rkt" - ("libgio-2.0")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/gtk3.rkt" - ("libgdk-3" "libgtk-3")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/unique.rkt" - ("libunique-1.0")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/utils.rkt" - ("libgdk-x11-2.0" "libgdk_pixbuf-2.0" "libgtk-x11-2.0")) - ("share/pkgs/gui-lib/mred/private/wx/gtk/gl-context.rkt" - ("libGL")) - ("share/pkgs/sgl/gl.rkt" - ("libGL" "libGLU"))))) - (chdir "src")) - (alist-cons-after - 'unpack 'patch-/bin/sh - (lambda _ - (substitute* "collects/racket/system.rkt" - (("/bin/sh") (which "sh")))) - %standard-phases)) + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Patch dynamically loaded libraries with their absolute paths. + (let* ((library-path (search-path-as-string->list + (getenv "LIBRARY_PATH"))) + (find-so (lambda (soname) + (search-path + library-path + (format #f "~a.so" soname)))) + (patch-ffi-libs (lambda (file libs) + (for-each + (lambda (lib) + (substitute* file + (((format #f "\"~a\"" lib)) + (format #f "\"~a\"" (find-so lib))))) + libs)))) + (substitute* "collects/db/private/sqlite3/ffi.rkt" + (("ffi-lib sqlite-so") + (format #f "ffi-lib \"~a\"" (find-so "libsqlite3")))) + (substitute* "collects/openssl/libssl.rkt" + (("ffi-lib libssl-so") + (format #f "ffi-lib \"~a\"" (find-so "libssl")))) + (substitute* "collects/openssl/libcrypto.rkt" + (("ffi-lib libcrypto-so") + (format #f "ffi-lib \"~a\"" (find-so "libcrypto")))) + (substitute* "share/pkgs/math-lib/math/private/bigfloat/gmp.rkt" + (("ffi-lib libgmp-so") + (format #f "ffi-lib \"~a\"" (find-so "libgmp")))) + (substitute* "share/pkgs/math-lib/math/private/bigfloat/mpfr.rkt" + (("ffi-lib libmpfr-so") + (format #f "ffi-lib \"~a\"" (find-so "libmpfr")))) + (for-each + (lambda (x) (apply patch-ffi-libs x)) + '(("share/pkgs/draw-lib/racket/draw/unsafe/cairo-lib.rkt" + ("libfontconfig" "libcairo")) + ("share/pkgs/draw-lib/racket/draw/unsafe/glib.rkt" + ("libglib-2.0" "libgmodule-2.0" "libgobject-2.0")) + ("share/pkgs/draw-lib/racket/draw/unsafe/jpeg.rkt" + ("libjpeg")) + ("share/pkgs/draw-lib/racket/draw/unsafe/pango.rkt" + ("libpango-1.0" "libpangocairo-1.0")) + ("share/pkgs/draw-lib/racket/draw/unsafe/png.rkt" + ("libpng")) + ("share/pkgs/db-lib/db/private/odbc/ffi.rkt" + ("libodbc")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/x11.rkt" + ("libX11")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/gsettings.rkt" + ("libgio-2.0")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/gtk3.rkt" + ("libgdk-3" "libgtk-3")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/unique.rkt" + ("libunique-1.0")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/utils.rkt" + ("libgdk-x11-2.0" "libgdk_pixbuf-2.0" "libgtk-x11-2.0")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/gl-context.rkt" + ("libGL")) + ("share/pkgs/sgl/gl.rkt" + ("libGL" "libGLU"))))) + (chdir "src") + #t)) + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* "collects/racket/system.rkt" + (("/bin/sh") (which "sh"))) + #t))) #:tests? #f ; XXX: how to run them? )) (inputs diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index af598ecb46..0962ffe985 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -83,6 +83,7 @@ ("glu" ,glu) ("alsa-lib" ,alsa-lib) ("pulseaudio" ,pulseaudio))) + (outputs '("out" "debug")) (synopsis "Cross platform game development library") (description "Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, @@ -157,6 +158,7 @@ system, such as sound redirection over the network.") (base32 "0ijljhs0v99dj6y27hc10z6qchyp8gdp4199y6jzngy6dzxlzsvw")))) (build-system gnu-build-system) + (outputs '("out" "debug")) (arguments `(,@(if (any (cute string-prefix? <> (or (%current-system) (%current-target-system))) @@ -184,6 +186,7 @@ other supporting functions for SDL.") (base32 "16an9slbb8ci7d89wakkmyfvp7c0cval8xw4hkg0842nhhlp540b")))) (build-system gnu-build-system) + (outputs '("out" "debug")) (arguments ;; Explicitly link against shared libraries instead of dlopening them. '(#:configure-flags '("--disable-jpg-shared" @@ -220,6 +223,7 @@ WEBP, XCF, XPM, and XV.") (base32 "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n")))) (build-system gnu-build-system) + (outputs '("out" "debug")) ;; no check target ;; use libmad instead of smpeg ;; explicitly link against shared libraries instead of dlopening them @@ -260,6 +264,7 @@ MIDI, Ogg Vorbis, and MP3.") (build-system gnu-build-system) (propagated-inputs `(("sdl" ,sdl))) (native-inputs `(("pkg-config" ,pkg-config))) + (outputs '("out" "debug")) (synopsis "SDL networking library") (description "SDL_net is a small, cross-platform networking library for SDL.") @@ -283,6 +288,7 @@ SDL.") (inputs `(("freetype" ,freetype) ("mesa" ,mesa))) (native-inputs `(("pkg-config" ,pkg-config))) + (outputs '("out" "debug")) (synopsis "SDL TrueType font library") (description "SDL_ttf is a TrueType font rendering library for SDL.") (home-page "https://www.libsdl.org/projects/SDL_ttf/") @@ -405,30 +411,30 @@ directory.") (assoc-ref %build-inputs "sdl-union"))) #:parallel-build? #f ; parallel build fails #:phases - (alist-cons-before - 'configure 'fix-env-and-patch - (lambda* (#:key inputs #:allow-other-keys) - (setenv "GUILE_AUTO_COMPILE" "0") - ;; SDL_image needs to dlopen libjpeg in the test suite. - (setenv "LD_LIBRARY_PATH" - (string-append (assoc-ref inputs "libjpeg") "/lib")) - ;; Change the site directory /site/2.0 like Guile expects. - (substitute* "build-aux/guile-baux/re-prefixed-site-dirs" - (("\"/site\"") "\"/site/2.0\"")) + (modify-phases %standard-phases + (add-before 'configure 'fix-env-and-patch + (lambda* (#:key inputs #:allow-other-keys) + (setenv "GUILE_AUTO_COMPILE" "0") + ;; SDL_image needs to dlopen libjpeg in the test suite. + (setenv "LD_LIBRARY_PATH" + (string-append (assoc-ref inputs "libjpeg") "/lib")) + ;; Change the site directory /site/2.0 like Guile expects. + (substitute* "build-aux/guile-baux/re-prefixed-site-dirs" + (("\"/site\"") "\"/site/2.0\"")) - ;; Skip tests that rely on sound support, which is unavailable in - ;; the build environment. - (substitute* "test/Makefile.in" - (("HAVE_MIXER = .*$") - "HAVE_MIXER = 0\n"))) - (alist-cons-before - 'check 'start-xorg-server - (lambda* (#:key inputs #:allow-other-keys) - ;; The test suite requires a running X server. - (system (format #f "~a/bin/Xvfb :1 &" - (assoc-ref inputs "xorg-server"))) - (setenv "DISPLAY" ":1")) - %standard-phases)))) + ;; Skip tests that rely on sound support, which is unavailable in + ;; the build environment. + (substitute* "test/Makefile.in" + (("HAVE_MIXER = .*$") + "HAVE_MIXER = 0\n")) + #t)) + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system (format #f "~a/bin/Xvfb :1 &" + (assoc-ref inputs "xorg-server"))) + (setenv "DISPLAY" ":1") + #t))))) (synopsis "Guile interface for SDL (Simple DirectMedia Layer)") (description "Guile-SDL is a set of bindings to the Simple DirectMedia Layer (SDL). With them, Guile programmers can have easy access to graphics, diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index 8ae2dda1c3..c6e3d6b355 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Mike Gerwitz ;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,12 +26,20 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) + #:use-module (gnu packages autotools) #:use-module (gnu packages curl) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gtk) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages man) + #:use-module (gnu packages networking) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages tls) #:use-module (gnu packages perl) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml)) (define-public ccid (package @@ -70,6 +79,48 @@ readers and is needed to communicate with such devices through the @command{pcscd} resource manager.") (license license:lgpl2.1+))) +(define-public eid-mw + (package + (name "eid-mw") + (version "4.3.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Fedict/eid-mw/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0s646p19kq27wb160v9b8aaiy30k2shmq4njm471ggd2j7n7a6rs")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gnu-gettext) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("perl" ,perl))) + (inputs + `(("curl" ,curl) + ("openssl" ,openssl) + ("gtk+" ,gtk+) + ("pcsc-lite" ,pcsc-lite) + ("p11-kit" ,p11-kit) + ("libproxy" ,libproxy) + ("libxml2" ,libxml2) + ("cyrus-sasl" ,cyrus-sasl))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; The github tarball doesn't contain a configure script. + (add-before 'configure 'autoreconf + (lambda _ (zero? (system* "autoreconf" "-i"))))))) + (synopsis "Belgian eID Middleware") + (description "The Belgian eID Middleware is required to authenticate with +online services using the Belgian electronic identity card.") + (home-page "https://github.com/Fedict/eid-mw") + (license license:lgpl3))) + (define-public libyubikey (package (name "libyubikey") diff --git a/gnu/packages/serveez.scm b/gnu/packages/serveez.scm index 974db86115..871fb00d3b 100644 --- a/gnu/packages/serveez.scm +++ b/gnu/packages/serveez.scm @@ -40,13 +40,14 @@ (inputs `(("guile" ,guile-2.0))) (arguments `(#:configure-flags '("--enable-libserveez-install") - #:phases (alist-cons-before - 'patch-source-shebangs 'patch-test-source - (lambda _ - (substitute* - (find-files "test" "^t[0-9]{3}$") - (("/bin/sh") (which "sh")))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'patch-test-source + (lambda _ + (substitute* + (find-files "test" "^t[0-9]{3}$") + (("/bin/sh") (which "sh"))) + #t))))) (home-page "https://www.gnu.org/software/serveez/") (synopsis "Framework for implementing IP-based servers") (description diff --git a/gnu/packages/skribilo.scm b/gnu/packages/skribilo.scm index 458d91e569..87dc3558de 100644 --- a/gnu/packages/skribilo.scm +++ b/gnu/packages/skribilo.scm @@ -46,20 +46,21 @@ (assoc-ref %outputs "out") "/share/guile/site/2.0")) - #:phases (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Make sure the 'skribilo' command gets to see - ;; Guile-Reader, even if Guile-Reader is not in the search - ;; path. - (let ((reader (assoc-ref inputs "guile-reader"))) - (substitute* "src/skribilo.in" - (("^exec (.*) -c" _ things) - (string-append "exec " things - " -L " reader "/share/guile/site/2.0" - " -C " reader "/share/guile/site/2.0" - " -c"))))) - %standard-phases) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Make sure the 'skribilo' command gets to see + ;; Guile-Reader, even if Guile-Reader is not in the search + ;; path. + (let ((reader (assoc-ref inputs "guile-reader"))) + (substitute* "src/skribilo.in" + (("^exec (.*) -c" _ things) + (string-append "exec " things + " -L " reader "/share/guile/site/2.0" + " -C " reader "/share/guile/site/2.0" + " -c")))) + #t))) #:parallel-build? #f)) diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index f4a50ded22..a0d6c86dff 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -60,14 +60,15 @@ (inputs `(("zip" ,zip))) (arguments - `(#:phases (alist-cons-before - 'configure 'fix-libc - (lambda _ - (let ((libc (assoc-ref %build-inputs "libc"))) - (substitute* "libc.la.in" - (("@LIBC_SO_NAME@") "libc.so") - (("@LIBC_SO_DIR@") (string-append libc "/lib"))))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-libc + (lambda _ + (let ((libc (assoc-ref %build-inputs "libc"))) + (substitute* "libc.la.in" + (("@LIBC_SO_NAME@") "libc.so") + (("@LIBC_SO_DIR@") (string-append libc "/lib")))) + #t))))) (home-page "http://smalltalk.gnu.org/") (synopsis "Smalltalk environment") (description diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 55689a6c6d..8317f29cd8 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Stefan Reichör +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -128,14 +129,14 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "7.5p1") + (version "7.6p1") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/OpenSSH/portable/" name "-" version ".tar.gz")) (sha256 (base32 - "1w7rb5gbrikxdkp8w7zxnci4549gk4bw1lml01s59w5rzb2y6ilq")))) + "08qpsb8mrzcx8wgvz9insiyvq7sbg26yj5nvl2m5n57yvppcl8x3")))) (build-system gnu-build-system) (native-inputs `(("groff" ,groff))) (inputs `(("openssl" ,openssl) @@ -603,3 +604,40 @@ monitor it, restarting it as necessary should it die or stop passing traffic.") ;; copy of this license in their headers, but there's no separate file ;; with that information. (license:non-copyleft "file://autossh.c")))) + +(define-public pdsh + (package + (name "pdsh") + (version "2.29") + (source + (origin + (method url-fetch) + (uri (string-append "https://storage.googleapis.com/" + "google-code-archive-downloads/v2/code.google.com/" + "pdsh/pdsh-" version ".tar.bz2")) + (sha256 + (base32 "1kvzz01fyaxfqmbh53f4ljfsgvxdykh5jyr6fh4f1bw2ywxr1w2p")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--with-ssh") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* '("tests/runtests.sh" + "tests/test-lib.sh" + "tests/test-modules/pcptest.c") + (("/bin/sh") (which "bash"))) + #t))))) + (inputs + `(("openssh" ,openssh) + ("mit-krb5" ,mit-krb5) + ("perl" ,perl))) + (home-page "https://code.google.com/archive/p/pdsh") + (synopsis "Parallel distributed shell") + (description "Pdsh is a an efficient, multithreaded remote shell client +which executes commands on multiple remote hosts in parallel. Pdsh implements +dynamically loadable modules for extended functionality such as new remote +shell services and remote host selection.") + (license license:gpl2+))) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 1d3d1d367f..15f4755103 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -154,7 +154,7 @@ optimising the environment for the application in use and the task performed.") (assoc-ref %build-inputs "freetype") "/include/freetype2")) #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases (delete 'configure)))) (inputs `(("freetype" ,freetype) ("libxft" ,libxft) @@ -211,7 +211,7 @@ numbers of user-defined menu items efficiently.") '(#:tests? #f ; no tests #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) - #:phases (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases (delete 'configure)))) (inputs `(("libx11" ,libx11) ("libxext" ,libxext) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 0231360aa8..8439841b43 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -114,13 +114,14 @@ (string-append "--exec-prefix=" out) (string-append "--mandir=" out "/share/man"))) - #:phases (alist-cons-before - 'configure 'set-path-to-stty - (lambda _ - (substitute* "configure" - (("STTY_BIN=/bin/stty") - (string-append "STTY_BIN=" (which "stty"))))) - %standard-phases) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-path-to-stty + (lambda _ + (substitute* "configure" + (("STTY_BIN=/bin/stty") + (string-append "STTY_BIN=" (which "stty")))) + #t))) #:test-target "test")) (home-page "http://expect.nist.gov/") diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 5751015260..5df5e9e4ab 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -56,12 +56,12 @@ "0kmgr5w3b1qwzxnsnw94q6rqs0hr8nbv9clf07ca2a2fyypx9kjk")))) (arguments `(#:phases - (alist-cons-before - 'configure 'pre-configure - (lambda _ - (substitute* "src/applog.cpp" - (("^// TODO sc.*") "#include \n#include \n"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda _ + (substitute* "src/applog.cpp" + (("^// TODO sc.*") "#include \n#include \n")) + #t))))) (build-system gnu-build-system) (synopsis "(u)Common C++ framework for threaded applications") (description "GNU Common C++ is an portable, optimized class framework for diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index a9682b685c..2fa5f7e4cd 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Mckinley Olsen ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2016 David Craven @@ -28,6 +28,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix git-download) @@ -63,7 +64,7 @@ (sha256 (base32 "1cc4qbg1m3i04lj5p6i6xbd0zvy1320pxdgmjhz5p3j95ibsbfki")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'patch-source-shebangs 'autogen @@ -77,9 +78,7 @@ ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs - `(("glib" ,glib "bin") - ("gtk+" ,gtk+) - ("libconfuse" ,libconfuse) + `(("libconfuse" ,libconfuse) ("vte" ,vte))) (synopsis "GTK+-based drop-down terminal") (description "Tilda is a terminal emulator similar to normal terminals like diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index a38b2afc0c..fef81c6931 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Thomas Danckaert ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,6 +88,20 @@ (method url-fetch) (uri (string-append "ftp://tug.org/historic/systems/texlive/2017/" "texlive-" version "-source.tar.xz")) + (patches + (list + ;; This is required for compatibility with Poppler >= 0.58. + ;; See + ;; and for some discussion. + (origin + (method url-fetch) + (uri (string-append "https://git.archlinux.org/svntogit/packages.git/plain" + "/trunk/texlive-poppler-0.59.patch?h=packages/texlive-bin" + "&id=ba2de374e2b21ecc4b85cc9777f2f15c4d356c61")) + (file-name "texlive-poppler-compat.patch") + (sha256 + (base32 + "1c4ikq4kxw48bi3i33bzpabrjvbk01fwjr2lz20gkc9kv8l0bg3n"))))) (sha256 (base32 "1amjrxyasplv4alfwcxwnw4nrx7dz2ydmddkq16k6hg90i9njq81")))) (build-system gnu-build-system) @@ -123,6 +138,9 @@ `(#:out-of-source? #t #:configure-flags `("--disable-native-texlive-build" + ;; XXX: This is needed because recent Poppler requires C++11 or later. + ;; Remove after switch to GCC >= 6. + "CXXFLAGS=-std=gnu++11" "--with-system-cairo" "--with-system-freetype2" "--with-system-gd" diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 3359ab4845..2007a25d93 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -97,15 +97,15 @@ to DOS format and vice versa.") (native-inputs `(("python" ,python-2))) (arguments '(#:phases - (alist-cons-before - 'check 'pre-check - (lambda _ - (substitute* "tests/setup.py" - (("([[:space:]]*)include_dirs=.*" all space) - (string-append all space "library_dirs=['../src/.libs'],\n"))) - ;; The test extension 'Recode.so' lacks RUNPATH for 'librecode.so'. - (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/src/.libs"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (substitute* "tests/setup.py" + (("([[:space:]]*)include_dirs=.*" all space) + (string-append all space "library_dirs=['../src/.libs'],\n"))) + ;; The test extension 'Recode.so' lacks RUNPATH for 'librecode.so'. + (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/src/.libs")) + #t))))) (home-page "https://github.com/pinard/Recode") (synopsis "Text encoding converter") (description "The Recode library converts files between character sets and @@ -208,10 +208,9 @@ encoding, supporting Unicode version 9.0.0.") (build-system gnu-build-system) (arguments '(#:phases - (alist-cons-after - 'unpack 'autoreconf - (lambda _ (zero? (system* "autoreconf" "-vif"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'autoreconf + (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 4d3da87174..58055cd13e 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -41,16 +41,16 @@ (build-system gnu-build-system) (arguments '(#:phases - (alist-replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; This old `configure' script doesn't support - ;; variables passed as arguments. - (let ((out (assoc-ref outputs "out"))) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))) - %standard-phases))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This old `configure' script doesn't support + ;; variables passed as arguments. + (let ((out (assoc-ref outputs "out"))) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out))))))))) (home-page "https://www.gnu.org/software/time/") (synopsis "Run a command, then display its resource usage") (description diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index e37876ce04..fe4c908c32 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -106,7 +106,7 @@ in intelligent transportation networks.") (define-public p11-kit (package (name "p11-kit") - (version "0.23.8") + (version "0.23.9") (source (origin (method url-fetch) @@ -114,7 +114,7 @@ in intelligent transportation networks.") "download/" version "/p11-kit-" version ".tar.gz")) (sha256 (base32 - "0gqk1d09yyin75lvlywpbf3kxlnrcwbq8ridgapvqqjbzvjk98ab")))) + "0qyvnkb5hfi94wv3bn67y20hcbbvynvjwxpk7k9sh1si6ff69hg1")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -491,13 +491,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.18.2") + (version "0.19.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "1xiy8m7501g5l9kpdmyvyz72nfnl72l19qkrf76fyvby7adzm3ki")))) + "08p8w50zciqlhgn3ab0wbbvi1zyg3x37r1gywq0z1allsij3v8hz")))) (build-system python-build-system) (arguments `(#:phases @@ -545,7 +545,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "16lw4n7kwnkvh9sz2f97c7ad1wwp33mg5fc332lpy5n17zpfc8h1")))) + "0lwxqz3r0fg3dy06fgba1dfs7n6ribc25z0rh5rqbl7mvy8hf8x7")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index e2123557c1..e44bab54a0 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages compression) #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages autotools) @@ -44,25 +45,28 @@ (define-public tor (package (name "tor") - (version "0.3.0.11") + (version "0.3.1.7") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "1hjhxkkrx04ydiddhwb3z2xb0vkcwmn1x8jsdcp6kd6i1qa0fp1a")))) + "13y0v4zfla0vziy9kkahmhrwylv32ianjikcr46mwbxvji4dvx8x")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" "--enable-linker-hardening"))) (native-inputs - `(("python" ,python-2))) ; for tests + `(("pkg-config" ,pkg-config) + ("python" ,python-2))) ; for tests (inputs `(("zlib" ,zlib) ("openssl" ,openssl) ("libevent" ,libevent) - ("libseccomp", libseccomp))) + ("libseccomp" ,libseccomp) + ("xz" ,xz) + ("zstd" ,zstd))) (home-page "https://www.torproject.org/") (synopsis "Anonymous network router to improve privacy on the Internet") (description @@ -134,13 +138,13 @@ rejects UDP traffic from the application you're using.") #:configure-flags (list (string-append "--sysconfdir=" (assoc-ref %outputs "out") "/etc/privoxy")) - #:phases (alist-cons-after - 'unpack 'autoconf - (lambda _ - ;; Unfortunately, this is not a tarball produced by - ;; "make dist". - (zero? (system* "autoreconf" "-vfi"))) - %standard-phases) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ + ;; Unfortunately, this is not a tarball produced by + ;; "make dist". + (zero? (system* "autoreconf" "-vfi"))))) #:tests? #f)) (inputs `(("w3m" ,w3m) diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm index 8f6e1d8a5e..d598ac04c7 100644 --- a/gnu/packages/uml.scm +++ b/gnu/packages/uml.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/uucp.scm b/gnu/packages/uucp.scm index 7bfe76365f..f5d9c70052 100644 --- a/gnu/packages/uucp.scm +++ b/gnu/packages/uucp.scm @@ -35,18 +35,18 @@ "0b5nhl9vvif1w3wdipjsk8ckw49jj1w85xw1mmqi3zbcpazia306")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; The old 'configure' script doesn't support the arguments - ;; that we pass by default. - (setenv "CONFIG_SHELL" (which "sh")) - (let ((out (assoc-ref outputs "out"))) - (zero? (system* "./configure" - (string-append "--prefix=" out) - (string-append "--infodir=" out - "/share/info"))))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; The old 'configure' script doesn't support the arguments + ;; that we pass by default. + (setenv "CONFIG_SHELL" (which "sh")) + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "./configure" + (string-append "--prefix=" out) + (string-append "--infodir=" out + "/share/info"))))))))) (home-page "https://www.gnu.org/software/uucp/uucp.html") (synopsis "UUCP protocol implementation") (description diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2b9f5aa06c..08ebb2080e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -530,15 +530,19 @@ libebml is a C++ library to read and write EBML files.") (define-public libva (package (name "libva") - (version "1.8.2") + (version "1.8.3") (source (origin (method url-fetch) - (uri (string-append - "https://www.freedesktop.org/software/vaapi/releases/libva/libva-" - version".tar.bz2")) + (uri (list + ;; Newer releases are only available on GitHub. + (string-append "https://github.com/01org/libva/releases/download/" + version "/libva-" version ".tar.bz2") + ;; Keep the old URL around for compatibility. + (string-append "https://www.freedesktop.org/software/vaapi/releases/" + "libva/libva-" version "/libva-" version ".tar.bz2"))) (sha256 - (base32 "1pnfl3q7dzxs26l3jk9xi97gr0qwnaz6dhvf9ifp2yplr3fy7lwy")))) + (base32 "16xbk0awl7wp0vy0nyjvxk11spbw25mp8kwd9bmhd6x9xffi5vjn")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1111,7 +1115,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.09.24") + (version "2017.10.07") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1119,7 +1123,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0j2m75j0d1n83i7jzpkcj7ir0bkskj024j9b0yi88zipcg740wbx")))) + "10xs3d3ksfhalmvacpw2drkzi84y3rgy2jjr0wrzmqn1hx897a6r")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1395,11 +1399,10 @@ encapsulated.") ("libtool" ,libtool))) (arguments '(#:phases - (alist-cons-after - 'unpack 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vif"))) - %standard-phases))))) + (modify-phases %standard-phases + (add-after 'unpack 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-vif"))))))))) (define-public libdvdcss (package diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 344ffc786b..4e384e79ae 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -72,16 +72,14 @@ (define-public qemu (package (name "qemu") - (version "2.10.0") + (version "2.10.1") (source (origin (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) - (patches (search-patches "qemu-CVE-2017-13711.patch" - "qemu-CVE-2017-14167.patch")) (sha256 (base32 - "0dgk7zcni41nf1jp84y0m6dk2nb4frnh571m8hkiv0m4hz4imn2m")))) + "1ahwl7r18iw2ds0q3c51nlivqsan9hcgnc8bbf9pv366iy81mm8x")))) (build-system gnu-build-system) (arguments '(;; Running tests in parallel can occasionally lead to failures, like: @@ -113,6 +111,7 @@ "--disable-debug-info" ; save build space "--enable-virtfs" ; just to be sure ,(string-append "--prefix=" out) + ,(string-append "--sysconfdir=/etc") ,@configure-flags)))))) (add-after 'install 'install-info (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 3e91b4e89b..d401ce31c8 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -165,11 +165,11 @@ features including, tables, builtin image display, bookmarks, SSL and more.") "--enable-nls" "--enable-ipv6")) #:tests? #f ; no check target - #:phases (alist-replace - 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "install-full" make-flags))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "install-full" make-flags))))))) (synopsis "Text Web Browser") (description "Lynx is a fully-featured World Wide Web (WWW) client for users running diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index a2af98da53..0d2a247e12 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -43,6 +43,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix cvs-download) + #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) @@ -139,6 +140,8 @@ and its related documentation.") (define-public nginx (package (name "nginx") + ;; Consider updating the nginx-docs package if the nginx package is + ;; updated. (version "1.12.1") (source (origin (method url-fetch) @@ -225,6 +228,101 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.") ;; except for two source files which are bsd-4 licensed. (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4)))) +(define nginx-xslscript + (let ((revision 11) + (changeset "01dc9ba12e1b")) + (package + (name "nginx-xslscript") + (version + (simple-format #f "2014-03-31-~A-~A" revision changeset)) + (source (origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.nginx.org/xslscript") + (changeset changeset))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out-bin (string-append + (assoc-ref outputs "out") + "/bin"))) + (mkdir-p out-bin) + (copy-file "xslscript.pl" + (string-append + out-bin + "/xslscript.pl")) + #t)))))) + (home-page "http://hg.nginx.org/xslscript") + (synopsis "XSLScript with NGinx specific modifications") + (description + "XSLScript is a terse notation for writing complex XSLT stylesheets. +This is modified version, specifically intended for use with the NGinx +documentation.") + (license l:bsd-2)))) + +(define-public nginx-documentation + ;; This documentation should be relevant for nginx-1.12.0 + (let ((revision 1961) + (changeset "dd4b6c564e10")) + (package + (name "nginx-documentation") + (version + (simple-format #f "2017-04-12-~A-~A" revision changeset)) + (source + (origin (method hg-fetch) + (uri (hg-reference + (url "http://hg.nginx.org/nginx.org") + (changeset changeset))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0rycfnnm2xkm777769h1zib428q45j64mx8nzzfzs4v07jbfc8m5")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let ((output (assoc-ref outputs "out"))) + (substitute* "umasked.sh" + ((" /bin/sh") (string-append " " (which "sh")))) + ;; The documentation includes a banner, which makes sense on + ;; the NGinx website, but doesn't make much sense when + ;; viewing locally. Therefore, modify the CSS to remove the + ;; banner. + (substitute* "xslt/style.xslt" + (("#banner \\{ background: black;") + "#banner { background: black; + display: none;")) + (zero? (system* "make"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((output (assoc-ref outputs "out"))) + (mkdir-p output) + (copy-recursively "libxslt" output) + #t)))))) + (native-inputs + `(("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("nginx-xslscript" ,nginx-xslscript))) + (home-page "https://nginx.org") + (synopsis "Documentation for nginx web server") + (description + "This package provides HTML documentation for the nginx web server.") + (license l:bsd-2)))) + (define-public fcgi (package (name "fcgi") @@ -677,14 +775,13 @@ used to validate and fix HTML data.") ;; For the log file, etc. "--localstatedir=/var") #:phases - (alist-cons-before - 'build 'pre-build - (lambda* (#:key inputs #:allow-other-keys #:rest args) - ;; Uncommenting the next two lines may assist in debugging - ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v")) - ;; (setenv "XML_DEBUG_CATALOG" "1") - #t) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda* (#:key inputs #:allow-other-keys #:rest args) + ;; Uncommenting the next two lines may assist in debugging + ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v")) + ;; (setenv "XML_DEBUG_CATALOG" "1") + #t))))) ;; All of the below are used to generate the documentation ;; (Should they be propagated inputs of asciidoc ??) (native-inputs `(("asciidoc" ,asciidoc))) diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm index 9de956c6ff..4b03c07bc4 100644 --- a/gnu/packages/wicd.scm +++ b/gnu/packages/wicd.scm @@ -71,123 +71,121 @@ ;; we can't easily make setup.py use setuptools. #:use-setuptools? #f #:phases - (alist-cons-before - 'build 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (python (assoc-ref inputs "python"))) - (define (which* cmd) - (cond ((string=? cmd "ping") - "/run/setuid-programs/ping") - ((which cmd) - => identity) - (else - (format (current-error-port) - "WARNING: Unable to find absolute path for ~s~%" - cmd) - #f))) - (substitute* "setup.py" - ;; The handling of unrecognized distros in setup.py is - ;; broken. Work around the problem. - (("\\('init=', " all) - (string-append "#" all)) - ;; Inhibit attempts to install in /var or /etc. - (("\\(wpath\\.(log|etc|networks|.*scripts), " all) - (string-append "#" all))) + (modify-phases %standard-phases + (add-before 'build 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (python (assoc-ref inputs "python"))) + (define (which* cmd) + (cond ((string=? cmd "ping") + "/run/setuid-programs/ping") + ((which cmd) + => identity) + (else + (format (current-error-port) + "WARNING: Unable to find absolute path for ~s~%" + cmd) + #f))) + (substitute* "setup.py" + ;; The handling of unrecognized distros in setup.py is + ;; broken. Work around the problem. + (("\\('init=', " all) + (string-append "#" all)) + ;; Inhibit attempts to install in /var or /etc. + (("\\(wpath\\.(log|etc|networks|.*scripts), " all) + (string-append "#" all))) - ;; Patch references to subprograms with absolute pathnames. - (substitute* "wicd/wnettools.py" - (("(misc\\.Run\\(\\[?[\"'])([^\"' ]*)" all pre cmd) - (string-append pre (which* cmd))) - (("(self\\._find_program_path|misc\\.find_path)\\([\"']([^\"']*)[\"']\\)" - all dummy cmd) - (let ((pathname (which* cmd))) - (if pathname - (string-append "'" pathname "'") - "None"))) - (("([\"'])(ifconfig|route|wpa_cli|wpa_supplicant|iwconfig|iwpriv|iwlist|ping)" - all open-quote cmd) - (string-append open-quote (which* cmd)))) + ;; Patch references to subprograms with absolute pathnames. + (substitute* "wicd/wnettools.py" + (("(misc\\.Run\\(\\[?[\"'])([^\"' ]*)" all pre cmd) + (string-append pre (which* cmd))) + (("(self\\._find_program_path|misc\\.find_path)\\([\"']([^\"']*)[\"']\\)" + all dummy cmd) + (let ((pathname (which* cmd))) + (if pathname + (string-append "'" pathname "'") + "None"))) + (("([\"'])(ifconfig|route|wpa_cli|wpa_supplicant|iwconfig|iwpriv|iwlist|ping)" + all open-quote cmd) + (string-append open-quote (which* cmd)))) - ;; setup.py cannot cope without LANG - (setenv "LANG" "C") + ;; setup.py cannot cope without LANG + (setenv "LANG" "C") - (let ((params - (list - (string-append "--python=" python "/bin/python") - "--no-install-init" - "--no-install-docs" - "--no-install-acpi" - "--no-install-pmutils" - "--no-install-kde" - "--no-install-gnome-shell-extensions" + (let ((params + (list + (string-append "--python=" python "/bin/python") + "--no-install-init" + "--no-install-docs" + "--no-install-acpi" + "--no-install-pmutils" + "--no-install-kde" + "--no-install-gnome-shell-extensions" - "--distro=guixsd" - "--wicdgroup=netdev" - "--loggroup=root" - "--logperms=0640" + "--distro=guixsd" + "--wicdgroup=netdev" + "--loggroup=root" + "--logperms=0640" - ;; XXX setup.py configure asks us to pass --init=, - ;; but if we do it says "no such option 'init'". - ;; (string-append "--init=" out "/etc/init.d") + ;; XXX setup.py configure asks us to pass --init=, + ;; but if we do it says "no such option 'init'". + ;; (string-append "--init=" out "/etc/init.d") - (string-append "--initfile=" out "/etc/init.d/wicd") - (string-append "--lib=" out "/lib/wicd") - (string-append "--share=" out "/share/wicd") + (string-append "--initfile=" out "/etc/init.d/wicd") + (string-append "--lib=" out "/lib/wicd") + (string-append "--share=" out "/share/wicd") - "--etc=/etc/wicd" - "--scripts=/etc/wicd/scripts" - "--pmutils=/etc/pm-utils/sleep.d" + "--etc=/etc/wicd" + "--scripts=/etc/wicd/scripts" + "--pmutils=/etc/pm-utils/sleep.d" - (string-append "--encryption=" - out "/etc/encryption/templates") - (string-append "--bin=" out "/bin") - (string-append "--sbin=" out "/sbin") - (string-append "--daemon=" out "/share/wicd/daemon") - (string-append "--backends=" out "/share/wicd/backends") - (string-append "--curses=" out "/share/wicd/curses") - (string-append "--gtk=" out "/share/wicd/gtk") - (string-append "--cli=" out "/share/wicd/cli") - (string-append "--gnome-shell-extensions=" - out "/share/gnome-shell-extensions") - (string-append "--icons=" out "/share/icons/hicolor") - (string-append "--pixmaps=" out "/share/pixmaps") - (string-append "--images=" out "/share/icons") - (string-append "--dbus=" out "/etc/dbus-1/system.d") - (string-append "--dbus-service=" - out "/share/dbus-1/system-services") - (string-append "--systemd=" out "/lib/systemd/system") - (string-append "--logrotate=" out "/etc/logrotate.d") - (string-append "--desktop=" out "/share/applications") - (string-append "--translations=" out "/share/locale") - (string-append "--autostart=" out "/etc/xdg/autostart") - (string-append "--docdir=" out "/share/doc/wicd") - (string-append "--mandir=" out "/share/man") - (string-append "--kdedir=" out "/share/autostart")))) - (format #t - "running ~s with command ~s and parameters ~s~%" - "python setup.py" "configure" params) - (zero? (apply system* "python" "setup.py" "configure" params))))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; wicd's installer tries to put dhclient.conf.template.default - ;; in /etc/wicd/other, which is not available in the build - ;; environment, so here we install it manually in the output - ;; directory. - (let ((dest-dir (string-append out "/etc/wicd")) - (name "dhclient.conf.template.default")) - (install-file (string-append "other/" name) dest-dir)) + (string-append "--encryption=" + out "/etc/encryption/templates") + (string-append "--bin=" out "/bin") + (string-append "--sbin=" out "/sbin") + (string-append "--daemon=" out "/share/wicd/daemon") + (string-append "--backends=" out "/share/wicd/backends") + (string-append "--curses=" out "/share/wicd/curses") + (string-append "--gtk=" out "/share/wicd/gtk") + (string-append "--cli=" out "/share/wicd/cli") + (string-append "--gnome-shell-extensions=" + out "/share/gnome-shell-extensions") + (string-append "--icons=" out "/share/icons/hicolor") + (string-append "--pixmaps=" out "/share/pixmaps") + (string-append "--images=" out "/share/icons") + (string-append "--dbus=" out "/etc/dbus-1/system.d") + (string-append "--dbus-service=" + out "/share/dbus-1/system-services") + (string-append "--systemd=" out "/lib/systemd/system") + (string-append "--logrotate=" out "/etc/logrotate.d") + (string-append "--desktop=" out "/share/applications") + (string-append "--translations=" out "/share/locale") + (string-append "--autostart=" out "/etc/xdg/autostart") + (string-append "--docdir=" out "/share/doc/wicd") + (string-append "--mandir=" out "/share/man") + (string-append "--kdedir=" out "/share/autostart")))) + (format #t + "running ~s with command ~s and parameters ~s~%" + "python setup.py" "configure" params) + (zero? (apply system* "python" "setup.py" "configure" params)))))) + (add-after 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; wicd's installer tries to put dhclient.conf.template.default + ;; in /etc/wicd/other, which is not available in the build + ;; environment, so here we install it manually in the output + ;; directory. + (let ((dest-dir (string-append out "/etc/wicd")) + (name "dhclient.conf.template.default")) + (install-file (string-append "other/" name) dest-dir)) - ;; Copy index.theme from hicolor-icon-theme. This is needed to - ;; allow wicd-gtk to find its icons. - (let ((hicolor (assoc-ref inputs "hicolor-icon-theme")) - (name "/share/icons/hicolor/index.theme")) - (install-file (string-append hicolor name) - (string-append out "/share/icons/hicolor"))) - #t)) - %standard-phases)))) + ;; Copy index.theme from hicolor-icon-theme. This is needed to + ;; allow wicd-gtk to find its icons. + (let ((hicolor (assoc-ref inputs "hicolor-icon-theme")) + (name "/share/icons/hicolor/index.theme")) + (install-file (string-append hicolor name) + (string-append out "/share/icons/hicolor"))) + #t)))))) (synopsis "Network connection manager") (description "Wicd is a network manager that aims to simplify wired and wireless networking.") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index b7e44cd151..c72e9a452c 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -115,7 +115,7 @@ nested include statements).") ("xcb-util-keysyms" ,xcb-util-keysyms) ("xcb-util-wm" ,xcb-util-wm))) (arguments - '(#:phases (alist-delete 'configure %standard-phases) + '(#:phases (modify-phases %standard-phases (delete 'configure)) #:tests? #f ; no check target #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)))) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 30a963728a..4804e345c2 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2016 Ricardo Wurmus -;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Efraim Flashner diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 7ca4986a0e..a44390200f 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015 Florian Paul Schmidt ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Ricardo Wurmus -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016, 2017 Marius Bakke @@ -49,9 +49,11 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages flex) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -68,7 +70,8 @@ #:use-module (gnu packages xml) #:use-module (gnu packages gtk) #:use-module (gnu packages xorg) - #:use-module (gnu packages bison)) + #:use-module (gnu packages bison) + #:use-module (ice-9 match)) ;; packages outside the x.org system proper @@ -287,7 +290,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.81") + (version "2.4.83") (source (origin (method url-fetch) @@ -297,15 +300,30 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "1bhimr6za2ddisrvrv1qqd7c2a59s7jc954sjycq2w68b8cmrh4c")) + "1minzvsyz5hgm6ixpj8ysa6jsv7vm8qc8nx390jxdsk0v9ljd983")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags + '(,@(match (%current-system) + ("armhf-linux" + '("--enable-exynos-experimental-api" + "--enable-omap-experimental-api" + ;; XXX: This fails a symbol check on a build machine: + ;; + ;; TODO: Update the list of symbols. + ;;"--enable-etnaviv-experimental-api" + "--enable-tegra-experimental-api" + "--enable-freedreno-kgsl")) + ("aarch64-linux" + '("--enable-tegra-experimental-api" + "--enable-freedreno-kgsl")) + (_ '()))))) (inputs - `(("libpciaccess" ,libpciaccess) - ("libpthread-stubs" ,libpthread-stubs))) + `(("libpciaccess" ,libpciaccess))) (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "http://dri.freedesktop.org/wiki/") + `(("pkg-config" ,pkg-config))) + (home-page "https://dri.freedesktop.org/wiki/") (synopsis "Direct rendering userspace library") (description "The Direct Rendering Infrastructure, also known as the DRI, is a framework for allowing direct access to graphics hardware under the @@ -711,7 +729,7 @@ Guile will work for XBindKeys.") ("xcb-util-keysyms" ,xcb-util-keysyms) ("xcb-util-wm" ,xcb-util-wm))) (arguments - '(#:phases (alist-delete 'configure %standard-phases) + '(#:phases (modify-phases %standard-phases (delete 'configure)) #:tests? #f ; no check target #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)))) @@ -818,7 +836,8 @@ within a single process.") (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target - #:phases (alist-delete 'configure %standard-phases) ; no configure script + ;; no configure script + #:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "MANDIR=/share/man/man1" "CC=gcc"))) @@ -1054,7 +1073,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (define-public rofi (package (name "rofi") - (version "1.3.1") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/DaveDavenport/rofi/" @@ -1062,20 +1081,24 @@ connectivity of the X server running on a particular @code{DISPLAY}.") version "/rofi-" version ".tar.xz")) (sha256 (base32 - "1s47biv6d68nblpz6d3aklsar1xxxcilzr4y77v3hz2w1wbz2b5m")))) + "0xnfzbwhxd2cd4lxkc24mbx3f4b1h3l1alcdbbsymi2b9fdwmywh")))) (build-system gnu-build-system) (inputs `(("pango" ,pango) ("cairo" ,cairo) ("glib" ,glib) ("startup-notification" ,startup-notification) + ("librsvg" ,librsvg) ("libxkbcommon" ,libxkbcommon) ("libxcb" ,libxcb) ("xcb-util" ,xcb-util) ("xcb-util-xrm" ,xcb-util-xrm) ("xcb-util-wm" ,xcb-util-wm))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("bison" ,bison) + ("check" ,check-0.11.0) + ("flex" ,flex) + ("pkg-config" ,pkg-config))) (arguments `(#:parallel-tests? #f ; May fail in some circumstances. #:phases diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index b936dc45d9..7668a1d380 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -114,17 +114,17 @@ Xfce Desktop Environment.") (arguments '(#:phases ;; Run check after install phase to test dbus activation. - (alist-cons-after - 'install 'check - (lambda _ - (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME - ;; Run test-suite under a dbus session. - (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service - (string-append %output "/share")) - ;; For the missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0"); - (zero? (system* "dbus-launch" "make" "check"))) - (alist-delete 'check %standard-phases)))) + (modify-phases %standard-phases + (add-after 'install 'check + (lambda _ + (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME + ;; Run test-suite under a dbus session. + (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service + (string-append %output "/share")) + ;; For the missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0"); + (zero? (system* "dbus-launch" "make" "check")))) + (delete 'check)))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm index 2e65000eb7..64ca57028f 100644 --- a/gnu/packages/xfig.scm +++ b/gnu/packages/xfig.scm @@ -159,44 +159,42 @@ selected in various ways. For text, 35 fonts are available.") (arguments `(#:tests? #f #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((imake (assoc-ref inputs "imake")) - (out (assoc-ref outputs "out"))) - (substitute* '("fig2dev/Imakefile" - "transfig/Imakefile") - (("XCOMM (BINDIR = )[[:graph:]]*" _ front) - (string-append front out "/bin")) - (("XCOMM USEINLINE") "USEINLINE") - ;; The variable name is deceptive. The directory is used as an - ;; installation path for bitmaps. - (("(XFIGLIBDIR =[[:blank:]]*)[[:graph:]]*" _ front) - (string-append front out "/lib")) - (("(XPMLIBDIR = )[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libxpm") "/lib")) - (("(XPMINC = -I)[[:graph:]]*" _ front) - (string-append front (assoc-ref inputs "libxpm") "/include/X11")) - (("/usr/local/lib/fig2dev") (string-append out "/lib"))) - ;; The -a argument is required in order to pick up the correct paths - ;; to several X header files. - (zero? (system* "xmkmf" "-a")) - (substitute* '("Makefile" - "fig2dev/Makefile" - "transfig/Makefile") - ;; These imake variables somehow remain undefined - (("DefaultGcc2[[:graph:]]*Opt") "-O2") - ;; Reset a few variable defaults that are set in imake templates - ((imake) out) - (("(MANPATH = )[[:graph:]]*" _ front) - (string-append front out "/share/man")) - (("(CONFDIR = )([[:graph:]]*)" _ front default) - (string-append front out default))))) - (alist-cons-after - 'install 'install/doc - (lambda _ - (zero? (system* "make" "install.man"))) - %standard-phases)))) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((imake (assoc-ref inputs "imake")) + (out (assoc-ref outputs "out"))) + (substitute* '("fig2dev/Imakefile" + "transfig/Imakefile") + (("XCOMM (BINDIR = )[[:graph:]]*" _ front) + (string-append front out "/bin")) + (("XCOMM USEINLINE") "USEINLINE") + ;; The variable name is deceptive. The directory is used as an + ;; installation path for bitmaps. + (("(XFIGLIBDIR =[[:blank:]]*)[[:graph:]]*" _ front) + (string-append front out "/lib")) + (("(XPMLIBDIR = )[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libxpm") "/lib")) + (("(XPMINC = -I)[[:graph:]]*" _ front) + (string-append front (assoc-ref inputs "libxpm") "/include/X11")) + (("/usr/local/lib/fig2dev") (string-append out "/lib"))) + ;; The -a argument is required in order to pick up the correct paths + ;; to several X header files. + (zero? (system* "xmkmf" "-a")) + (substitute* '("Makefile" + "fig2dev/Makefile" + "transfig/Makefile") + ;; These imake variables somehow remain undefined + (("DefaultGcc2[[:graph:]]*Opt") "-O2") + ;; Reset a few variable defaults that are set in imake templates + ((imake) out) + (("(MANPATH = )[[:graph:]]*" _ front) + (string-append front out "/share/man")) + (("(CONFDIR = )([[:graph:]]*)" _ front default) + (string-append front out default)))))) + (add-after 'install 'install/doc + (lambda _ + (zero? (system* "make" "install.man"))))))) (home-page "http://www.xfig.org/") (synopsis "Create portable LaTeX figures") (description diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index d66cf417f6..dea829b569 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -119,26 +119,25 @@ ("xproto" ,xproto))) (arguments `(#:phases - (alist-cons-after - 'install 'install-data - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((cf-files (assoc-ref inputs "xorg-cf-files")) - (out (assoc-ref outputs "out")) - (unpack (assoc-ref %standard-phases 'unpack)) - (patch-source-shebangs - (assoc-ref %standard-phases 'patch-source-shebangs))) - (mkdir "xorg-cf-files") - (with-directory-excursion "xorg-cf-files" - (apply unpack (list #:source cf-files)) - (apply patch-source-shebangs (list #:source cf-files)) - (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf" - "linux.cf" "Amoeba.cf" "cygwin.cf") - (("/bin/sh") (which "bash"))) - (and (zero? (system* "./configure" - (string-append "SHELL=" (which "bash")) - (string-append "--prefix=" out))) - (zero? (system* "make" "install")))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'install 'install-data + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((cf-files (assoc-ref inputs "xorg-cf-files")) + (out (assoc-ref outputs "out")) + (unpack (assoc-ref %standard-phases 'unpack)) + (patch-source-shebangs + (assoc-ref %standard-phases 'patch-source-shebangs))) + (mkdir "xorg-cf-files") + (with-directory-excursion "xorg-cf-files" + (apply unpack (list #:source cf-files)) + (apply patch-source-shebangs (list #:source cf-files)) + (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf" + "linux.cf" "Amoeba.cf" "cygwin.cf") + (("/bin/sh") (which "bash"))) + (and (zero? (system* "./configure" + (string-append "SHELL=" (which "bash")) + (string-append "--prefix=" out))) + (zero? (system* "make" "install")))))))))) (home-page "http://www.x.org") (synopsis "Source code configuration and build system") (description @@ -4862,6 +4861,8 @@ an X Window System display.") "mirror://xorg/individual/lib/libXfont-" version ".tar.bz2")) + (patches (search-patches "libxfont-CVE-2017-13720.patch" + "libxfont-CVE-2017-13722.patch")) (sha256 (base32 "0w8d07bkmjiarkx09579bl8zsq903mn8javc7qpi0ix4ink5x502")))) @@ -4891,6 +4892,7 @@ new API's in libXft, or the legacy API's in libX11.") (package (inherit libxfont) (version "2.0.1") + (replacement libxfont2/fixed) (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/lib/libXfont2-" @@ -4899,6 +4901,15 @@ new API's in libXft, or the legacy API's in libX11.") (base32 "0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9")))))) +(define libxfont2/fixed + (package + (inherit libxfont2) + (source + (origin + (inherit (package-source libxfont2)) + (patches (search-patches "libxfont-CVE-2017-13720.patch" + "libxfont-CVE-2017-13722.patch")))))) + (define-public libxi (package (name "libxi") @@ -5067,7 +5078,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.19.3") + (version "1.19.4") (source (origin (method url-fetch) @@ -5076,9 +5087,9 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7")) + "1a690fzv5l5ks45g9zhlzdskdq8q73mcbpb9a3wz3shxm778lxda")) (patches - (cons + (list ;; See: ;; https://lists.fedoraproject.org/archives/list/devel@lists. ;; fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/ @@ -5090,9 +5101,7 @@ over Xlib, including: (sha256 (base32 "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) - (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")) - (search-patches "xorg-server-CVE-2017-10971.patch" - "xorg-server-CVE-2017-10972.patch"))))) + (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) @@ -5204,23 +5213,20 @@ draggable titlebars and borders.") (license license:x11))) ;; This package is intended to be used when building GTK+. -;; Note: It's currently marked as "hidden" to avoid having two non-eq? -;; packages with the same name and version. (define-public xorg-server-1.19.3 - (hidden-package - (package - (inherit xorg-server) - (name "xorg-server") - (version "1.19.3") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/xserver/" - name "-" version ".tar.bz2")) - (sha256 - (base32 - "162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7"))))))) + (package + (inherit xorg-server) + (name "xorg-server") + (version "1.19.3") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/xserver/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7")))))) (define-public xorg-server-xwayland (package @@ -5302,6 +5308,15 @@ draggable titlebars and borders.") ("xproto" ,xproto))) (native-inputs `(("pkg-config" ,pkg-config))) +;; TODO: add XCURSOR_PATH=.../share/icons to profile search paths, so +;; libXcursor finds cursors installed into a profile. If we solve bugs +;; and , we can fix +;; this with a search-path as follows: +;; +;; (native-search-paths +;; (list (search-path-specification +;; (variable "XCURSOR_PATH") +;; (files '("share/icons"))))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg Cursor management library") (description "Xorg Cursor management library.") diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm index dfa9d7373d..c0bbafdd59 100644 --- a/gnu/packages/zile.scm +++ b/gnu/packages/zile.scm @@ -40,14 +40,14 @@ (define-public zile (package (name "zile") - (version "2.4.13") + (version "2.4.14") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/zile/zile-" version ".tar.gz")) (sha256 (base32 - "03mcg0bxkzprlsx8y6h22w924pzx4a9zr7zm3g11j8j3x9lz75f7")))) + "0x3byaddms8l3g7igx6njycqsq98wgapysdb5c7lhcnajlkp8y3s")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm index de1f6b8411..6a01cb1ce6 100644 --- a/gnu/services/databases.scm +++ b/gnu/services/databases.scm @@ -44,6 +44,14 @@ memcached-configuration-udp-port memcached-configuration-additional-options + + mongodb-configuration + mongodb-configuration? + mongodb-configuration-mongodb + mongodb-configuration-config-file + mongodb-configuration-data-directory + mongodb-service-type + mysql-service mysql-service-type mysql-configuration @@ -262,6 +270,87 @@ and stores the database cluster in @var{data-directory}." (const %memcached-accounts)))) (default-value (memcached-configuration)))) + +;;; +;;; MongoDB +;;; + +(define %default-mongodb-configuration-file + (plain-file + "mongodb.yaml" + "# GNU Guix: MongoDB default configuration file +processManagement: + pidFilePath: /var/run/mongodb/pid +storage: + dbPath: /var/lib/mongodb +")) + + +(define-record-type* + mongodb-configuration make-mongodb-configuration + mongodb-configuration? + (mongodb mongodb-configuration-mongodb + (default mongodb)) + (config-file mongodb-configuration-config-file + (default %default-mongodb-configuration-file)) + (data-directory mongodb-configuration-data-directory + (default "/var/lib/mongodb"))) + +(define %mongodb-accounts + (list (user-group (name "mongodb") (system? #t)) + (user-account + (name "mongodb") + (group "mongodb") + (system? #t) + (comment "Mongodb server user") + (home-directory "/var/lib/mongodb") + (shell (file-append shadow "/sbin/nologin"))))) + +(define mongodb-activation + (match-lambda + (($ mongodb config-file data-directory) + #~(begin + (use-modules (guix build utils)) + (let ((user (getpwnam "mongodb"))) + (for-each + (lambda (directory) + (mkdir-p directory) + (chown directory + (passwd:uid user) (passwd:gid user))) + '("/var/run/mongodb" #$data-directory))))))) + +(define mongodb-shepherd-service + (match-lambda + (($ mongodb config-file data-directory) + (shepherd-service + (provision '(mongodb)) + (documentation "Run the Mongodb daemon.") + (requirement '(user-processes loopback)) + (start #~(make-forkexec-constructor + `(,(string-append #$mongodb "/bin/mongod") + "--config" + ,#$config-file) + #:user "mongodb" + #:group "mongodb" + #:pid-file "/var/run/mongodb/pid" + #:log-file "/var/log/mongodb.log")) + (stop #~(make-kill-destructor)))))) + +(define mongodb-service-type + (service-type + (name 'mongodb) + (description "Run the MongoDB document database server.") + (extensions + (list (service-extension shepherd-root-service-type + (compose list + mongodb-shepherd-service)) + (service-extension activation-service-type + mongodb-activation) + (service-extension account-service-type + (const %mongodb-accounts)))) + (default-value + (mongodb-configuration)))) + ;;; ;;; MySQL. diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 42b96b417e..b0c23aafc7 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -25,7 +25,6 @@ #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services dbus) - #:use-module (gnu services base) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu packages admin) diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index 107bc8e77a..e39f4411fd 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Sou Bunnbu +;;; Copyright © 2017 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,18 +22,40 @@ #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services shepherd) + #:use-module (gnu services web) #:use-module (gnu system shadow) #:use-module (gnu packages version-control) #:use-module (gnu packages admin) #:use-module (guix records) #:use-module (guix gexp) + #:use-module (guix store) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (git-daemon-service git-daemon-service-type git-daemon-configuration - git-daemon-configuration?)) + git-daemon-configuration? + + + cgit-configuration-file + cgit-configuration-file? + cgit-configuration-file-css + cgit-configuration-file-logo + cgit-configuration-file-robots + cgit-configuration-file-virtual-root + cgit-configuration-file-repository-directory + + + cgit-configuration + cgit-configuration? + cgit-configuration-config-file + cgit-configuration-package + + %cgit-configuration-nginx + cgit-configuration-nginx-config + + cgit-service-type)) ;;; Commentary: ;;; @@ -139,3 +162,97 @@ The optional @var{config} argument should be a @code{} object, by default it allows read-only access to exported repositories under @file{/srv/git}." (service git-daemon-service-type config)) + + +;;; +;;; Cgit +;;; + +(define-record-type* + cgit-configuration-file + make-cgit-configuration-file + cgit-configuration-file? + (css cgit-configuration-file-css ; string + (default "/share/cgit/cgit.css")) + (logo cgit-configuration-file-logo ; string + (default "/share/cgit/cgit.png")) + (robots cgit-configuration-file-robots ; list + (default '("noindex" "nofollow"))) + (virtual-root cgit-configuration-file-virtual-root ; string + (default "/")) + (repository-directory cgit-configuration-file-repository-directory ; string + (default "/srv/git"))) + +(define (cgit-configuration-robots-string robots) + (string-join robots ", ")) + +(define-gexp-compiler (cgit-configuration-file-compiler + (file ) system target) + (match file + (($ css logo + robots virtual-root repository-directory) + (apply text-file* "cgitrc" + (letrec-syntax ((option (syntax-rules () + ((_ key value) + (if value + `(,key "=" ,value "\n") + '())))) + (key/value (syntax-rules () + ((_ (key value) rest ...) + (append (option key value) + (key/value rest ...))) + ((_) + '())))) + (key/value ("css" css) + ("logo" logo) + ("robots" (cgit-configuration-robots-string robots)) + ("virtual-root" virtual-root) + ("scan-path" repository-directory))))))) + +(define %cgit-configuration-nginx + (list + (nginx-server-configuration + (root cgit) + (locations + (list + (nginx-location-configuration + (uri "@cgit") + (body '("fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi;" + "fastcgi_param PATH_INFO $uri;" + "fastcgi_param QUERY_STRING $args;" + "fastcgi_param HTTP_HOST $server_name;" + "fastcgi_pass 127.0.0.1:9000;"))))) + (try-files (list "$uri" "@cgit")) + (https-port #f) + (ssl-certificate #f) + (ssl-certificate-key #f)))) + +(define-record-type* + cgit-configuration make-cgit-configuration + cgit-configuration? + (config-file cgit-configuration-config-file + (default (cgit-configuration-file))) + (package cgit-configuration-package + (default cgit)) + (nginx cgit-configuration-nginx + (default %cgit-configuration-nginx))) + +(define (cgit-activation config) + ;; Cgit compiled with default configuration path + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/cache/cgit") + (copy-file #$(cgit-configuration-config-file config) "/etc/cgitrc"))) + +(define (cgit-configuration-nginx-config config) + (cgit-configuration-nginx config)) + +(define cgit-service-type + (service-type + (name 'cgit) + (extensions + (list (service-extension activation-service-type + cgit-activation) + (service-extension nginx-service-type + cgit-configuration-nginx-config))) + (default-value (cgit-configuration)))) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 868a227fc0..cbb4a79a7b 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -108,10 +108,12 @@ #f)) (define (serialize-tls-auth role location) - (serialize-field 'tls-auth - (string-append location " " (match role - ('server "0") - ('client "1"))))) + (if location + (serialize-field 'tls-auth + (string-append location " " (match role + ('server "0") + ('client "1")))) + #f)) (define (tls-auth? val) (or (eq? val #f) (string? val))) diff --git a/gnu/system.scm b/gnu/system.scm index 8ab4801b74..5f562b48bb 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -231,6 +231,14 @@ directly by the user." (kernel-arguments boot-parameters-kernel-arguments) (initrd boot-parameters-initrd)) +(define (ensure-not-/dev device) + "If DEVICE starts with a slash, return #f. This is meant to filter out +Linux device names such as /dev/sda, and to preserve GRUB device names and +file system labels." + (if (and (string? device) (string-prefix? "/" device)) + #f + device)) + (define (read-boot-parameters port) "Read boot parameters from PORT and return the corresponding object or #f if the format is unrecognized." @@ -243,11 +251,6 @@ directly by the user." ((? string? device) device))) - (define (ensure-not-/dev device) - (if (and (string? device) (string-prefix? "/" device)) - #f - device)) - (match (read port) (('boot-parameters ('version 0) ('label label) ('root-device root) @@ -580,6 +583,9 @@ export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share export XDG_CONFIG_DIRS=$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg +# Make sure libXcursor finds cursors installed into user or system profiles. See +export XCURSOR_PATH=$HOME/.icons:$HOME/.guix-profile/share/icons:/run/current-system/profile/share/icons + # Ignore the default value of 'PATH'. unset PATH @@ -939,7 +945,7 @@ kernel arguments for that derivation to ." (operating-system-user-kernel-arguments os))) (initrd initrd) (bootloader-name bootloader-name) - (store-device (fs->boot-device store)) + (store-device (ensure-not-/dev (fs->boot-device store))) (store-mount-point (file-system-mount-point store)))))) (define (device->sexp device) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 52f16676f5..92f040425d 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -38,6 +38,7 @@ file-system-check? file-system-create-mount-point? file-system-dependencies + file-system-location file-system-type-predicate @@ -101,7 +102,10 @@ (create-mount-point? file-system-create-mount-point? ; Boolean (default #f)) (dependencies file-system-dependencies ; list of - (default '()))) ; or + (default '())) ; or + (location file-system-location + (default (current-source-location)) + (innate))) ;; Note: This module is used both on the build side and on the host side. ;; Arrange not to pull (guix store) and (guix config) because the latter diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 5a7aec5c87..969a89266c 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -78,6 +78,19 @@ the derivations referenced by EXP are automatically copied to the initrd." (use-modules (gnu build linux-initrd)) (mkdir #$output) + + ;; The guile used in the initrd must be present in the store, so + ;; that module loading works once the root is switched. + ;; + ;; To ensure that is the case, add an explicit reference to the + ;; guile package used in the initrd to the output. + ;; + ;; This fixes guix-patches bug #28399, "Fix mysql activation, and + ;; add a basic test". + (call-with-output-file (string-append #$ output "/references") + (lambda (port) + (simple-format port "~A\n" #$guile))) + (build-initrd (string-append #$output "/initrd") #:guile #$guile #:init #$init diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index 6470abb8cc..e422e06a6d 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -29,6 +29,7 @@ uuid? uuid-type uuid-bytevector + uuid=? bytevector->uuid @@ -281,3 +282,15 @@ corresponding bytevector; otherwise return #f." ((_ . (? procedure? unparse)) (unparse bv)))) (((? uuid? uuid)) (uuid->string (uuid-bytevector uuid) (uuid-type uuid))))) + +(define uuid=? + ;; Return true if A is equal to B, comparing only the actual bits. + (match-lambda* + (((? bytevector? a) (? bytevector? b)) + (bytevector=? a b)) + (((? uuid? a) (? bytevector? b)) + (bytevector=? (uuid-bytevector a) b)) + (((? uuid? a) (? uuid? b)) + (bytevector=? (uuid-bytevector a) (uuid-bytevector b))) + ((a b) + (uuid=? b a)))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 78143e4f7a..273a895bef 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -304,9 +304,12 @@ the image." #:register-closures? #$register-closures? #:system-directory #$os-drv)) (root-size #$(if (eq? 'guess disk-image-size) - #~(estimated-partition-size - (map (cut string-append "/xchg/" <>) - graphs)) + #~(max + ;; Minimum 20 MiB root size + (* 20 (expt 2 20)) + (estimated-partition-size + (map (cut string-append "/xchg/" <>) + graphs))) (- disk-image-size (* 50 (expt 2 20))))) (partitions (list (partition @@ -706,6 +709,8 @@ it is mostly useful when FULL-BOOT? is true." (default #f)) (memory-size virtual-machine-memory-size ;integer (MiB) (default 256)) + (disk-image-size virtual-machine-disk-image-size ;integer (bytes) + (default 'guess)) (port-forwardings virtual-machine-port-forwardings ;list of integer pairs (default '()))) @@ -734,12 +739,15 @@ FORWARDINGS is a list of host-port/guest-port pairs." system target) ;; XXX: SYSTEM and TARGET are ignored. (match vm - (($ os qemu graphic? memory-size ()) + (($ os qemu graphic? memory-size disk-image-size ()) (system-qemu-image/shared-store-script os #:qemu qemu #:graphic? graphic? - #:memory-size memory-size)) - (($ os qemu graphic? memory-size forwardings) + #:memory-size memory-size + #:disk-image-size + disk-image-size)) + (($ os qemu graphic? memory-size disk-image-size + forwardings) (let ((options `("-net" ,(string-append "user," @@ -748,6 +756,8 @@ FORWARDINGS is a list of host-port/guest-port pairs." #:qemu qemu #:graphic? graphic? #:memory-size memory-size + #:disk-image-size + disk-image-size #:options options))))) ;;; vm.scm ends here diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm index 9d9a753747..e7097690a0 100644 --- a/gnu/tests/databases.scm +++ b/gnu/tests/databases.scm @@ -25,9 +25,12 @@ #:use-module (gnu services) #:use-module (gnu services databases) #:use-module (gnu services networking) + #:use-module (gnu packages databases) #:use-module (guix gexp) #:use-module (guix store) - #:export (%test-memcached)) + #:export (%test-memcached + %test-mongodb + %test-mysql)) (define %memcached-os (simple-operating-system @@ -121,3 +124,143 @@ (name "memcached") (description "Connect to a running MEMCACHED server.") (value (run-memcached-test)))) + +(define %mongodb-os + (operating-system + (inherit + (simple-operating-system + (dhcp-client-service) + (service mongodb-service-type))) + (packages (cons* mongodb + %base-packages)))) + +(define* (run-mongodb-test #:optional (port 27017)) + "Run tests in %MONGODB-OS, forwarding PORT." + (define os + (marionette-operating-system + %mongodb-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (memory-size 1024) + (disk-image-size (* 1024 (expt 2 20))) + (port-forwardings `((27017 . ,port))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette) + (ice-9 popen) + (ice-9 rdelim)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "mongodb") + + (test-assert "service running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (match (start-service 'mongodb) + (#f #f) + (('service response-parts ...) + (match (assq-ref response-parts 'running) + ((pid) (number? pid)))))) + marionette)) + + (test-eq "test insert" + 0 + (system* (string-append #$mongodb "/bin/mongo") + "test" + "--eval" + "db.testCollection.insert({data: 'test-data'})")) + + (test-equal "test find" + "test-data" + (let* ((port (open-pipe* + OPEN_READ + (string-append #$mongodb "/bin/mongo") + "test" + "--quiet" + "--eval" + "db.testCollection.findOne().data")) + (output (read-line port)) + (status (close-pipe port))) + output)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "mongodb-test" test)) + +(define %test-mongodb + (system-test + (name "mongodb") + (description "Connect to a running MONGODB server.") + (value (run-mongodb-test)))) + + +;;; +;;; The MySQL service. +;;; + +(define %mysql-os + (simple-operating-system + (mysql-service))) + +(define* (run-mysql-test) + "Run tests in %MYSQL-OS." + (define os + (marionette-operating-system + %mysql-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (memory-size 512))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "mysql") + + (test-assert "service running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (match (start-service 'mysql) + (#f #f) + (('service response-parts ...) + (match (assq-ref response-parts 'running) + ((pid) (number? pid)))))) + marionette)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "mysql-test" test)) + +(define %test-mysql + (system-test + (name "mysql") + (description "Start the MySQL service.") + (value (run-mysql-test)))) diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm new file mode 100644 index 0000000000..5a3937cfed --- /dev/null +++ b/gnu/tests/version-control.scm @@ -0,0 +1,176 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Oleg Pykhalov +;;; Copyright © 2017 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu tests version-control) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services version-control) + #:use-module (gnu services web) + #:use-module (gnu services networking) + #:use-module (gnu packages version-control) + #:use-module (guix gexp) + #:use-module (guix store) + #:export (%test-cgit)) + +(define %make-git-repository + ;; Create Git repository in /srv/git/test. + #~(begin + (mkdir-p "/srv/git/test") + (system* (string-append #$git "/bin/git") "-C" "/srv/git/test" + "init" "--bare"))) + +(define %cgit-configuration-nginx + (list + (nginx-server-configuration + (root cgit) + (locations + (list + (nginx-location-configuration + (uri "@cgit") + (body '("fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi;" + "fastcgi_param PATH_INFO $uri;" + "fastcgi_param QUERY_STRING $args;" + "fastcgi_param HTTP_HOST $server_name;" + "fastcgi_pass 127.0.0.1:9000;"))))) + (try-files (list "$uri" "@cgit")) + (http-port 19418) + (https-port #f) + (ssl-certificate #f) + (ssl-certificate-key #f)))) + +(define %cgit-os + ;; Operating system under test. + (let ((base-os + (simple-operating-system + (dhcp-client-service) + (service nginx-service-type) + (service fcgiwrap-service-type) + (service cgit-service-type + (cgit-configuration + (nginx %cgit-configuration-nginx))) + (simple-service 'make-git-repository activation-service-type + %make-git-repository)))) + (operating-system + (inherit base-os) + (packages (cons* git + (operating-system-packages base-os)))))) + +(define* (run-cgit-test #:optional (http-port 19418)) + "Run tests in %CGIT-OS, which has nginx running and listening on +HTTP-PORT." + (define os + (marionette-operating-system + %cgit-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings `((8080 . ,http-port))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette) + (web uri) + (web client) + (web response)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "cgit") + + ;; Wait for nginx to be up and running. + (test-eq "service running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'nginx) + 'running!) + marionette)) + + ;; Wait for fcgiwrap to be up and running. + (test-eq "service running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'fcgiwrap) + 'running!) + marionette)) + + ;; Make sure the PID file is created. + (test-assert "PID file" + (marionette-eval + '(file-exists? "/var/run/nginx/pid") + marionette)) + + ;; Make sure the configuration file is created. + (test-assert "configuration file" + (marionette-eval + '(file-exists? "/etc/cgitrc") + marionette)) + + ;; Make sure Git test repository is created. + (test-assert "Git test repository" + (marionette-eval + '(file-exists? "/srv/git/test") + marionette)) + + ;; Make sure we can access pages that correspond to our repository. + (letrec-syntax ((test-url + (syntax-rules () + ((_ path code) + (test-equal (string-append "GET " path) + code + (let-values (((response body) + (http-get (string-append + "http://localhost:8080" + path)))) + (response-code response)))) + ((_ path) + (test-url path 200))))) + (test-url "/") + (test-url "/test") + (test-url "/test/log") + (test-url "/test/tree") + (test-url "/test/does-not-exist" 404) + (test-url "/does-not-exist" 404)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "cgit-test" test)) + +(define %test-cgit + (system-test + (name "cgit") + (description "Connect to a running Cgit server.") + (value (run-cgit-test)))) diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index e0870a605c..b5626bd42d 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -99,6 +99,9 @@ (make-flags ''()) (build-target "jar") (jar-name #f) + (main-class #f) + (test-include (list "**/*Test.java")) + (test-exclude (list "**/Abstract*.java")) (source-dir "src") (test-dir "src/test") (phases '(@ (guix build ant-build-system) @@ -130,6 +133,9 @@ #:test-target ,test-target #:build-target ,build-target #:jar-name ,jar-name + #:main-class ,main-class + #:test-include (list ,@test-include) + #:test-exclude (list ,@test-exclude) #:source-dir ,source-dir #:test-dir ,test-dir #:phases ,phases diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 4042630a10..a440daf054 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -36,7 +36,9 @@ ;; Code: (define* (default-build.xml jar-name prefix #:optional - (source-dir ".") (test-dir "./test")) + (source-dir ".") (test-dir "./test") (main-class #f) + (test-include '("**/*Test.java")) + (test-exclude '("**/Abstract*Test.java"))) "Create a simple build.xml with standard targets for Ant." (call-with-output-file "build.xml" (lambda (port) @@ -44,6 +46,10 @@ `(project (@ (basedir ".")) (property (@ (name "classes.dir") (value "${basedir}/build/classes"))) + (property (@ (name "manifest.dir") + (value "${basedir}/build/manifest"))) + (property (@ (name "manifest.file") + (value "${manifest.dir}/MANIFEST.MF"))) (property (@ (name "jar.dir") (value "${basedir}/build/jar"))) (property (@ (name "dist.dir") @@ -60,6 +66,17 @@ (path (@ (id "classpath")) (pathelement (@ (location "${env.CLASSPATH}")))) + (target (@ (name "manifest")) + (mkdir (@ (dir "${manifest.dir}"))) + (echo (@ (file "${manifest.file}") + (message ,(string-append + (if main-class + (string-append + "Main-Class: " main-class + "${line.separator}") + "") + ""))))) + (target (@ (name "compile")) (mkdir (@ (dir "${classes.dir}"))) (javac (@ (includeantruntime "false") @@ -94,13 +111,19 @@ (batchtest (@ (fork "yes") (todir "${test.home}/test-reports")) (fileset (@ (dir "${test.home}/java")) - (include (@ (name "**/*Test.java" ))))))) + ,@(map (lambda (file) + `(include (@ (name ,file)))) + test-include) + ,@(map (lambda (file) + `(exclude (@ (name ,file)))) + test-exclude))))) (target (@ (name "jar") - (depends "compile")) + (depends "compile, manifest")) (mkdir (@ (dir "${jar.dir}"))) (exec (@ (executable "jar")) - (arg (@ (line ,(string-append "-cf ${jar.dir}/" jar-name + (arg (@ (line ,(string-append "-cmf ${manifest.file} " + "${jar.dir}/" jar-name " -C ${classes.dir} .")))))) (target (@ (name "install")) @@ -133,12 +156,15 @@ to the default GNU unpack strategy." (define* (configure #:key inputs outputs (jar-name #f) (source-dir "src") - (test-dir "src/test") #:allow-other-keys) + (test-dir "src/test") + (main-class #f) + (test-include '("**/*Test.java")) + (test-exclude '("**/Abstract*.java")) #:allow-other-keys) (when jar-name (default-build.xml jar-name (string-append (assoc-ref outputs "out") "/share/java") - source-dir test-dir)) + source-dir test-dir main-class test-include test-exclude)) (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) (setenv "CLASSPATH" (generate-classpath inputs))) diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 03b0f925a7..1ae35ab382 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -178,7 +178,8 @@ containing the source code. Write any debugging output to DEBUG-PORT." ;; Make sure compilation related modules are loaded before starting to ;; compile files in parallel. (compile #f) - (par-for-each + (n-par-for-each + (parallel-job-count) (lambda (file) (with-mutex mutex (display #\cr log-port) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 55b0df3911..e5779cbd0b 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -773,6 +773,7 @@ Turning finalization off shuts down the finalization thread as a side effect." ("x86_64" 56) ("mips64" 5055) ("armv7l" 120) + ("aarch64" 220) (_ #f)))) (lambda (flags) "Create a new child process by duplicating the current parent process. diff --git a/guix/download.scm b/guix/download.scm index a1560de1a1..449521c199 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -235,6 +235,7 @@ "http://archive.debian.org/debian/") (kde "http://download.kde.org" + "http://download.kde.org/Attic" ; for when it gets archived. ;; Mirrors from http://files.kde.org/extra/mirrors.html ;; Europe "http://mirror.easyname.at/kde" diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 57bbeec465..fc61f0b547 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -33,6 +33,7 @@ #:use-module (guix licenses) #:use-module (guix records) #:use-module (guix ui) + #:use-module (guix upstream) #:use-module (guix utils) #:use-module (guix memoization) #:use-module (guix scripts) @@ -73,6 +74,7 @@ check-mirror-url check-license check-vulnerabilities + check-for-updates check-formatting run-checkers @@ -826,6 +828,17 @@ from ~s: ~a (~s)~%") (string-join (map vulnerability-id unpatched) ", "))))))))) +(define (check-for-updates package) + "Check if there is an update available for PACKAGE." + (match (package-latest-release* package (force %updaters)) + ((? upstream-source? source) + (when (version>? (upstream-source-version source) + (package-version package)) + (emit-warning package + (format #f (G_ "can be upgraded to ~a") + (upstream-source-version source))))) + (#f #f))) ; cannot find newer upstream release + ;;; ;;; Source code formatting. @@ -991,6 +1004,10 @@ or a list thereof") (description "Check the Common Vulnerabilities and Exposures\ (CVE) database") (check check-vulnerabilities)) + (lint-checker + (name 'refresh) + (description "Check the package for new upstream releases") + (check check-for-updates)) (lint-checker (name 'formatting) (description "Look for formatting issues in the source") diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 4adc705220..0e365018a9 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -604,12 +604,12 @@ and upgrades." (options->upgrade-predicate opts)) (define upgraded - (fold (lambda (entry transaction) - (if (upgrade? (manifest-entry-name entry)) - (transaction-upgrade-entry entry transaction) - transaction)) - transaction - (manifest-entries manifest))) + (fold-right (lambda (entry transaction) + (if (upgrade? (manifest-entry-name entry)) + (transaction-upgrade-entry entry transaction) + transaction)) + transaction + (manifest-entries manifest))) (define to-install (filter-map (match-lambda diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index ade3c49a54..dd54f03996 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -484,9 +484,11 @@ requested using POOL." #:buffer-size (* 128 1024)) (rename-file (string-append nar ".tmp") nar)) ('none - ;; When compression is disabled, we retrieve files directly from the - ;; store; no need to cache them. - #t)) + ;; Cache nars even when compression is disabled so that we can + ;; guarantee the TTL (see .) + (with-atomic-file-output nar + (lambda (port) + (write-file item port))))) (mkdir-p (dirname narinfo)) (with-atomic-file-output narinfo @@ -788,8 +790,11 @@ blocking." ;; /nar/ ((components ... store-item) (if (nar-path? components) - (render-nar store request store-item - #:compression %no-compression) + (if cache + (render-nar/cached store cache request store-item + #:compression %no-compression) + (render-nar store request store-item + #:compression %no-compression)) (not-found request))) (x (not-found request))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index b1c87c870e..2400198000 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -82,7 +82,7 @@ Install it by running: (resolve-interface '(git)))) (define %repository-url - "https://git.savannah.gnu.org/git/guix.git") + (or (getenv "GUIX_PULL_URL") "https://git.savannah.gnu.org/git/guix.git")) ;;; diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 5add64d8e8..d638d744af 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -30,7 +30,6 @@ #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix upstream) - #:use-module (guix discovery) #:use-module (guix graph) #:use-module (guix scripts graph) #:use-module (guix monads) @@ -46,8 +45,7 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (ice-9 binary-ports) - #:export (guix-refresh - %updaters)) + #:export (guix-refresh)) ;;; @@ -162,22 +160,6 @@ specified with `--select'.\n")) ;;; Updates. ;;; -(define (importer-modules) - "Return the list of importer modules." - (cons (resolve-interface '(guix gnu-maintenance)) - (all-modules (map (lambda (entry) - `(,entry . "guix/import")) - %load-path)))) - -(define %updaters - ;; The list of publically-known updaters. - (delay (fold-module-public-variables (lambda (obj result) - (if (upstream-updater? obj) - (cons obj result) - result)) - '() - (importer-modules)))) - (define (lookup-updater-by-name name) "Return the updater called NAME." (or (find (lambda (updater) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 567d8bb643..e50f1d8ac7 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -37,6 +37,8 @@ #:use-module (guix scripts graph) #:use-module (guix build utils) #:use-module (gnu build install) + #:autoload (gnu build file-systems) + (find-partition-by-label find-partition-by-uuid) #:use-module (gnu system) #:use-module (gnu bootloader) #:use-module (gnu system file-systems) @@ -404,6 +406,7 @@ NUMBERS, which is a list of generation numbers." "Roll back the system profile to its previous generation. STORE is an open connection to the store." (switch-to-system-generation store "-1")) + ;;; ;;; Switch generations. @@ -554,6 +557,61 @@ PATTERN, a string. When PATTERN is #f, display all the system generations." (else (leave (G_ "invalid syntax: ~a~%") pattern)))) + +;;; +;;; File system declaration checks. +;;; + +(define (check-file-system-availability file-systems) + "Check whether the UUIDs or partition labels that FILE-SYSTEMS refer to, if +any, are available. Raise an error if they're not." + (define relevant + (filter (lambda (fs) + (and (file-system-mount? fs) + (not (string=? "tmpfs" (file-system-type fs))) + (not (memq 'bind-mount (file-system-flags fs))))) + file-systems)) + + (define labeled + (filter (lambda (fs) + (eq? (file-system-title fs) 'label)) + relevant)) + + (define uuid + (filter (lambda (fs) + (eq? (file-system-title fs) 'uuid)) + relevant)) + + (define fail? #f) + + (define (file-system-location* fs) + (location->string + (source-properties->location + (file-system-location fs)))) + + (let-syntax ((error (syntax-rules () + ((_ args ...) + (begin + (set! fail? #t) + (format (current-error-port) + args ...)))))) + (for-each (lambda (fs) + (unless (find-partition-by-label (file-system-device fs)) + (error (G_ "~a: error: file system with label '~a' not found~%") + (file-system-location* fs) + (file-system-device fs)))) + labeled) + (for-each (lambda (fs) + (unless (find-partition-by-uuid (file-system-device fs)) + (error (G_ "~a: error: file system with UUID '~a' not found~%") + (file-system-location* fs) + (uuid->string (file-system-device fs))))) + uuid) + + (when fail? + ;; Better be safe than sorry. + (exit 1)))) + ;;; ;;; Action. @@ -637,6 +695,13 @@ output when building a system derivation, such as a disk image." (when (eq? action 'reconfigure) (maybe-suggest-running-guix-pull)) + ;; Check whether the declared file systems exist. This is better than + ;; instantiating a broken configuration. Assume that we can only check if + ;; running as root. + (when (and (memq action '(init reconfigure)) + (zero? (getuid))) + (check-file-system-availability (operating-system-file-systems os))) + (mlet* %store-monad ((sys (system-derivation-for-action os action #:file-system-type file-system-type diff --git a/guix/store.scm b/guix/store.scm index d571122021..f336df85cc 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -41,6 +41,7 @@ #:use-module (ice-9 vlist) #:use-module (ice-9 popen) #:use-module (ice-9 threads) + #:use-module (ice-9 format) #:use-module (web uri) #:export (%daemon-socket-uri %gc-roots-directory diff --git a/guix/upstream.scm b/guix/upstream.scm index 6ad52ac960..0fe3308876 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -20,6 +20,7 @@ (define-module (guix upstream) #:use-module (guix records) #:use-module (guix utils) + #:use-module (guix discovery) #:use-module ((guix download) #:select (download-to-store)) #:use-module (guix gnupg) @@ -55,6 +56,7 @@ upstream-updater-predicate upstream-updater-latest + %updaters lookup-updater download-tarball @@ -146,6 +148,22 @@ correspond to the same version." (pred upstream-updater-predicate) (latest upstream-updater-latest)) +(define (importer-modules) + "Return the list of importer modules." + (cons (resolve-interface '(guix gnu-maintenance)) + (all-modules (map (lambda (entry) + `(,entry . "guix/import")) + %load-path)))) + +(define %updaters + ;; The list of publically-known updaters. + (delay (fold-module-public-variables (lambda (obj result) + (if (upstream-updater? obj) + (cons obj result) + result)) + '() + (importer-modules)))) + (define (lookup-updater package updaters) "Return an updater among UPDATERS that matches PACKAGE, or #f if none of them matches." diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 3d8d2c698d..f4bbd335b9 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -43,7 +43,10 @@ (test-assert "alist->package with simple source" (let* ((meta '(("name" . "hello") ("version" . "2.10") - ("source" . "mirror://gnu/hello/hello-2.10.tar.gz") + ("source" . + ;; Use a 'file://' URI so that we don't cause a download. + ,(string-append "file://" + (search-path %load-path "guix.scm"))) ("build-system" . "gnu") ("home-page" . "https://gnu.org") ("synopsis" . "Say hi") diff --git a/tests/publish.scm b/tests/publish.scm index 31043f71fa..f33898fd58 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -340,7 +340,7 @@ FileSize: ~a~%" 200 ;nar/gzip/… #t ;Content-Length #t ;FileSize - 200) ;nar/… + 404) ;nar/… (call-with-temporary-directory (lambda (cache) (let ((thread (with-separate-output-ports @@ -393,7 +393,7 @@ FileSize: ~a~%" (let ((item (add-text-to-store %store "fake-compressed-thing.tar.gz" (random-text)))) (test-equal "with cache, uncompressed" - (list #f + (list #t `(("StorePath" . ,item) ("URL" . ,(string-append "nar/" (basename item))) ("Compression" . "none")) diff --git a/tests/uuid.scm b/tests/uuid.scm index aacce77233..91a3482490 100644 --- a/tests/uuid.scm +++ b/tests/uuid.scm @@ -57,4 +57,10 @@ "1234-ABCD" (uuid->string (uuid "1234-abcd" 'fat32))) +(test-assert "uuid=?" + (and (uuid=? (uuid-bytevector (uuid "1234-abcd" 'fat32)) + (uuid "1234-abcd" 'fat32)) + (uuid=? (uuid "1234-abcd" 'fat32) + (uuid "1234-abcd" 'fat)))) + (test-end)