me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

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

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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)))))))))

View File

@ -87,7 +87,9 @@ dnl We require pkg.m4 (from pkg-config) and guile.m4 (from Guile.)
dnl Make sure they are available.
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

View File

@ -468,6 +468,14 @@ Please follow our code formatting rules, possibly running the
@command{etc/indent-code.el} script to do that automatically for you
(@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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -886,3 +886,30 @@ Time-Course experiments) analyses 4sU-seq and RNA-seq time-course data in
order to evaluate synthesis, processing and degradation rates and assess via
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)))

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1302,3 +1302,53 @@ Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.")
"Inria Sans and Inria Serif are the two members of a type family designed
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)))

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -47,14 +47,14 @@
;; The 7 release series has an incompatible API, while the 6 series is still
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
;; users are ready for the 7-series API.
(version "6.9.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")

View File

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

View File

@ -399,8 +399,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; 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

View File

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

View File

@ -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 Pythons
extensive standard library and on the strengths of Python as a high-level
programming language.")
(license license:gpl3+)))
(define-public python2-cvxopt
(package-with-python2 python-cvxopt))
(define-public units
(package
(name "units")

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,8 +5,9 @@ By default crawl checks for a mtime difference on files in DATADIR to see if an
upgrade is required, but guix nulls all file dates,
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);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -26,6 +26,7 @@
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 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")

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -395,6 +395,8 @@ options handled by 'set-build-options-from-command-line', and listed in
#:print-build-trace (assoc-ref opts 'print-build-trace?)
#:print-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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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