Merge branch 'master' into core-updates
commit
d763940711
|
@ -25,6 +25,8 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (rnrs io ports)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 popen)
|
||||
|
@ -263,6 +265,9 @@ interface (FFI) of Guile.")
|
|||
#~(define-module (gcrypt hash)
|
||||
#:export (sha1 sha256))))
|
||||
|
||||
(define fake-git
|
||||
(scheme-file "git.scm" #~(define-module (git))))
|
||||
|
||||
(with-imported-modules `(((guix config)
|
||||
=> ,(make-config.scm))
|
||||
|
||||
|
@ -272,6 +277,11 @@ interface (FFI) of Guile.")
|
|||
;; adjust %LOAD-PATH later on.
|
||||
((gcrypt hash) => ,fake-gcrypt-hash)
|
||||
|
||||
;; (guix git-download) depends on (git) but only
|
||||
;; for peripheral functionality. Provide a dummy
|
||||
;; (git) to placate it.
|
||||
((git) => ,fake-git)
|
||||
|
||||
,@(source-module-closure `((guix store)
|
||||
(guix self)
|
||||
(guix derivations)
|
||||
|
@ -417,7 +427,15 @@ files."
|
|||
;; Unsupported PULL-VERSION.
|
||||
(return #f))
|
||||
((? string? str)
|
||||
(error "invalid build result" (list build str))))))))
|
||||
(raise (condition
|
||||
(&message
|
||||
(message (format #f "You found a bug: the program '~a'
|
||||
failed to compute the derivation for Guix (version: ~s; system: ~s;
|
||||
host version: ~s; pull-version: ~s).
|
||||
Please report it by email to <~a>.~%"
|
||||
(derivation->output-path build)
|
||||
version system %guix-version pull-version
|
||||
%guix-bug-report-address)))))))))))
|
||||
|
||||
;; This file is loaded by 'guix pull'; return it the build procedure.
|
||||
build
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -56,6 +57,7 @@
|
|||
(guix packages)
|
||||
(guix derivations)
|
||||
(guix monads)
|
||||
(guix ui)
|
||||
((guix licenses) #:select (gpl3+))
|
||||
((guix utils) #:select (%current-system))
|
||||
((guix scripts system) #:select (read-operating-system))
|
||||
|
@ -311,6 +313,30 @@ valid."
|
|||
packages)))
|
||||
#:select? (const #t))) ;include hidden packages
|
||||
|
||||
(define (arguments->manifests arguments)
|
||||
"Return the list of manifests extracted from ARGUMENTS."
|
||||
(map (match-lambda
|
||||
((input-name . relative-path)
|
||||
(let* ((checkout (assq-ref arguments (string->symbol input-name)))
|
||||
(base (assq-ref checkout 'file-name)))
|
||||
(in-vicinity base relative-path))))
|
||||
(assq-ref arguments 'manifests)))
|
||||
|
||||
(define (manifests->packages store manifests)
|
||||
"Return the list of packages found in MANIFESTS."
|
||||
(define (load-manifest manifest)
|
||||
(save-module-excursion
|
||||
(lambda ()
|
||||
(set-current-module (make-user-module '((guix profiles) (gnu))))
|
||||
(primitive-load manifest))))
|
||||
|
||||
(parameterize ((%graft? #f))
|
||||
(delete-duplicates!
|
||||
(map manifest-entry-item
|
||||
(append-map (compose manifest-entries
|
||||
load-manifest)
|
||||
manifests)))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Hydra entry point.
|
||||
|
@ -323,6 +349,7 @@ valid."
|
|||
("core" 'core) ; only build core packages
|
||||
("hello" 'hello) ; only build hello
|
||||
(((? string?) (? string?) ...) 'list) ; only build selected list of packages
|
||||
("manifests" 'manifests) ; only build packages in the list of manifests
|
||||
(_ 'all))) ; build everything
|
||||
|
||||
(define systems
|
||||
|
@ -419,6 +446,14 @@ valid."
|
|||
package system))
|
||||
packages))
|
||||
'()))
|
||||
((manifests)
|
||||
;; Build packages in the list of manifests.
|
||||
(let* ((manifests (arguments->manifests arguments))
|
||||
(packages (manifests->packages store manifests)))
|
||||
(map (lambda (package)
|
||||
(package-job store (job-name package)
|
||||
package system))
|
||||
packages)))
|
||||
(else
|
||||
(error "unknown subset" subset))))
|
||||
systems)))
|
||||
|
|
|
@ -18165,23 +18165,43 @@ The type of the Cuirass service. Its value must be a
|
|||
@code{cuirass-configuration} object, as described below.
|
||||
@end defvr
|
||||
|
||||
To add build jobs, you have to set the @code{specifications} field of
|
||||
the configuration. Here is an example of a service defining a build job
|
||||
based on a specification that can be found in Cuirass source tree. This
|
||||
service polls the Guix repository and builds a subset of the Guix
|
||||
packages, as prescribed in the @file{gnu-system.scm} example spec:
|
||||
To add build jobs, you have to set the @code{specifications} field of the
|
||||
configuration. Here is an example of a service that polls the Guix repository
|
||||
and builds the packages from a manifest. Some of the packages are defined in
|
||||
the @code{"custom-packages"} input, which is the equivalent of
|
||||
@code{GUIX_PACKAGE_PATH}.
|
||||
|
||||
@example
|
||||
(let ((spec #~((#:name . "guix")
|
||||
(#:url . "git://git.savannah.gnu.org/guix.git")
|
||||
(#:load-path . ".")
|
||||
(#:file . "build-aux/cuirass/gnu-system.scm")
|
||||
(#:proc . cuirass-jobs)
|
||||
(#:arguments (subset . "hello"))
|
||||
(#:branch . "master"))))
|
||||
(service cuirass-service-type
|
||||
(cuirass-configuration
|
||||
(specifications #~(list '#$spec)))))
|
||||
(define %cuirass-specs
|
||||
#~(list
|
||||
'((#:name . "my-manifest")
|
||||
(#:load-path-inputs . ("guix"))
|
||||
(#:package-path-inputs . ("custom-packages"))
|
||||
(#:proc-input . "guix")
|
||||
(#:proc-file . "build-aux/cuirass/gnu-system.scm")
|
||||
(#:proc . cuirass-jobs)
|
||||
(#:proc-args . ((subset . "manifests")
|
||||
(systems . ("x86_64-linux"))
|
||||
(manifests . (("config" . "guix/manifest.scm")))))
|
||||
(#:inputs . (((#:name . "guix")
|
||||
(#:url . "git://git.savannah.gnu.org/guix.git")
|
||||
(#:load-path . ".")
|
||||
(#:branch . "master")
|
||||
(#:no-compile? . #t))
|
||||
((#:name . "config")
|
||||
(#:url . "git://git.example.org/config.git")
|
||||
(#:load-path . ".")
|
||||
(#:branch . "master")
|
||||
(#:no-compile? . #t))
|
||||
((#:name . "custom-packages")
|
||||
(#:url . "git://git.example.org/custom-packages.git")
|
||||
(#:load-path . ".")
|
||||
(#:branch . "master")
|
||||
(#:no-compile? . #t)))))))
|
||||
|
||||
(service cuirass-service-type
|
||||
(cuirass-configuration
|
||||
(specifications %cuirass-specs)))
|
||||
@end example
|
||||
|
||||
While information related to build jobs is located directly in the
|
||||
|
@ -18208,7 +18228,7 @@ Owner's group of the @code{cuirass} process.
|
|||
Number of seconds between the poll of the repositories followed by the
|
||||
Cuirass jobs.
|
||||
|
||||
@item @code{database} (default: @code{"/var/run/cuirass/cuirass.db"})
|
||||
@item @code{database} (default: @code{"/var/lib/cuirass/cuirass.db"})
|
||||
Location of sqlite database which contains the build results and previously
|
||||
added specifications.
|
||||
|
||||
|
|
13
gnu/local.mk
13
gnu/local.mk
|
@ -135,6 +135,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/display-managers.scm \
|
||||
%D%/packages/django.scm \
|
||||
%D%/packages/djvu.scm \
|
||||
%D%/packages/dlang.scm \
|
||||
%D%/packages/dns.scm \
|
||||
%D%/packages/docbook.scm \
|
||||
%D%/packages/docker.scm \
|
||||
|
@ -245,7 +246,6 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/key-mon.scm \
|
||||
%D%/packages/kodi.scm \
|
||||
%D%/packages/language.scm \
|
||||
%D%/packages/ldc.scm \
|
||||
%D%/packages/lego.scm \
|
||||
%D%/packages/less.scm \
|
||||
%D%/packages/lesstif.scm \
|
||||
|
@ -529,7 +529,6 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/build/vm.scm \
|
||||
\
|
||||
%D%/tests.scm \
|
||||
%D%/tests/admin.scm \
|
||||
%D%/tests/audio.scm \
|
||||
%D%/tests/base.scm \
|
||||
%D%/tests/databases.scm \
|
||||
|
@ -855,7 +854,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
|
||||
%D%/packages/patches/laby-make-install.patch \
|
||||
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \
|
||||
%D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \
|
||||
%D%/packages/patches/ldc-disable-phobos-tests.patch \
|
||||
%D%/packages/patches/ledger-fix-uninitialized.patch \
|
||||
%D%/packages/patches/ledger-revert-boost-python-fix.patch \
|
||||
%D%/packages/patches/liba52-enable-pic.patch \
|
||||
|
@ -983,6 +982,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/net-tools-bitrot.patch \
|
||||
%D%/packages/patches/netcdf-date-time.patch \
|
||||
%D%/packages/patches/netcdf-tst_h_par.patch \
|
||||
%D%/packages/patches/netsurf-message-timestamp.patch \
|
||||
%D%/packages/patches/netsurf-system-utf8proc.patch \
|
||||
%D%/packages/patches/netsurf-y2038-tests.patch \
|
||||
%D%/packages/patches/netsurf-longer-test-timeout.patch \
|
||||
|
@ -1078,12 +1078,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/python-axolotl-AES-fix.patch \
|
||||
%D%/packages/patches/python-cairocffi-dlopen-path.patch \
|
||||
%D%/packages/patches/python-fix-tests.patch \
|
||||
%D%/packages/patches/python-genshi-add-support-for-python-3.4-AST.patch \
|
||||
%D%/packages/patches/python-genshi-buildable-on-python-2.7.patch \
|
||||
%D%/packages/patches/python-genshi-disable-speedups-on-python-3.3.patch \
|
||||
%D%/packages/patches/python-genshi-fix-tests-on-python-3.5.patch \
|
||||
%D%/packages/patches/python-genshi-isstring-helper.patch \
|
||||
%D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch \
|
||||
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
|
||||
%D%/packages/patches/python-networkx2-reproducible-build.patch \
|
||||
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
|
||||
|
@ -1129,6 +1123,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
|
||||
%D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
|
||||
%D%/packages/patches/rust-1.19-mrustc.patch \
|
||||
%D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \
|
||||
%D%/packages/patches/rust-bootstrap-stage0-test.patch \
|
||||
%D%/packages/patches/rust-coresimd-doctest.patch \
|
||||
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \
|
||||
|
|
|
@ -1231,7 +1231,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
|
|||
(define-public guitarix
|
||||
(package
|
||||
(name "guitarix")
|
||||
(version "0.37.1")
|
||||
(version "0.37.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1239,7 +1239,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"064k0jzxqgx9gwf8za6jziansabzrwzjaim3qx1743ify5g3gaai"))))
|
||||
"1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no "check" target
|
||||
|
@ -1252,6 +1252,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
|
|||
(inputs
|
||||
`(("libsndfile" ,libsndfile)
|
||||
("boost" ,boost)
|
||||
("curl" ,curl)
|
||||
("avahi" ,avahi)
|
||||
("eigen" ,eigen)
|
||||
("lv2" ,lv2)
|
||||
|
@ -1291,7 +1292,7 @@ auto-wah.")
|
|||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guitarix)
|
||||
((#:configure-flags flags)
|
||||
`(cons "--lv2-only" ,flags))))))
|
||||
`(cons "--no-standalone" ,flags))))))
|
||||
|
||||
(define-public rakarrack
|
||||
(package
|
||||
|
|
|
@ -740,12 +740,15 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
|
|||
("python2-pep8" ,python2-pep8)
|
||||
("python2-pylint" ,python2-pylint)))
|
||||
(home-page "https://obnam.org/")
|
||||
(synopsis "Easy and secure backup program")
|
||||
(description "Obnam is an easy, secure backup program. Features
|
||||
include snapshot backups, data de-duplication and encrypted backups
|
||||
using GnuPG. Backups can be stored on local hard disks, or online via
|
||||
the SSH SFTP protocol. The backup server, if used, does not require
|
||||
any special software, on top of SSH.")
|
||||
(synopsis "Retired backup program")
|
||||
(description
|
||||
"Warning: @uref{https://blog.liw.fi/posts/2017/08/13/retiring_obnam/,
|
||||
the Obnam project is retired}. You should use another backup solution instead.
|
||||
|
||||
Obnam was an easy, secure backup program. Features included snapshot backups,
|
||||
data de-duplication and encrypted backups using GnuPG. Backups can be stored on
|
||||
local hard disks, or online via the SSH SFTP protocol. The backup server, if
|
||||
used, does not require any special software, on top of SSH.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public dirvish
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages java)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
#:use-module (gnu packages ldc)
|
||||
#:use-module (gnu packages dlang)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (gnu packages machine-learning)
|
||||
|
@ -13504,3 +13504,198 @@ reference transcripts provided in a annotation file (also in GTF/GFF3 format).
|
|||
(list
|
||||
license:expat ;license for gffcompare
|
||||
license:artistic2.0))))) ;license for gclib
|
||||
|
||||
(define-public python-intervaltree
|
||||
(package
|
||||
(name "python-intervaltree")
|
||||
(version "2.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "intervaltree" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02w191m9zxkcjqr1kv2slxvhymwhj3jnsyy3a28b837pi15q19dc"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: error when collecting tests
|
||||
(arguments '(#:tests? #f))
|
||||
(propagated-inputs
|
||||
`(("python-sortedcontainers" ,python-sortedcontainers)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/chaimleib/intervaltree")
|
||||
(synopsis "Editable interval tree data structure")
|
||||
(description
|
||||
"This package provides a mutable, self-balancing interval tree
|
||||
implementation for Python. Queries may be by point, by range overlap, or by
|
||||
range envelopment. This library was designed to allow tagging text and time
|
||||
intervals, where the intervals include the lower bound but not the upper
|
||||
bound.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python-pypairix
|
||||
(package
|
||||
(name "python-pypairix")
|
||||
(version "0.3.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pypairix" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zs92b74s5v4xy2h16s15f3z6l4nnbw8x8zyif7xx5xpafjn0xss"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: the tests fail because test.support cannot be loaded:
|
||||
;; ImportError: cannot import name 'support'
|
||||
(arguments '(#:tests? #f))
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(home-page "https://github.com/4dn-dcic/pairix")
|
||||
(synopsis "Support for querying pairix-indexed bgzipped text files")
|
||||
(description
|
||||
"Pypairix is a Python module for fast querying on a pairix-indexed
|
||||
bgzipped text file that contains a pair of genomic coordinates per line.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pyfaidx
|
||||
(package
|
||||
(name "python-pyfaidx")
|
||||
(version "0.5.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyfaidx" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0y5zyjksj1rdglj601xd2bbni5abhdh622y3ck76chyzxz9z4rx8"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-six" ,python-six)))
|
||||
(home-page "http://mattshirley.com")
|
||||
(synopsis "Random access to fasta subsequences")
|
||||
(description
|
||||
"This package provides procedures for efficient pythonic random access to
|
||||
fasta subsequences.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-cooler
|
||||
(package
|
||||
(name "python-cooler")
|
||||
(version "0.7.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cooler" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08k5nxnxa6qsbk15z5z0q01n28042k87wi4905hh95rzqib15mhx"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-biopython" ,python-biopython)
|
||||
("python-click" ,python-click)
|
||||
("python-cytoolz" ,python-cytoolz)
|
||||
("python-dask" ,python-dask)
|
||||
("python-h5py" ,python-h5py)
|
||||
("python-multiprocess" ,python-multiprocess)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-pyfaidx" ,python-pyfaidx)
|
||||
("python-pypairix" ,python-pypairix)
|
||||
("python-pysam" ,python-pysam)
|
||||
("python-scipy" ,python-scipy)))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
("python-nose" ,python-nose)
|
||||
("python-numpydoc" ,python-numpydoc)
|
||||
("python-sphinx" ,python-sphinx)))
|
||||
(home-page "https://github.com/mirnylab/cooler")
|
||||
(synopsis "Sparse binary format for genomic interaction matrices")
|
||||
(description
|
||||
"Cooler is a support library for a sparse, compressed, binary persistent
|
||||
storage format, called @code{cool}, used to store genomic interaction data,
|
||||
such as Hi-C contact matrices.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-hicexplorer
|
||||
(package
|
||||
(name "python-hicexplorer")
|
||||
(version "2.1.4")
|
||||
(source
|
||||
(origin
|
||||
;; The latest version is not available on Pypi.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/deeptools/HiCExplorer.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0q5gpbzmrkvygqgw524q36b4nrivcmyi5v194vsx0qw7b3gcmq08"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'loosen-up-requirements
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("==") ">="))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-biopython" ,python-biopython)
|
||||
("python-configparser" ,python-configparser)
|
||||
("python-cooler" ,python-cooler)
|
||||
("python-future" ,python-future)
|
||||
("python-intervaltree" ,python-intervaltree)
|
||||
("python-jinja2" ,python-jinja2)
|
||||
("python-matplotlib" ,python-matplotlib)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-pybigwig" ,python-pybigwig)
|
||||
("python-pysam" ,python-pysam)
|
||||
("python-scipy" ,python-scipy)
|
||||
("python-six" ,python-six)
|
||||
("python-tables" ,python-tables)
|
||||
("python-unidecode" ,python-unidecode)))
|
||||
(home-page "http://hicexplorer.readthedocs.io")
|
||||
(synopsis "Process, analyze and visualize Hi-C data")
|
||||
(description
|
||||
"HiCExplorer is a powerful and easy to use set of tools to process,
|
||||
normalize and visualize Hi-C data. HiCExplorer facilitates the creation of
|
||||
contact matrices, correction of contacts, TAD detection, A/B compartments,
|
||||
merging, reordering or chromosomes, conversion from different formats
|
||||
including cooler and detection of long-range contacts. Moreover, it allows
|
||||
the visualization of multiple contact matrices along with other types of data
|
||||
like genes, compartments, ChIP-seq coverage tracks (and in general any type of
|
||||
genomic scores), long range contacts and the visualization of viewpoints.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public python-pygenometracks
|
||||
(package
|
||||
(name "python-pygenometracks")
|
||||
(version "2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyGenomeTracks" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1fws6bqsyy9kj3qiabhkqx4wd4i775gsxnhszqd3zg7w67sc1ic5"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-configparser" ,python-configparser)
|
||||
("python-future" ,python-future)
|
||||
("python-hicexplorer" ,python-hicexplorer)
|
||||
("python-intervaltree" ,python-intervaltree)
|
||||
("python-matplotlib" ,python-matplotlib)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pybigwig" ,python-pybigwig)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://pygenometracks.readthedocs.io")
|
||||
(synopsis "Program and library to plot beautiful genome browser tracks")
|
||||
(description
|
||||
"This package aims to produce high-quality genome browser tracks that
|
||||
are highly customizable. Currently, it is possible to plot: bigwig, bed (many
|
||||
options), bedgraph, links (represented as arcs), and Hi-C matrices.
|
||||
pyGenomeTracks can make plots with or without Hi-C data.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -305,15 +305,15 @@ menu to select one of the installed operating systems.")
|
|||
(delete 'configure)
|
||||
(add-before 'build 'set-permissions
|
||||
(lambda _
|
||||
(zero? (system* "chmod" "a+w" "utils/isohybrid.in"))))
|
||||
(invoke "chmod" "a+w" "utils/isohybrid.in")))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(setenv "CC" "gcc")
|
||||
(substitute* "tests/unittest/include/unittest/unittest.h"
|
||||
;; Don't look up headers under /usr.
|
||||
(("/usr/include/") ""))
|
||||
(zero? (system* "make" "unittest")))))))
|
||||
(home-page "http://www.syslinux.org")
|
||||
(invoke "make" "unittest"))))))
|
||||
(home-page "https://www.syslinux.org")
|
||||
(synopsis "Lightweight Linux bootloader")
|
||||
(description "Syslinux is a lightweight Linux bootloader.")
|
||||
(license (list license:gpl2+
|
||||
|
|
|
@ -220,7 +220,7 @@ COCOMO model or user-provided parameters.")
|
|||
"/cloc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"176xklr2qsgxh9zdb565gib6pp4gsm585rz5fvyphgjy4i679wkv"))))
|
||||
"1j9lwy9xf43kpv1csqdxzch6y1hnsv881ddqd357f8v58dhr4s68"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("coreutils" ,coreutils)
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
#:use-module (guix build-system r)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages machine-learning)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
|
@ -5564,3 +5566,234 @@ gf_density(), and so on, bring the formula interface to ggplot(). This captures
|
|||
and extends the excellent simplicity of the lattice-graphics formula interface,
|
||||
while providing the intuitive capabilities of @code{r-ggplot2}.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-mosaicdata
|
||||
(package
|
||||
(name "r-mosaicdata")
|
||||
(version "0.17.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "mosaicData" version))
|
||||
(sha256
|
||||
(base32 "04z0mdm52mykqsxsinhmsihn181zf6cw321gayk2rjp7lj7mwdq9"))))
|
||||
(properties `((upstream-name . "mosaicData")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/mosaicData/")
|
||||
(synopsis "Data sets for project Mosaic")
|
||||
(description
|
||||
"This package provides data sets from project Mosaic @url{http://mosaic-web.org}
|
||||
used to teach mathematics, statistics, computation and modeling.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-mosaic
|
||||
(package
|
||||
(name "r-mosaic")
|
||||
(version "1.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "mosaic" version))
|
||||
(sha256
|
||||
(base32 "10jbrg8kli00kfgbh2f67bymm5cnlancc9dplb1j7fl552yjddn2"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-broom" ,r-broom)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-ggdendro" ,r-ggdendro)
|
||||
("r-ggformula" ,r-ggformula)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-ggrepel" ,r-ggrepel)
|
||||
("r-glue" ,r-glue)
|
||||
("r-gridextra" ,r-gridextra)
|
||||
("r-lattice" ,r-lattice)
|
||||
("r-latticeextra" ,r-latticeextra)
|
||||
("r-lazyeval" ,r-lazyeval)
|
||||
("r-mass" ,r-mass)
|
||||
("r-matrix" ,r-matrix)
|
||||
("r-mosaiccore" ,r-mosaiccore)
|
||||
("r-mosaicdata" ,r-mosaicdata)
|
||||
("r-readr" ,r-readr)
|
||||
("r-tidyr" ,r-tidyr)))
|
||||
(home-page "https://github.com/ProjectMOSAIC/mosaic/")
|
||||
(synopsis "Mathematics, statistics, and computation teaching utilities")
|
||||
(description
|
||||
"This package contain data sets and utilities from
|
||||
@url{http://mosaic-web.org, Project MOSAIC} used to teach mathematics,
|
||||
statistics, computation and modeling. Project MOSAIC is a community of
|
||||
educators working to tie together aspects of quantitative work that students
|
||||
in science, technology, engineering and mathematics will need in their
|
||||
professional lives, but which are usually taught in isolation, if at all.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-abd
|
||||
(package
|
||||
(name "r-abd")
|
||||
(version "0.2-8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "abd" version))
|
||||
(sha256
|
||||
(base32 "191gspqzdv573vaw624ri0f5cm6v4j524bjs74d4a1hn3kn6r9b7"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-lattice" ,r-lattice)
|
||||
("r-mosaic" ,r-mosaic)
|
||||
("r-nlme" ,r-nlme)))
|
||||
(home-page "https://cran.r-project.org/web/packages/abd/")
|
||||
(synopsis "Analysis of biological data")
|
||||
(description
|
||||
"The @code{r-abd} package contains data sets and sample code for the Analysis of
|
||||
biological data by Michael Whitlock and Dolph Schluter.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-svgui
|
||||
(package
|
||||
(name "r-svgui")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "svGUI" version))
|
||||
(sha256
|
||||
(base32 "1r7ab0p4yr8q03gj02hmj7k1ghksgkg4nx750c0ajfs2q9y1dxfc"))))
|
||||
(properties `((upstream-name . "svGUI")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/SciViews/svGUI/")
|
||||
(synopsis "Functions for managing GUI clients in R")
|
||||
(description
|
||||
"The SciViews @code{svGUI} package eases the management of Graphical User
|
||||
Interfaces (GUI) in R. It is independent from any particular GUI widgets. It
|
||||
centralizes info about GUI elements currently used, and it dispatches GUI
|
||||
calls to the particular toolkits in use in function of the context.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-svdialogs
|
||||
(package
|
||||
(name "r-svdialogs")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "svDialogs" version))
|
||||
(sha256
|
||||
(base32 "0xqppydfawnwk84kb5qiybwbcmv38vn4imgz01mz2pnq4xb80p97"))))
|
||||
(properties `((upstream-name . "svDialogs")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("yad" ,yad)
|
||||
("zenity" ,zenity)))
|
||||
(propagated-inputs
|
||||
`(("r-rstudioapi" ,r-rstudioapi)
|
||||
("r-svgui" ,r-svgui)))
|
||||
(home-page "https://github.com/SciViews/svDialogs/")
|
||||
(synopsis "Portable dialog boxes")
|
||||
(description
|
||||
"This package helps to construct standard dialog boxes for your GUI, including
|
||||
message boxes, input boxes, list, file or directory selection, and others. In
|
||||
case R cannot display GUI dialog boxes, a simpler command line version of these
|
||||
interactive elements is also provided as a fallback solution.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-abe
|
||||
(package
|
||||
(name "r-abe")
|
||||
(version "3.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "abe" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f19h3xzzmjhvwc1rrb8z0rai3ip03y4gdi2gg9bfr5sg2nfklk6"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/abe/")
|
||||
(synopsis "Augmented backward elimination")
|
||||
(description
|
||||
"This package performs augmented backward elimination and checks the
|
||||
stability of the obtained model. Augmented backward elimination combines
|
||||
significance or information based criteria with the change in estimate to
|
||||
either select the optimal model for prediction purposes or to serve as a tool
|
||||
to obtain a practically sound, highly interpretable model.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-abf2
|
||||
(package
|
||||
(name "r-abf2")
|
||||
(version "0.7-1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "abf2" version))
|
||||
(sha256
|
||||
(base32 "0d65mc1w4pbiv7xaqzdlw1bfsxf25587rv597hh41vs0j0zlfpxx"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/abf2/")
|
||||
(synopsis "Load gap-free axon @code{r-abf2} files")
|
||||
(description
|
||||
"This package loads electrophysiology data from ABF2 files, as created by
|
||||
Axon Instruments/Molecular Devices software. Only files recorded in gap-free
|
||||
mode are currently supported.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-abhgenotyper
|
||||
(package
|
||||
(name "r-abhgenotyper")
|
||||
(version "1.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ABHgenotypeR" version))
|
||||
(sha256
|
||||
(base32 "08cpmnaaxsm5c5bjifnfxdlvg5inrf13biqpcl2yq5zpqjmiki0l"))))
|
||||
(properties `((upstream-name . "ABHgenotypeR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
("r-reshape2" ,r-reshape2)))
|
||||
(home-page "https://github.com/StefanReuscher/ABHgenotypeR/")
|
||||
(synopsis "Visualize and manipulate ABH genotypes")
|
||||
(description
|
||||
"The @code{r-abhgenotyper} package provides simple imputation,
|
||||
error-correction and plotting capacities for genotype data. The package is
|
||||
supposed to serve as an intermediate but independent analysis tool between the
|
||||
TASSEL GBS pipeline and the @code{r-qtl} package. It provides functionalities
|
||||
not found in either TASSEL or @code{r-qtl} in addition to visualization of
|
||||
genotypes as \"graphical genotypes\".")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-abjutils
|
||||
(package
|
||||
(name "r-abjutils")
|
||||
(version "0.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "abjutils" version))
|
||||
(sha256
|
||||
(base32 "0qrsc4if7aif73qp95lw6b5986c2r0jn7m39123zij8k15vc935b"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-devtools" ,r-devtools)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-glue" ,r-glue)
|
||||
("r-httr" ,r-httr)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-progress" ,r-progress)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-rstudioapi" ,r-rstudioapi)
|
||||
("r-scales" ,r-scales)
|
||||
("r-stringi" ,r-stringi)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyr" ,r-tidyr)))
|
||||
(home-page "https://github.com/abjur/abjutils/")
|
||||
(synopsis "Collection of tools for jurimetrical analysis")
|
||||
(description
|
||||
"This package implements general purpose tools, such as functions for
|
||||
sampling and basic manipulation of Brazilian lawsuits identification number.
|
||||
It also implements functions for text cleaning, such as accentuation
|
||||
removal.")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -816,3 +816,41 @@ which is also used in the Advanced Encryption Standard (AES, see
|
|||
@url{http://www.nist.gov/aes}). This cipher is believed to provide very strong
|
||||
security.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public asignify
|
||||
(let ((commit "f58e7977a599f040797975d649ed318e25cbd2d5")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "asignify")
|
||||
(version (git-version "1.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/vstakhov/asignify.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zl68qq6js6fdahxzyhvhrpyrwlv8c2zhdplycnfxyr1ckkhq8dw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--enable-openssl"
|
||||
(string-append "--with-openssl="
|
||||
(assoc-ref %build-inputs "openssl")))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(inputs
|
||||
`(("openssl" ,openssl-next)))
|
||||
(home-page "https://github.com/vstakhov/asignify")
|
||||
(synopsis "Cryptographic authentication and encryption tool and library")
|
||||
(description "Asignify offers public cryptographic signatures and
|
||||
encryption with a library or a command-line tool. The tool is heavily inspired
|
||||
by signify as used in OpenBSD. The main goal of this project is to define a
|
||||
high level API for signing files, validating signatures and encrypting using
|
||||
public-key cryptography. Asignify is designed to be portable and self-contained
|
||||
with zero external dependencies. Asignify can verify OpenBSD signatures, but it
|
||||
cannot sign messages in OpenBSD format yet.")
|
||||
(license license:bsd-2))))
|
||||
|
|
|
@ -1457,7 +1457,7 @@ columns, primary keys, unique constraints and relationships.")
|
|||
(define-public perl-dbd-mysql
|
||||
(package
|
||||
(name "perl-dbd-mysql")
|
||||
(version "4.046")
|
||||
(version "4.047")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1465,10 +1465,24 @@ columns, primary keys, unique constraints and relationships.")
|
|||
"DBD-mysql-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xziv9w87cl3fbl1mqkdrx28mdqly3gs6gs1ynbmpl2rr4p6arb1"))))
|
||||
"0idizgr0hr7sj92fbdlb3gv6cva15jkpaq28wrdw4j4p7awx2mls"))))
|
||||
(build-system perl-build-system)
|
||||
;; Tests require running MySQL server
|
||||
(arguments `(#:tests? #f))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'skip-library-detection
|
||||
;; Avoid depencies on perl-devel-checklib, openssl, and zlib. They
|
||||
;; are really only needed for the test suite; their absence does not
|
||||
;; affect the build or the end result.
|
||||
(lambda _
|
||||
(substitute* "Makefile.PL"
|
||||
(("use Devel::CheckLib;" match)
|
||||
(string-append "# " match))
|
||||
(("assert_lib")
|
||||
"print"))
|
||||
#t)))
|
||||
;; Tests require running MySQL server.
|
||||
#:tests? #f))
|
||||
(propagated-inputs
|
||||
`(("perl-dbi" ,perl-dbi)
|
||||
("mysql" ,mysql)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015, 2016 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
|
@ -20,7 +20,7 @@
|
|||
;;; 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 (gnu packages ldc)
|
||||
(define-module (gnu packages dlang)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
|
@ -172,9 +172,9 @@ and freshness without requiring additional information from the user.")
|
|||
(base32
|
||||
"0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
|
||||
(home-page "http://wiki.dlang.org/LDC")
|
||||
(synopsis "LLVM compiler for the D programming language")
|
||||
(synopsis "LLVM-based compiler for the D programming language")
|
||||
(description
|
||||
"LDC is a compiler for the D programming language. It is based on
|
||||
"LDC is an LLVM compiler for the D programming language. It is based on
|
||||
the latest DMD compiler that was written in C and is used for
|
||||
bootstrapping more recent compilers written in D.")
|
||||
;; Most of the code is released under BSD-3, except for code originally
|
||||
|
@ -188,11 +188,11 @@ bootstrapping more recent compilers written in D.")
|
|||
;; Phobos, druntime and dmd-testsuite library dependencies do
|
||||
;; not always have a newer release than the compiler, hence we
|
||||
;; retain this variable.
|
||||
(let ((older-version "1.7.0"))
|
||||
(let ((older-version "1.10.0")) ;; retain this because sometimes the libs are older
|
||||
(package
|
||||
(inherit ldc-bootstrap)
|
||||
(name "ldc")
|
||||
(version "1.7.0")
|
||||
(version "1.10.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -201,7 +201,7 @@ bootstrapping more recent compilers written in D.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rqchmlbhz1pd8ksl1vfhfd5s3cp9h9pqi4k4w2np9sq0zr7abwn"))))
|
||||
"16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi"))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
@ -235,6 +235,8 @@ bootstrapping more recent compilers written in D.")
|
|||
(delete-file "tests/compilable/ctfe_math.d")
|
||||
(delete-file "tests/debuginfo/nested_gdb.d")
|
||||
(delete-file "tests/debuginfo/classtypes_gdb.d")
|
||||
;; the following tests plugins we don't have.
|
||||
(delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
|
||||
;; the following tests requires AVX instruction set in the CPU.
|
||||
(substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
|
||||
(("^// DISABLED: ") "^// DISABLED: linux64 "))
|
||||
|
@ -246,8 +248,8 @@ bootstrapping more recent compilers written in D.")
|
|||
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
|
||||
(invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
|
||||
(native-inputs
|
||||
`(("llvm" ,llvm-3.8)
|
||||
("clang" ,clang-3.8)
|
||||
`(("llvm" ,llvm)
|
||||
("clang" ,clang)
|
||||
("ldc" ,ldc-bootstrap)
|
||||
("python-lit" ,python-lit)
|
||||
("python-wrapper" ,python-wrapper)
|
||||
|
@ -261,7 +263,7 @@ bootstrapping more recent compilers written in D.")
|
|||
older-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"042hn3v0zk353r0h6yclq56z86hi437y969bckyb2qsnv00h60hi"))
|
||||
"0cpmrww00xf1qx38bcc22rr05qw41p00p45yb5fbwnfaccfwdn0s"))
|
||||
;; This patch deactivates some tests that depend on network access
|
||||
;; to pass. It also deactivates some tests that have some reliance
|
||||
;; on timezone.
|
||||
|
@ -271,7 +273,7 @@ bootstrapping more recent compilers written in D.")
|
|||
;; that is being pursued at
|
||||
;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>.
|
||||
;; It also deactivates a test that requires /root
|
||||
(patches (search-patches "ldc-1.7.0-disable-phobos-tests.patch"))))
|
||||
(patches (search-patches "ldc-disable-phobos-tests.patch"))))
|
||||
("druntime-src"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
|
@ -280,7 +282,7 @@ bootstrapping more recent compilers written in D.")
|
|||
older-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pvabk70zw8c1gbmvy2i486bg22bn0l5nbacjz0qwmhf0w9y9ylh"))))
|
||||
"1akh2vdi98jih8642yjbvv2vavxzrmq24kz8i3kfidg5ndqyv222"))))
|
||||
("dmd-testsuite-src"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
|
@ -289,7 +291,7 @@ bootstrapping more recent compilers written in D.")
|
|||
older-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1i8j1raah7b26bprwkdick443ivdsihgi1l14sn9rh4a95rnrpd9")))))))))
|
||||
"0z5x07qrbkpksshaymp11ir6jlmg9wjicxn6zhp8cya6i1ha9p99")))))))))
|
||||
|
||||
(define-public dub
|
||||
(package
|
|
@ -292,7 +292,7 @@ asynchronous fashion.")
|
|||
(define-public unbound
|
||||
(package
|
||||
(name "unbound")
|
||||
(version "1.7.3")
|
||||
(version "1.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -300,7 +300,7 @@ asynchronous fashion.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bb0p8nbda77ghx20yfl7hqxm9x709223q35465v99i8v4ay27f1"))))
|
||||
"0gxqc4ynd2g1a5dwaazqh9n8injh49a7dz0l9bbxqgv47dnrvxvq"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "python"))
|
||||
(native-inputs
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -28,8 +29,13 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages compression))
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public elfutils
|
||||
(package
|
||||
|
@ -85,6 +91,70 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld},
|
|||
;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+.
|
||||
(license lgpl3+)))
|
||||
|
||||
(define-public libabigail
|
||||
(package
|
||||
(name "libabigail")
|
||||
(home-page "https://sourceware.org/libabigail/")
|
||||
(version "1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://sourceware.org/pub/" name
|
||||
"/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17r8i60lxykvdd9pdidmnvkzgf9k8zman0c1czl3zbx0znhlx497"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-static"
|
||||
"--enable-bash-completion"
|
||||
"--enable-manual")
|
||||
#:make-flags '("V=1")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-source
|
||||
(lambda _
|
||||
(substitute* "build-aux/ltmain.sh"
|
||||
;; Don't add -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
|
||||
;; to the GCC command line.
|
||||
(("compiler_flags=\"-specs=.*")
|
||||
"compiler_flags=\n"))
|
||||
#t))
|
||||
(add-after 'build 'build-documentation
|
||||
(lambda _
|
||||
(invoke "make" "-C" "doc/manuals" "html-doc" "man" "info")))
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
(setenv "XDG_CACHE_HOME" "/tmp")
|
||||
#t))
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda _
|
||||
(invoke "make" "-C" "doc/manuals"
|
||||
"install-man-and-info-doc")))
|
||||
(add-after 'install-documentation 'install-bash-completion
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(for-each (lambda (file)
|
||||
(install-file
|
||||
file (string-append (assoc-ref outputs "out")
|
||||
"/share/bash-completion"
|
||||
"/completions")))
|
||||
(find-files "bash-completion" ".*abi.*"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("makeinfo" ,texinfo)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("python" ,python))) ;for tests
|
||||
(propagated-inputs
|
||||
`(("elfutils" ,elfutils) ;libabigail.la says -lelf
|
||||
("libxml2" ,libxml2))) ;in Requires.private of libabigail.pc
|
||||
(synopsis "Analyze application binary interfaces (ABIs)")
|
||||
(description
|
||||
"@dfn{ABIGAIL} stands for the Application Binary Interface Generic
|
||||
Analysis and Instrumentation Library. It is a framework which aims at
|
||||
helping developers and software distributors to spot ABI-related issues
|
||||
like interface incompatibility in ELF shared libraries by performing a
|
||||
static analysis of the ELF binaries at hand.")
|
||||
(license lgpl3+)))
|
||||
|
||||
(define-public libelf
|
||||
(package
|
||||
(name "libelf")
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
#:use-module (guix monads)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system trivial)
|
||||
|
@ -85,6 +86,7 @@
|
|||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages lesstif)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages version-control)
|
||||
|
@ -114,6 +116,8 @@
|
|||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages haskell)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match))
|
||||
|
@ -1635,20 +1639,20 @@ and stored in memory.")
|
|||
(define-public emacs-bui
|
||||
(package
|
||||
(name "emacs-bui")
|
||||
(version "1.1.0")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/alezost/bui.el/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://notabug.org/alezost/emacs-bui.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"112k0mq6xpy0r47vk66miw7rxbkv3d06pv3pd0vcmrhcnhnnk486"))))
|
||||
"0ixia5s41f2nbal3wsixacbhbc0mk9yb75ir1amqakip30sq4apv"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("dash" ,emacs-dash)))
|
||||
(home-page "https://github.com/alezost/bui.el")
|
||||
(home-page "https://notabug.org/alezost/emacs-bui")
|
||||
(synopsis "Buffer interface library for Emacs")
|
||||
(description
|
||||
"BUI (Buffer User Interface) is a library for making @code{list} and
|
||||
|
@ -1659,38 +1663,42 @@ type, for example: packages, buffers, files, etc.")
|
|||
(define-public emacs-guix
|
||||
(package
|
||||
(name "emacs-guix")
|
||||
(version "0.4.1.1")
|
||||
(version "0.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://emacs-guix.gitlab.io/website/"
|
||||
"releases/emacs-guix-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jbnrcazbks7h50rngpw5l40a6vn2794kb53cpva3yzdjmrc1955"))))
|
||||
"09zxd8x674vrpigmcx8l00ifhaxh35xwkwjb8dw9kydnhv9hyyi1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(let ((guix (assoc-ref %build-inputs "guix"))
|
||||
(gcrypt (assoc-ref %build-inputs "guile-gcrypt"))
|
||||
(geiser (assoc-ref %build-inputs "geiser"))
|
||||
(dash (assoc-ref %build-inputs "dash"))
|
||||
(bui (assoc-ref %build-inputs "bui"))
|
||||
(magit-popup (assoc-ref %build-inputs "magit-popup"))
|
||||
(edit-indirect (assoc-ref %build-inputs "edit-indirect"))
|
||||
(site-lisp "/share/emacs/site-lisp"))
|
||||
(site-lisp "/share/emacs/site-lisp")
|
||||
(site-scm "/share/guile/site")
|
||||
(site-go "/lib/guile")
|
||||
(guile-dir (lambda (dir)
|
||||
(car (find-files dir
|
||||
(lambda (file stat)
|
||||
(string-prefix?
|
||||
"2." (basename file)))
|
||||
#:directories? #t)))))
|
||||
(list (string-append "--with-guix-site-dir="
|
||||
(car (find-files (string-append guix
|
||||
"/share/guile/site")
|
||||
(lambda (file stat)
|
||||
(string-prefix?
|
||||
"2."
|
||||
(basename file)))
|
||||
#:directories? #t)))
|
||||
(guile-dir (string-append guix site-scm)))
|
||||
(string-append "--with-guix-site-ccache-dir="
|
||||
(car (find-files (string-append guix "/lib/guile")
|
||||
(lambda (file stat)
|
||||
(string-prefix?
|
||||
"2." (basename file)))
|
||||
#:directories? #t))
|
||||
(guile-dir (string-append guix site-go))
|
||||
"/site-ccache")
|
||||
(string-append "--with-guile-gcrypt-site-dir="
|
||||
(guile-dir (string-append gcrypt site-scm)))
|
||||
(string-append "--with-guile-gcrypt-site-ccache-dir="
|
||||
(guile-dir (string-append gcrypt site-go))
|
||||
"/site-ccache")
|
||||
(string-append "--with-geiser-lispdir=" geiser site-lisp)
|
||||
(string-append "--with-dash-lispdir="
|
||||
|
@ -1713,6 +1721,7 @@ type, for example: packages, buffers, files, etc.")
|
|||
("guix" ,guix)))
|
||||
(propagated-inputs
|
||||
`(("geiser" ,geiser)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
("dash" ,emacs-dash)
|
||||
("bui" ,emacs-bui)
|
||||
("edit-indirect" ,emacs-edit-indirect)
|
||||
|
@ -1729,21 +1738,21 @@ management tasks from Emacs. To begin with, run @code{M-x guix-about} or
|
|||
(define-public emacs-build-farm
|
||||
(package
|
||||
(name "emacs-build-farm")
|
||||
(version "0.2")
|
||||
(version "0.2.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/alezost-emacs/build-farm")
|
||||
(commit "fa7fa54901416fc5c216a5014394cbd73a61efc6")))
|
||||
(url "https://notabug.org/alezost/emacs-build-farm.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zw3pivma6cv9j7k7qm02jd6wnxmsc1v2mjcssd50im99zzrqflh"))))
|
||||
"1a4ky0hca26p7f3i2c2s5517ygkyaaz52vs0vxy6f5q95rhlgdhd"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("bui" ,emacs-bui)
|
||||
("magit-popup" ,emacs-magit-popup)))
|
||||
(home-page "https://gitlab.com/alezost-emacs/build-farm")
|
||||
(home-page "https://notabug.org/alezost/emacs-build-farm")
|
||||
(synopsis "Emacs interface for Hydra and Cuirass build farms")
|
||||
(description
|
||||
"This Emacs package provides an interface for Hydra and
|
||||
|
@ -2725,6 +2734,49 @@ front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
|
|||
These are distributed in separate files and can be used individually.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-irony-mode
|
||||
(package
|
||||
(name "emacs-irony-mode")
|
||||
(version "1.2.0")
|
||||
(home-page "https://github.com/Sarcasm/irony-mode")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/archive/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1f68zi0glkg2aly66s07rx3w0b0hdi1znxan02h6dbabaadylk99"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments '())
|
||||
(propagated-inputs
|
||||
`(("emacs-irony-mode-server" ,emacs-irony-mode-server)))
|
||||
(synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
|
||||
(description "Irony-mode provides Clang-assisted syntax checking and
|
||||
completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
|
||||
provide syntax checking and autocompletion on compiler level which is very
|
||||
resistent against false positives. It also integrates well with other
|
||||
packages like @code{eldoc-mode} and especially @code{company-mode} as
|
||||
described on the homepage.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-irony-mode-server
|
||||
(package (inherit emacs-irony-mode)
|
||||
(name "emacs-irony-mode-server")
|
||||
(inputs
|
||||
`(("clang" ,clang)))
|
||||
(propagated-inputs '())
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(invoke "cmake"
|
||||
"server"
|
||||
(string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
|
||||
(build-system cmake-build-system)
|
||||
(synopsis "Server for the Emacs @dfn{irony mode}")))
|
||||
|
||||
(define-public emacs-company-quickhelp
|
||||
(package
|
||||
(name "emacs-company-quickhelp")
|
||||
|
@ -3436,7 +3488,7 @@ regardless of @code{highlight-symbol-idle-delay}.
|
|||
(define-public emacs-hl-todo
|
||||
(package
|
||||
(name "emacs-hl-todo")
|
||||
(version "1.8.0")
|
||||
(version "1.9.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -3445,7 +3497,7 @@ regardless of @code{highlight-symbol-idle-delay}.
|
|||
(file-name (string-append "hl-todo-" version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z"))))
|
||||
"0728givzh7xv5i88ac9if8byj1p8bilrj1fnizca10s0rv100hdr"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/tarsius/hl-todo")
|
||||
(synopsis "Emacs mode to highlight TODO and similar keywords")
|
||||
|
@ -4415,6 +4467,227 @@ If you want to mark a folder manually as a project just create an empty
|
|||
and RSS, with a user interface inspired by notmuch.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-el-x
|
||||
(package
|
||||
(name "emacs-el-x")
|
||||
(version "0.3.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigma/el-x.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; Move the source files to the top level, which is included in
|
||||
;; the EMACSLOADPATH.
|
||||
(add-after 'unpack 'move-source-files
|
||||
(lambda _
|
||||
(let ((el-files (find-files "./lisp" ".*\\.el$")))
|
||||
(for-each (lambda (f)
|
||||
(rename-file f (basename f)))
|
||||
el-files))
|
||||
#t)))))
|
||||
(home-page "https://github.com/sigma/el-x")
|
||||
(synopsis "Emacs Lisp extensions")
|
||||
(description "command@{emacs-el-x} defines the @code{dflet} macro to
|
||||
provide the historic behavior of @code{flet}, as well as
|
||||
@code{declare-function} stub for older Emacs.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-mocker
|
||||
(package
|
||||
(name "emacs-mocker")
|
||||
(version "0.3.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigma/mocker.el.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("ert-runner")))
|
||||
(native-inputs
|
||||
`(("ert-runner" ,ert-runner)))
|
||||
(propagated-inputs
|
||||
`(("emacs-el-x" ,emacs-el-x)))
|
||||
(home-page "https://github.com/sigma/mocker.el")
|
||||
(synopsis "Mocking framework for Emacs Lisp")
|
||||
(description "Mocker.el is a framework for writing tests in Emacs Lisp.
|
||||
It uses regular Lisp rather than a domain specific language (DSL), which
|
||||
maximizes flexibility (at the expense of conciseness).")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-find-file-in-project
|
||||
(package
|
||||
(name "emacs-find-file-in-project")
|
||||
(version "5.4.7")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/technomancy/find-file-in-project.git")
|
||||
(commit version)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'set-shell
|
||||
;; Otherwise Emacs shell-file-name is set to "/bin/sh", which doesn't
|
||||
;; work.
|
||||
(lambda _
|
||||
(setenv "SHELL" (which "sh"))
|
||||
#t)))
|
||||
#:tests? #t
|
||||
#:test-command '("./tests/test.sh")))
|
||||
(home-page "https://github.com/technomancy/find-file-in-project")
|
||||
(synopsis "File/directory finder for Emacs")
|
||||
(description "@code{find-file-in-project} allows to find files or
|
||||
directories quickly in the current project. The project root is detected
|
||||
automatically when Git, Subversion or Mercurial are used. It also provides
|
||||
functions to assist in reviewing changes on files.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-pyvenv
|
||||
(package
|
||||
(name "emacs-pyvenv")
|
||||
(version "1.11")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jorgenschaefer/pyvenv.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; This phase incorrectly attempts to substitute "activate" and fails
|
||||
;; doing so.
|
||||
(delete 'patch-el-files))
|
||||
#:tests? #t
|
||||
#:test-command '("ert-runner")))
|
||||
(native-inputs
|
||||
`(("ert-runner" ,ert-runner)
|
||||
("emacs-mocker" ,emacs-mocker)))
|
||||
(home-page "https://github.com/jorgenschaefer/pyvenv")
|
||||
(synopsis "Virtualenv minor mode for Emacs")
|
||||
(description "pyvenv.el is a minor mode to support using Python virtual
|
||||
environments (virtualenv) inside Emacs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-highlight-indentation
|
||||
(package
|
||||
(name "emacs-highlight-indentation")
|
||||
(version "0.7.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
|
||||
(synopsis "Highlighting indentation for Emacs")
|
||||
(description "Provides two minor modes to highlight indentation guides in Emacs:
|
||||
@enumerate
|
||||
@item @code{highlight-indentation-mode}, which displays guidelines
|
||||
indentation (space indentation only).
|
||||
@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
|
||||
@end enumerate")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-elpy
|
||||
(package
|
||||
(name "emacs-elpy")
|
||||
(version "1.24.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jorgenschaefer/elpy.git")
|
||||
(commit version)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rsg8a9nwqfkv0xcs11jzfp10ij7jm0v2ikx19zv2v7awqy0q5wf"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
|
||||
#:phases
|
||||
;; TODO: Make `elpy-config' display Guix commands :)
|
||||
(modify-phases %standard-phases
|
||||
;; One elpy test depends on being run inside a Python virtual
|
||||
;; environment to pass. We have nothing to gain from doing so here,
|
||||
;; so we just trick Elpy into thinking we are (see:
|
||||
;; https://github.com/jorgenschaefer/elpy/pull/1293).
|
||||
(add-before 'check 'fake-virtualenv
|
||||
(lambda _
|
||||
(setenv "VIRTUAL_ENV" "/tmp")
|
||||
#t))
|
||||
(add-before 'check 'build-doc
|
||||
(lambda _
|
||||
(with-directory-excursion "docs"
|
||||
(invoke "make" "info" "man"))
|
||||
;; Move .info file at the root so that it can installed by the
|
||||
;; 'move-doc phase.
|
||||
(rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
|
||||
#t))
|
||||
(add-after 'build-doc 'install-manpage
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(man1 (string-append out "/share/man/man1")))
|
||||
(mkdir-p man1)
|
||||
(copy-file "docs/_build/man/elpy.1"
|
||||
(string-append man1 "/elpy.1")))
|
||||
#t)))
|
||||
#:tests? #t
|
||||
#:test-command '("ert-runner")))
|
||||
(propagated-inputs
|
||||
`(("emacs-company" ,emacs-company)
|
||||
("emacs-find-file-in-project" ,emacs-find-file-in-project)
|
||||
("emacs-highlight-indentation" ,emacs-highlight-indentation)
|
||||
("emacs-yasnippet" ,emacs-yasnippet)
|
||||
("pyvenv" ,emacs-pyvenv)
|
||||
("s" ,emacs-s)))
|
||||
(native-inputs
|
||||
`(("ert-runner" ,ert-runner)
|
||||
("emacs-f" ,emacs-f)
|
||||
("python" ,python-wrapper)
|
||||
("python-autopep8" ,python-autopep8)
|
||||
("python-black" ,python-black)
|
||||
("python-flake8" ,python-flake8)
|
||||
("python-jedi" ,python-jedi)
|
||||
("python-yapf" ,python-yapf)
|
||||
;; For documentation.
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("texinfo" ,texinfo)))
|
||||
(home-page "https://github.com/jorgenschaefer/elpy")
|
||||
(synopsis "Python development environment for Emacs")
|
||||
(description "Elpy brings powerful Python editing to Emacs. It combines
|
||||
and configures a number of other packages written in Emacs Lisp as well as
|
||||
Python, together offering features such as navigation, documentation,
|
||||
completion, interactive development and more.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-rainbow-delimiters
|
||||
(package
|
||||
(name "emacs-rainbow-delimiters")
|
||||
|
@ -4648,7 +4921,7 @@ ack, ag, helm and pt.")
|
|||
(define-public emacs-helm
|
||||
(package
|
||||
(name "emacs-helm")
|
||||
(version "2.9.6")
|
||||
(version "3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -4657,7 +4930,7 @@ ack, ag, helm and pt.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1f7m09i8gr0gk5nw5dn7rpdz20dg3hl4p77dpygkhl82yhk9q2ql"))))
|
||||
"0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
|
@ -4907,11 +5180,11 @@ extensions.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-evil-collection
|
||||
(let ((commit "5d739f58118a5a316c4fe25adb4e13ccea3fdc10")
|
||||
(revision "2"))
|
||||
(let ((commit "b55ae90f367e103e6568ae00779a8a51c68a0104")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "emacs-evil-collection")
|
||||
(version (git-version "20180721" revision commit))
|
||||
(version (git-version "20180911" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -4920,7 +5193,7 @@ extensions.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"05p612qncd0cp5q61hq2ag1k558vhb10049xrc88n9l6qwz9bpk3"))))
|
||||
"0n7bzi5s7rqi78l1424sxvsk2g46z7ksq02xx5jrmqymnij90jml"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-evil" ,emacs-evil)))
|
||||
|
@ -5623,7 +5896,7 @@ Yasnippet.")
|
|||
(define-public emacs-helm-system-packages
|
||||
(package
|
||||
(name "emacs-helm-system-packages")
|
||||
(version "1.10.0")
|
||||
(version "1.10.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -5632,7 +5905,7 @@ Yasnippet.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y5wzvfycb1bvgdk782xyl744fih43vz14wmq6gcqjarw6xfniz5"))))
|
||||
"01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-helm" ,emacs-helm)))
|
||||
|
@ -9539,6 +9812,29 @@ The default setup uses helm-bibtex.
|
|||
You should really read org-ref.org in this package for details.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-org-reveal
|
||||
(package
|
||||
(name "emacs-org-reveal")
|
||||
;; There are no proper tag, so we use the latest commit of the stable
|
||||
;; branch, as does MELPA.
|
||||
(version "20161027.926")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/yjwen/org-reveal.git")
|
||||
(commit "001567cc12d50ba07612edd1718b86a12e8c2547")))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"18rma8smjrskbjyna076zhvx79zs5r5vinb537h8mw13pfxd6cm8"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/yjwen/org-reveal")
|
||||
(synopsis "Org and Reveal.js powered HTML presentation tool")
|
||||
(description "Org-Reveal is a command@{org-mode} extension that allows to
|
||||
create beautiful presentations (slides) with 3D effects from simple but
|
||||
powerful Org contents.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-add-hooks
|
||||
(package
|
||||
(name "emacs-add-hooks")
|
||||
|
@ -11691,37 +11987,35 @@ buffers – other modes on the TODO list).
|
|||
(license license:gpl3))))
|
||||
|
||||
(define-public emacs-magit-todos
|
||||
;; TODO: <1.1 is broken with Guix. Switch to 1.1 when out.
|
||||
(let ((commit "966642762788d335dc2d3667d230a36ede65972e"))
|
||||
(package
|
||||
(name "emacs-magit-todos")
|
||||
(version (git-version "1.0.4" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/alphapapa/magit-todos")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nxarip8sf0446xfgrcfsjm4vbsg50klxjbr4i6h09a3lri03gyp"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
("emacs-dash" ,emacs-dash)
|
||||
("emacs-f" ,emacs-f)
|
||||
("emacs-hl-todo" ,emacs-hl-todo)
|
||||
("magit" ,magit)
|
||||
("emacs-pcre2el" ,emacs-pcre2el)
|
||||
("emacs-s" ,emacs-s)))
|
||||
(home-page "https://github.com/alphapapa/magit-todos")
|
||||
(synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
|
||||
(description "This package displays keyword entries from source code
|
||||
(package
|
||||
(name "emacs-magit-todos")
|
||||
(version "1.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/alphapapa/magit-todos")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
("emacs-dash" ,emacs-dash)
|
||||
("emacs-f" ,emacs-f)
|
||||
("emacs-hl-todo" ,emacs-hl-todo)
|
||||
("magit" ,magit)
|
||||
("emacs-pcre2el" ,emacs-pcre2el)
|
||||
("emacs-s" ,emacs-s)))
|
||||
(home-page "https://github.com/alphapapa/magit-todos")
|
||||
(synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
|
||||
(description "This package displays keyword entries from source code
|
||||
comments and Org files in the Magit status buffer. Activating an item jumps
|
||||
to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
|
||||
few (like NOTE).")
|
||||
(license license:gpl3))))
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public emacs-git-annex
|
||||
;; Unreleased version has a fontification fix.
|
||||
|
@ -11749,3 +12043,135 @@ hiding the symbolic links and fontified based on whether content is present.
|
|||
Commands for performing some common operations (e.g., unlocking and adding
|
||||
files) are provided.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public emacs-hackernews
|
||||
(let ((commit "d8c450bbc76d6bb65ec5cdb6c3b888a23f3769e9"))
|
||||
(package
|
||||
(name "emacs-hackernews")
|
||||
(version (git-version "0.4.0" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/clarete/hackernews.el")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"06mp4n6c300jv5lhwf50ircfjckzr2p1zd38s4mqnxxjlf1maim7"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/clarete/hackernews.el")
|
||||
(synopsis "Hacker News client for Emacs")
|
||||
(description "The @command{hackernews} package is able to fetch stories
|
||||
from six different Hacker News feeds, namely top, new, best, ask, show and job
|
||||
stories. The default feed is top stories, which corresponds to the Hacker
|
||||
News homepage.")
|
||||
(license license:gpl3))))
|
||||
|
||||
(define-public emacs-youtube-dl
|
||||
(let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
|
||||
(package
|
||||
(name "emacs-youtube-dl")
|
||||
(version (git-version "1.0" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/skeeto/youtube-dl-emacs/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("youtube-dl" ,youtube-dl)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((youtube-dl (assoc-ref inputs "youtube-dl")))
|
||||
;; .el is read-only in git.
|
||||
(chmod "youtube-dl.el" #o644)
|
||||
;; Specify the absolute file names of the various
|
||||
;; programs so that everything works out-of-the-box.
|
||||
(emacs-substitute-variables
|
||||
"youtube-dl.el"
|
||||
("youtube-dl-program"
|
||||
(string-append youtube-dl "/bin/youtube-dl")))))))))
|
||||
(home-page "https://github.com/skeeto/youtube-dl-emacs/")
|
||||
(synopsis "Emacs youtube-dl download manager")
|
||||
(description "This package manages a video download queue for
|
||||
@command{youtube-dl}, which serves as the back end. It manages a single
|
||||
@command{youtube-dl} subprocess, downloading one video at a time. New videos
|
||||
can be queued at any time.")
|
||||
(license license:unlicense))))
|
||||
|
||||
(define-public emacs-org-web-tools
|
||||
(package
|
||||
(name "emacs-org-web-tools")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/alphapapa/org-web-tools")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
("emacs-esxml" ,emacs-esxml)
|
||||
("emacs-s" ,emacs-s)))
|
||||
(inputs
|
||||
`(("pandoc" ,ghc-pandoc)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-exec-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((pandoc (assoc-ref inputs "pandoc")))
|
||||
(substitute* "org-web-tools.el"
|
||||
(("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
|
||||
#t))))))
|
||||
(home-page "https://github.com/alphapapa/org-web-tools")
|
||||
(synopsis "Display/Process web page as Org-mode content")
|
||||
(description "This package contains library functions and commands useful
|
||||
for retrieving web page content and processing it into Org-mode content.
|
||||
|
||||
For example, you can copy a URL to the clipboard or kill-ring, then run a
|
||||
command that downloads the page, isolates the “readable” content with
|
||||
@command{eww-readable}, converts it to Org-mode content with Pandoc, and
|
||||
displays it in an Org-mode buffer. Another command does all of that but
|
||||
inserts it as an Org entry instead of displaying it in a new buffer.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-blimp
|
||||
(let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
|
||||
(package
|
||||
(name "emacs-blimp")
|
||||
(version (git-version "0.0.0" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/walseb/blimp")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-eimp" ,emacs-eimp)))
|
||||
(home-page "https://github.com/walseb/blimp")
|
||||
(synopsis "Emacs wrapper around all Imagemagick commands")
|
||||
(description "Blimp (Bustling Image Manipulation Package) is a complete
|
||||
wrapper around all Imagemagick commands with descriptions, autocompletion (for
|
||||
some commands) and hints displayed in prompt using @command{eimp.el} to
|
||||
execute its commands and resize images.")
|
||||
(license license:gpl3+))))
|
||||
|
|
|
@ -1066,7 +1066,7 @@ emulation community. It provides highly accurate emulation.")
|
|||
(base32 "0h6y2hpjg4b470jvn9ghwp0k3a527sbb6xhia17frlm9w9v5028w"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
`(#:tests? #f ; no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
|
@ -1079,12 +1079,21 @@ emulation community. It provides highly accurate emulation.")
|
|||
(("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
|
||||
(substitute* "qb/qb.libs.sh"
|
||||
(("/bin/true") (which "true")))
|
||||
;; Use shared zlib.
|
||||
(substitute* '("libretro-common/file/archive_file_zlib.c"
|
||||
"libretro-common/streams/trans_stream_zlib.c"
|
||||
"network/httpserver/httpserver.c")
|
||||
(("<compat/zlib.h>") "<zlib.h>"))
|
||||
;; The configure script does not yet accept the extra arguments
|
||||
;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
|
||||
(zero? (system*
|
||||
"./configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--global-config-dir=" etc)))))))))
|
||||
(invoke
|
||||
"./configure"
|
||||
,@(if (string-prefix? "armhf" (or (%current-target-system)
|
||||
(%current-system)))
|
||||
'("--enable-neon" "--enable-floathard")
|
||||
'())
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--global-config-dir=" etc))))))))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
|
|
|
@ -753,41 +753,51 @@ It contains the following fonts and styles:
|
|||
(define-public font-fantasque-sans
|
||||
(package
|
||||
(name "font-fantasque-sans")
|
||||
(version "1.7.1")
|
||||
(version "1.7.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/belluzj/fantasque-sans/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/belluzj/fantasque-sans.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07fpy53k2x2nz5q61swkab6cfk9gw2kc4x4brsj6zjgbm16fap85"))))
|
||||
"1gjranq7qf20rfxnpxsckv1hl35nzsal0rjs475nhfbpqy5wmly6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("ttfautohint" ,ttfautohint)
|
||||
("woff-tools" ,woff-tools)
|
||||
("fontforge" ,fontforge)
|
||||
("woff2" ,woff2)
|
||||
("ttf2eot" ,ttf2eot)))
|
||||
("ttf2eot" ,ttf2eot)
|
||||
("zip" ,zip)))
|
||||
(arguments
|
||||
`(#:tests? #f ;test target intended for visual inspection
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure) ;no configuration
|
||||
(add-before 'build 'xrange->range
|
||||
;; Rather than use a python2 fontforge, just replace the
|
||||
;; offending function.
|
||||
(lambda _
|
||||
(substitute* "Scripts/fontbuilder.py"
|
||||
(("xrange") "range"))
|
||||
#t))
|
||||
(replace 'install
|
||||
;; 'make install' wants to install to ~/.fonts, install to
|
||||
;; output instead.
|
||||
;; output instead. Install only the "Normal" variant.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(font-dir (string-append out "/share/fonts"))
|
||||
(truetype-dir (string-append font-dir "/truetype"))
|
||||
(opentype-dir (string-append font-dir "/opentype"))
|
||||
(webfonts-dir (string-append font-dir "/webfonts")))
|
||||
(copy-recursively "OTF" opentype-dir)
|
||||
(for-each (lambda (f) (install-file f truetype-dir))
|
||||
(find-files "." "\\.ttf$"))
|
||||
(copy-recursively "Webfonts" webfonts-dir)
|
||||
#t))))))
|
||||
(with-directory-excursion "Variants/Normal"
|
||||
(copy-recursively "OTF" opentype-dir)
|
||||
(for-each (lambda (f) (install-file f truetype-dir))
|
||||
(find-files "." "\\.ttf$"))
|
||||
(copy-recursively "Webfonts" webfonts-dir)
|
||||
#t)))))))
|
||||
(synopsis "Font family with a monospaced variant for programmers")
|
||||
(description
|
||||
"Fantasque Sans Mono is a programming font designed with functionality in
|
||||
|
|
|
@ -170,7 +170,7 @@ as required.")
|
|||
(define-public libfilezilla
|
||||
(package
|
||||
(name "libfilezilla")
|
||||
(version "0.12.3")
|
||||
(version "0.13.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -178,7 +178,7 @@ as required.")
|
|||
name "/" name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1v606kcz2rdmmlwxrv3xvwh7ia1nh6jfc9bhjw2r4ai3rm16gch5"))))
|
||||
"0347zkapp0wrhfm1yzw7wa1v3lww65ch176scifxn8f9068f1ixb"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("cppunit" ,cppunit)
|
||||
|
|
|
@ -186,13 +186,13 @@ authentication and support for SSL3 and TLS.")
|
|||
(define-public gnurl
|
||||
(package
|
||||
(name "gnurl")
|
||||
(version "7.61.0")
|
||||
(version "7.61.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gnunet/" name "-" version ".tar.Z"))
|
||||
(sha256
|
||||
(base32
|
||||
"1h03zkd9mp4xb5icirl3bfd64r5x8j9ka1hw9qd0n1ql1w0ilz23"))))
|
||||
"0amnhhmlxaliz2rzp3zf1x6ixjqvgmiq7in0q14gd21rjlk9kvir"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ; 1.5 MiB of man3 pages
|
||||
|
|
|
@ -1655,3 +1655,46 @@ Parcellite and adds bugfixes and features.")
|
|||
it does not deal with windowing system surfaces, drawing, scene graphs, or
|
||||
input.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public yad
|
||||
(package
|
||||
(name "yad")
|
||||
(version "0.40.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/v1cont/yad.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1vpgbjbkkbk5plicyklzpf65j1vlig4n4bi3qpvrz5bb09ic5alw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("--with-gtk=gtk3"
|
||||
"--enable-html"
|
||||
"--enable-gio"
|
||||
"--enable-spell"
|
||||
"--enable-icon-browser")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif")
|
||||
(invoke "intltoolize" "--force" "--automake")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://sourceforge.net/projects/yad-dialog/")
|
||||
(synopsis "GTK+ dialog boxes for shell scripts")
|
||||
(description
|
||||
"This program allows you to display GTK+ dialog boxes from command line or
|
||||
shell scripts. Example of how to use @code{yad} can be consulted at
|
||||
@url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -2025,8 +2025,8 @@ convenient nested tree operations.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile-simple-zmq
|
||||
(let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424")
|
||||
(revision "1"))
|
||||
(let ((commit "5bb66a0499f94006cfd18b58e80ad6623f911c31")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "guile-simple-zmq")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -2038,7 +2038,7 @@ convenient nested tree operations.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0nj2pd5bsmmgd3c54wh4sixfhmsv1arsq7yam2d7487h3n9q57r7"))
|
||||
"0dj1brjqa7m4k71sf94aq26ca0la3nr894kfmjnqkpawqfp4dyaz"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
|
@ -2063,8 +2063,8 @@ messaging library.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public jupyter-guile-kernel
|
||||
(let ((commit "a5c5f3ea3215b65e770bcb62f71117b0ec4575ed")
|
||||
(revision "0"))
|
||||
(let ((commit "a7db9245a886e104138474df46c3e88b95cff629")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "jupyter-guile-kernel")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -2076,7 +2076,7 @@ messaging library.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9"))))
|
||||
"0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f"))))
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
|
@ -2099,9 +2099,13 @@ messaging library.")
|
|||
|
||||
(add-after 'install 'install-kernel
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append
|
||||
out "/share/jupyter/kernels/guile")))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(json (assoc-ref inputs "guile-json"))
|
||||
(zmq (assoc-ref inputs "guile-simple-zmq"))
|
||||
(deps (list json zmq))
|
||||
(dir (string-append
|
||||
out "/share/jupyter/kernels/guile"))
|
||||
(effective (target-guile-effective-version)))
|
||||
;; Install kernel.
|
||||
(install-file "src/kernel.json" dir)
|
||||
|
||||
|
@ -2115,13 +2119,30 @@ messaging library.")
|
|||
(string-append "\"" (assoc-ref inputs "guile")
|
||||
"/bin/guile\""))
|
||||
(("-s")
|
||||
(string-append "--no-auto-compile\", \"-s")))
|
||||
;; Add '-L' and '-C' flags so that the kernel
|
||||
;; finds its dependencies.
|
||||
(let ((-L (map (lambda (item)
|
||||
(string-append "\"" item
|
||||
"/share/guile/site/"
|
||||
effective "\""))
|
||||
deps))
|
||||
(-C (map (lambda (item)
|
||||
(string-append "\"" item
|
||||
"/lib/guile/"
|
||||
effective
|
||||
"/site-ccache\""))
|
||||
deps)))
|
||||
(string-append "--no-auto-compile\""
|
||||
(string-join -L ", \"-L\", "
|
||||
'prefix)
|
||||
(string-join -C ", \"-C\", "
|
||||
'prefix)
|
||||
", \"-s"))))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("openssl" ,openssl)
|
||||
("guile" ,guile-2.2)))
|
||||
(propagated-inputs
|
||||
`(("guile-json" ,guile-json)
|
||||
("guile" ,guile-2.2)
|
||||
("guile-json" ,guile-json)
|
||||
("guile-simple-zmq" ,guile-simple-zmq)))
|
||||
(synopsis "Guile kernel for the Jupyter Notebook")
|
||||
(description
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -32,7 +33,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl2+ lgpl2.1+ lgpl3+ mpl1.1 mpl2.0
|
||||
non-copyleft x11-style))
|
||||
non-copyleft x11-style bsd-3))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -533,6 +534,35 @@ Aldus/Macromedia/Adobe FreeHand documents.")
|
|||
Microsoft Publisher documents of all versions.")
|
||||
(license mpl2.0)))
|
||||
|
||||
(define-public libnumbertext
|
||||
(package
|
||||
(name "libnumbertext")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/numbertext/" name
|
||||
"/archive/" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wnsn4911fdd2na8jxkcvmk04a6xw6qlviic9w4qwg9fcym6866v"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-static")))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/Numbertext/libnumbertext")
|
||||
(synopsis "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions")
|
||||
(description
|
||||
"The libnumbertext library provides language-neutral @code{NUMBERTEXT}
|
||||
and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and
|
||||
Java.")
|
||||
(license (list lgpl3+ bsd-3))))
|
||||
|
||||
(define-public libpagemaker
|
||||
(package
|
||||
(name "libpagemaker")
|
||||
|
@ -905,19 +935,19 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
|
|||
(define-public libreoffice
|
||||
(package
|
||||
(name "libreoffice")
|
||||
(version "6.0.6.2")
|
||||
(version "6.1.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://download.documentfoundation.org/libreoffice/src/"
|
||||
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13kaikaz65xw9a3hxbh245cnydjpy58np22c7s0s65pnmcq68rpi"))
|
||||
(patches (search-patches "libreoffice-icu.patch"
|
||||
"libreoffice-glm.patch"))))
|
||||
"https://download.documentfoundation.org/libreoffice/src/"
|
||||
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n7b6abc0bp9x8lddx60w5br444wf62mdlkqmfk2zmkmiwkcvv2l"))
|
||||
(patches (search-patches "libreoffice-icu.patch"
|
||||
"libreoffice-glm.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
|
@ -958,6 +988,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
|
|||
("libltdl" ,libltdl)
|
||||
("libmspub" ,libmspub)
|
||||
("libmwaw" ,libmwaw)
|
||||
("libnumbertext" ,libnumbertext)
|
||||
("libodfgen" ,libodfgen)
|
||||
("libpagemaker" ,libpagemaker)
|
||||
("libqxp" ,libqxp)
|
||||
|
@ -984,6 +1015,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
|
|||
("poppler" ,poppler)
|
||||
("postgresql" ,postgresql)
|
||||
("python" ,python)
|
||||
("python-lxml" ,python-lxml)
|
||||
("redland" ,redland)
|
||||
("sane-backends" ,sane-backends)
|
||||
("unixodbc" ,unixodbc)
|
||||
|
|
|
@ -399,8 +399,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
;; supports qemu "virt" machine and possibly a large number of ARM boards.
|
||||
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
|
||||
|
||||
(define %linux-libre-version "4.18.6")
|
||||
(define %linux-libre-hash "1l5caid77vbfb54zrfxkk7qj7lrf9ck9kpn96kr45spkwl51wm8m")
|
||||
(define %linux-libre-version "4.18.7")
|
||||
(define %linux-libre-hash "1gn3ip2blczfr5hl20x6c93z8v7h528kl423pzkcn22hin6717wd")
|
||||
|
||||
(define %linux-libre-4.18-patches
|
||||
(list %boot-logo-patch
|
||||
|
@ -430,8 +430,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:patches %linux-libre-4.18-patches
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define %linux-libre-4.14-version "4.14.68")
|
||||
(define %linux-libre-4.14-hash "05l5y0vbbl60jxdbqglqr9c99a8g8lfsp4mcqfpcx1pkh5br7i3l")
|
||||
(define %linux-libre-4.14-version "4.14.69")
|
||||
(define %linux-libre-4.14-hash "08pw5hywlx3rsavj74qa17fm9hmhaw2rb1d3ahaqmd1zzsddb3qf")
|
||||
|
||||
(define-public linux-libre-4.14
|
||||
(make-linux-libre %linux-libre-4.14-version
|
||||
|
@ -440,14 +440,14 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.125"
|
||||
"1saihk61l1kk42jf8yfsfkm77zalq31f0bdlam3c1g7yw702wj9g"
|
||||
(make-linux-libre "4.9.126"
|
||||
"0qa9zxa7isn20b9sbjcyrqfynd00phddv3yindp5dmvsng1kwxj8"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.154"
|
||||
"08i9fvrmswkydj538wg6c7ggxmhll0ff0bjkw8rnyslqwilfwr1i"
|
||||
(make-linux-libre "4.4.155"
|
||||
"1gcnwrgv0xghr550lcl6dmxdl59drzbi02mwp78g8vjql6ihdfys"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
|
|
@ -703,40 +703,41 @@ computing environments.")
|
|||
(define-public python-scikit-learn
|
||||
(package
|
||||
(name "python-scikit-learn")
|
||||
(version "0.19.1")
|
||||
(version "0.19.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/scikit-learn/scikit-learn/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/scikit-learn/scikit-learn.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"18n8775kyfwbvcjjjzda9c5sqy4737c0hrmj6qj1ps2jmlqzair9"))
|
||||
"1dk9hdj01c0bny4ps78b7869fjw9gr6qklxf6wyql8h6nh4k19xm"))
|
||||
(patches (search-patches
|
||||
"python-scikit-learn-fix-test-non-determinism.patch"))))
|
||||
"python-scikit-learn-fix-test-non-determinism.patch"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'check)
|
||||
(add-after 'install 'check
|
||||
;; Running tests from the source directory requires
|
||||
;; an "inplace" build with paths relative to CWD.
|
||||
;; http://scikit-learn.org/stable/developers/advanced_installation.html#testing
|
||||
;; Use the installed version instead.
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
;; some tests require access to "$HOME"
|
||||
(setenv "HOME" "/tmp")
|
||||
;; Step out of the source directory just to be sure.
|
||||
(chdir "..")
|
||||
(invoke "nosetests" "-v" "sklearn"))))))
|
||||
(add-after 'build 'build-ext
|
||||
(lambda _ (invoke "python" "setup.py" "build_ext" "--inplace") #t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
;; Restrict OpenBLAS threads to prevent segfaults while testing!
|
||||
(setenv "OPENBLAS_NUM_THREADS" "1")
|
||||
;; Disable tests that require network access
|
||||
(delete-file "sklearn/datasets/tests/test_mldata.py")
|
||||
(delete-file "sklearn/datasets/tests/test_rcv1.py")
|
||||
(invoke "pytest" "sklearn")
|
||||
#t))
|
||||
;; FIXME: This fails with permission denied
|
||||
(delete 'reset-gzip-timestamps))))
|
||||
(inputs
|
||||
`(("openblas" ,openblas)))
|
||||
(native-inputs
|
||||
`(("python-nose" ,python-nose)
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-pandas" ,python-pandas) ;for tests
|
||||
("python-cython" ,python-cython)))
|
||||
(propagated-inputs
|
||||
`(("python-numpy" ,python-numpy)
|
||||
|
@ -744,8 +745,8 @@ computing environments.")
|
|||
(home-page "http://scikit-learn.org/")
|
||||
(synopsis "Machine Learning in Python")
|
||||
(description
|
||||
"Scikit-learn provides simple and efficient tools for data
|
||||
mining and data analysis.")
|
||||
"Scikit-learn provides simple and efficient tools for data mining and
|
||||
data analysis.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-scikit-learn
|
||||
|
|
|
@ -508,7 +508,11 @@ large scale eigenvalue problems.")
|
|||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments arpack-ng)
|
||||
((#:configure-flags _ '())
|
||||
''("--enable-mpi"))))
|
||||
''("--enable-mpi"))
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)))))
|
||||
(synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
|
||||
|
||||
(define-public lapack
|
||||
|
@ -569,14 +573,8 @@ problems in numerical linear algebra.")
|
|||
(arguments
|
||||
`(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because
|
||||
;; 'ssh' could not be found in $PATH. Define this
|
||||
;; variable to placate Open MPI without adding a
|
||||
;; dependency on OpenSSH (the agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t)))))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup))))
|
||||
(home-page "http://www.netlib.org/scalapack/")
|
||||
(synopsis "Library for scalable numerical linear algebra")
|
||||
(description
|
||||
|
@ -1707,14 +1705,8 @@ scientific applications modeled by partial differential equations.")
|
|||
,@(delete "--with-mpi=0" ,cf)))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t))))))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)))))
|
||||
(synopsis "Library to solve PDEs (with MPI support)")))
|
||||
|
||||
(define-public petsc-complex-openmpi
|
||||
|
@ -1845,14 +1837,8 @@ arising after the discretization of partial differential equations.")
|
|||
(substitute-keyword-arguments (package-arguments slepc)
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t))))))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)))))
|
||||
(inputs
|
||||
`(("mpi" ,openmpi)
|
||||
("arpack" ,arpack-ng-openmpi)
|
||||
|
@ -2022,14 +2008,8 @@ sparse system of linear equations A x = b using Guassian elimination.")
|
|||
(substitute-keyword-arguments (package-arguments mumps)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)
|
||||
(replace 'check
|
||||
(lambda _
|
||||
((assoc-ref ,phases 'check)
|
||||
|
@ -2275,13 +2255,10 @@ CDEFS = -DAdd_"
|
|||
"/" dir)))
|
||||
'("lib" "include"))
|
||||
#t))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)
|
||||
(replace 'check
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to placate
|
||||
;; Open MPI without adding a dependency on OpenSSH (the agent
|
||||
;; isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
(with-directory-excursion "EXAMPLE"
|
||||
(invoke "mpirun" "-n" "2"
|
||||
"./pddrive" "-r" "1" "-c" "2" "g20.rua")
|
||||
|
@ -2374,15 +2351,8 @@ YACC = bison -pscotchyy -y -b y
|
|||
;; "SCOTCH_PTHREAD_NUMBER=2"
|
||||
"restrict=__restrict"))))
|
||||
#t))
|
||||
(add-after
|
||||
'build 'build-esmumps
|
||||
(add-after 'build 'build-esmumps
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to placate
|
||||
;; Open MPI without adding a dependency on OpenSSH (the agent
|
||||
;; isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
|
||||
(invoke "make"
|
||||
(format #f "-j~a" (parallel-job-count))
|
||||
"esmumps")))
|
||||
|
@ -2565,14 +2535,8 @@ schemes.")
|
|||
(assoc-ref %build-inputs "lapack")
|
||||
" -llapack"))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because
|
||||
;; 'ssh' could not be found in $PATH. Define this
|
||||
;; variable to placate Open MPI without adding a
|
||||
;; dependency on OpenSSH (the agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t)))))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup))))
|
||||
(home-page "http://www.p4est.org")
|
||||
(synopsis "Adaptive mesh refinement on forests of octrees")
|
||||
(description
|
||||
|
@ -3639,14 +3603,8 @@ problems.")
|
|||
,@(delete "--without-MPI" ,flags)))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t))))))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)))))
|
||||
(synopsis "Parallel solvers and preconditioners for linear equations")
|
||||
(description
|
||||
"HYPRE is a software library of high performance preconditioners and
|
||||
|
@ -3929,6 +3887,8 @@ exclusion algorithms are typical examples of such systems.")
|
|||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DGFORTRAN_LIB=gfortran")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)
|
||||
(add-before 'check 'setup-tests
|
||||
(lambda _
|
||||
;; Parallelism is done at the MPI layer.
|
||||
|
@ -3975,7 +3935,7 @@ toolset supports analysis and automatic verification, linearisation, simulation,
|
|||
state-space exploration and generation, and tools to optimise and analyse
|
||||
specifications. Also, state spaces can be manipulated, visualised and
|
||||
analysed.")
|
||||
(home-page "http://mcrl2.org")
|
||||
(home-page "https://mcrl2.org")
|
||||
(license license:boost1.0)))
|
||||
|
||||
(define-public r-subplex
|
||||
|
@ -4113,16 +4073,6 @@ easily be incorporated into existing simulation codes.")
|
|||
,flags))
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
;; Allow oversubscription in case there are less
|
||||
;; physical cores available in the build environment
|
||||
;; than SUNDIALS wants while testing.
|
||||
(setenv "OMPI_MCA_rmaps_base_oversubscribe" "yes")
|
||||
#t))))))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)))))
|
||||
(synopsis "SUNDIALS with OpenMPI support")))
|
||||
|
|
|
@ -66,7 +66,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
|
|||
(version "0.17.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://alpha.gnu.org/gnu/mes/"
|
||||
(uri (string-append "mirror://gnu/mes/"
|
||||
"mes-" version ".tar.gz"))
|
||||
(patches (search-patches "mes-nyacc-0.86.0.patch"))
|
||||
(sha256
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014, 2015, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||
|
@ -250,3 +250,15 @@ software vendors, application developers and computer science researchers.")
|
|||
work correctly with all transports (such as @code{openib}), and the
|
||||
performance is generally worse than the vanilla @code{openmpi} package, which
|
||||
only provides @code{MPI_THREAD_FUNNELED}.")))
|
||||
|
||||
;;; Build phase to be used for packages that execute MPI code.
|
||||
(define-public %openmpi-setup
|
||||
'(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh' could not
|
||||
;; be found in $PATH. Define this variable to placate Open MPI without
|
||||
;; adding a dependency on OpenSSH (the agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "false"))
|
||||
;; Allow oversubscription in case there are less physical cores available
|
||||
;; in the build environment than the package wants while testing.
|
||||
(setenv "OMPI_MCA_rmaps_base_oversubscribe" "yes")
|
||||
#t))
|
||||
|
|
|
@ -2198,28 +2198,17 @@ from the command line.")
|
|||
(define-public qtractor
|
||||
(package
|
||||
(name "qtractor")
|
||||
(version "0.9.1")
|
||||
(version "0.9.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://downloads.sourceforge.net/qtractor/"
|
||||
"qtractor-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07csbqr7q4m1j0pqg89kn7jdw0snd5lwna5rha0986s4plq4z1qb"))))
|
||||
"1j3rpvdkw9rw48j4zyfn6rprp01csy4rl6zckcjyx0vh7vaycchr"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no "check" target
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-build-with-qt-5.11
|
||||
(lambda _
|
||||
(substitute* "src/qtractorMeter.h"
|
||||
(("#include <QFrame>" m)
|
||||
(string-append "#include <QAction>\n" m)))
|
||||
(substitute* "src/qtractorTrackButton.h"
|
||||
(("#include <QPushButton>" m)
|
||||
(string-append "#include <QAction>\n" m)))
|
||||
#t)))))
|
||||
`(#:tests? #f)) ; no "check" target
|
||||
(inputs
|
||||
`(("qt" ,qtbase)
|
||||
("qtx11extras" ,qtx11extras)
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "2.9.8")
|
||||
(version "3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -38,7 +38,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"122lm0z97wk3mgnbn8m4d769d4j9rxyc9z7s89xd4gsdp8qsrpn2"))))
|
||||
"1868hg9s584fwjrh0fzdrixmxc2qhw520z4q5iv68kjiajivr9g0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
diff --git a/std/path.d b/std/path.d
|
||||
index a9f0bd8..f47d103 100644
|
||||
--- a/std/path.d
|
||||
+++ b/std/path.d
|
||||
@@ -4041,7 +4041,7 @@ version(unittest) import std.process : environment;
|
||||
else version (Android)
|
||||
{
|
||||
}
|
||||
- else
|
||||
+ else version (HasRoot)
|
||||
{
|
||||
assert(expandTilde("~root") == "/root", expandTilde("~root"));
|
||||
assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
|
||||
|
||||
diff --git a/std/process.d b/std/process.d
|
||||
index df83296..d921cdb 100644
|
||||
--- a/std/process.d
|
||||
+++ b/std/process.d
|
||||
@@ -1171,7 +1171,7 @@ version (Posix) @system unittest
|
||||
assert(exists(buildPath(directory, "bar")));
|
||||
}
|
||||
|
||||
-@system unittest // Specifying a bad working directory.
|
||||
+@system version(skipunittest) unittest // Specifying a bad working directory.
|
||||
{
|
||||
import std.exception : assertThrown;
|
||||
TestScript prog = "/bin/echo";
|
||||
diff --git a/std/socket.d b/std/socket.d
|
||||
index 8a261d5..c1b87b6 100644
|
||||
--- a/std/socket.d
|
||||
+++ b/std/socket.d
|
||||
@@ -484,7 +484,7 @@ class Protocol
|
||||
// Skip this test on Android because getprotobyname/number are
|
||||
// unimplemented in bionic.
|
||||
version(CRuntime_Bionic) {} else
|
||||
-@safe unittest
|
||||
+@safe version(hasNetwork) unittest
|
||||
{
|
||||
softUnittest({
|
||||
Protocol proto = new Protocol;
|
||||
@@ -804,7 +804,7 @@ class InternetHost
|
||||
}
|
||||
|
||||
///
|
||||
-@safe unittest
|
||||
+@safe version(hasNetwork) unittest
|
||||
{
|
||||
InternetHost ih = new InternetHost;
|
||||
|
||||
@@ -959,7 +959,7 @@ AddressInfo[] getAddressInfo(T...)(in char[] node, T options)
|
||||
return () @trusted { return getAddressInfoImpl(node, service, &hints); }();
|
||||
}
|
||||
|
||||
-@system unittest
|
||||
+@system version(hasNetwork) unittest
|
||||
{
|
||||
struct Oops
|
||||
{
|
||||
@@ -1010,7 +1010,7 @@ private AddressInfo[] getAddressInfoImpl(in char[] node, in char[] service, addr
|
||||
}
|
||||
|
||||
|
||||
-@safe unittest
|
||||
+@safe version(hasNetwork) unittest
|
||||
{
|
||||
softUnittest({
|
||||
if (getaddrinfoPointer)
|
||||
diff --git a/std/stdio.d b/std/stdio.d
|
||||
index 10106a5..4b0590e 100644
|
||||
--- a/std/stdio.d
|
||||
+++ b/std/stdio.d
|
||||
@@ -1426,8 +1426,7 @@ Removes the lock over the specified file segment.
|
||||
g.unlock();
|
||||
}
|
||||
|
||||
- version(Posix)
|
||||
- @system unittest
|
||||
+ @system version(skip) unittest
|
||||
{
|
||||
static import std.file;
|
||||
auto deleteme = testFilename();
|
||||
@@ -1483,7 +1482,6 @@ Removes the lock over the specified file segment.
|
||||
f.unlock();
|
||||
}
|
||||
|
||||
-
|
||||
/**
|
||||
Writes its arguments in text format to the file.
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/std/socket.d b/std/socket.d
|
||||
index 111cd17..6d23da9 100644
|
||||
--- a/std/socket.d
|
||||
+++ b/std/socket.d
|
||||
@@ -448,7 +448,7 @@ class Protocol
|
||||
// Skip this test on Android because getprotobyname/number are
|
||||
// unimplemented in bionic.
|
||||
version(CRuntime_Bionic) {} else
|
||||
-@safe unittest
|
||||
+@safe version(hasNetwork) unittest
|
||||
{
|
||||
// import std.stdio : writefln;
|
||||
softUnittest({
|
||||
@@ -770,7 +770,7 @@ class InternetHost
|
||||
}
|
||||
|
||||
///
|
||||
-@safe unittest
|
||||
+@safe version(hasNetwork) unittest
|
||||
{
|
||||
InternetHost ih = new InternetHost;
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
From 86b98a11559da7d1b21dc9b4c6b10511b9095bc4 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Cross <hodgestar@gmail.com>
|
||||
Date: Sun, 16 Feb 2014 18:46:15 +0000
|
||||
Subject: [PATCH 05/16] Add support for Python 3.4 AST (support for
|
||||
NameConstants and changes to existing to arguments node attributes).
|
||||
|
||||
---
|
||||
genshi/template/astutil.py | 31 ++++++++++++++++++++++++++++---
|
||||
genshi/template/eval.py | 34 +++++++++++++++++++---------------
|
||||
2 files changed, 47 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/genshi/template/astutil.py b/genshi/template/astutil.py
|
||||
index a4c21c8..a3946b4 100644
|
||||
--- a/genshi/template/astutil.py
|
||||
+++ b/genshi/template/astutil.py
|
||||
@@ -21,7 +21,7 @@ else:
|
||||
def parse(source, mode):
|
||||
return compile(source, '', mode, _ast.PyCF_ONLY_AST)
|
||||
|
||||
-from genshi.compat import IS_PYTHON2
|
||||
+from genshi.compat import IS_PYTHON2, isstring
|
||||
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
@@ -103,8 +103,13 @@ class ASTCodeGenerator(object):
|
||||
self._new_line()
|
||||
return self.visit(node.body)
|
||||
|
||||
+ # Python < 3.4
|
||||
# arguments = (expr* args, identifier? vararg,
|
||||
# identifier? kwarg, expr* defaults)
|
||||
+ #
|
||||
+ # Python >= 3.4
|
||||
+ # arguments = (arg* args, arg? vararg, arg* kwonlyargs, expr* kw_defaults,
|
||||
+ # arg? kwarg, expr* defaults)
|
||||
def visit_arguments(self, node):
|
||||
first = True
|
||||
no_default_count = len(node.args) - len(node.defaults)
|
||||
@@ -122,13 +127,21 @@ class ASTCodeGenerator(object):
|
||||
self._write(', ')
|
||||
else:
|
||||
first = False
|
||||
- self._write('*' + node.vararg)
|
||||
+ self._write('*')
|
||||
+ if isstring(node.vararg):
|
||||
+ self._write(node.vararg)
|
||||
+ else:
|
||||
+ self.visit(node.vararg)
|
||||
if getattr(node, 'kwarg', None):
|
||||
if not first:
|
||||
self._write(', ')
|
||||
else:
|
||||
first = False
|
||||
- self._write('**' + node.kwarg)
|
||||
+ self._write('**')
|
||||
+ if isstring(node.kwarg):
|
||||
+ self._write(node.kwarg)
|
||||
+ else:
|
||||
+ self.visit(node.kwarg)
|
||||
|
||||
if not IS_PYTHON2:
|
||||
# In Python 3 arguments get a special node
|
||||
@@ -724,6 +737,17 @@ class ASTCodeGenerator(object):
|
||||
def visit_Name(self, node):
|
||||
self._write(node.id)
|
||||
|
||||
+ # NameConstant(singleton value)
|
||||
+ def visit_NameConstant(self, node):
|
||||
+ if node.value is None:
|
||||
+ self._write('None')
|
||||
+ elif node.value is True:
|
||||
+ self._write('True')
|
||||
+ elif node.value is False:
|
||||
+ self._write('False')
|
||||
+ else:
|
||||
+ raise Exception("Unknown NameConstant %r" % (node.value,))
|
||||
+
|
||||
# List(expr* elts, expr_context ctx)
|
||||
def visit_List(self, node):
|
||||
self._write('[')
|
||||
@@ -829,6 +853,7 @@ class ASTTransformer(object):
|
||||
visit_Attribute = _clone
|
||||
visit_Subscript = _clone
|
||||
visit_Name = _clone
|
||||
+ visit_NameConstant = _clone
|
||||
visit_List = _clone
|
||||
visit_Tuple = _clone
|
||||
|
||||
diff --git a/genshi/template/eval.py b/genshi/template/eval.py
|
||||
index 89aec49..de4bc86 100644
|
||||
--- a/genshi/template/eval.py
|
||||
+++ b/genshi/template/eval.py
|
||||
@@ -24,7 +24,8 @@ from genshi.template.astutil import ASTTransformer, ASTCodeGenerator, \
|
||||
from genshi.template.base import TemplateRuntimeError
|
||||
from genshi.util import flatten
|
||||
|
||||
-from genshi.compat import get_code_params, build_code_chunk, IS_PYTHON2
|
||||
+from genshi.compat import get_code_params, build_code_chunk, isstring, \
|
||||
+ IS_PYTHON2
|
||||
|
||||
__all__ = ['Code', 'Expression', 'Suite', 'LenientLookup', 'StrictLookup',
|
||||
'Undefined', 'UndefinedError']
|
||||
@@ -495,28 +496,31 @@ class TemplateASTTransformer(ASTTransformer):
|
||||
def __init__(self):
|
||||
self.locals = [CONSTANTS]
|
||||
|
||||
+ def _process(self, names, node):
|
||||
+ if not IS_PYTHON2 and isinstance(node, _ast.arg):
|
||||
+ names.add(node.arg)
|
||||
+ elif isstring(node):
|
||||
+ names.add(node)
|
||||
+ elif isinstance(node, _ast.Name):
|
||||
+ names.add(node.id)
|
||||
+ elif isinstance(node, _ast.alias):
|
||||
+ names.add(node.asname or node.name)
|
||||
+ elif isinstance(node, _ast.Tuple):
|
||||
+ for elt in node.elts:
|
||||
+ self._process(names, elt)
|
||||
+
|
||||
def _extract_names(self, node):
|
||||
names = set()
|
||||
- def _process(node):
|
||||
- if not IS_PYTHON2 and isinstance(node, _ast.arg):
|
||||
- names.add(node.arg)
|
||||
- if isinstance(node, _ast.Name):
|
||||
- names.add(node.id)
|
||||
- elif isinstance(node, _ast.alias):
|
||||
- names.add(node.asname or node.name)
|
||||
- elif isinstance(node, _ast.Tuple):
|
||||
- for elt in node.elts:
|
||||
- _process(elt)
|
||||
if hasattr(node, 'args'):
|
||||
for arg in node.args:
|
||||
- _process(arg)
|
||||
+ self._process(names, arg)
|
||||
if hasattr(node, 'vararg'):
|
||||
- names.add(node.vararg)
|
||||
+ self._process(names, node.vararg)
|
||||
if hasattr(node, 'kwarg'):
|
||||
- names.add(node.kwarg)
|
||||
+ self._process(names, node.kwarg)
|
||||
elif hasattr(node, 'names'):
|
||||
for elt in node.names:
|
||||
- _process(elt)
|
||||
+ self._process(names, elt)
|
||||
return names
|
||||
|
||||
def visit_Str(self, node):
|
||||
--
|
||||
2.12.0
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 32bfaa7cc1c736fd62fcbb6414de9498dc20ed07 Mon Sep 17 00:00:00 2001
|
||||
From: Adriano Peluso <catonano@gmail.com>
|
||||
Date: Wed, 5 Apr 2017 15:13:06 +0200
|
||||
Subject: [PATCH 2/2] buildable on python27 too
|
||||
|
||||
---
|
||||
genshi/template/directives.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/genshi/template/directives.py b/genshi/template/directives.py
|
||||
index 6fd0f28..1f70ef6 100644
|
||||
--- a/genshi/template/directives.py
|
||||
+++ b/genshi/template/directives.py
|
||||
@@ -266,7 +266,7 @@ class DefDirective(Directive):
|
||||
if isinstance(ast, _ast.Call):
|
||||
self.name = ast.func.id
|
||||
for arg in ast.args:
|
||||
- if isinstance(arg, _ast.Starred):
|
||||
+ if hasattr(_ast, 'Starred') and isinstance(arg, _ast.Starred):
|
||||
# Python 3.5+
|
||||
self.star_args = arg.value.id
|
||||
else:
|
||||
--
|
||||
2.12.0
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From cef2c8df44166195e1705638f9f17033a4943bb7 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Cross <hodgestar@gmail.com>
|
||||
Date: Sun, 16 Feb 2014 18:32:21 +0000
|
||||
Subject: [PATCH 02/15] Disable the speedups C extension on CPython >= 3.3
|
||||
since Genshi doesn't support the new Unicode C API yet.
|
||||
|
||||
---
|
||||
setup.py | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 123a2cb..a3d748c 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -65,9 +65,13 @@ available.""")
|
||||
|
||||
|
||||
if Feature:
|
||||
+ # Optional C extension module for speeding up Genshi:
|
||||
+ # Not activated by default on:
|
||||
+ # - PyPy (where it harms performance)
|
||||
+ # - CPython >= 3.3 (the new Unicode C API is not supported yet)
|
||||
speedups = Feature(
|
||||
"optional C speed-enhancements",
|
||||
- standard = not is_pypy,
|
||||
+ standard = not is_pypy and sys.version_info < (3, 3),
|
||||
ext_modules = [
|
||||
Extension('genshi._speedups', ['genshi/_speedups.c']),
|
||||
],
|
||||
--
|
||||
2.12.0
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
From ce796ad4bae5c47011876778674ad036357febdf Mon Sep 17 00:00:00 2001
|
||||
From: Adriano Peluso <catonano@gmail.com>
|
||||
Date: Wed, 5 Apr 2017 15:10:06 +0200
|
||||
Subject: [PATCH 1/2] fixing the tests on python35
|
||||
|
||||
---
|
||||
genshi/filters/i18n.py | 6 ++++--
|
||||
genshi/template/astutil.py | 14 +++++++++++---
|
||||
genshi/template/directives.py | 20 ++++++++++++++------
|
||||
genshi/template/eval.py | 5 +++++
|
||||
4 files changed, 34 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/genshi/filters/i18n.py b/genshi/filters/i18n.py
|
||||
index 526fda4..5387fcf 100644
|
||||
--- a/genshi/filters/i18n.py
|
||||
+++ b/genshi/filters/i18n.py
|
||||
@@ -1194,8 +1194,10 @@ def extract_from_code(code, gettext_functions):
|
||||
elif arg:
|
||||
strings.append(None)
|
||||
[_add(arg) for arg in node.args]
|
||||
- _add(node.starargs)
|
||||
- _add(node.kwargs)
|
||||
+ if hasattr(node, 'starargs'):
|
||||
+ _add(node.starargs)
|
||||
+ if hasattr(node, 'kwargs'):
|
||||
+ _add(node.kwargs)
|
||||
if len(strings) == 1:
|
||||
strings = strings[0]
|
||||
else:
|
||||
diff --git a/genshi/template/astutil.py b/genshi/template/astutil.py
|
||||
index f4e1edd..e561846 100644
|
||||
--- a/genshi/template/astutil.py
|
||||
+++ b/genshi/template/astutil.py
|
||||
@@ -151,6 +151,10 @@ class ASTCodeGenerator(object):
|
||||
def visit_arg(self, node):
|
||||
self._write(node.arg)
|
||||
|
||||
+ def visit_Starred(self, node):
|
||||
+ self._write('*')
|
||||
+ self.visit(node.value)
|
||||
+
|
||||
# FunctionDef(identifier name, arguments args,
|
||||
# stmt* body, expr* decorator_list)
|
||||
def visit_FunctionDef(self, node):
|
||||
@@ -664,9 +668,13 @@ class ASTCodeGenerator(object):
|
||||
if not first:
|
||||
self._write(', ')
|
||||
first = False
|
||||
- # keyword = (identifier arg, expr value)
|
||||
- self._write(keyword.arg)
|
||||
- self._write('=')
|
||||
+ if not keyword.arg:
|
||||
+ # Python 3.5+ star-star args
|
||||
+ self._write('**')
|
||||
+ else:
|
||||
+ # keyword = (identifier arg, expr value)
|
||||
+ self._write(keyword.arg)
|
||||
+ self._write('=')
|
||||
self.visit(keyword.value)
|
||||
if getattr(node, 'starargs', None):
|
||||
if not first:
|
||||
diff --git a/genshi/template/directives.py b/genshi/template/directives.py
|
||||
index 7301c2d..6fd0f28 100644
|
||||
--- a/genshi/template/directives.py
|
||||
+++ b/genshi/template/directives.py
|
||||
@@ -266,13 +266,21 @@ class DefDirective(Directive):
|
||||
if isinstance(ast, _ast.Call):
|
||||
self.name = ast.func.id
|
||||
for arg in ast.args:
|
||||
- # only names
|
||||
- self.args.append(arg.id)
|
||||
+ if isinstance(arg, _ast.Starred):
|
||||
+ # Python 3.5+
|
||||
+ self.star_args = arg.value.id
|
||||
+ else:
|
||||
+ # only names
|
||||
+ self.args.append(arg.id)
|
||||
for kwd in ast.keywords:
|
||||
- self.args.append(kwd.arg)
|
||||
- exp = Expression(kwd.value, template.filepath,
|
||||
- lineno, lookup=template.lookup)
|
||||
- self.defaults[kwd.arg] = exp
|
||||
+ if kwd.arg is None:
|
||||
+ # Python 3.5+
|
||||
+ self.dstar_args = kwd.value.id
|
||||
+ else:
|
||||
+ self.args.append(kwd.arg)
|
||||
+ exp = Expression(kwd.value, template.filepath,
|
||||
+ lineno, lookup=template.lookup)
|
||||
+ self.defaults[kwd.arg] = exp
|
||||
if getattr(ast, 'starargs', None):
|
||||
self.star_args = ast.starargs.id
|
||||
if getattr(ast, 'kwargs', None):
|
||||
diff --git a/genshi/template/eval.py b/genshi/template/eval.py
|
||||
index d378419..81644a7 100644
|
||||
--- a/genshi/template/eval.py
|
||||
+++ b/genshi/template/eval.py
|
||||
@@ -600,6 +600,11 @@ class TemplateASTTransformer(ASTTransformer):
|
||||
finally:
|
||||
self.locals.pop()
|
||||
|
||||
+ # Only used in Python 3.5+
|
||||
+ def visit_Starred(self, node):
|
||||
+ node.value = self.visit(node.value)
|
||||
+ return node
|
||||
+
|
||||
def visit_Name(self, node):
|
||||
# If the name refers to a local inside a lambda, list comprehension, or
|
||||
# generator expression, leave it alone
|
||||
--
|
||||
2.12.0
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From cc5e07284f44cdd9beec178c69070a53f55d1323 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Cross <hodgestar@gmail.com>
|
||||
Date: Sun, 16 Feb 2014 18:43:20 +0000
|
||||
Subject: [PATCH 03/15] Add isstring helper.
|
||||
|
||||
---
|
||||
genshi/compat.py | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/genshi/compat.py b/genshi/compat.py
|
||||
index 9787325..6574e39 100644
|
||||
--- a/genshi/compat.py
|
||||
+++ b/genshi/compat.py
|
||||
@@ -35,6 +35,15 @@ else:
|
||||
'Python 2 compatibility function. Not usable in Python 3.')
|
||||
|
||||
|
||||
+# We need to test if an object is an instance of a string type in places
|
||||
+
|
||||
+if IS_PYTHON2:
|
||||
+ def isstring(obj):
|
||||
+ return isinstance(obj, basestring)
|
||||
+else:
|
||||
+ def isstring(obj):
|
||||
+ return isinstance(obj, str)
|
||||
+
|
||||
# We need to differentiate between StringIO and BytesIO in places
|
||||
|
||||
if IS_PYTHON2:
|
||||
@@ -112,4 +121,3 @@ except NameError:
|
||||
if not x:
|
||||
return False
|
||||
return True
|
||||
-
|
||||
--
|
||||
2.12.0
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From 0769be04c3891ae5c724c6779ba13d1d0f53b4ae Mon Sep 17 00:00:00 2001
|
||||
From: Simon Cross <hodgestar@gmail.com>
|
||||
Date: Sun, 16 Feb 2014 18:25:17 +0000
|
||||
Subject: [PATCH 01/15] Also allow stripping of unsafe script tags (Python 3.4
|
||||
parses the second example as a tag whose name is script&xyz).
|
||||
|
||||
---
|
||||
genshi/filters/tests/test_html.py | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/genshi/filters/tests/test_html.py b/genshi/filters/tests/test_html.py
|
||||
index 0c6cfe1..45ec0da 100644
|
||||
--- a/genshi/filters/tests/test_html.py
|
||||
+++ b/genshi/filters/tests/test_html.py
|
||||
@@ -368,12 +368,16 @@ def StyleSanitizer():
|
||||
|
||||
class HTMLSanitizerTestCase(unittest.TestCase):
|
||||
|
||||
- def assert_parse_error_or_equal(self, expected, exploit):
|
||||
+ def assert_parse_error_or_equal(self, expected, exploit,
|
||||
+ allow_strip=False):
|
||||
try:
|
||||
html = HTML(exploit)
|
||||
except ParseError:
|
||||
return
|
||||
- self.assertEquals(expected, (html | HTMLSanitizer()).render())
|
||||
+ sanitized_html = (html | HTMLSanitizer()).render()
|
||||
+ if not sanitized_html and allow_strip:
|
||||
+ return
|
||||
+ self.assertEquals(expected, sanitized_html)
|
||||
|
||||
def test_sanitize_unchanged(self):
|
||||
html = HTML(u'<a href="#">fo<br />o</a>')
|
||||
@@ -416,10 +420,12 @@ class HTMLSanitizerTestCase(unittest.TestCase):
|
||||
html = HTML(u'<SCRIPT SRC="http://example.com/"></SCRIPT>')
|
||||
self.assertEquals('', (html | HTMLSanitizer()).render())
|
||||
src = u'<SCR\0IPT>alert("foo")</SCR\0IPT>'
|
||||
- self.assert_parse_error_or_equal('<SCR\x00IPT>alert("foo")', src)
|
||||
+ self.assert_parse_error_or_equal('<SCR\x00IPT>alert("foo")', src,
|
||||
+ allow_strip=True)
|
||||
src = u'<SCRIPT&XYZ SRC="http://example.com/"></SCRIPT>'
|
||||
self.assert_parse_error_or_equal('<SCRIPT&XYZ; '
|
||||
- 'SRC="http://example.com/">', src)
|
||||
+ 'SRC="http://example.com/">', src,
|
||||
+ allow_strip=True)
|
||||
|
||||
def test_sanitize_remove_onclick_attr(self):
|
||||
html = HTML(u'<div onclick=\'alert("foo")\' />')
|
||||
--
|
||||
2.12.0
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
GDB responds with some overly detailed lines - which makes the tests fail.
|
||||
Patch rust to accept those instead.
|
||||
diff -ur orig/rustc-1.25.0-src/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs rustc-1.25.0-src/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
|
||||
--- orig/rustc-1.25.0-src/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs 2018-09-13 10:24:33.775565159 +0200
|
||||
+++ rustc-1.25.0-src/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs 2018-09-13 10:25:56.322513658 +0200
|
||||
@@ -19,36 +19,36 @@
|
||||
|
||||
// gdb-command:print eight_bytes1
|
||||
// gdbg-check:$1 = {{RUST$ENUM$DISR = Variant1, __0 = 100}, {RUST$ENUM$DISR = Variant1, __0 = 100}}
|
||||
-// gdbr-check:$1 = generic_enum_with_different_disr_sizes::Enum::Variant1(100)
|
||||
+// gdbr-check:$1 = generic_enum_with_different_disr_sizes::Enum<f64>::Variant1(100)
|
||||
|
||||
// gdb-command:print four_bytes1
|
||||
// gdbg-check:$2 = {{RUST$ENUM$DISR = Variant1, __0 = 101}, {RUST$ENUM$DISR = Variant1, __0 = 101}}
|
||||
-// gdbr-check:$2 = generic_enum_with_different_disr_sizes::Enum::Variant1(101)
|
||||
+// gdbr-check:$2 = generic_enum_with_different_disr_sizes::Enum<i32>::Variant1(101)
|
||||
|
||||
// gdb-command:print two_bytes1
|
||||
// gdbg-check:$3 = {{RUST$ENUM$DISR = Variant1, __0 = 102}, {RUST$ENUM$DISR = Variant1, __0 = 102}}
|
||||
-// gdbr-check:$3 = generic_enum_with_different_disr_sizes::Enum::Variant1(102)
|
||||
+// gdbr-check:$3 = generic_enum_with_different_disr_sizes::Enum<i16>::Variant1(102)
|
||||
|
||||
// gdb-command:print one_byte1
|
||||
// gdbg-check:$4 = {{RUST$ENUM$DISR = Variant1, __0 = 65 'A'}, {RUST$ENUM$DISR = Variant1, __0 = 65 'A'}}
|
||||
-// gdbr-check:$4 = generic_enum_with_different_disr_sizes::Enum::Variant1(65)
|
||||
+// gdbr-check:$4 = generic_enum_with_different_disr_sizes::Enum<u8>::Variant1(65)
|
||||
|
||||
|
||||
// gdb-command:print eight_bytes2
|
||||
// gdbg-check:$5 = {{RUST$ENUM$DISR = Variant2, __0 = 100}, {RUST$ENUM$DISR = Variant2, __0 = 100}}
|
||||
-// gdbr-check:$5 = generic_enum_with_different_disr_sizes::Enum::Variant2(100)
|
||||
+// gdbr-check:$5 = generic_enum_with_different_disr_sizes::Enum<f64>::Variant2(100)
|
||||
|
||||
// gdb-command:print four_bytes2
|
||||
// gdbg-check:$6 = {{RUST$ENUM$DISR = Variant2, __0 = 101}, {RUST$ENUM$DISR = Variant2, __0 = 101}}
|
||||
-// gdbr-check:$6 = generic_enum_with_different_disr_sizes::Enum::Variant2(101)
|
||||
+// gdbr-check:$6 = generic_enum_with_different_disr_sizes::Enum<i32>::Variant2(101)
|
||||
|
||||
// gdb-command:print two_bytes2
|
||||
// gdbg-check:$7 = {{RUST$ENUM$DISR = Variant2, __0 = 102}, {RUST$ENUM$DISR = Variant2, __0 = 102}}
|
||||
-// gdbr-check:$7 = generic_enum_with_different_disr_sizes::Enum::Variant2(102)
|
||||
+// gdbr-check:$7 = generic_enum_with_different_disr_sizes::Enum<i16>::Variant2(102)
|
||||
|
||||
// gdb-command:print one_byte2
|
||||
// gdbg-check:$8 = {{RUST$ENUM$DISR = Variant2, __0 = 65 'A'}, {RUST$ENUM$DISR = Variant2, __0 = 65 'A'}}
|
||||
-// gdbr-check:$8 = generic_enum_with_different_disr_sizes::Enum::Variant2(65)
|
||||
+// gdbr-check:$8 = generic_enum_with_different_disr_sizes::Enum<u8>::Variant2(65)
|
||||
|
||||
// gdb-command:continue
|
||||
|
||||
diff -ur orig/rustc-1.25.0-src/src/test/debuginfo/generic-struct-style-enum.rs rustc-1.25.0-src/src/test/debuginfo/generic-struct-style-enum.rs
|
||||
--- orig/rustc-1.25.0-src/src/test/debuginfo/generic-struct-style-enum.rs 2018-09-13 10:24:33.775565159 +0200
|
||||
+++ rustc-1.25.0-src/src/test/debuginfo/generic-struct-style-enum.rs 2018-09-13 10:27:43.353108111 +0200
|
||||
@@ -19,15 +19,15 @@
|
||||
|
||||
// gdb-command:print case1
|
||||
// gdbg-check:$1 = {{RUST$ENUM$DISR = Case1, a = 0, b = 31868, c = 31868, d = 31868, e = 31868}, {RUST$ENUM$DISR = Case1, [...]}, {RUST$ENUM$DISR = Case1, [...]}}
|
||||
-// gdbr-check:$1 = generic_struct_style_enum::Regular::Case1{a: 0, b: 31868, c: 31868, d: 31868, e: 31868}
|
||||
+// gdbr-check:$1 = generic_struct_style_enum::Regular<u16, u32, i64>::Case1{a: 0, b: 31868, c: 31868, d: 31868, e: 31868}
|
||||
|
||||
// gdb-command:print case2
|
||||
// gdbg-check:$2 = {{RUST$ENUM$DISR = Case2, [...]}, {RUST$ENUM$DISR = Case2, a = 0, b = 286331153, c = 286331153}, {RUST$ENUM$DISR = Case2, [...]}}
|
||||
-// gdbr-check:$2 = generic_struct_style_enum::Regular::Case2{a: 0, b: 286331153, c: 286331153}
|
||||
+// gdbr-check:$2 = generic_struct_style_enum::Regular<i16, u32, i64>::Case2{a: 0, b: 286331153, c: 286331153}
|
||||
|
||||
// gdb-command:print case3
|
||||
// gdbg-check:$3 = {{RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, a = 0, b = 6438275382588823897}}
|
||||
-// gdbr-check:$3 = generic_struct_style_enum::Regular::Case3{a: 0, b: 6438275382588823897}
|
||||
+// gdbr-check:$3 = generic_struct_style_enum::Regular<u16, i32, u64>::Case3{a: 0, b: 6438275382588823897}
|
||||
|
||||
// gdb-command:print univariant
|
||||
// gdbg-check:$4 = {{a = -1}}
|
||||
diff -ur orig/rustc-1.25.0-src/src/test/debuginfo/generic-tuple-style-enum.rs rustc-1.25.0-src/src/test/debuginfo/generic-tuple-style-enum.rs
|
||||
--- orig/rustc-1.25.0-src/src/test/debuginfo/generic-tuple-style-enum.rs 2018-09-13 10:24:33.775565159 +0200
|
||||
+++ rustc-1.25.0-src/src/test/debuginfo/generic-tuple-style-enum.rs 2018-09-13 10:28:26.328546298 +0200
|
||||
@@ -21,15 +21,15 @@
|
||||
|
||||
// gdb-command:print case1
|
||||
// gdbg-check:$1 = {{RUST$ENUM$DISR = Case1, __0 = 0, __1 = 31868, __2 = 31868, __3 = 31868, __4 = 31868}, {RUST$ENUM$DISR = Case1, [...]}, {RUST$ENUM$DISR = Case1, [...]}}
|
||||
-// gdbr-check:$1 = generic_tuple_style_enum::Regular::Case1(0, 31868, 31868, 31868, 31868)
|
||||
+// gdbr-check:$1 = generic_tuple_style_enum::Regular<u16, u32, u64>::Case1(0, 31868, 31868, 31868, 31868)
|
||||
|
||||
// gdb-command:print case2
|
||||
// gdbg-check:$2 = {{RUST$ENUM$DISR = Case2, [...]}, {RUST$ENUM$DISR = Case2, __0 = 0, __1 = 286331153, __2 = 286331153}, {RUST$ENUM$DISR = Case2, [...]}}
|
||||
-// gdbr-check:$2 = generic_tuple_style_enum::Regular::Case2(0, 286331153, 286331153)
|
||||
+// gdbr-check:$2 = generic_tuple_style_enum::Regular<i16, i32, i64>::Case2(0, 286331153, 286331153)
|
||||
|
||||
// gdb-command:print case3
|
||||
// gdbg-check:$3 = {{RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, __0 = 0, __1 = 6438275382588823897}}
|
||||
-// gdbr-check:$3 = generic_tuple_style_enum::Regular::Case3(0, 6438275382588823897)
|
||||
+// gdbr-check:$3 = generic_tuple_style_enum::Regular<i16, i32, i64>::Case3(0, 6438275382588823897)
|
||||
|
||||
// gdb-command:print univariant
|
||||
// gdbg-check:$4 = {{__0 = -1}}
|
|
@ -44,6 +44,27 @@
|
|||
;;;
|
||||
|
||||
|
||||
(define-public perl-mock-config
|
||||
(package
|
||||
(name "perl-mock-config")
|
||||
(version "0.03")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "06q0xkg5cwdwafzmb9rkaa305ddv7vli9gpm6n9jnkyaaxbk9f55"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page "https://metacpan.org/release/Mock-Config")
|
||||
(synopsis "Temporarily set Config or XSConfig values")
|
||||
(description
|
||||
"The @code{Mock::Config} Perl module allows temporarily setting and
|
||||
overriding @code{Config} values, even for the readonly @code{XSConfig}
|
||||
implementation as used in cperl. It does not store the mocked overrides
|
||||
lexically, just dynamically.")
|
||||
(license artistic2.0)))
|
||||
|
||||
(define-public perl-test2-bundle-extended
|
||||
(package
|
||||
(name "perl-test2-bundle-extended")
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2016, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
|
||||
;;; Copyright © 2016, 2018 Roel Janssen <roel@gnu.org>
|
||||
|
@ -5483,7 +5483,7 @@ private methods are not.")
|
|||
(define-public perl-moosex-getopt
|
||||
(package
|
||||
(name "perl-moosex-getopt")
|
||||
(version "0.71")
|
||||
(version "0.73")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5491,12 +5491,15 @@ private methods are not.")
|
|||
"MooseX-Getopt-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nf2094qgir0irxjycwqavy53ygm530g9f7cxfywnl2n1bmgh66y"))))
|
||||
"19zm8brf930p0ymqn3w1y0ix29kb74m8nvhrhjvrg8cgz6vc5fyz"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-module-build" ,perl-module-build)
|
||||
("perl-module-build-tiny" ,perl-module-build-tiny)
|
||||
("perl-path-tiny" ,perl-path-tiny)
|
||||
("perl-test-deep" ,perl-test-deep)
|
||||
("perl-test-fatal" ,perl-test-fatal)
|
||||
("perl-test-needs" ,perl-test-needs)
|
||||
("perl-test-requires" ,perl-test-requires)
|
||||
("perl-test-trap" ,perl-test-trap)
|
||||
("perl-test-warnings" ,perl-test-warnings)))
|
||||
|
|
|
@ -361,14 +361,14 @@ is used by the Requests library to verify HTTPS requests.")
|
|||
(define-public python-cryptography-vectors
|
||||
(package
|
||||
(name "python-cryptography-vectors")
|
||||
(version "2.2.2")
|
||||
(version "2.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cryptography_vectors" version))
|
||||
(sha256
|
||||
(base32
|
||||
"122na0c6r24ch2ifyr4ccjyih0inpqy7bc5za77699g3pa22rd98"))))
|
||||
"0ijdck30p7jv8a0zwv8b7d30ciqrmmps62lm63l4k776vihrnkdz"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/pyca/cryptography")
|
||||
(synopsis "Test vectors for the cryptography package")
|
||||
|
@ -383,14 +383,14 @@ is used by the Requests library to verify HTTPS requests.")
|
|||
(define-public python-cryptography
|
||||
(package
|
||||
(name "python-cryptography")
|
||||
(version "2.2.2")
|
||||
(version "2.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cryptography" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qrgip8vgcpk7v1jwf67mg50np5iprxrv8qrg8p382hkd6zrbhlz"))))
|
||||
"1mnzf168vlxirq7fw9dm9zbvma7z8phc9cl5bffw5916m0y1244d"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("openssl" ,openssl)))
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
(define-module (gnu packages python-web)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
|
@ -177,14 +178,14 @@ other HTTP libraries.")
|
|||
(define-public python-sockjs-tornado
|
||||
(package
|
||||
(name "python-sockjs-tornado")
|
||||
(version "1.0.3")
|
||||
(version "1.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sockjs-tornado" version))
|
||||
(sha256
|
||||
(base32
|
||||
"16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd"))))
|
||||
"0zhq8wnnhkfbvdnsggqrc3pp97pqpilsf7fh6ymvnf52r0rwyjsc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; There are no tests, and running the test phase requires missing
|
||||
|
@ -194,12 +195,12 @@ other HTTP libraries.")
|
|||
`(("python-tornado" ,python-tornado)))
|
||||
(home-page "https://github.com/mrjoes/sockjs-tornado/")
|
||||
(synopsis
|
||||
"SockJS python server implementation on top of Tornado framework")
|
||||
"SockJS Python server implementation on top of the Tornado framework")
|
||||
(description
|
||||
"SockJS-tornado provides the server side counterpart to a SockJS client
|
||||
"SockJS-tornado provides the server-side counterpart to a SockJS client
|
||||
library, through the Tornado framework.
|
||||
|
||||
SockJS provides a low latency, full duplex, cross-domain communication channel
|
||||
SockJS provides a low-latency, full-duplex, cross-domain communication channel
|
||||
between a web browser and web server.")
|
||||
(license license:expat)))
|
||||
|
||||
|
@ -2248,29 +2249,16 @@ for Flask programs that are using @code{python-alembic}.")
|
|||
(define-public python-genshi
|
||||
(package
|
||||
(name "python-genshi")
|
||||
(version "0.7")
|
||||
(version "0.7.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://ftp.edgewall.org/pub/genshi/Genshi-"
|
||||
version ".tar.gz"))
|
||||
(patches
|
||||
(search-patches
|
||||
;; The first 4 patches are in the master branch upstream.
|
||||
;; See this as a reference https://genshi.edgewall.org/ticket/582
|
||||
;; The last 2 are NOT in any branch.
|
||||
;; They were sent as attachments to a ticket opened at
|
||||
;; https://genshi.edgewall.org/ticket/602#no1
|
||||
"python-genshi-stripping-of-unsafe-script-tags.patch"
|
||||
"python-genshi-disable-speedups-on-python-3.3.patch"
|
||||
"python-genshi-isstring-helper.patch"
|
||||
"python-genshi-add-support-for-python-3.4-AST.patch"
|
||||
"python-genshi-fix-tests-on-python-3.5.patch"
|
||||
"python-genshi-buildable-on-python-2.7.patch"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/edgewall/genshi.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x"))))
|
||||
(base32 "01fx8fnpay5w048ppyjivg2dgfpp5rybn07y3pfsgj2knram3nhl"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://genshi.edgewall.org/")
|
||||
(synopsis "Toolkit for generation of output for the web")
|
||||
|
@ -2279,9 +2267,6 @@ of components for parsing, generating, and processing HTML, XML or other
|
|||
textual content for output generation on the web.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
;; The linter here claims that patch file names should start with the package
|
||||
;; name. But, in this case the patches are inherited from python-genshi with
|
||||
;; the "python-genshi-" prefix instead of "python2-genshi-".
|
||||
(define-public python2-genshi
|
||||
(package-with-python2 python-genshi))
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -1519,14 +1520,14 @@ backported for previous versions of Python from 2.4 to 3.3.")
|
|||
(define-public python-parse
|
||||
(package
|
||||
(name "python-parse")
|
||||
(version "1.8.2")
|
||||
(version "1.8.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "parse" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lj9v1q4imszyhvipb6drsm3xdl35nan011mqxxas1yaypixsj40"))))
|
||||
"0f8997xr8nq2nq35iiviq8ningd1zvy59fg503xfpbi2dwhgdkf3"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -1536,7 +1537,7 @@ backported for previous versions of Python from 2.4 to 3.3.")
|
|||
(home-page "https://github.com/r1chardj0n3s/parse")
|
||||
(synopsis "Parse strings")
|
||||
(description
|
||||
"Parse strings using a specification based on the Python format()
|
||||
"Parse strings using a specification based on the Python @code{format()}
|
||||
syntax.")
|
||||
(license license:x11)))
|
||||
|
||||
|
@ -2627,6 +2628,62 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
|
|||
(define-public python2-feedgenerator
|
||||
(package-with-python2 python-feedgenerator))
|
||||
|
||||
(define-public python-toml
|
||||
(package
|
||||
(name "python-toml")
|
||||
(version "0.9.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "toml" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bdbpbip67wdm6c7xwc6mmbmskyradj4cdxn1iibj4fcx1nbv1lf"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no tests suite in release
|
||||
(home-page "https://github.com/uiri/toml")
|
||||
(synopsis "Library for TOML")
|
||||
(description
|
||||
"@code{toml} is a library for parsing and creating Tom's Obvious, Minimal
|
||||
Language (TOML) configuration files.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-black
|
||||
(package
|
||||
(name "python-black")
|
||||
(version "18.6b4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "black" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0i4sfqgz6w15vd50kbhi7g7rifgqlf8yfr8y78rypd56q64qn592"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'patch-source-shebangs 'patch-extra-shebangs
|
||||
(lambda _
|
||||
(let ((python3 (which "python3")))
|
||||
(substitute* '("tests/data/fmtonoff.py"
|
||||
"tests/data/string_prefixes.py"
|
||||
"tests/data/function.py")
|
||||
(("#!/usr/bin/env python3(\\.[0-9]+)?" _ minor-version)
|
||||
(string-append "#!" python3 (if (string? minor-version)
|
||||
minor-version
|
||||
""))))))))))
|
||||
(propagated-inputs
|
||||
`(("python-click" ,python-click)
|
||||
("python-attrs" ,python-attrs)
|
||||
("python-appdirs" ,python-appdirs)
|
||||
("python-toml" ,python-toml)))
|
||||
(home-page "https://github.com/ambv/black")
|
||||
(synopsis "The uncompromising code formatter")
|
||||
(description "Black is the uncompromising Python code formatter.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-blinker
|
||||
(package
|
||||
(name "python-blinker")
|
||||
|
@ -5061,13 +5118,13 @@ Python.")
|
|||
(define-public snakemake
|
||||
(package
|
||||
(name "snakemake")
|
||||
(version "5.2.0")
|
||||
(version "5.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "snakemake" version))
|
||||
(sha256
|
||||
(base32 "0a1i5v5qxbmmpznp7my9nva8y7pxp8pjrwk2gxgisdskg35sq8s1"))))
|
||||
(base32 "18x36n78ph5v1fxk54gvdbc3d8nfncha78phifg3lqaa9gifgzxd"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; TODO: Package missing test dependencies.
|
||||
|
@ -5096,7 +5153,7 @@ Python.")
|
|||
("python-networkx" ,python-networkx)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-ratelimiter" ,python-ratelimiter)))
|
||||
(home-page "https://bitbucket.org/snakemake/snakemake/wiki/Home")
|
||||
(home-page "https://snakemake.readthedocs.io")
|
||||
(synopsis "Python-based execution environment for make-like workflows")
|
||||
(description
|
||||
"Snakemake aims to reduce the complexity of creating workflows by
|
||||
|
@ -6455,7 +6512,7 @@ Python Package Index (PyPI).")
|
|||
(define-public python-tlsh
|
||||
(package
|
||||
(name "python-tlsh")
|
||||
(version "3.4.4")
|
||||
(version "3.4.5")
|
||||
(home-page "https://github.com/trendmicro/tlsh")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -6463,7 +6520,7 @@ Python Package Index (PyPI).")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00bhzjqrlh7v538kbkbn8lgx976j1138al3sdhklaizqjvpwyk4r"))
|
||||
"1x1vahd4zg5kpyr9h9hs3fvh460p25rjy4cclwdnbbw8x3vc30q3"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
@ -6524,13 +6581,13 @@ a hash value.")
|
|||
(define-public python-libarchive-c
|
||||
(package
|
||||
(name "python-libarchive-c")
|
||||
(version "2.2")
|
||||
(version "2.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "libarchive-c" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0z4r7v3dhd6b3120mav05ff08srih176r2rg5k8kn7mjd9pslm2x"))))
|
||||
"0qg0v1s9c1xdk9philhnv8k6c6nicvnvfwlc0j9srg90jmdlvm06"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
|
@ -6542,7 +6599,12 @@ a hash value.")
|
|||
(substitute* "libarchive/ffi.py"
|
||||
(("find_library\\('archive'\\)")
|
||||
(string-append "'" libarchive
|
||||
"/lib/libarchive.so'")))))))))
|
||||
"/lib/libarchive.so'"))))))
|
||||
(replace 'check
|
||||
(lambda _ (invoke "pytest" "-vv"))))))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(inputs
|
||||
`(("libarchive" ,libarchive)))
|
||||
(home-page "https://github.com/Changaco/python-libarchive-c")
|
||||
|
@ -6589,6 +6651,7 @@ serve the same purpose: provide Python bindings for libmagic.")))
|
|||
(define-public python-debian
|
||||
(package
|
||||
(name "python-debian")
|
||||
(home-page "https://salsa.debian.org/python-debian-team/python-debian")
|
||||
(version "0.1.28")
|
||||
(source
|
||||
(origin
|
||||
|
@ -6600,7 +6663,6 @@ serve the same purpose: provide Python bindings for libmagic.")))
|
|||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)))
|
||||
(home-page "http://packages.debian.org/sid/python-debian")
|
||||
(synopsis "Debian package related modules")
|
||||
(description
|
||||
;; XXX: Use @enumerate instead of @itemize to work around
|
||||
|
@ -9543,14 +9605,14 @@ characters, mouse support, and auto suggestions.")
|
|||
(define-public python-jedi
|
||||
(package
|
||||
(name "python-jedi")
|
||||
(version "0.12.0")
|
||||
(version "0.12.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "jedi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1bcr7csx4xil1iwmk03d79jis0bkmgi9k0kir3xa4rmwqsagcwhr"))))
|
||||
"1h8ypnjisn57kiv1zqrkj1im6sbfnhxllqaa8znh39qkd47ys2dl"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -9559,14 +9621,18 @@ characters, mouse support, and auto suggestions.")
|
|||
(invoke "py.test" "-vv"))))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-parso" ,python-parso)
|
||||
("python-docopt" ,python-docopt)))
|
||||
(propagated-inputs
|
||||
`(("python-parso" ,python-parso)))
|
||||
(home-page "https://github.com/davidhalter/jedi")
|
||||
(synopsis
|
||||
"Autocompletion for Python that can be used for text editors")
|
||||
(synopsis "Autocompletion and static analysis library for Python")
|
||||
(description
|
||||
"Jedi is an autocompletion tool for Python that can be used for text
|
||||
editors.")
|
||||
"Jedi is a static analysis tool for Python that can be used in Integrated
|
||||
Development Environments (@dfn{IDE}s) and text editors. It understands Python
|
||||
on a deeper level than many other static analysis frameworks for Python.
|
||||
|
||||
Jedi understands docstrings and you can use Jedi autocompletion in your REPL as
|
||||
well.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-jedi
|
||||
|
@ -9745,13 +9811,13 @@ hardware-accelerated multitouch applications.")
|
|||
(define-public python-binaryornot
|
||||
(package
|
||||
(name "python-binaryornot")
|
||||
(version "0.4.0")
|
||||
(version "0.4.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "binaryornot" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j4f51dxic39mdwf6alj7gd769wy6mhk916v031wjali51xkh3xb"))))
|
||||
"0qc006986rb6bcbmiymwgcl1mns2jphr1j7sr7nk41nlr7gh359m"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-chardet" ,python-chardet)
|
||||
|
@ -13169,14 +13235,14 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style
|
|||
(define-public python-typing
|
||||
(package
|
||||
(name "python-typing")
|
||||
(version "3.6.4")
|
||||
(version "3.6.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "typing" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1wmk9nkh30n37cbrqwkbggmj2390lhrlagjkd0ikm02l88saj06l"))))
|
||||
"0ba9acs4awx15bf9v3nrs781msbd2nx826906nj6fqks2bvca9s0"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://docs.python.org/3/library/typing.html")
|
||||
(synopsis "Type hints for Python")
|
||||
|
@ -13449,14 +13515,14 @@ time-based (TOTP) passwords.")
|
|||
(define-public python-parso
|
||||
(package
|
||||
(name "python-parso")
|
||||
(version "0.2.1")
|
||||
(version "0.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "parso" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zvh4rdhv2wkglkgh0h9kn9ndpsw5p639wcwv47jn1kfp504lq7h"))))
|
||||
"18p89iwcm8mnf380f92g9w0bhx5km8wxp392vvjcq4y1ld1llw1m"))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(build-system python-build-system)
|
||||
|
@ -13953,3 +14019,276 @@ scalable way of keeping track of data together with learned annotations and
|
|||
reduces the code overhead typically encountered when using a mostly
|
||||
object-oriented library such as @code{scikit-learn}.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-dill
|
||||
(package
|
||||
(name "python-dill")
|
||||
(version "0.2.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "dill" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1cymzn9fxwdy33h21zkk4gqgzvd25110hh3zdqnvnwa3p52c4kb2"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: The check phase fails with "don't know how to make test".
|
||||
(arguments '(#:tests? #f))
|
||||
(home-page "https://pypi.org/project/dill")
|
||||
(synopsis "Serialize all of Python")
|
||||
(description "Dill extends Python's @code{pickle} module for serializing
|
||||
and de-serializing Python objects to the majority of the built-in Python
|
||||
types. Dill provides the user the same interface as the @code{pickle} module,
|
||||
and also includes some additional features. In addition to pickling Python
|
||||
objects, @code{dill} provides the ability to save the state of an interpreter
|
||||
session in a single command. Hence, it would be feasable to save a
|
||||
interpreter session, close the interpreter, ship the pickled file to another
|
||||
computer, open a new interpreter, unpickle the session and thus continue from
|
||||
the saved state of the original interpreter session.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-multiprocess
|
||||
(package
|
||||
(name "python-multiprocess")
|
||||
(version "0.70.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "multiprocess" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ip5caz67b3q0553mr8gm8xwsb8x500jn8ml0gihgyfy52m2ypcq"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-dill" ,python-dill)))
|
||||
(home-page "https://pypi.org/project/multiprocess")
|
||||
(synopsis "Multiprocessing and multithreading in Python")
|
||||
(description
|
||||
"This package is a fork of the multiprocessing Python package, a package
|
||||
which supports the spawning of processes using the API of the standard
|
||||
library's @code{threading} module.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-toolz
|
||||
(package
|
||||
(name "python-toolz")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "toolz" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j9i7fdjnx9dz35fdj5gvgxx6585ja9sxgaiv65if77nlxz0m7wj"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: tests cannot be computed: "Can't perform this operation for
|
||||
;; unregistered loader type"
|
||||
(arguments '(#:tests? #f))
|
||||
(home-page "https://github.com/pytoolz/toolz/")
|
||||
(synopsis "List processing tools and functional utilities")
|
||||
(description
|
||||
"This package provides a set of utility functions for iterators,
|
||||
functions, and dictionaries.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-cytoolz
|
||||
(package
|
||||
(name "python-cytoolz")
|
||||
(version "0.9.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cytoolz" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1r80p88hm3f3r4zpixzr047y5hw4bzy41m4xywnhycda83x0dk44"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: tests fail with "module 'cytoolz.curried' has no attribute
|
||||
;; 'exceptions'"
|
||||
(arguments '(#:tests? #f))
|
||||
(propagated-inputs
|
||||
`(("python-toolz" ,python-toolz)))
|
||||
(native-inputs
|
||||
`(("python-cython" ,python-cython)))
|
||||
(home-page "https://github.com/pytoolz/cytoolz")
|
||||
(synopsis "High performance functional utilities")
|
||||
(description
|
||||
"The cytoolz package implements the same API as provided by toolz. The
|
||||
main differences are that @code{cytoolz} is faster and cytoolz offers a C API
|
||||
that is accessible to other projects developed in Cython.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-sortedcontainers
|
||||
(package
|
||||
(name "python-sortedcontainers")
|
||||
(version "2.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sortedcontainers" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10hrk2k0hbf9x78vd3f0lj277m1yzfhzzxr0hja718liwb398wk0"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-tox" ,python-tox)))
|
||||
(home-page "http://www.grantjenks.com/docs/sortedcontainers/")
|
||||
(synopsis "Sorted List, Sorted Dict, Sorted Set")
|
||||
(description
|
||||
"This package provides a sorted collections library, written in
|
||||
pure-Python.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python-cloudpickle
|
||||
(package
|
||||
(name "python-cloudpickle")
|
||||
(version "0.5.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cloudpickle" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gdg5n025v4wqmdg65rm0n6fvp6731ip30ji0rmn2kqsyr4bb93f"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: there are 5 errors in 122 tests:
|
||||
;; ERROR: test_function_pickle_compat_0_4_0 (tests.cloudpickle_test.CloudPickleTest)
|
||||
;; ERROR: test_function_pickle_compat_0_4_1 (tests.cloudpickle_test.CloudPickleTest)
|
||||
;; ERROR: test_function_pickle_compat_0_4_0 (tests.cloudpickle_test.Protocol2CloudPickleTest)
|
||||
;; ERROR: test_function_pickle_compat_0_4_1 (tests.cloudpickle_test.Protocol2CloudPickleTest)
|
||||
;; ERROR: test_temp_file (tests.cloudpickle_file_test.CloudPickleFileTests)
|
||||
;; TypeError: cannot serialize '_io.BufferedRandom' object
|
||||
(arguments '(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-mock" ,python-mock)
|
||||
("python-tornado" ,python-tornado)))
|
||||
(home-page "https://github.com/cloudpipe/cloudpickle")
|
||||
(synopsis "Extended pickling support for Python objects")
|
||||
(description
|
||||
"Cloudpickle makes it possible to serialize Python constructs not
|
||||
supported by the default pickle module from the Python standard library. It
|
||||
is especially useful for cluster computing where Python expressions are
|
||||
shipped over the network to execute on remote hosts, possibly close to the
|
||||
data.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-locket
|
||||
(package
|
||||
(name "python-locket")
|
||||
(version "0.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "locket" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1d4z2zngrpqkrfhnd4yhysh66kjn4mblys2l06sh5dix2p0n7vhz"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/mwilliamson/locket.py")
|
||||
(synopsis "File-based locks for Python")
|
||||
(description
|
||||
"Locket implements a lock that can be used by multiple processes provided
|
||||
they use the same path.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python-blosc
|
||||
(package
|
||||
(name "python-blosc")
|
||||
(version "1.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "blosc" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1cm91c6r431yla2mbs4895bgiianjf30dfz14vvv99dslygd65jw"))))
|
||||
(build-system python-build-system)
|
||||
;; FIXME: all tests pass, but then this error is printed:
|
||||
;; TypeError: calling <function run at 0x7ffff2568d90> returned None, not a test
|
||||
(arguments '(#:tests? #f))
|
||||
(propagated-inputs
|
||||
`(("python-numpy" ,python-numpy)))
|
||||
(home-page "https://github.com/blosc/python-blosc")
|
||||
(synopsis "Python wrapper for the Blosc data compressor library")
|
||||
(description "Blosc is a high performance compressor optimized for binary
|
||||
data. It has been designed to transmit data to the processor cache faster
|
||||
than the traditional, non-compressed, direct memory fetch approach via a
|
||||
@code{memcpy()} system call.
|
||||
|
||||
Blosc works well for compressing numerical arrays that contains data with
|
||||
relatively low entropy, like sparse data, time series, grids with
|
||||
regular-spaced values, etc.
|
||||
|
||||
This Python package wraps the Blosc library.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-partd
|
||||
(package
|
||||
(name "python-partd")
|
||||
(version "0.3.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "partd" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03s0i5qfgkx6y24bmfgyd5hnsjznkbbfafwb2khf7k9790f1yab7"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-blosc" ,python-blosc)
|
||||
("python-locket" ,python-locket)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-pyzmq" ,python-pyzmq)
|
||||
("python-toolz" ,python-toolz)))
|
||||
(home-page "https://github.com/dask/partd/")
|
||||
(synopsis "Appendable key-value storage")
|
||||
(description "Partd stores key-value pairs. Values are raw bytes. We
|
||||
append on old values. Partd excels at shuffling operations.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-dask
|
||||
(package
|
||||
(name "python-dask")
|
||||
(version "0.19.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "dask" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pm1163qb6s22p8fnvj0zlfazihvs7hxjn8l2n52bzs7shw6kdz3"))))
|
||||
(build-system python-build-system)
|
||||
;; A single test out of 5000+ fails. This test is marked as xfail when
|
||||
;; pytest-xdist is used.
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-broken-test
|
||||
(lambda _
|
||||
(substitute* "dask/tests/test_threaded.py"
|
||||
(("def test_interrupt\\(\\)" m)
|
||||
(string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
|
||||
m)))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-cloudpickle" ,python-cloudpickle)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-partd" ,python-partd)
|
||||
("python-toolz" ,python-toolz)
|
||||
("python-pyyaml" ,python-pyyaml)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-pytest-runner" ,python-pytest-runner)))
|
||||
(home-page "https://github.com/dask/dask/")
|
||||
(synopsis "Parallel computing with task scheduling")
|
||||
(description
|
||||
"Dask is a flexible parallel computing library for analytics. It
|
||||
consists of two components: dynamic task scheduling optimized for computation,
|
||||
and large data collections like parallel arrays, dataframes, and lists that
|
||||
extend common interfaces like NumPy, Pandas, or Python iterators to
|
||||
larger-than-memory or distributed environments. These parallel collections
|
||||
run on top of the dynamic task schedulers. ")
|
||||
(license license:bsd-3)))
|
||||
|
|
|
@ -126,13 +126,13 @@
|
|||
(rustdoc (string-append out "/bin/rustdoc"))
|
||||
(cargo (string-append cargo-out "/bin/cargo"))
|
||||
(gcc (assoc-ref inputs "gcc")))
|
||||
;; Install rustc/rustdoc
|
||||
;; Install rustc/rustdoc.
|
||||
(invoke "bash" "install.sh"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--components=rustc,"
|
||||
"rust-std-"
|
||||
,(nix-system->gnu-triplet-for-rust)))
|
||||
;; Instal cargo
|
||||
;; Install cargo.
|
||||
(invoke "bash" "install.sh"
|
||||
(string-append "--prefix=" cargo-out)
|
||||
(string-append "--components=cargo"))
|
||||
|
@ -143,11 +143,6 @@
|
|||
(for-each (lambda (file)
|
||||
(invoke "patchelf" "--set-interpreter" ld-so file))
|
||||
(list rustc rustdoc cargo))
|
||||
;; Rust requires a C toolchain for linking. The prebuilt
|
||||
;; binaries expect a compiler called cc. Thus symlink gcc
|
||||
;; to cc.
|
||||
(symlink (string-append gcc "/bin/gcc")
|
||||
(string-append out "/bin/cc"))
|
||||
#t))))))
|
||||
(home-page "https://www.rust-lang.org")
|
||||
(synopsis "Prebuilt rust compiler and cargo package manager")
|
||||
|
@ -387,7 +382,6 @@ test = { path = \"../libtest\" }
|
|||
"--output-dir" "output/rustc-build"
|
||||
"-L" (string-append rustc-bootstrap "/lib/mrust")
|
||||
"-j" "1")
|
||||
(install-file "output/rustc-build/rustc" "output") ; FIXME: Remove?
|
||||
(setenv "CFG_COMPILER_HOST_TRIPLE" #f)
|
||||
(setenv "CFG_RELEASE" #f)
|
||||
(setenv "CFG_RELEASE_CHANNEL" #f)
|
||||
|
@ -408,7 +402,7 @@ test = { path = \"../libtest\" }
|
|||
;; but right now, Cargo has problems with libstd's circular
|
||||
;; dependencies.
|
||||
(mkdir-p "output/target-libs")
|
||||
(for-each ((@ (ice-9 match) match-lambda)
|
||||
(for-each (match-lambda
|
||||
((name . flags)
|
||||
(write name)
|
||||
(newline)
|
||||
|
@ -454,6 +448,8 @@ test = { path = \"../libtest\" }
|
|||
(copy-recursively "output/target-libs" out-libs)
|
||||
(install-file "output/rustc-build/rustc"
|
||||
(string-append out "/bin"))
|
||||
(install-file "output/rustc-build/rustdoc"
|
||||
(string-append out "/bin"))
|
||||
(install-file "output/cargo-build/cargo"
|
||||
(string-append (assoc-ref outputs "cargo")
|
||||
"/bin")))
|
||||
|
@ -498,13 +494,132 @@ safety and thread safety guarantees.")
|
|||
;; Dual licensed.
|
||||
(license (list license:asl2.0 license:expat))))
|
||||
|
||||
(define-public rust-1.20
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.19 "1.20.0"
|
||||
"0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a")))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(outputs '("out" "doc" "cargo"))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments rust-1.19)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc"))
|
||||
(gcc (assoc-ref inputs "gcc"))
|
||||
(gdb (assoc-ref inputs "gdb"))
|
||||
(binutils (assoc-ref inputs "binutils"))
|
||||
(python (assoc-ref inputs "python-2"))
|
||||
(rustc (assoc-ref inputs "rustc-bootstrap"))
|
||||
(cargo (assoc-ref inputs "cargo-bootstrap"))
|
||||
(llvm (assoc-ref inputs "llvm"))
|
||||
(jemalloc (assoc-ref inputs "jemalloc")))
|
||||
(call-with-output-file "config.toml"
|
||||
(lambda (port)
|
||||
(display (string-append "
|
||||
[llvm]
|
||||
[build]
|
||||
cargo = \"" cargo "/bin/cargo" "\"
|
||||
rustc = \"" rustc "/bin/rustc" "\"
|
||||
docs = true
|
||||
python = \"" python "/bin/python2" "\"
|
||||
gdb = \"" gdb "/bin/gdb" "\"
|
||||
vendor = true
|
||||
submodules = false
|
||||
[install]
|
||||
prefix = \"" out "\"
|
||||
docdir = \"" doc "/share/doc/rust" "\"
|
||||
sysconfdir = \"etc\"
|
||||
localstatedir = \"var/lib\"
|
||||
[rust]
|
||||
default-linker = \"" gcc "/bin/gcc" "\"
|
||||
channel = \"stable\"
|
||||
rpath = true
|
||||
" ;; There are 2 failed codegen tests:
|
||||
;; codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs
|
||||
;; These tests require a patched LLVM
|
||||
"codegen-tests = false
|
||||
[target." ,(nix-system->gnu-triplet-for-rust) "]
|
||||
llvm-config = \"" llvm "/bin/llvm-config" "\"
|
||||
cc = \"" gcc "/bin/gcc" "\"
|
||||
cxx = \"" gcc "/bin/g++" "\"
|
||||
ar = \"" binutils "/bin/ar" "\"
|
||||
jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
||||
[dist]
|
||||
") port)))
|
||||
#t)))
|
||||
(add-after 'configure 'provide-cc
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(symlink (string-append (assoc-ref inputs "gcc") "/bin/gcc")
|
||||
"/tmp/cc")
|
||||
(setenv "PATH" (string-append "/tmp:" (getenv "PATH")))
|
||||
#t))
|
||||
(add-after 'provide-cc 'configure-archiver
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/build_helper/lib.rs"
|
||||
;; Make sure "ar" is always used as the archiver.
|
||||
(("\"musl\"") "\"\"")
|
||||
;; Then substitute "ar" by our name.
|
||||
(("\"ar\"") (string-append "\""
|
||||
(assoc-ref inputs "binutils")
|
||||
"/bin/ar\"")))
|
||||
#t))
|
||||
(delete 'patch-cargo-tomls)
|
||||
(add-before 'build 'reset-timestamps-after-changes
|
||||
(lambda* _
|
||||
(define ref (stat "README.md"))
|
||||
(for-each
|
||||
(lambda (filename)
|
||||
(set-file-time filename ref))
|
||||
(find-files "." #:directories? #t))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda* _
|
||||
(invoke "./x.py" "build")
|
||||
(invoke "./x.py" "build" "src/tools/cargo")))
|
||||
(replace 'check
|
||||
(lambda* _
|
||||
;; Disable parallel execution to prevent EAGAIN errors when
|
||||
;; running tests.
|
||||
(invoke "./x.py" "-j1" "test" "-vv")
|
||||
(invoke "./x.py" "-j1" "test" "src/tools/cargo")
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "./x.py" "install")
|
||||
(substitute* "config.toml"
|
||||
;; replace prefix to specific output
|
||||
(("prefix = \"[^\"]*\"")
|
||||
(string-append "prefix = \"" (assoc-ref outputs "cargo") "\"")))
|
||||
(invoke "./x.py" "install" "cargo")))
|
||||
(add-after 'install 'wrap-rustc
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libc (assoc-ref inputs "libc"))
|
||||
(ld-wrapper (assoc-ref inputs "ld-wrapper")))
|
||||
;; Let gcc find ld and libc startup files.
|
||||
(wrap-program (string-append out "/bin/rustc")
|
||||
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
||||
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
|
||||
#t))))))))))
|
||||
|
||||
(define-public rust-1.21
|
||||
(rust-bootstrapped-package rust-1.20 "1.21.0"
|
||||
"1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp"))
|
||||
|
||||
(define-public rust-1.22
|
||||
(rust-bootstrapped-package rust-1.21 "1.22.1"
|
||||
"1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))
|
||||
|
||||
(define-public rust-1.23
|
||||
(package
|
||||
(inherit rust-1.19)
|
||||
(inherit rust-1.20)
|
||||
(name "rust")
|
||||
(version "1.23.0")
|
||||
(source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
|
||||
(outputs '("out" "doc" "cargo"))
|
||||
(native-inputs
|
||||
`(("bison" ,bison) ; For the tests
|
||||
("cmake" ,cmake)
|
||||
|
@ -518,17 +633,16 @@ safety and thread safety guarantees.")
|
|||
("pkg-config" ,pkg-config) ; For "cargo"
|
||||
("which" ,which)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments rust-1.19)
|
||||
(substitute-keyword-arguments (package-arguments rust-1.20)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(delete 'configure-archiver)
|
||||
(add-after 'unpack 'dont-build-native
|
||||
(lambda _
|
||||
;; XXX: Revisit this when we use gcc 6.
|
||||
(substitute* "src/binaryen/CMakeLists.txt"
|
||||
(("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") ""))
|
||||
#t))
|
||||
;; TODO: Revisit this and find out whether that's needed after all.
|
||||
(delete 'patch-cargo-tomls)
|
||||
(add-after 'patch-tests 'patch-cargo-tests
|
||||
(lambda _
|
||||
(substitute* "src/tools/cargo/tests/build.rs"
|
||||
|
@ -556,90 +670,7 @@ safety and thread safety guarantees.")
|
|||
;; is 0, but in same time "src" have 0 mtime in guix build!
|
||||
(("let threshold = mtime\\(dst\\);")
|
||||
"if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc"))
|
||||
(gcc (assoc-ref inputs "gcc"))
|
||||
(gdb (assoc-ref inputs "gdb"))
|
||||
(binutils (assoc-ref inputs "binutils"))
|
||||
(python (assoc-ref inputs "python-2"))
|
||||
(rustc (assoc-ref inputs "rustc-bootstrap"))
|
||||
(cargo (assoc-ref inputs "cargo-bootstrap"))
|
||||
(llvm (assoc-ref inputs "llvm"))
|
||||
(jemalloc (assoc-ref inputs "jemalloc")))
|
||||
(call-with-output-file "config.toml"
|
||||
(lambda (port)
|
||||
(display (string-append "
|
||||
[llvm]
|
||||
[build]
|
||||
cargo = \"" cargo "/bin/cargo" "\"
|
||||
rustc = \"" rustc "/bin/rustc" "\"
|
||||
docs = true
|
||||
python = \"" python "/bin/python2" "\"
|
||||
gdb = \"" gdb "/bin/gdb" "\"
|
||||
vendor = true
|
||||
submodules = false
|
||||
[install]
|
||||
prefix = \"" out "\"
|
||||
docdir = \"" doc "/share/doc/rust" "\"
|
||||
sysconfdir = \"etc\"
|
||||
localstatedir = \"var/lib\"
|
||||
[rust]
|
||||
default-linker = \"" gcc "/bin/gcc" "\"
|
||||
channel = \"stable\"
|
||||
rpath = true
|
||||
" ;; There are 2 failed codegen tests:
|
||||
;; codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs
|
||||
;; These tests require a patched LLVM
|
||||
"codegen-tests = false
|
||||
[target." ,(nix-system->gnu-triplet-for-rust) "]
|
||||
llvm-config = \"" llvm "/bin/llvm-config" "\"
|
||||
cc = \"" gcc "/bin/gcc" "\"
|
||||
cxx = \"" gcc "/bin/g++" "\"
|
||||
ar = \"" binutils "/bin/ar" "\"
|
||||
jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
||||
[dist]
|
||||
") port)))
|
||||
#t)))
|
||||
(add-before 'build 'reset-timestamps-after-changes
|
||||
(lambda* _
|
||||
(define ref (stat "README.md"))
|
||||
(for-each
|
||||
(lambda (filename)
|
||||
(set-file-time filename ref))
|
||||
(find-files "." #:directories? #t))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda* _
|
||||
(invoke "./x.py" "build")
|
||||
(invoke "./x.py" "build" "src/tools/cargo")))
|
||||
(replace 'check
|
||||
(lambda* _
|
||||
;; Disable parallel execution to prevent EAGAIN errors when
|
||||
;; running tests.
|
||||
(invoke "./x.py" "-j1" "test")
|
||||
(invoke "./x.py" "-j1" "test" "src/tools/cargo")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "./x.py" "install")
|
||||
(substitute* "config.toml"
|
||||
;; replace prefix to specific output
|
||||
(("prefix = \"[^\"]*\"")
|
||||
(string-append "prefix = \"" (assoc-ref outputs "cargo") "\"")))
|
||||
(invoke "./x.py" "install" "cargo")
|
||||
#t))
|
||||
(add-after 'install 'wrap-rustc
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libc (assoc-ref inputs "libc"))
|
||||
(ld-wrapper (assoc-ref inputs "ld-wrapper")))
|
||||
;; Let gcc find ld and libc startup files.
|
||||
(wrap-program (string-append out "/bin/rustc")
|
||||
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
||||
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
|
||||
#t)))))))))
|
||||
#t))))))))
|
||||
|
||||
(define-public rust-1.24
|
||||
(let ((base-rust
|
||||
|
@ -664,7 +695,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(define-public rust-1.25
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.24 "1.25.0"
|
||||
"0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf")))
|
||||
"0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf"
|
||||
#:patches '("rust-1.25-accept-more-detailed-gdb-lines.patch"))))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(inputs
|
||||
|
@ -686,6 +718,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(substitute* "config.toml"
|
||||
(("codegen-tests = false") ""))
|
||||
#t))
|
||||
;; FIXME: Re-enable this test if it's indeed supposed to work.
|
||||
;; See <https://github.com/rust-lang/rust/issues/54178>.
|
||||
(add-after 'enable-codegen-tests 'disable-nil-enum-test
|
||||
(lambda _
|
||||
(substitute* "src/test/debuginfo/nil-enum.rs"
|
||||
(("ignore-lldb") "ignore-gdb"))
|
||||
#t))
|
||||
(replace 'patch-aarch64-test
|
||||
(lambda _
|
||||
(substitute* "src/librustc_metadata/dynamic_lib.rs"
|
||||
|
@ -703,8 +742,9 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(define-public rust-1.26
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.25 "1.26.2"
|
||||
"0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv"
|
||||
#:patches '("rust-coresimd-doctest.patch"))))
|
||||
"0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv"
|
||||
#:patches '("rust-coresimd-doctest.patch"
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch"))))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(arguments
|
||||
|
@ -754,7 +794,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
"089d7rhw55zpvnw71dj8vil6qrylvl4xjr4m8bywjj83d4zq1f9c"
|
||||
#:patches
|
||||
'("rust-coresimd-doctest.patch"
|
||||
"rust-bootstrap-stage0-test.patch"))))
|
||||
"rust-bootstrap-stage0-test.patch"
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch"))))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(arguments
|
||||
|
|
|
@ -460,6 +460,9 @@ implementation techniques and as an expository tool.")
|
|||
(substitute* "share/pkgs/math-lib/math/private/bigfloat/mpfr.rkt"
|
||||
(("ffi-lib libmpfr-so")
|
||||
(format #f "ffi-lib \"~a\"" (find-so "libmpfr"))))
|
||||
(substitute* "share/pkgs/readline-lib/readline/rktrl.rkt"
|
||||
(("\\(getenv \"PLT_READLINE_LIB\"\\)")
|
||||
(format #f "\"~a\"" (find-so "libedit"))))
|
||||
(for-each
|
||||
(lambda (x) (apply patch-ffi-libs x))
|
||||
'(("share/pkgs/draw-lib/racket/draw/unsafe/cairo-lib.rkt"
|
||||
|
@ -487,9 +490,7 @@ implementation techniques and as an expository tool.")
|
|||
("share/pkgs/gui-lib/mred/private/wx/gtk/gl-context.rkt"
|
||||
("libGL"))
|
||||
("share/pkgs/sgl/gl.rkt"
|
||||
("libGL" "libGLU"))
|
||||
("share/pkgs/readline-lib/readline/rktrl.rkt"
|
||||
("libedit")))))
|
||||
("libGL" "libGLU")))))
|
||||
(chdir "src")
|
||||
#t))
|
||||
(add-after 'unpack 'patch-/bin/sh
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -18,7 +19,7 @@
|
|||
|
||||
(define-module (gnu packages scsi)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl2+ bsd-3))
|
||||
#:select (gpl2+ bsd-2 bsd-3))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
@ -26,14 +27,14 @@
|
|||
(define-public sg3-utils
|
||||
(package
|
||||
(name "sg3-utils")
|
||||
(version "1.42")
|
||||
(version "1.43")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://sg.danny.cz/sg/p/sg3_utils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fg71rj0f1gdjmkj0z8wlv46cf9lryjdyjkbi7fjmssgi5jyvblp"))))
|
||||
"04l58wvncqk6lfh4lashsl3ccsa1114hkd6vwi1h1cbmq2fw9c8v"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://sg.danny.cz/sg/sg3_utils.html")
|
||||
(synopsis "SCSI device utilities")
|
||||
|
@ -49,6 +50,9 @@ up and down disks (@code{sg_start}), do self tests (@code{sg_senddiag}), parse
|
|||
sense data (@code{sg_decode_sense}), and perform various other functions. In
|
||||
addition, this package includes a library, called libsgutils, which can be
|
||||
used in C and C++ programs to interact with SCSI devices.")
|
||||
;; The libsgutils library itself is licensed under bsd-3. Some tools are
|
||||
;; licensed under bsd-3, also. Some tools are licensed under gpl2+.
|
||||
(license (list gpl2+ bsd-3))))
|
||||
;; See README: "All utilities and libraries have either a "2 clause" BSD
|
||||
;; license or are "GPL-2ed". [...] That BSD license was updated from the
|
||||
;; "3 clause" to the newer "2 clause" version on 20180119. To save space
|
||||
;; various source code files refer to a file called "BSD_LICENSE" [...]."
|
||||
;; Some files (like sg_compare_and_write.c) retain their 3-clause headers!
|
||||
(license (list gpl2+ bsd-2 bsd-3))))
|
||||
|
|
|
@ -292,18 +292,18 @@ history mechanism, job control and a C-like syntax.")
|
|||
(define-public zsh
|
||||
(package
|
||||
(name "zsh")
|
||||
(version "5.6")
|
||||
(version "5.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
"http://www.zsh.org/pub/zsh-" version
|
||||
"https://www.zsh.org/pub/zsh-" version
|
||||
".tar.xz")
|
||||
(string-append
|
||||
"http://www.zsh.org/pub/old/zsh-" version
|
||||
"https://www.zsh.org/pub/old/zsh-" version
|
||||
".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1mp6h2452z2029n12mxipjv4b0cc8i8sb72g8p8jklg8275iysvl"))))
|
||||
"1s5kzfbfvixibb1sbzmmlrrx898zqwi5cfmnnq4bhcbx64zparlm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre")
|
||||
#:phases
|
||||
|
@ -336,19 +336,6 @@ history mechanism, job control and a C-like syntax.")
|
|||
(("command -pv") "command -v")
|
||||
(("command -p") "command ")
|
||||
(("'command' -p") "'command' "))
|
||||
;; This file is ISO-8859-1 encoded.
|
||||
(with-fluids ((%default-port-encoding #f))
|
||||
(substitute* "Test/A05execution.ztst"
|
||||
;; Help it find `sh`
|
||||
(("PATH=/bin:\\$\\{ZTST_testdir\\}/command.tmp/ tstcmd-slashless")
|
||||
(string-append "PATH=/bin:"
|
||||
(assoc-ref %build-inputs "bash") "/bin:"
|
||||
"${ZTST_testdir}/command.tmp/ tstcmd-slashless"))
|
||||
;; Help it find `echo`
|
||||
(("PATH=/bin:\\$\\{ZTST_testdir\\}/command.tmp tstcmd-arg")
|
||||
(string-append "PATH=/bin:"
|
||||
(assoc-ref %build-inputs "coreutils") "/bin:"
|
||||
"PATH=/bin:${ZTST_testdir}/command.tmp tstcmd-arg"))))
|
||||
#t)))))
|
||||
(native-inputs `(("autoconf" ,autoconf)))
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
|
@ -360,7 +347,7 @@ as an interactive login shell and as a powerful command interpreter
|
|||
for shell scripting. Zsh can be thought of as an extended Bourne shell
|
||||
with a large number of improvements, including some features of bash,
|
||||
ksh, and tcsh.")
|
||||
(home-page "http://www.zsh.org/")
|
||||
(home-page "https://www.zsh.org/")
|
||||
|
||||
;; The whole thing is under an MIT/X11-style license, but there's one
|
||||
;; command, 'Completion/Unix/Command/_darcs', which is under GPLv2+.
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,6 +28,10 @@
|
|||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python))
|
||||
|
@ -158,3 +163,45 @@ fzy is designed to be used both as an editor plugin and on the command
|
|||
line. Rather than clearing the screen, fzy displays its interface directly
|
||||
below the current cursor position, scrolling the screen if necessary.")
|
||||
(license expat)))
|
||||
|
||||
(define-public hstr
|
||||
(package
|
||||
(name "hstr")
|
||||
(version "2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/dvorka/" name "/archive/"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yk2008bl48hv0v3c90ngq4y45h3nxif2ik6s3l7kag1zs5yv4wd"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'adjust-ncurses-includes
|
||||
(lambda* (#:key make-flags outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "src/include/hstr_curses.h"
|
||||
(("ncursesw\\/curses.h") "ncurses.h"))
|
||||
(substitute* "src/include/hstr.h"
|
||||
(("ncursesw\\/curses.h") "ncurses.h")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)
|
||||
("readline" ,readline)))
|
||||
(synopsis "Navigate and search command history with shell history suggest box")
|
||||
(description "HSTR (HiSToRy) is a command-line utility that brings
|
||||
improved Bash and Zsh command completion from the history. It aims to make
|
||||
completion easier and more efficient than with @kbd{Ctrl-R}. It allows you to
|
||||
easily view, navigate, and search your command history with suggestion boxes.
|
||||
HSTR can also manage your command history (for instance you can remove
|
||||
commands that are obsolete or contain a piece of sensitive information) or
|
||||
bookmark your favourite commands.")
|
||||
(home-page "http://me.mindforger.com/projects/hh.html")
|
||||
(license asl2.0)))
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
(define-module (gnu packages spice)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools) ; remove after updating usbredir to 0.7.1+
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages gl)
|
||||
|
@ -40,64 +39,33 @@
|
|||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download) ; remove after updating usbredir to 0.7.1+
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public usbredir
|
||||
(let ((commit "ac80a5971c6318d73d5fba4b5f13d3a9389558c9")
|
||||
(revision "1")) ;Guix package revision
|
||||
(package
|
||||
(name "usbredir")
|
||||
(version (string-append "0.7.1-" revision "."
|
||||
(string-take commit 7)))
|
||||
;(version "0.7.1")
|
||||
;(source (origin
|
||||
; (method url-fetch)
|
||||
; (uri (string-append
|
||||
; "http://spice-space.org/download/usbredir/"
|
||||
; "usbredir-" version ".tar.bz2"))
|
||||
; (sha256
|
||||
; (base32
|
||||
; "1wsnmk4wjpdhbn1zaxg6bmyxspcki2zgy0am9lk037rnl4krwzj0"))))
|
||||
; FIXME: usbredir 0.7.1 release doesn't build on 32 bit systems.
|
||||
; issue is fixed in HEAD
|
||||
; remove 'autogen phase and autoconf, automake, libtool inputs
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://anongit.freedesktop.org/git/spice/usbredir.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"052fywgi72j68dr5ybldncg4vk8iqfrh58la7iazyxxpph9aag1g"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libusb" ,libusb)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
;; Build without '-Werror', in particular to avoid errors due
|
||||
;; to the use of the deprecated 'libusb_set_debug' function.
|
||||
(substitute* "configure.ac"
|
||||
(("-Werror") ""))
|
||||
(zero? (system* "autoreconf" "-vfi")))))))
|
||||
(synopsis "Tools for sending USB device traffic over a network")
|
||||
(description "Usbredir is a network protocol for sending USB device traffic
|
||||
over a network connection. It can be used to redirect traffic from a USB device
|
||||
to a different (virtual) machine than the one to which the USB device is
|
||||
attached.")
|
||||
(home-page "https://www.spice-space.org")
|
||||
(license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+)))))
|
||||
(package
|
||||
(name "usbredir")
|
||||
(home-page "https://spice-space.org")
|
||||
(version "0.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/download/" name "/" name "-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"002yik1x7kn0427xahvnhjby2np14a6xqw7c3dx530n9h5d9rg47"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libusb" ,libusb)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(synopsis "Tools for sending USB device traffic over a network")
|
||||
(description
|
||||
"Usbredir is a network protocol for sending USB device traffic over a
|
||||
network connection. It can be used to redirect traffic from a USB device to a
|
||||
different (virtual) machine than the one to which the USB device is attached.")
|
||||
(license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+))))
|
||||
|
||||
(define-public virglrenderer
|
||||
(package
|
||||
|
@ -209,15 +177,15 @@ which allows users to view a desktop computing environment.")
|
|||
(define-public spice
|
||||
(package
|
||||
(name "spice")
|
||||
(version "0.14.0")
|
||||
(version "0.14.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.spice-space.org/download/releases/"
|
||||
"spice-" version ".tar.bz2"))
|
||||
"spice-server/spice-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j5q7cp5p95jk8fp48gz76rz96lifimdsx1wnpmfal0nnnar9nrs"))))
|
||||
"068mb9l7wzk4k4c65bzvpw5fyyzh81rb6z81skgdxvh67pk5vb8y"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("openssl" ,openssl)
|
||||
|
@ -234,12 +202,18 @@ which allows users to view a desktop computing environment.")
|
|||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python" ,python)
|
||||
("spice-gtk" ,spice-gtk)))
|
||||
("spice-gtk" ,spice-gtk)
|
||||
|
||||
;; These are needed for the server listen tests.
|
||||
("glib-networking" ,glib-networking)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("--disable-celt051" ; Disable support for unpackaged audio codec
|
||||
"--enable-lz4"
|
||||
"--enable-automated-tests")))
|
||||
'("--enable-lz4"
|
||||
"--enable-automated-tests")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'use-empty-ssl-cert-file
|
||||
(lambda _ (setenv "SSL_CERT_FILE" "/dev/null") #t)))))
|
||||
(synopsis "Server implementation of the SPICE protocol")
|
||||
(description "SPICE is a remote display system built for virtual
|
||||
environments which allows you to view a computing 'desktop' environment
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2018 Manuel Graf <graf@init.at>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -49,12 +50,14 @@
|
|||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
#:autoload (gnu packages protobuf) (protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
|
@ -682,3 +685,41 @@ which executes commands on multiple remote hosts in parallel. Pdsh implements
|
|||
dynamically loadable modules for extended functionality such as new remote
|
||||
shell services and remote host selection.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public clustershell
|
||||
(package
|
||||
(name "clustershell")
|
||||
(version "1.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/cea-hpc/clustershell/archive/v"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1qyf6zp5ikk8rk7zvx5ssbgr9si2bqv3a3415590kd07s7i16nmd"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("openssh" ,openssh)))
|
||||
(propagated-inputs `(("python-pyyaml" ,python-pyyaml)))
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'record-openssh-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((ssh (assoc-ref inputs "openssh")))
|
||||
(substitute* "lib/ClusterShell/Worker/Ssh.py"
|
||||
(("info\\(\"ssh_path\"\\) or \"ssh\"")
|
||||
(string-append "info(\"ssh_path\") or \""
|
||||
ssh "/bin/ssh\"")))
|
||||
#t))))))
|
||||
(home-page "https://cea-hpc.github.io/clustershell/")
|
||||
(synopsis "Scalable event-driven Python framework for cluster administration")
|
||||
(description
|
||||
"ClusterShell is an event-driven Python framework, designed to run local
|
||||
or distant commands in parallel on server farms or on large GNU/Linux
|
||||
clusters. It will take care of common issues encountered on HPC clusters,
|
||||
such as operating on groups of nodes, running distributed commands using
|
||||
optimized execution algorithms, as well as gathering results and merging
|
||||
identical outputs, or retrieving return codes. ClusterShell takes advantage
|
||||
of existing remote shell facilities such as SSH.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
|
|
@ -561,7 +561,7 @@ environment variable.")
|
|||
(define-public fortify-headers
|
||||
(package
|
||||
(name "fortify-headers")
|
||||
(version "0.9")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -569,15 +569,15 @@ environment variable.")
|
|||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z517ajy34l2k5lz2gvhbmia9xjgagffi4s22azqxnlmgb1g2xfg"))))
|
||||
"0nvplfg4y4a10x2j12qwmxzlk2q4j6287j0v5f9bfsdayb04qvh2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; No tests
|
||||
`(#:tests? #f ; no tests
|
||||
#:make-flags (list "CC=gcc"
|
||||
(string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)))) ; No configure script
|
||||
(delete 'configure)))) ; no configure script
|
||||
(home-page "https://git.2f30.org/fortify-headers/")
|
||||
(synopsis "Standalone fortify-source implementation")
|
||||
(description
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(define-public syncthing
|
||||
(package
|
||||
(name "syncthing")
|
||||
(version "0.14.49")
|
||||
(version "0.14.50")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/syncthing/syncthing"
|
||||
|
@ -38,7 +38,7 @@
|
|||
"/syncthing-source-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06mzzj5iwgqw3yva7azrsqs9zpl84srbamza4gm03grp7v9gf3sj"))
|
||||
"0yjj6zzivzw289bhwqjb4xcv8p39n5mcwwr5w6xf5ykzljc5pk55"))
|
||||
(modules '((guix build utils)))
|
||||
;; Delete bundled ("vendored") free software source code.
|
||||
(snippet '(begin
|
||||
|
@ -1063,8 +1063,8 @@ using sh's word-splitting rules.")
|
|||
(license expat))))
|
||||
|
||||
(define-public go-github-com-syncthing-notify
|
||||
(let ((commit "cdf89c4039d13726e227d0a472053ea19de021b4")
|
||||
(revision "1"))
|
||||
(let ((commit "b76b45868a77e7800dd06cce61101af9c4274bcc")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "go-github-com-syncthing-notify")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
|
@ -1076,7 +1076,7 @@ using sh's word-splitting rules.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ra1id9r06i4q8vhrrv1zpybhjxs3361rg35758dxglkyk4pzk6j"))))
|
||||
"1xxkzaxygxxr51i2kdxsdaqb5i95hqpkw4kcr75wmsp914slw2q9"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
'(#:import-path "github.com/syncthing/notify"))
|
||||
|
|
|
@ -102,7 +102,7 @@ based command language.")
|
|||
(define-public kakoune
|
||||
(package
|
||||
(name "kakoune")
|
||||
(version "2018.04.13")
|
||||
(version "2018.09.04")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -111,7 +111,7 @@ based command language.")
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kkzs5nrjxzd1jq7a4k7qfb5kg05871z0r3d9c0yhz9shf6wz36d"))))
|
||||
"1qbj2hmcfs6pr5lc78z9ni5zxdyp3mr64dvms4l52716ikqcjcbs"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
|
@ -147,7 +147,7 @@ commands are similar to Vi's ones, and it shares Vi's \"keystrokes as a text
|
|||
editing language\" model. Kakoune has a strong focus on interactivity, most
|
||||
commands provide immediate and incremental results, while still being
|
||||
competitive (as in keystroke count) with Vim.")
|
||||
(home-page "http://kakoune.org/")
|
||||
(home-page "https://kakoune.org/")
|
||||
(license license:unlicense)))
|
||||
|
||||
(define-public joe
|
||||
|
|
|
@ -47,21 +47,21 @@
|
|||
(define-public tor
|
||||
(package
|
||||
(name "tor")
|
||||
(version "0.3.3.9")
|
||||
(version "0.3.4.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.torproject.org/tor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vyf5z0dn5jghp2qjp076aq62lsz9g32qv9jiqf08skf096nnd45"))))
|
||||
"08qhzcmzxp5xr2l5721vagksqnnbrzzzy5hmz5y9r8lrq2r4qsl2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--enable-gcc-hardening"
|
||||
"--enable-linker-hardening")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python" ,python-2))) ; for tests
|
||||
("python" ,python-2))) ; for tests
|
||||
(inputs
|
||||
`(("zlib" ,zlib)
|
||||
("openssl" ,openssl)
|
||||
|
|
|
@ -146,14 +146,14 @@ as well as the classic centralized workflow.")
|
|||
(name "git")
|
||||
;; XXX When updating Git, check if the special 'git-source' input to cgit
|
||||
;; needs to be updated as well.
|
||||
(version "2.18.0")
|
||||
(version "2.19.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b"))))
|
||||
"1x1y5z3awabmfg7hk6zb331jxngad4nal4507v96bnf0izsyy3qq"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("native-perl" ,perl)
|
||||
|
@ -166,7 +166,7 @@ as well as the classic centralized workflow.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15k04s9pcc5wkmlfa8x99nbgczjbx0c91767ciqmjy9kwsavxqws"))))))
|
||||
"1jvxiqvp9q4is3np063ny7rnmk5hm36d34bhi3cgv89njqdh8laf"))))))
|
||||
(inputs
|
||||
`(("curl" ,curl)
|
||||
("expat" ,expat)
|
||||
|
@ -642,7 +642,14 @@ collaboration using typical untrusted file hosts or services.")
|
|||
("xz" ,xz)))
|
||||
(inputs
|
||||
`(;; Building cgit requires a Git source tree.
|
||||
("git-source" ,(package-source git))
|
||||
("git-source"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
;; XXX CGit is currently incompatible with Git > 2.18.
|
||||
(uri "mirror://kernel.org/software/scm/git/git-2.18.0.tar.xz")
|
||||
(sha256
|
||||
(base32
|
||||
"14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b"))))
|
||||
("openssl" ,openssl)
|
||||
("groff" ,groff)
|
||||
("python" ,python)
|
||||
|
|
|
@ -864,7 +864,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||
(define-public vlc
|
||||
(package
|
||||
(name "vlc")
|
||||
(version "3.0.3-1")
|
||||
(version "3.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -874,7 +874,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||
(patches (list %vlc-libx264-compat.patch))
|
||||
(sha256
|
||||
(base32
|
||||
"1p7qvdvg9w4lz8vckzhn6bswfkq3qw7fqkgvwjcskdgc266xx7dw"))))
|
||||
"17jsq0zqpqyxw4ckvjba0hf6zk8ywc4wf8sy3z03hh3ij0vxpwq1"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("flex" ,flex)
|
||||
|
@ -1203,7 +1203,7 @@ projects while introducing many more.")
|
|||
(define-public gnome-mpv
|
||||
(package
|
||||
(name "gnome-mpv")
|
||||
(version "0.14")
|
||||
(version "0.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1212,7 +1212,7 @@ projects while introducing many more.")
|
|||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03kjwd5jq0i5ajnvhjwf5019bjjaa16xkdrhdkiz1k58ipjvvj93"))))
|
||||
"1y47abkidxh1il0bvq8r3dglwn3ggsy41x2n7ic3x23wvvcqmq74"))))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
|
@ -1270,7 +1270,7 @@ access to mpv's powerful playback capabilities.")
|
|||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2018.08.04")
|
||||
(version "2018.09.08")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://yt-dl.org/downloads/"
|
||||
|
@ -1278,7 +1278,7 @@ access to mpv's powerful playback capabilities.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hcx99qbbyigc8k98c8bcc6a2wnhq6493fmrkl7rysc8krlxr0pm"))))
|
||||
"0vwc4faqdddrb3nm4fzmkr60n5rc2zwyy8jwrrjad60kcp8isf05"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; The problem here is that the directory for the man page and completion
|
||||
|
|
|
@ -889,7 +889,7 @@ used to validate and fix HTML data.")
|
|||
(define-public tinyproxy
|
||||
(package
|
||||
(name "tinyproxy")
|
||||
(version "1.8.4")
|
||||
(version "1.10.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/tinyproxy/tinyproxy/"
|
||||
|
@ -897,7 +897,7 @@ used to validate and fix HTML data.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"002hi97687czhfkwsjkr174yvlp10224qi6gd5s53z230bgls7x4"))))
|
||||
"10jnk6y2swld25mm47mjc0nkffyzsfysnsxwr7cs0ns1kil8ggjr"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -912,9 +912,6 @@ used to validate and fix HTML data.")
|
|||
;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
|
||||
;; (setenv "XML_DEBUG_CATALOG" "1")
|
||||
#t)))))
|
||||
;; All of the below are used to generate the documentation
|
||||
;; (Should they be propagated inputs of asciidoc ??)
|
||||
(native-inputs `(("asciidoc" ,asciidoc)))
|
||||
(home-page "https://tinyproxy.github.io/")
|
||||
(synopsis "Light-weight HTTP/HTTPS proxy daemon")
|
||||
(description "Tinyproxy is a light-weight HTTP/HTTPS proxy
|
||||
|
@ -6708,8 +6705,8 @@ compressed JSON header blocks.
|
|||
(license l:expat)))
|
||||
|
||||
(define-public hpcguix-web
|
||||
(let ((commit "9ff40fcc77f248901d861756dbbddc80270c380c")
|
||||
(revision "2"))
|
||||
(let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "hpcguix-web")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
|
@ -6721,7 +6718,7 @@ compressed JSON header blocks.
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lxcj9s3wxrv1l7lrxxx374jwzx7h60gxwkbgr46lzcbgvb3k26s"))))
|
||||
"1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
|
|
|
@ -848,7 +848,7 @@ Keybinder works with GTK-based applications using the X Window System.")
|
|||
(define-public spectrwm
|
||||
(package
|
||||
(name "spectrwm")
|
||||
(version "3.1.0")
|
||||
(version "3.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -859,7 +859,7 @@ Keybinder works with GTK-based applications using the X Window System.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"16lxcharxslf9rc39wxa3mr2nx5d8kzm9ls7p7dal8yrwr7y59dp"))))
|
||||
"0z7gjmp1x6y8q3dnw6swvbv8x2wd4ykzjvi3ibk2sxhgc910907v"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (let ((pkg-config (lambda (flag)
|
||||
|
@ -871,7 +871,7 @@ Keybinder works with GTK-based applications using the X Window System.")
|
|||
(string-append "PREFIX=" %output)
|
||||
(string-append "INCS=-I. " (pkg-config "--cflags"))
|
||||
(string-append "LIBS=" (pkg-config "--libs") " -lm")))
|
||||
#:tests? #f ;No test suite
|
||||
#:tests? #f ;no test suite
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'change-dir
|
||||
|
@ -881,13 +881,7 @@ Keybinder works with GTK-based applications using the X Window System.")
|
|||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("-g") ""))))
|
||||
(add-after 'change-dir 'fix-freetype-include
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("/usr/include/freetype2")
|
||||
(string-append (assoc-ref %build-inputs "freetype")
|
||||
"/include/freetype2")))))
|
||||
(delete 'configure)))) ;no 'configure' exists
|
||||
(delete 'configure)))) ;no 'configure' exists
|
||||
(inputs
|
||||
`(("freetype" ,freetype)
|
||||
("fontconfig" ,fontconfig)
|
||||
|
|
|
@ -20,19 +20,14 @@
|
|||
(define-module (gnu services admin)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services mcron)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services web)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix records)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (%default-rotations
|
||||
%rotated-files
|
||||
|
||||
|
@ -46,29 +41,7 @@
|
|||
rottlog-configuration
|
||||
rottlog-configuration?
|
||||
rottlog-service
|
||||
rottlog-service-type
|
||||
|
||||
<tailon-configuration-file>
|
||||
tailon-configuration-file
|
||||
tailon-configuration-file?
|
||||
tailon-configuration-file-files
|
||||
tailon-configuration-file-bind
|
||||
tailon-configuration-file-relative-root
|
||||
tailon-configuration-file-allow-transfers?
|
||||
tailon-configuration-file-follow-names?
|
||||
tailon-configuration-file-tail-lines
|
||||
tailon-configuration-file-allowed-commands
|
||||
tailon-configuration-file-debug?
|
||||
tailon-configuration-file-http-auth
|
||||
tailon-configuration-file-users
|
||||
|
||||
<tailon-configuration>
|
||||
tailon-configuration
|
||||
tailon-configuration?
|
||||
tailon-configuration-config-file
|
||||
tailon-configuration-package
|
||||
|
||||
tailon-service-type))
|
||||
rottlog-service-type))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -203,149 +176,4 @@ Old log files are removed or compressed according to the configuration.")
|
|||
rotations)))))
|
||||
(default-value (rottlog-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Tailon
|
||||
;;;
|
||||
|
||||
(define-record-type* <tailon-configuration-file>
|
||||
tailon-configuration-file make-tailon-configuration-file
|
||||
tailon-configuration-file?
|
||||
(files tailon-configuration-file-files
|
||||
(default '("/var/log")))
|
||||
(bind tailon-configuration-file-bind
|
||||
(default "localhost:8080"))
|
||||
(relative-root tailon-configuration-file-relative-root
|
||||
(default #f))
|
||||
(allow-transfers? tailon-configuration-file-allow-transfers?
|
||||
(default #t))
|
||||
(follow-names? tailon-configuration-file-follow-names?
|
||||
(default #t))
|
||||
(tail-lines tailon-configuration-file-tail-lines
|
||||
(default 200))
|
||||
(allowed-commands tailon-configuration-file-allowed-commands
|
||||
(default '("tail" "grep" "awk")))
|
||||
(debug? tailon-configuration-file-debug?
|
||||
(default #f))
|
||||
(wrap-lines tailon-configuration-file-wrap-lines
|
||||
(default #t))
|
||||
(http-auth tailon-configuration-file-http-auth
|
||||
(default #f))
|
||||
(users tailon-configuration-file-users
|
||||
(default #f)))
|
||||
|
||||
(define (tailon-configuration-files-string files)
|
||||
(string-append
|
||||
"\n"
|
||||
(string-join
|
||||
(map
|
||||
(lambda (x)
|
||||
(string-append
|
||||
" - "
|
||||
(cond
|
||||
((string? x)
|
||||
(simple-format #f "'~A'" x))
|
||||
((list? x)
|
||||
(string-join
|
||||
(cons (simple-format #f "'~A':" (car x))
|
||||
(map
|
||||
(lambda (x) (simple-format #f " - '~A'" x))
|
||||
(cdr x)))
|
||||
"\n"))
|
||||
(else (error x)))))
|
||||
files)
|
||||
"\n")))
|
||||
|
||||
(define-gexp-compiler (tailon-configuration-file-compiler
|
||||
(file <tailon-configuration-file>) system target)
|
||||
(match file
|
||||
(($ <tailon-configuration-file> files bind relative-root
|
||||
allow-transfers? follow-names?
|
||||
tail-lines allowed-commands debug?
|
||||
wrap-lines http-auth users)
|
||||
(text-file
|
||||
"tailon-config.yaml"
|
||||
(string-concatenate
|
||||
(filter-map
|
||||
(match-lambda
|
||||
((key . #f) #f)
|
||||
((key . value) (string-append key ": " value "\n")))
|
||||
|
||||
`(("files" . ,(tailon-configuration-files-string files))
|
||||
("bind" . ,bind)
|
||||
("relative-root" . ,relative-root)
|
||||
("allow-transfers" . ,(if allow-transfers? "true" "false"))
|
||||
("follow-names" . ,(if follow-names? "true" "false"))
|
||||
("tail-lines" . ,(number->string tail-lines))
|
||||
("commands" . ,(string-append "["
|
||||
(string-join allowed-commands ", ")
|
||||
"]"))
|
||||
("debug" . ,(if debug? "true" #f))
|
||||
("wrap-lines" . ,(if wrap-lines "true" "false"))
|
||||
("http-auth" . ,http-auth)
|
||||
("users" . ,(if users
|
||||
(string-concatenate
|
||||
(cons "\n"
|
||||
(map (match-lambda
|
||||
((user . pass)
|
||||
(string-append
|
||||
" " user ":" pass)))
|
||||
users)))
|
||||
#f)))))))))
|
||||
|
||||
(define-record-type* <tailon-configuration>
|
||||
tailon-configuration make-tailon-configuration
|
||||
tailon-configuration?
|
||||
(config-file tailon-configuration-config-file
|
||||
(default (tailon-configuration-file)))
|
||||
(package tailon-configuration-package
|
||||
(default tailon)))
|
||||
|
||||
(define tailon-shepherd-service
|
||||
(match-lambda
|
||||
(($ <tailon-configuration> config-file package)
|
||||
(list (shepherd-service
|
||||
(provision '(tailon))
|
||||
(documentation "Run the tailon daemon.")
|
||||
(start #~(make-forkexec-constructor
|
||||
`(,(string-append #$package "/bin/tailon")
|
||||
"-c" ,#$config-file)
|
||||
#:user "tailon"
|
||||
#:group "tailon"))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define %tailon-accounts
|
||||
(list (user-group (name "tailon") (system? #t))
|
||||
(user-account
|
||||
(name "tailon")
|
||||
(group "tailon")
|
||||
(system? #t)
|
||||
(comment "tailon")
|
||||
(home-directory "/var/empty")
|
||||
(shell (file-append shadow "/sbin/nologin")))))
|
||||
|
||||
(define tailon-service-type
|
||||
(service-type
|
||||
(name 'tailon)
|
||||
(description
|
||||
"Run Tailon, a Web application for monitoring, viewing, and searching log
|
||||
files.")
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
tailon-shepherd-service)
|
||||
(service-extension account-service-type
|
||||
(const %tailon-accounts))))
|
||||
(compose concatenate)
|
||||
(extend (lambda (parameter files)
|
||||
(tailon-configuration
|
||||
(inherit parameter)
|
||||
(config-file
|
||||
(let ((old-config-file
|
||||
(tailon-configuration-config-file parameter)))
|
||||
(tailon-configuration-file
|
||||
(inherit old-config-file)
|
||||
(files (append (tailon-configuration-file-files old-config-file)
|
||||
files))))))))
|
||||
(default-value (tailon-configuration))))
|
||||
|
||||
;;; admin.scm ends here
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
|
||||
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -26,15 +27,18 @@
|
|||
(define-module (gnu services web)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services admin)
|
||||
#:use-module (gnu system pam)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages php)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module ((guix store) #:select (text-file))
|
||||
#:use-module ((guix utils) #:select (version-major))
|
||||
#:use-module ((guix packages) #:select (package-version))
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -164,7 +168,29 @@
|
|||
|
||||
hpcguix-web-configuration
|
||||
hpcguix-web-configuration?
|
||||
hpcguix-web-service-type))
|
||||
hpcguix-web-service-type
|
||||
|
||||
<tailon-configuration-file>
|
||||
tailon-configuration-file
|
||||
tailon-configuration-file?
|
||||
tailon-configuration-file-files
|
||||
tailon-configuration-file-bind
|
||||
tailon-configuration-file-relative-root
|
||||
tailon-configuration-file-allow-transfers?
|
||||
tailon-configuration-file-follow-names?
|
||||
tailon-configuration-file-tail-lines
|
||||
tailon-configuration-file-allowed-commands
|
||||
tailon-configuration-file-debug?
|
||||
tailon-configuration-file-http-auth
|
||||
tailon-configuration-file-users
|
||||
|
||||
<tailon-configuration>
|
||||
tailon-configuration
|
||||
tailon-configuration?
|
||||
tailon-configuration-config-file
|
||||
tailon-configuration-package
|
||||
|
||||
tailon-service-type))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -949,6 +975,14 @@ a webserver.")
|
|||
(chown home-dir (passwd:uid user) (passwd:gid user))
|
||||
(chmod home-dir #o755))))
|
||||
|
||||
(define %hpcguix-web-log-file
|
||||
"/var/log/hpcguix-web.log")
|
||||
|
||||
(define %hpcguix-web-log-rotations
|
||||
(list (log-rotation
|
||||
(files (list %hpcguix-web-log-file))
|
||||
(frequency 'weekly))))
|
||||
|
||||
(define (hpcguix-web-shepherd-service config)
|
||||
(let ((specs (hpcguix-web-configuration-specs config))
|
||||
(hpcguix-web (hpcguix-web-package config)))
|
||||
|
@ -966,7 +1000,8 @@ a webserver.")
|
|||
#:group "hpcguix-web"
|
||||
#:environment-variables
|
||||
(list "XDG_CACHE_HOME=/var/cache"
|
||||
"SSL_CERT_DIR=/etc/ssl/certs")))
|
||||
"SSL_CERT_DIR=/etc/ssl/certs")
|
||||
#:log-file #$%hpcguix-web-log-file))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define hpcguix-web-service-type
|
||||
|
@ -978,5 +1013,152 @@ a webserver.")
|
|||
(const %hpcguix-web-accounts))
|
||||
(service-extension activation-service-type
|
||||
(const %hpcguix-web-activation))
|
||||
(service-extension rottlog-service-type
|
||||
(const %hpcguix-web-log-rotations))
|
||||
(service-extension shepherd-root-service-type
|
||||
(compose list hpcguix-web-shepherd-service))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Tailon
|
||||
;;;
|
||||
|
||||
(define-record-type* <tailon-configuration-file>
|
||||
tailon-configuration-file make-tailon-configuration-file
|
||||
tailon-configuration-file?
|
||||
(files tailon-configuration-file-files
|
||||
(default '("/var/log")))
|
||||
(bind tailon-configuration-file-bind
|
||||
(default "localhost:8080"))
|
||||
(relative-root tailon-configuration-file-relative-root
|
||||
(default #f))
|
||||
(allow-transfers? tailon-configuration-file-allow-transfers?
|
||||
(default #t))
|
||||
(follow-names? tailon-configuration-file-follow-names?
|
||||
(default #t))
|
||||
(tail-lines tailon-configuration-file-tail-lines
|
||||
(default 200))
|
||||
(allowed-commands tailon-configuration-file-allowed-commands
|
||||
(default '("tail" "grep" "awk")))
|
||||
(debug? tailon-configuration-file-debug?
|
||||
(default #f))
|
||||
(wrap-lines tailon-configuration-file-wrap-lines
|
||||
(default #t))
|
||||
(http-auth tailon-configuration-file-http-auth
|
||||
(default #f))
|
||||
(users tailon-configuration-file-users
|
||||
(default #f)))
|
||||
|
||||
(define (tailon-configuration-files-string files)
|
||||
(string-append
|
||||
"\n"
|
||||
(string-join
|
||||
(map
|
||||
(lambda (x)
|
||||
(string-append
|
||||
" - "
|
||||
(cond
|
||||
((string? x)
|
||||
(simple-format #f "'~A'" x))
|
||||
((list? x)
|
||||
(string-join
|
||||
(cons (simple-format #f "'~A':" (car x))
|
||||
(map
|
||||
(lambda (x) (simple-format #f " - '~A'" x))
|
||||
(cdr x)))
|
||||
"\n"))
|
||||
(else (error x)))))
|
||||
files)
|
||||
"\n")))
|
||||
|
||||
(define-gexp-compiler (tailon-configuration-file-compiler
|
||||
(file <tailon-configuration-file>) system target)
|
||||
(match file
|
||||
(($ <tailon-configuration-file> files bind relative-root
|
||||
allow-transfers? follow-names?
|
||||
tail-lines allowed-commands debug?
|
||||
wrap-lines http-auth users)
|
||||
(text-file
|
||||
"tailon-config.yaml"
|
||||
(string-concatenate
|
||||
(filter-map
|
||||
(match-lambda
|
||||
((key . #f) #f)
|
||||
((key . value) (string-append key ": " value "\n")))
|
||||
|
||||
`(("files" . ,(tailon-configuration-files-string files))
|
||||
("bind" . ,bind)
|
||||
("relative-root" . ,relative-root)
|
||||
("allow-transfers" . ,(if allow-transfers? "true" "false"))
|
||||
("follow-names" . ,(if follow-names? "true" "false"))
|
||||
("tail-lines" . ,(number->string tail-lines))
|
||||
("commands" . ,(string-append "["
|
||||
(string-join allowed-commands ", ")
|
||||
"]"))
|
||||
("debug" . ,(if debug? "true" #f))
|
||||
("wrap-lines" . ,(if wrap-lines "true" "false"))
|
||||
("http-auth" . ,http-auth)
|
||||
("users" . ,(if users
|
||||
(string-concatenate
|
||||
(cons "\n"
|
||||
(map (match-lambda
|
||||
((user . pass)
|
||||
(string-append
|
||||
" " user ":" pass)))
|
||||
users)))
|
||||
#f)))))))))
|
||||
|
||||
(define-record-type* <tailon-configuration>
|
||||
tailon-configuration make-tailon-configuration
|
||||
tailon-configuration?
|
||||
(config-file tailon-configuration-config-file
|
||||
(default (tailon-configuration-file)))
|
||||
(package tailon-configuration-package
|
||||
(default tailon)))
|
||||
|
||||
(define tailon-shepherd-service
|
||||
(match-lambda
|
||||
(($ <tailon-configuration> config-file package)
|
||||
(list (shepherd-service
|
||||
(provision '(tailon))
|
||||
(documentation "Run the tailon daemon.")
|
||||
(start #~(make-forkexec-constructor
|
||||
`(,(string-append #$package "/bin/tailon")
|
||||
"-c" ,#$config-file)
|
||||
#:user "tailon"
|
||||
#:group "tailon"))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define %tailon-accounts
|
||||
(list (user-group (name "tailon") (system? #t))
|
||||
(user-account
|
||||
(name "tailon")
|
||||
(group "tailon")
|
||||
(system? #t)
|
||||
(comment "tailon")
|
||||
(home-directory "/var/empty")
|
||||
(shell (file-append shadow "/sbin/nologin")))))
|
||||
|
||||
(define tailon-service-type
|
||||
(service-type
|
||||
(name 'tailon)
|
||||
(description
|
||||
"Run Tailon, a Web application for monitoring, viewing, and searching log
|
||||
files.")
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
tailon-shepherd-service)
|
||||
(service-extension account-service-type
|
||||
(const %tailon-accounts))))
|
||||
(compose concatenate)
|
||||
(extend (lambda (parameter files)
|
||||
(tailon-configuration
|
||||
(inherit parameter)
|
||||
(config-file
|
||||
(let ((old-config-file
|
||||
(tailon-configuration-config-file parameter)))
|
||||
(tailon-configuration-file
|
||||
(inherit old-config-file)
|
||||
(files (append (tailon-configuration-file-files old-config-file)
|
||||
files))))))))
|
||||
(default-value (tailon-configuration))))
|
||||
|
|
|
@ -1,127 +0,0 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; 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 (gnu tests admin)
|
||||
#:use-module (gnu tests)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu system vm)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services admin)
|
||||
#:use-module (gnu services networking)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix monads)
|
||||
#:export (%test-tailon))
|
||||
|
||||
(define %tailon-os
|
||||
;; Operating system under test.
|
||||
(simple-operating-system
|
||||
(dhcp-client-service)
|
||||
(service tailon-service-type
|
||||
(tailon-configuration
|
||||
(config-file
|
||||
(tailon-configuration-file
|
||||
(bind "0.0.0.0:8080")))))))
|
||||
|
||||
(define* (run-tailon-test #:optional (http-port 8081))
|
||||
"Run tests in %TAILON-OS, which has tailon running and listening on
|
||||
HTTP-PORT."
|
||||
(define os
|
||||
(marionette-operating-system
|
||||
%tailon-os
|
||||
#:imported-modules '((gnu services herd)
|
||||
(guix combinators))))
|
||||
|
||||
(define vm
|
||||
(virtual-machine
|
||||
(operating-system os)
|
||||
(port-forwardings `((,http-port . 8080)))))
|
||||
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette))
|
||||
#~(begin
|
||||
(use-modules (srfi srfi-11) (srfi srfi-64)
|
||||
(ice-9 match)
|
||||
(gnu build marionette)
|
||||
(web uri)
|
||||
(web client)
|
||||
(web response))
|
||||
|
||||
(define marionette
|
||||
;; Forward the guest's HTTP-PORT, where tailon is listening, to
|
||||
;; port 8080 in the host.
|
||||
(make-marionette (list #$vm)))
|
||||
|
||||
(mkdir #$output)
|
||||
(chdir #$output)
|
||||
|
||||
(test-begin "tailon")
|
||||
|
||||
(test-assert "service running"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu services herd))
|
||||
(start-service 'tailon))
|
||||
marionette))
|
||||
|
||||
(define* (retry-on-error f #:key times delay)
|
||||
(let loop ((attempt 1))
|
||||
(match (catch
|
||||
#t
|
||||
(lambda ()
|
||||
(cons #t
|
||||
(f)))
|
||||
(lambda args
|
||||
(cons #f
|
||||
args)))
|
||||
((#t . return-value)
|
||||
return-value)
|
||||
((#f . error-args)
|
||||
(if (>= attempt times)
|
||||
error-args
|
||||
(begin
|
||||
(sleep delay)
|
||||
(loop (+ 1 attempt))))))))
|
||||
|
||||
(test-equal "http-get"
|
||||
200
|
||||
(retry-on-error
|
||||
(lambda ()
|
||||
(let-values (((response text)
|
||||
(http-get #$(format
|
||||
#f
|
||||
"http://localhost:~A/"
|
||||
http-port)
|
||||
#:decode-body? #t)))
|
||||
(response-code response)))
|
||||
#:times 10
|
||||
#:delay 5))
|
||||
|
||||
(test-end)
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
||||
(gexp->derivation "tailon-test" test))
|
||||
|
||||
(define %test-tailon
|
||||
(system-test
|
||||
(name "tailon")
|
||||
(description "Connect to a running Tailon server.")
|
||||
(value (run-tailon-test))))
|
|
@ -33,7 +33,8 @@
|
|||
#:export (%test-httpd
|
||||
%test-nginx
|
||||
%test-php-fpm
|
||||
%test-hpcguix-web))
|
||||
%test-hpcguix-web
|
||||
%test-tailon))
|
||||
|
||||
(define %index.html-contents
|
||||
;; Contents of the /index.html file.
|
||||
|
@ -359,3 +360,99 @@ HTTP-PORT, along with php-fpm."
|
|||
(name "hpcguix-web")
|
||||
(description "Connect to a running hpcguix-web server.")
|
||||
(value (run-hpcguix-web-server-test name %hpcguix-web-os))))
|
||||
|
||||
|
||||
(define %tailon-os
|
||||
;; Operating system under test.
|
||||
(simple-operating-system
|
||||
(dhcp-client-service)
|
||||
(service tailon-service-type
|
||||
(tailon-configuration
|
||||
(config-file
|
||||
(tailon-configuration-file
|
||||
(bind "0.0.0.0:8080")))))))
|
||||
|
||||
(define* (run-tailon-test #:optional (http-port 8081))
|
||||
"Run tests in %TAILON-OS, which has tailon running and listening on
|
||||
HTTP-PORT."
|
||||
(define os
|
||||
(marionette-operating-system
|
||||
%tailon-os
|
||||
#:imported-modules '((gnu services herd)
|
||||
(guix combinators))))
|
||||
|
||||
(define vm
|
||||
(virtual-machine
|
||||
(operating-system os)
|
||||
(port-forwardings `((,http-port . 8080)))))
|
||||
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette))
|
||||
#~(begin
|
||||
(use-modules (srfi srfi-11) (srfi srfi-64)
|
||||
(ice-9 match)
|
||||
(gnu build marionette)
|
||||
(web uri)
|
||||
(web client)
|
||||
(web response))
|
||||
|
||||
(define marionette
|
||||
;; Forward the guest's HTTP-PORT, where tailon is listening, to
|
||||
;; port 8080 in the host.
|
||||
(make-marionette (list #$vm)))
|
||||
|
||||
(mkdir #$output)
|
||||
(chdir #$output)
|
||||
|
||||
(test-begin "tailon")
|
||||
|
||||
(test-assert "service running"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu services herd))
|
||||
(start-service 'tailon))
|
||||
marionette))
|
||||
|
||||
(define* (retry-on-error f #:key times delay)
|
||||
(let loop ((attempt 1))
|
||||
(match (catch
|
||||
#t
|
||||
(lambda ()
|
||||
(cons #t
|
||||
(f)))
|
||||
(lambda args
|
||||
(cons #f
|
||||
args)))
|
||||
((#t . return-value)
|
||||
return-value)
|
||||
((#f . error-args)
|
||||
(if (>= attempt times)
|
||||
error-args
|
||||
(begin
|
||||
(sleep delay)
|
||||
(loop (+ 1 attempt))))))))
|
||||
|
||||
(test-equal "http-get"
|
||||
200
|
||||
(retry-on-error
|
||||
(lambda ()
|
||||
(let-values (((response text)
|
||||
(http-get #$(format
|
||||
#f
|
||||
"http://localhost:~A/"
|
||||
http-port)
|
||||
#:decode-body? #t)))
|
||||
(response-code response)))
|
||||
#:times 10
|
||||
#:delay 5))
|
||||
|
||||
(test-end)
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
||||
(gexp->derivation "tailon-test" test))
|
||||
|
||||
(define %test-tailon
|
||||
(system-test
|
||||
(name "tailon")
|
||||
(description "Connect to a running Tailon server.")
|
||||
(value (run-tailon-test))))
|
||||
|
|
|
@ -35,13 +35,13 @@
|
|||
(define (default-ldc)
|
||||
"Return the default ldc package."
|
||||
;; Lazily resolve the binding to avoid a circular dependency.
|
||||
(let ((ldc (resolve-interface '(gnu packages ldc))))
|
||||
(let ((ldc (resolve-interface '(gnu packages dlang))))
|
||||
(module-ref ldc 'ldc)))
|
||||
|
||||
(define (default-dub)
|
||||
"Return the default dub package."
|
||||
;; Lazily resolve the binding to avoid a circular dependency.
|
||||
(let ((ldc (resolve-interface '(gnu packages ldc))))
|
||||
(let ((ldc (resolve-interface '(gnu packages dlang))))
|
||||
(module-ref ldc 'dub)))
|
||||
|
||||
(define (default-pkg-config)
|
||||
|
|
|
@ -94,12 +94,20 @@ definitions for all the SEARCH-PATHS."
|
|||
(for-each (write-environment-variable-definition port)
|
||||
(map (abstract-profile output) variables))))))
|
||||
|
||||
(define (ensure-writable-directory directory)
|
||||
(define* (ensure-writable-directory directory
|
||||
#:key (symlink symlink))
|
||||
"Ensure DIRECTORY exists and is writable. If DIRECTORY is currently a
|
||||
symlink (to a read-only directory in the store), then delete the symlink and
|
||||
instead make DIRECTORY a \"real\" directory containing symlinks."
|
||||
(define (absolute? file)
|
||||
(string-prefix? "/" file))
|
||||
|
||||
(define (unsymlink link)
|
||||
(let* ((target (readlink link))
|
||||
(let* ((target (match (readlink link)
|
||||
((? absolute? target)
|
||||
target)
|
||||
((? string? relative)
|
||||
(string-append (dirname link) "/" relative))))
|
||||
;; TARGET might itself be a symlink, so append "/" to make sure
|
||||
;; 'scandir' enters it.
|
||||
(files (scandir (string-append target "/")
|
||||
|
@ -149,7 +157,8 @@ SEARCH-PATHS."
|
|||
;; Make sure we can write to 'OUTPUT/etc'. 'union-build' above could have
|
||||
;; made 'etc' a symlink to a read-only sub-directory in the store so we need
|
||||
;; to work around that.
|
||||
(ensure-writable-directory (string-append output "/etc"))
|
||||
(ensure-writable-directory (string-append output "/etc")
|
||||
#:symlink symlink)
|
||||
|
||||
;; Write 'OUTPUT/etc/profile'.
|
||||
(build-etc/profile output search-paths))
|
||||
|
|
|
@ -385,8 +385,8 @@ the returned procedure is called."
|
|||
#:return-errno? #t)))
|
||||
(lambda args
|
||||
(lambda _
|
||||
(error (format #f "~a: syscall->procedure failed: ~s"
|
||||
name args))))))
|
||||
(throw 'system-error name "~A" (list (strerror ENOSYS))
|
||||
(list ENOSYS))))))
|
||||
|
||||
(define-syntax define-as-needed
|
||||
(syntax-rules ()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
||||
;;;
|
||||
|
@ -19,7 +19,6 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix git-download)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix monads)
|
||||
|
@ -27,9 +26,8 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix modules)
|
||||
#:autoload (guix build-system gnu) (standard-packages)
|
||||
#:use-module (git)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (git-reference
|
||||
|
@ -153,41 +151,31 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
|||
;;; 'git-predicate'.
|
||||
;;;
|
||||
|
||||
(define (files->directory-tree files)
|
||||
"Return a tree of vhashes representing the directory listed in FILES, a list
|
||||
like '(\"a/b\" \"b/c/d\")."
|
||||
(fold (lambda (file result)
|
||||
(let loop ((file (string-split file #\/))
|
||||
(result result))
|
||||
(match file
|
||||
((_)
|
||||
result)
|
||||
((directory children ...)
|
||||
(match (vhash-assoc directory result)
|
||||
(#f
|
||||
(vhash-cons directory (loop children vlist-null)
|
||||
result))
|
||||
((_ . previous)
|
||||
;; XXX: 'vhash-delete' is O(n).
|
||||
(vhash-cons directory (loop children previous)
|
||||
(vhash-delete directory result)))))
|
||||
(()
|
||||
result))))
|
||||
vlist-null
|
||||
files))
|
||||
|
||||
(define (directory-in-tree? tree directory)
|
||||
"Return true if DIRECTORY, a string like \"a/b\", denotes a directory listed
|
||||
in TREE."
|
||||
(let loop ((directory (string-split directory #\/))
|
||||
(tree tree))
|
||||
(match directory
|
||||
(()
|
||||
#t)
|
||||
((head . tail)
|
||||
(match (vhash-assoc head tree)
|
||||
((_ . sub-tree) (loop tail sub-tree))
|
||||
(#f #f))))))
|
||||
(define (git-file-list directory)
|
||||
"Return the list of files checked in in the Git repository at DIRECTORY.
|
||||
The result is similar to that of the 'git ls-files' command, except that it
|
||||
also includes directories, not just regular files. The returned file names
|
||||
are relative to DIRECTORY, which is not necessarily the root of the checkout."
|
||||
(let* ((directory (canonicalize-path directory))
|
||||
(dot-git (repository-discover directory))
|
||||
(top (dirname dot-git))
|
||||
(repository (repository-open dot-git))
|
||||
(head (repository-head repository))
|
||||
(oid (reference-target head))
|
||||
(commit (commit-lookup repository oid))
|
||||
(tree (commit-tree commit))
|
||||
(files (tree-list tree)))
|
||||
(repository-close! repository)
|
||||
(if (string=? top directory)
|
||||
files
|
||||
(let ((relative (string-append
|
||||
(string-drop directory
|
||||
(+ 1 (string-length top)))
|
||||
"/")))
|
||||
(filter-map (lambda (file)
|
||||
(and (string-prefix? relative file)
|
||||
(string-drop file (string-length relative))))
|
||||
files)))))
|
||||
|
||||
(define (git-predicate directory)
|
||||
"Return a predicate that returns true if a file is part of the Git checkout
|
||||
|
@ -195,43 +183,20 @@ living at DIRECTORY. Upon Git failure, return #f instead of a predicate.
|
|||
|
||||
The returned predicate takes two arguments FILE and STAT where FILE is an
|
||||
absolute file name and STAT is the result of 'lstat'."
|
||||
(let* ((pipe (with-directory-excursion directory
|
||||
(open-pipe* OPEN_READ "git" "ls-files")))
|
||||
(files (let loop ((lines '()))
|
||||
(match (read-line pipe)
|
||||
((? eof-object?)
|
||||
(reverse lines))
|
||||
(line
|
||||
(loop (cons line lines))))))
|
||||
(directory-tree (files->directory-tree files))
|
||||
(inodes (fold (lambda (file result)
|
||||
(let ((stat
|
||||
(lstat (string-append directory "/"
|
||||
file))))
|
||||
(vhash-consv (stat:ino stat) (stat:dev stat)
|
||||
result)))
|
||||
vlist-null
|
||||
files))
|
||||
|
||||
;; Note: For this to work we must *not* call 'canonicalize-path' on
|
||||
;; DIRECTORY or we would get discrepancies of the returned lambda is
|
||||
;; called with a non-canonical file name.
|
||||
(prefix-length (+ 1 (string-length directory)))
|
||||
|
||||
(status (close-pipe pipe)))
|
||||
(and (zero? status)
|
||||
(lambda (file stat)
|
||||
(match (stat:type stat)
|
||||
('directory
|
||||
(directory-in-tree? directory-tree
|
||||
(string-drop file prefix-length)))
|
||||
((or 'regular 'symlink)
|
||||
;; Comparing file names is always tricky business so we rely on
|
||||
;; inode numbers instead
|
||||
(match (vhash-assv (stat:ino stat) inodes)
|
||||
((_ . dev) (= dev (stat:dev stat)))
|
||||
(#f #f)))
|
||||
(_
|
||||
#f))))))
|
||||
(let* ((files (git-file-list directory))
|
||||
(inodes (fold (lambda (file result)
|
||||
(let ((stat
|
||||
(lstat (string-append directory "/"
|
||||
file))))
|
||||
(vhash-consv (stat:ino stat) (stat:dev stat)
|
||||
result)))
|
||||
vlist-null
|
||||
files)))
|
||||
(lambda (file stat)
|
||||
;; Comparing file names is always tricky business so we rely on inode
|
||||
;; numbers instead.
|
||||
(match (vhash-assv (stat:ino stat) inodes)
|
||||
((_ . dev) (= dev (stat:dev stat)))
|
||||
(#f #f)))))
|
||||
|
||||
;;; git-download.scm ends here
|
||||
|
|
|
@ -733,9 +733,11 @@ needed."
|
|||
;; Set the build options before we do anything else.
|
||||
(set-build-options-from-command-line store opts)
|
||||
|
||||
(parameterize ((current-build-output-port (if quiet?
|
||||
(%make-void-port "w")
|
||||
(build-output-port #:verbose? #t))))
|
||||
(parameterize ((current-build-output-port
|
||||
(if quiet?
|
||||
(%make-void-port "w")
|
||||
(build-output-port #:verbose? #t
|
||||
#:port (duplicate-port (current-error-port) "w")))))
|
||||
(let* ((mode (assoc-ref opts 'build-mode))
|
||||
(drv (options->derivations store opts))
|
||||
(urls (map (cut string-append <> "/log")
|
||||
|
|
|
@ -950,5 +950,6 @@ processed, #f otherwise."
|
|||
%bootstrap-guile
|
||||
(canonical-package guile-2.2))))
|
||||
(current-build-output-port
|
||||
(build-output-port #:verbose? verbose?)))
|
||||
(build-output-port #:verbose? verbose?
|
||||
#:port (duplicate-port (current-error-port) "w"))))
|
||||
(process-actions (%store) opts))))))
|
||||
|
|
|
@ -1087,7 +1087,10 @@ default value."
|
|||
(#f #f)
|
||||
(locale (false-if-exception (setlocale LC_ALL locale))))
|
||||
|
||||
(set-thread-name "guix substitute")
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(set-thread-name "guix substitute"))
|
||||
(const #t)) ;GNU/Hurd lacks 'prctl'
|
||||
|
||||
(with-networking
|
||||
(with-error-handling ; for signature errors
|
||||
|
|
26
guix/ui.scm
26
guix/ui.scm
|
@ -1708,12 +1708,26 @@ phase announcements and replaces any other output with a spinner."
|
|||
(string-append
|
||||
(proc "Building " 'BLUE 'BOLD)
|
||||
(match:substring m 2) "\n")))
|
||||
("^(@ build-failed) (.*) (.*)"
|
||||
#:transform
|
||||
,(lambda (m)
|
||||
(string-append
|
||||
(proc "Build failed: " 'RED 'BOLD)
|
||||
(match:substring m 2) "\n")))
|
||||
,(if verbose?
|
||||
;; Err on the side of caution: show everything, even
|
||||
;; if it might be redundant.
|
||||
`("^(@ build-failed)(.+)"
|
||||
#:transform
|
||||
,(lambda (m)
|
||||
(string-append
|
||||
(proc "Build failed: " 'RED 'BOLD)
|
||||
(match:substring m 2))))
|
||||
;; Show only that the build failed.
|
||||
`("^(@ build-failed)(.+) -.*"
|
||||
#:transform
|
||||
,(lambda (m)
|
||||
(string-append
|
||||
(proc "Build failed: " 'RED 'BOLD)
|
||||
(match:substring m 2)
|
||||
"\n"))))
|
||||
;; NOTE: this line contains "\n" characters.
|
||||
("^(sha256 hash mismatch for output path)(.*)"
|
||||
RED BLACK)
|
||||
("^(@ build-succeeded) (.*) (.*)"
|
||||
#:transform
|
||||
,(lambda (m)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
(define-module (test-profiles)
|
||||
#:use-module (guix tests)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix grafts)
|
||||
|
@ -543,6 +544,41 @@
|
|||
get-string-all)
|
||||
"foo!"))))))
|
||||
|
||||
(test-assertm "profile-derivation when etc/ is a relative symlink"
|
||||
;; See <https://bugs.gnu.org/32686>.
|
||||
(mlet* %store-monad
|
||||
((etc (gexp->derivation
|
||||
"etc"
|
||||
#~(begin
|
||||
(mkdir #$output)
|
||||
(call-with-output-file (string-append #$output "/foo")
|
||||
(lambda (port)
|
||||
(display "Heya!" port))))))
|
||||
(thing -> (dummy-package "dummy"
|
||||
(build-system trivial-build-system)
|
||||
(inputs
|
||||
`(("etc" ,etc)))
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(etc (assoc-ref %build-inputs "etc")))
|
||||
(mkdir out)
|
||||
(symlink etc (string-append out "/etc"))
|
||||
#t)))))
|
||||
(entry -> (package->manifest-entry thing))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:relative-symlinks? #t
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(profile -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
(return (string=? (call-with-input-file
|
||||
(string-append profile "/etc/foo")
|
||||
get-string-all)
|
||||
"Heya!")))))
|
||||
|
||||
(test-equalm "union vs. dangling symlink" ;<https://bugs.gnu.org/26949>
|
||||
"does-not-exist"
|
||||
(mlet* %store-monad
|
||||
|
|
Reference in New Issue