Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2018-10-17 20:47:11 +02:00
commit d02bb02f7d
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
90 changed files with 2008 additions and 1160 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -19,6 +19,7 @@
(define-module (run-system-tests) (define-module (run-system-tests)
#:use-module (gnu tests) #:use-module (gnu tests)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix status)
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix ui) #:use-module (guix ui)
@ -63,6 +64,7 @@
(length tests)) (length tests))
(with-store store (with-store store
(with-status-report print-build-event
(run-with-store store (run-with-store store
(mlet* %store-monad ((drv (mapm %store-monad system-test-value tests)) (mlet* %store-monad ((drv (mapm %store-monad system-test-value tests))
(out -> (map derivation->output-path drv))) (out -> (map derivation->output-path drv)))
@ -70,6 +72,7 @@
(show-what-to-build* drv) (show-what-to-build* drv)
(set-build-options* #:keep-going? #t #:keep-failed? #t (set-build-options* #:keep-going? #t #:keep-failed? #t
#:print-build-trace #t #:print-build-trace #t
#:print-extended-build-trace? #t
#:fallback? #t) #:fallback? #t)
(built-derivations* drv) (built-derivations* drv)
(mlet %store-monad ((valid (filterm (store-lift valid-path?) (mlet %store-monad ((valid (filterm (store-lift valid-path?)
@ -84,4 +87,4 @@
(for-each (lambda (item) (for-each (lambda (item)
(format #t "FAIL: ~a~%" item)) (format #t "FAIL: ~a~%" item))
failed) failed)
(exit (null? failed)))))))) (exit (null? failed)))))))))

View File

@ -87,7 +87,9 @@ dnl We require pkg.m4 (from pkg-config) and guile.m4 (from Guile.)
dnl Make sure they are available. dnl Make sure they are available.
m4_pattern_forbid([PKG_CHECK_MODULES]) m4_pattern_forbid([PKG_CHECK_MODULES])
m4_pattern_forbid([GUILE_MODULE_AVAILABLE]) m4_pattern_forbid([GUILE_MODULE_AVAILABLE])
m4_pattern_forbid([^GUILE_P$]) m4_pattern_forbid([^GUILE_P])
m4_pattern_allow([^GUILE_PKG_ERRORS])
m4_pattern_forbid([^GUIX_])
dnl Search for 'guile' and 'guild'. This macro defines dnl Search for 'guile' and 'guild'. This macro defines
dnl 'GUILE_EFFECTIVE_VERSION'. dnl 'GUILE_EFFECTIVE_VERSION'.
@ -232,8 +234,6 @@ AC_SUBST([LIBGCRYPT])
AC_SUBST([LIBGCRYPT_PREFIX]) AC_SUBST([LIBGCRYPT_PREFIX])
AC_SUBST([LIBGCRYPT_LIBDIR]) AC_SUBST([LIBGCRYPT_LIBDIR])
GUIX_ASSERT_LIBGCRYPT_USABLE
dnl Library name of zlib suitable for 'dynamic-link'. dnl Library name of zlib suitable for 'dynamic-link'.
GUIX_LIBZ_LIBDIR([libz_libdir]) GUIX_LIBZ_LIBDIR([libz_libdir])
if test "x$libz_libdir" = "x"; then if test "x$libz_libdir" = "x"; then

View File

@ -468,6 +468,14 @@ Please follow our code formatting rules, possibly running the
@command{etc/indent-code.el} script to do that automatically for you @command{etc/indent-code.el} script to do that automatically for you
(@pxref{Formatting Code}). (@pxref{Formatting Code}).
@item
When possible, use mirrors in the source URL (@pxref{Invoking guix download}).
Use reliable URLs, not generated ones. For instance, GitHub archives are not
necessarily identical from one generation to the next, so in this case it's
often better to clone the repository. Don't use the @command{name} field in
the URL: it is not very useful and if the name changes, the URL will probably
be wrong.
@end enumerate @end enumerate
When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as

View File

@ -2831,7 +2831,7 @@ generation---i.e., the previous Guix---and so on:
$ guix package -p ~/.config/guix/current --roll-back $ guix package -p ~/.config/guix/current --roll-back
switched from generation 3 to 2 switched from generation 3 to 2
$ guix package -p ~/.config/guix/current --delete-generations=1 $ guix package -p ~/.config/guix/current --delete-generations=1
deleting /home/charlie/.config/guix/current-1-link deleting /var/guix/profiles/per-user/charlie/current-guix-1-link
@end example @end example
The @command{guix pull} command is usually invoked with no arguments, The @command{guix pull} command is usually invoked with no arguments,
@ -6365,9 +6365,8 @@ retrieved using the @option{--log-file} option.
@item --file=@var{file} @item --file=@var{file}
@itemx -f @var{file} @itemx -f @var{file}
Build the package, derivation, or other file-like object that the code within
Build the package or derivation that the code within @var{file} @var{file} evaluates to (@pxref{G-Expressions, file-like objects}).
evaluates to.
As an example, @var{file} might contain a package definition like this As an example, @var{file} might contain a package definition like this
(@pxref{Defining Packages}): (@pxref{Defining Packages}):
@ -11738,19 +11737,36 @@ When true, enable connman's vpn plugin.
@defvr {Scheme Variable} wpa-supplicant-service-type @defvr {Scheme Variable} wpa-supplicant-service-type
This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA
supplicant}, an authentication daemon required to authenticate against supplicant}, an authentication daemon required to authenticate against
encrypted WiFi or ethernet networks. It is configured to listen for encrypted WiFi or ethernet networks.
requests on D-Bus.
The value of this service is the @code{wpa-supplicant} package to use.
Thus, it can be instantiated like this:
@lisp
(use-modules (gnu services networking))
(service wpa-supplicant-service-type)
@end lisp
@end defvr @end defvr
@deftp {Data Type} wpa-supplicant-configuration
Data type representing the configuration of WPA Supplicant.
It takes the following parameters:
@table @asis
@item @code{wpa-supplicant} (default: @code{wpa-supplicant})
The WPA Supplicant package to use.
@item @code{dbus?} (default: @code{#t})
Whether to listen for requests on D-Bus.
@item @code{pid-file} (default: @code{"/var/run/wpa_supplicant.pid"})
Where to store the PID file.
@item @code{interface} (default: @code{#f})
If this is set, it must specify the name of a network interface that
WPA supplicant will control.
@item @code{config-file} (default: @code{#f})
Optional configuration file to use.
@item @code{extra-options} (default: @code{'()})
List of additional command-line arguments to pass to the daemon.
@end table
@end deftp
@cindex iptables @cindex iptables
@defvr {Scheme Variable} iptables-service-type @defvr {Scheme Variable} iptables-service-type
This is the service type to set up an iptables configuration. iptables is a This is the service type to set up an iptables configuration. iptables is a

View File

@ -160,6 +160,9 @@ chk_sys_arch()
aarch64) aarch64)
local arch=aarch64 local arch=aarch64
;; ;;
armv7l)
local arch=armhf
;;
*) *)
_err "${ERR}Unsupported CPU type: ${arch}" _err "${ERR}Unsupported CPU type: ${arch}"
exit 1 exit 1

View File

@ -15,7 +15,9 @@
((equal yas-text "hg-fetch") "hg-reference...") ((equal yas-text "hg-fetch") "hg-reference...")
((equal yas-text "cvs-fetch") "cvs-reference...") ((equal yas-text "cvs-fetch") "cvs-reference...")
(t "(string-append \\"https://\\" version \\".tar.gz\\")"))}$0) (t "(string-append \\"https://\\" version \\".tar.gz\\")"))}$0)
${1:$(cond ((member yas-text '("git-fetch" "svn-fetch" "hg-fetch" "cvs-fetch")) ${1:$(cond ((equal yas-text "git-fetch")
"(file-name (git-file-name name version))")
((member yas-text '("svn-fetch" "hg-fetch" "cvs-fetch"))
"(file-name (string-append name \\"-\\" version \\"-checkout\\"))") "(file-name (string-append name \\"-\\" version \\"-checkout\\"))")
(t ""))} (t ""))}
(sha256 (sha256

View File

@ -622,7 +622,6 @@ dist_patch_DATA = \
%D%/packages/patches/clementine-fix-sqlite.patch \ %D%/packages/patches/clementine-fix-sqlite.patch \
%D%/packages/patches/clementine-remove-crypto++-dependency.patch \ %D%/packages/patches/clementine-remove-crypto++-dependency.patch \
%D%/packages/patches/clementine-use-openssl.patch \ %D%/packages/patches/clementine-use-openssl.patch \
%D%/packages/patches/clisp-glibc-2.26.patch \
%D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clisp-remove-failing-test.patch \
%D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/clx-remove-demo.patch \
@ -660,7 +659,6 @@ dist_patch_DATA = \
%D%/packages/patches/elogind-glibc-2.27.patch \ %D%/packages/patches/elogind-glibc-2.27.patch \
%D%/packages/patches/einstein-build.patch \ %D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-exwm-fix-fullscreen-issue.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
@ -1070,6 +1068,10 @@ dist_patch_DATA = \
%D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \
%D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/pyqt-configure.patch \
%D%/packages/patches/pyqt-public-sip.patch \ %D%/packages/patches/pyqt-public-sip.patch \
%D%/packages/patches/python2-CVE-2018-1060.patch \
%D%/packages/patches/python2-CVE-2018-1061.patch \
%D%/packages/patches/python2-CVE-2018-14647.patch \
%D%/packages/patches/python2-CVE-2018-1000802.patch \
%D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \
%D%/packages/patches/python-2.7-adjust-tests.patch \ %D%/packages/patches/python-2.7-adjust-tests.patch \
%D%/packages/patches/python-2.7-search-paths.patch \ %D%/packages/patches/python-2.7-search-paths.patch \
@ -1078,6 +1080,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-3-deterministic-build-info.patch \ %D%/packages/patches/python-3-deterministic-build-info.patch \
%D%/packages/patches/python-3-search-paths.patch \ %D%/packages/patches/python-3-search-paths.patch \
%D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3-fix-tests.patch \
%D%/packages/patches/python-CVE-2018-14647.patch \
%D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \
%D%/packages/patches/python-cairocffi-dlopen-path.patch \ %D%/packages/patches/python-cairocffi-dlopen-path.patch \
%D%/packages/patches/python-fix-tests.patch \ %D%/packages/patches/python-fix-tests.patch \
@ -1232,8 +1235,7 @@ dist_patch_DATA = \
%D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \ %D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \
%D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \
%D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \
%D%/packages/patches/x265-arm-asm-primitives.patch \ %D%/packages/patches/x265-detect512-all-arches.patch \
%D%/packages/patches/x265-fix-ppc64le-build.patch \
%D%/packages/patches/xapian-revert-5489fb2f8.patch \ %D%/packages/patches/xapian-revert-5489fb2f8.patch \
%D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
@ -1251,9 +1253,7 @@ dist_patch_DATA = \
%D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \
%D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/xmodmap-asprintf.patch \
%D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \ %D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \
%D%/packages/patches/zathura-plugindir-environment-variable.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch
%D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \
%D%/packages/patches/zstd-fix-stdin-list-test.patch
MISC_DISTRO_FILES = \ MISC_DISTRO_FILES = \
%D%/packages/ld-wrapper.in %D%/packages/ld-wrapper.in

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Marek Benc <merkur32@gmail.com> ;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; ;;;
@ -62,7 +62,7 @@
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments ;; NOTE: rsvg is disabled, since Abiword (arguments ;; NOTE: rsvg is disabled, since Abiword
`(#:configure-flags ;; supports it directly, and its BS is broken. `(#:configure-flags ;; supports it directly, and its BS is broken.
(list (list ;; wmf was removed from Guix for security.
"--enable-clipart" ;; TODO: The following plugins have unresolved "--enable-clipart" ;; TODO: The following plugins have unresolved
"--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda, "--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda,
(string-append ;; wordperfect, psion, mathview. (string-append ;; wordperfect, psion, mathview.
@ -73,7 +73,7 @@
"latex " "loadbindings " "mht " "mif " "mswrite " "opendocument " "latex " "loadbindings " "mht " "mif " "mswrite " "opendocument "
"openwriter " "openxml " "opml " "ots " "paint " "passepartout " "openwriter " "openxml " "opml " "ots " "paint " "passepartout "
"pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict " "pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict "
"wikipedia " "wmf " "wml " "xslfo")) "wikipedia " "wml " "xslfo"))
;; tests fail with: Gtk-CRITICAL **: gtk_settings_get_for_screen: ;; tests fail with: Gtk-CRITICAL **: gtk_settings_get_for_screen:
;; assertion 'GDK_IS_SCREEN (screen)' failed ;; assertion 'GDK_IS_SCREEN (screen)' failed
;; GLib-GObject-CRITICAL **: g_object_get_qdata: ;; GLib-GObject-CRITICAL **: g_object_get_qdata:

View File

@ -13,6 +13,7 @@
;;; Copyright © 2018 okapi <okapi@firemail.cc> ;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Brett Gilio <brettg@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -417,7 +418,7 @@ engineers, musicians, soundtrack editors and composers.")
;; and fails with various errors. See ;; and fails with various errors. See
;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>. ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
#:tests? #f)) #:tests? #f))
(home-page "http://audacity.sourceforge.net/") (home-page "https://www.audacityteam.org/")
(synopsis "Software for recording and editing sounds") (synopsis "Software for recording and editing sounds")
(description (description
"Audacity is a multi-track audio editor designed for recording, playing "Audacity is a multi-track audio editor designed for recording, playing
@ -650,7 +651,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(define-public csound (define-public csound
(package (package
(name "csound") (name "csound")
(version "6.09.1") (version "6.11.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -659,7 +660,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4")))) "072pk5h9w0vhw0ncc9dn90haw1yv18v04iwwjn8nsp6930w7dvxd"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
@ -674,7 +675,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
`(("bison" ,bison) `(("bison" ,bison)
("flex" ,flex) ("flex" ,flex)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "http://csound.github.io/") (home-page "https://csound.com/")
(synopsis "Sound and music computing system") (synopsis "Sound and music computing system")
(description (description
"Csound is a user-programmable and user-extensible sound processing "Csound is a user-programmable and user-extensible sound processing
@ -1915,7 +1916,7 @@ lv2-c++-tools.")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://kcat.strangesoft.net/openal-releases/openal-soft-" "http://openal-soft.org/openal-releases/openal-soft-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
@ -1952,7 +1953,7 @@ emitters are among the features handled by the API. More advanced effects,
including air absorption, occlusion, and environmental reverb, are available including air absorption, occlusion, and environmental reverb, are available
through the EFX extension. It also facilitates streaming audio, multi-channel through the EFX extension. It also facilitates streaming audio, multi-channel
buffers, and audio capture.") buffers, and audio capture.")
(home-page "http://kcat.strangesoft.net/openal.html") (home-page "http://openal-soft.org/")
(license license:lgpl2.0+))) (license license:lgpl2.0+)))
(define-public freealut (define-public freealut
@ -3089,7 +3090,7 @@ with support for HD extensions.")
(define-public bs1770gain (define-public bs1770gain
(package (package
(name "bs1770gain") (name "bs1770gain")
(version "0.4.12") (version "0.5.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3097,7 +3098,7 @@ with support for HD extensions.")
version "/bs1770gain-" version ".tar.gz")) version "/bs1770gain-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a")))) "0vd7320k7s2zcn2vganclxbr1vav18ghld27rcwskvcc3dm8prii"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("ffmpeg" ,ffmpeg) (inputs `(("ffmpeg" ,ffmpeg)
("sox" ,sox))) ("sox" ,sox)))

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -32,24 +32,14 @@
(define-public augeas (define-public augeas
(package (package
(name "augeas") (name "augeas")
(version "1.10.1") (version "1.11.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://download.augeas.net/augeas-" (uri (string-append "http://download.augeas.net/augeas-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0k9nssn7lk58cl5zv3c8kv2zx9cm2yks3sj7q4fd6qdjz9m2bnsj")) "1c507qj6dfn2dnsl27w94zs9r45xrgm07y8bqba9ry2s0psfhg1r"))))
(modules '((guix build utils)))
(snippet
'(begin
;; The gnulib test-lock test is prone to writer starvation
;; with our glibc@2.25, which prefers readers, so disable it.
;; The gnulib commit b20e8afb0b2 should fix this once
;; incorporated here.
(substitute* "gnulib/tests/Makefile.in"
(("test-lock\\$\\(EXEEXT\\) ") ""))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; Marked as "required" in augeas.pc ;; Marked as "required" in augeas.pc
(propagated-inputs (propagated-inputs

View File

@ -862,7 +862,7 @@ is like a time machine for your data. ")
(define-public restic (define-public restic
(package (package
(name "restic") (name "restic")
(version "0.9.2") (version "0.9.3")
;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/' ;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
;; directory. ;; directory.
(source (origin (source (origin
@ -873,7 +873,7 @@ is like a time machine for your data. ")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15bwkydxcg4xhrnqxvxji8wacrsndb1a6frj98wggfaijqzfx3lg")))) "1l1ddnf61pfsrry97qwhhdzywin2mgnbrkhcc9pabsdfk602anmr"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/restic/restic" `(#:import-path "github.com/restic/restic"
@ -887,6 +887,8 @@ is like a time machine for your data. ")
(with-directory-excursion (string-append (with-directory-excursion (string-append
"src/github.com/restic/restic-" "src/github.com/restic/restic-"
,version) ,version)
;; Disable 'restic self-update'. It makes little sense in Guix.
(substitute* "build.go" (("selfupdate") ""))
(invoke "go" "run" "build.go")))) (invoke "go" "run" "build.go"))))
(replace 'check (replace 'check

View File

@ -23,6 +23,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix build-system ant) #:use-module (guix build-system ant)
#:use-module (guix build utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages java) #:use-module (gnu packages java)
@ -139,8 +140,8 @@ public interface EventListenerInitializer {
(native-inputs (native-inputs
`(("unzip" ,unzip))) `(("unzip" ,unzip)))
(home-page "https://www.w3.org/Style/CSS/SAC/") (home-page "https://www.w3.org/Style/CSS/SAC/")
(synopsis "W3C SVG interface") (synopsis "W3C SVG 1.0 interface")
(description "This package provides a SVG interface.") (description "This package provides a SVG 1.0 interface.")
(license license:w3c))) (license license:w3c)))
(define-public java-w3c-svg (define-public java-w3c-svg
@ -155,8 +156,15 @@ public interface EventListenerInitializer {
(sha256 (sha256
(base32 (base32
"0jicqcrxav8ggs37amgvvwgc2f0qp1c5wns4rb2i3si83s2m09ns")))) "0jicqcrxav8ggs37amgvvwgc2f0qp1c5wns4rb2i3si83s2m09ns"))))
(arguments
(substitute-keyword-arguments (package-arguments java-w3c-svg-1.0)
((#:phases phases)
`(modify-phases ,phases
(delete 'patch-interface)))))
(propagated-inputs (propagated-inputs
`()))) `())
(synopsis "W3C SVG interface")
(description "This package provides a SVG interface.")))
(define-public java-w3c-sac (define-public java-w3c-sac
(package (package

View File

@ -886,3 +886,30 @@ Time-Course experiments) analyses 4sU-seq and RNA-seq time-course data in
order to evaluate synthesis, processing and degradation rates and assess via order to evaluate synthesis, processing and degradation rates and assess via
modeling the rates that determines changes in mature mRNA levels.") modeling the rates that determines changes in mature mRNA levels.")
(license license:gpl2))) (license license:gpl2)))
(define-public r-dnabarcodes
(package
(name "r-dnabarcodes")
(version "1.10.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DNABarcodes" version))
(sha256
(base32
"0xhna7f0kr7pp2hqwara5i57m9mdr65shflfxiyw6yy3g90pgb5x"))))
(properties `((upstream-name . "DNABarcodes")))
(build-system r-build-system)
(propagated-inputs
`(("r-bh" ,r-bh)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)))
(home-page "https://bioconductor.org/packages/DNABarcodes")
(synopsis "Create and analyze DNA barcodes")
(description
"This package offers tools to create DNA barcode sets capable of
correcting insertion, deletion, and substitution errors. Existing barcodes
can be analyzed regarding their minimal, maximal and average distances between
barcodes. Finally, reads that start with a (possibly mutated) barcode can be
demultiplexed, i.e. assigned to their original reference barcode.")
(license license:gpl2)))

View File

@ -11735,19 +11735,39 @@ using nucleotide or amino-acid sequence data.")
(define-public kallisto (define-public kallisto
(package (package
(name "kallisto") (name "kallisto")
(version "0.43.1") (version "0.44.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/pachterlab/" (uri (git-reference
"kallisto/archive/v" version ".tar.gz")) (url "https://github.com/pachterlab/kallisto.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"03j3iqhvq7ya3c91gidly3k3jvgm97vjq4scihrlxh315j696r11")))) "0nj382jiywqnpgvyhichajpkkh5r0bapn43f4dx40zdaq5v4m40m"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no "check" target (arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-use-bundled-htslib
(lambda _
(substitute* "CMakeLists.txt"
(("^ExternalProject_Add" m)
(string-append "if (NEVER)\n" m))
(("^\\)")
(string-append ")\nendif(NEVER)"))
(("include_directories\\(\\$\\{htslib_PREFIX.*" m)
(string-append "# " m)))
(substitute* "src/CMakeLists.txt"
(("target_link_libraries\\(kallisto kallisto_core pthread \
\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/../ext/htslib/libhts.a\\)")
"target_link_libraries(kallisto kallisto_core pthread hts)")
(("include_directories\\(\\.\\./ext/htslib\\)") ""))
#t)))))
(inputs (inputs
`(("hdf5" ,hdf5) `(("hdf5" ,hdf5)
("htslib" ,htslib)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "http://pachterlab.github.io/kallisto/") (home-page "http://pachterlab.github.io/kallisto/")
(synopsis "Near-optimal RNA-Seq quantification") (synopsis "Near-optimal RNA-Seq quantification")
@ -14057,3 +14077,63 @@ absolute GSEA.")
(description "Ngless is a domain-specific language for (description "Ngless is a domain-specific language for
@dfn{next-generation sequencing} (NGS) data processing.") @dfn{next-generation sequencing} (NGS) data processing.")
(license license:expat))) (license license:expat)))
(define-public filtlong
;; The recommended way to install is to clone the git repository
;; https://github.com/rrwick/Filtlong#installation
;; and the lastest release is more than nine months old
(let ((commit "d1bb46dfe8bc7efe6257b5ce222c04bfe8aedaab")
(revision "1"))
(package
(name "filtlong")
(version (git-version "0.2.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rrwick/Filtlong.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1xr92r820x8qlkcr3b57iw223yq8vjgyi42jr79w2xgw47qzr575"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(scripts (string-append out "/share/filtlong/scripts")))
(install-file "bin/filtlong" bin)
(install-file "scripts/histogram.py" scripts)
(install-file "scripts/read_info_histograms.sh" scripts))
#t))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(path (getenv "PYTHONPATH")))
(wrap-program (string-append out
"/share/filtlong/scripts/histogram.py")
`("PYTHONPATH" ":" prefix (,path))))
#t))
(add-before 'check 'patch-tests
(lambda _
(substitute* "scripts/read_info_histograms.sh"
(("awk") (which "gawk")))
#t)))))
(inputs
`(("gawk" ,gawk) ;for read_info_histograms.sh
("python" ,python-2) ;required for histogram.py
("zlib" ,zlib)))
(home-page "https://github.com/rrwick/Filtlong/")
(synopsis "Tool for quality filtering of Nanopore and PacBio data")
(description
"The Filtlong package is a tool for filtering long reads by quality.
It can take a set of long reads and produce a smaller, better subset. It uses
both read length (longer is better) and read identity (higher is better) when
choosing which reads pass the filter.")
(license (list license:gpl3 ;filtlong
license:asl2.0))))) ;histogram.py

View File

@ -361,7 +361,7 @@ tree binary files. These are board description files used by Linux and BSD.")
(define u-boot (define u-boot
(package (package
(name "u-boot") (name "u-boot")
(version "2018.07") (version "2018.09")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -369,7 +369,7 @@ tree binary files. These are board description files used by Linux and BSD.")
"u-boot-" version ".tar.bz2")) "u-boot-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1m7nw64mxflpc6sqvnz2kb5fxfkb4mrpy8b1wi15dcwipj4dy44z")))) "0s122kyz1svvs2yjzj4j9qravl3ra4vn0fjqgski7rlczqyg56w3"))))
(native-inputs (native-inputs
`(("bc" ,bc) `(("bc" ,bc)
("bison" ,bison) ("bison" ,bison)
@ -404,6 +404,12 @@ also initializes the boards (RAM etc).")
(("/bin/false") (which "false"))) (("/bin/false") (which "false")))
(substitute* "tools/dtoc/fdt_util.py" (substitute* "tools/dtoc/fdt_util.py"
(("'cc'") "'gcc'")) (("'cc'") "'gcc'"))
(substitute* "tools/patman/test_util.py"
;; python-coverage is simply called coverage in guix.
(("python-coverage") "coverage")
;; XXX Allow for only 99% test coverage.
;; TODO: Find out why that is needed.
(("if coverage != '100%':") "if not int(coverage.rstrip('%')) >= 99:"))
(substitute* "test/run" (substitute* "test/run"
;; Make it easier to find test failures. ;; Make it easier to find test failures.
(("#!/bin/bash") "#!/bin/bash -x") (("#!/bin/bash") "#!/bin/bash -x")
@ -418,8 +424,6 @@ also initializes the boards (RAM etc).")
(("def test_ctrl_c") (("def test_ctrl_c")
"@pytest.mark.skip(reason='Guix has problems with SIGINT') "@pytest.mark.skip(reason='Guix has problems with SIGINT')
def test_ctrl_c")) def test_ctrl_c"))
(substitute* "tools/binman/binman.py"
(("100%") "99%")) ; TODO: Find out why that is needed.
#t)) #t))
(replace 'configure (replace 'configure
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)

View File

@ -96,13 +96,13 @@ data units.")
(define-public khal (define-public khal
(package (package
(name "khal") (name "khal")
(version "0.9.9") (version "0.9.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "khal" version)) (uri (pypi-uri "khal" version))
(sha256 (sha256
(base32 (base32
"0dq9aqb9pqjfqrnfg43mhpb7m0szmychxy1ydb3lwzf3500c9rsh")))) "03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases

View File

@ -1728,19 +1728,14 @@ or junctions, and always follows hard links.")
(define-public zstd (define-public zstd
(package (package
(name "zstd") (name "zstd")
(version "1.3.5") (version "1.3.6")
(source (origin (source
(origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/facebook/zstd/archive/v" (uri (string-append "https://github.com/facebook/zstd/releases/download/"
version ".tar.gz")) "v" version "/zstd-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "1525b31jmbiczjj1n58nckdzky4cdnbwcsil3zgy4cx03v0a0cp8"))))
"1sifbq18p0hc978g0pq8fymrlpzz1fcxqkbxfqk44z6v9jg5bqfn"))
;; Fix a regression that causes the tests to fail. Both patches
;; have been merged upstream and will be part of the next release.
(patches (search-patches "zstd-fix-stdin-list-without-tty.patch"
"zstd-fix-stdin-list-test.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -2432,13 +2432,13 @@ SQLAlchemy Database Toolkit for Python.")
(define-public python-pickleshare (define-public python-pickleshare
(package (package
(name "python-pickleshare") (name "python-pickleshare")
(version "0.7.4") (version "0.7.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pickleshare" version)) (uri (pypi-uri "pickleshare" version))
(sha256 (sha256
(base32 "0yvk14dzxk7g6qpr7iw23vzqbsr0dh4ij4xynkhnzpfz4xr2bac4")))) (base32 "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases

View File

@ -30,22 +30,24 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages disk) (define-module (gnu packages disk)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages c)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
@ -53,20 +55,18 @@
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages guile) #:use-module (gnu packages swig)
#:use-module (gnu packages compression)
#:use-module (gnu packages vim) #:use-module (gnu packages vim)
#:use-module (gnu packages w3m) #:use-module (gnu packages w3m)
#:use-module (gnu packages xml)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages swig)
#:use-module (gnu packages autotools)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages documentation) #:use-module (gnu packages xml)
#:use-module (gnu packages bash) #:use-module (guix build-system gnu)
#:use-module (gnu packages c)) #:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public parted (define-public parted
(package (package
@ -518,24 +518,25 @@ Duperemove can also take input from the @command{fdupes} program.")
(define-public ranger (define-public ranger
(package (package
(name "ranger") (name "ranger")
(version "1.9.1") (version "1.9.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ranger.github.io/" (uri (string-append "https://ranger.github.io/"
"ranger-" version ".tar.gz")) "ranger-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0")))) "12kbsqakbxs09y0x8hy66mmaf72rk0p850x7ryk2ghkq7wfin78f"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("w3m" ,w3m))) `(("w3m" ,w3m)))
(native-inputs ;for tests (native-inputs
`(("python-pytest" ,python-pytest) `(("which" ,which)
("python-pylint" ,python-pylint)
("python-flake8" ,python-flake8) ;; For tests.
("which" ,which))) ("python-pytest" ,python-pytest)))
(arguments (arguments
'(#:test-target "test" '( ;; The 'test' target runs developer tools like pylint, which fail.
#:test-target "test_pytest"
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'configure 'wrap-program (add-after 'configure 'wrap-program
@ -548,7 +549,11 @@ Duperemove can also take input from the @command{fdupes} program.")
"/libexec/w3m/w3mimgdisplay"))) "/libexec/w3m/w3mimgdisplay")))
(wrap-program ranger (wrap-program ranger
`("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay))) `("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay)))
#t)))))) #t)))
(replace 'check
;; The default check phase simply prints 'Ran 0 tests in 0.000s'.
(lambda* (#:key test-target #:allow-other-keys)
(invoke "make" test-target))))))
(home-page "https://ranger.github.io/") (home-page "https://ranger.github.io/")
(synopsis "Console file manager") (synopsis "Console file manager")
(description "ranger is a console file manager with Vi key bindings. It (description "ranger is a console file manager with Vi key bindings. It
@ -560,28 +565,28 @@ automatically finding out which program to use for what file type.")
(define-public volume-key (define-public volume-key
(package (package
(name "volume-key") (name "volume-key")
(version "0.3.11") (version "0.3.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://releases.pagure.org/volume_key/volume_key-" (uri (string-append "https://releases.pagure.org/volume_key/volume_key-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0vaz15rcgdkh5z4yxc22x76wi44gh50jxnrqz5avaxz4bb17kcp6")))) "16rhfz6sjwxlmss1plb2wv2i3jq6wza02rmz1d2jrlnsq67p98vc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("util-linux" ,util-linux) ("util-linux" ,util-linux)
("swig" ,swig) ("swig" ,swig)
("python" ,python-3))) ; Used to generate the Python bindings. ("python" ,python-3))) ; used to generate the Python bindings
(inputs (inputs
`(("cryptsetup" ,cryptsetup) `(("cryptsetup" ,cryptsetup)
("nss" ,nss) ("nss" ,nss)
("lvm2" ,lvm2) ; For "-ldevmapper". ("lvm2" ,lvm2) ; for "-ldevmapper"
("glib" ,glib) ("glib" ,glib)
("gpgme" ,gpgme))) ("gpgme" ,gpgme)))
(arguments (arguments
`(#:tests? #f ; Not sure how tests are supposed to pass, even when run manually. `(#:tests? #f ; not sure how tests are supposed to pass, even when run manually
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'patch-python.h-path (add-before 'configure 'patch-python.h-path
@ -601,27 +606,28 @@ passphrases.")
(define-public ndctl (define-public ndctl
(package (package
(name "ndctl") (name "ndctl")
(version "61.2") (version "63")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/pmem/ndctl") (url "https://github.com/pmem/ndctl.git")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0vid78jzhmzh505bpwn8mvlamfhcvl6rlfjc29y4yn7zslpydxl7")))) "060nsza8xic769bxj3pvl70a9885bwrc0myw16l095i3z6w7yzwq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("asciidoc" ,asciidoc) `(("asciidoc" ,asciidoc)
("automake" ,automake) ("automake" ,automake)
("autoconf" ,autoconf) ("autoconf" ,autoconf)
("bash-completion" ,bash-completion)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)
("libtool" ,libtool) ("libtool" ,libtool)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("xmlto" ,xmlto) ("xmlto" ,xmlto)
;; Required for offline docbook generation: ;; Required for offline docbook generation.
("which" ,which))) ("which" ,which)))
(inputs (inputs
`(("eudev" ,eudev) `(("eudev" ,eudev)
@ -629,12 +635,13 @@ passphrases.")
("kmod" ,kmod) ("kmod" ,kmod)
("util-linux" ,util-linux))) ("util-linux" ,util-linux)))
(arguments (arguments
`(#:phases `(#:configure-flags
(list "--disable-asciidoctor" ; use docbook-xsl instead
"--without-systemd")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-FHS-file-names (add-after 'unpack 'patch-FHS-file-names
(lambda _ (lambda _
(substitute* "autogen.sh"
(("/bin/sh") (which "sh")))
(substitute* "git-version-gen" (substitute* "git-version-gen"
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
(substitute* "git-version" (substitute* "git-version"
@ -699,14 +706,15 @@ to create devices with respective mappings for the ATARAID sets discovered.")
(define-public libblockdev (define-public libblockdev
(package (package
(name "libblockdev") (name "libblockdev")
(version "2.18") (version "2.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/storaged-project/libblockdev/releases/download/" (uri (string-append "https://github.com/storaged-project/"
"libblockdev/releases/download/"
version "-1/libblockdev-" version ".tar.gz")) version "-1/libblockdev-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1a3kpdr9s6g7nfibazi92i27wbv692b5gm2r24gimis6l6jq4pbh")))) "092snk5jyv48na4d46v1ckiy859zwpb3r0ivnxv3km5vzsp76y7q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -739,6 +747,4 @@ manipulation of block devices. It has a plugin-based architecture where each
technology (like LVM, Btrfs, MD RAID, Swap...) is implemented in a separate technology (like LVM, Btrfs, MD RAID, Swap...) is implemented in a separate
plugin, possibly with multiple implementations (e.g. using LVM CLI or the new plugin, possibly with multiple implementations (e.g. using LVM CLI or the new
LVM D-Bus API).") LVM D-Bus API).")
;; XXX: Copying says LGPL2.1, but the source files with license (license license:lgpl2.1+)))
;; information are GPL2+.
(license license:gpl2+)))

View File

@ -39,6 +39,7 @@
;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com> ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -3033,7 +3034,7 @@ in @code{html-mode}.")
(define-public emacs-slime (define-public emacs-slime
(package (package
(name "emacs-slime") (name "emacs-slime")
(version "2.20") (version "2.22")
(source (source
(origin (origin
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
@ -3043,7 +3044,7 @@ in @code{html-mode}.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk")))) "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(native-inputs (native-inputs
`(("texinfo" ,texinfo))) `(("texinfo" ,texinfo)))
@ -4306,14 +4307,14 @@ strings, and code folding.")
(define-public emacs-nodejs-repl (define-public emacs-nodejs-repl
(package (package
(name "emacs-nodejs-repl") (name "emacs-nodejs-repl")
(version "0.1.6") (version "0.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/abicky/nodejs-repl.el" (uri (string-append "https://github.com/abicky/nodejs-repl.el"
"/archive/" version ".tar.gz")) "/archive/" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9")) "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/abicky/nodejs-repl.el") (home-page "https://github.com/abicky/nodejs-repl.el")
@ -5199,11 +5200,11 @@ extensions.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-evil-collection (define-public emacs-evil-collection
(let ((commit "b55ae90f367e103e6568ae00779a8a51c68a0104") (let ((commit "abc9dd60f71ccc1f24803a12d853f84b4a8b258c")
(revision "3")) (revision "4"))
(package (package
(name "emacs-evil-collection") (name "emacs-evil-collection")
(version (git-version "20180911" revision commit)) (version (git-version "0.0.1" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -5212,7 +5213,7 @@ extensions.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"0n7bzi5s7rqi78l1424sxvsk2g46z7ksq02xx5jrmqymnij90jml")))) "0c9l93vrsl6kzx8gg305dq8qkb2dr3s10fww7lh382911pdmsh7v"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-evil" ,emacs-evil))) `(("emacs-evil" ,emacs-evil)))
@ -5928,8 +5929,20 @@ Yasnippet.")
(base32 (base32
"01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f")))) "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(inputs
`(("recutils" ,recutils)))
(propagated-inputs (propagated-inputs
`(("emacs-helm" ,emacs-helm))) `(("emacs-helm" ,emacs-helm)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((recutils (assoc-ref inputs "recutils")))
;; Specify the absolute file names of the various
;; programs so that everything works out-of-the-box.
(substitute* "helm-system-packages-guix.el"
(("recsel") (string-append recutils "/bin/recsel")))))))))
(home-page "https://github.com/emacs-helm/helm-system-packages") (home-page "https://github.com/emacs-helm/helm-system-packages")
(synopsis "Helm System Packages is an interface to your package manager") (synopsis "Helm System Packages is an interface to your package manager")
(description "List all available packages in Helm (with installed (description "List all available packages in Helm (with installed
@ -6575,14 +6588,14 @@ which code derived from Kelvin H's org-page.")
(define-public emacs-xelb (define-public emacs-xelb
(package (package
(name "emacs-xelb") (name "emacs-xelb")
(version "0.15") (version "0.16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/xelb-" (uri (string-append "https://elpa.gnu.org/packages/xelb-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz")))) "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
(build-system emacs-build-system) (build-system emacs-build-system)
;; The following functions and variables needed by emacs-xelb are ;; The following functions and variables needed by emacs-xelb are
;; not included in emacs-minimal: ;; not included in emacs-minimal:
@ -6614,7 +6627,7 @@ It should enable you to implement low-level X11 applications.")
(define-public emacs-exwm (define-public emacs-exwm
(package (package
(name "emacs-exwm") (name "emacs-exwm")
(version "0.19") (version "0.20")
(synopsis "Emacs X window manager") (synopsis "Emacs X window manager")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -6622,8 +6635,7 @@ It should enable you to implement low-level X11 applications.")
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0")) "0nhhzbkm0mkj7sd1dy2c19cmn56gyaj9nl8kgy86h4fp63hjaz04"))))
(patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-xelb" ,emacs-xelb))) `(("emacs-xelb" ,emacs-xelb)))
@ -11344,27 +11356,25 @@ the GIF result.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-google-translate (define-public emacs-google-translate
(let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974"))
(package (package
(name "emacs-google-translate") (name "emacs-google-translate")
(version (git-version "0.11.14" "1" commit)) (version "0.11.15")
(source (source
(origin (origin
(method git-fetch) (method url-fetch)
(uri (git-reference (uri (string-append "https://github.com/atykhonov/google-translate/"
(url "https://github.com/atykhonov/google-translate") "archive/v" version ".tar.gz"))
(commit commit))) (file-name (string-append name "-" version ".tar.gz"))
(file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc")))) "1zxvfagbaf5mxi528mz33c8vxdk86wj0xx5y2jfy97wi8dzrwn3g"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/atykhonov/google-translate") (home-page "https://github.com/atykhonov/google-translate")
(synopsis "Emacs interface to Google Translate") (synopsis "Emacs interface to Google Translate")
(description (description
"This packages provides an Emacs interface to the Google Translate "This packages provides an Emacs interface to the Google Translate
on-line service.") on-line service.")
(license license:gpl3+)))) (license license:gpl3+)))
(define-public emacs-helm-company (define-public emacs-helm-company
(let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d")) (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d"))
@ -12355,3 +12365,24 @@ with a handful of easy tweaks.
scratch, and you think the Spacemacs theme looks good. scratch, and you think the Spacemacs theme looks good.
@end itemize") @end itemize")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-column-marker
(package
(name "emacs-column-marker")
(version "9")
(source
(origin
(method url-fetch)
(uri "https://www.emacswiki.org/emacs/download/column-marker.el")
(sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
(build-system emacs-build-system)
(home-page "https://www.emacswiki.org/emacs/ColumnMarker")
(synopsis "Emacs mode for highlighting columns")
(description
"With @code{column-marker.el} you can highlight any number of text columns.
Three such highlight column markers are provided by default. This is
especially useful for languages like COBOL or Fortran where certain columns
have special meaning. It is also handy for aligning text across long vertical
distances. Multi-column characters, such as @kbd{TAB} are treated
correctly.")
(license license:gpl2+)))

View File

@ -823,6 +823,30 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
render model libraries.") render model libraries.")
(license license:lgpl2.0+)))) (license license:lgpl2.0+))))
(define-public kicad-symbols
(package
(name "kicad-symbols")
(version "5.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KiCad/kicad-symbols.git")
(commit version)))
(file-name (string-append "kicad-symbols-" version "-checkout"))
(sha256
(base32
"18z5vpdq7hy2mpvm5vz1dz3ra3a5iybavvlzi8q2bmmdb6gsvf64"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests exist
(home-page "http://kicad-pcb.org/")
(synopsis "Official KiCad schematic symbol libraries for KiCad 5")
(description "This package contains the official KiCad schematic symbol
libraries for KiCad 5.")
;; TODO: Exception: "To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material', then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided as part of the 'Licensed Material'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
(define-public linsmith (define-public linsmith
(package (package
(name "linsmith") (name "linsmith")

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Dave Love <fx@gnu.org> ;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -41,33 +42,38 @@
(define-public opensm (define-public opensm
(package (package
(name "opensm") (name "opensm")
(version "3.3.20") (version "3.3.21")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://www.openfabrics.org/downloads/management/opensm-" (string-append "https://github.com/linux-rdma/opensm/releases/download/"
version ".tar.gz")) version "/opensm-" version ".tar.gz"))
(sha256 (base32 "162sg1w7kgy8ayl8a4dcbrfacmnfy2lr9a2yjyq0k65rmd378zg1")))) (sha256
(base32 "0j4vp118w1l47vs4had46ynybklyacxjlya0r15jg0y01l4j9l2h"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("flex" ,flex) `(("bison" ,bison)
("bison" ,bison))) ("flex" ,flex)
;; The 3.3.21 'release' tarball isn't properly bootstrapped.
("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(inputs (inputs
`(("rdma-core" ,rdma-core))) `(("rdma-core" ,rdma-core)))
(arguments (arguments
`(#:configure-flags '("--disable-static") `(#:configure-flags '("--disable-static")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'doc (add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((base (assoc-ref outputs "out")) (let* ((base (assoc-ref outputs "out"))
(doc (string-append base "/share/doc/" (doc (string-append base "/share/doc/"
,name "-" ,version))) ,name "-" ,version)))
(for-each (lambda (file) (for-each (lambda (file)
(install-file file doc)) (install-file file doc))
(append (list "AUTHORS" "COPYING" "ChangeLog") (find-files "doc"))
(find-files "doc")))
#t)))))) #t))))))
(home-page "https://www.openfabrics.org/") (home-page "https://www.openfabrics.org/")
(synopsis "OpenIB InfiniBand Subnet Manager and management utilities") (synopsis "OpenIB InfiniBand Subnet Manager and management utilities")

View File

@ -1302,3 +1302,53 @@ Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.")
"Inria Sans and Inria Serif are the two members of a type family designed "Inria Sans and Inria Serif are the two members of a type family designed
for Inria, a public research institute in computer science and mathematics.") for Inria, a public research institute in computer science and mathematics.")
(license license:silofl1.1))) (license license:silofl1.1)))
(define-public font-sil-gentium
(package
(name "font-sil-gentium")
(version "5.000")
(source (origin
(method url-fetch)
(uri (string-append
"https://software.sil.org/downloads/r/gentium/GentiumPlus-"
version ".zip"))
(sha256
(base32
"0m7189870hha217n1vgpmf89mwggrxkh679ffi1lxpnjggqi2n9k"))))
;; Note: The zip file provides TTF files only, but the developer release,
;; which contains additional files, has a 'SOURCES.txt' file that says
;; that "the primary source files for the fonts are the fonts themselves".
;; Thus it looks like the TTF can be considered source.
(build-system font-build-system)
(synopsis "Serif font for the Cyrillic, Greek, and Latin alphabets")
(description
"Gentium is a typeface family designed to enable the diverse ethnic
groups around the world who use the Latin, Cyrillic and Greek scripts to
produce readable, high-quality publications. The font comes with regular and
italics shapes. This package provides only TrueType files (TTF).")
(home-page "https://software.sil.org/gentium/")
(license license:silofl1.1)))
(define-public font-sil-charis
(package
(name "font-sil-charis")
(version "5.000")
(source (origin
(method url-fetch)
(uri (string-append
"https://software.sil.org/downloads/r/charis/CharisSIL-"
version ".zip"))
(sha256
(base32
"1zcvw37f1a7gkml3yfm6hxh93844llm7xj4w52600qq3ndrm8gjy"))))
;; As for Gentium (see above), the TTF files are considered source.
(build-system font-build-system)
(synopsis "Serif font for the Cyrillic and Latin alphabets")
(description
"Charis SIL is a Unicode-based font family that supports the wide range
of languages that use the Latin and Cyrillic scripts. It is specially
designed to make long texts pleasant and easy to read, even in less than ideal
reproduction and display environments. This package provides only TrueType
files (TTF).")
(home-page "https://software.sil.org/charis/")
(license license:silofl1.1)))

View File

@ -8,6 +8,7 @@
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -194,6 +195,58 @@ TTF (TrueType/OpenType Font) files.")
(license license:bsd-2) (license license:bsd-2)
(home-page "https://github.com/wget/ttf2eot"))) (home-page "https://github.com/wget/ttf2eot")))
(define-public ttf2pt1
(package
(name "ttf2pt1")
(version "3.4.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/ttf2pt1/ttf2pt1/"
version "/ttf2pt1-" version ".tgz"))
(sha256
(base32
"1l718n4k4widx49xz7qrj4mybzb8q67kp2jw7f47604ips4654mf"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove trailing backslashes in the sed expression of the
;; 'install' rule since sed would otherwise fail.
(substitute* "Makefile"
(("\\|;\\\\[[:space:]]*$") "|; "))
#t))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;no tests
#:phases (modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("INSTDIR =.*")
(string-append "INSTDIR = " out "\n"))
(("OWNER = .*")
"OWNER = `id -un`\n")
(("GROUP = .*")
"GROUP = `id -g`\n"))
#t)))
(replace 'build
(lambda _
(invoke "make" "-j"
(number->string (parallel-job-count))
"all" "CC=gcc"))))))
(inputs `(("perl" ,perl)))
(synopsis "Convert TrueType fonts to Postscript Type 1")
(description
"TTF2PT1 provides tools to convert most TrueType fonts (or other formats
supported by the FreeType library) to an Adobe Type 1 @file{.pfa} or
@file{.pfb} file. Another use is as a hinting engine: feed it an unhinted or
poorly hinted Adobe Type 1 font through the FreeType library and get it back
with freshly generated hints. The files produced by default are in
human-readable form, which further needs to be encoded with t1utilities to
work with most software requiring Type 1 fonts.")
(home-page "http://ttf2pt1.sourceforge.net/")
(license license:bsd-3)))
(define-public woff2 (define-public woff2
(let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede") (let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
(revision "1")) (revision "1"))

View File

@ -1080,7 +1080,7 @@ games.")
(define-public godot (define-public godot
(package (package
(name "godot") (name "godot")
(version "3.0.4") (version "3.0.6")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1089,7 +1089,7 @@ games.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0i4ssfb6igga9zwvsmahrnasx9cyqrsd6mlmssjgc482fy9q2kz4")) "0g64h0x8dlv6aa9ggfcidk2mknkfl5li7z1phcav8aqp9srj8avf"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -3658,7 +3658,7 @@ throwing people around in pseudo-randomly generated buildings.")
(define-public hyperrogue (define-public hyperrogue
(package (package
(name "hyperrogue") (name "hyperrogue")
(version "10.4j") (version "10.4t")
;; When updating this package, be sure to update the "hyperrogue-data" ;; When updating this package, be sure to update the "hyperrogue-data"
;; origin in native-inputs. ;; origin in native-inputs.
(source (origin (source (origin
@ -3669,11 +3669,12 @@ throwing people around in pseudo-randomly generated buildings.")
"-src.tgz")) "-src.tgz"))
(sha256 (sha256
(base32 (base32
"0909p4xvbi1c2jc5rdgrf8b1c60fmsaapabsi6yyglh5znkf0k27")))) "0phqhmnzmc16a23qb4fkil0flzb86kibdckf1r35nc3l0k4193nn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no check target `(#:tests? #f ; no check target
#:make-flags '("CXXFLAGS=-std=c++11") #:make-flags '("HYPERROGUE_USE_GLEW=1"
"HYPERROGUE_USE_PNG=1")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'set-paths 'set-sdl-paths (add-after 'set-paths 'set-sdl-paths
@ -3696,12 +3697,16 @@ throwing people around in pseudo-randomly generated buildings.")
(string-append dejavu-dir "/" dejavu-font))) (string-append dejavu-dir "/" dejavu-font)))
(substitute* music-file (substitute* music-file
(("\\*/") (("\\*/")
(string-append share-dir "/sounds/")))) (string-append share-dir "/sounds/")))
;; Fix Makefile. (substitute* "sound.cpp"
(("musicfile = \"\"")
(string-append "musicfile = \""
share-dir "/" music-file "\"")))
;; Disable build machine CPU optimizations and warnings treated
;; as errors.
(substitute* "Makefile" (substitute* "Makefile"
(("g\\+\\+ langen.cpp") (("-march=native") "")
"g++ langen.cpp ${CXXFLAGS}") (("-Werror") "")))
(("savepng.c") "savepng.cpp"))
#t)) #t))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
@ -3709,7 +3714,7 @@ throwing people around in pseudo-randomly generated buildings.")
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(share-dir (string-append out "/share/hyperrogue"))) (share-dir (string-append out "/share/hyperrogue")))
(mkdir-p bin) (mkdir-p bin)
(copy-file "hyper" (string-append bin "/hyperrogue")) (install-file "hyperrogue" bin)
(install-file "hyperrogue-music.txt" share-dir)) (install-file "hyperrogue-music.txt" share-dir))
#t)) #t))
(add-after 'install 'install-data (add-after 'install 'install-data
@ -3741,7 +3746,7 @@ throwing people around in pseudo-randomly generated buildings.")
"-win.zip")) "-win.zip"))
(sha256 (sha256
(base32 (base32
"0w61iv2rn93hi0q3hxyyyf9xcr8vi9zd7fjvpz5adpgf94jm3zsc")))) "1xd9v8zzgi8m5ar8g4gy1xx5zqwidz3gn1knz0lwib3kbxx4drpg"))))
("unzip" ,unzip))) ("unzip" ,unzip)))
(inputs (inputs
`(("font-dejavu" ,font-dejavu) `(("font-dejavu" ,font-dejavu)
@ -4397,7 +4402,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl (define-public crawl
(package (package
(name "crawl") (name "crawl")
(version "0.21.0") (version "0.22.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -4411,7 +4416,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
version "-nodeps.tar.xz"))) version "-nodeps.tar.xz")))
(sha256 (sha256
(base32 (base32
"0mmnkch8s9l7dh136yjvcyjr0vmyzv7z370rlcyir91qz6gg82n1")) "1qc90wwbxvjzqq66n8kfr0a2ny7sfvv2n84si67jiv2887d0ws6k"))
(patches (search-patches "crawl-upgrade-saves.patch")))) (patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -305,3 +306,67 @@ brushstrokes which is used by MyPaint and GIMP.")
MyPaint.") MyPaint.")
(home-page "https://github.com/Jehan/mypaint-brushes") (home-page "https://github.com/Jehan/mypaint-brushes")
(license license:cc0))) (license license:cc0)))
(define-public gimp-resynthesizer
;; GIMP does not respect any plugin search path environment variable, so after
;; installation users have to edit their GIMP settings to include
;; "$HOME/.guix-profile/lib/gimp/2.0/plug-ins/" in
;; “Edit->Preferences->Folders->Plug Ins”.
(package
(name "gimp-resynthesizer")
(version "2.0.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/bootchk/resynthesizer/archive/v"
version ".tar.gz"))
(sha256
(base32
"0l3404w6rqny7h3djskxf149gzx6x4qhndgbh3403c9lbh4pi1kr"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(arguments
`( ;; Turn off tests to avoid:
;; make[1]: *** No rule to make target '../src/resynth-gui.c', needed by 'resynthesizer.pot'. Stop.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda _
(setenv "CONFIG_SHELL" (which "sh"))
#t))
(add-after 'configure 'set-prefix
;; Install plugin under $prefix, not under GIMP's libdir.
(lambda* (#:key outputs #:allow-other-keys)
(let ((target (string-append (assoc-ref outputs "out")
"/lib/gimp/"
,(version-major
(package-version gimp))
".0")))
(substitute* (list "src/resynthesizer/Makefile"
"src/resynthesizer-gui/Makefile")
(("GIMP_LIBDIR = .*")
(string-append "GIMP_LIBDIR = " target "\n")))
(mkdir-p target)
#t))))))
(native-inputs
`(("autoconf" ,autoconf-wrapper)
("automake" ,automake)
("glib" ,glib "bin") ; glib-gettextize
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("gimp" ,gimp)
("gdk-pixbuf" ,gdk-pixbuf) ; needed by gimp-2.0.pc
("cairo" ,cairo)
("gegl" ,gegl)
("gtk+" ,gtk+-2) ; needed by gimpui-2.0.pc
("glib" ,glib)))
(home-page "https://github.com/bootchk/resynthesizer")
(synopsis "GIMP plugins for texture synthesis")
(description
"This package provides resynthesizer plugins for GIMP, which encompasses
tools for healing selections (content-aware fill), enlarging the canvas and
healing the border, increasing the resolution while adding detail, and
transfering the style of an image.")
(license license:gpl3+)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
@ -67,7 +67,8 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python)) #:use-module (guix build-system python)
#:use-module (srfi srfi-1))
(define-public libgpg-error (define-public libgpg-error
(package (package
@ -458,6 +459,13 @@ strong randomness, and more. It is implemented using the foreign function
interface (FFI) of Guile.") interface (FFI) of Guile.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public guile2.0-gcrypt
(package (inherit guile-gcrypt)
(name "guile2.0-gcrypt")
(inputs
`(("guile" ,guile-2.0)
,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
(define-public python-gpg (define-public python-gpg
(package (package
(name "python-gpg") (name "python-gpg")

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
@ -620,8 +620,9 @@ security standards.")
("zip" ,zip) ("zip" ,zip)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
`(("rust" ,rust) ;; Icecat 60 checkes for rust>=1.24
("cargo" ,rust "cargo") `(("rust" ,rust-1.24)
("cargo" ,rust-1.24 "cargo")
("perl" ,perl) ("perl" ,perl)
("python" ,python-2) ; Python 3 not supported ("python" ,python-2) ; Python 3 not supported
("python2-pysqlite" ,python2-pysqlite) ("python2-pysqlite" ,python2-pysqlite)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
@ -77,6 +77,10 @@
(guix build utils) (guix build utils)
(srfi srfi-1)) (srfi srfi-1))
#:tests? #f ; Tests are run by the all.bash script. #:tests? #f ; Tests are run by the all.bash script.
,@(if (string-prefix? "aarch64-linux" (or (%current-system)
(%current-target-system)))
'(#:system "armhf-linux")
'())
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
@ -213,7 +217,7 @@ programming language designed primarily for systems programming. Go is a
compiled, statically typed language in the tradition of C and C++, but adds compiled, statically typed language in the tradition of C and C++, but adds
garbage collection, various safety features, and concurrent programming features garbage collection, various safety features, and concurrent programming features
in the style of communicating sequential processes (@dfn{CSP}).") in the style of communicating sequential processes (@dfn{CSP}).")
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
(license license:bsd-3))) (license license:bsd-3)))
(define-public go-1.9 (define-public go-1.9

View File

@ -705,20 +705,20 @@ and understanding different BRDFs (and other component functions).")
(list (string-append "--x-includes=" (assoc-ref %build-inputs "libx11") (list (string-append "--x-includes=" (assoc-ref %build-inputs "libx11")
"/include") "/include")
(string-append "--x-libraries=" (assoc-ref %build-inputs "libx11") (string-append "--x-libraries=" (assoc-ref %build-inputs "libx11")
"/lib")) "/lib")
"--disable-examples")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autoreconf (replace 'bootstrap
(lambda _ (lambda _
;; let's call configure from configure phase and not now ;; let's call configure from configure phase and not now
(substitute* "autogen.sh" (("./configure") "# ./configure")) (substitute* "autogen.sh" (("./configure") "# ./configure"))
(zero? (system* "sh" "autogen.sh"))))))) (invoke "sh" "autogen.sh"))))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("libtool" ,libtool) ("libtool" ,libtool)
("autoconf" ,autoconf) ("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)))
("bash" ,bash)))
(inputs (inputs
`(("libx11" ,libx11) `(("libx11" ,libx11)
("freetype" ,freetype) ("freetype" ,freetype)

View File

@ -227,6 +227,7 @@ for the GStreamer multimedia library.")
("gdk-pixbuf" ,gdk-pixbuf) ("gdk-pixbuf" ,gdk-pixbuf)
("gst-plugins-base" ,gst-plugins-base) ("gst-plugins-base" ,gst-plugins-base)
("jack" ,jack-1) ("jack" ,jack-1)
("lame" ,lame)
("libavc1394" ,libavc1394) ("libavc1394" ,libavc1394)
("libcaca" ,libcaca) ("libcaca" ,libcaca)
("libdv" ,libdv) ("libdv" ,libdv)
@ -236,10 +237,12 @@ for the GStreamer multimedia library.")
("libshout" ,libshout) ("libshout" ,libshout)
("libsoup" ,libsoup) ("libsoup" ,libsoup)
("libvpx" ,libvpx) ("libvpx" ,libvpx)
("mpg123" ,mpg123)
("orc" ,orc) ("orc" ,orc)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)
("speex" ,speex) ("speex" ,speex)
("taglib" ,taglib) ("taglib" ,taglib)
("twolame" ,twolame)
("wavpack" ,wavpack))) ("wavpack" ,wavpack)))
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") `(("glib:bin" ,glib "bin")
@ -320,7 +323,6 @@ developers consider to have good quality code and correct functionality.")
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("lrdf" ,lrdf) ("lrdf" ,lrdf)
("mesa" ,mesa) ("mesa" ,mesa)
("mpg123" ,mpg123)
("neon" ,neon) ("neon" ,neon)
("openal" ,openal) ("openal" ,openal)
("openexr" ,openexr) ("openexr" ,openexr)
@ -357,13 +359,10 @@ par compared to the rest.")
(inputs (inputs
`(("gst-plugins-base" ,gst-plugins-base) `(("gst-plugins-base" ,gst-plugins-base)
("liba52" ,liba52) ("liba52" ,liba52)
("lame" ,lame)
("libcdio" ,libcdio) ("libcdio" ,libcdio)
("twolame" ,twolame)
("libmpeg2" ,libmpeg2) ("libmpeg2" ,libmpeg2)
("libdvdread" ,libdvdread) ("libdvdread" ,libdvdread)
("libx264" ,libx264) ("libx264" ,libx264)
("mpg123" ,mpg123)
;; TODO: ;; TODO:
;; * opencore-amr (for the AMR-NB decoder and encoder and the ;; * opencore-amr (for the AMR-NB decoder and encoder and the
;; AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/> ;; AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>

View File

@ -19,6 +19,7 @@
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -224,6 +225,20 @@ without requiring the source code to be rewritten.")
(home-page "https://www.gnu.org/software/guile/") (home-page "https://www.gnu.org/software/guile/")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public guile-2.0.13
;; For testing a "minimal" Guix
(hidden-package
(package (inherit guile-2.0)
(name "guile")
(version "2.0.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/guile/guile-" version
".tar.xz"))
(sha256
(base32
"12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p")))))))
(define-public guile-2.2 (define-public guile-2.2
(package (inherit guile-2.0) (package (inherit guile-2.0)
(name "guile") (name "guile")
@ -292,39 +307,14 @@ without requiring the source code to be rewritten.")
(package (package
(inherit guile-2.2) (inherit guile-2.2)
(name "guile-next") (name "guile-next")
(version (git-version "2.99" revision commit)) (version "2.9.1")
(source (origin (source (origin
(method git-fetch) (inherit (package-source guile-2.2))
(uri (git-reference (uri (string-append "https://alpha.gnu.org/gnu/guile/guile-"
(url "https://git.savannah.gnu.org/git/guile.git") version ".tar.xz"))
(commit commit)))
(sha256 (sha256
(base32 (base32
"1c2xy5cflg0hws48914rz3z8mdmf8w3lblfic0kxnymcmdv9cbhv")) "0iba93yqn6mvgid0rfsrg4amym36pg9m8cqdplxsy222blrj9gh1"))))
(file-name (git-file-name name version))))
(native-inputs
`(("autoconf", autoconf)
("automake" ,automake)
("libtool" ,libtool)
("gettext" ,gnu-gettext)
("texinfo" ,texinfo)
("flex" ,flex)
,@(package-native-inputs guile-2.2)))
(arguments
(substitute-keyword-arguments (package-arguments guile-2.2)
((#:phases phases '%standard-phases)
;; XXX: The default 'bootstrap' phase tries to execute the
;; ./bootstrap directory.
`(modify-phases ,phases
(replace 'bootstrap
(lambda _
(patch-shebang "build-aux/git-version-gen")
(invoke "autoreconf" "-vfi")))
(add-before 'check 'skip-version-test
(lambda _
;; Remove this test that's bound to fail.
(delete-file "test-suite/tests/version.test")
#t))))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "GUILE_LOAD_PATH") (variable "GUILE_LOAD_PATH")
@ -332,7 +322,9 @@ without requiring the source code to be rewritten.")
(search-path-specification (search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH") (variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/3.0/site-ccache" (files '("lib/guile/3.0/site-ccache"
"share/guile/site/3.0")))))))) "share/guile/site/3.0")))))
(properties '((ftp-server . "alpha.gnu.org")
(upstream-name . "guile"))))))
(define (make-guile-readline guile) (define (make-guile-readline guile)
(package (package
@ -1143,6 +1135,9 @@ Guile's foreign function interface.")
"This package provides Guile bindings to the SQLite database system.") "This package provides Guile bindings to the SQLite database system.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public guile2.0-sqlite3
(package-for-guile-2.0 guile-sqlite3))
(define-public haunt (define-public haunt
(package (package
(name "haunt") (name "haunt")
@ -1161,13 +1156,15 @@ Guile's foreign function interface.")
#:tests? #f ; test suite is non-deterministic :( #:tests? #f ; test suite is non-deterministic :(
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after 'install 'wrap-haunt (add-after 'install 'wrap-haunt
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'haunt' command to refer to the right ;; Wrap the 'haunt' command to refer to the right
;; modules. ;; modules.
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(site (string-append (site (string-append
out "/share/guile/site"))) out "/share/guile/site"))
(deps (list (assoc-ref inputs "guile-reader")
(assoc-ref inputs "guile-commonmark"))))
(match (scandir site) (match (scandir site)
(("." ".." version) (("." ".." version)
(let ((modules (string-append site "/" version)) (let ((modules (string-append site "/" version))
@ -1176,9 +1173,19 @@ Guile's foreign function interface.")
"/site-ccache"))) "/site-ccache")))
(wrap-program (string-append bin "/haunt") (wrap-program (string-append bin "/haunt")
`("GUILE_LOAD_PATH" ":" prefix `("GUILE_LOAD_PATH" ":" prefix
(,modules)) (,modules
,@(map (lambda (dep)
(string-append dep
"/share/guile/site/"
version))
deps)))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix `("GUILE_LOAD_COMPILED_PATH" ":" prefix
(,compiled-modules))) (,compiled-modules
,@(map (lambda (dep)
(string-append dep "/lib/guile/"
version
"/site-ccache"))
deps))))
#t))))))))) #t)))))))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)

View File

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

View File

@ -1,8 +1,9 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Mark Meyer <mark@ofosos.org> ;;; Copyright © 2017, 2018 Mark Meyer <mark@ofosos.org>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,6 +23,7 @@
(define-module (gnu packages kde) (define-module (gnu packages kde)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
@ -47,8 +49,87 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
(define-public kdenlive
(let ((version "18.08.1"))
(package
(name "kdenlive")
(version version)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "git://anongit.kde.org/kdenlive.git")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0ifnaclsz7w08mc485i3j1kkcpd1m8q5qamckrfwc375ac13xf4g"))))
(build-system cmake-build-system)
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("qttools" ,qttools)))
(propagated-inputs
`(("mlt" ,mlt)))
(inputs
`(("shared-mime-info" ,shared-mime-info)
("frei0r-plugins" ,frei0r-plugins)
("qtbase" ,qtbase)
("qtscript" ,qtscript)
("qtsvg" ,qtsvg)
("kparts" ,kparts)
("knotifications" ,knotifications)
("karchive" ,karchive)
("kdbusaddons" ,kdbusaddons)
("kcrash" ,kcrash)
("kguiaddons" ,kguiaddons)
("knewstuff" ,knewstuff)
("knotifyconfig" ,knotifyconfig)
("kfilemetadata" ,kfilemetadata)
("kdoctools" ,kdoctools)
("kdeclarative", kdeclarative)
("qtdeclarative", qtdeclarative)
("qtquickcontrols", qtquickcontrols)
("kiconthemes", kiconthemes)
("qtgraphicaleffects" ,qtgraphicaleffects)
("kplotting", kplotting)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
(qtbase (assoc-ref inputs "qtbase"))
(qtdeclarative (assoc-ref inputs "qtdeclarative"))
(frei0r (assoc-ref inputs "frei0r-plugins"))
(qml "/lib/qt5/qml"))
(wrap-program (string-append out "/bin/kdenlive")
`("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins/"))
'("qtbase", "qtsvg")))
`("FREI0R_PATH" ":" =
(,(string-append frei0r "/lib/frei0r-1/")))
`("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
(,(string-append qtbase "/lib/qt5/plugins/platforms")))
`("QML2_IMPORT_PATH" ":" prefix
(,(string-append qtquickcontrols qml)
,(string-append qtdeclarative qml)))))
#t)))))
(home-page "https://kdenlive.org")
(synopsis "Non-linear video editor")
(description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
Non-linear video editing is much more powerful than beginner's (linear)
editors, hence it requires a bit more organization before starting. However,
it is not reserved to specialists and can be used for small personal
projects.")
(license license:gpl2+))))
(define-public kdevelop (define-public kdevelop
(package (package
(name "kdevelop") (name "kdevelop")
@ -236,7 +317,7 @@ plugins, as well as code to create plugins, or complete applications.")
(define-public krita (define-public krita
(package (package
(name "krita") (name "krita")
(version "4.1.3") (version "4.1.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -245,7 +326,7 @@ plugins, as well as code to create plugins, or complete applications.")
"/" name "-" version ".tar.gz")) "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0d546dxs552z0pxnaka1jm7ksravw17f777wf593z0pl4ds8dgdx")))) "1by8p8ifdp03f05bhg8ygdd1j036anfpjjnzbx63l2fbmy9k6q10"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f

View File

@ -399,8 +399,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP. ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.18.12") (define %linux-libre-version "4.18.14")
(define %linux-libre-hash "1mcnb1mm7m6i9s591c3kx0f1vbzhbl3w92w137swcm9zifqpci5r") (define %linux-libre-hash "1gwwx8l283w8v1zylw2haqahvjns5dzqxx9li2586nnl8cfmfnwc")
(define %linux-libre-4.18-patches (define %linux-libre-4.18-patches
(list %boot-logo-patch (list %boot-logo-patch
@ -430,8 +430,8 @@ It has been modified to remove all non-free binary blobs.")
#:patches %linux-libre-4.18-patches #:patches %linux-libre-4.18-patches
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.74") (define %linux-libre-4.14-version "4.14.76")
(define %linux-libre-4.14-hash "0cxyx2yinnc8q0hmhb0swjgdz3s0ry7wxzyqss9f2i74xjjz4rm0") (define %linux-libre-4.14-hash "1y5zqf84ngb6f5f85xpd4bdy6mlxr52x19bx3mdrp82awc9fvr7q")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (make-linux-libre %linux-libre-4.14-version
@ -440,14 +440,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.131" (make-linux-libre "4.9.133"
"11pxwl7dmisbf2szg9qzkvhlpk68clh5l478n7b62q7hd8j3hxlv" "1vr94czdv5alzsgm2k1r6wqm01r2zafrayjn10l6kdr4g7aga488"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.4 (define-public linux-libre-4.4
(make-linux-libre "4.4.159" (make-linux-libre "4.4.161"
"12wrhni1ikmakwv55cgzsznx9llzp82irsisbjjs7bc8z2hzwr6l" "1q6bsndpjgw72mybhl5l8vrxs4mimg6821bjgi1pjkxbc7nd921b"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
@ -962,6 +962,8 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(substitute* "strace.c" (substitute* "strace.c"
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
#t))) #t)))
;; Don't fail if the architecture doesn't support different personalities.
#:configure-flags '("--enable-mpers=check")
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>. ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.
#:parallel-tests? #f)) ; undeterministic failures #:parallel-tests? #f)) ; undeterministic failures
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
@ -2667,14 +2669,14 @@ isolation or root privileges.")
(define-public hdparm (define-public hdparm
(package (package
(name "hdparm") (name "hdparm")
(version "9.55") (version "9.56")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/" (uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1ivdvrzimaayiq03by8mcq0mhmdljndj06h012zkdpw34irnpixm")))) "1np42qyhb503khvacnjcl3hb1dqly68gj0a1xip3j5qhbxlyvybg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (let ((out (assoc-ref %outputs "out"))) `(#:make-flags (let ((out (assoc-ref %outputs "out")))
@ -3626,14 +3628,14 @@ The following service daemons are also provided:
(define-public perftest (define-public perftest
(package (package
(name "perftest") (name "perftest")
(version "4.2-0.8") (version "4.4-0.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/linux-rdma/perftest/releases/download/V" (uri (string-append "https://github.com/linux-rdma/perftest/releases/download/v"
version "/perftest-" version ".g0e24e67.tar.gz")) version "/perftest-" version ".g0927198.tar.gz"))
(sha256 (sha256
(base32 "1r3pxn7cx3grb8myb4q1b0pk447pc06cifd0v7ym13xw00372dlx")))) (base32 "11ix4h0rrmqqyi84y55a9xnkvwsmwq0sywr46hvxzm4rqz4ma8vq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -3737,15 +3739,16 @@ such as frequency and voltage scaling.")
(define-public haveged (define-public haveged
(package (package
(name "haveged") (name "haveged")
(version "1.9.2") (version "1.9.4")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "http://www.issihosts.com/haveged/haveged-" (uri (git-reference
version ".tar.gz")) (url "https://github.com/jirka-h/haveged.git")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32 "1hrwzjd4byq4fdrg8svww3d8x449k80jxxrjy9v6jvzhfv19rvxr"))))
"0w5ypz6451msckivjriwyw8djydlwffam7x23xh626s2vzdrlzgp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.issihosts.com/haveged") (home-page "http://www.issihosts.com/haveged")
(synopsis "Entropy source for the Linux random number generator") (synopsis "Entropy source for the Linux random number generator")
@ -3754,11 +3757,16 @@ such as frequency and voltage scaling.")
Linux's @file{/dev/random} and @file{/dev/urandom} devices. The kernel's Linux's @file{/dev/random} and @file{/dev/urandom} devices. The kernel's
standard mechanisms for filling the entropy pool may not be sufficient for standard mechanisms for filling the entropy pool may not be sufficient for
systems with high needs or limited user interaction, such as headless servers. systems with high needs or limited user interaction, such as headless servers.
@command{haveged} runs as a privileged daemon, harvesting randomness from the @command{haveged} runs as a privileged daemon, harvesting randomness from the
indirect effects of hardware events on hidden processor state using the HArdware indirect effects of hardware events on hidden processor state using the HArdware
Volatile Entropy Gathering and Expansion (HAVEGE) algorithm. It tunes itself to Volatile Entropy Gathering and Expansion (@dfn{HAVEGE}) algorithm. It tunes
its environment and provides the same built-in test suite for the output stream itself to its environment and provides the same built-in test suite for the
as used on certified hardware security devices.") output stream as used on certified hardware security devices.
The quality of the randomness produced by this algorithm has not been proven.
It is recommended to run it together with another entropy source like rngd, and
not as a replacement for it.")
(license (list (license:non-copyleft "file://nist/mconf.h") (license (list (license:non-copyleft "file://nist/mconf.h")
(license:non-copyleft "file://nist/packtest.c") (license:non-copyleft "file://nist/packtest.c")
license:public-domain ; nist/dfft.c license:public-domain ; nist/dfft.c
@ -4248,12 +4256,14 @@ Light is the successor of lightscript.")
(setenv "TLP_SHCPL" (setenv "TLP_SHCPL"
(string-append out "/share/bash-completion/completions")) (string-append out "/share/bash-completion/completions"))
(setenv "TLP_MAN" (string-append out "/share/man")) (setenv "TLP_MAN" (string-append out "/share/man"))
(setenv "TLP_META" (string-append out "/share/metainfo"))))) (setenv "TLP_META" (string-append out "/share/metainfo"))
#t)))
(delete 'check) ; no tests (delete 'check) ; no tests
(add-before 'install 'fix-installation (add-before 'install 'fix-installation
(lambda _ (lambda _
;; Stop the Makefile from trying to create system directories. ;; Stop the Makefile from trying to create system directories.
(substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#")))) (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#"))
#t))
(replace 'install (replace 'install
(lambda _ (lambda _
(invoke "make" "install-tlp" "install-man") (invoke "make" "install-tlp" "install-man")
@ -4287,7 +4297,8 @@ Light is the successor of lightscript.")
"pciutils" "pciutils"
"rfkill" "rfkill"
"wireless-tools")))))) "wireless-tools"))))))
bin-files))))))) bin-files)
#t))))))
(home-page "http://linrunner.de/en/tlp/tlp.html") (home-page "http://linrunner.de/en/tlp/tlp.html")
(synopsis "Power management tool for Linux") (synopsis "Power management tool for Linux")
(description "TLP is a power management tool for Linux. It comes with (description "TLP is a power management tool for Linux. It comes with

View File

@ -29,41 +29,38 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages readline)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
#:use-module (gnu packages m4)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system asdf) #:use-module (guix build-system asdf)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages admin)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages ed)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages m4)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libffcall) #:use-module (gnu packages libffcall)
#:use-module (gnu packages readline) #:use-module (gnu packages libffi)
#:use-module (gnu packages sdl)
#:use-module (gnu packages libsigsegv) #:use-module (gnu packages libsigsegv)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages admin) #:use-module (gnu packages perl)
#:use-module (gnu packages ed)
#:use-module (gnu packages gl)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gettext)
#:use-module (gnu packages m4)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages perl)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
@ -256,25 +253,28 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
(define-public clisp (define-public clisp
(package (package
(name "clisp") (name "clisp")
(version "2.49-60") (version "2.49-92")
(source (source
(origin (origin
(method hg-fetch) (method git-fetch)
(uri (hg-reference (uri (git-reference
(url "http://hg.code.sf.net/p/clisp/clisp") (url "https://gitlab.com/gnu-clisp/clisp")
(changeset "clisp_2_49_60-2017-06-25"))) (commit "clisp-2.49.92-2018-02-18")))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0qjv3z274rbdmb941hy03hl63f4z7bmci234f8dyz4skgfr82d3i")) (base32 "0k2dmgl0miz3767iks4p0mvp6xw0ysyxhjpklyh11j010rmh6hqb"))
(patches (search-patches "clisp-glibc-2.26.patch" (patches (search-patches "clisp-remove-failing-test.patch"))))
"clisp-remove-failing-test.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("libffcall" ,libffcall) (inputs `(("libffcall" ,libffcall)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("readline" ,readline) ("readline" ,readline)
("libsigsegv" ,libsigsegv))) ("libsigsegv" ,libsigsegv)))
(arguments (arguments
'(#:configure-flags '("--enable-portability" `(#:configure-flags '(,@(if (string-prefix? "armhf-linux"
(or (%current-system)
(%current-target-system)))
'("CFLAGS=-falign-functions=4")
'())
"--with-dynamic-ffi" "--with-dynamic-ffi"
"--with-dynamic-modules" "--with-dynamic-modules"
"--with-module=rawsock") "--with-module=rawsock")
@ -288,6 +288,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
;; many places where our automatic patching misses them. Therefore ;; many places where our automatic patching misses them. Therefore
;; we do the following, in this early (post-unpack) phase, to solve ;; we do the following, in this early (post-unpack) phase, to solve
;; the problem from its root. ;; the problem from its root.
(substitute* '("src/clisp-link.in"
"src/unix.d"
"src/makemake.in")
(("/bin/sh") (which "sh")))
(substitute* (find-files "." "configure|Makefile") (substitute* (find-files "." "configure|Makefile")
(("/bin/sh") "sh")) (("/bin/sh") "sh"))
(substitute* '("src/clisp-link.in") (substitute* '("src/clisp-link.in")
@ -295,7 +299,7 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
#t))) #t)))
;; Makefiles seem to have race conditions. ;; Makefiles seem to have race conditions.
#:parallel-build? #f)) #:parallel-build? #f))
(home-page "http://www.clisp.org/") (home-page "https://clisp.sourceforge.io/")
(synopsis "A Common Lisp implementation") (synopsis "A Common Lisp implementation")
(description (description
"GNU CLISP is an implementation of ANSI Common Lisp. Common Lisp is a "GNU CLISP is an implementation of ANSI Common Lisp. Common Lisp is a

View File

@ -239,6 +239,50 @@ triangulations.")
(license (license:non-copyleft "file://COPYING.txt" (license (license:non-copyleft "file://COPYING.txt"
"See COPYING in the distribution.")))) "See COPYING in the distribution."))))
(define-public python-cvxopt
(package
(name "python-cvxopt")
(version "1.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cvxopt/cvxopt.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"05mnjil9palaa48xafdfh4f5pr4z7aqjr995rwl08qfyxs8y0crf"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'find-libraries
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CVXOPT_BLAS_LIB" "openblas")
(setenv "CVXOPT_BUILD_FFTW" "1")
(setenv "CVXOPT_BUILD_GLPK" "1")
(setenv "CVXOPT_BUILD_GSL" "1")
#t)))))
(inputs
`(("fftw" ,fftw)
("glpk" ,glpk)
("gsl" ,gsl)
("lapack" ,lapack)
("openblas" ,openblas)
("suitesparse" ,suitesparse)))
(home-page "https://www.cvxopt.org")
(synopsis "Python library for convex optimization")
(description
"CVXOPT is a package for convex optimization based on the Python
programming language. Its main purpose is to make the development of software
for convex optimization applications straightforward by building on Pythons
extensive standard library and on the strengths of Python as a high-level
programming language.")
(license license:gpl3+)))
(define-public python2-cvxopt
(package-with-python2 python-cvxopt))
(define-public units (define-public units
(package (package
(name "units") (name "units")

View File

@ -249,14 +249,14 @@ access to servers running the Discord protocol.")
(define-public hexchat (define-public hexchat
(package (package
(name "hexchat") (name "hexchat")
(version "2.14.1") (version "2.14.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"18h3l34zmazjlfx3irg7k7swppa62ad9ffbl0j3ry8p2xfyf8cmh")))) "064nq151nzsljv97dmkifyl162d2738vbgvm1phx7yv04pjvk4kp"))))
(build-system meson-build-system) (build-system meson-build-system)
(native-inputs `(("gettext" ,gettext-minimal) (native-inputs `(("gettext" ,gettext-minimal)
("perl" ,perl) ("perl" ,perl)
@ -295,7 +295,7 @@ window shows the list of currently connected networks and their channels, the
current conversation and the list of users. It uses colors to differentiate current conversation and the list of users. It uses colors to differentiate
between users and to highlight messages. It checks spelling using available between users and to highlight messages. It checks spelling using available
dictionaries. HexChat can be extended with multiple addons.") dictionaries. HexChat can be extended with multiple addons.")
(home-page "http://hexchat.net/") (home-page "https://hexchat.net/")
(license license:gpl2+))) (license license:gpl2+)))
(define-public ngircd (define-public ngircd
@ -873,7 +873,7 @@ protocols.")
(define-public c-toxcore (define-public c-toxcore
(package (package
(name "c-toxcore") (name "c-toxcore")
(version "0.2.7") (version "0.2.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -882,7 +882,7 @@ protocols.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1lcw979zakyb5kzy8yfk87js3bzfz3k2jxidda6ga6ljdnqdpxmy")))) "0qlkimlvbd24nlj7w9b5rpz1r807magqxmfylc1mlxsqhmfi5zj7"))))
(arguments (arguments
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable `(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
; for now. ; for now.

View File

@ -1777,6 +1777,42 @@ programming methods as well as for realizing complex systems for large-scale
projects.") projects.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public libpd
(package
(name "libpd")
(version "0.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libpd/libpd.git")
(commit version)
(recursive? #t))) ; for the 'pure-data' submodule
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1bcg1d9iyf9n37hwwphmih0c8rd1xcqykil5z1cax6xfs76552nk"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
#:make-flags '("CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "make" "install"
(string-append "prefix=" out)
;; XXX: Fix the last 2 lines of 'install' target.
"LIBPD_IMPLIB=NO"
"LIBPD_DEF=NO")))))))
(home-page "http://libpd.cc/")
(synopsis "Pure Data as an embeddable audio synthesis library")
(description
"Libpd provides Pure Data as an embeddable audio synthesis library. Its
main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
(license license:bsd-3)))
(define-public portmidi (define-public portmidi
(package (package
(name "portmidi") (name "portmidi")
@ -2429,6 +2465,47 @@ and managing stations, can be controlled remotely via fifo, and can run
event-based scripts for scrobbling, notifications, etc.") event-based scripts for scrobbling, notifications, etc.")
(license license:expat))) (license license:expat)))
(define-public picard
(package
(name "picard")
(version "2.0.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://musicbrainz.osuosl.org/pub/musicbrainz/"
"picard/picard-" version ".tar.gz"))
(sha256
(base32
"0ds3ylpqn717fnzcjrfn05v5xram01bj6n3hwn9igmkd1jgf8vhc"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "picard/const/__init__.py"
(("pyfpcalc")
(string-append
"pyfpcalc', '"
(assoc-ref inputs "chromaprint") "/bin/fpcalc")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(invoke "python" "setup.py" "install"
(string-append "--prefix=" (assoc-ref outputs "out"))
"--root=/"))))))
(native-inputs
`(("gettext" ,gettext-minimal)))
(inputs
`(("chromaprint" ,chromaprint)
("python-pyqt" ,python-pyqt)
("python-mutagen" ,python-mutagen)))
(home-page "https://picard.musicbrainz.org/")
(synopsis "Graphical music tagging application")
(description
"MusicBrainz Picard is a music tagging application, supporting multiple
formats, looking up tracks through metadata and audio fingerprints.")
(license license:gpl2+)))
(define-public python-mutagen (define-public python-mutagen
(package (package
(name "python-mutagen") (name "python-mutagen")

View File

@ -581,7 +581,7 @@ of the same name.")
(define-public wireshark (define-public wireshark
(package (package
(name "wireshark") (name "wireshark")
(version "2.6.3") (version "2.6.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -589,7 +589,7 @@ of the same name.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1v538h02y8avwy3cr11xz6wkyf9xd8qva4ng4sl9f2fw4skahn6i")))) "0qf81dk726sdsmjqa9nd251j1cwvzkyb4hrlp6w4iwa3cdz00sx0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("c-ares" ,c-ares) (inputs `(("c-ares" ,c-ares)
("glib" ,glib) ("glib" ,glib)

View File

@ -820,7 +820,8 @@ libpanel, librsvg and quartz.")
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))) (bin (string-append out "/bin")))
;; 'unison-fsmonitor' is used in "unison -repeat watch" mode. ;; 'unison-fsmonitor' is used in "unison -repeat watch" mode.
(install-file "src/unison-fsmonitor" bin)))) (install-file "src/unison-fsmonitor" bin)
#t)))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc") (let ((doc (string-append (assoc-ref outputs "doc")
@ -829,21 +830,19 @@ libpanel, librsvg and quartz.")
;; This file needs write-permissions, because it's ;; This file needs write-permissions, because it's
;; overwritten by 'docs' during documentation generation. ;; overwritten by 'docs' during documentation generation.
(chmod "src/strings.ml" #o600) (chmod "src/strings.ml" #o600)
(and (zero? (system* "make" "docs" (invoke "make" "docs"
"TEXDIRECTIVES=\\\\draftfalse")) "TEXDIRECTIVES=\\\\draftfalse")
(begin
(for-each (lambda (f) (for-each (lambda (f)
(install-file f doc)) (install-file f doc))
(map (lambda (ext) (map (lambda (ext)
(string-append (string-append "doc/unison-manual." ext))
"doc/unison-manual." ext))
;; Install only html documentation, ;; Install only html documentation,
;; since the build is currently ;; since the build is currently
;; non-reproducible with the ps, pdf, ;; non-reproducible with the ps, pdf,
;; and dvi docs. ;; and dvi docs.
'(;;"ps" "pdf" "dvi" '(;; "ps" "pdf" "dvi"
"html"))) "html")))
#t)))))))) #t))))))
(home-page "https://www.cis.upenn.edu/~bcpierce/unison/") (home-page "https://www.cis.upenn.edu/~bcpierce/unison/")
(synopsis "File synchronizer") (synopsis "File synchronizer")
(description (description

View File

@ -8,6 +8,7 @@
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -101,8 +102,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to ;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this. ;; start precisely like this.
(let ((version "0.15.0") (let ((version "0.15.0")
(commit "1d0be47ab680db938ac8da1ee65e1de91e198f67") (commit "f9a8fce10f2d99efec7cb1dd0f6c5f0df9d1b2df")
(revision 5)) (revision 6))
(package (package
(name "guix") (name "guix")
@ -118,7 +119,7 @@
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"19cn4ndmr9cqd7qh6w3nchbmdpaawdl9kc6g0v6g680vzcja417k")) "1733d5id0h44rrkyj9xw4fcqr1wawcfi8igpgk5wsn1iq4qqwv5f"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -232,13 +233,13 @@
(map (cut string-append <> (map (cut string-append <>
"/share/guile/site/" "/share/guile/site/"
effective) effective)
deps) (delete #f deps))
":")) ":"))
(gopath (string-join (gopath (string-join
(map (cut string-append <> (map (cut string-append <>
"/lib/guile/" effective "/lib/guile/" effective
"/site-ccache") "/site-ccache")
deps) (delete #f deps))
":"))) ":")))
(wrap-program (string-append out "/bin/guix") (wrap-program (string-append out "/bin/guix")
@ -345,12 +346,14 @@ the Nix package manager.")
"install-nodist_pkglibexecSCRIPTS") "install-nodist_pkglibexecSCRIPTS")
;; We need to tell 'guix-daemon' which 'guix' command to use. ;; We need to tell 'guix-daemon' which 'guix' command to use.
;; Here we use a questionable hack where we hard-code ;; Here we use a questionable hack where we hard-code root's
;; "~root/.config", which could be wrong (XXX). ;; current guix, which could be wrong (XXX). Note that scripts
;; like 'guix perform-download' do not run as root so we assume
;; that they have access to /var/guix/profiles/per-user/root.
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(substitute* (find-files (string-append out "/libexec")) (substitute* (find-files (string-append out "/libexec"))
(("exec \".*/bin/guix\"") (("exec \".*/bin/guix\"")
"exec ~root/.config/guix/current/bin/guix")) "exec /var/guix/profiles/per-user/root/current-guix/bin/guix"))
#t))) #t)))
(delete 'wrap-program))))))) (delete 'wrap-program)))))))
@ -363,10 +366,29 @@ the Nix package manager.")
,@(alist-delete "guile" (package-inputs guix)))) ,@(alist-delete "guile" (package-inputs guix))))
(propagated-inputs (propagated-inputs
`(("gnutls" ,gnutls/guile-2.0) `(("gnutls" ,gnutls/guile-2.0)
("guile-gcrypt" ,guile2.0-gcrypt)
("guile-json" ,guile2.0-json) ("guile-json" ,guile2.0-json)
("guile-sqlite3" ,guile2.0-sqlite3)
("guile-ssh" ,guile2.0-ssh) ("guile-ssh" ,guile2.0-ssh)
("guile-git" ,guile2.0-git))))) ("guile-git" ,guile2.0-git)))))
(define-public guix-minimal
;; A version of Guix which is built with the minimal set of dependencies, as
;; outlined in the README "Requirements" section. Intended as a CI job, so
;; marked as hidden.
(let ((guix guile2.0-guix))
(hidden-package
(package
(inherit guix)
(name "guix-minimal")
(inputs
`(("guile" ,guile-2.0.13)
,@(alist-delete "guile" (package-inputs guix))))
(propagated-inputs
(fold alist-delete
(package-propagated-inputs guix)
'("guile-json" "guile-ssh")))))))
(define (source-file? file stat) (define (source-file? file stat)
"Return true if FILE is likely a source file, false if it is a typical "Return true if FILE is likely a source file, false if it is a typical
generated file." generated file."

View File

@ -1,20 +0,0 @@
This patch comes from Debian.
Description: cfree is not present in glibc-2.26, stop wrapping it
Author: Adam Conrad <adconrad@ubuntu.com>
Bug: https://sourceforge.net/p/clisp/bugs/717/
Bug-Debian: https://bugs.debian.org/880686
Applied-Upstream: https://sourceforge.net/p/clisp/clisp/ci/3bc928712d150ff1e5f6b2bfb7838655f3ff52fa/
Reviewed-By: Sébastien Villemot <sebastien@debian.org>
Last-Update: 2017-11-27
--- clisp-2.49.20170913.orig/modules/bindings/glibc/linux.lisp
+++ clisp-2.49.20170913/modules/bindings/glibc/linux.lisp
@@ -649,7 +649,6 @@
(def-call-out calloc (:arguments (nmemb size_t) (size size_t))
(:return-type c-pointer))
(def-call-out free (:arguments (ptr c-pointer)) (:return-type nil))
-(def-call-out cfree (:arguments (ptr c-pointer)) (:return-type nil))
(def-call-out valloc (:arguments (size size_t)) (:return-type c-pointer))
(def-call-out abort (:arguments) (:return-type nil))

View File

@ -5,8 +5,9 @@ By default crawl checks for a mtime difference on files in DATADIR to see if an
upgrade is required, but guix nulls all file dates, upgrade is required, but guix nulls all file dates,
and crawl would never upgrade saves. and crawl would never upgrade saves.
--- a/source/database.cc 2016-05-31 09:56:08.000000000 +0200 diff -ur a/source/database.cc b/source/database.cc
+++ a/source/database.cc 2017-06-05 03:00:19.270632107 +0200 --- a/source/database.cc 2018-08-09 21:49:26.000000000 -0400
+++ b/source/database.cc 2018-10-07 18:06:41.022445789 -0400
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
#include "syscalls.h" #include "syscalls.h"
#include "threads.h" #include "threads.h"
@ -23,16 +24,16 @@ and crawl would never upgrade saves.
TextDB *_parent; TextDB *_parent;
const char* lang() { return _parent ? Options.lang_name : 0; } const char* lang() { return _parent ? Options.lang_name : 0; }
public: public:
@@ -165,7 +167,7 @@ @@ -163,7 +165,7 @@
TextDB::TextDB(const char* db_name, const char* dir, ...) TextDB::TextDB(const char* db_name, const char* dir, vector<string> files)
: _db_name(db_name), _directory(dir), : _db_name(db_name), _directory(dir), _input_files(files),
- _db(nullptr), timestamp(""), _parent(0), translation(0) - _db(nullptr), timestamp(""), _parent(0), translation(0)
+ _db(nullptr), timestamp(""), version(""), _parent(0), translation(0) + _db(nullptr), timestamp(""), version(""), _parent(0), translation(0)
{ {
va_list args; }
va_start(args, dir);
@@ -187,7 +189,7 @@ @@ -171,7 +173,7 @@
: _db_name(parent->_db_name), : _db_name(parent->_db_name),
_directory(parent->_directory + Options.lang_name + "/"), _directory(parent->_directory + Options.lang_name + "/"),
_input_files(parent->_input_files), // FIXME: pointless copy _input_files(parent->_input_files), // FIXME: pointless copy
@ -41,7 +42,7 @@ and crawl would never upgrade saves.
{ {
} }
@@ -202,6 +204,9 @@ @@ -186,6 +188,9 @@
return false; return false;
timestamp = _query_database(*this, "TIMESTAMP", false, false, true); timestamp = _query_database(*this, "TIMESTAMP", false, false, true);
@ -51,7 +52,7 @@ and crawl would never upgrade saves.
if (timestamp.empty()) if (timestamp.empty())
return false; return false;
@@ -245,6 +250,9 @@ @@ -229,6 +234,9 @@
string ts; string ts;
bool no_files = true; bool no_files = true;
@ -61,7 +62,7 @@ and crawl would never upgrade saves.
for (const string &file : _input_files) for (const string &file : _input_files)
{ {
string full_input_path = _directory + file; string full_input_path = _directory + file;
@@ -261,7 +269,7 @@ @@ -245,7 +253,7 @@
ts += buf; ts += buf;
} }
@ -70,7 +71,7 @@ and crawl would never upgrade saves.
{ {
// No point in empty databases, although for simplicity keep ones // No point in empty databases, although for simplicity keep ones
// for disappeared translations for now. // for disappeared translations for now.
@@ -321,7 +329,10 @@ @@ -313,7 +321,10 @@
_store_text_db(full_input_path, _db); _store_text_db(full_input_path, _db);
} }
} }

View File

@ -1,27 +0,0 @@
From 13a14579cc1bb772735f895dd5b4b90c6812f3ee Mon Sep 17 00:00:00 2001
From: Chris Feng <chris.w.feng@gmail.com>
Date: Sun, 29 Jul 2018 00:00:00 +0000
Subject: [PATCH] Fix issues with destroying full screen X windows
* exwm-manage.el (exwm-manage--unmanage-window): Set the Emacs window
of an full screen X window as non-dedicated before killing its buffer
so as not to cause other side effects.
---
exwm-manage.el | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/exwm-manage.el b/exwm-manage.el
index a0a9e05..349157f 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -392,6 +392,10 @@ manager is shutting down."
:window window :parent exwm--root :x 0 :y 0))
(xcb:+request exwm--connection
(make-instance 'xcb:DestroyWindow :window container))))
+ (when (exwm-layout--fullscreen-p)
+ (let ((window (get-buffer-window)))
+ (when window
+ (set-window-dedicated-p window nil))))
(exwm-manage--set-client-list)
(xcb:flush exwm--connection))
(let ((kill-buffer-func

View File

@ -0,0 +1,61 @@
Fix CVE-2018-14647:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14647
https://bugs.python.org/issue34623
Taken from upstream:
https://github.com/python/cpython/commit/f7666e828cc3d5873136473ea36ba2013d624fa1
diff --git Include/pyexpat.h Include/pyexpat.h
index 44259bf6d7..07020b5dc9 100644
--- Include/pyexpat.h
+++ Include/pyexpat.h
@@ -3,7 +3,7 @@
/* note: you must import expat.h before importing this module! */
-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0"
+#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
struct PyExpat_CAPI
@@ -48,6 +48,8 @@ struct PyExpat_CAPI
enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
int (*DefaultUnknownEncodingHandler)(
void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
+ /* might be none for expat < 2.1.0 */
+ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
/* always add new stuff to the end! */
};
diff --git Modules/_elementtree.c Modules/_elementtree.c
index 707ab2912b..53f05f937f 100644
--- Modules/_elementtree.c
+++ Modules/_elementtree.c
@@ -3261,6 +3261,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
PyErr_NoMemory();
return -1;
}
+ /* expat < 2.1.0 has no XML_SetHashSalt() */
+ if (EXPAT(SetHashSalt) != NULL) {
+ EXPAT(SetHashSalt)(self->parser,
+ (unsigned long)_Py_HashSecret.expat.hashsalt);
+ }
if (target) {
Py_INCREF(target);
diff --git Modules/pyexpat.c Modules/pyexpat.c
index 47c3e86c20..aa21d93c11 100644
--- Modules/pyexpat.c
+++ Modules/pyexpat.c
@@ -1887,6 +1887,11 @@ MODULE_INITFUNC(void)
capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
capi.SetEncoding = XML_SetEncoding;
capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
+#if XML_COMBINED_VERSION >= 20100
+ capi.SetHashSalt = XML_SetHashSalt;
+#else
+ capi.SetHashSalt = NULL;
+#endif
/* export using capsule */
capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);

View File

@ -0,0 +1,47 @@
Fix CVE-2018-1000802:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000802
Taken from upstream commit (sans NEWS):
https://github.com/python/cpython/commit/d8b103b8b3ef9644805341216963a64098642435
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 3462f7c5e9..0ab1a06f52 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -413,17 +413,21 @@ def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0,
return archive_name
-def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False):
+def _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger):
# XXX see if we want to keep an external call here
if verbose:
zipoptions = "-r"
else:
zipoptions = "-rq"
- from distutils.errors import DistutilsExecError
- from distutils.spawn import spawn
+ cmd = ["zip", zipoptions, zip_filename, base_dir]
+ if logger is not None:
+ logger.info(' '.join(cmd))
+ if dry_run:
+ return
+ import subprocess
try:
- spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run)
- except DistutilsExecError:
+ subprocess.check_call(cmd)
+ except subprocess.CalledProcessError:
# XXX really should distinguish between "couldn't find
# external 'zip' command" and "zip failed".
raise ExecError, \
@@ -458,7 +462,7 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None):
zipfile = None
if zipfile is None:
- _call_external_zip(base_dir, zip_filename, verbose, dry_run)
+ _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger)
else:
if logger is not None:
logger.info("creating '%s' and adding '%s' to it",

View File

@ -0,0 +1,20 @@
Fix CVE-2018-1060:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1060
Taken from upstream commit (sans test and NEWS):
https://github.com/python/cpython/commit/e052d40cea15f582b50947f7d906b39744dc62a2
diff --git a/Lib/poplib.py b/Lib/poplib.py
index b91e5f72d2ca..a238510b38fc 100644
--- a/Lib/poplib.py
+++ b/Lib/poplib.py
@@ -274,7 +274,7 @@ def rpop(self, user):
return self._shortcmd('RPOP %s' % user)
- timestamp = re.compile(r'\+OK.*(<[^>]+>)')
+ timestamp = re.compile(br'\+OK.[^<]*(<.*>)')
def apop(self, user, secret):
"""Authorisation

View File

@ -0,0 +1,20 @@
Fix CVE-2018-1061:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1061
Taken from upstream commit (sans test and NEWS):
https://github.com/python/cpython/commit/e052d40cea15f582b50947f7d906b39744dc62a2
diff --git a/Lib/difflib.py b/Lib/difflib.py
index 1c6fbdbedcb7..788a92df3f89 100644
--- a/Lib/difflib.py
+++ b/Lib/difflib.py
@@ -1103,7 +1103,7 @@ def _qformat(self, aline, bline, atags, btags):
import re
-def IS_LINE_JUNK(line, pat=re.compile(r"\s*#?\s*$").match):
+def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match):
r"""
Return 1 for ignorable line: iff `line` is blank or contains a single '#'.

View File

@ -0,0 +1,61 @@
Fix CVE-2018-14647:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14647
https://bugs.python.org/issue34623
Taken from upstream:
https://github.com/python/cpython/commit/18b20bad75b4ff0486940fba4ec680e96e70f3a2
diff --git a/Include/pyexpat.h b/Include/pyexpat.h
index 5340ef5fa3..3fc5fa54da 100644
--- a/Include/pyexpat.h
+++ b/Include/pyexpat.h
@@ -3,7 +3,7 @@
/* note: you must import expat.h before importing this module! */
-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0"
+#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
struct PyExpat_CAPI
@@ -43,6 +43,8 @@ struct PyExpat_CAPI
XML_Parser parser, XML_UnknownEncodingHandler handler,
void *encodingHandlerData);
void (*SetUserData)(XML_Parser parser, void *userData);
+ /* might be none for expat < 2.1.0 */
+ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
/* always add new stuff to the end! */
};
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index f7f992dd3a..b38e0ab329 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -2574,6 +2574,11 @@ xmlparser(PyObject* self_, PyObject* args, PyObject* kw)
PyErr_NoMemory();
return NULL;
}
+ /* expat < 2.1.0 has no XML_SetHashSalt() */
+ if (EXPAT(SetHashSalt) != NULL) {
+ EXPAT(SetHashSalt)(self->parser,
+ (unsigned long)_Py_HashSecret.prefix);
+ }
ALLOC(sizeof(XMLParserObject), "create expatparser");
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index 2b4d31293c..1f8c0d70a5 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -2042,6 +2042,11 @@ MODULE_INITFUNC(void)
capi.SetProcessingInstructionHandler = XML_SetProcessingInstructionHandler;
capi.SetUnknownEncodingHandler = XML_SetUnknownEncodingHandler;
capi.SetUserData = XML_SetUserData;
+#if XML_COMBINED_VERSION >= 20100
+ capi.SetHashSalt = XML_SetHashSalt;
+#else
+ capi.SetHashSalt = NULL;
+#endif
/* export using capsule */
capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);

View File

@ -1,360 +0,0 @@
From <https://git.busybox.net/buildroot/tree/package/x265/0003-arm-asm-primitives.patch?id=57d4a27eaf1a9e59d767c321e7b7500c5060a2ac>.
This fixes build errors like:
cd /tmp/guix-build-x265-2.8.drv-0/x265_2.8/build/encoder && /gnu/store/cd5q2pni1d95fs3cdabbclyh9hqhw2nq-gcc-5.5.0/bin/c++ -DEXPORT_C_API=1 -DHAVE_ARMV6=1 -DHAVE_INT_TYPES_H=1 -DHAVE_NEON -DHIGH_BIT_DEPTH=0 -DX265_ARCH_ARM=1 -DX265_DEPTH=8 -DX265_NS=x265 -D__STDC_LIMIT_MACROS=1 -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/. -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/common -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/encoder -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/build -O2 -g -DNDEBUG -Wall -Wextra -Wshadow -std=gnu++98 -fPIC -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC -Wno-array-bounds -ffast-math -fno-exceptions -Wno-uninitialized -o CMakeFiles/encoder.dir/search.cpp.o -c /tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/encoder/search.cpp
/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/common/arm/asm-primitives.cpp:437:38: error: incompatible types in assignment of ?void(const pixel*, intptr_t, int16_t*, intptr_t) {aka void(const unsigned char*, int, short int*, int)}? to ?void (* [2])(const pixel*, intptr_t, int16_t*, intptr_t) {aka void (* [2])(const unsigned char*, int, short int*, int)}?
p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon);
^
Downloaded from upstream bug report:
https://bitbucket.org/multicoreware/x265/issues/406
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
--- ./source/common/arm/asm-primitives.cpp.orig 2018-05-21 02:33:10.000000000 -0600
+++ ./source/common/arm/asm-primitives.cpp 2018-05-28 20:38:37.302378303 -0600
@@ -48,77 +48,77 @@ void setupAssemblyPrimitives(EncoderPrim
p.ssim_4x4x2_core = PFX(ssim_4x4x2_core_neon);
// addAvg
- p.pu[LUMA_4x4].addAvg = PFX(addAvg_4x4_neon);
- p.pu[LUMA_4x8].addAvg = PFX(addAvg_4x8_neon);
- p.pu[LUMA_4x16].addAvg = PFX(addAvg_4x16_neon);
- p.pu[LUMA_8x4].addAvg = PFX(addAvg_8x4_neon);
- p.pu[LUMA_8x8].addAvg = PFX(addAvg_8x8_neon);
- p.pu[LUMA_8x16].addAvg = PFX(addAvg_8x16_neon);
- p.pu[LUMA_8x32].addAvg = PFX(addAvg_8x32_neon);
- p.pu[LUMA_12x16].addAvg = PFX(addAvg_12x16_neon);
- p.pu[LUMA_16x4].addAvg = PFX(addAvg_16x4_neon);
- p.pu[LUMA_16x8].addAvg = PFX(addAvg_16x8_neon);
- p.pu[LUMA_16x12].addAvg = PFX(addAvg_16x12_neon);
- p.pu[LUMA_16x16].addAvg = PFX(addAvg_16x16_neon);
- p.pu[LUMA_16x32].addAvg = PFX(addAvg_16x32_neon);
- p.pu[LUMA_16x64].addAvg = PFX(addAvg_16x64_neon);
- p.pu[LUMA_24x32].addAvg = PFX(addAvg_24x32_neon);
- p.pu[LUMA_32x8].addAvg = PFX(addAvg_32x8_neon);
- p.pu[LUMA_32x16].addAvg = PFX(addAvg_32x16_neon);
- p.pu[LUMA_32x24].addAvg = PFX(addAvg_32x24_neon);
- p.pu[LUMA_32x32].addAvg = PFX(addAvg_32x32_neon);
- p.pu[LUMA_32x64].addAvg = PFX(addAvg_32x64_neon);
- p.pu[LUMA_48x64].addAvg = PFX(addAvg_48x64_neon);
- p.pu[LUMA_64x16].addAvg = PFX(addAvg_64x16_neon);
- p.pu[LUMA_64x32].addAvg = PFX(addAvg_64x32_neon);
- p.pu[LUMA_64x48].addAvg = PFX(addAvg_64x48_neon);
- p.pu[LUMA_64x64].addAvg = PFX(addAvg_64x64_neon);
+ p.pu[LUMA_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon);
+ p.pu[LUMA_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon);
+ p.pu[LUMA_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon);
+ p.pu[LUMA_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon);
+ p.pu[LUMA_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon);
+ p.pu[LUMA_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon);
+ p.pu[LUMA_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon);
+ p.pu[LUMA_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon);
+ p.pu[LUMA_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon);
+ p.pu[LUMA_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon);
+ p.pu[LUMA_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon);
+ p.pu[LUMA_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon);
+ p.pu[LUMA_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon);
+ p.pu[LUMA_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon);
+ p.pu[LUMA_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon);
+ p.pu[LUMA_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon);
+ p.pu[LUMA_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon);
+ p.pu[LUMA_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon);
+ p.pu[LUMA_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon);
+ p.pu[LUMA_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon);
+ p.pu[LUMA_48x64].addAvg[ALIGNED] = PFX(addAvg_48x64_neon);
+ p.pu[LUMA_64x16].addAvg[ALIGNED] = PFX(addAvg_64x16_neon);
+ p.pu[LUMA_64x32].addAvg[ALIGNED] = PFX(addAvg_64x32_neon);
+ p.pu[LUMA_64x48].addAvg[ALIGNED] = PFX(addAvg_64x48_neon);
+ p.pu[LUMA_64x64].addAvg[ALIGNED] = PFX(addAvg_64x64_neon);
// chroma addAvg
- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg = PFX(addAvg_4x2_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg = PFX(addAvg_4x4_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg = PFX(addAvg_4x8_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg = PFX(addAvg_4x16_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg = PFX(addAvg_6x8_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg = PFX(addAvg_8x2_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg = PFX(addAvg_8x4_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg = PFX(addAvg_8x6_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg = PFX(addAvg_8x8_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg = PFX(addAvg_8x16_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg = PFX(addAvg_8x32_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg = PFX(addAvg_12x16_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg = PFX(addAvg_16x4_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg = PFX(addAvg_16x8_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg = PFX(addAvg_16x12_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg = PFX(addAvg_16x16_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg = PFX(addAvg_16x32_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg = PFX(addAvg_24x32_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg = PFX(addAvg_32x8_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg = PFX(addAvg_32x16_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg = PFX(addAvg_32x24_neon);
- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg = PFX(addAvg_32x32_neon);
-
- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg = PFX(addAvg_4x8_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg = PFX(addAvg_4x16_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg = PFX(addAvg_4x32_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg = PFX(addAvg_6x16_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg = PFX(addAvg_8x4_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg = PFX(addAvg_8x8_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg = PFX(addAvg_8x12_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg = PFX(addAvg_8x16_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg = PFX(addAvg_8x32_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg = PFX(addAvg_8x64_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg = PFX(addAvg_12x32_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg = PFX(addAvg_16x8_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg = PFX(addAvg_16x16_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg = PFX(addAvg_16x24_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg = PFX(addAvg_16x32_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg = PFX(addAvg_16x64_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg = PFX(addAvg_24x64_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg = PFX(addAvg_32x16_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg = PFX(addAvg_32x32_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg = PFX(addAvg_32x48_neon);
- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg = PFX(addAvg_32x64_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg[ALIGNED] = PFX(addAvg_4x2_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg[ALIGNED] = PFX(addAvg_6x8_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg[ALIGNED] = PFX(addAvg_8x2_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg[ALIGNED] = PFX(addAvg_8x6_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon);
+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon);
+
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg[ALIGNED] = PFX(addAvg_4x32_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg[ALIGNED] = PFX(addAvg_6x16_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg[ALIGNED] = PFX(addAvg_8x12_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg[ALIGNED] = PFX(addAvg_8x64_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg[ALIGNED] = PFX(addAvg_12x32_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg[ALIGNED] = PFX(addAvg_16x24_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg[ALIGNED] = PFX(addAvg_24x64_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg[ALIGNED] = PFX(addAvg_32x48_neon);
+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon);
// quant
p.quant = PFX(quant_neon);
@@ -402,7 +402,7 @@ void setupAssemblyPrimitives(EncoderPrim
p.scale2D_64to32 = PFX(scale2D_64to32_neon);
// scale1D_128to64
- p.scale1D_128to64 = PFX(scale1D_128to64_neon);
+ p.scale1D_128to64[ALIGNED] = PFX(scale1D_128to64_neon);
// copy_count
p.cu[BLOCK_4x4].copy_cnt = PFX(copy_cnt_4_neon);
@@ -411,37 +411,37 @@ void setupAssemblyPrimitives(EncoderPrim
p.cu[BLOCK_32x32].copy_cnt = PFX(copy_cnt_32_neon);
// filterPixelToShort
- p.pu[LUMA_4x4].convert_p2s = PFX(filterPixelToShort_4x4_neon);
- p.pu[LUMA_4x8].convert_p2s = PFX(filterPixelToShort_4x8_neon);
- p.pu[LUMA_4x16].convert_p2s = PFX(filterPixelToShort_4x16_neon);
- p.pu[LUMA_8x4].convert_p2s = PFX(filterPixelToShort_8x4_neon);
- p.pu[LUMA_8x8].convert_p2s = PFX(filterPixelToShort_8x8_neon);
- p.pu[LUMA_8x16].convert_p2s = PFX(filterPixelToShort_8x16_neon);
- p.pu[LUMA_8x32].convert_p2s = PFX(filterPixelToShort_8x32_neon);
- p.pu[LUMA_12x16].convert_p2s = PFX(filterPixelToShort_12x16_neon);
- p.pu[LUMA_16x4].convert_p2s = PFX(filterPixelToShort_16x4_neon);
- p.pu[LUMA_16x8].convert_p2s = PFX(filterPixelToShort_16x8_neon);
- p.pu[LUMA_16x12].convert_p2s = PFX(filterPixelToShort_16x12_neon);
- p.pu[LUMA_16x16].convert_p2s = PFX(filterPixelToShort_16x16_neon);
- p.pu[LUMA_16x32].convert_p2s = PFX(filterPixelToShort_16x32_neon);
- p.pu[LUMA_16x64].convert_p2s = PFX(filterPixelToShort_16x64_neon);
- p.pu[LUMA_24x32].convert_p2s = PFX(filterPixelToShort_24x32_neon);
- p.pu[LUMA_32x8].convert_p2s = PFX(filterPixelToShort_32x8_neon);
- p.pu[LUMA_32x16].convert_p2s = PFX(filterPixelToShort_32x16_neon);
- p.pu[LUMA_32x24].convert_p2s = PFX(filterPixelToShort_32x24_neon);
- p.pu[LUMA_32x32].convert_p2s = PFX(filterPixelToShort_32x32_neon);
- p.pu[LUMA_32x64].convert_p2s = PFX(filterPixelToShort_32x64_neon);
- p.pu[LUMA_48x64].convert_p2s = PFX(filterPixelToShort_48x64_neon);
- p.pu[LUMA_64x16].convert_p2s = PFX(filterPixelToShort_64x16_neon);
- p.pu[LUMA_64x32].convert_p2s = PFX(filterPixelToShort_64x32_neon);
- p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon);
- p.pu[LUMA_64x64].convert_p2s = PFX(filterPixelToShort_64x64_neon);
+ p.pu[LUMA_4x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x4_neon);
+ p.pu[LUMA_4x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x8_neon);
+ p.pu[LUMA_4x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x16_neon);
+ p.pu[LUMA_8x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x4_neon);
+ p.pu[LUMA_8x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x8_neon);
+ p.pu[LUMA_8x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x16_neon);
+ p.pu[LUMA_8x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x32_neon);
+ p.pu[LUMA_12x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_12x16_neon);
+ p.pu[LUMA_16x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x4_neon);
+ p.pu[LUMA_16x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x8_neon);
+ p.pu[LUMA_16x12].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x12_neon);
+ p.pu[LUMA_16x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x16_neon);
+ p.pu[LUMA_16x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x32_neon);
+ p.pu[LUMA_16x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x64_neon);
+ p.pu[LUMA_24x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_24x32_neon);
+ p.pu[LUMA_32x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x8_neon);
+ p.pu[LUMA_32x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x16_neon);
+ p.pu[LUMA_32x24].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x24_neon);
+ p.pu[LUMA_32x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x32_neon);
+ p.pu[LUMA_32x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x64_neon);
+ p.pu[LUMA_48x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_48x64_neon);
+ p.pu[LUMA_64x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x16_neon);
+ p.pu[LUMA_64x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x32_neon);
+ p.pu[LUMA_64x48].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x48_neon);
+ p.pu[LUMA_64x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x64_neon);
// Block_fill
- p.cu[BLOCK_4x4].blockfill_s = PFX(blockfill_s_4x4_neon);
- p.cu[BLOCK_8x8].blockfill_s = PFX(blockfill_s_8x8_neon);
- p.cu[BLOCK_16x16].blockfill_s = PFX(blockfill_s_16x16_neon);
- p.cu[BLOCK_32x32].blockfill_s = PFX(blockfill_s_32x32_neon);
+ p.cu[BLOCK_4x4].blockfill_s[ALIGNED] = PFX(blockfill_s_4x4_neon);
+ p.cu[BLOCK_8x8].blockfill_s[ALIGNED] = PFX(blockfill_s_8x8_neon);
+ p.cu[BLOCK_16x16].blockfill_s[ALIGNED] = PFX(blockfill_s_16x16_neon);
+ p.cu[BLOCK_32x32].blockfill_s[ALIGNED] = PFX(blockfill_s_32x32_neon);
// Blockcopy_ss
p.cu[BLOCK_4x4].copy_ss = PFX(blockcopy_ss_4x4_neon);
@@ -495,21 +495,21 @@ void setupAssemblyPrimitives(EncoderPrim
p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].copy_sp = PFX(blockcopy_sp_32x64_neon);
// pixel_add_ps
- p.cu[BLOCK_4x4].add_ps = PFX(pixel_add_ps_4x4_neon);
- p.cu[BLOCK_8x8].add_ps = PFX(pixel_add_ps_8x8_neon);
- p.cu[BLOCK_16x16].add_ps = PFX(pixel_add_ps_16x16_neon);
- p.cu[BLOCK_32x32].add_ps = PFX(pixel_add_ps_32x32_neon);
- p.cu[BLOCK_64x64].add_ps = PFX(pixel_add_ps_64x64_neon);
+ p.cu[BLOCK_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon);
+ p.cu[BLOCK_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon);
+ p.cu[BLOCK_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon);
+ p.cu[BLOCK_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon);
+ p.cu[BLOCK_64x64].add_ps[ALIGNED] = PFX(pixel_add_ps_64x64_neon);
// chroma add_ps
- p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps = PFX(pixel_add_ps_4x4_neon);
- p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps = PFX(pixel_add_ps_8x8_neon);
- p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps = PFX(pixel_add_ps_16x16_neon);
- p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps = PFX(pixel_add_ps_32x32_neon);
- p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps = PFX(pixel_add_ps_4x8_neon);
- p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps = PFX(pixel_add_ps_8x16_neon);
- p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps = PFX(pixel_add_ps_16x32_neon);
- p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps = PFX(pixel_add_ps_32x64_neon);
+ p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon);
+ p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon);
+ p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon);
+ p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon);
+ p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps[ALIGNED] = PFX(pixel_add_ps_4x8_neon);
+ p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps[ALIGNED] = PFX(pixel_add_ps_8x16_neon);
+ p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps[ALIGNED] = PFX(pixel_add_ps_16x32_neon);
+ p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps[ALIGNED] = PFX(pixel_add_ps_32x64_neon);
// cpy2Dto1D_shr
p.cu[BLOCK_4x4].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_4x4_neon);
@@ -518,10 +518,10 @@ void setupAssemblyPrimitives(EncoderPrim
p.cu[BLOCK_32x32].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_32x32_neon);
// ssd_s
- p.cu[BLOCK_4x4].ssd_s = PFX(pixel_ssd_s_4x4_neon);
- p.cu[BLOCK_8x8].ssd_s = PFX(pixel_ssd_s_8x8_neon);
- p.cu[BLOCK_16x16].ssd_s = PFX(pixel_ssd_s_16x16_neon);
- p.cu[BLOCK_32x32].ssd_s = PFX(pixel_ssd_s_32x32_neon);
+ p.cu[BLOCK_4x4].ssd_s[ALIGNED] = PFX(pixel_ssd_s_4x4_neon);
+ p.cu[BLOCK_8x8].ssd_s[ALIGNED] = PFX(pixel_ssd_s_8x8_neon);
+ p.cu[BLOCK_16x16].ssd_s[ALIGNED] = PFX(pixel_ssd_s_16x16_neon);
+ p.cu[BLOCK_32x32].ssd_s[ALIGNED] = PFX(pixel_ssd_s_32x32_neon);
// sse_ss
p.cu[BLOCK_4x4].sse_ss = PFX(pixel_sse_ss_4x4_neon);
@@ -548,10 +548,10 @@ void setupAssemblyPrimitives(EncoderPrim
p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].sub_ps = PFX(pixel_sub_ps_32x64_neon);
// calc_Residual
- p.cu[BLOCK_4x4].calcresidual = PFX(getResidual4_neon);
- p.cu[BLOCK_8x8].calcresidual = PFX(getResidual8_neon);
- p.cu[BLOCK_16x16].calcresidual = PFX(getResidual16_neon);
- p.cu[BLOCK_32x32].calcresidual = PFX(getResidual32_neon);
+ p.cu[BLOCK_4x4].calcresidual[ALIGNED] = PFX(getResidual4_neon);
+ p.cu[BLOCK_8x8].calcresidual[ALIGNED] = PFX(getResidual8_neon);
+ p.cu[BLOCK_16x16].calcresidual[ALIGNED] = PFX(getResidual16_neon);
+ p.cu[BLOCK_32x32].calcresidual[ALIGNED] = PFX(getResidual32_neon);
// sse_pp
p.cu[BLOCK_4x4].sse_pp = PFX(pixel_sse_pp_4x4_neon);
@@ -722,31 +722,31 @@ void setupAssemblyPrimitives(EncoderPrim
p.pu[LUMA_64x64].sad_x4 = PFX(sad_x4_64x64_neon);
// pixel_avg_pp
- p.pu[LUMA_4x4].pixelavg_pp = PFX(pixel_avg_pp_4x4_neon);
- p.pu[LUMA_4x8].pixelavg_pp = PFX(pixel_avg_pp_4x8_neon);
- p.pu[LUMA_4x16].pixelavg_pp = PFX(pixel_avg_pp_4x16_neon);
- p.pu[LUMA_8x4].pixelavg_pp = PFX(pixel_avg_pp_8x4_neon);
- p.pu[LUMA_8x8].pixelavg_pp = PFX(pixel_avg_pp_8x8_neon);
- p.pu[LUMA_8x16].pixelavg_pp = PFX(pixel_avg_pp_8x16_neon);
- p.pu[LUMA_8x32].pixelavg_pp = PFX(pixel_avg_pp_8x32_neon);
- p.pu[LUMA_12x16].pixelavg_pp = PFX(pixel_avg_pp_12x16_neon);
- p.pu[LUMA_16x4].pixelavg_pp = PFX(pixel_avg_pp_16x4_neon);
- p.pu[LUMA_16x8].pixelavg_pp = PFX(pixel_avg_pp_16x8_neon);
- p.pu[LUMA_16x12].pixelavg_pp = PFX(pixel_avg_pp_16x12_neon);
- p.pu[LUMA_16x16].pixelavg_pp = PFX(pixel_avg_pp_16x16_neon);
- p.pu[LUMA_16x32].pixelavg_pp = PFX(pixel_avg_pp_16x32_neon);
- p.pu[LUMA_16x64].pixelavg_pp = PFX(pixel_avg_pp_16x64_neon);
- p.pu[LUMA_24x32].pixelavg_pp = PFX(pixel_avg_pp_24x32_neon);
- p.pu[LUMA_32x8].pixelavg_pp = PFX(pixel_avg_pp_32x8_neon);
- p.pu[LUMA_32x16].pixelavg_pp = PFX(pixel_avg_pp_32x16_neon);
- p.pu[LUMA_32x24].pixelavg_pp = PFX(pixel_avg_pp_32x24_neon);
- p.pu[LUMA_32x32].pixelavg_pp = PFX(pixel_avg_pp_32x32_neon);
- p.pu[LUMA_32x64].pixelavg_pp = PFX(pixel_avg_pp_32x64_neon);
- p.pu[LUMA_48x64].pixelavg_pp = PFX(pixel_avg_pp_48x64_neon);
- p.pu[LUMA_64x16].pixelavg_pp = PFX(pixel_avg_pp_64x16_neon);
- p.pu[LUMA_64x32].pixelavg_pp = PFX(pixel_avg_pp_64x32_neon);
- p.pu[LUMA_64x48].pixelavg_pp = PFX(pixel_avg_pp_64x48_neon);
- p.pu[LUMA_64x64].pixelavg_pp = PFX(pixel_avg_pp_64x64_neon);
+ p.pu[LUMA_4x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x4_neon);
+ p.pu[LUMA_4x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x8_neon);
+ p.pu[LUMA_4x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x16_neon);
+ p.pu[LUMA_8x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x4_neon);
+ p.pu[LUMA_8x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x8_neon);
+ p.pu[LUMA_8x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x16_neon);
+ p.pu[LUMA_8x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x32_neon);
+ p.pu[LUMA_12x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_12x16_neon);
+ p.pu[LUMA_16x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x4_neon);
+ p.pu[LUMA_16x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x8_neon);
+ p.pu[LUMA_16x12].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x12_neon);
+ p.pu[LUMA_16x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x16_neon);
+ p.pu[LUMA_16x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x32_neon);
+ p.pu[LUMA_16x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x64_neon);
+ p.pu[LUMA_24x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_24x32_neon);
+ p.pu[LUMA_32x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x8_neon);
+ p.pu[LUMA_32x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x16_neon);
+ p.pu[LUMA_32x24].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x24_neon);
+ p.pu[LUMA_32x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x32_neon);
+ p.pu[LUMA_32x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x64_neon);
+ p.pu[LUMA_48x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_48x64_neon);
+ p.pu[LUMA_64x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x16_neon);
+ p.pu[LUMA_64x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x32_neon);
+ p.pu[LUMA_64x48].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x48_neon);
+ p.pu[LUMA_64x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x64_neon);
// planecopy
p.planecopy_cp = PFX(pixel_planecopy_cp_neon);

View File

@ -0,0 +1,37 @@
https://sources.debian.org/data/main/x/x265/2.9-3/debian/patches/0003-detect512-is-needed-on-all-architectures.patch
From: Adam Sampson <unknown@bitbucket>
Date: Sun, 14 Oct 2018 14:04:18 +0200
Subject: detect512 is needed on all architectures
---
source/common/cpu.cpp | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/source/common/cpu.cpp b/source/common/cpu.cpp
index 0681ff5..fa687da 100644
--- a/source/common/cpu.cpp
+++ b/source/common/cpu.cpp
@@ -110,6 +110,11 @@ const cpu_name_t cpu_names[] =
{ "", 0 },
};
+bool detect512()
+{
+ return(enable512);
+}
+
#if X265_ARCH_X86
extern "C" {
@@ -123,10 +128,6 @@ uint64_t PFX(cpu_xgetbv)(int xcr);
#pragma warning(disable: 4309) // truncation of constant value
#endif
-bool detect512()
-{
- return(enable512);
-}
uint32_t cpu_detect(bool benableavx512 )
{

View File

@ -1,25 +0,0 @@
https://sources.debian.org/data/main/x/x265/2.8-3/debian/patches/0003-Fix-build-error-on-on-ppc64le.patch
This patch also fixes building on armhf-linux and aarch64-linux
From: Jayashree <jayashree.c@multicorewareinc.com>
Date: Fri, 25 May 2018 10:26:05 +0530
Subject: Fix build error on on ppc64le
---
source/common/param.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/common/param.cpp b/source/common/param.cpp
index 31bcbc7..4a6d0c8 100644
--- a/source/common/param.cpp
+++ b/source/common/param.cpp
@@ -633,7 +633,7 @@ int x265_param_parse(x265_param* p, const char* name, const char* value)
if (bValueWasNull)
p->cpuid = atobool(value);
else
- p->cpuid = parseCpuName(value, bError);
+ p->cpuid = parseCpuName(value, bError, false);
#endif
}
OPT("fps")

View File

@ -1,30 +0,0 @@
From 8e7bdc18d62632adcee029b2f8f5013d11549dd7 Mon Sep 17 00:00:00 2001
From: "W. Felix Handte" <w@felixhandte.com>
Date: Fri, 29 Jun 2018 16:31:22 -0400
Subject: [PATCH] Fix Tests of `--list` Behavior with `stdin`
---
tests/playTests.sh | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/playTests.sh b/tests/playTests.sh
index 09a7377f2..aa5535d59 100755
--- a/tests/playTests.sh
+++ b/tests/playTests.sh
@@ -731,8 +731,14 @@ $ECHO "\n===> zstd --list/-l error detection tests "
! $ZSTD -lv tmp1*
! $ZSTD --list -v tmp2 tmp12.zst
-$ECHO "\n===> zstd --list/-l exits 1 when stdin is piped in"
-! echo "piped STDIN" | $ZSTD --list
+$ECHO "\n===> zstd --list/-l errors when presented with stdin / no files"
+! $ZSTD -l
+! $ZSTD -l -
+! $ZSTD -l < tmp1.zst
+! $ZSTD -l - < tmp1.zst
+! $ZSTD -l - tmp1.zst
+! $ZSTD -l - tmp1.zst < tmp1.zst
+$ZSTD -l tmp1.zst < tmp1.zst # but doesn't error just because stdin is not a tty
$ECHO "\n===> zstd --list/-l test with null files "
./datagen -g0 > tmp5

View File

@ -1,67 +0,0 @@
From 712a9fd9721c314f4b0238577d803b012845f6d2 Mon Sep 17 00:00:00 2001
From: "W. Felix Handte" <w@felixhandte.com>
Date: Fri, 29 Jun 2018 15:33:44 -0400
Subject: [PATCH] Allow Invoking `zstd --list` When `stdin` is not a `tty`
Also now returns an error when no inputs are given.
New proposed behavior:
```
felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l; echo $?
No files given
1
felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst; echo $?
Frames Skips Compressed Uncompressed Ratio Check Filename
1 0 3.08 KB 10.92 KB 3.544 XXH64 Makefile.zst
0
felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l <Makefile.zst; echo $?
zstd: --list does not support reading from standard input
No files given
1
felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst <Makefile.zst; echo $?
Frames Skips Compressed Uncompressed Ratio Check Filename
1 0 3.08 KB 10.92 KB 3.544 XXH64 Makefile.zst
0
felix@odin:~/prog/zstd (list-stdin-check)$
```
---
programs/fileio.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/programs/fileio.c b/programs/fileio.c
index 0175b3163..b4eed28d1 100644
--- a/programs/fileio.c
+++ b/programs/fileio.c
@@ -2017,21 +2017,25 @@ static int FIO_listFile(fileInfo_t* total, const char* inFileName, int displayLe
}
int FIO_listMultipleFiles(unsigned numFiles, const char** filenameTable, int displayLevel){
-
- if (!IS_CONSOLE(stdin)) {
- DISPLAYOUT("zstd: --list does not support reading from standard input\n");
- return 1;
+ unsigned u;
+ for (u=0; u<numFiles;u++) {
+ if (!strcmp (filenameTable[u], stdinmark)) {
+ DISPLAYOUT("zstd: --list does not support reading from standard input\n");
+ return 1;
+ }
}
if (numFiles == 0) {
+ if (!IS_CONSOLE(stdin)) {
+ DISPLAYOUT("zstd: --list does not support reading from standard input\n");
+ }
DISPLAYOUT("No files given\n");
- return 0;
+ return 1;
}
if (displayLevel <= 2) {
DISPLAYOUT("Frames Skips Compressed Uncompressed Ratio Check Filename\n");
}
{ int error = 0;
- unsigned u;
fileInfo_t total;
memset(&total, 0, sizeof(total));
total.usesCheck = 1;

View File

@ -26,6 +26,7 @@
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -127,6 +128,85 @@ asynchronous DNS resolutions with a synchronous looking interface by
using @url{https://github.com/saghul/pycares,pycares}.") using @url{https://github.com/saghul/pycares,pycares}.")
(license license:expat))) (license license:expat)))
(define-public python-falcon
(package
(name "python-falcon")
(version "1.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "falcon" version))
(sha256
(base32
"1i0vmqsk24z4biirqhpvas9h28wy7nmpy3jvnb6rz2imq04zd09r"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "pytest"))))))
(propagated-inputs
`(("python-mimeparse" ,python-mimeparse)
("python-six" ,python-six)))
(native-inputs
`(("python-cython" ,python-cython) ;for faster binaries
("python-pytest" ,python-pytest)
("python-pyyaml" ,python-pyyaml)
("python-requests" ,python-requests)
("python-testtools" ,python-testtools)
("python-jsonschema" ,python-jsonschema)
("python-msgpack" ,python-msgpack)))
(home-page "https://falconframework.org")
(synopsis
"Web framework for building APIs and application backends")
(description
"Falcon is a web API framework for building microservices, application
backends and higher-level frameworks. Among its features are:
@itemize
@item Optimized and extensible code base
@item Routing via URI templates and REST-inspired resource
classes
@item Access to headers and bodies through request and response
classes
@item Request processing via middleware components and hooks
@item Idiomatic HTTP error responses
@item Straightforward exception handling
@item Unit testing support through WSGI helpers and mocks
@item Compatible with both CPython and PyPy
@item Cython support for better performance when used with CPython
@end itemize")
(license license:asl2.0)))
(define-public python2-falcon
(package-with-python2 python-falcon))
(define-public python-falcon-cors
(package
(name "python-falcon-cors")
(version "1.1.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "falcon-cors" version))
(sha256
(base32
"12pym7hwsbd8b0c1azn95nas8gm3f1qpr6lpyx0958xm65ffr20p"))))
(build-system python-build-system)
(native-inputs
`(("python-falcon" ,python-falcon)))
(home-page
"https://github.com/lwcolton/falcon-cors")
(synopsis "Falcon @dfn{cross-origin resource sharing} (CORS) library")
(description "This middleware provides @dfn{cross-origin resource
sharing} (CORS) support for Falcon. It allows applying a specially crafted
CORS object to the incoming requests, enabling the ability to serve resources
over a different origin than that of the web application.")
(license license:asl2.0)))
(define-public python2-falcon-cors
(package-with-python2 python-falcon-cors))
(define-public python-furl (define-public python-furl
(package (package
(name "python-furl") (name "python-furl")

View File

@ -149,6 +149,7 @@
(package (package
(name "python2") (name "python2")
(version "2.7.15") (version "2.7.15")
(replacement python-2/fixed)
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -315,6 +316,18 @@ data types.")
;; Current 2.x version. ;; Current 2.x version.
(define-public python-2 python-2.7) (define-public python-2 python-2.7)
(define python-2/fixed
(package
(inherit python-2)
(source (origin
(inherit (package-source python-2))
(patches (append
(origin-patches (package-source python-2))
(search-patches "python2-CVE-2018-1060.patch"
"python2-CVE-2018-1061.patch"
"python2-CVE-2018-14647.patch"
"python2-CVE-2018-1000802.patch")))))))
(define-public python2-called-python (define-public python2-called-python
;; Both 2.x and 3.x used to be called "python". In commit ;; Both 2.x and 3.x used to be called "python". In commit
;; a7714d42de2c3082f3609d1e63c83d703fb39cf9 (March 2018), we renamed the ;; a7714d42de2c3082f3609d1e63c83d703fb39cf9 (March 2018), we renamed the
@ -328,6 +341,7 @@ data types.")
(package (inherit python-2) (package (inherit python-2)
(name "python") (name "python")
(version "3.7.0") (version "3.7.0")
(replacement python-3/fixed)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.python.org/ftp/python/" (uri (string-append "https://www.python.org/ftp/python/"
@ -399,6 +413,24 @@ data types.")
;; Current 3.x version. ;; Current 3.x version.
(define-public python-3 python-3.7) (define-public python-3 python-3.7)
(define python-3/fixed
(package
(inherit python-3)
(source (origin
(inherit (package-source python-3))
(patches (append (origin-patches (package-source python-3))
(search-patches "python-CVE-2018-14647.patch")))))
(arguments
(substitute-keyword-arguments (package-arguments python-3)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'delete-broken-test
(lambda _
;; Delete test which fails on recent kernels:
;; <https://bugs.python.org/issue34587>.
(delete-file "Lib/test/test_socket.py")
#t))))))))
;; Current major version. ;; Current major version.
(define-public python python-3) (define-public python python-3)
@ -406,7 +438,7 @@ data types.")
;; Python (Tk -> libxcb -> Python.) ;; Python (Tk -> libxcb -> Python.)
(define-public python2-minimal (define-public python2-minimal
(package (inherit python-2) (package/inherit python-2
(name "python2-minimal") (name "python2-minimal")
(outputs '("out")) (outputs '("out"))
@ -417,7 +449,7 @@ data types.")
("zlib" ,zlib))))) ("zlib" ,zlib)))))
(define-public python-minimal (define-public python-minimal
(package (inherit python) (package/inherit python
(name "python-minimal") (name "python-minimal")
(outputs '("out")) (outputs '("out"))
@ -429,8 +461,7 @@ data types.")
("zlib" ,zlib))))) ("zlib" ,zlib)))))
(define-public python-debug (define-public python-debug
(package (package/inherit python
(inherit python)
(name "python-debug") (name "python-debug")
(outputs '("out" "debug")) (outputs '("out" "debug"))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -449,7 +480,7 @@ for more information.")))
(define* (wrap-python3 python (define* (wrap-python3 python
#:optional #:optional
(name (string-append (package-name python) "-wrapper"))) (name (string-append (package-name python) "-wrapper")))
(package (inherit python) (package/inherit python
(name name) (name name)
(source #f) (source #f)
(build-system trivial-build-system) (build-system trivial-build-system)
@ -1653,7 +1684,7 @@ software.")
(define-public python-mimeparse (define-public python-mimeparse
(package (package
(name "python-mimeparse") (name "python-mimeparse")
(version "0.1.4") (version "1.6.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1662,10 +1693,14 @@ software.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w")))) "0y2g6cl660bpz11srgqyvvm8gmywpgyx8g0xfvbiyr0af0yv1r3n"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:tests? #f)) ; no setup.py test command '(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./mimeparse_test.py"))))))
(home-page (home-page
"https://github.com/dbtsai/python-mimeparse") "https://github.com/dbtsai/python-mimeparse")
(synopsis "Python library for parsing MIME types") (synopsis "Python library for parsing MIME types")
@ -7254,9 +7289,7 @@ config files.")
(version "0.12.0") (version "0.12.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri "ConfigArgParse" version))
"https://pypi.io/packages/source/C/ConfigArgParse/"
"ConfigArgParse-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98")))) "0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98"))))
@ -11350,7 +11383,7 @@ editors.")
(define-public python2-backports-functools-lru-cache (define-public python2-backports-functools-lru-cache
(package (package
(name "python2-backports-functools-lru-cache") (name "python2-backports-functools-lru-cache")
(version "1.3") (version "1.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -11358,7 +11391,7 @@ editors.")
(uri (pypi-uri "backports.functools_lru_cache" version)) (uri (pypi-uri "backports.functools_lru_cache" version))
(sha256 (sha256
(base32 (base32
"158ysf2hb0q4p4695abfiym9x1ywg0dgh8a3apd7gqaaxjy22jj4")))) "06jgv8gib4fhky0p5cmxdghvsgjyzcdgk48k8pxb1ccf11znk64x"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python2-setuptools-scm" ,python2-setuptools-scm))) `(("python2-setuptools-scm" ,python2-setuptools-scm)))

View File

@ -194,25 +194,6 @@ a focus on simplicity and productivity.")
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
#t))))))) #t)))))))
(define-public ruby-concurrent
(package
(name "ruby-concurrent")
(version "1.0.5")
(source (origin
(method url-fetch)
(uri (rubygems-uri "concurrent-ruby" version))
(sha256
(base32
"183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"))))
(build-system ruby-build-system)
(arguments `(#:tests? #f)); No rakefile
(home-page "https://github.com/ruby-concurrency/concurrent-ruby")
(synopsis "Concurrency tools for Ruby")
(description "This gem provides concurrency tools for Ruby. It provides
a library of common thread-safe types and data-structures as well as abstractions
for concurrency and communication between threads.")
(license license:expat)))
(define-public ruby-highline (define-public ruby-highline
(package (package
(name "ruby-highline") (name "ruby-highline")
@ -3785,7 +3766,7 @@ A modified copy of yajl is used, and included in the package.")
(define-public ruby-yard (define-public ruby-yard
(package (package
(name "ruby-yard") (name "ruby-yard")
(version "0.9.6") (version "0.9.16")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3795,7 +3776,7 @@ A modified copy of yajl is used, and included in the package.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0rsz4bghgx7fryzyhlz8wlnd2m9xgyvf1xhrq58mnzfrrfm41bdg")))) "0sqpbayy9sb406jh0zqg6qha1xds863qz9531dh6vp58hc00clfq"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -5692,27 +5673,6 @@ support the tests found in Prawn, a pure Ruby PDF generation library.")
functionality from Prawn.") functionality from Prawn.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public ruby-yard
(package
(name "ruby-yard")
(version "0.9.16")
(source (origin
(method url-fetch)
(uri (rubygems-uri "yard" version))
(sha256
(base32
"0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67"))))
(build-system ruby-build-system)
(arguments `(#:test-target "spec"))
(home-page "https://yardoc.org/")
(synopsis "Ruby documentation tool")
(description "YARD is a documentation generation tool for the Ruby
programming language. It enables the user to generate consistent, usable
documentation that can be exported to a number of formats very easily, and
also supports extending for custom Ruby constructs such as custom class level
definitions.")
(license license:expat)))
(define-public ruby-prawn (define-public ruby-prawn
(package (package
(name "ruby-prawn") (name "ruby-prawn")

View File

@ -735,7 +735,8 @@ measuring and checking the width of strings, with support east asian text.")
unzip unzip
"/bin/unzip',"))) "/bin/unzip',")))
;; Makefile is wrong. ;; Makefile is wrong.
(chmod config #o644))))))) (chmod config #o644)
#t))))))
(synopsis "Recover text from @file{.docx} files, with good formatting") (synopsis "Recover text from @file{.docx} files, with good formatting")
(description (description
"@command{docx2txt} is a Perl based command line utility to convert "@command{docx2txt} is a Perl based command line utility to convert

View File

@ -29,6 +29,8 @@
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018 Mark Meyer <mark@ofosos.org>
;;; Copyright © 2018 Gábor Boskovit <boskovits@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -390,7 +392,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(define-public x265 (define-public x265
(package (package
(name "x265") (name "x265")
(version "2.8") (version "2.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -398,9 +400,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
"x265_" version ".tar.gz")) "x265_" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf")) "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb"))
(patches (search-patches "x265-fix-ppc64le-build.patch" (patches (search-patches "x265-detect512-all-arches.patch"))
"x265-arm-asm-primitives.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
(delete-file-recursively "source/compat/getopt") (delete-file-recursively "source/compat/getopt")
@ -408,12 +409,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; tests are skipped if cpu-optimized code isn't built `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
;; Currently the source code doesn't check for aarch64. ;; Ensure position independent code for everyone.
,@(if (any (cute string-prefix? <> (or (%current-system) #:configure-flags '("-DENABLE_PIC=TRUE")
(%current-target-system)))
'("armhf" "aarch64"))
'(#:configure-flags '("-DENABLE_PIC=TRUE"))
'())
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'prepare-build (add-before 'configure 'prepare-build
@ -1863,21 +1860,16 @@ and custom quantization matrices.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public streamlink (define-public streamlink
;; Release tarball doesn't contain tests/resources/dash/ directory.
(let ((commit "2dca7930a938f60b48d8e23260963ea7c49d979f"))
(package (package
(name "streamlink") (name "streamlink")
(version (git-version "0.13.0" "1" commit)) (version "0.14.2")
(source (source
(origin (origin
(method git-fetch) (method url-fetch)
(uri (git-reference (uri (pypi-uri "streamlink" version))
(url "https://github.com/streamlink/streamlink.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0vq19aspshim63aj8yl2p64ykrbk2mwwlawdx427b3j2djlc5qhw")))) "0l2145fd60i76afjisfxd48cwhwyir07i7s3bnimdq5db2kzkix8"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/streamlink/streamlink") (home-page "https://github.com/streamlink/streamlink")
(native-inputs (native-inputs
@ -1897,7 +1889,7 @@ and custom quantization matrices.")
(synopsis "Extract streams from various services") (synopsis "Extract streams from various services")
(description "Streamlink is command-line utility that extracts streams (description "Streamlink is command-line utility that extracts streams
from sites like Twitch.tv and pipes them into a video player of choice.") from sites like Twitch.tv and pipes them into a video player of choice.")
(license license:bsd-2)))) (license license:bsd-2)))
(define-public livestreamer (define-public livestreamer
(deprecated-package "livestreamer" streamlink)) (deprecated-package "livestreamer" streamlink))
@ -1942,7 +1934,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(define-public mlt (define-public mlt
(package (package
(name "mlt") (name "mlt")
(version "6.4.1") (version "6.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/mltframework/mlt/" (uri (string-append "https://github.com/mltframework/mlt/"
@ -1950,7 +1942,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47")) "1zzdj1g3g24q6v8hd0v34lv0pkh37a13fhjpl44h1ffi00mz3577"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
;; As of glibc 2.26, <xlocale.h> no longer is. ;; As of glibc 2.26, <xlocale.h> no longer is.
@ -1960,7 +1952,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:make-flags '("CC=gcc") #:make-flags '("CC=gcc" "CXX=g++ -std=gnu++11")
#:configure-flags #:configure-flags
(list "--enable-gpl3" (list "--enable-gpl3"
"--enable-gpl") "--enable-gpl")
@ -1979,11 +1971,16 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
("ffmpeg" ,ffmpeg-3.4) ("ffmpeg" ,ffmpeg-3.4)
("fftw" ,fftw) ("fftw" ,fftw)
("frei0r-plugins" ,frei0r-plugins)
("gdk-pixbuf" ,gdk-pixbuf)
("gtk+" ,gtk+-2)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("jack" ,jack-1) ("jack" ,jack-1)
("ladspa" ,ladspa) ("ladspa" ,ladspa)
("libsamplerate" ,libsamplerate) ("libsamplerate" ,libsamplerate)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)
("qtbase" ,qtbase)
("qtsvg" ,qtsvg)
("sdl" ,sdl) ("sdl" ,sdl)
("sox" ,sox))) ("sox" ,sox)))
(native-inputs (native-inputs

View File

@ -346,11 +346,10 @@ shader compilation.")
(license license:asl2.0)))) (license license:asl2.0))))
(define-public vkd3d (define-public vkd3d
(let ((commit "020c119e2da0786d8be0615cff961c190b00d62d") ; Release 1.0. (let ((commit "ecda316ef54d70bf1b3e860755241bb75873e53f")) ; Release 1.1.
(revision "0"))
(package (package
(name "vkd3d") (name "vkd3d")
(version "1.0") (version "1.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -359,7 +358,7 @@ shader compilation.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"084svxhigs8r0725jv6gs7wwrxb9x4igyg5bgvgpcfw4aq0k69gn")) "05a28kspy8gzng181w28zjqdb3pj2ss83b0lwnppxbcdzsz7rvrf"))
(file-name (string-append name "-" version "-checkout")))) (file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -225,7 +225,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data (define-public wine-staging-patchset-data
(package (package
(name "wine-staging-patchset-data") (name "wine-staging-patchset-data")
(version "3.17") (version "3.18")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -235,7 +235,7 @@ integrate Windows applications into your desktop.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ds9q90xjg59ikic98kqkhmijnqx4yplvwsm6rav4mx72yci7d4w")))) "18g1lmqzkc7ngppynimfvza1gkdhqlnjbvnckmaws847ns4i0kzp"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs (native-inputs
`(("bash" ,bash) `(("bash" ,bash)
@ -281,7 +281,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"08fcziadw40153a9rv630m7iz6ipfzylms5y191z4sj2vvhy5vac")))) "0xqs76hxcym8nb95r7l72xx0msbscp7fhkr1wrv4r0923d5x9s4v"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf (inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("libva" ,libva) ("libva" ,libva)

View File

@ -1497,3 +1497,27 @@ before the system goes to sleep.")
"Pyperclip is a clipboard module for Python, handling copy/pasting from "Pyperclip is a clipboard module for Python, handling copy/pasting from
the X11 clipboard") the X11 clipboard")
(license license:bsd-3))) (license license:bsd-3)))
(define-public numlockx
(package
(name "numlockx")
(version "1.2")
(source (origin
(method git-fetch)
(uri (git-reference
;; It seems that upstream is gone.
(url "https://github.com/rg3/numlockx")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
(build-system gnu-build-system)
(inputs
`(("xorg-server" ,xorg-server)))
(home-page "https://github.com/rg3/numlockx")
(synopsis "Turns on the numlock key in X11")
(description "@command{numlockx} is a tiny program that lets you turn on
the numlock key in X11. It can be called from the user's initialization files
to automatically turn it on on login.")
(license license:expat)))

View File

@ -786,14 +786,14 @@ server, collect the answer, and finally decoding the XML to Perl.")
(define-public perl-xml-feed (define-public perl-xml-feed
(package (package
(name "perl-xml-feed") (name "perl-xml-feed")
(version "0.54") (version "0.55")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/" (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
"XML-Feed-" version ".tar.gz")) "XML-Feed-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ydyi7wdhv8325h7j27vrlwiqxll56sn8zy5nbzhpma3nrf61bci")))) "0am345qzy5rxxnzh13l6p18a7drgkzmmlkgrgl4cv3b2j1pwls3i"))))
(build-system perl-build-system) (build-system perl-build-system)
(arguments (arguments
`(#:tests? #f)) ; tests require internet connection `(#:tests? #f)) ; tests require internet connection

View File

@ -5910,7 +5910,7 @@ basic eye-candy effects.")
(define-public xpra (define-public xpra
(package (package
(name "xpra") (name "xpra")
(version "2.3.4") (version "2.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5918,7 +5918,7 @@ basic eye-candy effects.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0wa3kx54himy3i1b2801hlzfilh3cf4kjk40k1cjl0ds28m5hija")))) "0blzx231sr1ri1zwzpwzf611sq9104bv3ccvnap9pbvfrc05sfwx"))))
(build-system python-build-system) (build-system python-build-system)
(inputs `(("ffmpeg" ,ffmpeg) (inputs `(("ffmpeg" ,ffmpeg)
("flac" ,flac) ("flac" ,flac)

View File

@ -5,7 +5,7 @@
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@ -101,6 +101,16 @@
modem-manager-configuration modem-manager-configuration
modem-manager-configuration? modem-manager-configuration?
modem-manager-service-type modem-manager-service-type
<wpa-supplicant-configuration>
wpa-supplicant-configuration
wpa-supplicant-configuration?
wpa-supplicant-configuration-wpa-supplicant
wpa-supplicant-configuration-pid-file
wpa-supplicant-configuration-dbus?
wpa-supplicant-configuration-interface
wpa-supplicant-configuration-config-file
wpa-supplicant-configuration-extra-options
wpa-supplicant-service-type wpa-supplicant-service-type
openvswitch-service-type openvswitch-service-type
@ -1019,28 +1029,62 @@ networking."))))
;;; WPA supplicant ;;; WPA supplicant
;;; ;;;
(define-record-type* <wpa-supplicant-configuration>
wpa-supplicant-configuration make-wpa-supplicant-configuration
wpa-supplicant-configuration?
(wpa-supplicant wpa-supplicant-configuration-wpa-supplicant ;<package>
(default wpa-supplicant))
(pid-file wpa-supplicant-configuration-pid-file ;string
(default "/var/run/wpa_supplicant.pid"))
(dbus? wpa-supplicant-configuration-dbus? ;Boolean
(default #t))
(interface wpa-supplicant-configuration-interface ;#f | string
(default #f))
(config-file wpa-supplicant-configuration-config-file ;#f | <file-like>
(default #f))
(extra-options wpa-supplicant-configuration-extra-options ;list of strings
(default '())))
(define (wpa-supplicant-shepherd-service wpa-supplicant) (define wpa-supplicant-shepherd-service
"Return a shepherd service for wpa_supplicant" (match-lambda
(($ <wpa-supplicant-configuration> wpa-supplicant pid-file dbus? interface
config-file extra-options)
(list (shepherd-service (list (shepherd-service
(documentation "Run WPA supplicant with dbus interface") (documentation "Run the WPA supplicant daemon")
(provision '(wpa-supplicant)) (provision '(wpa-supplicant))
(requirement '(user-processes dbus-system loopback)) (requirement '(user-processes dbus-system loopback))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$wpa-supplicant (list (string-append #$wpa-supplicant
"/sbin/wpa_supplicant") "/sbin/wpa_supplicant")
"-u" "-B" "-P/var/run/wpa_supplicant.pid") (string-append "-P" #$pid-file)
#:pid-file "/var/run/wpa_supplicant.pid")) "-B" ;run in background
(stop #~(make-kill-destructor))))) #$@(if dbus?
#~("-u")
#~())
#$@(if interface
#~(string-append "-i" #$interface)
#~())
#$@(if config-file
#~(string-append "-c" #$config-file)
#~())
#$@extra-options)
#:pid-file #$pid-file))
(stop #~(make-kill-destructor)))))))
(define wpa-supplicant-service-type (define wpa-supplicant-service-type
(let ((config->package
(match-lambda
(($ <wpa-supplicant-configuration> wpa-supplicant)
(list wpa-supplicant)))))
(service-type (name 'wpa-supplicant) (service-type (name 'wpa-supplicant)
(extensions (extensions
(list (service-extension shepherd-root-service-type (list (service-extension shepherd-root-service-type
wpa-supplicant-shepherd-service) wpa-supplicant-shepherd-service)
(service-extension dbus-root-service-type list) (service-extension dbus-root-service-type config->package)
(service-extension profile-service-type list))) (service-extension profile-service-type config->package)))
(default-value wpa-supplicant))) (description "Run the WPA Supplicant daemon, a service that
implements authentication, key negotiation and more for wireless networks.")
(default-value (wpa-supplicant-configuration)))))
;;; ;;;

View File

@ -47,4 +47,5 @@ the query."
(define (json-fetch-alist url) (define (json-fetch-alist url)
"Return an alist representation of the JSON resource URL, or #f if URL "Return an alist representation of the JSON resource URL, or #f if URL
returns 403 or 404." returns 403 or 404."
(hash-table->alist (json-fetch url))) (and=> (json-fetch url)
hash-table->alist))

View File

@ -28,7 +28,8 @@
#:use-module ((guix config) #:select (%state-directory)) #:use-module ((guix config) #:select (%state-directory))
#:use-module ((guix utils) #:hide (package-name->name+version)) #:use-module ((guix utils) #:hide (package-name->name+version))
#:use-module ((guix build utils) #:use-module ((guix build utils)
#:select (package-name->name+version)) #:select (package-name->name+version mkdir-p))
#:use-module (guix i18n)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix derivations) #:use-module (guix derivations)
@ -127,6 +128,7 @@
%user-profile-directory %user-profile-directory
%profile-directory %profile-directory
%current-profile %current-profile
ensure-profile-directory
canonicalize-profile canonicalize-profile
user-friendly-profile)) user-friendly-profile))
@ -1249,7 +1251,7 @@ the entries in MANIFEST."
(define config.scm (define config.scm
(scheme-file "config.scm" (scheme-file "config.scm"
#~(begin #~(begin
(define-module (guix config) (define-module #$'(guix config) ;placate Geiser
#:export (%libz)) #:export (%libz))
(define %libz (define %libz
@ -1610,28 +1612,73 @@ because the NUMBER is zero.)"
;; coexist with Nix profiles. ;; coexist with Nix profiles.
(string-append %profile-directory "/guix-profile")) (string-append %profile-directory "/guix-profile"))
(define (canonicalize-profile profile) (define (ensure-profile-directory)
"If PROFILE is %USER-PROFILE-DIRECTORY, return %CURRENT-PROFILE. Otherwise "Attempt to create /…/profiles/per-user/$USER if needed."
return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if (let ((s (stat %profile-directory #f)))
'-p' was omitted." ; see <http://bugs.gnu.org/17939> (unless (and s (eq? 'directory (stat:type s)))
(catch 'system-error
(lambda ()
(mkdir-p %profile-directory))
(lambda args
;; Often, we cannot create %PROFILE-DIRECTORY because its
;; parent directory is root-owned and we're running
;; unprivileged.
(raise (condition
(&message
(message
(format #f
(G_ "while creating directory `~a': ~a")
%profile-directory
(strerror (system-error-errno args)))))
(&fix-hint
(hint
(format #f (G_ "Please create the @file{~a} directory, \
with you as the owner.")
%profile-directory))))))))
;; Trim trailing slashes so that the basename comparison below works as ;; Bail out if it's not owned by the user.
;; intended. (unless (or (not s) (= (stat:uid s) (getuid)))
(raise (condition
(&message
(message
(format #f (G_ "directory `~a' is not owned by you")
%profile-directory)))
(&fix-hint
(hint
(format #f (G_ "Please change the owner of @file{~a} \
to user ~s.")
%profile-directory (or (getenv "USER")
(getenv "LOGNAME")
(getuid))))))))))
(define (canonicalize-profile profile)
"If PROFILE points to a profile in %PROFILE-DIRECTORY, return that.
Otherwise return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile'
as if '-p' was omitted." ; see <http://bugs.gnu.org/17939>
;; Trim trailing slashes so 'readlink' can do its job.
(let ((profile (string-trim-right profile #\/))) (let ((profile (string-trim-right profile #\/)))
(if (and %user-profile-directory (catch 'system-error
(string=? (canonicalize-path (dirname profile)) (lambda ()
(dirname %user-profile-directory)) (let ((target (readlink profile)))
(string=? (basename profile) (basename %user-profile-directory))) (if (string=? (dirname target) %profile-directory)
%current-profile target
profile))) profile)))
(const profile))))
(define %known-shorthand-profiles
;; Known shorthand forms for profiles that the user manipulates.
(list (string-append (config-directory #:ensure? #f) "/current")
%user-profile-directory))
(define (user-friendly-profile profile) (define (user-friendly-profile profile)
"Return either ~/.guix-profile if that's what PROFILE refers to, directly or "Return either ~/.guix-profile or ~/.config/guix/current if that's what
indirectly, or PROFILE." PROFILE refers to, directly or indirectly, or PROFILE."
(if (and %user-profile-directory (or (find (lambda (shorthand)
(false-if-exception (and shorthand
(string=? (readlink %user-profile-directory) profile))) (let ((target (false-if-exception
%user-profile-directory (readlink shorthand))))
(and target (string=? target profile)))))
%known-shorthand-profiles)
profile)) profile))
;;; profiles.scm ends here ;;; profiles.scm ends here

View File

@ -26,6 +26,7 @@
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module ((guix profiles) #:select (%profile-directory))
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
@ -169,8 +170,7 @@ Show what and how will/would be built."
(define age (define age
(match (false-if-not-found (match (false-if-not-found
(lstat (string-append (config-directory #:ensure? #f) (lstat (string-append %profile-directory "/current-guix")))
"/current")))
(#f #f) (#f #f)
(stat (- (time-second (current-time time-utc)) (stat (- (time-second (current-time time-utc))
(stat:mtime stat))))) (stat:mtime stat)))))

View File

@ -395,6 +395,8 @@ options handled by 'set-build-options-from-command-line', and listed in
#:print-build-trace (assoc-ref opts 'print-build-trace?) #:print-build-trace (assoc-ref opts 'print-build-trace?)
#:print-extended-build-trace? #:print-extended-build-trace?
(assoc-ref opts 'print-extended-build-trace?) (assoc-ref opts 'print-extended-build-trace?)
#:multiplexed-build-output?
(assoc-ref opts 'multiplexed-build-output?)
#:verbosity (assoc-ref opts 'verbosity))) #:verbosity (assoc-ref opts 'verbosity)))
(define set-build-options-from-command-line* (define set-build-options-from-command-line*
@ -505,6 +507,7 @@ options handled by 'set-build-options-from-command-line', and listed in
(build-hook? . #t) (build-hook? . #t)
(print-build-trace? . #t) (print-build-trace? . #t)
(print-extended-build-trace? . #t) (print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
(verbosity . 0))) (verbosity . 0)))
(define (show-help) (define (show-help)
@ -623,7 +626,7 @@ must be one of 'package', 'all', or 'transitive'~%")
"Read the arguments from OPTS and return a list of high-level objects to "Read the arguments from OPTS and return a list of high-level objects to
build---packages, gexps, derivations, and so on." build---packages, gexps, derivations, and so on."
(define (validate-type x) (define (validate-type x)
(unless (or (package? x) (derivation? x) (gexp? x) (procedure? x)) (unless (or (derivation? x) (file-like? x) (gexp? x) (procedure? x))
(leave (G_ "~s: not something we can build~%") x))) (leave (G_ "~s: not something we can build~%") x)))
(define (ensure-list x) (define (ensure-list x)
@ -700,6 +703,10 @@ package '~a' has no source~%")
(set-guile-for-build (default-guile)) (set-guile-for-build (default-guile))
(proc)) (proc))
#:system system))) #:system system)))
((? file-like? obj)
(list (run-with-store store
(lower-object obj system
#:target (assoc-ref opts 'target)))))
((? gexp? gexp) ((? gexp? gexp)
(list (run-with-store store (list (run-with-store store
(mbegin %store-monad (mbegin %store-monad

View File

@ -158,4 +158,4 @@ in the format specified by FMT."
(#f (#f
(display-checkout-info format)) (display-checkout-info format))
(profile (profile
(display-profile-info profile format)))))) (display-profile-info (canonicalize-profile profile) format))))))

View File

@ -176,6 +176,7 @@ COMMAND or an interactive shell in that environment.\n"))
(graft? . #t) (graft? . #t)
(print-build-trace? . #t) (print-build-trace? . #t)
(print-extended-build-trace? . #t) (print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
(verbosity . 0))) (verbosity . 0)))
(define (tag-package-arg opts arg) (define (tag-package-arg opts arg)

View File

@ -47,6 +47,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
(display (G_ " (display (G_ "
-h, --help display this help and exit")) -h, --help display this help and exit"))
(display (G_ " (display (G_ "
-r, --recursive import packages recursively"))
(display (G_ "
-V, --version display version information and exit")) -V, --version display version information and exit"))
(newline) (newline)
(show-bug-report-information)) (show-bug-report-information))

View File

@ -541,6 +541,7 @@ please email '~a'~%")
(graft? . #t) (graft? . #t)
(print-build-trace? . #t) (print-build-trace? . #t)
(print-extended-build-trace? . #t) (print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
(verbosity . 0) (verbosity . 0)
(symlinks . ()) (symlinks . ())
(compressor . ,(first %compressors)))) (compressor . ,(first %compressors))))

View File

@ -68,50 +68,14 @@
(define (ensure-default-profile) (define (ensure-default-profile)
"Ensure the default profile symlink and directory exist and are writable." "Ensure the default profile symlink and directory exist and are writable."
(ensure-profile-directory)
(define (rtfm)
(format (current-error-port)
(G_ "Try \"info '(guix) Invoking guix package'\" for \
more information.~%"))
(exit 1))
;; Create ~/.guix-profile if it doesn't exist yet. ;; Create ~/.guix-profile if it doesn't exist yet.
(when (and %user-profile-directory (when (and %user-profile-directory
%current-profile %current-profile
(not (false-if-exception (not (false-if-exception
(lstat %user-profile-directory)))) (lstat %user-profile-directory))))
(symlink %current-profile %user-profile-directory)) (symlink %current-profile %user-profile-directory)))
(let ((s (stat %profile-directory #f)))
;; Attempt to create /…/profiles/per-user/$USER if needed.
(unless (and s (eq? 'directory (stat:type s)))
(catch 'system-error
(lambda ()
(mkdir-p %profile-directory))
(lambda args
;; Often, we cannot create %PROFILE-DIRECTORY because its
;; parent directory is root-owned and we're running
;; unprivileged.
(format (current-error-port)
(G_ "error: while creating directory `~a': ~a~%")
%profile-directory
(strerror (system-error-errno args)))
(format (current-error-port)
(G_ "Please create the `~a' directory, with you as the owner.~%")
%profile-directory)
(rtfm))))
;; Bail out if it's not owned by the user.
(unless (or (not s) (= (stat:uid s) (getuid)))
(format (current-error-port)
(G_ "error: directory `~a' is not owned by you~%")
%profile-directory)
(format (current-error-port)
(G_ "Please change the owner of `~a' to user ~s.~%")
%profile-directory (or (getenv "USER")
(getenv "LOGNAME")
(getuid)))
(rtfm))))
(define (delete-generations store profile generations) (define (delete-generations store profile generations)
"Delete GENERATIONS from PROFILE. "Delete GENERATIONS from PROFILE.
@ -332,7 +296,8 @@ ENTRIES, a list of manifest entries, in the context of PROFILE."
(substitutes? . #t) (substitutes? . #t)
(build-hook? . #t) (build-hook? . #t)
(print-build-trace? . #t) (print-build-trace? . #t)
(print-extended-build-trace? . #t))) (print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)))
(define (show-help) (define (show-help)
(display (G_ "Usage: guix package [OPTION]... (display (G_ "Usage: guix package [OPTION]...

View File

@ -64,6 +64,7 @@
(build-hook? . #t) (build-hook? . #t)
(print-build-trace? . #t) (print-build-trace? . #t)
(print-extended-build-trace? . #t) (print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
(graft? . #t) (graft? . #t)
(verbosity . 0))) (verbosity . 0)))
@ -225,6 +226,60 @@ Download and deploy the latest version of Guix.\n"))
(lambda (key err) (lambda (key err)
(report-git-error err)))) (report-git-error err))))
;;;
;;; Profile.
;;;
(define %current-profile
;; The "real" profile under /var/guix.
(string-append %profile-directory "/current-guix"))
(define %user-profile-directory
;; The user-friendly name of %CURRENT-PROFILE.
(string-append (config-directory #:ensure? #f) "/current"))
(define (migrate-generations profile directory)
"Migrate the generations of PROFILE to DIRECTORY."
(format (current-error-port)
(G_ "Migrating profile generations to '~a'...~%")
%profile-directory)
(let ((current (generation-number profile)))
(for-each (lambda (generation)
(let ((source (generation-file-name profile generation))
(target (string-append directory "/current-guix-"
(number->string generation)
"-link")))
;; Note: Don't use 'rename-file' as SOURCE and TARGET might
;; live on different file systems.
(symlink (readlink source) target)
(delete-file source)))
(profile-generations profile))
(symlink (string-append "current-guix-"
(number->string current) "-link")
(string-append directory "/current-guix"))))
(define (ensure-default-profile)
(ensure-profile-directory)
;; In 0.15.0+ we'd create ~/.config/guix/current-[0-9]*-link symlinks. Move
;; them to %PROFILE-DIRECTORY.
(unless (string=? %profile-directory
(dirname (canonicalize-profile %user-profile-directory)))
(migrate-generations %user-profile-directory %profile-directory))
;; Make sure ~/.config/guix/current points to /var/guix/profiles/….
(let ((link %user-profile-directory))
(unless (equal? (false-if-exception (readlink link))
%current-profile)
(catch 'system-error
(lambda ()
(false-if-exception (delete-file link))
(symlink %current-profile link))
(lambda args
(leave (G_ "while creating symlink '~a': ~a~%")
link (strerror (system-error-errno args))))))))
;;; ;;;
;;; Queries. ;;; Queries.
@ -341,11 +396,8 @@ and ALIST2 differ, display HEADING upfront."
(display-new/upgraded-packages (package-alist gen1) (display-new/upgraded-packages (package-alist gen1)
(package-alist gen2))) (package-alist gen2)))
(define (process-query opts) (define (process-query opts profile)
"Process any query specified by OPTS." "Process any query on PROFILE specified by OPTS."
(define profile
(string-append (config-directory) "/current"))
(match (assoc-ref opts 'query) (match (assoc-ref opts 'query)
(('list-generations pattern) (('list-generations pattern)
(define (list-generations profile numbers) (define (list-generations profile numbers)
@ -441,11 +493,10 @@ Use '~/.config/guix/channels.scm' instead."))
(list %default-options))) (list %default-options)))
(cache (string-append (cache-directory) "/pull")) (cache (string-append (cache-directory) "/pull"))
(channels (channel-list opts)) (channels (channel-list opts))
(profile (or (assoc-ref opts 'profile) (profile (or (assoc-ref opts 'profile) %current-profile)))
(string-append (config-directory) "/current")))) (ensure-default-profile)
(cond ((assoc-ref opts 'query) (cond ((assoc-ref opts 'query)
(process-query opts)) (process-query opts profile))
((assoc-ref opts 'dry-run?) ((assoc-ref opts 'dry-run?)
#t) ;XXX: not very useful #t) ;XXX: not very useful
(else (else

View File

@ -1082,6 +1082,7 @@ Some ACTIONS support additional ARGS.\n"))
(build-hook? . #t) (build-hook? . #t)
(print-build-trace? . #t) (print-build-trace? . #t)
(print-extended-build-trace? . #t) (print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
(graft? . #t) (graft? . #t)
(verbosity . 0) (verbosity . 0)
(file-system-type . "ext4") (file-system-type . "ext4")

View File

@ -904,7 +904,11 @@ is not supported."
version)) version))
(define guile (define guile
(guile-for-build guile-version)) ;; When PULL-VERSION >= 1, produce a self-contained Guix and use Guile 2.2
;; unconditionally.
(guile-for-build (if (>= pull-version 1)
"2.2"
guile-version)))
(mbegin %store-monad (mbegin %store-monad
(set-guile-for-build guile) (set-guile-for-build guile)
@ -913,7 +917,8 @@ is not supported."
#:name (string-append "guix-" #:name (string-append "guix-"
(shorten version)) (shorten version))
#:pull-version pull-version #:pull-version pull-version
#:guile-version guile-version #:guile-version (if (>= pull-version 1)
"2.2" guile-version)
#:guile-for-build guile))) #:guile-for-build guile)))
(if guix (if guix
(lower-object guix) (lower-object guix)

View File

@ -34,6 +34,7 @@
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:use-module (ice-9 binary-ports) #:use-module (ice-9 binary-ports)
#:autoload (ice-9 rdelim) (read-string)
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module ((system foreign) #:use-module ((system foreign)
#:select (bytevector->pointer pointer->bytevector)) #:select (bytevector->pointer pointer->bytevector))
@ -115,7 +116,10 @@
(string=? item (download-item download)))) (string=? item (download-item download))))
(define* (compute-status event status (define* (compute-status event status
#:key (current-time current-time)) #:key
(current-time current-time)
(derivation-path->output-path
derivation-path->output-path))
"Given EVENT, a tuple like (build-started \"/gnu/store/...-foo.drv\" ...), "Given EVENT, a tuple like (build-started \"/gnu/store/...-foo.drv\" ...),
compute a new status based on STATUS." compute a new status based on STATUS."
(match event (match event
@ -141,8 +145,7 @@ compute a new status based on STATUS."
(inherit status) (inherit status)
(building (remove (lambda (drv) (building (remove (lambda (drv)
(equal? (false-if-exception (equal? (false-if-exception
(derivation->output-path (derivation-path->output-path drv))
(read-derivation-from-file drv)))
item)) item))
(build-status-building status))) (build-status-building status)))
(downloading (cons (download item uri #:size size (downloading (cons (download item uri #:size size
@ -218,6 +221,12 @@ build traces\" such as \"@ download-progress\" traces."
(and (current-store-protocol-version) (and (current-store-protocol-version)
(>= (current-store-protocol-version) #x162))) (>= (current-store-protocol-version) #x162)))
(define (multiplexed-output-supported?)
"Return true if the daemon supports \"multiplexed output\"--i.e., \"@
build-log\" traces."
(and (current-store-protocol-version)
(>= (current-store-protocol-version) #x163)))
(define spin! (define spin!
(let ((steps (circular-list "\\" "|" "/" "-"))) (let ((steps (circular-list "\\" "|" "/" "-")))
(lambda (port) (lambda (port)
@ -312,14 +321,16 @@ addition to build events."
(lambda (line) (lambda (line)
(spin! port)))) (spin! port))))
(display "\r" port) ;erase the spinner (unless print-log?
(display "\r" port)) ;erase the spinner
(match event (match event
(('build-started drv . _) (('build-started drv . _)
(format port (info (G_ "building ~a...")) drv) (format port (info (G_ "building ~a...")) drv)
(newline port)) (newline port))
(('build-succeeded drv . _) (('build-succeeded drv . _)
(when (or print-log? (not (extended-build-trace-supported?)))
(format port (success (G_ "successfully built ~a")) drv) (format port (success (G_ "successfully built ~a")) drv)
(newline port) (newline port))
(match (build-status-building status) (match (build-status-building status)
(() #t) (() #t)
(ongoing ;when max-jobs > 1 (ongoing ;when max-jobs > 1
@ -382,13 +393,20 @@ addition to build events."
expected hash: ~a expected hash: ~a
actual hash: ~a~%")) actual hash: ~a~%"))
expected actual)) expected actual))
(('build-log line) (('build-log pid line)
;; TODO: Better distinguish daemon messages and build log lines. (if (multiplexed-output-supported?)
(if (not pid)
(begin
;; LINE comes from the daemon, not from builders. Let it
;; through.
(display line port)
(force-output port))
(print-log-line line))
(cond ((string-prefix? "substitute: " line) (cond ((string-prefix? "substitute: " line)
;; The daemon prefixes early messages coming with 'guix ;; The daemon prefixes early messages coming with 'guix
;; substitute' with "substitute:". These are useful ("updating ;; substitute' with "substitute:". These are useful ("updating
;; substitutes from URL"), so let them through. ;; substitutes from URL"), so let them through.
(format port line) (display line port)
(force-output port)) (force-output port))
((string-prefix? "waiting for locks" line) ((string-prefix? "waiting for locks" line)
;; This is when a derivation is already being built and we're just ;; This is when a derivation is already being built and we're just
@ -396,7 +414,7 @@ addition to build events."
(display (info (string-trim-right line)) port) (display (info (string-trim-right line)) port)
(newline)) (newline))
(else (else
(print-log-line line)))) (print-log-line line)))))
(_ (_
event))) event)))
@ -426,8 +444,43 @@ ON-CHANGE can display the build status, build events, etc."
;;; Build port. ;;; Build port.
;;; ;;;
(define %newline (define (maybe-utf8->string bv)
(char-set #\return #\newline)) "Attempt to decode BV as UTF-8 string and return it. Gracefully handle the
case where BV does not contain only valid UTF-8."
(catch 'decoding-error
(lambda ()
(utf8->string bv))
(lambda _
;; This is the sledgehammer but it's the only safe way we have to
;; properly handle this. It's expensive but it's rarely needed.
(let ((port (open-bytevector-input-port bv)))
(set-port-encoding! port "UTF-8")
(set-port-conversion-strategy! port 'substitute)
(let ((str (read-string port)))
(close-port port)
str)))))
(define (bytevector-index bv number offset count)
"Search for NUMBER in BV starting from OFFSET and reading up to COUNT bytes;
return the offset where NUMBER first occurs or #f if it could not be found."
(let loop ((offset offset)
(count count))
(cond ((zero? count) #f)
((= (bytevector-u8-ref bv offset) number) offset)
(else (loop (+ 1 offset) (- count 1))))))
(define (split-lines str)
"Split STR into lines in a way that preserves newline characters."
(let loop ((str str)
(result '()))
(if (string-null? str)
(reverse result)
(match (string-index str #\newline)
(#f
(loop "" (cons str result)))
(index
(loop (string-drop str (+ index 1))
(cons (string-take str (+ index 1)) result)))))))
(define* (build-event-output-port proc #:optional (seed (build-status))) (define* (build-event-output-port proc #:optional (seed (build-status)))
"Return an output port for use as 'current-build-output-port' that calls "Return an output port for use as 'current-build-output-port' that calls
@ -449,32 +502,82 @@ The second return value is a thunk to retrieve the current state."
;; Current state for PROC. ;; Current state for PROC.
seed) seed)
;; When true, this represents the current state while reading a
;; "@ build-log" trace: the current builder PID, the previously-read
;; bytevectors, and the number of bytes that remain to be read.
(define %build-output-pid #f)
(define %build-output '())
(define %build-output-left #f)
(define (process-line line) (define (process-line line)
(if (string-prefix? "@ " line) (cond ((string-prefix? "@ " line)
(match (string-tokenize (string-drop line 2)) (match (string-tokenize (string-drop line 2))
(("build-log" (= string->number pid) (= string->number len))
(set! %build-output-pid pid)
(set! %build-output '())
(set! %build-output-left len))
(((= string->symbol event-name) args ...) (((= string->symbol event-name) args ...)
(set! %state (set! %state
(proc (cons event-name args) (proc (cons event-name args)
%state)))) %state)))))
(set! %state (proc (list 'build-log line) (else
%state)))) (set! %state (proc (list 'build-log #f line)
%state)))))
(define (process-build-output pid output)
;; Transform OUTPUT in 'build-log' events or download events as generated
;; by extended build traces.
(define (line->event line)
(match (and (string-prefix? "@ " line)
(string-tokenize (string-drop line 2)))
((type . args)
(if (or (string-prefix? "download-" type)
(string=? "build-remote" type))
(cons (string->symbol type) args)
`(build-log ,pid ,line)))
(_
`(build-log ,pid ,line))))
(let* ((lines (split-lines output))
(events (map line->event lines)))
(set! %state (fold proc %state events))))
(define (bytevector-range bv offset count) (define (bytevector-range bv offset count)
(let ((ptr (bytevector->pointer bv offset))) (let ((ptr (bytevector->pointer bv offset)))
(pointer->bytevector ptr count))) (pointer->bytevector ptr count)))
(define (write! bv offset count) (define (write! bv offset count)
(let loop ((str (utf8->string (bytevector-range bv offset count)))) (if %build-output-pid
(match (string-index str %newline) (let ((keep (min count %build-output-left)))
(set! %build-output
(let ((bv* (make-bytevector keep)))
(bytevector-copy! bv offset bv* 0 keep)
(cons bv* %build-output)))
(set! %build-output-left
(- %build-output-left keep))
(when (zero? %build-output-left)
(process-build-output %build-output-pid
(string-concatenate-reverse
(map maybe-utf8->string %build-output))) ;XXX
(set! %build-output '())
(set! %build-output-pid #f))
keep)
(match (bytevector-index bv (char->integer #\newline)
offset count)
((? integer? cr) ((? integer? cr)
(let ((tail (string-take str (+ 1 cr)))) (let* ((tail (maybe-utf8->string
(process-line (string-concatenate-reverse (bytevector-range bv offset (- cr -1 offset))))
(cons tail %fragments))) (line (string-concatenate-reverse
(cons tail %fragments))))
(process-line line)
(set! %fragments '()) (set! %fragments '())
(loop (string-drop str (+ 1 cr))))) (- cr -1 offset)))
(#f (#f
(unless (string-null? str) (unless (zero? count)
(set! %fragments (cons str %fragments))) (let ((str (maybe-utf8->string
(bytevector-range bv offset count))))
(set! %fragments (cons str %fragments))))
count)))) count))))
(define port (define port
@ -485,8 +588,9 @@ The second return value is a thunk to retrieve the current state."
;; The build port actually receives Unicode strings. ;; The build port actually receives Unicode strings.
(set-port-encoding! port "UTF-8") (set-port-encoding! port "UTF-8")
(setvbuf port (cond-expand (guile-2.2 'line) (else _IOLBF))) (cond-expand
((and guile-2 (not guile-2.2)) #t)
(else (setvbuf port 'line)))
(values port (lambda () %state))) (values port (lambda () %state)))
(define (call-with-status-report on-event thunk) (define (call-with-status-report on-event thunk)

View File

@ -155,7 +155,7 @@
derivation-log-file derivation-log-file
log-file)) log-file))
(define %protocol-version #x162) (define %protocol-version #x163)
(define %worker-magic-1 #x6e697863) ; "nixc" (define %worker-magic-1 #x6e697863) ; "nixc"
(define %worker-magic-2 #x6478696f) ; "dxio" (define %worker-magic-2 #x6478696f) ; "dxio"
@ -709,6 +709,15 @@ encoding conversion errors."
;; disabled by default. ;; disabled by default.
print-extended-build-trace? print-extended-build-trace?
;; When true, the daemon prefixes builder output
;; with "@ build-log" traces so we can
;; distinguish it from daemon output, and we can
;; distinguish each builder's output
;; (PRINT-BUILD-TRACE must be true as well.) The
;; latter is particularly useful when
;; MAX-BUILD-JOBS > 1.
multiplexed-build-output?
build-cores build-cores
(use-substitutes? #t) (use-substitutes? #t)
@ -757,6 +766,10 @@ encoding conversion errors."
`(("print-extended-build-trace" `(("print-extended-build-trace"
. ,(if print-extended-build-trace? "1" "0"))) . ,(if print-extended-build-trace? "1" "0")))
'()) '())
,@(if multiplexed-build-output?
`(("multiplexed-build-output"
. ,(if multiplexed-build-output? "true" "false")))
'())
,@(if timeout ,@(if timeout
`(("build-timeout" . ,(number->string timeout))) `(("build-timeout" . ,(number->string timeout)))
'()) '())

View File

@ -1652,8 +1652,8 @@ HookReply DerivationGoal::tryBuildHook()
worker.childStarted(shared_from_this(), hook->pid, fds, false, false); worker.childStarted(shared_from_this(), hook->pid, fds, false, false);
if (settings.printBuildTrace) if (settings.printBuildTrace)
printMsg(lvlError, format("@ build-started %1% - %2% %3%") printMsg(lvlError, format("@ build-started %1% - %2% %3% %4%")
% drvPath % drv.platform % logFile); % drvPath % drv.platform % logFile % hook->pid);
return rpAccept; return rpAccept;
} }
@ -2038,8 +2038,8 @@ void DerivationGoal::startBuilder()
if (!msg.empty()) throw Error(msg); if (!msg.empty()) throw Error(msg);
if (settings.printBuildTrace) { if (settings.printBuildTrace) {
printMsg(lvlError, format("@ build-started %1% - %2% %3%") printMsg(lvlError, format("@ build-started %1% - %2% %3% %4%")
% drvPath % drv.platform % logFile); % drvPath % drv.platform % logFile % pid);
} }
} }
@ -2736,6 +2736,19 @@ void DerivationGoal::deleteTmpDir(bool force)
void DerivationGoal::handleChildOutput(int fd, const string & data) void DerivationGoal::handleChildOutput(int fd, const string & data)
{ {
string prefix;
if (settings.multiplexedBuildOutput) {
/* Print a prefix that allows clients to determine whether a message
comes from the daemon or from a build process, and in the latter
case, which build process it comes from. The PID here matches the
one given in "@ build-started" traces; it's shorter that the
derivation file name, hence this choice. */
prefix = "@ build-log "
+ std::to_string(pid < 0 ? hook->pid : pid)
+ " " + std::to_string(data.size()) + "\n";
}
if ((hook && fd == hook->builderOut.readSide) || if ((hook && fd == hook->builderOut.readSide) ||
(!hook && fd == builderOut.readSide)) (!hook && fd == builderOut.readSide))
{ {
@ -2748,7 +2761,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
return; return;
} }
if (verbosity >= settings.buildVerbosity) if (verbosity >= settings.buildVerbosity)
writeToStderr(data); writeToStderr(prefix + data);
if (gzLogFile) { if (gzLogFile) {
if (data.size() > 0) { if (data.size() > 0) {
@ -2767,7 +2780,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
} }
if (hook && fd == hook->fromHook.readSide) if (hook && fd == hook->fromHook.readSide)
writeToStderr(data); writeToStderr(prefix + data);
} }

View File

@ -36,6 +36,7 @@ Settings::Settings()
buildTimeout = 0; buildTimeout = 0;
useBuildHook = true; useBuildHook = true;
printBuildTrace = false; printBuildTrace = false;
multiplexedBuildOutput = false;
reservedSize = 8 * 1024 * 1024; reservedSize = 8 * 1024 * 1024;
fsyncMetadata = true; fsyncMetadata = true;
useSQLiteWAL = true; useSQLiteWAL = true;
@ -120,6 +121,7 @@ void Settings::update()
_get(maxBuildJobs, "build-max-jobs"); _get(maxBuildJobs, "build-max-jobs");
_get(buildCores, "build-cores"); _get(buildCores, "build-cores");
_get(thisSystem, "system"); _get(thisSystem, "system");
_get(multiplexedBuildOutput, "multiplexed-build-output");
_get(maxSilentTime, "build-max-silent-time"); _get(maxSilentTime, "build-max-silent-time");
_get(buildTimeout, "build-timeout"); _get(buildTimeout, "build-timeout");
_get(reservedSize, "gc-reserved-space"); _get(reservedSize, "gc-reserved-space");

View File

@ -127,7 +127,7 @@ struct Settings {
a fixed format to allow its progress to be monitored. Each a fixed format to allow its progress to be monitored. Each
line starts with a "@". The following are defined: line starts with a "@". The following are defined:
@ build-started <drvpath> <outpath> <system> <logfile> @ build-started <drvpath> <outpath> <system> <logfile> <pid>
@ build-failed <drvpath> <outpath> <exitcode> <error text> @ build-failed <drvpath> <outpath> <exitcode> <error text>
@ build-succeeded <drvpath> <outpath> @ build-succeeded <drvpath> <outpath>
@ substituter-started <outpath> <substituter> @ substituter-started <outpath> <substituter>
@ -139,6 +139,13 @@ struct Settings {
builders. */ builders. */
bool printBuildTrace; bool printBuildTrace;
/* When true, 'buildDerivations' prefixes lines coming from builders so
that clients know exactly which line comes from which builder, and
which line comes from the daemon itself. The prefix for data coming
from builders is "log:PID:LEN:DATA" where PID uniquely identifies the
builder (PID is given in "build-started" traces.) */
bool multiplexedBuildOutput;
/* Amount of reserved space for the garbage collector /* Amount of reserved space for the garbage collector
(/nix/var/nix/db/reserved). */ (/nix/var/nix/db/reserved). */
off_t reservedSize; off_t reservedSize;

View File

@ -6,7 +6,7 @@ namespace nix {
#define WORKER_MAGIC_1 0x6e697863 #define WORKER_MAGIC_1 0x6e697863
#define WORKER_MAGIC_2 0x6478696f #define WORKER_MAGIC_2 0x6478696f
#define PROTOCOL_VERSION 0x162 #define PROTOCOL_VERSION 0x163
#define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00) #define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
#define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff) #define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff)

View File

@ -594,7 +594,7 @@ static void performOp(bool trusted, unsigned int clientVersion,
if (name == "build-timeout" || name == "build-max-silent-time" if (name == "build-timeout" || name == "build-max-silent-time"
|| name == "build-max-jobs" || name == "build-cores" || name == "build-max-jobs" || name == "build-cores"
|| name == "build-repeat" || name == "build-repeat"
|| name == "use-ssh-substituter") || name == "multiplexed-build-output")
settings.set(name, value); settings.set(name, value);
else else
settings.set(trusted ? name : "untrusted-" + name, value); settings.set(trusted ? name : "untrusted-" + name, value);

View File

@ -41,4 +41,5 @@ guix/status.scm
guix/http-client.scm guix/http-client.scm
guix/nar.scm guix/nar.scm
guix/channels.scm guix/channels.scm
guix/profiles.scm
nix/nix-daemon/guix-daemon.cc nix/nix-daemon/guix-daemon.cc

View File

@ -221,6 +221,10 @@ guix build -e "(begin
guix build -e '#~(mkdir #$output)' -d guix build -e '#~(mkdir #$output)' -d
guix build -e '#~(mkdir #$output)' -d | grep 'gexp\.drv' guix build -e '#~(mkdir #$output)' -d | grep 'gexp\.drv'
# Same with a file-like object.
guix build -e '(computed-file "foo" #~(mkdir #$output))' -d
guix build -e '(computed-file "foo" #~(mkdir #$output))' -d | grep 'foo\.drv'
# Building from a package file. # Building from a package file.
cat > "$module_dir/package.scm"<<EOF cat > "$module_dir/package.scm"<<EOF
(use-modules (gnu)) (use-modules (gnu))

View File

@ -20,7 +20,10 @@
#:use-module (guix status) #:use-module (guix status)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-64)) #:use-module (srfi srfi-64)
#:use-module (rnrs bytevectors)
#:use-module (rnrs io ports)
#:use-module (ice-9 match))
(test-begin "status") (test-begin "status")
@ -112,4 +115,69 @@
(display "@ substituter-succeeded baz\n" port) (display "@ substituter-succeeded baz\n" port)
(list first (get-status))))) (list first (get-status)))))
(test-equal "build-output-port, UTF-8"
'((build-log #f "lambda is λ!\n"))
(let-values (((port get-status) (build-event-output-port cons '()))
((bv) (string->utf8 "lambda is λ!\n")))
(put-bytevector port bv)
(force-output port)
(get-status)))
(test-equal "current-build-output-port, UTF-8 + garbage"
;; What about a mixture of UTF-8 + garbage?
(let ((replacement (cond-expand
((and guile-2 (not guile-2.2)) "?")
(else "<22>"))))
`((build-log #f ,(string-append "garbage: " replacement "lambda: λ\n"))))
(let-values (((port get-status) (build-event-output-port cons '())))
(display "garbage: " port)
(put-bytevector port #vu8(128))
(put-bytevector port (string->utf8 "lambda: λ\n"))
(force-output port)
(get-status)))
(test-equal "compute-status, multiplexed build output"
(list (build-status
(building '("foo.drv"))
(downloading (list (download "bar" "http://example.org/bar"
#:size 999
#:start 'now))))
(build-status
(building '("foo.drv"))
(downloading (list (download "bar" "http://example.org/bar"
#:size 999
#:transferred 42
#:start 'now))))
(build-status
;; XXX: Should "bar.drv" be present twice?
(builds-completed '("bar.drv" "foo.drv"))
(downloads-completed (list (download "bar" "http://example.org/bar"
#:size 999
#:transferred 999
#:start 'now
#:end 'now)))))
(let-values (((port get-status)
(build-event-output-port (lambda (event status)
(compute-status event status
#:current-time
(const 'now)
#:derivation-path->output-path
(match-lambda
("bar.drv" "bar")))))))
(display "@ build-started foo.drv 121\n" port)
(display "@ build-started bar.drv 144\n" port)
(display "@ build-log 121 6\nHello!" port)
(display "@ build-log 144 50
@ download-started bar http://example.org/bar 999\n" port)
(let ((first (get-status)))
(display "@ build-log 121 30\n@ build-started FAKE!.drv 555\n")
(display "@ build-log 144 54
@ download-progress bar http://example.org/bar 999 42\n"
port)
(let ((second (get-status)))
(display "@ download-succeeded bar http://example.org/bar 999\n" port)
(display "@ build-succeeded foo.drv\n" port)
(display "@ build-succeeded bar.drv\n" port)
(list first second (get-status))))))
(test-end "status") (test-end "status")

View File

@ -31,6 +31,7 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bootstrap) #:use-module (gnu packages bootstrap)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module (rnrs io ports) #:use-module (rnrs io ports)
#:use-module (web uri) #:use-module (web uri)
@ -1021,4 +1022,66 @@
(call-with-input-file (derivation->output-path drv2) (call-with-input-file (derivation->output-path drv2)
read)))))) read))))))
(test-equal "multiplexed-build-output"
'("Hello from first." "Hello from second.")
(with-store store
(let* ((build (add-text-to-store store "build.sh"
"echo Hello from $NAME.; echo > $out"))
(bash (add-to-store store "bash" #t "sha256"
(search-bootstrap-binary "bash"
(%current-system))))
(drv1 (derivation store "one" bash
`("-e" ,build)
#:inputs `((,bash) (,build))
#:env-vars `(("NAME" . "first")
("x" . ,(random-text)))))
(drv2 (derivation store "two" bash
`("-e" ,build)
#:inputs `((,bash) (,build))
#:env-vars `(("NAME" . "second")
("x" . ,(random-text))))))
(set-build-options store
#:print-build-trace #t
#:multiplexed-build-output? #t
#:max-build-jobs 10)
(let ((port (open-output-string)))
;; Send the build log to PORT.
(parameterize ((current-build-output-port port))
(build-derivations store (list drv1 drv2)))
;; Retrieve the build log; make sure it contains valid "@ build-log"
;; traces that allow us to retrieve each builder's output (we assume
;; there's exactly one "build-output" trace for each builder, which is
;; reasonable.)
(let* ((log (get-output-string port))
(started (fold-matches
(make-regexp "@ build-started ([^ ]+) - ([^ ]+) ([^ ]+) ([0-9]+)")
log '() cons))
(done (fold-matches
(make-regexp "@ build-succeeded (.*) - (.*) (.*) (.*)")
log '() cons))
(output (fold-matches
(make-regexp "@ build-log ([[:digit:]]+) ([[:digit:]]+)\n([A-Za-z .*]+)\n")
log '() cons))
(drv-pid (lambda (name)
(lambda (m)
(let ((drv (match:substring m 1))
(pid (string->number
(match:substring m 4))))
(and (string-suffix? name drv) pid)))))
(pid-log (lambda (pid)
(lambda (m)
(let ((n (string->number
(match:substring m 1)))
(len (string->number
(match:substring m 2)))
(str (match:substring m 3)))
(and (= pid n)
(= (string-length str) (- len 1))
str)))))
(pid1 (any (drv-pid "one.drv") started))
(pid2 (any (drv-pid "two.drv") started)))
(list (any (pid-log pid1) output)
(any (pid-log pid2) output)))))))
(test-end "store") (test-end "store")