Merge branch 'master' into core-updates
commit
d02bb02f7d
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -19,6 +19,7 @@
|
|||
(define-module (run-system-tests)
|
||||
#:use-module (gnu tests)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix status)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix ui)
|
||||
|
@ -63,25 +64,27 @@
|
|||
(length tests))
|
||||
|
||||
(with-store store
|
||||
(run-with-store store
|
||||
(mlet* %store-monad ((drv (mapm %store-monad system-test-value tests))
|
||||
(out -> (map derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(show-what-to-build* drv)
|
||||
(set-build-options* #:keep-going? #t #:keep-failed? #t
|
||||
#:print-build-trace #t
|
||||
#:fallback? #t)
|
||||
(built-derivations* drv)
|
||||
(mlet %store-monad ((valid (filterm (store-lift valid-path?)
|
||||
out))
|
||||
(failed (filterm (store-lift
|
||||
(negate valid-path?))
|
||||
out)))
|
||||
(format #t "TOTAL: ~a\n" (length drv))
|
||||
(for-each (lambda (item)
|
||||
(format #t "PASS: ~a~%" item))
|
||||
valid)
|
||||
(for-each (lambda (item)
|
||||
(format #t "FAIL: ~a~%" item))
|
||||
failed)
|
||||
(exit (null? failed))))))))
|
||||
(with-status-report print-build-event
|
||||
(run-with-store store
|
||||
(mlet* %store-monad ((drv (mapm %store-monad system-test-value tests))
|
||||
(out -> (map derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(show-what-to-build* drv)
|
||||
(set-build-options* #:keep-going? #t #:keep-failed? #t
|
||||
#:print-build-trace #t
|
||||
#:print-extended-build-trace? #t
|
||||
#:fallback? #t)
|
||||
(built-derivations* drv)
|
||||
(mlet %store-monad ((valid (filterm (store-lift valid-path?)
|
||||
out))
|
||||
(failed (filterm (store-lift
|
||||
(negate valid-path?))
|
||||
out)))
|
||||
(format #t "TOTAL: ~a\n" (length drv))
|
||||
(for-each (lambda (item)
|
||||
(format #t "PASS: ~a~%" item))
|
||||
valid)
|
||||
(for-each (lambda (item)
|
||||
(format #t "FAIL: ~a~%" item))
|
||||
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.
|
||||
m4_pattern_forbid([PKG_CHECK_MODULES])
|
||||
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 'GUILE_EFFECTIVE_VERSION'.
|
||||
|
@ -232,8 +234,6 @@ AC_SUBST([LIBGCRYPT])
|
|||
AC_SUBST([LIBGCRYPT_PREFIX])
|
||||
AC_SUBST([LIBGCRYPT_LIBDIR])
|
||||
|
||||
GUIX_ASSERT_LIBGCRYPT_USABLE
|
||||
|
||||
dnl Library name of zlib suitable for 'dynamic-link'.
|
||||
GUIX_LIBZ_LIBDIR([libz_libdir])
|
||||
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
|
||||
(@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
|
||||
|
||||
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
|
||||
switched from generation 3 to 2
|
||||
$ 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
|
||||
|
||||
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}
|
||||
@itemx -f @var{file}
|
||||
|
||||
Build the package or derivation that the code within @var{file}
|
||||
evaluates to.
|
||||
Build the package, derivation, or other file-like object that the code within
|
||||
@var{file} evaluates to (@pxref{G-Expressions, file-like objects}).
|
||||
|
||||
As an example, @var{file} might contain a package definition like this
|
||||
(@pxref{Defining Packages}):
|
||||
|
@ -11738,19 +11737,36 @@ When true, enable connman's vpn plugin.
|
|||
@defvr {Scheme Variable} wpa-supplicant-service-type
|
||||
This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA
|
||||
supplicant}, an authentication daemon required to authenticate against
|
||||
encrypted WiFi or ethernet networks. It is configured to listen for
|
||||
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
|
||||
encrypted WiFi or ethernet networks.
|
||||
@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
|
||||
@defvr {Scheme Variable} iptables-service-type
|
||||
This is the service type to set up an iptables configuration. iptables is a
|
||||
|
|
|
@ -160,6 +160,9 @@ chk_sys_arch()
|
|||
aarch64)
|
||||
local arch=aarch64
|
||||
;;
|
||||
armv7l)
|
||||
local arch=armhf
|
||||
;;
|
||||
*)
|
||||
_err "${ERR}Unsupported CPU type: ${arch}"
|
||||
exit 1
|
||||
|
|
|
@ -15,7 +15,9 @@
|
|||
((equal yas-text "hg-fetch") "hg-reference...")
|
||||
((equal yas-text "cvs-fetch") "cvs-reference...")
|
||||
(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\\"))")
|
||||
(t ""))}
|
||||
(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-remove-crypto++-dependency.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/clucene-pkgconfig.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/einstein-build.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-json-reformat-fix-tests.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/pyqt-configure.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.7-adjust-tests.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-search-paths.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-cairocffi-dlopen-path.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-krack-followups.patch \
|
||||
%D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \
|
||||
%D%/packages/patches/x265-arm-asm-primitives.patch \
|
||||
%D%/packages/patches/x265-fix-ppc64le-build.patch \
|
||||
%D%/packages/patches/x265-detect512-all-arches.patch \
|
||||
%D%/packages/patches/xapian-revert-5489fb2f8.patch \
|
||||
%D%/packages/patches/xboing-CVE-2004-0149.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/xmodmap-asprintf.patch \
|
||||
%D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.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
|
||||
%D%/packages/patches/zathura-plugindir-environment-variable.patch
|
||||
|
||||
MISC_DISTRO_FILES = \
|
||||
%D%/packages/ld-wrapper.in
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
|
@ -62,7 +62,7 @@
|
|||
(build-system glib-or-gtk-build-system)
|
||||
(arguments ;; NOTE: rsvg is disabled, since Abiword
|
||||
`(#: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-templates" ;; dependencies: aiksaurus, grammar, wpg, gda,
|
||||
(string-append ;; wordperfect, psion, mathview.
|
||||
|
@ -73,7 +73,7 @@
|
|||
"latex " "loadbindings " "mht " "mif " "mswrite " "opendocument "
|
||||
"openwriter " "openxml " "opml " "ots " "paint " "passepartout "
|
||||
"pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict "
|
||||
"wikipedia " "wmf " "wml " "xslfo"))
|
||||
"wikipedia " "wml " "xslfo"))
|
||||
;; tests fail with: Gtk-CRITICAL **: gtk_settings_get_for_screen:
|
||||
;; assertion 'GDK_IS_SCREEN (screen)' failed
|
||||
;; GLib-GObject-CRITICAL **: g_object_get_qdata:
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
;;; Copyright © 2018 okapi <okapi@firemail.cc>
|
||||
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Brett Gilio <brettg@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -417,7 +418,7 @@ engineers, musicians, soundtrack editors and composers.")
|
|||
;; and fails with various errors. See
|
||||
;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
|
||||
#:tests? #f))
|
||||
(home-page "http://audacity.sourceforge.net/")
|
||||
(home-page "https://www.audacityteam.org/")
|
||||
(synopsis "Software for recording and editing sounds")
|
||||
(description
|
||||
"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
|
||||
(package
|
||||
(name "csound")
|
||||
(version "6.09.1")
|
||||
(version "6.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -659,7 +660,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4"))))
|
||||
"072pk5h9w0vhw0ncc9dn90haw1yv18v04iwwjn8nsp6930w7dvxd"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
|
@ -674,7 +675,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
`(("bison" ,bison)
|
||||
("flex" ,flex)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://csound.github.io/")
|
||||
(home-page "https://csound.com/")
|
||||
(synopsis "Sound and music computing system")
|
||||
(description
|
||||
"Csound is a user-programmable and user-extensible sound processing
|
||||
|
@ -1915,7 +1916,7 @@ lv2-c++-tools.")
|
|||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://kcat.strangesoft.net/openal-releases/openal-soft-"
|
||||
"http://openal-soft.org/openal-releases/openal-soft-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(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
|
||||
through the EFX extension. It also facilitates streaming audio, multi-channel
|
||||
buffers, and audio capture.")
|
||||
(home-page "http://kcat.strangesoft.net/openal.html")
|
||||
(home-page "http://openal-soft.org/")
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public freealut
|
||||
|
@ -3089,7 +3090,7 @@ with support for HD extensions.")
|
|||
(define-public bs1770gain
|
||||
(package
|
||||
(name "bs1770gain")
|
||||
(version "0.4.12")
|
||||
(version "0.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3097,7 +3098,7 @@ with support for HD extensions.")
|
|||
version "/bs1770gain-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a"))))
|
||||
"0vd7320k7s2zcn2vganclxbr1vav18ghld27rcwskvcc3dm8prii"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ffmpeg" ,ffmpeg)
|
||||
("sox" ,sox)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -32,24 +32,14 @@
|
|||
(define-public augeas
|
||||
(package
|
||||
(name "augeas")
|
||||
(version "1.10.1")
|
||||
(version "1.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.augeas.net/augeas-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k9nssn7lk58cl5zv3c8kv2zx9cm2yks3sj7q4fd6qdjz9m2bnsj"))
|
||||
(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))))
|
||||
"1c507qj6dfn2dnsl27w94zs9r45xrgm07y8bqba9ry2s0psfhg1r"))))
|
||||
(build-system gnu-build-system)
|
||||
;; Marked as "required" in augeas.pc
|
||||
(propagated-inputs
|
||||
|
|
|
@ -862,7 +862,7 @@ is like a time machine for your data. ")
|
|||
(define-public restic
|
||||
(package
|
||||
(name "restic")
|
||||
(version "0.9.2")
|
||||
(version "0.9.3")
|
||||
;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
|
||||
;; directory.
|
||||
(source (origin
|
||||
|
@ -873,7 +873,7 @@ is like a time machine for your data. ")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15bwkydxcg4xhrnqxvxji8wacrsndb1a6frj98wggfaijqzfx3lg"))))
|
||||
"1l1ddnf61pfsrry97qwhhdzywin2mgnbrkhcc9pabsdfk602anmr"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
`(#:import-path "github.com/restic/restic"
|
||||
|
@ -887,6 +887,8 @@ is like a time machine for your data. ")
|
|||
(with-directory-excursion (string-append
|
||||
"src/github.com/restic/restic-"
|
||||
,version)
|
||||
;; Disable 'restic self-update'. It makes little sense in Guix.
|
||||
(substitute* "build.go" (("selfupdate") ""))
|
||||
(invoke "go" "run" "build.go"))))
|
||||
|
||||
(replace 'check
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system ant)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages java)
|
||||
|
@ -139,8 +140,8 @@ public interface EventListenerInitializer {
|
|||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(home-page "https://www.w3.org/Style/CSS/SAC/")
|
||||
(synopsis "W3C SVG interface")
|
||||
(description "This package provides a SVG interface.")
|
||||
(synopsis "W3C SVG 1.0 interface")
|
||||
(description "This package provides a SVG 1.0 interface.")
|
||||
(license license:w3c)))
|
||||
|
||||
(define-public java-w3c-svg
|
||||
|
@ -155,8 +156,15 @@ public interface EventListenerInitializer {
|
|||
(sha256
|
||||
(base32
|
||||
"0jicqcrxav8ggs37amgvvwgc2f0qp1c5wns4rb2i3si83s2m09ns"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments java-w3c-svg-1.0)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(delete 'patch-interface)))))
|
||||
(propagated-inputs
|
||||
`())))
|
||||
`())
|
||||
(synopsis "W3C SVG interface")
|
||||
(description "This package provides a SVG interface.")))
|
||||
|
||||
(define-public java-w3c-sac
|
||||
(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
|
||||
modeling the rates that determines changes in mature mRNA levels.")
|
||||
(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
|
||||
(package
|
||||
(name "kallisto")
|
||||
(version "0.43.1")
|
||||
(version "0.44.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/pachterlab/"
|
||||
"kallisto/archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pachterlab/kallisto.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"03j3iqhvq7ya3c91gidly3k3jvgm97vjq4scihrlxh315j696r11"))))
|
||||
"0nj382jiywqnpgvyhichajpkkh5r0bapn43f4dx40zdaq5v4m40m"))))
|
||||
(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
|
||||
`(("hdf5" ,hdf5)
|
||||
("htslib" ,htslib)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://pachterlab.github.io/kallisto/")
|
||||
(synopsis "Near-optimal RNA-Seq quantification")
|
||||
|
@ -14057,3 +14077,63 @@ absolute GSEA.")
|
|||
(description "Ngless is a domain-specific language for
|
||||
@dfn{next-generation sequencing} (NGS) data processing.")
|
||||
(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
|
||||
(package
|
||||
(name "u-boot")
|
||||
(version "2018.07")
|
||||
(version "2018.09")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1m7nw64mxflpc6sqvnz2kb5fxfkb4mrpy8b1wi15dcwipj4dy44z"))))
|
||||
"0s122kyz1svvs2yjzj4j9qravl3ra4vn0fjqgski7rlczqyg56w3"))))
|
||||
(native-inputs
|
||||
`(("bc" ,bc)
|
||||
("bison" ,bison)
|
||||
|
@ -404,6 +404,12 @@ also initializes the boards (RAM etc).")
|
|||
(("/bin/false") (which "false")))
|
||||
(substitute* "tools/dtoc/fdt_util.py"
|
||||
(("'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"
|
||||
;; Make it easier to find test failures.
|
||||
(("#!/bin/bash") "#!/bin/bash -x")
|
||||
|
@ -418,8 +424,6 @@ also initializes the boards (RAM etc).")
|
|||
(("def test_ctrl_c")
|
||||
"@pytest.mark.skip(reason='Guix has problems with SIGINT')
|
||||
def test_ctrl_c"))
|
||||
(substitute* "tools/binman/binman.py"
|
||||
(("100%") "99%")) ; TODO: Find out why that is needed.
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
|
|
|
@ -96,13 +96,13 @@ data units.")
|
|||
(define-public khal
|
||||
(package
|
||||
(name "khal")
|
||||
(version "0.9.9")
|
||||
(version "0.9.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "khal" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0dq9aqb9pqjfqrnfg43mhpb7m0szmychxy1ydb3lwzf3500c9rsh"))))
|
||||
"03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
|
|
@ -1728,19 +1728,14 @@ or junctions, and always follows hard links.")
|
|||
(define-public zstd
|
||||
(package
|
||||
(name "zstd")
|
||||
(version "1.3.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/facebook/zstd/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"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"))))
|
||||
(version "1.3.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
|
||||
"v" version "/zstd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1525b31jmbiczjj1n58nckdzky4cdnbwcsil3zgy4cx03v0a0cp8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -2432,13 +2432,13 @@ SQLAlchemy Database Toolkit for Python.")
|
|||
(define-public python-pickleshare
|
||||
(package
|
||||
(name "python-pickleshare")
|
||||
(version "0.7.4")
|
||||
(version "0.7.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pickleshare" version))
|
||||
(sha256
|
||||
(base32 "0yvk14dzxk7g6qpr7iw23vzqbsr0dh4ij4xynkhnzpfz4xr2bac4"))))
|
||||
(base32 "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
|
|
@ -30,22 +30,24 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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 autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#: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 ncurses)
|
||||
#:use-module (gnu packages perl)
|
||||
|
@ -53,20 +55,18 @@
|
|||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages vim)
|
||||
#: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 documentation)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages c))
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix build-system gnu)
|
||||
#: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
|
||||
(package
|
||||
|
@ -518,24 +518,25 @@ Duperemove can also take input from the @command{fdupes} program.")
|
|||
(define-public ranger
|
||||
(package
|
||||
(name "ranger")
|
||||
(version "1.9.1")
|
||||
(version "1.9.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ranger.github.io/"
|
||||
"ranger-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0"))))
|
||||
"12kbsqakbxs09y0x8hy66mmaf72rk0p850x7ryk2ghkq7wfin78f"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("w3m" ,w3m)))
|
||||
(native-inputs ;for tests
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-pylint" ,python-pylint)
|
||||
("python-flake8" ,python-flake8)
|
||||
("which" ,which)))
|
||||
(native-inputs
|
||||
`(("which" ,which)
|
||||
|
||||
;; For tests.
|
||||
("python-pytest" ,python-pytest)))
|
||||
(arguments
|
||||
'(#:test-target "test"
|
||||
'( ;; The 'test' target runs developer tools like pylint, which fail.
|
||||
#:test-target "test_pytest"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'configure 'wrap-program
|
||||
|
@ -548,7 +549,11 @@ Duperemove can also take input from the @command{fdupes} program.")
|
|||
"/libexec/w3m/w3mimgdisplay")))
|
||||
(wrap-program ranger
|
||||
`("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/")
|
||||
(synopsis "Console file manager")
|
||||
(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
|
||||
(package
|
||||
(name "volume-key")
|
||||
(version "0.3.11")
|
||||
(version "0.3.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://releases.pagure.org/volume_key/volume_key-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vaz15rcgdkh5z4yxc22x76wi44gh50jxnrqz5avaxz4bb17kcp6"))))
|
||||
"16rhfz6sjwxlmss1plb2wv2i3jq6wza02rmz1d2jrlnsq67p98vc"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("util-linux" ,util-linux)
|
||||
("swig" ,swig)
|
||||
("python" ,python-3))) ; Used to generate the Python bindings.
|
||||
("python" ,python-3))) ; used to generate the Python bindings
|
||||
(inputs
|
||||
`(("cryptsetup" ,cryptsetup)
|
||||
("nss" ,nss)
|
||||
("lvm2" ,lvm2) ; For "-ldevmapper".
|
||||
("lvm2" ,lvm2) ; for "-ldevmapper"
|
||||
("glib" ,glib)
|
||||
("gpgme" ,gpgme)))
|
||||
(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
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-python.h-path
|
||||
|
@ -601,27 +606,28 @@ passphrases.")
|
|||
(define-public ndctl
|
||||
(package
|
||||
(name "ndctl")
|
||||
(version "61.2")
|
||||
(version "63")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pmem/ndctl")
|
||||
(url "https://github.com/pmem/ndctl.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vid78jzhmzh505bpwn8mvlamfhcvl6rlfjc29y4yn7zslpydxl7"))))
|
||||
"060nsza8xic769bxj3pvl70a9885bwrc0myw16l095i3z6w7yzwq"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("asciidoc" ,asciidoc)
|
||||
("automake" ,automake)
|
||||
("autoconf" ,autoconf)
|
||||
("bash-completion" ,bash-completion)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("libtool" ,libtool)
|
||||
("libxml2" ,libxml2)
|
||||
("pkg-config" ,pkg-config)
|
||||
("xmlto" ,xmlto)
|
||||
;; Required for offline docbook generation:
|
||||
;; Required for offline docbook generation.
|
||||
("which" ,which)))
|
||||
(inputs
|
||||
`(("eudev" ,eudev)
|
||||
|
@ -629,12 +635,13 @@ passphrases.")
|
|||
("kmod" ,kmod)
|
||||
("util-linux" ,util-linux)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
`(#:configure-flags
|
||||
(list "--disable-asciidoctor" ; use docbook-xsl instead
|
||||
"--without-systemd")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-FHS-file-names
|
||||
(lambda _
|
||||
(substitute* "autogen.sh"
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* "git-version-gen"
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* "git-version"
|
||||
|
@ -699,14 +706,15 @@ to create devices with respective mappings for the ATARAID sets discovered.")
|
|||
(define-public libblockdev
|
||||
(package
|
||||
(name "libblockdev")
|
||||
(version "2.18")
|
||||
(version "2.20")
|
||||
(source (origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a3kpdr9s6g7nfibazi92i27wbv692b5gm2r24gimis6l6jq4pbh"))))
|
||||
"092snk5jyv48na4d46v1ckiy859zwpb3r0ivnxv3km5vzsp76y7q"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("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
|
||||
plugin, possibly with multiple implementations (e.g. using LVM CLI or the new
|
||||
LVM D-Bus API).")
|
||||
;; XXX: Copying says LGPL2.1, but the source files with license
|
||||
;; information are GPL2+.
|
||||
(license license:gpl2+)))
|
||||
(license license:lgpl2.1+)))
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
|
||||
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3033,7 +3034,7 @@ in @code{html-mode}.")
|
|||
(define-public emacs-slime
|
||||
(package
|
||||
(name "emacs-slime")
|
||||
(version "2.20")
|
||||
(version "2.22")
|
||||
(source
|
||||
(origin
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
|
@ -3043,7 +3044,7 @@ in @code{html-mode}.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
|
||||
"07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
|
||||
(build-system emacs-build-system)
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)))
|
||||
|
@ -4306,14 +4307,14 @@ strings, and code folding.")
|
|||
(define-public emacs-nodejs-repl
|
||||
(package
|
||||
(name "emacs-nodejs-repl")
|
||||
(version "0.1.6")
|
||||
(version "0.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/abicky/nodejs-repl.el"
|
||||
"/archive/" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9"))
|
||||
"0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/abicky/nodejs-repl.el")
|
||||
|
@ -5199,11 +5200,11 @@ extensions.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-evil-collection
|
||||
(let ((commit "b55ae90f367e103e6568ae00779a8a51c68a0104")
|
||||
(revision "3"))
|
||||
(let ((commit "abc9dd60f71ccc1f24803a12d853f84b4a8b258c")
|
||||
(revision "4"))
|
||||
(package
|
||||
(name "emacs-evil-collection")
|
||||
(version (git-version "20180911" revision commit))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -5212,7 +5213,7 @@ extensions.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n7bzi5s7rqi78l1424sxvsk2g46z7ksq02xx5jrmqymnij90jml"))))
|
||||
"0c9l93vrsl6kzx8gg305dq8qkb2dr3s10fww7lh382911pdmsh7v"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-evil" ,emacs-evil)))
|
||||
|
@ -5928,8 +5929,20 @@ Yasnippet.")
|
|||
(base32
|
||||
"01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("recutils" ,recutils)))
|
||||
(propagated-inputs
|
||||
`(("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")
|
||||
(synopsis "Helm System Packages is an interface to your package manager")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-xelb")
|
||||
(version "0.15")
|
||||
(version "0.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/xelb-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz"))))
|
||||
"03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
|
||||
(build-system emacs-build-system)
|
||||
;; The following functions and variables needed by emacs-xelb are
|
||||
;; not included in emacs-minimal:
|
||||
|
@ -6614,7 +6627,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
(define-public emacs-exwm
|
||||
(package
|
||||
(name "emacs-exwm")
|
||||
(version "0.19")
|
||||
(version "0.20")
|
||||
(synopsis "Emacs X window manager")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -6622,8 +6635,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))
|
||||
(patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch"))))
|
||||
"0nhhzbkm0mkj7sd1dy2c19cmn56gyaj9nl8kgy86h4fp63hjaz04"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-xelb" ,emacs-xelb)))
|
||||
|
@ -11344,27 +11356,25 @@ the GIF result.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-google-translate
|
||||
(let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974"))
|
||||
(package
|
||||
(name "emacs-google-translate")
|
||||
(version (git-version "0.11.14" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atykhonov/google-translate")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/atykhonov/google-translate")
|
||||
(synopsis "Emacs interface to Google Translate")
|
||||
(description
|
||||
"This packages provides an Emacs interface to the Google Translate
|
||||
(package
|
||||
(name "emacs-google-translate")
|
||||
(version "0.11.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/atykhonov/google-translate/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zxvfagbaf5mxi528mz33c8vxdk86wj0xx5y2jfy97wi8dzrwn3g"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/atykhonov/google-translate")
|
||||
(synopsis "Emacs interface to Google Translate")
|
||||
(description
|
||||
"This packages provides an Emacs interface to the Google Translate
|
||||
on-line service.")
|
||||
(license license:gpl3+))))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-helm-company
|
||||
(let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d"))
|
||||
|
@ -12355,3 +12365,24 @@ with a handful of easy tweaks.
|
|||
scratch, and you think the Spacemacs theme looks good.
|
||||
@end itemize")
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "linsmith")
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -41,33 +42,38 @@
|
|||
(define-public opensm
|
||||
(package
|
||||
(name "opensm")
|
||||
(version "3.3.20")
|
||||
(version "3.3.21")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://www.openfabrics.org/downloads/management/opensm-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32 "162sg1w7kgy8ayl8a4dcbrfacmnfy2lr9a2yjyq0k65rmd378zg1"))))
|
||||
(string-append "https://github.com/linux-rdma/opensm/releases/download/"
|
||||
version "/opensm-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0j4vp118w1l47vs4had46ynybklyacxjlya0r15jg0y01l4j9l2h"))))
|
||||
(build-system gnu-build-system)
|
||||
(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
|
||||
`(("rdma-core" ,rdma-core)))
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-static")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'doc
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((base (assoc-ref outputs "out"))
|
||||
(doc (string-append base "/share/doc/"
|
||||
,name "-" ,version)))
|
||||
(for-each (lambda (file)
|
||||
(install-file file doc))
|
||||
(append (list "AUTHORS" "COPYING" "ChangeLog")
|
||||
(find-files "doc")))
|
||||
(find-files "doc"))
|
||||
#t))))))
|
||||
(home-page "https://www.openfabrics.org/")
|
||||
(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
|
||||
for Inria, a public research institute in computer science and mathematics.")
|
||||
(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, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -194,6 +195,58 @@ TTF (TrueType/OpenType Font) files.")
|
|||
(license license:bsd-2)
|
||||
(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
|
||||
(let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
|
||||
(revision "1"))
|
||||
|
|
|
@ -1080,7 +1080,7 @@ games.")
|
|||
(define-public godot
|
||||
(package
|
||||
(name "godot")
|
||||
(version "3.0.4")
|
||||
(version "3.0.6")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1089,7 +1089,7 @@ games.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0i4ssfb6igga9zwvsmahrnasx9cyqrsd6mlmssjgc482fy9q2kz4"))
|
||||
"0g64h0x8dlv6aa9ggfcidk2mknkfl5li7z1phcav8aqp9srj8avf"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -3658,7 +3658,7 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
(define-public hyperrogue
|
||||
(package
|
||||
(name "hyperrogue")
|
||||
(version "10.4j")
|
||||
(version "10.4t")
|
||||
;; When updating this package, be sure to update the "hyperrogue-data"
|
||||
;; origin in native-inputs.
|
||||
(source (origin
|
||||
|
@ -3669,11 +3669,12 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
"-src.tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0909p4xvbi1c2jc5rdgrf8b1c60fmsaapabsi6yyglh5znkf0k27"))))
|
||||
"0phqhmnzmc16a23qb4fkil0flzb86kibdckf1r35nc3l0k4193nn"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
#:make-flags '("CXXFLAGS=-std=c++11")
|
||||
#:make-flags '("HYPERROGUE_USE_GLEW=1"
|
||||
"HYPERROGUE_USE_PNG=1")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(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)))
|
||||
(substitute* music-file
|
||||
(("\\*/")
|
||||
(string-append share-dir "/sounds/"))))
|
||||
;; Fix Makefile.
|
||||
(substitute* "Makefile"
|
||||
(("g\\+\\+ langen.cpp")
|
||||
"g++ langen.cpp ${CXXFLAGS}")
|
||||
(("savepng.c") "savepng.cpp"))
|
||||
(string-append share-dir "/sounds/")))
|
||||
(substitute* "sound.cpp"
|
||||
(("musicfile = \"\"")
|
||||
(string-append "musicfile = \""
|
||||
share-dir "/" music-file "\"")))
|
||||
;; Disable build machine CPU optimizations and warnings treated
|
||||
;; as errors.
|
||||
(substitute* "Makefile"
|
||||
(("-march=native") "")
|
||||
(("-Werror") "")))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
|
@ -3709,7 +3714,7 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
(bin (string-append out "/bin"))
|
||||
(share-dir (string-append out "/share/hyperrogue")))
|
||||
(mkdir-p bin)
|
||||
(copy-file "hyper" (string-append bin "/hyperrogue"))
|
||||
(install-file "hyperrogue" bin)
|
||||
(install-file "hyperrogue-music.txt" share-dir))
|
||||
#t))
|
||||
(add-after 'install 'install-data
|
||||
|
@ -3741,7 +3746,7 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
"-win.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0w61iv2rn93hi0q3hxyyyf9xcr8vi9zd7fjvpz5adpgf94jm3zsc"))))
|
||||
"1xd9v8zzgi8m5ar8g4gy1xx5zqwidz3gn1knz0lwib3kbxx4drpg"))))
|
||||
("unzip" ,unzip)))
|
||||
(inputs
|
||||
`(("font-dejavu" ,font-dejavu)
|
||||
|
@ -4397,7 +4402,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
|
|||
(define-public crawl
|
||||
(package
|
||||
(name "crawl")
|
||||
(version "0.21.0")
|
||||
(version "0.22.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -4411,7 +4416,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
|
|||
version "-nodeps.tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0mmnkch8s9l7dh136yjvcyjr0vmyzv7z370rlcyir91qz6gg82n1"))
|
||||
"1qc90wwbxvjzqq66n8kfr0a2ny7sfvv2n84si67jiv2887d0ws6k"))
|
||||
(patches (search-patches "crawl-upgrade-saves.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -305,3 +306,67 @@ brushstrokes which is used by MyPaint and GIMP.")
|
|||
MyPaint.")
|
||||
(home-page "https://github.com/Jehan/mypaint-brushes")
|
||||
(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
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; 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 © 2015 Paul van der Walt <paul@denknerd.org>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -67,7 +67,8 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#: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
|
||||
(package
|
||||
|
@ -458,6 +459,13 @@ strong randomness, and more. It is implemented using the foreign function
|
|||
interface (FFI) of Guile.")
|
||||
(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
|
||||
(package
|
||||
(name "python-gpg")
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; 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 © 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 © 2017 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
|
||||
|
@ -620,8 +620,9 @@ security standards.")
|
|||
("zip" ,zip)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("rust" ,rust)
|
||||
("cargo" ,rust "cargo")
|
||||
;; Icecat 60 checkes for rust>=1.24
|
||||
`(("rust" ,rust-1.24)
|
||||
("cargo" ,rust-1.24 "cargo")
|
||||
("perl" ,perl)
|
||||
("python" ,python-2) ; Python 3 not supported
|
||||
("python2-pysqlite" ,python2-pysqlite)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
|
@ -77,6 +77,10 @@
|
|||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#: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
|
||||
(modify-phases %standard-phases
|
||||
(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
|
||||
garbage collection, various safety features, and concurrent programming features
|
||||
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)))
|
||||
|
||||
(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")
|
||||
"/include")
|
||||
(string-append "--x-libraries=" (assoc-ref %build-inputs "libx11")
|
||||
"/lib"))
|
||||
"/lib")
|
||||
"--disable-examples")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autoreconf
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
;; let's call configure from configure phase and not now
|
||||
(substitute* "autogen.sh" (("./configure") "# ./configure"))
|
||||
(zero? (system* "sh" "autogen.sh")))))))
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("libtool" ,libtool)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("bash" ,bash)))
|
||||
("automake" ,automake)))
|
||||
(inputs
|
||||
`(("libx11" ,libx11)
|
||||
("freetype" ,freetype)
|
||||
|
|
|
@ -227,6 +227,7 @@ for the GStreamer multimedia library.")
|
|||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gst-plugins-base" ,gst-plugins-base)
|
||||
("jack" ,jack-1)
|
||||
("lame" ,lame)
|
||||
("libavc1394" ,libavc1394)
|
||||
("libcaca" ,libcaca)
|
||||
("libdv" ,libdv)
|
||||
|
@ -236,10 +237,12 @@ for the GStreamer multimedia library.")
|
|||
("libshout" ,libshout)
|
||||
("libsoup" ,libsoup)
|
||||
("libvpx" ,libvpx)
|
||||
("mpg123" ,mpg123)
|
||||
("orc" ,orc)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("speex" ,speex)
|
||||
("taglib" ,taglib)
|
||||
("twolame" ,twolame)
|
||||
("wavpack" ,wavpack)))
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin")
|
||||
|
@ -320,7 +323,6 @@ developers consider to have good quality code and correct functionality.")
|
|||
("libxml2" ,libxml2)
|
||||
("lrdf" ,lrdf)
|
||||
("mesa" ,mesa)
|
||||
("mpg123" ,mpg123)
|
||||
("neon" ,neon)
|
||||
("openal" ,openal)
|
||||
("openexr" ,openexr)
|
||||
|
@ -357,13 +359,10 @@ par compared to the rest.")
|
|||
(inputs
|
||||
`(("gst-plugins-base" ,gst-plugins-base)
|
||||
("liba52" ,liba52)
|
||||
("lame" ,lame)
|
||||
("libcdio" ,libcdio)
|
||||
("twolame" ,twolame)
|
||||
("libmpeg2" ,libmpeg2)
|
||||
("libdvdread" ,libdvdread)
|
||||
("libx264" ,libx264)
|
||||
("mpg123" ,mpg123)
|
||||
;; TODO:
|
||||
;; * opencore-amr (for the AMR-NB decoder and encoder and the
|
||||
;; AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; 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/")
|
||||
(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
|
||||
(package (inherit guile-2.0)
|
||||
(name "guile")
|
||||
|
@ -292,39 +307,14 @@ without requiring the source code to be rewritten.")
|
|||
(package
|
||||
(inherit guile-2.2)
|
||||
(name "guile-next")
|
||||
(version (git-version "2.99" revision commit))
|
||||
(version "2.9.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.savannah.gnu.org/git/guile.git")
|
||||
(commit commit)))
|
||||
(inherit (package-source guile-2.2))
|
||||
(uri (string-append "https://alpha.gnu.org/gnu/guile/guile-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c2xy5cflg0hws48914rz3z8mdmf8w3lblfic0kxnymcmdv9cbhv"))
|
||||
(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))))))
|
||||
"0iba93yqn6mvgid0rfsrg4amym36pg9m8cqdplxsy222blrj9gh1"))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "GUILE_LOAD_PATH")
|
||||
|
@ -332,7 +322,9 @@ without requiring the source code to be rewritten.")
|
|||
(search-path-specification
|
||||
(variable "GUILE_LOAD_COMPILED_PATH")
|
||||
(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)
|
||||
(package
|
||||
|
@ -1143,6 +1135,9 @@ Guile's foreign function interface.")
|
|||
"This package provides Guile bindings to the SQLite database system.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile2.0-sqlite3
|
||||
(package-for-guile-2.0 guile-sqlite3))
|
||||
|
||||
(define-public haunt
|
||||
(package
|
||||
(name "haunt")
|
||||
|
@ -1161,13 +1156,15 @@ Guile's foreign function interface.")
|
|||
#:tests? #f ; test suite is non-deterministic :(
|
||||
#:phases (modify-phases %standard-phases
|
||||
(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
|
||||
;; modules.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(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)
|
||||
(("." ".." version)
|
||||
(let ((modules (string-append site "/" version))
|
||||
|
@ -1176,9 +1173,19 @@ Guile's foreign function interface.")
|
|||
"/site-ccache")))
|
||||
(wrap-program (string-append bin "/haunt")
|
||||
`("GUILE_LOAD_PATH" ":" prefix
|
||||
(,modules))
|
||||
(,modules
|
||||
,@(map (lambda (dep)
|
||||
(string-append dep
|
||||
"/share/guile/site/"
|
||||
version))
|
||||
deps)))
|
||||
`("GUILE_LOAD_COMPILED_PATH" ":" prefix
|
||||
(,compiled-modules)))
|
||||
(,compiled-modules
|
||||
,@(map (lambda (dep)
|
||||
(string-append dep "/lib/guile/"
|
||||
version
|
||||
"/site-ccache"))
|
||||
deps))))
|
||||
#t)))))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -47,14 +47,14 @@
|
|||
;; The 7 release series has an incompatible API, while the 6 series is still
|
||||
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
|
||||
;; users are ready for the 7-series API.
|
||||
(version "6.9.10-10")
|
||||
(version "6.9.10-12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://imagemagick/ImageMagick-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b0wwxm6mgaxq0i0hazxcpbk7xd5j1329r1vk9h07iz4v3k8i57h"))))
|
||||
"0ri96yqihdk921k5qx23y2sbhraxbp2avdccxiy6m3srjkirym2l"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; 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 © 2018 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -22,6 +23,7 @@
|
|||
(define-module (gnu packages kde)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
|
@ -47,8 +49,87 @@
|
|||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages video)
|
||||
#: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
|
||||
(package
|
||||
(name "kdevelop")
|
||||
|
@ -236,7 +317,7 @@ plugins, as well as code to create plugins, or complete applications.")
|
|||
(define-public krita
|
||||
(package
|
||||
(name "krita")
|
||||
(version "4.1.3")
|
||||
(version "4.1.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -245,7 +326,7 @@ plugins, as well as code to create plugins, or complete applications.")
|
|||
"/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d546dxs552z0pxnaka1jm7ksravw17f777wf593z0pl4ds8dgdx"))))
|
||||
"1by8p8ifdp03f05bhg8ygdd1j036anfpjjnzbx63l2fbmy9k6q10"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#: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.
|
||||
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
|
||||
|
||||
(define %linux-libre-version "4.18.12")
|
||||
(define %linux-libre-hash "1mcnb1mm7m6i9s591c3kx0f1vbzhbl3w92w137swcm9zifqpci5r")
|
||||
(define %linux-libre-version "4.18.14")
|
||||
(define %linux-libre-hash "1gwwx8l283w8v1zylw2haqahvjns5dzqxx9li2586nnl8cfmfnwc")
|
||||
|
||||
(define %linux-libre-4.18-patches
|
||||
(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
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define %linux-libre-4.14-version "4.14.74")
|
||||
(define %linux-libre-4.14-hash "0cxyx2yinnc8q0hmhb0swjgdz3s0ry7wxzyqss9f2i74xjjz4rm0")
|
||||
(define %linux-libre-4.14-version "4.14.76")
|
||||
(define %linux-libre-4.14-hash "1y5zqf84ngb6f5f85xpd4bdy6mlxr52x19bx3mdrp82awc9fvr7q")
|
||||
|
||||
(define-public linux-libre-4.14
|
||||
(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))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.131"
|
||||
"11pxwl7dmisbf2szg9qzkvhlpk68clh5l478n7b62q7hd8j3hxlv"
|
||||
(make-linux-libre "4.9.133"
|
||||
"1vr94czdv5alzsgm2k1r6wqm01r2zafrayjn10l6kdr4g7aga488"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.159"
|
||||
"12wrhni1ikmakwv55cgzsznx9llzp82irsisbjjs7bc8z2hzwr6l"
|
||||
(make-linux-libre "4.4.161"
|
||||
"1q6bsndpjgw72mybhl5l8vrxs4mimg6821bjgi1pjkxbc7nd921b"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
@ -962,6 +962,8 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
|
|||
(substitute* "strace.c"
|
||||
(("/bin/sh") (which "sh")))
|
||||
#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>.
|
||||
#:parallel-tests? #f)) ; undeterministic failures
|
||||
(native-inputs `(("perl" ,perl)))
|
||||
|
@ -2667,14 +2669,14 @@ isolation or root privileges.")
|
|||
(define-public hdparm
|
||||
(package
|
||||
(name "hdparm")
|
||||
(version "9.55")
|
||||
(version "9.56")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/" name "/" name "/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ivdvrzimaayiq03by8mcq0mhmdljndj06h012zkdpw34irnpixm"))))
|
||||
"1np42qyhb503khvacnjcl3hb1dqly68gj0a1xip3j5qhbxlyvybg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (let ((out (assoc-ref %outputs "out")))
|
||||
|
@ -3626,14 +3628,14 @@ The following service daemons are also provided:
|
|||
(define-public perftest
|
||||
(package
|
||||
(name "perftest")
|
||||
(version "4.2-0.8")
|
||||
(version "4.4-0.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/linux-rdma/perftest/releases/download/V"
|
||||
version "/perftest-" version ".g0e24e67.tar.gz"))
|
||||
(uri (string-append "https://github.com/linux-rdma/perftest/releases/download/v"
|
||||
version "/perftest-" version ".g0927198.tar.gz"))
|
||||
(sha256
|
||||
(base32 "1r3pxn7cx3grb8myb4q1b0pk447pc06cifd0v7ym13xw00372dlx"))))
|
||||
(base32 "11ix4h0rrmqqyi84y55a9xnkvwsmwq0sywr46hvxzm4rqz4ma8vq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -3737,15 +3739,16 @@ such as frequency and voltage scaling.")
|
|||
(define-public haveged
|
||||
(package
|
||||
(name "haveged")
|
||||
(version "1.9.2")
|
||||
(version "1.9.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.issihosts.com/haveged/haveged-"
|
||||
version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jirka-h/haveged.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0w5ypz6451msckivjriwyw8djydlwffam7x23xh626s2vzdrlzgp"))))
|
||||
(base32 "1hrwzjd4byq4fdrg8svww3d8x449k80jxxrjy9v6jvzhfv19rvxr"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.issihosts.com/haveged")
|
||||
(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
|
||||
standard mechanisms for filling the entropy pool may not be sufficient for
|
||||
systems with high needs or limited user interaction, such as headless servers.
|
||||
|
||||
@command{haveged} runs as a privileged daemon, harvesting randomness from the
|
||||
indirect effects of hardware events on hidden processor state using the HArdware
|
||||
Volatile Entropy Gathering and Expansion (HAVEGE) algorithm. It tunes itself to
|
||||
its environment and provides the same built-in test suite for the output stream
|
||||
as used on certified hardware security devices.")
|
||||
Volatile Entropy Gathering and Expansion (@dfn{HAVEGE}) algorithm. It tunes
|
||||
itself to its environment and provides the same built-in test suite for the
|
||||
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:non-copyleft "file://nist/packtest.c")
|
||||
license:public-domain ; nist/dfft.c
|
||||
|
@ -4248,12 +4256,14 @@ Light is the successor of lightscript.")
|
|||
(setenv "TLP_SHCPL"
|
||||
(string-append out "/share/bash-completion/completions"))
|
||||
(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
|
||||
(add-before 'install 'fix-installation
|
||||
(lambda _
|
||||
;; Stop the Makefile from trying to create system directories.
|
||||
(substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#"))))
|
||||
(substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(invoke "make" "install-tlp" "install-man")
|
||||
|
@ -4287,7 +4297,8 @@ Light is the successor of lightscript.")
|
|||
"pciutils"
|
||||
"rfkill"
|
||||
"wireless-tools"))))))
|
||||
bin-files)))))))
|
||||
bin-files)
|
||||
#t))))))
|
||||
(home-page "http://linrunner.de/en/tlp/tlp.html")
|
||||
(synopsis "Power management tool for Linux")
|
||||
(description "TLP is a power management tool for Linux. It comes with
|
||||
|
|
|
@ -29,41 +29,38 @@
|
|||
#:use-module (gnu packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#: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 git-download)
|
||||
#:use-module (guix hg-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system asdf)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages ed)
|
||||
#: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 multiprecision)
|
||||
#: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 readline)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages libsigsegv)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages admin)
|
||||
#: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 perl)
|
||||
#: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 xorg)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
|
@ -256,28 +253,31 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
|
|||
(define-public clisp
|
||||
(package
|
||||
(name "clisp")
|
||||
(version "2.49-60")
|
||||
(version "2.49-92")
|
||||
(source
|
||||
(origin
|
||||
(method hg-fetch)
|
||||
(uri (hg-reference
|
||||
(url "http://hg.code.sf.net/p/clisp/clisp")
|
||||
(changeset "clisp_2_49_60-2017-06-25")))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/gnu-clisp/clisp")
|
||||
(commit "clisp-2.49.92-2018-02-18")))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0qjv3z274rbdmb941hy03hl63f4z7bmci234f8dyz4skgfr82d3i"))
|
||||
(patches (search-patches "clisp-glibc-2.26.patch"
|
||||
"clisp-remove-failing-test.patch"))))
|
||||
(base32 "0k2dmgl0miz3767iks4p0mvp6xw0ysyxhjpklyh11j010rmh6hqb"))
|
||||
(patches (search-patches "clisp-remove-failing-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libffcall" ,libffcall)
|
||||
("ncurses" ,ncurses)
|
||||
("readline" ,readline)
|
||||
("libsigsegv" ,libsigsegv)))
|
||||
(arguments
|
||||
'(#:configure-flags '("--enable-portability"
|
||||
"--with-dynamic-ffi"
|
||||
"--with-dynamic-modules"
|
||||
"--with-module=rawsock")
|
||||
`(#:configure-flags '(,@(if (string-prefix? "armhf-linux"
|
||||
(or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("CFLAGS=-falign-functions=4")
|
||||
'())
|
||||
"--with-dynamic-ffi"
|
||||
"--with-dynamic-modules"
|
||||
"--with-module=rawsock")
|
||||
#:build #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
@ -288,6 +288,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
|
|||
;; many places where our automatic patching misses them. Therefore
|
||||
;; we do the following, in this early (post-unpack) phase, to solve
|
||||
;; 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")
|
||||
(("/bin/sh") "sh"))
|
||||
(substitute* '("src/clisp-link.in")
|
||||
|
@ -295,7 +299,7 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
|
|||
#t)))
|
||||
;; Makefiles seem to have race conditions.
|
||||
#:parallel-build? #f))
|
||||
(home-page "http://www.clisp.org/")
|
||||
(home-page "https://clisp.sourceforge.io/")
|
||||
(synopsis "A Common Lisp implementation")
|
||||
(description
|
||||
"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"
|
||||
"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
|
||||
(package
|
||||
(name "units")
|
||||
|
|
|
@ -249,14 +249,14 @@ access to servers running the Discord protocol.")
|
|||
(define-public hexchat
|
||||
(package
|
||||
(name "hexchat")
|
||||
(version "2.14.1")
|
||||
(version "2.14.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18h3l34zmazjlfx3irg7k7swppa62ad9ffbl0j3ry8p2xfyf8cmh"))))
|
||||
"064nq151nzsljv97dmkifyl162d2738vbgvm1phx7yv04pjvk4kp"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs `(("gettext" ,gettext-minimal)
|
||||
("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
|
||||
between users and to highlight messages. It checks spelling using available
|
||||
dictionaries. HexChat can be extended with multiple addons.")
|
||||
(home-page "http://hexchat.net/")
|
||||
(home-page "https://hexchat.net/")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public ngircd
|
||||
|
@ -873,7 +873,7 @@ protocols.")
|
|||
(define-public c-toxcore
|
||||
(package
|
||||
(name "c-toxcore")
|
||||
(version "0.2.7")
|
||||
(version "0.2.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -882,7 +882,7 @@ protocols.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lcw979zakyb5kzy8yfk87js3bzfz3k2jxidda6ga6ljdnqdpxmy"))))
|
||||
"0qlkimlvbd24nlj7w9b5rpz1r807magqxmfylc1mlxsqhmfi5zj7"))))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
|
||||
; for now.
|
||||
|
|
|
@ -1777,6 +1777,42 @@ programming methods as well as for realizing complex systems for large-scale
|
|||
projects.")
|
||||
(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
|
||||
(package
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "python-mutagen")
|
||||
|
|
|
@ -581,7 +581,7 @@ of the same name.")
|
|||
(define-public wireshark
|
||||
(package
|
||||
(name "wireshark")
|
||||
(version "2.6.3")
|
||||
(version "2.6.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -589,7 +589,7 @@ of the same name.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1v538h02y8avwy3cr11xz6wkyf9xd8qva4ng4sl9f2fw4skahn6i"))))
|
||||
"0qf81dk726sdsmjqa9nd251j1cwvzkyb4hrlp6w4iwa3cdz00sx0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("c-ares" ,c-ares)
|
||||
("glib" ,glib)
|
||||
|
|
|
@ -820,7 +820,8 @@ libpanel, librsvg and quartz.")
|
|||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
;; '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
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((doc (string-append (assoc-ref outputs "doc")
|
||||
|
@ -829,21 +830,19 @@ libpanel, librsvg and quartz.")
|
|||
;; This file needs write-permissions, because it's
|
||||
;; overwritten by 'docs' during documentation generation.
|
||||
(chmod "src/strings.ml" #o600)
|
||||
(and (zero? (system* "make" "docs"
|
||||
"TEXDIRECTIVES=\\\\draftfalse"))
|
||||
(begin
|
||||
(for-each (lambda (f)
|
||||
(install-file f doc))
|
||||
(map (lambda (ext)
|
||||
(string-append
|
||||
"doc/unison-manual." ext))
|
||||
;; Install only html documentation,
|
||||
;; since the build is currently
|
||||
;; non-reproducible with the ps, pdf,
|
||||
;; and dvi docs.
|
||||
'(;;"ps" "pdf" "dvi"
|
||||
"html")))
|
||||
#t))))))))
|
||||
(invoke "make" "docs"
|
||||
"TEXDIRECTIVES=\\\\draftfalse")
|
||||
(for-each (lambda (f)
|
||||
(install-file f doc))
|
||||
(map (lambda (ext)
|
||||
(string-append "doc/unison-manual." ext))
|
||||
;; Install only html documentation,
|
||||
;; since the build is currently
|
||||
;; non-reproducible with the ps, pdf,
|
||||
;; and dvi docs.
|
||||
'(;; "ps" "pdf" "dvi"
|
||||
"html")))
|
||||
#t))))))
|
||||
(home-page "https://www.cis.upenn.edu/~bcpierce/unison/")
|
||||
(synopsis "File synchronizer")
|
||||
(description
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
|
||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -101,8 +102,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "0.15.0")
|
||||
(commit "1d0be47ab680db938ac8da1ee65e1de91e198f67")
|
||||
(revision 5))
|
||||
(commit "f9a8fce10f2d99efec7cb1dd0f6c5f0df9d1b2df")
|
||||
(revision 6))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -118,7 +119,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"19cn4ndmr9cqd7qh6w3nchbmdpaawdl9kc6g0v6g680vzcja417k"))
|
||||
"1733d5id0h44rrkyj9xw4fcqr1wawcfi8igpgk5wsn1iq4qqwv5f"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -232,13 +233,13 @@
|
|||
(map (cut string-append <>
|
||||
"/share/guile/site/"
|
||||
effective)
|
||||
deps)
|
||||
(delete #f deps))
|
||||
":"))
|
||||
(gopath (string-join
|
||||
(map (cut string-append <>
|
||||
"/lib/guile/" effective
|
||||
"/site-ccache")
|
||||
deps)
|
||||
(delete #f deps))
|
||||
":")))
|
||||
|
||||
(wrap-program (string-append out "/bin/guix")
|
||||
|
@ -345,12 +346,14 @@ the Nix package manager.")
|
|||
"install-nodist_pkglibexecSCRIPTS")
|
||||
|
||||
;; We need to tell 'guix-daemon' which 'guix' command to use.
|
||||
;; Here we use a questionable hack where we hard-code
|
||||
;; "~root/.config", which could be wrong (XXX).
|
||||
;; Here we use a questionable hack where we hard-code root's
|
||||
;; 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")))
|
||||
(substitute* (find-files (string-append out "/libexec"))
|
||||
(("exec \".*/bin/guix\"")
|
||||
"exec ~root/.config/guix/current/bin/guix"))
|
||||
"exec /var/guix/profiles/per-user/root/current-guix/bin/guix"))
|
||||
#t)))
|
||||
(delete 'wrap-program)))))))
|
||||
|
||||
|
@ -363,10 +366,29 @@ the Nix package manager.")
|
|||
,@(alist-delete "guile" (package-inputs guix))))
|
||||
(propagated-inputs
|
||||
`(("gnutls" ,gnutls/guile-2.0)
|
||||
("guile-gcrypt" ,guile2.0-gcrypt)
|
||||
("guile-json" ,guile2.0-json)
|
||||
("guile-sqlite3" ,guile2.0-sqlite3)
|
||||
("guile-ssh" ,guile2.0-ssh)
|
||||
("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)
|
||||
"Return true if FILE is likely a source file, false if it is a typical
|
||||
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,
|
||||
and crawl would never upgrade saves.
|
||||
|
||||
--- a/source/database.cc 2016-05-31 09:56:08.000000000 +0200
|
||||
+++ a/source/database.cc 2017-06-05 03:00:19.270632107 +0200
|
||||
diff -ur a/source/database.cc b/source/database.cc
|
||||
--- 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 @@
|
||||
#include "syscalls.h"
|
||||
#include "threads.h"
|
||||
|
@ -23,16 +24,16 @@ and crawl would never upgrade saves.
|
|||
TextDB *_parent;
|
||||
const char* lang() { return _parent ? Options.lang_name : 0; }
|
||||
public:
|
||||
@@ -165,7 +167,7 @@
|
||||
@@ -163,7 +165,7 @@
|
||||
|
||||
TextDB::TextDB(const char* db_name, const char* dir, ...)
|
||||
: _db_name(db_name), _directory(dir),
|
||||
TextDB::TextDB(const char* db_name, const char* dir, vector<string> files)
|
||||
: _db_name(db_name), _directory(dir), _input_files(files),
|
||||
- _db(nullptr), timestamp(""), _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),
|
||||
_directory(parent->_directory + Options.lang_name + "/"),
|
||||
_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;
|
||||
|
||||
timestamp = _query_database(*this, "TIMESTAMP", false, false, true);
|
||||
|
@ -51,7 +52,7 @@ and crawl would never upgrade saves.
|
|||
if (timestamp.empty())
|
||||
return false;
|
||||
|
||||
@@ -245,6 +250,9 @@
|
||||
@@ -229,6 +234,9 @@
|
||||
string ts;
|
||||
bool no_files = true;
|
||||
|
||||
|
@ -61,7 +62,7 @@ and crawl would never upgrade saves.
|
|||
for (const string &file : _input_files)
|
||||
{
|
||||
string full_input_path = _directory + file;
|
||||
@@ -261,7 +269,7 @@
|
||||
@@ -245,7 +253,7 @@
|
||||
ts += buf;
|
||||
}
|
||||
|
||||
|
@ -70,7 +71,7 @@ and crawl would never upgrade saves.
|
|||
{
|
||||
// No point in empty databases, although for simplicity keep ones
|
||||
// for disappeared translations for now.
|
||||
@@ -321,7 +329,10 @@
|
||||
@@ -313,7 +321,10 @@
|
||||
_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 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; 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}.")
|
||||
(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
|
||||
(package
|
||||
(name "python-furl")
|
||||
|
|
|
@ -149,6 +149,7 @@
|
|||
(package
|
||||
(name "python2")
|
||||
(version "2.7.15")
|
||||
(replacement python-2/fixed)
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -315,6 +316,18 @@ data types.")
|
|||
;; Current 2.x version.
|
||||
(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
|
||||
;; Both 2.x and 3.x used to be called "python". In commit
|
||||
;; a7714d42de2c3082f3609d1e63c83d703fb39cf9 (March 2018), we renamed the
|
||||
|
@ -328,6 +341,7 @@ data types.")
|
|||
(package (inherit python-2)
|
||||
(name "python")
|
||||
(version "3.7.0")
|
||||
(replacement python-3/fixed)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.python.org/ftp/python/"
|
||||
|
@ -399,6 +413,24 @@ data types.")
|
|||
;; Current 3.x version.
|
||||
(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.
|
||||
(define-public python python-3)
|
||||
|
||||
|
@ -406,7 +438,7 @@ data types.")
|
|||
;; Python (Tk -> libxcb -> Python.)
|
||||
|
||||
(define-public python2-minimal
|
||||
(package (inherit python-2)
|
||||
(package/inherit python-2
|
||||
(name "python2-minimal")
|
||||
(outputs '("out"))
|
||||
|
||||
|
@ -417,7 +449,7 @@ data types.")
|
|||
("zlib" ,zlib)))))
|
||||
|
||||
(define-public python-minimal
|
||||
(package (inherit python)
|
||||
(package/inherit python
|
||||
(name "python-minimal")
|
||||
(outputs '("out"))
|
||||
|
||||
|
@ -429,8 +461,7 @@ data types.")
|
|||
("zlib" ,zlib)))))
|
||||
|
||||
(define-public python-debug
|
||||
(package
|
||||
(inherit python)
|
||||
(package/inherit python
|
||||
(name "python-debug")
|
||||
(outputs '("out" "debug"))
|
||||
(build-system gnu-build-system)
|
||||
|
@ -449,7 +480,7 @@ for more information.")))
|
|||
(define* (wrap-python3 python
|
||||
#:optional
|
||||
(name (string-append (package-name python) "-wrapper")))
|
||||
(package (inherit python)
|
||||
(package/inherit python
|
||||
(name name)
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
|
@ -1653,7 +1684,7 @@ software.")
|
|||
(define-public python-mimeparse
|
||||
(package
|
||||
(name "python-mimeparse")
|
||||
(version "0.1.4")
|
||||
(version "1.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1662,10 +1693,14 @@ software.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w"))))
|
||||
"0y2g6cl660bpz11srgqyvvm8gmywpgyx8g0xfvbiyr0af0yv1r3n"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no setup.py test command
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "./mimeparse_test.py"))))))
|
||||
(home-page
|
||||
"https://github.com/dbtsai/python-mimeparse")
|
||||
(synopsis "Python library for parsing MIME types")
|
||||
|
@ -7254,9 +7289,7 @@ config files.")
|
|||
(version "0.12.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.io/packages/source/C/ConfigArgParse/"
|
||||
"ConfigArgParse-" version ".tar.gz"))
|
||||
(uri (pypi-uri "ConfigArgParse" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98"))))
|
||||
|
@ -11350,7 +11383,7 @@ editors.")
|
|||
(define-public python2-backports-functools-lru-cache
|
||||
(package
|
||||
(name "python2-backports-functools-lru-cache")
|
||||
(version "1.3")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -11358,7 +11391,7 @@ editors.")
|
|||
(uri (pypi-uri "backports.functools_lru_cache" version))
|
||||
(sha256
|
||||
(base32
|
||||
"158ysf2hb0q4p4695abfiym9x1ywg0dgh8a3apd7gqaaxjy22jj4"))))
|
||||
"06jgv8gib4fhky0p5cmxdghvsgjyzcdgk48k8pxb1ccf11znk64x"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python2-setuptools-scm" ,python2-setuptools-scm)))
|
||||
|
|
|
@ -194,25 +194,6 @@ a focus on simplicity and productivity.")
|
|||
(("/bin/sh") (which "sh")))
|
||||
#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
|
||||
(package
|
||||
(name "ruby-highline")
|
||||
|
@ -3785,7 +3766,7 @@ A modified copy of yajl is used, and included in the package.")
|
|||
(define-public ruby-yard
|
||||
(package
|
||||
(name "ruby-yard")
|
||||
(version "0.9.6")
|
||||
(version "0.9.16")
|
||||
(source
|
||||
(origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rsz4bghgx7fryzyhlz8wlnd2m9xgyvf1xhrq58mnzfrrfm41bdg"))))
|
||||
"0sqpbayy9sb406jh0zqg6qha1xds863qz9531dh6vp58hc00clfq"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -5692,27 +5673,6 @@ support the tests found in Prawn, a pure Ruby PDF generation library.")
|
|||
functionality from Prawn.")
|
||||
(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
|
||||
(package
|
||||
(name "ruby-prawn")
|
||||
|
|
|
@ -735,7 +735,8 @@ measuring and checking the width of strings, with support east asian text.")
|
|||
unzip
|
||||
"/bin/unzip',")))
|
||||
;; Makefile is wrong.
|
||||
(chmod config #o644)))))))
|
||||
(chmod config #o644)
|
||||
#t))))))
|
||||
(synopsis "Recover text from @file{.docx} files, with good formatting")
|
||||
(description
|
||||
"@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 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -390,7 +392,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
|
|||
(define-public x265
|
||||
(package
|
||||
(name "x265")
|
||||
(version "2.8")
|
||||
(version "2.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -398,9 +400,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
|
|||
"x265_" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf"))
|
||||
(patches (search-patches "x265-fix-ppc64le-build.patch"
|
||||
"x265-arm-asm-primitives.patch"))
|
||||
"090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb"))
|
||||
(patches (search-patches "x265-detect512-all-arches.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
(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)
|
||||
(arguments
|
||||
`(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
|
||||
;; Currently the source code doesn't check for aarch64.
|
||||
,@(if (any (cute string-prefix? <> (or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("armhf" "aarch64"))
|
||||
'(#:configure-flags '("-DENABLE_PIC=TRUE"))
|
||||
'())
|
||||
;; Ensure position independent code for everyone.
|
||||
#:configure-flags '("-DENABLE_PIC=TRUE")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'prepare-build
|
||||
|
@ -1863,41 +1860,36 @@ and custom quantization matrices.")
|
|||
(license license:gpl2+)))
|
||||
|
||||
(define-public streamlink
|
||||
;; Release tarball doesn't contain ‘tests/resources/dash/’ directory.
|
||||
(let ((commit "2dca7930a938f60b48d8e23260963ea7c49d979f"))
|
||||
(package
|
||||
(name "streamlink")
|
||||
(version (git-version "0.13.0" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/streamlink/streamlink.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vq19aspshim63aj8yl2p64ykrbk2mwwlawdx427b3j2djlc5qhw"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/streamlink/streamlink")
|
||||
(native-inputs
|
||||
`(("python-freezegun" ,python-freezegun)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-mock" ,python-mock)
|
||||
("python-requests-mock" ,python-requests-mock)))
|
||||
(propagated-inputs
|
||||
`(("python-pysocks" ,python-pysocks)
|
||||
("python-websocket-client" ,python-websocket-client)
|
||||
("python-iso3166" ,python-iso3166)
|
||||
("python-iso639" ,python-iso639)
|
||||
("python-isodate", python-isodate)
|
||||
("python-pycryptodome" ,python-pycryptodome)
|
||||
("python-requests" ,python-requests)
|
||||
("python-urllib3" ,python-urllib3)))
|
||||
(synopsis "Extract streams from various services")
|
||||
(description "Streamlink is command-line utility that extracts streams
|
||||
(package
|
||||
(name "streamlink")
|
||||
(version "0.14.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "streamlink" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0l2145fd60i76afjisfxd48cwhwyir07i7s3bnimdq5db2kzkix8"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/streamlink/streamlink")
|
||||
(native-inputs
|
||||
`(("python-freezegun" ,python-freezegun)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-mock" ,python-mock)
|
||||
("python-requests-mock" ,python-requests-mock)))
|
||||
(propagated-inputs
|
||||
`(("python-pysocks" ,python-pysocks)
|
||||
("python-websocket-client" ,python-websocket-client)
|
||||
("python-iso3166" ,python-iso3166)
|
||||
("python-iso639" ,python-iso639)
|
||||
("python-isodate", python-isodate)
|
||||
("python-pycryptodome" ,python-pycryptodome)
|
||||
("python-requests" ,python-requests)
|
||||
("python-urllib3" ,python-urllib3)))
|
||||
(synopsis "Extract streams from various services")
|
||||
(description "Streamlink is command-line utility that extracts streams
|
||||
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
|
||||
(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
|
||||
(package
|
||||
(name "mlt")
|
||||
(version "6.4.1")
|
||||
(version "6.10.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))
|
||||
"1zzdj1g3g24q6v8hd0v34lv0pkh37a13fhjpl44h1ffi00mz3577"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
;; 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)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
#:make-flags '("CC=gcc")
|
||||
#:make-flags '("CC=gcc" "CXX=g++ -std=gnu++11")
|
||||
#:configure-flags
|
||||
(list "--enable-gpl3"
|
||||
"--enable-gpl")
|
||||
|
@ -1979,11 +1971,16 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
|
|||
`(("alsa-lib" ,alsa-lib)
|
||||
("ffmpeg" ,ffmpeg-3.4)
|
||||
("fftw" ,fftw)
|
||||
("frei0r-plugins" ,frei0r-plugins)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gtk+" ,gtk+-2)
|
||||
("libxml2" ,libxml2)
|
||||
("jack" ,jack-1)
|
||||
("ladspa" ,ladspa)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("qtbase" ,qtbase)
|
||||
("qtsvg" ,qtsvg)
|
||||
("sdl" ,sdl)
|
||||
("sox" ,sox)))
|
||||
(native-inputs
|
||||
|
|
|
@ -346,11 +346,10 @@ shader compilation.")
|
|||
(license license:asl2.0))))
|
||||
|
||||
(define-public vkd3d
|
||||
(let ((commit "020c119e2da0786d8be0615cff961c190b00d62d") ; Release 1.0.
|
||||
(revision "0"))
|
||||
(let ((commit "ecda316ef54d70bf1b3e860755241bb75873e53f")) ; Release 1.1.
|
||||
(package
|
||||
(name "vkd3d")
|
||||
(version "1.0")
|
||||
(version "1.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -359,7 +358,7 @@ shader compilation.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"084svxhigs8r0725jv6gs7wwrxb9x4igyg5bgvgpcfw4aq0k69gn"))
|
||||
"05a28kspy8gzng181w28zjqdb3pj2ss83b0lwnppxbcdzsz7rvrf"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -225,7 +225,7 @@ integrate Windows applications into your desktop.")
|
|||
(define-public wine-staging-patchset-data
|
||||
(package
|
||||
(name "wine-staging-patchset-data")
|
||||
(version "3.17")
|
||||
(version "3.18")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -235,7 +235,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ds9q90xjg59ikic98kqkhmijnqx4yplvwsm6rav4mx72yci7d4w"))))
|
||||
"18g1lmqzkc7ngppynimfvza1gkdhqlnjbvnckmaws847ns4i0kzp"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("bash" ,bash)
|
||||
|
@ -281,7 +281,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (string-append name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"08fcziadw40153a9rv630m7iz6ipfzylms5y191z4sj2vvhy5vac"))))
|
||||
"0xqs76hxcym8nb95r7l72xx0msbscp7fhkr1wrv4r0923d5x9s4v"))))
|
||||
(inputs `(("autoconf" ,autoconf) ; for autoreconf
|
||||
("gtk+" ,gtk+)
|
||||
("libva" ,libva)
|
||||
|
|
|
@ -1497,3 +1497,27 @@ before the system goes to sleep.")
|
|||
"Pyperclip is a clipboard module for Python, handling copy/pasting from
|
||||
the X11 clipboard")
|
||||
(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
|
||||
(package
|
||||
(name "perl-xml-feed")
|
||||
(version "0.54")
|
||||
(version "0.55")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
|
||||
"XML-Feed-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ydyi7wdhv8325h7j27vrlwiqxll56sn8zy5nbzhpma3nrf61bci"))))
|
||||
"0am345qzy5rxxnzh13l6p18a7drgkzmmlkgrgl4cv3b2j1pwls3i"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; tests require internet connection
|
||||
|
|
|
@ -5910,7 +5910,7 @@ basic eye-candy effects.")
|
|||
(define-public xpra
|
||||
(package
|
||||
(name "xpra")
|
||||
(version "2.3.4")
|
||||
(version "2.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5918,7 +5918,7 @@ basic eye-candy effects.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wa3kx54himy3i1b2801hlzfilh3cf4kjk40k1cjl0ds28m5hija"))))
|
||||
"0blzx231sr1ri1zwzpwzf611sq9104bv3ccvnap9pbvfrc05sfwx"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("ffmpeg" ,ffmpeg)
|
||||
("flac" ,flac)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||
;;; 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 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
|
@ -101,6 +101,16 @@
|
|||
modem-manager-configuration
|
||||
modem-manager-configuration?
|
||||
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
|
||||
|
||||
openvswitch-service-type
|
||||
|
@ -1019,28 +1029,62 @@ networking."))))
|
|||
;;; 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)
|
||||
"Return a shepherd service for wpa_supplicant"
|
||||
(list (shepherd-service
|
||||
(documentation "Run WPA supplicant with dbus interface")
|
||||
(provision '(wpa-supplicant))
|
||||
(requirement '(user-processes dbus-system loopback))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$wpa-supplicant
|
||||
"/sbin/wpa_supplicant")
|
||||
"-u" "-B" "-P/var/run/wpa_supplicant.pid")
|
||||
#:pid-file "/var/run/wpa_supplicant.pid"))
|
||||
(stop #~(make-kill-destructor)))))
|
||||
(define wpa-supplicant-shepherd-service
|
||||
(match-lambda
|
||||
(($ <wpa-supplicant-configuration> wpa-supplicant pid-file dbus? interface
|
||||
config-file extra-options)
|
||||
(list (shepherd-service
|
||||
(documentation "Run the WPA supplicant daemon")
|
||||
(provision '(wpa-supplicant))
|
||||
(requirement '(user-processes dbus-system loopback))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$wpa-supplicant
|
||||
"/sbin/wpa_supplicant")
|
||||
(string-append "-P" #$pid-file)
|
||||
"-B" ;run in background
|
||||
#$@(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
|
||||
(service-type (name 'wpa-supplicant)
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
wpa-supplicant-shepherd-service)
|
||||
(service-extension dbus-root-service-type list)
|
||||
(service-extension profile-service-type list)))
|
||||
(default-value wpa-supplicant)))
|
||||
(let ((config->package
|
||||
(match-lambda
|
||||
(($ <wpa-supplicant-configuration> wpa-supplicant)
|
||||
(list wpa-supplicant)))))
|
||||
(service-type (name 'wpa-supplicant)
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
wpa-supplicant-shepherd-service)
|
||||
(service-extension dbus-root-service-type config->package)
|
||||
(service-extension profile-service-type config->package)))
|
||||
(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)
|
||||
"Return an alist representation of the JSON resource URL, or #f if URL
|
||||
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 utils) #:hide (package-name->name+version))
|
||||
#: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 packages)
|
||||
#:use-module (guix derivations)
|
||||
|
@ -127,6 +128,7 @@
|
|||
%user-profile-directory
|
||||
%profile-directory
|
||||
%current-profile
|
||||
ensure-profile-directory
|
||||
canonicalize-profile
|
||||
user-friendly-profile))
|
||||
|
||||
|
@ -1249,7 +1251,7 @@ the entries in MANIFEST."
|
|||
(define config.scm
|
||||
(scheme-file "config.scm"
|
||||
#~(begin
|
||||
(define-module (guix config)
|
||||
(define-module #$'(guix config) ;placate Geiser
|
||||
#:export (%libz))
|
||||
|
||||
(define %libz
|
||||
|
@ -1610,28 +1612,73 @@ because the NUMBER is zero.)"
|
|||
;; coexist with Nix profiles.
|
||||
(string-append %profile-directory "/guix-profile"))
|
||||
|
||||
(define (canonicalize-profile profile)
|
||||
"If PROFILE is %USER-PROFILE-DIRECTORY, return %CURRENT-PROFILE. Otherwise
|
||||
return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if
|
||||
'-p' was omitted." ; see <http://bugs.gnu.org/17939>
|
||||
(define (ensure-profile-directory)
|
||||
"Attempt to create /…/profiles/per-user/$USER if needed."
|
||||
(let ((s (stat %profile-directory #f)))
|
||||
(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
|
||||
;; intended.
|
||||
;; Bail out if it's not owned by the user.
|
||||
(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 #\/)))
|
||||
(if (and %user-profile-directory
|
||||
(string=? (canonicalize-path (dirname profile))
|
||||
(dirname %user-profile-directory))
|
||||
(string=? (basename profile) (basename %user-profile-directory)))
|
||||
%current-profile
|
||||
profile)))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(let ((target (readlink profile)))
|
||||
(if (string=? (dirname target) %profile-directory)
|
||||
target
|
||||
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)
|
||||
"Return either ~/.guix-profile if that's what PROFILE refers to, directly or
|
||||
indirectly, or PROFILE."
|
||||
(if (and %user-profile-directory
|
||||
(false-if-exception
|
||||
(string=? (readlink %user-profile-directory) profile)))
|
||||
%user-profile-directory
|
||||
"Return either ~/.guix-profile or ~/.config/guix/current if that's what
|
||||
PROFILE refers to, directly or indirectly, or PROFILE."
|
||||
(or (find (lambda (shorthand)
|
||||
(and shorthand
|
||||
(let ((target (false-if-exception
|
||||
(readlink shorthand))))
|
||||
(and target (string=? target profile)))))
|
||||
%known-shorthand-profiles)
|
||||
profile))
|
||||
|
||||
;;; profiles.scm ends here
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#:use-module (guix monads)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module ((guix profiles) #:select (%profile-directory))
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-37)
|
||||
|
@ -169,8 +170,7 @@ Show what and how will/would be built."
|
|||
|
||||
(define age
|
||||
(match (false-if-not-found
|
||||
(lstat (string-append (config-directory #:ensure? #f)
|
||||
"/current")))
|
||||
(lstat (string-append %profile-directory "/current-guix")))
|
||||
(#f #f)
|
||||
(stat (- (time-second (current-time time-utc))
|
||||
(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-extended-build-trace?
|
||||
(assoc-ref opts 'print-extended-build-trace?)
|
||||
#:multiplexed-build-output?
|
||||
(assoc-ref opts 'multiplexed-build-output?)
|
||||
#:verbosity (assoc-ref opts 'verbosity)))
|
||||
|
||||
(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)
|
||||
(print-build-trace? . #t)
|
||||
(print-extended-build-trace? . #t)
|
||||
(multiplexed-build-output? . #t)
|
||||
(verbosity . 0)))
|
||||
|
||||
(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
|
||||
build---packages, gexps, derivations, and so on."
|
||||
(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)))
|
||||
|
||||
(define (ensure-list x)
|
||||
|
@ -700,6 +703,10 @@ package '~a' has no source~%")
|
|||
(set-guile-for-build (default-guile))
|
||||
(proc))
|
||||
#:system system)))
|
||||
((? file-like? obj)
|
||||
(list (run-with-store store
|
||||
(lower-object obj system
|
||||
#:target (assoc-ref opts 'target)))))
|
||||
((? gexp? gexp)
|
||||
(list (run-with-store store
|
||||
(mbegin %store-monad
|
||||
|
|
|
@ -158,4 +158,4 @@ in the format specified by FMT."
|
|||
(#f
|
||||
(display-checkout-info format))
|
||||
(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)
|
||||
(print-build-trace? . #t)
|
||||
(print-extended-build-trace? . #t)
|
||||
(multiplexed-build-output? . #t)
|
||||
(verbosity . 0)))
|
||||
|
||||
(define (tag-package-arg opts arg)
|
||||
|
|
|
@ -47,6 +47,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
|
|||
(display (G_ "
|
||||
-h, --help display this help and exit"))
|
||||
(display (G_ "
|
||||
-r, --recursive import packages recursively"))
|
||||
(display (G_ "
|
||||
-V, --version display version information and exit"))
|
||||
(newline)
|
||||
(show-bug-report-information))
|
||||
|
|
|
@ -541,6 +541,7 @@ please email '~a'~%")
|
|||
(graft? . #t)
|
||||
(print-build-trace? . #t)
|
||||
(print-extended-build-trace? . #t)
|
||||
(multiplexed-build-output? . #t)
|
||||
(verbosity . 0)
|
||||
(symlinks . ())
|
||||
(compressor . ,(first %compressors))))
|
||||
|
|
|
@ -68,50 +68,14 @@
|
|||
|
||||
(define (ensure-default-profile)
|
||||
"Ensure the default profile symlink and directory exist and are writable."
|
||||
|
||||
(define (rtfm)
|
||||
(format (current-error-port)
|
||||
(G_ "Try \"info '(guix) Invoking guix package'\" for \
|
||||
more information.~%"))
|
||||
(exit 1))
|
||||
(ensure-profile-directory)
|
||||
|
||||
;; Create ~/.guix-profile if it doesn't exist yet.
|
||||
(when (and %user-profile-directory
|
||||
%current-profile
|
||||
(not (false-if-exception
|
||||
(lstat %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))))
|
||||
(symlink %current-profile %user-profile-directory)))
|
||||
|
||||
(define (delete-generations store profile generations)
|
||||
"Delete GENERATIONS from PROFILE.
|
||||
|
@ -332,7 +296,8 @@ ENTRIES, a list of manifest entries, in the context of PROFILE."
|
|||
(substitutes? . #t)
|
||||
(build-hook? . #t)
|
||||
(print-build-trace? . #t)
|
||||
(print-extended-build-trace? . #t)))
|
||||
(print-extended-build-trace? . #t)
|
||||
(multiplexed-build-output? . #t)))
|
||||
|
||||
(define (show-help)
|
||||
(display (G_ "Usage: guix package [OPTION]...
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
(build-hook? . #t)
|
||||
(print-build-trace? . #t)
|
||||
(print-extended-build-trace? . #t)
|
||||
(multiplexed-build-output? . #t)
|
||||
(graft? . #t)
|
||||
(verbosity . 0)))
|
||||
|
||||
|
@ -225,6 +226,60 @@ Download and deploy the latest version of Guix.\n"))
|
|||
(lambda (key 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.
|
||||
|
@ -341,11 +396,8 @@ and ALIST2 differ, display HEADING upfront."
|
|||
(display-new/upgraded-packages (package-alist gen1)
|
||||
(package-alist gen2)))
|
||||
|
||||
(define (process-query opts)
|
||||
"Process any query specified by OPTS."
|
||||
(define profile
|
||||
(string-append (config-directory) "/current"))
|
||||
|
||||
(define (process-query opts profile)
|
||||
"Process any query on PROFILE specified by OPTS."
|
||||
(match (assoc-ref opts 'query)
|
||||
(('list-generations pattern)
|
||||
(define (list-generations profile numbers)
|
||||
|
@ -441,11 +493,10 @@ Use '~/.config/guix/channels.scm' instead."))
|
|||
(list %default-options)))
|
||||
(cache (string-append (cache-directory) "/pull"))
|
||||
(channels (channel-list opts))
|
||||
(profile (or (assoc-ref opts 'profile)
|
||||
(string-append (config-directory) "/current"))))
|
||||
|
||||
(profile (or (assoc-ref opts 'profile) %current-profile)))
|
||||
(ensure-default-profile)
|
||||
(cond ((assoc-ref opts 'query)
|
||||
(process-query opts))
|
||||
(process-query opts profile))
|
||||
((assoc-ref opts 'dry-run?)
|
||||
#t) ;XXX: not very useful
|
||||
(else
|
||||
|
|
|
@ -1082,6 +1082,7 @@ Some ACTIONS support additional ARGS.\n"))
|
|||
(build-hook? . #t)
|
||||
(print-build-trace? . #t)
|
||||
(print-extended-build-trace? . #t)
|
||||
(multiplexed-build-output? . #t)
|
||||
(graft? . #t)
|
||||
(verbosity . 0)
|
||||
(file-system-type . "ext4")
|
||||
|
|
|
@ -904,7 +904,11 @@ is not supported."
|
|||
version))
|
||||
|
||||
(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
|
||||
(set-guile-for-build guile)
|
||||
|
@ -913,7 +917,8 @@ is not supported."
|
|||
#:name (string-append "guix-"
|
||||
(shorten version))
|
||||
#:pull-version pull-version
|
||||
#:guile-version guile-version
|
||||
#:guile-version (if (>= pull-version 1)
|
||||
"2.2" guile-version)
|
||||
#:guile-for-build guile)))
|
||||
(if guix
|
||||
(lower-object guix)
|
||||
|
|
194
guix/status.scm
194
guix/status.scm
|
@ -34,6 +34,7 @@
|
|||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:autoload (ice-9 rdelim) (read-string)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module ((system foreign)
|
||||
#:select (bytevector->pointer pointer->bytevector))
|
||||
|
@ -115,7 +116,10 @@
|
|||
(string=? item (download-item download))))
|
||||
|
||||
(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\" ...),
|
||||
compute a new status based on STATUS."
|
||||
(match event
|
||||
|
@ -141,8 +145,7 @@ compute a new status based on STATUS."
|
|||
(inherit status)
|
||||
(building (remove (lambda (drv)
|
||||
(equal? (false-if-exception
|
||||
(derivation->output-path
|
||||
(read-derivation-from-file drv)))
|
||||
(derivation-path->output-path drv))
|
||||
item))
|
||||
(build-status-building status)))
|
||||
(downloading (cons (download item uri #:size size
|
||||
|
@ -218,6 +221,12 @@ build traces\" such as \"@ download-progress\" traces."
|
|||
(and (current-store-protocol-version)
|
||||
(>= (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!
|
||||
(let ((steps (circular-list "\\" "|" "/" "-")))
|
||||
(lambda (port)
|
||||
|
@ -312,14 +321,16 @@ addition to build events."
|
|||
(lambda (line)
|
||||
(spin! port))))
|
||||
|
||||
(display "\r" port) ;erase the spinner
|
||||
(unless print-log?
|
||||
(display "\r" port)) ;erase the spinner
|
||||
(match event
|
||||
(('build-started drv . _)
|
||||
(format port (info (G_ "building ~a...")) drv)
|
||||
(newline port))
|
||||
(('build-succeeded drv . _)
|
||||
(format port (success (G_ "successfully built ~a")) drv)
|
||||
(newline port)
|
||||
(when (or print-log? (not (extended-build-trace-supported?)))
|
||||
(format port (success (G_ "successfully built ~a")) drv)
|
||||
(newline port))
|
||||
(match (build-status-building status)
|
||||
(() #t)
|
||||
(ongoing ;when max-jobs > 1
|
||||
|
@ -382,21 +393,28 @@ addition to build events."
|
|||
expected hash: ~a
|
||||
actual hash: ~a~%"))
|
||||
expected actual))
|
||||
(('build-log line)
|
||||
;; TODO: Better distinguish daemon messages and build log lines.
|
||||
(cond ((string-prefix? "substitute: " line)
|
||||
;; The daemon prefixes early messages coming with 'guix
|
||||
;; substitute' with "substitute:". These are useful ("updating
|
||||
;; substitutes from URL"), so let them through.
|
||||
(format port line)
|
||||
(force-output port))
|
||||
((string-prefix? "waiting for locks" line)
|
||||
;; This is when a derivation is already being built and we're just
|
||||
;; waiting for the build to complete.
|
||||
(display (info (string-trim-right line)) port)
|
||||
(newline))
|
||||
(else
|
||||
(print-log-line line))))
|
||||
(('build-log pid line)
|
||||
(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)
|
||||
;; The daemon prefixes early messages coming with 'guix
|
||||
;; substitute' with "substitute:". These are useful ("updating
|
||||
;; substitutes from URL"), so let them through.
|
||||
(display line port)
|
||||
(force-output port))
|
||||
((string-prefix? "waiting for locks" line)
|
||||
;; This is when a derivation is already being built and we're just
|
||||
;; waiting for the build to complete.
|
||||
(display (info (string-trim-right line)) port)
|
||||
(newline))
|
||||
(else
|
||||
(print-log-line line)))))
|
||||
(_
|
||||
event)))
|
||||
|
||||
|
@ -426,8 +444,43 @@ ON-CHANGE can display the build status, build events, etc."
|
|||
;;; Build port.
|
||||
;;;
|
||||
|
||||
(define %newline
|
||||
(char-set #\return #\newline))
|
||||
(define (maybe-utf8->string bv)
|
||||
"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)))
|
||||
"Return an output port for use as 'current-build-output-port' that calls
|
||||
|
@ -449,33 +502,83 @@ The second return value is a thunk to retrieve the current state."
|
|||
;; Current state for PROC.
|
||||
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)
|
||||
(if (string-prefix? "@ " line)
|
||||
(match (string-tokenize (string-drop line 2))
|
||||
(((= string->symbol event-name) args ...)
|
||||
(set! %state
|
||||
(proc (cons event-name args)
|
||||
%state))))
|
||||
(set! %state (proc (list 'build-log line)
|
||||
%state))))
|
||||
(cond ((string-prefix? "@ " line)
|
||||
(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 ...)
|
||||
(set! %state
|
||||
(proc (cons event-name args)
|
||||
%state)))))
|
||||
(else
|
||||
(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)
|
||||
(let ((ptr (bytevector->pointer bv offset)))
|
||||
(pointer->bytevector ptr count)))
|
||||
|
||||
(define (write! bv offset count)
|
||||
(let loop ((str (utf8->string (bytevector-range bv offset count))))
|
||||
(match (string-index str %newline)
|
||||
((? integer? cr)
|
||||
(let ((tail (string-take str (+ 1 cr))))
|
||||
(process-line (string-concatenate-reverse
|
||||
(cons tail %fragments)))
|
||||
(set! %fragments '())
|
||||
(loop (string-drop str (+ 1 cr)))))
|
||||
(#f
|
||||
(unless (string-null? str)
|
||||
(set! %fragments (cons str %fragments)))
|
||||
count))))
|
||||
(if %build-output-pid
|
||||
(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)
|
||||
(let* ((tail (maybe-utf8->string
|
||||
(bytevector-range bv offset (- cr -1 offset))))
|
||||
(line (string-concatenate-reverse
|
||||
(cons tail %fragments))))
|
||||
(process-line line)
|
||||
(set! %fragments '())
|
||||
(- cr -1 offset)))
|
||||
(#f
|
||||
(unless (zero? count)
|
||||
(let ((str (maybe-utf8->string
|
||||
(bytevector-range bv offset count))))
|
||||
(set! %fragments (cons str %fragments))))
|
||||
count))))
|
||||
|
||||
(define port
|
||||
(make-custom-binary-output-port "filtering-input-port"
|
||||
|
@ -485,8 +588,9 @@ The second return value is a thunk to retrieve the current state."
|
|||
|
||||
;; The build port actually receives Unicode strings.
|
||||
(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)))
|
||||
|
||||
(define (call-with-status-report on-event thunk)
|
||||
|
|
|
@ -155,7 +155,7 @@
|
|||
derivation-log-file
|
||||
log-file))
|
||||
|
||||
(define %protocol-version #x162)
|
||||
(define %protocol-version #x163)
|
||||
|
||||
(define %worker-magic-1 #x6e697863) ; "nixc"
|
||||
(define %worker-magic-2 #x6478696f) ; "dxio"
|
||||
|
@ -709,6 +709,15 @@ encoding conversion errors."
|
|||
;; disabled by default.
|
||||
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
|
||||
(use-substitutes? #t)
|
||||
|
||||
|
@ -757,6 +766,10 @@ encoding conversion errors."
|
|||
`(("print-extended-build-trace"
|
||||
. ,(if print-extended-build-trace? "1" "0")))
|
||||
'())
|
||||
,@(if multiplexed-build-output?
|
||||
`(("multiplexed-build-output"
|
||||
. ,(if multiplexed-build-output? "true" "false")))
|
||||
'())
|
||||
,@(if timeout
|
||||
`(("build-timeout" . ,(number->string timeout)))
|
||||
'())
|
||||
|
|
|
@ -1652,8 +1652,8 @@ HookReply DerivationGoal::tryBuildHook()
|
|||
worker.childStarted(shared_from_this(), hook->pid, fds, false, false);
|
||||
|
||||
if (settings.printBuildTrace)
|
||||
printMsg(lvlError, format("@ build-started %1% - %2% %3%")
|
||||
% drvPath % drv.platform % logFile);
|
||||
printMsg(lvlError, format("@ build-started %1% - %2% %3% %4%")
|
||||
% drvPath % drv.platform % logFile % hook->pid);
|
||||
|
||||
return rpAccept;
|
||||
}
|
||||
|
@ -2038,8 +2038,8 @@ void DerivationGoal::startBuilder()
|
|||
if (!msg.empty()) throw Error(msg);
|
||||
|
||||
if (settings.printBuildTrace) {
|
||||
printMsg(lvlError, format("@ build-started %1% - %2% %3%")
|
||||
% drvPath % drv.platform % logFile);
|
||||
printMsg(lvlError, format("@ build-started %1% - %2% %3% %4%")
|
||||
% drvPath % drv.platform % logFile % pid);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2736,6 +2736,19 @@ void DerivationGoal::deleteTmpDir(bool force)
|
|||
|
||||
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) ||
|
||||
(!hook && fd == builderOut.readSide))
|
||||
{
|
||||
|
@ -2748,7 +2761,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
|
|||
return;
|
||||
}
|
||||
if (verbosity >= settings.buildVerbosity)
|
||||
writeToStderr(data);
|
||||
writeToStderr(prefix + data);
|
||||
|
||||
if (gzLogFile) {
|
||||
if (data.size() > 0) {
|
||||
|
@ -2767,7 +2780,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
|
|||
}
|
||||
|
||||
if (hook && fd == hook->fromHook.readSide)
|
||||
writeToStderr(data);
|
||||
writeToStderr(prefix + data);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ Settings::Settings()
|
|||
buildTimeout = 0;
|
||||
useBuildHook = true;
|
||||
printBuildTrace = false;
|
||||
multiplexedBuildOutput = false;
|
||||
reservedSize = 8 * 1024 * 1024;
|
||||
fsyncMetadata = true;
|
||||
useSQLiteWAL = true;
|
||||
|
@ -120,6 +121,7 @@ void Settings::update()
|
|||
_get(maxBuildJobs, "build-max-jobs");
|
||||
_get(buildCores, "build-cores");
|
||||
_get(thisSystem, "system");
|
||||
_get(multiplexedBuildOutput, "multiplexed-build-output");
|
||||
_get(maxSilentTime, "build-max-silent-time");
|
||||
_get(buildTimeout, "build-timeout");
|
||||
_get(reservedSize, "gc-reserved-space");
|
||||
|
|
|
@ -127,7 +127,7 @@ struct Settings {
|
|||
a fixed format to allow its progress to be monitored. Each
|
||||
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-succeeded <drvpath> <outpath>
|
||||
@ substituter-started <outpath> <substituter>
|
||||
|
@ -139,6 +139,13 @@ struct Settings {
|
|||
builders. */
|
||||
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
|
||||
(/nix/var/nix/db/reserved). */
|
||||
off_t reservedSize;
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace nix {
|
|||
#define WORKER_MAGIC_1 0x6e697863
|
||||
#define WORKER_MAGIC_2 0x6478696f
|
||||
|
||||
#define PROTOCOL_VERSION 0x162
|
||||
#define PROTOCOL_VERSION 0x163
|
||||
#define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
|
||||
#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"
|
||||
|| name == "build-max-jobs" || name == "build-cores"
|
||||
|| name == "build-repeat"
|
||||
|| name == "use-ssh-substituter")
|
||||
|| name == "multiplexed-build-output")
|
||||
settings.set(name, value);
|
||||
else
|
||||
settings.set(trusted ? name : "untrusted-" + name, value);
|
||||
|
|
|
@ -41,4 +41,5 @@ guix/status.scm
|
|||
guix/http-client.scm
|
||||
guix/nar.scm
|
||||
guix/channels.scm
|
||||
guix/profiles.scm
|
||||
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 | 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.
|
||||
cat > "$module_dir/package.scm"<<EOF
|
||||
(use-modules (gnu))
|
||||
|
|
|
@ -20,7 +20,10 @@
|
|||
#:use-module (guix status)
|
||||
#:use-module (srfi srfi-1)
|
||||
#: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")
|
||||
|
||||
|
@ -112,4 +115,69 @@
|
|||
(display "@ substituter-succeeded baz\n" port)
|
||||
(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")
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bootstrap)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (rnrs io ports)
|
||||
#:use-module (web uri)
|
||||
|
@ -1021,4 +1022,66 @@
|
|||
(call-with-input-file (derivation->output-path drv2)
|
||||
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")
|
||||
|
|
Reference in New Issue