Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2018-02-24 21:49:30 +01:00
commit e58bf025df
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
79 changed files with 3141 additions and 1998 deletions

View File

@ -30,7 +30,7 @@ Copyright @copyright{} 2016, 2017 ng0@*
Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@*
Copyright @copyright{} 2016 Julien Lepiller@*
Copyright @copyright{} 2016 Alex ter Weele@*
Copyright @copyright{} 2017 Clément Lassieur@*
Copyright @copyright{} 2017, 2018 Clément Lassieur@*
Copyright @copyright{} 2017 Mathieu Othacehe@*
Copyright @copyright{} 2017 Federico Beffa@*
Copyright @copyright{} 2017 Carlo Zancanaro@*
@ -7231,6 +7231,15 @@ As an example, @var{file} might contain a definition like this
@verbatiminclude environment-gdb.scm
@end example
@item --manifest=@var{file}
@itemx -m @var{file}
Create an environment for the packages contained in the manifest object
returned by the Scheme code in @var{file}.
This is similar to the same-named option in @command{guix package}
(@pxref{profile-manifest, @option{--manifest}}) and uses the same
manifest files.
@item --ad-hoc
Include all specified packages in the resulting environment, as if an
@i{ad hoc} package were defined with them as inputs. This option is
@ -11263,6 +11272,9 @@ The XAuth package to use.
The Shepherd package used when invoking @command{halt} and
@command{reboot}.
@item @code{sessreg} (default: @code{sessreg})
The sessreg package used in order to register the session.
@item @code{slim} (default: @code{slim})
The SLiM package to use.
@end table
@ -15721,14 +15733,48 @@ signature.
The certbot service automates this process: the initial key
generation, the initial certification request to the Let's Encrypt
service, the web server challenge/response integration, writing the
certificate to disk, and the automated periodic renewals.
certificate to disk, the automated periodic renewals, and the deployment
tasks associated with the renewal (e.g. reloading services, copying keys
with different permissions).
Certbot is run twice a day, at a random minute within the hour. It
won't do anything until your certificates are due for renewal or
revoked, but running it regularly would give your service a chance of
staying online in case a Let's Encrypt-initiated revocation happened for
some reason.
By using this service, you agree to the ACME Subscriber Agreement, which
can be found there:
@url{https://acme-v01.api.letsencrypt.org/directory}.
@defvr {Scheme Variable} certbot-service-type
A service type for the @code{certbot} Let's Encrypt client.
A service type for the @code{certbot} Let's Encrypt client. Its value
must be a @code{certbot-configuration} record as in this example:
@example
(define %nginx-deploy-hook
(program-file
"nginx-deploy-hook"
#~(let ((pid (call-with-input-file "/var/run/nginx/pid" read)))
(kill pid SIGHUP))))
(service certbot-service-type
(certbot-configuration
(email "foo@@example.net")
(certificates
(list
(certificate-configuration
(domains '("example.net" "www.example.net"))
(deploy-hook %nginx-deploy-hook))
(certificate-configuration
(domains '("bar.example.net")))))))
@end example
See below for details about @code{certbot-configuration}.
@end defvr
@deftp {Data Type} certbot-configuration
Data type representing the configuration of the @code{certbot} serice.
Data type representing the configuration of the @code{certbot} service.
This type has the following parameters:
@table @asis
@ -15739,16 +15785,24 @@ The certbot package to use.
The directory from which to serve the Let's Encrypt challenge/response
files.
@item @code{hosts} (default: @code{()})
A list of hosts for which to generate certificates and request
signatures.
@item @code{certificates} (default: @code{()})
A list of @code{certificates-configuration}s for which to generate
certificates and request signatures. Each certificate has a @code{name}
and several @code{domains}.
@item @code{email}
Mandatory email used for registration, recovery contact, and important
account notifications.
@item @code{rsa-key-size} (default: @code{2048})
Size of the RSA key.
@item @code{default-location} (default: @i{see below})
The default @code{nginx-location-configuration}. Because @code{certbot}
needs to be able to serve challenges and responses, it needs to be able
to run a web server. It does so by extending the @code{nginx} web
service with an @code{nginx-server-configuration} listening on the
@var{hosts} on port 80, and which has a
@var{domains} on port 80, and which has a
@code{nginx-location-configuration} for the @code{/.well-known/} URI
path subspace used by Let's Encrypt. @xref{Web Services}, for more on
these nginx configuration data types.
@ -15758,19 +15812,44 @@ Requests to other URL paths will be matched by the
@code{nginx-server-configuration}s.
By default, the @code{default-location} will issue a redirect from
@code{http://@var{host}/...} to @code{https://@var{host}/...}, leaving
@code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving
you to define what to serve on your site via @code{https}.
Pass @code{#f} to not issue a default location.
@end table
@end deftp
The public key and its signatures will be written to
@code{/etc/letsencrypt/live/@var{host}/fullchain.pem}, for each
@var{host} in the configuration. The private key is written to
@code{/etc/letsencrypt/live/@var{host}/privkey.pem}.
@deftp {Data Type} certificate-configuration
Data type representing the configuration of a certificate.
This type has the following parameters:
@table @asis
@item @code{name} (default: @i{see below})
This name is used by Certbot for housekeeping and in file paths; it
doesn't affect the content of the certificate itself. To see
certificate names, run @code{certbot certificates}.
Its default is the first provided domain.
@item @code{domains} (default: @code{()})
The first domain provided will be the subject CN of the certificate, and
all domains will be Subject Alternative Names on the certificate.
@item @code{deploy-hook} (default: @code{#f})
Command to be run in a shell once for each successfully issued
certificate. For this command, the shell variable
@code{$RENEWED_LINEAGE} will point to the config live subdirectory (for
example, @samp{"/etc/letsencrypt/live/example.com"}) containing the new
certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will
contain a space-delimited list of renewed certificate domains (for
example, @samp{"example.com www.example.com"}.
@end table
@end deftp
For each @code{certificate-configuration}, the certificate is saved to
@code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is
saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}.
@node DNS Services
@subsubsection DNS Services
@cindex DNS (domain name system)

View File

@ -2,6 +2,7 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2017 sharlatan <sharlatanus@gmail.com>
# Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
#
# This file is part of GNU Guix.
#
@ -153,6 +154,9 @@ chk_sys_arch()
x86_64 | x86-64 | x64 | amd64)
local arch=x86_64
;;
aarch64)
local arch=aarch64
;;
*)
_err "${ERR}Unsupported CPU type: ${arch}"
exit 1

View File

@ -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 \
@ -655,6 +657,7 @@ dist_patch_DATA = \
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
%D%/packages/patches/freeimage-CVE-2016-5684.patch \
%D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \
%D%/packages/patches/freetype-CVE-2018-6942.patch \
%D%/packages/patches/fuse-overlapping-headers.patch \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
@ -763,6 +766,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 \
@ -800,9 +804,8 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/laby-make-install.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 \
@ -945,7 +948,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 \
@ -953,6 +955,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 \
@ -1041,8 +1044,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 \
@ -1137,6 +1138,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 \

View File

@ -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)))

View File

@ -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"))))

View File

@ -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"

View File

@ -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")

View File

@ -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")

View File

@ -23,7 +23,7 @@
(define-module (gnu packages calendar)
#:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build utils)
@ -78,7 +78,7 @@
(description
"Libical is an implementation of the iCalendar protocols and protocol
data units.")
(license lgpl2.1)))
(license license:lgpl2.1)))
(define-public khal
(package
@ -140,7 +140,7 @@ data units.")
(description "Khal is a standards based console calendar program,
able to synchronize with CalDAV servers through vdirsyncer.")
(home-page "http://lostpackets.de/khal/")
(license expat)))
(license license:expat)))
(define-public remind
(package
@ -169,7 +169,7 @@ Each reminder or alarm can consist of a message sent to standard output, or a
program to be executed. It also features: sophisticated date calculation,
moon phases, sunrise/sunset, Hebrew calendar, alarms, PostScript output and
proper handling of holidays.")
(license gpl2)))
(license license:gpl2)))
(define-public libhdate
(package
@ -190,4 +190,4 @@ proper handling of holidays.")
of day, written in C, and including bindings for C++, pascal, perl, php, python,
and ruby. It includes two illustrative command-line programs, @code{hcal} and
@code{hdate}, and some snippets and scripts written in the binding languages.")
(license gpl3+)))
(license license:gpl3+)))

