aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/bootloader/extlinux.scm1
-rw-r--r--gnu/bootloader/u-boot.scm34
-rw-r--r--gnu/local.mk16
-rw-r--r--gnu/packages.scm2
-rw-r--r--gnu/packages/android.scm613
-rw-r--r--gnu/packages/aux-files/run-in-namespace.c313
-rw-r--r--gnu/packages/bioconductor.scm32
-rw-r--r--gnu/packages/bioinformatics.scm82
-rw-r--r--gnu/packages/bootloaders.scm41
-rw-r--r--gnu/packages/commencement.scm2
-rw-r--r--gnu/packages/dunst.scm5
-rw-r--r--gnu/packages/education.scm73
-rw-r--r--gnu/packages/emacs.scm85
-rw-r--r--gnu/packages/emulators.scm12
-rw-r--r--gnu/packages/ftp.scm4
-rw-r--r--gnu/packages/games.scm5
-rw-r--r--gnu/packages/gnome.scm8
-rw-r--r--gnu/packages/gnuzilla.scm34
-rw-r--r--gnu/packages/golang.scm8
-rw-r--r--gnu/packages/graphviz.scm4
-rw-r--r--gnu/packages/groovy.scm1156
-rw-r--r--gnu/packages/gstreamer.scm1
-rw-r--r--gnu/packages/guile.scm111
-rw-r--r--gnu/packages/haskell-check.scm14
-rw-r--r--gnu/packages/haskell.scm55
-rw-r--r--gnu/packages/image-processing.scm205
-rw-r--r--gnu/packages/image-viewers.scm40
-rw-r--r--gnu/packages/imagemagick.scm8
-rw-r--r--gnu/packages/inkscape.scm9
-rw-r--r--gnu/packages/javascript.scm39
-rw-r--r--gnu/packages/kde-frameworks.scm4
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/linux.scm64
-rw-r--r--gnu/packages/lxde.scm4
-rw-r--r--gnu/packages/maths.scm10
-rw-r--r--gnu/packages/messaging.scm14
-rw-r--r--gnu/packages/mpd.scm3
-rw-r--r--gnu/packages/nano.scm4
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/password-utils.scm33
-rw-r--r--gnu/packages/patches/adb-add-libraries.patch30
-rw-r--r--gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch98
-rw-r--r--gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch (renamed from gnu/packages/patches/icecat-bug-1452075.patch)0
-rw-r--r--gnu/packages/patches/libutils-add-includes.patch11
-rw-r--r--gnu/packages/patches/libutils-remove-damaging-includes.patch21
-rw-r--r--gnu/packages/patches/libziparchive-add-includes.patch10
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-17858.patch111
-rw-r--r--gnu/packages/patches/mupdf-CVE-2018-1000051.patch88
-rw-r--r--gnu/packages/patches/mupdf-CVE-2018-6544.patch109
-rw-r--r--gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch27
-rw-r--r--gnu/packages/patches/myrepos-CVE-2018-7032.patch69
-rw-r--r--gnu/packages/patches/python-statsmodels-fix-tests.patch28
-rw-r--r--gnu/packages/patches/wesnoth-fix-std-bad-cast.patch67
-rw-r--r--gnu/packages/pdf.scm10
-rw-r--r--gnu/packages/photo.scm4
-rw-r--r--gnu/packages/printers.scm69
-rw-r--r--gnu/packages/python-crypto.scm124
-rw-r--r--gnu/packages/python-web.scm109
-rw-r--r--gnu/packages/python.scm102
-rw-r--r--gnu/packages/rust.scm15
-rw-r--r--gnu/packages/shells.scm4
-rw-r--r--gnu/packages/statistics.scm46
-rw-r--r--gnu/packages/telephony.scm69
-rw-r--r--gnu/packages/tls.scm4
-rw-r--r--gnu/packages/version-control.scm3
-rw-r--r--gnu/packages/video.scm8
-rw-r--r--gnu/packages/web-browsers.scm8
-rw-r--r--gnu/packages/wine.scm10
-rw-r--r--gnu/packages/wm.scm4
-rw-r--r--gnu/packages/xdisorg.scm6
-rw-r--r--gnu/packages/xml.scm8
-rw-r--r--gnu/packages/xorg.scm10
-rw-r--r--gnu/services/desktop.scm3
-rw-r--r--gnu/services/games.scm2
-rw-r--r--gnu/services/messaging.scm13
-rw-r--r--gnu/system/install.scm20
77 files changed, 3634 insertions, 846 deletions
diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm
index f7820a37a4..8b7a95a6fc 100644
--- a/gnu/bootloader/extlinux.scm
+++ b/gnu/bootloader/extlinux.scm
@@ -64,6 +64,7 @@ corresponding to old generations of the system."
(format port "# This file was generated from your GuixSD configuration. Any changes
# will be lost upon reconfiguration.
UI menu.c32
+MENU TITLE GuixSD Boot Options
PROMPT ~a
TIMEOUT ~a~%"
(if (> timeout 0) 1 0)
diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm
index 21d0aecce2..bc8f98f32f 100644
--- a/gnu/bootloader/u-boot.scm
+++ b/gnu/bootloader/u-boot.scm
@@ -33,7 +33,10 @@
u-boot-a20-olinuxino-micro-bootloader
u-boot-banana-pi-m2-ultra-bootloader
u-boot-beaglebone-black-bootloader
- u-boot-nintendo-nes-classic-edition-bootloader))
+ u-boot-mx6cuboxi-bootloader
+ u-boot-nintendo-nes-classic-edition-bootloader
+ u-boot-novena-bootloader
+ u-boot-wandboard-bootloader))
(define install-u-boot
#~(lambda (bootloader device mount-point)
@@ -62,6 +65,15 @@
(write-file-on-device u-boot (stat:size (stat u-boot))
device (* 8 1024)))))
+(define install-imx-u-boot
+ #~(lambda (bootloader device mount-point)
+ (let ((spl (string-append bootloader "/libexec/SPL"))
+ (u-boot (string-append bootloader "/libexec/u-boot.img")))
+ (write-file-on-device spl (stat:size (stat spl))
+ device (* 1 1024))
+ (write-file-on-device u-boot (stat:size (stat u-boot))
+ device (* 69 1024)))))
+
;;;
@@ -86,6 +98,11 @@
(inherit u-boot-bootloader)
(installer install-allwinner-u-boot)))
+(define u-boot-imx-bootloader
+ (bootloader
+ (inherit u-boot-bootloader)
+ (installer install-imx-u-boot)))
+
(define u-boot-nintendo-nes-classic-edition-bootloader
(bootloader
(inherit u-boot-allwinner-bootloader)
@@ -110,3 +127,18 @@
(bootloader
(inherit u-boot-allwinner-bootloader)
(package u-boot-banana-pi-m2-ultra)))
+
+(define u-boot-mx6cuboxi-bootloader
+ (bootloader
+ (inherit u-boot-imx-bootloader)
+ (package u-boot-mx6cuboxi)))
+
+(define u-boot-wandboard-bootloader
+ (bootloader
+ (inherit u-boot-imx-bootloader)
+ (package u-boot-wandboard)))
+
+(define u-boot-novena-bootloader
+ (bootloader
+ (inherit u-boot-imx-bootloader)
+ (package u-boot-novena)))
diff --git a/gnu/local.mk b/gnu/local.mk
index d962613eda..a5458c1e39 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -202,6 +202,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/graphics.scm \
%D%/packages/graphviz.scm \
%D%/packages/groff.scm \
+ %D%/packages/groovy.scm \
%D%/packages/gsasl.scm \
%D%/packages/gstreamer.scm \
%D%/packages/gtk.scm \
@@ -343,6 +344,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/plotutils.scm \
%D%/packages/polkit.scm \
%D%/packages/popt.scm \
+ %D%/packages/printers.scm \
%D%/packages/profiling.scm \
%D%/packages/pth.scm \
%D%/packages/pulseaudio.scm \
@@ -552,6 +554,7 @@ dist_patch_DATA = \
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
%D%/packages/patches/acl-fix-perl-regex.patch \
%D%/packages/patches/acl-hurd-path-max.patch \
+ %D%/packages/patches/adb-add-libraries.patch \
%D%/packages/patches/aegis-constness-error.patch \
%D%/packages/patches/aegis-perl-tempdir1.patch \
%D%/packages/patches/aegis-perl-tempdir2.patch \
@@ -746,6 +749,7 @@ dist_patch_DATA = \
%D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/groff-source-date-epoch.patch \
+ %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/gsl-test-i686.patch \
%D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
@@ -784,7 +788,7 @@ dist_patch_DATA = \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
- %D%/packages/patches/icecat-bug-1452075.patch \
+ %D%/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch \
%D%/packages/patches/icecat-use-system-graphite2.patch \
%D%/packages/patches/icecat-use-system-harfbuzz.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
@@ -805,6 +809,7 @@ dist_patch_DATA = \
%D%/packages/patches/jq-CVE-2015-8863.patch \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/khmer-use-libraries.patch \
+ %D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/kiki-level-selection-crash.patch \
%D%/packages/patches/kiki-makefile.patch \
%D%/packages/patches/kiki-missing-includes.patch \
@@ -872,6 +877,8 @@ dist_patch_DATA = \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \
+ %D%/packages/patches/libutils-add-includes.patch \
+ %D%/packages/patches/libutils-remove-damaging-includes.patch \
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
%D%/packages/patches/libxslt-generated-ids.patch \
@@ -924,13 +931,10 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-tracelogger.patch \
%D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mumps-build-parallelism.patch \
- %D%/packages/patches/mupdf-build-with-latest-openjpeg.patch \
- %D%/packages/patches/mupdf-CVE-2017-17858.patch \
- %D%/packages/patches/mupdf-CVE-2018-6544.patch \
- %D%/packages/patches/mupdf-CVE-2018-1000051.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \
%D%/packages/patches/mutt-store-references.patch \
+ %D%/packages/patches/myrepos-CVE-2018-7032.patch \
%D%/packages/patches/net-tools-bitrot.patch \
%D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netcdf-tst_h_par.patch \
@@ -1037,7 +1041,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-pillow-fix-failing-tests.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
- %D%/packages/patches/python-statsmodels-fix-tests.patch \
%D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \
%D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-faker-fix-build-32bit.patch \
@@ -1155,7 +1158,6 @@ dist_patch_DATA = \
%D%/packages/patches/wavpack-CVE-2018-7253.patch \
%D%/packages/patches/wavpack-CVE-2018-7254.patch \
%D%/packages/patches/weechat-python.patch \
- %D%/packages/patches/wesnoth-fix-std-bad-cast.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
%D%/packages/patches/wicd-urwid-1.3.patch \
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 1a37a17342..7b954769e9 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -188,7 +188,7 @@ decreasing version order."
version>?)))
(if version
(filter (lambda (package)
- (string-prefix? version (package-version package)))
+ (version-prefix? version (package-version package)))
matching)
matching)))))
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 105e3d1775..7618c0e1f6 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -27,18 +27,73 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system android-ndk)
#: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 check)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages python)
+ #:use-module (gnu packages selinux)
#:use-module (gnu packages ssh)
#:use-module (gnu packages version-control)
#:use-module (gnu packages tls)
#:use-module (gnu packages linux))
+(define-public android-make-stub
+ (package
+ (name "android-make-stub")
+ (version "0.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/daym/android-make-stub.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append "android-make-stub-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "0y1b2x96d37n6f1bp6dcx08bn08zac0cylmbfsx6mf2nahc02fhc"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; None exist.
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (invoke "make" (string-append "prefix=" out) "install")
+ #t))))))
+ (home-page "https://github.com/daym/android-make-stub")
+ (synopsis "Stubs for the @command{make} system of the Android platform")
+ (description "@code{android-make-stub} provides stubs for the
+@command{make} system of the Android platform. This allows us to
+use their packages mostly unmodified in our Android NDK build system.")
+ (license license:asl2.0)))
+
+(define-public android-googletest
+ (package (inherit googletest)
+ (name "android-googletest")
+ (arguments
+ `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-host-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (symlink "libgtest.so"
+ (string-append lib "/libgtest_host.so"))
+ (symlink "libgmock.so"
+ (string-append lib "/libgmock_host.so"))
+ #t))))))))
+
;; The Makefiles that we add are largely based on the Debian
;; packages. They are licensed under GPL-2 and have copyright:
;; 2012, Stefan Handschuh <handschuh.stefan@googlemail.com>
@@ -58,52 +113,69 @@
version "-checkout"))
(sha256
(base32
- "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg"))))
+ "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg"))
+ (patches
+ (search-patches "libbase-use-own-logging.patch"
+ "libbase-fix-includes.patch"
+ "libutils-remove-damaging-includes.patch"
+ "libutils-add-includes.patch"
+ "adb-add-libraries.patch"
+ "libziparchive-add-includes.patch"))))
+
+(define (android-platform-system-extras version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/system/extras")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-system-extras-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "18130c23ybqcpgjc5v6f8kdbv2xn39hyiaj17dzldjb9rlwzcyy9"))))
+
+(define (android-platform-bionic version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/bionic")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-bionic-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "0n9wkz3ynqw39if1ss9n32m66iga14nndf29hpm7g1aqn4wvvgzk"))))
+
+(define (android-platform-external version subdirectory checksum)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ (string-append "https://android.googlesource.com/platform/external/"
+ subdirectory))
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-system-external-" subdirectory "-"
+ version "-checkout"))
+ (sha256
+ (base32
+ checksum))))
-(define liblog
+(define android-liblog
(package
- (name "liblog")
+ (name "android-liblog")
(version (android-platform-version))
(source (android-platform-system-core version))
- (build-system gnu-build-system)
+ (build-system android-ndk-build-system)
(arguments
- `(#:tests? #f ; TODO.
- #:make-flags '("CC=gcc")
+ `(#:make-flags '("LDLIBS=-lpthread")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "liblog") #t))
- (add-after 'enter-source 'create-Makefile
- (lambda _
- ;; No useful makefile is shipped, so we create one.
- (with-output-to-file "Makefile"
- (lambda _
- (display
- (string-append
- "NAME = liblog\n"
- "SOURCES = log_event_list.c log_event_write.c"
- " logger_write.c config_write.c logger_name.c"
- " logger_lock.c fake_log_device.c fake_writer.c"
- " event_tag_map.c\n"
-
- "CFLAGS += -fvisibility=hidden -fPIC\n"
- "CPPFLAGS += -I../include -DFAKE_LOG_DEVICE=1"
- ;; Keep these two in sync with "liblog/Android.bp".
- " -DLIBLOG_LOG_TAG=1005"
- " -DSNET_EVENT_LOG_TAG=1397638484\n"
- "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread\n"
-
- "build: $(SOURCES)\n"
- " $(CC) $^ -o $(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"))
- #t))))
- (delete 'configure)
- (replace 'install
+ (add-after 'install 'ldconfig
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib")))
- (install-file "liblog.so.0" lib)
- (with-directory-excursion lib
- (symlink "liblog.so.0" "liblog.so"))
+ (let ((out (assoc-ref outputs "out")))
+ (symlink "liblog.so.0" (string-append out "/lib/liblog.so"))
#t))))))
(home-page "https://developer.android.com/")
(synopsis "Logging library from the Android platform.")
@@ -113,62 +185,29 @@ interfaces for either writing or reading logs. The log buffers are divided up
in Main, System, Radio and Events sub-logs.")
(license license:asl2.0)))
-(define libbase
+(define android-libbase
(package
- (name "libbase")
+ (name "android-libbase")
(version (android-platform-version))
- (source (origin
- (inherit (android-platform-system-core version))
- (patches
- (search-patches "libbase-use-own-logging.patch"
- "libbase-fix-includes.patch"))))
- (build-system gnu-build-system)
+ (source (android-platform-system-core version))
+ (build-system android-ndk-build-system)
(arguments
- `(#:tests? #f ; TODO.
+ `(#:tests? #f ; Test failure: logging.UNIMPLEMENTED
+ #:make-flags '("CXXFLAGS=-std=gnu++11")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
- (lambda _ (chdir "base") #t))
- (add-after 'enter-source 'create-Makefile
- (lambda _
- ;; No useful makefile is shipped, so we create one.
- (with-output-to-file "Makefile"
- (lambda _
- (display
- (string-append
- "NAME = libbase\n"
- "SOURCES = file.cpp logging.cpp parsenetaddress.cpp"
- " stringprintf.cpp strings.cpp errors_unix.cpp\n"
-
- "CXXFLAGS += -std=gnu++11 -fPIC\n"
- "CPPFLAGS += -Iinclude -I../include\n"
- "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0"
- " -L.. -llog\n"
-
- "build: $(SOURCES)\n"
- " $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS)"
- " $(LDFLAGS)\n"))
- #t))))
- (delete 'configure)
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib")))
- (install-file "libbase.so.0" lib)
- (with-directory-excursion lib
- (symlink "libbase.so.0" "libbase.so"))
- (copy-recursively "include" out)
- #t))))))
- (inputs `(("liblog" ,liblog)))
+ (lambda _ (chdir "base") #t)))))
+ (inputs `(("android-liblog" ,android-liblog)))
(home-page "https://developer.android.com/")
(synopsis "Android platform base library")
(description "@code{libbase} is a library in common use by the
various Android core host applications.")
(license license:asl2.0)))
-(define libcutils
+(define android-libcutils
(package
- (name "libcutils")
+ (name "android-libcutils")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system gnu-build-system)
@@ -206,10 +245,13 @@ various Android core host applications.")
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib")))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
(install-file "libcutils.so.0" lib)
(with-directory-excursion lib
(symlink "libcutils.so.0" "libcutils.so"))
+ (copy-recursively "../include/cutils"
+ (string-append include "/cutils"))
#t))))))
(home-page "https://developer.android.com/")
(synopsis "Android platform c utils library")
@@ -217,90 +259,92 @@ various Android core host applications.")
various Android core host applications.")
(license license:asl2.0)))
+(define-public android-libsparse
+ (package
+ (name "android-libsparse")
+ (version (android-platform-version))
+ (source (android-platform-system-core version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:make-flags '("CFLAGS=-Wno-error"
+ "CXXFLAGS=-fpermissive -Wno-error")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-source
+ (lambda _ (chdir "libsparse") #t)))))
+ (inputs
+ `(("zlib" ,zlib)))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android platform sparse library")
+ (description "@code{android-libsparse} is a library in common use by the
+various Android core host applications.")
+ (license license:asl2.0)))
+
+(define-public android-libziparchive
+ (package
+ (name "android-libziparchive")
+ (version (android-platform-version))
+ (source (android-platform-system-core version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:make-flags '("CFLAGS=-Wno-error"
+ "CXXFLAGS=-fpermissive -Wno-error -std=gnu++11")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-source
+ (lambda _ (chdir "libziparchive") #t))
+ (add-before 'check 'setenv
+ (lambda _
+ (setenv "ziparchive_tests_host_PARAMS" "--test_data_dir=testdata")
+ #t))
+ (add-after 'install 'install-headers
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (copy-recursively "../include/ziparchive"
+ (string-append out "/include/ziparchive"))
+ #t))))))
+ (inputs
+ `(("zlib" ,zlib)))
+ (native-inputs
+ `(("android-libbase" ,android-libbase)
+ ("android-libutils" ,android-libutils)
+ ("android-liblog" ,android-liblog)))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android platform ZIP library")
+ (description "@code{android-libziparchive} is a library in common use by the
+various Android core host applications.")
+ (license license:asl2.0)))
+
(define-public adb
(package
(name "adb")
(version (android-platform-version))
- (source (origin
- (inherit (android-platform-system-core version))
- (patches
- (search-patches "libbase-use-own-logging.patch"
- "libbase-fix-includes.patch"))))
- (build-system gnu-build-system)
+ (source (android-platform-system-core version))
+ (build-system android-ndk-build-system)
(arguments
- `(#:phases
+ `(#:tests? #f ; Test failure: sysdeps_poll.fd_count
+ #:make-flags
+ (list "CFLAGS=-Wno-error"
+ "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ."
+ (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib "
+ "-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L ."))
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "adb") #t))
- (add-before 'build 'fix-clang
- (lambda _
- ;; adb_client.h contains _Nonnull and _Nullable attributes, that
- ;; are not understood by gcc.
- (substitute* "adb_client.h"
- (("_Nonnull") "")
- (("_Nullable") ""))
- #t))
- (add-before 'build 'fix-main
- (lambda _
- ;; main.cpp used to be adb_main.cpp in the current directory
- ;; rather than in its own subdirectory, but it was not fixed.
- ;; This leads to some header files not being found anymore.
- (copy-file "client/main.cpp" "adb_main.cpp")
+ (add-after 'enter-source 'make-libs-available
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Android.mk"
+ (("libcrypto_static") "libcrypto"))
#t))
- (add-after 'enter-source 'create-Makefile
- (lambda* (#:key outputs #:allow-other-keys)
- ;; No useful makefile is shipped, so we create one.
- (with-output-to-file "Makefile"
- (lambda _
- (display
- (string-append
- ;; Common for all components.
- "CXXFLAGS += -std=gnu++14 -fpermissive\n"
- "CPPFLAGS += -I../include -I../base/include -I. -DADB_HOST=1 "
- "-DADB_REVISION='\"" ,version "\"' -fPIC\n"
- "LDFLAGS += -lcrypto -lpthread -lbase -lcutils -L. -ladb\n"
-
- ;; Libadb specifics.
- "LIBADB_SOURCES = adb.cpp adb_auth.cpp adb_io.cpp "
- "adb_listeners.cpp adb_trace.cpp adb_utils.cpp fdevent.cpp "
- "sockets.cpp transport.cpp transport_local.cpp transport_usb.cpp "
- "get_my_path_linux.cpp sysdeps_unix.cpp usb_linux.cpp "
- "adb_auth_host.cpp diagnose_usb.cpp services.cpp "
- "shell_service_protocol.cpp bugreport.cpp line_printer.cpp\n"
-
- "LIBADB_LDFLAGS += -shared -Wl,-soname,libadb.so.0 "
- "-lcrypto -lpthread -lbase\n"
-
- ;; Adb specifics.
- "ADB_SOURCES = adb_main.cpp console.cpp commandline.cpp "
- "adb_client.cpp file_sync_client.cpp\n"
- "ADB_LDFLAGS += -Wl,-rpath=" (assoc-ref outputs "out") "/lib\n"
-
- "build: libadb $(ADB_SOURCES)\n"
- " $(CXX) $(ADB_SOURCES) -o adb $(CXXFLAGS) $(CPPFLAGS) "
- "$(ADB_LDFLAGS) $(LDFLAGS)\n"
-
- "libadb: $(LIBADB_SOURCES)\n"
- " $(CXX) $^ -o libadb.so.0 $(CXXFLAGS) $(CPPFLAGS) "
- "$(LIBADB_LDFLAGS)\n"
- " ln -sv libadb.so.0 libadb.so\n"))
- #t))))
- (delete 'configure)
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib"))
- (bin (string-append out "/bin")))
- (install-file "libadb.so.0" lib)
- (install-file "adb" bin)
- (with-directory-excursion lib
- (symlink "libadb.so.0" "libadb.so"))
- #t))))
- ;; Test suite must be run with attached devices
- #:tests? #f))
+ (add-after 'install 'install-headers
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include"))
+ #t)))))
(inputs
- `(("libbase" ,libbase)
- ("libcutils" ,libcutils)
+ `(("android-libbase" ,android-libbase)
+ ("android-libcutils" ,android-libcutils)
+ ("android-liblog" ,android-liblog)
("openssl" ,openssl)))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Android Debug Bridge")
@@ -329,8 +373,10 @@ to a Unix shell that can run commands on the connected device or emulator.")
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
+ (bin (string-append out "/bin"))
+ (include (string-append out "/include")))
(install-file "mkbootimg" bin)
+ (install-file "bootimg.h" include)
#t))))))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Tool to create Android boot images")
@@ -338,6 +384,263 @@ to a Unix shell that can run commands on the connected device or emulator.")
Images.")
(license license:asl2.0)))
+(define-public android-safe-iop
+ (package
+ (name "android-safe-iop")
+ (version (android-platform-version))
+ (source (android-platform-external version "safe-iop"
+ "1nyyrs463advjhlq8xx1lm37m4g5afv7gy0csxrj7biwwl0v13qw"))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:make-flags '("CXXFLAGS=-fpermissive -Wno-error")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-host
+ (lambda _
+ ;; TODO: Cross-compile.
+ (substitute* "Android.mk"
+ (("BUILD_STATIC_LIBRARY") "BUILD_HOST_STATIC_LIBRARY"))
+ #t)))))
+ (home-page "https://developer.android.com/")
+ (synopsis "Safe integers in C")
+ (description "@code{android-safe-iop} provides a set of functions for
+performing and checking safe integer operations. Ensure that integer
+operations do not result in silent overflow.")
+ (license license:bsd-2)))
+
+(define-public android-bionic-uapi
+ (package
+ (name "android-bionic-uapi")
+ (version (android-platform-version))
+ (source (android-platform-bionic version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-source
+ (lambda _ (chdir "libc") #t))
+ (replace 'check
+ (const #t))
+ (replace 'build
+ (const #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (out-sys (string-append out "/include/sys")))
+ (mkdir-p out-sys)
+ (install-file "include/sys/system_properties.h" out-sys)
+ (install-file "include/sys/_system_properties.h" out-sys)
+ (copy-recursively "kernel/uapi" (string-append out "/include"))
+ #t))))))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android Linux API that is safe for user space")
+ (description "@code{android-bionic-uapi} provides the part of the Linux API
+that is safe to use for user space. It also includes
+@code{system_properties.h} and @code{_system_properties.h}.")
+ (license license:asl2.0)))
+
+(define-public android-libselinux
+ (package
+ (name "android-libselinux")
+ (version (android-platform-version))
+ (source
+ (android-platform-external version "libselinux"
+ "13m2q32gzdcs5d0zj1nwasjy1j8vsxsgbjg7m5sa9lfcjaj7nkm7"))
+ (build-system android-ndk-build-system)
+ (arguments
+ ;; See logd/Android.mk for the *_LOG_TAG values.
+ `(#:make-flags (list (string-append "CFLAGS=-Wno-error "
+ "-I core/include "
+ "-I core/libpackagelistparser/include "
+ "-DAUDITD_LOG_TAG=1003 "
+ "-DLOGD_LOG_TAG=1004 -D_GNU_SOURCE")
+ "LDFLAGS=-L . -lpcre")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack-core 'patch-HOST
+ (lambda _
+ ;; gettid duplicates otherwise.
+ (substitute* "src/procattr.c"
+ (("#ifdef HOST") "#ifdef XXX"))
+ #t)))))
+ (inputs
+ `(("openssl" ,openssl)))
+ (native-inputs
+ `(("android-bionic-uapi" ,android-bionic-uapi)
+ ;; pcre is inlined by our package.
+ ("pcre" ,pcre)))
+ (home-page "https://developer.android.com/")
+ (synopsis (package-synopsis libselinux))
+ (description (package-description libselinux))
+ (license (package-license libselinux))))
+
+(define-public android-ext4-utils
+ (package
+ (name "android-ext4-utils")
+ (version (android-platform-version))
+ (source (android-platform-system-extras version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "CPPFLAGS="
+ ;"-Wno-error "
+ "-I "
+ (assoc-ref %build-inputs "android-libselinux")
+ "/include "
+ "-I " (assoc-ref %build-inputs "android-libsparse")
+ "/include "
+ "-I " (assoc-ref %build-inputs "android-libcutils")
+ "/include "
+ "-I " (assoc-ref %build-inputs "android-liblog") "/include "
+ "-I ../core/include")
+ "CFLAGS=-Wno-error"
+ "install-libext4_utils_host.a"
+ (string-append "prefix=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-core
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "core")
+ (with-directory-excursion "core"
+ (invoke "tar" "axf" (assoc-ref inputs "android-core")
+ "--strip-components=1"))
+ #t))
+ (add-after 'unpack-core 'enter-source
+ (lambda _ (chdir "ext4_utils") #t))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (copy-recursively "." (string-append out "/include")))
+ #t)))))
+ (inputs
+ `(("android-libcutils" ,android-libcutils)
+ ("android-liblog" ,android-liblog)
+ ("android-libselinux" ,android-libselinux)
+ ("android-libsparse" ,android-libsparse)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("android-core" ,(android-platform-system-core version))))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android ext4 filesystem utils")
+ (description "@code{android-ext4-utils} is a library in common use by the
+Android core.")
+ (license license:asl2.0)))
+
+(define-public android-f2fs-utils
+ (package
+ (name "android-f2fs-utils")
+ (version (android-platform-version))
+ (source (android-platform-system-extras version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-source
+ (lambda _ (chdir "f2fs_utils") #t))
+ (add-after 'install 'install-headers
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (copy-recursively "." (string-append (assoc-ref outputs "out")
+ "/include"))
+ #t))
+ (add-after 'install 'install-shell-scripts
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (patch-shebang "mkf2fsuserimg.sh")
+ (substitute* "mkf2fsuserimg.sh"
+ (("make_f2fs") (string-append bin "/make_f2fs")))
+ (install-file "mkf2fsuserimg.sh" bin)
+ #t))))))
+ (inputs
+ `(("f2fs-tools" ,f2fs-tools-1.7)
+ ("android-libselinux" ,android-libselinux)
+ ("android-libsparse" ,android-libsparse)
+ ("android-libcutils" ,android-libcutils)
+ ("zlib" ,zlib)))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android f2fs utils")
+ (description "@code{android-f2fs-utils} is a library in common use by the
+Android core. It allows the user to create images for the @code{f2fs} Flash
+file system.")
+ (license license:asl2.0)))
+
+(define-public android-libutils
+ (package
+ (name "android-libutils")
+ (version (android-platform-version))
+ (source (android-platform-system-core version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:tests? #f ; TODO
+ #:make-flags '("CXXFLAGS=-std=gnu++11 -Wno-error")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-source
+ (lambda _ (chdir "libutils") #t))
+
+ (add-after 'install 'install-headers
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils")))))))
+ (inputs
+ `(("android-safe-iop" ,android-safe-iop)
+ ("android-libcutils" ,android-libcutils)))
+ (native-inputs
+ `(("android-bionic-uapi" ,android-bionic-uapi)
+ ("android-liblog" ,android-liblog)))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android utility library")
+ (description "@code{android-libutils} provides utilities for Android NDK developers.")
+ (license license:asl2.0)))
+
+(define-public fastboot
+ (package
+ (name "fastboot")
+ (version (android-platform-version))
+ (source (android-platform-system-core version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:make-flags (list "CXXFLAGS=-std=gnu++11")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-source
+ (lambda _
+ (chdir "fastboot")
+ #t))
+ (add-after 'enter-source 'patch-source
+ (lambda _
+ (substitute* "Android.mk"
+ (("libext4_utils_host") "libext4_utils_host libselinux libpcre"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (bin (string-append out "/bin")))
+ (install-file "fastboot" bin)
+ #t))))))
+ (inputs
+ `(("adb" ,adb)
+ ("android-safe-iop" ,android-safe-iop)
+ ("android-ext4-utils" ,android-ext4-utils)
+ ("android-f2fs-utils" ,android-f2fs-utils)
+ ("android-libbase" ,android-libbase)
+ ("android-libcutils" ,android-libcutils)
+ ("android-liblog" ,android-liblog)
+ ("android-libutils" ,android-libutils)
+ ("android-libsparse" ,android-libsparse)
+ ("android-libziparchive" ,android-libziparchive)
+ ("android-libselinux" ,android-libselinux)
+ ("pcre" ,pcre)
+ ("mkbootimg" ,mkbootimg)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("xz" ,xz)))
+ (home-page "https://developer.android.com/studio/command-line/")
+ (synopsis "Android image flasher")
+ (description
+ "This package provides @command{fastboot}, a tool to upload file system images to Android devices.")
+ (license license:asl2.0)))
+
(define-public android-udev-rules
(package
(name "android-udev-rules")
diff --git a/gnu/packages/aux-files/run-in-namespace.c b/gnu/packages/aux-files/run-in-namespace.c
new file mode 100644
index 0000000000..f0cff88552
--- /dev/null
+++ b/gnu/packages/aux-files/run-in-namespace.c
@@ -0,0 +1,313 @@
+/* GNU Guix --- Functional package management for GNU
+ Copyright (C) 2018 Ludovic Courtès <ludo@gnu.org>
+
+ This file is part of GNU Guix.
+
+ GNU Guix is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or (at
+ your option) any later version.
+
+ GNU Guix is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Make the given @WRAPPED_PROGRAM@ relocatable by executing it in a separate
+ mount namespace where the store is mounted in its right place.
+
+ We would happily do that in Scheme using 'call-with-container'. However,
+ this very program needs to be relocatable, so it needs to be statically
+ linked, which complicates things (Guile's modules can hardly be "linked"
+ into a single executable.) */
+
+#define _GNU_SOURCE
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sched.h>
+#include <sys/mount.h>
+#include <errno.h>
+#include <libgen.h>
+#include <limits.h>
+#include <string.h>
+#include <assert.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <sys/syscall.h>
+
+/* Concatenate DIRECTORY, a slash, and FILE. Return the result, which the
+ caller must eventually free. */
+static char *
+concat (const char *directory, const char *file)
+{
+ char *result = malloc (strlen (directory) + 2 + strlen (file));
+ assert (result != NULL);
+
+ strcpy (result, directory);
+ strcat (result, "/");
+ strcat (result, file);
+ return result;
+}
+
+static void
+mkdir_p (const char *directory)
+{
+ if (strcmp (directory, "/") != 0)
+ {
+ char *parent = dirname (strdupa (directory));
+ mkdir_p (parent);
+ int err = mkdir (directory, 0700);
+ if (err < 0 && errno != EEXIST)
+ assert_perror (errno);
+ }
+}
+
+static void
+rm_rf (const char *directory)
+{
+ DIR *stream = opendir (directory);
+
+ for (struct dirent *entry = readdir (stream);
+ entry != NULL;
+ entry = readdir (stream))
+ {
+ if (strcmp (entry->d_name, ".") == 0
+ || strcmp (entry->d_name, "..") == 0)
+ continue;
+
+ char *full = concat (directory, entry->d_name);
+
+ int err = unlink (full);
+ if (err < 0)
+ {
+ if (errno == EISDIR)
+ /* Recurse (we expect a shallow directory structure so there's
+ little risk of stack overflow.) */
+ rm_rf (full);
+ else
+ assert_perror (errno);
+ }
+
+ free (full);
+ }
+
+ closedir (stream);
+
+ int err = rmdir (directory);
+ if (err < 0 && errno != ENOENT)
+ assert_perror (errno);
+}
+
+/* Bind mount all the top-level entries in SOURCE to TARGET. */
+static void
+bind_mount (const char *source, const char *target)
+{
+ DIR *stream = opendir (source);
+
+ for (struct dirent *entry = readdir (stream);
+ entry != NULL;
+ entry = readdir (stream))
+ {
+ /* XXX: Some file systems may not report a useful 'd_type'. Ignore them
+ for now. */
+ assert (entry->d_type != DT_UNKNOWN);
+
+ if (strcmp (entry->d_name, ".") == 0
+ || strcmp (entry->d_name, "..") == 0)
+ continue;
+
+ char *abs_source = concat (source, entry->d_name);
+ char *new_entry = concat (target, entry->d_name);
+
+ if (entry->d_type == DT_LNK)
+ {
+ char target[PATH_MAX];
+
+ ssize_t result = readlink (abs_source, target, sizeof target - 1);
+ if (result > 0)
+ {
+ target[result] = '\0';
+ int err = symlink (target, new_entry);
+ if (err < 0)
+ assert_perror (errno);
+ }
+ }
+ else
+ {
+ /* Create the mount point. */
+ if (entry->d_type == DT_DIR)
+ {
+ int err = mkdir (new_entry, 0700);
+ if (err != 0)
+ assert_perror (errno);
+ }
+ else
+ close (open (new_entry, O_WRONLY | O_CREAT));
+
+ int err = mount (abs_source, new_entry, "none",
+ MS_BIND | MS_REC | MS_RDONLY, NULL);
+
+ /* It used to be that only directories could be bind-mounted. Thus,
+ keep going if we fail to bind-mount a non-directory entry.
+ That's OK because regular files in the root file system are
+ usually uninteresting. */
+ if (err != 0 && entry->d_type != DT_DIR)
+ assert_perror (errno);
+
+ free (new_entry);
+ free (abs_source);
+ }
+ }
+
+ closedir (stream);
+}
+
+/* Write the user/group ID map for PID to FILE, mapping ID to itself. See
+ user_namespaces(7). */
+static void
+write_id_map (pid_t pid, const char *file, int id)
+{
+ char id_map_file[100];
+ snprintf (id_map_file, sizeof id_map_file, "/proc/%d/%s", pid, file);
+
+ char id_map[100];
+
+ /* Map root and the current user. */
+ int len = snprintf (id_map, sizeof id_map, "%d %d 1\n", id, id);
+ int fd = open (id_map_file, O_WRONLY);
+ if (fd < 0)
+ assert_perror (errno);
+
+ int n = write (fd, id_map, len);
+ if (n < 0)
+ assert_perror (errno);
+
+ close (fd);
+}
+
+/* Disallow setgroups(2) for PID. */
+static void
+disallow_setgroups (pid_t pid)
+{
+ char file[100];
+
+ snprintf (file, sizeof file, "/proc/%d/setgroups", pid);
+
+ int fd = open (file, O_WRONLY);
+ if (fd < 0)
+ assert_perror (errno);
+
+ int err = write (fd, "deny", 5);
+ if (err < 0)
+ assert_perror (errno);
+
+ close (fd);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+ ssize_t size;
+ char self[PATH_MAX];
+ size = readlink ("/proc/self/exe", self, sizeof self - 1);
+ assert (size > 0);
+
+ /* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we
+ want to extract "/home/ludo/.local/gnu/store". */
+ size_t index = strlen (self)
+ - strlen ("@WRAPPED_PROGRAM@")
+ + strlen ("@STORE_DIRECTORY@");
+ char *store = strdup (self);
+ store[index] = '\0';
+
+ struct stat statbuf;
+
+ /* If STORE is already at the "right" place, we can execute
+ @WRAPPED_PROGRAM@ right away. This is not just an optimization: it's
+ needed when running one of these wrappers from within an unshare'd
+ namespace, because 'unshare' fails with EPERM in that context. */
+ if (strcmp (store, "@STORE_DIRECTORY@") != 0
+ && lstat ("@WRAPPED_PROGRAM@", &statbuf) != 0)
+ {
+ /* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is
+ bind-mounted in the right place. */
+ int err;
+ char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
+ char *new_store = concat (new_root, "@STORE_DIRECTORY@");
+ char *cwd = get_current_dir_name ();
+
+ /* Create a child with separate namespaces and set up bind-mounts from
+ there. That way, bind-mounts automatically disappear when the child
+ exits, which simplifies cleanup for the parent. Note: clone is more
+ convenient than fork + unshare since the parent can directly write
+ the child uid_map/gid_map files. */
+ pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER,
+ NULL, NULL, NULL);
+ switch (child)
+ {
+ case 0:
+ /* Note: Due to <https://bugzilla.kernel.org/show_bug.cgi?id=183461>
+ we cannot make NEW_ROOT a tmpfs (which would have saved the need
+ for 'rm_rf'.) */
+ bind_mount ("/", new_root);
+ mkdir_p (new_store);
+ err = mount (store, new_store, "none", MS_BIND | MS_REC | MS_RDONLY,
+ NULL);
+ if (err < 0)
+ assert_perror (errno);
+
+ chdir (new_root);
+ err = chroot (new_root);
+ if (err < 0)
+ assert_perror (errno);
+
+ /* Change back to where we were before chroot'ing. */
+ chdir (cwd);
+ break;
+
+ case -1:
+ fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]);
+ fprintf (stderr, "\
+This may be because \"user namespaces\" are not supported on this system.\n\
+Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\
+unless you move it to the '@STORE_DIRECTORY@' directory.\n\
+\n\
+Please refer to the 'guix pack' documentation for more information.\n");
+ return EXIT_FAILURE;
+
+ default:
+ {
+ /* Map the current user/group ID in the child's namespace (the
+ default is to get the "overflow UID", i.e., the UID of
+ "nobody"). We must first disallow 'setgroups' for that
+ process. */
+ disallow_setgroups (child);
+ write_id_map (child, "uid_map", getuid ());
+ write_id_map (child, "gid_map", getgid ());
+
+ int status;
+ waitpid (child, &status, 0);
+ chdir ("/"); /* avoid EBUSY */
+ rm_rf (new_root);
+ free (new_root);
+ exit (status);
+ }
+ }
+ }
+
+ /* The executable is available under @STORE_DIRECTORY@, so we can now
+ execute it. */
+ int err = execv ("@WRAPPED_PROGRAM@", argv);
+ if (err < 0)
+ assert_perror (errno);
+
+ return EXIT_FAILURE;
+}
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 3e6df50653..788e1e7def 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -29,6 +29,38 @@
#:use-module (gnu packages statistics)
#:use-module (gnu packages bioinformatics))
+(define-public r-bsgenome-dmelanogaster-ucsc-dm6
+ (package
+ (name "r-bsgenome-dmelanogaster-ucsc-dm6")
+ (version "1.4.1")
+ (source (origin
+ (method url-fetch)
+ ;; We cannot use bioconductor-uri here because this tarball is
+ ;; located under "data/annotation/" instead of "bioc/".
+ (uri (string-append "https://www.bioconductor.org/packages/"
+ "release/data/annotation/src/contrib/"
+ "BSgenome.Dmelanogaster.UCSC.dm6_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1bhj0rdgf7lspw4xby9y9mf7v7jxxz8001bc8vw8kf04rjsx6060"))))
+ (properties
+ `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm6")))
+ (build-system r-build-system)
+ ;; As this package provides little more than a very large data file it
+ ;; doesn't make sense to build substitutes.
+ (arguments `(#:substitutable? #f))
+ (propagated-inputs
+ `(("r-bsgenome" ,r-bsgenome)))
+ (home-page
+ "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm6/")
+ (synopsis "Full genome sequences for Fly")
+ (description
+ "This package provides full genome sequences for Drosophila
+melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings
+objects.")
+ (license license:artistic2.0)))
+
(define-public r-hpar
(package
(name "r-hpar")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index ae021f8179..4758ce3081 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2088,7 +2088,7 @@ accurately delineate genomic rearrangements throughout the genome.")
(define-public diamond
(package
(name "diamond")
- (version "0.9.21")
+ (version "0.9.22")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2097,7 +2097,7 @@ accurately delineate genomic rearrangements throughout the genome.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1cf98vcsiwcv3c4apg50w1240v1mpw0zln1sdw3g692dqa4y041z"))))
+ "0adp87r9ak63frdrdmrdfhsn6g0jnnyq1lr2wibvqbxcl37iir9m"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no "check" target
@@ -11151,25 +11151,22 @@ with narrow binding events such as transcription factor ChIP-seq.")
(define-public trim-galore
(package
(name "trim-galore")
- (version "0.4.2")
+ (version "0.4.5")
(source
(origin
- (method url-fetch)
- (uri (string-append "http://www.bioinformatics.babraham.ac.uk/"
- "projects/trim_galore/trim_galore_v"
- version ".zip"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FelixKrueger/TrimGalore.git")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0b9qdxi4521gsrjvbhgky8g7kry9b5nx3byzaxkgxz7p4k8bn1mn"))))
+ "0x5892l48c816pf00wmnz5vq0zq6170d3xc8zrxncd4jcz7h1p71"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
- ;; The archive contains plain files.
- (replace 'unpack
- (lambda* (#:key source #:allow-other-keys)
- (zero? (system* "unzip" source))))
(delete 'configure)
(delete 'build)
(add-after 'unpack 'hardcode-tool-references
@@ -11581,47 +11578,62 @@ Browser.")
(define-public bismark
(package
(name "bismark")
- (version "0.16.3")
+ (version "0.19.1")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/FelixKrueger/Bismark/"
- "archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FelixKrueger/Bismark.git")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1204i0pa02ll2jn5pnxypkclnskvv7a2nwh5nxhagmhxk9wfv9sq"))))
+ "0yb5l36slwg02fp4b1jdlplgljcsxgqfzvzihzdnphd87dghcc84"))
+ (snippet
+ '(begin
+ ;; highcharts.js is non-free software. The code is available under
+ ;; CC-BY-NC or proprietary licenses only.
+ (delete-file "bismark_sitrep/highcharts.js")
+ #t))))
(build-system perl-build-system)
(arguments
- `(#:tests? #f ; there are no tests
+ `(#:tests? #f ; there are no tests
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out")
- "/bin"))
- (docdir (string-append (assoc-ref outputs "out")
- "/share/doc/bismark"))
- (docs '("Bismark_User_Guide.pdf"
- "RELEASE_NOTES.txt"))
- (scripts '("bismark"
- "bismark_genome_preparation"
- "bismark_methylation_extractor"
- "bismark2bedGraph"
- "bismark2report"
- "coverage2cytosine"
- "deduplicate_bismark"
- "bismark_sitrep.tpl"
- "bam2nuc"
- "bismark2summary")))
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share/bismark"))
+ (docdir (string-append out "/share/doc/bismark"))
+ (docs '("Docs/Bismark_User_Guide.html"))
+ (scripts '("bismark"
+ "bismark_genome_preparation"
+ "bismark_methylation_extractor"
+ "bismark2bedGraph"
+ "bismark2report"
+ "coverage2cytosine"
+ "deduplicate_bismark"
+ "filter_non_conversion"
+ "bam2nuc"
+ "bismark2summary")))
+ (mkdir-p share)
(mkdir-p docdir)
(mkdir-p bin)
(for-each (lambda (file) (install-file file bin))
scripts)
(for-each (lambda (file) (install-file file docdir))
docs)
+ (copy-recursively "Docs/Images" (string-append docdir "/Images"))
+
+ (substitute* "bismark2report"
+ (("\\$RealBin/bismark_sitrep")
+ (string-append share "/bismark_sitrep")))
+ (copy-recursively "bismark_sitrep"
+ (string-append share "/bismark_sitrep"))
+
;; Fix references to gunzip
(substitute* (map (lambda (file)
(string-append bin "/" file))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 0db6ad3f6a..af5d97288d 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -338,7 +338,7 @@ tree binary files. These are board description files used by Linux and BSD.")
(define u-boot
(package
(name "u-boot")
- (version "2018.01")
+ (version "2018.05")
(source (origin
(method url-fetch)
(uri (string-append
@@ -346,10 +346,10 @@ tree binary files. These are board description files used by Linux and BSD.")
"u-boot-" version ".tar.bz2"))
(sha256
(base32
- "1nidnnjprgxdhiiz7gmaj8cgcf52l5gbv64cmzjq4gmkjirmk3wk"))))
+ "0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad"))))
(native-inputs
`(("bc" ,bc)
- ;("dtc" ,dtc) ; they have their own incompatible copy.
+ ("dtc" ,dtc)
("python-2" ,python-2)
("swig" ,swig)))
(build-system gnu-build-system)
@@ -392,15 +392,17 @@ also initializes the boards (RAM etc).")
(if (file-exists? (string-append "configs/" config-name))
(zero? (apply system* "make" `(,@make-flags ,config-name)))
(begin
- (display "Invalid board name. Valid board names are:")
- (let ((suffix-len (string-length "_defconfig")))
- (scandir "configs"
- (lambda (file-name)
- (when (string-suffix? "_defconfig" file-name)
- (format #t
- "- ~A\n"
- (string-drop-right file-name
- suffix-len))))))
+ (display "Invalid board name. Valid board names are:"
+ (current-error-port))
+ (let ((suffix-len (string-length "_defconfig"))
+ (entries (scandir "configs")))
+ (for-each (lambda (file-name)
+ (when (string-suffix? "_defconfig" file-name)
+ (format (current-error-port)
+ "- ~A\n"
+ (string-drop-right file-name
+ suffix-len))))
+ (sort entries string<)))
#f)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
@@ -411,6 +413,8 @@ also initializes the boards (RAM etc).")
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
+ ;; Useful for "qemu -kernel".
+ (install-file "u-boot" libexec)
(for-each
(lambda (file)
(let ((target-file (string-append libexec "/" file)))
@@ -440,9 +444,10 @@ also initializes the boards (RAM etc).")
(let ((bl31 (string-append (assoc-ref inputs "firmware")
"/bl31.bin")))
(setenv "BL31" bl31)
- ;; This is necessary while we're using the bundled dtc.
- (setenv "PATH" (string-append (getenv "PATH") ":"
- "scripts/dtc")))
+ ;; This is necessary when we're using the bundled dtc.
+ ;(setenv "PATH" (string-append (getenv "PATH") ":"
+ ; "scripts/dtc"))
+ )
#t))))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-pine64-plus)
@@ -469,6 +474,12 @@ also initializes the boards (RAM etc).")
(define-public u-boot-mx6cuboxi
(make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf"))
+(define-public u-boot-novena
+ (make-u-boot-package "novena" "arm-linux-gnueabihf"))
+
+(define-public u-boot-cubieboard
+ (make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))
+
(define-public vboot-utils
(package
(name "vboot-utils")
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 9f85781db2..7ad1802f3c 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -267,7 +267,7 @@
;; Drop trailing letters, as gmp-6.0.0a unpacks
;; into gmp-6.0.0.
`(symlink ,(string-trim-right
- (package-full-name lib)
+ (package-full-name lib "-")
char-set:letter)
,(package-name lib)))
(list gmp-6.0 mpfr mpc))
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index 6df37894da..eaad227747 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017, 2018 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,7 +33,7 @@
(define-public dunst
(package
(name "dunst")
- (version "1.3.1")
+ (version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -41,7 +42,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1mkdp1vqc376z8clwm5s9070jq1g92j8hv2rr231jr2468fnwaga"))))
+ "12nj8qw3y3nl8sm24wizy2a7k06v1p88bnz1xr9l39h527xyidma"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 58f06c3106..72cd7c61ba 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,27 +23,33 @@
(define-module (gnu packages education)
#:use-module (ice-9 regex)
#:use-module (gnu packages)
- #:use-module (gnu packages qt)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages javascript)
#:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages xml)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix utils)
- #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:use-module (srfi srfi-1))
(define-public gcompris
@@ -224,3 +231,65 @@ Useful support functions and an extensive progress tracker, topical lessons
and the ability to create your own practice lessons make learning to type
easy.")
(license license:gpl2)))
+
+(define-public snap
+ (package
+ (name "snap")
+ (version "4.1.2.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jmoenig/Snap--Build-Your-Own-Blocks.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cy3jhqqpmivqnfm9kmlnh3fhf3m3y4xqhikblk8vfjprh6vmcvd"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (share (string-append out "/share/snap")))
+ (copy-recursively source share)
+ ;; Replace the sole minified file in the package.
+ (with-directory-excursion share
+ (delete-file "FileSaver.min.js")
+ (symlink (string-append (assoc-ref %build-inputs "js-filesaver")
+ "/share/javascript/FileSaver.min.js")
+ "FileSaver.min.js"))
+ ;; Create a "snap" executable.
+ (let* ((bin (string-append out "/bin"))
+ (script (string-append bin "/snap"))
+ (snap (string-append share "/snap.html"))
+ (bash (string-append (assoc-ref %build-inputs "bash")
+ "/bin/sh"))
+ (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils")
+ "/bin/xdg-open")))
+ (mkdir-p bin)
+ (call-with-output-file script
+ (lambda (port)
+ (format port "#!~a\n~a '~a'" bash xdg-open snap)))
+ (chmod script #o555)))
+ #t)))
+ (inputs
+ `(("bash" ,bash-minimal)
+ ("js-filesaver" ,js-filesaver)
+ ("xdg-utils" ,xdg-utils)))
+ (home-page "https://snap.berkeley.edu")
+ (synopsis "Visual, blocks based programming language")
+ (description "Snap! (formerly BYOB) is a visual, drag-and-drop
+programming language. It is an extended reimplementation of Scratch (a
+project of the Lifelong Kindergarten Group at the MIT Media Lab) that
+allows you to Build Your Own Blocks. It also features first class
+lists, first class procedures, and continuations. These added
+capabilities make it suitable for a serious introduction to computer
+science for high school or college students.
+
+This package provides a @command{snap} executable calling @command{xdg-open}
+to open the application in a web browser, for offline usage.")
+ (license license:agpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 6b91577fb3..680c64b9f2 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
@@ -105,6 +105,7 @@
#:use-module (gnu packages gd)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages password-utils)
+ #:use-module (gnu packages xdisorg)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
@@ -4731,6 +4732,29 @@ used for reverse direction.")
distribution, primarily targeting Clojure users")
(license license:gpl3+)))
+(define-public emacs-orgalist
+ (package
+ (name "emacs-orgalist")
+ (version "1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/"
+ "orgalist-" version ".el"))
+ (sha256
+ (base32
+ "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr"))))
+ (build-system emacs-build-system)
+ (home-page "http://elpa.gnu.org/packages/orgalist.html")
+ (synopsis "Manage Org-like lists in non-Org buffers")
+ (description "Write Org mode's plain lists in non-Org buffers. More
+specifically, Orgalist supports the syntax of Org mode for numbered,
+unnumbered, description items, checkboxes, and counter cookies.
+
+The library also implements radio lists, i.e., lists written in Org
+syntax later translated into the host format, e.g., LaTeX or HTML.")
+ (license license:gpl3+)))
+
(define-public emacs-writegood-mode
(package
(name "emacs-writegood-mode")
@@ -4777,35 +4801,35 @@ passive voice.")
(name "emacs-org")
;; emacs-org-contrib inherits from this package. Please update its sha256
;; checksum as well.
- (version "9.1.11")
+ (version "9.1.13")
(source (origin
(method url-fetch)
(uri (string-append "http://elpa.gnu.org/packages/org-"
version ".tar"))
(sha256
(base32
- "0i27g5qbkfqbxhgiz917pjwkxg3rwid99d0ickwx43bzq0zi7c1m"))))
+ "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr"))))
(build-system emacs-build-system)
(home-page "https://orgmode.org/")
(synopsis "Outline-based notes management and organizer")
(description "Org is an Emacs mode for keeping notes, maintaining TODO
-lists, and project planning with a fast and effective plain-text system. It
-also is an authoring system with unique support for literate programming and
-reproducible research.")
+lists, and project planning with a fast and effective lightweight markup
+language. It also is an authoring system with unique support for literate
+programming and reproducible research.")
(license license:gpl3+)))
(define-public emacs-org-contrib
(package
(inherit emacs-org)
(name "emacs-org-contrib")
- (version "20180423")
+ (version "20180507")
(source (origin
(method url-fetch)
(uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
version ".tar"))
(sha256
(base32
- "1aggvdy74q8p79xyc19zring5gjvlzp6lbsq8ar319zkmcjrapqd"))))
+ "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d"))))
(arguments
`(#:modules ((guix build emacs-build-system)
(guix build utils)
@@ -8359,23 +8383,34 @@ arXiv, Google Scholar, Library of Congress, etc.
(license license:gpl3+))))
(define-public emacs-ewmctrl
- (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf")
- (revision "1"))
+ (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
(package
(name "emacs-ewmctrl")
- (version (string-append "0.0.1" "-" revision "."
- (string-take commit 7)))
+ (version (git-version "0.0.1" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/flexibeast/ewmctrl.git")
(commit commit)))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
(base32
"0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
(build-system emacs-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-ewmctrl
+ ;; This build phase makes sure ‘ewmctrl’ looks
+ ;; for ‘wmctrl’ in the right place.
+ (lambda _
+ (let ((file "ewmctrl.el"))
+ (chmod file #o644)
+ (emacs-substitute-sexps file
+ ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
+ (inputs
+ `(("wmctrl" ,wmctrl)))
(home-page "https://github.com/flexibeast/ewmctrl")
(synopsis "Emacs interface to @code{wmctrl}")
(description "@code{ewmctrl} provides an Emacs interface to
@@ -10416,3 +10451,27 @@ with absolutely no stored indexes (tags) or persistent background processes.
Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
@command{rg} installed.")
(license license:gpl3+)))
+
+(define-public emacs-dts-mode
+ (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
+ (revision "1"))
+ (package
+ (name "emacs-dts-mode")
+ (version (string-append "0.1.0-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bgamari/dts-mode.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/bgamari/dts-mode.git")
+ (synopsis "Emacs minor mode for editing device tree files")
+ (description
+ "This package provides an Emacs minor mode for highlighting
+device tree files.")
+ (license license:gpl3+))))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 7a11eb33ca..e5624de07e 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -45,6 +45,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages game-development)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -107,8 +108,8 @@
;; Building from recent Git because the official 5.0 release no longer builds.
(define-public dolphin-emu
- (let ((commit "d04b179111f8d863f360839474cb82c766f762b8")
- (revision "0"))
+ (let ((commit "47fd8c6eff4cdea7660d0fa78040f98d1d4fa136")
+ (revision "1"))
(package
(name "dolphin-emu")
(version (git-version "5.0" revision commit))
@@ -134,7 +135,7 @@
#t))
(sha256
(base32
- "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l"))))
+ "1gp2sshnr0dswdawxd5ix96nksp435b52bqvpjx8pmn523k29zsw"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f
@@ -143,6 +144,10 @@
#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'fixgcc7
+ (lambda _
+ (unsetenv "C_INCLUDE_PATH")
+ (unsetenv "CPLUS_INCLUDE_PATH")))
(add-before 'configure 'generate-fonts&hardcore-libvulkan-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((fontfile
@@ -179,6 +184,7 @@
"-DX11_FOUND=1")))
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("gcc" ,gcc-7) ; Building with gcc@5 doesn't work anymore.
("gettext" ,gnu-gettext)))
(inputs
`(("alsa-lib" ,alsa-lib)
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 58f707fc48..cb837e554e 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -169,7 +169,7 @@ as required.")
(define-public libfilezilla
(package
(name "libfilezilla")
- (version "0.12.1")
+ (version "0.12.2")
(source
(origin
(method url-fetch)
@@ -177,7 +177,7 @@ as required.")
name "/" name "-" version ".tar.bz2"))
(sha256
(base32
- "1gbqm42dd0m3fvqz3bk53889479dvn8679zp6ba8a9q2br2wkvv0"))))
+ "1v461hwdk74whp89s490dj1z18gfqf9bz9140m5f11rsvrpid33p"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 671b3df28d..45f1f10018 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1819,7 +1819,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.0")
+ (version "1.14.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -1828,8 +1828,7 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "09niq53y17faizhmd98anx3dha7hvacvj9a0a64lg8wn915cm0bw"))
- (patches (search-patches "wesnoth-fix-std-bad-cast.patch"))))
+ "1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no check target
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 8c694c75c7..4609ea9da1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -536,7 +536,7 @@ and keep up to date translations of documentation.")
(define-public gnome-disk-utility
(package
(name "gnome-disk-utility")
- (version "3.28.1")
+ (version "3.28.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -544,7 +544,7 @@ and keep up to date translations of documentation.")
name "-" version ".tar.xz"))
(sha256
(base32
- "09dmknfas8iifv6k5jb4a9ag57s8awrn0f26fd1qlg0mbfjlnfd6"))))
+ "1j3l4b1prbnixzy6srvcsjfg1dx5nqys2lmygm31ygfdq7svp3m6"))))
(build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin")
@@ -3877,7 +3877,7 @@ supports image conversion, rotation, and slideshows.")
;; 'XDG_DATA_DIRS' appropriately set.
(package
(name "eog-plugins")
- (version "3.26.1")
+ (version "3.26.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -3885,7 +3885,7 @@ supports image conversion, rotation, and slideshows.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0v45f2m3b60ygkwpq6jrl49nwrivw6qy0ciibpv821qrm73hsgd7"))))
+ "1w8zw7kwfvlwlyb1k1inqdvbwnzq959sqawlmnwfb8ykn98hbk8y"))))
(build-system gnu-build-system)
(home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
(synopsis "Extensions for the Eye of GNOME image viewer")
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 1681e37172..8f2afd1b03 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -459,27 +459,29 @@ security standards.")
(mozilla-patch "icecat-CVE-2018-5146.patch" "494e5d5278ba" "1yb4lxjw499ppwhk31vz0vzl0cfqvj9d4jwqag7ayj53ybwsqgjr")
(mozilla-patch "icecat-CVE-2018-5147.patch" "5cd5586a2f48" "10s774pwvj6xfk3kk6ivnhp2acc8x9sqq6na8z47nkhgwl2712i5")
(mozilla-patch "icecat-CVE-2018-5148.patch" "c3e447e07077" "0gmwy631f8ip4gr1mpbjk8bx1n1748wdls5zq4y8hpmpnq5g1wyx")
- (mozilla-patch "icecat-bug-1443891.patch" "17201199b18d" "1d0hcim1fwh0bklwpmnal1mv9d9kmyif1m15aj1nqkf1n3x4xc37")
+ (mozilla-patch "icecat-CVE-2018-5178.patch" "17201199b18d" "1d0hcim1fwh0bklwpmnal1mv9d9kmyif1m15aj1nqkf1n3x4xc37")
(mozilla-patch "icecat-bug-1361699.patch" "a07d6c3ff262" "1z8mjg2487r8pxi0x951v6fwwr696q84f6hlzimc3r7bn5ds9r83")
- (mozilla-patch "icecat-bug-1433609.patch" "7127ccf8f88c" "0m4my7aflpp0wlqilr2m4axd7k2fyrs7jqdcz2rrz5pwivz1anvd")
+ (mozilla-patch "icecat-CVE-2018-5150-pt01.patch" "7127ccf8f88c" "0m4my7aflpp0wlqilr2m4axd7k2fyrs7jqdcz2rrz5pwivz1anvd")
(mozilla-patch "icecat-bug-1444231.patch" "57bd35fa8618" "0pl6x5amc5x6nhwl7qnmnff3jjjxmbs8r365bfzj58g7q5ihqwvf")
- (mozilla-patch "icecat-bug-1409440.patch" "2f3e1ccf1661" "0azl8g81kpc0w2xpjpgm1154ll12g0a8n6i7bl3s9nnrk2i26n74")
- (mozilla-patch "icecat-bug-1441941.patch" "8ff2c4d68e36" "0kz1rqhnz8ca4z20hnpcafidhsrwhnm0h2gmlgchni33h8pisr1f")
- (mozilla-patch "icecat-bug-1443092.patch" "b8c430253efd" "1arjcaps9axhxh5ff84n9bydhhzrihn7hbq7v69nvqwqrjp3lgg9")
- (mozilla-patch "icecat-bug-1448774.patch" "05cadfa3ac39" "0q0vh7vy7x0l8jp6376fn10qljfp4mnp4m9zfn90j4m19pfl86a0")
- (mozilla-patch "icecat-bug-1449548.patch" "48a678d7cb81" "1yfh7kxxxvqck2hpn98pwag4splyc6c9brc5haq28fp8x9r9qvlk")
- (mozilla-patch "icecat-bug-1448705.patch" "112032576872" "1x1hxyggbxlnlj0n9cbp03hjnfvm6cq8nqj0jizrd8cfyd5aig8p")
- (mozilla-patch "icecat-bug-1388020.patch" "ad9a885b0df4" "1hrk1q9mk59jww55g4lqmaflznk87x3vvjn2mxfgfbbjs8l1cyz4")
+ (mozilla-patch "icecat-CVE-2018-5150-pt02.patch" "2f3e1ccf1661" "0azl8g81kpc0w2xpjpgm1154ll12g0a8n6i7bl3s9nnrk2i26n74")
+ (mozilla-patch "icecat-CVE-2018-5159.patch" "8ff2c4d68e36" "0kz1rqhnz8ca4z20hnpcafidhsrwhnm0h2gmlgchni33h8pisr1f")
+ (mozilla-patch "icecat-CVE-2018-5154.patch" "b8c430253efd" "1arjcaps9axhxh5ff84n9bydhhzrihn7hbq7v69nvqwqrjp3lgg9")
+ (mozilla-patch "icecat-CVE-2018-5155.patch" "05cadfa3ac39" "0q0vh7vy7x0l8jp6376fn10qljfp4mnp4m9zfn90j4m19pfl86a0")
+ (mozilla-patch "icecat-CVE-2018-5168.patch" "48a678d7cb81" "1yfh7kxxxvqck2hpn98pwag4splyc6c9brc5haq28fp8x9r9qvlk")
+ (mozilla-patch "icecat-CVE-2018-5150-pt03.patch" "112032576872" "1x1hxyggbxlnlj0n9cbp03hjnfvm6cq8nqj0jizrd8cfyd5aig8p")
+ (mozilla-patch "icecat-CVE-2018-5150-pt04.patch" "ad9a885b0df4" "1hrk1q9mk59jww55g4lqmaflznk87x3vvjn2mxfgfbbjs8l1cyz4")
(mozilla-patch "icecat-bug-1452416.patch" "f89ab96a2532" "1dqchxdyznhgyxhfq0hm0vg1p597hjqflfzigc7j3s5vxf9rg2nv")
- (mozilla-patch "icecat-bug-1451376.patch" "af885a1bd293" "1wfpqhm2dp4fsx6zbrncngsqz7g2x09b625zcighixrbpvybyww3")
- (mozilla-patch "icecat-bug-1444668.patch" "666fc84ec72d" "0lml2wqd4yqidhi364x8r90f78397k2y0kq5z5bv8l8j4bhcnb9v")
- (search-patch "icecat-bug-1452075.patch")
- (mozilla-patch "icecat-bug-1393367.patch" "1ab40761a856" "1kgwypy7k5b33jwkni4025za4kcnv5m6klsx4wsswlixmljmkbc7")
+ (mozilla-patch "icecat-CVE-2018-5150-pt05.patch" "af885a1bd293" "1wfpqhm2dp4fsx6zbrncngsqz7g2x09b625zcighixrbpvybyww3")
+ (mozilla-patch "icecat-CVE-2018-5150-pt06.patch" "666fc84ec72d" "0lml2wqd4yqidhi364x8r90f78397k2y0kq5z5bv8l8j4bhcnb9v")
+ (search-patch "icecat-CVE-2018-5157-and-CVE-2018-5158.patch")
+ (mozilla-patch "icecat-CVE-2018-5150-pt07.patch" "1ab40761a856" "1kgwypy7k5b33jwkni4025za4kcnv5m6klsx4wsswlixmljmkbc7")
(mozilla-patch "icecat-bug-1453339.patch" "0edb8dca7087" "0b30pipqryh311sc97rcmwnx9n8qdlbbz90b2hkybjnprmbhfxrm")
- (mozilla-patch "icecat-bug-1452202.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam")
- (mozilla-patch "icecat-bug-1411415.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd")
+ (mozilla-patch "icecat-CVE-2018-5150-pt08.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam")
+ (mozilla-patch "icecat-CVE-2018-5150-pt09.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd")
(mozilla-patch "icecat-bug-1452619.patch" "2b75d55ccf0e" "1g87aybw6ggv6hyk385bplv0lx63n020gwyq0d6d4pqld48hsm1i")
- (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9")))
+ (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9")
+ (mozilla-patch "icecat-CVE-2018-5150-pt10.patch" "3f2ec03c0405" "0w02952dlxd2gmwghck2nm4rjjmc5ylg62bw6m1rvi35kcr134lr")
+ (mozilla-patch "icecat-CVE-2018-5183.patch" "f729bf78fb3a" "0xkj6jwxwdqkvb5c7wi16b8cm8qrnlrd3s9jnd46jg03iykrx56f")))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index c6fc68468f..fe6dfbe1c8 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -214,7 +214,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.4)
(name "go")
- (version "1.9.5")
+ (version "1.9.6")
(source
(origin
(method url-fetch)
@@ -222,7 +222,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz"))
(sha256
(base32
- "1g4zqhbh1yw3gnb400szzwrdz0k5s3h0h5nc35xgmn5v69zvphpi"))))
+ "0a2qkvzr0g5cbd66wi7b6r40qyp9p55y0zz2j5qg1xsqwsdhbx1n"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@@ -383,7 +383,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.9)
(name "go")
- (version "1.10.1")
+ (version "1.10.2")
(source
(origin
(method url-fetch)
@@ -391,7 +391,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz"))
(sha256
(base32
- "1p1xyyxicp752n9wj10sljjl6mjxpfsplkhx74fzzjrwdkzlk52q"))))
+ "1gcqbac3wbhbcr0ri9zgfj6qkqbwf9fn116a0a7fvn4wdff60r32"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.9)
((#:phases phases)
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 2b7438c902..11997598c1 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -117,13 +117,13 @@ interfaces for other technical domains.")
(define-public python-graphviz
(package
(name "python-graphviz")
- (version "0.8.2")
+ (version "0.8.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "graphviz" version ".zip"))
(sha256
(base32
- "148h7ln8z65c1723w9vpx8khkvl9iigh8csv0qd4pidc53042rv0"))))
+ "0gnl11w98iib7vif92f3vircavy2v1yl9sl54y6hhk1mwm0f07f6"))))
(build-system python-build-system)
(native-inputs
`(("unzip" ,unzip)))
diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm
new file mode 100644
index 0000000000..512f9c9edb
--- /dev/null
+++ b/gnu/packages/groovy.scm
@@ -0,0 +1,1156 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages groovy)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system ant)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages java)
+ #:use-module (gnu packages xml))
+
+(define java-groovy-bootstrap
+ (package
+ (name "java-groovy-bootstrap")
+ (version "2.4.15")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_"
+ (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+ ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "19f3yd2z6jmz1xhwi5kkg1wmgbqkfs7qvd3rzb43xr3nffz8cisv"))
+ (patches
+ (search-patches
+ "groovy-add-exceptionutilsgenerator.patch"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "groovy.jar"
+ #:source-dir "src/main:subprojects/groovy-test/src/main/java"
+ #:test-dir "src/test"
+ #:tests? #f
+ #:jdk ,icedtea-8
+ #:main-class "groovy.ui.GroovyMain"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-java8
+ ;; Fix "Reference to plus is ambiguous"
+ (lambda _
+ (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java"
+ (("toList\\(left\\)")
+ "(List<T>)toList(left)"))
+ #t))
+ (add-before 'build 'generate-parsers
+ (lambda _
+ (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java"
+ (invoke "antlr" "java.g"))
+ (with-directory-excursion "src/main/org/codehaus/groovy/antlr"
+ (mkdir "parser")
+ (with-directory-excursion "parser"
+ (invoke "antlr" "../groovy.g")))
+ #t))
+ (add-before 'build 'generate-exception-utils
+ (lambda _
+ (invoke "javac" "-cp" (getenv "CLASSPATH")
+ "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java")
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":config/ant/src")
+ "org.codehaus.groovy.ExceptionUtilsGenerator"
+ "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")
+ #t)))))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("antlr2" ,antlr2)
+ ("java-jmock-1" ,java-jmock-1)
+ ("java-xmlunit-legacy" ,java-xmlunit-legacy)))
+ (inputs
+ `(("java-commons-cli" ,java-commons-cli)
+ ("java-asm" ,java-asm)
+ ("java-classpathx-servletapi" ,java-classpathx-servletapi)
+ ("java-xstream" ,java-xstream)
+ ("java-jansi" ,java-jansi)
+ ("java-jline-2" ,java-jline-2)))
+ (home-page "http://groovy-lang.org/")
+ (synopsis "Groovy's java bootstrap")
+ (description "This package contains the java bootstrap that is used to build
+groovy submodules.")
+ (license license:asl2.0)))
+
+(define groovy-bootstrap
+ (package
+ (inherit java-groovy-bootstrap)
+ (name "groovy-bootstrap")
+ (arguments
+ `(#:jar-name "groovy.jar"
+ #:jdk ,icedtea-8
+ ;Requires groovy-xml and logback-classic which are circular dependencies
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-java8
+ ;; Fix "Reference to plus is ambiguous"
+ (lambda _
+ (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java"
+ (("toList\\(left\\)")
+ "(List<T>)toList(left)"))
+ #t))
+ (add-before 'build 'generate-parser
+ (lambda _
+ (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java"
+ (invoke "antlr" "java.g"))
+ (with-directory-excursion "src/main/org/codehaus/groovy/antlr"
+ (mkdir "parser")
+ (with-directory-excursion "parser"
+ (invoke "antlr" "../groovy.g")))
+ #t))
+ (add-before 'build 'generate-exception-utils
+ (lambda _
+ (invoke "javac" "-cp" (getenv "CLASSPATH")
+ "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java")
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":config/ant/src")
+ "org.codehaus.groovy.ExceptionUtilsGenerator"
+ "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")
+ #t))
+ (add-before 'build 'generate-dgminfo
+ (lambda _
+ (mkdir-p "target/classes/org/codehaus/groovy/runtime")
+ (mkdir-p "target/classes/META-INF")
+ (invoke "javac" "-cp" (getenv "CLASSPATH")
+ "src/main/org/codehaus/groovy/tools/DgmConverter.java")
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":src/main")
+ "org.codehaus.groovy.tools.DgmConverter")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (with-directory-excursion "src/main"
+ (for-each (lambda (file)
+ (mkdir-p (string-append "../../target/classes/"
+ (dirname file)))
+ (copy-file file
+ (string-append "../../target/classes/"
+ file)))
+ (find-files "." ".*.(txt|properties|xml|html)")))
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "target/classes"
+ "-j"; joint compilation
+ (find-files "src/main"
+ ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy.jar"
+ "-C" "target/classes" ".")
+ #t)))))
+ (inputs
+ `(("java-apache-ivy" ,java-apache-ivy)
+ ,@(package-inputs java-groovy-bootstrap)))
+ (native-inputs
+ `(("java-groovy-bootstrap" ,java-groovy-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy compiler")
+ (description "This package contains the first version of the Groovy compiler.
+Although already usable, it doesn't contain the groovy library yet. This package
+is used to build the groovy submodules written in groovy.")))
+
+(define groovy-tests-bootstrap
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-tests-bootstrap")
+ (arguments
+ `(#:jar-name "groovy-tests-bootstrap.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes"
+ "-j"; joint compilation
+ (append
+ (find-files "src/test" "TestSupport.java")
+ (find-files "src/test" "HeadlessTestSupport.java")
+ (find-files "src/test" "XmlAssert.java")))
+ (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (inputs
+ `(("groovy-test" ,groovy-test)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy test classes")
+ (description "This package contains three classes required for testing
+other groovy submodules.")))
+
+(define groovy-test
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-test")
+ (arguments
+ `(#:jar-name "groovy-test.jar"
+ #:jdk ,icedtea-8
+ #:test-dir "subprojects/groovy-test/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "subprojects/groovy-test/src/main"
+ ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-test.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "subprojects/groovy-test/src/test"
+ ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy test submodule")
+ (description "This package contains the test submodules used to test
+other groovy submodules.")))
+
+(define groovy-xml
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-xml")
+ (arguments
+ `(#:jar-name "groovy-xml.jar"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-xml")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-xml.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy XML")
+ (description "This package contains XML-related utilities for groovy.")))
+
+(define groovy-templates
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-templates")
+ (arguments
+ `(#:jar-name "groovy-templates.jar"
+ #:jdk ,icedtea-8
+ #:test-dir "subprojects/groovy-templates/src/test"
+ #:tests? #f;Requires spock-framework which is a circular dependency
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "subprojects/groovy-templates/src/main"
+ ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-templates.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (inputs
+ `(("groovy-xml" ,groovy-xml)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy template engine")
+ (description "This package contains a template framework which is
+well-suited to applications where the text to be generated follows the form of
+a static template.")))
+
+(define groovy-groovydoc
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-groovydoc")
+ (arguments
+ `(#:jar-name "groovy-groovydoc.jar"
+ #:jdk ,icedtea-8
+ #:test-dir "subprojects/groovy-groovydoc/src/test"
+ #:tests? #f; Requires groovy-ant which is a circular dependency
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "subprojects/groovy-groovydoc/src/main/resources"
+ "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes"
+ "-j"; joint compilation
+ (find-files "subprojects/groovy-groovydoc/src/main"
+ ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (inputs
+ `(("groovy-templates" ,groovy-templates)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy documentation generation")
+ (description "This package contains the groovy documentation generator,
+similar to javadoc.")))
+
+(define groovy-ant
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-ant")
+ (arguments
+ `(#:jar-name "groovy-ant.jar"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"
+ ;; FIXME: Excluding all tests because they fail
+ #:test-exclude (list
+ "**/GroovyTest.java"
+ "**/GroovycTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-ant")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-ant.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (find-files "src/test" ".*\\.(groovy|java)$"))
+ (invoke "ant" "check")
+ #t)))))
+ (inputs
+ `(("groovy-groovydoc" ,groovy-groovydoc)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-xml" ,groovy-xml)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy ant tasks")
+ (description "This package contains groovy-related ant tasks definitions.")))
+
+(define groovy-bsf
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-bsf")
+ (arguments
+ `(#:jar-name "groovy-bsf.jar"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"
+ #:test-exclude (list
+;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException:
+;; groovy.lang.MissingMethodException: No signature of method:
+;; java.util.ArrayList.each() is applicable for argument types:
+;; (groovy.script.MapFromList$_doit_closure1) values:
+;; [groovy.script.MapFromList$_doit_closure1@17e554d5]
+ "**/BSFTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-bsf")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-bsf.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\""))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (find-files "src/test" ".*\\.(groovy|java)$"))
+ (invoke "ant" "check")
+ #t)))))
+ (inputs
+ `(("java-commons-bsf" ,java-commons-bsf)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy BSF engine")
+ (description "This package defines the BSF engine for using Groovy inside
+any @dfn{Bean Scripting Framework} (BSF) application.")))
+
+(define groovy-swing
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-swing")
+ (arguments
+ `(#:jar-name "groovy-swing.jar"
+ #:jdk ,icedtea-8
+ ;; FIXME: tests are not run
+ #:test-dir "src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-swing")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-swing.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy"
+ (("HeadlessTestSupport.headless") "isHeadless()"))
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (find-files "src/test" ".*\\.(groovy|java)$"))
+ (invoke "ant" "check")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy graphical library")
+ (description "This package contains the groovy bindings to Java Swing, a
+library used to build graphical interfaces.")))
+
+(define groovy-console
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-console")
+ (arguments
+ `(#:jar-name "groovy-console.jar"
+ #:jdk ,icedtea-8
+ ;; FIXME: tests are not run
+ #:test-dir "src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-console")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-console.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (substitute*
+ "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy"
+ (("HeadlessTestSupport.headless") "isHeadless()"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append
+ (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$")
+ (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (inputs
+ `(("groovy-swing" ,groovy-swing)
+ ("groovy-templates" ,groovy-templates)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy graphical interface")
+ (description "This package contains a graphical interface to run groovy.")))
+
+(define groovy-docgenerator
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-docgenerator")
+ (arguments
+ `(#:jar-name "groovy-docgenerator.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f; No tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-docgenerator")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (inputs
+ `(("groovy-templates" ,groovy-templates)
+ ("groovy-swing" ,groovy-swing)
+ ("java-qdox-1.12" ,java-qdox-1.12)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy documentation generation")
+ (description "This package contains a command line tool to generate
+documentation for groovy applications.")))
+
+(define groovy-groovysh
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-groovysh")
+ (arguments
+ `(#:jar-name "groovy-groovysh.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-groovysh")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (inputs
+ `(("groovy-xml" ,groovy-xml)
+ ("groovy-console" ,groovy-console)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy REPL")
+ (description "This package contains the Groovy REPL.")))
+
+(define groovy-jmx
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-jmx")
+ (arguments
+ `(#:jar-name "groovy-jmx.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-jmx")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-jmx.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy JMX extension")
+ (description "This package contains the JMX extension of Groovy, for
+management and monitoring of JVM-based solutions.")))
+
+(define groovy-json
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-json")
+ (arguments
+ `(#:jar-name "groovy-json.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-json")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-json.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy JSON")
+ (description "This package contains JSON-related utilities for groovy.")))
+
+(define groovy-jsr223
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-jsr223")
+ (arguments
+ `(#:jar-name "groovy-jsr223.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-jsr223")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy's own JSR223 implementation")
+ (description "This package contains Groovy's own JSR223 implementation. This
+module is used for interaction between Groovy and Java code.")))
+
+(define groovy-nio
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-nio")
+ (arguments
+ `(#:jar-name "groovy-nio.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:tests? #f; Requires spock-framework
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-nio")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-nio.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy input-output library")
+ (description "This package implements an input/output library that extends
+the functionality of the common library of Java.")))
+
+(define groovy-servlet
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-servlet")
+ (arguments
+ `(#:jar-name "groovy-servlet.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-servlet")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes"
+ "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-servlet.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes"
+ "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (inputs
+ `(("groovy-templates" ,groovy-templates)
+ ("groovy-xml" ,groovy-xml)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-json" ,groovy-json)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy's servlet implementation")
+ (description "This package contains a library to create groovlets, Groovy's
+version of Java servlets.")))
+
+(define groovy-sql
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-sql")
+ (arguments
+ `(#:jar-name "groovy-sql.jar"
+ #:test-dir "src/test"
+ #:tests? #f;TODO: Requires hsqldb
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-sql")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main"
+ ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-sql.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy SQL library")
+ (description "This package contains a facade over Java's normal JDBC APIs
+providing greatly simplified resource management and result set handling.")))
+
+(define groovy-testng
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-testng")
+ (arguments
+ `(#:jar-name "groovy-testng.jar"
+ #:tests? #f; No tests
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-testng")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes"
+ "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-testng.jar"
+ "-C" "build/classes" ".")
+ #t)))))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy testing framework")
+ (description "This package contains integration code for running TestNG
+tests in Groovy.")))
+
+(define groovy-macro
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy-macro")
+ (arguments
+ `(#:jar-name "groovy-macro.jar"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "subprojects/groovy-macro")
+ #t))
+ (replace 'build
+ (lambda _
+ (mkdir-p "build/classes")
+ (mkdir-p "build/jar")
+ (apply invoke "java" "-cp" (getenv "CLASSPATH")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/classes" "-j"; joint compilation
+ (find-files "src/main" ".*\\.(groovy|java)$"))
+ (invoke "jar" "-cf" "build/jar/groovy-macro.jar"
+ "-C" "build/classes" ".")
+ #t))
+ (replace 'check
+ (lambda _
+ (mkdir-p "build/test-classes")
+ (substitute* "build.xml"
+ (("depends=\"compile-tests\"") "depends=\"\"")
+ (("}/java") "}/groovy"))
+ (apply invoke "java" "-cp"
+ (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.groovy.tools.FileSystemCompiler"
+ "-d" "build/test-classes" "-j"
+ (append (find-files "src/test" ".*\\.(groovy|java)$")))
+ (invoke "ant" "check")
+ #t)))))
+ (inputs
+ `(("groovy-templates" ,groovy-templates)
+ ("groovy-xml" ,groovy-xml)
+ ,@(package-inputs groovy-bootstrap)))
+ (native-inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-json" ,groovy-json)
+ ("groovy-test" ,groovy-test)
+ ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+ ,@(package-native-inputs java-groovy-bootstrap)))
+ (synopsis "Groovy macro processor")
+ (description "This package contains a high-level library to create macro
+and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
+
+(define-public groovy
+ (package
+ (inherit groovy-bootstrap)
+ (name "groovy")
+ (arguments
+ `(#:tests? #f; No tests
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (out-bin (string-append out "/bin"))
+ (out-lib (string-append out "/lib")))
+ (with-directory-excursion "src/bin"
+ (substitute* "startGroovy"
+ (("\"\\\\\"") "\"")
+ (("\\\\\"\"") "\"")
+ (("\\\\\\$") "$")
+ (("@GROOVYJAR@") "groovy.jar")
+ (("MAX_FD=\"maximum\"")
+ (string-append
+ "MAX_FD=\"maximum\"\nJAVAHOME="
+ (assoc-ref inputs "jdk"))))
+ ;; Groovy uses class loading. It's not enough to put the class
+ ;; in the loader's classpath, as it causes breakages:
+ ;; the compiler would give this error:
+ ;; "Prohibited package name: java.lang"
+ ;; So we symlink dependencies in this package's output. The
+ ;; starter class (in groovy-bootstrap) is where the class loader
+ ;; will look for dependencies, so we put it there too.
+ (mkdir-p out-lib)
+ (for-each
+ (lambda (input)
+ (for-each
+ (lambda (jar)
+ (symlink jar (string-append out-lib "/" (basename jar))))
+ (find-files (assoc-ref inputs input) ".*.jar")))
+ '("groovy-bootstrap" "groovy-ant" "groovy-bsf"
+ "groovy-console" "groovy-docgenerator"
+ "groovy-groovydoc" "groovy-groovysh"
+ "groovy-jmx" "groovy-json" "groovy-jsr223"
+ "groovy-nio" "groovy-servlet" "groovy-sql"
+ "groovy-swing" "groovy-templates" "groovy-testng"
+ "java-commons-cli" "java-asm"
+ "java-classpathx-servletapi" "java-xstream"
+ "java-jansi" "java-jline-2"))
+ ;; antlr.jar is present twice in antlr2. Symlink doesn't like
+ ;; it, so we symlink it here.
+ (symlink (string-append (assoc-ref inputs "antlr2") "/lib/antlr.jar")
+ (string-append out-lib "/antlr.jar"))
+ (for-each
+ (lambda (tool)
+ (install-file tool out-bin)
+ (chmod (string-append out-bin "/" tool) #o755))
+ '("grape" "groovy" "groovyc" "groovyConsole" "groovydoc"
+ "groovysh" "java2groovy" "startGroovy")))
+ (install-file "src/conf/groovy-starter.conf"
+ (string-append out "/conf"))
+ #t))))))
+ (inputs
+ `(("groovy-bootstrap" ,groovy-bootstrap)
+ ("groovy-ant" ,groovy-ant)
+ ("groovy-bsf" ,groovy-bsf)
+ ("groovy-console" ,groovy-console)
+ ("groovy-docgenerator" ,groovy-docgenerator)
+ ("groovy-groovydoc" ,groovy-groovydoc)
+ ("groovy-groovysh" ,groovy-groovysh)
+ ("groovy-jmx" ,groovy-jmx)
+ ("groovy-json" ,groovy-json)
+ ("groovy-jsr223" ,groovy-jsr223)
+ ("groovy-nio" ,groovy-nio)
+ ("groovy-servlet" ,groovy-servlet)
+ ("groovy-sql" ,groovy-sql)
+ ("groovy-swing" ,groovy-swing)
+ ("groovy-templates" ,groovy-templates)
+ ("groovy-testng" ,groovy-testng)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-asm" ,java-asm)
+ ("java-classpathx-servletapi" ,java-classpathx-servletapi)
+ ("java-xstream" ,java-xstream)
+ ("java-jansi" ,java-jansi)
+ ("java-jline-2" ,java-jline-2)
+ ("antlr2" ,antlr2)))
+ (synopsis "Programming language for the JVM")
+ (description "Apache Groovy is a powerful, optionally typed and dynamic
+language, with static-typing and static compilation capabilities, for the Java
+platform. It integrates smoothly with any Java program, and immediately
+delivers to your application powerful features, including scripting
+capabilities, Domain-Specific Language authoring, runtime and compile-time
+meta-programming and functional programming.")))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 9eefb58433..40e1e86f7e 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -353,7 +353,6 @@ par compared to the rest.")
(inputs
`(("gst-plugins-base" ,gst-plugins-base)
("liba52" ,liba52)
- ("libmad" ,libmad)
("lame" ,lame)
("libcdio" ,libcdio)
("twolame" ,twolame)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index ae7813c739..578b4513f8 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -17,6 +17,8 @@
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,6 +68,7 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages networking)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -1569,6 +1572,9 @@ provides access to that interface and its types from the Scheme level.")
'(#:configure-flags
(list (string-append
"--with-guile-site-dir=" %output "/share/guile/site/2.2"))
+ #:make-flags
+ (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib:"
+ (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib"))
#:phases
(modify-phases %standard-phases
(add-after 'install 'patch-extension-path
@@ -1579,6 +1585,8 @@ provides access to that interface and its types from the Scheme level.")
(ext (string-append out "/lib/libguile-dbi")))
(substitute* dbi.scm (("libguile-dbi") ext))
#t))))))
+ (inputs
+ `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3))) ; only shared library, no scheme files
(propagated-inputs
`(("guile" ,guile-2.2)))
(synopsis "Guile database abstraction layer")
@@ -1590,6 +1598,15 @@ programming interface is presented regardless of which database system is used.
It currently supports MySQL, Postgres and SQLite3.")
(license license:gpl2+)))
+(define guile-dbi-bootstrap
+ (package
+ (inherit guile-dbi)
+ (name "guile-dbi-bootstrap")
+ (inputs '())
+ (arguments
+ (substitute-keyword-arguments (package-arguments guile-dbi)
+ ((#:make-flags _) '(list))))))
+
(define-public guile-dbd-sqlite3
(package
(name "guile-dbd-sqlite3")
@@ -1604,12 +1621,11 @@ It currently supports MySQL, Postgres and SQLite3.")
"0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2"))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+ ("guile-dbi-bootstrap" ,guile-dbi-bootstrap))) ; only required for headers
(inputs
`(("sqlite" ,sqlite)
("zlib" ,(@ (gnu packages compression) zlib))))
- (propagated-inputs
- `(("guile-dbi" ,guile-dbi)))
(synopsis "Guile DBI driver for SQLite")
(home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3")
(description
@@ -2109,4 +2125,93 @@ It has a nice, simple s-expression based syntax.")
"Guile-colorized provides you with a colorized REPL for GNU Guile.")
(license license:gpl3+)))
+(define-public guile-simple-zmq
+ (let ((commit "d76657aeb1cd10ef8136edc06bb90999914c7c3c")
+ (revision "0"))
+ (package
+ (name "guile-simple-zmq")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jerry40/guile-simple-zmq")
+ (commit commit)))
+ (sha256
+ (base32
+ "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z"))
+ (file-name (git-file-name name version))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (srfi srfi-26)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (go-dir (string-append out "/lib/guile/"
+ effective "/site-ccache/"))
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+ (scm-file "simple-zmq.scm")
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+ (zmq (assoc-ref %build-inputs "zeromq"))
+ (deps (list zmq))
+ (path (string-join
+ (map (cut string-append <>
+ "/lib/")
+ deps)
+ ":")))
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append go-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+ (substitute* dest-file
+ (("\\(dynamic-link \"libzmq\"\\)")
+ (format #f "(dynamic-link \"~a/lib/libzmq.so\")"
+ (assoc-ref %build-inputs "zeromq"))))
+
+ ;; Install and compile module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ dest-file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ (list scm-file))
+ #t))))
+ (propagated-inputs
+ `(("guile" ,guile-2.2)
+ ("zeromq" ,zeromq)))
+ (home-page "https://github.com/jerry40/guile-simple-zmq")
+ (synopsis "Guile wrapper over ZeroMQ library")
+ (description
+ "This package provides a Guile programming interface to the ZeroMQ
+messaging library.")
+ (license license:gpl3+))))
+
;;; guile.scm ends here
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 6b1d769313..7453f9fbf1 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -451,6 +452,19 @@ hold in a large number of randomly generated cases. Specifications are
expressed in Haskell, using combinators defined in the QuickCheck library.")
(license license:bsd-3)))
+(define-public ghc-quickcheck-2.9
+ (package
+ (inherit ghc-quickcheck)
+ (name "ghc-quickcheck")
+ (version "2.9.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/QuickCheck-2.9.2/QuickCheck-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m"))))))
+
(define-public ghc-quickcheck-latest
(package (inherit ghc-quickcheck)
(version "2.11.3")
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index f2c546d08b..c302ae8308 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -9468,4 +9469,58 @@ system dependencies.")
address string against RFC 5322.")
(license license:bsd-3)))
+(define-public ghc-array
+ (package
+ (name "ghc-array")
+ (version "0.5.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://hackage.haskell.org/package/array-0.5.2.0/array-"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12v83s2imxb3p2crnlzrpjh0nk6lpysw9bdk9yahs6f37csa5jaj"))))
+ (build-system haskell-build-system)
+ (synopsis "Haskell @code{Data.Array} module")
+ (description "In addition to providing the @code{Data.Array} module as
+specified in the Haskell 2010 Language Report, this package defines the
+classes @code{IArray} of immutable arrays and @code{MArray} of arrays mutable
+within appropriate monads, as well as some instances of these classes.")
+ (home-page "https://hackage.haskell.org/package/array")
+ (license license:bsd-3)))
+
+(define-public ghc-containers
+ (package
+ (name "ghc-containers")
+ (version "0.5.11.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://hackage.haskell.org/package/containers-0.5.11.0/containers-"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0j29w09kvcn1c0yi4clmrdbgs2gqmpxs2m7q80ib2ix1smm25kaq"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-array" ,ghc-array)
+ ("ghc-deepseq" ,ghc-deepseq-generics)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-chasingbottoms" ,ghc-chasingbottoms)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-ghc-prim" ,ghc-primitive)))
+ (synopsis "Haskell containers: Assorted concrete container types")
+ (description "This Haskell module provides efficient general-purpose
+implementations of various immutable container types including sets, maps,
+sequences, trees, and graphs.")
+ (home-page "https://hackage.haskell.org/package/containers")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index a44bc086d6..8f80b75af4 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,12 +39,16 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages video)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@@ -191,3 +196,203 @@ triangulation. VTK has an extensive information visualization framework, has
a suite of 3D interaction widgets, supports parallel processing, and
integrates with various databases on GUI toolkits such as Qt and Tk.")
(license license:bsd-3)))
+
+(define-public opencv
+ (package
+ (name "opencv")
+ (version "3.4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/opencv/opencv/archive/"
+ version ".zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "1g8pvnlkzzp50amd89149hqsbvsc2hq3vk1d6a9fksdcx8ra9g94"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove external libraries. We have all available in Guix:
+ (delete-file-recursively "3rdparty")
+
+ ;; Milky icon set is non-free:
+ (delete-file-recursively "modules/highgui/src/files_Qt/Milky")
+
+ ;; Some jars found:
+ (for-each delete-file
+ '("modules/java/test/pure_test/lib/junit-4.11.jar"
+ "samples/java/sbt/sbt/sbt-launch.jar"))))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "-DWITH_IPP=OFF"
+ "-DWITH_ITT=OFF"
+
+ ;; CPU-Features:
+ ;; See cmake/OpenCVCompilerOptimizations.cmake
+ ;; (CPU_ALL_OPTIMIZATIONS) for a list of all optimizations
+ ;; BASELINE is the minimum optimization all CPUs must support
+ ;;
+ ;; DISPATCH is the list of optional dispatches
+ "-DCPU_BASELINE=SSE2, NEON"
+
+ "-DCPU_DISPATCH=SSE3,SSSE3,SSE4_1,SSE4_2,AVX,AVX2"
+ "-DCPU_DISPATCH_REQUIRE=SSE3,SSSE3,SSE4_1,SSE4_2,AVX,AVX2"
+
+ "-DBUILD_PERF_TESTS=OFF"
+ "-D BUILD_TESTS=ON"
+
+ (string-append "-DOPENCV_EXTRA_MODULES_PATH="
+ "/tmp/guix-build-opencv-" ,version ".drv-0"
+ "/opencv-contrib/opencv_contrib-" ,version
+ "/modules")
+
+ ;;Define test data:
+ (string-append "-DOPENCV_TEST_DATA_PATH="
+ "/tmp/guix-build-opencv-" ,version ".drv-0"
+ ;;"/opencv-3.4.0"
+ "/opencv-extra/opencv_extra-" ,version
+ "/testdata")
+
+ ;; Is ON by default and would try to rebuild 3rd-party protobuf,
+ ;; which we had removed, which would lead to an error:
+ "-DBUILD_PROTOBUF=OFF"
+
+ ;; Rebuild protobuf files, because we have a slightly different
+ ;; version than the included one. If we would not update, we
+ ;; would get a compile error later:
+ "-DPROTOBUF_UPDATE_FILES=ON"
+
+ ;; xfeatures2d disabled, because it downloads extra binaries from
+ ;; https://github.com/opencv/opencv_3rdparty
+ ;; defined in xfeatures2d/cmake/download_{vgg|bootdesc}.cmake
+ ;; Cmp this bug entry:
+ ;; https://github.com/opencv/opencv_contrib/issues/1131
+ "-DBUILD_opencv_xfeatures2d=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ ;; These tests fails with:
+ ;; vtkXOpenGLRenderWindow (0x723990): Could not find a decent config
+ ;; I think we have no OpenGL support with the Xvfb.
+ (substitute* '("modules/viz/test/test_tutorial3.cpp"
+ "modules/viz/test/test_main.cpp"
+ "modules/viz/test/tests_simple.cpp"
+ "modules/viz/test/test_viz3d.cpp")
+ (("(TEST\\(Viz, )([a-z].*\\).*)" all pre post)
+ (string-append pre "DISABLED_" post)))
+
+ ;; This one fails with "unknown file: Failure"
+ ;; But I couldn't figure out which file was missing:
+ (substitute* (list (string-append
+ "../opencv-contrib/opencv_contrib-"
+ ,version
+ "/modules/face/test/test_face_align.cpp"))
+ (("(TEST\\(CV_Face_FacemarkKazemi, )(can_detect_landmarks\\).*)"
+ all pre post)
+ (string-append pre "DISABLED_" post)))
+
+ ;; Failure reason: Bad accuracy
+ ;; Incorrect count of accurate poses [2nd case]: 90.000000 / 94.000000
+ (substitute* (list (string-append
+ "../opencv-contrib/opencv_contrib-"
+ ,version
+ "/modules/rgbd/test/test_odometry.cpp"))
+ (("(TEST\\(RGBD_Odometry_Rgbd, )(algorithmic\\).*)" all pre post)
+ (string-append pre "DISABLED_" post)))
+ #t))
+
+ ;; Idea copied from ldc.scm (ldc-bootstrap):
+ (add-after 'unpack 'unpack-submodule-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir "../opencv-extra")
+ (mkdir "../opencv-contrib")
+ (let ((unpack (lambda (source target)
+ (with-directory-excursion target
+ (apply invoke "unzip"
+ (list (assoc-ref inputs source)))))))
+ (unpack "opencv-extra" "../opencv-extra")
+ (unpack "opencv-contrib" "../opencv-contrib"))))
+
+ (add-after 'set-paths 'add-ilmbase-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; OpenEXR propagates ilmbase, but its include files do not appear
+ ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
+ ;; the CPATH to satisfy the dependency on "ImathVec.h".
+ (setenv "CPATH"
+ (string-append (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR"
+ ":" (or (getenv "CPATH") "")))
+ #t))
+ (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)))))))))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server) ; For running the tests
+ ("opencv-extra"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://codeload.github.com/"
+ "opencv/opencv_extra/zip/" version))
+ (file-name (string-append "opencv-extra-" version ".zip"))
+ (sha256
+ (base32 "0wfh3pvfxqydf7hsccp50npcsg37sf6fqi6cd3zkc4qil9zhpbps"))))
+ ("opencv-contrib"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://codeload.github.com/"
+ "opencv/opencv_contrib/zip/" version))
+ (file-name (string-append "opencv-contrib-" version ".zip"))
+ (sha256
+ (base32 "18zm0qmjcdvg90c33gzv0ws0xdaid1xpqzz2xa9l2x12qkr6zj3p"))))))
+ (inputs `(("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("jasper" ,jasper)
+ ;; ffmpeg 4.0 causes core dumps in tests.
+ ("ffmpeg" ,ffmpeg-3.4)
+ ("libtiff" ,libtiff)
+ ("hdf5" ,hdf5)
+ ("libgphoto2" ,libgphoto2)
+ ("libwebp" ,libwebp)
+ ("zlib" ,zlib)
+ ("gtkglext" ,gtkglext)
+ ("openexr" ,openexr)
+ ("ilmbase" ,ilmbase)
+ ("gtk+" ,gtk+-2)
+ ("python-numpy" ,python-numpy)
+ ("protobuf" ,protobuf)
+ ("vtk" ,vtk)
+ ("python" ,python)))
+ ;; These three CVEs are not a problem of OpenCV, see:
+ ;; https://github.com/opencv/opencv/issues/10998
+ (properties '((lint-hidden-cve . ("CVE-2018-7712"
+ "CVE-2018-7713"
+ "CVE-2018-7714"))))
+ (synopsis "Computer vision library")
+ (description "OpenCV is a library aimed at
+real-time computer vision, including several hundred computer
+vision algorithms. It can be used to do things like:
+
+@itemize
+@item image and video input and output
+@item image and video processing
+@item displaying
+@item feature recognition
+@item segmentation
+@item facial recognition
+@item stereo vision
+@item structure from motion
+@item augmented reality
+@item machine learning
+@end itemize\n")
+ (home-page "https://opencv.org/")
+ (license license:bsd-3)))
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 1f0a9e46e1..68f1148908 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -31,14 +31,15 @@
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (gnu packages autotools)
#:use-module (gnu packages algebra)
- #:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@@ -59,7 +60,7 @@
(define-public feh
(package
(name "feh")
- (version "2.26")
+ (version "2.26.2")
(home-page "https://feh.finalrewind.org/")
(source (origin
(method url-fetch)
@@ -67,7 +68,7 @@
name "-" version ".tar.bz2"))
(sha256
(base32
- "11kckzwk3b734l0n4j41k40liq1v2lbbj1gzir5qc386g7fvzmmi"))))
+ "07hn5d5m1jsqp6qb2d3lah1js8382hrf225y0q8776m2k3vzylk3"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))
@@ -231,43 +232,36 @@ it and customize it for your needs.")
(define-public viewnior
(package
(name "viewnior")
- (version "1.6")
+ (version "1.7")
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/xsisqox/Viewnior/archive/"
+ (uri (string-append "https://github.com/hellosiyan/Viewnior/archive/"
name "-" version ".tar.gz"))
(sha256
(base32
- "18309qjgwak3kn228z3p3nx7yxasqgzx69v3rgc23hf161nky0c9"))))
- (build-system gnu-build-system)
+ "1rpkk721s3xas125q3g0fl11b5zsrmzv9pzl6ddzcy4sj2rd7ymr"))))
+ (build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'autogen
- (lambda _
- (zero? (system* "sh" "autogen.sh"))))
- (add-before 'install 'skip-gtk-update-icon-cache
+ (add-after 'unpack 'patch-source
(lambda _
;; Don't create 'icon-theme.cache'
- (substitute* (find-files "data" "^Makefile$")
- (("gtk-update-icon-cache") (which "true")))
- #t)))))
+ (substitute* "meson.build"
+ (("meson.add_install_script*") ""))
+ #t)))
+ #:tests? #f)) ; no tests
(native-inputs
- `(("automake" ,automake)
- ("autoconf" ,autoconf)
- ("intltool" ,intltool)
+ `(("gettext" ,gettext-minimal)
("glib" ,glib "bin") ; glib-genmarshal
- ("gnome-common" ,gnome-common)
- ("libtool" ,libtool)
("pkg-config" ,pkg-config)
- ("shared-mime-info" ,shared-mime-info)
- ("which" ,which)))
+ ("shared-mime-info" ,shared-mime-info)))
(inputs
`(("exiv2" ,exiv2)
("gdk-pixbuf" ,gdk-pixbuf)
("gtk+-2" ,gtk+-2)))
- (home-page "http://siyanpanayotov.com/project/viewnior/")
+ (home-page "http://siyanpanayotov.com/project/viewnior")
(synopsis "Simple, fast and elegant image viewer")
(description "Viewnior is an image viewer program. Created to be simple,
fast and elegant. Its minimalistic interface provides more screenspace for
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index c63259dd01..e80da6d848 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -47,14 +47,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-39")
+ (version "6.9.9-43")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
- "0cgrvfg8722cdv2y0hw2f7xhzdfmfiqc1348l71ki38dg4b0q4sn"))))
+ "09vfxb1ljfma7mvkcqp17bs7adlrfh6kc6k9hifkhgxf51vr7hk6"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
@@ -169,7 +169,7 @@ script.")
(define-public graphicsmagick
(package
(name "graphicsmagick")
- (version "1.3.28")
+ (version "1.3.29")
(source (origin
(method url-fetch)
(uri
@@ -181,7 +181,7 @@ script.")
"/GraphicsMagick-" version ".tar.xz")))
(sha256
(base32
- "0jlrrimrajcmwp7llivyj14qnzb1mpqd8vw95dl6zbx5m2lnhall"))))
+ "1m0cc6kpky06lpcipj7rfwc2jbw2igr0jk97zqmw3j1ld5mg93g1"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index ffd5f60b38..de9940df1c 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -80,8 +80,13 @@
;; FIXME: tests require gmock
(arguments
`(#:tests? #f
- #:make-flags
- '("gtk_update_icon_cache=true")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-icon-cache-generator
+ (lambda _
+ (substitute* "share/icons/application/CMakeLists.txt"
+ (("gtk-update-icon-cache") "true"))
+ #t)))))
(home-page "https://inkscape.org/")
(synopsis "Vector graphics editor")
(description "Inkscape is a vector graphics editor. What sets Inkscape
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index eeeec406a8..3a9e88ad08 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -370,6 +371,44 @@ to ES5 without causing run-time errors in older engines. In many cases, this
means that these shams cause many ES5 methods to silently fail.")
(license license:expat)))
+(define-public js-filesaver
+ (package
+ (name "js-filesaver")
+ (version "1.3.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/eligrey/FileSaver.js/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "1rkhfqs5plaj628kzj7qgm5qahy4v7ihygifidqr6g6265mil97h"))))
+ (build-system minify-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-uglification
+ ;; Remove "export" keyword which prevents the file from being
+ ;; uglified by uglify-js. Moreover, that keyword is not present in
+ ;; the minified version of the library some projects are using,
+ ;; e.g.,
+ ;; <https://github.com/jmoenig/Snap--Build-Your-Own-Blocks/blob/master/FileSaver.min.js>
+ (lambda _
+ (substitute* "src/FileSaver.js"
+ (("export ") ""))
+ #t)))))
+ (home-page
+ "https://eligrey.com/blog/saving-generated-files-on-the-client-side/")
+ (synopsis "HTML5 saveAs() FileSaver implementation")
+ (description "@file{FileSaver.js} implements the @code{saveAs()}
+FileSaver interface in browsers that do not natively support it.
+
+@file{FileSaver.js} is the solution to saving files on the
+client-side, and is perfect for webapps that need to generate files,
+or for saving sensitive information that shouldn't be sent to an
+external server.")
+ (license license:expat)))
+
(define-public mujs
(package
(name "mujs")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 099c01fe3d..7dc2cf37fe 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -142,7 +142,7 @@ common build settings used in software produced by the KDE community.")
(define-public phonon
(package
(name "phonon")
- (version "4.10.0")
+ (version "4.10.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -151,7 +151,7 @@ common build settings used in software produced by the KDE community.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0gyhlnwamzfw31kw4qh0v6rj0m47k9wfygd6h07klg9ggp60xhg2"))))
+ "1dwdw0hm6685psrp7v9frhkhqvsxrbdnm3gw794j5z7g3brqvag5"))))
(build-system cmake-build-system)
(native-inputs
;; TODO: Think about adding pulseaudio. Is it required for sound?
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 65119e85df..39e2ef1d7e 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -838,7 +838,7 @@ and to return information on pronunciations, meanings and synonyms.")
(define-public libreoffice
(package
(name "libreoffice")
- (version "5.4.6.2")
+ (version "5.4.7.1")
(source
(origin
(method url-fetch)
@@ -848,7 +848,7 @@ and to return information on pronunciations, meanings and synonyms.")
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
(sha256
(base32
- "0icd8h221gp2dsbn6d35flwhqhcfpx66cjc5dg8yifhhvrfam74i"))))
+ "0g60wzg90n1kanmkiwy01jz4s4xgdkpczvm7vdrmjpp7ifrgijbv"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 427f9bd88d..85d83d85d8 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -392,8 +392,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
-(define %linux-libre-version "4.16.7")
-(define %linux-libre-hash "145hv7paw5zd6bnkk0agxyg2a37066xhrxszbq3d03mjvi8ap117")
+(define %linux-libre-version "4.16.9")
+(define %linux-libre-hash "13v5pb30v16cn81w2gnwaa4zhxas7q3zz10igpa2rqd5fdiy3rlz")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -401,8 +401,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems
#:configuration-file kernel-config))
-(define %linux-libre-4.14-version "4.14.39")
-(define %linux-libre-4.14-hash "0r6fydsgspnskh5n1hfrkyrlrmql635zqr44ajafmqimldc0bplz")
+(define %linux-libre-4.14-version "4.14.41")
+(define %linux-libre-4.14-hash "0qcfw4spnjlzri8bgch1j0yxsw75gjx1m9qyn3h1lk4a33gczih6")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@@ -411,14 +411,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.98"
- "14mqg2hvxg4zwajwly18akyaca821sp4iz5w3xmikwndn2j8y1lw"
+ (make-linux-libre "4.9.100"
+ "1zphlisrjzbgk7nvclbwm23kmrx7vw13w02r1va3g5lzh0rlwx71"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.131"
- "1phah297rxjwy22wfaqlzpbk71ddp3drma5dx3i8xv6g8vijd08x"
+ (make-linux-libre "4.4.132"
+ "012nmbvvi8sg0iav5aibk8qx189iwqjadnr4h5jv65gzi7i79li9"
%intel-compatible-systems
#:configuration-file kernel-config))
@@ -716,7 +716,7 @@ slabtop, and skill.")
(define-public usbutils
(package
(name "usbutils")
- (version "009")
+ (version "010")
(source
(origin
(method url-fetch)
@@ -724,7 +724,7 @@ slabtop, and skill.")
"usbutils-" version ".tar.xz"))
(sha256
(base32
- "0q3iavmak2bs9xw486w4xfbjl0hbzii93ssgpr95mxmm9kjz1gwb"))))
+ "06aag4jfgsfjxk563xsp9ik9nadihmasrr37a1gb0vwqni5kdiv1"))))
(build-system gnu-build-system)
(inputs
`(("libusb" ,libusb)
@@ -3268,10 +3268,10 @@ repair and easy administration.")
from the btrfs-progs package. It is meant to be used in initrds.")
(license (package-license btrfs-progs))))
-(define-public f2fs-tools
+(define-public f2fs-tools-1.7
(package
(name "f2fs-tools")
- (version "1.8.0")
+ (version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3279,15 +3279,27 @@ from the btrfs-progs package. It is meant to be used in initrds.")
"/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
(sha256
(base32
- "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl"))))
+ "1m6bn1ibq0p53m0n97il91xqgjgn2pzlz74lb5bfzassx7159m1k"))))
+
(build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-headers
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (out-include (string-append out "/include")))
+ (install-file "include/f2fs_fs.h" out-include)
+ (install-file "mkfs/f2fs_format_utils.h" out-include)
+ #t))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(inputs
- `(("libuuid" ,util-linux)))
+ `(("libuuid" ,util-linux)
+ ("libselinux" ,libselinux)))
(home-page "https://f2fs.wiki.kernel.org/")
(synopsis "Userland tools for f2fs")
(description
@@ -3298,6 +3310,22 @@ disks and SD cards. This package provides the userland utilities.")
;; GPL2/LGPL2.1, everything else is GPL2 only. See 'COPYING'.
(license (list license:gpl2 license:lgpl2.1))))
+(define-public f2fs-tools
+ (package
+ (inherit f2fs-tools-1.7)
+ (name "f2fs-tools")
+ (version "1.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk"
+ "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl"))))
+ (inputs
+ `(("libuuid" ,util-linux)))))
+
(define-public freefall
(package
(name "freefall")
@@ -3493,7 +3521,7 @@ The following service daemons are also provided:
(define-public rng-tools
(package
(name "rng-tools")
- (version "6.1")
+ (version "6.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/nhorman/rng-tools/"
@@ -3501,7 +3529,7 @@ The following service daemons are also provided:
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "00ywsknjpc9jd9kfmz2syk9l0xkiiwyx5qhl5zvhhc69v6682i31"))))
+ "0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j"))))
(build-system gnu-build-system)
(arguments
`(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
@@ -4136,7 +4164,7 @@ re-use code and to avoid re-inventing the wheel.")
(define-public libnftnl
(package
(name "libnftnl")
- (version "1.0.9")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
@@ -4144,7 +4172,7 @@ re-use code and to avoid re-inventing the wheel.")
"libnftnl-" version ".tar.bz2"))
(sha256
(base32
- "0d9nkdbdck8sg6msysqyv3m9kjr9sjif5amf26dfa0g3mqjdihgy"))))
+ "0v4gywcjvv2vg4zk632al1zv3ad0lx87nshynv110l8n3fhsq3pc"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index af576c44f7..9a0d8e957d 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -48,7 +48,7 @@
(define-public libfm
(package
(name "libfm")
- (version "1.3.0")
+ (version "1.3.0.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pcmanfm/"
@@ -56,7 +56,7 @@
"%29/LibFM/" name "-" version ".tar.xz"))
(sha256
(base32
- "151jyy8ipmp2h829gd9s4s429qafv1zxl7j6zaj1k1gzm9s5rmnb"))))
+ "0wkwbi1nyvqza3r1dhrq846axiiq0fy0dqgngnagh76fjrwnzl0q"))))
(build-system gnu-build-system)
(inputs `(("glib" ,glib)
("gtk+" ,gtk+-2)))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2b21e839a6..aac042027b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -481,7 +481,10 @@ large scale eigenvalue problems.")
(inputs
`(("mpi" ,openmpi)
,@(package-inputs arpack-ng)))
- (arguments `(#:configure-flags '("--enable-mpi")))
+ (arguments
+ (substitute-keyword-arguments (package-arguments arpack-ng)
+ ((#:configure-flags _ '())
+ ''("--enable-mpi"))))
(synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
(define-public lapack
@@ -3466,6 +3469,7 @@ set.")
(native-inputs
`(("doc++" ,doc++)
("netpbm" ,netpbm)
+ ("perl" ,perl) ;needed to run 'ppmquant' during tests
("texlive" ,texlive) ;full package required for fonts
("ghostscript" ,ghostscript)))
(inputs
@@ -3900,14 +3904,14 @@ are noisy or are discontinuous at the solution.")
(define-public r-desolve
(package
(name "r-desolve")
- (version "1.20")
+ (version "1.21")
(source
(origin
(method url-fetch)
(uri (cran-uri "deSolve" version))
(sha256
(base32
- "18nx3maww979a8p8ly4hv63y65mnjx8vbj2fpipd6rhcbf1lbsan"))))
+ "0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5"))))
(properties `((upstream-name . "deSolve")))
(build-system r-build-system)
(native-inputs
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index af49ddc8c6..95744075cb 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -627,7 +627,15 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
(with-directory-excursion icons
(symlink adwaita "Adwaita")
(copy-recursively hicolor "hicolor")))
- #t)))))
+ #t))
+ (add-after 'install-icons 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/gajim")
+ ;; For GtkFileChooserDialog.
+ `("GSETTINGS_SCHEMA_DIR" =
+ (,(string-append (assoc-ref inputs "gtk+")
+ "/share/glib-2.0/schemas")))))))))
(native-inputs
`(("intltool" ,intltool)
("xorg-server" ,xorg-server)))
@@ -728,14 +736,14 @@ a graphical desktop environment like GNOME.")
(define-public prosody
(package
(name "prosody")
- (version "0.10.0")
+ (version "0.10.1")
(source (origin
(method url-fetch)
(uri (string-append "https://prosody.im/downloads/source/"
"prosody-" version ".tar.gz"))
(sha256
(base32
- "1644jy5dk46vahmh6nna36s79k8k668sbi3qamjb4q3c4m3y853l"))))
+ "1kmmpkkgymg1r8r0k8j83pgmiskg1phl8hmpzjrnvlvsfnrnjplr"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 1889035492..6f2ff5d784 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -119,9 +119,10 @@ interfacing MPD in the C, C++ & Objective C languages.")
("flac" ,flac)
("glib" ,glib)
("icu4c" ,icu4c)
+ ;; The LAME decoder comes from FFmpeg, but is added here so that
+ ;; configure picks up the LAME encoder.
("lame" ,lame)
("libid3tag" ,libid3tag)
- ("libmad" ,libmad)
("libmpdclient" ,libmpdclient)
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index 21ef9d5592..07c2a1ff77 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -30,7 +30,7 @@
(define-public nano
(package
(name "nano")
- (version "2.9.6")
+ (version "2.9.7")
(source
(origin
(method url-fetch)
@@ -38,7 +38,7 @@
version ".tar.xz"))
(sha256
(base32
- "1inl8ljkc711969ncwy7irf0464psasikg1g42l0g4sfpdz50wx3"))))
+ "1ga4sdk3ikx1ilggc6c77vyfpbmq3nrhg6svgglpf5sv60bv0jmn"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 0d187ab930..9a24c372f6 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1333,7 +1333,7 @@ networks.")
(define-public speedtest-cli
(package
(name "speedtest-cli")
- (version "1.0.7")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
@@ -1342,7 +1342,7 @@ networks.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1fbq4kpx8sj50g74hwpixisfjjgxq6zyn40d3m28dxhn7mxbnlrq"))))
+ "16kcpba7nmszz2h0fq7qvv6src20syck2wlknaacg69kk88aybbk"))))
(build-system python-build-system)
(home-page "https://github.com/sivel/speedtest-cli")
(synopsis "Internet bandwidth tester")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 0a7caf2e7a..ea79de9021 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -544,13 +544,13 @@ transactions from C or Python.")
(define-public diffoscope
(package
(name "diffoscope")
- (version "93")
+ (version "94")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "0g90nf7817jk03hzk36l3hymky4xqs50iynfld3r0in7hffly5nj"))))
+ "07pcc4r9kz8zfr4pfkzk3ipgyv7m5h9vwicrzdgjpa87nbbdgjx6"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 923122903e..011cf594d1 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -62,6 +63,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages suckless)
#:use-module (gnu packages tls)
#:use-module (gnu packages qt)
@@ -94,7 +96,7 @@ human.")
(define-public keepassxc
(package
(name "keepassxc")
- (version "2.3.1")
+ (version "2.3.3")
(source
(origin
(method url-fetch)
@@ -103,7 +105,7 @@ human.")
version "-src.tar.xz"))
(sha256
(base32
- "1gdrbpzwbs56anc3k5vklvcackcn214pc8gm5xh5zcymsi8q4zff"))))
+ "1m8alsp39vk21zgcvy5zswk0dc1xmajbwnccg7n0lndsi7pqbzyg"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DWITH_XC_NETWORKING=YES"
@@ -659,3 +661,30 @@ Upstream development seems to have stopped. It is therefore recommended
to use a different password manager.")
(home-page "https://als.regnet.cz/fpm2/")
(license license:gpl2+)))
+
+(define-public pass-rotate
+ (package
+ (name "pass-rotate")
+ (version "0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/SirCmpwn/pass-rotate/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1svm5nj8bczv2dg8lh2zqqhbsrljqsw9680r03qwgl9vlci90210"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-docopt" ,python-docopt)
+ ("python-html5lib" ,python-html5lib)
+ ("python-requests" ,python-requests)))
+ (home-page "https://github.com/SirCmpwn/pass-rotate")
+ (synopsis "Rotate password on online services")
+ (description "pass-rotate is a command line utility and python library for
+rotating passwords on various web services. It makes it easier to rotate your
+passwords, one at a time or in bulk, when security events or routine upkeep of
+your online accounts makes it necessary.")
+ (license license:expat)))
diff --git a/gnu/packages/patches/adb-add-libraries.patch b/gnu/packages/patches/adb-add-libraries.patch
new file mode 100644
index 0000000000..b014832f62
--- /dev/null
+++ b/gnu/packages/patches/adb-add-libraries.patch
@@ -0,0 +1,30 @@
+--- a/adb/Android.mk 2018-04-25 23:23:29.527198350 +0200
++++ b/adb/Android.mk 2018-04-25 23:24:25.558632573 +0200
+@@ -226,7 +226,7 @@
+ LOCAL_SRC_FILES := test_track_devices.cpp
+ LOCAL_SANITIZE := $(adb_host_sanitize)
+ LOCAL_SHARED_LIBRARIES := libbase
+-LOCAL_STATIC_LIBRARIES := libadb libcrypto_static libcutils
++LOCAL_STATIC_LIBRARIES := libadb libbase libcrypto_static libcutils
+ LOCAL_LDLIBS += -lrt -ldl -lpthread
+ include $(BUILD_HOST_EXECUTABLE)
+ endif
+@@ -278,6 +278,7 @@
+ LOCAL_SANITIZE := $(adb_host_sanitize)
+ LOCAL_STATIC_LIBRARIES := \
+ libadb \
++ libcutils \
+ libbase \
+ libcrypto_static \
+ libdiagnose_usb \
+--- a/adb/sysdeps_test.cpp 2018-05-09 23:58:46.583163684 +0200
++++ b/adb/sysdeps_test.cpp 2018-05-09 23:56:41.356544648 +0200
+@@ -17,6 +17,8 @@
+ #include <gtest/gtest.h>
+ #include <unistd.h>
+ #include <atomic>
++#include <climits>
++#include <mutex>
+
+ #include "adb_io.h"
+ #include "sysdeps.h"
diff --git a/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch b/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch
new file mode 100644
index 0000000000..df74bdbaba
--- /dev/null
+++ b/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch
@@ -0,0 +1,98 @@
+From 3dbdc68093e90f0ef9b77b70490d8e0b1dcfbf8f Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sun, 17 Sep 2017 21:08:45 +0200
+Subject: [PATCH] Add ExceptionUtilsGenerator.java.
+
+A gradle task (in gradle/utils.gradle) is normally used to generate an
+ExceptionUtils class. Since gradle depends on groovy, we cannot use it, so
+we copy the code from the gradle task to a new file. Running this file then
+generates the required class.
+---
+ .../codehaus/groovy/ExceptionUtilsGenerator.java | 75 ++++++++++++++++++++++
+ 1 file changed, 75 insertions(+)
+ create mode 100644 config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java
+
+diff --git a/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java b/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java
+new file mode 100644
+index 0000000..41f006d
+--- /dev/null
++++ b/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java
+@@ -0,0 +1,75 @@
++package org.codehaus.groovy;
++
++import org.objectweb.asm.*;
++
++import java.io.BufferedOutputStream;
++import java.io.File;
++import java.io.FileOutputStream;
++import java.io.IOException;
++import java.util.logging.Logger;
++
++public class ExceptionUtilsGenerator implements Opcodes {
++ private final static Logger LOGGER = Logger.getLogger(ExceptionUtilsGenerator.class.getName());
++
++ public static void main(String... args) {
++ if (args==null || args.length==0) {
++ throw new IllegalArgumentException("You must specify at least one file");
++ }
++
++ ClassWriter cw = new ClassWriter(0);
++ MethodVisitor mv;
++
++ cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "org/codehaus/groovy/runtime/ExceptionUtils", null, "java/lang/Object", null);
++
++ cw.visitSource("ExceptionUtils.java", null);
++
++ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
++ mv.visitCode();
++ Label l0 = new Label();
++ mv.visitLabel(l0);
++ mv.visitLineNumber(18, l0);
++ mv.visitVarInsn(ALOAD, 0);
++ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
++ mv.visitInsn(RETURN);
++ Label l1 = new Label();
++ mv.visitLabel(l1);
++ mv.visitLocalVariable("this", "Lorg/codehaus/groovy/runtime/ExceptionUtils;", null, l0, l1, 0);
++ mv.visitMaxs(1, 1);
++ mv.visitEnd();
++
++ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "sneakyThrow", "(Ljava/lang/Throwable;)V", null, null);
++ mv.visitCode();
++ Label l2 = new Label();
++ mv.visitLabel(l2);
++ mv.visitLineNumber(20, l2);
++ mv.visitVarInsn(ALOAD, 0);
++ mv.visitInsn(ATHROW);
++ Label l3 = new Label();
++ mv.visitLabel(l3);
++ mv.visitLocalVariable("e", "Ljava/lang/Throwable;", null, l2, l3, 0);
++ mv.visitMaxs(1, 1);
++ mv.visitEnd();
++
++ cw.visitEnd();
++
++ LOGGER.info("Generating ExceptionUtils");
++ byte[] bytes = cw.toByteArray();
++ for (String classFilePath : args) {
++ File classFile = new File(classFilePath);
++ if (classFile.getParentFile().exists() || classFile.getParentFile().mkdirs()) {
++ try {
++ if (classFile.exists()) {
++ classFile.delete();
++ }
++ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(classFile));
++ bos.write(bytes);
++ bos.close();
++ } catch (IOException e) {
++ LOGGER.warning("Unable to write file "+classFile);
++ }
++ } else {
++ LOGGER.warning("Unable to create directory "+classFile.getParentFile());
++ }
++ }
++ }
++}
+--
+2.14.1
+
diff --git a/gnu/packages/patches/icecat-bug-1452075.patch b/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch
index b776640133..b776640133 100644
--- a/gnu/packages/patches/icecat-bug-1452075.patch
+++ b/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch
diff --git a/gnu/packages/patches/libutils-add-includes.patch b/gnu/packages/patches/libutils-add-includes.patch
new file mode 100644
index 0000000000..354c59b735
--- /dev/null
+++ b/gnu/packages/patches/libutils-add-includes.patch
@@ -0,0 +1,11 @@
+--- a/libutils/CallStack.cpp 2018-04-25 20:13:06.348665241 +0200
++++ b/libutils/CallStack.cpp 2018-04-25 20:13:18.360510763 +0200
+@@ -17,7 +17,7 @@
+ #define LOG_TAG "CallStack"
+
+ #include <memory>
+-
++#include <cstdlib>
+ #include <utils/CallStack.h>
+ #include <utils/Printer.h>
+ #include <utils/Errors.h>
diff --git a/gnu/packages/patches/libutils-remove-damaging-includes.patch b/gnu/packages/patches/libutils-remove-damaging-includes.patch
new file mode 100644
index 0000000000..7867dd3b80
--- /dev/null
+++ b/gnu/packages/patches/libutils-remove-damaging-includes.patch
@@ -0,0 +1,21 @@
+--- a/include/utils/StrongPointer.h 2018-04-25 18:42:34.321003602 +0200
++++ b/include/utils/StrongPointer.h 2018-04-25 18:42:42.180912201 +0200
+@@ -17,8 +17,6 @@
+ #ifndef ANDROID_STRONG_POINTER_H
+ #define ANDROID_STRONG_POINTER_H
+
+-#include <cutils/atomic.h>
+-
+ #include <stdint.h>
+ #include <sys/types.h>
+ #include <stdlib.h>
+--- a/libutils/Trace.cpp 2018-04-25 20:41:48.775049786 +0200
++++ b/libutils/Trace.cpp 2018-04-25 20:42:13.674744182 +0200
+@@ -21,5 +21,7 @@
+
+ static void traceInit()
+ {
++#if defined(__ANDROID__)
+ ::android::add_sysprop_change_callback(atrace_update_tags, 0);
++#endif
+ }
diff --git a/gnu/packages/patches/libziparchive-add-includes.patch b/gnu/packages/patches/libziparchive-add-includes.patch
new file mode 100644
index 0000000000..41137105a0
--- /dev/null
+++ b/gnu/packages/patches/libziparchive-add-includes.patch
@@ -0,0 +1,10 @@
+--- a/libziparchive/zip_writer.cc 2018-04-25 22:33:05.472674164 +0200
++++ b/libziparchive/zip_writer.cc 2018-04-25 22:33:21.296519518 +0200
+@@ -22,6 +22,7 @@
+
+ #include <sys/param.h>
+
++#include <cstring>
+ #include <cassert>
+ #include <cstdio>
+ #include <memory>
diff --git a/gnu/packages/patches/mupdf-CVE-2017-17858.patch b/gnu/packages/patches/mupdf-CVE-2017-17858.patch
deleted file mode 100644
index 66df127509..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2017-17858.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-Fix CVE-2017-17858:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17858
-https://bugs.ghostscript.com/show_bug.cgi?id=698819
-https://github.com/mzet-/Security-Advisories/blob/master/mzet-adv-2017-01.md
-
-Patch copied from upstream source repository:
-
-https://git.ghostscript.com/?p=mupdf.git;a=commit;h=55c3f68d638ac1263a386e0aaa004bb6e8bde731
-
-From 55c3f68d638ac1263a386e0aaa004bb6e8bde731 Mon Sep 17 00:00:00 2001
-From: Sebastian Rasmussen <sebras@gmail.com>
-Date: Mon, 11 Dec 2017 14:09:15 +0100
-Subject: [PATCH] Bugs 698804/698810/698811: Keep PDF object numbers below
- limit.
-
-This ensures that:
- * xref tables with objects pointers do not grow out of bounds.
- * other readers, e.g. Adobe Acrobat can parse PDFs written by mupdf.
----
- include/mupdf/pdf/object.h | 3 +++
- source/pdf/pdf-repair.c | 5 +----
- source/pdf/pdf-xref.c | 21 ++++++++++++---------
- 3 files changed, 16 insertions(+), 13 deletions(-)
-
-diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h
-index 21ed8595..4177112b 100644
---- a/include/mupdf/pdf/object.h
-+++ b/include/mupdf/pdf/object.h
-@@ -3,6 +3,9 @@
-
- typedef struct pdf_document_s pdf_document;
-
-+/* Defined in PDF 1.7 according to Acrobat limit. */
-+#define PDF_MAX_OBJECT_NUMBER 8388607
-+
- /*
- * Dynamic objects.
- * The same type of objects as found in PDF and PostScript.
-diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c
-index ca149bd3..0c29758e 100644
---- a/source/pdf/pdf-repair.c
-+++ b/source/pdf/pdf-repair.c
-@@ -6,9 +6,6 @@
-
- /* Scan file for objects and reconstruct xref table */
-
--/* Define in PDF 1.7 to be 8388607, but mupdf is more lenient. */
--#define MAX_OBJECT_NUMBER (10 << 20)
--
- struct entry
- {
- int num;
-@@ -436,7 +433,7 @@ pdf_repair_xref(fz_context *ctx, pdf_document *doc)
- break;
- }
-
-- if (num <= 0 || num > MAX_OBJECT_NUMBER)
-+ if (num <= 0 || num > PDF_MAX_OBJECT_NUMBER)
- {
- fz_warn(ctx, "ignoring object with invalid object number (%d %d R)", num, gen);
- goto have_next_token;
-diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
-index 00586dbd..6284e70b 100644
---- a/source/pdf/pdf-xref.c
-+++ b/source/pdf/pdf-xref.c
-@@ -868,11 +868,12 @@ pdf_read_old_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf)
- fz_seek(ctx, file, -(2 + (int)strlen(s)), SEEK_CUR);
- }
-
-- if (ofs < 0)
-- fz_throw(ctx, FZ_ERROR_GENERIC, "out of range object num in xref: %d", (int)ofs);
-- if (ofs > INT64_MAX - len)
-- fz_throw(ctx, FZ_ERROR_GENERIC, "xref section object numbers too big");
--
-+ if (ofs < 0 || ofs > PDF_MAX_OBJECT_NUMBER
-+ || len < 0 || len > PDF_MAX_OBJECT_NUMBER
-+ || ofs + len - 1 > PDF_MAX_OBJECT_NUMBER)
-+ {
-+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range");
-+ }
- /* broken pdfs where size in trailer undershoots entries in xref sections */
- if (ofs + len > xref_len)
- {
-@@ -933,10 +934,8 @@ pdf_read_new_xref_section(fz_context *ctx, pdf_document *doc, fz_stream *stm, in
- pdf_xref_entry *table;
- int i, n;
-
-- if (i0 < 0 || i1 < 0 || i0 > INT_MAX - i1)
-- fz_throw(ctx, FZ_ERROR_GENERIC, "negative xref stream entry index");
-- //if (i0 + i1 > pdf_xref_len(ctx, doc))
-- // fz_throw(ctx, FZ_ERROR_GENERIC, "xref stream has too many entries");
-+ if (i0 < 0 || i0 > PDF_MAX_OBJECT_NUMBER || i1 < 0 || i1 > PDF_MAX_OBJECT_NUMBER || i0 + i1 - 1 > PDF_MAX_OBJECT_NUMBER)
-+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range");
-
- table = pdf_xref_find_subsection(ctx, doc, i0, i1);
- for (i = i0; i < i0 + i1; i++)
-@@ -2086,6 +2085,10 @@ pdf_create_object(fz_context *ctx, pdf_document *doc)
- /* TODO: reuse free object slots by properly linking free object chains in the ofs field */
- pdf_xref_entry *entry;
- int num = pdf_xref_len(ctx, doc);
-+
-+ if (num > PDF_MAX_OBJECT_NUMBER)
-+ fz_throw(ctx, FZ_ERROR_GENERIC, "too many objects stored in pdf");
-+
- entry = pdf_get_incremental_xref_entry(ctx, doc, num);
- entry->type = 'f';
- entry->ofs = -1;
---
-2.16.1
-
diff --git a/gnu/packages/patches/mupdf-CVE-2018-1000051.patch b/gnu/packages/patches/mupdf-CVE-2018-1000051.patch
deleted file mode 100644
index bb78c46f80..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2018-1000051.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-Fix CVE-2018-1000051:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=698873
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000051
-
-Patch copied from upstream source repository:
-
-https://git.ghostscript.com/?p=mupdf.git;a=commit;h=321ba1de287016b0036bf4a56ce774ad11763384
-
-From 321ba1de287016b0036bf4a56ce774ad11763384 Mon Sep 17 00:00:00 2001
-From: Sebastian Rasmussen <sebras@gmail.com>
-Date: Tue, 19 Dec 2017 23:47:47 +0100
-Subject: [PATCH] Bug 698825: Do not drop borrowed colorspaces.
-
-Previously the borrowed colorspace was dropped when updating annotation
-appearances, leading to use after free warnings from valgrind/ASAN.
----
- source/pdf/pdf-appearance.c | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/source/pdf/pdf-appearance.c b/source/pdf/pdf-appearance.c
-index 70f684f4..d7a1dddd 100644
---- a/source/pdf/pdf-appearance.c
-+++ b/source/pdf/pdf-appearance.c
-@@ -2170,7 +2170,6 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p
- fz_device *dev = NULL;
- font_info font_rec;
- fz_text *text = NULL;
-- fz_colorspace *cs = NULL;
- fz_matrix page_ctm;
-
- pdf_page_transform(ctx, annot->page, NULL, &page_ctm);
-@@ -2184,11 +2183,11 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p
- fz_var(dlist);
- fz_var(dev);
- fz_var(text);
-- fz_var(cs);
- fz_try(ctx)
- {
- char *contents = pdf_to_str_buf(ctx, pdf_dict_get(ctx, obj, PDF_NAME_Contents));
- char *da = pdf_to_str_buf(ctx, pdf_dict_get(ctx, obj, PDF_NAME_DA));
-+ fz_colorspace *cs;
- fz_point pos;
- fz_rect rect;
-
-@@ -2223,7 +2222,6 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p
- fz_drop_display_list(ctx, dlist);
- font_info_fin(ctx, &font_rec);
- fz_drop_text(ctx, text);
-- fz_drop_colorspace(ctx, cs);
- }
- fz_catch(ctx)
- {
-@@ -2359,7 +2357,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot
- fz_device *dev = NULL;
- font_info font_rec;
- fz_text *text = NULL;
-- fz_colorspace *cs = NULL;
- fz_path *path = NULL;
- fz_buffer *fzbuf = NULL;
- fz_matrix page_ctm;
-@@ -2375,7 +2372,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot
- fz_var(dlist);
- fz_var(dev);
- fz_var(text);
-- fz_var(cs);
- fz_var(fzbuf);
- fz_try(ctx)
- {
-@@ -2384,6 +2380,7 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot
- fz_rect logo_bounds;
- fz_matrix logo_tm;
- fz_rect rect;
-+ fz_colorspace *cs = fz_device_rgb(ctx); /* Borrowed reference */
-
- pdf_to_rect(ctx, pdf_dict_get(ctx, annot->obj, PDF_NAME_Rect), &annot_rect);
- rect = annot_rect;
-@@ -2396,7 +2393,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot
- fz_bound_path(ctx, path, NULL, &fz_identity, &logo_bounds);
- center_rect_within_rect(&logo_bounds, &rect, &logo_tm);
- fz_concat(&logo_tm, &logo_tm, &page_ctm);
-- cs = fz_device_rgb(ctx); /* Borrowed reference */
- fz_fill_path(ctx, dev, path, 0, &logo_tm, cs, logo_color, 1.0f, NULL);
-
- get_font_info(ctx, doc, dr, da, &font_rec);
---
-2.16.3
-
diff --git a/gnu/packages/patches/mupdf-CVE-2018-6544.patch b/gnu/packages/patches/mupdf-CVE-2018-6544.patch
deleted file mode 100644
index b2c8f849f3..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2018-6544.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-Fix CVE-2018-6544:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6544
-https://bugs.ghostscript.com/show_bug.cgi?id=698830
-https://bugs.ghostscript.com/show_bug.cgi?id=698965
-
-Patches copied from upstream source repository:
-
-https://git.ghostscript.com/?p=mupdf.git;h=26527eef77b3e51c2258c8e40845bfbc015e405d
-https://git.ghostscript.com/?p=mupdf.git;h=b03def134988da8c800adac1a38a41a1f09a1d89
-
-From b03def134988da8c800adac1a38a41a1f09a1d89 Mon Sep 17 00:00:00 2001
-From: Sebastian Rasmussen <sebras@gmail.com>
-Date: Thu, 1 Feb 2018 16:36:14 +0100
-Subject: [PATCH] Bug 698830: Avoid recursion when loading object streams
- objects.
-
-If there were indirect references in the object stream dictionary and
-one of those indirect references referred to an object inside the object
-stream itself, mupdf would previously enter recursion only bounded by the
-exception stack. After this commit the object stream is checked if it is
-marked immediately after being loaded. If it is marked then we terminate
-the recursion at this point, if it is not marked then mark it and
-attempt to load the desired object within. We also take care to unmark
-the stream object when done or upon exception.
----
- source/pdf/pdf-xref.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
-index 723b543c..ed09094c 100644
---- a/source/pdf/pdf-xref.c
-+++ b/source/pdf/pdf-xref.c
-@@ -1576,6 +1576,19 @@ pdf_load_obj_stm(fz_context *ctx, pdf_document *doc, int num, pdf_lexbuf *buf, i
- {
- objstm = pdf_load_object(ctx, doc, num);
-
-+ if (pdf_obj_marked(ctx, objstm))
-+ fz_throw(ctx, FZ_ERROR_GENERIC, "recursive object stream lookup");
-+ }
-+ fz_catch(ctx)
-+ {
-+ pdf_drop_obj(ctx, objstm);
-+ fz_rethrow(ctx);
-+ }
-+
-+ fz_try(ctx)
-+ {
-+ pdf_mark_obj(ctx, objstm);
-+
- count = pdf_to_int(ctx, pdf_dict_get(ctx, objstm, PDF_NAME_N));
- first = pdf_to_int(ctx, pdf_dict_get(ctx, objstm, PDF_NAME_First));
-
-@@ -1655,6 +1668,7 @@ pdf_load_obj_stm(fz_context *ctx, pdf_document *doc, int num, pdf_lexbuf *buf, i
- fz_drop_stream(ctx, stm);
- fz_free(ctx, ofsbuf);
- fz_free(ctx, numbuf);
-+ pdf_unmark_obj(ctx, objstm);
- pdf_drop_obj(ctx, objstm);
- }
- fz_catch(ctx)
---
-2.16.3
-
-From 26527eef77b3e51c2258c8e40845bfbc015e405d Mon Sep 17 00:00:00 2001
-From: Sebastian Rasmussen <sebras@gmail.com>
-Date: Mon, 29 Jan 2018 02:00:48 +0100
-Subject: [PATCH] Bug 698830: Don't drop unkept stream if running out of error
- stack.
-
-Under normal conditions where fz_keep_stream() is called inside
-fz_try() we may call fz_drop_stream() in fz_catch() upon exceptions.
-The issue comes when fz_keep_stream() has not yet been called but is
-dropped in fz_catch(). This happens in the PDF from the bug when
-fz_try() runs out of exception stack, and next the code in fz_catch()
-runs, dropping the caller's reference to the filter chain stream!
-
-The simplest way of fixing this it to always keep the filter chain
-stream before fz_try() is called. That way fz_catch() may drop the
-stream whether an exception has occurred or if the fz_try() ran out of
-exception stack.
----
- source/pdf/pdf-stream.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/source/pdf/pdf-stream.c b/source/pdf/pdf-stream.c
-index c89da5c4..c6ba7ad3 100644
---- a/source/pdf/pdf-stream.c
-+++ b/source/pdf/pdf-stream.c
-@@ -303,14 +303,13 @@ pdf_open_raw_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_ob
- *orig_gen = 0;
- }
-
-- fz_var(chain);
-+ chain = fz_keep_stream(ctx, chain);
-
- fz_try(ctx)
- {
- len = pdf_to_int(ctx, pdf_dict_get(ctx, stmobj, PDF_NAME_Length));
-
-- /* don't close chain when we close this filter */
-- chain2 = fz_keep_stream(ctx, chain);
-+ chain2 = chain;
- chain = NULL;
- chain = fz_open_null(ctx, chain2, len, offset);
-
---
-2.16.3
-
diff --git a/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch b/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch
deleted file mode 100644
index d5c9c60242..0000000000
--- a/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Make it possible to build MuPDF with OpenJPEG 2.3, which is the latest
-release series and contains many important bug fixes.
-
-Patch adapted from Debian:
-
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745246
-
-And related to this upstream commit:
-
-http://git.ghostscript.com/?p=mupdf.git;a=commit;h=f88bfe2e62dbadb96d4f52d7aa025f0a516078da
-
-diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c
-index 65699ba..ea84778 100644
---- a/source/fitz/load-jpx.c
-+++ b/source/fitz/load-jpx.c
-@@ -445,11 +445,6 @@ fz_load_jpx_info(fz_context *ctx, const unsigned char *data, size_t size, int *w
-
- #else /* HAVE_LURATECH */
-
--#define OPJ_STATIC
--#define OPJ_HAVE_INTTYPES_H
--#if !defined(_MSC_VER) || _MSC_VER >= 1600
--#define OPJ_HAVE_STDINT_H
--#endif
- #define USE_JPIP
-
- #include <openjpeg.h>
diff --git a/gnu/packages/patches/myrepos-CVE-2018-7032.patch b/gnu/packages/patches/myrepos-CVE-2018-7032.patch
new file mode 100644
index 0000000000..ce9493e5f9
--- /dev/null
+++ b/gnu/packages/patches/myrepos-CVE-2018-7032.patch
@@ -0,0 +1,69 @@
+http://source.myrepos.branchable.com/?p=source.git;a=patch;h=40a3df21c73f1bb1b6915cc6fa503f50814664c8
+This can be removed with the next release. It was modified slightly to apply
+
+From 40a3df21c73f1bb1b6915cc6fa503f50814664c8 Mon Sep 17 00:00:00 2001
+From: Paul Wise <pabs3@bonedaddy.net>
+Date: Sun, 11 Feb 2018 21:57:49 +0800
+Subject: [PATCH] Mitigate vulnerabilities caused by some git remotes being
+ able to execute code
+
+Set GIT_PROTOCOL_FROM_USER=0 with git versions newer than 2.12.
+
+Prevent remote websites from causing cloning of local repositories.
+
+Manually whitelist known-safe protocols (http, https, git, ssh)
+when using git versions older than 2.12.
+
+Fixes: CVE-2018-7032
+Fixes: https://bugs.debian.org/840014
+Suggestions-by: Jakub Wilk <jwilk@jwilk.net>
+Reported-by: Jakub Wilk <jwilk@jwilk.net>
+---
+ webcheckout | 22 +++++++++++++++++++++-
+ 1 file changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/webcheckout b/webcheckout
+index e98da5c..de497ba 100755
+--- a/webcheckout
++++ b/webcheckout
+@@ -71,6 +71,16 @@ use Getopt::Long;
+ use warnings;
+ use strict;
+
++# Mitigate some git remote types being dangerous
++my $git_unsafe = 1;
++my $git_version = `git --version`;
++$git_version =~ s{^git version }{};
++my ($major, $minor) = split(/\./, $git_version);
++if (int($major) >= 2 && int($minor) >= 12) {
++ $ENV{GIT_PROTOCOL_FROM_USER} = 0;
++ $git_unsafe = 0;
++}
++
+ # What to download.
+ my $url;
+
+@@ -89,7 +99,17 @@ my $destdir;
+
+ # how to perform checkouts
+ my %handlers=(
+- git => sub { doit("git", "clone", shift, $destdir) },
+- svn => sub { doit("svn", "checkout", shift, $destdir) },
+- bzr => sub { doit("bzr", "branch", shift, $destdir) },
++ git => sub {
++ my $git_url = shift;
++ # Reject unsafe URLs with older versions of git
++ # that do not already check the URL safety.
++ if ($git_unsafe && $git_url !~ m{^(?:(?:https?|git|ssh):[^:]|(?:[-_.A-Za-z0-9]+@)?[-_.A-Za-z0-9]+:(?!:|//))}) {
++ print STDERR "potentially unsafe git URL, may fail, touch local files or execute arbitrary code\n";
++ return 1;
++ }
++ # Reject cloning local directories too, webcheckout is for remote repos
++ doit(qw(git -c protocol.file.allow=user clone --), $git_url, $destdir)
++ },
++ svn => sub { doit(qw(svn checkout --), shift, $destdir) },
++ bzr => sub { doit(qw(bzr branch --), shift, $destdir) },
+ );
+--
+2.11.0
+
diff --git a/gnu/packages/patches/python-statsmodels-fix-tests.patch b/gnu/packages/patches/python-statsmodels-fix-tests.patch
deleted file mode 100644
index f910b4b5a5..0000000000
--- a/gnu/packages/patches/python-statsmodels-fix-tests.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-This drops a test that fails with numpy 1.12.
-
-Upstream bug URL: https://github.com/statsmodels/statsmodels/issues/3541
-
---- a/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:19.947343331 +0000
-+++ b/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:37.759328845 +0000
-@@ -1329,21 +1329,6 @@
- res = mod.fit(start_params=-np.ones(4), method='newton', disp=0)
- assert_(not res.mle_retvals['converged'])
-
--def test_issue_339():
-- # make sure MNLogit summary works for J != K.
-- data = sm.datasets.anes96.load()
-- exog = data.exog
-- # leave out last exog column
-- exog = exog[:,:-1]
-- exog = sm.add_constant(exog, prepend=True)
-- res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0)
-- # strip the header from the test
-- smry = "\n".join(res1.summary().as_text().split('\n')[9:])
-- cur_dir = os.path.dirname(os.path.abspath(__file__))
-- test_case_file = os.path.join(cur_dir, 'results', 'mn_logit_summary.txt')
-- test_case = open(test_case_file, 'r').read()
-- np.testing.assert_equal(smry, test_case[:-1])
--
- def test_issue_341():
- data = sm.datasets.anes96.load()
- exog = data.exog
diff --git a/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch b/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch
deleted file mode 100644
index 18328ed018..0000000000
--- a/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 18e5ea50a7136cb3686c5a7c51c111ccce73dc54 Mon Sep 17 00:00:00 2001
-From: Iris Morelle <shadowm@wesnoth.org>
-Date: Sun, 6 May 2018 16:10:42 -0300
-Subject: [PATCH] i18n: Blind fix attempt for std::bad_cast being thrown on
- Windows
-
-Several reports on Steam and our forums point at std::bad_cast being
-thrown when accessing Preferences and the Multiplayer menu amongst
-others. It's possible that the locale configuration on those systems is
-not quite right, and compare() and icompare() are able to throw
-std::bad_cast when this happens as they both use std::use_facet().
-
-Note that much like the macOS/iOS version of icompare(), this stopgap
-patch doesn't attempt to provide any form of case-insensitive fallback
-and just uses a case-sensitive comparison instead.
----
- src/gettext_boost.cpp | 29 +++++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/src/gettext_boost.cpp b/src/gettext_boost.cpp
-index 3cc7690d5ef..fb04ffeea90 100644
---- a/src/gettext_boost.cpp
-+++ b/src/gettext_boost.cpp
-@@ -423,7 +423,19 @@ void set_language(const std::string& language, const std::vector<std::string>* /
- int compare(const std::string& s1, const std::string& s2)
- {
- std::lock_guard<std::mutex> lock(get_mutex());
-- return std::use_facet<std::collate<char>>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
-+
-+ try {
-+ return std::use_facet<std::collate<char>>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
-+ } catch(const std::bad_cast&) {
-+ static bool bad_cast_once = false;
-+
-+ if(!bad_cast_once) {
-+ ERR_G << "locale set-up for compare() is broken, falling back to std::string::compare()\n";
-+ bad_cast_once = true;
-+ }
-+
-+ return s1.compare(s2);
-+ }
- }
-
- int icompare(const std::string& s1, const std::string& s2)
-@@ -433,8 +445,21 @@ int icompare(const std::string& s1, const std::string& s2)
- return compare(s1, s2);
- #else
- std::lock_guard<std::mutex> lock(get_mutex());
-- return std::use_facet<bl::collator<char>>(get_manager().get_locale()).compare(
-+
-+ try {
-+ return std::use_facet<bl::collator<char>>(get_manager().get_locale()).compare(
- bl::collator_base::secondary, s1, s2);
-+ } catch(const std::bad_cast&) {
-+ static bool bad_cast_once = false;
-+
-+ if(!bad_cast_once) {
-+ ERR_G << "locale set-up for icompare() is broken, falling back to std::string::compare()\n";
-+ bad_cast_once = true;
-+ }
-+
-+ // FIXME: not even lazily case-insensitive
-+ return s1.compare(s2);
-+ }
- #endif
- }
-
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index aaa22cce15..84f17ad553 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
@@ -597,19 +597,15 @@ extracting content or merging files.")
(define-public mupdf
(package
(name "mupdf")
- (version "1.12.0")
+ (version "1.13.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://mupdf.com/downloads/archive/"
name "-" version "-source.tar.xz"))
- (patches (search-patches "mupdf-build-with-latest-openjpeg.patch"
- "mupdf-CVE-2017-17858.patch"
- "mupdf-CVE-2018-6544.patch"
- "mupdf-CVE-2018-1000051.patch"))
(sha256
(base32
- "0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp"))
+ "0129k92bav692l6lyw10ryldx7h2f9khjpgnp3f3n4fdsph9hrkl"))
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "thirdparty") #t))))
(build-system gnu-build-system)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 348ac1df62..6c3c116ef6 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -69,14 +69,14 @@
(define-public libraw
(package
(name "libraw")
- (version "0.18.10")
+ (version "0.18.11")
(source (origin
(method url-fetch)
(uri (string-append "https://www.libraw.org/data/LibRaw-"
version ".tar.gz"))
(sha256
(base32
- "0klrzg1cn8ksxqbhx52dldi5bbmad190npnhhgkyr2jzpgrbpj88"))))
+ "07a7k83hx7icahh6jaxfbd7pw5jjm5i11xcqjj31b28d1aj29xvw"))))
(build-system gnu-build-system)
(home-page "https://www.libraw.org")
(synopsis "Raw image decoder")
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
new file mode 100644
index 0000000000..f8890cb7f1
--- /dev/null
+++ b/gnu/packages/printers.scm
@@ -0,0 +1,69 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages printers)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages libusb)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages qt))
+
+;; This is a module for packages related to printer-like devices, but not
+;; related to CUPS.
+
+(define-public robocut
+ (package
+ (name "robocut")
+ (version "1.0.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Timmmm/robocut/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0nmr1plq1f6sarxwqwy4vzbxkljlx8y4xalm7r05vx4lrdai5pad"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Robocut.pro"
+ (("/usr/")
+ (string-append out "/")))
+
+ (invoke "qmake"
+ (string-append "PREFIX=" out))
+ #t))))))
+ (inputs
+ `(("libusb" ,libusb)
+ ("qt" ,qtbase)
+ ("qtsvg" ,qtsvg)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("qmake" ,qtbase)))
+ (synopsis "Graphical program to drive plotting cutters")
+ (description
+ "Robocut is a simple graphical program that allows you to cut graphics
+with Graphtec and Sihouette plotting cutters using an SVG file as its input.")
+ (home-page "http://robocut.org")
+ (license license:gpl3+)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 48e84521c5..b7cd51e868 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,11 +45,32 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (srfi srfi-1))
+(define-public python-base58
+ (package
+ (name "python-base58")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "base58" version))
+ (sha256
+ (base32
+ "0lgnk7ycdxwhk2bkygl30nsks56bvrdj79ix76iv965pz808pzn5"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pyhamcrest" ,python-pyhamcrest)))
+ (home-page "https://github.com/keis/base58")
+ (synopsis "Base58 and Base58Check implementation")
+ (description "Base58 and Base58Check implementation compatible
+with what is used by the Bitcoin network.")
+ (license license:expat)))
+
(define-public python-bcrypt
(package
(name "python-bcrypt")
@@ -821,3 +843,105 @@ through the Engine interface.")
(define-public python2-m2crypto
(package-with-python2 python-m2crypto))
+
+(define-public python-pylibscrypt
+ (package
+ (name "python-pylibscrypt")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pylibscrypt" version))
+ (sha256
+ (base32
+ "1b3rgzl6dbzs08vhv41b6y4n5189wv7lr27acxn104hs45745abs"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;FIXME: unable to find libraries
+ (inputs
+ `(("openssl" ,openssl)))
+ (home-page "https://github.com/jvarho/pylibscrypt")
+ (synopsis "Scrypt for Python")
+ (description "There are a lot of different scrypt modules for Python, but
+none of them have everything that I'd like, so here's one more. It uses
+hashlib.scrypt on Python 3.6 and OpenSSL 1.1.")
+ (license license:isc)))
+
+(define-public python-libnacl
+ (package
+ (name "python-libnacl")
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "libnacl" version))
+ (sha256
+ (base32
+ "0nv7n8nfswkhl614x5mllrkvaslraa0053q11iylb337cy43vb4v"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'locate-libsodium
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "libnacl/__init__.py"
+ (("(return ctypes.cdll.LoadLibrary\\(')libsodium.so('\\))"
+ _ pre post)
+ (let ((libsodium (string-append (assoc-ref inputs "libsodium")
+ "/lib/libsodium.so")))
+ (string-append pre libsodium post)))))))))
+ (native-inputs
+ `(("python-pyhamcrest" ,python-pyhamcrest)))
+ (inputs
+ `(("libsodium" ,libsodium)))
+ (home-page "https://libnacl.readthedocs.org/")
+ (synopsis "Python bindings for libsodium based on ctypes")
+ (description "@code{libnacl} is used to gain direct access to the
+functions exposed by @code{NaCl} library via @code{libsodium}. It has
+been constructed to maintain extensive documentation on how to use
+@code{NaCl} as well as being completely portable.")
+ (license license:asl2.0)))
+
+(define-public python-duniterpy
+ (package
+ (name "python-duniterpy")
+ (version "0.43.2")
+ (source
+ (origin
+ (method git-fetch)
+ ;; Pypi's default URI is missing "requirements.txt" file.
+ (uri (git-reference
+ (url "https://github.com/duniter/duniter-python-api.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ch4f150k1p1l876pp08p5rxqhpv5xfbxdw6njcmr06hspv8v8x4"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Among 108 tests, a single one is failing: FAIL:
+ ;; test_from_pubkey. Remove it.
+ (add-after 'unpack 'remove-failing-test
+ (lambda _
+ (delete-file "tests/documents/test_crc_pubkey.py")
+ #t)))))
+ (propagated-inputs
+ `(("python-aiohttp" ,python-aiohttp)
+ ("python-base58" ,python-base58)
+ ("python-jsonschema" ,python-jsonschema)
+ ("python-libnacl" ,python-libnacl)
+ ("python-pylibscrypt" ,python-pylibscrypt)
+ ("python-pypeg2" ,python-pypeg2)))
+ (home-page "https://github.com/duniter/duniter-python-api")
+ (synopsis "Python implementation of Duniter API")
+ (description "@code{duniterpy} is an implementation of
+@uref{https://github.com/duniter/duniter/, duniter} API. Its
+main features are:
+@itemize
+@item Supports Duniter's Basic Merkle API and protocol
+@item Asynchronous
+@item Duniter signing key
+@end itemize")
+ (license license:gpl3+)))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 6e8d9ab954..8ebae2e4b7 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2017 Mark Meyer <mark@ofosos.org>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -60,6 +61,70 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (srfi srfi-1))
+(define-public python-aiohttp
+ (package
+ (name "python-aiohttp")
+ (version "3.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "aiohttp" version))
+ (sha256
+ (base32
+ "1b888lggmyf2d08rfayq9khszzc0pav1z70ssc0b4d9kkr4g1klz"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;FIXME: 2 errors, 2084 passed
+ (native-inputs
+ `(("python-async-generator" ,python-async-generator)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-capturelog" ,python-pytest-capturelog)
+ ("python-pytest-mock" ,python-pytest-mock)))
+ (propagated-inputs
+ `(("python-aiodns" ,python-aiodns)
+ ("python-async-timeout" ,python-async-timeout)
+ ("python-attrs" ,python-attrs)
+ ("python-chardet" ,python-chardet)
+ ("python-idna-ssl" ,python-idna-ssl)
+ ("python-multidict" ,python-multidict)
+ ("python-yarl" ,python-yarl)))
+ (home-page "https://github.com/aio-libs/aiohttp/")
+ (synopsis "Async HTTP client/server framework (asyncio)")
+ (description "@code{aiohttp} is an asynchronous HTTP client/server
+framework.
+
+Its main features are:
+@itemize
+@item Supports both client and server side of HTTP protocol.
+@item Supports both client and server Web-Sockets out-of-the-box without the
+Callback Hell.
+@item Web-server has middlewares and pluggable routing.
+@end itemize")
+ (license license:asl2.0)))
+
+(define-public python-aiodns
+ (package
+ (name "python-aiodns")
+ (version "1.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "aiodns" version))
+ (sha256
+ (base32
+ "1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-pycares" ,python-pycares)))
+ (arguments
+ `(#:tests? #f)) ;tests require internet access
+ (home-page "http://github.com/saghul/aiodns")
+ (synopsis "Simple DNS resolver for asyncio")
+ (description "@code{aiodns} provides a simple way for doing
+asynchronous DNS resolutions with a synchronous looking interface by
+using @url{https://github.com/saghul/pycares,pycares}.")
+ (license license:expat)))
+
(define-public python-furl
(package
(name "python-furl")
@@ -2511,3 +2576,47 @@ protocols, it supports features like HTTP keep-alive, reget, throttling and
more.")
(license license:lgpl2.1+)))
+(define-public python-pycares
+ (package
+ (name "python-pycares")
+ (version "2.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pycares" version))
+ (sha256
+ (base32
+ "0h4fxw5drrhfyslzmfpljk0qnnpbhhb20hnnndzahhbwylyw1x1n"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;tests require internet access
+ (home-page "http://github.com/saghul/pycares")
+ (synopsis "Python interface for @code{c-ares}")
+ (description "@code{pycares} is a Python module which provides an
+interface to @code{c-ares}, a C library that performs DNS requests and
+name resolutions asynchronously.")
+ (license license:expat)))
+
+(define-public python-yarl
+ (package
+ (name "python-yarl")
+ (version "1.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "yarl" version))
+ (sha256
+ (base32
+ "1s6z13g8vgxfkkqwhn6imnm7pl7ky9arv4jygnn6bcndcbidg7d6"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (propagated-inputs
+ `(("python-idna" ,python-idna)
+ ("python-multidict" ,python-multidict)))
+ (home-page "https://github.com/aio-libs/yarl/")
+ (synopsis "Yet another URL library")
+ (description "@code{yarl} module provides handy @code{URL} class
+for URL parsing and changing.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 080552573d..b7b7714fb1 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -51,6 +51,7 @@
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3369,14 +3370,14 @@ that client code uses to construct the grammar directly in Python code.")
(define-public python-numexpr
(package
(name "python-numexpr")
- (version "2.6.4")
+ (version "2.6.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "numexpr" version))
(sha256
(base32
- "1kpnbb5d5n927113zccfibn16z7gidjipyac6kbbhzs0lnizkgph"))))
+ "1frnbcwmsi312154x274xl28xazr1k8vjby83fwyla2n10a81bgq"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; no tests included
(propagated-inputs
@@ -3872,6 +3873,27 @@ Python code against some of the style conventions in
(define-public python2-pycodestyle
(package-with-python2 python-pycodestyle))
+(define-public python-multidict
+ (package
+ (name "python-multidict")
+ (version "4.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "multidict" version))
+ (sha256
+ (base32
+ "1vf5bq8hn5a9rvhr5v4fwbmarfsp35hhr8gs74kqfijy34j2f194"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://github.com/aio-libs/multidict/")
+ (synopsis "Multidict implementation")
+ (description "Multidict is dict-like collection of key-value pairs
+where key might be occurred more than once in the container.")
+ (license license:asl2.0)))
+
(define-public python-orderedmultidict
(package
(name "python-orderedmultidict")
@@ -5030,14 +5052,14 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.")
(define-public python-netifaces
(package
(name "python-netifaces")
- (version "0.10.6")
+ (version "0.10.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "netifaces" version))
(sha256
(base32
- "1q7bi5k2r955rlcpspx4salvkkpk28jky67fjbpz2dkdycisak8c"))))
+ "1gccklrcplbbqh81g1mdgpa5y8na7kkf29cq2ka3f5a2fp5hyndx"))))
(build-system python-build-system)
(home-page "https://github.com/al45tair/netifaces")
(synopsis
@@ -6373,6 +6395,26 @@ specification.")
(define-public python2-idna
(package-with-python2 python-idna))
+(define-public python-idna-ssl
+ (package
+ (name "python-idna-ssl")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "idna-ssl" version))
+ (sha256
+ (base32
+ "0ydrc8hpg9mdr5hqq1lqfsfbn6sjq69slwpfrnlrm3k0phqg14qj"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;circular dependency with python-aiohttp
+ (home-page "https://github.com/aio-libs/idna-ssl")
+ (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support")
+ (description "Patch @code{ssl.match_hostname} for Unicode(idna)
+domains support.")
+ (license license:expat)))
+
(define-public python-pretend
(package
(name "python-pretend")
@@ -10606,14 +10648,14 @@ convering text with ANSI color codes to HTML or LaTeX.")
(define-public python-ddt
(package
(name "python-ddt")
- (version "1.1.2")
+ (version "1.1.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ddt" version))
(sha256
(base32
- "1wqkmz0yhanly8sif5vb02p2iik7mwxwph8ywph2kbb8ws8szdpx"))))
+ "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk"))))
(build-system python-build-system)
(native-inputs
`(("python-mock" ,python-mock)
@@ -10827,10 +10869,12 @@ and bit flag values.")
"1jafnn1kzd6qhxgprhx6y6ik1r5m2rilx25syzcmq03azp660y8w"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest)
+ `(("python-coverage" ,python-coverage)
("python-hypothesis" ,python-hypothesis)
- ("python-zope-interface" ,python-zope-interface)
- ("python-six" ,python-six)))
+ ("python-pytest" ,python-pytest)
+ ("python-six" ,python-six)
+ ("python-sphinx" ,python-sphinx)
+ ("python-zope-interface" ,python-zope-interface)))
(home-page "https://github.com/python-attrs/attrs/")
(synopsis "Attributes without boilerplate")
(description "@code{attrs} is a Python package with class decorators that
@@ -13336,3 +13380,43 @@ Parso is also able to list multiple syntax errors in your Python file.")
(define-public python2-parso
(package-with-python2 python-parso))
+
+(define-public python-async-generator
+ (package
+ (name "python-async-generator")
+ (version "1.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "async_generator" version))
+ (sha256
+ (base32
+ "0wc3hidz1q85cja93k5pzybn0fprfnqyrv4qlkdqdzklc5f4dmdp"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/python-trio/async_generator")
+ (synopsis "Async generators and context managers for Python 3.5+")
+ (description "@code{async_generator} back-ports Python 3.6's native async
+generators and Python 3.7's context managers into Python 3.5.")
+ ;; Dual licensed.
+ (license (list license:expat license:asl2.0))))
+
+(define-public python-async-timeout
+ (package
+ (name "python-async-timeout")
+ (version "2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "async-timeout" version))
+ (sha256
+ (base32
+ "1l3kg062m02mph6rf9rdv8r5c5n356clxa6b6mrn0i77vk9g9kq0"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/aio-libs/async_timeout/")
+ (synopsis "Timeout context manager for asyncio programs")
+ (description "@code{async-timeout} provides a timeout timeout context
+manager compatible with @code{asyncio}.")
+ (license license:asl2.0)))
+
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 0a9d5bb382..bf50cdd55e 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -237,8 +237,21 @@ in turn be used to build the final Rust.")
("llvm" ,llvm-3.9.1)
("openssl" ,openssl)
("libcurl" ,curl))) ; For "cargo"
+
;; rustc invokes gcc, so we need to set its search paths accordingly.
- (native-search-paths (package-native-search-paths gcc))
+ ;; Note: duplicate its value here to cope with circular dependencies among
+ ;; modules (see <https://bugs.gnu.org/31392>).
+ (native-search-paths
+ (list (search-path-specification
+ (variable "C_INCLUDE_PATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "CPLUS_INCLUDE_PATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64")))))
+
(synopsis "Compiler for the Rust progamming language")
(description "Rust is a systems programming language that provides memory
safety and thread safety guarantees.")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index a948547f72..24ee68abd2 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -52,7 +52,7 @@
(define-public dash
(package
(name "dash")
- (version "0.5.9.1")
+ (version "0.5.10.1")
(source
(origin
(method url-fetch)
@@ -60,7 +60,7 @@
"dash-" version ".tar.gz"))
(sha256
(base32
- "0ng695mq5ngg43h7ljhxvbjm46ym3nayj6ssn47d2gm9fbm5pkay"))
+ "1bl4brz5vy07lrss54glp4vfca3q8d73hyc87sqdk99f76z95b6s"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index aca26edad4..0762037ee3 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -639,14 +639,14 @@ curves, Cox models, and parametric accelerated failure time models.")
(define-public r-bit
(package
(name "r-bit")
- (version "1.1-12")
+ (version "1.1-13")
(source
(origin
(method url-fetch)
(uri (cran-uri "bit" version))
(sha256
(base32
- "0a6ig6nnjzq80r2ll4hc74za3xwzbzig6wlyb4dby0knzf3iqa6f"))))
+ "1yhpwvfkxpb773h8khjzyamqxl2jn7pjjmxjfawq626hhds8fsh6"))))
(build-system r-build-system)
(home-page "http://ff.r-forge.r-project.org")
(synopsis "Class for vectors of 1-bit booleans")
@@ -965,13 +965,13 @@ transliteration, concatenation, date-time formatting and parsing, etc.")
(define-public r-stringr
(package
(name "r-stringr")
- (version "1.3.0")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringr" version))
(sha256
- (base32 "07dvfbkhv8gk6l32j43jvxpmqlhqp0mdby406h5a3bsc6k94ic13"))))
+ (base32 "0hq3ybz7clnifi5wdm2s6p2i0kzljdkv26blg6yphng472h8x2vs"))))
(build-system r-build-system)
(propagated-inputs
`(("r-glue" ,r-glue)
@@ -1824,14 +1824,15 @@ building design matrices.")
(uri (pypi-uri "statsmodels" version))
(sha256
(base32
- "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6"))
- (patches (search-patches "python-statsmodels-fix-tests.patch"))))
+ "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ `(;; The test suite is very large and rather brittle. Tests often fail
+ ;; because of minor changes in dependencies that upstream hasn't fixed
+ ;; in a new release.
+ #:tests? #f
+ #:phases
(modify-phases %standard-phases
- ;; tests must be run after installation
- (delete 'check)
(add-after 'unpack 'set-matplotlib-backend-to-agg
(lambda _
;; Set the matplotlib backend to Agg to avoid problems using the
@@ -1843,14 +1844,17 @@ building design matrices.")
(string-append "import matplotlib;matplotlib.use('Agg');"
line)))
#t))
- (add-after 'install 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; Make installed package available for running the tests
- (add-installed-pythonpath inputs outputs)
- (with-directory-excursion "/tmp"
- (zero? (system* "nosetests"
- "--stop"
- "-v" "statsmodels"))))))))
+ ;; FIXME: This is a bug in version 0.8 since the upgrade to scipy 1.0.
+ ;; See https://github.com/statsmodels/statsmodels/issues/3931
+ ;; This has been fixed in version 0.9.
+ (add-after 'unpack 'patch-for-scipy
+ (lambda _
+ (substitute* "statsmodels/discrete/discrete_model.py"
+ (("return stats.chisqprob" match)
+ (string-append
+ "stats.chisqprob = lambda chisq, df: stats.chi2.sf(chisq, df);"
+ match)))
+ #t)))))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-scipy" ,python-scipy)
@@ -2423,13 +2427,13 @@ disk (or a connection).")
(define-public r-plotrix
(package
(name "r-plotrix")
- (version "3.7")
+ (version "3.7-1")
(source (origin
(method url-fetch)
(uri (cran-uri "plotrix" version))
(sha256
(base32
- "0rw81n9p3d2i03b4pgcfj5blryc94f29bm9a4j9bnp5h8qjj6pry"))))
+ "16p6d2dna6dah7rg2xknhyy65jkfn0zzivx1nnfxhd4f5q0v87w2"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/plotrix")
(synopsis "Various plotting functions")
@@ -5195,14 +5199,14 @@ classification and regression models.")
(define-public r-rcppprogress
(package
(name "r-rcppprogress")
- (version "0.4")
+ (version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppProgress" version))
(sha256
(base32
- "09ayw6d69i0lplmaj5md25p5hn1nmiyp6a4sh60v93nrrs1cq7iv"))))
+ "0yk01hfv961zyp569682k9igvhnwqyg5j0n5fm63sxigj82l2xhi"))))
(properties `((upstream-name . "RcppProgress")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 5210e73ed4..6b625b5d3f 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
#:use-module (gnu packages avahi)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages file)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages linux)
@@ -42,9 +44,15 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages flex)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
(define-public commoncpp
@@ -482,3 +490,64 @@ Mumble consists of two applications for separate usage:
(license (list license:bsd-3
;; The bundled celt is bsd-2. Remove after 1.3.0.
license:bsd-2))))
+
+(define-public twinkle
+ (let ((commit "02e1d1538af3337134bd7381dcd95f8d7775b30f")
+ (revision "1"))
+ (package
+ (name "twinkle")
+ (version (git-version "1.10.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LubosD/twinkle")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ds4rp4vr1wagn4m4m7ldqbsx5vgmgbfcqqgyhn1wf6s1dm0020z"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no test target
+ #:configure-flags '("-DWITH_SPEEX=On")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/twinkle")
+ `("QT_PLUGIN_PATH" ":" prefix
+ ,(map (lambda (label)
+ (string-append (assoc-ref inputs label)
+ "/lib/qt5/plugins"))
+ '("qtbase" "qtdeclarative")))
+ `("QML2_IMPORT_PATH" ":" prefix
+ ,(map (lambda (label)
+ (string-append (assoc-ref inputs label)
+ "/lib/qt5/qml"))
+ '("qtdeclarative" "qtquickcontrols"))))
+ #t))))))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("readline" ,readline)
+ ("file" ,file)
+ ("ucommon" ,ucommon)
+ ("ccrtp" ,ccrtp)
+ ("libxml2" ,libxml2)
+ ("speex" ,speex)
+ ("speexdsp" ,speexdsp)
+ ("libsndfile" ,libsndfile)
+ ("alsa-lib" ,alsa-lib)
+ ("qttools" ,qttools)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtquickcontrols" ,qtquickcontrols)))
+ (home-page "http://twinkle.dolezel.info/")
+ (synopsis "Softphone for voice over IP and instant messaging")
+ (description "Twinkle is a softphone for your voice over IP and instant
+messaging communcations using the SIP protocol. You can use it for direct IP
+phone to IP phone communication or in a network using a SIP proxy to route your
+calls and messages")
+ (license license:gpl2+))))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index ea3955439a..7f1f6ef72b 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -449,14 +449,14 @@ required structures.")
(define-public libressl
(package
(name "libressl")
- (version "2.7.2")
+ (version "2.7.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/LibreSSL/"
name "-" version ".tar.gz"))
(sha256
(base32
- "1589f0kg7kj51j9hid542s4isb96s1azjaqsfprpy5s2qdwqfyli"))))
+ "1597kj9jy3jyw52ys19sd4blg2gkam5q0rqdxbnrnvnyw67hviqn"))))
(build-system gnu-build-system)
(arguments
;; Do as if 'getentropy' was missing since older Linux kernels lack it
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ba60cb0826..54bcbd46bf 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1570,7 +1570,8 @@ modification time.")
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
- (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0"))))
+ (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0"))
+ (patches (search-patches "myrepos-CVE-2018-7032.patch"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 983ce45ec4..fce51150c0 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -472,7 +472,7 @@ canvas operations.")
(define-public libdca
(package
(name "libdca")
- (version "0.0.5")
+ (version "0.0.6")
(source (origin
(method url-fetch)
(uri (string-append
@@ -480,7 +480,7 @@ canvas operations.")
version "/libdca-" version ".tar.bz2"))
(sha256
(base32
- "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v"))))
+ "0h0zvcn97i9kyljdpifzi8in9xnw31fx3b3ggj96p8h0l2d8mycq"))))
(build-system gnu-build-system)
(home-page "https://www.videolan.org/developers/libdca.html")
(synopsis "DTS Coherent Acoustics decoder")
@@ -1156,7 +1156,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2018.04.25")
+ (version "2018.05.09")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@@ -1164,7 +1164,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "17zxgwfcy7c6gdyxdgh02f5zi52gvmy0zpccfj6zjkhw5iqj1vbw"))))
+ "0sl4bi2jls3417rd62awbqdq1b6wskkjbfwpnyw4a61qarfxid1d"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index a5ecd0b546..d6da22152c 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -79,14 +79,14 @@ older or slower computers and embedded systems.")
(define-public links
(package
(name "links")
- (version "2.15")
+ (version "2.16")
(source (origin
(method url-fetch)
(uri (string-append "http://links.twibright.com/download/"
name "-" version ".tar.bz2"))
(sha256
(base32
- "1jp3xyvp87a188b4kg5ycqahrazj7928zncgsznzn54w8d5iqahy"))))
+ "0gsa2gpb1grhssl5jzpc5pa0zi21mxi8g25rh5bacl70slw31w42"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -130,7 +130,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
(define-public lynx
(package
(name "lynx")
- (version "2.8.9dev.17")
+ (version "2.8.9dev.18")
(source (origin
(method url-fetch)
(uri (string-append
@@ -138,7 +138,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
"/lynx" version ".tar.bz2"))
(sha256
(base32
- "1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54"))))
+ "08v3n58hlrwncfvz6g76v061xwcbjgabiy5gv7ainf1li5akjwz5"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("perl" ,perl)))
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index ae7b08fddf..c96f8699d0 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -69,7 +69,7 @@
(define-public wine
(package
(name "wine")
- (version "3.0")
+ (version "3.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://dl.winehq.org/wine/source/"
@@ -77,7 +77,7 @@
"/wine-" version ".tar.xz"))
(sha256
(base32
- "1v7vq9iinkscbq6wg85fb0d2137660fg2nk5iabxkl2wr850asil"))))
+ "1wr63n70pli83p3rmclr2j4lxzs4ll1cwlpdlaajfrf6v9yhvl5s"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
@@ -223,7 +223,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "3.7")
+ (version "3.8")
(source
(origin
(method url-fetch)
@@ -232,7 +232,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
- "112sy32sja4cc3rv8x6v4cdi3jfxdgzwfra8f78hzdf8a2wrjqz6"))))
+ "1z1a9zlhcglyzfxdilrsz558qpn69b4mzp086s364jqgzj930sja"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@@ -279,7 +279,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "1drbzk3y0m14lkq3vzwwkvain5shykgcbmyzh6gcb5r4sxh3givn"))))
+ "0l8dqb8r72i6n7yh2bmx738i8ss0lmsj07hvgrqsnfwbjin0rc02"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+)
("libva" ,libva)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index b503f71a62..6b589c823d 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -136,14 +136,14 @@ the leaves of a full binary tree.")
(define-public i3status
(package
(name "i3status")
- (version "2.11")
+ (version "2.12")
(source (origin
(method url-fetch)
(uri (string-append "https://i3wm.org/i3status/i3status-"
version ".tar.bz2"))
(sha256
(base32
- "0pwcy599fw8by1a1sf91crkqba7679qhvhbacpmhis8c1xrpxnwq"))))
+ "06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 6801de39c1..18b78ccc7f 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2016 Petter <petter@mykolab.ch>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
@@ -529,7 +529,7 @@ selection's dimensions to stdout.")
(define-public maim
(package
(name "maim")
- (version "5.5")
+ (version "5.5.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -538,7 +538,7 @@ selection's dimensions to stdout.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "02blbimjdckbcb04crhv0k2vxnp3rcgskyq66sk0v13l2h52849v"))))
+ "1dvw0axnr9hhjg6zdcq9lwvaq0x7vrzlz00p8n3hj25qzsi4z5as"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no "check" target
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 8491faf881..99cd0a14a9 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -636,14 +636,14 @@ that conforms to the API of the Document Object Model.")
(define-public perl-xml-compile-tester
(package
(name "perl-xml-compile-tester")
- (version "0.90")
+ (version "0.91")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-Tester-" version ".tar.gz"))
(sha256
(base32
- "1bcl8x8cyacqv9yjp97aq9qq85sy8wv78kd8c16yd9yw3by4cpp1"))))
+ "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-log-report" ,perl-log-report)
@@ -735,14 +735,14 @@ used.")
(define-public perl-xml-compile-wsdl11
(package
(name "perl-xml-compile-wsdl11")
- (version "3.06")
+ (version "3.07")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-WSDL11-" version ".tar.gz"))
(sha256
(base32
- "0vbq05cpynm3jj81fw1k4nsb3wv4zngi6blvi1jhdarmh2rfg1x2"))))
+ "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-log-report" ,perl-log-report)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 422f625cf4..62cdc78604 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5899,7 +5899,7 @@ basic eye-candy effects.")
(define-public xpra
(package
(name "xpra")
- (version "2.2.6")
+ (version "2.3")
(source
(origin
(method url-fetch)
@@ -5907,7 +5907,7 @@ basic eye-candy effects.")
version ".tar.xz"))
(sha256
(base32
- "1zyynghhzjbgnmzcibm17wpj9f7jy31d7dr373li8cwg2yl2swyz"))))
+ "0kq0ambpy8r7m3wxdp79cgxgnl9yfmr19lv88f617gnv0sp0aarp"))))
(build-system python-build-system)
(inputs `(("ffmpeg" ,ffmpeg)
("flac" ,flac)
@@ -6000,15 +6000,15 @@ X11 servers, Windows, or macOS.")
(define-public uim
(package
(name "uim")
- (version "1.8.6")
+ (version "1.8.8")
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/uim/uim/releases/download/uim-"
+ (uri (string-append "https://github.com/uim/uim/releases/download/"
version "/uim-" version ".tar.bz2"))
(sha256
(base32
- "0pr3rfqpxha8p6cxzdjsxbbmmr76riklzw36f68phd1zqw1sh7kv"))))
+ "1p7sl0js47ja4glmax93ci59h02ipqw3wxkh4f1qgaz5qjy9nn9l"))))
(build-system gnu-build-system)
(inputs
`(("anthy" ,anthy)
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 517d5d3efe..0dada82738 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -29,6 +29,7 @@
#:use-module (gnu services avahi)
#:use-module (gnu services xorg)
#:use-module (gnu services networking)
+ #:use-module (gnu services sound)
#:use-module ((gnu system file-systems)
#:select (%elogind-file-systems))
#:use-module (gnu system shadow)
@@ -934,6 +935,8 @@ with the administrator's password."
x11-socket-directory-service
+ (service alsa-service-type)
+
%base-services))
;;; desktop.scm ends here
diff --git a/gnu/services/games.scm b/gnu/services/games.scm
index b146696237..b9d78e078d 100644
--- a/gnu/services/games.scm
+++ b/gnu/services/games.scm
@@ -27,7 +27,7 @@
#:use-module (guix records)
#:use-module (ice-9 match)
#:export (wesnothd-configuration
- wesnoth-configuration?
+ wesnothd-configuration?
wesnothd-service-type))
;;;
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 273ba2cc14..4b7e724a78 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -790,20 +791,24 @@ string, you could instantiate a prosody service like this:
(default "127.0.0.1"))
(port bitlbee-configuration-port
(default 6667))
+ (plugins bitlbee-plugins
+ (default '()))
(extra-settings bitlbee-configuration-extra-settings
(default "")))
(define bitlbee-shepherd-service
(match-lambda
- (($ <bitlbee-configuration> bitlbee interface port extra-settings)
- (let ((conf (plain-file "bitlbee.conf"
- (string-append "
+ (($ <bitlbee-configuration> bitlbee interface port
+ plugins extra-settings)
+ (let ((conf (mixed-text-file "bitlbee.conf"
+ "
[settings]
User = bitlbee
ConfigDir = /var/lib/bitlbee
DaemonInterface = " interface "
DaemonPort = " (number->string port) "
-" extra-settings))))
+ PluginDir = " (directory-union "bitlbee-plugins" plugins) "/lib/bitlbee
+" extra-settings)))
(with-imported-modules (source-module-closure
'((gnu build shepherd)
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 920d215272..a2917e485f 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -49,7 +49,10 @@
a20-olinuxino-micro-installation-os
banana-pi-m2-ultra-installation-os
beaglebone-black-installation-os
- nintendo-nes-classic-edition-installation-os))
+ mx6cuboxi-installation-os
+ nintendo-nes-classic-edition-installation-os
+ novena-installation-os
+ wandboard-installation-os))
;;; Commentary:
;;;
@@ -429,11 +432,26 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET."
"/dev/mmcblk1" ; eMMC storage
"ttyS0"))
+(define mx6cuboxi-installation-os
+ (embedded-installation-os u-boot-mx6cuboxi-bootloader
+ "/dev/mmcblk0" ; SD card storage
+ "ttymxc0"))
+
+(define novena-installation-os
+ (embedded-installation-os u-boot-novena-bootloader
+ "/dev/mmcblk1" ; SD card storage
+ "ttymxc1"))
+
(define nintendo-nes-classic-edition-installation-os
(embedded-installation-os u-boot-nintendo-nes-classic-edition-bootloader
"/dev/mmcblk0" ; SD card (solder it yourself)
"ttyS0"))
+(define wandboard-installation-os
+ (embedded-installation-os u-boot-wandboard-bootloader
+ "/dev/mmcblk0" ; SD card storage
+ "ttymxc0"))
+
;; Return the default os here so 'guix system' can consume it directly.
installation-os