Merge branch 'master' into core-updates
This commit is contained in:
commit
d02bb02f7d
|
@ -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)))))))))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
14
gnu/local.mk
14
gnu/local.mk
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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+)))
|
|
||||||
|
|
|
@ -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+)))
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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"))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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+)))
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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/>
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 Python’s
|
||||||
|
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")
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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."
|
||||||
|
|
|
@ -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))
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
|
|
@ -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);
|
|
@ -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",
|
|
@ -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
|
||||||
|
|
|
@ -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 '#'.
|
||||||
|
|
|
@ -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);
|
|
@ -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);
|
|
|
@ -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 )
|
||||||
|
{
|
||||||
|
|
|
@ -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")
|
|
|
@ -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
|
|
|
@ -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;
|
|
|
@ -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")
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)))))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))))))
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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))))
|
||||||
|
|
|
@ -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]...
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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)
|
||||||
|
|
154
guix/status.scm
154
guix/status.scm
|
@ -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)
|
||||||
|
|
|
@ -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)))
|
||||||
'())
|
'())
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Loading…
Reference in New Issue