View File

@ -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)

View File

@ -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")

View File

@ -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"))))

View File

@ -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)

View File

@ -36,16 +36,19 @@
(define-public python-django
(package
(name "python-django")
(version "1.10.8")
(version "1.11.10")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
"1fwqqh2zbcy9dy0lnvk338s11llnnfz2k56bf84w0wv56ayq7vyl"))))
"1ndc7axr7cz8jwhr4mz16fvwd0jcd6i81q2wi9nl172s71kkaf12"))))
(build-system python-build-system)
(arguments
'(#:phases
'(#:modules ((srfi srfi-1)
(guix build python-build-system)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-before 'check 'set-tzdir
(lambda* (#:key inputs #:allow-other-keys)
@ -56,9 +59,19 @@
"/share/zoneinfo"))
#t))
(replace 'check
(lambda _
(lambda* (#:key inputs #:allow-other-keys)
(setenv "PYTHONPATH"
(string-append ".:" (getenv "PYTHONPATH")))
(substitute* "tests/admin_scripts/tests.py"
(("python_path = \\[")
(string-append "python_path = ['"
(find (lambda (entry)
(string-prefix?
(assoc-ref inputs "python-pytz")
entry))
(string-split (getenv "PYTHONPATH")
#\:))
"', ")))
(zero? (system* "python" "tests/runtests.py")))))))
;; TODO: Install extras/django_bash_completion.
(native-inputs
@ -75,10 +88,11 @@
("python-numpy" ,python-numpy)
("python-pillow" ,python-pillow)
("python-pyyaml" ,python-pyyaml)
("python-pytz" ,python-pytz)
;; optional for tests: ("python-selenium" ,python-selenium)
("python-sqlparse" ,python-sqlparse)
("python-tblib" ,python-tblib)))
(propagated-inputs
`(("python-pytz" ,python-pytz)))
(home-page "http://www.djangoproject.com/")
(synopsis "High-level Python Web framework")
(description

View File

@ -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+

View File

@ -137,7 +137,7 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld},
#t)))))
'()))
(home-page "http://nixos.org/patchelf.html")
(home-page "https://nixos.org/patchelf.html")
(synopsis "Modify the dynamic linker and RPATH of ELF executables")
(description
"PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be

View File

@ -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"))

1111
gnu/packages/emulators.scm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Toni Reina <areina@riseup.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@ -803,7 +803,7 @@ glyph designs, not just an added slant.")
(define-public font-hack
(package
(name "font-hack")
(version "3.000")
(version "3.002")
(source (origin
(method url-fetch/zipbomb)
(uri (string-append
@ -811,7 +811,7 @@ glyph designs, not just an added slant.")
version "/Hack-v" version "-ttf.zip"))
(sha256
(base32
"0h6slqg25a6cq57k6rh5hmnk8dxbprmf8shs4iyj1pc83sw6b1r3"))))
"18fpaczj2rxfwgnrqpkxq0qn01parhmngglc4i1n3gchyzdsrh0x"))))
(build-system font-build-system)
(home-page "https://sourcefoundry.org/hack/")
(synopsis "Typeface designed for source code")

View File

@ -54,6 +54,7 @@
(package
(name "freetype")
(version "2.8.1")
(replacement freetype/fixed)
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/freetype/freetype-"
@ -78,6 +79,13 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
(license license:freetype) ; some files have other licenses
(home-page "https://www.freetype.org/")))
(define freetype/fixed
(package/inherit freetype
(source
(origin
(inherit (package-source freetype))
(patches (search-patches "freetype-CVE-2018-6942.patch"))))))
(define-public ttfautohint
(package
(name "ttfautohint")

View File

@ -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")

View File

@ -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+)))

View File

@ -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

View File

@ -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

View File

@ -2448,7 +2448,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/"
@ -2456,7 +2456,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

View File

@ -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)))

View File

@ -9,8 +9,8 @@
;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
;;; 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 Efraim Flashner <efraim@flashner.co.il>
;;; 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>
@ -633,7 +633,7 @@ compose, and analyze GIF images.")
(define-public imlib2
(package
(name "imlib2")
(version "1.4.10")
(version "1.5.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -641,7 +641,7 @@ compose, and analyze GIF images.")
"/imlib2-" version ".tar.bz2"))
(sha256
(base32
"0wm2q2xlkbm71k7mw2jyzbxgzylrkcj5yh6nq58w5gybhp98qs9z"))))
"0kg28b5wp886hiy12v7abdybrvlymb7g3nvg0ysn2y8h883s5w8m"))))
(build-system gnu-build-system)
(native-inputs
`(("pkgconfig" ,pkg-config)))
@ -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

View File

@ -47,14 +47,14 @@
;; The 7 release series has an incompatible API, while the 6 series is still
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
;; users are ready for the 7-series API.
(version "6.9.9-34")
(version "6.9.9-35")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
"0b11pxaiq0bvr3f3fj791jnfmwn61i3ini78cwi0szrn3akqwzdk"))))
"09c8298v7112y579mfp0bgsa3gsmcx2l5zbgfkwply4ihszprh0i"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")

