aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-02-24 19:04:13 +0100
committerMarius Bakke <mbakke@fastmail.com>2018-02-24 19:04:13 +0100
commit5f9b018aa8334d5a38ac83ebe040ba36ce511305 (patch)
tree1e67a1fd0444e6073f7d33091322528ccc8c3849 /gnu
parentfb6550058e167c25bbcbe0ebcf51590f83506f23 (diff)
parentf09cb93e3a2310f7726cb98fa5679c1a8483c39f (diff)
downloadpatches-5f9b018aa8334d5a38ac83ebe040ba36ce511305.tar
patches-5f9b018aa8334d5a38ac83ebe040ba36ce511305.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk16
-rw-r--r--gnu/packages/admin.scm3
-rw-r--r--gnu/packages/audio.scm2
-rw-r--r--gnu/packages/benchmark.scm4
-rw-r--r--gnu/packages/bioinformatics.scm4
-rw-r--r--gnu/packages/bootloaders.scm18
-rw-r--r--gnu/packages/cook.scm37
-rw-r--r--gnu/packages/cran.scm4
-rw-r--r--gnu/packages/crypto.scm47
-rw-r--r--gnu/packages/debug.scm2
-rw-r--r--gnu/packages/ebook.scm16
-rw-r--r--gnu/packages/emacs.scm66
-rw-r--r--gnu/packages/emulators.scm1111
-rw-r--r--gnu/packages/games.scm923
-rw-r--r--gnu/packages/geo.scm114
-rw-r--r--gnu/packages/gettext.scm2
-rw-r--r--gnu/packages/gl.scm6
-rw-r--r--gnu/packages/gnome.scm4
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/image.scm17
-rw-r--r--gnu/packages/ldc.scm126
-rw-r--r--gnu/packages/license.scm160
-rw-r--r--gnu/packages/linux.scm37
-rw-r--r--gnu/packages/lout.scm147
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/maths.scm28
-rw-r--r--gnu/packages/mpd.scm22
-rw-r--r--gnu/packages/musl.scm7
-rw-r--r--gnu/packages/networking.scm12
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/password-utils.scm5
-rw-r--r--gnu/packages/patches/htop-fix-process-tree.patch99
-rw-r--r--gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch35
-rw-r--r--gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch414
-rw-r--r--gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch88
-rw-r--r--gnu/packages/patches/ldc-bootstrap-disable-tests.patch (renamed from gnu/packages/patches/ldc-disable-tests.patch)18
-rw-r--r--gnu/packages/patches/optipng-CVE-2017-1000229.patch22
-rw-r--r--gnu/packages/patches/password-store-gnupg-compat.patch28
-rw-r--r--gnu/packages/patches/qemu-CVE-2017-15038.patch51
-rw-r--r--gnu/packages/patches/qemu-CVE-2017-15289.patch66
-rw-r--r--gnu/packages/patches/wavpack-CVE-2018-7253.patch29
-rw-r--r--gnu/packages/patches/wavpack-CVE-2018-7254.patch62
-rw-r--r--gnu/packages/perl-check.scm73
-rw-r--r--gnu/packages/perl.scm411
-rw-r--r--gnu/packages/pumpio.scm7
-rw-r--r--gnu/packages/python.scm4
-rw-r--r--gnu/packages/samba.scm4
-rw-r--r--gnu/packages/scheme.scm47
-rw-r--r--gnu/packages/security-token.scm6
-rw-r--r--gnu/packages/skarnet.scm90
-rw-r--r--gnu/packages/slang.scm10
-rw-r--r--gnu/packages/statistics.scm39
-rw-r--r--gnu/packages/tls.scm4
-rw-r--r--gnu/packages/upnp.scm4
-rw-r--r--gnu/packages/version-control.scm35
-rw-r--r--gnu/packages/video.scm19
-rw-r--r--gnu/packages/virtualization.scm6
-rw-r--r--gnu/packages/vulkan.scm15
-rw-r--r--gnu/packages/web.scm8
-rw-r--r--gnu/packages/wm.scm55
-rw-r--r--gnu/packages/wxwidgets.scm36
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/services/certbot.scm137
-rw-r--r--gnu/services/xorg.scm9
64 files changed, 2932 insertions, 1955 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index ce110516be..49aea157a1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -13,7 +13,7 @@
# Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2016, 2017 Jan Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
-# Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
@@ -142,6 +142,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/elixir.scm \
%D%/packages/embedded.scm \
%D%/packages/emacs.scm \
+ %D%/packages/emulators.scm \
%D%/packages/enchant.scm \
%D%/packages/engineering.scm \
%D%/packages/enlightenment.scm \
@@ -248,6 +249,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/libffcall.scm \
%D%/packages/libffi.scm \
%D%/packages/libftdi.scm \
+ %D%/packages/license.scm \
%D%/packages/calendar.scm \
%D%/packages/libidn.scm \
%D%/packages/libphidget.scm \
@@ -763,6 +765,7 @@ dist_patch_DATA = \
%D%/packages/patches/heimdal-CVE-2017-11103.patch \
%D%/packages/patches/hmmer-remove-cpu-specificity.patch \
%D%/packages/patches/higan-remove-march-native-flag.patch \
+ %D%/packages/patches/htop-fix-process-tree.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
%D%/packages/patches/hwloc-tests-without-sysfs.patch \
@@ -801,9 +804,8 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/lcms-CVE-2016-10165.patch \
- %D%/packages/patches/ldc-disable-tests.patch \
- %D%/packages/patches/ldc-1.1.0-disable-dmd-tests.patch \
- %D%/packages/patches/ldc-1.1.0-disable-phobos-tests.patch \
+ %D%/packages/patches/ldc-bootstrap-disable-tests.patch \
+ %D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \
%D%/packages/patches/ledger-fix-uninitialized.patch \
%D%/packages/patches/ledger-revert-boost-python-fix.patch \
%D%/packages/patches/liba52-enable-pic.patch \
@@ -948,7 +950,6 @@ dist_patch_DATA = \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \
- %D%/packages/patches/optipng-CVE-2017-1000229.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.patch \
%D%/packages/patches/ots-no-include-missing-file.patch \
@@ -956,6 +957,7 @@ dist_patch_DATA = \
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
%D%/packages/patches/p7zip-CVE-2017-17969.patch \
%D%/packages/patches/p7zip-remove-unused-code.patch \
+ %D%/packages/patches/password-store-gnupg-compat.patch \
%D%/packages/patches/patchelf-page-size.patch \
%D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
@@ -1044,8 +1046,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-waitress-fix-tests.patch \
- %D%/packages/patches/qemu-CVE-2017-15038.patch \
- %D%/packages/patches/qemu-CVE-2017-15289.patch \
%D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
@@ -1141,6 +1141,8 @@ dist_patch_DATA = \
%D%/packages/patches/vsearch-unbundle-cityhash.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
+ %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/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 6121402048..cf9524eb5f 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -269,7 +269,8 @@ graphs and can export its output to different formats.")
version "/htop-" version ".tar.gz"))
(sha256
(base32
- "0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j"))))
+ "0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j"))
+ (patches (search-patches "htop-fix-process-tree.patch"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 47179aea92..b1a15ed34d 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2377,6 +2377,8 @@ stretching and pitch scaling of audio. This package contains the library.")
(method url-fetch)
(uri (string-append "http://www.wavpack.com/"
name "-" version ".tar.bz2"))
+ (patches (search-patches "wavpack-CVE-2018-7253.patch"
+ "wavpack-CVE-2018-7254.patch"))
(sha256
(base32
"0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r"))))
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index ae7279f286..77dcd78331 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -34,7 +34,7 @@
(define-public fio
(package
(name "fio")
- (version "3.4")
+ (version "3.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -42,7 +42,7 @@
"fio-" version ".tar.bz2"))
(sha256
(base32
- "01dqvg5mgb4fh1jqqmi179k2rb517p4h4sr3mhlnd0alk1x12w8a"))))
+ "1rrzcrn07db4pffvi2q0d0k884bwcapx6r1rfv4yx9066snvx240"))))
(build-system gnu-build-system)
(arguments
'(#:test-target "test"
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 820bd84d66..c427a6d036 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -8111,7 +8111,7 @@ throughput genetic sequencing data sets using regression methods.")
(define-public r-qtl
(package
(name "r-qtl")
- (version "1.42-7")
+ (version "1.42-8")
(source
(origin
(method url-fetch)
@@ -8119,7 +8119,7 @@ throughput genetic sequencing data sets using regression methods.")
version ".tar.gz"))
(sha256
(base32
- "0hxij8v4my5x4pf5fn5327g7m3n7vjkbzrl580vcmp81n3n3nmrx"))))
+ "1l528dwvfpdlr05imrrm4rq32axp6hld9nqm6mm43kn5n7z2f5k6"))))
(build-system r-build-system)
(home-page "http://rqtl.org/")
(synopsis "R package for analyzing QTL experiments in genetics")
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 59eb22f242..9ea8748a5b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -71,6 +71,22 @@
(base32
"0p2vhnc18cnbmb39vq4m7hzv4mhnm2l0a2s7gx3ar277fwng3hys"))))
+;; The GRUB test suite fails with later versions of Qemu, so we
+;; keep it at 2.10 for now. See
+;; <https://lists.gnu.org/archive/html/bug-grub/2018-02/msg00004.html>.
+;; TODO: When grub no longer needs this version, move to gnu/packages/debug.scm.
+(define qemu-minimal-2.10
+ (package
+ (inherit qemu-minimal)
+ (version "2.10.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.qemu.org/qemu-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))))))
+
(define-public grub
(package
(name "grub")
@@ -144,7 +160,7 @@
;; Dependencies for the test suite. The "real" QEMU is needed here,
;; because several targets are used.
("parted" ,parted)
- ("qemu" ,qemu-minimal)
+ ("qemu" ,qemu-minimal-2.10)
("xorriso" ,xorriso)))
(home-page "https://www.gnu.org/software/grub/")
(synopsis "GRand Unified Boot loader")
diff --git a/gnu/packages/cook.scm b/gnu/packages/cook.scm
index e149968f24..17e090d725 100644
--- a/gnu/packages/cook.scm
+++ b/gnu/packages/cook.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,26 +42,26 @@
(arguments
`(#:parallel-build? #f ; There are some nasty racy rules in the Makefile.
#:phases
- (alist-cons-before
- 'configure 'pre-conf
- (lambda _
- (substitute* (append '("common/env.c")
- (find-files "test" "\\.sh"))
- (("/bin/sh") (which "sh")))
+ (modify-phases %standard-phases
+ (add-before 'configure 'pre-conf
+ (lambda _
+ (substitute* (append '("common/env.c")
+ (find-files "test" "\\.sh"))
+ (("/bin/sh") (which "sh")))
- ;; Guix's binutils (because it wants bit-reproducable builds) is
- ;; is configured with the --enable-deterministic-archives flag.
- ;; This means the timestamp of files appended to an ar archive
- ;; are automatically and silently mutated to 00:00 1 Jan 1970
- ;; which plays havoc with this test, for which correct timestamps
- ;; are very important. Adding the U flag undoes the effect of
- ;; --enable-deterministic-archives and allows this test to work
- ;; again.
- (substitute* "test/00/t0077a.sh"
- (("ar qc") "ar qcU"))
+ ;; Guix's binutils (because it wants bit-reproducable builds) is
+ ;; is configured with the --enable-deterministic-archives flag.
+ ;; This means the timestamp of files appended to an ar archive
+ ;; are automatically and silently mutated to 00:00 1 Jan 1970
+ ;; which plays havoc with this test, for which correct timestamps
+ ;; are very important. Adding the U flag undoes the effect of
+ ;; --enable-deterministic-archives and allows this test to work
+ ;; again.
+ (substitute* "test/00/t0077a.sh"
+ (("ar qc") "ar qcU"))
- (setenv "SH" (which "sh")))
- %standard-phases)))
+ (setenv "SH" (which "sh"))
+ #t)))))
(native-inputs `(("bison" ,bison)
;; For building the documentation:
("groff" ,groff)
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 108650d19a..e1fb1b6215 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1109,14 +1109,14 @@ methods.")
(define-public r-timedate
(package
(name "r-timedate")
- (version "3042.101")
+ (version "3043.102")
(source
(origin
(method url-fetch)
(uri (cran-uri "timeDate" version))
(sha256
(base32
- "0vcckaw1gqz3j4v69r9jn41vlmk5a5c7572xam1nl75ki5v4r3bc"))))
+ "0wvl5pq261rvbgly7vilk3x3m9xk3ly6il1i5scwdf6srl1vlz1p"))))
(properties `((upstream-name . "timeDate")))
(build-system r-build-system)
(home-page "https://www.rmetrics.org")
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 225c26378d..695f6ca088 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2016, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -663,3 +664,49 @@ that are faster than MD5, SHA-1, SHA-2, and SHA-3, yet are at least as secure
as the latest standard, SHA-3. It is an improved version of the SHA-3 finalist
BLAKE.")
(license license:public-domain))))
+
+(define-public rhash
+ (package
+ (name "rhash")
+ (version "1.3.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/rhash/RHash/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0bhz3xdl6r06k1bqigdjz42l31iqz2qdpg7zk316i7p2ra56iq4q"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("\\$\\(DESTDIR\\)/etc")
+ (string-append (assoc-ref outputs "out") "/etc")))
+ #t))
+ (add-after 'build 'build-library
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "lib-shared" make-flags)))
+ (add-after 'install 'install-library
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "install-lib-shared" make-flags)
+ (apply invoke
+ "make" "-C" "librhash" "install-headers"
+ "install-so-link" make-flags)))
+ (add-after 'check 'check-library
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "test-shared-lib" make-flags))))))
+ (home-page "https://sourceforge.net/projects/rhash/")
+ (synopsis "Utility for computing hash sums")
+ (description "RHash is a console utility for calculation and verification
+of magnet links and a wide range of hash sums like CRC32, MD4, MD5, SHA1,
+SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
+34.11-94, RIPEMD-160, HAS-160, EDON-R, Whirlpool and Snefru.")
+ (license (license:non-copyleft "file://COPYING"))))
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 09efcbdd6c..2354f0fbb9 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -169,7 +169,7 @@ tools that process C/C++ code.")
(inputs
`(("custom-qemu"
;; The afl-qemu tool builds qemu 2.10.0 with a few patches applied.
- ,(package (inherit qemu-minimal)
+ ,(package (inherit (@@ (gnu packages bootloaders) qemu-minimal-2.10))
(name "afl-qemu")
(inputs
`(("afl-src" ,source)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 7d34bfafac..bf4b6a750e 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -74,7 +75,7 @@
(define-public calibre
(package
(name "calibre")
- (version "3.11.1")
+ (version "3.17.0")
(source
(origin
(method url-fetch)
@@ -83,7 +84,7 @@
version ".tar.xz"))
(sha256
(base32
- "0kwza7iyyyfhq476z5fk9962iyd0qpgmzm1k36nqcy8sfjbk8mrl"))
+ "1w6hw1s0d4daa4q2ykzhxdndiq61l8z7ls7rxh7k7p62ia0i5sxp"))
;; Remove non-free or doubtful code, see
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
(modules '((guix build utils)))
@@ -175,7 +176,8 @@
(substitute* "setup/build_environment.py"
(("sys.prefix") (string-append "'" pyqt "'")))
(setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo"))
- (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib")))))
+ (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib"))
+ #t)))
(add-after 'install 'install-font-liberation
(lambda* (#:key inputs outputs #:allow-other-keys)
(for-each (lambda (file)
@@ -194,11 +196,11 @@
#t)))))
(home-page "http://calibre-ebook.com/")
(synopsis "E-book library management software")
- (description "Calibre is an ebook library manager. It can view, convert
-and catalog ebooks in most of the major ebook formats. It can also talk
-to many ebook reader devices. It can go out to the Internet and fetch
+ (description "Calibre is an e-book library manager. It can view, convert
+and catalog e-books in most of the major e-book formats. It can also talk
+to many e-book reader devices. It can go out to the Internet and fetch
metadata for books. It can download newspapers and convert them into
-ebooks for convenient reading.")
+e-books for convenient reading.")
;; Calibre is largely GPL3+, but includes a number of components covered
;; by other licenses. See COPYRIGHT for more details.
(license (list license:gpl3+
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 94b371202c..81e6885f66 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -3844,6 +3844,26 @@ strings, and code folding.")
in Emacs.")
(license license:gpl3+)))
+(define-public emacs-edit-indirect
+ (package
+ (name "emacs-edit-indirect")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Fanael/edit-indirect/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07kr58rd1p5j764wminsssazr73hy51yw8iqcsv5z2dwgj7msv71"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/Fanael/edit-indirect")
+ (synopsis "Edit regions in separate buffers")
+ (description "This package allows you to edit regions in separate buffers,
+like @code{org-edit-src-code} but for arbitrary regions.")
+ (license license:gpl3+)))
+
(define-public emacs-projectile
(package
(name "emacs-projectile")
@@ -4266,6 +4286,52 @@ are pretty much the same (and SLIME served as the principle inspiration for
CIDER).")
(license license:gpl3+)))
+;; There hasn't been a tag or release since 2015, so we take the latest
+;; commit.
+(define-public emacs-sly
+ (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9")
+ (revision "1"))
+ (package
+ (name "emacs-sly")
+ (version (string-append "1.0.0-" revision "." (string-take commit 9)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/joaotavora/sly.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:include (cons "^lib\\/" %default-include)
+ #:phases
+ ;; The package provides autoloads.
+ (modify-phases %standard-phases
+ (delete 'make-autoloads))))
+ (home-page "https://github.com/joaotavora/sly")
+ (synopsis "Sylvester the Cat's Common Lisp IDE")
+ (description
+ "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
+contains the following improvements over it:
+
+@enumerate
+@item Completely redesigned REPL based on Emacs's own full-featured
+ @code{comint.el}
+@item Live code annotations via a new @code{sly-stickers} contrib
+@item Consistent interactive button interface. Everything can be copied to
+ the REPL.
+@item Multiple inspectors with independent history
+@item Regexp-capable @code{M-x sly-apropos}
+@item Contribs are first class SLY citizens and enabled by default
+@item Use ASDF to loads contribs on demand.
+@end enumerate
+
+SLY tracks SLIME's bugfixes and all its familar features (debugger, inspector,
+xref, etc...) are still available, but with better integration.")
+ (license license:gpl3+))))
+
(define-public emacs-lua-mode
(let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
(revision "1"))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
new file mode 100644
index 0000000000..142603b082
--- /dev/null
+++ b/gnu/packages/emulators.scm
@@ -0,0 +1,1111 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
+;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+;;;
+;;; 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 emulators)
+ #: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 (gnu packages)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages backup)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages fonts)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages game-development)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages libedit)
+ #:use-module (gnu packages libusb)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages sdl)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages upnp)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
+ #:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu))
+
+(define-public desmume
+ (package
+ (name "desmume")
+ (version "0.9.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/desmume/desmume/"
+ version "/desmume-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; Enable support for WiFi and microphone.
+ `(#:configure-flags '("--enable-wifi"
+ "--enable-openal")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("zlib" ,zlib)
+ ("sdl" ,sdl)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+-2)
+ ("glu" ,glu)))
+ (home-page "http://desmume.org/")
+ (synopsis "Nintendo DS emulator")
+ (description
+ "DeSmuME is an emulator for the Nintendo DS handheld gaming console.")
+ (license license:gpl2)))
+
+;; Building from recent Git because the official 5.0 release no longer builds.
+(define-public dolphin-emu
+ (let ((commit "d04b179111f8d863f360839474cb82c766f762b8")
+ (revision "0"))
+ (package
+ (name "dolphin-emu")
+ (version (git-version "5.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dolphin-emu/dolphin.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove external stuff we don't need.
+ (for-each (lambda (dir)
+ (delete-file-recursively
+ (string-append "Externals/" dir)))
+ '("LZO" "OpenAL" "Qt" "SFML" "SOIL" "curl" "ffmpeg"
+ "gettext" "hidapi" "libpng" "libusb" "mbedtls"
+ "miniupnpc" "wxWidgets3" "zlib"))
+ ;; Clean up source.
+ (for-each delete-file (find-files "." ".*\\.(bin|dsy|exe|jar|rar)$"))
+ #t))
+ (sha256
+ (base32
+ "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f
+ ;; The FindGTK2 cmake script only checks hardcoded directories for
+ ;; glib/gtk headers.
+
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'generate-fonts&hardcore-libvulkan-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((fontfile
+ (string-append (assoc-ref inputs "font-wqy-microhei")
+ "/share/fonts/truetype/wqy-microhei.ttc"))
+ (libvulkan
+ (string-append (assoc-ref inputs "vulkan-icd-loader")
+ "/lib/libvulkan.so")))
+ (chdir "docs")
+ (invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \
+--cflags --libs) gc-font-tool.cpp -o gc-font-tool")
+ (invoke "./gc-font-tool" "a" fontfile "font_western.bin")
+ (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin")
+ (copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin")
+ (copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin")
+ (chdir "..")
+ (substitute* "Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp"
+ (("libvulkan.so") libvulkan))
+ #t))))
+
+ #:configure-flags
+ (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR="
+ (assoc-ref %build-inputs "gtk+")
+ "/lib/gtk-2.0/include")
+ (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR="
+ (assoc-ref %build-inputs "glib")
+ "/lib/glib-2.0/include")
+ (string-append "-DX11_INCLUDE_DIR="
+ (assoc-ref %build-inputs "libx11")
+ "/include")
+ (string-append "-DX11_LIBRARIES="
+ (assoc-ref %build-inputs "libx11")
+ "/lib/libX11.so")
+ "-DX11_FOUND=1")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("gettext" ,gnu-gettext)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ao" ,ao)
+ ("bluez" ,bluez)
+ ("curl" ,curl)
+ ("eudev" ,eudev)
+ ("ffmpeg" ,ffmpeg)
+ ("font-wqy-microhei" ,font-wqy-microhei)
+ ("freetype" ,freetype)
+ ("glew" ,glew)
+ ("glib" ,glib)
+ ("glu" ,glu)
+ ("gtk+" ,gtk+-2)
+ ("hidapi" ,hidapi)
+ ("libevdev" ,libevdev)
+ ("libpng" ,libpng)
+ ("libusb" ,libusb)
+ ("libx11" ,libx11)
+ ("libxi" ,libxi)
+ ("libxrandr" ,libxrandr)
+ ("lzo" ,lzo)
+ ("mbedtls-apache" ,mbedtls-apache)
+ ("mesa" ,mesa)
+ ("miniupnpc" ,miniupnpc)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("qtbase" ,qtbase)
+ ("sdl2" ,sdl2)
+ ("sfml" ,sfml)
+ ("soil" ,soil)
+ ("soundtouch" ,soundtouch)
+ ("vulkan-icd-loader" ,vulkan-icd-loader)
+ ("wxwidgets" ,wxwidgets-gtk2-3.1)
+ ("zlib" ,zlib)))
+ (home-page "https://dolphin-emu.org/")
+ (synopsis "Nintendo Wii and GameCube emulator")
+ (description
+ "Dolphin is an emulator for two Nintendo video game consoles: the
+GameCube and the Wii. It provides compatibility with all PC controllers,
+turbo speed, networked multiplayer, and graphical enhancements.")
+ (supported-systems '("x86_64-linux" "aarch64-linux"))
+ ; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0.
+ (license (list license:gpl2+ license:asl2.0 license:fdl1.2+)))))
+
+(define-public dosbox
+ (package
+ (name "dosbox")
+ (version "0.74.svn3947")
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/")
+ (revision 3947)))
+ (file-name (string-append name "-" version "-checkout"))
+ ;; Use SVN head, since the last release (2010) is incompatible
+ ;; with GCC 4.8+ (see
+ ;; <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=624976>).
+ (sha256
+ (base32
+ "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after
+ 'unpack 'autogen.sh
+ (lambda _
+ (zero? (system* "sh" "autogen.sh")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("sdl" ,sdl)
+ ("libpng" ,libpng)
+ ("zlib" ,zlib)
+ ("alsa-lib" ,alsa-lib)
+ ("glu" ,glu)
+ ("mesa" ,mesa)))
+ (home-page "http://www.dosbox.com")
+ (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound")
+ (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox
+also emulates CPU:286/386 realmode/protected mode, Directory
+FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a
+SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
+older games.")
+ (license license:gpl2+)))
+
+(define-public emulation-station
+ (let ((commit "646bede3d9ec0acf0ae378415edac136774a66c5"))
+ (package
+ (name "emulation-station")
+ (version "2.0.1")
+ (source (origin
+ (method git-fetch) ; no tarball available
+ (uri (git-reference
+ (url "https://github.com/Aloshi/EmulationStation.git")
+ (commit commit))) ; no version tag
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no tests
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("boost" ,boost)
+ ("curl" ,curl)
+ ("eigin" ,eigen)
+ ("freeimage" ,freeimage)
+ ("freetype" ,freetype)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)))
+ (synopsis "Video game console emulator front-end")
+ (description "EmulationStation provides a graphical front-end to a large
+number of video game console emulators. It features an interface that is
+usable with any game controller that has at least 4 buttons, theming support,
+and a game metadata scraper.")
+ (home-page "http://www.emulationstation.org")
+ (license license:expat))))
+
+(define-public higan
+ (package
+ (name "higan")
+ (version "106")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://gitlab.com/higan/higan/repository/archive.tar.gz?ref=v"
+ version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0y42pra0dxzlbkyzcp3r8a39pji2bj3p9fl40425f60af2igr4rw"))
+ (patches (search-patches "higan-remove-march-native-flag.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ao" ,ao)
+ ("eudev" ,eudev)
+ ("gtk+" ,gtk+-2)
+ ("gtksourceview-2" ,gtksourceview-2)
+ ("libxv" ,libxv)
+ ("mesa" ,mesa)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("sdl" ,sdl)))
+ (arguments
+ '(#:phases
+ (let ((build-phase (assoc-ref %standard-phases 'build))
+ (install-phase (assoc-ref %standard-phases 'install)))
+ (modify-phases %standard-phases
+ ;; The higan build system has no configure phase.
+ (delete 'configure)
+ (add-before 'build 'chdir-to-higan
+ (lambda _
+ (chdir "higan")))
+ (add-before 'install 'create-/share/applications
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; It seems the author forgot to do this in the Makefile.
+ (mkdir-p (string-append out "/share/applications")))))
+ (add-after 'install 'chdir-to-icarus
+ (lambda _
+ (chdir "../icarus")))
+ (add-after 'chdir-to-icarus 'build-icarus build-phase)
+ (add-after 'build-icarus 'install-icarus install-phase)
+ (add-after 'install-icarus 'wrap-higan-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (higan (string-append bin "/higan"))
+ (higan-original (string-append higan "-original"))
+ (bash (string-append (assoc-ref inputs "bash")
+ "/bin/bash"))
+ (coreutils (assoc-ref inputs "coreutils"))
+ (mkdir (string-append coreutils "/bin/mkdir"))
+ (cp (string-append coreutils "/bin/cp"))
+ (cp-r (string-append cp " -r --no-preserve=mode")))
+ ;; First, have the executable make sure ~/.local/share/higan
+ ;; contains up to date files. Higan insists on looking there
+ ;; for these data files.
+ (rename-file higan higan-original)
+ (with-output-to-file higan
+ (lambda ()
+ (display
+ (string-append
+ "#!" bash "\n"
+ ;; higan doesn't respect $XDG_DATA_HOME
+ mkdir " -p ~/.local/share\n"
+ cp-r " " out "/share/higan ~/.local/share\n"
+ "exec " higan-original))))
+ (chmod higan #o555)
+ ;; Second, make sure higan will find icarus in PATH.
+ (wrap-program higan
+ `("PATH" ":" prefix (,bin))))))))
+ #:make-flags
+ (list "compiler=g++"
+ (string-append "prefix=" (assoc-ref %outputs "out")))
+ ;; There is no test suite.
+ #:tests? #f))
+ (home-page "http://byuu.org/emulation/higan/")
+ (synopsis "Nintendo multi-system emulator")
+ (description
+ "higan (formerly bsnes) is an emulator for multiple Nintendo video game
+consoles, including the Nintendo Entertainment System (NES/Famicom), Super
+Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy
+Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems
+Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
+ ;; As noted in these files among more:
+ ;; - icarus/icarus.cpp
+ ;; - higan/emulator/emulator.hpp
+ (license license:gpl3)))
+
+(define-public mgba
+ (package
+ (name "mgba")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mgba-emu/mgba/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Make sure we don't use the bundled software.
+ '(for-each
+ (lambda (subdir)
+ (let ((lib-subdir (string-append "src/third-party/" subdir)))
+ (delete-file-recursively lib-subdir)))
+ '("libpng" "lzma" "sqlite3" "zlib")))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;no "test" target
+ #:configure-flags
+ (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
+ "-DUSE_LIBZIP=OFF" ;use "zlib" instead
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out") "/lib"))))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("ffmpeg" ,ffmpeg)
+ ("imagemagick" ,imagemagick)
+ ("libedit" ,libedit)
+ ("libepoxy" ,libepoxy)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("minizip" ,minizip)
+ ("ncurses" ,ncurses)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qttools" ,qttools)
+ ("sdl2" ,sdl2)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (home-page "https://mgba.io")
+ (synopsis "Game Boy Advance emulator")
+ (description
+ "mGBA is an emulator for running Game Boy Advance games. It aims to be
+faster and more accurate than many existing Game Boy Advance emulators, as
+well as adding features that other emulators lack. It also supports Game Boy
+and Game Boy Color games.")
+ ;; Code is mainly MPL 2.0. "blip_buf.c" is LGPL 2.1+ and "inih.c" is
+ ;; BSD-3.
+ (license (list license:mpl2.0 license:lgpl2.1+ license:bsd-3))))
+
+(define-public mupen64plus-core
+ (package
+ (name "mupen64plus-core")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-core/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("glu" ,glu)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "all" (string-append "PREFIX=" out)))
+ ;; There are no tests.
+ #:tests? #f))
+ ;; As per the Makefile (in projects/unix/Makefile):
+ (supported-systems '("i686-linux" "x86_64-linux"))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Nintendo 64 emulator core library")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+core library.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-audio-sdl
+ (package
+ (name "mupen64plus-audio-sdl")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+SDL audio plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-input-sdl
+ (package
+ (name "mupen64plus-input-sdl")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("which" ,which)))
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+SDL input plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-rsp-hle
+ (package
+ (name "mupen64plus-rsp-hle")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+high-level emulation (HLE) RSP processor plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-rsp-z64
+ (package
+ (name "mupen64plus-rsp-z64")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Z64 RSP processor plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-arachnoid
+ (package
+ (name "mupen64plus-video-arachnoid")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Arachnoid video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-glide64
+ (package
+ (name "mupen64plus-video-glide64")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix")))
+ ;; XXX Should be unnecessary with the next release.
+ (add-before
+ 'build 'use-sdl2
+ (lambda _
+ (substitute* "Makefile"
+ (("SDL_CONFIG = (.*)sdl-config" all prefix)
+ (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Glide64 video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-glide64mk2
+ (package
+ (name "mupen64plus-video-glide64mk2")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("boost" ,boost)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Glide64MK2 video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-rice
+ (package
+ (name "mupen64plus-video-rice")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Rice Video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-z64
+ (package
+ (name "mupen64plus-video-z64")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("glew" ,glew)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix")))
+ ;; XXX Should be unnecessary with the next release.
+ (add-before
+ 'build 'use-sdl2
+ (lambda _
+ (substitute* "Makefile"
+ (("SDL_CONFIG = (.*)sdl-config" all prefix)
+ (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Z64 video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Z64 video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-ui-console
+ (package
+ (name "mupen64plus-ui-console")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
+ (patches (search-patches "mupen64plus-ui-console-notice.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("sdl2" ,sdl2)))
+ ;; Mupen64Plus supports a single data directory and a single plugin
+ ;; directory in its configuration, yet we need data and plugin files from
+ ;; a variety of packages. The best way to deal with this is to install
+ ;; all packages from which data and plugin files are needed into one's
+ ;; profile, and point the configuration there. Hence, propagate the most
+ ;; important packages here to save the user from the bother. The patch
+ ;; mupen64plus-ui-console-notice also gives users instructions on what
+ ;; they need to do in order to point the configuration to their profile.
+ (propagated-inputs
+ `(("mupen64plus-core" ,mupen64plus-core)
+ ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl)
+ ("mupen64plus-input-sdl" ,mupen64plus-input-sdl)
+ ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle)
+ ("mupen64plus-video-glide64" ,mupen64plus-video-glide64)
+ ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2)
+ ("mupen64plus-video-rice" ,mupen64plus-video-rice)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")
+ ;; Trailing slash matters here.
+ (string-append "COREDIR=" m64p "/lib/")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+command line user interface. Installing this package is the easiest way
+towards a working Mupen64Plus for casual users.")
+ (license license:gpl2+)))
+
+(define-public nestopia-ue
+ (package
+ (name "nestopia-ue")
+ (version "1.47")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/rdanbrook/nestopia/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1dzrrjmvyqks64q5l5pfly80jb6qcsbj5b3dm40fijd5xnpbapci"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; We don't need libretro for the GNU/Linux build.
+ (delete-file-recursively "libretro")
+ ;; Use system zlib.
+ (delete-file-recursively "source/zlib")
+ (substitute* "source/core/NstZlib.cpp"
+ (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ao" ,ao)
+ ("glu" ,glu)
+ ("gtk+" ,gtk+)
+ ("libarchive" ,libarchive)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The Nestopia build system consists solely of a Makefile.
+ (delete 'configure)
+ (add-before 'build 'remove-xdg-desktop-menu-call
+ (lambda _
+ (substitute* "Makefile"
+ (("xdg-desktop-menu install .*") ""))))
+ (add-before 'build 'remove-gdkwayland-include
+ (lambda _
+ (substitute* "source/unix/gtkui/gtkui.h"
+ (("#include <gdk/gdkwayland\\.h>") "")))))
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://0ldsk00l.ca/nestopia/")
+ (synopsis "Nintendo Entertainment System (NES/Famicom) emulator")
+ (description
+ "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment
+System (NES/Famicom) emulator Nestopia, with enhancements from members of the
+emulation community. It provides highly accurate emulation.")
+ (license license:gpl2+)))
+
+(define-public retroarch
+ (package
+ (name "retroarch")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libretro/RetroArch/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0fdribjfc5zz9brzhqcxw6m76kvyg13l67aiigszv4wsjd5j3gpz"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (etc (string-append out "/etc"))
+ (vulkan (assoc-ref inputs "vulkan-icd-loader")))
+ ;; Hard-code the path to libvulkan.so.
+ (substitute* "gfx/common/vulkan_common.c"
+ (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
+ (substitute* "qb/qb.libs.sh"
+ (("/bin/true") (which "true")))
+ ;; The configure script does not yet accept the extra arguments
+ ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
+ (zero? (system*
+ "./configure"
+ (string-append "--prefix=" out)
+ (string-append "--global-config-dir=" etc)))))))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ffmpeg" ,ffmpeg)
+ ("freetype" ,freetype)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxml2" ,libxml2)
+ ("libxv" ,libxv)
+ ("mesa" ,mesa)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("python" ,python)
+ ("sdl" ,sdl2)
+ ("udev" ,eudev)
+ ("vulkan-icd-loader" ,vulkan-icd-loader)
+ ("wayland", wayland)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (home-page "https://www.libretro.com/")
+ (synopsis "Reference frontend for the libretro API")
+ (description
+ "Libretro is a simple but powerful development interface that allows for
+the easy creation of emulators, games and multimedia applications that can plug
+straight into any libretro-compatible frontend. RetroArch is the official
+reference frontend for the libretro API, currently used by most as a modular
+multi-system game/emulator system.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 0ac7d992c9..272e9bce96 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
@@ -14,9 +14,7 @@
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
@@ -1619,69 +1617,6 @@ interactive fiction, also known as text adventures, which were implemented
either by Infocom or created using the Inform compiler.")
(license license:bsd-3)))
-(define-public retroarch
- (package
- (name "retroarch")
- (version "1.7.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/libretro/RetroArch/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0fdribjfc5zz9brzhqcxw6m76kvyg13l67aiigszv4wsjd5j3gpz"))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (etc (string-append out "/etc"))
- (vulkan (assoc-ref inputs "vulkan-icd-loader")))
- ;; Hard-code the path to libvulkan.so.
- (substitute* "gfx/common/vulkan_common.c"
- (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
- (substitute* "qb/qb.libs.sh"
- (("/bin/true") (which "true")))
- ;; The configure script does not yet accept the extra arguments
- ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
- (zero? (system*
- "./configure"
- (string-append "--prefix=" out)
- (string-append "--global-config-dir=" etc)))))))))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("ffmpeg" ,ffmpeg)
- ("freetype" ,freetype)
- ("libxinerama" ,libxinerama)
- ("libxkbcommon" ,libxkbcommon)
- ("libxml2" ,libxml2)
- ("libxv" ,libxv)
- ("mesa" ,mesa)
- ("openal" ,openal)
- ("pulseaudio" ,pulseaudio)
- ("python" ,python)
- ("sdl" ,sdl2)
- ("udev" ,eudev)
- ("vulkan-icd-loader" ,vulkan-icd-loader)
- ("wayland", wayland)
- ("zlib" ,zlib)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (home-page "https://www.libretro.com/")
- (synopsis "Reference frontend for the libretro API")
- (description
- "Libretro is a simple but powerful development interface that allows for
-the easy creation of emulators, games and multimedia applications that can plug
-straight into any libretro-compatible frontend. RetroArch is the official
-reference frontend for the libretro API, currently used by most as a modular
-multi-system game/emulator system.")
- (license license:gpl3+)))
-
(define-public gnugo
(package
(name "gnugo")
@@ -1922,48 +1857,6 @@ next campaign.")
(description "This package contains a dedicated server for @emph{The
Battle for Wesnoth}.")))
-(define-public dosbox
- (package
- (name "dosbox")
- (version "0.74.svn3947")
- (source (origin
- (method svn-fetch)
- (uri (svn-reference
- (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/")
- (revision 3947)))
- (file-name (string-append name "-" version "-checkout"))
- ;; Use SVN head, since the last release (2010) is incompatible
- ;; with GCC 4.8+ (see
- ;; <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=624976>).
- (sha256
- (base32
- "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-after
- 'unpack 'autogen.sh
- (lambda _
- (zero? (system* "sh" "autogen.sh")))))))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)))
- (inputs
- `(("sdl" ,sdl)
- ("libpng" ,libpng)
- ("zlib" ,zlib)
- ("alsa-lib" ,alsa-lib)
- ("glu" ,glu)
- ("mesa" ,mesa)))
- (home-page "http://www.dosbox.com")
- (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound")
- (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox
-also emulates CPU:286/386 realmode/protected mode, Directory
-FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a
-SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
-older games.")
- (license license:gpl2+)))
-
(define-public gamine
(package
(name "gamine")
@@ -2082,638 +1975,6 @@ world}, @uref{http://evolonline.org, Evol Online} and
;; The rest is under GPL2+.
(license (list license:gpl2+ license:zlib license:cc-by-sa4.0))))
-(define-public mupen64plus-core
- (package
- (name "mupen64plus-core")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-core/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("freetype" ,freetype)
- ("glu" ,glu)
- ("libpng" ,libpng)
- ("mesa" ,mesa)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags (let ((out (assoc-ref %outputs "out")))
- (list "all" (string-append "PREFIX=" out)))
- ;; There are no tests.
- #:tests? #f))
- ;; As per the Makefile (in projects/unix/Makefile):
- (supported-systems '("i686-linux" "x86_64-linux"))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Nintendo 64 emulator core library")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-core library.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-audio-sdl
- (package
- (name "mupen64plus-audio-sdl")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-SDL audio plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-input-sdl
- (package
- (name "mupen64plus-input-sdl")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("which" ,which)))
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-SDL input plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-rsp-hle
- (package
- (name "mupen64plus-rsp-hle")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
- (build-system gnu-build-system)
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-high-level emulation (HLE) RSP processor plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-rsp-z64
- (package
- (name "mupen64plus-rsp-z64")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
- (build-system gnu-build-system)
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Z64 RSP processor plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-arachnoid
- (package
- (name "mupen64plus-video-arachnoid")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Arachnoid video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-glide64
- (package
- (name "mupen64plus-video-glide64")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix")))
- ;; XXX Should be unnecessary with the next release.
- (add-before
- 'build 'use-sdl2
- (lambda _
- (substitute* "Makefile"
- (("SDL_CONFIG = (.*)sdl-config" all prefix)
- (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Glide64 video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-glide64mk2
- (package
- (name "mupen64plus-video-glide64mk2")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("boost" ,boost)
- ("libpng" ,libpng)
- ("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Glide64MK2 video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-rice
- (package
- (name "mupen64plus-video-rice")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("libpng" ,libpng)
- ("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Rice Video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-z64
- (package
- (name "mupen64plus-video-z64")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("glew" ,glew)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix")))
- ;; XXX Should be unnecessary with the next release.
- (add-before
- 'build 'use-sdl2
- (lambda _
- (substitute* "Makefile"
- (("SDL_CONFIG = (.*)sdl-config" all prefix)
- (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Z64 video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Z64 video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-ui-console
- (package
- (name "mupen64plus-ui-console")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
- (patches (search-patches "mupen64plus-ui-console-notice.patch"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("sdl2" ,sdl2)))
- ;; Mupen64Plus supports a single data directory and a single plugin
- ;; directory in its configuration, yet we need data and plugin files from
- ;; a variety of packages. The best way to deal with this is to install
- ;; all packages from which data and plugin files are needed into one's
- ;; profile, and point the configuration there. Hence, propagate the most
- ;; important packages here to save the user from the bother. The patch
- ;; mupen64plus-ui-console-notice also gives users instructions on what
- ;; they need to do in order to point the configuration to their profile.
- (propagated-inputs
- `(("mupen64plus-core" ,mupen64plus-core)
- ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl)
- ("mupen64plus-input-sdl" ,mupen64plus-input-sdl)
- ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle)
- ("mupen64plus-video-glide64" ,mupen64plus-video-glide64)
- ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2)
- ("mupen64plus-video-rice" ,mupen64plus-video-rice)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")
- ;; Trailing slash matters here.
- (string-append "COREDIR=" m64p "/lib/")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-command line user interface. Installing this package is the easiest way
-towards a working Mupen64Plus for casual users.")
- (license license:gpl2+)))
-
-(define-public nestopia-ue
- (package
- (name "nestopia-ue")
- (version "1.47")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/rdanbrook/nestopia/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1dzrrjmvyqks64q5l5pfly80jb6qcsbj5b3dm40fijd5xnpbapci"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; We don't need libretro for the GNU/Linux build.
- (delete-file-recursively "libretro")
- ;; Use system zlib.
- (delete-file-recursively "source/zlib")
- (substitute* "source/core/NstZlib.cpp"
- (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("ao" ,ao)
- ("glu" ,glu)
- ("gtk+" ,gtk+)
- ("libarchive" ,libarchive)
- ("mesa" ,mesa)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The Nestopia build system consists solely of a Makefile.
- (delete 'configure)
- (add-before 'build 'remove-xdg-desktop-menu-call
- (lambda _
- (substitute* "Makefile"
- (("xdg-desktop-menu install .*") ""))))
- (add-before 'build 'remove-gdkwayland-include
- (lambda _
- (substitute* "source/unix/gtkui/gtkui.h"
- (("#include <gdk/gdkwayland\\.h>") "")))))
- #:make-flags (let ((out (assoc-ref %outputs "out")))
- (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://0ldsk00l.ca/nestopia/")
- (synopsis "Nintendo Entertainment System (NES/Famicom) emulator")
- (description
- "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment
-System (NES/Famicom) emulator Nestopia, with enhancements from members of the
-emulation community. It provides highly accurate emulation.")
- (license license:gpl2+)))
-
-(define-public emulation-station
- (let ((commit "646bede3d9ec0acf0ae378415edac136774a66c5"))
- (package
- (name "emulation-station")
- (version "2.0.1")
- (source (origin
- (method git-fetch) ; no tarball available
- (uri (git-reference
- (url "https://github.com/Aloshi/EmulationStation.git")
- (commit commit))) ; no version tag
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"))))
- (build-system cmake-build-system)
- (arguments
- '(#:tests? #f)) ; no tests
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("boost" ,boost)
- ("curl" ,curl)
- ("eigin" ,eigen)
- ("freeimage" ,freeimage)
- ("freetype" ,freetype)
- ("mesa" ,mesa)
- ("sdl2" ,sdl2)))
- (synopsis "Video game console emulator front-end")
- (description "EmulationStation provides a graphical front-end to a large
-number of video game console emulators. It features an interface that is
-usable with any game controller that has at least 4 buttons, theming support,
-and a game metadata scraper.")
- (home-page "http://www.emulationstation.org")
- (license license:expat))))
-
(define openttd-engine
(package
(name "openttd-engine")
@@ -3055,39 +2316,6 @@ players.")
(home-page "http://pio.sourceforge.net/")
(license license:gpl2+)))
-(define-public desmume
- (package
- (name "desmume")
- (version "0.9.11")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/desmume/desmume/"
- version "/desmume-" version ".tar.gz"))
- (sha256
- (base32
- "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))))
- (build-system gnu-build-system)
- (arguments
- ;; Enable support for WiFi and microphone.
- `(#:configure-flags '("--enable-wifi"
- "--enable-openal")))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("intltool" ,intltool)))
- (inputs
- `(("zlib" ,zlib)
- ("sdl" ,sdl)
- ("glib" ,glib)
- ("gtk+" ,gtk+-2)
- ("glu" ,glu)))
- (home-page "http://desmume.org/")
- (synopsis "Nintendo DS emulator")
- (description
- "DeSmuME is an emulator for the Nintendo DS handheld gaming console.")
- (license license:gpl2)))
-
(define-public einstein
(package
(name "einstein")
@@ -3343,155 +2571,6 @@ Red Eclipse provides fast paced and accessible gameplay.")
license:cc-by3.0
license:cc0)))))
-(define-public higan
- (package
- (name "higan")
- (version "106")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://gitlab.com/higan/higan/repository/archive.tar.gz?ref=v"
- version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0y42pra0dxzlbkyzcp3r8a39pji2bj3p9fl40425f60af2igr4rw"))
- (patches (search-patches "higan-remove-march-native-flag.patch"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("ao" ,ao)
- ("eudev" ,eudev)
- ("gtk+" ,gtk+-2)
- ("gtksourceview-2" ,gtksourceview-2)
- ("libxv" ,libxv)
- ("mesa" ,mesa)
- ("openal" ,openal)
- ("pulseaudio" ,pulseaudio)
- ("sdl" ,sdl)))
- (arguments
- '(#:phases
- (let ((build-phase (assoc-ref %standard-phases 'build))
- (install-phase (assoc-ref %standard-phases 'install)))
- (modify-phases %standard-phases
- ;; The higan build system has no configure phase.
- (delete 'configure)
- (add-before 'build 'chdir-to-higan
- (lambda _
- (chdir "higan")))
- (add-before 'install 'create-/share/applications
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; It seems the author forgot to do this in the Makefile.
- (mkdir-p (string-append out "/share/applications")))))
- (add-after 'install 'chdir-to-icarus
- (lambda _
- (chdir "../icarus")))
- (add-after 'chdir-to-icarus 'build-icarus build-phase)
- (add-after 'build-icarus 'install-icarus install-phase)
- (add-after 'install-icarus 'wrap-higan-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (higan (string-append bin "/higan"))
- (higan-original (string-append higan "-original"))
- (bash (string-append (assoc-ref inputs "bash")
- "/bin/bash"))
- (coreutils (assoc-ref inputs "coreutils"))
- (mkdir (string-append coreutils "/bin/mkdir"))
- (cp (string-append coreutils "/bin/cp"))
- (cp-r (string-append cp " -r --no-preserve=mode")))
- ;; First, have the executable make sure ~/.local/share/higan
- ;; contains up to date files. Higan insists on looking there
- ;; for these data files.
- (rename-file higan higan-original)
- (with-output-to-file higan
- (lambda ()
- (display
- (string-append
- "#!" bash "\n"
- ;; higan doesn't respect $XDG_DATA_HOME
- mkdir " -p ~/.local/share\n"
- cp-r " " out "/share/higan ~/.local/share\n"
- "exec " higan-original))))
- (chmod higan #o555)
- ;; Second, make sure higan will find icarus in PATH.
- (wrap-program higan
- `("PATH" ":" prefix (,bin))))))))
- #:make-flags
- (list "compiler=g++"
- (string-append "prefix=" (assoc-ref %outputs "out")))
- ;; There is no test suite.
- #:tests? #f))
- (home-page "http://byuu.org/emulation/higan/")
- (synopsis "Nintendo multi-system emulator")
- (description
- "higan (formerly bsnes) is an emulator for multiple Nintendo video game
-consoles, including the Nintendo Entertainment System (NES/Famicom), Super
-Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy
-Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems
-Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
- ;; As noted in these files among more:
- ;; - icarus/icarus.cpp
- ;; - higan/emulator/emulator.hpp
- (license license:gpl3)))
-
-(define-public mgba
- (package
- (name "mgba")
- (version "0.6.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/mgba-emu/mgba/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w"))
- (modules '((guix build utils)))
- (snippet
- ;; Make sure we don't use the bundled software.
- '(for-each
- (lambda (subdir)
- (let ((lib-subdir (string-append "src/third-party/" subdir)))
- (delete-file-recursively lib-subdir)))
- '("libpng" "lzma" "sqlite3" "zlib")))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ;no "test" target
- #:configure-flags
- (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
- "-DUSE_LIBZIP=OFF" ;use "zlib" instead
- (string-append "-DCMAKE_INSTALL_LIBDIR="
- (assoc-ref %outputs "out") "/lib"))))
- (native-inputs `(("pkg-config" ,pkg-config)))
- (inputs `(("ffmpeg" ,ffmpeg)
- ("imagemagick" ,imagemagick)
- ("libedit" ,libedit)
- ("libepoxy" ,libepoxy)
- ("libpng" ,libpng)
- ("mesa" ,mesa)
- ("minizip" ,minizip)
- ("ncurses" ,ncurses)
- ("qtbase" ,qtbase)
- ("qtmultimedia" ,qtmultimedia)
- ("qttools" ,qttools)
- ("sdl2" ,sdl2)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)))
- (home-page "https://mgba.io")
- (synopsis "Game Boy Advance emulator")
- (description
- "mGBA is an emulator for running Game Boy Advance games. It aims to be
-faster and more accurate than many existing Game Boy Advance emulators, as
-well as adding features that other emulators lack. It also supports Game Boy
-and Game Boy Color games.")
- ;; Code is mainly MPL 2.0. "blip_buf.c" is LGPL 2.1+ and "inih.c" is
- ;; BSD-3.
- (license (list license:mpl2.0 license:lgpl2.1+ license:bsd-3))))
-
(define-public grue-hunter
(package
(name "grue-hunter")
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index d75416415c..9014cc3206 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2017 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2017, 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -43,6 +43,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages webkit)
+ #:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml))
(define-public geos
@@ -153,6 +154,36 @@ and driving.")
(home-page "https://wiki.gnome.org/Apps/Maps")
(license license:gpl2+)))
+(define-public libgaiagraphics
+ (package
+ (name "libgaiagraphics")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.gaia-gis.it/gaia-sins/libgaiagraphics-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "076afqv417ag3hfvnif0qc7qscmnq1dsf6y431yygwgf34rjkayc"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("libpng" ,libpng)
+ ("libjepeg-turbo" ,libjpeg-turbo)
+ ("libtiff" ,libtiff)
+ ("libgeotiff" ,libgeotiff)
+ ("proj.4" ,proj.4)
+ ("libxml2" ,libxml2)
+ ("zlib" ,zlib)))
+ (synopsis "Gaia common graphics support")
+ (description "libgaiagraphics is a library supporting
+ common-utility raster handling methods.")
+ (home-page "https://www.gaia-gis.it/fossil/libgaiagraphics/index")
+ (license license:lgpl3+)))
+
(define-public libgeotiff
(package
(name "libgeotiff")
@@ -202,6 +233,54 @@ writing GeoTIFF information tags.")
(license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution.")))))
+(define-public libspatialite
+ (package
+ (name "libspatialite")
+ (version "4.3.0a")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.gaia-gis.it/gaia-sins/libspatialite-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "16d4lpl7xrm9zy4gphy6nwanpjp8wn9g4wq2i2kh8abnlhq01448"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("freexl" ,freexl)
+ ("geos" ,geos)
+ ("libxml2" ,libxml2)
+ ("proj.4" ,proj.4)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; 3 tests are failing, ignore them:
+ (add-after 'unpack 'ignore-broken-tests
+ (lambda _
+ (substitute* '("test/Makefile.in")
+ (("\tcheck_sql_stm.*" all) "\tcheck_multithread$(EXEEXT) \\\n")
+ (("(\tch.*) check_v.*ble2.*$" all vt1) (string-append vt1 " \\\n"))
+ (("\tch.* (check_v.*ble4.*)$" all vt4) (string-append "\t" vt4)))
+ #t)))))
+ (synopsis "Extend SQLite to support Spatial SQL capabilities")
+ (description
+ "SpatiaLite is a library intended to extend the SQLite core to support
+fully fledged Spatial SQL capabilities.")
+ (home-page "https://www.gaia-gis.it/fossil/libspatialite/index")
+ ;; For the genuine libspatialite-sources holds:
+ ;; Any of the licenses MPL1.1, GPL2+ or LGPL2.1+ may be picked.
+ ;; Files under src/control_points are from GRASS
+ ;; and are licensed under GPL2+ only.
+ ;; src/md5.[ch]: Placed into the public domain by Alexander Peslyak.
+ (license (list license:gpl2+
+ license:lgpl2.1+
+ license:mpl1.1
+ license:public-domain))))
+
(define-public proj.4
(package
(name "proj.4")
@@ -378,3 +457,36 @@ development.")
(synopsis "Python bindings for Mapnik")
(description "This package provides Python bindings for Mapnik.")
(license license:lgpl2.1+)))
+
+(define-public spatialite-gui
+ (package
+ (name "spatialite-gui")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.gaia-gis.it/gaia-sins/spatialite_gui-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1r05dz9pyc8vsd2wbqxcsracpfbaamz470rcyp2myfpqwznv376b"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("freexl" ,freexl)
+ ("geos" ,geos)
+ ("libgaiagraphics" ,libgaiagraphics)
+ ("libspatialite" ,libspatialite)
+ ("libxml2" ,libxml2)
+ ("proj.4" ,proj.4)
+ ("sqlite" ,sqlite)
+ ("wxwidgets" ,wxwidgets-2)
+ ("zlib" ,zlib)))
+ (synopsis "Graphical user interface for SpatiaLite")
+ (description "Spatialite-gui provides a visual interface for viewing and
+ maintaining a spatialite database. You can easily see the structure of the
+ tables and data contents using point and click functions, many of which
+ construct common SQL queries, or craft your own SQL queries.")
+ (home-page "https://www.gaia-gis.it/fossil/spatialite_gui/index")
+ (license license:gpl3+)))
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 51b772a586..f14ca27810 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -198,7 +198,7 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
("texlive" ,texlive-tiny) ;for tests
("libxml2" ,libxml2)
("xsltproc" ,libxslt)))
- (home-page "http://po4a.alioth.debian.org/")
+ (home-page "https://po4a.org/")
(synopsis "Scripts to ease maintenance of translations")
(description
"The po4a (PO for anything) project goal is to ease translations (and
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index cb65c9a286..6ce7fbc9b8 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -428,14 +428,14 @@ from software emulation to complete hardware acceleration for modern GPUs.")
(define (mesa-demos-source version)
(origin
(method url-fetch)
- (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/demos/" version
+ (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/demos"
"/mesa-demos-" version ".tar.bz2"))
- (sha256 (base32 "1vqb7s5m3fcg2csbiz45mha1pys2xx6rhw94fcyvapqdpm5iawy1"))))
+ (sha256 (base32 "0zgzbz55a14hz83gbmm0n9gpjnf5zadzi2kjjvkn6khql2a9rs81"))))
(define-public mesa-utils
(package
(name "mesa-utils")
- (version "8.3.0")
+ (version "8.4.0")
(source (mesa-demos-source version))
(build-system gnu-build-system)
(inputs
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fcbb7f31a8..c45c821a91 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2449,7 +2449,7 @@ libxml to ease remote use of the RESTful API.")
(define-public libsoup
(package
(name "libsoup")
- (version "2.60.2")
+ (version "2.60.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsoup/"
@@ -2457,7 +2457,7 @@ libxml to ease remote use of the RESTful API.")
name "-" version ".tar.xz"))
(sha256
(base32
- "00fsy12mz9b55algq7c6gk4xj5j6a5z6dxcnq59fdqkji3hwyqvj"))))
+ "08lawrdkkzycvpb1h0wfiqfz6dgx77jp0wxp546lxgisy9icf38v"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 16685f6986..eeab5c5afd 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -214,14 +214,14 @@ compatible to GNU Pth.")
(define-public gnupg
(package
(name "gnupg")
- (version "2.2.4")
+ (version "2.2.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "1v7j8v2ww1knknbrhw3svfrqkmf9ll58iq0dczbsdpqgg1j3w6j0"))))
+ "0mzgibq4dpxh3i9anmwg12xdjry28y83icafhx3j3djg5niqk89z"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 9052a34e96..93114d8e07 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
@@ -1091,29 +1091,28 @@ installed as @code{stb_image}.")
(define-public optipng
(package
(name "optipng")
- (version "0.7.6")
+ (version "0.7.7")
(source
(origin
(method url-fetch)
(uri (string-append "http://prdownloads.sourceforge.net/optipng/optipng-"
version ".tar.gz"))
- (patches (search-patches "optipng-CVE-2017-1000229.patch"))
(sha256
(base32
- "105yk5qykvhiahzag67gm36s2kplxf6qn5hay02md0nkrcgn6w28"))))
+ "0lj4clb851fzpaq446wgj0sfy922zs5l5misbpwv6w7qrqrz4cjg"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
(arguments
'(#:phases
(modify-phases %standard-phases
- ;; configure script does not accept arguments CONFIG_SHELL and SHELL
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "sh" "configure"
- (string-append "--prefix=" (assoc-ref outputs "out")))))))))
- (synopsis "Optimizer that recompresses PNG image files to a
-smaller size")
+ ;; configure script doesn't accept arguments CONFIG_SHELL and SHELL
+ (invoke "sh" "configure"
+ (string-append "--prefix=" (assoc-ref outputs "out")))
+ #t)))))
+ (synopsis "Optimizer that recompresses PNG image files to a smaller size")
(description "OptiPNG is a PNG optimizer that recompresses image
files to a smaller size, without losing any information. This program
also converts external formats (BMP, GIF, PNM and TIFF) to optimized
diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 8fe59679f8..aca2cab0a2 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -41,14 +41,14 @@
(define-public rdmd
(package
(name "rdmd")
- (version "2.073.0")
+ (version "2.077.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "01if3ivnb7g2myfhymp4d9346s4vmvcl82i1kxfs5iza45almh7v"))))
+ "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -58,7 +58,7 @@
(replace
'build
(lambda _
- (zero? (system* "ldc2" "rdmd.d"))))
+ (invoke "ldc2" "rdmd.d")))
(replace
'install
(lambda* (#:key outputs #:allow-other-keys)
@@ -77,7 +77,6 @@ and freshness without requiring additional information from the user.")
(license license:boost1.0)))
(define-public ldc-bootstrap
- (let ((runtime-version "0.17.3"))
(package
(name "ldc")
(version "0.17.4")
@@ -92,6 +91,10 @@ and freshness without requiring additional information from the user.")
"1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
(build-system cmake-build-system)
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
+ (properties
+ ;; Some of the tests take a very long time on ARMv7. See
+ ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
+ `((max-silent-time . ,(* 3600 3))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -120,12 +123,15 @@ and freshness without requiring additional information from the user.")
(("echo") (which "echo")))
(substitute* "runtime/phobos/std/datetime.d"
(("/usr/share/zoneinfo/")
- (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
+ (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
+ (("tzName == \"[+]VERSION\"")
+ "(tzName == \"+VERSION\" || std.algorithm.endsWith(tzName, \"/leapseconds\"))"))
(substitute* "tests/d2/dmd-testsuite/Makefile"
(("/bin/bash") (which "bash")))
;; FIXME: this test cannot be linked.
(delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
- #t)))))
+ ;; the following two tests fail on i686
+ (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d")))))))
(inputs
`(("libconfig" ,libconfig)
("libedit" ,libedit)
@@ -142,59 +148,51 @@ and freshness without requiring additional information from the user.")
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v"
- runtime-version ".tar.gz"))
+ version ".tar.gz"))
(sha256
(base32
- "0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl"))
- (patches (search-patches "ldc-disable-tests.patch"))))
+ "16x36kp46mqiihxx7jvr1d3mv3b96yfmhinb9lzinh2m4clr85wz"))
+ (patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/druntime/archive/ldc-v"
- runtime-version ".tar.gz"))
+ version ".tar.gz"))
(sha256
(base32
- "0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs"))))
+ "0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
- runtime-version ".tar.gz"))
+ version ".tar.gz"))
(sha256
(base32
- "196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x"))))))
-
- (properties
- ;; Some of the tests take a very long time on ARMv7. See
- ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
- `((max-silent-time . ,(* 3600 3))))
-
+ "0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
(home-page "http://wiki.dlang.org/LDC")
(synopsis "LLVM compiler for the D programming language")
(description
- "LDC is a compiler for the D programming language. It is based on the
-latest DMD frontend and uses LLVM as backend.")
+ "LDC is a compiler for the D programming language. It is based on
+the latest DMD compiler that was written in C and is used for
+bootstrapping more recent compilers written in D.")
;; Most of the code is released under BSD-3, except for code originally
;; written for GDC, which is released under GPLv2+, and the DMD frontend,
;; which is released under the "Boost Software License version 1.0".
(license (list license:bsd-3
license:gpl2+
- license:boost1.0)))))
+ license:boost1.0))))
(define-public ldc
- ;; The phobos, druntime and dmd-testsuite dependencies do not have a newer
- ;; release than 1.1.0-beta4, hence the need to make use of the older-version
- ;; variable to hold this variable.
- (let ((older-version "1.1.0"))
+ ;; Phobos, druntime and dmd-testsuite library dependencies do
+ ;; not always have a newer release than the compiler, hence we
+ ;; retain this variable.
+ (let ((older-version "1.7.0"))
(package
(inherit ldc-bootstrap)
(name "ldc")
- (version "1.1.1")
- ;; Beta version needed to compile various scientific tools that require
- ;; the newer beta versions, and won't compile successfully with the
- ;; older stable version.
+ (version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -203,7 +201,7 @@ latest DMD frontend and uses LLVM as backend.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0yjiwg8pnlm2286bwdkwasaqw6ys7lymrqvhh5xyb1adha1ndcav"))))
+ "0rqchmlbhz1pd8ksl1vfhfd5s3cp9h9pqi4k4w2np9sq0zr7abwn"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -217,20 +215,36 @@ latest DMD frontend and uses LLVM as backend.")
(and (unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
- ;; The 'patch-dmd2 step in ldc causes the build to fail since
- ;; dmd2/root/port.c no longer exists. Arguments needed to have
- ;; 'patch-dmd2 step removed, but retain everything else.
(add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "runtime/phobos/std/process.d"
+ (substitute* '("runtime/phobos/std/process.d"
+ "tests/linking/linker_switches.d")
(("/bin/sh") (which "sh"))
(("echo") (which "echo")))
- (substitute* "runtime/phobos/std/datetime.d"
- (("/usr/share/zoneinfo/")
- (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
(substitute* "tests/d2/dmd-testsuite/Makefile"
- (("/bin/bash") (which "bash")))
- #t)))))
+ (("/bin/bash") (which "bash")))
+ ;; disable unittests in the following files. We are discussing with
+ ;; upstream
+ (substitute* '("runtime/phobos/std/net/curl.d"
+ "runtime/phobos/std/datetime/systime.d"
+ "runtime/phobos/std/datetime/timezone.d"
+ )
+ (("version(unittest)") "version(skipunittest)")
+ ((" unittest") " version(skipunittest) unittest"))
+ ;; the following tests require a more recent LLVM
+ (delete-file "tests/compilable/ctfe_math.d")
+ (delete-file "tests/debuginfo/nested_gdb.d")
+ (delete-file "tests/debuginfo/classtypes_gdb.d")
+ ;; the following tests requires AVX instruction set in the CPU.
+ (substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
+ (("^// DISABLED: ") "^// DISABLED: linux64 "))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; some tests call into gdb binary which needs SHELL and CC set
+ (setenv "SHELL" (which "sh"))
+ (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+ (invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
(native-inputs
`(("llvm" ,llvm)
("clang" ,clang)
@@ -247,7 +261,7 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
- "0z5v55b9s1ppf0c2ivjq7sbmq688c37c92ihc3qwrbxnqvkkvrlk"))
+ "042hn3v0zk353r0h6yclq56z86hi437y969bckyb2qsnv00h60hi"))
;; This patch deactivates some tests that depend on network access
;; to pass. It also deactivates some tests that have some reliance
;; on timezone.
@@ -257,7 +271,7 @@ latest DMD frontend and uses LLVM as backend.")
;; that is being pursued at
;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>.
;; It also deactivates a test that requires /root
- (patches (search-patches "ldc-1.1.0-disable-phobos-tests.patch"))))
+ (patches (search-patches "ldc-1.7.0-disable-phobos-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
@@ -266,7 +280,7 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
- "07qvrqj6vgakd6qr4x5f70w6zwkzd1li5x8i1b5ywnds1z5lnfp6"))))
+ "0pvabk70zw8c1gbmvy2i486bg22bn0l5nbacjz0qwmhf0w9y9ylh"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
@@ -275,18 +289,12 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
- "12cak7yqmsgjlflx0dp6fwmwb9dac25amgi86n0bb95ard3547wy"))
- ;; Remove the gdb tests that fails with a "Error: No such file or
- ;; directory" error, despite the files being present in the debug
- ;; files left with the --keep-failed flag to guix build.
- (patches (search-patches "ldc-1.1.0-disable-dmd-tests.patch")))))))))
-
-(define-public ldc-beta ldc)
+ "1i8j1raah7b26bprwkdick443ivdsihgi1l14sn9rh4a95rnrpd9")))))))))
(define-public dub
(package
(name "dub")
- (version "1.5.0")
+ (version "1.7.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/dub/archive/"
@@ -294,7 +302,7 @@ latest DMD frontend and uses LLVM as backend.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1p9pmzjsmd7v3jpilv0z0c8ar1ykvri6nn5fv95f8d2vriczj29m"))))
+ "1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
@@ -303,7 +311,7 @@ latest DMD frontend and uses LLVM as backend.")
(delete 'configure) ; no configure script
(replace 'build
(lambda _
- (zero? (system* "./build.sh"))))
+ (invoke "./build.sh")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -317,10 +325,12 @@ latest DMD frontend and uses LLVM as backend.")
(home-page "https://code.dlang.org/getting_started")
(synopsis "Package and build manager for D projects")
(description
- "DUB is a package and build manager for applications and libraries written
-in the D programming language. It can automatically retrieve a project's
-dependencies and integrate them in the build process.
+ "DUB is a package and build manager for applications and
+libraries written in the D programming language. It can
+automatically retrieve a project's dependencies and integrate
+them in the build process.
-The design emphasis is on maximum simplicity for simple projects, while
-providing the opportunity to customize things when needed. ")
+The design emphasis is on maximum simplicity for simple projects,
+while providing the opportunity to customize things when
+needed.")
(license license:expat)))
diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm
new file mode 100644
index 0000000000..2ef2108df2
--- /dev/null
+++ b/gnu/packages/license.scm
@@ -0,0 +1,160 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;;
+;;; 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 license)
+ #:use-module (guix licenses)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system perl)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages perl-check))
+
+;;;
+;;; Please: Try to add new module packages in alphabetic order.
+;;;
+
+(define-public perl-regexp-pattern-license
+ (package
+ (name "perl-regexp-pattern-license")
+ (version "3.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JO/JONASS/Regexp-Pattern-License-"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1479ismcgq1mx712yhw0qswb4z75spc81f9k621vfpkji0smpyk2"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-regexp-pattern" ,perl-regexp-pattern)
+ ("perl-test-exception" ,perl-test-exception)))
+ (propagated-inputs
+ `(("perl-strictures" ,perl-strictures-2)))
+ (home-page "http://search.cpan.org/dist/Regexp-Pattern-License/")
+ (synopsis "Regular expressions for legal licenses")
+ (description "Regexp::Pattern::License provides a hash of regular
+expression patterns related to legal software licenses.
+
+Regexp::Pattern is a convention for organizing reusable regex patterns.")
+ (license gpl3+)))
+
+(define-public perl-string-copyright
+ (package
+ (name "perl-string-copyright")
+ (version "0.003005")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JO/JONASS/String-Copyright-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "12c6x4c10gr46ryc3dpwgfi6wggmgy4a1ls2hwhcpdm3wvzy5619"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-number-range" ,perl-number-range)))
+ (propagated-inputs
+ `(("perl-exporter-tiny" ,perl-exporter-tiny)))
+ (home-page "http://search.cpan.org/dist/String-Copyright/")
+ (synopsis "Representation of text-based copyright statements")
+ (description "String::Copyright Parses common styles of copyright
+statements and serializes in normalized format.")
+ (license gpl3+)))
+
+(define-public perl-software-license
+ (package
+ (name "perl-software-license")
+ (version "0.103013")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/L/LE/LEONT/Software-License-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1wqgh7vdlc966amlrq0b2szz18lnrl9rfh8wlf7v0hqg74vxjh96"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-try-tiny" ,perl-try-tiny)))
+ (propagated-inputs
+ `(("perl-data-section" ,perl-data-section)
+ ("perl-text-template" ,perl-text-template)))
+ (home-page "http://search.cpan.org/dist/Software-License/")
+ (synopsis "Templated software licenses")
+ (description "This package provides templated software licenses.")
+ (license (package-license perl))))
+
+(define-public licensecheck
+ (package
+ (name "licensecheck")
+ (version "3.0.33")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JO/JONASS/App-Licensecheck-"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32
+ "0wydxb2jks1k3bxkcp7p0pazh5v3awbbcf6haplvwzkkayszhgs4"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-regexp-pattern" ,perl-regexp-pattern)
+ ("perl-software-license" ,perl-software-license)
+ ("perl-test-requires" ,perl-test-requires)
+ ("perl-test-roo" ,perl-test-roo)
+ ("perl-test-script" ,perl-test-script)
+ ("perl-universal-require" ,perl-universal-require)
+ ("perl-number-range" ,perl-number-range)
+ ("perl-sub-quote" ,perl-sub-quote)))
+ (propagated-inputs
+ `(("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
+ ("perl-moo" ,perl-moo-2)
+ ("perl-namespace-clean" ,perl-namespace-clean)
+ ("perl-path-iterator-rule" ,perl-path-iterator-rule)
+ ("perl-path-tiny" ,perl-path-tiny)
+ ("perl-pod-constants" ,perl-pod-constants)
+ ("perl-regexp-pattern-license" ,perl-regexp-pattern-license)
+ ("perl-sort-key" ,perl-sort-key)
+ ("perl-strictures" ,perl-strictures-2)
+ ("perl-string-copyright" ,perl-string-copyright)
+ ("perl-string-escape" ,perl-string-escape)
+ ("perl-try-tiny" ,perl-try-tiny)
+ ("perl-module-runtime" ,perl-module-runtime)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (perllib (string-append out "/lib/perl5/site_perl/"
+ ,(package-version perl))))
+ (wrap-program (string-append out "/bin/licensecheck")
+ `("PERL5LIB" ":"
+ prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
+ #t))))))
+ (home-page "http://search.cpan.org/dist/App-Licensecheck/")
+ (synopsis "License checker for source files")
+ (description "Licensecheck attempts to determine the license that applies
+to each file passed to it, by searching the start of the file for text
+belonging to various licenses.")
+ (license (package-license perl))))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 6ee78b457e..09c84e2e10 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -383,8 +383,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.15.4")
-(define %linux-libre-hash "0dg5b2vgp2ph0l63cxyq6bz05hvc90wab05f8y3a8731c9xsxmzq")
+(define %linux-libre-version "4.15.5")
+(define %linux-libre-hash "1vrqya5zkhzl37fpj5v0v1igm7jf2gi13apkpak90l51xiw592cs")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -392,8 +392,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.20")
-(define %linux-libre-4.14-hash "1xc5g2kq3wpn6i61rpypnlb0f82f05b8jac2lg62rv4v46bsvfwv")
+(define %linux-libre-4.14-version "4.14.21")
+(define %linux-libre-4.14-hash "07d27mph514jxxkzil4b3c848ywfd4r4js0wl5wsfy7a3j757278")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@@ -402,14 +402,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.82"
- "1x2hbn2kf7ikgdiqwj2d6d0s1pa1xh4xywliyj3rfsilanny2ipw"
+ (make-linux-libre "4.9.83"
+ "09mw2r2fbn0g6xfhyxk0n54c7sg0vk9nlp7k2ca3v0v24n7lrfza"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.116"
- "00y5xhgqiyf7ivivnphwvkjgszk8rzn4s8q3sgshswz3kdic55hj"
+ (make-linux-libre "4.4.117"
+ "1mlq9npyriwj0wpj24zah55bkxil31l182ypbn6b3x4yvmr8lhz0"
%intel-compatible-systems
#:configuration-file kernel-config))
@@ -1089,7 +1089,7 @@ external rate conversion.")
(define-public iptables
(package
(name "iptables")
- (version "1.6.1")
+ (version "1.6.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1097,7 +1097,7 @@ external rate conversion.")
version ".tar.bz2"))
(sha256
(base32
- "1x8c9y340x79djsq54bc1674ryv59jfphrk4f88i7qbvbnyxghhg"))))
+ "0crp0lvh5m2f15pr8cw97h8yb8zjj10x95zj06j46cr68vx2vl2m"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1111,14 +1111,17 @@ external rate conversion.")
#:configure-flags ; add $libdir to the RUNPATH of executables
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
(home-page "https://www.netfilter.org/projects/iptables/index.html")
- (synopsis "Program to configure the Linux IP packet filtering rules")
+ (synopsis "Programs to configure Linux IP packet filtering rules")
(description
- "iptables is the userspace command line program used to configure the
-Linux 2.4.x and later IPv4 packet filtering ruleset (firewall). It is targeted at
-system administrators. Since Network Address Translation is also configured
-from the packet filter ruleset, iptables is used for this, too. The iptables
-package also includes ip6tables. ip6tables is used for configuring the IPv6
-packet filter.")
+ "@command{iptables} is the user-space command line program used to
+configure the Linux 2.4.x and later IPv4 packet filtering ruleset
+(@dfn{firewall}), including @dfn{NAT} (Network Address Translation).
+
+This package also includes @command{ip6tables}, which is used to configure the
+IPv6 packet filter.
+
+Both commands are targeted at system administrators.
+")
(license license:gpl2+)))
(define-public ebtables
diff --git a/gnu/packages/lout.scm b/gnu/packages/lout.scm
index 1a1d0b3274..ac66b4ecfc 100644
--- a/gnu/packages/lout.scm
+++ b/gnu/packages/lout.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,91 +25,81 @@
#:use-module (gnu packages ghostscript))
(define-public lout
- ;; This one is a bit tricky, because it doesn't follow the GNU Build System
- ;; rules. Instead, it has a makefile that has to be patched to set the
- ;; prefix, etc., and it has no makefile rules to build its doc.
- (let ((configure-phase
- '(lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (substitute* "makefile"
- (("^PREFIX[[:blank:]]*=.*$")
- (string-append "PREFIX = " out "\n"))
- (("^LOUTLIBDIR[[:blank:]]*=.*$")
- (string-append "LOUTLIBDIR = " out "/lib/lout\n"))
- (("^LOUTDOCDIR[[:blank:]]*=.*$")
- (string-append "LOUTDOCDIR = " doc "/share/doc/lout\n"))
- (("^MANDIR[[:blank:]]*=.*$")
- (string-append "MANDIR = " out "/man\n")))
- (mkdir out)
- (mkdir (string-append out "/bin"))
- (mkdir (string-append out "/lib"))
- (mkdir (string-append out "/man"))
- (mkdir-p (string-append doc "/share/doc/lout")))))
- (install-man-phase
- '(lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "make" "installman"))))
- (doc-phase
- '(lambda* (#:key outputs #:allow-other-keys)
- (define out
- (assoc-ref outputs "doc"))
-
- (setenv "PATH"
- (string-append (assoc-ref outputs "out")
- "/bin:" (getenv "PATH")))
- (chdir "doc")
- (every (lambda (doc)
- (format #t "doc: building `~a'...~%" doc)
- (with-directory-excursion doc
- (let ((file (string-append out "/share/doc/lout/"
- doc ".ps")))
- (and (or (file-exists? "outfile.ps")
- (zero? (system* "lout" "-r4" "-o"
- "outfile.ps" "all")))
- (begin
- (copy-file "outfile.ps" file)
- #t)
- (zero? (system* "ps2pdf"
- "-dPDFSETTINGS=/prepress"
- "-sPAPERSIZE=a4"
- file
- (string-append out "/share/doc/lout/"
- doc ".pdf")))))))
- '("design" "expert" "slides" "user")))))
- (package
+ (package
(name "lout")
(version "3.40")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/lout/lout-"
- version ".tar.gz"))
- (sha256
- (base32
- "1gb8vb1wl7ikn269dd1c7ihqhkyrwk19jwx5kd0rdvbk6g7g25ix"))))
- (build-system gnu-build-system) ; actually, just a makefile
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/lout/lout-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1gb8vb1wl7ikn269dd1c7ihqhkyrwk19jwx5kd0rdvbk6g7g25ix"))))
+ (build-system gnu-build-system) ; actually, just a makefile
(outputs '("out" "doc"))
(native-inputs
`(("ghostscript" ,ghostscript)))
- (arguments `(#:modules ((guix build utils)
- (guix build gnu-build-system)
- (srfi srfi-1)) ; we need SRFI-1
- #:tests? #f ; no "check" target
-
- ;; Customize the build phases.
- #:phases (alist-replace
- 'configure ,configure-phase
-
- (alist-cons-after
- 'install 'install-man-pages
- ,install-man-phase
-
- (alist-cons-after
- 'install 'install-doc
- ,doc-phase
- %standard-phases)))))
+ (arguments
+ `(#:modules ((guix build utils)
+ (guix build gnu-build-system)
+ (srfi srfi-1)) ; we need SRFI-1
+ #:tests? #f ; no "check" target
+ #:phases
+ (modify-phases %standard-phases
+ ;; This package is a bit tricky, because it doesn't follow the GNU
+ ;; Build System rules. Instead, it has a makefile that has to be
+ ;; patched to set the prefix, etc., and it has no makefile rules to
+ ;; build its documentation.
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (substitute* "makefile"
+ (("^PREFIX[[:blank:]]*=.*$")
+ (string-append "PREFIX = " out "\n"))
+ (("^LOUTLIBDIR[[:blank:]]*=.*$")
+ (string-append "LOUTLIBDIR = " out "/lib/lout\n"))
+ (("^LOUTDOCDIR[[:blank:]]*=.*$")
+ (string-append "LOUTDOCDIR = " doc "/share/doc/lout\n"))
+ (("^MANDIR[[:blank:]]*=.*$")
+ (string-append "MANDIR = " out "/man\n")))
+ (mkdir out)
+ (mkdir (string-append out "/bin"))
+ (mkdir (string-append out "/lib"))
+ (mkdir (string-append out "/man"))
+ (mkdir-p (string-append doc "/share/doc/lout"))
+ #t)))
+ (add-after 'install 'install-man-pages
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "make" "installman")
+ #t))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "doc")))
+ (setenv "PATH"
+ (string-append (assoc-ref outputs "out")
+ "/bin:" (getenv "PATH")))
+ (with-directory-excursion "doc"
+ (every (lambda (doc)
+ (format #t "doc: building `~a'...~%" doc)
+ (with-directory-excursion doc
+ (let ((file (string-append out "/share/doc/lout/"
+ doc ".ps")))
+ (unless (file-exists? "outfile.ps")
+ (invoke "lout" "-r4" "-o"
+ "outfile.ps" "all"))
+ (copy-file "outfile.ps" file)
+ (invoke "ps2pdf"
+ "-dPDFSETTINGS=/prepress"
+ "-sPAPERSIZE=a4"
+ file
+ (string-append out "/share/doc/lout/"
+ doc ".pdf")))))
+ '("design" "expert" "slides" "user")))
+ #t))))))
(synopsis "Document layout system")
(description
-"The Lout document formatting system reads a high-level description of
+ "The Lout document formatting system reads a high-level description of
a document similar in style to LaTeX and produces a PostScript or plain text
output file.
@@ -124,4 +115,4 @@ TeX macros because Lout is a high-level, purely functional language, the
outcome of an eight-year research project that went back to the
beginning.")
(license gpl3+)
- (home-page "https://savannah.nongnu.org/projects/lout/"))))
+ (home-page "https://savannah.nongnu.org/projects/lout/")))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index d7e76ac3e5..6e8f9a74ae 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -907,7 +907,7 @@ and search library.")
(define-public getmail
(package
(name "getmail")
- (version "5.4")
+ (version "5.5")
(source
(origin
(method url-fetch)
@@ -915,7 +915,7 @@ and search library.")
name "-" version ".tar.gz"))
(sha256
(base32
- "1iwss9z94p165gxr2yw7s9q12a0bn71fcdbikzkykr5s7xxnz2ds"))))
+ "0l43lbnrnyyrq8mlnw37saq6v0mh3nkirdq1dwnsrihykzjjwf70"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no tests
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 0f87346ea9..25e1d5a312 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3047,7 +3047,7 @@ specifications.")
(define-public lpsolve
(package
(name "lpsolve")
- (version "5.5.2.0")
+ (version "5.5.2.5")
(source
(origin
(method url-fetch)
@@ -3055,7 +3055,7 @@ specifications.")
"/lp_solve_" version "_source.tar.gz"))
(sha256
(base32
- "176c7f023mb6b8bfmv4rfqnrlw88lsg422ca74zjh19i2h5s69sq"))
+ "12pj1idjz31r7c2mb5w03vy1cmvycvbkx9z29s40qdmkp1i7q6i0"))
(modules '((guix build utils)))
(snippet
'(substitute* (list "lp_solve/ccc" "lpsolve55/ccc")
@@ -3073,16 +3073,17 @@ specifications.")
(("isnan\\(0\\)") "isnan(0.)")))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no check target
+ `(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
- (delete 'configure)
+ (delete 'configure) ; no configure script
(replace 'build
(lambda _
- (and (with-directory-excursion "lpsolve55"
- (zero? (system* "bash" "ccc")))
- (with-directory-excursion "lp_solve"
- (zero? (system* "bash" "ccc"))))))
+ (with-directory-excursion "lpsolve55"
+ (invoke "bash" "ccc"))
+ (with-directory-excursion "lp_solve"
+ (invoke "bash" "ccc"))
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -3091,11 +3092,8 @@ specifications.")
;; This is where LibreOffice expects to find the header
;; files, and where they are installed by Debian.
(include (string-append out "/include/lpsolve")))
- (mkdir-p lib)
- (copy-file "lpsolve55/bin/ux64/liblpsolve55.a"
- (string-append lib "/liblpsolve55.a"))
- (copy-file "lpsolve55/bin/ux64/liblpsolve55.so"
- (string-append lib "/liblpsolve55.so"))
+ (install-file "lpsolve55/bin/ux64/liblpsolve55.a" lib)
+ (install-file "lpsolve55/bin/ux64/liblpsolve55.so" lib)
(install-file "lp_solve/bin/ux64/lp_solve" bin)
;; Install a subset of the header files as on Debian
@@ -3437,14 +3435,14 @@ supports compressed MAT files, as well as newer (version 7.3) MAT files.")
(define-public vc
(package
(name "vc")
- (version "1.2.0")
+ (version "1.3.3")
(source
(origin (method url-fetch)
(uri (string-append "https://github.com/VcDevel/Vc/releases/"
"download/" version "/Vc-" version ".tar.gz"))
(sha256
(base32
- "1rh6dhqar3y07n4xqyml0sa0v48qv3ch9dc3yc2in855hlh4vnqi"))))
+ "1zmlpn32jzb38smp3j834llmbix3whsrbw0h397qxysbw792kih8"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index ac1fe51f15..1b06de2360 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -56,16 +56,16 @@
(define-public libmpdclient
(package
(name "libmpdclient")
- (version "2.13")
+ (version "2.14")
(source (origin
(method url-fetch)
(uri
- (string-append "http://musicpd.org/download/libmpdclient/"
+ (string-append "https://musicpd.org/download/libmpdclient/"
(car (string-split version #\.))
"/libmpdclient-" version ".tar.xz"))
(sha256
(base32
- "0pflbv2jzik7yxnacci1iqs0awy1i5ipwn67xk0hg9r0pi9bs5ai"))))
+ "0whk0qw0lsd3kaimdznz0c45bfym0p4885zf4b7pfc7y3dwy510a"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -88,16 +88,16 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
- (version "0.20.15")
+ (version "0.20.17")
(source (origin
(method url-fetch)
(uri
- (string-append "http://musicpd.org/download/mpd/"
+ (string-append "https://musicpd.org/download/mpd/"
(version-major+minor version)
"/mpd-" version ".tar.xz"))
(sha256
(base32
- "0h7bm561i8p0bjp1hy8fsiy5zj7db24zyv6ypfihwf35wrklz766"))))
+ "1hfssmvp4wmy7zh4bl4zv2zqwiddsy77v69w9fh61pqrwbqfgc1c"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -162,17 +162,17 @@ protocol.")
(define-public mpd-mpc
(package
(name "mpd-mpc")
- (version "0.28")
+ (version "0.29")
(source (origin
(method url-fetch)
(uri
- (string-append "http://www.musicpd.org/download/mpc/"
+ (string-append "https://www.musicpd.org/download/mpc/"
(car (string-split version #\.))
"/mpc-" version ".tar.xz"))
(sha256
(base32
- "0iy5mdffkk61255f62si7p8mhyhkib70zlr1i1iimj2xr037scx4"))))
- (build-system gnu-build-system)
+ "1lxr0z5i5yx4lcvy9nyxj6q32qlz473j3zm6va68zd1cj3ndmw82"))))
+ (build-system meson-build-system)
(inputs `(("libmpdclient" ,libmpdclient)))
(native-inputs `(("pkg-config" ,pkg-config)))
(synopsis "Music Player Daemon client")
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
index 7c78d29385..ff789b8c6f 100644
--- a/gnu/packages/musl.scm
+++ b/gnu/packages/musl.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,14 +28,14 @@
(define-public musl
(package
(name "musl")
- (version "1.1.18")
+ (version "1.1.19")
(source (origin
(method url-fetch)
(uri (string-append "http://www.musl-libc.org/releases/"
name "-" version ".tar.gz"))
(sha256
(base32
- "0651lnj5spckqjf83nz116s8qhhydgqdy3rkl4icbh5f05fyw5yh"))))
+ "1nf1wh44bhm8gdcfr75ayib29b99vpq62zmjymrq7f96h9bshnfv"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; Musl has no tests
@@ -43,7 +44,7 @@
(synopsis "Small C standard library")
(description "musl is a simple and lightweight C standard library. It
strives to be correct in the sense of standards-conformance and safety.")
- (home-page "http://www.musl-libc.org")
+ (home-page "https://www.musl-libc.org")
;; Musl as a whole is released under the Expat license. Parts of it are
;; derived from various third-party projects that are released under
;; non-copyleft licenses. See the COPYRIGHT file for details.
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index bb5b74005a..cd3f4f124b 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1584,21 +1584,20 @@ displays the results in real time.")
(define-public strongswan
(package
(name "strongswan")
- (version "5.6.1")
+ (version "5.6.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.strongswan.org/strongswan-"
version ".tar.bz2"))
(sha256
- (base32 "0lxbyiary8iapx3ysw40czrmxf983fhfzs5mvz2hk1j1mpc85hp0"))))
+ (base32 "14ifqay54brw2b2hbmm517bxw8bs9631d7jm4g139igkxcq0m9p0"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'build 'adjust-to-environment
+ (add-before 'build 'patch-command-file-names
(lambda* (#:key inputs #:allow-other-keys)
- ;; Adjust file names.
(substitute* "src/libstrongswan/utils/process.c"
(("/bin/sh")
(string-append (assoc-ref inputs "bash") "/bin/sh")))
@@ -1607,8 +1606,9 @@ displays the results in real time.")
(("/bin/sh") (which "sh"))
(("/bin/echo") (which "echo"))
(("cat") (which "cat")))
-
- ;; This is needed for tests.
+ #t))
+ (add-before 'check 'set-up-test-environment
+ (lambda* (#:key inputs #:allow-other-keys)
(setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
#t)))
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 95f0d6227a..17423856aa 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -47,7 +47,7 @@
(define-public parallel
(package
(name "parallel")
- (version "20180122")
+ (version "20180222")
(source
(origin
(method url-fetch)
@@ -55,7 +55,7 @@
version ".tar.bz2"))
(sha256
(base32
- "1wkbppb4mc56grl6jsp803sf0hm7mg5ff7qmxalp7sd0vxqw41p9"))))
+ "1bwx1rcrqz04d8fajlllhrfkjqxg0mfvsd86wf6p067gmgdrf6g8"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 67e9379f89..f83c05a25b 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
@@ -342,7 +342,8 @@ any X11 window.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
+ "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))
+ (patches (search-patches "password-store-gnupg-compat.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/patches/htop-fix-process-tree.patch b/gnu/packages/patches/htop-fix-process-tree.patch
new file mode 100644
index 0000000000..d8e5e2ccac
--- /dev/null
+++ b/gnu/packages/patches/htop-fix-process-tree.patch
@@ -0,0 +1,99 @@
+From 2971a187551e062ffefdab965f55377b36cd94eb Mon Sep 17 00:00:00 2001
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Wed, 21 Feb 2018 06:00:50 +0100
+Subject: [PATCH] Fix process tree
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This manually reverts:
+
+ commit 584a9bceab948590dabd189d234a86e6bf4ec3f4
+ Author: wangqr <wangqr@wangqr.tk>
+ Date: Fri Sep 1 21:27:24 2017 +0800
+
+ Find roots when constructing process tree, fix #587
+
+which breaks the process tree (‘t’) view in at least some cases.
+I will investigate further...
+---
+ ProcessList.c | 63 +++++++++++++++++------------------------------------------
+ 1 file changed, 18 insertions(+), 45 deletions(-)
+
+diff --git a/ProcessList.c b/ProcessList.c
+index 48b2d95..225253d 100644
+--- a/ProcessList.c
++++ b/ProcessList.c
+@@ -213,51 +213,24 @@ void ProcessList_sort(ProcessList* this) {
+ // Restore settings
+ this->settings->sortKey = sortKey;
+ this->settings->direction = direction;
+- int vsize = Vector_size(this->processes);
+- // Find all processes whose parent is not visible
+- int size;
+- while ((size = Vector_size(this->processes))) {
+- int i;
+- for (i = 0; i < size; i++) {
+- Process* process = (Process*)(Vector_get(this->processes, i));
+- // Immediately consume not shown processes
+- if (!process->show) {
+- process = (Process*)(Vector_take(this->processes, i));
+- process->indent = 0;
+- Vector_add(this->processes2, process);
+- ProcessList_buildTree(this, process->pid, 0, 0, direction, false);
+- break;
+- }
+- pid_t ppid = process->tgid == process->pid ? process->ppid : process->tgid;
+- // Bisect the process vector to find parent
+- int l = 0, r = size;
+- // If PID corresponds with PPID (e.g. "kernel_task" (PID:0, PPID:0)
+- // on Mac OS X 10.11.6) cancel bisecting and regard this process as
+- // root.
+- if (process->pid == ppid)
+- r = 0;
+- while (l < r) {
+- int c = (l + r) / 2;
+- pid_t pid = ((Process*)(Vector_get(this->processes, c)))->pid;
+- if (ppid == pid) {
+- break;
+- } else if (ppid < pid) {
+- r = c;
+- } else {
+- l = c + 1;
+- }
+- }
+- // If parent not found, then construct the tree with this root
+- if (l >= r) {
+- process = (Process*)(Vector_take(this->processes, i));
+- process->indent = 0;
+- Vector_add(this->processes2, process);
+- ProcessList_buildTree(this, process->pid, 0, 0, direction, process->showChildren);
+- break;
+- }
+- }
+- // There should be no loop in the process tree
+- assert(i < size);
++
++ // Take PID 1 as root and add to the new listing
++ int vsize = Vector_size(this->processes);
++ Process* init = (Process*) (Vector_take(this->processes, 0));
++ if (!init) return;
++ // This assertion crashes on hardened kernels.
++ // I wonder how well tree view works on those systems.
++ // assert(init->pid == 1);
++ init->indent = 0;
++ Vector_add(this->processes2, init);
++ // Recursively empty list
++ ProcessList_buildTree(this, init->pid, 0, 0, direction, true);
++ // Add leftovers
++ while (Vector_size(this->processes)) {
++ Process* p = (Process*) (Vector_take(this->processes, 0));
++ p->indent = 0;
++ Vector_add(this->processes2, p);
++ ProcessList_buildTree(this, p->pid, 0, 0, direction, p->showChildren);
+ }
+ assert(Vector_size(this->processes2) == vsize); (void)vsize;
+ assert(Vector_size(this->processes) == 0);
+--
+2.16.2
+
diff --git a/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch b/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch
deleted file mode 100644
index 31eb44aefc..0000000000
--- a/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-This patch deactivates some tests that fail when ldc is built with the command:
-
-./pre-inst-env guix environment guix --pure -- ./pre-inst-env guix build ldc@1.1.0-beta6
-
-When the --keep-failed flag is added to the build command above, and the tests
-run in the resulting /tmp/guix-build-ldc-1.1.0-beta6.drv-* directory, the tests
-pass.
-
-by Frederick M. Muriithi <fredmanglis@gmail.com>
-
-diff --git a/d_do_test.d b/d_do_test.d
-index aa67169..8173759 100755
---- a/d_do_test.d
-+++ b/d_do_test.d
-@@ -645,8 +645,6 @@ int main(string[] args)
- auto gdb_output = execute(fThisRun, command, true, result_path);
- if (testArgs.gdbMatch !is null)
- {
-- enforce(match(gdb_output, regex(testArgs.gdbMatch)),
-- "\nGDB regex: '"~testArgs.gdbMatch~"' didn't match output:\n----\n"~gdb_output~"\n----\n");
- }
- }
- }
-diff --git a/runnable/gdb15729.sh b/runnable/gdb15729.sh
-index 1d390e0..906b2b6 100755
---- a/runnable/gdb15729.sh
-+++ b/runnable/gdb15729.sh
-@@ -21,7 +21,6 @@ if [ $OS == "linux" ]; then
- echo RESULT=
- p s.val
- EOF
-- gdb ${dir}${SEP}gdb15729 --batch -x ${dir}${SEP}gdb15729.gdb | grep 'RESULT=.*1234' || exit 1
- fi
-
- rm -f ${libname} ${dir}${SEP}{gdb15729${OBJ},gdb15729${EXE},gdb15729.gdb}
diff --git a/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch b/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch
deleted file mode 100644
index 70dd419455..0000000000
--- a/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch
+++ /dev/null
@@ -1,414 +0,0 @@
-This patch deactivates failing tests that depend on network connectivity
-to pass in curl.d and socket.d
-It deactivates tests in path.d that assume /root
-
-A thread was started on the ldc forum to pursue the possibility of a
-version flag to deactivate tests conditionally. The thread is at
-https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org
-
-by Frederick M. Muriithi <fredmanglis@gmail.com>
-
-diff --git a/std/datetime.d b/std/datetime.d
-index 4d4afb1..2c91a44 100644
---- a/std/datetime.d
-+++ b/std/datetime.d
-@@ -27306,8 +27306,8 @@ public:
- // leaving it commented out until I can sort it out.
- //assert(equal(tzNames, tzNames.uniq()));
-
-- foreach(tzName; tzNames)
-- assertNotThrown!DateTimeException(testPZSuccess(tzName));
-+ //foreach(tzName; tzNames)
-+ //assertNotThrown!DateTimeException(testPZSuccess(tzName));
- }
-
-
-@@ -29178,8 +29178,8 @@ public:
-
- auto tzNames = getInstalledTZNames();
-
-- foreach(tzName; tzNames)
-- assertNotThrown!DateTimeException(testPTZSuccess(tzName));
-+ //foreach(tzName; tzNames)
-+ //assertNotThrown!DateTimeException(testPTZSuccess(tzName));
-
- // No timezone directories on Android, just a single tzdata file
- version(Android) {} else
-diff --git a/std/net/curl.d b/std/net/curl.d
-index 9c6af66..5fccb38 100644
---- a/std/net/curl.d
-+++ b/std/net/curl.d
-@@ -419,7 +419,7 @@ void download(Conn = AutoProtocol)(const(char)[] url, string saveToPath, Conn co
-
- unittest
- {
-- static import std.file;
-+ /*static import std.file;
- foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
-@@ -430,7 +430,7 @@ unittest
- scope (exit) std.file.remove(fn);
- download(host, fn);
- assert(std.file.readText(fn) == "Hello world");
-- }
-+ }*/
- }
-
- /** Upload file from local files system using the HTTP or FTP protocol.
-@@ -483,7 +483,7 @@ void upload(Conn = AutoProtocol)(string loadFromPath, const(char)[] url, Conn co
-
- unittest
- {
-- static import std.file;
-+ /*static import std.file;
- foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- auto fn = std.file.deleteme;
-@@ -496,7 +496,7 @@ unittest
- s.send(httpOK());
- });
- upload(fn, host ~ "/path");
-- }
-+ }*/
- }
-
- /** HTTP/FTP get content.
-@@ -551,7 +551,7 @@ T[] get(Conn = AutoProtocol, T = char)(const(char)[] url, Conn conn = Conn())
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- assert(s.recvReq.hdrs.canFind("GET /path"));
-@@ -559,7 +559,7 @@ unittest
- });
- auto res = get(host ~ "/path");
- assert(res == "GETRESPONSE");
-- }
-+ }*/
- }
-
-
-@@ -598,7 +598,7 @@ if (is(T == char) || is(T == ubyte))
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
-@@ -608,12 +608,12 @@ unittest
- });
- auto res = post(host ~ "/path", "POSTBODY");
- assert(res == "POSTRESPONSE");
-- }
-+ }*/
- }
-
- unittest
- {
-- auto data = new ubyte[](256);
-+ /*auto data = new ubyte[](256);
- foreach (i, ref ub; data)
- ub = cast(ubyte)i;
-
-@@ -624,7 +624,7 @@ unittest
- s.send(httpOK(cast(ubyte[])[17, 27, 35, 41]));
- });
- auto res = post!ubyte(testServer.addr, data);
-- assert(res == cast(ubyte[])[17, 27, 35, 41]);
-+ assert(res == cast(ubyte[])[17, 27, 35, 41]);*/
- }
-
-
-@@ -680,7 +680,7 @@ T[] put(Conn = AutoProtocol, T = char, PutUnit)(const(char)[] url, const(PutUnit
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
-@@ -690,7 +690,7 @@ unittest
- });
- auto res = put(host ~ "/path", "PUTBODY");
- assert(res == "PUTRESPONSE");
-- }
-+ }*/
- }
-
-
-@@ -742,7 +742,7 @@ void del(Conn = AutoProtocol)(const(char)[] url, Conn conn = Conn())
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
-@@ -750,7 +750,7 @@ unittest
- s.send(httpOK());
- });
- del(host ~ "/path");
-- }
-+ }*/
- }
-
-
-@@ -796,13 +796,13 @@ T[] options(T = char, OptionsUnit)(const(char)[] url,
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("OPTIONS /path"));
- s.send(httpOK("OPTIONSRESPONSE"));
- });
- auto res = options(testServer.addr ~ "/path");
-- assert(res == "OPTIONSRESPONSE");
-+ assert(res == "OPTIONSRESPONSE");*/
- }
-
-
-@@ -836,13 +836,13 @@ T[] trace(T = char)(const(char)[] url, HTTP conn = HTTP())
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("TRACE /path"));
- s.send(httpOK("TRACERESPONSE"));
- });
- auto res = trace(testServer.addr ~ "/path");
-- assert(res == "TRACERESPONSE");
-+ assert(res == "TRACERESPONSE");*/
- }
-
-
-@@ -875,13 +875,13 @@ T[] connect(T = char)(const(char)[] url, HTTP conn = HTTP())
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("CONNECT /path"));
- s.send(httpOK("CONNECTRESPONSE"));
- });
- auto res = connect(testServer.addr ~ "/path");
-- assert(res == "CONNECTRESPONSE");
-+ assert(res == "CONNECTRESPONSE");*/
- }
-
-
-@@ -919,14 +919,14 @@ T[] patch(T = char, PatchUnit)(const(char)[] url, const(PatchUnit)[] patchData,
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("PATCH /path"));
- assert(req.bdy.canFind("PATCHBODY"));
- s.send(httpOK("PATCHRESPONSE"));
- });
- auto res = patch(testServer.addr ~ "/path", "PATCHBODY");
-- assert(res == "PATCHRESPONSE");
-+ assert(res == "PATCHRESPONSE");*/
- }
-
-
-@@ -1031,19 +1031,19 @@ private auto _basicHTTP(T)(const(char)[] url, const(void)[] sendData, HTTP clien
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("GET /path"));
- s.send(httpNotFound());
- });
- auto e = collectException!CurlException(get(testServer.addr ~ "/path"));
-- assert(e.msg == "HTTP request returned status code 404 (Not Found)");
-+ assert(e.msg == "HTTP request returned status code 404 (Not Found)");*/
- }
-
- // Bugzilla 14760 - content length must be reset after post
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("POST /"));
- assert(req.bdy.canFind("POSTBODY"));
-@@ -1061,7 +1061,7 @@ unittest
- auto res = post(testServer.addr, "POSTBODY", http);
- assert(res == "POSTRESPONSE");
- res = trace(testServer.addr, http);
-- assert(res == "TRACERESPONSE");
-+ assert(res == "TRACERESPONSE");*/
- }
-
- /*
-@@ -1265,14 +1265,14 @@ if (isCurlConn!Conn && isSomeChar!Char && isSomeChar!Terminator)
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
- s.send(httpOK("Line1\nLine2\nLine3"));
- });
- assert(byLine(host).equal(["Line1", "Line2", "Line3"]));
-- }
-+ }*/
- }
-
- /** HTTP/FTP fetch content as a range of chunks.
-@@ -1337,14 +1337,14 @@ auto byChunk(Conn = AutoProtocol)
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
- s.send(httpOK(cast(ubyte[])[0, 1, 2, 3, 4, 5]));
- });
- assert(byChunk(host, 2).equal([[0, 1], [2, 3], [4, 5]]));
-- }
-+ }*/
- }
-
- private T[] _getForRange(T,Conn)(const(char)[] url, Conn conn)
-@@ -1629,14 +1629,14 @@ auto byLineAsync(Conn = AutoProtocol, Terminator = char, Char = char)
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
- s.send(httpOK("Line1\nLine2\nLine3"));
- });
- assert(byLineAsync(host).equal(["Line1", "Line2", "Line3"]));
-- }
-+ }*/
- }
-
-
-@@ -1778,14 +1778,14 @@ auto byChunkAsync(Conn = AutoProtocol)
-
- unittest
- {
-- foreach (host; [testServer.addr, "http://"~testServer.addr])
-+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
- {
- testServer.handle((s) {
- auto req = s.recvReq;
- s.send(httpOK(cast(ubyte[])[0, 1, 2, 3, 4, 5]));
- });
- assert(byChunkAsync(host, 2).equal([[0, 1], [2, 3], [4, 5]]));
-- }
-+ }*/
- }
-
-
-@@ -2041,7 +2041,7 @@ private mixin template Protocol()
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq;
- assert(req.hdrs.canFind("GET /"));
- assert(req.hdrs.canFind("Basic dXNlcjpwYXNz"));
-@@ -2051,7 +2051,7 @@ private mixin template Protocol()
- auto http = HTTP(testServer.addr);
- http.onReceive = (ubyte[] data) { return data.length; };
- http.setAuthentication("user", "pass");
-- http.perform();
-+ http.perform();*/
- }
-
- /**
-@@ -2959,7 +2959,7 @@ struct HTTP
-
- unittest
- {
-- testServer.handle((s) {
-+ /*testServer.handle((s) {
- auto req = s.recvReq!ubyte;
- assert(req.hdrs.canFind("POST /path"));
- assert(req.bdy.canFind(cast(ubyte[])[0, 1, 2, 3, 4]));
-@@ -2975,7 +2975,7 @@ struct HTTP
- ubyte[] res;
- http.onReceive = (data) { res ~= data; return data.length; };
- http.perform();
-- assert(res == cast(ubyte[])[17, 27, 35, 41]);
-+ assert(res == cast(ubyte[])[17, 27, 35, 41]);*/
- }
-
- /**
-diff --git a/std/path.d b/std/path.d
-index 60c844f..0598104 100644
---- a/std/path.d
-+++ b/std/path.d
-@@ -3953,8 +3953,10 @@ unittest
- }
- else
- {
-+/*
- assert(expandTilde("~root") == "/root", expandTilde("~root"));
- assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
-+*/
- }
- assert(expandTilde("~Idontexist/hey") == "~Idontexist/hey");
- }
-diff --git a/std/socket.d b/std/socket.d
-index 7f5a3c3..e68b881 100644
---- a/std/socket.d
-+++ b/std/socket.d
-@@ -481,15 +481,15 @@ unittest
- {
- softUnittest({
- Protocol proto = new Protocol;
-- assert(proto.getProtocolByType(ProtocolType.TCP));
-+ //assert(proto.getProtocolByType(ProtocolType.TCP));
- //writeln("About protocol TCP:");
- //writefln("\tName: %s", proto.name);
- // foreach(string s; proto.aliases)
- // {
- // writefln("\tAlias: %s", s);
- // }
-- assert(proto.name == "tcp");
-- assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
-+ //assert(proto.name == "tcp");
-+ //assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
- });
- }
-
-@@ -832,9 +832,9 @@ unittest
- InternetHost ih = new InternetHost;
-
- ih.getHostByAddr(0x7F_00_00_01);
-- assert(ih.addrList[0] == 0x7F_00_00_01);
-+ //assert(ih.addrList[0] == 0x7F_00_00_01);
- ih.getHostByAddr("127.0.0.1");
-- assert(ih.addrList[0] == 0x7F_00_00_01);
-+ //assert(ih.addrList[0] == 0x7F_00_00_01);
-
- softUnittest({
- if (!ih.getHostByName("www.digitalmars.com"))
diff --git a/gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch b/gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch
new file mode 100644
index 0000000000..ccc136cc76
--- /dev/null
+++ b/gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch
@@ -0,0 +1,88 @@
+diff --git a/std/path.d b/std/path.d
+index a9f0bd8..f47d103 100644
+--- a/std/path.d
++++ b/std/path.d
+@@ -4041,7 +4041,7 @@ version(unittest) import std.process : environment;
+ else version (Android)
+ {
+ }
+- else
++ else version (HasRoot)
+ {
+ assert(expandTilde("~root") == "/root", expandTilde("~root"));
+ assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
+
+diff --git a/std/process.d b/std/process.d
+index df83296..d921cdb 100644
+--- a/std/process.d
++++ b/std/process.d
+@@ -1171,7 +1171,7 @@ version (Posix) @system unittest
+ assert(exists(buildPath(directory, "bar")));
+ }
+
+-@system unittest // Specifying a bad working directory.
++@system version(skipunittest) unittest // Specifying a bad working directory.
+ {
+ import std.exception : assertThrown;
+ TestScript prog = "/bin/echo";
+diff --git a/std/socket.d b/std/socket.d
+index 8a261d5..c1b87b6 100644
+--- a/std/socket.d
++++ b/std/socket.d
+@@ -484,7 +484,7 @@ class Protocol
+ // Skip this test on Android because getprotobyname/number are
+ // unimplemented in bionic.
+ version(CRuntime_Bionic) {} else
+-@safe unittest
++@safe version(hasNetwork) unittest
+ {
+ softUnittest({
+ Protocol proto = new Protocol;
+@@ -804,7 +804,7 @@ class InternetHost
+ }
+
+ ///
+-@safe unittest
++@safe version(hasNetwork) unittest
+ {
+ InternetHost ih = new InternetHost;
+
+@@ -959,7 +959,7 @@ AddressInfo[] getAddressInfo(T...)(in char[] node, T options)
+ return () @trusted { return getAddressInfoImpl(node, service, &hints); }();
+ }
+
+-@system unittest
++@system version(hasNetwork) unittest
+ {
+ struct Oops
+ {
+@@ -1010,7 +1010,7 @@ private AddressInfo[] getAddressInfoImpl(in char[] node, in char[] service, addr
+ }
+
+
+-@safe unittest
++@safe version(hasNetwork) unittest
+ {
+ softUnittest({
+ if (getaddrinfoPointer)
+diff --git a/std/stdio.d b/std/stdio.d
+index 10106a5..4b0590e 100644
+--- a/std/stdio.d
++++ b/std/stdio.d
+@@ -1426,8 +1426,7 @@ Removes the lock over the specified file segment.
+ g.unlock();
+ }
+
+- version(Posix)
+- @system unittest
++ @system version(skip) unittest
+ {
+ static import std.file;
+ auto deleteme = testFilename();
+@@ -1483,7 +1482,6 @@ Removes the lock over the specified file segment.
+ f.unlock();
+ }
+
+-
+ /**
+ Writes its arguments in text format to the file.
diff --git a/gnu/packages/patches/ldc-disable-tests.patch b/gnu/packages/patches/ldc-bootstrap-disable-tests.patch
index bdd6e5b76c..d2e40b8016 100644
--- a/gnu/packages/patches/ldc-disable-tests.patch
+++ b/gnu/packages/patches/ldc-bootstrap-disable-tests.patch
@@ -4,17 +4,17 @@ two others use networking. Not bad out of almost 700 tests!
by Pjotr Prins <pjotr.guix@thebird.nl>
---- a/std/datetime.d.orig 2016-11-24 01:13:52.584495545 +0100
-+++ b/std/datetime.d 2016-11-24 01:17:09.655306728 +0100
+--- a/std/datetime.d.orig 2016-11-24 01:13:52.584495545 +0100
++++ b/std/datetime.d 2016-11-24 01:17:09.655306728 +0100
@@ -28081,22 +28081,24 @@
import std.range : retro;
import std.format : format;
-
+
- name = strip(name);
-
enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir)));
-
+
version(Android)
{
+ name = strip(name);
@@ -29,11 +29,11 @@ by Pjotr Prins <pjotr.guix@thebird.nl>
+ auto filename = "./" ~ strip(name); // make sure the prefix is not stripped
+ immutable file = buildNormalizedPath(tzDatabaseDir, filename);
+ }
-
+
- enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file)));
+ enforce(file.exists(), new DateTimeException(format("File %s does not exist in %s.", file, tzDatabaseDir)));
enforce(file.isFile, new DateTimeException(format("%s is not a file.", file)));
-
+
auto tzFile = File(file);
diff --git a/std/path.d b/std/path.d
index 254d8f0..b0fc04d 100644
@@ -56,13 +56,13 @@ index b85d1c9..7fbf346 100644
--- a/std/socket.d
+++ b/std/socket.d
@@ -859,6 +862,8 @@ class InternetHost
-
+
unittest
{
+ pragma(msg, "test disabled on GNU Guix");
+ /*
InternetHost ih = new InternetHost;
-
+
ih.getHostByAddr(0x7F_00_00_01);
@@ -889,6 +894,7 @@ unittest
// writefln("aliases[%d] = %s", i, s);
@@ -70,5 +70,3 @@ index b85d1c9..7fbf346 100644
});
+ */
}
-
-
diff --git a/gnu/packages/patches/optipng-CVE-2017-1000229.patch b/gnu/packages/patches/optipng-CVE-2017-1000229.patch
deleted file mode 100644
index 2cb3b2f21c..0000000000
--- a/gnu/packages/patches/optipng-CVE-2017-1000229.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Fix CVE-2017-1000229:
-
-https://security-tracker.debian.org/tracker/CVE-2017-1000229
-https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-1000229.html
-https://nvd.nist.gov/vuln/detail/CVE-2017-1000229
-
-Patch copied from upstream bug tracker:
-https://sourceforge.net/p/optipng/bugs/65/
-
-diff --git a/src/minitiff/tiffread.c b/src/minitiff/tiffread.c
-index b4910ec..5f9b376 100644
---- a/src/minitiff/tiffread.c
-+++ b/src/minitiff/tiffread.c
-@@ -350,6 +350,8 @@ minitiff_read_info(struct minitiff_info *tiff_ptr, FILE *fp)
- count = tiff_ptr->strip_offsets_count;
- if (count == 0 || count > tiff_ptr->height)
- goto err_invalid;
-+ if (count > (size_t)-1 / sizeof(long))
-+ goto err_memory;
- tiff_ptr->strip_offsets = (long *)malloc(count * sizeof(long));
- if (tiff_ptr->strip_offsets == NULL)
- goto err_memory;
diff --git a/gnu/packages/patches/password-store-gnupg-compat.patch b/gnu/packages/patches/password-store-gnupg-compat.patch
new file mode 100644
index 0000000000..75c6362021
--- /dev/null
+++ b/gnu/packages/patches/password-store-gnupg-compat.patch
@@ -0,0 +1,28 @@
+Copied from upstream mailing list:
+https://lists.zx2c4.com/pipermail/password-store/2018-February/003216.html.
+
+From 9b0c86159d754cc88dd3642564eed527153dfb7f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= <clement@lassieur.org>
+Date: Sat, 24 Feb 2018 12:05:46 +0100
+Subject: [PATCH] tests: fix compatibility with GnuPG 2.2.5
+
+---
+ tests/t0300-reencryption.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/t0300-reencryption.sh b/tests/t0300-reencryption.sh
+index 6d5811d..6d15364 100755
+--- a/tests/t0300-reencryption.sh
++++ b/tests/t0300-reencryption.sh
+@@ -10,7 +10,7 @@ canonicalize_gpg_keys() {
+ $GPG --list-keys --with-colons "$@" | sed -n 's/sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u
+ }
+ gpg_keys_from_encrypted_file() {
+- $GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | cut -d ' ' -f 5 | LC_ALL=C sort -u
++ $GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | grep "public key is" | cut -d ' ' -f 5 | LC_ALL=C sort -u
+ }
+ gpg_keys_from_group() {
+ local output="$($GPG --list-config --with-colons | sed -n "s/^cfg:group:$1:\\(.*\\)/\\1/p" | head -n 1)"
+--
+2.16.2
+
diff --git a/gnu/packages/patches/qemu-CVE-2017-15038.patch b/gnu/packages/patches/qemu-CVE-2017-15038.patch
deleted file mode 100644
index 4791a186bf..0000000000
--- a/gnu/packages/patches/qemu-CVE-2017-15038.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Fix CVE-2017-15038:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15038
-
-Patch copied from upstream source repository:
-
-https://git.qemu.org/?p=qemu.git;a=commitdiff;h=7bd92756303f2158a68d5166264dc30139b813b6
-
-From 7bd92756303f2158a68d5166264dc30139b813b6 Mon Sep 17 00:00:00 2001
-From: Prasad J Pandit <pjp@fedoraproject.org>
-Date: Mon, 16 Oct 2017 14:21:59 +0200
-Subject: [PATCH] 9pfs: use g_malloc0 to allocate space for xattr
-
-9p back-end first queries the size of an extended attribute,
-allocates space for it via g_malloc() and then retrieves its
-value into allocated buffer. Race between querying attribute
-size and retrieving its could lead to memory bytes disclosure.
-Use g_malloc0() to avoid it.
-
-Reported-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Signed-off-by: Greg Kurz <groug@kaod.org>
----
- hw/9pfs/9p.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
-index 23ac7bb532..f8bbac251d 100644
---- a/hw/9pfs/9p.c
-+++ b/hw/9pfs/9p.c
-@@ -3234,7 +3234,7 @@ static void coroutine_fn v9fs_xattrwalk(void *opaque)
- xattr_fidp->fid_type = P9_FID_XATTR;
- xattr_fidp->fs.xattr.xattrwalk_fid = true;
- if (size) {
-- xattr_fidp->fs.xattr.value = g_malloc(size);
-+ xattr_fidp->fs.xattr.value = g_malloc0(size);
- err = v9fs_co_llistxattr(pdu, &xattr_fidp->path,
- xattr_fidp->fs.xattr.value,
- xattr_fidp->fs.xattr.len);
-@@ -3267,7 +3267,7 @@ static void coroutine_fn v9fs_xattrwalk(void *opaque)
- xattr_fidp->fid_type = P9_FID_XATTR;
- xattr_fidp->fs.xattr.xattrwalk_fid = true;
- if (size) {
-- xattr_fidp->fs.xattr.value = g_malloc(size);
-+ xattr_fidp->fs.xattr.value = g_malloc0(size);
- err = v9fs_co_lgetxattr(pdu, &xattr_fidp->path,
- &name, xattr_fidp->fs.xattr.value,
- xattr_fidp->fs.xattr.len);
---
-2.15.0
-
diff --git a/gnu/packages/patches/qemu-CVE-2017-15289.patch b/gnu/packages/patches/qemu-CVE-2017-15289.patch
deleted file mode 100644
index d4b536a405..0000000000
--- a/gnu/packages/patches/qemu-CVE-2017-15289.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Fix CVE-2017-15289:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15289
-
-Patch copied from upstream source repository:
-
-https://git.qemu.org/?p=qemu.git;a=commitdiff;h=eb38e1bc3740725ca29a535351de94107ec58d51
-
-From eb38e1bc3740725ca29a535351de94107ec58d51 Mon Sep 17 00:00:00 2001
-From: Gerd Hoffmann <kraxel@redhat.com>
-Date: Wed, 11 Oct 2017 10:43:14 +0200
-Subject: [PATCH] cirrus: fix oob access in mode4and5 write functions
-
-Move dst calculation into the loop, so we apply the mask on each
-interation and will not overflow vga memory.
-
-Cc: Prasad J Pandit <pjp@fedoraproject.org>
-Reported-by: Niu Guoxiang <niuguoxiang@huawei.com>
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Message-id: 20171011084314.21752-1-kraxel@redhat.com
----
- hw/display/cirrus_vga.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
-index b4d579857a..bc32bf1e39 100644
---- a/hw/display/cirrus_vga.c
-+++ b/hw/display/cirrus_vga.c
-@@ -2038,15 +2038,14 @@ static void cirrus_mem_writeb_mode4and5_8bpp(CirrusVGAState * s,
- unsigned val = mem_value;
- uint8_t *dst;
-
-- dst = s->vga.vram_ptr + (offset &= s->cirrus_addr_mask);
- for (x = 0; x < 8; x++) {
-+ dst = s->vga.vram_ptr + ((offset + x) & s->cirrus_addr_mask);
- if (val & 0x80) {
- *dst = s->cirrus_shadow_gr1;
- } else if (mode == 5) {
- *dst = s->cirrus_shadow_gr0;
- }
- val <<= 1;
-- dst++;
- }
- memory_region_set_dirty(&s->vga.vram, offset, 8);
- }
-@@ -2060,8 +2059,8 @@ static void cirrus_mem_writeb_mode4and5_16bpp(CirrusVGAState * s,
- unsigned val = mem_value;
- uint8_t *dst;
-
-- dst = s->vga.vram_ptr + (offset &= s->cirrus_addr_mask);
- for (x = 0; x < 8; x++) {
-+ dst = s->vga.vram_ptr + ((offset + 2 * x) & s->cirrus_addr_mask & ~1);
- if (val & 0x80) {
- *dst = s->cirrus_shadow_gr1;
- *(dst + 1) = s->vga.gr[0x11];
-@@ -2070,7 +2069,6 @@ static void cirrus_mem_writeb_mode4and5_16bpp(CirrusVGAState * s,
- *(dst + 1) = s->vga.gr[0x10];
- }
- val <<= 1;
-- dst += 2;
- }
- memory_region_set_dirty(&s->vga.vram, offset, 16);
- }
---
-2.15.0
-
diff --git a/gnu/packages/patches/wavpack-CVE-2018-7253.patch b/gnu/packages/patches/wavpack-CVE-2018-7253.patch
new file mode 100644
index 0000000000..651755afd0
--- /dev/null
+++ b/gnu/packages/patches/wavpack-CVE-2018-7253.patch
@@ -0,0 +1,29 @@
+Fix CVE-2018-7253:
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7253
+
+Copied from upstream:
+https://github.com/dbry/WavPack/commit/36a24c7881427d2e1e4dc1cef58f19eee0d13aec
+
+diff --git a/cli/dsdiff.c b/cli/dsdiff.c
+index 410dc1c..c016df9 100644
+--- a/cli/dsdiff.c
++++ b/cli/dsdiff.c
+@@ -153,7 +153,17 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
+ error_line ("dsdiff file version = 0x%08x", version);
+ }
+ else if (!strncmp (dff_chunk_header.ckID, "PROP", 4)) {
+- char *prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize);
++ char *prop_chunk;
++
++ if (dff_chunk_header.ckDataSize < 4 || dff_chunk_header.ckDataSize > 1024) {
++ error_line ("%s is not a valid .DFF file!", infilename);
++ return WAVPACK_SOFT_ERROR;
++ }
++
++ if (debug_logging_mode)
++ error_line ("got PROP chunk of %d bytes total", (int) dff_chunk_header.ckDataSize);
++
++ prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize);
+
+ if (!DoReadFile (infile, prop_chunk, (uint32_t) dff_chunk_header.ckDataSize, &bcount) ||
+ bcount != dff_chunk_header.ckDataSize) {
diff --git a/gnu/packages/patches/wavpack-CVE-2018-7254.patch b/gnu/packages/patches/wavpack-CVE-2018-7254.patch
new file mode 100644
index 0000000000..61db296ec8
--- /dev/null
+++ b/gnu/packages/patches/wavpack-CVE-2018-7254.patch
@@ -0,0 +1,62 @@
+Fix CVE-2018-7254:
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7254
+
+Copied from upstream:
+https://github.com/dbry/WavPack/commit/8e3fe45a7bac31d9a3b558ae0079e2d92a04799e
+
+diff --git a/cli/caff.c b/cli/caff.c
+index ae57c4b..6248a71 100644
+--- a/cli/caff.c
++++ b/cli/caff.c
+@@ -89,8 +89,8 @@ typedef struct
+
+ #define CAFChannelDescriptionFormat "LLLLL"
+
+-static const char TMH_full [] = { 1,2,3,13,9,10,5,6,12,14,15,16,17,9,4,18,7,8,19,20,21 };
+-static const char TMH_std [] = { 1,2,3,11,8,9,5,6,10,12,13,14,15,7,4,16 };
++static const char TMH_full [] = { 1,2,3,13,9,10,5,6,12,14,15,16,17,9,4,18,7,8,19,20,21,0 };
++static const char TMH_std [] = { 1,2,3,11,8,9,5,6,10,12,13,14,15,7,4,16,0 };
+
+ static struct {
+ uint32_t mChannelLayoutTag; // Core Audio layout, 100 - 146 in high word, num channels in low word
+@@ -274,10 +274,19 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
+ }
+ }
+ else if (!strncmp (caf_chunk_header.mChunkType, "chan", 4)) {
+- CAFChannelLayout *caf_channel_layout = malloc ((size_t) caf_chunk_header.mChunkSize);
++ CAFChannelLayout *caf_channel_layout;
+
+- if (caf_chunk_header.mChunkSize < sizeof (CAFChannelLayout) ||
+- !DoReadFile (infile, caf_channel_layout, (uint32_t) caf_chunk_header.mChunkSize, &bcount) ||
++ if (caf_chunk_header.mChunkSize < sizeof (CAFChannelLayout) || caf_chunk_header.mChunkSize > 1024) {
++ error_line ("this .CAF file has an invalid 'chan' chunk!");
++ return WAVPACK_SOFT_ERROR;
++ }
++
++ if (debug_logging_mode)
++ error_line ("'chan' chunk is %d bytes", (int) caf_chunk_header.mChunkSize);
++
++ caf_channel_layout = malloc ((size_t) caf_chunk_header.mChunkSize);
++
++ if (!DoReadFile (infile, caf_channel_layout, (uint32_t) caf_chunk_header.mChunkSize, &bcount) ||
+ bcount != caf_chunk_header.mChunkSize) {
+ error_line ("%s is not a valid .CAF file!", infilename);
+ free (caf_channel_layout);
+@@ -495,8 +504,15 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
+ }
+ else { // just copy unknown chunks to output file
+
+- int bytes_to_copy = (uint32_t) caf_chunk_header.mChunkSize;
+- char *buff = malloc (bytes_to_copy);
++ uint32_t bytes_to_copy = (uint32_t) caf_chunk_header.mChunkSize;
++ char *buff;
++
++ if (caf_chunk_header.mChunkSize < 0 || caf_chunk_header.mChunkSize > 1048576) {
++ error_line ("%s is not a valid .CAF file!", infilename);
++ return WAVPACK_SOFT_ERROR;
++ }
++
++ buff = malloc (bytes_to_copy);
+
+ if (debug_logging_mode)
+ error_line ("extra unknown chunk \"%c%c%c%c\" of %d bytes",
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index c04344a70b..110ba45d3d 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -409,6 +410,28 @@ exception based code. It is built with Test::Builder and plays happily with
Test::More and friends.")
(license perl-license)))
+(define-public perl-test-failwarnings
+ (package
+ (name "perl-test-failwarnings")
+ (version "0.008")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0vx9chcp5x8m0chq574p9fnfckh5gl94j7904rh9v17n568fyd6s"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-capture-tiny" ,perl-capture-tiny)))
+ (home-page "http://search.cpan.org/dist/Test-FailWarnings/")
+ (synopsis "Add test failures if warnings are caught")
+ (description
+ "Test::FailWarnings adds test failures if warnings are caught.")
+ (license asl2.0)))
+
(define-public perl-test-fatal
(package
(name "perl-test-fatal")
@@ -456,6 +479,28 @@ testing exception-throwing code with about the same amount of typing.")
for testing.")
(license perl-license)))
+(define-public perl-test-filename
+ (package
+ (name "perl-test-filename")
+ (version "0.03")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1gpw4mjw68gnby8s4cifvbz6g2923xsc189jkw9d27i8qv20qiba"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-path-tiny" ,perl-path-tiny)))
+ (home-page "http://search.cpan.org/dist/Test-Filename/")
+ (synopsis "Portable filename comparison")
+ (description "Test::Filename provides functions to convert all path
+separators automatically.")
+ (license asl2.0)))
+
(define-public perl-test-files
(package
(name "perl-test-files")
@@ -928,6 +973,34 @@ cannot connect to the specified hosts and ports, the exception is caught and
reported, and the tests skipped.")
(license perl-license)))
+(define-public perl-test-roo
+ (package
+ (name "perl-test-roo")
+ (version "1.004")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1mnym49j1lj7gzylma5b6nr4vp75rmgz2v71904v01xmxhy9l4i1"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-capture-tiny" ,perl-capture-tiny)))
+ (propagated-inputs
+ `(("perl-indirect" ,perl-indirect)
+ ("perl-moo" ,perl-moo)
+ ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
+ ("perl-multidimensional" ,perl-multidimensional)
+ ("perl-strictures" ,perl-strictures)
+ ("perl-sub-install" ,perl-sub-install)))
+ (home-page "http://search.cpan.org/dist/Test-Roo/")
+ (synopsis "Composable, reusable tests with roles and Moo")
+ (description "Test::Roo provides composable, reusable tests with roles.")
+ (license asl2.0)))
+
(define-public perl-test-script
(package
(name "perl-test-script")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 5a2fc6a6bb..cef42847c6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,6 +36,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages perl)
+ #:use-module (srfi srfi-1)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (guix packages)
@@ -343,6 +345,31 @@ autovivification for some constructs and optionally throws a warning or an
error when it would have happened.")
(license (package-license perl))))
+(define-public perl-bareword-filehandles
+ (package
+ (name "perl-bareword-filehandles")
+ (version "0.005")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/I/IL/ILMARI/bareword-filehandles-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0fdirls2pg7d6ymvlzzz59q3dy6hgh08k0qpr2mw51w127s8rav6"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-extutils-depends" ,perl-extutils-depends)))
+ (propagated-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
+ (home-page "http://search.cpan.org/dist/bareword-filehandles/")
+ (synopsis "Disables bareword filehandles")
+ (description "This module disables bareword filehandles.")
+ (license (package-license perl))))
+
(define-public perl-base
(package
(name "perl-base")
@@ -409,6 +436,27 @@ all known commands are checked.")
compiling the surrounding scope.")
(license (package-license perl))))
+(define-public perl-b-hooks-op-check
+ (package
+ (name "perl-b-hooks-op-check")
+ (version "0.22")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1kfdv25gn6yik8jrwik4ajp99gi44s6idcvyyrzhiycyynzd3df7"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-extutils-depends" ,perl-extutils-depends)))
+ (home-page "http://search.cpan.org/dist/B-Hooks-OP-Check/")
+ (synopsis "Wrap OP check callbacks")
+ (description "This module allows you to wrap OP check callbacks.")
+ (license (package-license perl))))
+
(define-public perl-b-keywords
(package
(name "perl-b-keywords")
@@ -1812,6 +1860,32 @@ an \"unless\" regular expression. If the text in question matches the
like split on newlines unless newlines are embedded in quotes.")
(license (package-license perl))))
+(define-public perl-data-section
+ (package
+ (name "perl-data-section")
+ (version "0.200007")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/R/RJ/RJBS/Data-Section-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1pmlxca0a8sv2jjwvhwgqavq6iwys6kf457lby4anjp3f1dpx4yd"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-failwarnings" ,perl-test-failwarnings)))
+ (propagated-inputs
+ `(("perl-mro-compat" ,perl-mro-compat)
+ ("perl-sub-exporter" ,perl-sub-exporter)))
+ (home-page "http://search.cpan.org/dist/Data-Section/")
+ (synopsis "Read multiple hunks of data out of your DATA section")
+ (description "This package provides a Perl library to read multiple hunks
+of data out of your DATA section.")
+ (license (package-license perl))))
+
(define-public perl-data-stag
(package
(name "perl-data-stag")
@@ -3003,6 +3077,30 @@ and alternative installers with the `installler` option. But it's written in
only about 40% as many lines of code and with zero non-core dependencies.")
(license (package-license perl))))
+(define-public perl-extutils-depends
+ (package
+ (name "perl-extutils-depends")
+ (version "0.405")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0b4ab9qmcihsfs2ajhn5qzg7nhazr68v3r0zvb7076smswd41mla"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-number-delta"
+ ,perl-test-number-delta)))
+ (home-page "http://search.cpan.org/dist/ExtUtils-Depends/")
+ (synopsis "Easily build XS extensions that depend on XS extensions")
+ (description "ExtUtils::Depends builds XS extensions that depend on XS
+extensions")
+ (license (package-license perl))))
+
(define-public perl-extutils-installpaths
(package
(name "perl-extutils-installpaths")
@@ -3857,6 +3955,26 @@ dependencies for CPAN distributions. These dependencies get bundled into the
inc directory within a distribution and are used by Makefile.PL or Build.PL.")
(license asl2.0)))
+(define-public perl-indirect
+ (package
+ (name "perl-indirect")
+ (version "0.38")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/V/VP/VPIT/indirect-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "13k5a8p903m8x3pcv9qqkzvnb8gpgq36cr3dvn3lk1ngsi9w5ydy"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/indirect/")
+ (synopsis "Lexically warn about using the indirect method call syntax")
+ (description
+ "Indirect warns about using the indirect method call syntax.")
+ (license (package-license perl))))
+
(define-public perl-io-captureoutput
(package
(name "perl-io-captureoutput")
@@ -4175,6 +4293,29 @@ either uses the first module it finds or throws an error.")
versa.")
(license (package-license perl))))
+(define-public perl-lexical-sealrequirehints
+ (package
+ (name "perl-lexical-sealrequirehints")
+ (version "0.011")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0fh1arpr0hsj7skbn97yfvbk22pfcrpcvcfs15p5ss7g338qx4cy"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ (home-page "http://search.cpan.org/dist/Lexical-SealRequireHints/")
+ (synopsis "Prevent leakage of lexical hints")
+ (description
+ "Lexical::SealRequireHints prevents leakage of lexical hints")
+ (license (package-license perl))))
+
(define-public perl-log-any
(package
(name "perl-log-any")
@@ -4980,6 +5121,37 @@ that avoids the details of Perl's object system. Moo contains a subset of
Moose and is optimised for rapid startup.")
(license (package-license perl))))
+;; Some packages don't yet work with this newer version of ‘Moo’.
+(define-public perl-moo-2
+ (package
+ (inherit perl-moo)
+ (name "perl-moo-2")
+ (version "2.003004")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+ "Moo-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qciprcgb4661g2g4ks0fxkx5gbjvn7h9yfg0nzflqz9z0jvdfzq"))))
+ (propagated-inputs
+ `(("perl-role-tiny" ,perl-role-tiny-2)
+ ("perl-sub-name" ,perl-sub-name)
+ ("perl-sub-quote" ,perl-sub-quote)
+ ("perl-strictures" ,perl-strictures-2)
+ ,@(alist-delete "perl-strictures"
+ (alist-delete "perl-role-tiny"
+ (package-propagated-inputs perl-moo)))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-perl-search-path
+ (lambda _
+ ;; Use perl-strictures for testing.
+ (setenv "MOO_FATAL_WARNINGS" "=1")
+ #t)))))))
+
(define-public perl-moose
(package
(name "perl-moose")
@@ -5853,6 +6025,32 @@ Certificate Authority certificates in a form that can be consumed by modules
and libraries based on OpenSSL.")
(license mpl2.0)))
+(define-public perl-multidimensional
+ (package
+ (name "perl-multidimensional")
+ (version "0.013")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/I/IL/ILMARI/multidimensional-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "02p5zv68i39hnkmzzxsk1fi7xy56pfcsslrd7yqwzhq74czcw81x"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-extutils-depends" ,perl-extutils-depends)))
+ (propagated-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
+ (home-page "http://search.cpan.org/dist/multidimensional/")
+ (synopsis "Disable multidimensional array emulation")
+ (description
+ "Multidimensional disables multidimensional array emulation.")
+ (license (package-license perl))))
+
(define-public perl-mro-compat
(package
(name "perl-mro-compat")
@@ -6025,6 +6223,26 @@ collector daemon in use at Etsy.com.")
subroutine, which you can call with a value to be tested against.")
(license (package-license perl))))
+(define-public perl-number-range
+ (package
+ (name "perl-number-range")
+ (version "0.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/L/LA/LARRYSH/Number-Range-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0999xvs3w2xprs14q4shqndjf2m6mzvhzdljgr61ddjaqhd84gj3"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Number-Range/")
+ (synopsis "Perl extension defining ranges of numbers")
+ (description "Number::Range is an object-oriented interface to test if a
+number exists in a given range, and to be able to manipulate the range.")
+ (license (package-license perl))))
+
(define-public perl-object-signature
(package
(name "perl-object-signature")
@@ -6626,6 +6844,20 @@ and @code{deserialize_regexp}.")
(description "Role::Tiny is a minimalist role composition tool.")
(license (package-license perl))))
+;; Some packages don't yet work with this newer version of ‘Role::Tiny’.
+(define-public perl-role-tiny-2
+ (package
+ (inherit perl-role-tiny)
+ (version "2.000006")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+ "Role-Tiny-" version ".tar.gz"))
+ (sha256
+ (base32
+ "10p3sc639c0nj56bb77a2wg8samyyl8sqpliv3n8c0jaj2642wyc"))))))
+
(define-public perl-safe-isa
(package
(name "perl-safe-isa")
@@ -6865,6 +7097,20 @@ on the length of the size.")
run from within a source-controlled directory.")
(license (package-license perl))))
+;; Some packages don't yet work with this newer version of ‘strictures’.
+(define-public perl-strictures-2
+ (package
+ (inherit perl-strictures)
+ (version "2.000003")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+ "strictures-" version ".tar.gz"))
+ (sha256
+ (base32
+ "08mgvf1d2651gsg3jgjfs13878ndqa4ji8vfsda9f7jjd84ymy17"))))))
+
(define-public perl-string-camelcase
(package
(name "perl-string-camelcase")
@@ -6894,6 +7140,28 @@ run from within a source-controlled directory.")
CamelCase and back again.")
(license (package-license perl))))
+(define-public perl-string-escape
+ (package
+ (name "perl-string-escape")
+ (version "2010.002")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/E/EV/EVO/String-Escape-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "12ls7f7847i4qcikkp3skwraqvjphjiv2zxfhl5d49326f5myr7x"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/String-Escape/")
+ (synopsis "Backslash escapes, quoted phrase, word elision, etc.")
+ (description "This module provides a flexible calling interface to some
+frequently-performed string conversion functions, including applying and
+expanding standard C/Unix-style backslash escapes like \n and \t, wrapping and
+removing double-quotes, and truncating to fit within a desired length.")
+ (license (package-license perl))))
+
(define-public perl-string-rewriteprefix
(package
(name "perl-string-rewriteprefix")
@@ -7069,6 +7337,30 @@ specification is omitted in the name, then the current package is used. The
return value is the sub.")
(license (package-license perl))))
+(define-public perl-sub-quote
+ (package
+ (name "perl-sub-quote")
+ (version "2.004000")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1zrh3apxsw1ks25zkh9dcn00656rsvq4mimqz3w8p37s2c1m4qaq"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-fatal" ,perl-test-fatal)))
+ (propagated-inputs
+ `(("perl-sub-name" ,perl-sub-name)))
+ (home-page "http://search.cpan.org/dist/Sub-Quote/")
+ (synopsis "Efficient generation of subroutines via string eval")
+ (description "Sub::Quote provides an efficient generation of subroutines
+via string eval.")
+ (license (package-license perl))))
+
(define-public perl-sub-uplevel
(package
(name "perl-sub-uplevel")
@@ -8331,6 +8623,27 @@ UNIVERSAL::can() as a function, which it is not.")
UNIVERSAL::isa as a function.")
(license (package-license perl))))
+(define-public perl-universal-require
+ (package
+ (name "perl-universal-require")
+ (version "0.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1v9qdg80ng6dzyzs7cn8sb6mn8ym042i32lcnpd478b7g6l3d9xj"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/UNIVERSAL-require/")
+ (synopsis "Require modules from a variable")
+ (description "This module lets you require other modules where the module
+name is in a variable, something you can't do with the @code{require}
+built-in.")
+ (license (package-license perl))))
+
(define-public perl-variable-magic
(package
(name "perl-variable-magic")
@@ -8817,3 +9130,101 @@ till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and
4:15pm\" and \"in the first half of each minute\" and \"in January of
1998\".")
(license perl-license)))
+
+(define-public perl-path-iterator-rule
+ (package
+ (name "perl-path-iterator-rule")
+ (version "1.012")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1z76avwvwgv4bw28kzx79mmb4449s5l345sn0wljq3dbf4wqigd1"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-file-pushd" ,perl-file-pushd)
+ ("perl-path-tiny" ,perl-path-tiny)
+ ("perl-test-deep" ,perl-test-deep)
+ ("perl-test-filename" ,perl-test-filename)))
+ (propagated-inputs
+ `(("perl-number-compare" ,perl-number-compare)
+ ("perl-text-glob" ,perl-text-glob)
+ ("perl-try-tiny" ,perl-try-tiny)))
+ (home-page "http://search.cpan.org/dist/Path-Iterator-Rule/")
+ (synopsis "Iterative, recursive file finder")
+ (description "Path::Iterator::Rule iterates over files and directories to
+identify ones matching a user-defined set of rules. The API is based heavily
+on File::Find::Rule, but with more explicit distinction between matching rules
+and options that influence how directories are searched. A
+Path::Iterator::Rule object is a collection of rules (match criteria) with
+methods to add additional criteria. Options that control directory traversal
+are given as arguments to the method that generates an iterator.
+
+A summary of features for comparison to other file finding modules:
+
+@itemize
+@item provides many helper methods for specifying rules
+@item offers (lazy) iterator and flattened list interfaces
+@item custom rules implemented with callbacks
+@item breadth-first (default) or pre- or post-order depth-first searching
+@item follows symlinks (by default, but can be disabled)
+@item directories visited only once (no infinite loop; can be disabled)
+@item doesn't chdir during operation
+@item provides an API for extensions
+@end itemize
+
+As a convenience, the PIR module is an empty subclass of this one that is less
+arduous to type for one-liners.")
+ (license asl2.0)))
+
+(define-public perl-pod-constants
+ (package
+ (name "perl-pod-constants")
+ (version "0.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MG/MGV/Pod-Constants-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1njgr2zly9nrwvfrjhgk9dqq48as1pmbb2rs4bh3irvla75v7azg"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Pod-Constants/")
+ (synopsis "Include constants from POD")
+ (description "This module allows you to specify those constants that
+should be documented in your POD, and pull them out a run time in a fairly
+arbitrary fashion.
+
+Pod::Constants uses Pod::Parser to do the parsing of the source file. It has
+to open the source file it is called from, and does so directly either by
+lookup in %INC or by assuming it is $0 if the caller is @code{main}
+(or it can't find %INC{caller()}).")
+ (license artistic2.0)))
+
+(define-public perl-regexp-pattern
+ (package
+ (name "perl-regexp-pattern")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/P/PE/PERLANCAR/Regexp-Pattern-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0rwpl6dxd1yl2ng3d4jdy68jz3mggmdl35rphrw1x619sm1aa876"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-exception" ,perl-test-exception)))
+ (home-page "http://search.cpan.org/dist/Regexp-Pattern/")
+ (synopsis "Collection of regexp patterns")
+ (description "Regexp::Pattern is a convention for organizing reusable
+regexp patterns in modules.")
+ (license (package-license perl))))
diff --git a/gnu/packages/pumpio.scm b/gnu/packages/pumpio.scm
index e89418b6b1..b8741520f0 100644
--- a/gnu/packages/pumpio.scm
+++ b/gnu/packages/pumpio.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,7 +31,7 @@
(define-public pumpa
(package
(name "pumpa")
- (version "0.9.2")
+ (version "0.9.3")
(source (origin
(method git-fetch) ; no source tarballs
(uri (git-reference
@@ -38,7 +39,7 @@
(commit (string-append "v" version))))
(sha256
(base32
- "09www29s4ldvd6apr73w7r4nmq93rcl2d182fylwgfcnncbvpy8s"))
+ "14072vis539zjgryjr5a77j2cprxii5znyg3p01qbb11lijk9nj7"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -57,7 +58,7 @@
;; Run qmake with proper installation prefix.
(let ((prefix (string-append "PREFIX="
(assoc-ref outputs "out"))))
- (zero? (system* "qmake" prefix)))
+ (invoke "qmake" prefix))
#t)))))
(inputs
`(("aspell" ,aspell)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3e410b0a51..d2c2c0b266 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -12756,14 +12756,14 @@ and other tools.")
(define-public bpython
(package
(name "bpython")
- (version "0.17")
+ (version "0.17.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bpython" version))
(sha256
(base32
- "1mbah208jhd7bsfaa17fwpi55f7fvif0ghjwgrjmpmx8w1vqab9l"))))
+ "0bxhxi5zxdkrf8b4gwn0d363kdz3qnypjwhm1aydki53ph8ca1w9"))))
(build-system python-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 396006b27a..5ea7858a89 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -303,14 +303,14 @@ destructors. It is the core memory allocator used in Samba.")
(define-public tevent
(package
(name "tevent")
- (version "0.9.35")
+ (version "0.9.36")
(source (origin
(method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tevent/tevent-"
version ".tar.gz"))
(sha256
(base32
- "1s8nbkmqz8dzdlsd6qynhvyl05pw93r151f3i2kgjfpbck9ak8r5"))))
+ "0k1v4vnlzpf7h3p4khaw8a7damrc68g136bf2xzys08nzpinnaxx"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index d5286b312e..8947509cb1 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,37 +90,37 @@
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key inputs #:allow-other-keys)
- (and (zero? (system* "tar" "xzvf"
- (assoc-ref inputs "source")))
- (chdir ,(mit-scheme-source-directory (%current-system)
- version))
- (begin
- ;; Delete these dangling symlinks since they break
- ;; `patch-shebangs'.
- (for-each delete-file
- (append '("src/lib/shim-config.scm")
- (find-files "src/lib/lib" "\\.so$")
- (find-files "src/lib" "^liarc-")
- (find-files "src/compiler" "^make\\.")))
- (chdir "src")
- #t))))
+ (invoke "tar" "xzvf"
+ (assoc-ref inputs "source"))
+ (chdir ,(mit-scheme-source-directory (%current-system)
+ version))
+ ;; Delete these dangling symlinks since they break
+ ;; `patch-shebangs'.
+ (for-each delete-file
+ (append '("src/lib/shim-config.scm")
+ (find-files "src/lib/lib" "\\.so$")
+ (find-files "src/lib" "^liarc-")
+ (find-files "src/compiler" "^make\\.")))
+ (chdir "src")
+ #t))
(replace 'build
(lambda* (#:key system outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(if (or (string-prefix? "x86_64" system)
(string-prefix? "i686" system))
- (zero? (system* "make" "compile-microcode"))
- (zero? (system* "./etc/make-liarc.sh"
- (string-append "--prefix=" out)))))))
+ (invoke "make" "compile-microcode")
+ (invoke "./etc/make-liarc.sh"
+ (string-append "--prefix=" out)))
+ #t)))
(add-after 'configure 'configure-doc
(lambda* (#:key outputs inputs #:allow-other-keys)
(with-directory-excursion "../doc"
(let* ((out (assoc-ref outputs "out"))
(bash (assoc-ref inputs "bash"))
(bin/sh (string-append bash "/bin/sh")))
- (system* bin/sh "./configure"
- (string-append "--prefix=" out)
- (string-append "SHELL=" bin/sh))
+ (invoke bin/sh "./configure"
+ (string-append "--prefix=" out)
+ (string-append "SHELL=" bin/sh))
(substitute* '("Makefile" "make-common")
(("/lib/mit-scheme/doc")
(string-append "/share/doc/" ,name "-" ,version)))
@@ -128,7 +128,8 @@
(add-after 'build 'build-doc
(lambda* _
(with-directory-excursion "../doc"
- (zero? (system* "make")))))
+ (invoke "make"))
+ #t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -138,7 +139,7 @@
(string-append doc "/share/doc/" ,name "-" ,version)))
(with-directory-excursion "../doc"
(for-each (lambda (target)
- (system* "make" target))
+ (invoke "make" target))
'("install-config" "install-info-gz" "install-man"
"install-html" "install-pdf")))
(mkdir-p new-doc/mit-scheme-dir)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 7ce531bb6d..6ff83ce5a4 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -46,15 +46,15 @@
(define-public ccid
(package
(name "ccid")
- (version "1.4.28")
+ (version "1.4.29")
(source (origin
(method url-fetch)
(uri (string-append
- "https://alioth.debian.org/frs/download.php/file/4230/"
+ "https://alioth.debian.org/frs/download.php/file/4238/"
"ccid-" version ".tar.bz2"))
(sha256
(base32
- "1q5dz1l049m3hmr370adhrqicdkldrr3l98svi02p5cxbnn3cn47"))))
+ "0kdqmbma6sclsrbxy9w85h7cs0v11if4nc2r9v09613k8pl2lhx5"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list (string-append "--enable-usbdropdir=" %output
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index ce6fdc709d..a0b482a671 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +29,7 @@
(define-public skalibs
(package
(name "skalibs")
- (version "2.3.10.0")
+ (version "2.6.3.1")
(source
(origin
(method url-fetch)
@@ -36,11 +37,10 @@
version ".tar.gz"))
(sha256
(base32
- "0i7af224kl1crxgml09wx0x6q8ab79vnyrllfwv2lnq585wi9mg4"))))
+ "108c4vslsfy57892ybbksscrjd4bx444hzzcq2g5wdg2sh0cl245"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags '("--enable-force-devr") ; do not analyze /dev/random
- #:tests? #f ; no tests exist
+ '(#:tests? #f ; no tests exist
#:phases (modify-phases %standard-phases
(add-after 'unpack 'reproducible
(lambda _
@@ -50,7 +50,7 @@
(("\\$\\(wildcard src/lib\\*/\\*.c\\)")
"$(sort $(wildcard src/lib*/*.c))"))
#t)))))
- (home-page "http://skarnet.org/software/skalibs/")
+ (home-page "https://skarnet.org/software/skalibs/")
(synopsis "Platform abstraction libraries for skarnet.org software")
(description
"This package provides lightweight C libraries isolating the developer
@@ -62,7 +62,7 @@ and file system operations. It is used by all skarnet.org software.")
(define-public execline
(package
(name "execline")
- (version "2.1.5.0")
+ (version "2.3.0.4")
(source
(origin
(method url-fetch)
@@ -70,7 +70,7 @@ and file system operations. It is used by all skarnet.org software.")
version ".tar.gz"))
(sha256
(base32
- "0hhirdmyh3sj9qagkis7addmmdvyic717wkb6ym3n63kvfk0adla"))))
+ "0jx60wjz3yj3r1wircbvd15in275pi7ggw69pbs9djhcyb48zfz4"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)))
(arguments
@@ -90,7 +90,7 @@ and file system operations. It is used by all skarnet.org software.")
(wrap-program (string-append bin "/execlineb")
`("PATH" ":" prefix (,bin)))))))
#:tests? #f)) ; No tests exist.
- (home-page "http://skarnet.org/software/execline/")
+ (home-page "https://skarnet.org/software/execline/")
(license isc)
(synopsis "Non-interactive shell-like language with minimal overhead")
(description
@@ -105,7 +105,7 @@ complexity.")))
(define-public s6
(package
(name "s6")
- (version "2.3.0.0")
+ (version "2.7.0.0")
(source
(origin
(method url-fetch)
@@ -113,7 +113,7 @@ complexity.")))
version ".tar.gz"))
(sha256
(base32
- "1rp8i228zxzbia1799pdav1kkzdk96fax9bcfyf2gilkdm3s1ja9"))))
+ "04vfviw00zvvb1mdpl78zdgzd7j491f1lahhqrkkq9vk5kwcn5v6"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)
("execline" ,execline)))
@@ -129,7 +129,7 @@ complexity.")))
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:tests? #f))
- (home-page "http://skarnet.org/software/s6")
+ (home-page "https://skarnet.org/software/s6")
(license isc)
(synopsis "Small suite of programs for process supervision")
(description
@@ -144,7 +144,7 @@ functionality with a very small amount of code.")))
(define-public s6-dns
(package
(name "s6-dns")
- (version "2.0.1.0")
+ (version "2.3.0.0")
(source
(origin
(method url-fetch)
@@ -152,7 +152,7 @@ functionality with a very small amount of code.")))
version ".tar.gz"))
(sha256
(base32
- "1ji47iy8czx4jmi763dxd6lgjbnp4vqqgcijh46ym65l0a97z04w"))))
+ "0h47ldxvh9cny91r0pjxq7zr5iqpqf1j50p3ip42f6bl90z5ha58"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)))
(arguments
@@ -164,7 +164,7 @@ functionality with a very small amount of code.")))
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:tests? #f))
- (home-page "http://skarnet.org/software/s6-dns")
+ (home-page "https://skarnet.org/software/s6-dns")
(license isc)
(synopsis "Suite of DNS client programs")
(description
@@ -174,7 +174,7 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
(define-public s6-networking
(package
(name "s6-networking")
- (version "2.1.1.0")
+ (version "2.3.0.2")
(source
(origin
(method url-fetch)
@@ -182,7 +182,7 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
version ".tar.gz"))
(sha256
(base32
- "0r8gfv0l2k449nacjy919gqlgn25q7fjxaqra5r37k7kiikkgqfw"))))
+ "06j8fpldn187cmbjqp191hd65ka3ys19vj3jm3kcvkmvd9snh6fq"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)
("execline" ,execline)
@@ -206,7 +206,7 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:tests? #f))
- (home-page "http://skarnet.org/software/s6-networking")
+ (home-page "https://skarnet.org/software/s6-networking")
(license isc)
(synopsis "Suite of network utilities for Unix systems")
(description
@@ -218,7 +218,7 @@ clock synchronization.")))
(define-public s6-rc
(package
(name "s6-rc")
- (version "0.0.3.0")
+ (version "0.4.0.0")
(source
(origin
(method url-fetch)
@@ -226,7 +226,7 @@ clock synchronization.")))
version ".tar.gz"))
(sha256
(base32
- "0bl94lbaphbpaaj4wbb86xqgp5bcgrf3m7p80mimw1qsjrvlxfay"))))
+ "1fkg9635cvrf6gw055y346a3n634dy2xiwbypawi68flfprfgf4n"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)
("execline" ,execline)
@@ -246,7 +246,7 @@ clock synchronization.")))
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:tests? #f))
- (home-page "http://skarnet.org/software/s6-rc")
+ (home-page "https://skarnet.org/software/s6-rc")
(license isc)
(synopsis "Service manager for s6-based systems")
(description
@@ -260,7 +260,7 @@ environment.")))
(define-public s6-portable-utils
(package
(name "s6-portable-utils")
- (version "2.0.6.0")
+ (version "2.2.1.1")
(source
(origin
(method url-fetch)
@@ -269,7 +269,7 @@ environment.")))
version ".tar.gz"))
(sha256
(base32
- "0jwxj0ma4zd1h6i3i98nsp0miidr54phap7dqwf6c8vafq9psfr3"))))
+ "0ca5iiq3n6isj64jb81xpwjzjx1q8jg145nnnn91ra2qqk93kqka"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)))
(arguments
@@ -281,7 +281,7 @@ environment.")))
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:tests? #f))
- (home-page "http://skarnet.org/software/s6-portable-utils")
+ (home-page "https://skarnet.org/software/s6-portable-utils")
(license isc)
(synopsis "Tiny command-line Unix utilities")
(description
@@ -290,10 +290,48 @@ performing well-known tasks such as @command{cut} and @command{grep}, but
optimized for simplicity and small size. They were designed for embedded
systems and other constrained environments, but they work everywhere.")))
+(define-public s6-linux-init
+ (package
+ (name "s6-linux-init")
+ (version "0.3.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://skarnet.org/software/s6-linux-init/s6-linux-init-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0yfxrjqlbb6kac4gcn78phxbwp5sj9jmc1vxpsrbql62mfjyiqly"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("skalibs" ,skalibs)))
+ (arguments
+ '(#:configure-flags
+ (list
+ (string-append "--with-lib="
+ (assoc-ref %build-inputs "skalibs")
+ "/lib/skalibs")
+ (string-append "--with-sysdeps="
+ (assoc-ref %build-inputs "skalibs")
+ "/lib/skalibs/sysdeps"))
+ #:tests? #f))
+ (home-page "https://skarnet.org/software/s6-linux-init")
+ (license isc)
+ (synopsis "Minimalistic tools to create an s6-based init system on Linux")
+ (description
+ " s6-linux-init is a set of minimalistic tools to create a s6-based init
+system, including an @command{/sbin/init} binary, on a Linux kernel.
+
+It is meant to automate creation of scripts revolving around the use of other
+skarnet.org tools, especially s6, in order to provide a complete booting
+environment with integrated supervision and logging without having to hand-craft
+all the details. ")))
+
(define-public s6-linux-utils
(package
(name "s6-linux-utils")
- (version "2.1.0.0")
+ (version "2.4.0.2")
(source
(origin
(method url-fetch)
@@ -302,7 +340,7 @@ systems and other constrained environments, but they work everywhere.")))
version ".tar.gz"))
(sha256
(base32
- "1bby751blynb7p8wd3npjm71lf10ysmfvqrd3dqrhhajpa2bl8rm"))))
+ "0245rmk7wfyyfsi4g7f0niprwlvqlwkbyjxflb8kkbvhwfdavqip"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)))
(arguments
@@ -314,7 +352,7 @@ systems and other constrained environments, but they work everywhere.")))
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:tests? #f))
- (home-page "http://skarnet.org/software/s6-linux-utils")
+ (home-page "https://skarnet.org/software/s6-linux-utils")
(license isc)
(synopsis "Set of minimalistic Linux-specific system utilities")
(description
diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm
index b0a7ff0cfc..abc00c1a89 100644
--- a/gnu/packages/slang.scm
+++ b/gnu/packages/slang.scm
@@ -37,16 +37,14 @@
(define-public slang
(package
(name "slang")
- (version "2.3.0")
+ (version "2.3.1a")
(source (origin
(method url-fetch)
- (uri (string-append
- "http://www.jedsoft.org/releases/slang/slang-"
- version
- ".tar.gz"))
+ (uri (string-append "http://www.jedsoft.org/releases/slang/slang-"
+ version ".tar.bz2"))
(sha256
(base32
- "0aqd2cjabj6nhd4r3dc4vhqif2bf3dmqnrn2gj0xm4gqyfd177jy"))
+ "0dlcy0hn0j6cj9qj5x6hpb0axifnvzzmv5jqq0wq14fygw0c7w2l"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index f3e1135253..c1012a635b 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -965,16 +965,17 @@ transliteration, concatenation, date-time formatting and parsing, etc.")
(define-public r-stringr
(package
(name "r-stringr")
- (version "1.2.0")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringr" version))
(sha256
- (base32 "16hj2rmv8x03lp6cp2jk0k2plibvbggf444kp05przdvd03v7l31"))))
+ (base32 "07dvfbkhv8gk6l32j43jvxpmqlhqp0mdby406h5a3bsc6k94ic13"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-magrittr" ,r-magrittr)
+ `(("r-glue" ,r-glue)
+ ("r-magrittr" ,r-magrittr)
("r-stringi" ,r-stringi)))
(home-page "https://github.com/hadley/stringr")
(synopsis "Simple, consistent wrappers for common string operations")
@@ -1347,13 +1348,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(define-public r-knitr
(package
(name "r-knitr")
- (version "1.19")
+ (version "1.20")
(source (origin
(method url-fetch)
(uri (cran-uri "knitr" version))
(sha256
(base32
- "1gyj9bw90h4h9rc9k1iqrnzirm2f8mj45zi8bkjc6rp610vlh63j"))))
+ "1408dm25cxahk2clff8hlajaqdj5v1gs40nm3q6rf0ghd82hj93v"))))
(build-system r-build-system)
(propagated-inputs
`(("r-evaluate" ,r-evaluate)
@@ -1549,13 +1550,13 @@ defined in different packages.")
(define-public r-rlang
(package
(name "r-rlang")
- (version "0.1.6")
+ (version "0.2.0")
(source (origin
(method url-fetch)
(uri (cran-uri "rlang" version))
(sha256
(base32
- "1x62assn8m7cd0q75r809gxsdqmxmd2br1xz53ykzhrfz3j768kp"))))
+ "0f87fhw5pj6s2zjdxnpnd7pwn78czdz71b0xhm5adqg1p38sfwj8"))))
(build-system r-build-system)
(home-page "http://rlang.tidyverse.org")
(synopsis "Functions for base types, core R and Tidyverse features")
@@ -1627,14 +1628,14 @@ database.")
(define-public r-dbplyr
(package
(name "r-dbplyr")
- (version "1.2.0")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "dbplyr" version))
(sha256
(base32
- "17br61mhssi2pm6v8604f89ykglng3qp9ymfzmhw10cary6zm982"))))
+ "1nwrls9c3kc9q7405jp6b9sh23642sz13yw55iikgw134shffj5k"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@@ -2330,13 +2331,13 @@ informative error messages when it's not available.")
(define-public r-devtools
(package
(name "r-devtools")
- (version "1.13.4")
+ (version "1.13.5")
(source (origin
(method url-fetch)
(uri (cran-uri "devtools" version))
(sha256
(base32
- "1az1qf50vyhm4w6k2a6wqw3pqc8jv2iqzdhs36cg079hx9swm0mb"))))
+ "1x3wsk7dh3yakii61kbfvafx9yz66h40ixiwfkf03dnp2n24hngs"))))
(build-system r-build-system)
(propagated-inputs
`(("r-digest" ,r-digest)
@@ -2747,18 +2748,21 @@ ldap, and also supports cookies, redirects, authentication, etc.")
(define-public r-xml
(package
(name "r-xml")
- (version "3.98-1.9")
+ (version "3.98-1.10")
(source (origin
(method url-fetch)
(uri (cran-uri "XML" version))
(sha256
(base32
- "1hzkdkgs0nzmfg9wm7kyh1j9i0i2g7925whzlihqvg9grdlh3dx3"))))
+ "1faza9bbllp67lf1yv1sllxc3iv8llz52m9diazhq322iqbh97m1"))))
(properties
`((upstream-name . "XML")))
(build-system r-build-system)
(inputs
- `(("libxml2" ,libxml2)))
+ `(("libxml2" ,libxml2)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(home-page "http://www.omegahat.org/RSXML")
(synopsis "Tools for parsing and generating XML within R")
(description
@@ -5407,18 +5411,19 @@ and the corresponding decision threshold.")
(define-public r-forcats
(package
(name "r-forcats")
- (version "0.2.0")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "forcats" version))
(sha256
(base32
- "1mvwkynvvgz2vi8dyz11x7xrp53kadjawjcja34hwk1d89qf7g5m"))))
+ "0mxn1hng43zdjh1v8shd80hrszrqahcpaqxs1s1sif0qxh84d0cm"))))
(build-system r-build-system)
(propagated-inputs
`(("r-magrittr" ,r-magrittr)
- ("r-tibble" ,r-tibble)))
+ ("r-tibble" ,r-tibble)
+ ("r-rlang" ,r-rlang)))
(home-page "http://forcats.tidyverse.org")
(synopsis "Tools for working with factors")
(description "This package provides helpers for reordering factor
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index ee316c2289..9e06e675f4 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -787,7 +787,7 @@ then ported to the GNU / Linux environment.")
(define-public mbedtls-apache
(package
(name "mbedtls-apache")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
@@ -797,7 +797,7 @@ then ported to the GNU / Linux environment.")
version "-apache.tgz"))
(sha256
(base32
- "11wnj34rfqxjggmdgf042i49lr6civgbqwv2p7p8bn6k2919vg4r"))))
+ "1vsmgxnw7dpvma51896n63yaf9sncmf885ax2jfcg89ssin6vdmf"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 5e2c990469..8764cea9a6 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -29,14 +29,14 @@
(define-public miniupnpc
(package
(name "miniupnpc")
- (version "2.0.20180203")
+ (version "2.0.20180222")
(source
(origin
(method url-fetch)
(uri (string-append "https://miniupnp.tuxfamily.org/files/"
name "-" version ".tar.gz"))
(sha256
- (base32 "1dr0qaf2qz49aawgsnv7l41rda5yvdk3qfz2hd5cv9iwav3sipch"))))
+ (base32 "0xavcrifk8v8gwig3mj0kjkm7rvw1kbsxcs4jxrrzl39cil48yaq"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 75160c3376..91698b5f7f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -636,35 +636,30 @@ default) of the repository.")
(define-public shflags
(package
(name "shflags")
- (version "1.2.0")
+ (version "1.2.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/kward/shflags/archive/v"
version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0zxw12haylaq60a335xlqcs4afw2zrgwqymmpw0m21r51w6irdmr"))))
- (build-system trivial-build-system)
+ "1h9xfrwwdhzflipfwdcgcc3y7zapdslnyk1rg5y8jm7k144rfrs4"))))
+ (build-system gnu-build-system)
(native-inputs `(("tar" ,tar)
("gzip" ,gzip)))
(arguments
- `(#:modules ((guix build utils))
- #:builder (begin
- (use-modules (guix build utils))
- (let* ((source (assoc-ref %build-inputs "source"))
- (tar (assoc-ref %build-inputs "tar"))
- (gzip (assoc-ref %build-inputs "gzip"))
- (output (assoc-ref %outputs "out"))
- (srcdir (string-append output "/src")))
- (begin
- (setenv "PATH" (string-append gzip "/bin"))
- (system* (string-append tar "/bin/tar") "xzf"
- source)
- (chdir ,(string-append name "-" version))
- (mkdir-p srcdir)
- (copy-file "src/shflags"
- (string-append srcdir "/shflags"))
- #t)))))
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; nothing to configure
+ (delete 'build) ; nothing to build
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (src (string-append out "/src")))
+ (install-file "shflags" src)
+ #t))))))
(home-page "https://github.com/kward/shflags")
(synopsis "Command-line flags library for shell scripts")
(description
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 25b243ab63..287d142958 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -245,18 +245,18 @@ television and DVD. It is also known as AC-3.")
(define-public libx264
(package
(name "libx264")
- (version "20170316-2245")
+ (version "20180219-2245")
(source (origin
(method url-fetch)
(uri (string-append "https://download.videolan.org/pub/x264/snapshots/"
- "x264-snapshot-" version ".tar.bz2"))
+ "x264-snapshot-" version "-stable.tar.bz2"))
(sha256
(base32
- "1s1nnvl3axz38sv4g09skijl6k9mbbngbb1nsh26w4dr2w2gyzad"))))
+ "1x0cg8l30wp84mr7q0ddp06jclm0kjrszazrx87d4k7js3qxjy8m"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
- ("yasm" ,yasm)))
+ ("nasm" ,nasm)))
;; TODO: Add gpac input
(arguments
`(#:tests? #f ;no check target
@@ -1275,7 +1275,7 @@ other site that youtube-dl supports.")
(define-public you-get
(package
(name "you-get")
- (version "0.4.1011")
+ (version "0.4.1025")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1284,7 +1284,7 @@ other site that youtube-dl supports.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0cdbh5w0chw3dlrwizm91l6sgkkzy7p6h0072dai4xbw5zgld31k"))))
+ "10103jw1gzar85jlajzl9wslk08vw21n26hkhfcz5bvkm9lxxs2c"))))
(build-system python-build-system)
(inputs
`(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos
@@ -1737,7 +1737,12 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))))
+ "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; As of glibc 2.26, <xlocale.h> no longer is.
+ '(substitute* "src/framework/mlt_property.h"
+ (("xlocale\\.h") "locale.h")))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d49cdc208a..f8f9de16fc 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -82,16 +82,14 @@
(define-public qemu
(package
(name "qemu")
- (version "2.10.2")
+ (version "2.11.1")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qemu.org/qemu-"
version ".tar.xz"))
- (patches (search-patches "qemu-CVE-2017-15038.patch"
- "qemu-CVE-2017-15289.patch"))
(sha256
(base32
- "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))))
+ "11l6cs6mib16rgdrnqrhkqs033fjik316gkgfz3asbmxz38lalca"))))
(build-system gnu-build-system)
(arguments
'(;; Running tests in parallel can occasionally lead to failures, like:
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 4185064d8d..1d83b6f363 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -158,7 +158,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-icd-loader
(package
(name "vulkan-icd-loader")
- (version "1.0.65.2")
+ (version "1.0.68.0")
(source
(origin
(method url-fetch)
@@ -167,11 +167,20 @@ interpretation of the specifications for these languages.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "1ivvmb977n2xp95v3sryhflvryy3mxrcwrd1hnr2dmri40vg1sl8"))))
+ "1n5gry5zxpwi7330fmi06snalra8hkbbw68gnwbp531kd5ycyinh"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh".
- #:configure-flags (list (string-append "-DCMAKE_INSTALL_LIBDIR="
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-spirv-tools-commit-id
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Remove lines trying to build in a git commit id.
+ (substitute* "CMakeLists.txt" ((".*spirv_tools_commit_id.h.*") ""))
+ #t)))
+ #:configure-flags (list
+ "-DBUILD_LAYERS=OFF" ; FIXME: Fails to build.
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
(assoc-ref %outputs "out") "/lib"))))
(inputs `(("glslang" ,glslang)
("libxcb" ,libxcb)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 5219d30e04..ea302aa469 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -182,14 +182,14 @@ Interface} specification.")
(name "nginx")
;; Consider updating the nginx-documentation package if the nginx package is
;; updated.
- (version "1.13.8")
+ (version "1.13.9")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "1ib4hkngj9z7pl73lnn96d85m7v2wwb56nkypwx7d6pm3z1vc444"))))
+ "0hpsyxpxj89p5vrzv9p1hp7xjbnj5c1w6fdy626ycvsiay4a3bjz"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)
@@ -5654,14 +5654,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
(define-public java-tomcat
(package
(name "java-tomcat")
- (version "8.5.23")
+ (version "8.5.28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/tomcat/tomcat-8/v"
version "/src/apache-tomcat-" version "-src.tar.gz"))
(sha256
(base32
- "1m6b1dikib46kbgz9gf0p6svi00nsw62b9kgjzn6sda151skbbza"))))
+ "0q2bc3sajrmcx3z3vhhwp78y47ryc2ky8ssbdmfk24zvqdb76hvl"))))
(build-system ant-build-system)
(inputs
`(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 0cf6c1a2de..888173313b 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018 ng0 <ng0@crash.cx>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
@@ -46,6 +46,7 @@
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-web)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages gawk)
#:use-module (gnu packages base)
#:use-module (gnu packages pkg-config)
@@ -915,3 +916,55 @@ It is inspired by Xmonad and dwm. Its major features include:
@end itemize\n")
(home-page "https://github.com/conformal/spectrwm")
(license license:isc)))
+
+(define-public cwm
+ (package
+ (name "cwm")
+ (version "6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://chneukirchen.org/releases/cwm-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1b8k2hjxpb0bzqjh2wj6mn2nf2360zacf8z19sw2rw5lxvmfy89x"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'build 'install-xsession
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Add a .desktop file to xsessions.
+ (let* ((output (assoc-ref outputs "out"))
+ (xsessions (string-append output "/share/xsessions")))
+ (mkdir-p xsessions)
+ (with-output-to-file
+ (string-append xsessions "/cwm.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=cwm~@
+ Comment=OpenBSD Calm Window Manager fork~@
+ Exec=~a/bin/cwm~@
+ TryExec=~@*~a/bin/cwm~@
+ Icon=~@
+ Type=Application~%"
+ output)))
+ #t))))))
+ (inputs
+ `(("libxft" ,libxft)
+ ("libxrandr" ,libxrandr)
+ ("libxinerama" ,libxinerama)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("bison" ,bison)))
+ (home-page "https://github.com/chneukirchen/cwm")
+ (synopsis "OpenBSD fork of the calmwm window manager")
+ (description "Cwm is a stacking window manager for X11. It is an OpenBSD
+project derived from the original Calm Window Manager.")
+ (license license:isc)))
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 84446d8ef0..ad264a24e8 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -97,6 +97,34 @@ a graphical user interface. It has language bindings for Python, Perl, Ruby
and many other languages.")
(license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
+(define-public wxwidgets-2
+ (package
+ (inherit wxwidgets)
+ (version "2.8.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/wxWidgets/wxWidgets/"
+ "releases/download/v" version
+ "/wxGTK-" version ".tar.gz"))
+ (sha256
+ (base32 "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk"))))
+ (inputs
+ `(("gtk" ,gtk+-2)
+ ("libjpeg" ,libjpeg)
+ ("libtiff" ,libtiff)
+ ("libmspack" ,libmspack)
+ ("sdl" ,sdl)
+ ("unixodbc" ,unixodbc)))
+ (arguments
+ `(#:configure-flags
+ '("--enable-unicode" "--with-regex=sys" "--with-sdl")
+ #:make-flags
+ (list (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib"))
+ ;; No 'check' target.
+ #:tests? #f))))
+
(define-public wxwidgets-gtk2
(package (inherit wxwidgets)
(inputs `(("gtk+" ,gtk+-2)
@@ -126,6 +154,14 @@ and many other languages.")
((#:configure-flags flags)
`(cons "--enable-mediactrl" ,flags))))))
+(define-public wxwidgets-gtk2-3.1
+ (package (inherit wxwidgets-3.1)
+ (inputs `(("gtk+" ,gtk+-2)
+ ,@(alist-delete
+ "gtk+"
+ (package-inputs wxwidgets-3.1))))
+ (name "wxwidgets-gtk2")))
+
(define-public python2-wxpython
(package
(name "python2-wxpython")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index b78edf53fc..c16e5ecb13 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -4771,14 +4771,14 @@ common definitions and porting layer.")
(define-public xorgproto
(package
(name "xorgproto")
- (version "2018.2")
+ (version "2018.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://xorg/individual/proto/"
name "-" version ".tar.bz2"))
(sha256
(base32
- "0r3fk48vp24hk4viw4fjpyh0y7rdg13p5faxc0vicdyqcn5w02cp"))))
+ "1rdhw28n1gp7yylwia41jhih66gfx75nxgrmi2ggglzvzqhwr0x8"))))
(build-system gnu-build-system)
(propagated-inputs
;; To get util-macros in (almost?) all package inputs.
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index 8aac2638b3..066b8241b2 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,7 +32,8 @@
#:use-module (ice-9 match)
#:export (certbot-service-type
certbot-configuration
- certbot-configuration?))
+ certbot-configuration?
+ certificate-configuration))
;;; Commentary:
;;;
@@ -41,6 +42,16 @@
;;; Code:
+(define-record-type* <certificate-configuration>
+ certificate-configuration make-certificate-configuration
+ certificate-configuration?
+ (name certificate-configuration-name
+ (default #f))
+ (domains certificate-configuration-domains
+ (default '()))
+ (deploy-hook certificate-configuration-deploy-hook
+ (default #f)))
+
(define-record-type* <certbot-configuration>
certbot-configuration make-certbot-configuration
certbot-configuration?
@@ -48,8 +59,11 @@
(default certbot))
(webroot certbot-configuration-webroot
(default "/var/www"))
- (hosts certbot-configuration-hosts
+ (certificates certbot-configuration-certificates
(default '()))
+ (email certbot-configuration-email)
+ (rsa-key-size certbot-configuration-rsa-key-size
+ (default #f))
(default-location certbot-configuration-default-location
(default
(nginx-location-configuration
@@ -57,59 +71,75 @@
(body
(list "return 301 https://$host$request_uri;"))))))
-(define certbot-renewal-jobs
+(define certbot-command
(match-lambda
- (($ <certbot-configuration> package webroot hosts default-location)
- (match hosts
- ;; Avoid pinging certbot if we have no hosts.
- (() '())
- (_
- (list
- ;; Attempt to renew the certificates twice a week.
- #~(job (lambda (now)
- (next-day-from (next-hour-from now '(3))
- '(2 5)))
- (string-append #$package "/bin/certbot renew"
- (string-concatenate
- (map (lambda (host)
- (string-append " -d " host))
- '#$hosts))))))))))
+ (($ <certbot-configuration> package webroot certificates email
+ rsa-key-size default-location)
+ (let* ((certbot (file-append package "/bin/certbot"))
+ (rsa-key-size (and rsa-key-size (number->string rsa-key-size)))
+ (commands
+ (map
+ (match-lambda
+ (($ <certificate-configuration> custom-name domains
+ deploy-hook)
+ (let ((name (or custom-name (car domains))))
+ (append
+ (list name certbot "certonly" "-n" "--agree-tos"
+ "-m" email
+ "--webroot" "-w" webroot
+ "--cert-name" name
+ "-d" (string-join domains ","))
+ (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
+ (if deploy-hook `("--deploy-hook" ,deploy-hook) '())))))
+ certificates)))
+ (program-file
+ "certbot-command"
+ #~(begin
+ (use-modules (ice-9 match))
+ (let ((code 0))
+ (for-each
+ (match-lambda
+ ((name . command)
+ (begin
+ (format #t "Acquiring or renewing certificate: ~a~%" name)
+ (set! code (or (apply system* command) code)))))
+ '#$commands) code)))))))
-(define certbot-activation
- (match-lambda
- (($ <certbot-configuration> package webroot hosts default-location)
+(define (certbot-renewal-jobs config)
+ (list
+ ;; Attempt to renew the certificates twice per day, at a random minute
+ ;; within the hour. See https://certbot.eff.org/all-instructions/.
+ #~(job '(next-minute-from (next-hour '(0 12)) (list (random 60)))
+ #$(certbot-command config))))
+
+(define (certbot-activation config)
+ (match config
+ (($ <certbot-configuration> package webroot certificates email
+ rsa-key-size default-location)
(with-imported-modules '((guix build utils))
#~(begin
- (use-modules (guix build utils))
- (mkdir-p #$webroot)
- (for-each
- (lambda (host)
- (unless (file-exists? (in-vicinity "/etc/letsencrypt/live" host))
- (unless (zero? (system*
- (string-append #$certbot "/bin/certbot")
- "certonly" "--webroot" "-w" #$webroot
- "-d" host))
- (error "failed to acquire cert for host" host))))
- '#$hosts))))))
+ (use-modules (guix build utils))
+ (mkdir-p #$webroot)
+ (zero? (system* #$(certbot-command config))))))))
(define certbot-nginx-server-configurations
(match-lambda
- (($ <certbot-configuration> package webroot hosts default-location)
- (map
- (lambda (host)
- (nginx-server-configuration
- (listen '("80"))
- (ssl-certificate #f)
- (ssl-certificate-key #f)
- (server-name (list host))
- (locations
- (filter identity
- (list
- (nginx-location-configuration
- (uri "/.well-known")
- (body (list (list "root " webroot ";"))))
- default-location)))))
- hosts))))
+ (($ <certbot-configuration> package webroot certificates email
+ rsa-key-size default-location)
+ (list
+ (nginx-server-configuration
+ (listen '("80" "[::]:80"))
+ (ssl-certificate #f)
+ (ssl-certificate-key #f)
+ (server-name
+ (apply append (map certificate-configuration-domains certificates)))
+ (locations
+ (filter identity
+ (list
+ (nginx-location-configuration
+ (uri "/.well-known")
+ (body (list (list "root " webroot ";"))))
+ default-location))))))))
(define certbot-service-type
(service-type (name 'certbot)
@@ -121,12 +151,13 @@
(service-extension mcron-service-type
certbot-renewal-jobs)))
(compose concatenate)
- (extend (lambda (config additional-hosts)
+ (extend (lambda (config additional-certificates)
(certbot-configuration
(inherit config)
- (hosts (append (certbot-configuration-hosts config)
- additional-hosts)))))
- (default-value (certbot-configuration))
+ (certificates
+ (append
+ (certbot-configuration-certificates config)
+ additional-certificates)))))
(description
"Automatically renew @url{https://letsencrypt.org, Let's
Encrypt} HTTPS certificates by adjusting the nginx web server configuration
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 50af2408b1..ea8433af3a 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -437,7 +437,9 @@ desktop session from the system or user profile will be used."
(auto-login-session slim-configuration-auto-login-session
(default #f))
(startx slim-configuration-startx
- (default (xorg-start-command))))
+ (default (xorg-start-command)))
+ (sessreg slim-configuration-sessreg
+ (default sessreg)))
(define (slim-pam-service config)
"Return a PAM service for @command{slim}."
@@ -454,7 +456,8 @@ desktop session from the system or user profile will be used."
(xauth (slim-configuration-xauth config))
(startx (slim-configuration-startx config))
(shepherd (slim-configuration-shepherd config))
- (theme-name (slim-configuration-theme-name config)))
+ (theme-name (slim-configuration-theme-name config))
+ (sessreg (slim-configuration-sessreg config)))
(mixed-text-file "slim.cfg" "
default_path /run/current-system/profile/bin
default_xserver " startx "
@@ -467,6 +470,8 @@ authfile /var/run/slim.auth
login_cmd exec " xinitrc " %session
sessiondir /run/current-system/profile/share/xsessions
session_msg session (F1 to change):
+sessionstart_cmd " sessreg "/bin/sessreg -a -l $DISPLAY %user
+sessionstop_cmd " sessreg "/bin/sessreg -d -l $DISPLAY %user
halt_cmd " shepherd "/sbin/halt
reboot_cmd " shepherd "/sbin/reboot\n"