Merge branch 'master' into core-updates
commit
ca4fd41de8
|
@ -133,6 +133,7 @@ MODULES = \
|
||||||
guix/build/utils.scm \
|
guix/build/utils.scm \
|
||||||
guix/build/union.scm \
|
guix/build/union.scm \
|
||||||
guix/build/profiles.scm \
|
guix/build/profiles.scm \
|
||||||
|
guix/build/compile.scm \
|
||||||
guix/build/pull.scm \
|
guix/build/pull.scm \
|
||||||
guix/build/rpath.scm \
|
guix/build/rpath.scm \
|
||||||
guix/build/cvs.scm \
|
guix/build/cvs.scm \
|
||||||
|
|
|
@ -245,6 +245,7 @@ Please upgrade to an intermediate version first, for instance with:
|
||||||
(gexp->derivation "guix-latest" builder
|
(gexp->derivation "guix-latest" builder
|
||||||
#:modules '((guix build pull)
|
#:modules '((guix build pull)
|
||||||
(guix build utils)
|
(guix build utils)
|
||||||
|
(guix build compile)
|
||||||
|
|
||||||
;; Closure of (guix modules).
|
;; Closure of (guix modules).
|
||||||
(guix modules)
|
(guix modules)
|
||||||
|
|
|
@ -17,21 +17,13 @@
|
||||||
;;; You should have received a copy of the GNU General Public License
|
;;; You should have received a copy of the GNU General Public License
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(use-modules (system base target)
|
(use-modules (ice-9 match)
|
||||||
(system base message)
|
|
||||||
(ice-9 match)
|
|
||||||
(ice-9 threads)
|
(ice-9 threads)
|
||||||
|
(srfi srfi-1)
|
||||||
|
(guix build compile)
|
||||||
(guix build utils))
|
(guix build utils))
|
||||||
|
|
||||||
(define warnings
|
|
||||||
;; FIXME: 'format' is missing because it reports "non-literal format
|
|
||||||
;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
|
|
||||||
;; help from Guile to solve this.
|
|
||||||
'(unsupported-warning unbound-variable arity-mismatch
|
|
||||||
macro-use-before-definition)) ;new in 2.2
|
|
||||||
|
|
||||||
(define host (getenv "host"))
|
(define host (getenv "host"))
|
||||||
|
|
||||||
(define srcdir (getenv "srcdir"))
|
(define srcdir (getenv "srcdir"))
|
||||||
|
|
||||||
(define (relative-file file)
|
(define (relative-file file)
|
||||||
|
@ -53,61 +45,38 @@
|
||||||
(or (not (file-exists? go))
|
(or (not (file-exists? go))
|
||||||
(file-mtime<? go file))))
|
(file-mtime<? go file))))
|
||||||
|
|
||||||
(define (file->module file)
|
(define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
|
||||||
(let* ((relative (relative-file file))
|
"Return the number of parallel jobs as determined by FLAGS, the flags passed
|
||||||
(module-path (string-drop-right relative 4)))
|
to 'make'."
|
||||||
(map string->symbol
|
(match flags
|
||||||
(string-split module-path #\/))))
|
(#f (current-processor-count))
|
||||||
|
(flags
|
||||||
;;; To work around <http://bugs.gnu.org/15602> (FIXME), we want to load all
|
(let ((initial-flags (string-tokenize flags)))
|
||||||
;;; files to be compiled first. We do this via resolve-interface so that the
|
(let loop ((flags initial-flags))
|
||||||
;;; top-level of each file (module) is only executed once.
|
(match flags
|
||||||
(define (load-module-file file)
|
(()
|
||||||
(let ((module (file->module file)))
|
;; Note: GNU make prior to version 4.2 would hide "-j" flags from
|
||||||
(format #t " LOAD ~a~%" module)
|
;; $MAKEFLAGS. Thus, check for a "--jobserver" flag here and
|
||||||
(resolve-interface module)))
|
;; assume we're using all cores if specified.
|
||||||
|
(if (any (lambda (flag)
|
||||||
(cond-expand
|
(string-prefix? "--jobserver" flag))
|
||||||
(guile-2.2 (use-modules (language tree-il optimize)
|
initial-flags)
|
||||||
(language cps optimize)))
|
(current-processor-count) ;GNU make < 4.2
|
||||||
(else #f))
|
1)) ;sequential make
|
||||||
|
(("-j" (= string->number count) _ ...)
|
||||||
(define %default-optimizations
|
(if (integer? count)
|
||||||
;; Default optimization options (equivalent to -O2 on Guile 2.2).
|
count
|
||||||
(cond-expand
|
(current-processor-count)))
|
||||||
(guile-2.2 (append (tree-il-default-optimization-options)
|
((head tail ...)
|
||||||
(cps-default-optimization-options)))
|
(if (string-prefix? "-j" head)
|
||||||
(else '())))
|
(match (string-drop head 2)
|
||||||
|
(""
|
||||||
(define %lightweight-optimizations
|
(current-processor-count))
|
||||||
;; Lightweight optimizations (like -O0, but with partial evaluation).
|
((= string->number count)
|
||||||
(let loop ((opts %default-optimizations)
|
(if (integer? count)
|
||||||
(result '()))
|
count
|
||||||
(match opts
|
(current-processor-count))))
|
||||||
(() (reverse result))
|
(loop tail)))))))))
|
||||||
((#:partial-eval? _ rest ...)
|
|
||||||
(loop rest `(#t #:partial-eval? ,@result)))
|
|
||||||
((kw _ rest ...)
|
|
||||||
(loop rest `(#f ,kw ,@result))))))
|
|
||||||
|
|
||||||
(define (optimization-options file)
|
|
||||||
(if (string-contains file "gnu/packages/")
|
|
||||||
%lightweight-optimizations ;build faster
|
|
||||||
'()))
|
|
||||||
|
|
||||||
(define (compile-file* file output-mutex)
|
|
||||||
(let ((go (scm->go file)))
|
|
||||||
(with-mutex output-mutex
|
|
||||||
(format #t " GUILEC ~a~%" go)
|
|
||||||
(force-output))
|
|
||||||
(mkdir-p (dirname go))
|
|
||||||
(with-fluids ((*current-warning-prefix* ""))
|
|
||||||
(with-target host
|
|
||||||
(lambda ()
|
|
||||||
(compile-file file
|
|
||||||
#:output-file go
|
|
||||||
#:opts `(#:warnings ,warnings
|
|
||||||
,@(optimization-options file))))))))
|
|
||||||
|
|
||||||
;; Install a SIGINT handler to give unwind handlers in 'compile-file' an
|
;; Install a SIGINT handler to give unwind handlers in 'compile-file' an
|
||||||
;; opportunity to run upon SIGINT and to remove temporary output files.
|
;; opportunity to run upon SIGINT and to remove temporary output files.
|
||||||
|
@ -117,16 +86,14 @@
|
||||||
|
|
||||||
(match (command-line)
|
(match (command-line)
|
||||||
((_ . files)
|
((_ . files)
|
||||||
(let ((files (filter file-needs-compilation? files)))
|
(compile-files srcdir (getcwd)
|
||||||
(for-each load-module-file files)
|
(filter file-needs-compilation? files)
|
||||||
(let ((mutex (make-mutex)))
|
#:workers (parallel-job-count)
|
||||||
;; Make sure compilation related modules are loaded before starting to
|
#:host host
|
||||||
;; compile files in parallel.
|
#:report-load (lambda (file total completed)
|
||||||
(compile #f)
|
(when file
|
||||||
(par-for-each (lambda (file)
|
(format #t " LOAD ~a~%" file)))
|
||||||
(compile-file* file mutex))
|
#:report-compilation (lambda (file total completed)
|
||||||
files)))))
|
(when file
|
||||||
|
(format #t " GUILEC ~a~%"
|
||||||
;;; Local Variables:
|
(scm->go file)))))))
|
||||||
;;; eval: (put 'with-target 'scheme-indent-function 1)
|
|
||||||
;;; End:
|
|
||||||
|
|
147
doc/guix.texi
147
doc/guix.texi
|
@ -4990,6 +4990,34 @@ as in:
|
||||||
This is the declarative counterpart of @code{text-file*}.
|
This is the declarative counterpart of @code{text-file*}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} file-union @var{name} @var{files}
|
||||||
|
Return a @code{<computed-file>} that builds a directory containing all of @var{files}.
|
||||||
|
Each item in @var{files} must be a two-element list where the first element is the
|
||||||
|
file name to use in the new directory, and the second element is a gexp
|
||||||
|
denoting the target file. Here's an example:
|
||||||
|
|
||||||
|
@example
|
||||||
|
(file-union "etc"
|
||||||
|
`(("hosts" ,(plain-file "hosts"
|
||||||
|
"127.0.0.1 localhost"))
|
||||||
|
("bashrc" ,(plain-file "bashrc"
|
||||||
|
"alias ls='ls --color'"))))
|
||||||
|
@end example
|
||||||
|
|
||||||
|
This yields an @code{etc} directory containing these two files.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} directory-union @var{name} @var{things}
|
||||||
|
Return a directory that is the union of @var{things}, where @var{things} is a list of
|
||||||
|
file-like objects denoting directories. For example:
|
||||||
|
|
||||||
|
@example
|
||||||
|
(directory-union "guile+emacs" (list guile emacs))
|
||||||
|
@end example
|
||||||
|
|
||||||
|
yields a directory that is the union of the @code{guile} and @code{emacs} packages.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
@deffn {Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}
|
@deffn {Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}
|
||||||
Return a file-like object that expands to the concatenation of @var{obj}
|
Return a file-like object that expands to the concatenation of @var{obj}
|
||||||
and @var{suffix}, where @var{obj} is a lowerable object and each
|
and @var{suffix}, where @var{obj} is a lowerable object and each
|
||||||
|
@ -9790,35 +9818,112 @@ Return a service that runs the Guix build daemon according to
|
||||||
@var{config}.
|
@var{config}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@cindex udev-service
|
@deffn {Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]
|
||||||
@cindex udev-rule
|
|
||||||
@deffn {Scheme Procedure} udev-service [#:udev @var{udev}] [#:rules @var{'()}]
|
|
||||||
Run @var{udev}, which populates the @file{/dev} directory dynamically.
|
Run @var{udev}, which populates the @file{/dev} directory dynamically.
|
||||||
Additional udev rules can be provided as a list of files through the
|
udev rules can be provided as a list of files through the @var{rules}
|
||||||
@var{rules} variable. The procedure @var{udev-rule} simplifies the
|
variable. The procedures @var{udev-rule} and @var{file->udev-rule} from
|
||||||
creation of these rule files.
|
@code{(gnu services base)} simplify the creation of such rule files.
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} udev-rule [@var{file-name} @var{contents}]
|
||||||
|
Return a udev-rule file named @var{file-name} containing the rules
|
||||||
|
defined by the @var{contents} literal.
|
||||||
|
|
||||||
In the following example, a rule for a USB device is defined to be
|
In the following example, a rule for a USB device is defined to be
|
||||||
stored in the file @file{90-usb-thing.rules}, and the default
|
stored in the file @file{90-usb-thing.rules}. The rule runs a script
|
||||||
@var{udev-service} is extended with it. The rule runs a script upon
|
upon detecting a USB device with a given product identifier.
|
||||||
detecting a USB device with a given product identifier.
|
|
||||||
|
|
||||||
@example
|
@example
|
||||||
(define %example-udev-rule
|
(define %example-udev-rule
|
||||||
(udev-rule "90-usb-thing.rules"
|
(udev-rule
|
||||||
"ACTION==\"add\", SUBSYSTEM==\"usb\", ATTR@{product@}==\"Example\", RUN+=\"/path/to/script\""))
|
"90-usb-thing.rules"
|
||||||
|
(string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", "
|
||||||
(operating-system
|
"ATTR@{product@}==\"Example\", "
|
||||||
;; @dots{}
|
"RUN+=\"/path/to/script\"")))
|
||||||
(services (modify-services %desktop-services
|
|
||||||
(udev-service-type config =>
|
|
||||||
(udev-configuration (inherit config)
|
|
||||||
(rules (append (udev-configuration-rules config)
|
|
||||||
(list %example-udev-rule))))))))
|
|
||||||
@end example
|
@end example
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Scheme Procedure} urandom-seed-service @var{#f}
|
Here we show how the default @var{udev-service} can be extended with it.
|
||||||
|
|
||||||
|
@example
|
||||||
|
(operating-system
|
||||||
|
;; @dots{}
|
||||||
|
(services
|
||||||
|
(modify-services %desktop-services
|
||||||
|
(udev-service-type config =>
|
||||||
|
(udev-configuration (inherit config)
|
||||||
|
(rules (append (udev-configuration-rules config)
|
||||||
|
(list %example-udev-rule))))))))
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]
|
||||||
|
Return a udev file named @var{file-name} containing the rules defined
|
||||||
|
within @var{file}, a file-like object.
|
||||||
|
|
||||||
|
The following example showcases how we can use an existing rule file.
|
||||||
|
|
||||||
|
@example
|
||||||
|
(use-modules (guix download) ;for url-fetch
|
||||||
|
(guix packages) ;for origin
|
||||||
|
;; @dots{})
|
||||||
|
|
||||||
|
(define %android-udev-rules
|
||||||
|
(file->udev-rule
|
||||||
|
"51-android-udev.rules"
|
||||||
|
(let ((version "20170910"))
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://raw.githubusercontent.com/M0Rf30/"
|
||||||
|
"android-udev-rules/" version "/51-android.rules"))
|
||||||
|
(sha256
|
||||||
|
(base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003"))))))
|
||||||
|
@end example
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
Additionally, Guix package definitions can be included in @var{rules} in
|
||||||
|
order to extend the udev rules with the definitions found under their
|
||||||
|
@file{lib/udev/rules.d} sub-directory. In lieu of the previous
|
||||||
|
@var{file->udev-rule} example, we could have used the
|
||||||
|
@var{android-udev-rules} package which exists in Guix in the @code{(gnu
|
||||||
|
packages android)} module.
|
||||||
|
|
||||||
|
The following example shows how to use the @var{android-udev-rules}
|
||||||
|
package so that the Android tool @command{adb} can detect devices
|
||||||
|
without root privileges. It also details how to create the
|
||||||
|
@code{adbusers} group, which is required for the proper functioning of
|
||||||
|
the rules defined within the @var{android-udev-rules} package. To
|
||||||
|
create such a group, we must define it both as part of the
|
||||||
|
@var{supplementary-groups} of our @var{user-account} declaration, as
|
||||||
|
well as in the @var{groups} field of the @var{operating-system} record.
|
||||||
|
|
||||||
|
@example
|
||||||
|
(use-modules (gnu packages android) ;for android-udev-rules
|
||||||
|
(gnu system shadow) ;for user-group
|
||||||
|
;; @dots{})
|
||||||
|
|
||||||
|
(operating-system
|
||||||
|
;; @dots{}
|
||||||
|
(users (cons (user-acount
|
||||||
|
;; @dots{}
|
||||||
|
(supplementary-groups
|
||||||
|
'("adbusers" ;for adb
|
||||||
|
"wheel" "netdev" "audio" "video"))
|
||||||
|
;; @dots{})))
|
||||||
|
|
||||||
|
(groups (cons (user-group (system? #t) (name "adbusers"))
|
||||||
|
%base-groups))
|
||||||
|
|
||||||
|
;; @dots{}
|
||||||
|
|
||||||
|
(services
|
||||||
|
(modify-services %desktop-services
|
||||||
|
(udev-service-type config =>
|
||||||
|
(udev-configuration (inherit config)
|
||||||
|
(rules (cons* android-udev-rules
|
||||||
|
(udev-configuration-rules config))))))))
|
||||||
|
@end example
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} urandom-seed-service
|
||||||
Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom}
|
Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom}
|
||||||
when rebooting.
|
when rebooting.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -9930,7 +10035,7 @@ to add @var{device} to the kernel's entropy pool. The service will fail if
|
||||||
@cindex session limits
|
@cindex session limits
|
||||||
@cindex ulimit
|
@cindex ulimit
|
||||||
@cindex priority
|
@cindex priority
|
||||||
@deffn {Scheme Procedure} pam-limits-service [#:limits @var{limits}]
|
@deffn {Scheme Procedure} pam-limits-service [#:limits @code{'()}]
|
||||||
|
|
||||||
Return a service that installs a configuration file for the
|
Return a service that installs a configuration file for the
|
||||||
@uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html,
|
@uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html,
|
||||||
|
|
|
@ -662,6 +662,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/glibc-CVE-2017-1000366-pt1.patch \
|
%D%/packages/patches/glibc-CVE-2017-1000366-pt1.patch \
|
||||||
%D%/packages/patches/glibc-CVE-2017-1000366-pt2.patch \
|
%D%/packages/patches/glibc-CVE-2017-1000366-pt2.patch \
|
||||||
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
|
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
|
||||||
|
%D%/packages/patches/glibc-CVE-2017-15670-15671.patch \
|
||||||
%D%/packages/patches/glibc-bootstrap-system.patch \
|
%D%/packages/patches/glibc-bootstrap-system.patch \
|
||||||
%D%/packages/patches/glibc-ldd-x86_64.patch \
|
%D%/packages/patches/glibc-ldd-x86_64.patch \
|
||||||
%D%/packages/patches/glibc-locales.patch \
|
%D%/packages/patches/glibc-locales.patch \
|
||||||
|
@ -729,6 +730,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/hydra-disable-darcs-test.patch \
|
%D%/packages/patches/hydra-disable-darcs-test.patch \
|
||||||
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
|
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
|
||||||
%D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \
|
%D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \
|
||||||
|
%D%/packages/patches/icu4c-CVE-2017-14952.patch \
|
||||||
%D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \
|
%D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \
|
||||||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||||
|
@ -866,6 +868,9 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/mozjs38-version-detection.patch \
|
%D%/packages/patches/mozjs38-version-detection.patch \
|
||||||
%D%/packages/patches/mumps-build-parallelism.patch \
|
%D%/packages/patches/mumps-build-parallelism.patch \
|
||||||
%D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \
|
%D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \
|
||||||
|
%D%/packages/patches/mupdf-CVE-2017-14685.patch \
|
||||||
|
%D%/packages/patches/mupdf-CVE-2017-14686.patch \
|
||||||
|
%D%/packages/patches/mupdf-CVE-2017-14687.patch \
|
||||||
%D%/packages/patches/mupdf-CVE-2017-15587.patch \
|
%D%/packages/patches/mupdf-CVE-2017-15587.patch \
|
||||||
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
|
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
|
||||||
%D%/packages/patches/mutt-store-references.patch \
|
%D%/packages/patches/mutt-store-references.patch \
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
(define-module (gnu packages animation)
|
(define-module (gnu packages animation)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
@ -34,6 +35,8 @@
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages imagemagick)
|
#:use-module (gnu packages imagemagick)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages pulseaudio)
|
||||||
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages video))
|
#:use-module (gnu packages video))
|
||||||
|
|
||||||
(define-public etl
|
(define-public etl
|
||||||
|
@ -185,3 +188,71 @@ be capable of producing feature-film quality animation. It eliminates the
|
||||||
need for tweening, preventing the need to hand-draw each frame. This package
|
need for tweening, preventing the need to hand-draw each frame. This package
|
||||||
contains the graphical user interface for synfig.")
|
contains the graphical user interface for synfig.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public papagayo
|
||||||
|
(let ((commit "e143684b30e59fe4a554f965cb655d23cbe93ee7")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "papagayo")
|
||||||
|
(version (string-append "2.0b1-" revision "." (string-take commit 9)))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/LostMoho/Papagayo.git")
|
||||||
|
(commit commit)))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1p9gffjhbph34jhrvgpg93yha75bf88vkvlnk06x1r9601ph5321"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
;; Delete bundled libsndfile sources.
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
(delete-file-recursively "libsndfile_1.0.19")
|
||||||
|
(delete-file-recursively "libsndfile_1.0.25")
|
||||||
|
#t))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((libsndfile (assoc-ref inputs "libsndfile")))
|
||||||
|
;; Do not use bundled libsndfile sources
|
||||||
|
(substitute* "Papagayo.pro"
|
||||||
|
(("else \\{")
|
||||||
|
(string-append "\nINCLUDEPATH += " libsndfile
|
||||||
|
"/include"
|
||||||
|
"\nLIBS +=" libsndfile
|
||||||
|
"/lib/libsndfile.so\n"
|
||||||
|
"win32 {"))))
|
||||||
|
(zero? (system* "qmake"
|
||||||
|
(string-append "DESTDIR="
|
||||||
|
(assoc-ref outputs "out")
|
||||||
|
"/bin")))))
|
||||||
|
;; Ensure that all required Qt plugins are found at runtime.
|
||||||
|
(add-after 'install 'wrap-executable
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(qt '("qt" "qtmultimedia")))
|
||||||
|
(wrap-program (string-append out "/bin/Papagayo")
|
||||||
|
`("QT_PLUGIN_PATH" ":" prefix
|
||||||
|
,(map (lambda (label)
|
||||||
|
(string-append (assoc-ref inputs label)
|
||||||
|
"/lib/qt5/plugins/"))
|
||||||
|
qt)))
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("qt" ,qtbase)
|
||||||
|
("qtmultimedia" ,qtmultimedia)
|
||||||
|
("libsndfile" ,libsndfile)))
|
||||||
|
(native-inputs
|
||||||
|
`(("qttools" ,qttools)))
|
||||||
|
(home-page "http://www.lostmarble.com/papagayo/")
|
||||||
|
(synopsis "Lip-syncing for animations")
|
||||||
|
(description
|
||||||
|
"Papagayo is a lip-syncing program designed to help you line up
|
||||||
|
phonemes with the actual recorded sound of actors speaking. Papagayo makes it
|
||||||
|
easy to lip sync animated characters by making the process very simple – just
|
||||||
|
type in the words being spoken, then drag the words on top of the sound’s
|
||||||
|
waveform until they line up with the proper sounds.")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
|
@ -1065,20 +1065,35 @@ PS, and DAB+.")
|
||||||
(define-public faust-2
|
(define-public faust-2
|
||||||
(package
|
(package
|
||||||
(inherit faust)
|
(inherit faust)
|
||||||
(version "2.0.a51")
|
(version "2.1.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
(uri (string-append
|
(uri (git-reference
|
||||||
"mirror://sourceforge/faudiostream/faust-" version ".tgz"))
|
(url "https://github.com/grame-cncm/faust.git")
|
||||||
|
(commit (string-append "v"
|
||||||
|
(string-map (lambda (c)
|
||||||
|
(if (char=? c #\.) #\- c))
|
||||||
|
version)))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf"))))
|
"06km0ygwxxwgw1lqldccqidxhmjfz8ck0wnbd95qk5sg8sbpc068"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments faust)
|
(substitute-keyword-arguments (package-arguments faust)
|
||||||
((#:make-flags flags)
|
((#:make-flags flags)
|
||||||
`(list (string-append "prefix=" (assoc-ref %outputs "out"))
|
`(list (string-append "prefix=" (assoc-ref %outputs "out"))
|
||||||
"world"))))
|
"world"))
|
||||||
|
((#:phases phases)
|
||||||
|
`(modify-phases ,phases
|
||||||
|
;; Files appear under $out/share/faust that are read-only. The
|
||||||
|
;; install phase tries to overwrite them and fails, so we change
|
||||||
|
;; the permissions first.
|
||||||
|
(add-before 'install 'fix-permissions
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(chmod file #o644))
|
||||||
|
(find-files "architecture/max-msp" ".*"))
|
||||||
|
#t))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("llvm" ,llvm-with-rtti)
|
`(("llvm" ,llvm-with-rtti)
|
||||||
("which" ,which)
|
("which" ,which)
|
||||||
|
|
|
@ -449,13 +449,13 @@ detection, and lossless compression.")
|
||||||
(define-public borg
|
(define-public borg
|
||||||
(package
|
(package
|
||||||
(name "borg")
|
(name "borg")
|
||||||
(version "1.1.0")
|
(version "1.1.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "borgbackup" version))
|
(uri (pypi-uri "borgbackup" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0vwyg0b4kxb0rspqwhvgi5c78dzimgkydf03wif27a40qhh1235l"))
|
"0iik5lq349cl87imlwra2pp0j36wjhpn8r1d3778azvvqpyjq2d5"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(for-each
|
'(for-each
|
||||||
|
@ -505,7 +505,7 @@ detection, and lossless compression.")
|
||||||
"and not test_fuse "
|
"and not test_fuse "
|
||||||
"and not test_fuse_allow_damaged_files"))))))
|
"and not test_fuse_allow_damaged_files"))))))
|
||||||
(add-after 'install 'install-doc
|
(add-after 'install 'install-doc
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(man (string-append out "/share/man/man1"))
|
(man (string-append out "/share/man/man1"))
|
||||||
(misc (string-append out "/share/borg/misc")))
|
(misc (string-append out "/share/borg/misc")))
|
||||||
|
@ -513,11 +513,11 @@ detection, and lossless compression.")
|
||||||
'("docs/misc/create_chunker-params.txt"
|
'("docs/misc/create_chunker-params.txt"
|
||||||
"docs/misc/internals-picture.txt"
|
"docs/misc/internals-picture.txt"
|
||||||
"docs/misc/prune-example.txt"))
|
"docs/misc/prune-example.txt"))
|
||||||
|
(add-installed-pythonpath inputs outputs)
|
||||||
(and
|
(and
|
||||||
(zero? (system* "python3" "setup.py" "build_ext" "--inplace"))
|
(zero? (system* "python3" "setup.py" "build_man"))
|
||||||
(zero? (system* "make" "-C" "docs" "man"))
|
|
||||||
(begin
|
(begin
|
||||||
(install-file "docs/_build/man/borg.1" man)
|
(copy-recursively "docs/man" man)
|
||||||
#t))))))))
|
#t))))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-cython" ,python-cython)
|
`(("python-cython" ,python-cython)
|
||||||
|
|
|
@ -509,6 +509,7 @@ store.")
|
||||||
(package
|
(package
|
||||||
(name "glibc")
|
(name "glibc")
|
||||||
(version "2.25")
|
(version "2.25")
|
||||||
|
(replacement glibc/fixed)
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnu/glibc/glibc-"
|
(uri (string-append "mirror://gnu/glibc/glibc-"
|
||||||
|
@ -812,6 +813,15 @@ GLIBC/HURD for a Hurd host"
|
||||||
(define-syntax glibc
|
(define-syntax glibc
|
||||||
(identifier-syntax (glibc-for-target)))
|
(identifier-syntax (glibc-for-target)))
|
||||||
|
|
||||||
|
(define glibc/fixed
|
||||||
|
(package
|
||||||
|
(inherit glibc)
|
||||||
|
(source (origin
|
||||||
|
(inherit (package-source glibc))
|
||||||
|
(patches (append
|
||||||
|
(origin-patches (package-source glibc))
|
||||||
|
(search-patches "glibc-CVE-2017-15670-15671.patch")))))))
|
||||||
|
|
||||||
;; Below are old libc versions, which we use mostly to build locale data in
|
;; Below are old libc versions, which we use mostly to build locale data in
|
||||||
;; the old format (which the new libc cannot cope with.)
|
;; the old format (which the new libc cannot cope with.)
|
||||||
|
|
||||||
|
@ -831,6 +841,7 @@ GLIBC/HURD for a Hurd host"
|
||||||
"glibc-o-largefile.patch"
|
"glibc-o-largefile.patch"
|
||||||
"glibc-vectorized-strcspn-guards.patch"
|
"glibc-vectorized-strcspn-guards.patch"
|
||||||
"glibc-CVE-2015-5180.patch"
|
"glibc-CVE-2015-5180.patch"
|
||||||
|
"glibc-CVE-2017-15670-15671.patch"
|
||||||
"glibc-CVE-2017-1000366-pt1.patch"
|
"glibc-CVE-2017-1000366-pt1.patch"
|
||||||
"glibc-CVE-2017-1000366-pt2.patch"
|
"glibc-CVE-2017-1000366-pt2.patch"
|
||||||
"glibc-CVE-2017-1000366-pt3.patch"))))))
|
"glibc-CVE-2017-1000366-pt3.patch"))))))
|
||||||
|
@ -854,6 +865,7 @@ GLIBC/HURD for a Hurd host"
|
||||||
"glibc-CVE-2016-3075.patch"
|
"glibc-CVE-2016-3075.patch"
|
||||||
"glibc-CVE-2016-3706.patch"
|
"glibc-CVE-2016-3706.patch"
|
||||||
"glibc-CVE-2016-4429.patch"
|
"glibc-CVE-2016-4429.patch"
|
||||||
|
"glibc-CVE-2017-15670-15671.patch"
|
||||||
"glibc-CVE-2017-1000366-pt1.patch"
|
"glibc-CVE-2017-1000366-pt1.patch"
|
||||||
"glibc-CVE-2017-1000366-pt2.patch"
|
"glibc-CVE-2017-1000366-pt2.patch"
|
||||||
"glibc-CVE-2017-1000366-pt3.patch"))))))
|
"glibc-CVE-2017-1000366-pt3.patch"))))))
|
||||||
|
@ -876,6 +888,7 @@ GLIBC/HURD for a Hurd host"
|
||||||
"glibc-CVE-2016-3075.patch"
|
"glibc-CVE-2016-3075.patch"
|
||||||
"glibc-CVE-2016-3706.patch"
|
"glibc-CVE-2016-3706.patch"
|
||||||
"glibc-CVE-2016-4429.patch"
|
"glibc-CVE-2016-4429.patch"
|
||||||
|
"glibc-CVE-2017-15670-15671.patch"
|
||||||
"glibc-CVE-2017-1000366-pt1.patch"
|
"glibc-CVE-2017-1000366-pt1.patch"
|
||||||
"glibc-CVE-2017-1000366-pt2.patch"
|
"glibc-CVE-2017-1000366-pt2.patch"
|
||||||
"glibc-CVE-2017-1000366-pt3.patch"))))
|
"glibc-CVE-2017-1000366-pt3.patch"))))
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
|
;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
|
||||||
|
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -3615,7 +3616,7 @@ assembled metagenomic sequence.")
|
||||||
(define-public miso
|
(define-public miso
|
||||||
(package
|
(package
|
||||||
(name "miso")
|
(name "miso")
|
||||||
(version "0.5.3")
|
(version "0.5.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -3623,7 +3624,7 @@ assembled metagenomic sequence.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0x446867az8ir0z8c1vjqffkp0ma37wm4sylixnkhgawllzx8v5w"))
|
"1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(substitute* "setup.py"
|
'(substitute* "setup.py"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||||
|
;;; Copyright © 2017 Petter <petter@mykolab.ch>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1612,3 +1613,24 @@ extract files to standard out). As @command{atool} invokes external programs
|
||||||
to handle the archives, not all commands may be supported for a certain type
|
to handle the archives, not all commands may be supported for a certain type
|
||||||
of archives.")
|
of archives.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public perl-archive-extract
|
||||||
|
(package
|
||||||
|
(name "perl-archive-extract")
|
||||||
|
(version "0.80")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Archive-Extract/")
|
||||||
|
(synopsis "Generic archive extracting mechanism")
|
||||||
|
(description "It allows you to extract any archive file of the type .tar,
|
||||||
|
.tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma
|
||||||
|
without having to worry how it does so, or use different interfaces for each
|
||||||
|
type by using either Perl modules, or command-line tools on your system.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
(package
|
(package
|
||||||
(name "curl")
|
(name "curl")
|
||||||
(version "7.56.0")
|
(version "7.56.0")
|
||||||
|
(replacement curl-7.56.1)
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||||
|
@ -130,3 +131,16 @@ tunneling, and so on.")
|
||||||
(license (license:non-copyleft "file://COPYING"
|
(license (license:non-copyleft "file://COPYING"
|
||||||
"See COPYING in the distribution."))
|
"See COPYING in the distribution."))
|
||||||
(home-page "https://curl.haxx.se/")))
|
(home-page "https://curl.haxx.se/")))
|
||||||
|
|
||||||
|
(define-public curl-7.56.1
|
||||||
|
(package
|
||||||
|
(inherit curl)
|
||||||
|
(version "7.56.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1l9r386qz7l7h4n5lysrf1wq93lyc72a7shgg9b8s5d0ycn2ivcf"))))))
|
||||||
|
|
|
@ -1582,14 +1582,14 @@ on another machine, accessed via TCP/IP.")
|
||||||
(define-public python-peewee
|
(define-public python-peewee
|
||||||
(package
|
(package
|
||||||
(name "python-peewee")
|
(name "python-peewee")
|
||||||
(version "2.8.3")
|
(version "2.10.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "peewee" version))
|
(uri (pypi-uri "peewee" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1605bk11s7aap2q4qyba93rx7yfh8b11kk0cqi08z8klx2iar8yd"))))
|
"10f2mrd5hw6rjklrzaix2lsxlgc8vx3xak54arcy6yd791zhchi3"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ; Fails to import test data
|
`(#:tests? #f)) ; Fails to import test data
|
||||||
|
@ -1728,13 +1728,13 @@ etc., and an SQL engine for performing simple SQL queries.")
|
||||||
(define-public python-lmdb
|
(define-public python-lmdb
|
||||||
(package
|
(package
|
||||||
(name "python-lmdb")
|
(name "python-lmdb")
|
||||||
(version "0.92")
|
(version "0.93")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "lmdb" version))
|
(uri (pypi-uri "lmdb" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx"))
|
"0xdpb298fyl68acadbwv5801wcwfpnhc7sm4bnrq1x4bd5dhhsql"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
;; Delete bundled lmdb source files.
|
;; Delete bundled lmdb source files.
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
|
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
|
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -150,7 +151,7 @@ with arguments to the field constructor.")
|
||||||
`(("python-django" ,python-django)
|
`(("python-django" ,python-django)
|
||||||
("python-setuptools-scm" ,python-setuptools-scm)))
|
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-pytest" ,python-pytest)))
|
`(("python-pytest" ,python-pytest-3.0)))
|
||||||
(home-page "http://pytest-django.readthedocs.org/")
|
(home-page "http://pytest-django.readthedocs.org/")
|
||||||
(synopsis "Django plugin for py.test")
|
(synopsis "Django plugin for py.test")
|
||||||
(description "Pytest-django is a plugin for py.test that provides a set of
|
(description "Pytest-django is a plugin for py.test that provides a set of
|
||||||
|
|
|
@ -42,6 +42,8 @@
|
||||||
#:use-module (gnu packages libusb)
|
#:use-module (gnu packages libusb)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages swig)
|
||||||
#:use-module (gnu packages texinfo)
|
#:use-module (gnu packages texinfo)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
|
@ -867,3 +869,66 @@ the Raspberry Pi chip.")
|
||||||
(synopsis "GCC for VC4")
|
(synopsis "GCC for VC4")
|
||||||
(description "This package provides @code{gcc} for VideoCore IV,
|
(description "This package provides @code{gcc} for VideoCore IV,
|
||||||
the Raspberry Pi chip."))))
|
the Raspberry Pi chip."))))
|
||||||
|
|
||||||
|
(define-public python2-libmpsse
|
||||||
|
(package
|
||||||
|
(name "python2-libmpsse")
|
||||||
|
(version "1.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://storage.googleapis.com/"
|
||||||
|
"google-code-archive-downloads/v2/"
|
||||||
|
"code.google.com/libmpsse/"
|
||||||
|
"libmpsse-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0jq7nhqq3na8675jnpfcar3pd3dp3adhhc4lw900swkla01a1wh8"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("libftdi" ,libftdi)
|
||||||
|
("python" ,python-2)))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("swig" ,swig)
|
||||||
|
("which" ,base:which)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; No tests exist.
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "CFLAGS=-Wall -fPIC -fno-strict-aliasing -g -O2 "
|
||||||
|
"$(shell pkg-config --cflags libftdi1)"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'set-environment-up
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(chdir "src")
|
||||||
|
(setenv "PYDEV" (string-append (assoc-ref inputs "python")
|
||||||
|
"/include/python2.7"))
|
||||||
|
#t))
|
||||||
|
(add-after 'unpack 'patch-global-variable
|
||||||
|
(lambda _
|
||||||
|
;; fast_rw_buf was defined in a header file which was making
|
||||||
|
;; the build not reproducible.
|
||||||
|
(substitute* "src/fast.c"
|
||||||
|
(("^int fast_build_block_buffer") "
|
||||||
|
|
||||||
|
unsigned char fast_rw_buf[SPI_RW_SIZE + CMD_SIZE];
|
||||||
|
int fast_build_block_buffer"))
|
||||||
|
(substitute* "src/mpsse.h"
|
||||||
|
(("unsigned char fast_rw_buf.*") "
|
||||||
|
"))
|
||||||
|
#t))
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs make-flags #:allow-other-keys #:rest args)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(out-python (string-append out
|
||||||
|
"/lib/python2.7/site-packages"))
|
||||||
|
(install (assoc-ref %standard-phases 'install)))
|
||||||
|
(install #:make-flags (cons (string-append "PYLIB=" out-python)
|
||||||
|
make-flags))))))))
|
||||||
|
(home-page "https://code.google.com/archive/p/libmpsse/")
|
||||||
|
(synopsis "Python library for MPSSE SPI I2C JTAG adapter by FTDI")
|
||||||
|
(description "This package provides a library in order to support the
|
||||||
|
MPSSE (Multi-Protocol Synchronous Serial Engine) adapter by FTDI that can do
|
||||||
|
SPI, I2C, JTAG.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -267,7 +267,8 @@ the others like yourself, that want what you have.")
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(zero? (system* "sh" "install.sh"
|
(zero? (system* "sh" "install.sh"
|
||||||
(assoc-ref outputs "out")))))
|
(assoc-ref outputs "out")))))
|
||||||
(replace 'check
|
(delete 'check)
|
||||||
|
(add-after 'install 'check
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(zero? (system* (string-append (assoc-ref outputs "out")
|
(zero? (system* (string-append (assoc-ref outputs "out")
|
||||||
"/bin/cowsay")
|
"/bin/cowsay")
|
||||||
|
|
|
@ -5,13 +5,14 @@
|
||||||
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||||
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
|
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
|
||||||
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
|
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
|
||||||
;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
|
;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
|
||||||
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
||||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||||
|
;;; Copyright © 2017 Petter <petter@mykolab.ch>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -837,3 +838,40 @@ them to transform your existing public key into a secret key.")
|
||||||
@uref{https://gnupg.org, GnuPG}. It can be used to encrypt, decrypt, and sign
|
@uref{https://gnupg.org, GnuPG}. It can be used to encrypt, decrypt, and sign
|
||||||
files, to verify signatures, and to manage the private and public keys.")
|
files, to verify signatures, and to manage the private and public keys.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public perl-gnupg-interface
|
||||||
|
(package
|
||||||
|
(name "perl-gnupg-interface")
|
||||||
|
(version "0.52")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/"
|
||||||
|
"GnuPG-Interface-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; FIXME: This test fails for unknown reasons
|
||||||
|
(add-after 'unpack 'delete-broken-test
|
||||||
|
(lambda _
|
||||||
|
(delete-file "t/encrypt_symmetrically.t")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("gnupg" ,gnupg-1)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-moo" ,perl-moo)
|
||||||
|
("perl-moox-handlesvia" ,perl-moox-handlesvia)
|
||||||
|
("perl-moox-late" ,perl-moox-late)))
|
||||||
|
(native-inputs
|
||||||
|
`(("which" ,which)
|
||||||
|
("perl-module-install" ,perl-module-install)))
|
||||||
|
(home-page "http://search.cpan.org/dist/GnuPG-Interface/")
|
||||||
|
(synopsis "Perl interface to GnuPG")
|
||||||
|
(description "@code{GnuPG::Interface} and its associated modules are
|
||||||
|
designed to provide an object-oriented method for interacting with GnuPG,
|
||||||
|
being able to perform functions such as but not limited to encrypting,
|
||||||
|
signing, decryption, verification, and key-listing parsing.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
|
@ -441,7 +441,16 @@ standards.")
|
||||||
(mozilla-patch "icecat-bug-1368269.patch" "0cff5e66e0f4" "0jb0wqi7c0ih4441s1908j6gv18v4inh7k2w47h3c9nhz4rgyrw7")
|
(mozilla-patch "icecat-bug-1368269.patch" "0cff5e66e0f4" "0jb0wqi7c0ih4441s1908j6gv18v4inh7k2w47h3c9nhz4rgyrw7")
|
||||||
(mozilla-patch "icecat-CVE-2017-7793.patch" "6ff3c82962f0" "0bw82034kdmrpznigbavzzsiybzrw8giyf8v0z2cxf6mwl72bf9k")
|
(mozilla-patch "icecat-CVE-2017-7793.patch" "6ff3c82962f0" "0bw82034kdmrpznigbavzzsiybzrw8giyf8v0z2cxf6mwl72bf9k")
|
||||||
(mozilla-patch "icecat-bug-1400399.patch" "d6f78b1349b7" "0i3gwr2al3xl65yfa3nimvy8dp0jzpx21f6bjw18xwn7zkkh9j54")
|
(mozilla-patch "icecat-bug-1400399.patch" "d6f78b1349b7" "0i3gwr2al3xl65yfa3nimvy8dp0jzpx21f6bjw18xwn7zkkh9j54")
|
||||||
(mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam")))
|
(mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam")
|
||||||
|
(mozilla-patch "icecat-bug-1395138.patch" "98b3988592a6" "03wy173lj6mvmh5q92brf596h8676h0zasgqfnndpvsmsiaih120")
|
||||||
|
(mozilla-patch "icecat-bug-1369561.patch" "47590f0c274b" "0zsys6dcyhfb4a8k2dhsls7425jg6r1ijlrsn1lc5smwyf62zx5v")
|
||||||
|
(mozilla-patch "icecat-bug-1375146.patch" "55b435cbbb55" "1gcasaqrxa13a55v05bkxl3d1md829kpfhqiaws83wn08x28l0my")
|
||||||
|
(mozilla-patch "icecat-bug-1394530.patch" "8549cf2dab3e" "168gs32ncavaj9xn4gwhh9i01cbpnhgx9yn333apsrc1gwknpvsr")
|
||||||
|
(mozilla-patch "icecat-bug-1400554.patch" "349acf56ff49" "1vwn87rdryfjsn809pl50xmr82q98gz3vz9h6clkd905vbd9rwz7")
|
||||||
|
(mozilla-patch "icecat-bug-1400003.patch" "3af5bf8bdea0" "07az28dnpxr36j7i3llxkrlkrmg0bwk4f3sm75x1f0r1v5575p3p")
|
||||||
|
(mozilla-patch "icecat-bug-1407751.patch" "592df6088926" "1gy27idik4b6wcg4szww08cmpcljssja8wql6w1d807h7ni65lr7")
|
||||||
|
(mozilla-patch "icecat-bug-1261175.patch" "77a2d4610275" "13ysbwflnysj4rs45ibckd621s0vyg1s8dvannlvanvrz1g72zcz")
|
||||||
|
(mozilla-patch "icecat-bug-1394265.patch" "2b30335d0b95" "0hs5cwickvfw7r5dn7y148jgr2b21hl613qp83k56634d0y64qwp")))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
|
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
|
||||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -112,13 +113,13 @@ interfaces for other technical domains.")
|
||||||
(define-public python-graphviz
|
(define-public python-graphviz
|
||||||
(package
|
(package
|
||||||
(name "python-graphviz")
|
(name "python-graphviz")
|
||||||
(version "0.8")
|
(version "0.8.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "graphviz" version ".zip"))
|
(uri (pypi-uri "graphviz" version ".zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0i738qb32w93hraxzjwkvnxmrfwcalhjd14fdbah9f2mk46p5748"))))
|
"00rzqsmq25b0say05vix5xivchdvsv83jl2i8pkryqd0nz4bxzvb"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("unzip" ,unzip)))
|
`(("unzip" ,unzip)))
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -32,6 +32,7 @@
|
||||||
(define-public icu4c
|
(define-public icu4c
|
||||||
(package
|
(package
|
||||||
(name "icu4c")
|
(name "icu4c")
|
||||||
|
(replacement icu4c-fixed)
|
||||||
(version "58.2")
|
(version "58.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -70,6 +71,15 @@ C/C++ part.")
|
||||||
(license x11)
|
(license x11)
|
||||||
(home-page "http://site.icu-project.org/")))
|
(home-page "http://site.icu-project.org/")))
|
||||||
|
|
||||||
|
(define icu4c-fixed
|
||||||
|
(package
|
||||||
|
(inherit icu4c)
|
||||||
|
(source (origin
|
||||||
|
(inherit (package-source icu4c))
|
||||||
|
(patches (append
|
||||||
|
(origin-patches (package-source icu4c))
|
||||||
|
(search-patches "icu4c-CVE-2017-14952.patch")))))))
|
||||||
|
|
||||||
(define-public java-icu4j
|
(define-public java-icu4j
|
||||||
(package
|
(package
|
||||||
(name "java-icu4j")
|
(name "java-icu4j")
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages libffi)
|
#:use-module (gnu packages libffi)
|
||||||
#:use-module (gnu packages linux) ;alsa
|
#:use-module (gnu packages linux) ;alsa
|
||||||
|
#:use-module (gnu packages web)
|
||||||
#:use-module (gnu packages wget)
|
#:use-module (gnu packages wget)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
|
@ -6020,3 +6021,213 @@ provides low-level abstractions (@code{JsonParser}, @code{JsonGenerator},
|
||||||
@code{JsonFactory}) as well as small number of higher level overrides needed to
|
@code{JsonFactory}) as well as small number of higher level overrides needed to
|
||||||
make data-binding work.")
|
make data-binding work.")
|
||||||
(license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
|
(license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
|
||||||
|
|
||||||
|
(define-public java-hdrhistogram
|
||||||
|
(package
|
||||||
|
(name "java-hdrhistogram")
|
||||||
|
(version "2.1.9")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/HdrHistogram/HdrHistogram/"
|
||||||
|
"archive/HdrHistogram-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1sicbmc3sr42nw93qbkb26q9rn33ag33k6k77phjc3j5h5gjffqv"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "java-hdrhistogram.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'set-version
|
||||||
|
(lambda _
|
||||||
|
(let* ((version-java "src/main/java/org/HdrHistogram/Version.java")
|
||||||
|
(template (string-append version-java ".template")))
|
||||||
|
(copy-file template version-java)
|
||||||
|
(substitute* version-java
|
||||||
|
(("\\$VERSION\\$") ,version)
|
||||||
|
(("\\$BUILD_TIME\\$") "0"))
|
||||||
|
#t))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("junit" ,java-junit)
|
||||||
|
("hamcrest" ,java-hamcrest-core)))
|
||||||
|
(home-page "https://hdrhistogram.github.io/HdrHistogram")
|
||||||
|
(synopsis "High dynamic range histogram")
|
||||||
|
(description "Hdrhistogram allows to create histograms that support
|
||||||
|
recording and analyzing sampled data value counts across a configurable integer
|
||||||
|
value range with configurable value precision within the range. Value precision
|
||||||
|
is expressed as the number of significant digits in the value recording, and
|
||||||
|
provides control over value quantization behavior across the value range and
|
||||||
|
the subsequent value resolution at any given level.")
|
||||||
|
(license license:public-domain)))
|
||||||
|
|
||||||
|
(define-public java-aopalliance
|
||||||
|
(package
|
||||||
|
(name "java-aopalliance")
|
||||||
|
(version "1.0")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
;; Note: this git repository is not official, but contains the
|
||||||
|
;; source code that is in the CVS repository. Downloading the
|
||||||
|
;; tarball from sourceforge is undeterministic, and the cvs download
|
||||||
|
;; fails.
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/hoverruan/aopalliance")
|
||||||
|
(commit "0d7757ae204e5876f69431421fe9bc2a4f01e8a0")))
|
||||||
|
(file-name (string-append name "-" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0rsg2b0v3hxlq2yk1i3m2gw3xwq689j3cwx9wbxvqfpdcjbca0qr"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "java-aopalliance.jar"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f; no tests
|
||||||
|
#:source-dir "aopalliance/src/main"))
|
||||||
|
(home-page "http://aopalliance.sourceforge.net")
|
||||||
|
(synopsis "Aspect-Oriented Programming")
|
||||||
|
(description "The AOP Alliance project is a joint project between several
|
||||||
|
software engineering people who are interested in Aspect-Oriented Programming
|
||||||
|
(AOP) and Java.")
|
||||||
|
(license license:public-domain)))
|
||||||
|
|
||||||
|
(define-public java-javax-inject
|
||||||
|
(package
|
||||||
|
(name "java-javax-inject")
|
||||||
|
(version "tck-1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/javax-inject/javax-inject/"
|
||||||
|
"archive/javax.inject-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1ydrlvh2r7vr1g7lhjwy3w2dggpj9h6pix1lakkkgdywb365n6g0"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "java-javax-inject.jar"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f)); no tests
|
||||||
|
(home-page "http://github.com/javax-inject/javax-inject")
|
||||||
|
(synopsis "JSR-330: Dependency Injection for Java")
|
||||||
|
(description "This package specifies a means for obtaining objects in such
|
||||||
|
a way as to maximize reusability, testability and maintainability compared to
|
||||||
|
traditional approaches such as constructors, factories, and service locators
|
||||||
|
(e.g., JNDI). This process, known as dependency injection, is beneficial to
|
||||||
|
most nontrivial applications.
|
||||||
|
|
||||||
|
Many types depend on other types. For example, a @var{Stopwatch} might depend
|
||||||
|
on a @var{TimeSource}. The types on which a type depends are known as its
|
||||||
|
dependencies. The process of finding an instance of a dependency to use at run
|
||||||
|
time is known as resolving the dependency. If no such instance can be found,
|
||||||
|
the dependency is said to be unsatisfied, and the application is broken.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public java-guice
|
||||||
|
(package
|
||||||
|
(name "java-guice")
|
||||||
|
(version "4.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/google/guice/archive/"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "java-guice.jar"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f; FIXME: tests are not in a java sub directory
|
||||||
|
#:source-dir "core/src"))
|
||||||
|
(inputs
|
||||||
|
`(("guava" ,java-guava)
|
||||||
|
("java-cglib" ,java-cglib)
|
||||||
|
("java-aopalliance" ,java-aopalliance)
|
||||||
|
("java-javax-inject" ,java-javax-inject)
|
||||||
|
("java-asm" ,java-asm)))
|
||||||
|
(home-page "https://github.com/google/guice")
|
||||||
|
(synopsis "Lightweight dependency injection framework")
|
||||||
|
(description "Guice is a lightweight dependency injection framework fo
|
||||||
|
Java 6 and above.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public java-guice-servlet
|
||||||
|
(package
|
||||||
|
(inherit java-guice)
|
||||||
|
(name "java-guice-servlet")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "guice-servlet.jar"
|
||||||
|
#:source-dir "extensions/servlet/src/"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f)); FIXME: not in a java subdir
|
||||||
|
(inputs
|
||||||
|
`(("guice" ,java-guice)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
,@(package-inputs java-guice)))))
|
||||||
|
|
||||||
|
(define-public java-assertj
|
||||||
|
(package
|
||||||
|
(name "java-assertj")
|
||||||
|
(version "3.8.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/joel-costigliola/"
|
||||||
|
"assertj-core/archive/"
|
||||||
|
"assertj-core-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1kf124fxskf548rklkg86294w2x6ajqrff94rrhyqns31danqkfz"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "java-assertj.jar"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:tests? #f)); depends on tng-junit which depends on assertj
|
||||||
|
(inputs
|
||||||
|
`(("cglib" ,java-cglib)
|
||||||
|
("junit" ,java-junit)
|
||||||
|
("hamcrest" ,java-hamcrest-core)))
|
||||||
|
(native-inputs
|
||||||
|
`(("mockito" ,java-mockito-1)))
|
||||||
|
(home-page "https://joel-costigliola.github.io/assertj/index.html")
|
||||||
|
(synopsis "Fluent assertions for java")
|
||||||
|
(description "AssertJ core is a Java library that provides a fluent
|
||||||
|
interface for writing assertions. Its main goal is to improve test code
|
||||||
|
readability and make maintenance of tests easier.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public java-jboss-javassist
|
||||||
|
(package
|
||||||
|
(name "java-jboss-javassist")
|
||||||
|
(version "3.21.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/jboss-javassist/javassist/"
|
||||||
|
"archive/rel_"
|
||||||
|
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
|
||||||
|
"_ga.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"10lpcr3sbf7y6fq6fc2h2ik7rqrivwcy4747bg0kxhwszil3cfmf"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "java-jboss-javassist.jar"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:source-dir "src/main"
|
||||||
|
#:tests? #f; FIXME: requires junit-awtui and junit-swingui from junit3
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'remove-binary
|
||||||
|
(lambda _
|
||||||
|
(delete-file "javassist.jar")
|
||||||
|
#t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("junit" ,java-junit)))
|
||||||
|
(home-page "https://github.com/jboss-javassist/javassist")
|
||||||
|
(synopsis "Java bytecode engineering toolkit")
|
||||||
|
(description "Javassist (JAVA programming ASSISTant) makes Java bytecode
|
||||||
|
manipulation simple. It is a class library for editing bytecodes in Java; it
|
||||||
|
enables Java programs to define a new class at runtime and to modify a class
|
||||||
|
file when the JVM loads it.")
|
||||||
|
(license (list license:gpl2 license:cddl1.0)))); either gpl2 only or cddl.
|
||||||
|
|
|
@ -368,8 +368,8 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
|
|
||||||
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
||||||
|
|
||||||
(define %linux-libre-version "4.13.8")
|
(define %linux-libre-version "4.13.9")
|
||||||
(define %linux-libre-hash "0qi2n5lczqwq2v0q5zl08ac3x4lixpj1dmb0kza6hsllmx8hbybw")
|
(define %linux-libre-hash "1ymsdvm4djh7hg2wmn2v11w380i0ss9nkp4slfrgihdvn6yp5gbv")
|
||||||
|
|
||||||
(define-public linux-libre
|
(define-public linux-libre
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre %linux-libre-version
|
||||||
|
@ -378,14 +378,14 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
(define-public linux-libre-4.9
|
(define-public linux-libre-4.9
|
||||||
(make-linux-libre "4.9.57"
|
(make-linux-libre "4.9.58"
|
||||||
"02ldxzbazdbhvgkwxl6xblkwj75s5cm33fpm77kv394w35jan3by"
|
"0f1yxdvzdr1zfkh86i9z0p7ywdlz0blxnd11wbnw763qyk3qydyk"
|
||||||
%intel-compatible-systems
|
%intel-compatible-systems
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
(define-public linux-libre-4.4
|
(define-public linux-libre-4.4
|
||||||
(make-linux-libre "4.4.93"
|
(make-linux-libre "4.4.94"
|
||||||
"1llpqkm7vvwi5fm92y4n6qrc89ps7kdfl83s7m38a2yivm3kgzr6"
|
"0g63is8d2k1mf1kaljkll79n7gzh4qn0fmrm2r9sab2sq41hch1m"
|
||||||
%intel-compatible-systems
|
%intel-compatible-systems
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
|
|
|
@ -90,62 +90,6 @@ in Qt.")
|
||||||
components of the LXQt desktop environment.")
|
components of the LXQt desktop environment.")
|
||||||
(license lgpl2.1+)))
|
(license lgpl2.1+)))
|
||||||
|
|
||||||
|
|
||||||
(define-public lxqt-common
|
|
||||||
(package
|
|
||||||
(name "lxqt-common")
|
|
||||||
(version "0.9.1")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri
|
|
||||||
(string-append "https://github.com/lxde/" name
|
|
||||||
"/archive/" version ".tar.gz"))
|
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1vd3zarvl44l3y6wn7kgxcd2f1bygsmk5bcfqwa3568cq3b57aw0"))))
|
|
||||||
(build-system cmake-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:tests? #f ; no check target
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(add-before 'configure 'fix-installation-paths
|
|
||||||
(lambda _
|
|
||||||
;; The variable LXQT_ETC_XDG_DIR is set in
|
|
||||||
;; liblxqt-0.9.0/share/cmake/lxqt/lxqt-config.cmake
|
|
||||||
;; to the Qt5 installation directory, followed by "/etc/xdg".
|
|
||||||
;; We need to have it point to the current installation
|
|
||||||
;; directory instead.
|
|
||||||
(substitute* '("config/CMakeLists.txt"
|
|
||||||
"menu/CMakeLists.txt")
|
|
||||||
(("\\$\\{LXQT_ETC_XDG_DIR\\}")
|
|
||||||
"${CMAKE_INSTALL_PREFIX}/etc/xdg")
|
|
||||||
;; In the same file, LXQT_SHARE_DIR is set to the installation
|
|
||||||
;; directory of liblxqt, followed by "/share/lxqt".
|
|
||||||
(("\\$\\{LXQT_SHARE_DIR\\}")
|
|
||||||
"${CMAKE_INSTALL_PREFIX}/share/lxqt"))
|
|
||||||
;; Replace absolute directories.
|
|
||||||
(substitute* "autostart/CMakeLists.txt"
|
|
||||||
(("/etc/xdg")
|
|
||||||
"${CMAKE_INSTALL_PREFIX}/etc/xdg"))
|
|
||||||
(substitute* "xsession/CMakeLists.txt"
|
|
||||||
(("/usr/share")
|
|
||||||
"${CMAKE_INSTALL_PREFIX}/share")))))))
|
|
||||||
(inputs
|
|
||||||
`(("kwindowsystem" ,kwindowsystem)
|
|
||||||
("liblxqt" ,liblxqt)
|
|
||||||
("libqtxdg" ,libqtxdg)
|
|
||||||
("qtbase" ,qtbase)
|
|
||||||
("qttools" ,qttools)
|
|
||||||
("qtx11extras" ,qtx11extras)))
|
|
||||||
(home-page "http://lxqt.org/")
|
|
||||||
(synopsis "Common files for LXQt")
|
|
||||||
(description "lxqt-common provides the desktop integration files
|
|
||||||
(themes, icons, configuration files etc.) for the LXQt
|
|
||||||
desktop environment.")
|
|
||||||
(license lgpl2.1+)))
|
|
||||||
|
|
||||||
(define-public lxqt-session
|
(define-public lxqt-session
|
||||||
(package
|
(package
|
||||||
(name "lxqt-session")
|
(name "lxqt-session")
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#:use-module (gnu packages backup)
|
#:use-module (gnu packages backup)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
|
#:use-module (gnu packages calendar)
|
||||||
#:use-module (gnu packages crypto)
|
#:use-module (gnu packages crypto)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages cyrus-sasl)
|
#:use-module (gnu packages cyrus-sasl)
|
||||||
|
@ -939,6 +940,7 @@ compresses it.")
|
||||||
("libarchive" ,libarchive)
|
("libarchive" ,libarchive)
|
||||||
("libcanberra" ,libcanberra)
|
("libcanberra" ,libcanberra)
|
||||||
("libetpan" ,libetpan)
|
("libetpan" ,libetpan)
|
||||||
|
("libical" ,libical)
|
||||||
("libnotify" ,libnotify)
|
("libnotify" ,libnotify)
|
||||||
("libsm" ,libsm)
|
("libsm" ,libsm)
|
||||||
("libxml2" ,libxml2)
|
("libxml2" ,libxml2)
|
||||||
|
|
|
@ -3296,3 +3296,41 @@ based around a MIDI sequencer that features a rich understanding of music
|
||||||
notation and includes basic support for digital audio.")
|
notation and includes basic support for digital audio.")
|
||||||
(home-page "http://www.rosegardenmusic.com/")
|
(home-page "http://www.rosegardenmusic.com/")
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public sorcer
|
||||||
|
(package
|
||||||
|
(name "sorcer")
|
||||||
|
(version "1.1.3")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/openAVproductions/"
|
||||||
|
"openAV-Sorcer/archive/release-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"07iyqj28wm0xc4arrq893bm12xjpz65db7ynrlmf6w8krg8wjmd0"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; no tests included
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'build-faust-sources
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(with-directory-excursion "faust"
|
||||||
|
(delete-file "main.cpp")
|
||||||
|
(zero? (system* "faust" "-i"
|
||||||
|
"-a" "lv2synth.cpp"
|
||||||
|
"-o" "main.cpp" "main.dsp"))))))))
|
||||||
|
(inputs
|
||||||
|
`(("boost" ,boost)
|
||||||
|
("lv2" ,lv2)
|
||||||
|
("ntk" ,ntk)))
|
||||||
|
(native-inputs
|
||||||
|
`(("faust" ,faust)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(home-page "http://openavproductions.com/sorcer/")
|
||||||
|
(synopsis "Wavetable LV2 plugin synth")
|
||||||
|
(description "Sorcer is a wavetable LV2 plugin synthesizer, targeted at
|
||||||
|
the electronic or dubstep genre.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#:use-module (gnu packages adns)
|
#:use-module (gnu packages adns)
|
||||||
#:use-module (gnu packages algebra)
|
#:use-module (gnu packages algebra)
|
||||||
#:use-module (gnu packages audio)
|
#:use-module (gnu packages audio)
|
||||||
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages code)
|
#:use-module (gnu packages code)
|
||||||
|
@ -55,6 +56,7 @@
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages databases)
|
#:use-module (gnu packages databases)
|
||||||
#:use-module (gnu packages dejagnu)
|
#:use-module (gnu packages dejagnu)
|
||||||
|
#:use-module (gnu packages documentation)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
|
@ -1494,3 +1496,42 @@ interface and a programmable text output for scripting.")
|
||||||
;; Update the license field when upstream responds.
|
;; Update the license field when upstream responds.
|
||||||
(license (list license:bsd-2
|
(license (list license:bsd-2
|
||||||
license:expat))))
|
license:expat))))
|
||||||
|
|
||||||
|
(define-public libnet
|
||||||
|
(package
|
||||||
|
(name "libnet")
|
||||||
|
(version "1.1.6")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/sam-github/libnet/"
|
||||||
|
"archive/libnet-" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0l4gbzzvr199fzczzricjz7b825i7dlk6sgl5p5alnkcagmq0xys"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'chdir
|
||||||
|
(lambda _ (chdir "libnet") #t))
|
||||||
|
(add-after 'chdir 'bootstrap
|
||||||
|
(lambda _ (zero? (system* "autoreconf" "-vif"))))
|
||||||
|
(add-before 'build 'build-doc
|
||||||
|
(lambda* (#:key make-flags #:allow-other-keys)
|
||||||
|
(zero? (apply system* "make" "-C" "doc" "doc"
|
||||||
|
make-flags)))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("autoconf" ,autoconf)
|
||||||
|
("automake" ,automake)
|
||||||
|
("libtool" ,libtool)
|
||||||
|
("doxygen" ,doxygen)))
|
||||||
|
(home-page "https://sourceforge.net/projects/libnet-dev/")
|
||||||
|
(synopsis "Framework for low-level network packet construction")
|
||||||
|
(description
|
||||||
|
"Libnet provides a fairly portable framework for network packet
|
||||||
|
construction and injection. It features portable packet creation interfaces
|
||||||
|
at the IP layer and link layer, as well as a host of supplementary
|
||||||
|
functionality. Using libnet, quick and simple packet assembly applications
|
||||||
|
can be whipped up with little effort.")
|
||||||
|
(license license:bsd-2)))
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
Fix CVE-2017-15670:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15670
|
||||||
|
https://sourceware.org/bugzilla/show_bug.cgi?id=22320
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1504804
|
||||||
|
|
||||||
|
And CVE-2017-15671:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15671
|
||||||
|
https://sourceware.org/bugzilla/show_bug.cgi?id=22325
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2017-15671
|
||||||
|
|
||||||
|
Copied from upstream:
|
||||||
|
<https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=2d1bd71ec70a31b01d01b734faa66bb1ed28961f>
|
||||||
|
|
||||||
|
diff --git a/posix/glob.c b/posix/glob.c
|
||||||
|
--- a/posix/glob.c
|
||||||
|
+++ b/posix/glob.c
|
||||||
|
@@ -843,7 +843,7 @@
|
||||||
|
*p = '\0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- *((char *) mempcpy (newp, dirname + 1, end_name - dirname))
|
||||||
|
+ *((char *) mempcpy (newp, dirname + 1, end_name - dirname - 1))
|
||||||
|
= '\0';
|
||||||
|
user_name = newp;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
Fix CVE-2017-14952:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14952
|
||||||
|
|
||||||
|
Patch copied from upstream source repository:
|
||||||
|
|
||||||
|
http://bugs.icu-project.org/trac/changeset/40324/trunk/icu4c/source/i18n/zonemeta.cpp#file0
|
||||||
|
|
||||||
|
Index: trunk/icu4c/source/i18n/zonemeta.cpp
|
||||||
|
===================================================================
|
||||||
|
--- icu/source/i18n/zonemeta.cpp (revision 40283)
|
||||||
|
+++ icu/source/i18n/zonemeta.cpp (revision 40324)
|
||||||
|
@@ -691,5 +691,4 @@
|
||||||
|
if (U_FAILURE(status)) {
|
||||||
|
delete mzMappings;
|
||||||
|
- deleteOlsonToMetaMappingEntry(entry);
|
||||||
|
uprv_free(entry);
|
||||||
|
break;
|
|
@ -0,0 +1,34 @@
|
||||||
|
Fix CVE-2017-14685:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14685
|
||||||
|
|
||||||
|
Patch copied from upstream source repository:
|
||||||
|
|
||||||
|
https://git.ghostscript.com/?p=mupdf.git;h=ab1a420613dec93c686acbee2c165274e922f82a
|
||||||
|
|
||||||
|
From ab1a420613dec93c686acbee2c165274e922f82a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tor Andersson <tor.andersson@artifex.com>
|
||||||
|
Date: Tue, 19 Sep 2017 15:23:04 +0200
|
||||||
|
Subject: [PATCH] Fix 698539: Don't use xps font if it could not be loaded.
|
||||||
|
|
||||||
|
xps_load_links_in_glyphs did not cope with font loading failures.
|
||||||
|
---
|
||||||
|
source/xps/xps-link.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/source/xps/xps-link.c b/source/xps/xps-link.c
|
||||||
|
index c07e0d7..c26a8d9 100644
|
||||||
|
--- a/source/xps/xps-link.c
|
||||||
|
+++ b/source/xps/xps-link.c
|
||||||
|
@@ -91,6 +91,8 @@ xps_load_links_in_glyphs(fz_context *ctx, xps_document *doc, const fz_matrix *ct
|
||||||
|
bidi_level = atoi(bidi_level_att);
|
||||||
|
|
||||||
|
font = xps_lookup_font(ctx, doc, base_uri, font_uri_att, style_att);
|
||||||
|
+ if (!font)
|
||||||
|
+ return;
|
||||||
|
text = xps_parse_glyphs_imp(ctx, doc, &local_ctm, font, fz_atof(font_size_att),
|
||||||
|
fz_atof(origin_x_att), fz_atof(origin_y_att),
|
||||||
|
is_sideways, bidi_level, indices_att, unicode_att);
|
||||||
|
--
|
||||||
|
2.9.1
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
Fix CVE-2017-14686:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14686
|
||||||
|
|
||||||
|
Patch copied from upstream source repository:
|
||||||
|
|
||||||
|
https://git.ghostscript.com/?p=mupdf.git;h=0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1
|
||||||
|
|
||||||
|
From 0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tor Andersson <tor.andersson@artifex.com>
|
||||||
|
Date: Tue, 19 Sep 2017 16:33:38 +0200
|
||||||
|
Subject: [PATCH] Fix 698540: Check name, comment and meta size field signs.
|
||||||
|
|
||||||
|
---
|
||||||
|
source/fitz/unzip.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/source/fitz/unzip.c b/source/fitz/unzip.c
|
||||||
|
index f2d4f32..0bcce0f 100644
|
||||||
|
--- a/source/fitz/unzip.c
|
||||||
|
+++ b/source/fitz/unzip.c
|
||||||
|
@@ -141,6 +141,9 @@ static void read_zip_dir_imp(fz_context *ctx, fz_zip_archive *zip, int start_off
|
||||||
|
(void) fz_read_int32_le(ctx, file); /* ext file atts */
|
||||||
|
offset = fz_read_int32_le(ctx, file);
|
||||||
|
|
||||||
|
+ if (namesize < 0 || metasize < 0 || commentsize < 0)
|
||||||
|
+ fz_throw(ctx, FZ_ERROR_GENERIC, "invalid size in zip entry");
|
||||||
|
+
|
||||||
|
name = fz_malloc(ctx, namesize + 1);
|
||||||
|
n = fz_read(ctx, file, (unsigned char*)name, namesize);
|
||||||
|
if (n < (size_t)namesize)
|
||||||
|
--
|
||||||
|
2.9.1
|
||||||
|
|
|
@ -0,0 +1,130 @@
|
||||||
|
Fix CVE-2017-14687:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14687
|
||||||
|
|
||||||
|
Patch copied from upstream source repository:
|
||||||
|
|
||||||
|
https://git.ghostscript.com/?p=mupdf.git;h=2b16dbd8f73269cb15ca61ece75cf8d2d196ed28
|
||||||
|
|
||||||
|
From 2b16dbd8f73269cb15ca61ece75cf8d2d196ed28 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tor Andersson <tor.andersson@artifex.com>
|
||||||
|
Date: Tue, 19 Sep 2017 17:17:12 +0200
|
||||||
|
Subject: [PATCH] Fix 698558: Handle non-tags in tag name comparisons.
|
||||||
|
|
||||||
|
Use fz_xml_is_tag instead of fz_xml_tag && !strcmp idiom.
|
||||||
|
---
|
||||||
|
source/html/css-apply.c | 2 +-
|
||||||
|
source/svg/svg-run.c | 2 +-
|
||||||
|
source/xps/xps-common.c | 6 +++---
|
||||||
|
source/xps/xps-glyphs.c | 2 +-
|
||||||
|
source/xps/xps-path.c | 4 ++--
|
||||||
|
source/xps/xps-resource.c | 2 +-
|
||||||
|
6 files changed, 9 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/source/html/css-apply.c b/source/html/css-apply.c
|
||||||
|
index de55490..6a91df0 100644
|
||||||
|
--- a/source/html/css-apply.c
|
||||||
|
+++ b/source/html/css-apply.c
|
||||||
|
@@ -328,7 +328,7 @@ match_selector(fz_css_selector *sel, fz_xml *node)
|
||||||
|
|
||||||
|
if (sel->name)
|
||||||
|
{
|
||||||
|
- if (strcmp(sel->name, fz_xml_tag(node)))
|
||||||
|
+ if (!fz_xml_is_tag(node, sel->name))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/source/svg/svg-run.c b/source/svg/svg-run.c
|
||||||
|
index f974c67..5302c64 100644
|
||||||
|
--- a/source/svg/svg-run.c
|
||||||
|
+++ b/source/svg/svg-run.c
|
||||||
|
@@ -1044,7 +1044,7 @@ svg_run_use(fz_context *ctx, fz_device *dev, svg_document *doc, fz_xml *root, co
|
||||||
|
fz_xml *linked = fz_tree_lookup(ctx, doc->idmap, xlink_href_att + 1);
|
||||||
|
if (linked)
|
||||||
|
{
|
||||||
|
- if (!strcmp(fz_xml_tag(linked), "symbol"))
|
||||||
|
+ if (fz_xml_is_tag(linked, "symbol"))
|
||||||
|
svg_run_use_symbol(ctx, dev, doc, root, linked, &local_state);
|
||||||
|
else
|
||||||
|
svg_run_element(ctx, dev, doc, linked, &local_state);
|
||||||
|
diff --git a/source/xps/xps-common.c b/source/xps/xps-common.c
|
||||||
|
index cc7fed9..f2f9b93 100644
|
||||||
|
--- a/source/xps/xps-common.c
|
||||||
|
+++ b/source/xps/xps-common.c
|
||||||
|
@@ -47,7 +47,7 @@ xps_parse_brush(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, const
|
||||||
|
else if (fz_xml_is_tag(node, "RadialGradientBrush"))
|
||||||
|
xps_parse_radial_gradient_brush(ctx, doc, ctm, area, base_uri, dict, node);
|
||||||
|
else
|
||||||
|
- fz_warn(ctx, "unknown brush tag: %s", fz_xml_tag(node));
|
||||||
|
+ fz_warn(ctx, "unknown brush tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -85,7 +85,7 @@ xps_begin_opacity(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, cons
|
||||||
|
if (opacity_att)
|
||||||
|
opacity = fz_atof(opacity_att);
|
||||||
|
|
||||||
|
- if (opacity_mask_tag && !strcmp(fz_xml_tag(opacity_mask_tag), "SolidColorBrush"))
|
||||||
|
+ if (fz_xml_is_tag(opacity_mask_tag, "SolidColorBrush"))
|
||||||
|
{
|
||||||
|
char *scb_opacity_att = fz_xml_att(opacity_mask_tag, "Opacity");
|
||||||
|
char *scb_color_att = fz_xml_att(opacity_mask_tag, "Color");
|
||||||
|
@@ -129,7 +129,7 @@ xps_end_opacity(fz_context *ctx, xps_document *doc, char *base_uri, xps_resource
|
||||||
|
|
||||||
|
if (opacity_mask_tag)
|
||||||
|
{
|
||||||
|
- if (strcmp(fz_xml_tag(opacity_mask_tag), "SolidColorBrush"))
|
||||||
|
+ if (!fz_xml_is_tag(opacity_mask_tag, "SolidColorBrush"))
|
||||||
|
fz_pop_clip(ctx, dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/source/xps/xps-glyphs.c b/source/xps/xps-glyphs.c
|
||||||
|
index 29dc5b3..5b26d78 100644
|
||||||
|
--- a/source/xps/xps-glyphs.c
|
||||||
|
+++ b/source/xps/xps-glyphs.c
|
||||||
|
@@ -592,7 +592,7 @@ xps_parse_glyphs(fz_context *ctx, xps_document *doc, const fz_matrix *ctm,
|
||||||
|
|
||||||
|
/* If it's a solid color brush fill/stroke do a simple fill */
|
||||||
|
|
||||||
|
- if (fill_tag && !strcmp(fz_xml_tag(fill_tag), "SolidColorBrush"))
|
||||||
|
+ if (fz_xml_is_tag(fill_tag, "SolidColorBrush"))
|
||||||
|
{
|
||||||
|
fill_opacity_att = fz_xml_att(fill_tag, "Opacity");
|
||||||
|
fill_att = fz_xml_att(fill_tag, "Color");
|
||||||
|
diff --git a/source/xps/xps-path.c b/source/xps/xps-path.c
|
||||||
|
index 6faeb0c..021d202 100644
|
||||||
|
--- a/source/xps/xps-path.c
|
||||||
|
+++ b/source/xps/xps-path.c
|
||||||
|
@@ -879,14 +879,14 @@ xps_parse_path(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, char *b
|
||||||
|
if (!data_att && !data_tag)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (fill_tag && !strcmp(fz_xml_tag(fill_tag), "SolidColorBrush"))
|
||||||
|
+ if (fz_xml_is_tag(fill_tag, "SolidColorBrush"))
|
||||||
|
{
|
||||||
|
fill_opacity_att = fz_xml_att(fill_tag, "Opacity");
|
||||||
|
fill_att = fz_xml_att(fill_tag, "Color");
|
||||||
|
fill_tag = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (stroke_tag && !strcmp(fz_xml_tag(stroke_tag), "SolidColorBrush"))
|
||||||
|
+ if (fz_xml_is_tag(stroke_tag, "SolidColorBrush"))
|
||||||
|
{
|
||||||
|
stroke_opacity_att = fz_xml_att(stroke_tag, "Opacity");
|
||||||
|
stroke_att = fz_xml_att(stroke_tag, "Color");
|
||||||
|
diff --git a/source/xps/xps-resource.c b/source/xps/xps-resource.c
|
||||||
|
index c2292e6..8e81ab8 100644
|
||||||
|
--- a/source/xps/xps-resource.c
|
||||||
|
+++ b/source/xps/xps-resource.c
|
||||||
|
@@ -84,7 +84,7 @@ xps_parse_remote_resource_dictionary(fz_context *ctx, xps_document *doc, char *b
|
||||||
|
if (!xml)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- if (strcmp(fz_xml_tag(xml), "ResourceDictionary"))
|
||||||
|
+ if (!fz_xml_is_tag(xml, "ResourceDictionary"))
|
||||||
|
{
|
||||||
|
fz_drop_xml(ctx, xml);
|
||||||
|
fz_throw(ctx, FZ_ERROR_GENERIC, "expected ResourceDictionary element");
|
||||||
|
--
|
||||||
|
2.9.1
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||||
;;; Coypright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Coypright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Coypright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
;;; Coypright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Coypright © 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Coypright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Coypright © 2016 Julien Lepiller <julien@lepiller.eu>
|
;;; Coypright © 2016 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||||
|
@ -576,6 +576,9 @@ extracting content or merging files.")
|
||||||
(base32
|
(base32
|
||||||
"02phamcchgsmvjnb3ir7r5sssvx9fcrscn297z73b82n1jl79510"))
|
"02phamcchgsmvjnb3ir7r5sssvx9fcrscn297z73b82n1jl79510"))
|
||||||
(patches (search-patches "mupdf-build-with-openjpeg-2.1.patch"
|
(patches (search-patches "mupdf-build-with-openjpeg-2.1.patch"
|
||||||
|
"mupdf-CVE-2017-14685.patch"
|
||||||
|
"mupdf-CVE-2017-14686.patch"
|
||||||
|
"mupdf-CVE-2017-14687.patch"
|
||||||
"mupdf-CVE-2017-15587.patch"))
|
"mupdf-CVE-2017-15587.patch"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
|
@ -747,7 +750,7 @@ vector formats.")
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
|
|
||||||
;; TODO: Add dependency on pdftk.
|
;; TODO: Add dependency on pdftk.
|
||||||
(inputs `(("python-pygame" ,python-pygame)
|
(inputs `(("python2-pygame" ,python2-pygame)
|
||||||
("python2-pillow" ,python2-pillow)
|
("python2-pillow" ,python2-pillow)
|
||||||
("sdl" ,sdl)
|
("sdl" ,sdl)
|
||||||
("xpdf" ,xpdf)))
|
("xpdf" ,xpdf)))
|
||||||
|
|
|
@ -2378,6 +2378,29 @@ based memory management, circular references will cause memory leaks.")
|
||||||
equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
|
equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-devel-hide
|
||||||
|
(package
|
||||||
|
(name "perl-devel-hide")
|
||||||
|
(version "0.0009")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1phnzbw58v6551nhv6sg86m72nx9w5j4msh1hg4jvkakkq5w9pki"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-test-pod" ,perl-test-pod)
|
||||||
|
("perl-test-pod-coverage" ,perl-test-pod-coverage)))
|
||||||
|
(home-page "http://search.cpan.org/dist/Devel-Hide/")
|
||||||
|
(synopsis "Forces the unavailability of specified Perl modules (for testing)")
|
||||||
|
(description "Given a list of Perl modules/filenames, this module makes
|
||||||
|
@code{require} and @code{use} statements fail (no matter whether the specified
|
||||||
|
files/modules are installed or not).")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-devel-lexalias
|
(define-public perl-devel-lexalias
|
||||||
(package
|
(package
|
||||||
(name "perl-devel-lexalias")
|
(name "perl-devel-lexalias")
|
||||||
|
@ -6059,6 +6082,32 @@ Module::Build project, but has been externalized here for general use.")
|
||||||
"Probe-Perl-" version))
|
"Probe-Perl-" version))
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-proc-invokeeditor
|
||||||
|
(package
|
||||||
|
(name "perl-proc-invokeeditor")
|
||||||
|
(version "1.13")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/M/MS/MSTEVENS/Proc-InvokeEditor-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0xc1416kvhq904ribpwh2lbxryh41dzl2glzpgr32b68s4fbwbaa"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'set-EDITOR
|
||||||
|
(lambda _ (setenv "EDITOR" "echo") #t)))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-carp-assert" ,perl-carp-assert)))
|
||||||
|
(home-page "http://search.cpan.org/dist/Proc-InvokeEditor/")
|
||||||
|
(synopsis "Interface to external editor from Perl")
|
||||||
|
(description "This module provides the ability to supply some text to an
|
||||||
|
external text editor, have it edited by the user, and retrieve the results.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-readonly
|
(define-public perl-readonly
|
||||||
(package
|
(package
|
||||||
(name "perl-readonly")
|
(name "perl-readonly")
|
||||||
|
@ -6294,6 +6343,27 @@ compact.")
|
||||||
arrays by one or multiple calculated keys.")
|
arrays by one or multiple calculated keys.")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-sort-naturally
|
||||||
|
(package
|
||||||
|
(name "perl-sort-naturally")
|
||||||
|
(version "1.03")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ip7q5g8d3lr7ri3ffcbrpk1hzzsiwgsn14k10k7hnjphxf1raza"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Sort-Naturally/")
|
||||||
|
(synopsis "Sort lexically, but sort numeral parts numerically")
|
||||||
|
(description "This module exports two functions, @code{nsort} and
|
||||||
|
@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.
|
||||||
|
Under natural sorting, numeric substrings are compared numerically, and other
|
||||||
|
word-characters are compared lexically.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-specio
|
(define-public perl-specio
|
||||||
(package
|
(package
|
||||||
(name "perl-specio")
|
(name "perl-specio")
|
||||||
|
@ -6888,6 +6958,50 @@ other terminal related features, including retrieval/modification of the
|
||||||
screen size, and retrieval/modification of the control characters.")
|
screen size, and retrieval/modification of the control characters.")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-term-size-any
|
||||||
|
(package
|
||||||
|
(name "perl-term-size-any")
|
||||||
|
(version "0.002")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/"
|
||||||
|
"Term-Size-Any-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1lnynd8pwjp3g85bl4nav6yigg2lag3sx5da989j7a733bdmzyk4"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("perl-devel-hide" ,perl-devel-hide)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-term-size-perl" ,perl-term-size-perl)))
|
||||||
|
(home-page "http://search.cpan.org/dist/Term-Size-Any/")
|
||||||
|
(synopsis "Retrieve terminal size")
|
||||||
|
(description "This is a unified interface to retrieve terminal size. It
|
||||||
|
loads one module of a list of known alternatives, each implementing some way
|
||||||
|
to get the desired terminal information. This loaded module will actually do
|
||||||
|
the job on behalf of @code{Term::Size::Any}.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-term-size-perl
|
||||||
|
(package
|
||||||
|
(name "perl-term-size-perl")
|
||||||
|
(version "0.029")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/"
|
||||||
|
"Term-Size-Perl-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1rvm91bhdlxfwx5zka023p7szf2s7gm16wl27qiivvj66svsl6lc"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Term-Size-Perl/")
|
||||||
|
(synopsis "Perl extension for retrieving terminal size (Perl version)")
|
||||||
|
(description "This is yet another implementation of @code{Term::Size}.
|
||||||
|
Now in pure Perl, with the exception of a C probe run at build time.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-term-table
|
(define-public perl-term-table
|
||||||
(package
|
(package
|
||||||
(name "perl-term-table")
|
(name "perl-term-table")
|
||||||
|
@ -7782,6 +7896,32 @@ makes fork(2) safe to use in test cases.")
|
||||||
"Test-Simple-" version))
|
"Test-Simple-" version))
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-test-taint
|
||||||
|
(package
|
||||||
|
(name "perl-test-taint")
|
||||||
|
(version "1.06")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Taint-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"01rip5d7gdr1c7lq6yczzkqfd0500nfa977ryigylj6jj75526vj"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Test-Taint/")
|
||||||
|
(synopsis "Checks for taintedness of variables")
|
||||||
|
(description "Tainted data is data that comes from an unsafe source, such
|
||||||
|
as the command line, or, in the case of web apps, any @code{GET} or
|
||||||
|
@code{POST} transactions. Read the @code{perlsec} man page for details on why
|
||||||
|
tainted data is bad, and how to untaint the data.
|
||||||
|
|
||||||
|
When you're writing unit tests for code that deals with tainted data, you'll
|
||||||
|
want to have a way to provide tainted data for your routines to handle, and
|
||||||
|
easy ways to check and report on the taintedness of your data, in standard
|
||||||
|
@code{Test::More} style.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-test-tester
|
(define-public perl-test-tester
|
||||||
(package
|
(package
|
||||||
(name "perl-test-tester")
|
(name "perl-test-tester")
|
||||||
|
@ -8575,6 +8715,53 @@ distributed as part of @code{Type::Tiny} but has since been spun off), and can
|
||||||
be used with Moose, Mouse and Moo (or none of the above).")
|
be used with Moose, Mouse and Moo (or none of the above).")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-type-tiny-xs
|
||||||
|
(package
|
||||||
|
(name "perl-type-tiny-xs")
|
||||||
|
(version "0.012")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"05nbr898cvjjh1wsy55l84zasx65gijdxc6dnn558ihns8zx6gm9"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Type-Tiny-XS/")
|
||||||
|
(synopsis "Provides an XS boost for some of Type::Tiny's built-in type constraints")
|
||||||
|
(description "This module is optionally used by @code{Type::Tiny} to
|
||||||
|
provide faster, C-based implementations of some type constraints. This
|
||||||
|
package has only core dependencies, and does not depend on @code{Type::Tiny},
|
||||||
|
so other data validation frameworks might also consider using it.")
|
||||||
|
(license perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-types-path-tiny
|
||||||
|
(package
|
||||||
|
(name "perl-types-path-tiny")
|
||||||
|
(version "0.005")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
|
||||||
|
"Types-Path-Tiny-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"09nf167ssi4rgj8hhzylwp3zdx61njdpyfri43arcmk9aqn7f0pp"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-file-pushd" ,perl-file-pushd)
|
||||||
|
("perl-path-tiny" ,perl-path-tiny)
|
||||||
|
("perl-type-tiny" ,perl-type-tiny)
|
||||||
|
("perl-exporter-tiny" ,perl-exporter-tiny)))
|
||||||
|
(home-page "http://search.cpan.org/dist/Types-Path-Tiny/")
|
||||||
|
(synopsis "Types and coercions for Moose and Moo")
|
||||||
|
(description "This module provides @code{Path::Tiny} types for Moose, Moo,
|
||||||
|
etc. It handles two important types of coercion: coercing objects with
|
||||||
|
overloaded stringification, and coercing to absolute paths. It also can check
|
||||||
|
to ensure that files or directories exist.")
|
||||||
|
(license artistic2.0)))
|
||||||
|
|
||||||
(define-public perl-types-serialiser
|
(define-public perl-types-serialiser
|
||||||
(package
|
(package
|
||||||
(name "perl-types-serialiser")
|
(name "perl-types-serialiser")
|
||||||
|
|
|
@ -3191,14 +3191,14 @@ logging and tracing of the execution.")
|
||||||
(define-public python-docutils
|
(define-public python-docutils
|
||||||
(package
|
(package
|
||||||
(name "python-docutils")
|
(name "python-docutils")
|
||||||
(version "0.13.1")
|
(version "0.14")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "docutils" version))
|
(uri (pypi-uri "docutils" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1gkma47i609jfs7dssxn4y9vsz06qi0l5q41nws0zgkpnrghz33i"))))
|
"0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f)) ; no setup.py test command
|
'(#:tests? #f)) ; no setup.py test command
|
||||||
|
@ -8624,10 +8624,7 @@ simulation, statistical modeling, machine learning and much more.")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (pypi-uri "chardet" version))
|
||||||
"https://pypi.python.org/packages/source/c/chardet/chardet-"
|
|
||||||
version
|
|
||||||
".tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
|
"1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
|
||||||
|
@ -13172,18 +13169,14 @@ from Facebook.")
|
||||||
(base32
|
(base32
|
||||||
"09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q"))))
|
"09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
|
||||||
`(("python-django-filter" ,python-django-filter)
|
|
||||||
("python-mock" ,python-mock)
|
|
||||||
("python-psycopg2" ,python-psycopg2)
|
|
||||||
("python-pytest-django" ,python-pytest-django)
|
|
||||||
("python-sqlalchemy-utils" ,python-sqlalchemy-utils)))
|
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-graphql-core" ,python-graphql-core)
|
`(("python-graphql-core" ,python-graphql-core)
|
||||||
("python-graphql-relay" ,python-graphql-relay)
|
("python-graphql-relay" ,python-graphql-relay)
|
||||||
("python-iso8601" ,python-iso8601)
|
("python-iso8601" ,python-iso8601)
|
||||||
("python-promise" ,python-promise)
|
("python-promise" ,python-promise)
|
||||||
("python-six" ,python-six)))
|
("python-six" ,python-six)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f)) ; no tests/ in the PyPI tarball
|
||||||
(home-page "http://graphene-python.org/")
|
(home-page "http://graphene-python.org/")
|
||||||
(synopsis "GraphQL Framework for Python")
|
(synopsis "GraphQL Framework for Python")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
(define-public screen
|
(define-public screen
|
||||||
(package
|
(package
|
||||||
(name "screen")
|
(name "screen")
|
||||||
(version "4.6.1")
|
(version "4.6.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnu/screen/screen-"
|
(uri (string-append "mirror://gnu/screen/screen-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0r3wpfxnr5kw73b8ndja26jk03nfbks06iyfmgb5aqb2rdkazadb"))))
|
(base32 "0fps0fsipfbh7c2cnp7rjw9n79j0ysq21mk8hzifa33a1r924s8v"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("makeinfo" ,texinfo)))
|
`(("makeinfo" ,texinfo)))
|
||||||
|
|
|
@ -38,9 +38,15 @@
|
||||||
(base32
|
(base32
|
||||||
"07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f"))))
|
"07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
|
;; The primary Syncthing executable goes to "out", while the auxiliary
|
||||||
|
;; server programs and utility tools go to "utils". This reduces the size
|
||||||
|
;; of "out" by ~80 MiB.
|
||||||
|
(outputs '("out" "utils"))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "github.com/syncthing/syncthing"
|
`(#:import-path "github.com/syncthing/syncthing"
|
||||||
#:unpack-path "github.com/syncthing"
|
#:unpack-path "github.com/syncthing"
|
||||||
|
;; We don't need to install the source code for end-user applications.
|
||||||
|
#:install-source? #f
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'delete-bundled-source-code
|
(add-after 'unpack 'delete-bundled-source-code
|
||||||
|
@ -55,9 +61,6 @@
|
||||||
"src/github.com/syncthing/syncthing/vendor/github.com/cznic")
|
"src/github.com/syncthing/syncthing/vendor/github.com/cznic")
|
||||||
#t))
|
#t))
|
||||||
|
|
||||||
;; We don't need to install the source code for end-user applications.
|
|
||||||
(delete 'install-source)
|
|
||||||
|
|
||||||
(add-before 'build 'increase-test-timeout
|
(add-before 'build 'increase-test-timeout
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "src/github.com/syncthing/syncthing/build.go"
|
(substitute* "src/github.com/syncthing/syncthing/build.go"
|
||||||
|
@ -75,21 +78,39 @@
|
||||||
(zero? (system* "go" "run" "build.go" "test")))))
|
(zero? (system* "go" "run" "build.go" "test")))))
|
||||||
|
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda _
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(copy-recursively "src/github.com/syncthing/syncthing/bin/"
|
(let ((out (assoc-ref outputs "out"))
|
||||||
(string-append (assoc-ref %outputs "out") "/bin"))
|
(utils (assoc-ref outputs "utils"))
|
||||||
#t))
|
(src "src/github.com/syncthing/syncthing/bin/"))
|
||||||
|
(install-file (string-append src "/syncthing")
|
||||||
|
(string-append out "/bin"))
|
||||||
|
(delete-file (string-append src "/syncthing"))
|
||||||
|
(copy-recursively "src/github.com/syncthing/syncthing/bin/"
|
||||||
|
(string-append utils "/bin"))
|
||||||
|
#t)))
|
||||||
|
|
||||||
(add-after 'install 'install-docs
|
(add-after 'install 'install-docs
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(man (string-append out "/share/man/man"))
|
(utils (assoc-ref outputs "utils"))
|
||||||
|
(man "/share/man")
|
||||||
|
(man-section (string-append man "/man"))
|
||||||
(src "src/github.com/syncthing/syncthing/man/"))
|
(src "src/github.com/syncthing/syncthing/man/"))
|
||||||
|
;; Install all the man pages to "out".
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (file)
|
(lambda (file)
|
||||||
(install-file file
|
(install-file file
|
||||||
(string-append man (string-take-right file 1))))
|
(string-append out man-section
|
||||||
|
(string-take-right file 1))))
|
||||||
(find-files src "\\.[1-9]"))
|
(find-files src "\\.[1-9]"))
|
||||||
|
;; Copy all the man pages to "utils"
|
||||||
|
(copy-recursively (string-append out man)
|
||||||
|
(string-append utils man))
|
||||||
|
;; Delete extraneous man pages from "out" and "utils",
|
||||||
|
;; respectively.
|
||||||
|
(delete-file (string-append out man "/man1/stdiscosrv.1"))
|
||||||
|
(delete-file (string-append out man "/man1/strelaysrv.1"))
|
||||||
|
(delete-file (string-append utils man "/man1/syncthing.1"))
|
||||||
#t))))))
|
#t))))))
|
||||||
;; When updating Syncthing, check 'vendor/manifest' in the source
|
;; When updating Syncthing, check 'vendor/manifest' in the source
|
||||||
;; distribution to ensure we are using the correct versions of these
|
;; distribution to ensure we are using the correct versions of these
|
||||||
|
|
|
@ -124,14 +124,14 @@ as well as the classic centralized workflow.")
|
||||||
(name "git")
|
(name "git")
|
||||||
;; XXX When updating Git, check if the special 'git:src' input to cgit needs
|
;; XXX When updating Git, check if the special 'git:src' input to cgit needs
|
||||||
;; to be updated as well.
|
;; to be updated as well.
|
||||||
(version "2.14.2")
|
(version "2.14.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah"))))
|
"078m0za5gyzcah5iaxdwx663yvdp8byvjc8rpzjzcrr4sl6rcc2k"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("native-perl" ,perl)
|
`(("native-perl" ,perl)
|
||||||
|
@ -145,7 +145,7 @@ as well as the classic centralized workflow.")
|
||||||
(sha256
|
(sha256
|
||||||
|
|
||||||
(base32
|
(base32
|
||||||
"1z05a7hxxndyby3dbj3gaw91sjwmky5d1yph96jmj0fhx78m1lvd"))))))
|
"00dh878pwl94p6syh6zgwn7f0zv2bl5xny3pnr390lzxpa9ks3jv"))))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("curl" ,curl)
|
`(("curl" ,curl)
|
||||||
("expat" ,expat)
|
("expat" ,expat)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
||||||
;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
|
;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||||
;;;
|
;;;
|
||||||
|
@ -32,6 +32,8 @@
|
||||||
#:use-module (gnu packages cyrus-sasl)
|
#:use-module (gnu packages cyrus-sasl)
|
||||||
#:use-module (gnu packages disk)
|
#:use-module (gnu packages disk)
|
||||||
#:use-module (gnu packages dns)
|
#:use-module (gnu packages dns)
|
||||||
|
#:use-module (gnu packages docbook)
|
||||||
|
#:use-module (gnu packages documentation)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
|
@ -40,9 +42,11 @@
|
||||||
#:use-module (gnu packages libusb)
|
#:use-module (gnu packages libusb)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
|
#:use-module (gnu packages networking)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages polkit)
|
#:use-module (gnu packages polkit)
|
||||||
|
#:use-module (gnu packages protobuf)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages selinux)
|
#:use-module (gnu packages selinux)
|
||||||
#:use-module (gnu packages sdl)
|
#:use-module (gnu packages sdl)
|
||||||
|
@ -55,7 +59,7 @@
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1+))
|
#:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1 lgpl2.1+))
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
@ -573,3 +577,97 @@ virtual machines through libvirt. It primarily targets KVM VMs, but also
|
||||||
manages Xen and LXC (Linux containers). It presents a summary view of running
|
manages Xen and LXC (Linux containers). It presents a summary view of running
|
||||||
domains, their live performance and resource utilization statistics.")
|
domains, their live performance and resource utilization statistics.")
|
||||||
(license gpl2+)))
|
(license gpl2+)))
|
||||||
|
|
||||||
|
(define-public criu
|
||||||
|
(package
|
||||||
|
(name "criu")
|
||||||
|
(version "3.5")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://download.openvz.org/criu/criu-"
|
||||||
|
version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1w0ybla7ac0ql0jzh0vxdf2w9amqp88jcg0na3b33r3hq8acry6x"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:test-target "test"
|
||||||
|
#:tests? #f ; tests require mounting as root
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
|
(string-append "LIBDIR=" (assoc-ref %outputs "out")
|
||||||
|
"/lib"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; The includes for libnl are located in a sub-directory.
|
||||||
|
(setenv "C_INCLUDE_PATH"
|
||||||
|
(string-append (assoc-ref inputs "libnl")
|
||||||
|
"/include/libnl3:"
|
||||||
|
(getenv "C_INCLUDE_PATH")))
|
||||||
|
;; Prevent xmlto from failing the install phase.
|
||||||
|
(substitute* "Documentation/Makefile"
|
||||||
|
(("XMLTO.*:=.*")
|
||||||
|
(string-append "XMLTO:="
|
||||||
|
(assoc-ref inputs "xmlto")
|
||||||
|
"/bin/xmlto"
|
||||||
|
" --skip-validation "
|
||||||
|
" -x "
|
||||||
|
(assoc-ref inputs "docbook-xsl")
|
||||||
|
"/xml/xsl/docbook-xsl-"
|
||||||
|
,(package-version docbook-xsl)
|
||||||
|
"/manpages/docbook.xsl")))
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'fix-symlink
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; The file 'images/google/protobuf/descriptor.proto' points to
|
||||||
|
;; /usr/include/..., which obviously does not exist.
|
||||||
|
(let* ((file "google/protobuf/descriptor.proto")
|
||||||
|
(target (string-append "images/" file))
|
||||||
|
(source (string-append (assoc-ref inputs "protobuf")
|
||||||
|
"/include/" file)))
|
||||||
|
(delete-file target)
|
||||||
|
(symlink source target)
|
||||||
|
#t)))
|
||||||
|
(add-after 'install 'wrap
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
;; Make sure 'crit' runs with the correct PYTHONPATH.
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(path (string-append out
|
||||||
|
"/lib/python"
|
||||||
|
(string-take (string-take-right
|
||||||
|
(assoc-ref inputs "python") 5) 3)
|
||||||
|
"/site-packages:"
|
||||||
|
(getenv "PYTHONPATH"))))
|
||||||
|
(wrap-program (string-append out "/bin/crit")
|
||||||
|
`("PYTHONPATH" ":" prefix (,path))))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("protobuf" ,protobuf)
|
||||||
|
("python" ,python-2)
|
||||||
|
("python2-protobuf" ,python2-protobuf)
|
||||||
|
("python2-ipaddr" ,python2-ipaddr)
|
||||||
|
("iproute" ,iproute)
|
||||||
|
("libaio" ,libaio)
|
||||||
|
("libcap" ,libcap)
|
||||||
|
("libnet" ,libnet)
|
||||||
|
("libnl" ,libnl)))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("perl" ,perl)
|
||||||
|
("protobuf-c" ,protobuf-c)
|
||||||
|
("asciidoc" ,asciidoc)
|
||||||
|
("xmlto" ,xmlto)
|
||||||
|
("docbook-xml" ,docbook-xml)
|
||||||
|
("docbook-xsl" ,docbook-xsl)))
|
||||||
|
(home-page "https://criu.org")
|
||||||
|
(synopsis "Checkpoint and restore in user space")
|
||||||
|
(description "Using this tool, you can freeze a running application (or
|
||||||
|
part of it) and checkpoint it to a hard drive as a collection of files. You
|
||||||
|
can then use the files to restore and run the application from the point it
|
||||||
|
was frozen at. The distinctive feature of the CRIU project is that it is
|
||||||
|
mainly implemented in user space.")
|
||||||
|
;; The project is licensed under GPLv2; files in the lib/ directory are
|
||||||
|
;; LGPLv2.1.
|
||||||
|
(license (list gpl2 lgpl2.1))))
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
|
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
|
||||||
|
;;; Copyright © 2017 Petter <petter@mykolab.ch>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -52,6 +53,7 @@
|
||||||
#:use-module (guix build-system r)
|
#:use-module (guix build-system r)
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
|
#:use-module (guix build-system ant)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages apr)
|
#:use-module (gnu packages apr)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
|
@ -2890,6 +2892,35 @@ contains modules that are of more general use and even classes that
|
||||||
help you implement simple HTTP servers.")
|
help you implement simple HTTP servers.")
|
||||||
(home-page "http://search.cpan.org/dist/libwww-perl/")))
|
(home-page "http://search.cpan.org/dist/libwww-perl/")))
|
||||||
|
|
||||||
|
(define-public perl-lwp-online
|
||||||
|
(package
|
||||||
|
(name "perl-lwp-online")
|
||||||
|
(version "1.08")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-libwww" ,perl-libwww)
|
||||||
|
("perl-uri" ,perl-uri)))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl-module-install" ,perl-module-install)))
|
||||||
|
(home-page "http://search.cpan.org/dist/LWP-Online/")
|
||||||
|
(synopsis "Checks whether your process has access to the web")
|
||||||
|
(description "This module attempts to answer, as accurately as it can, one
|
||||||
|
of the nastiest technical questions there is: am I on the internet?
|
||||||
|
|
||||||
|
A host of networking and security issues make this problem very difficult.
|
||||||
|
There are firewalls, proxies (both well behaved and badly behaved). We might
|
||||||
|
not have DNS. We might not have a network card at all!")
|
||||||
|
(license l:perl-license)))
|
||||||
|
|
||||||
(define-public perl-lwp-mediatypes
|
(define-public perl-lwp-mediatypes
|
||||||
(package
|
(package
|
||||||
(name "perl-lwp-mediatypes")
|
(name "perl-lwp-mediatypes")
|
||||||
|
@ -5384,3 +5415,583 @@ collection creation and deletion, and locking operations.")
|
||||||
"Py-ubjson is a Python module providing an Universal Binary JSON
|
"Py-ubjson is a Python module providing an Universal Binary JSON
|
||||||
encoder/decoder based on the draft-12 specification for UBJSON.")
|
encoder/decoder based on the draft-12 specification for UBJSON.")
|
||||||
(license l:asl2.0)))
|
(license l:asl2.0)))
|
||||||
|
|
||||||
|
(define-public java-tomcat
|
||||||
|
(package
|
||||||
|
(name "java-tomcat")
|
||||||
|
(version "8.5.23")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://apache/tomcat/tomcat-8/v"
|
||||||
|
version "/src/apache-tomcat-" version "-src.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1m6b1dikib46kbgz9gf0p6svi00nsw62b9kgjzn6sda151skbbza"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
|
||||||
|
(native-inputs
|
||||||
|
`(("java-junit" ,java-junit)))
|
||||||
|
(arguments
|
||||||
|
`(#:build-target "package"
|
||||||
|
#:tests? #f; requires downloading some files.
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'prevent-download
|
||||||
|
(lambda _
|
||||||
|
;; This directory must exist
|
||||||
|
(mkdir "downloads")
|
||||||
|
;; We patch build.xml so it doesn't download any dependency, because
|
||||||
|
;; we already have all of them.
|
||||||
|
(substitute* "build.xml"
|
||||||
|
(("download-compile,") "")
|
||||||
|
(("depends=\"validate\"") "depends=\"build-prepare\"")
|
||||||
|
((",download-validate") ""))
|
||||||
|
#t))
|
||||||
|
(add-after 'unpack 'generate-properties
|
||||||
|
(lambda _
|
||||||
|
;; This could have been passed to make-flags, but getcwd returns
|
||||||
|
;; a different directory then.
|
||||||
|
(with-output-to-file "build.properties"
|
||||||
|
(lambda _
|
||||||
|
(display
|
||||||
|
(string-append "base.path=" (getcwd) "/downloads\n"))))
|
||||||
|
#t))
|
||||||
|
(replace 'install
|
||||||
|
(install-jars "output/build/lib")))))
|
||||||
|
(home-page "https://tomcat.apache.org")
|
||||||
|
(synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
|
||||||
|
WebSocket")
|
||||||
|
(description "Apache Tomcat is a free implementation of the Java
|
||||||
|
Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
|
||||||
|
technologies.")
|
||||||
|
(license l:asl2.0)))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-test-helper
|
||||||
|
(package
|
||||||
|
(name "java-eclipse-jetty-test-helper")
|
||||||
|
(version "4.2")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/eclipse/jetty.toolchain/"
|
||||||
|
"archive/jetty-test-helper-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-test-helper.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:test-dir "src/test"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-test-helper")))
|
||||||
|
(add-before 'build 'fix-paths
|
||||||
|
(lambda _
|
||||||
|
;; TODO:
|
||||||
|
;; This file assumes that the build directory is named "target"
|
||||||
|
;; but it is not the case with our ant-build-system. Once we have
|
||||||
|
;; maven though, we will have to rebuild this package because this
|
||||||
|
;; assumption is correct with maven-build-system.
|
||||||
|
(substitute*
|
||||||
|
"src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
|
||||||
|
(("\"target\"") "\"build\"")
|
||||||
|
(("\"tests\"") "\"test-classes\""))
|
||||||
|
;; Tests assume we are building with maven, so that the build
|
||||||
|
;; directory is named "target", and not "build".
|
||||||
|
(with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
|
||||||
|
(substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
|
||||||
|
"MavenTestingUtilsTest.java")
|
||||||
|
(("target/tests") "build/test-classes")
|
||||||
|
(("\"target") "\"build")))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("junit" ,java-junit)
|
||||||
|
("hamcrest" ,java-hamcrest-all)))
|
||||||
|
(home-page "https://www.eclipse.org/jetty/")
|
||||||
|
(synopsis "Helper classes for jetty tests")
|
||||||
|
(description "This packages contains helper classes for testing the Jetty
|
||||||
|
Web Server.")
|
||||||
|
;; This program is licensed under both epl and asl.
|
||||||
|
(license (list l:epl1.0 l:asl2.0))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-perf-helper
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-test-helper)
|
||||||
|
(name "java-eclipse-jetty-perf-helper")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-perf-helper.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:tests? #f; no tests
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-perf-helper")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("hdrhistogram" ,java-hdrhistogram)))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-util
|
||||||
|
(package
|
||||||
|
(name "java-eclipse-jetty-util")
|
||||||
|
(version "9.4.6")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/eclipse/jetty.project/"
|
||||||
|
"archive/jetty-" version ".v20170531.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-util.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:test-exclude
|
||||||
|
(list "**/Abstract*.java"
|
||||||
|
;; requires network
|
||||||
|
"**/InetAddressSetTest.java"
|
||||||
|
;; Assumes we are using maven
|
||||||
|
"**/TypeUtilTest.java"
|
||||||
|
;; Error on the style of log
|
||||||
|
"**/StdErrLogTest.java")
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-util")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)))
|
||||||
|
(native-inputs
|
||||||
|
`(("junit" ,java-junit)
|
||||||
|
("hamcrest" ,java-hamcrest-all)
|
||||||
|
("perf-helper" ,java-eclipse-jetty-perf-helper)
|
||||||
|
("test-helper" ,java-eclipse-jetty-test-helper)))
|
||||||
|
(home-page "https://www.eclipse.org/jetty/")
|
||||||
|
(synopsis "Utility classes for Jetty")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides utility classes.")
|
||||||
|
(license (list l:epl1.0 l:asl2.0))))
|
||||||
|
|
||||||
|
;; This version is required by maven-wagon
|
||||||
|
(define-public java-eclipse-jetty-util-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(version "9.2.22")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/eclipse/jetty.project/"
|
||||||
|
"archive/jetty-" version ".v20170606.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-util.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:test-exclude
|
||||||
|
(list "**/Abstract*.java"
|
||||||
|
;; requires network
|
||||||
|
"**/InetAddressSetTest.java"
|
||||||
|
;; Assumes we are using maven
|
||||||
|
"**/TypeUtilTest.java"
|
||||||
|
;; We don't have an implementation for slf4j
|
||||||
|
"**/LogTest.java"
|
||||||
|
;; Error on the style of log
|
||||||
|
"**/StdErrLogTest.java")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-util")
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'fix-test-sources
|
||||||
|
(lambda _
|
||||||
|
;; We need to fix issues caused by changes in newer versions of
|
||||||
|
;; jetty-test-helper
|
||||||
|
(let ((src "src/test/java/org/eclipse/jetty/util/resource"))
|
||||||
|
(substitute* (string-append src "/AbstractFSResourceTest.java")
|
||||||
|
(("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
|
||||||
|
(("testdir.getFile\\(\"foo\"\\)")
|
||||||
|
"testdir.getPathFile(\"foo\").toFile()")
|
||||||
|
(("testdir.getFile\\(name\\)")
|
||||||
|
"testdir.getPathFile(name).toFile()")))
|
||||||
|
#t)))))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-io
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-io")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-io.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:test-exclude (list "**/Abstract*.java"
|
||||||
|
;; Abstract class
|
||||||
|
"**/EndPointTest.java")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-io")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("util" ,java-eclipse-jetty-util)))
|
||||||
|
(synopsis "Jetty :: IO Utility")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides IO-related utility classes.")))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-io-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-io)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(inputs
|
||||||
|
`(("util" ,java-eclipse-jetty-util-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-util-9.2)))
|
||||||
|
(native-inputs
|
||||||
|
`(("mockito" ,java-mockito-1)
|
||||||
|
("cglib" ,java-cglib)
|
||||||
|
("objenesis" ,java-objenesis)
|
||||||
|
("asm" ,java-asm)
|
||||||
|
,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-http
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-http")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-http.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-http")
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'copy-resources
|
||||||
|
(lambda _
|
||||||
|
(mkdir-p "build/classes")
|
||||||
|
(copy-recursively "src/main/resources/" "build/classes/")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("io" ,java-eclipse-jetty-io)
|
||||||
|
("util" ,java-eclipse-jetty-util)))
|
||||||
|
(synopsis "Jetty :: Http Utility")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides HTTP-related utility classes.")))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-http-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-http)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(inputs
|
||||||
|
`(("util" ,java-eclipse-jetty-util-9.2)
|
||||||
|
("io" ,java-eclipse-jetty-io-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-util-9.2)))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-jmx
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-jmx")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-jmx.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f; FIXME: requires com.openpojo.validation
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-jmx")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("util" ,java-eclipse-jetty-util)))
|
||||||
|
(synopsis "Jetty :: JMX Management")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides the JMX management.")))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-jmx-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-jmx)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(inputs
|
||||||
|
`(("util" ,java-eclipse-jetty-util-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-util-9.2)))))
|
||||||
|
|
||||||
|
(define java-eclipse-jetty-http-test-classes
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-http-test-classes")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-http.jar"
|
||||||
|
#:source-dir "src/test"
|
||||||
|
#:tests? #f
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-http"))))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("http" ,java-eclipse-jetty-http)
|
||||||
|
("io" ,java-eclipse-jetty-io)
|
||||||
|
("util" ,java-eclipse-jetty-util)))))
|
||||||
|
|
||||||
|
(define java-eclipse-jetty-http-test-classes-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-http-test-classes)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(inputs
|
||||||
|
`(("http" ,java-eclipse-jetty-http-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-http-9.2)))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-server
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-server")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-server.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f; requires a mockito version we don't have
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-server")
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'fix-source
|
||||||
|
(lambda _
|
||||||
|
;; Explicit casts to prevent build failures
|
||||||
|
(substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
|
||||||
|
(("append\\(LazyList")
|
||||||
|
"append((CharSequence)LazyList"))
|
||||||
|
(substitute*
|
||||||
|
"src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
|
||||||
|
(((string-append
|
||||||
|
"Class<\\? extends EventListener> clazz = _classLoader==null"
|
||||||
|
"\\?Loader.loadClass\\(ContextHandler.class,className\\):"
|
||||||
|
"_classLoader.loadClass\\(className\\);"))
|
||||||
|
(string-append "Class<? extends EventListener> clazz = "
|
||||||
|
"(Class<? extends EventListener>) "
|
||||||
|
"(_classLoader==null?Loader.loadClass("
|
||||||
|
"ContextHandler.class,className):"
|
||||||
|
"_classLoader.loadClass(className));")))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("http" ,java-eclipse-jetty-http)
|
||||||
|
("io" ,java-eclipse-jetty-io)
|
||||||
|
("jmx" ,java-eclipse-jetty-jmx)
|
||||||
|
("util" ,java-eclipse-jetty-util)))
|
||||||
|
(native-inputs
|
||||||
|
`(("test-classes" ,java-eclipse-jetty-http-test-classes)
|
||||||
|
,@(package-native-inputs java-eclipse-jetty-util)))
|
||||||
|
(synopsis "Core jetty server artifact")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides the core jetty server
|
||||||
|
artifact.")))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-server-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-server)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(inputs
|
||||||
|
`(("util" ,java-eclipse-jetty-util-9.2)
|
||||||
|
("jmx" ,java-eclipse-jetty-jmx-9.2)
|
||||||
|
("io" ,java-eclipse-jetty-io-9.2)
|
||||||
|
("http" ,java-eclipse-jetty-http-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-util-9.2)))
|
||||||
|
(native-inputs
|
||||||
|
`(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
|
||||||
|
,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-security
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-security")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-security.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-security")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("http" ,java-eclipse-jetty-http)
|
||||||
|
("server" ,java-eclipse-jetty-server)
|
||||||
|
("util" ,java-eclipse-jetty-util)))
|
||||||
|
(native-inputs
|
||||||
|
`(("io" ,java-eclipse-jetty-io)
|
||||||
|
,@(package-native-inputs java-eclipse-jetty-util)))
|
||||||
|
(synopsis "Jetty security infrastructure")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides the core jetty security
|
||||||
|
infrastructure")))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-security-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-security)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(inputs
|
||||||
|
`(("util" ,java-eclipse-jetty-util-9.2)
|
||||||
|
("http" ,java-eclipse-jetty-http-9.2)
|
||||||
|
("server" ,java-eclipse-jetty-server-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-util-9.2)))
|
||||||
|
(native-inputs
|
||||||
|
`(("io" ,java-eclipse-jetty-io-9.2)
|
||||||
|
,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-servlet
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-util)
|
||||||
|
(name "java-eclipse-jetty-servlet")
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-servlet.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-servlet")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("slf4j" ,java-slf4j-api)
|
||||||
|
("servlet" ,java-tomcat)
|
||||||
|
("http" ,java-eclipse-jetty-http)
|
||||||
|
("http-test" ,java-eclipse-jetty-http-test-classes)
|
||||||
|
("io" ,java-eclipse-jetty-io)
|
||||||
|
("jmx" ,java-eclipse-jetty-jmx)
|
||||||
|
("security" ,java-eclipse-jetty-security)
|
||||||
|
("server" ,java-eclipse-jetty-server)
|
||||||
|
("util" ,java-eclipse-jetty-util)))
|
||||||
|
(synopsis "Jetty Servlet Container")
|
||||||
|
(description "The Jetty Web Server provides an HTTP server and Servlet
|
||||||
|
container capable of serving static and dynamic content either from a standalone
|
||||||
|
or embedded instantiation. This package provides the core jetty servlet
|
||||||
|
container.")))
|
||||||
|
|
||||||
|
(define-public java-eclipse-jetty-servlet-9.2
|
||||||
|
(package
|
||||||
|
(inherit java-eclipse-jetty-servlet)
|
||||||
|
(version (package-version java-eclipse-jetty-util-9.2))
|
||||||
|
(source (package-source java-eclipse-jetty-util-9.2))
|
||||||
|
(arguments
|
||||||
|
`(#:jar-name "eclipse-jetty-servlet.jar"
|
||||||
|
#:source-dir "src/main/java"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:tests? #f; doesn't work
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'chdir
|
||||||
|
(lambda _
|
||||||
|
(chdir "jetty-servlet")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("util" ,java-eclipse-jetty-util-9.2)
|
||||||
|
("jmx" ,java-eclipse-jetty-jmx-9.2)
|
||||||
|
("io" ,java-eclipse-jetty-io-9.2)
|
||||||
|
("http" ,java-eclipse-jetty-http-9.2)
|
||||||
|
("security" ,java-eclipse-jetty-security-9.2)
|
||||||
|
("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
|
||||||
|
("server" ,java-eclipse-jetty-server-9.2)
|
||||||
|
,@(package-inputs java-eclipse-jetty-util-9.2)))))
|
||||||
|
|
||||||
|
(define-public tidyp
|
||||||
|
(package
|
||||||
|
(name "tidyp")
|
||||||
|
(version "1.04")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
;; ./test-thing.sh tries to run ./testall.sh, which is not included.
|
||||||
|
(arguments `(#:tests? #f))
|
||||||
|
(home-page "http://www.tidyp.com/")
|
||||||
|
(synopsis "Validate HTML")
|
||||||
|
(description "Tidyp is a program that can validate your HTML, as well as
|
||||||
|
modify it to be more clean and standard. tidyp does not validate HTML 5.
|
||||||
|
|
||||||
|
libtidyp is the library on which the program is based. It can be used by any
|
||||||
|
other program that can interface to it. The Perl module @code{HTML::Tidy} is
|
||||||
|
based on this library, allowing Perl programmers to easily validate HTML.")
|
||||||
|
;; See htmldoc/license.html
|
||||||
|
(license l:bsd-3)))
|
||||||
|
|
||||||
|
(define-public perl-html-tidy
|
||||||
|
(package
|
||||||
|
(name "perl-html-tidy")
|
||||||
|
(version "1.60")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-tidyp-paths
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "Makefile.PL"
|
||||||
|
(("^my \\$inc = \"" line)
|
||||||
|
(string-append line
|
||||||
|
"-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
|
||||||
|
(("-L/usr/lib")
|
||||||
|
(string-append
|
||||||
|
"-L" (assoc-ref inputs "tidyp") "/lib")))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("perl-libwww" ,perl-libwww)
|
||||||
|
("tidyp" ,tidyp)))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl-test-exception" ,perl-test-exception)))
|
||||||
|
(home-page "http://search.cpan.org/dist/HTML-Tidy/")
|
||||||
|
(synopsis "(X)HTML validation in a Perl object")
|
||||||
|
(description "@code{HTML::Tidy} is an HTML checker in a handy dandy
|
||||||
|
object. It's meant as a replacement for @code{HTML::Lint}, which is written
|
||||||
|
in Perl but is not nearly as capable as @code{HTML::Tidy}.")
|
||||||
|
(license l:artistic2.0)))
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
|
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
|
||||||
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
|
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
|
||||||
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
||||||
|
;;; Copyright © 2017 Petter <petter@mykolab.ch>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1235,3 +1236,160 @@ This framework aids the development of XML systems with minimal effort and
|
||||||
reduced errors. It offers full object serialization and deserialization,
|
reduced errors. It offers full object serialization and deserialization,
|
||||||
maintaining each reference encountered.")
|
maintaining each reference encountered.")
|
||||||
(license license:asl2.0)))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public perl-xml-xpathengine
|
||||||
|
(package
|
||||||
|
(name "perl-xml-xpathengine")
|
||||||
|
(version "0.14")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
|
||||||
|
"XML-XPathEngine-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/XML-XPathEngine/")
|
||||||
|
(synopsis "Re-usable XPath engine for DOM-like trees")
|
||||||
|
(description
|
||||||
|
"This module provides an XPath engine, that can be re-used by other
|
||||||
|
modules/classes that implement trees.
|
||||||
|
|
||||||
|
In order to use the XPath engine, nodes in the user module need to mimick DOM
|
||||||
|
nodes. The degree of similitude between the user tree and a DOM dictates how
|
||||||
|
much of the XPath features can be used. A module implementing all of the DOM
|
||||||
|
should be able to use this module very easily (you might need to add the
|
||||||
|
@code{cmp} method on nodes in order to get ordered result sets).")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-tree-xpathengine
|
||||||
|
(package
|
||||||
|
(name "perl-tree-xpathengine")
|
||||||
|
(version "0.05")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
|
||||||
|
"Tree-XPathEngine-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Tree-XPathEngine/")
|
||||||
|
(synopsis "Re-usable XPath engine")
|
||||||
|
(description
|
||||||
|
"This module provides an XPath engine, that can be re-used by other
|
||||||
|
module/classes that implement trees. It is designed to be compatible with
|
||||||
|
@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
|
||||||
|
by @code{Tree::XPathEngine}.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-xml-filter-buffertext
|
||||||
|
(package
|
||||||
|
(name "perl-xml-filter-buffertext")
|
||||||
|
(version "1.01")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
|
||||||
|
"XML-Filter-BufferText-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-xml-sax-base" ,perl-xml-sax-base)))
|
||||||
|
(home-page "http://search.cpan.org/dist/XML-Filter-BufferText/")
|
||||||
|
(synopsis "Filter to put all characters() in one event")
|
||||||
|
(description "This is a very simple filter. One common cause of
|
||||||
|
grief (and programmer error) is that XML parsers aren't required to provide
|
||||||
|
character events in one chunk. They can, but are not forced to, and most
|
||||||
|
don't. This filter does the trivial but oft-repeated task of putting all
|
||||||
|
characters into a single event.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-xml-sax-writer
|
||||||
|
(package
|
||||||
|
(name "perl-xml-sax-writer")
|
||||||
|
(version "0.57")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://cpan/authors/id/P/PE/PERIGRIN/"
|
||||||
|
"XML-SAX-Writer-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-libxml" ,perl-libxml)
|
||||||
|
("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
|
||||||
|
("perl-xml-namespacesupport", perl-xml-namespacesupport)
|
||||||
|
("perl-xml-sax-base" ,perl-xml-sax-base)))
|
||||||
|
(home-page "http://search.cpan.org/dist/XML-SAX-Writer/")
|
||||||
|
(synopsis "SAX2 XML Writer")
|
||||||
|
(description
|
||||||
|
"This is an XML writer that understands SAX2. It is based on
|
||||||
|
@code{XML::Handler::YAWriter}.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-xml-handler-yawriter
|
||||||
|
(package
|
||||||
|
(name "perl-xml-handler-yawriter")
|
||||||
|
(version "0.23")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
|
||||||
|
"XML-Handler-YAWriter-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-libxml" ,perl-libxml)))
|
||||||
|
(home-page "http://search.cpan.org/dist/XML-Handler-YAWriter/")
|
||||||
|
(synopsis "Yet another Perl SAX XML Writer")
|
||||||
|
(description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
|
||||||
|
It provides a flexible escaping technique and pretty printing.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-xml-twig
|
||||||
|
(package
|
||||||
|
(name "perl-xml-twig")
|
||||||
|
(version "3.52")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
|
||||||
|
"XML-Twig-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("expat" ,expat)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-html-tidy" ,perl-html-tidy)
|
||||||
|
("perl-html-tree" ,perl-html-tree)
|
||||||
|
("perl-io-captureoutput" ,perl-io-captureoutput)
|
||||||
|
("perl-io-string" ,perl-io-string)
|
||||||
|
("perl-io-stringy" ,perl-io-stringy)
|
||||||
|
("perl-libxml" ,perl-libxml)
|
||||||
|
("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
|
||||||
|
("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
|
||||||
|
("perl-xml-parser" ,perl-xml-parser)
|
||||||
|
("perl-xml-sax-writer" ,perl-xml-sax-writer)
|
||||||
|
("perl-xml-simple" ,perl-xml-simple)
|
||||||
|
("perl-xml-xpathengine" ,perl-xml-xpathengine)
|
||||||
|
("perl-test-pod", perl-test-pod)
|
||||||
|
("perl-tree-xpathengine" ,perl-tree-xpathengine)))
|
||||||
|
(home-page "http://search.cpan.org/dist/XML-Twig/")
|
||||||
|
(synopsis "Perl module for processing huge XML documents in tree mode")
|
||||||
|
(description "@code{XML::Twig} is an XML transformation module. Its
|
||||||
|
strong points: can be used to process huge documents while still being in tree
|
||||||
|
mode; not bound by DOM or SAX, so it is very perlish and offers a very
|
||||||
|
comprehensive set of methods; simple to use; DWIMs as much as possible.
|
||||||
|
|
||||||
|
What it doesn't offer: full SAX support (it can export SAX, but only reads
|
||||||
|
XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
|
||||||
|
support.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
|
@ -95,10 +95,7 @@
|
||||||
|
|
||||||
%boot-service
|
%boot-service
|
||||||
%activation-service
|
%activation-service
|
||||||
etc-service
|
etc-service))
|
||||||
|
|
||||||
file-union ;XXX: for lack of a better place
|
|
||||||
directory-union))
|
|
||||||
|
|
||||||
;;; Comment:
|
;;; Comment:
|
||||||
;;;
|
;;;
|
||||||
|
@ -388,38 +385,6 @@ boot."
|
||||||
(list (service-extension boot-service-type
|
(list (service-extension boot-service-type
|
||||||
cleanup-gexp)))))
|
cleanup-gexp)))))
|
||||||
|
|
||||||
(define* (file-union name files) ;FIXME: Factorize.
|
|
||||||
"Return a <computed-file> that builds a directory containing all of FILES.
|
|
||||||
Each item in FILES must be a list where the first element is the file name to
|
|
||||||
use in the new directory, and the second element is a gexp denoting the target
|
|
||||||
file."
|
|
||||||
(computed-file name
|
|
||||||
#~(begin
|
|
||||||
(mkdir #$output)
|
|
||||||
(chdir #$output)
|
|
||||||
#$@(map (match-lambda
|
|
||||||
((target source)
|
|
||||||
#~(begin
|
|
||||||
;; Stat the source to abort early if it
|
|
||||||
;; does not exist.
|
|
||||||
(stat #$source)
|
|
||||||
|
|
||||||
(symlink #$source #$target))))
|
|
||||||
files))))
|
|
||||||
|
|
||||||
(define (directory-union name things)
|
|
||||||
"Return a directory that is the union of THINGS."
|
|
||||||
(match things
|
|
||||||
((one)
|
|
||||||
;; Only one thing; return it.
|
|
||||||
one)
|
|
||||||
(_
|
|
||||||
(computed-file name
|
|
||||||
(with-imported-modules '((guix build union))
|
|
||||||
#~(begin
|
|
||||||
(use-modules (guix build union))
|
|
||||||
(union-build #$output '#$things)))))))
|
|
||||||
|
|
||||||
(define* (activation-service->script service)
|
(define* (activation-service->script service)
|
||||||
"Return as a monadic value the activation script for SERVICE, a service of
|
"Return as a monadic value the activation script for SERVICE, a service of
|
||||||
ACTIVATION-SCRIPT-TYPE."
|
ACTIVATION-SCRIPT-TYPE."
|
||||||
|
|
|
@ -71,6 +71,7 @@
|
||||||
udev-service-type
|
udev-service-type
|
||||||
udev-service
|
udev-service
|
||||||
udev-rule
|
udev-rule
|
||||||
|
file->udev-rule
|
||||||
|
|
||||||
login-configuration
|
login-configuration
|
||||||
login-configuration?
|
login-configuration?
|
||||||
|
@ -1630,6 +1631,22 @@ item of @var{packages}."
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(display #$contents port)))))))
|
(display #$contents port)))))))
|
||||||
|
|
||||||
|
(define (file->udev-rule file-name file)
|
||||||
|
"Return a directory with a udev rule file FILE-NAME which is a copy of FILE."
|
||||||
|
(computed-file file-name
|
||||||
|
(with-imported-modules '((guix build utils))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
|
||||||
|
(define rules.d
|
||||||
|
(string-append #$output "/lib/udev/rules.d"))
|
||||||
|
|
||||||
|
(define file-copy-dest
|
||||||
|
(string-append rules.d "/" #$file-name))
|
||||||
|
|
||||||
|
(mkdir-p rules.d)
|
||||||
|
(copy-file #$file file-copy-dest)))))
|
||||||
|
|
||||||
(define kvm-udev-rule
|
(define kvm-udev-rule
|
||||||
;; Return a directory with a udev rule that changes the group of /dev/kvm to
|
;; Return a directory with a udev rule that changes the group of /dev/kvm to
|
||||||
;; "kvm" and makes it #o660. Apparently QEMU-KVM used to ship this rule,
|
;; "kvm" and makes it #o660. Apparently QEMU-KVM used to ship this rule,
|
||||||
|
|
|
@ -78,6 +78,7 @@
|
||||||
%standard-phases))
|
%standard-phases))
|
||||||
(outputs '("out"))
|
(outputs '("out"))
|
||||||
(search-paths '())
|
(search-paths '())
|
||||||
|
(install-source? #t)
|
||||||
(import-path "")
|
(import-path "")
|
||||||
(unpack-path "")
|
(unpack-path "")
|
||||||
(tests? #t)
|
(tests? #t)
|
||||||
|
@ -102,6 +103,7 @@
|
||||||
#:outputs %outputs
|
#:outputs %outputs
|
||||||
#:search-paths ',(map search-path-specification->sexp
|
#:search-paths ',(map search-path-specification->sexp
|
||||||
search-paths)
|
search-paths)
|
||||||
|
#:install-source? ,install-source?
|
||||||
#:import-path ,import-path
|
#:import-path ,import-path
|
||||||
#:unpack-path ,unpack-path
|
#:unpack-path ,unpack-path
|
||||||
#:tests? ,tests?
|
#:tests? ,tests?
|
||||||
|
|
|
@ -0,0 +1,165 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (guix build compile)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 format)
|
||||||
|
#:use-module (ice-9 threads)
|
||||||
|
#:use-module (system base target)
|
||||||
|
#:use-module (system base compile)
|
||||||
|
#:use-module (system base message)
|
||||||
|
#:use-module (guix modules)
|
||||||
|
#:use-module (guix build utils)
|
||||||
|
#:export (%default-optimizations
|
||||||
|
%lightweight-optimizations
|
||||||
|
compile-files))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; Support code to compile Guile code as efficiently as possible (both with
|
||||||
|
;;; Guile 2.0 and 2.2).
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(cond-expand
|
||||||
|
(guile-2.2 (use-modules (language tree-il optimize)
|
||||||
|
(language cps optimize)))
|
||||||
|
(else #f))
|
||||||
|
|
||||||
|
(define %default-optimizations
|
||||||
|
;; Default optimization options (equivalent to -O2 on Guile 2.2).
|
||||||
|
(cond-expand
|
||||||
|
(guile-2.2 (append (tree-il-default-optimization-options)
|
||||||
|
(cps-default-optimization-options)))
|
||||||
|
(else '())))
|
||||||
|
|
||||||
|
(define %lightweight-optimizations
|
||||||
|
;; Lightweight optimizations (like -O0, but with partial evaluation).
|
||||||
|
(let loop ((opts %default-optimizations)
|
||||||
|
(result '()))
|
||||||
|
(match opts
|
||||||
|
(() (reverse result))
|
||||||
|
((#:partial-eval? _ rest ...)
|
||||||
|
(loop rest `(#t #:partial-eval? ,@result)))
|
||||||
|
((kw _ rest ...)
|
||||||
|
(loop rest `(#f ,kw ,@result))))))
|
||||||
|
|
||||||
|
(define %warnings
|
||||||
|
;; FIXME: 'format' is missing because it reports "non-literal format
|
||||||
|
;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
|
||||||
|
;; help from Guile to solve this.
|
||||||
|
'(unsupported-warning unbound-variable arity-mismatch
|
||||||
|
macro-use-before-definition)) ;new in 2.2
|
||||||
|
|
||||||
|
(define (optimization-options file)
|
||||||
|
"Return the default set of optimizations options for FILE."
|
||||||
|
(if (string-contains file "gnu/packages/")
|
||||||
|
%lightweight-optimizations ;build faster
|
||||||
|
'()))
|
||||||
|
|
||||||
|
(define (scm->go file)
|
||||||
|
"Strip the \".scm\" suffix from FILE, and append \".go\"."
|
||||||
|
(string-append (string-drop-right file 4) ".go"))
|
||||||
|
|
||||||
|
(define* (load-files directory files
|
||||||
|
#:key
|
||||||
|
(report-load (const #f))
|
||||||
|
(debug-port (%make-void-port "w")))
|
||||||
|
"Load FILES, a list of relative file names, from DIRECTORY."
|
||||||
|
(define total
|
||||||
|
(length files))
|
||||||
|
|
||||||
|
(let loop ((files files)
|
||||||
|
(completed 0))
|
||||||
|
(match files
|
||||||
|
(()
|
||||||
|
(unless (zero? total)
|
||||||
|
(report-load #f total completed))
|
||||||
|
*unspecified*)
|
||||||
|
((file files ...)
|
||||||
|
(report-load file total completed)
|
||||||
|
(format debug-port "~%loading '~a'...~%" file)
|
||||||
|
|
||||||
|
(parameterize ((current-warning-port debug-port))
|
||||||
|
(resolve-interface (file-name->module-name file)))
|
||||||
|
|
||||||
|
(loop files (+ 1 completed))))))
|
||||||
|
|
||||||
|
(define-syntax-rule (with-augmented-search-path path item body ...)
|
||||||
|
"Within the dynamic extent of BODY, augment PATH by adding ITEM to the
|
||||||
|
front."
|
||||||
|
(let ((initial-value path))
|
||||||
|
(dynamic-wind
|
||||||
|
(lambda ()
|
||||||
|
(set! path (cons item path)))
|
||||||
|
(lambda ()
|
||||||
|
body ...)
|
||||||
|
(lambda ()
|
||||||
|
(set! path initial-value)))))
|
||||||
|
|
||||||
|
(define* (compile-files source-directory build-directory files
|
||||||
|
#:key
|
||||||
|
(host %host-type)
|
||||||
|
(workers (current-processor-count))
|
||||||
|
(optimization-options optimization-options)
|
||||||
|
(warning-options `(#:warnings ,%warnings))
|
||||||
|
(report-load (const #f))
|
||||||
|
(report-compilation (const #f))
|
||||||
|
(debug-port (%make-void-port "w")))
|
||||||
|
"Compile FILES, a list of source files taken from SOURCE-DIRECTORY, to
|
||||||
|
BUILD-DIRECTORY, using up to WORKERS parallel workers. The resulting object
|
||||||
|
files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"."
|
||||||
|
(define progress-lock (make-mutex))
|
||||||
|
(define total (length files))
|
||||||
|
(define completed 0)
|
||||||
|
|
||||||
|
(define (build file)
|
||||||
|
(with-mutex progress-lock
|
||||||
|
(report-compilation file total completed))
|
||||||
|
(with-fluids ((*current-warning-prefix* ""))
|
||||||
|
(with-target host
|
||||||
|
(lambda ()
|
||||||
|
(compile-file file
|
||||||
|
#:output-file (string-append build-directory "/"
|
||||||
|
(scm->go file))
|
||||||
|
#:opts (append warning-options
|
||||||
|
(optimization-options file))))))
|
||||||
|
(with-mutex progress-lock
|
||||||
|
(set! completed (+ 1 completed))))
|
||||||
|
|
||||||
|
(with-augmented-search-path %load-path source-directory
|
||||||
|
(with-augmented-search-path %load-compiled-path build-directory
|
||||||
|
;; FIXME: To work around <https://bugs.gnu.org/15602>, we first load all
|
||||||
|
;; of FILES.
|
||||||
|
(load-files source-directory files
|
||||||
|
#:report-load report-load
|
||||||
|
#:debug-port debug-port)
|
||||||
|
|
||||||
|
;; Make sure compilation related modules are loaded before starting to
|
||||||
|
;; compile files in parallel.
|
||||||
|
(compile #f)
|
||||||
|
|
||||||
|
(n-par-for-each workers build files)
|
||||||
|
(unless (zero? total)
|
||||||
|
(report-compilation #f total total)))))
|
||||||
|
|
||||||
|
;;; Local Variables:
|
||||||
|
;;; eval: (put 'with-augmented-search-path 'scheme-indent-function 2)
|
||||||
|
;;; eval: (put 'with-target 'scheme-indent-function 1)
|
||||||
|
;;; End:
|
|
@ -126,13 +126,14 @@ unset. When SOURCE is a directory, copy it instead of unpacking."
|
||||||
(zero? (system* "unzip" "-d" dest source))
|
(zero? (system* "unzip" "-d" dest source))
|
||||||
(zero? (system* "tar" "-C" dest "-xvf" source))))))
|
(zero? (system* "tar" "-C" dest "-xvf" source))))))
|
||||||
|
|
||||||
(define* (install-source #:key outputs #:allow-other-keys)
|
(define* (install-source #:key install-source? outputs #:allow-other-keys)
|
||||||
"Install the source code to the output directory."
|
"Install the source code to the output directory."
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(source "src")
|
(source "src")
|
||||||
(dest (string-append out "/" source)))
|
(dest (string-append out "/" source)))
|
||||||
(copy-recursively source dest #:keep-mtime? #t)
|
(if install-source?
|
||||||
#t))
|
(copy-recursively source dest #:keep-mtime? #t)
|
||||||
|
#t)))
|
||||||
|
|
||||||
(define (go-package? name)
|
(define (go-package? name)
|
||||||
(string-prefix? "go-" name))
|
(string-prefix? "go-" name))
|
||||||
|
@ -179,6 +180,9 @@ respectively."
|
||||||
(zero? (system* "go" "install"
|
(zero? (system* "go" "install"
|
||||||
"-v" ; print the name of packages as they are compiled
|
"-v" ; print the name of packages as they are compiled
|
||||||
"-x" ; print each command as it is invoked
|
"-x" ; print each command as it is invoked
|
||||||
|
;; Respectively, strip the symbol table and debug
|
||||||
|
;; information, and the DWARF symbol table.
|
||||||
|
"-ldflags=-s -w"
|
||||||
import-path))
|
import-path))
|
||||||
(begin
|
(begin
|
||||||
(display (string-append "Building '" import-path "' failed.\n"
|
(display (string-append "Building '" import-path "' failed.\n"
|
||||||
|
|
|
@ -20,11 +20,10 @@
|
||||||
(define-module (guix build pull)
|
(define-module (guix build pull)
|
||||||
#:use-module (guix modules)
|
#:use-module (guix modules)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (system base compile)
|
#:use-module (guix build compile)
|
||||||
#:use-module (ice-9 ftw)
|
#:use-module (ice-9 ftw)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:use-module (ice-9 threads)
|
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
@ -63,34 +62,6 @@ available, false otherwise."
|
||||||
(string-prefix? gnu b))
|
(string-prefix? gnu b))
|
||||||
(string<? a b))))))
|
(string<? a b))))))
|
||||||
|
|
||||||
(cond-expand
|
|
||||||
(guile-2.2 (use-modules (language tree-il optimize)
|
|
||||||
(language cps optimize)))
|
|
||||||
(else #f))
|
|
||||||
|
|
||||||
(define %default-optimizations
|
|
||||||
;; Default optimization options (equivalent to -O2 on Guile 2.2).
|
|
||||||
(cond-expand
|
|
||||||
(guile-2.2 (append (tree-il-default-optimization-options)
|
|
||||||
(cps-default-optimization-options)))
|
|
||||||
(else '())))
|
|
||||||
|
|
||||||
(define %lightweight-optimizations
|
|
||||||
;; Lightweight optimizations (like -O0, but with partial evaluation).
|
|
||||||
(let loop ((opts %default-optimizations)
|
|
||||||
(result '()))
|
|
||||||
(match opts
|
|
||||||
(() (reverse result))
|
|
||||||
((#:partial-eval? _ rest ...)
|
|
||||||
(loop rest `(#t #:partial-eval? ,@result)))
|
|
||||||
((kw _ rest ...)
|
|
||||||
(loop rest `(#f ,kw ,@result))))))
|
|
||||||
|
|
||||||
(define (optimization-options file)
|
|
||||||
(if (string-contains file "gnu/packages/")
|
|
||||||
%lightweight-optimizations ;build faster
|
|
||||||
'()))
|
|
||||||
|
|
||||||
|
|
||||||
(define* (build-guix out source
|
(define* (build-guix out source
|
||||||
#:key
|
#:key
|
||||||
|
@ -148,53 +119,43 @@ containing the source code. Write any debugging output to DEBUG-PORT."
|
||||||
(set! %load-path (cons out %load-path))
|
(set! %load-path (cons out %load-path))
|
||||||
(set! %load-compiled-path (cons out %load-compiled-path))
|
(set! %load-compiled-path (cons out %load-compiled-path))
|
||||||
|
|
||||||
;; Compile the .scm files. Load all the files before compiling them to
|
;; Compile the .scm files. Hide warnings.
|
||||||
;; work around <http://bugs.gnu.org/15602> (FIXME).
|
(parameterize ((current-warning-port (%make-void-port "w")))
|
||||||
;; Filter out files depending on Guile-SSH when Guile-SSH is missing.
|
(with-directory-excursion out
|
||||||
(let* ((files (filter has-all-its-dependencies?
|
;; Filter out files depending on Guile-SSH when Guile-SSH is missing.
|
||||||
(all-scheme-files out)))
|
(let ((files (filter has-all-its-dependencies?
|
||||||
(total (length files)))
|
(all-scheme-files "."))))
|
||||||
(let loop ((files files)
|
(compile-files out out
|
||||||
(completed 0))
|
|
||||||
(match files
|
;; XXX: 'compile-files' except ready-to-use relative
|
||||||
(() *unspecified*)
|
;; file names.
|
||||||
((file . files)
|
(map (lambda (file)
|
||||||
(display #\cr log-port)
|
(if (string-prefix? "./" file)
|
||||||
(format log-port "loading...\t~5,1f% of ~d files" ;FIXME: i18n
|
(string-drop file 2)
|
||||||
(* 100. (/ completed total)) total)
|
file))
|
||||||
(force-output log-port)
|
files)
|
||||||
(format debug-port "~%loading '~a'...~%" file)
|
|
||||||
;; Turn "<out>/foo/bar.scm" into (foo bar).
|
#:workers (parallel-job-count)
|
||||||
(let* ((relative-file (string-drop file (+ (string-length out) 1)))
|
|
||||||
(module-path (string-drop-right relative-file 4))
|
;; Disable warnings.
|
||||||
(module-name (map string->symbol
|
#:warning-options '()
|
||||||
(string-split module-path #\/))))
|
|
||||||
(parameterize ((current-warning-port debug-port))
|
#:report-load
|
||||||
(resolve-interface module-name)))
|
(lambda (file total completed)
|
||||||
(loop files (+ 1 completed)))))
|
(display #\cr log-port)
|
||||||
(newline)
|
(format log-port
|
||||||
(let ((mutex (make-mutex))
|
"loading...\t~5,1f% of ~d files" ;FIXME: i18n
|
||||||
(completed 0))
|
(* 100. (/ completed total)) total)
|
||||||
;; Make sure compilation related modules are loaded before starting to
|
(force-output log-port)
|
||||||
;; compile files in parallel.
|
(format debug-port "~%loading '~a'...~%" file))
|
||||||
(compile #f)
|
|
||||||
(n-par-for-each
|
#:report-compilation
|
||||||
(parallel-job-count)
|
(lambda (file total completed)
|
||||||
(lambda (file)
|
(display #\cr log-port)
|
||||||
(with-mutex mutex
|
(format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n
|
||||||
(display #\cr log-port)
|
(* 100. (/ completed total)) total)
|
||||||
(format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n
|
(force-output log-port)
|
||||||
(* 100. (/ completed total)) total)
|
(format debug-port "~%compiling '~a'...~%" file)))))))
|
||||||
(force-output log-port)
|
|
||||||
(format debug-port "~%compiling '~a'...~%" file))
|
|
||||||
(let ((go (string-append (string-drop-right file 4) ".go")))
|
|
||||||
(parameterize ((current-warning-port (%make-void-port "w")))
|
|
||||||
(compile-file file
|
|
||||||
#:output-file go
|
|
||||||
#:opts (optimization-options file))))
|
|
||||||
(with-mutex mutex
|
|
||||||
(set! completed (+ 1 completed))))
|
|
||||||
files))))
|
|
||||||
|
|
||||||
(newline)
|
(newline)
|
||||||
#t)
|
#t)
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
(define-module (guix discovery)
|
(define-module (guix discovery)
|
||||||
#:use-module (guix ui)
|
#:use-module (guix ui)
|
||||||
|
#:use-module (guix modules)
|
||||||
#:use-module (guix combinators)
|
#:use-module (guix combinators)
|
||||||
#:use-module (guix build syscalls)
|
#:use-module (guix build syscalls)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
@ -88,13 +89,6 @@ DIRECTORY is not accessible."
|
||||||
directory (strerror errno)))
|
directory (strerror errno)))
|
||||||
'())))))
|
'())))))
|
||||||
|
|
||||||
(define file-name->module-name
|
|
||||||
(let ((not-slash (char-set-complement (char-set #\/))))
|
|
||||||
(lambda (file)
|
|
||||||
"Return the module name (a list of symbols) corresponding to FILE."
|
|
||||||
(map string->symbol
|
|
||||||
(string-tokenize (string-drop-right file 4) not-slash)))))
|
|
||||||
|
|
||||||
(define* (scheme-modules directory #:optional sub-directory)
|
(define* (scheme-modules directory #:optional sub-directory)
|
||||||
"Return the list of Scheme modules available under DIRECTORY.
|
"Return the list of Scheme modules available under DIRECTORY.
|
||||||
Optionally, narrow the search to SUB-DIRECTORY."
|
Optionally, narrow the search to SUB-DIRECTORY."
|
||||||
|
|
|
@ -78,6 +78,8 @@
|
||||||
gexp->script
|
gexp->script
|
||||||
text-file*
|
text-file*
|
||||||
mixed-text-file
|
mixed-text-file
|
||||||
|
file-union
|
||||||
|
directory-union
|
||||||
imported-files
|
imported-files
|
||||||
imported-modules
|
imported-modules
|
||||||
compiled-modules
|
compiled-modules
|
||||||
|
@ -1171,6 +1173,56 @@ This is the declarative counterpart of 'text-file*'."
|
||||||
|
|
||||||
(computed-file name build))
|
(computed-file name build))
|
||||||
|
|
||||||
|
(define (file-union name files)
|
||||||
|
"Return a <computed-file> that builds a directory containing all of FILES.
|
||||||
|
Each item in FILES must be a two-element list where the first element is the
|
||||||
|
file name to use in the new directory, and the second element is a gexp
|
||||||
|
denoting the target file. Here's an example:
|
||||||
|
|
||||||
|
(file-union \"etc\"
|
||||||
|
`((\"hosts\" ,(plain-file \"hosts\"
|
||||||
|
\"127.0.0.1 localhost\"))
|
||||||
|
(\"bashrc\" ,(plain-file \"bashrc\"
|
||||||
|
\"alias ls='ls --color'\"))))
|
||||||
|
|
||||||
|
This yields an 'etc' directory containing these two files."
|
||||||
|
(computed-file name
|
||||||
|
(gexp
|
||||||
|
(begin
|
||||||
|
(mkdir (ungexp output))
|
||||||
|
(chdir (ungexp output))
|
||||||
|
(ungexp-splicing
|
||||||
|
(map (match-lambda
|
||||||
|
((target source)
|
||||||
|
(gexp
|
||||||
|
(begin
|
||||||
|
;; Stat the source to abort early if it does
|
||||||
|
;; not exist.
|
||||||
|
(stat (ungexp source))
|
||||||
|
|
||||||
|
(symlink (ungexp source)
|
||||||
|
(ungexp target))))))
|
||||||
|
files))))))
|
||||||
|
|
||||||
|
(define (directory-union name things)
|
||||||
|
"Return a directory that is the union of THINGS, where THINGS is a list of
|
||||||
|
file-like objects denoting directories. For example:
|
||||||
|
|
||||||
|
(directory-union \"guile+emacs\" (list guile emacs))
|
||||||
|
|
||||||
|
yields a directory that is the union of the 'guile' and 'emacs' packages."
|
||||||
|
(match things
|
||||||
|
((one)
|
||||||
|
;; Only one thing; return it.
|
||||||
|
one)
|
||||||
|
(_
|
||||||
|
(computed-file name
|
||||||
|
(with-imported-modules '((guix build union))
|
||||||
|
(gexp (begin
|
||||||
|
(use-modules (guix build union))
|
||||||
|
(union-build (ungexp output)
|
||||||
|
'(ungexp things)))))))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Syntactic sugar.
|
;;; Syntactic sugar.
|
||||||
|
|
|
@ -26,6 +26,9 @@
|
||||||
#:export (missing-dependency-error?
|
#:export (missing-dependency-error?
|
||||||
missing-dependency-module
|
missing-dependency-module
|
||||||
|
|
||||||
|
file-name->module-name
|
||||||
|
module-name->file-name
|
||||||
|
|
||||||
source-module-closure
|
source-module-closure
|
||||||
live-module-closure
|
live-module-closure
|
||||||
guix-module-name?))
|
guix-module-name?))
|
||||||
|
@ -93,6 +96,13 @@ depends on."
|
||||||
(_
|
(_
|
||||||
'()))))))
|
'()))))))
|
||||||
|
|
||||||
|
(define file-name->module-name
|
||||||
|
(let ((not-slash (char-set-complement (char-set #\/))))
|
||||||
|
(lambda (file)
|
||||||
|
"Return the module name (a list of symbols) corresponding to FILE."
|
||||||
|
(map string->symbol
|
||||||
|
(string-tokenize (string-drop-right file 4) not-slash)))))
|
||||||
|
|
||||||
(define (module-name->file-name module)
|
(define (module-name->file-name module)
|
||||||
"Return the file name for MODULE."
|
"Return the file name for MODULE."
|
||||||
(string-append (string-join (map symbol->string module) "/")
|
(string-append (string-join (map symbol->string module) "/")
|
||||||
|
|
Loading…
Reference in New Issue