View File

@ -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)))

160
gnu/packages/license.scm Normal file
View File

@ -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))))

View File

@ -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

View File

@ -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/")))

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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.

View File

@ -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)))

View File

@ -370,7 +370,7 @@ out) and returning a package that uses that as its 'source'."
("perl-www-curl" ,perl-www-curl)
("perl-dbi" ,perl-dbi)
("perl-dbd-sqlite" ,perl-dbd-sqlite)))
(home-page "http://nixos.org/nix/")
(home-page "https://nixos.org/nix/")
(synopsis "The Nix package manager")
(description
"Nix is a purely functional package manager. This means that it treats

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,31 @@
Fix CVE-2018-6942:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6942
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-6942.html
Copied from upstream (ChangeLog section removed):
https://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=29c759284e305ec428703c9a5831d0b1fc3497ef
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index d855aaa..551f14a 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -7532,8 +7532,16 @@
return;
}
- for ( i = 0; i < num_axes; i++ )
- args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */
+ if ( coords )
+ {
+ for ( i = 0; i < num_axes; i++ )
+ args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */
+ }
+ else
+ {
+ for ( i = 0; i < num_axes; i++ )
+ args[i] = 0;
+ }
}

View File

@ -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

View File

@ -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}

View File

@ -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"))

View File

@ -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.

View File

@ -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
});
+ */
}

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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) {

View File

@ -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",

View File

@ -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")

View File

@ -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))))

View File

@ -67,14 +67,14 @@
(define-public libraw
(package
(name "libraw")
(version "0.18.7")
(version "0.18.8")
(source (origin
(method url-fetch)
(uri (string-append "https://www.libraw.org/data/LibRaw-"
version ".tar.gz"))
(sha256
(base32
"0wap67mb03fl2himbs20yncnnrr71mszsfm2v4spks58c714gqw7"))))
"1qi0fkw2zmd0yplrf79z7lgpz0hxl45dj5rdgpaj7283jzys9b2n"))))
(build-system gnu-build-system)
(home-page "https://www.libraw.org")
(synopsis "Raw image decoder")

View File

@ -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)

View File

@ -281,14 +281,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
(version "2.0.3")
(version "2.1.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography_vectors" version))
(sha256
(base32
"1qa117fs1yd50zn2cfxh7d9l999ds0z4h83m9m7j4fk6ffm33f5y"))))
"1jm5c33qaz297sf99kz9kw8xi792ap9m6bwf0dfylls8z3rv9i3q"))))
(build-system python-build-system)
(home-page "https://github.com/pyca/cryptography")
(synopsis "Test vectors for the cryptography package")
@ -303,14 +303,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography
(package
(name "python-cryptography")
(version "2.0.3")
(version "2.1.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography" version))
(sha256
(base32
"0fnck37zyvbzmccbp7w3jy27jgmij1992j5wyy3gxhw6a11b4jyh"))))
"14aj5ipbj1w5kba2hv6323954pachhflfrjhhmkjwssv3hvngng4"))))
(build-system python-build-system)
(inputs
`(("openssl" ,openssl)))
@ -352,14 +352,14 @@ message digests and key derivation functions.")
(define-public python-pyopenssl
(package
(name "python-pyopenssl")
(version "17.3.0")
(version "17.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyOpenSSL" version))
(sha256
(base32
"0xkc1wfnpg6abzllivg3ylhc63npjdy1v81f4kc08bm8cj80nqr9"))))
"0wv78mwsdqbxqwdwllf4maqybhbj3vb8328ia04hnb558sxcy41c"))))
(build-system python-build-system)
(arguments
'(#:phases

View File

@ -12764,14 +12764,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

View File

@ -61,7 +61,7 @@
;; For tests.
("bc" ,bc)
("perl" ,perl) ; will also build Perl bindings
("tzdata" ,tzdata)))
("tzdata" ,tzdata-for-tests)))
(arguments
'(#:phases
(modify-phases %standard-phases

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -777,7 +777,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)
@ -787,7 +787,7 @@ then ported to the GNU / Linux environment.")
version "-apache.tgz"))
(sha256
(base32
"11wnj34rfqxjggmdgf042i49lr6civgbqwv2p7p8bn6k2919vg4r"))))
"1vsmgxnw7dpvma51896n63yaf9sncmf885ax2jfcg89ssin6vdmf"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags

View File

@ -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)))

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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)

View File

@ -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)
@ -5651,14 +5651,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)))

View File

@ -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)))

View File

@ -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")

View File

@ -4772,14 +4772,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.

View File

@ -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

View File

@ -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"

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015, 2018 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
@ -141,6 +141,8 @@ COMMAND or an interactive shell in that environment.\n"))
(display (G_ "
-l, --load=FILE create environment for the package that the code within
FILE evaluates to"))
(display (G_ "
-m, --manifest=FILE create environment with the manifest from FILE"))
(display (G_ "
--ad-hoc include all specified packages in the environment instead
of only their inputs"))
@ -220,6 +222,11 @@ COMMAND or an interactive shell in that environment.\n"))
(alist-cons 'expression
(tag-package-arg result arg)
result)))
(option '(#\m "manifest") #t #f
(lambda (opt name arg result)
(alist-cons 'manifest
arg
result)))
(option '("ad-hoc") #f #f
(lambda (opt name arg result)
(alist-cons 'ad-hoc? #t result)))
@ -286,6 +293,16 @@ packages."
(((? package-or-package+output?) ...) ; many packages
(map (cut package->output <> mode) packages))))
(define (manifest->outputs manifest)
(map (lambda (entry)
(cons 'ad-hoc-package ; manifests are implicitly ad-hoc
(if (package? (manifest-entry-item entry))
(list (manifest-entry-item entry)
(manifest-entry-output entry))
;; Direct store paths have no output.
(list (manifest-entry-item entry)))))
(manifest-entries manifest)))
(compact
(append-map (match-lambda
(('package mode (? string? spec))
@ -299,6 +316,9 @@ packages."
;; Add all the outputs of the package defined in FILE.
(let ((module (make-user-module '())))
(packages->outputs (load* file module) mode)))
(('manifest . file)
(let ((module (make-user-module '())))
(manifest->outputs (load* file module))))
(_ '(#f)))
opts)))

View File

@ -62,6 +62,15 @@ fi
guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
-- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'
# Make sure 'GUIX_ENVIRONMENT' points to the profile when building from a
# manifest.
echo "(use-modules (guix profiles) (gnu packages bootstrap))
(packages->manifest (list %bootstrap-guile))
" > $tmpdir/manifest.scm
guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \
-- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'
# Make sure '-r' works as expected.
rm -f "$gcroot"
expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \