Merge branch 'master' into core-updates
This commit is contained in:
commit
6a2e54236e
121
Makefile.am
121
Makefile.am
|
@ -249,6 +249,7 @@ MODULES = \
|
||||||
guix/scripts/describe.scm \
|
guix/scripts/describe.scm \
|
||||||
guix/scripts/system.scm \
|
guix/scripts/system.scm \
|
||||||
guix/scripts/system/search.scm \
|
guix/scripts/system/search.scm \
|
||||||
|
guix/scripts/system/reconfigure.scm \
|
||||||
guix/scripts/lint.scm \
|
guix/scripts/lint.scm \
|
||||||
guix/scripts/challenge.scm \
|
guix/scripts/challenge.scm \
|
||||||
guix/scripts/import/crate.scm \
|
guix/scripts/import/crate.scm \
|
||||||
|
@ -361,77 +362,77 @@ TEST_EXTENSIONS = .scm .sh
|
||||||
if CAN_RUN_TESTS
|
if CAN_RUN_TESTS
|
||||||
|
|
||||||
SCM_TESTS = \
|
SCM_TESTS = \
|
||||||
|
tests/accounts.scm \
|
||||||
tests/base16.scm \
|
tests/base16.scm \
|
||||||
tests/base32.scm \
|
tests/base32.scm \
|
||||||
tests/base64.scm \
|
tests/base64.scm \
|
||||||
|
tests/bournish.scm \
|
||||||
|
tests/builders.scm \
|
||||||
|
tests/build-utils.scm \
|
||||||
|
tests/cache.scm \
|
||||||
|
tests/challenge.scm \
|
||||||
tests/channels.scm \
|
tests/channels.scm \
|
||||||
|
tests/combinators.scm \
|
||||||
|
tests/containers.scm \
|
||||||
tests/cpan.scm \
|
tests/cpan.scm \
|
||||||
tests/cpio.scm \
|
tests/cpio.scm \
|
||||||
tests/crate.scm \
|
|
||||||
tests/gem.scm \
|
|
||||||
tests/pki.scm \
|
|
||||||
tests/print.scm \
|
|
||||||
tests/sets.scm \
|
|
||||||
tests/modules.scm \
|
|
||||||
tests/gnu-maintenance.scm \
|
|
||||||
tests/substitute.scm \
|
|
||||||
tests/swh.scm \
|
|
||||||
tests/builders.scm \
|
|
||||||
tests/derivations.scm \
|
|
||||||
tests/glob.scm \
|
|
||||||
tests/grafts.scm \
|
|
||||||
tests/ui.scm \
|
|
||||||
tests/status.scm \
|
|
||||||
tests/records.scm \
|
|
||||||
tests/processes.scm \
|
|
||||||
tests/upstream.scm \
|
|
||||||
tests/combinators.scm \
|
|
||||||
tests/discovery.scm \
|
|
||||||
tests/utils.scm \
|
|
||||||
tests/build-utils.scm \
|
|
||||||
tests/packages.scm \
|
|
||||||
tests/snix.scm \
|
|
||||||
tests/hackage.scm \
|
|
||||||
tests/cran.scm \
|
tests/cran.scm \
|
||||||
tests/elpa.scm \
|
tests/crate.scm \
|
||||||
tests/texlive.scm \
|
tests/cve.scm \
|
||||||
tests/store.scm \
|
|
||||||
tests/monads.scm \
|
|
||||||
tests/gexp.scm \
|
|
||||||
tests/nar.scm \
|
|
||||||
tests/union.scm \
|
|
||||||
tests/profiles.scm \
|
|
||||||
tests/search-paths.scm \
|
|
||||||
tests/syscalls.scm \
|
|
||||||
tests/inferior.scm \
|
|
||||||
tests/gremlin.scm \
|
|
||||||
tests/debug-link.scm \
|
tests/debug-link.scm \
|
||||||
tests/bournish.scm \
|
tests/derivations.scm \
|
||||||
tests/lint.scm \
|
tests/discovery.scm \
|
||||||
tests/publish.scm \
|
tests/elpa.scm \
|
||||||
tests/scripts.scm \
|
|
||||||
tests/size.scm \
|
|
||||||
tests/graph.scm \
|
|
||||||
tests/challenge.scm \
|
|
||||||
tests/cache.scm \
|
|
||||||
tests/cve.scm \
|
|
||||||
tests/workers.scm \
|
|
||||||
tests/zlib.scm \
|
|
||||||
tests/lzlib.scm \
|
|
||||||
tests/file-systems.scm \
|
tests/file-systems.scm \
|
||||||
tests/uuid.scm \
|
tests/gem.scm \
|
||||||
tests/system.scm \
|
tests/gexp.scm \
|
||||||
tests/accounts.scm \
|
tests/glob.scm \
|
||||||
tests/services.scm \
|
tests/gnu-maintenance.scm \
|
||||||
tests/scripts-build.scm \
|
tests/grafts.scm \
|
||||||
tests/containers.scm \
|
tests/graph.scm \
|
||||||
tests/opam.scm \
|
tests/gremlin.scm \
|
||||||
tests/pack.scm \
|
tests/hackage.scm \
|
||||||
tests/pypi.scm \
|
|
||||||
tests/import-utils.scm \
|
tests/import-utils.scm \
|
||||||
|
tests/inferior.scm \
|
||||||
|
tests/lint.scm \
|
||||||
|
tests/lzlib.scm \
|
||||||
|
tests/modules.scm \
|
||||||
|
tests/monads.scm \
|
||||||
|
tests/nar.scm \
|
||||||
|
tests/opam.scm \
|
||||||
|
tests/packages.scm \
|
||||||
|
tests/pack.scm \
|
||||||
|
tests/pki.scm \
|
||||||
|
tests/print.scm \
|
||||||
|
tests/processes.scm \
|
||||||
|
tests/profiles.scm \
|
||||||
|
tests/publish.scm \
|
||||||
|
tests/pypi.scm \
|
||||||
|
tests/records.scm \
|
||||||
|
tests/scripts.scm \
|
||||||
|
tests/scripts-build.scm \
|
||||||
|
tests/search-paths.scm \
|
||||||
|
tests/services.scm \
|
||||||
|
tests/sets.scm \
|
||||||
|
tests/size.scm \
|
||||||
|
tests/snix.scm \
|
||||||
|
tests/status.scm \
|
||||||
tests/store-database.scm \
|
tests/store-database.scm \
|
||||||
tests/store-deduplication.scm \
|
tests/store-deduplication.scm \
|
||||||
tests/store-roots.scm
|
tests/store-roots.scm \
|
||||||
|
tests/store.scm \
|
||||||
|
tests/substitute.scm \
|
||||||
|
tests/swh.scm \
|
||||||
|
tests/syscalls.scm \
|
||||||
|
tests/system.scm \
|
||||||
|
tests/texlive.scm \
|
||||||
|
tests/ui.scm \
|
||||||
|
tests/union.scm \
|
||||||
|
tests/upstream.scm \
|
||||||
|
tests/utils.scm \
|
||||||
|
tests/uuid.scm \
|
||||||
|
tests/workers.scm \
|
||||||
|
tests/zlib.scm
|
||||||
|
|
||||||
SH_TESTS = \
|
SH_TESTS = \
|
||||||
tests/guix-build.sh \
|
tests/guix-build.sh \
|
||||||
|
|
|
@ -119,8 +119,8 @@ if test "x$have_guile_git" != "xyes"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Check for Guile-JSON.
|
dnl Check for Guile-JSON.
|
||||||
GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
|
GUIX_CHECK_GUILE_JSON
|
||||||
if test "x$have_guile_json" != "xyes"; then
|
if test "x$guix_cv_have_recent_guile_json" != "xyes"; then
|
||||||
AC_MSG_ERROR([Guile-JSON is missing; please install it.])
|
AC_MSG_ERROR([Guile-JSON is missing; please install it.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*
|
||||||
Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*
|
Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*
|
||||||
Copyright @copyright{} 2014 Pierre-Antoine Rault@*
|
Copyright @copyright{} 2014 Pierre-Antoine Rault@*
|
||||||
Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
|
Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
|
||||||
Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@*
|
Copyright @copyright{} 2015, 2016, 2017, 2019 Leo Famulari@*
|
||||||
Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@*
|
Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@*
|
||||||
Copyright @copyright{} 2016 Ben Woodcroft@*
|
Copyright @copyright{} 2016 Ben Woodcroft@*
|
||||||
Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*
|
Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*
|
||||||
|
@ -564,6 +564,10 @@ $ wget @value{OPENPGP-SIGNING-KEY-URL} \
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
and rerun the @code{gpg --verify} command.
|
and rerun the @code{gpg --verify} command.
|
||||||
|
|
||||||
|
Take note that a warning like ``This key is not certified with a trusted
|
||||||
|
signature!'' is normal.
|
||||||
|
|
||||||
@c end authentication part
|
@c end authentication part
|
||||||
|
|
||||||
@item
|
@item
|
||||||
|
@ -746,7 +750,7 @@ or later;
|
||||||
@c FIXME: Specify a version number once a release has been made.
|
@c FIXME: Specify a version number once a release has been made.
|
||||||
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
|
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
|
||||||
2017 or later;
|
2017 or later;
|
||||||
@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};
|
@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;
|
||||||
@item @url{https://zlib.net, zlib};
|
@item @url{https://zlib.net, zlib};
|
||||||
@item @url{https://www.gnu.org/software/make/, GNU Make}.
|
@item @url{https://www.gnu.org/software/make/, GNU Make}.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
@ -1911,6 +1915,10 @@ $ wget @value{OPENPGP-SIGNING-KEY-URL} \
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
and rerun the @code{gpg --verify} command.
|
and rerun the @code{gpg --verify} command.
|
||||||
|
|
||||||
|
Take note that a warning like ``This key is not certified with a trusted
|
||||||
|
signature!'' is normal.
|
||||||
|
|
||||||
@c end duplication
|
@c end duplication
|
||||||
|
|
||||||
This image contains the tools necessary for an installation.
|
This image contains the tools necessary for an installation.
|
||||||
|
@ -7431,7 +7439,8 @@ This is the declarative counterpart of @code{gexp->derivation}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Monadic Procedure} gexp->script @var{name} @var{exp} @
|
@deffn {Monadic Procedure} gexp->script @var{name} @var{exp} @
|
||||||
[#:guile (default-guile)] [#:module-path %load-path]
|
[#:guile (default-guile)] [#:module-path %load-path] @
|
||||||
|
[#:system (%current-system)] [#:target #f]
|
||||||
Return an executable script @var{name} that runs @var{exp} using
|
Return an executable script @var{name} that runs @var{exp} using
|
||||||
@var{guile}, with @var{exp}'s imported modules in its search path.
|
@var{guile}, with @var{exp}'s imported modules in its search path.
|
||||||
Look up @var{exp}'s modules in @var{module-path}.
|
Look up @var{exp}'s modules in @var{module-path}.
|
||||||
|
@ -8040,7 +8049,7 @@ guix build --with-branch=guile-sqlite3=master cuirass
|
||||||
@item --with-commit=@var{package}=@var{commit}
|
@item --with-commit=@var{package}=@var{commit}
|
||||||
This is similar to @code{--with-branch}, except that it builds from
|
This is similar to @code{--with-branch}, except that it builds from
|
||||||
@var{commit} rather than the tip of a branch. @var{commit} must be a valid
|
@var{commit} rather than the tip of a branch. @var{commit} must be a valid
|
||||||
Git commit SHA1 identifier.
|
Git commit SHA1 identifier or a tag.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@node Additional Build Options
|
@node Additional Build Options
|
||||||
|
@ -20598,6 +20607,21 @@ thus not visible in @file{/gnu/store}---e.g., you could store secret
|
||||||
key configuration in @file{/etc/knot/secrets.conf} and add this file
|
key configuration in @file{/etc/knot/secrets.conf} and add this file
|
||||||
to the @code{includes} list.
|
to the @code{includes} list.
|
||||||
|
|
||||||
|
One can generate a secret tsig key (for nsupdate and zone transfers with the
|
||||||
|
keymgr command from the knot package. Note that the package is not automatically
|
||||||
|
installed by the service. The following example shows how to generate a new
|
||||||
|
tsig key:
|
||||||
|
|
||||||
|
@example
|
||||||
|
keymgr -t mysecret > /etc/knot/secrets.conf
|
||||||
|
chmod 600 /etc/knot/secrets.conf
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Also note that the generated key will be named @var{mysecret}, so it is the
|
||||||
|
name that needs to be used in the @var{key} field of the
|
||||||
|
@code{knot-acl-configuration} record and in other places that need to refer
|
||||||
|
to that key.
|
||||||
|
|
||||||
It can also be used to add configuration not supported by this interface.
|
It can also be used to add configuration not supported by this interface.
|
||||||
|
|
||||||
@item @code{listen-v4} (default: @code{"0.0.0.0"})
|
@item @code{listen-v4} (default: @code{"0.0.0.0"})
|
||||||
|
|
|
@ -69,7 +69,7 @@ version of this file."
|
||||||
(setlocale LC_ALL "en_US.utf8")))
|
(setlocale LC_ALL "en_US.utf8")))
|
||||||
|
|
||||||
(define builder
|
(define builder
|
||||||
(with-extensions (list guile-json)
|
(with-extensions (list guile-json-3)
|
||||||
(with-imported-modules (source-module-closure
|
(with-imported-modules (source-module-closure
|
||||||
'((gnu installer locale)))
|
'((gnu installer locale)))
|
||||||
#~(begin
|
#~(begin
|
||||||
|
@ -313,7 +313,7 @@ selected keymap."
|
||||||
;; packages …), etc. modules.
|
;; packages …), etc. modules.
|
||||||
(with-extensions (list guile-gcrypt guile-newt
|
(with-extensions (list guile-gcrypt guile-newt
|
||||||
guile-parted guile-bytestructures
|
guile-parted guile-bytestructures
|
||||||
guile-json guile-git guix)
|
guile-json-3 guile-git guix)
|
||||||
(with-imported-modules `(,@(source-module-closure
|
(with-imported-modules `(,@(source-module-closure
|
||||||
`(,@modules
|
`(,@modules
|
||||||
(gnu services herd)
|
(gnu services herd)
|
||||||
|
|
|
@ -134,16 +134,18 @@ ISO639-3 and ISO639-5 files."
|
||||||
(lambda (port-iso639-5)
|
(lambda (port-iso639-5)
|
||||||
(filter-map
|
(filter-map
|
||||||
(lambda (hash)
|
(lambda (hash)
|
||||||
(let ((alpha2 (hash-ref hash "alpha_2"))
|
(let ((alpha2 (assoc-ref hash "alpha_2"))
|
||||||
(alpha3 (hash-ref hash "alpha_3"))
|
(alpha3 (assoc-ref hash "alpha_3"))
|
||||||
(name (hash-ref hash "name")))
|
(name (assoc-ref hash "name")))
|
||||||
(and (supported-locale? locales alpha2 alpha3)
|
(and (supported-locale? locales alpha2 alpha3)
|
||||||
`((alpha2 . ,alpha2)
|
`((alpha2 . ,alpha2)
|
||||||
(alpha3 . ,alpha3)
|
(alpha3 . ,alpha3)
|
||||||
(name . ,name)))))
|
(name . ,name)))))
|
||||||
(append
|
(append
|
||||||
(hash-ref (json->scm port-iso639-3) "639-3")
|
(vector->list
|
||||||
(hash-ref (json->scm port-iso639-5) "639-5"))))))))
|
(assoc-ref (json->scm port-iso639-3) "639-3"))
|
||||||
|
(vector->list
|
||||||
|
(assoc-ref (json->scm port-iso639-5) "639-5")))))))))
|
||||||
|
|
||||||
(define (language-code->language-name languages language-code)
|
(define (language-code->language-name languages language-code)
|
||||||
"Using LANGUAGES as a list of ISO639 association lists, return the language
|
"Using LANGUAGES as a list of ISO639 association lists, return the language
|
||||||
|
@ -179,10 +181,11 @@ ISO3166 file."
|
||||||
(call-with-input-file iso3166
|
(call-with-input-file iso3166
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(map (lambda (hash)
|
(map (lambda (hash)
|
||||||
`((alpha2 . ,(hash-ref hash "alpha_2"))
|
`((alpha2 . ,(assoc-ref hash "alpha_2"))
|
||||||
(alpha3 . ,(hash-ref hash "alpha_3"))
|
(alpha3 . ,(assoc-ref hash "alpha_3"))
|
||||||
(name . ,(hash-ref hash "name"))))
|
(name . ,(assoc-ref hash "name"))))
|
||||||
(hash-ref (json->scm port) "3166-1")))))
|
(vector->list
|
||||||
|
(assoc-ref (json->scm port) "3166-1"))))))
|
||||||
|
|
||||||
(define (territory-code->territory-name territories territory-code)
|
(define (territory-code->territory-name territories territory-code)
|
||||||
"Using TERRITORIES as a list of ISO3166 association lists return the
|
"Using TERRITORIES as a list of ISO3166 association lists return the
|
||||||
|
|
|
@ -597,6 +597,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/tests/mail.scm \
|
%D%/tests/mail.scm \
|
||||||
%D%/tests/messaging.scm \
|
%D%/tests/messaging.scm \
|
||||||
%D%/tests/networking.scm \
|
%D%/tests/networking.scm \
|
||||||
|
%D%/tests/reconfigure.scm \
|
||||||
%D%/tests/rsync.scm \
|
%D%/tests/rsync.scm \
|
||||||
%D%/tests/security-token.scm \
|
%D%/tests/security-token.scm \
|
||||||
%D%/tests/singularity.scm \
|
%D%/tests/singularity.scm \
|
||||||
|
@ -753,6 +754,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
|
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
|
||||||
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
||||||
%D%/packages/patches/diffutils-gets-undeclared.patch \
|
%D%/packages/patches/diffutils-gets-undeclared.patch \
|
||||||
|
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
||||||
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
|
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
|
||||||
%D%/packages/patches/doc++-include-directives.patch \
|
%D%/packages/patches/doc++-include-directives.patch \
|
||||||
%D%/packages/patches/doc++-segfault-fix.patch \
|
%D%/packages/patches/doc++-segfault-fix.patch \
|
||||||
|
@ -1044,6 +1046,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/libutils-add-includes.patch \
|
%D%/packages/patches/libutils-add-includes.patch \
|
||||||
%D%/packages/patches/libutils-remove-damaging-includes.patch \
|
%D%/packages/patches/libutils-remove-damaging-includes.patch \
|
||||||
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \
|
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \
|
||||||
|
%D%/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch \
|
||||||
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
|
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
|
||||||
%D%/packages/patches/libvpx-use-after-free-in-postproc.patch \
|
%D%/packages/patches/libvpx-use-after-free-in-postproc.patch \
|
||||||
%D%/packages/patches/libxslt-generated-ids.patch \
|
%D%/packages/patches/libxslt-generated-ids.patch \
|
||||||
|
|
|
@ -17,23 +17,21 @@
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (gnu machine ssh)
|
(define-module (gnu machine ssh)
|
||||||
#:use-module (gnu bootloader)
|
|
||||||
#:use-module (gnu machine)
|
#:use-module (gnu machine)
|
||||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||||
#:use-module (gnu services)
|
|
||||||
#:use-module (gnu services shepherd)
|
|
||||||
#:use-module (gnu system)
|
#:use-module (gnu system)
|
||||||
#:use-module (guix derivations)
|
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
#:use-module (guix modules)
|
#:use-module (guix modules)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix remote)
|
#:use-module (guix remote)
|
||||||
|
#:use-module (guix scripts system reconfigure)
|
||||||
#:use-module (guix ssh)
|
#:use-module (guix ssh)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-19)
|
#:use-module (srfi srfi-19)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (srfi srfi-35)
|
#:use-module (srfi srfi-35)
|
||||||
#:export (managed-host-environment-type
|
#:export (managed-host-environment-type
|
||||||
|
|
||||||
|
@ -105,118 +103,6 @@ an environment type of 'managed-host."
|
||||||
;;; System deployment.
|
;;; System deployment.
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define (switch-to-system machine)
|
|
||||||
"Monadic procedure creating a new generation on MACHINE and execute the
|
|
||||||
activation script for the new system configuration."
|
|
||||||
(define (remote-exp drv script)
|
|
||||||
(with-extensions (list guile-gcrypt)
|
|
||||||
(with-imported-modules (source-module-closure '((guix config)
|
|
||||||
(guix profiles)
|
|
||||||
(guix utils)))
|
|
||||||
#~(begin
|
|
||||||
(use-modules (guix config)
|
|
||||||
(guix profiles)
|
|
||||||
(guix utils))
|
|
||||||
|
|
||||||
(define %system-profile
|
|
||||||
(string-append %state-directory "/profiles/system"))
|
|
||||||
|
|
||||||
(let* ((system #$drv)
|
|
||||||
(number (1+ (generation-number %system-profile)))
|
|
||||||
(generation (generation-file-name %system-profile number)))
|
|
||||||
(switch-symlinks generation system)
|
|
||||||
(switch-symlinks %system-profile generation)
|
|
||||||
;; The implementation of 'guix system reconfigure' saves the
|
|
||||||
;; load path and environment here. This is unnecessary here
|
|
||||||
;; because each invocation of 'remote-eval' runs in a distinct
|
|
||||||
;; Guile REPL.
|
|
||||||
(setenv "GUIX_NEW_SYSTEM" system)
|
|
||||||
;; The activation script may write to stdout, which confuses
|
|
||||||
;; 'remote-eval' when it attempts to read a result from the
|
|
||||||
;; remote REPL. We work around this by forcing the output to a
|
|
||||||
;; string.
|
|
||||||
(with-output-to-string
|
|
||||||
(lambda ()
|
|
||||||
(primitive-load #$script))))))))
|
|
||||||
|
|
||||||
(let* ((os (machine-system machine))
|
|
||||||
(script (operating-system-activation-script os)))
|
|
||||||
(mlet* %store-monad ((drv (operating-system-derivation os)))
|
|
||||||
(machine-remote-eval machine (remote-exp drv script)))))
|
|
||||||
|
|
||||||
;; XXX: Currently, this does NOT attempt to restart running services. This is
|
|
||||||
;; also the case with 'guix system reconfigure'.
|
|
||||||
;;
|
|
||||||
;; See <https://issues.guix.info/issue/33508>.
|
|
||||||
(define (upgrade-shepherd-services machine)
|
|
||||||
"Monadic procedure unloading and starting services on the remote as needed
|
|
||||||
to realize the MACHINE's system configuration."
|
|
||||||
(define target-services
|
|
||||||
;; Monadic expression evaluating to a list of (name output-path) pairs for
|
|
||||||
;; all of MACHINE's services.
|
|
||||||
(mapm %store-monad
|
|
||||||
(lambda (service)
|
|
||||||
(mlet %store-monad ((file ((compose lower-object
|
|
||||||
shepherd-service-file)
|
|
||||||
service)))
|
|
||||||
(return (list (shepherd-service-canonical-name service)
|
|
||||||
(derivation->output-path file)))))
|
|
||||||
(service-value
|
|
||||||
(fold-services (operating-system-services (machine-system machine))
|
|
||||||
#:target-type shepherd-root-service-type))))
|
|
||||||
|
|
||||||
(define (remote-exp target-services)
|
|
||||||
(with-imported-modules '((gnu services herd))
|
|
||||||
#~(begin
|
|
||||||
(use-modules (gnu services herd)
|
|
||||||
(srfi srfi-1))
|
|
||||||
|
|
||||||
(define running
|
|
||||||
(filter live-service-running (current-services)))
|
|
||||||
|
|
||||||
(define (essential? service)
|
|
||||||
;; Return #t if SERVICE is essential and should not be unloaded
|
|
||||||
;; under any circumstance.
|
|
||||||
(memq (first (live-service-provision service))
|
|
||||||
'(root shepherd)))
|
|
||||||
|
|
||||||
(define (obsolete? service)
|
|
||||||
;; Return #t if SERVICE can be safely unloaded.
|
|
||||||
(and (not (essential? service))
|
|
||||||
(every (lambda (requirements)
|
|
||||||
(not (memq (first (live-service-provision service))
|
|
||||||
requirements)))
|
|
||||||
(map live-service-requirement running))))
|
|
||||||
|
|
||||||
(define to-unload
|
|
||||||
(filter obsolete?
|
|
||||||
(remove (lambda (service)
|
|
||||||
(memq (first (live-service-provision service))
|
|
||||||
(map first '#$target-services)))
|
|
||||||
running)))
|
|
||||||
|
|
||||||
(define to-start
|
|
||||||
(remove (lambda (service-pair)
|
|
||||||
(memq (first service-pair)
|
|
||||||
(map (compose first live-service-provision)
|
|
||||||
running)))
|
|
||||||
'#$target-services))
|
|
||||||
|
|
||||||
;; Unload obsolete services.
|
|
||||||
(for-each (lambda (service)
|
|
||||||
(false-if-exception
|
|
||||||
(unload-service service)))
|
|
||||||
to-unload)
|
|
||||||
|
|
||||||
;; Load the service files for any new services and start them.
|
|
||||||
(load-services/safe (map second to-start))
|
|
||||||
(for-each start-service (map first to-start))
|
|
||||||
|
|
||||||
#t)))
|
|
||||||
|
|
||||||
(mlet %store-monad ((target-services target-services))
|
|
||||||
(machine-remote-eval machine (remote-exp target-services))))
|
|
||||||
|
|
||||||
(define (machine-boot-parameters machine)
|
(define (machine-boot-parameters machine)
|
||||||
"Monadic procedure returning a list of 'boot-parameters' for the generations
|
"Monadic procedure returning a list of 'boot-parameters' for the generations
|
||||||
of MACHINE's system profile, ordered from most recent to oldest."
|
of MACHINE's system profile, ordered from most recent to oldest."
|
||||||
|
@ -275,71 +161,20 @@ of MACHINE's system profile, ordered from most recent to oldest."
|
||||||
(boot-parameters-kernel-arguments params))))))))
|
(boot-parameters-kernel-arguments params))))))))
|
||||||
generations))))
|
generations))))
|
||||||
|
|
||||||
(define (install-bootloader machine)
|
|
||||||
"Create a bootloader entry for the new system generation on MACHINE, and
|
|
||||||
configure the bootloader to boot that generation by default."
|
|
||||||
(define bootloader-installer-script
|
|
||||||
(@@ (guix scripts system) bootloader-installer-script))
|
|
||||||
|
|
||||||
(define (remote-exp installer bootcfg bootcfg-file)
|
|
||||||
(with-extensions (list guile-gcrypt)
|
|
||||||
(with-imported-modules (source-module-closure '((gnu build install)
|
|
||||||
(guix store)
|
|
||||||
(guix utils)))
|
|
||||||
#~(begin
|
|
||||||
(use-modules (gnu build install)
|
|
||||||
(guix store)
|
|
||||||
(guix utils))
|
|
||||||
(let* ((gc-root (string-append "/" %gc-roots-directory "/bootcfg"))
|
|
||||||
(temp-gc-root (string-append gc-root ".new")))
|
|
||||||
|
|
||||||
(switch-symlinks temp-gc-root gc-root)
|
|
||||||
|
|
||||||
(unless (false-if-exception
|
|
||||||
(begin
|
|
||||||
;; The implementation of 'guix system reconfigure'
|
|
||||||
;; saves the load path here. This is unnecessary here
|
|
||||||
;; because each invocation of 'remote-eval' runs in a
|
|
||||||
;; distinct Guile REPL.
|
|
||||||
(install-boot-config #$bootcfg #$bootcfg-file "/")
|
|
||||||
;; The installation script may write to stdout, which
|
|
||||||
;; confuses 'remote-eval' when it attempts to read a
|
|
||||||
;; result from the remote REPL. We work around this
|
|
||||||
;; by forcing the output to a string.
|
|
||||||
(with-output-to-string
|
|
||||||
(lambda ()
|
|
||||||
(primitive-load #$installer)))))
|
|
||||||
(delete-file temp-gc-root)
|
|
||||||
(error "failed to install bootloader"))
|
|
||||||
|
|
||||||
(rename-file temp-gc-root gc-root)
|
|
||||||
#t)))))
|
|
||||||
|
|
||||||
(mlet* %store-monad ((boot-parameters (machine-boot-parameters machine)))
|
|
||||||
(let* ((os (machine-system machine))
|
|
||||||
(bootloader ((compose bootloader-configuration-bootloader
|
|
||||||
operating-system-bootloader)
|
|
||||||
os))
|
|
||||||
(bootloader-target (bootloader-configuration-target
|
|
||||||
(operating-system-bootloader os)))
|
|
||||||
(installer (bootloader-installer-script
|
|
||||||
(bootloader-installer bootloader)
|
|
||||||
(bootloader-package bootloader)
|
|
||||||
bootloader-target
|
|
||||||
"/"))
|
|
||||||
(menu-entries (map boot-parameters->menu-entry boot-parameters))
|
|
||||||
(bootcfg (operating-system-bootcfg os menu-entries))
|
|
||||||
(bootcfg-file (bootloader-configuration-file bootloader)))
|
|
||||||
(machine-remote-eval machine (remote-exp installer bootcfg bootcfg-file)))))
|
|
||||||
|
|
||||||
(define (deploy-managed-host machine)
|
(define (deploy-managed-host machine)
|
||||||
"Internal implementation of 'deploy-machine' for MACHINE instances with an
|
"Internal implementation of 'deploy-machine' for MACHINE instances with an
|
||||||
environment type of 'managed-host."
|
environment type of 'managed-host."
|
||||||
(maybe-raise-unsupported-configuration-error machine)
|
(maybe-raise-unsupported-configuration-error machine)
|
||||||
(mbegin %store-monad
|
(mlet %store-monad ((boot-parameters (machine-boot-parameters machine)))
|
||||||
(switch-to-system machine)
|
(let* ((os (machine-system machine))
|
||||||
(upgrade-shepherd-services machine)
|
(eval (cut machine-remote-eval machine <>))
|
||||||
(install-bootloader machine)))
|
(menu-entries (map boot-parameters->menu-entry boot-parameters))
|
||||||
|
(bootloader-configuration (operating-system-bootloader os))
|
||||||
|
(bootcfg (operating-system-bootcfg os menu-entries)))
|
||||||
|
(mbegin %store-monad
|
||||||
|
(switch-to-system eval os)
|
||||||
|
(upgrade-shepherd-services eval os)
|
||||||
|
(install-bootloader eval bootloader-configuration bootcfg)))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
|
@ -913,6 +913,51 @@ by bandwidth they use.")
|
||||||
(base32
|
(base32
|
||||||
"0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
|
"0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'refer-to-inputs
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* (list "lib/App/ClusterSSH/Config.pm"
|
||||||
|
"t/15config.t")
|
||||||
|
(("xterm")
|
||||||
|
(which "xterm")))
|
||||||
|
#t))
|
||||||
|
(add-before 'check 'delete-failing-tests
|
||||||
|
(lambda _
|
||||||
|
;; This checks whether all code is nicely formatted. The above
|
||||||
|
;; ‘refer-to-inputs’ phase breaks this pedantry, so disable it.
|
||||||
|
(delete-file "t/perltidy.t")
|
||||||
|
;; Update the manifest so t/manifest.t happily passes.
|
||||||
|
(substitute* "MANIFEST"
|
||||||
|
(("t/perltidy.t\n") ""))
|
||||||
|
#t))
|
||||||
|
(add-after 'install 'augment-library-path
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(bin (string-append out "/bin")))
|
||||||
|
(with-directory-excursion bin
|
||||||
|
(for-each
|
||||||
|
(lambda (program)
|
||||||
|
(wrap-program program
|
||||||
|
`("PERL5LIB" ":" prefix
|
||||||
|
,(map (lambda (file-name)
|
||||||
|
(string-append file-name
|
||||||
|
"/lib/perl5/site_perl"))
|
||||||
|
(cons out
|
||||||
|
(map (lambda (input)
|
||||||
|
(assoc-ref inputs input))
|
||||||
|
;; These may be propagated and hence
|
||||||
|
;; not explicitly listed as inputs.
|
||||||
|
(list "perl-class-data-inheritable"
|
||||||
|
"perl-devel-stacktrace"
|
||||||
|
"perl-exception-class"
|
||||||
|
"perl-tk"
|
||||||
|
"perl-try-tiny"
|
||||||
|
"perl-x11-protocol"
|
||||||
|
"perl-x11-protocol-other")))))))
|
||||||
|
(find-files "." ".*")))
|
||||||
|
#t))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl-cpan-changes" ,perl-cpan-changes)
|
`(("perl-cpan-changes" ,perl-cpan-changes)
|
||||||
("perl-file-slurp" ,perl-file-slurp)
|
("perl-file-slurp" ,perl-file-slurp)
|
||||||
|
@ -926,13 +971,14 @@ by bandwidth they use.")
|
||||||
("perl-test-pod-coverage" ,perl-test-pod-coverage)
|
("perl-test-pod-coverage" ,perl-test-pod-coverage)
|
||||||
("perl-test-trap" ,perl-test-trap)
|
("perl-test-trap" ,perl-test-trap)
|
||||||
("perltidy" ,perltidy)))
|
("perltidy" ,perltidy)))
|
||||||
(propagated-inputs
|
(inputs
|
||||||
`(("xterm" ,xterm)
|
`(("perl-exception-class" ,perl-exception-class)
|
||||||
("perl-exception-class" ,perl-exception-class)
|
("perl-sort-naturally" ,perl-sort-naturally)
|
||||||
("perl-tk" ,perl-tk)
|
("perl-tk" ,perl-tk)
|
||||||
("perl-try-tiny" ,perl-try-tiny)
|
("perl-try-tiny" ,perl-try-tiny)
|
||||||
("perl-x11-protocol" ,perl-x11-protocol)
|
("perl-x11-protocol" ,perl-x11-protocol)
|
||||||
("perl-x11-protocol-other" ,perl-x11-protocol-other)))
|
("perl-x11-protocol-other" ,perl-x11-protocol-other)
|
||||||
|
("xterm" ,xterm)))
|
||||||
;; The clusterssh.sourceforge.net address requires login to view
|
;; The clusterssh.sourceforge.net address requires login to view
|
||||||
(home-page "https://sourceforge.net/projects/clusterssh/")
|
(home-page "https://sourceforge.net/projects/clusterssh/")
|
||||||
(synopsis "Secure concurrent multi-server terminal control")
|
(synopsis "Secure concurrent multi-server terminal control")
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix build-system r)
|
#:use-module (guix build-system r)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
@ -865,6 +866,34 @@ which were then sequenced to a depth of ~4 million reads per library,
|
||||||
resulting in a complete gene expression profile for each cell.")
|
resulting in a complete gene expression profile for each cell.")
|
||||||
(license license:artistic2.0)))
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
(define-public r-all
|
||||||
|
(package
|
||||||
|
(name "r-all")
|
||||||
|
(version "1.26.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
;; We cannot use bioconductor-uri here because this tarball is
|
||||||
|
;; located under "data/experiment/" instead of "bioc/".
|
||||||
|
(uri (string-append "https://www.bioconductor.org/packages/"
|
||||||
|
"release/data/experiment/src/contrib/"
|
||||||
|
"ALL_" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1z7kpjw4ndj6fkxwvhqf3gawhrn26ksrlns7j2c78qzxqmjndik9"))))
|
||||||
|
(properties `((upstream-name . "ALL")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-biobase" ,r-biobase)))
|
||||||
|
(home-page "https://bioconductor.org/packages/ALL")
|
||||||
|
(synopsis "Acute Lymphoblastic Leukemia data from the Ritz laboratory")
|
||||||
|
(description
|
||||||
|
"The data consist of microarrays from 128 different individuals with
|
||||||
|
@dfn{acute lymphoblastic leukemia} (ALL). A number of additional covariates
|
||||||
|
are available. The data have been normalized (using rma) and it is the
|
||||||
|
jointly normalized data that are available here. The data are presented in
|
||||||
|
the form of an @code{exprSet} object.")
|
||||||
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
|
||||||
;;; Packages
|
;;; Packages
|
||||||
|
|
||||||
|
@ -2235,6 +2264,68 @@ tasks on single cell expression data. It is designed to work with RNA-Seq and
|
||||||
qPCR data, but could be used with other types as well.")
|
qPCR data, but could be used with other types as well.")
|
||||||
(license license:artistic2.0)))
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
(define-public r-monocle3
|
||||||
|
(package
|
||||||
|
(name "r-monocle3")
|
||||||
|
(version "0.1.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/cole-trapnell-lab/monocle3.git")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1cjxqfw3qvy269hsf5v80d4kshl932wrl949iayas02saj6f70ls"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-biobase" ,r-biobase)
|
||||||
|
("r-biocgenerics" ,r-biocgenerics)
|
||||||
|
("r-delayedmatrixstats" ,r-delayedmatrixstats)
|
||||||
|
("r-dplyr" ,r-dplyr)
|
||||||
|
("r-ggplot2" ,r-ggplot2)
|
||||||
|
("r-ggrepel" ,r-ggrepel)
|
||||||
|
("r-grr" ,r-grr)
|
||||||
|
("r-htmlwidgets" ,r-htmlwidgets)
|
||||||
|
("r-igraph" ,r-igraph)
|
||||||
|
("r-irlba" ,r-irlba)
|
||||||
|
("r-limma" ,r-limma)
|
||||||
|
("r-lmtest" ,r-lmtest)
|
||||||
|
("r-mass" ,r-mass)
|
||||||
|
("r-matrix" ,r-matrix)
|
||||||
|
("r-matrix-utils" ,r-matrix-utils)
|
||||||
|
("r-pbapply" ,r-pbapply)
|
||||||
|
("r-pbmcapply" ,r-pbmcapply)
|
||||||
|
("r-pheatmap" ,r-pheatmap)
|
||||||
|
("r-plotly" ,r-plotly)
|
||||||
|
("r-pryr" ,r-pryr)
|
||||||
|
("r-proxy" ,r-proxy)
|
||||||
|
("r-pscl" ,r-pscl)
|
||||||
|
("r-purrr" ,r-purrr)
|
||||||
|
("r-rann" ,r-rann)
|
||||||
|
("r-rcpp" ,r-rcpp)
|
||||||
|
("r-rcppparallel" ,r-rcppparallel)
|
||||||
|
("r-reshape2" ,r-reshape2)
|
||||||
|
("r-reticulate" ,r-reticulate)
|
||||||
|
("r-rhpcblasctl" ,r-rhpcblasctl)
|
||||||
|
("r-rtsne" ,r-rtsne)
|
||||||
|
("r-shiny" ,r-shiny)
|
||||||
|
("r-slam" ,r-slam)
|
||||||
|
("r-spdep" ,r-spdep)
|
||||||
|
("r-speedglm" ,r-speedglm)
|
||||||
|
("r-stringr" ,r-stringr)
|
||||||
|
("r-singlecellexperiment" ,r-singlecellexperiment)
|
||||||
|
("r-tibble" ,r-tibble)
|
||||||
|
("r-tidyr" ,r-tidyr)
|
||||||
|
("r-uwot" ,r-uwot)
|
||||||
|
("r-viridis" ,r-viridis)))
|
||||||
|
(home-page "https://github.com/cole-trapnell-lab/monocle3")
|
||||||
|
(synopsis "Analysis toolkit for single-cell RNA-Seq data")
|
||||||
|
(description
|
||||||
|
"Monocle 3 is an analysis toolkit for single-cell RNA-Seq experiments.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public r-noiseq
|
(define-public r-noiseq
|
||||||
(package
|
(package
|
||||||
(name "r-noiseq")
|
(name "r-noiseq")
|
||||||
|
@ -4769,3 +4860,271 @@ read mapping, read counting, SNP calling, structural variant detection and
|
||||||
gene fusion discovery. It can be applied to all major sequencing techologies
|
gene fusion discovery. It can be applied to all major sequencing techologies
|
||||||
and to both short and long sequence reads.")
|
and to both short and long sequence reads.")
|
||||||
(license license:gpl3)))
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public r-flowutils
|
||||||
|
(package
|
||||||
|
(name "r-flowutils")
|
||||||
|
(version "1.48.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "flowUtils" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1r7b0rszdzjq7jphh65p5m4x5ps0zbbagxl26gn2mapbjdyb47rm"))))
|
||||||
|
(properties `((upstream-name . "flowUtils")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-biobase" ,r-biobase)
|
||||||
|
("r-corpcor" ,r-corpcor)
|
||||||
|
("r-flowcore" ,r-flowcore)
|
||||||
|
("r-graph" ,r-graph)
|
||||||
|
("r-runit" ,r-runit)
|
||||||
|
("r-xml" ,r-xml)))
|
||||||
|
(home-page "https://github.com/jspidlen/flowUtils")
|
||||||
|
(synopsis "Utilities for flow cytometry")
|
||||||
|
(description
|
||||||
|
"This package provides utilities for flow cytometry data.")
|
||||||
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
(define-public r-consensusclusterplus
|
||||||
|
(package
|
||||||
|
(name "r-consensusclusterplus")
|
||||||
|
(version "1.48.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "ConsensusClusterPlus" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1mlcm3wq5n8s0gxs35j0ph9576fhbrbrrsj2xy84fy20prcfs4w8"))))
|
||||||
|
(properties
|
||||||
|
`((upstream-name . "ConsensusClusterPlus")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-all" ,r-all)
|
||||||
|
("r-biobase" ,r-biobase)
|
||||||
|
("r-cluster" ,r-cluster)))
|
||||||
|
(home-page "https://bioconductor.org/packages/ConsensusClusterPlus")
|
||||||
|
(synopsis "Clustering algorithm")
|
||||||
|
(description
|
||||||
|
"This package provides an implementation of an algorithm for determining
|
||||||
|
cluster count and membership by stability evidence in unsupervised analysis.")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public r-flowcore
|
||||||
|
(package
|
||||||
|
(name "r-flowcore")
|
||||||
|
(version "1.50.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "flowCore" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0pvcyzycsmgc8iw60q9xnhllfan6ihwpz3gvk8h1n9jmhpxzylan"))))
|
||||||
|
(properties `((upstream-name . "flowCore")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-bh" ,r-bh)
|
||||||
|
("r-biobase" ,r-biobase)
|
||||||
|
("r-biocgenerics" ,r-biocgenerics)
|
||||||
|
("r-corpcor" ,r-corpcor)
|
||||||
|
("r-graph" ,r-graph)
|
||||||
|
("r-mass" ,r-mass)
|
||||||
|
("r-matrixstats" ,r-matrixstats)
|
||||||
|
("r-rcpp" ,r-rcpp)
|
||||||
|
("r-rrcov" ,r-rrcov)))
|
||||||
|
(home-page "https://bioconductor.org/packages/flowCore")
|
||||||
|
(synopsis "Basic structures for flow cytometry data")
|
||||||
|
(description
|
||||||
|
"This package provides S4 data structures and basic functions to deal
|
||||||
|
with flow cytometry data.")
|
||||||
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
(define-public r-flowmeans
|
||||||
|
(package
|
||||||
|
(name "r-flowmeans")
|
||||||
|
(version "1.44.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "flowMeans" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0yp6y3mq5h4nf1d7ybqnriigwfmwanrqavpj3ry482sgiaip1hp2"))))
|
||||||
|
(properties `((upstream-name . "flowMeans")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-biobase" ,r-biobase)
|
||||||
|
("r-feature" ,r-feature)
|
||||||
|
("r-flowcore" ,r-flowcore)
|
||||||
|
("r-rrcov" ,r-rrcov)))
|
||||||
|
(home-page "https://bioconductor.org/packages/flowMeans")
|
||||||
|
(synopsis "Non-parametric flow cytometry data gating")
|
||||||
|
(description
|
||||||
|
"This package provides tools to identify cell populations in Flow
|
||||||
|
Cytometry data using non-parametric clustering and segmented-regression-based
|
||||||
|
change point detection.")
|
||||||
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
(define-public r-flowsom
|
||||||
|
(package
|
||||||
|
(name "r-flowsom")
|
||||||
|
(version "1.16.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "FlowSOM" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"03wl3xk7g7vajc4kkrqa0gsbjfxlqr918qi849h5nir31963398l"))))
|
||||||
|
(properties `((upstream-name . "FlowSOM")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-biocgenerics" ,r-biocgenerics)
|
||||||
|
("r-consensusclusterplus" ,r-consensusclusterplus)
|
||||||
|
("r-flowcore" ,r-flowcore)
|
||||||
|
("r-flowutils" ,r-flowutils)
|
||||||
|
("r-igraph" ,r-igraph)
|
||||||
|
("r-tsne" ,r-tsne)
|
||||||
|
("r-xml" ,r-xml)))
|
||||||
|
(home-page "https://bioconductor.org/packages/FlowSOM/")
|
||||||
|
(synopsis "Visualize and interpret cytometry data")
|
||||||
|
(description
|
||||||
|
"FlowSOM offers visualization options for cytometry data, by using
|
||||||
|
self-organizing map clustering and minimal spanning trees.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public r-mixomics
|
||||||
|
(package
|
||||||
|
(name "r-mixomics")
|
||||||
|
(version "6.8.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "mixOmics" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1f08jx35amn3sfcmqb96mjxxsm6dnpzhff625z758x1992wj4zsk"))))
|
||||||
|
(properties `((upstream-name . "mixOmics")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-corpcor" ,r-corpcor)
|
||||||
|
("r-dplyr" ,r-dplyr)
|
||||||
|
("r-ellipse" ,r-ellipse)
|
||||||
|
("r-ggplot2" ,r-ggplot2)
|
||||||
|
("r-gridextra" ,r-gridextra)
|
||||||
|
("r-igraph" ,r-igraph)
|
||||||
|
("r-lattice" ,r-lattice)
|
||||||
|
("r-mass" ,r-mass)
|
||||||
|
("r-matrixstats" ,r-matrixstats)
|
||||||
|
("r-rarpack" ,r-rarpack)
|
||||||
|
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||||
|
("r-reshape2" ,r-reshape2)
|
||||||
|
("r-tidyr" ,r-tidyr)))
|
||||||
|
(home-page "http://www.mixOmics.org")
|
||||||
|
(synopsis "Multivariate methods for exploration of biological datasets")
|
||||||
|
(description
|
||||||
|
"mixOmics offers a wide range of multivariate methods for the exploration
|
||||||
|
and integration of biological datasets with a particular focus on variable
|
||||||
|
selection. The package proposes several sparse multivariate models we have
|
||||||
|
developed to identify the key variables that are highly correlated, and/or
|
||||||
|
explain the biological outcome of interest. The data that can be analysed
|
||||||
|
with mixOmics may come from high throughput sequencing technologies, such as
|
||||||
|
omics data (transcriptomics, metabolomics, proteomics, metagenomics etc) but
|
||||||
|
also beyond the realm of omics (e.g. spectral imaging). The methods
|
||||||
|
implemented in mixOmics can also handle missing values without having to
|
||||||
|
delete entire rows with missing data.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public r-depecher
|
||||||
|
(package
|
||||||
|
(name "r-depecher")
|
||||||
|
(version "1.0.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "DepecheR" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0qj2h2a50fncppvi2phh0mbivxkn1mv702mqpi9mvvkf3bzq8m0h"))))
|
||||||
|
(properties `((upstream-name . "DepecheR")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-syntax-error
|
||||||
|
(lambda _
|
||||||
|
(substitute* "src/Makevars"
|
||||||
|
((" & ") " && "))
|
||||||
|
#t)))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-beanplot" ,r-beanplot)
|
||||||
|
("r-biocparallel" ,r-biocparallel)
|
||||||
|
("r-dosnow" ,r-dosnow)
|
||||||
|
("r-dplyr" ,r-dplyr)
|
||||||
|
("r-foreach" ,r-foreach)
|
||||||
|
("r-ggplot2" ,r-ggplot2)
|
||||||
|
("r-gplots" ,r-gplots)
|
||||||
|
("r-mass" ,r-mass)
|
||||||
|
("r-matrixstats" ,r-matrixstats)
|
||||||
|
("r-mixomics" ,r-mixomics)
|
||||||
|
("r-moments" ,r-moments)
|
||||||
|
("r-rcpp" ,r-rcpp)
|
||||||
|
("r-rcppeigen" ,r-rcppeigen)
|
||||||
|
("r-reshape2" ,r-reshape2)
|
||||||
|
("r-viridis" ,r-viridis)))
|
||||||
|
(home-page "https://bioconductor.org/packages/DepecheR/")
|
||||||
|
(synopsis "Identify traits of clusters in high-dimensional entities")
|
||||||
|
(description
|
||||||
|
"The purpose of this package is to identify traits in a dataset that can
|
||||||
|
separate groups. This is done on two levels. First, clustering is performed,
|
||||||
|
using an implementation of sparse K-means. Secondly, the generated clusters
|
||||||
|
are used to predict outcomes of groups of individuals based on their
|
||||||
|
distribution of observations in the different clusters. As certain clusters
|
||||||
|
with separating information will be identified, and these clusters are defined
|
||||||
|
by a sparse number of variables, this method can reduce the complexity of
|
||||||
|
data, to only emphasize the data that actually matters.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-cicero
|
||||||
|
(package
|
||||||
|
(name "r-cicero")
|
||||||
|
(version "1.2.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (bioconductor-uri "cicero" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0f15l8zrh7l7nnvznb66116hvfk15djb9q240vbscm2w0y5fvkcr"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-assertthat" ,r-assertthat)
|
||||||
|
("r-biobase" ,r-biobase)
|
||||||
|
("r-biocgenerics" ,r-biocgenerics)
|
||||||
|
("r-data-table" ,r-data-table)
|
||||||
|
("r-dplyr" ,r-dplyr)
|
||||||
|
("r-fnn" ,r-fnn)
|
||||||
|
("r-genomicranges" ,r-genomicranges)
|
||||||
|
("r-ggplot2" ,r-ggplot2)
|
||||||
|
("r-glasso" ,r-glasso)
|
||||||
|
("r-gviz" ,r-gviz)
|
||||||
|
("r-igraph" ,r-igraph)
|
||||||
|
("r-iranges" ,r-iranges)
|
||||||
|
("r-matrix" ,r-matrix)
|
||||||
|
("r-monocle" ,r-monocle)
|
||||||
|
("r-plyr" ,r-plyr)
|
||||||
|
("r-reshape2" ,r-reshape2)
|
||||||
|
("r-s4vectors" ,r-s4vectors)
|
||||||
|
("r-stringr" ,r-stringr)
|
||||||
|
("r-tibble" ,r-tibble)
|
||||||
|
("r-vgam" ,r-vgam)))
|
||||||
|
(home-page "https://bioconductor.org/packages/cicero/")
|
||||||
|
(synopsis "Predict cis-co-accessibility from single-cell data")
|
||||||
|
(description
|
||||||
|
"Cicero computes putative cis-regulatory maps from single-cell chromatin
|
||||||
|
accessibility data. It also extends the monocle package for use in chromatin
|
||||||
|
accessibility data.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
|
@ -8416,7 +8416,7 @@ library implementing most of the pipeline's features.")
|
||||||
`(("r-minimal" ,r-minimal)
|
`(("r-minimal" ,r-minimal)
|
||||||
("r-rcas" ,r-rcas)
|
("r-rcas" ,r-rcas)
|
||||||
("guile-next" ,guile-2.2)
|
("guile-next" ,guile-2.2)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-redis" ,guile-redis)))
|
("guile-redis" ,guile-redis)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
`(("guile" ,guile-2.2)
|
`(("guile" ,guile-2.2)
|
||||||
("guile-fibers" ,guile-fibers)
|
("guile-fibers" ,guile-fibers)
|
||||||
("guile-gcrypt" ,guile-gcrypt)
|
("guile-gcrypt" ,guile-gcrypt)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-sqlite3" ,guile-sqlite3)
|
("guile-sqlite3" ,guile-sqlite3)
|
||||||
("guile-git" ,guile-git)
|
("guile-git" ,guile-git)
|
||||||
;; FIXME: this is propagated by "guile-git", but it needs to be among
|
;; FIXME: this is propagated by "guile-git", but it needs to be among
|
||||||
|
|
|
@ -1387,14 +1387,14 @@ or junctions, and always follows hard links.")
|
||||||
(define-public zstd
|
(define-public zstd
|
||||||
(package
|
(package
|
||||||
(name "zstd")
|
(name "zstd")
|
||||||
(version "1.4.1")
|
(version "1.4.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
|
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
|
||||||
"v" version "/zstd-" version ".tar.gz"))
|
"v" version "/zstd-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "180sfl0iz5hy43xcr0gh8kz2vxgpb8rh5d7wmpxn3bxkgs320l2k"))))
|
(base32 "1ja3nrjynmiwwdjrf6crraizkbagp7y414bqqq2ady91nn1hjwqj"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" ;1.1MiB executables and documentation
|
(outputs '("out" ;1.1MiB executables and documentation
|
||||||
"lib" ;1MiB shared library and headers
|
"lib" ;1MiB shared library and headers
|
||||||
|
|
|
@ -118,6 +118,51 @@ experiment that allows a generic to warn if any arguments passed in @code{...}
|
||||||
are not used.")
|
are not used.")
|
||||||
(license license:gpl3)))
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public r-grr
|
||||||
|
(package
|
||||||
|
(name "r-grr")
|
||||||
|
(version "0.9.5")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "grr" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0arbcgrvhkwb5xk4nry1ffg2qj0v8ivhjghdr505ib4357g0c9i9"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "https://cran.r-project.org/web/packages/grr")
|
||||||
|
(synopsis "Alternative implementations of base R functions")
|
||||||
|
(description
|
||||||
|
"This package provides alternative implementations of some base R
|
||||||
|
functions, including @code{sort}, @code{order}, and @code{match}. The
|
||||||
|
functions are simplified but can be faster or have other advantages.")
|
||||||
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public r-matrix-utils
|
||||||
|
(package
|
||||||
|
(name "r-matrix-utils")
|
||||||
|
(version "0.9.7")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "Matrix.utils" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1x64r4aj3gy1dzjjysyrk1j9jq3qsnyrqws8i6bs7q8pf6gvr7va"))))
|
||||||
|
(properties `((upstream-name . "Matrix.utils")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-grr" ,r-grr)
|
||||||
|
("r-matrix" ,r-matrix)))
|
||||||
|
(home-page "https://github.com/cvarrichio/Matrix.utils")
|
||||||
|
(synopsis
|
||||||
|
"Data.frame-Like Operations on Sparse and Dense Matrix Objects")
|
||||||
|
(description
|
||||||
|
"This package implements data manipulation methods such as @code{cast},
|
||||||
|
@code{aggregate}, and @code{merge}/@code{join} for Matrix and Matrix-like
|
||||||
|
objects.")
|
||||||
|
(license license:gpl3)))
|
||||||
|
|
||||||
(define-public r-sys
|
(define-public r-sys
|
||||||
(package
|
(package
|
||||||
(name "r-sys")
|
(name "r-sys")
|
||||||
|
@ -822,6 +867,121 @@ this gives the user direct access to the file system without the need to
|
||||||
well as file saving is available.")
|
well as file saving is available.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
;; The package sources include minified variants of d3.js and non-minified
|
||||||
|
;; source code of d3-jetpack.
|
||||||
|
(define-public r-d3r
|
||||||
|
(package
|
||||||
|
(name "r-d3r")
|
||||||
|
(version "0.8.6")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "d3r" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0vcmiyhd000xyl28k6rm7ba50x5sz5b2cpllxnq36q13qhdnqw6k"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build utils)
|
||||||
|
(guix build r-build-system)
|
||||||
|
(srfi srfi-1)
|
||||||
|
(ice-9 popen))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'process-javascript
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(with-directory-excursion "inst/www/d3/"
|
||||||
|
(call-with-values
|
||||||
|
(lambda ()
|
||||||
|
(unzip2
|
||||||
|
`((,(assoc-ref inputs "d3.v3.js")
|
||||||
|
"v3/dist/d3.min.js")
|
||||||
|
(,(assoc-ref inputs "d3.v4.js")
|
||||||
|
"v4/dist/d3.min.js")
|
||||||
|
(,(assoc-ref inputs "d3.v5.js")
|
||||||
|
"v5/dist/d3.min.js"))))
|
||||||
|
(lambda (sources targets)
|
||||||
|
(for-each (lambda (source target)
|
||||||
|
(format #t "Processing ~a --> ~a~%"
|
||||||
|
source target)
|
||||||
|
(delete-file target)
|
||||||
|
(let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
|
||||||
|
(call-with-output-file target
|
||||||
|
(lambda (port)
|
||||||
|
(dump-port minified port)))))
|
||||||
|
sources targets))))
|
||||||
|
#t)))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-dplyr" ,r-dplyr)
|
||||||
|
("r-htmltools" ,r-htmltools)
|
||||||
|
("r-tidyr" ,r-tidyr)))
|
||||||
|
(native-inputs
|
||||||
|
`(("uglify-js" ,uglify-js)
|
||||||
|
("d3.v3.js"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "https://d3js.org/d3.v3.js")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1arr7sr08vy7wh0nvip2mi7dpyjw4576vf3bm45rp4g5lc1k1x41"))))
|
||||||
|
("d3.v4.js"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "https://d3js.org/d3.v4.js")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0y7byf6kcinfz9ac59jxc4v6kppdazmnyqfav0dm4h550fzfqqlg"))))
|
||||||
|
("d3.v5.js"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "https://d3js.org/d3.v5.js")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0kxvx5pfagxn6nhavdwsdnzyd26g0z5dsfi1pi5dvcmb0c8ipcdn"))))))
|
||||||
|
(home-page "https://github.com/timelyportfolio/d3r")
|
||||||
|
(synopsis "d3.js utilities for R")
|
||||||
|
(description
|
||||||
|
"This package provides a suite of functions to help ease the use of the
|
||||||
|
d3.js visualization library in R. These helpers include
|
||||||
|
@code{htmltools::htmlDependency} functions, hierarchy builders, and conversion
|
||||||
|
tools for @code{partykit}, @code{igraph}, @code{table}, and @code{data.frame}
|
||||||
|
R objects into the JSON format that the d3.js library expects.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
;; We use the latest commit here because the last release was in 2016 while
|
||||||
|
;; the latest commit was in 2018.
|
||||||
|
(define-public r-sankeyd3
|
||||||
|
(let ((commit "fd50a74e29056e0d67d75b4d04de47afb2f932bc")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "r-sankeyd3")
|
||||||
|
(version (git-version "0.3.2" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/fbreitwieser/sankeyD3.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0jrcnfax321pszbpjdifnkbrgbjr43bjzvlzv1p5a8wskksqwiyx"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-d3r" ,r-d3r)
|
||||||
|
("r-htmlwidgets" ,r-htmlwidgets)
|
||||||
|
("r-shiny" ,r-shiny)
|
||||||
|
("r-magrittr" ,r-magrittr)))
|
||||||
|
(home-page "https://github.com/fbreitwieser/sankeyD3")
|
||||||
|
(synopsis "Sankey network graphs from R")
|
||||||
|
(description
|
||||||
|
"This package provides an R library to generate Sankey network graphs
|
||||||
|
in R and Shiny via the D3 visualization library.")
|
||||||
|
;; The R code is licensed under GPLv3+. It includes the non-minified
|
||||||
|
;; JavaScript source code of d3-sankey, which is released under the
|
||||||
|
;; 3-clause BSD license.
|
||||||
|
(license (list license:gpl3+ license:bsd-3)))))
|
||||||
|
|
||||||
(define-public r-crosstalk
|
(define-public r-crosstalk
|
||||||
(package
|
(package
|
||||||
(name "r-crosstalk")
|
(name "r-crosstalk")
|
||||||
|
@ -8675,6 +8835,29 @@ package provides a minimal R interface by relying on the Rcpp package.")
|
||||||
;; hnswlib is released under Version 2.0 of the Apache License.
|
;; hnswlib is released under Version 2.0 of the Apache License.
|
||||||
(license (list license:gpl3 license:asl2.0))))
|
(license (list license:gpl3 license:asl2.0))))
|
||||||
|
|
||||||
|
(define-public r-rcppparallel
|
||||||
|
(package
|
||||||
|
(name "r-rcppparallel")
|
||||||
|
(version "4.4.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "RcppParallel" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1ym0bzs9g6bsg2lz24fisxxa3gypr6xcvrczn304czmrrag9413s"))))
|
||||||
|
(properties `((upstream-name . "RcppParallel")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "http://rcppcore.github.io/RcppParallel")
|
||||||
|
(synopsis "Parallel programming tools for Rcpp")
|
||||||
|
(description
|
||||||
|
"This package provides high level functions for parallel programming with
|
||||||
|
Rcpp. For example, the @code{parallelFor()} function can be used to convert
|
||||||
|
the work of a standard serial @code{for} loop into a parallel one and the
|
||||||
|
@code{parallelReduce()} function can be used for accumulating aggregates or
|
||||||
|
other values.")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public r-ncdf4
|
(define-public r-ncdf4
|
||||||
(package
|
(package
|
||||||
(name "r-ncdf4")
|
(name "r-ncdf4")
|
||||||
|
@ -9279,6 +9462,29 @@ only sparse real matrices in Matrix package format are supported.")
|
||||||
;; BSD-3.
|
;; BSD-3.
|
||||||
(license (list license:bsd-3 license:bsd-2))))
|
(license (list license:bsd-3 license:bsd-2))))
|
||||||
|
|
||||||
|
(define-public r-speedglm
|
||||||
|
(package
|
||||||
|
(name "r-speedglm")
|
||||||
|
(version "0.3-2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "speedglm" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1b25zimk0z7ad62yacqdg0zk0qs0jja4i918ym942xfw4j1z3jjz"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-mass" ,r-mass)
|
||||||
|
("r-matrix" ,r-matrix)))
|
||||||
|
(home-page "https://cran.r-project.org/web/packages/speedglm")
|
||||||
|
(synopsis "Fit linear and generalized linear models to large data sets")
|
||||||
|
(description
|
||||||
|
"This package provides tools for fitting linear models and generalized
|
||||||
|
linear models to large data sets by updating algorithms.")
|
||||||
|
;; Any version of the GPL
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public r-densityclust
|
(define-public r-densityclust
|
||||||
(package
|
(package
|
||||||
(name "r-densityclust")
|
(name "r-densityclust")
|
||||||
|
@ -14199,6 +14405,25 @@ Molecular Epidemiology\" (SCRIME). The main focus is on SNP data, but most of
|
||||||
the functions can also be applied to other types of categorical data.")
|
the functions can also be applied to other types of categorical data.")
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public r-pbmcapply
|
||||||
|
(package
|
||||||
|
(name "r-pbmcapply")
|
||||||
|
(version "1.5.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "pbmcapply" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0i58gcqpnbyvc448qfgm45b7rpbmrnagsvk1h1hsqchbbicfslnz"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "https://github.com/kvnkuang/pbmcapply")
|
||||||
|
(synopsis "Track the progress of apply procedures with a progress bar")
|
||||||
|
(description
|
||||||
|
"This light-weight package helps you track and visualize the progress of
|
||||||
|
parallel versions of vectorized R functions of the @code{mc*apply} family.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public r-blme
|
(define-public r-blme
|
||||||
(package
|
(package
|
||||||
(name "r-blme")
|
(name "r-blme")
|
||||||
|
@ -14530,3 +14755,140 @@ including regression, classification and ranking. The package is made to be
|
||||||
extensible, so that users are also allowed to define their own objectives
|
extensible, so that users are also allowed to define their own objectives
|
||||||
easily.")
|
easily.")
|
||||||
(license license:asl2.0)))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public r-umap
|
||||||
|
(package
|
||||||
|
(name "r-umap")
|
||||||
|
(version "0.2.2.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "umap" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1s82w9gy1387h7cprjfbhp49l89zbmn3gc9s0wzqb1s73nza9n31"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-rcpp" ,r-rcpp)
|
||||||
|
("r-reticulate" ,r-reticulate)
|
||||||
|
("r-rspectra" ,r-rspectra)))
|
||||||
|
(home-page "https://github.com/tkonopka/umap")
|
||||||
|
(synopsis "Uniform manifold approximation and projection")
|
||||||
|
(description
|
||||||
|
"Uniform manifold approximation and projection is a technique for
|
||||||
|
dimension reduction. This package provides an interface to the UMAP algorithm
|
||||||
|
in R, including a translation of the original algorithm into R.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-uwot
|
||||||
|
(package
|
||||||
|
(name "r-uwot")
|
||||||
|
(version "0.1.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "uwot" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1mq6qi8q9xslh1b99srj480s2a08pfv4bs9m2ykyijj44j9fcdj9"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-dqrng" ,r-dqrng)
|
||||||
|
("r-fnn" ,r-fnn)
|
||||||
|
("r-irlba" ,r-irlba)
|
||||||
|
("r-matrix" ,r-matrix)
|
||||||
|
("r-rcpp" ,r-rcpp)
|
||||||
|
("r-rcppannoy" ,r-rcppannoy)
|
||||||
|
("r-rcppparallel" ,r-rcppparallel)
|
||||||
|
("r-rcppprogress" ,r-rcppprogress)
|
||||||
|
("r-rspectra" ,r-rspectra)))
|
||||||
|
(home-page "https://github.com/jlmelville/uwot")
|
||||||
|
(synopsis "Uniform manifold approximation and projection")
|
||||||
|
(description
|
||||||
|
"This package provides an implementation of the Uniform Manifold
|
||||||
|
Approximation and Projection dimensionality reduction by McInnes et
|
||||||
|
al. (2018). It also provides means to transform new data and to carry out
|
||||||
|
supervised dimensionality reduction. An implementation of the related
|
||||||
|
LargeVis method of Tang et al. (2016) is also provided.")
|
||||||
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public r-kableextra
|
||||||
|
(package
|
||||||
|
(name "r-kableextra")
|
||||||
|
(version "1.1.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "kableExtra" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1nicvw06xsf3a1f5c10mih07b76m2v5s5h165vmz0qx6n1a3492i"))))
|
||||||
|
(properties `((upstream-name . "kableExtra")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-digest" ,r-digest)
|
||||||
|
("r-glue" ,r-glue)
|
||||||
|
("r-htmltools" ,r-htmltools)
|
||||||
|
("r-knitr" ,r-knitr)
|
||||||
|
("r-magrittr" ,r-magrittr)
|
||||||
|
("r-readr" ,r-readr)
|
||||||
|
("r-rmarkdown" ,r-rmarkdown)
|
||||||
|
("r-rstudioapi" ,r-rstudioapi)
|
||||||
|
("r-rvest" ,r-rvest)
|
||||||
|
("r-scales" ,r-scales)
|
||||||
|
("r-stringr" ,r-stringr)
|
||||||
|
("r-viridislite" ,r-viridislite)
|
||||||
|
("r-webshot" ,r-webshot)
|
||||||
|
("r-xml2" ,r-xml2)))
|
||||||
|
(home-page "https://haozhu233.github.io/kableExtra/")
|
||||||
|
(synopsis "Construct complex tables with pipe syntax")
|
||||||
|
(description
|
||||||
|
"Build complex HTML or LaTeX tables using @code{kable()} from
|
||||||
|
@code{knitr} and the piping syntax from @code{magrittr}. The function
|
||||||
|
@code{kable()} is a light weight table generator coming from @code{knitr}.
|
||||||
|
This package simplifies the way to manipulate the HTML or LaTeX codes
|
||||||
|
generated by @code{kable()} and allows users to construct complex tables and
|
||||||
|
customize styles using a readable syntax.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-glasso
|
||||||
|
(package
|
||||||
|
(name "r-glasso")
|
||||||
|
(version "1.10")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "glasso" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0nshpx14v2yny7lr8ll6nnz71n0f02sddh2c2dglfprbk89p9yp6"))))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(native-inputs `(("gfortran" ,gfortran)))
|
||||||
|
(home-page "http://www-stat.stanford.edu/~tibs/glasso")
|
||||||
|
(synopsis "Graphical Lasso: estimation of Gaussian graphical models")
|
||||||
|
(description
|
||||||
|
"This is a package for estimation of a sparse inverse covariance matrix
|
||||||
|
using a lasso (L1) penalty. Facilities are provided for estimates along a
|
||||||
|
path of values for the regularization parameter.")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public r-rhpcblasctl
|
||||||
|
(package
|
||||||
|
(name "r-rhpcblasctl")
|
||||||
|
(version "0.18-205")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "RhpcBLASctl" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1ls2286fvrp1g7p8v4l6axznychh3qndranfpzqz806cm9ml1cdp"))))
|
||||||
|
(properties `((upstream-name . "RhpcBLASctl")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "http://prs.ism.ac.jp/~nakama/Rhpc/")
|
||||||
|
(synopsis "Control the number of threads on BLAS")
|
||||||
|
(description
|
||||||
|
"This package allows you to control the number of threads the BLAS
|
||||||
|
library uses. It is also possible to control the number of threads in
|
||||||
|
OpenMP.")
|
||||||
|
(license license:agpl3+)))
|
||||||
|
|
|
@ -131,16 +131,15 @@ communication, encryption, decryption, signatures, etc.")
|
||||||
(define-public signify
|
(define-public signify
|
||||||
(package
|
(package
|
||||||
(name "signify")
|
(name "signify")
|
||||||
(version "25")
|
(version "26")
|
||||||
(home-page "https://github.com/aperezdc/signify")
|
(home-page "https://github.com/aperezdc/signify")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method url-fetch)
|
||||||
(uri (git-reference (url home-page)
|
(uri (string-append "https://github.com/aperezdc/signify/releases"
|
||||||
(commit (string-append "v" version))))
|
"/download/v" version "/signify-" version ".tar.xz"))
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0zg0rffxwj2a71s1bllhrn491xsmirg9sshpq8f3vl25lv4c2cnq"))))
|
"16sl1yq5bbsads5q4a0fbrf31b0x8r1hi4wagl90nbrhrca98baw"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
;; TODO Build with libwaive (described in README.md), to implement something
|
;; TODO Build with libwaive (described in README.md), to implement something
|
||||||
;; like OpenBSD's pledge().
|
;; like OpenBSD's pledge().
|
||||||
|
|
|
@ -218,7 +218,7 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
|
||||||
(define-public grammalecte
|
(define-public grammalecte
|
||||||
(package
|
(package
|
||||||
(name "grammalecte")
|
(name "grammalecte")
|
||||||
(version "1.2")
|
(version "1.2.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch/zipbomb)
|
(method url-fetch/zipbomb)
|
||||||
|
@ -226,7 +226,7 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
|
||||||
"Grammalecte-fr-v" version ".zip"))
|
"Grammalecte-fr-v" version ".zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0dwizai6w9yn617y7cnqdiwv77vn22p18s9sypypbl1bl695cnma"))))
|
"1j2avdk8hcgcv0lahp029qzpdb2rnys38hc64jy30awzx64fa6i4"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(home-page "https://grammalecte.net")
|
(home-page "https://grammalecte.net")
|
||||||
(synopsis "French spelling and grammar checker")
|
(synopsis "French spelling and grammar checker")
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
|
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
|
||||||
|
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -372,14 +373,14 @@ to result in system-wide compromise.")
|
||||||
(define-public unbound
|
(define-public unbound
|
||||||
(package
|
(package
|
||||||
(name "unbound")
|
(name "unbound")
|
||||||
(version "1.9.1")
|
(version "1.9.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.unbound.net/downloads/unbound-"
|
(uri (string-append "https://www.unbound.net/downloads/unbound-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1iarvk0i92asvrkpla9z55aan20k6pklzpck9yk4rfnchsdvzh63"))))
|
(base32 "15bbrczibap30db8a1pmqhvjbmkxms39hwiivby7f4j5rz2wwykg"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" "python"))
|
(outputs '("out" "python"))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
|
|
@ -57,7 +57,8 @@
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages xorg))
|
#:use-module (gnu packages xorg)
|
||||||
|
#:use-module (gnu packages wxwidgets))
|
||||||
|
|
||||||
(define-public chmlib
|
(define-public chmlib
|
||||||
(package
|
(package
|
||||||
|
@ -332,3 +333,27 @@ following formats:
|
||||||
@item XHTML
|
@item XHTML
|
||||||
@end enumerate")
|
@end enumerate")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public xchm
|
||||||
|
(package
|
||||||
|
(name "xchm")
|
||||||
|
(version "1.30")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/rzvncj/xCHM"
|
||||||
|
"/releases/download/"
|
||||||
|
version "/xchm-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1865wb3ppmx5y12rqfhv4wri0lfdah41zsfz94xb8gym80m8zac5"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("wxwidgets" ,wxwidgets)
|
||||||
|
("chmlib" ,chmlib)))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(home-page "https://github.com/rzvncj/xCHM")
|
||||||
|
(synopsis "CHM file viewer")
|
||||||
|
(description "xCHM is a graphical CHM file viewer. It is a frontend to
|
||||||
|
the CHM library CHMLIB.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
;;; Copyright © 2019 Amar Singh <nly@disroot.org>
|
;;; Copyright © 2019 Amar Singh <nly@disroot.org>
|
||||||
;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
|
;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
|
||||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org>
|
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org>
|
||||||
|
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -948,6 +949,33 @@ regexp-like arguments to @code{skip-chars-forward} and
|
||||||
@code{skip-chars-backward}.")
|
@code{skip-chars-backward}.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-bug-hunter
|
||||||
|
(let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "emacs-bug-hunter")
|
||||||
|
(version (git-version "1.3.1" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/Malabarba/elisp-bug-hunter.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name commit))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("emacs-seq" ,emacs-seq)))
|
||||||
|
(home-page "https://github.com/Malabarba/elisp-bug-hunter")
|
||||||
|
(synopsis "Hunt down errors by bisecting elisp files")
|
||||||
|
(description
|
||||||
|
"The Bug Hunter is an Emacs library that finds the source of an error
|
||||||
|
or unexpected behavior inside an elisp configuration file (typically
|
||||||
|
@file{init.el} or @file{.emacs}).")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Web browsing.
|
;;; Web browsing.
|
||||||
|
@ -4503,7 +4531,7 @@ parallel.")
|
||||||
(define-public emacs-request
|
(define-public emacs-request
|
||||||
(package
|
(package
|
||||||
(name "emacs-request")
|
(name "emacs-request")
|
||||||
(version "0.3.0")
|
(version "0.3.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -4512,7 +4540,7 @@ parallel.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
|
"0fhhd349l4iqkrjxqzpckfk2w45x2g4cccpm1dqzv9m49md1wphx"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("emacs-deferred" ,emacs-deferred)))
|
`(("emacs-deferred" ,emacs-deferred)))
|
||||||
|
@ -8772,7 +8800,7 @@ internally.")
|
||||||
(define-public emacs-gitpatch
|
(define-public emacs-gitpatch
|
||||||
(package
|
(package
|
||||||
(name "emacs-gitpatch")
|
(name "emacs-gitpatch")
|
||||||
(version "0.5.0")
|
(version "0.5.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -8781,7 +8809,7 @@ internally.")
|
||||||
(commit (string-append "v" version))))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4"))))
|
(base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(home-page "https://github.com/tumashu/gitpatch")
|
(home-page "https://github.com/tumashu/gitpatch")
|
||||||
(synopsis "Mail git patch from Emacs")
|
(synopsis "Mail git patch from Emacs")
|
||||||
|
@ -10454,30 +10482,27 @@ tables of contents.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public emacs-org-ql
|
(define-public emacs-org-ql
|
||||||
(let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9")
|
(package
|
||||||
(version "0.1-pre")
|
(name "emacs-org-ql")
|
||||||
(revision "1"))
|
(version "0.1")
|
||||||
(package
|
(source (origin
|
||||||
(name "emacs-org-ql")
|
(method git-fetch)
|
||||||
(version (git-version version revision commit))
|
(uri (git-reference
|
||||||
(source (origin
|
(url "https://github.com/alphapapa/org-ql")
|
||||||
(method git-fetch)
|
(commit version)))
|
||||||
(uri (git-reference
|
(sha256
|
||||||
(url "https://github.com/alphapapa/org-ql")
|
(base32
|
||||||
(commit commit)))
|
"1nvzirn1lmgmgl7irbsc1n391a2cw8gmvwm3pa228l2c1gcx8kd8"))
|
||||||
(sha256
|
(file-name (git-file-name name version))))
|
||||||
(base32
|
(build-system emacs-build-system)
|
||||||
"0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991"))
|
(propagated-inputs
|
||||||
(file-name (git-file-name name version))))
|
`(("emacs-s" ,emacs-s)
|
||||||
(build-system emacs-build-system)
|
("emacs-dash" ,emacs-dash)))
|
||||||
(propagated-inputs
|
(home-page "https://github.com/alphapapa/org-ql/")
|
||||||
`(("emacs-s" ,emacs-s)
|
(synopsis "Query language for Org buffers")
|
||||||
("emacs-dash" ,emacs-dash)))
|
(description "This package provides a Lispy query language for Org
|
||||||
(home-page "https://github.com/alphapapa/org-ql")
|
|
||||||
(synopsis "Query language for Org buffers")
|
|
||||||
(description "This package provides a Lispy query language for Org
|
|
||||||
files, allowing for actions to be performed based on search criteria.")
|
files, allowing for actions to be performed based on search criteria.")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public emacs-parsebib
|
(define-public emacs-parsebib
|
||||||
(package
|
(package
|
||||||
|
@ -13250,7 +13275,7 @@ the GIF result.")
|
||||||
(define-public emacs-google-translate
|
(define-public emacs-google-translate
|
||||||
(package
|
(package
|
||||||
(name "emacs-google-translate")
|
(name "emacs-google-translate")
|
||||||
(version "0.11.17")
|
(version "0.11.18")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -13260,7 +13285,7 @@ the GIF result.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"05ljjw7kbnszygw3w085kv57swfiiqxri2b5xvsf5dw3pc3g7j3c"))))
|
"1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(home-page "https://github.com/atykhonov/google-translate")
|
(home-page "https://github.com/atykhonov/google-translate")
|
||||||
(synopsis "Emacs interface to Google Translate")
|
(synopsis "Emacs interface to Google Translate")
|
||||||
|
@ -16656,6 +16681,26 @@ Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
|
||||||
acting like notes that are made @emph{in} the document.")
|
acting like notes that are made @emph{in} the document.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-org-redmine
|
||||||
|
(let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
|
||||||
|
(package
|
||||||
|
(name "emacs-org-redmine")
|
||||||
|
(version (git-version "0.1" "1" commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/gongo/org-redmine.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/gongo/org-redmine/")
|
||||||
|
(synopsis "Redmine tools using Emacs")
|
||||||
|
(description "This program provides an Emacs client for Redmine.")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
||||||
(define-public emacs-multi-term
|
(define-public emacs-multi-term
|
||||||
(let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
|
(let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
|
||||||
(package
|
(package
|
||||||
|
@ -16747,3 +16792,137 @@ connections using TLS encryption.")
|
||||||
"Zerodark is a dark theme inspired from One Dark and Niflheim.
|
"Zerodark is a dark theme inspired from One Dark and Niflheim.
|
||||||
An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
|
An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-gnus-alias
|
||||||
|
(package
|
||||||
|
(name "emacs-gnus-alias")
|
||||||
|
(version "20150316")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/hexmode/gnus-alias.git")
|
||||||
|
(commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://melpa.org/#/gnus-alias")
|
||||||
|
(synopsis "Alternative to @code{gnus-posting-styles}")
|
||||||
|
(description "This Emacs add-on provides a simple mechanism to switch
|
||||||
|
Identities when using a @code{message-mode} or a @code{message-mode} derived
|
||||||
|
mode. Identities can include @code{From} and @code{Organisation} headers,
|
||||||
|
extra headers, body and signature. Other features include:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Switch Identities in a message buffer.
|
||||||
|
@item Access original message to help determine Identity of the followup/reply
|
||||||
|
message.
|
||||||
|
@item Act on a forwarded message as if it were a message being replied to.
|
||||||
|
@item Start a new message with a given Identity pre-selected.
|
||||||
|
@end itemize")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public emacs-ox-epub
|
||||||
|
(package
|
||||||
|
(name "emacs-ox-epub")
|
||||||
|
(version "0.3")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/ofosos/ox-epub.git")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/ofosos/ox-epub")
|
||||||
|
(synopsis "Export org mode projects to EPUB")
|
||||||
|
(description "@code{ox-epub} extends the (X)HTML exporter to generate
|
||||||
|
@code{.epub} files directly from OrgMode. This will export EPUB version 2,
|
||||||
|
which should give broad compatibility. It should also be relatiely easy to
|
||||||
|
convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
|
||||||
|
zip utility (default is @code{zip}).")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-ox-pandoc
|
||||||
|
(package
|
||||||
|
(name "emacs-ox-pandoc")
|
||||||
|
(version "20180510")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/kawabata/ox-pandoc.git")
|
||||||
|
(commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("pandoc" ,ghc-pandoc)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("emacs-dash" ,emacs-dash)
|
||||||
|
("emacs-ht" ,emacs-ht)))
|
||||||
|
(home-page "https://github.com/kawabata/ox-pandoc")
|
||||||
|
(synopsis "Org exporter for Pandoc")
|
||||||
|
(description "@code{ox-pandoc} is an exporter for converting Org-mode
|
||||||
|
files to numerous other formats via Pandoc.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-wc-mode
|
||||||
|
(package
|
||||||
|
(name "emacs-wc-mode")
|
||||||
|
(version "1.3")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/bnbeckwith/wc-mode.git")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/bnbeckwith/wc-mode")
|
||||||
|
(synopsis "Running word count with goals (minor mode)")
|
||||||
|
(description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
|
||||||
|
for Emacs buffers as well as a modeline addition with live word, line and
|
||||||
|
character counts. Additionally, a user can set specific goals for adding or
|
||||||
|
deleting words. These goals were partly inspired by 750words.com where the
|
||||||
|
goal of the site is to encourage writing by setting a goal of 750 words at a
|
||||||
|
time.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-mastodon
|
||||||
|
(package
|
||||||
|
(name "emacs-mastodon")
|
||||||
|
(version "0.9.0")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/jdenen/mastodon.el.git")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
|
||||||
|
(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/jdenen/mastodon.el")
|
||||||
|
(synopsis "Emacs client for Mastodon")
|
||||||
|
(description "@code{mastodon.el} is an Emacs client for Mastodon, the
|
||||||
|
federated microblogging social network.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
|
@ -184,7 +184,7 @@ removable devices or support for multimedia.")
|
||||||
(define-public terminology
|
(define-public terminology
|
||||||
(package
|
(package
|
||||||
(name "terminology")
|
(name "terminology")
|
||||||
(version "1.4.1")
|
(version "1.5.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
|
@ -192,7 +192,7 @@ removable devices or support for multimedia.")
|
||||||
"terminology/terminology-" version ".tar.xz"))
|
"terminology/terminology-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0mm9v5a94369is3kaarnr3a28wy42wslzi1mcisaidlcldgv7f6p"))
|
"0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
;; Remove the bundled fonts.
|
;; Remove the bundled fonts.
|
||||||
(snippet
|
(snippet
|
||||||
|
|
|
@ -3263,26 +3263,19 @@ tactics.")
|
||||||
(define-public starfighter
|
(define-public starfighter
|
||||||
(package
|
(package
|
||||||
(name "starfighter")
|
(name "starfighter")
|
||||||
(version "2.0.0.2")
|
(version "2.0.0.3")
|
||||||
;; As recommended by the upstream maintainer, use the git source code
|
|
||||||
;; instead of the released source tarball until missing files in the tarball
|
|
||||||
;; are added. The 'url-fetch' method may be appropriate again after the
|
|
||||||
;; next update. See https://github.com/pr-starfighter/starfighter/issues/1
|
|
||||||
;; for more details.
|
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method url-fetch)
|
||||||
(uri (git-reference
|
(uri (string-append
|
||||||
(url "https://github.com/pr-starfighter/starfighter")
|
"https://github.com/pr-starfighter/starfighter/releases"
|
||||||
(commit (string-append "v" version))))
|
"/download/v" version "/starfighter-"
|
||||||
(file-name (git-file-name name version))
|
(version-major+minor version) "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0p81ywgm2dxjbpmbsgx4f2d83sy6lv3hinrr1vzprkf9viidqnd2"))))
|
"13vi5kh9ahws4f52421cbyw0jn7pmbnld358lqfmr6flql7ilj3b"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("autoconf" ,autoconf)
|
`(("pkg-config" ,pkg-config)))
|
||||||
("automake" ,automake)
|
|
||||||
("pkg-config" ,pkg-config)))
|
|
||||||
(inputs
|
(inputs
|
||||||
`(("pango" ,pango)
|
`(("pango" ,pango)
|
||||||
("sdl2" ,sdl2)
|
("sdl2" ,sdl2)
|
||||||
|
@ -6768,7 +6761,7 @@ fight each other on an arena-like map.")
|
||||||
(define-public flare-engine
|
(define-public flare-engine
|
||||||
(package
|
(package
|
||||||
(name "flare-engine")
|
(name "flare-engine")
|
||||||
(version "1.10")
|
(version "1.11")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -6777,7 +6770,7 @@ fight each other on an arena-like map.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"19l83145ya1wk666acr91b6917a63ak7l77d10i5im8xfhv29ml4"))))
|
"1mqr1s72p5bdh4kq2a8hg72dk8lwnddicjnd2cdp1sbfa9lmjym8"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ;no test
|
`(#:tests? #f ;no test
|
||||||
|
@ -6796,7 +6789,7 @@ action RPGs.")
|
||||||
(define-public flare-game
|
(define-public flare-game
|
||||||
(package
|
(package
|
||||||
(name "flare-game")
|
(name "flare-game")
|
||||||
(version "1.10")
|
(version "1.11")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -6805,7 +6798,7 @@ action RPGs.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0dx4f1j1n3p4q3h0r0fb89f0llvhg9lia0s247pacff3r88ljihk"))))
|
"0bd5g7sd89a9176ilr408hdqzdfv4j7wj0idd685c1n6s01c3h6p"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ;no test
|
`(#:tests? #f ;no test
|
||||||
|
@ -7245,7 +7238,7 @@ and bring the war to your enemy.")
|
||||||
(define-public harmonist
|
(define-public harmonist
|
||||||
(package
|
(package
|
||||||
(name "harmonist")
|
(name "harmonist")
|
||||||
(version "0.1")
|
(version "0.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -7254,7 +7247,7 @@ and bring the war to your enemy.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"006vkhb84v78ssfwppc221n4za0y02ypg7ihrihin4vj4gllmzf7"))))
|
"0hqy9kqwgirwkq1v3vj1hp9m93hjvdj4nxcfbjfvvwk2bbzri3s2"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "git.tuxfamily.org/harmonist/harmonist"))
|
'(#:import-path "git.tuxfamily.org/harmonist/harmonist"))
|
||||||
|
|
|
@ -8195,6 +8195,9 @@ advanced image management tool")
|
||||||
("python2-pygobject" ,python2-pygobject)
|
("python2-pygobject" ,python2-pygobject)
|
||||||
("python2-psutil" ,python2-psutil)
|
("python2-psutil" ,python2-psutil)
|
||||||
("vte" ,vte)))
|
("vte" ,vte)))
|
||||||
|
(propagated-inputs
|
||||||
|
;; Terminator refuses to start when these are not present.
|
||||||
|
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:python ,python-2 ;Python 3 not supported
|
`(#:python ,python-2 ;Python 3 not supported
|
||||||
#:phases
|
#:phases
|
||||||
|
|
|
@ -48,6 +48,8 @@
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
#:use-module (gnu packages lua)
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages mp3)
|
#:use-module (gnu packages mp3)
|
||||||
|
#:use-module (gnu packages textutils)
|
||||||
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
|
@ -216,7 +218,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||||
(package
|
(package
|
||||||
(inherit go-1.4)
|
(inherit go-1.4)
|
||||||
(name "go")
|
(name "go")
|
||||||
(version "1.11.10")
|
(version "1.11.12")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -224,7 +226,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||||
name version ".src.tar.gz"))
|
name version ".src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06rw962xigbrxblp942jbh7k133blpxg2xfrxi32qdhxkmmfj9yz"))))
|
"09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments go-1.4)
|
(substitute-keyword-arguments (package-arguments go-1.4)
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
|
@ -397,7 +399,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||||
(package
|
(package
|
||||||
(inherit go-1.4)
|
(inherit go-1.4)
|
||||||
(name "go")
|
(name "go")
|
||||||
(version "1.12.1")
|
(version "1.12.7")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -405,7 +407,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||||
name version ".src.tar.gz"))
|
name version ".src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"12l12mmgqvy3nbscy7sz83qj4m6iz5a322aq9sk45f7l9ml2gq8b"))))
|
"04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments go-1.4)
|
(substitute-keyword-arguments (package-arguments go-1.4)
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
|
@ -578,7 +580,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||||
,@(package-native-inputs go-1.4)))
|
,@(package-native-inputs go-1.4)))
|
||||||
(supported-systems %supported-systems)))
|
(supported-systems %supported-systems)))
|
||||||
|
|
||||||
(define-public go go-1.11)
|
(define-public go go-1.12)
|
||||||
|
|
||||||
(define-public go-github-com-alsm-ioprogress
|
(define-public go-github-com-alsm-ioprogress
|
||||||
(let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
|
(let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
|
||||||
|
@ -764,6 +766,79 @@ expressing configuration which is easy for both humans and machines to read.")
|
||||||
(home-page "https://github.com/hashicorp/hcl")
|
(home-page "https://github.com/hashicorp/hcl")
|
||||||
(license license:mpl2.0))))
|
(license license:mpl2.0))))
|
||||||
|
|
||||||
|
(define-public go-golang-org-x-tools
|
||||||
|
(let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "go-golang-org-x-tools")
|
||||||
|
(version (git-version "0.1.3" revision commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://go.googlesource.com/tools")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (string-append "go.googlesource.com-tools-"
|
||||||
|
version "-checkout"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:import-path "golang.org/x/tools"
|
||||||
|
;; Source-only package
|
||||||
|
#:tests? #f
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; Source-only package
|
||||||
|
(delete 'build))))
|
||||||
|
(synopsis "Tools that support the Go programming language")
|
||||||
|
(description "This package provides miscellaneous tools that support the
|
||||||
|
Go programming language.")
|
||||||
|
(home-page "https://go.googlesource.com/tools/")
|
||||||
|
(license license:bsd-3))))
|
||||||
|
|
||||||
|
(define-public go-golang-org-x-crypto
|
||||||
|
(let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
|
||||||
|
(revision "3"))
|
||||||
|
(package
|
||||||
|
(name "go-golang-org-x-crypto")
|
||||||
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://go.googlesource.com/crypto")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (string-append "go.googlesource.com-crypto-"
|
||||||
|
version "-checkout"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "golang.org/x/crypto"
|
||||||
|
;; Source-only package
|
||||||
|
#:tests? #f
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; Source-only package
|
||||||
|
(delete 'build)
|
||||||
|
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(map (lambda (file)
|
||||||
|
(make-file-writable file))
|
||||||
|
(find-files
|
||||||
|
(string-append (assoc-ref outputs "out")
|
||||||
|
"/src/golang.org/x/crypto/ed25519/testdata")
|
||||||
|
".*\\.gz$"))
|
||||||
|
#t)))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
|
||||||
|
(synopsis "Supplementary cryptographic libraries in Go")
|
||||||
|
(description "This package provides supplementary cryptographic libraries
|
||||||
|
for the Go language.")
|
||||||
|
(home-page "https://go.googlesource.com/crypto/")
|
||||||
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-crypto-bcrypt
|
(define-public go-golang-org-x-crypto-bcrypt
|
||||||
(let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
|
(let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
|
||||||
(revision "3"))
|
(revision "3"))
|
||||||
|
@ -929,8 +1004,8 @@ fixed-output-length hash functions and the SHAKE variable-output-length hash
|
||||||
functions defined by FIPS-202.")))
|
functions defined by FIPS-202.")))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-ipv4
|
(define-public go-golang-org-x-net-ipv4
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-ipv4")
|
(name "go-golang-org-x-net-ipv4")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -942,11 +1017,13 @@ functions defined by FIPS-202.")))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/ipv4"
|
`(#:import-path "golang.org/x/net/ipv4"
|
||||||
#:unpack-path "golang.org/x/net"))
|
#:unpack-path "golang.org/x/net"))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
|
||||||
(synopsis "Go IPv4 support")
|
(synopsis "Go IPv4 support")
|
||||||
(description "This package provides @code{ipv4}, which implements IP-level
|
(description "This package provides @code{ipv4}, which implements IP-level
|
||||||
socket options for the Internet Protocol version 4.")
|
socket options for the Internet Protocol version 4.")
|
||||||
|
@ -954,8 +1031,8 @@ socket options for the Internet Protocol version 4.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-bpf
|
(define-public go-golang-org-x-net-bpf
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-bpf")
|
(name "go-golang-org-x-net-bpf")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -968,11 +1045,13 @@ socket options for the Internet Protocol version 4.")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/bpf"
|
`(#:import-path "golang.org/x/net/bpf"
|
||||||
#:unpack-path "golang.org/x/net"))
|
#:unpack-path "golang.org/x/net"))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
|
||||||
(synopsis "Berkeley Packet Filters (BPF) in Go")
|
(synopsis "Berkeley Packet Filters (BPF) in Go")
|
||||||
(description "This package provides a Go implementation of the Berkeley
|
(description "This package provides a Go implementation of the Berkeley
|
||||||
Packet Filter (BPF) virtual machine.")
|
Packet Filter (BPF) virtual machine.")
|
||||||
|
@ -980,8 +1059,8 @@ Packet Filter (BPF) virtual machine.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-context
|
(define-public go-golang-org-x-net-context
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-context")
|
(name "go-golang-org-x-net-context")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -994,7 +1073,7 @@ Packet Filter (BPF) virtual machine.")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/context"
|
`(#:import-path "golang.org/x/net/context"
|
||||||
|
@ -1007,8 +1086,8 @@ request-scoped values across API boundaries and between processes.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-internal-socks
|
(define-public go-golang-org-x-net-internal-socks
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-internal-socks")
|
(name "go-golang-org-x-net-internal-socks")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -1021,7 +1100,7 @@ request-scoped values across API boundaries and between processes.")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/internal/socks"
|
`(#:import-path "golang.org/x/net/internal/socks"
|
||||||
|
@ -1032,8 +1111,8 @@ request-scoped values across API boundaries and between processes.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-internal-socket
|
(define-public go-golang-org-x-net-internal-socket
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-internal-socket")
|
(name "go-golang-org-x-net-internal-socket")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -1046,19 +1125,21 @@ request-scoped values across API boundaries and between processes.")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/internal/socket"
|
`(#:import-path "golang.org/x/net/internal/socket"
|
||||||
#:unpack-path "golang.org/x/net"))
|
#:unpack-path "golang.org/x/net"))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
|
||||||
(synopsis "")
|
(synopsis "")
|
||||||
(description "")
|
(description "")
|
||||||
(home-page "https://go.googlesource.com/net/")
|
(home-page "https://go.googlesource.com/net/")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-internal-iana
|
(define-public go-golang-org-x-net-internal-iana
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-internal-iana")
|
(name "go-golang-org-x-net-internal-iana")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -1071,7 +1152,7 @@ request-scoped values across API boundaries and between processes.")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/internal/iana"
|
`(#:import-path "golang.org/x/net/internal/iana"
|
||||||
|
@ -1083,8 +1164,8 @@ number resources managed by the Internet Assigned Numbers Authority (IANA).")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-ipv6
|
(define-public go-golang-org-x-net-ipv6
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-ipv6")
|
(name "go-golang-org-x-net-ipv6")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -1097,11 +1178,13 @@ number resources managed by the Internet Assigned Numbers Authority (IANA).")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/ipv6"
|
`(#:import-path "golang.org/x/net/ipv6"
|
||||||
#:unpack-path "golang.org/x/net"))
|
#:unpack-path "golang.org/x/net"))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
|
||||||
(synopsis "Go IPv6 support")
|
(synopsis "Go IPv6 support")
|
||||||
(description "This package provides @code{ipv6}, which implements
|
(description "This package provides @code{ipv6}, which implements
|
||||||
IP-level socket options for the Internet Protocol version 6.")
|
IP-level socket options for the Internet Protocol version 6.")
|
||||||
|
@ -1109,8 +1192,8 @@ IP-level socket options for the Internet Protocol version 6.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-net-proxy
|
(define-public go-golang-org-x-net-proxy
|
||||||
(let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
|
(let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-net-proxy")
|
(name "go-golang-org-x-net-proxy")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -1123,7 +1206,7 @@ IP-level socket options for the Internet Protocol version 6.")
|
||||||
version "-checkout"))
|
version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
|
"18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/net/proxy"
|
`(#:import-path "golang.org/x/net/proxy"
|
||||||
|
@ -1135,8 +1218,8 @@ for a variety of protocols to proxy network data.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
(define-public go-golang-org-x-sys-unix
|
(define-public go-golang-org-x-sys-unix
|
||||||
(let ((commit "4d1cda033e0619309c606fc686de3adcf599539e")
|
(let ((commit "5ed2794edfdc1c54dfb61d619c5944285f35d444")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-golang-org-x-sys-unix")
|
(name "go-golang-org-x-sys-unix")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -1148,7 +1231,7 @@ for a variety of protocols to proxy network data.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1wgaldbnkmh568v8kkgvnmkskaj96fqrbzhx23yji2kh1432q6gh"))))
|
"1qy8hmv5nwpcywk7sh1pg0s32jwpd4ykh492xzl4mmxy8galwsr5"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "golang.org/x/sys/unix"
|
`(#:import-path "golang.org/x/sys/unix"
|
||||||
|
@ -1170,59 +1253,55 @@ for low-level interaction with the operating system.")
|
||||||
(description "Thi spackage provides @code{cpu}, which offers tools for CPU
|
(description "Thi spackage provides @code{cpu}, which offers tools for CPU
|
||||||
feature detection in Go.")))
|
feature detection in Go.")))
|
||||||
|
|
||||||
|
(define-public go-golang-org-x-text-encoding
|
||||||
|
(package
|
||||||
|
(name "go-golang-org-x-text-encoding")
|
||||||
|
(version "0.3.2")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://go.googlesource.com/text")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (string-append "go.googlesource.com-text-"
|
||||||
|
version "-checkout"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:import-path "golang.org/x/text/encoding"
|
||||||
|
#:unpack-path "golang.org/x/text"))
|
||||||
|
(synopsis "Interface for character encodings for conversion to and from
|
||||||
|
UTF-8")
|
||||||
|
(description "This package defines an interface for character encodings.
|
||||||
|
Specific implementations of encoding for CJK text as well as simple character
|
||||||
|
encodings are provided in subpackages.")
|
||||||
|
(home-page "https://go.googlesource.com/text")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public go-golang-org-x-text-transform
|
(define-public go-golang-org-x-text-transform
|
||||||
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
|
(package
|
||||||
(revision "1"))
|
(inherit go-golang-org-x-text-encoding)
|
||||||
(package
|
(name "go-golang-org-x-text-transform")
|
||||||
(name "go-golang-org-x-text-transform")
|
(arguments
|
||||||
(version (git-version "0.0.0" revision commit))
|
`(#:import-path "golang.org/x/text/transform"
|
||||||
(source (origin
|
#:unpack-path "golang.org/x/text"))
|
||||||
(method git-fetch)
|
(synopsis "Go text transformation")
|
||||||
(uri (git-reference
|
(description "This package provides @code{transform}, which provides
|
||||||
(url "https://go.googlesource.com/text")
|
|
||||||
(commit commit)))
|
|
||||||
(file-name (string-append "go.googlesource.com-text-"
|
|
||||||
version "-checkout"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
|
|
||||||
(build-system go-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:import-path "golang.org/x/text/transform"
|
|
||||||
#:unpack-path "golang.org/x/text"))
|
|
||||||
(synopsis "Go text transformation")
|
|
||||||
(description "This package provides @code{transform}, which provides
|
|
||||||
reader and writer wrappers that transform the bytes passing through. Example
|
reader and writer wrappers that transform the bytes passing through. Example
|
||||||
transformations provided by other packages include normalization and conversion
|
transformations provided by other packages include normalization and conversion
|
||||||
between character sets.")
|
between character sets.")))
|
||||||
(home-page "https://go.googlesource.com/text")
|
|
||||||
(license license:bsd-3))))
|
|
||||||
|
|
||||||
(define-public go-golang-org-x-text-unicode-norm
|
(define-public go-golang-org-x-text-unicode-norm
|
||||||
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
|
(package
|
||||||
(revision "1"))
|
(inherit go-golang-org-x-text-encoding)
|
||||||
(package
|
(name "go-golang-org-x-text-unicode-norm")
|
||||||
(name "go-golang-org-x-text-unicode-norm")
|
(arguments
|
||||||
(version (git-version "0.0.0" revision commit))
|
`(#:import-path "golang.org/x/text/unicode/norm"
|
||||||
(source (origin
|
#:unpack-path "golang.org/x/text"))
|
||||||
(method git-fetch)
|
(synopsis "Unicode normalization in Go")
|
||||||
(uri (git-reference
|
(description "This package provides @code{norm}, which contains types and
|
||||||
(url "https://go.googlesource.com/text")
|
functions for normalizing Unicode strings.")))
|
||||||
(commit commit)))
|
|
||||||
(file-name (string-append "go.googlesource.com-text-"
|
|
||||||
version "-checkout"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
|
|
||||||
(build-system go-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:import-path "golang.org/x/text/unicode/norm"
|
|
||||||
#:unpack-path "golang.org/x/text"))
|
|
||||||
(synopsis "Unicode normalization in Go")
|
|
||||||
(description "This package provides @code{norm}, which contains types and
|
|
||||||
functions for normalizing Unicode strings.")
|
|
||||||
(home-page "https://go.googlesource.com/text")
|
|
||||||
(license license:bsd-3))))
|
|
||||||
|
|
||||||
(define-public go-golang-org-x-time-rate
|
(define-public go-golang-org-x-time-rate
|
||||||
(let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
|
(let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
|
||||||
|
@ -1288,12 +1367,11 @@ is similar to Go's standard library @code{json} and @code{xml} package.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public go-github-com-getsentry-raven-go
|
(define-public go-github-com-getsentry-raven-go
|
||||||
(let ((commit
|
(let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
|
||||||
"dffeb57df75d6a911f00232155194e43d79d38d7")
|
|
||||||
(revision "0"))
|
(revision "0"))
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-getsentry-raven-go")
|
(name "go-github-com-getsentry-raven-go")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.2.0" revision commit))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1303,14 +1381,16 @@ is similar to Go's standard library @code{json} and @code{xml} package.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
|
"0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/getsentry/raven-go"))
|
'(#:import-path "github.com/getsentry/raven-go"))
|
||||||
(home-page
|
(propagated-inputs
|
||||||
"https://github.com/getsentry/raven-go")
|
`(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
|
||||||
|
("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
|
||||||
|
(home-page "https://github.com/getsentry/raven-go")
|
||||||
(synopsis "Sentry client in Go")
|
(synopsis "Sentry client in Go")
|
||||||
(description "This package is Go client API for the Sentry event/error
|
(description "This package is a Go client API for the Sentry event/error
|
||||||
logging system.")
|
logging system.")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
|
@ -1855,11 +1935,11 @@ which satisfies the cron expression.")
|
||||||
license:asl2.0)))))
|
license:asl2.0)))))
|
||||||
|
|
||||||
(define-public go-gopkg-in-check-v1
|
(define-public go-gopkg-in-check-v1
|
||||||
(let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
|
(let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
|
||||||
(revision "0"))
|
(revision "1"))
|
||||||
(package
|
(package
|
||||||
(name "go-gopkg-in-check-v1")
|
(name "go-gopkg-in-check-v1")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "1.0.0" revision commit))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1869,43 +1949,42 @@ which satisfies the cron expression.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
|
"0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "gopkg.in/check.v1"))
|
'(#:import-path "gopkg.in/check.v1"))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
|
||||||
(home-page "https://gopkg.in/check.v1")
|
(home-page "https://gopkg.in/check.v1")
|
||||||
(synopsis "Test framework for the Go language")
|
(synopsis "Test framework for the Go language")
|
||||||
(description
|
(description "This package provides a test library for the Go language.")
|
||||||
"This package provides a test library for the Go language.")
|
|
||||||
(license license:asl2.0))))
|
(license license:asl2.0))))
|
||||||
|
|
||||||
(define-public go-gopkg-in-yaml-v2
|
(define-public go-gopkg-in-yaml-v2
|
||||||
(let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
|
(package
|
||||||
(revision "0"))
|
(name "go-gopkg-in-yaml-v2")
|
||||||
(package
|
(version "2.2.2")
|
||||||
(name "go-gopkg-in-yaml-v2")
|
(source
|
||||||
(version (git-version "0.0.0" revision commit))
|
(origin
|
||||||
(source
|
(method git-fetch)
|
||||||
(origin
|
(uri (git-reference
|
||||||
(method git-fetch)
|
(url "https://gopkg.in/yaml.v2.git")
|
||||||
(uri (git-reference
|
(commit (string-append "v" version))))
|
||||||
(url "https://gopkg.in/yaml.v2.git")
|
(file-name (git-file-name name version))
|
||||||
(commit commit)))
|
(sha256
|
||||||
(file-name (git-file-name name version))
|
(base32
|
||||||
(sha256
|
"01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
|
||||||
(base32
|
(build-system go-build-system)
|
||||||
"038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
|
(arguments
|
||||||
(build-system go-build-system)
|
'(#:import-path "gopkg.in/yaml.v2"))
|
||||||
(arguments
|
(native-inputs
|
||||||
'(#:import-path "gopkg.in/yaml.v2"))
|
`(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
|
||||||
(native-inputs
|
(home-page "https://gopkg.in/yaml.v2")
|
||||||
`(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
|
(synopsis "YAML reader and writer for the Go language")
|
||||||
(home-page "https://gopkg.in/yaml.v2")
|
(description
|
||||||
(synopsis "YAML reader and writer for the Go language")
|
"This package provides a Go library for encode and decode YAML
|
||||||
(description
|
|
||||||
"This package provides a Go library for encode and decode YAML
|
|
||||||
values.")
|
values.")
|
||||||
(license license:asl2.0))))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
(define-public go-github-com-mattn-go-isatty
|
(define-public go-github-com-mattn-go-isatty
|
||||||
(package
|
(package
|
||||||
|
@ -3234,6 +3313,171 @@ format in Go.")
|
||||||
(home-page "https://github.com/kr/text")
|
(home-page "https://github.com/kr/text")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public go-golang-org-sql-mock
|
||||||
|
(let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
|
||||||
|
(version "1.3.3")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "go-golang-org-sql-mock")
|
||||||
|
(version (git-version version revision commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/DATA-DOG/go-sqlmock")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/DATA-DOG/go-sqlmock"))
|
||||||
|
(synopsis "Mock library implementing @code{sql/driver}")
|
||||||
|
(description "This library simulates SQL-driver behavior in tests
|
||||||
|
without requiring a real database connection.")
|
||||||
|
(home-page "https://github.com/DATA-DOG/go-sqlmock")
|
||||||
|
(license license:expat))))
|
||||||
|
|
||||||
|
(define-public go-golang-org-colorful
|
||||||
|
(package
|
||||||
|
(name "go-golang-org-colorful")
|
||||||
|
(version "1.0.2")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/lucasb-eyer/go-colorful")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/lucasb-eyer/go-colorful"))
|
||||||
|
(native-inputs
|
||||||
|
`(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
|
||||||
|
(synopsis "Convert between colorspaces and generate colors")
|
||||||
|
(description "This package implements Go's @code{color.Color} interface
|
||||||
|
and provides a means of converting colors stored as RGB to various
|
||||||
|
colorspaces.")
|
||||||
|
(home-page "https://github.com/lucasb-eyer/go-colorful")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public go-github-com-gdamore-encoding
|
||||||
|
(package
|
||||||
|
(name "go-github-com-gdamore-encoding")
|
||||||
|
(version "1.0.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/gdamore/encoding")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/gdamore/encoding"))
|
||||||
|
(inputs
|
||||||
|
`(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
|
||||||
|
("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
|
||||||
|
(home-page "https://github.com/gdamore/encoding")
|
||||||
|
(synopsis "Provide encodings missing from Go")
|
||||||
|
(description "This package provides useful encodings not included in the
|
||||||
|
standard @code{Text} package, including some for dealing with I/O streams from
|
||||||
|
non-UTF-friendly sources.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public go-github-com-gdamore-tcell
|
||||||
|
(let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
|
||||||
|
(version "1.1.2")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "go-github-com-gdamore-tcell")
|
||||||
|
(version (git-version version revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/gdamore/tcell")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:import-path "github.com/gdamore/tcell"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'reset-gzip-timestamps 'make-files-writable
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Make sure .gz files are writable so that the
|
||||||
|
;; 'reset-gzip-timestamps' phase can do its work.
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(for-each make-file-writable
|
||||||
|
(find-files out "\\.gz$"))
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
|
||||||
|
("go-golang-org-colorful" ,go-golang-org-colorful)
|
||||||
|
("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
|
||||||
|
("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
|
||||||
|
("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
|
||||||
|
(home-page "https://github.com/gdamore/tcell")
|
||||||
|
(synopsis "Provide a cell-based view for text terminals")
|
||||||
|
(description "This package includes a full parser and expander for
|
||||||
|
terminfo capability strings to avoid hard-coding escape strings for
|
||||||
|
formatting. It also favors portability, and includes support for all POSIX
|
||||||
|
systems.")
|
||||||
|
(license license:expat))))
|
||||||
|
|
||||||
|
(define-public go-github-com-mattn-go-shellwords
|
||||||
|
(let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
|
||||||
|
(version "1.0.5")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "go-github-com-mattn-go-shellwords")
|
||||||
|
(version (git-version version revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/mattn/go-shellwords")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:import-path "github.com/mattn/go-shellwords"
|
||||||
|
;; TODO: can't make homeless-shelter:
|
||||||
|
;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
|
||||||
|
;; initialization failure: mkdir /homeless-shelter: permission denied
|
||||||
|
|
||||||
|
;; This doesn't seem to work:
|
||||||
|
|
||||||
|
;; #:phases
|
||||||
|
;; (modify-phases %standard-phases
|
||||||
|
;; (replace 'check
|
||||||
|
;; (lambda* (#:key import-path #:allow-other-keys)
|
||||||
|
;; (setenv "HOME" "/tmp")
|
||||||
|
;; (invoke "go" "test" import-path))))
|
||||||
|
|
||||||
|
;; TODO: There are also a couple of tests that have stymied Debian in
|
||||||
|
;; the past. They seem to work when run locally.
|
||||||
|
|
||||||
|
#:tests? #f
|
||||||
|
))
|
||||||
|
(home-page "https://github.com/mattn/go-shellwords")
|
||||||
|
(synopsis "Parse lines into shell words")
|
||||||
|
(description "This package parses text into shell arguments. Based on
|
||||||
|
the @code{cpan} module @code{Parse::CommandLine}.")
|
||||||
|
(license license:expat))))
|
||||||
|
|
||||||
(define-public go-github-com-burntsushi-locker
|
(define-public go-github-com-burntsushi-locker
|
||||||
(let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
|
(let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
|
||||||
(revision "0"))
|
(revision "0"))
|
||||||
|
@ -3267,3 +3511,128 @@ test.
|
||||||
All locks are implemented with read-write mutexes. To use them like a regular
|
All locks are implemented with read-write mutexes. To use them like a regular
|
||||||
mutex, simply ignore the RLock/RUnlock functions.")
|
mutex, simply ignore the RLock/RUnlock functions.")
|
||||||
(license license:unlicense))))
|
(license license:unlicense))))
|
||||||
|
|
||||||
|
(define-public go-github-com-marten-seemann-qtls
|
||||||
|
(package
|
||||||
|
(name "go-github-com-marten-seemann-qtls")
|
||||||
|
(version "0.2.3")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/marten-seemann/qtls")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/marten-seemann/qtls"
|
||||||
|
;; The test suite requires networking.
|
||||||
|
#:tests? #f))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
|
||||||
|
(synopsis "TLS 1.3 with QUIC in Go")
|
||||||
|
(description "This package provides @code{qtls}, a QUIC-capable variant of
|
||||||
|
the Go standard library's TLS 1.3 implementation.")
|
||||||
|
(home-page "https://github.com/marten-seemann/qtls")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public go-github-com-cheekybits-genny
|
||||||
|
(package
|
||||||
|
(name "go-github-com-cheekybits-genny")
|
||||||
|
(version "1.0.0")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/cheekybits/genny")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/cheekybits/genny"))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
|
||||||
|
(synopsis "Generics for Go")
|
||||||
|
(description "This package provides @code{genny}, a Go language
|
||||||
|
implementation of generics.")
|
||||||
|
(home-page "https://github.com/cheekybits/genny/")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public go-github-com-lucas-clemente-quic-go
|
||||||
|
(package
|
||||||
|
(name "go-github-com-lucas-clemente-quic-go")
|
||||||
|
(version "0.11.2")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/lucas-clemente/quic-go")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/lucas-clemente/quic-go"
|
||||||
|
;; XXX More packages required...
|
||||||
|
#:tests? #f))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
|
||||||
|
("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
|
||||||
|
("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
|
||||||
|
(synopsis "QUIC in Go")
|
||||||
|
(description "This package provides a Go language implementation of the QUIC
|
||||||
|
network protocol.")
|
||||||
|
(home-page "https://github.com/lucas-clemente/quic-go")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public go-github-com-pkg-errors
|
||||||
|
(let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "go-github-com-pkg-errors")
|
||||||
|
(version (git-version "0.8.1" revision commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/pkg/errors.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:import-path "github.com/pkg/errors"))
|
||||||
|
(synopsis "Go error handling primitives")
|
||||||
|
(description "This package provides @code{error}, which offers simple
|
||||||
|
error handling primitives in Go.")
|
||||||
|
(home-page "https://github.com/pkg/errors")
|
||||||
|
(license license:bsd-2))))
|
||||||
|
|
||||||
|
(define-public go-github-com-maruel-panicparse
|
||||||
|
(package
|
||||||
|
(name "go-github-com-maruel-panicparse")
|
||||||
|
(version "1.2.1")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/maruel/panicparse")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"05hf68ifb7ww4rpmxyywbj9r0kyap45p1273ncq4qy2ydv042l8j"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/maruel/panicparse"))
|
||||||
|
(synopsis "Toolkit for parsing Go stack traces")
|
||||||
|
(description "This package provides a toolkit for parsing Go language panic
|
||||||
|
stack traces. It simplifies the traces to make salient information more visible
|
||||||
|
and aid debugging.")
|
||||||
|
(home-page "https://github.com/maruel/panicparse")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
|
@ -80,16 +80,14 @@
|
||||||
(define-public blender
|
(define-public blender
|
||||||
(package
|
(package
|
||||||
(name "blender")
|
(name "blender")
|
||||||
(version "v2.80-rc1")
|
(version "2.80")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method url-fetch)
|
||||||
(uri (git-reference
|
(uri (string-append "https://download.blender.org/source/"
|
||||||
(url "https://git.blender.org/blender.git")
|
"blender-" version ".tar.gz"))
|
||||||
(commit version)))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"11dcf0rjq42mpphk8r8cy7gvhzzl1cj1vslp98ibh8sdjzaz2mdq"))))
|
"1h550jisdbis50hxwk5kxrvrk1a6sh2fsri3yyj66vhzbi87x7fd"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(let ((python-version (version-major+minor (package-version python))))
|
(let ((python-version (version-major+minor (package-version python))))
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
;; projects.
|
;; projects.
|
||||||
;; TODO: Add guile-dbi and guile-dbd optional dependencies.
|
;; TODO: Add guile-dbi and guile-dbd optional dependencies.
|
||||||
(inputs `(("guile" ,guile-2.2)
|
(inputs `(("guile" ,guile-2.2)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-redis" ,guile-redis)))
|
("guile-redis" ,guile-redis)))
|
||||||
(native-inputs `(("bash" ,bash) ;for the `source' builtin
|
(native-inputs `(("bash" ,bash) ;for the `source' builtin
|
||||||
("pkgconfig" ,pkg-config)
|
("pkgconfig" ,pkg-config)
|
||||||
|
@ -844,7 +844,7 @@ messaging library.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("openssl" ,openssl)
|
`(("openssl" ,openssl)
|
||||||
("guile" ,guile-2.2)
|
("guile" ,guile-2.2)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-simple-zmq" ,guile-simple-zmq)))
|
("guile-simple-zmq" ,guile-simple-zmq)))
|
||||||
(synopsis "Guile kernel for the Jupyter Notebook")
|
(synopsis "Guile kernel for the Jupyter Notebook")
|
||||||
(description
|
(description
|
||||||
|
@ -1008,7 +1008,7 @@ Scheme by using Guile’s foreign function interface.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("guile" ,guile-2.2)
|
`(("guile" ,guile-2.2)
|
||||||
("gnutls" ,gnutls)
|
("gnutls" ,gnutls)
|
||||||
("guile-json" ,guile-json)))
|
("guile-json" ,guile-json-1)))
|
||||||
(home-page "https://framagit.org/prouby/guile-mastodon")
|
(home-page "https://framagit.org/prouby/guile-mastodon")
|
||||||
(synopsis "Guile Mastodon REST API module")
|
(synopsis "Guile Mastodon REST API module")
|
||||||
(description "This package provides Guile modules to access the
|
(description "This package provides Guile modules to access the
|
||||||
|
|
|
@ -431,6 +431,10 @@ specification. These are the main features:
|
||||||
;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+).
|
;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+).
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public guile-json-1
|
||||||
|
;; This is the 1.x branch of Guile-JSON.
|
||||||
|
guile-json)
|
||||||
|
|
||||||
(define-public guile2.2-json
|
(define-public guile2.2-json
|
||||||
(deprecated-package "guile2.2-json" guile-json))
|
(deprecated-package "guile2.2-json" guile-json))
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
(define-public feh
|
(define-public feh
|
||||||
(package
|
(package
|
||||||
(name "feh")
|
(name "feh")
|
||||||
(version "3.1.3")
|
(version "3.2.1")
|
||||||
(home-page "https://feh.finalrewind.org/")
|
(home-page "https://feh.finalrewind.org/")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
name "-" version ".tar.bz2"))
|
name "-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1vsnxf4as3vyzjfhd8frzb1a8i7wnq7ck5ljx7qxqrnfqvxl1s4z"))))
|
"070axq8jpibcabmjfv4fmjmpk3k349vzvh4qhsi4n62bkcwl35wg"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases (modify-phases %standard-phases (delete 'configure))
|
'(#:phases (modify-phases %standard-phases (delete 'configure))
|
||||||
|
|
|
@ -232,8 +232,8 @@ APNG patch provides APNG support to libpng.")
|
||||||
("zlib" , zlib)))
|
("zlib" , zlib)))
|
||||||
(home-page "https://pmt.sourceforge.io/pngcrush")
|
(home-page "https://pmt.sourceforge.io/pngcrush")
|
||||||
(synopsis "Utility to compress PNG files")
|
(synopsis "Utility to compress PNG files")
|
||||||
(description "pngcrusqh is an optimizer for PNG (Portable Network Graphics)
|
(description "Pngcrush optimizes @acronym{PNG, Portable Network Graphics}
|
||||||
files. It can compress them as much as 40% losslessly.")
|
images. It can further losslessly compress them by as much as 40%.")
|
||||||
(license license:zlib)))
|
(license license:zlib)))
|
||||||
|
|
||||||
(define-public pngcrunch
|
(define-public pngcrunch
|
||||||
|
|
|
@ -47,9 +47,12 @@
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define libuv-julia
|
(define libuv-julia
|
||||||
(let ((commit "52d72a52cc7ccd570929990f010ed16e2ec604c8")
|
(let ((commit "26dbe5672c33fc885462c509fe2a9b36f35866fd")
|
||||||
(revision "5"))
|
(revision "6"))
|
||||||
(package (inherit libuv)
|
;; When upgrading Julia, also upgrade this.
|
||||||
|
;; Get the commit from https://github.com/JuliaLang/julia/blob/v1.1.1/deps/libuv.version
|
||||||
|
(package
|
||||||
|
(inherit libuv)
|
||||||
(name "libuv-julia")
|
(name "libuv-julia")
|
||||||
(version (string-append "1.9.0-" revision "." (string-take commit 8)))
|
(version (string-append "1.9.0-" revision "." (string-take commit 8)))
|
||||||
(source (origin
|
(source (origin
|
||||||
|
@ -60,7 +63,7 @@
|
||||||
(file-name (string-append name "-" version "-checkout"))
|
(file-name (string-append name "-" version "-checkout"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1daxh6ci6q7znxxajr3bm16dd53ragm0d681wf4kzg542qnjq3lh"))))
|
"17pn2xmqaramilx897s9grs966i5246gi6sric5alch4g9j4685n"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments libuv)
|
(substitute-keyword-arguments (package-arguments libuv)
|
||||||
|
@ -69,22 +72,93 @@
|
||||||
(delete 'autogen)))))
|
(delete 'autogen)))))
|
||||||
(home-page "https://github.com/JuliaLang/libuv"))))
|
(home-page "https://github.com/JuliaLang/libuv"))))
|
||||||
|
|
||||||
(define libunwind-for-julia
|
(define (llvm-patch-url version name)
|
||||||
|
(string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
|
||||||
|
"/deps/patches/" name))
|
||||||
|
|
||||||
|
(define (llvm-patch name sha)
|
||||||
|
(let ((version "1.1.1"))
|
||||||
|
(origin (method url-fetch)
|
||||||
|
(uri (llvm-patch-url version name))
|
||||||
|
(sha256 (base32 sha))
|
||||||
|
(file-name name))))
|
||||||
|
|
||||||
|
(define llvm-julia
|
||||||
(package
|
(package
|
||||||
(inherit libunwind)
|
(inherit llvm-6)
|
||||||
(version "1.1-julia2")
|
(name "llvm-julia")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://s3.amazonaws.com/julialang/src/"
|
(uri "http://releases.llvm.org/6.0.1/llvm-6.0.1.src.tar.xz")
|
||||||
"libunwind-" version ".tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0499x7sg2v18a6cry6l8y713cgmic0adnjph8i0xr1db9p7n8qyv"))))))
|
"1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn"))
|
||||||
|
;; Those patches are inside the Julia source repo.
|
||||||
|
;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm)
|
||||||
|
;; but they are required to build Julia.
|
||||||
|
;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628
|
||||||
|
(patches
|
||||||
|
(list
|
||||||
|
(llvm-patch "llvm-6.0-D44650.patch"
|
||||||
|
"1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb")
|
||||||
|
(llvm-patch "llvm-6.0-DISABLE_ABI_CHECKS.patch"
|
||||||
|
"014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
|
||||||
|
(llvm-patch "llvm-6.0-NVPTX-addrspaces.patch"
|
||||||
|
"1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
|
||||||
|
(llvm-patch "llvm-6.0.0_D27296-libssp.patch"
|
||||||
|
"0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh")
|
||||||
|
(llvm-patch "llvm-D27629-AArch64-large_model_6.0.1.patch"
|
||||||
|
"1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
|
||||||
|
(llvm-patch "llvm-D34078-vectorize-fdiv.patch"
|
||||||
|
"1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay")
|
||||||
|
(llvm-patch "llvm-D42262-jumpthreading-not-i1.patch"
|
||||||
|
"1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq")
|
||||||
|
(llvm-patch "llvm-D44892-Perf-integration.patch"
|
||||||
|
"0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05")
|
||||||
|
(llvm-patch "llvm-D46460.patch"
|
||||||
|
"1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb")
|
||||||
|
(llvm-patch "llvm-D49832-SCEVPred.patch"
|
||||||
|
"0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn")
|
||||||
|
(llvm-patch "llvm-D50010-VNCoercion-ni.patch"
|
||||||
|
"0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp")
|
||||||
|
(llvm-patch "llvm-D50167-scev-umin.patch"
|
||||||
|
"1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v")
|
||||||
|
(llvm-patch "llvm-OProfile-line-num.patch"
|
||||||
|
"1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7")
|
||||||
|
(llvm-patch "llvm-PPC-addrspaces.patch"
|
||||||
|
"1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p")
|
||||||
|
(llvm-patch "llvm-rL323946-LSRTy.patch"
|
||||||
|
"10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns")
|
||||||
|
(llvm-patch "llvm-rL326967-aligned-load.patch"
|
||||||
|
"04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4")
|
||||||
|
(llvm-patch "llvm-rL327898.patch"
|
||||||
|
"15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments llvm-6)
|
||||||
|
((#:configure-flags flags)
|
||||||
|
`(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release"
|
||||||
|
|
||||||
|
;; Build a native compiler and the NVPTX backend (NVIDIA) since
|
||||||
|
;; Julia insists on it, nothing more. This reduces build times and
|
||||||
|
;; disk usage.
|
||||||
|
,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target))
|
||||||
|
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX"
|
||||||
|
|
||||||
|
"-DLLVM_INSTALL_UTILS=ON"
|
||||||
|
"-DLLVM_BUILD_TESTS=ON"
|
||||||
|
"-DLLVM_ENABLE_FFI=ON"
|
||||||
|
"-DLLVM_ENABLE_RTTI=ON"
|
||||||
|
;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
|
||||||
|
;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
|
||||||
|
;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
|
||||||
|
"-DLLVM_ENABLE_DUMP=ON"
|
||||||
|
"-DLLVM_LINK_LLVM_DYLIB=ON"))))))
|
||||||
|
|
||||||
(define-public julia
|
(define-public julia
|
||||||
(package
|
(package
|
||||||
(name "julia")
|
(name "julia")
|
||||||
(version "0.6.0")
|
(version "1.1.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -92,7 +166,7 @@
|
||||||
version "/julia-" version ".tar.gz"))
|
version "/julia-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0rd6lcc9sic10q1j3c6f9qr901i1c4554m93n2sz5b3mh37byqhw"))))
|
"0hk983mywimclgnjc41zmlppm5kfdz2aj85ky07p49ilcqxi998f"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:test-target "test"
|
`(#:test-target "test"
|
||||||
|
@ -123,9 +197,23 @@
|
||||||
(copy-file (string-append (assoc-ref inputs "virtualenv")
|
(copy-file (string-append (assoc-ref inputs "virtualenv")
|
||||||
"/bin/virtualenv")
|
"/bin/virtualenv")
|
||||||
"julia-env")
|
"julia-env")
|
||||||
(copy-file (assoc-ref inputs "unicode-data")
|
(copy-file (assoc-ref inputs "libwhich")
|
||||||
"doc/UnicodeData.txt")
|
(string-append "deps/srccache/libwhich-"
|
||||||
#t))
|
"81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
|
||||||
|
".tar.gz"))
|
||||||
|
(copy-file (assoc-ref inputs "rmath")
|
||||||
|
"deps/srccache/Rmath-julia-0.1.tar.gz")
|
||||||
|
|
||||||
|
;; needed by libwhich
|
||||||
|
(setenv "LD_LIBRARY_PATH"
|
||||||
|
(string-join (map (lambda (pkg)
|
||||||
|
(string-append (assoc-ref inputs pkg)
|
||||||
|
"/lib"))
|
||||||
|
'("arpack-ng" "fftw" "gmp" "lapack"
|
||||||
|
"libgit2" "mpfr" "openblas" "openlibm"
|
||||||
|
"openspecfun" "pcre2"))
|
||||||
|
":"))
|
||||||
|
#t))
|
||||||
;; FIXME: Building the documentation requires Julia packages that
|
;; FIXME: Building the documentation requires Julia packages that
|
||||||
;; would be downloaded from the Internet. We should build them in a
|
;; would be downloaded from the Internet. We should build them in a
|
||||||
;; separate build phase.
|
;; separate build phase.
|
||||||
|
@ -168,19 +256,9 @@
|
||||||
("lapack" "liblapack" "liblapack.so")
|
("lapack" "liblapack" "liblapack.so")
|
||||||
("libgit2" "libgit2" "libgit2.so")
|
("libgit2" "libgit2" "libgit2.so")
|
||||||
("gmp" "libgmp" "libgmp.so")
|
("gmp" "libgmp" "libgmp.so")
|
||||||
("openlibm" "libopenlibm" "libopenlibm.so")
|
|
||||||
("openspecfun" "libopenspecfun" "libopenspecfun.so")
|
("openspecfun" "libopenspecfun" "libopenspecfun.so")
|
||||||
("fftw" "libfftw3" "libfftw3_threads.so")
|
("fftw" "libfftw3" "libfftw3_threads.so")
|
||||||
("fftwf" "libfftw3f" "libfftw3f_threads.so"))))))
|
("fftwf" "libfftw3f" "libfftw3f_threads.so"))))))
|
||||||
(substitute* "base/fft/FFTW.jl"
|
|
||||||
(("const libfftw = Base.libfftw_name")
|
|
||||||
(string-append "const libfftw = \""
|
|
||||||
(assoc-ref inputs "fftw") "/lib/libfftw3_threads.so"
|
|
||||||
"\""))
|
|
||||||
(("const libfftwf = Base.libfftwf_name")
|
|
||||||
(string-append "const libfftwf = \""
|
|
||||||
(assoc-ref inputs "fftwf") "/lib/libfftw3f_threads.so"
|
|
||||||
"\"")))
|
|
||||||
(substitute* "base/math.jl"
|
(substitute* "base/math.jl"
|
||||||
(("const libm = Base.libm_name")
|
(("const libm = Base.libm_name")
|
||||||
(string-append "const libm = \""
|
(string-append "const libm = \""
|
||||||
|
@ -192,11 +270,6 @@
|
||||||
(assoc-ref inputs "openspecfun")
|
(assoc-ref inputs "openspecfun")
|
||||||
"/lib/libopenspecfun.so"
|
"/lib/libopenspecfun.so"
|
||||||
"\"")))
|
"\"")))
|
||||||
(substitute* "base/pcre.jl"
|
|
||||||
(("const PCRE_LIB = \"libpcre2-8\"")
|
|
||||||
(string-append "const PCRE_LIB = \""
|
|
||||||
(assoc-ref inputs "pcre2")
|
|
||||||
"/lib/libpcre2-8.so" "\"")))
|
|
||||||
#t))
|
#t))
|
||||||
(add-before 'build 'fix-include-and-link-paths
|
(add-before 'build 'fix-include-and-link-paths
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
@ -218,9 +291,9 @@
|
||||||
"/lib/libuv.so ")))
|
"/lib/libuv.so ")))
|
||||||
|
|
||||||
(substitute* "base/Makefile"
|
(substitute* "base/Makefile"
|
||||||
(("\\$\\(build_includedir\\)/uv-errno.h")
|
(("\\$\\(build_includedir\\)/uv/errno.h")
|
||||||
(string-append (assoc-ref inputs "libuv")
|
(string-append (assoc-ref inputs "libuv")
|
||||||
"/include/uv-errno.h")))
|
"/include/uv/errno.h")))
|
||||||
#t))
|
#t))
|
||||||
(add-before 'build 'replace-default-shell
|
(add-before 'build 'replace-default-shell
|
||||||
(lambda _
|
(lambda _
|
||||||
|
@ -229,37 +302,37 @@
|
||||||
#t))
|
#t))
|
||||||
(add-after 'unpack 'hardcode-paths
|
(add-after 'unpack 'hardcode-paths
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "base/interactiveutil.jl"
|
(substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl"
|
||||||
(("`which") (string-append "`" (which "which")))
|
(("`which") (string-append "`" (which "which")))
|
||||||
(("`wget") (string-append "`" (which "wget"))))
|
(("`wget") (string-append "`" (which "wget"))))
|
||||||
#t))
|
#t))
|
||||||
(add-before 'check 'disable-broken-tests
|
(add-before 'check 'disable-broken-tests
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Adjust expected error messages to match what current libgit2
|
(define (touch file-name)
|
||||||
;; provides.
|
(call-with-output-file file-name (const #t)))
|
||||||
(substitute* "test/libgit2.jl"
|
;; FIXME: All git tests works except this one. But *THIS* "fix"
|
||||||
(("Invalid Content-Type") "invalid Content-Type")
|
;; is not working, so right now I'm disabling all libgit2.jl tests
|
||||||
(("Failed to resolve path") "failed to resolve path"))
|
;; (substitute* "stdlib/LibGit2/test/libgit2.jl"
|
||||||
|
;; (("!LibGit2.use_http_path(cfg, github_cred)") "true")
|
||||||
(substitute* "test/choosetests.jl"
|
;; (("LibGit2.use_http_path(cfg, mygit_cred)") "true"))
|
||||||
;; These tests fail, probably because some of the input
|
(map (lambda (test)
|
||||||
;; binaries have been stripped and thus backtraces don't look
|
(delete-file test)
|
||||||
;; as expected.
|
(touch test))
|
||||||
(("\"backtrace\",") "")
|
'("stdlib/Sockets/test/runtests.jl"
|
||||||
(("\"compile\",") "")
|
"stdlib/Distributed/test/runtests.jl"
|
||||||
(("\"replutil\",") "")
|
;; FIXME: see above
|
||||||
(("\"cmdlineargs\",") "")
|
"stdlib/LibGit2/test/libgit2.jl"))
|
||||||
;; FIXME: This test fails with the following error:
|
(substitute* "test/choosetests.jl"
|
||||||
;; Error in testset file:
|
;; These tests fail, probably because some of the input
|
||||||
;; Test Failed
|
;; binaries have been stripped and thus backtraces don't look
|
||||||
;; Expression: download("ba\0d", "good")
|
;; as expected.
|
||||||
;; Expected: ArgumentError
|
(("\"backtrace\",") "")
|
||||||
;; Thrown: Base.UVError
|
(("\"cmdlineargs\",") ""))
|
||||||
(("\"file\",") ""))
|
#t)))
|
||||||
#t)))
|
|
||||||
#:make-flags
|
#:make-flags
|
||||||
(list
|
(list
|
||||||
(string-append "prefix=" (assoc-ref %outputs "out"))
|
(string-append "prefix=" (assoc-ref %outputs "out"))
|
||||||
|
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
|
|
||||||
;; Passing the MARCH flag is necessary to build binary substitutes for
|
;; Passing the MARCH flag is necessary to build binary substitutes for
|
||||||
;; the supported architectures.
|
;; the supported architectures.
|
||||||
|
@ -278,6 +351,8 @@
|
||||||
"USE_SYSTEM_LAPACK=1"
|
"USE_SYSTEM_LAPACK=1"
|
||||||
"USE_SYSTEM_BLAS=1"
|
"USE_SYSTEM_BLAS=1"
|
||||||
"USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1
|
"USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1
|
||||||
|
"LIBBLAS=-lopenblas"
|
||||||
|
"LIBBLASNAME=libopenblas"
|
||||||
|
|
||||||
"USE_SYSTEM_FFTW=1"
|
"USE_SYSTEM_FFTW=1"
|
||||||
"LIBFFTWNAME=libfftw3"
|
"LIBFFTWNAME=libfftw3"
|
||||||
|
@ -296,26 +371,29 @@
|
||||||
(assoc-ref %build-inputs "utf8proc")
|
(assoc-ref %build-inputs "utf8proc")
|
||||||
"/include")
|
"/include")
|
||||||
"USE_SYSTEM_LLVM=1"
|
"USE_SYSTEM_LLVM=1"
|
||||||
"USE_LLVM_SHLIB=0" ; FIXME: fails when set to 1
|
"LLVM_VER=6.0.1"
|
||||||
|
|
||||||
"USE_SYSTEM_LIBUNWIND=1"
|
"USE_LLVM_SHLIB=1"
|
||||||
"USE_SYSTEM_LIBUV=1"
|
"USE_SYSTEM_LIBUNWIND=1"
|
||||||
(string-append "LIBUV="
|
"USE_SYSTEM_LIBUV=1"
|
||||||
(assoc-ref %build-inputs "libuv")
|
(string-append "LIBUV="
|
||||||
"/lib/libuv.so")
|
(assoc-ref %build-inputs "libuv")
|
||||||
(string-append "LIBUV_INC="
|
"/lib/libuv.so")
|
||||||
(assoc-ref %build-inputs "libuv")
|
(string-append "LIBUV_INC="
|
||||||
"/include")
|
(assoc-ref %build-inputs "libuv")
|
||||||
"USE_SYSTEM_PATCHELF=1"
|
"/include")
|
||||||
"USE_SYSTEM_PCRE=1"
|
"USE_SYSTEM_PATCHELF=1"
|
||||||
"USE_SYSTEM_OPENLIBM=1"
|
"USE_SYSTEM_PCRE=1"
|
||||||
"USE_SYSTEM_GMP=1"
|
"USE_SYSTEM_OPENLIBM=1"
|
||||||
"USE_SYSTEM_MPFR=1"
|
|
||||||
"USE_SYSTEM_ARPACK=1"
|
"USE_SYSTEM_GMP=1"
|
||||||
"USE_SYSTEM_LIBGIT2=1"
|
"USE_SYSTEM_MPFR=1"
|
||||||
"USE_SYSTEM_OPENSPECFUN=1")))
|
"USE_SYSTEM_ARPACK=1"
|
||||||
|
"USE_SYSTEM_LIBGIT2=1"
|
||||||
|
"USE_SYSTEM_ZLIB=1"
|
||||||
|
"USE_SYSTEM_OPENSPECFUN=1")))
|
||||||
(inputs
|
(inputs
|
||||||
`(("llvm" ,llvm-3.9.1)
|
`(("llvm" ,llvm-julia)
|
||||||
|
|
||||||
;; The bundled version is 3.3.0 so stick to that version. With other
|
;; The bundled version is 3.3.0 so stick to that version. With other
|
||||||
;; versions, we get test failures in 'linalg/arnoldi' as described in
|
;; versions, we get test failures in 'linalg/arnoldi' as described in
|
||||||
|
@ -325,7 +403,7 @@
|
||||||
("coreutils" ,coreutils) ;for bindings to "mkdir" and the like
|
("coreutils" ,coreutils) ;for bindings to "mkdir" and the like
|
||||||
("lapack" ,lapack)
|
("lapack" ,lapack)
|
||||||
("openblas" ,openblas) ;Julia does not build with Atlas
|
("openblas" ,openblas) ;Julia does not build with Atlas
|
||||||
("libunwind" ,libunwind-for-julia)
|
("libunwind" ,libunwind)
|
||||||
("openlibm" ,openlibm)
|
("openlibm" ,openlibm)
|
||||||
("openspecfun" ,openspecfun)
|
("openspecfun" ,openspecfun)
|
||||||
("libgit2" ,libgit2)
|
("libgit2" ,libgit2)
|
||||||
|
@ -346,6 +424,18 @@
|
||||||
;; would eventually be replaced with proper Guix packages.
|
;; would eventually be replaced with proper Guix packages.
|
||||||
|
|
||||||
;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib
|
;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib
|
||||||
|
;; Find dependency versions here:
|
||||||
|
;; https://raw.githubusercontent.com/JuliaLang/julia/77a2c1e245c85812dc1c7687540beedecc52758f/deps/Versions.make
|
||||||
|
("rmath"
|
||||||
|
,(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/JuliaLang/Rmath-julia")
|
||||||
|
(commit "v0.1")))
|
||||||
|
(file-name "rmath-julia-0.1-checkout")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1zkpy0cg5zivq40zbhbdgj9128fqzs2j94wkwih8nc6xaj3gp9p6"))))
|
||||||
("suitesparse"
|
("suitesparse"
|
||||||
,(origin
|
,(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -362,6 +452,21 @@
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs"))))
|
"0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs"))))
|
||||||
|
("libwhich"
|
||||||
|
,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e"))
|
||||||
|
(origin
|
||||||
|
;; Note: We use a /tarball URL, but that's because Julia's build
|
||||||
|
;; system checks the hash of that tarball; thus we can't use
|
||||||
|
;; 'git-fetch'.
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://api.github.com/repos/vtjnash/libwhich/tarball/"
|
||||||
|
commit))
|
||||||
|
(file-name (string-append "libwhich-" (string-take commit 7)
|
||||||
|
".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b")))))
|
||||||
("dsfmt"
|
("dsfmt"
|
||||||
,(origin
|
,(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -376,14 +481,7 @@
|
||||||
("perl" ,perl)
|
("perl" ,perl)
|
||||||
("patchelf" ,patchelf)
|
("patchelf" ,patchelf)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("python" ,python-2)
|
("python" ,python-2)))
|
||||||
("unicode-data"
|
|
||||||
,(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri "http://www.unicode.org/Public/9.0.0/ucd/UnicodeData.txt")
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"13zfannnr6sa6s27ggvcvzmh133ndi38pfyxsssvjmw2s8ac9pv8"))))))
|
|
||||||
;; Julia is not officially released for ARM and MIPS.
|
;; Julia is not officially released for ARM and MIPS.
|
||||||
;; See https://github.com/JuliaLang/julia/issues/10639
|
;; See https://github.com/JuliaLang/julia/issues/10639
|
||||||
(supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
|
(supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
|
||||||
|
|
|
@ -271,7 +271,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
|
||||||
(define-public kodi
|
(define-public kodi
|
||||||
(package
|
(package
|
||||||
(name "kodi")
|
(name "kodi")
|
||||||
(version "18.2")
|
(version "18.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -280,7 +280,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1yzi8171p1mnszyf80lqkl05ql25n73s5gn8pcgvv4jph4yvasnq"))
|
"18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld"))
|
||||||
(patches (search-patches "kodi-skip-test-449.patch"
|
(patches (search-patches "kodi-skip-test-449.patch"
|
||||||
"kodi-set-libcurl-ssl-parameters.patch"))
|
"kodi-set-libcurl-ssl-parameters.patch"))
|
||||||
(snippet
|
(snippet
|
||||||
|
|
|
@ -182,31 +182,31 @@ defconfig. Return the appropriate make target if applicable, otherwise return
|
||||||
|
|
||||||
(define deblob-scripts-5.2
|
(define deblob-scripts-5.2
|
||||||
(linux-libre-deblob-scripts
|
(linux-libre-deblob-scripts
|
||||||
"5.2.1"
|
"5.2.3"
|
||||||
(base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa")
|
(base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa")
|
||||||
(base32 "030cccchli7vnzvxcw261spyzsgnq0m113bjsz8y4vglf6gaz4n9")))
|
(base32 "0d3pp1bqchqc7vnxr1a56km5r0hzjiiipzz2xc3wgjwfi51k9kxc")))
|
||||||
|
|
||||||
(define deblob-scripts-4.19
|
(define deblob-scripts-4.19
|
||||||
(linux-libre-deblob-scripts
|
(linux-libre-deblob-scripts
|
||||||
"4.19.59"
|
"4.19.61"
|
||||||
(base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
|
(base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
|
||||||
(base32 "07z1bsyny8lldncfh27lb16mgx9r38nswx4vmd24c7n4xva12k2s")))
|
(base32 "1fyacg28aym6virxyn7wk99qil2fjbks3iwm7p3hxy51pccn34za")))
|
||||||
|
|
||||||
(define deblob-scripts-4.14
|
(define deblob-scripts-4.14
|
||||||
(linux-libre-deblob-scripts
|
(linux-libre-deblob-scripts
|
||||||
"4.14.133"
|
"4.14.134"
|
||||||
(base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
|
(base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
|
||||||
(base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n")))
|
(base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n")))
|
||||||
|
|
||||||
(define deblob-scripts-4.9
|
(define deblob-scripts-4.9
|
||||||
(linux-libre-deblob-scripts
|
(linux-libre-deblob-scripts
|
||||||
"4.9.185"
|
"4.9.186"
|
||||||
(base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
|
(base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
|
||||||
(base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya")))
|
(base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya")))
|
||||||
|
|
||||||
(define deblob-scripts-4.4
|
(define deblob-scripts-4.4
|
||||||
(linux-libre-deblob-scripts
|
(linux-libre-deblob-scripts
|
||||||
"4.4.185"
|
"4.4.186"
|
||||||
(base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
|
(base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
|
||||||
(base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10")))
|
(base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10")))
|
||||||
|
|
||||||
|
@ -312,7 +312,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||||
|
|
||||||
(format #t "~%Packing new Linux-libre tarball...~%")
|
(format #t "~%Packing new Linux-libre tarball...~%")
|
||||||
(force-output)
|
(force-output)
|
||||||
(invoke "tar" "cfa" #$output
|
(invoke "tar" "cvfa" #$output
|
||||||
;; Avoid non-determinism in the archive.
|
;; Avoid non-determinism in the archive.
|
||||||
"--mtime=@0"
|
"--mtime=@0"
|
||||||
"--owner=root:0"
|
"--owner=root:0"
|
||||||
|
@ -350,18 +350,18 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||||
"linux-" version ".tar.xz"))
|
"linux-" version ".tar.xz"))
|
||||||
(sha256 hash)))
|
(sha256 hash)))
|
||||||
|
|
||||||
(define-public linux-libre-5.2-version "5.2.2")
|
(define-public linux-libre-5.2-version "5.2.4")
|
||||||
(define-public linux-libre-5.2-pristine-source
|
(define-public linux-libre-5.2-pristine-source
|
||||||
(let ((version linux-libre-5.2-version)
|
(let ((version linux-libre-5.2-version)
|
||||||
(hash (base32 "173da67d51qcjwrczqsfd6g9phzazqzr11xfxwlf54ckd6117ng5")))
|
(hash (base32 "0hzfayq79bksng09ngw3k3h3zkd6ndfn059rvwpznypy1fg8pkdi")))
|
||||||
(make-linux-libre-source version
|
(make-linux-libre-source version
|
||||||
(%upstream-linux-source version hash)
|
(%upstream-linux-source version hash)
|
||||||
deblob-scripts-5.2)))
|
deblob-scripts-5.2)))
|
||||||
|
|
||||||
(define-public linux-libre-4.19-version "4.19.60")
|
(define-public linux-libre-4.19-version "4.19.62")
|
||||||
(define-public linux-libre-4.19-pristine-source
|
(define-public linux-libre-4.19-pristine-source
|
||||||
(let ((version linux-libre-4.19-version)
|
(let ((version linux-libre-4.19-version)
|
||||||
(hash (base32 "0ibayrvrnw2lw7si78vdqnr20mm1d3z0g6a0ykndvgn5vdax5x9a")))
|
(hash (base32 "1p6s1ksrsq3za7644j0qf9brf6brwq39jxpfln5ypmyfi5qn9gh7")))
|
||||||
(make-linux-libre-source version
|
(make-linux-libre-source version
|
||||||
(%upstream-linux-source version hash)
|
(%upstream-linux-source version hash)
|
||||||
deblob-scripts-4.19)))
|
deblob-scripts-4.19)))
|
||||||
|
@ -561,7 +561,9 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||||
(search-auxiliary-file file)))
|
(search-auxiliary-file file)))
|
||||||
|
|
||||||
(define %default-extra-linux-options
|
(define %default-extra-linux-options
|
||||||
`(;; Modules required for initrd:
|
`(;; Some very mild hardening.
|
||||||
|
("CONFIG_SECURITY_DMESG_RESTRICT" . #t)
|
||||||
|
;; Modules required for initrd:
|
||||||
("CONFIG_NET_9P" . m)
|
("CONFIG_NET_9P" . m)
|
||||||
("CONFIG_NET_9P_VIRTIO" . m)
|
("CONFIG_NET_9P_VIRTIO" . m)
|
||||||
("CONFIG_VIRTIO_BLK" . m)
|
("CONFIG_VIRTIO_BLK" . m)
|
||||||
|
@ -3822,7 +3824,7 @@ and copy/paste text in the console and in xterm.")
|
||||||
(define-public btrfs-progs
|
(define-public btrfs-progs
|
||||||
(package
|
(package
|
||||||
(name "btrfs-progs")
|
(name "btrfs-progs")
|
||||||
(version "5.1.1")
|
(version "5.2.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://kernel.org/linux/kernel/"
|
(uri (string-append "mirror://kernel.org/linux/kernel/"
|
||||||
|
@ -3830,7 +3832,7 @@ and copy/paste text in the console and in xterm.")
|
||||||
"btrfs-progs-v" version ".tar.xz"))
|
"btrfs-progs-v" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06xybs7rglxjqkbzl2409acb3rgmnc5zc0xhyaxsc2p1x5yipfcw"))))
|
"0crjv3i20nyj2dagfw6q7byshscpn6j7wlqch3apkzzzk00lmb1n"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out"
|
(outputs '("out"
|
||||||
"static")) ; static versions of the binaries in "out"
|
"static")) ; static versions of the binaries in "out"
|
||||||
|
|
|
@ -6567,3 +6567,34 @@ This system contains the CFFI foreign slot access extension.")))
|
||||||
(description "Trivia is a pattern matching compiler that is compatible
|
(description "Trivia is a pattern matching compiler that is compatible
|
||||||
with Optima, another pattern matching library for Common Lisp. It is meant to
|
with Optima, another pattern matching library for Common Lisp. It is meant to
|
||||||
be faster and more extensible than Optima.")))
|
be faster and more extensible than Optima.")))
|
||||||
|
|
||||||
|
(define-public sbcl-mk-string-metrics
|
||||||
|
(package
|
||||||
|
(name "sbcl-mk-string-metrics")
|
||||||
|
(version "0.1.2")
|
||||||
|
(home-page "https://github.com/cbaggers/mk-string-metrics/")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url home-page)
|
||||||
|
(commit version)))
|
||||||
|
(sha256
|
||||||
|
(base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
|
||||||
|
(file-name (git-file-name name version))))
|
||||||
|
(build-system asdf-build-system/sbcl)
|
||||||
|
(synopsis "Calculate various string metrics efficiently in Common Lisp")
|
||||||
|
(description "This library implements efficient algorithms that calculate
|
||||||
|
various string metrics in Common Lisp:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Damerau-Levenshtein distance
|
||||||
|
@item Hamming distance
|
||||||
|
@item Jaccard similarity coefficient
|
||||||
|
@item Jaro distance
|
||||||
|
@item Jaro-Winkler distance
|
||||||
|
@item Levenshtein distance
|
||||||
|
@item Normalized Damerau-Levenshtein distance
|
||||||
|
@item Normalized Levenshtein distance
|
||||||
|
@item Overlap coefficient
|
||||||
|
@end itemize\n")
|
||||||
|
(license license:x11)))
|
||||||
|
|
|
@ -46,7 +46,30 @@
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages xml))
|
#:use-module (gnu packages xml)
|
||||||
|
#:export (system->llvm-target))
|
||||||
|
|
||||||
|
(define* (system->llvm-target #:optional
|
||||||
|
(system (or (and=> (%current-target-system)
|
||||||
|
gnu-triplet->nix-system)
|
||||||
|
(%current-system))))
|
||||||
|
"Return the LLVM target name that corresponds to SYSTEM, a system type such
|
||||||
|
as \"x86_64-linux\"."
|
||||||
|
;; See the 'lib/Target' directory of LLVM for a list of supported targets.
|
||||||
|
(letrec-syntax ((matches (syntax-rules (=>)
|
||||||
|
((_ (system-prefix => target) rest ...)
|
||||||
|
(if (string-prefix? system-prefix system)
|
||||||
|
target
|
||||||
|
(matches rest ...)))
|
||||||
|
((_)
|
||||||
|
(error "LLVM target for system is unknown" system)))))
|
||||||
|
(matches ("aarch64" => "AArch64")
|
||||||
|
("armhf" => "ARM")
|
||||||
|
("mips64el" => "Mips")
|
||||||
|
("powerpc" => "PowerPC")
|
||||||
|
("riscv" => "RISCV")
|
||||||
|
("x86_64" => "X86")
|
||||||
|
("i686" => "X86"))))
|
||||||
|
|
||||||
(define-public llvm-8
|
(define-public llvm-8
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||||
;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2014, 2019 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||||
|
@ -95,6 +95,7 @@
|
||||||
#:use-module (gnu packages onc-rpc)
|
#:use-module (gnu packages onc-rpc)
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
|
#:use-module (gnu packages perl-check)
|
||||||
#:use-module (gnu packages perl-web)
|
#:use-module (gnu packages perl-web)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
@ -116,6 +117,7 @@
|
||||||
#:use-module (gnu packages w3m)
|
#:use-module (gnu packages w3m)
|
||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
#:use-module (gnu packages webkit)
|
#:use-module (gnu packages webkit)
|
||||||
|
#:use-module (gnu packages xdisorg)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module ((guix licenses)
|
#:use-module ((guix licenses)
|
||||||
|
@ -1119,7 +1121,8 @@ compresses it.")
|
||||||
("libxml2" ,libxml2)
|
("libxml2" ,libxml2)
|
||||||
("perl" ,perl)
|
("perl" ,perl)
|
||||||
("python-2" ,python-2)
|
("python-2" ,python-2)
|
||||||
("mime-info" ,shared-mime-info)))
|
("mime-info" ,shared-mime-info)
|
||||||
|
("startup-notification" ,startup-notification)))
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
'("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"
|
'("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"
|
||||||
|
@ -1195,7 +1198,7 @@ delivery.")
|
||||||
(define-public exim
|
(define-public exim
|
||||||
(package
|
(package
|
||||||
(name "exim")
|
(name "exim")
|
||||||
(version "4.92")
|
(version "4.92.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1204,7 +1207,7 @@ delivery.")
|
||||||
(string-append "https://ftp.exim.org/pub/exim/exim4/old/exim-"
|
(string-append "https://ftp.exim.org/pub/exim/exim4/old/exim-"
|
||||||
version ".tar.bz2")))
|
version ".tar.bz2")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "127spqn009wa6irp6r1k7a24r8vdwb6mf0raamxn8lbxsnrwy7sl"))))
|
(base32 "132zmxgzz35xwi89g3crw6hd3y74rxj5zcpamakvrnlcn256amdp"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’
|
`(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’
|
||||||
|
@ -1900,6 +1903,136 @@ Khard can also be used from within the email client @command{mutt}.")
|
||||||
in Perl.")
|
in Perl.")
|
||||||
(license bsd-3)))
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public perl-mail-authenticationresults
|
||||||
|
(package
|
||||||
|
(name "perl-mail-authenticationresults")
|
||||||
|
(version "1.20180923")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://cpan/authors/id/M/MB/MBRADSHAW/"
|
||||||
|
"Mail-AuthenticationResults-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1g1wym9vcbhldwvi4w5pl0fhd4jh2icj975awf4wr5xmkli9mxbz"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("perl-test-exception" ,perl-test-exception)))
|
||||||
|
(home-page "https://metacpan.org/release/Mail-AuthenticationResults")
|
||||||
|
(synopsis "Object Oriented Authentication-Results Headers")
|
||||||
|
(description "Mail::AuthenticationResults parses the message header field
|
||||||
|
that indicates the message authentication status as per RFC7601. This module
|
||||||
|
is not fully compliant with the RFC but it tries to implement most styles of
|
||||||
|
Authentication-Results header seen in the wild.")
|
||||||
|
(license perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-mail-dkim
|
||||||
|
(package
|
||||||
|
(name "perl-mail-dkim")
|
||||||
|
(version "0.55")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-"
|
||||||
|
version
|
||||||
|
".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"18nsh1ff6fkns4xk3y2ixmzmadgggydj11qkzj6nlnq2hzqxsafz"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
|
||||||
|
("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
|
||||||
|
("perl-mailtools" ,perl-mailtools)
|
||||||
|
("perl-net-dns" ,perl-net-dns)))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl-net-dns-resolver-mock" ,perl-net-dns-resolver-mock)
|
||||||
|
("perl-test-requiresinternet" ,perl-test-requiresinternet)
|
||||||
|
("perl-yaml-libyaml" ,perl-yaml-libyaml)))
|
||||||
|
(home-page "https://metacpan.org/release/Mail-DKIM")
|
||||||
|
(synopsis "Signs/verifies Internet mail with DKIM/DomainKey signatures")
|
||||||
|
(description "Mail::DKIM is a Perl module that implements the new Domain
|
||||||
|
Keys Identified Mail (DKIM) standard, and the older Yahoo! DomainKeys standard,
|
||||||
|
both of which sign and verify emails using digital signatures and DNS records.
|
||||||
|
Mail-DKIM can be used by any Perl program that wants to provide support for
|
||||||
|
DKIM and/or DomainKeys.")
|
||||||
|
(license gpl3+)))
|
||||||
|
|
||||||
|
(define-public dkimproxy
|
||||||
|
(package
|
||||||
|
(name "dkimproxy")
|
||||||
|
(version "1.4.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://sourceforge/dkimproxy/dkimproxy/"
|
||||||
|
version "/dkimproxy-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75"))
|
||||||
|
(patches
|
||||||
|
(search-patches "dkimproxy-add-ipv6-support.patch"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'install 'make-wrapper
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(wrap.pl (lambda (scripts keys)
|
||||||
|
(for-each
|
||||||
|
(lambda (script)
|
||||||
|
(wrap-program (string-append out script)
|
||||||
|
`("PERL5LIB" ":" prefix
|
||||||
|
,(map (λ (input)
|
||||||
|
(string-append
|
||||||
|
(assoc-ref inputs input)
|
||||||
|
"/lib/perl5/site_perl"))
|
||||||
|
keys))))
|
||||||
|
scripts))))
|
||||||
|
(wrap.pl (list "/bin/dkimproxy.in"
|
||||||
|
"/bin/dkimproxy.out")
|
||||||
|
(list "perl-crypt-openssl-rsa"
|
||||||
|
"perl-io-socket-inet6"
|
||||||
|
"perl-mailtools"
|
||||||
|
"perl-mail-authenticationresults"
|
||||||
|
"perl-mail-dkim"
|
||||||
|
"perl-net-dns"
|
||||||
|
"perl-net-server"
|
||||||
|
"perl-socket6"))
|
||||||
|
(wrap.pl (list "/bin/dkim_responder.pl")
|
||||||
|
(list "perl-crypt-openssl-rsa"
|
||||||
|
"perl-mail-dkim"
|
||||||
|
"perl-mailtools"
|
||||||
|
"perl-mime-tools"
|
||||||
|
"perl-net-dns"
|
||||||
|
"perl-timedate"))
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
|
||||||
|
("perl-io-socket-inet6" ,perl-io-socket-inet6)
|
||||||
|
("perl-mailtools" ,perl-mailtools)
|
||||||
|
("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
|
||||||
|
("perl-mail-dkim" ,perl-mail-dkim)
|
||||||
|
("perl-mime-tools" ,perl-mime-tools)
|
||||||
|
("perl-net-dns" ,perl-net-dns)
|
||||||
|
("perl-net-server" ,perl-net-server)
|
||||||
|
("perl-socket6" ,perl-socket6)
|
||||||
|
("perl-timedate" ,perl-timedate)))
|
||||||
|
(home-page "http://dkimproxy.sourceforge.net/")
|
||||||
|
(synopsis "SMTP proxy to sign and verify Internet mail with DKIM headers")
|
||||||
|
(description
|
||||||
|
"DKIMproxy is an SMTP proxy that signs and verifies Internet mail using the
|
||||||
|
@code{Mail::DKIM} Perl module. It comprises two separate proxies: an outbound
|
||||||
|
proxy for signing outgoing email, and an inbound proxy for verifying signatures
|
||||||
|
of incoming messages.
|
||||||
|
|
||||||
|
It was designed for Postfix, but can be used to add DKIM support to nearly any
|
||||||
|
existing mail server. With Postfix, the proxies can operate as either
|
||||||
|
@code{Before-Queue} or @code{After-Queue} content filters.")
|
||||||
|
(license gpl2+)))
|
||||||
|
|
||||||
(define-public mb2md
|
(define-public mb2md
|
||||||
(package
|
(package
|
||||||
(name "mb2md")
|
(name "mb2md")
|
||||||
|
@ -2848,7 +2981,7 @@ replacement for the @code{urlview} program.")
|
||||||
`(("guile-debbugs" ,guile-debbugs-next)
|
`(("guile-debbugs" ,guile-debbugs-next)
|
||||||
("guile-email" ,guile-email)
|
("guile-email" ,guile-email)
|
||||||
("guile-fibers" ,guile-fibers)
|
("guile-fibers" ,guile-fibers)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-syntax-highlight" ,guile-syntax-highlight)
|
("guile-syntax-highlight" ,guile-syntax-highlight)
|
||||||
("guile" ,guile-2.2)))
|
("guile" ,guile-2.2)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
|
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
|
||||||
|
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1079,6 +1080,29 @@ definitions and structure manipulators for Perl.")
|
||||||
offline emulation of DNS.")
|
offline emulation of DNS.")
|
||||||
(license license:perl-license)))
|
(license license:perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-net-dns-resolver-mock
|
||||||
|
(package
|
||||||
|
(name "perl-net-dns-resolver-mock")
|
||||||
|
(version "1.20171219")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://cpan/authors/id/M/MB/MBRADSHAW/"
|
||||||
|
"Net-DNS-Resolver-Mock-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("perl-net-dns" ,perl-net-dns)))
|
||||||
|
(home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock")
|
||||||
|
(synopsis "Mock DNS Resolver object for testing")
|
||||||
|
(description
|
||||||
|
"Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns
|
||||||
|
static data from any provided DNS zone file instead of querying the network.
|
||||||
|
It is intended primarily for use in testing.")
|
||||||
|
(license license:perl-license)))
|
||||||
|
|
||||||
(define-public perl-netaddr-ip
|
(define-public perl-netaddr-ip
|
||||||
(package
|
(package
|
||||||
(name "perl-netaddr-ip")
|
(name "perl-netaddr-ip")
|
||||||
|
|
|
@ -293,7 +293,7 @@
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("gnutls" ,gnutls)
|
`(("gnutls" ,gnutls)
|
||||||
("guile-gcrypt" ,guile-gcrypt)
|
("guile-gcrypt" ,guile-gcrypt)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-sqlite3" ,guile-sqlite3)
|
("guile-sqlite3" ,guile-sqlite3)
|
||||||
("guile-ssh" ,guile-ssh)
|
("guile-ssh" ,guile-ssh)
|
||||||
("guile-git" ,guile-git)))
|
("guile-git" ,guile-git)))
|
||||||
|
@ -325,7 +325,7 @@ the Nix package manager.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("gnutls" ,gnutls)
|
`(("gnutls" ,gnutls)
|
||||||
("guile-git" ,guile-git)
|
("guile-git" ,guile-git)
|
||||||
("guile-json" ,guile-json)
|
("guile-json" ,guile-json-1)
|
||||||
("guile-gcrypt" ,guile-gcrypt)
|
("guile-gcrypt" ,guile-gcrypt)
|
||||||
,@(fold alist-delete (package-inputs guix)
|
,@(fold alist-delete (package-inputs guix)
|
||||||
'("boot-guile" "boot-guile/i686" "util-linux"))))
|
'("boot-guile" "boot-guile/i686" "util-linux"))))
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
From: Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
Date: Fri, 01 Mar 2019 20:51:32 +0100
|
||||||
|
Subject: [PATCH] dkimproxy: Add IPv6 support.
|
||||||
|
|
||||||
|
The following patch was copied verbatim from Debian[0].
|
||||||
|
|
||||||
|
[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656041
|
||||||
|
|
||||||
|
---
|
||||||
|
--- dkimproxy-1.4.1.orig/lib/MSDW/SMTP/Server.pm
|
||||||
|
+++ dkimproxy-1.4.1/lib/MSDW/SMTP/Server.pm
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
# Written by Bennett Todd <bet@rahul.net>
|
||||||
|
|
||||||
|
package MSDW::SMTP::Server;
|
||||||
|
-use IO::Socket;
|
||||||
|
+use IO::Socket::INET6;
|
||||||
|
use IO::File;
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
@@ -88,14 +88,14 @@
|
||||||
|
=item new(interface => $interface, port => $port);
|
||||||
|
|
||||||
|
The interface and port to listen on must be specified. The interface
|
||||||
|
-must be a valid numeric IP address (0.0.0.0 to listen on all
|
||||||
|
-interfaces, as usual); the port must be numeric. If this call
|
||||||
|
-succeeds, it returns a server structure with an open
|
||||||
|
-IO::Socket::INET in it, ready to listen on. If it fails it dies, so
|
||||||
|
-if you want anything other than an exit with an explanatory error
|
||||||
|
-message, wrap the constructor call in an eval block and pull the
|
||||||
|
-error out of $@ as usual. This is also the case for all other
|
||||||
|
-methods; they succeed or they die.
|
||||||
|
+must be a valid numeric IPv4 or IPv6 address (0.0.0.0 or :: to listen
|
||||||
|
+on all interfaces, as usual); the port must be numeric. If this call
|
||||||
|
+succeeds, it returns a server structure with an open IO::Socket::INET6
|
||||||
|
+in it, ready to listen on. If it fails it dies, so if you want
|
||||||
|
+anything other than an exit with an explanatory error message, wrap
|
||||||
|
+the constructor call in an eval block and pull the error out of $@ as
|
||||||
|
+usual. This is also the case for all other methods; they succeed or
|
||||||
|
+they die.
|
||||||
|
|
||||||
|
=item accept([debug => FD]);
|
||||||
|
|
||||||
|
@@ -154,7 +154,7 @@
|
||||||
|
my ($this, @opts) = @_;
|
||||||
|
my $class = ref($this) || $this;
|
||||||
|
my $self = bless { @opts }, $class;
|
||||||
|
- $self->{sock} = IO::Socket::INET->new(
|
||||||
|
+ $self->{sock} = IO::Socket::INET6->new(
|
||||||
|
LocalAddr => $self->{interface},
|
||||||
|
LocalPort => $self->{port},
|
||||||
|
Proto => 'tcp',
|
||||||
|
only in patch2:
|
||||||
|
unchanged:
|
||||||
|
--- dkimproxy-1.4.1.orig/scripts/dkimproxy.out
|
||||||
|
+++ dkimproxy-1.4.1/scripts/dkimproxy.out
|
||||||
|
@@ -314,17 +314,11 @@
|
||||||
|
{
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
- # try to determine peer's address
|
||||||
|
- use Socket;
|
||||||
|
- my $peersockaddr = getpeername(STDOUT);
|
||||||
|
- my ($port, $iaddr) = sockaddr_in($peersockaddr);
|
||||||
|
- $ENV{REMOTE_ADDR} = inet_ntoa($iaddr);
|
||||||
|
-
|
||||||
|
# initialize syslog
|
||||||
|
eval
|
||||||
|
{
|
||||||
|
openlog("dkimproxy.out", "perror,pid,ndelay", "mail");
|
||||||
|
- syslog("debug", '%s', "connect from $ENV{REMOTE_ADDR}");
|
||||||
|
+ syslog("debug", '%s', "connect from $self->{server}->{peeraddr}");
|
||||||
|
};
|
||||||
|
if (my $E = $@)
|
||||||
|
{
|
|
@ -0,0 +1,34 @@
|
||||||
|
From: Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
Date: Thu, 25 Jul 2019 21:48:25 +0200
|
||||||
|
Subject: [PATCH]: libvirt: remove ATTRIBUTE_UNUSED
|
||||||
|
|
||||||
|
This should fix the error reported here[0]. Patch taken verbatim from
|
||||||
|
upstream[1].
|
||||||
|
|
||||||
|
[0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36634#28
|
||||||
|
[1]: https://github.com/libvirt/libvirt/commit/759bf903a6c24a8efa25c7cf4b099d952eda9bd3
|
||||||
|
|
||||||
|
From 759bf903a6c24a8efa25c7cf4b099d952eda9bd3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pavel Hrdina <phrdina@redhat.com>
|
||||||
|
Date: Mon, 22 Jul 2019 14:46:34 +0200
|
||||||
|
Subject: [PATCH] vircgroupv2: remove ATTRIBUTE_UNUSED for used attribute
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||||
|
Acked-by: Peter Krempa <pkrempa@redhat.com>
|
||||||
|
---
|
||||||
|
src/util/vircgroupv2.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c
|
||||||
|
index af3192c99c..e36c36685b 100644
|
||||||
|
--- a/src/util/vircgroupv2.c
|
||||||
|
+++ b/src/util/vircgroupv2.c
|
||||||
|
@@ -399,7 +399,7 @@ virCgroupV2EnableController(virCgroupPtr group,
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
-virCgroupV2MakeGroup(virCgroupPtr parent ATTRIBUTE_UNUSED,
|
||||||
|
+virCgroupV2MakeGroup(virCgroupPtr parent,
|
||||||
|
virCgroupPtr group,
|
||||||
|
bool create,
|
||||||
|
unsigned int flags)
|
|
@ -3142,19 +3142,19 @@ and is very extensible.")
|
||||||
(define-public mallard-ducktype
|
(define-public mallard-ducktype
|
||||||
(package
|
(package
|
||||||
(name "mallard-ducktype")
|
(name "mallard-ducktype")
|
||||||
(version "1.0.1")
|
(version "1.0.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
;; git-reference because a proper source tarball is not available
|
;; git-reference because tests are not included in pypi source tarball
|
||||||
;; https://lists.gnu.org/archive/html/guix-devel/2019-05/msg00209.html
|
;; https://issues.guix.gnu.org/issue/36755#2
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/projectmallard/mallard-ducktype.git")
|
(url "https://github.com/projectmallard/mallard-ducktype.git")
|
||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0crland0kmpsyjfmnflcw7gaqy5b87b6ah17cmr9d5z1kyazf54n"))))
|
"1jk9bfz7g04ip78s03b0xak6d54rj4h9zpgadkziy1ji216g6y4c"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
|
@ -10962,25 +10962,36 @@ command @command{natsort} that exposes this functionality in the command line.")
|
||||||
(define-public python-glances
|
(define-public python-glances
|
||||||
(package
|
(package
|
||||||
(name "python-glances")
|
(name "python-glances")
|
||||||
(version "3.0.2")
|
(version "3.1.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "Glances" version))
|
(uri (pypi-uri "Glances" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"09fxysfp1n16csqvzvawy74qm6a94nvwjf3vcf5gkqp4i6k4vjjy"))))
|
"07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Glances phones PyPI for weekly update checks by default.
|
||||||
|
;; Disable these. The user can re-enable them if desired.
|
||||||
|
(substitute* "glances/outdated.py"
|
||||||
|
(("^(.*)self\\.load_config\\(config\\)\n" line indentation)
|
||||||
|
(string-append indentation
|
||||||
|
"self.args.disable_check_update = True\n"
|
||||||
|
line)))
|
||||||
|
#t))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-psutil" ,python-psutil)))
|
`(("python-future" ,python-future)
|
||||||
|
("python-psutil" ,python-psutil)))
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/nicolargo/glances")
|
"https://github.com/nicolargo/glances")
|
||||||
(synopsis
|
(synopsis "Cross-platform curses-based monitoring tool")
|
||||||
"A cross-platform curses-based monitoring tool")
|
|
||||||
(description
|
(description
|
||||||
"Glances is a curses-based monitoring tool for a wide variety of platforms.
|
"Glances is a curses-based monitoring tool for a wide variety of platforms.
|
||||||
Glances uses the PsUtil library to get information from your system. It monitors
|
Glances uses the PsUtil library to get information from your system. It
|
||||||
CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
|
monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
|
||||||
(license license:lgpl3+)))
|
(license license:lgpl3+)))
|
||||||
|
|
||||||
(define-public python2-glances
|
(define-public python2-glances
|
||||||
|
|
|
@ -108,7 +108,7 @@ joystick, and graphics hardware.")
|
||||||
(define-public sdl2
|
(define-public sdl2
|
||||||
(package (inherit sdl)
|
(package (inherit sdl)
|
||||||
(name "sdl2")
|
(name "sdl2")
|
||||||
(version "2.0.9")
|
(version "2.0.10")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
|
@ -116,7 +116,7 @@ joystick, and graphics hardware.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c94ndagzkdfqaa838yqg589p1nnqln8mv0hpwfhrkbfczf8cl95"))))
|
"0mqxp6w5jhbq6y1j690g9r3gpzwjxh4czaglw8x05l7hl49nqrdl"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments sdl)
|
(substitute-keyword-arguments (package-arguments sdl)
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;;
|
;;;
|
||||||
|
@ -115,23 +115,10 @@ which allows users to view a desktop computing environment.")
|
||||||
(home-page "https://www.spice-space.org")
|
(home-page "https://www.spice-space.org")
|
||||||
(license (list license:bsd-3 license:lgpl2.1+))))
|
(license (list license:bsd-3 license:lgpl2.1+))))
|
||||||
|
|
||||||
(define-public spice-protocol-0.12
|
|
||||||
(package
|
|
||||||
(inherit spice-protocol)
|
|
||||||
(version "0.12.15")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://www.spice-space.org/download/releases/"
|
|
||||||
"spice-protocol-" version ".tar.bz2"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb"))))))
|
|
||||||
|
|
||||||
(define-public spice-gtk
|
(define-public spice-gtk
|
||||||
(package
|
(package
|
||||||
(name "spice-gtk")
|
(name "spice-gtk")
|
||||||
(version "0.36")
|
(version "0.37")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -139,7 +126,7 @@ which allows users to view a desktop computing environment.")
|
||||||
"spice-gtk-" version ".tar.bz2"))
|
"spice-gtk-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1kfpixfdmxs9wn3id48gc9bvfrgxz935y3wpykf40bgi9mcc69ki"))))
|
"1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("gstreamer" ,gstreamer)
|
`(("gstreamer" ,gstreamer)
|
||||||
|
@ -148,7 +135,7 @@ which allows users to view a desktop computing environment.")
|
||||||
("gst-plugins-good" ,gst-plugins-good)
|
("gst-plugins-good" ,gst-plugins-good)
|
||||||
("gst-plugins-bad" ,gst-plugins-bad)
|
("gst-plugins-bad" ,gst-plugins-bad)
|
||||||
("gst-plugins-ugly" ,gst-plugins-ugly)
|
("gst-plugins-ugly" ,gst-plugins-ugly)
|
||||||
("spice-protocol" ,spice-protocol-0.12)
|
("spice-protocol" ,spice-protocol)
|
||||||
|
|
||||||
;; These are required by the pkg-config files.
|
;; These are required by the pkg-config files.
|
||||||
("gtk+" ,gtk+)
|
("gtk+" ,gtk+)
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
(define-public syncthing
|
(define-public syncthing
|
||||||
(package
|
(package
|
||||||
(name "syncthing")
|
(name "syncthing")
|
||||||
(version "1.1.4")
|
(version "1.2.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/syncthing/syncthing"
|
(uri (string-append "https://github.com/syncthing/syncthing"
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
"/syncthing-source-v" version ".tar.gz"))
|
"/syncthing-source-v" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0pkb9vdb10lnlk6sgg6hxgkdjnvxx90cfdf8vgrc5sljzm5qhr6l"))
|
"1l7crhggg2vq4y7pgzsj8wp7k4l9hw5yblflly5bzwywzxz8ff83"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
;; Delete bundled ("vendored") free software source code.
|
;; Delete bundled ("vendored") free software source code.
|
||||||
(snippet '(begin
|
(snippet '(begin
|
||||||
|
@ -102,10 +102,14 @@
|
||||||
("go-github-com-vitrun-qart-coding" ,go-github-com-vitrun-qart-coding)
|
("go-github-com-vitrun-qart-coding" ,go-github-com-vitrun-qart-coding)
|
||||||
("go-github-com-vitrun-qart-gf256" ,go-github-com-vitrun-qart-gf256)
|
("go-github-com-vitrun-qart-gf256" ,go-github-com-vitrun-qart-gf256)
|
||||||
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
|
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
|
||||||
("go-golang-org-x-crypto-bcrypt" ,go-golang-org-x-crypto-bcrypt)
|
("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
|
||||||
("go-golang-org-x-crypto-blowfish" ,go-golang-org-x-crypto-blowfish)
|
|
||||||
("go-github-com-flynn-archive-go-shlex"
|
("go-github-com-flynn-archive-go-shlex"
|
||||||
,go-github-com-flynn-archive-go-shlex)
|
,go-github-com-flynn-archive-go-shlex)
|
||||||
|
("go-github-com-getsentry-raven-go" ,go-github-com-getsentry-raven-go)
|
||||||
|
("go-github-com-maruel-panicparse" ,go-github-com-maruel-panicparse)
|
||||||
|
("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun)
|
||||||
|
("go-github-com-audriusbutkevicius-pfilter" ,go-github-com-audriusbutkevicius-pfilter)
|
||||||
|
("go-github-com-lucas-clemente-quic-go" ,go-github-com-lucas-clemente-quic-go)
|
||||||
|
|
||||||
;; For tests
|
;; For tests
|
||||||
("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
|
("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
|
||||||
|
@ -569,11 +573,11 @@ run-time in Go.")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public go-github-com-syndtr-goleveldb
|
(define-public go-github-com-syndtr-goleveldb
|
||||||
(let ((commit "34011bf325bce385408353a30b101fe5e923eb6e")
|
(let ((commit "c3a204f8e96543bb0cc090385c001078f184fc46")
|
||||||
(revision "2"))
|
(revision "3"))
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-syndtr-goleveldb")
|
(name "go-github-com-syndtr-goleveldb")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "1.0.1" revision commit))
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -582,7 +586,7 @@ run-time in Go.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd"))))
|
"18cac90dim2z5g28vazzibxa058q2ynihsmf0vbscwzba6l5s5ms"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
|
`(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
|
||||||
|
@ -739,28 +743,6 @@ hashes.")
|
||||||
(home-page "https://github.com/chmduquesne/rollinghash")
|
(home-page "https://github.com/chmduquesne/rollinghash")
|
||||||
(license expat))))
|
(license expat))))
|
||||||
|
|
||||||
(define-public go-github-com-pkg-errors
|
|
||||||
(package
|
|
||||||
(name "go-github-com-pkg-errors")
|
|
||||||
(version "0.8.1")
|
|
||||||
(source (origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/pkg/errors.git")
|
|
||||||
(commit (string-append "v" version))))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"))))
|
|
||||||
(build-system go-build-system)
|
|
||||||
(arguments
|
|
||||||
`(#:import-path "github.com/pkg/errors"))
|
|
||||||
(synopsis "Go error handling primitives")
|
|
||||||
(description "This package provides @code{error}, which offers simple
|
|
||||||
error handling primitives in Go.")
|
|
||||||
(home-page "https://github.com/pkg/errors")
|
|
||||||
(license bsd-2)))
|
|
||||||
|
|
||||||
(define-public go-github-com-petermattis-goid
|
(define-public go-github-com-petermattis-goid
|
||||||
(let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
|
(let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
|
||||||
(revision "0"))
|
(revision "0"))
|
||||||
|
@ -863,20 +845,18 @@ bounds.")
|
||||||
(license expat))))
|
(license expat))))
|
||||||
|
|
||||||
(define-public go-github-com-golang-protobuf-proto
|
(define-public go-github-com-golang-protobuf-proto
|
||||||
(let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845")
|
|
||||||
(revision "0"))
|
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-golang-protobuf-proto")
|
(name "go-github-com-golang-protobuf-proto")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version "1.3.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/golang/protobuf.git")
|
(url "https://github.com/golang/protobuf.git")
|
||||||
(commit commit)))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"))))
|
"15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/golang/protobuf/proto"
|
'(#:import-path "github.com/golang/protobuf/proto"
|
||||||
|
@ -887,11 +867,11 @@ bounds.")
|
||||||
(description "This package provides Go support for the Protocol Buffers
|
(description "This package provides Go support for the Protocol Buffers
|
||||||
data serialization format.")
|
data serialization format.")
|
||||||
(home-page "https://github.com/golang/protobuf")
|
(home-page "https://github.com/golang/protobuf")
|
||||||
(license bsd-3))))
|
(license bsd-3)))
|
||||||
|
|
||||||
(define-public go-github-com-prometheus-client-model-go
|
(define-public go-github-com-prometheus-client-model-go
|
||||||
(let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c")
|
(let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8")
|
||||||
(revision "0"))
|
(revision "1"))
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-prometheus-client-model-go")
|
(name "go-github-com-prometheus-client-model-go")
|
||||||
(version (git-version "0.0.2" revision commit))
|
(version (git-version "0.0.2" revision commit))
|
||||||
|
@ -903,7 +883,7 @@ data serialization format.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"))))
|
"1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/prometheus/client_model/go"
|
'(#:import-path "github.com/prometheus/client_model/go"
|
||||||
|
@ -948,20 +928,18 @@ message streaming.")
|
||||||
(license asl2.0))))
|
(license asl2.0))))
|
||||||
|
|
||||||
(define-public go-github-com-prometheus-common-expfmt
|
(define-public go-github-com-prometheus-common-expfmt
|
||||||
(let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca")
|
|
||||||
(revision "0"))
|
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-prometheus-common-expfmt")
|
(name "go-github-com-prometheus-common-expfmt")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version "0.4.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/prometheus/common.git")
|
(url "https://github.com/prometheus/common.git")
|
||||||
(commit commit)))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j"))))
|
"0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/prometheus/common/expfmt"
|
'(#:import-path "github.com/prometheus/common/expfmt"
|
||||||
|
@ -995,23 +973,21 @@ message streaming.")
|
||||||
(description "This package provides tools for reading and writing
|
(description "This package provides tools for reading and writing
|
||||||
Prometheus metrics.")
|
Prometheus metrics.")
|
||||||
(home-page "https://github.com/prometheus/common")
|
(home-page "https://github.com/prometheus/common")
|
||||||
(license asl2.0))))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public go-github-com-prometheus-common-model
|
(define-public go-github-com-prometheus-common-model
|
||||||
(let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca")
|
|
||||||
(revision "0"))
|
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-prometheus-common-model")
|
(name "go-github-com-prometheus-common-model")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version "0.4.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/prometheus/common.git")
|
(url "https://github.com/prometheus/common.git")
|
||||||
(commit commit)))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j"))))
|
"0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/prometheus/common/model"
|
'(#:import-path "github.com/prometheus/common/model"
|
||||||
|
@ -1020,36 +996,37 @@ Prometheus metrics.")
|
||||||
(description "This package provides a component of the Go Prometheus
|
(description "This package provides a component of the Go Prometheus
|
||||||
implementation.")
|
implementation.")
|
||||||
(home-page "https://github.com/prometheus/common")
|
(home-page "https://github.com/prometheus/common")
|
||||||
(license asl2.0))))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public go-github-com-prometheus-procfs
|
(define-public go-github-com-prometheus-procfs
|
||||||
(let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb")
|
|
||||||
(revision "0"))
|
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-prometheus-procfs")
|
(name "go-github-com-prometheus-procfs")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version "0.0.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/prometheus/procfs.git")
|
(url "https://github.com/prometheus/procfs.git")
|
||||||
(commit commit)))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj"))))
|
"18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/prometheus/procfs"))
|
'(#:import-path "github.com/prometheus/procfs"
|
||||||
|
;; The tests require Go modules, which are not yet supported in Guix's
|
||||||
|
;; Go build system.
|
||||||
|
#:tests? #f))
|
||||||
(synopsis "Go library for reading @file{/proc}")
|
(synopsis "Go library for reading @file{/proc}")
|
||||||
(description "The @code{procfs} Go package provides functions to retrieve
|
(description "The @code{procfs} Go package provides functions to retrieve
|
||||||
system, kernel, and process metrics from the @file{/proc} pseudo file system.")
|
system, kernel, and process metrics from the @file{/proc} pseudo file system.")
|
||||||
(home-page "https://github.com/prometheus/procfs")
|
(home-page "https://github.com/prometheus/procfs")
|
||||||
(license asl2.0))))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public go-github-com-client-golang-prometheus-promhttp
|
(define-public go-github-com-client-golang-prometheus-promhttp
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-client-golang-prometheus-promhttp")
|
(name "go-github-com-client-golang-prometheus-promhttp")
|
||||||
(version "0.9.2")
|
(version "0.9.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -1058,7 +1035,7 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs"))))
|
"0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ; The tests require internet access
|
'(#:tests? #f ; The tests require internet access
|
||||||
|
@ -1087,7 +1064,7 @@ server tools for Prometheus metrics.")
|
||||||
(define-public go-github-com-prometheus-client-golang-prometheus
|
(define-public go-github-com-prometheus-client-golang-prometheus
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-prometheus-client-golang-prometheus")
|
(name "go-github-com-prometheus-client-golang-prometheus")
|
||||||
(version "0.9.2")
|
(version "0.9.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -1096,7 +1073,7 @@ server tools for Prometheus metrics.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs"))))
|
"0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/prometheus/client_golang/prometheus"
|
'(#:import-path "github.com/prometheus/client_golang/prometheus"
|
||||||
|
@ -1204,7 +1181,7 @@ quoting, commenting, and escaping.")
|
||||||
(define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg
|
(define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg
|
||||||
(package
|
(package
|
||||||
(name "go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg")
|
(name "go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg")
|
||||||
(version "0.2.0")
|
(version "0.4.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -1213,7 +1190,7 @@ quoting, commenting, and escaping.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"02kym6lcfnlq23qbv277jr0q1n7jj0r14gqg93c7wn7gc44jv3vp"))))
|
"0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg"
|
'(#:import-path "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg"
|
||||||
|
@ -1222,3 +1199,53 @@ quoting, commenting, and escaping.")
|
||||||
(description "This package is an internal component of Prometheus.")
|
(description "This package is an internal component of Prometheus.")
|
||||||
(home-page "https://github.com/prometheus/common")
|
(home-page "https://github.com/prometheus/common")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
|
(define-public go-github-com-audriusbutkevicius-pfilter
|
||||||
|
(let ((commit "c55ef6137fc6f075801eac099cc2687ede0f101d")
|
||||||
|
(revision "3"))
|
||||||
|
(package
|
||||||
|
(name "go-github-com-audriusbutkevicius-pfilter")
|
||||||
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/AudriusButkevicius/pfilter.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0xzhwyd0w21bhvzl5pinn22hp0y6h44rh3s2ppql69rafc6zd3c6"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/AudriusButkevicius/pfilter"))
|
||||||
|
(synopsis "Filter packets into mulitple virtual connections")
|
||||||
|
(description "Pfilter is a Go package for filtering packets into multiple
|
||||||
|
virtual connections from a single physical connection.")
|
||||||
|
(home-page "https://github.com/AudriusButkevicius/pfilter")
|
||||||
|
(license expat))))
|
||||||
|
|
||||||
|
(define-public go-github-com-ccding-go-stun
|
||||||
|
(let ((commit "be486d185f3dfcb2dbf8429332da50a0da7f95a6")
|
||||||
|
(revision "2"))
|
||||||
|
(package
|
||||||
|
(name "go-github-com-ccding-go-stun")
|
||||||
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/ccding/go-stun.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1gr0rw1c1y7wh6913lyn5k4ig023by27i36bly6am8dwgrgp34ww"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/ccding/go-stun"))
|
||||||
|
(synopsis "STUN client implementation")
|
||||||
|
(description "Go-stun is a go implementation of the STUN client (RFC 3489
|
||||||
|
and RFC 5389).")
|
||||||
|
(home-page "https://github.com/ccding/go-stun")
|
||||||
|
(license asl2.0))))
|
||||||
|
|
|
@ -847,10 +847,10 @@ This package provides a library common to all Jami clients.")
|
||||||
(home-page "https://jami.net")
|
(home-page "https://jami.net")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public jami-client-gnome
|
(define-public jami
|
||||||
(package
|
(package
|
||||||
(inherit libring)
|
(inherit libring)
|
||||||
(name "jami-client-gnome")
|
(name "jami")
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("libringclient" ,libringclient)
|
`(("libringclient" ,libringclient)
|
||||||
|
@ -906,3 +906,6 @@ IAX protocols, as well as decentralized calling using P2P-DHT.
|
||||||
This package provides the Jami client for the GNOME desktop.")
|
This package provides the Jami client for the GNOME desktop.")
|
||||||
(home-page "https://jami.net")
|
(home-page "https://jami.net")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public jami-client-gnome
|
||||||
|
(deprecated-package "jami-client-gnome" jami))
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
|
#:use-module (gnu packages golang)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages libevent)
|
#:use-module (gnu packages libevent)
|
||||||
|
@ -754,6 +755,35 @@ with terminals in Go.")
|
||||||
(home-page "https://go.googlesource.com/crypto/")
|
(home-page "https://go.googlesource.com/crypto/")
|
||||||
(license license:bsd-3))))
|
(license license:bsd-3))))
|
||||||
|
|
||||||
|
(define-public go-github-com-junegunn-fzf
|
||||||
|
(package
|
||||||
|
(name "go-github-com-junegunn-fzf")
|
||||||
|
(version "0.18.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/junegunn/fzf")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0pwpr4fpw56yzzkcabzzgbgwraaxmp7xzzmap7w1xsrkbj7dl2xl"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:import-path "github.com/junegunn/fzf"))
|
||||||
|
(inputs
|
||||||
|
`(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
|
||||||
|
("go-github-com-mattn-go-shellwords" ,go-github-com-mattn-go-shellwords)
|
||||||
|
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
|
||||||
|
("go-github-com-gdamore-tcell" ,go-github-com-gdamore-tcell)
|
||||||
|
("go-golang-org-x-crypto-ssh-terminal" ,go-golang-org-x-crypto-ssh-terminal)))
|
||||||
|
(home-page "https://github.com/junegunn/fzf")
|
||||||
|
(synopsis "Command-line fuzzy-finder")
|
||||||
|
(description "This package provides an interactive command-line filter
|
||||||
|
usable with any list--including files, command history, processes and more.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public go-github.com-howeyc-gopass
|
(define-public go-github.com-howeyc-gopass
|
||||||
(let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
|
(let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
|
||||||
(revision "0"))
|
(revision "0"))
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
|
||||||
|
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages assembly)
|
#:use-module (gnu packages assembly)
|
||||||
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages boost)
|
#:use-module (gnu packages boost)
|
||||||
#:use-module (gnu packages documentation)
|
#:use-module (gnu packages documentation)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
|
@ -50,6 +52,7 @@
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages qt)
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages regex)
|
#:use-module (gnu packages regex)
|
||||||
#:use-module (gnu packages ruby)
|
#:use-module (gnu packages ruby)
|
||||||
|
@ -437,3 +440,131 @@ types of content. It has robust support for mathematical formulas and plots.
|
||||||
and Octave. TeXmacs is completely extensible via Guile.")
|
and Octave. TeXmacs is completely extensible via Guile.")
|
||||||
(license license:gpl3+)
|
(license license:gpl3+)
|
||||||
(home-page "https://www.texmacs.org/tmweb/home/welcome.en.html")))
|
(home-page "https://www.texmacs.org/tmweb/home/welcome.en.html")))
|
||||||
|
|
||||||
|
(define-public scintilla
|
||||||
|
(package
|
||||||
|
(name "scintilla")
|
||||||
|
(version "4.2.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (let ((v (apply string-append (string-split version #\.))))
|
||||||
|
(string-append
|
||||||
|
"https://www.scintilla.org/scintilla" v ".tgz")))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"02ymi86fpcypg6423vfr54lbkxbks046q02v3m3dypawcf3bqy42"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
|
||||||
|
#:tests? #f ;require un-packaged Pyside
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure) ;no configure script
|
||||||
|
(add-after 'unpack 'build-shared-library
|
||||||
|
(lambda _
|
||||||
|
(substitute* "gtk/makefile"
|
||||||
|
(("scintilla\\.a") "libscintilla.so")
|
||||||
|
(("\\$\\(AR\\) \\$\\(ARFLAGS\\) \\$@ \\$\\^")
|
||||||
|
"$(CC) -shared $^ -o $@")
|
||||||
|
(("\\$\\(RANLIB\\) \\$@") ""))
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'expand-C++-include-path
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; Make <gcc>/include/c++/ext/string_conversions.h find
|
||||||
|
;; <stdlib.h>.
|
||||||
|
(let* ((path "CPLUS_INCLUDE_PATH")
|
||||||
|
(gcc (assoc-ref inputs "gcc"))
|
||||||
|
(c++ (string-append gcc "/include/c++")))
|
||||||
|
(setenv path (string-append c++ ":" (getenv path))))
|
||||||
|
#t))
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(lib (string-append out "/lib"))
|
||||||
|
(include (string-append out "/include")))
|
||||||
|
(install-file "bin/libscintilla.so" lib)
|
||||||
|
(for-each (lambda (f) (install-file f include))
|
||||||
|
(find-files "include/" "."))
|
||||||
|
#t))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("gcc" ,gcc-7) ;require GCC 7.1+
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("gtk+" ,gtk+)))
|
||||||
|
(home-page "https://www.scintilla.org/")
|
||||||
|
(synopsis "Code editor for GTK+")
|
||||||
|
(description "Scintilla is a source code editing component for
|
||||||
|
GTK+. It has the usual features found in text editing components, as
|
||||||
|
well as some that are especially useful for editing and debugging
|
||||||
|
source code; these include support for syntax styling, error
|
||||||
|
indicators, code completion and call tips. Styling choices are more
|
||||||
|
open than with many editors: Scintilla lets you use proportional
|
||||||
|
fonts, bold and italics, multiple foreground and background colours,
|
||||||
|
and multiple fonts.")
|
||||||
|
(license license:hpnd)))
|
||||||
|
|
||||||
|
(define-public geany
|
||||||
|
(package
|
||||||
|
(name "geany")
|
||||||
|
(version "1.35")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.geany.org/"
|
||||||
|
"geany-" version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet '(begin
|
||||||
|
(delete-file-recursively "scintilla")
|
||||||
|
#t))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("autoconf" ,autoconf)
|
||||||
|
("automake" ,automake)
|
||||||
|
("doxygen" ,doxygen)
|
||||||
|
("glib" ,glib "bin")
|
||||||
|
("intltool" ,intltool)
|
||||||
|
("libtool" ,libtool)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("python-docutils" ,python-docutils))) ;for rst2html
|
||||||
|
(inputs
|
||||||
|
`(("gtk+" ,gtk+)
|
||||||
|
("scintilla" ,scintilla)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'use-scintilla-shared-library
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "configure.ac"
|
||||||
|
(("scintilla/Makefile") "")
|
||||||
|
(("scintilla/include/Makefile") ""))
|
||||||
|
(substitute* "Makefile.am"
|
||||||
|
(("scintilla ") ""))
|
||||||
|
(substitute* "src/Makefile.am"
|
||||||
|
(("\\$\\(top_builddir\\)/scintilla/libscintilla.la") "")
|
||||||
|
(("geany_LDFLAGS =" all) (string-append all " -lscintilla")))
|
||||||
|
(substitute* "doc/Makefile.am"
|
||||||
|
(("\\$\\(INSTALL_DATA\\) \\$\\(top_srcdir\\)/scintilla/License.txt \\$\\(DOCDIR\\)/ScintillaLicense.txt") ""))
|
||||||
|
(for-each delete-file (list "autogen.sh" "configure" "Makefile.in"))
|
||||||
|
#t)))))
|
||||||
|
(home-page "https://www.geany.org")
|
||||||
|
(synopsis "Fast and lightweight IDE")
|
||||||
|
(description "Geany is a small and fast Integrated Development
|
||||||
|
Environment (IDE) that only has a few dependencies on other packages and is as
|
||||||
|
independent as possible from special desktop environments like KDE or GNOME.
|
||||||
|
|
||||||
|
The basic features of Geany are:
|
||||||
|
@itemize
|
||||||
|
@item syntax highlighting
|
||||||
|
@item code completion
|
||||||
|
@item auto completion of often constructed constructs like if, for and while
|
||||||
|
@item auto completion of XML and HTML tags
|
||||||
|
@item call tips
|
||||||
|
@item folding
|
||||||
|
@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
|
||||||
|
@item symbol lists
|
||||||
|
@item embedded terminal emulation
|
||||||
|
@item extensibility through plugins
|
||||||
|
@end itemize")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -693,27 +693,32 @@ and Cython.")
|
||||||
(license license:expat))))
|
(license license:expat))))
|
||||||
|
|
||||||
(define-public go-github.com-mattn-go-runewidth
|
(define-public go-github.com-mattn-go-runewidth
|
||||||
(package
|
(let ((commit "703b5e6b11ae25aeb2af9ebb5d5fdf8fa2575211")
|
||||||
(name "go-github.com-mattn-go-runewidth")
|
(version "0.0.4")
|
||||||
(version "0.0.2")
|
(revision "1"))
|
||||||
(source (origin
|
(package
|
||||||
(method git-fetch)
|
(name "go-github.com-mattn-go-runewidth")
|
||||||
(uri (git-reference
|
(version (git-version version revision commit))
|
||||||
(url "https://github.com/mattn/go-runewidth")
|
(source
|
||||||
(commit (string-append "v" version))))
|
(origin
|
||||||
(file-name (git-file-name name version))
|
(method git-fetch)
|
||||||
(sha256
|
(uri (git-reference
|
||||||
(base32
|
(url "https://github.com/mattn/runewidth")
|
||||||
"0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb"))))
|
(commit commit)))
|
||||||
(build-system go-build-system)
|
(file-name (git-file-name name version))
|
||||||
(arguments
|
(sha256
|
||||||
'(#:import-path "github.com/mattn/go-runewidth"))
|
(base32
|
||||||
(synopsis "@code{runewidth} provides Go functions to work with string widths")
|
"0znpyz71gajx3g0j2zp63nhjj2c07g16885vxv4ykwnrfmzbgk4w"))))
|
||||||
(description
|
(build-system go-build-system)
|
||||||
"The @code{runewidth} library provides Go functions for padding,
|
(arguments
|
||||||
measuring and checking the width of strings, with support east asian text.")
|
'(#:import-path "github.com/mattn/go-runewidth"))
|
||||||
(home-page "https://github.com/jessevdk/go-flags")
|
(synopsis "@code{runewidth} provides Go functions to work with string widths")
|
||||||
(license license:expat)))
|
(description
|
||||||
|
"The @code{runewidth} library provides Go functions for padding,
|
||||||
|
measuring and checking the width of strings, with support for East Asian
|
||||||
|
text.")
|
||||||
|
(home-page "https://github.com/mattn/runewidth")
|
||||||
|
(license license:expat))))
|
||||||
|
|
||||||
(define-public docx2txt
|
(define-public docx2txt
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||||
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
|
;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
|
||||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||||
|
@ -33,8 +33,10 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (guix build-system go)
|
||||||
#:use-module (guix build-system perl)
|
#:use-module (guix build-system perl)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
|
@ -924,3 +926,27 @@ coding footprint.")
|
||||||
ACME-server (currently only provided by Let's Encrypt) implemented as a
|
ACME-server (currently only provided by Let's Encrypt) implemented as a
|
||||||
relatively simple Bash script.")
|
relatively simple Bash script.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public go-github-com-certifi-gocertifi
|
||||||
|
(let ((commit "d2eda712971317d7dd278bc2a52acda7e945f97e")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "go-github-com-certifi-gocertifi")
|
||||||
|
(version (git-version "2018.01.18" revision commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/certifi/gocertifi")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0f3v26xps7gadw4qfmh1kxbpgp0cgqdd61a257xnnvnd7ll6k8dh"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:import-path "github.com/certifi/gocertifi"))
|
||||||
|
(synopsis "X.509 TLS root certificate bundle for Go")
|
||||||
|
(description "This package is a Go language X.509 TLS root certificate bundle,
|
||||||
|
derived from Mozilla's collection.")
|
||||||
|
(home-page "https://certifi.io")
|
||||||
|
(license license:mpl2.0))))
|
||||||
|
|
|
@ -753,6 +753,40 @@ entry-points (VLD, IDCT, Motion Compensation etc.) for prevailing coding
|
||||||
standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
|
standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public libva-utils
|
||||||
|
(package
|
||||||
|
(name "libva-utils")
|
||||||
|
(version "2.5.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/intel/libva-utils/releases/download/"
|
||||||
|
version "/libva-utils-" version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32 "05rasyqnsg522zqxak1q8rrm1hys7wwbi41kd0szjq0d27awjf4j"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
(list "--enable-wayland"
|
||||||
|
"--enable-x11")))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("libdrm" ,libdrm)
|
||||||
|
("libva" ,libva)
|
||||||
|
("libx11" ,libx11)
|
||||||
|
("mesa" ,mesa)
|
||||||
|
("wayland" ,wayland)))
|
||||||
|
(home-page "https://01.org/linuxmedia/vaapi")
|
||||||
|
(synopsis "Collection of testing utilities for VA-API")
|
||||||
|
(description
|
||||||
|
"This is a collection of utilities to query and test the @acronym{VA-API,
|
||||||
|
Video Acceleration API} implemented by the libva library.
|
||||||
|
|
||||||
|
These tools require a supported graphics chip, driver, and VA-API back end to
|
||||||
|
operate properly.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public ffmpeg
|
(define-public ffmpeg
|
||||||
(package
|
(package
|
||||||
(name "ffmpeg")
|
(name "ffmpeg")
|
||||||
|
@ -1013,7 +1047,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
||||||
(define-public vlc
|
(define-public vlc
|
||||||
(package
|
(package
|
||||||
(name "vlc")
|
(name "vlc")
|
||||||
(version "3.0.7")
|
(version "3.0.7.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -1022,7 +1056,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
||||||
"/vlc-" version ".tar.xz"))
|
"/vlc-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"05irswyg9acflxzy4vfyvgi643r72vsvagv118zawjqg1wagxdaw"))))
|
"1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("flex" ,flex)
|
`(("flex" ,flex)
|
||||||
|
@ -1446,7 +1480,7 @@ access to mpv's powerful playback capabilities.")
|
||||||
(define-public youtube-dl
|
(define-public youtube-dl
|
||||||
(package
|
(package
|
||||||
(name "youtube-dl")
|
(name "youtube-dl")
|
||||||
(version "2019.06.21")
|
(version "2019.07.30")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/rg3/youtube-dl/releases/"
|
(uri (string-append "https://github.com/rg3/youtube-dl/releases/"
|
||||||
|
@ -1454,7 +1488,7 @@ access to mpv's powerful playback capabilities.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03a729198zzhixbn7xixi9bprmk3qqh5dsyh3dqhji6lmlijx1w5"))))
|
"0nb5xvq4aq0az8y5wb54zp5q4qzfhs7rcb39yp6j5q8jyjp9kzwy"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; The problem here is that the directory for the man page and completion
|
;; The problem here is that the directory for the man page and completion
|
||||||
|
@ -2699,6 +2733,50 @@ of modern, widely supported codecs.")
|
||||||
;; Combination under GPLv2. See LICENSE.
|
;; Combination under GPLv2. See LICENSE.
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public intel-vaapi-driver
|
||||||
|
(package
|
||||||
|
(name "intel-vaapi-driver")
|
||||||
|
(version "2.3.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/intel/intel-vaapi-driver/"
|
||||||
|
"releases/download/" version "/intel-vaapi-driver-"
|
||||||
|
version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32 "1qyzxh3p8cw4fv8bz9zd4kc8hajlaps7xryzh6pad814n3m5sbjw"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("libdrm" ,libdrm)
|
||||||
|
("libva" ,libva)
|
||||||
|
("libx11" ,libx11)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'set-target-directory
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(setenv "LIBVA_DRIVERS_PATH" (string-append out "/lib/dri"))
|
||||||
|
#t))))))
|
||||||
|
;; XXX Because of <https://issues.guix.gnu.org/issue/22138>, we need to add
|
||||||
|
;; this to all VA-API back ends instead of once to libva.
|
||||||
|
(native-search-paths
|
||||||
|
(list (search-path-specification
|
||||||
|
(variable "LIBVA_DRIVERS_PATH")
|
||||||
|
(files '("lib/dri")))))
|
||||||
|
(home-page "https://01.org/linuxmedia/vaapi")
|
||||||
|
(synopsis "VA-API video acceleration driver for Intel GEN Graphics devices")
|
||||||
|
(description
|
||||||
|
"This is the @acronym{VA-API, Video Acceleration API} back end required for
|
||||||
|
hardware-accelerated video processing on Intel GEN Graphics devices supported by
|
||||||
|
the i915 driver, such as integrated Intel HD Graphics. It provides access to
|
||||||
|
both hardware and shader functionality for faster encoding, decoding, and
|
||||||
|
post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
|
||||||
|
(license (list license:bsd-2 ; src/gen9_vp9_const_def.c
|
||||||
|
license:expat)))) ; the rest, excluding the test suite
|
||||||
|
|
||||||
(define-public openh264
|
(define-public openh264
|
||||||
(package
|
(package
|
||||||
(name "openh264")
|
(name "openh264")
|
||||||
|
|
|
@ -392,13 +392,15 @@ manage system or application containers.")
|
||||||
(package
|
(package
|
||||||
(name "libvirt")
|
(name "libvirt")
|
||||||
(version "5.5.0")
|
(version "5.5.0")
|
||||||
(source (origin
|
(source
|
||||||
(method url-fetch)
|
(origin
|
||||||
(uri (string-append "https://libvirt.org/sources/libvirt-"
|
(method url-fetch)
|
||||||
version ".tar.xz"))
|
(uri (string-append "https://libvirt.org/sources/libvirt-"
|
||||||
(sha256
|
version ".tar.xz"))
|
||||||
(base32
|
(sha256
|
||||||
"1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))))
|
(base32 "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))
|
||||||
|
(patches
|
||||||
|
(search-patches "libvirt-remove-ATTRIBUTE_UNUSED.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
|
@ -490,37 +492,31 @@ to integrate other virtualization mechanisms if needed.")
|
||||||
(define-public libvirt-glib
|
(define-public libvirt-glib
|
||||||
(package
|
(package
|
||||||
(name "libvirt-glib")
|
(name "libvirt-glib")
|
||||||
(version "1.0.0")
|
(version "2.0.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "ftp://libvirt.org/libvirt/glib/"
|
(uri (string-append "ftp://libvirt.org/libvirt/glib/"
|
||||||
"libvirt-glib-" version ".tar.gz"))
|
"libvirt-glib-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0iwa5sdbii52pjpdm5j37f67sdmf0kpcky4liwhy1nf43k85i4fa"))))
|
"0six9ckmvlwwyavyjkgc262qkpvfqgi8rjij7cyk00bmqq8c9s4l"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
|
||||||
`(#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'fix-tests
|
|
||||||
(lambda _
|
|
||||||
(substitute* "tests/test-events.c"
|
|
||||||
(("/bin/true") (which "true")))
|
|
||||||
#t)))))
|
|
||||||
(inputs
|
(inputs
|
||||||
`(("libxml2" ,libxml2)
|
`(("openssl" ,openssl)
|
||||||
("libvirt" ,libvirt)
|
|
||||||
("gobject-introspection" ,gobject-introspection)
|
|
||||||
("glib" ,glib)
|
|
||||||
("openssl" ,openssl)
|
|
||||||
("cyrus-sasl" ,cyrus-sasl)
|
("cyrus-sasl" ,cyrus-sasl)
|
||||||
("lvm2" ,lvm2) ; for libdevmapper
|
("lvm2" ,lvm2) ; for libdevmapper
|
||||||
("libyajl" ,libyajl)))
|
("libyajl" ,libyajl)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
("intltool" ,intltool)
|
("intltool" ,intltool)
|
||||||
("glib" ,glib "bin")
|
("glib" ,glib "bin")
|
||||||
("vala" ,vala)))
|
("vala" ,vala)))
|
||||||
|
(propagated-inputs
|
||||||
|
;; ‘Required:’ by the installed .pc files.
|
||||||
|
`(("glib" ,glib)
|
||||||
|
("libvirt" ,libvirt)
|
||||||
|
("libxml2" ,libxml2)
|
||||||
|
("gobject-introspection" ,gobject-introspection)))
|
||||||
(home-page "https://libvirt.org")
|
(home-page "https://libvirt.org")
|
||||||
(synopsis "GLib wrapper around libvirt")
|
(synopsis "GLib wrapper around libvirt")
|
||||||
(description "libvirt-glib wraps the libvirt library to provide a
|
(description "libvirt-glib wraps the libvirt library to provide a
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
|
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
||||||
|
@ -127,6 +127,7 @@
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages valgrind)
|
#:use-module (gnu packages valgrind)
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
|
#:use-module (gnu packages vim)
|
||||||
#:use-module (gnu packages xml))
|
#:use-module (gnu packages xml))
|
||||||
|
|
||||||
(define-public httpd
|
(define-public httpd
|
||||||
|
@ -205,14 +206,14 @@ Interface} specification.")
|
||||||
;; ’stable’ and recommends that “in general you deploy the NGINX mainline
|
;; ’stable’ and recommends that “in general you deploy the NGINX mainline
|
||||||
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
|
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
|
||||||
;; Consider updating the nginx-documentation package together with this one.
|
;; Consider updating the nginx-documentation package together with this one.
|
||||||
(version "1.17.1")
|
(version "1.17.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://nginx.org/download/nginx-"
|
(uri (string-append "https://nginx.org/download/nginx-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0gp7cy2bbn8yi1wapjzssf4bhmn4d4vphdb0k1wiaq2fa6s2a63g"))))
|
"1v39gslwbvpfhqqv74q0lkfrhrwsp59xc8pwhvxns7af8s3kccsy"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("openssl" ,openssl)
|
(inputs `(("openssl" ,openssl)
|
||||||
("pcre" ,pcre)
|
("pcre" ,pcre)
|
||||||
|
@ -4242,15 +4243,15 @@ C. It is developed as part of the NetSurf project.")
|
||||||
(define-public hubbub
|
(define-public hubbub
|
||||||
(package
|
(package
|
||||||
(name "hubbub")
|
(name "hubbub")
|
||||||
(version "0.3.5")
|
(version "0.3.6")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
"lib" name "-" version "-src.tar.gz"))
|
"libhubbub-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13yq1k96a7972x4r71i9bcsz9yiglj0yx7lj0ziq5r94w5my70ma"))
|
"1x3v7xvagx85v9h3pypzc86rcxs4mij87mmcqkp8pq50q6awfmnp"))
|
||||||
(patches (search-patches "hubbub-sort-entities.patch"))))
|
(patches (search-patches "hubbub-sort-entities.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -4348,15 +4349,15 @@ commenting.")
|
||||||
(define-public libwapcaplet
|
(define-public libwapcaplet
|
||||||
(package
|
(package
|
||||||
(name "libwapcaplet")
|
(name "libwapcaplet")
|
||||||
(version "0.4.1")
|
(version "0.4.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
name "-" version "-src.tar.gz"))
|
"libwapcaplet-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"134pljlm8kby1yy49826f0ixnpig8iqak6xpyl3aivagnsjnxzy8"))))
|
"1fjwzbn7j8bi1b9bvwxsy3i2cr6byq2s2d29866801pjnf528g86"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
||||||
|
@ -4374,15 +4375,15 @@ developed as part of the Netsurf project.")
|
||||||
(define-public libcss
|
(define-public libcss
|
||||||
(package
|
(package
|
||||||
(name "libcss")
|
(name "libcss")
|
||||||
(version "0.8.0")
|
(version "0.9.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
name "-" version "-src.tar.gz"))
|
"libcss-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0pxdqbxn6brj03nv57bsvac5n70k4scn3r5msaw0jgn2k06lk81m"))))
|
"1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
||||||
|
@ -4402,15 +4403,15 @@ written in C. It is developed as part of the NetSurf project.")
|
||||||
(define-public libdom
|
(define-public libdom
|
||||||
(package
|
(package
|
||||||
(name "libdom")
|
(name "libdom")
|
||||||
(version "0.3.3")
|
(version "0.4.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
name "-" version "-src.tar.gz"))
|
"libdom-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1919757mdl3gii2pl6kzm8b1cal0h06r5nqd2y0kny6hc5yrhsp0"))))
|
"1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
||||||
|
@ -4512,6 +4513,34 @@ written in C. It is developed as part of the NetSurf project.")
|
||||||
C. It is developed as part of the NetSurf project.")
|
C. It is developed as part of the NetSurf project.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public libnslog
|
||||||
|
(package
|
||||||
|
(name "libnslog")
|
||||||
|
(version "0.1.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
|
"libnslog-" version "-src.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("check" ,check) ;for tests
|
||||||
|
("bison" ,bison)
|
||||||
|
("flex" ,flex)))
|
||||||
|
(arguments netsurf-buildsystem-arguments)
|
||||||
|
(home-page "http://www.netsurf-browser.org/")
|
||||||
|
(synopsis "Logging library")
|
||||||
|
(description
|
||||||
|
"Libnslog provides a category-based logging library which supports
|
||||||
|
complex logging filters, multiple log levels, and provides context through to
|
||||||
|
client applications. It is developed as part of the NetSurf project.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public libnsutils
|
(define-public libnsutils
|
||||||
(package
|
(package
|
||||||
(name "libnsutils")
|
(name "libnsutils")
|
||||||
|
@ -4538,15 +4567,15 @@ developed as part of the NetSurf project.")
|
||||||
(define-public libnspsl
|
(define-public libnspsl
|
||||||
(package
|
(package
|
||||||
(name "libnspsl")
|
(name "libnspsl")
|
||||||
(version "0.1.3")
|
(version "0.1.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
name "-" version "-src.tar.gz"))
|
"libnspsl-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1rsk1k2a495axxgv8060s0p1phhhcxrv75252kllbkvr8id5kqld"))))
|
"0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("netsurf-buildsystem" ,netsurf-buildsystem)))
|
`(("netsurf-buildsystem" ,netsurf-buildsystem)))
|
||||||
|
@ -4561,15 +4590,15 @@ Public Suffix List. It is developed as part of the NetSurf project.")
|
||||||
(define-public nsgenbind
|
(define-public nsgenbind
|
||||||
(package
|
(package
|
||||||
(name "nsgenbind")
|
(name "nsgenbind")
|
||||||
(version "0.6")
|
(version "0.7")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
(uri (string-append "http://download.netsurf-browser.org/libs/releases/"
|
||||||
name "-" version "-src.tar.gz"))
|
"nsgenbind-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0v1cb1rz5fix9ql31nzmglj7sybya6d12b2fkaypm1avcca59xwj"))))
|
"0rplmky4afsjwiwh7grkmcdmzg86zksa55j93dvq92f91yljwqqq"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
`(("netsurf-buildsystem" ,netsurf-buildsystem)
|
||||||
|
@ -4589,7 +4618,7 @@ w3c webidl files and a binding configuration file.")
|
||||||
(define-public netsurf
|
(define-public netsurf
|
||||||
(package
|
(package
|
||||||
(name "netsurf")
|
(name "netsurf")
|
||||||
(version "3.8")
|
(version "3.9")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -4597,7 +4626,7 @@ w3c webidl files and a binding configuration file.")
|
||||||
"releases/source/netsurf-" version "-src.tar.gz"))
|
"releases/source/netsurf-" version "-src.tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0hjm1h4m1i913y4mhkl7yqdifn8k70fwi58zdh6faypawzryc3m0"))
|
"1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp"))
|
||||||
(patches (search-patches "netsurf-system-utf8proc.patch"
|
(patches (search-patches "netsurf-system-utf8proc.patch"
|
||||||
"netsurf-y2038-tests.patch"
|
"netsurf-y2038-tests.patch"
|
||||||
"netsurf-longer-test-timeout.patch"
|
"netsurf-longer-test-timeout.patch"
|
||||||
|
@ -4610,7 +4639,8 @@ w3c webidl files and a binding configuration file.")
|
||||||
("check" ,check)
|
("check" ,check)
|
||||||
("perl" ,perl)
|
("perl" ,perl)
|
||||||
("perl-html-parser" ,perl-html-parser)
|
("perl-html-parser" ,perl-html-parser)
|
||||||
("pkg-config" ,pkg-config)))
|
("pkg-config" ,pkg-config)
|
||||||
|
("xxd" ,xxd)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("curl" ,curl)
|
`(("curl" ,curl)
|
||||||
("gtk+" ,gtk+-2)
|
("gtk+" ,gtk+-2)
|
||||||
|
@ -4622,6 +4652,7 @@ w3c webidl files and a binding configuration file.")
|
||||||
("libdom" ,libdom)
|
("libdom" ,libdom)
|
||||||
("libnsbmp" ,libnsbmp)
|
("libnsbmp" ,libnsbmp)
|
||||||
("libnsgif" ,libnsgif)
|
("libnsgif" ,libnsgif)
|
||||||
|
("libnslog" ,libnslog)
|
||||||
("libnspsl" ,libnspsl)
|
("libnspsl" ,libnspsl)
|
||||||
("libnsutils" ,libnsutils)
|
("libnsutils" ,libnsutils)
|
||||||
("libsvgtiny" ,libsvgtiny)
|
("libsvgtiny" ,libsvgtiny)
|
||||||
|
@ -6435,8 +6466,8 @@ compressed JSON header blocks.
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public hpcguix-web
|
(define-public hpcguix-web
|
||||||
(let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d")
|
(let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508")
|
||||||
(revision "3"))
|
(revision "4"))
|
||||||
(package
|
(package
|
||||||
(name "hpcguix-web")
|
(name "hpcguix-web")
|
||||||
(version (git-version "0.0.1" revision commit))
|
(version (git-version "0.0.1" revision commit))
|
||||||
|
@ -6448,7 +6479,7 @@ compressed JSON header blocks.
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc"))))
|
"0idzzlwnaymk6hm5q9nh146h5m6vd8acp32vlmzp6qq08mimfkq7"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules ((guix build gnu-build-system)
|
`(#:modules ((guix build gnu-build-system)
|
||||||
|
@ -6508,7 +6539,7 @@ compressed JSON header blocks.
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("guile" ,guile-2.2)
|
`(("guile" ,guile-2.2)
|
||||||
("guile-commonmark" ,guile-commonmark)
|
("guile-commonmark" ,guile-commonmark)
|
||||||
("guile-json" ,guile-json)))
|
("guile-json" ,guile-json-3)))
|
||||||
(home-page "https://github.com/UMCUGenetics/hpcguix-web")
|
(home-page "https://github.com/UMCUGenetics/hpcguix-web")
|
||||||
(synopsis "Web interface for cluster deployments of Guix")
|
(synopsis "Web interface for cluster deployments of Guix")
|
||||||
(description "Hpcguix-web provides a web interface to the list of packages
|
(description "Hpcguix-web provides a web interface to the list of packages
|
||||||
|
|
|
@ -6000,7 +6000,7 @@ basic eye-candy effects.")
|
||||||
(define-public xpra
|
(define-public xpra
|
||||||
(package
|
(package
|
||||||
(name "xpra")
|
(name "xpra")
|
||||||
(version "2.5.2")
|
(version "2.5.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -6008,7 +6008,7 @@ basic eye-candy effects.")
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zbh2990crrxp02c554yh30f0s9znm6iiiklkw8vpxrlmdv1z8ks"))))
|
"1ys35lj28903alccks9p055psy1fsk1nxi8ncchvw8bfxkkkvbys"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(inputs `(("ffmpeg" ,ffmpeg)
|
(inputs `(("ffmpeg" ,ffmpeg)
|
||||||
("flac" ,flac)
|
("flac" ,flac)
|
||||||
|
|
|
@ -40,10 +40,12 @@
|
||||||
unknown-shepherd-error?
|
unknown-shepherd-error?
|
||||||
unknown-shepherd-error-sexp
|
unknown-shepherd-error-sexp
|
||||||
|
|
||||||
|
live-service
|
||||||
live-service?
|
live-service?
|
||||||
live-service-provision
|
live-service-provision
|
||||||
live-service-requirement
|
live-service-requirement
|
||||||
live-service-running
|
live-service-running
|
||||||
|
live-service-canonical-name
|
||||||
|
|
||||||
with-shepherd-action
|
with-shepherd-action
|
||||||
current-services
|
current-services
|
||||||
|
@ -192,6 +194,10 @@ of pairs."
|
||||||
(requirement live-service-requirement) ;list of symbols
|
(requirement live-service-requirement) ;list of symbols
|
||||||
(running live-service-running)) ;#f | object
|
(running live-service-running)) ;#f | object
|
||||||
|
|
||||||
|
(define (live-service-canonical-name service)
|
||||||
|
"Return the 'canonical name' of SERVICE."
|
||||||
|
(first (live-service-provision service)))
|
||||||
|
|
||||||
(define (current-services)
|
(define (current-services)
|
||||||
"Return the list of currently defined Shepherd services, represented as
|
"Return the list of currently defined Shepherd services, represented as
|
||||||
<live-service> objects. Return #f if the list of services could not be
|
<live-service> objects. Return #f if the list of services could not be
|
||||||
|
|
|
@ -514,7 +514,7 @@ system."
|
||||||
(name (string-append name ".tar.gz"))
|
(name (string-append name ".tar.gz"))
|
||||||
(graph "system-graph"))
|
(graph "system-graph"))
|
||||||
(define build
|
(define build
|
||||||
(with-extensions (cons guile-json ;for (guix docker)
|
(with-extensions (cons guile-json-3 ;for (guix docker)
|
||||||
gcrypt-sqlite3&co) ;for (guix store database)
|
gcrypt-sqlite3&co) ;for (guix store database)
|
||||||
(with-imported-modules `(,@(source-module-closure
|
(with-imported-modules `(,@(source-module-closure
|
||||||
'((guix docker)
|
'((guix docker)
|
||||||
|
|
|
@ -0,0 +1,262 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.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 reconfigure)
|
||||||
|
#:use-module (gnu bootloader)
|
||||||
|
#:use-module (gnu services shepherd)
|
||||||
|
#:use-module (gnu system vm)
|
||||||
|
#:use-module (gnu system)
|
||||||
|
#:use-module (gnu tests)
|
||||||
|
#:use-module (guix derivations)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix monads)
|
||||||
|
#:use-module (guix scripts system reconfigure)
|
||||||
|
#:use-module (guix store)
|
||||||
|
#:export (%test-switch-to-system
|
||||||
|
%test-upgrade-services
|
||||||
|
%test-install-bootloader))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; Test in-place system reconfiguration: advancing the system generation on a
|
||||||
|
;;; running instance of the Guix System.
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(define* (run-switch-to-system-test)
|
||||||
|
"Run a test of an OS running SWITCH-SYSTEM-PROGRAM, which creates a new
|
||||||
|
generation of the system profile."
|
||||||
|
(define os
|
||||||
|
(marionette-operating-system
|
||||||
|
(simple-operating-system)
|
||||||
|
#:imported-modules '((gnu services herd)
|
||||||
|
(guix combinators))))
|
||||||
|
|
||||||
|
(define vm (virtual-machine os))
|
||||||
|
|
||||||
|
(define (test script)
|
||||||
|
(with-imported-modules '((gnu build marionette))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (gnu build marionette)
|
||||||
|
(srfi srfi-64))
|
||||||
|
|
||||||
|
(define marionette
|
||||||
|
(make-marionette (list #$vm)))
|
||||||
|
|
||||||
|
;; Return the names of the generation symlinks on MARIONETTE.
|
||||||
|
(define (system-generations marionette)
|
||||||
|
(marionette-eval
|
||||||
|
'(begin
|
||||||
|
(use-modules (ice-9 ftw)
|
||||||
|
(srfi srfi-1))
|
||||||
|
(let* ((profile-dir "/var/guix/profiles/")
|
||||||
|
(entries (map first (cddr (file-system-tree profile-dir)))))
|
||||||
|
(remove (lambda (entry)
|
||||||
|
(member entry '("per-user" "system")))
|
||||||
|
entries)))
|
||||||
|
marionette))
|
||||||
|
|
||||||
|
(mkdir #$output)
|
||||||
|
(chdir #$output)
|
||||||
|
|
||||||
|
(test-begin "switch-to-system")
|
||||||
|
|
||||||
|
(let ((generations-prior (system-generations marionette)))
|
||||||
|
(test-assert "script successfully evaluated"
|
||||||
|
(marionette-eval
|
||||||
|
'(primitive-load #$script)
|
||||||
|
marionette))
|
||||||
|
|
||||||
|
(test-equal "script created new generation"
|
||||||
|
(length (system-generations marionette))
|
||||||
|
(1+ (length generations-prior))))
|
||||||
|
|
||||||
|
(test-end)
|
||||||
|
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||||
|
|
||||||
|
(gexp->derivation "switch-to-system" (test (switch-system-program os))))
|
||||||
|
|
||||||
|
(define* (run-upgrade-services-test)
|
||||||
|
"Run a test of an OS running UPGRADE-SERVICES-PROGRAM, which upgrades the
|
||||||
|
Shepherd (PID 1) by unloading obsolete services and loading new services."
|
||||||
|
(define os
|
||||||
|
(marionette-operating-system
|
||||||
|
(simple-operating-system)
|
||||||
|
#:imported-modules '((gnu services herd)
|
||||||
|
(guix combinators))))
|
||||||
|
|
||||||
|
(define vm (virtual-machine os))
|
||||||
|
|
||||||
|
(define dummy-service
|
||||||
|
;; Shepherd service that does nothing, for the sole purpose of ensuring
|
||||||
|
;; that it is properly installed and started by the script.
|
||||||
|
(shepherd-service (provision '(dummy))
|
||||||
|
(start #~(const #t))
|
||||||
|
(stop #~(const #t))
|
||||||
|
(respawn? #f)))
|
||||||
|
|
||||||
|
;; Return the Shepherd service file for SERVICE, after ensuring that it
|
||||||
|
;; exists in the store.
|
||||||
|
(define (ensure-service-file service)
|
||||||
|
(let ((file (shepherd-service-file service)))
|
||||||
|
(mlet* %store-monad ((store-object (lower-object file))
|
||||||
|
(_ (built-derivations (list store-object))))
|
||||||
|
(return file))))
|
||||||
|
|
||||||
|
(define (test enable-dummy disable-dummy)
|
||||||
|
(with-imported-modules '((gnu build marionette))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (gnu build marionette)
|
||||||
|
(srfi srfi-64))
|
||||||
|
|
||||||
|
(define marionette
|
||||||
|
(make-marionette (list #$vm)))
|
||||||
|
|
||||||
|
;; Return the names of the running services on MARIONETTE.
|
||||||
|
(define (running-services marionette)
|
||||||
|
(marionette-eval
|
||||||
|
'(begin
|
||||||
|
(use-modules (gnu services herd))
|
||||||
|
(map live-service-canonical-name (current-services)))
|
||||||
|
marionette))
|
||||||
|
|
||||||
|
(mkdir #$output)
|
||||||
|
(chdir #$output)
|
||||||
|
|
||||||
|
(test-begin "upgrade-services")
|
||||||
|
|
||||||
|
(let ((services-prior (running-services marionette)))
|
||||||
|
(test-assert "script successfully evaluated"
|
||||||
|
(marionette-eval
|
||||||
|
'(primitive-load #$enable-dummy)
|
||||||
|
marionette))
|
||||||
|
|
||||||
|
(test-assert "script started new service"
|
||||||
|
(and (not (memq 'dummy services-prior))
|
||||||
|
(memq 'dummy (running-services marionette))))
|
||||||
|
|
||||||
|
(test-assert "script successfully evaluated"
|
||||||
|
(marionette-eval
|
||||||
|
'(primitive-load #$disable-dummy)
|
||||||
|
marionette))
|
||||||
|
|
||||||
|
(test-assert "script stopped obsolete service"
|
||||||
|
(not (memq 'dummy (running-services marionette)))))
|
||||||
|
|
||||||
|
(test-end)
|
||||||
|
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||||
|
|
||||||
|
(mlet* %store-monad ((file (ensure-service-file dummy-service)))
|
||||||
|
(let ((enable (upgrade-services-program (list file) '(dummy) '() '()))
|
||||||
|
(disable (upgrade-services-program '() '() '(dummy) '())))
|
||||||
|
(gexp->derivation "upgrade-services" (test enable disable)))))
|
||||||
|
|
||||||
|
(define* (run-install-bootloader-test)
|
||||||
|
"Run a test of an OS running INSTALL-BOOTLOADER-PROGRAM, which installs a
|
||||||
|
bootloader's configuration file."
|
||||||
|
(define os
|
||||||
|
(marionette-operating-system
|
||||||
|
(simple-operating-system)
|
||||||
|
#:imported-modules '((gnu services herd)
|
||||||
|
(guix combinators))))
|
||||||
|
|
||||||
|
(define vm (virtual-machine os))
|
||||||
|
|
||||||
|
(define (test script)
|
||||||
|
(with-imported-modules '((gnu build marionette))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (gnu build marionette)
|
||||||
|
(ice-9 regex)
|
||||||
|
(srfi srfi-1)
|
||||||
|
(srfi srfi-64))
|
||||||
|
|
||||||
|
(define marionette
|
||||||
|
(make-marionette (list #$vm)))
|
||||||
|
|
||||||
|
;; Return the system generation paths that have GRUB menu entries.
|
||||||
|
(define (generations-in-grub-cfg marionette)
|
||||||
|
(let ((grub-cfg (marionette-eval
|
||||||
|
'(begin
|
||||||
|
(call-with-input-file "/boot/grub/grub.cfg"
|
||||||
|
(lambda (port)
|
||||||
|
(get-string-all port))))
|
||||||
|
marionette)))
|
||||||
|
(map (lambda (parameter)
|
||||||
|
(second (string-split (match:substring parameter) #\=)))
|
||||||
|
(list-matches "system=[^ ]*" grub-cfg))))
|
||||||
|
|
||||||
|
(mkdir #$output)
|
||||||
|
(chdir #$output)
|
||||||
|
|
||||||
|
(test-begin "install-bootloader")
|
||||||
|
|
||||||
|
(test-assert "no prior menu entry for system generation"
|
||||||
|
(not (member #$os (generations-in-grub-cfg marionette))))
|
||||||
|
|
||||||
|
(test-assert "script successfully evaluated"
|
||||||
|
(marionette-eval
|
||||||
|
'(primitive-load #$script)
|
||||||
|
marionette))
|
||||||
|
|
||||||
|
(test-assert "menu entry created for system generation"
|
||||||
|
(member #$os (generations-in-grub-cfg marionette)))
|
||||||
|
|
||||||
|
(test-end)
|
||||||
|
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||||
|
|
||||||
|
(let* ((bootloader ((compose bootloader-configuration-bootloader
|
||||||
|
operating-system-bootloader)
|
||||||
|
os))
|
||||||
|
;; The typical use-case for 'install-bootloader-program' is to read
|
||||||
|
;; the boot parameters for the existing menu entries on the system,
|
||||||
|
;; parse them with 'boot-parameters->menu-entry', and pass the
|
||||||
|
;; results to 'operating-system-bootcfg'. However, to obtain boot
|
||||||
|
;; parameters, we would need to start the marionette, which we should
|
||||||
|
;; ideally avoid doing outside of the 'test' G-Expression. Thus, we
|
||||||
|
;; generate a bootloader configuration for the script as if there
|
||||||
|
;; were no existing menu entries. In the grand scheme of things, this
|
||||||
|
;; matters little -- these tests should not make assertions about the
|
||||||
|
;; behavior of 'operating-system-bootcfg'.
|
||||||
|
(bootcfg (operating-system-bootcfg os '()))
|
||||||
|
(bootcfg-file (bootloader-configuration-file bootloader)))
|
||||||
|
(gexp->derivation
|
||||||
|
"install-bootloader"
|
||||||
|
;; Due to the read-only nature of the virtual machines used in the system
|
||||||
|
;; test suite, the bootloader installer script is omitted. 'grub-install'
|
||||||
|
;; would attempt to write directly to the virtual disk if the
|
||||||
|
;; installation script were run.
|
||||||
|
(test (install-bootloader-program #f #f bootcfg bootcfg-file #f "/")))))
|
||||||
|
|
||||||
|
(define %test-switch-to-system
|
||||||
|
(system-test
|
||||||
|
(name "switch-to-system")
|
||||||
|
(description "Create a new generation of the system profile.")
|
||||||
|
(value (run-switch-to-system-test))))
|
||||||
|
|
||||||
|
(define %test-upgrade-services
|
||||||
|
(system-test
|
||||||
|
(name "upgrade-services")
|
||||||
|
(description "Upgrade the Shepherd by unloading obsolete services and
|
||||||
|
loading new services.")
|
||||||
|
(value (run-upgrade-services-test))))
|
||||||
|
|
||||||
|
(define %test-install-bootloader
|
||||||
|
(system-test
|
||||||
|
(name "install-bootloader")
|
||||||
|
(description "Install a bootloader and its configuration file.")
|
||||||
|
(value (run-install-bootloader-test))))
|
|
@ -135,6 +135,9 @@ of the package being built and its dependencies, and GOBIN, which determines
|
||||||
where executables (\"commands\") are installed to. This phase is sometimes used
|
where executables (\"commands\") are installed to. This phase is sometimes used
|
||||||
by packages that use (guix build-system gnu) but have a handful of Go
|
by packages that use (guix build-system gnu) but have a handful of Go
|
||||||
dependencies, so it should be self-contained."
|
dependencies, so it should be self-contained."
|
||||||
|
;; The Go cache is required starting in Go 1.12. We don't actually use it but
|
||||||
|
;; we need it to be a writable directory.
|
||||||
|
(setenv "GOCACHE" "/tmp/go-cache")
|
||||||
;; Using the current working directory as GOPATH makes it easier for packagers
|
;; Using the current working directory as GOPATH makes it easier for packagers
|
||||||
;; who need to manipulate the unpacked source code.
|
;; who need to manipulate the unpacked source code.
|
||||||
(setenv "GOPATH" (getcwd))
|
(setenv "GOPATH" (getcwd))
|
||||||
|
|
|
@ -51,13 +51,15 @@ DIRECTORY is not accessible."
|
||||||
((? symbol? type)
|
((? symbol? type)
|
||||||
type)))
|
type)))
|
||||||
|
|
||||||
|
(define (dot-prefixed? file)
|
||||||
|
(string-prefix? "." file))
|
||||||
|
|
||||||
;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as
|
;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as
|
||||||
;; opposed to Guile's 'scandir' or 'file-system-fold'.
|
;; opposed to Guile's 'scandir' or 'file-system-fold'.
|
||||||
(fold-right (lambda (entry result)
|
(fold-right (lambda (entry result)
|
||||||
(match entry
|
(match entry
|
||||||
(("." . _)
|
(((? dot-prefixed?) . _)
|
||||||
result)
|
;; Exclude ".", "..", and hidden files such as backups.
|
||||||
((".." . _)
|
|
||||||
result)
|
result)
|
||||||
((name . properties)
|
((name . properties)
|
||||||
(let ((absolute (string-append directory "/" name)))
|
(let ((absolute (string-append directory "/" name)))
|
||||||
|
|
|
@ -62,9 +62,9 @@
|
||||||
|
|
||||||
(define (manifest path id)
|
(define (manifest path id)
|
||||||
"Generate a simple image manifest."
|
"Generate a simple image manifest."
|
||||||
`(((Config . "config.json")
|
`#(((Config . "config.json")
|
||||||
(RepoTags . (,(generate-tag path)))
|
(RepoTags . #(,(generate-tag path)))
|
||||||
(Layers . (,(string-append id "/layer.tar"))))))
|
(Layers . #(,(string-append id "/layer.tar"))))))
|
||||||
|
|
||||||
;; According to the specifications this is required for backwards
|
;; According to the specifications this is required for backwards
|
||||||
;; compatibility. It duplicates information provided by the manifest.
|
;; compatibility. It duplicates information provided by the manifest.
|
||||||
|
@ -81,17 +81,18 @@
|
||||||
`((architecture . ,arch)
|
`((architecture . ,arch)
|
||||||
(comment . "Generated by GNU Guix")
|
(comment . "Generated by GNU Guix")
|
||||||
(created . ,time)
|
(created . ,time)
|
||||||
(config . ,`((env . ,(map (match-lambda
|
(config . ,`((env . ,(list->vector
|
||||||
((name . value)
|
(map (match-lambda
|
||||||
(string-append name "=" value)))
|
((name . value)
|
||||||
environment))
|
(string-append name "=" value)))
|
||||||
|
environment)))
|
||||||
,@(if entry-point
|
,@(if entry-point
|
||||||
`((entrypoint . ,entry-point))
|
`((entrypoint . ,(list->vector entry-point)))
|
||||||
'())))
|
'())))
|
||||||
(container_config . #nil)
|
(container_config . #nil)
|
||||||
(os . "linux")
|
(os . "linux")
|
||||||
(rootfs . ((type . "layers")
|
(rootfs . ((type . "layers")
|
||||||
(diff_ids . (,(layer-diff-id layer)))))))
|
(diff_ids . #(,(layer-diff-id layer)))))))
|
||||||
|
|
||||||
(define %tar-determinism-options
|
(define %tar-determinism-options
|
||||||
;; GNU tar options to produce archives deterministically.
|
;; GNU tar options to produce archives deterministically.
|
||||||
|
|
|
@ -427,7 +427,9 @@ This is the declarative counterpart of 'gexp->script'."
|
||||||
(($ <program-file> name gexp guile module-path)
|
(($ <program-file> name gexp guile module-path)
|
||||||
(gexp->script name gexp
|
(gexp->script name gexp
|
||||||
#:module-path module-path
|
#:module-path module-path
|
||||||
#:guile (or guile (default-guile))))))
|
#:guile (or guile (default-guile))
|
||||||
|
#:system system
|
||||||
|
#:target target))))
|
||||||
|
|
||||||
(define-record-type <scheme-file>
|
(define-record-type <scheme-file>
|
||||||
(%scheme-file name gexp splice?)
|
(%scheme-file name gexp splice?)
|
||||||
|
@ -1334,13 +1336,15 @@ last one is created from the given <scheme-file> object."
|
||||||
(define* (compiled-modules modules
|
(define* (compiled-modules modules
|
||||||
#:key (name "module-import-compiled")
|
#:key (name "module-import-compiled")
|
||||||
(system (%current-system))
|
(system (%current-system))
|
||||||
|
target
|
||||||
(guile (%guile-for-build))
|
(guile (%guile-for-build))
|
||||||
(module-path %load-path)
|
(module-path %load-path)
|
||||||
(extensions '())
|
(extensions '())
|
||||||
(deprecation-warnings #f))
|
(deprecation-warnings #f))
|
||||||
"Return a derivation that builds a tree containing the `.go' files
|
"Return a derivation that builds a tree containing the `.go' files
|
||||||
corresponding to MODULES. All the MODULES are built in a context where
|
corresponding to MODULES. All the MODULES are built in a context where
|
||||||
they can refer to each other."
|
they can refer to each other. When TARGET is true, cross-compile MODULES for
|
||||||
|
TARGET, a GNU triplet."
|
||||||
(define total (length modules))
|
(define total (length modules))
|
||||||
|
|
||||||
(mlet %store-monad ((modules (imported-modules modules
|
(mlet %store-monad ((modules (imported-modules modules
|
||||||
|
@ -1359,6 +1363,12 @@ they can refer to each other."
|
||||||
(srfi srfi-26)
|
(srfi srfi-26)
|
||||||
(system base compile))
|
(system base compile))
|
||||||
|
|
||||||
|
;; TODO: Inline this on the next rebuild cycle.
|
||||||
|
(ungexp-splicing
|
||||||
|
(if target
|
||||||
|
(gexp ((use-modules (system base target))))
|
||||||
|
(gexp ())))
|
||||||
|
|
||||||
(define (regular? file)
|
(define (regular? file)
|
||||||
(not (member file '("." ".."))))
|
(not (member file '("." ".."))))
|
||||||
|
|
||||||
|
@ -1373,9 +1383,19 @@ they can refer to each other."
|
||||||
(+ 1 processed (ungexp total))
|
(+ 1 processed (ungexp total))
|
||||||
(ungexp (* total 2))
|
(ungexp (* total 2))
|
||||||
entry)
|
entry)
|
||||||
(compile-file entry
|
|
||||||
#:output-file output
|
(ungexp-splicing
|
||||||
#:opts %auto-compilation-options)
|
(if target
|
||||||
|
(gexp ((with-target (ungexp target)
|
||||||
|
(lambda ()
|
||||||
|
(compile-file entry
|
||||||
|
#:output-file output
|
||||||
|
#:opts
|
||||||
|
%auto-compilation-options)))))
|
||||||
|
(gexp ((compile-file entry
|
||||||
|
#:output-file output
|
||||||
|
#:opts %auto-compilation-options)))))
|
||||||
|
|
||||||
(+ 1 processed))))
|
(+ 1 processed))))
|
||||||
|
|
||||||
(define (process-directory directory output processed)
|
(define (process-directory directory output processed)
|
||||||
|
@ -1471,7 +1491,7 @@ they can refer to each other."
|
||||||
'guile-2.2))
|
'guile-2.2))
|
||||||
|
|
||||||
(define* (load-path-expression modules #:optional (path %load-path)
|
(define* (load-path-expression modules #:optional (path %load-path)
|
||||||
#:key (extensions '()))
|
#:key (extensions '()) system target)
|
||||||
"Return as a monadic value a gexp that sets '%load-path' and
|
"Return as a monadic value a gexp that sets '%load-path' and
|
||||||
'%load-compiled-path' to point to MODULES, a list of module names. MODULES
|
'%load-compiled-path' to point to MODULES, a list of module names. MODULES
|
||||||
are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty."
|
are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty."
|
||||||
|
@ -1479,10 +1499,13 @@ are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty."
|
||||||
(with-monad %store-monad
|
(with-monad %store-monad
|
||||||
(return #f))
|
(return #f))
|
||||||
(mlet %store-monad ((modules (imported-modules modules
|
(mlet %store-monad ((modules (imported-modules modules
|
||||||
#:module-path path))
|
#:module-path path
|
||||||
|
#:system system))
|
||||||
(compiled (compiled-modules modules
|
(compiled (compiled-modules modules
|
||||||
#:extensions extensions
|
#:extensions extensions
|
||||||
#:module-path path)))
|
#:module-path path
|
||||||
|
#:system system
|
||||||
|
#:target target)))
|
||||||
(return (gexp (eval-when (expand load eval)
|
(return (gexp (eval-when (expand load eval)
|
||||||
(set! %load-path
|
(set! %load-path
|
||||||
(cons (ungexp modules)
|
(cons (ungexp modules)
|
||||||
|
@ -1504,14 +1527,18 @@ are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty."
|
||||||
|
|
||||||
(define* (gexp->script name exp
|
(define* (gexp->script name exp
|
||||||
#:key (guile (default-guile))
|
#:key (guile (default-guile))
|
||||||
(module-path %load-path))
|
(module-path %load-path)
|
||||||
|
(system (%current-system))
|
||||||
|
target)
|
||||||
"Return an executable script NAME that runs EXP using GUILE, with EXP's
|
"Return an executable script NAME that runs EXP using GUILE, with EXP's
|
||||||
imported modules in its search path. Look up EXP's modules in MODULE-PATH."
|
imported modules in its search path. Look up EXP's modules in MODULE-PATH."
|
||||||
(mlet %store-monad ((set-load-path
|
(mlet %store-monad ((set-load-path
|
||||||
(load-path-expression (gexp-modules exp)
|
(load-path-expression (gexp-modules exp)
|
||||||
module-path
|
module-path
|
||||||
#:extensions
|
#:extensions
|
||||||
(gexp-extensions exp))))
|
(gexp-extensions exp)
|
||||||
|
#:system system
|
||||||
|
#:target target)))
|
||||||
(gexp->derivation name
|
(gexp->derivation name
|
||||||
(gexp
|
(gexp
|
||||||
(call-with-output-file (ungexp output)
|
(call-with-output-file (ungexp output)
|
||||||
|
@ -1531,6 +1558,8 @@ imported modules in its search path. Look up EXP's modules in MODULE-PATH."
|
||||||
|
|
||||||
(write '(ungexp exp) port)
|
(write '(ungexp exp) port)
|
||||||
(chmod port #o555))))
|
(chmod port #o555))))
|
||||||
|
#:system system
|
||||||
|
#:target target
|
||||||
#:module-path module-path)))
|
#:module-path module-path)))
|
||||||
|
|
||||||
(define* (gexp->file name exp #:key
|
(define* (gexp->file name exp #:key
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
|
;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
|
||||||
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
||||||
;;;
|
;;;
|
||||||
|
@ -85,7 +85,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
||||||
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
|
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
|
||||||
|
|
||||||
(define guile-json
|
(define guile-json
|
||||||
(module-ref (resolve-interface '(gnu packages guile)) 'guile-json))
|
(module-ref (resolve-interface '(gnu packages guile)) 'guile-json-3))
|
||||||
|
|
||||||
(define gnutls
|
(define gnutls
|
||||||
(module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
|
(module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
|
||||||
|
|
69
guix/git.scm
69
guix/git.scm
|
@ -139,29 +139,44 @@ of SHA1 string."
|
||||||
"Switch to REPOSITORY's branch, commit or tag specified by REF. Return the
|
"Switch to REPOSITORY's branch, commit or tag specified by REF. Return the
|
||||||
OID (roughly the commit hash) corresponding to REF."
|
OID (roughly the commit hash) corresponding to REF."
|
||||||
(define obj
|
(define obj
|
||||||
(match ref
|
(let resolve ((ref ref))
|
||||||
(('branch . branch)
|
(match ref
|
||||||
(let ((oid (reference-target
|
(('branch . branch)
|
||||||
(branch-lookup repository branch BRANCH-REMOTE))))
|
(let ((oid (reference-target
|
||||||
(object-lookup repository oid)))
|
(branch-lookup repository branch BRANCH-REMOTE))))
|
||||||
(('commit . commit)
|
(object-lookup repository oid)))
|
||||||
(let ((len (string-length commit)))
|
(('commit . commit)
|
||||||
;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we
|
(let ((len (string-length commit)))
|
||||||
;; can't be sure it's available. Furthermore, 'string->oid' used to
|
;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we
|
||||||
;; read out-of-bounds when passed a string shorter than 40 chars,
|
;; can't be sure it's available. Furthermore, 'string->oid' used to
|
||||||
;; which is why we delay calls to it below.
|
;; read out-of-bounds when passed a string shorter than 40 chars,
|
||||||
(if (< len 40)
|
;; which is why we delay calls to it below.
|
||||||
(if (module-defined? (resolve-interface '(git object))
|
(if (< len 40)
|
||||||
'object-lookup-prefix)
|
(if (module-defined? (resolve-interface '(git object))
|
||||||
(object-lookup-prefix repository (string->oid commit) len)
|
'object-lookup-prefix)
|
||||||
(raise (condition
|
(object-lookup-prefix repository (string->oid commit) len)
|
||||||
(&message
|
(raise (condition
|
||||||
(message "long Git object ID is required")))))
|
(&message
|
||||||
(object-lookup repository (string->oid commit)))))
|
(message "long Git object ID is required")))))
|
||||||
(('tag . tag)
|
(object-lookup repository (string->oid commit)))))
|
||||||
(let ((oid (reference-name->oid repository
|
(('tag-or-commit . str)
|
||||||
(string-append "refs/tags/" tag))))
|
(if (or (> (string-length str) 40)
|
||||||
(object-lookup repository oid)))))
|
(not (string-every char-set:hex-digit str)))
|
||||||
|
(resolve `(tag . ,str)) ;definitely a tag
|
||||||
|
(catch 'git-error
|
||||||
|
(lambda ()
|
||||||
|
(resolve `(tag . ,str)))
|
||||||
|
(lambda _
|
||||||
|
;; There's no such tag, so it must be a commit ID.
|
||||||
|
(resolve `(commit . ,str))))))
|
||||||
|
(('tag . tag)
|
||||||
|
(let ((oid (reference-name->oid repository
|
||||||
|
(string-append "refs/tags/" tag))))
|
||||||
|
;; Get the commit that the tag at OID refers to. This is not
|
||||||
|
;; strictly needed, but it's more consistent to always return the
|
||||||
|
;; OID of a commit.
|
||||||
|
(object-lookup repository
|
||||||
|
(tag-target-id (tag-lookup repository oid))))))))
|
||||||
|
|
||||||
(reset repository obj RESET_HARD)
|
(reset repository obj RESET_HARD)
|
||||||
(object-id obj))
|
(object-id obj))
|
||||||
|
@ -218,8 +233,8 @@ please upgrade Guile-Git.~%"))))
|
||||||
values: the cache directory name, and the SHA1 commit (a string) corresponding
|
values: the cache directory name, and the SHA1 commit (a string) corresponding
|
||||||
to REF.
|
to REF.
|
||||||
|
|
||||||
REF is pair whose key is [branch | commit | tag] and value the associated
|
REF is pair whose key is [branch | commit | tag | tag-or-commit ] and value
|
||||||
data, respectively [<branch name> | <sha1> | <tag name>].
|
the associated data: [<branch name> | <sha1> | <tag name> | <string>].
|
||||||
|
|
||||||
When RECURSIVE? is true, check out submodules as well, if any."
|
When RECURSIVE? is true, check out submodules as well, if any."
|
||||||
(define canonical-ref
|
(define canonical-ref
|
||||||
|
@ -319,7 +334,7 @@ Log progress and checkout info to LOG-PORT."
|
||||||
git-checkout?
|
git-checkout?
|
||||||
(url git-checkout-url)
|
(url git-checkout-url)
|
||||||
(branch git-checkout-branch (default "master"))
|
(branch git-checkout-branch (default "master"))
|
||||||
(commit git-checkout-commit (default #f))
|
(commit git-checkout-commit (default #f)) ;#f | tag | commit
|
||||||
(recursive? git-checkout-recursive? (default #f)))
|
(recursive? git-checkout-recursive? (default #f)))
|
||||||
|
|
||||||
(define* (latest-repository-commit* url #:key ref recursive? log-port)
|
(define* (latest-repository-commit* url #:key ref recursive? log-port)
|
||||||
|
@ -358,7 +373,7 @@ Log progress and checkout info to LOG-PORT."
|
||||||
(($ <git-checkout> url branch commit recursive?)
|
(($ <git-checkout> url branch commit recursive?)
|
||||||
(latest-repository-commit* url
|
(latest-repository-commit* url
|
||||||
#:ref (if commit
|
#:ref (if commit
|
||||||
`(commit . ,commit)
|
`(tag-or-commit . ,commit)
|
||||||
`(branch . ,branch))
|
`(branch . ,branch))
|
||||||
#:recursive? recursive?
|
#:recursive? recursive?
|
||||||
#:log-port (current-error-port)))))
|
#:log-port (current-error-port)))))
|
||||||
|
|
|
@ -76,8 +76,8 @@
|
||||||
;; ssleay
|
;; ssleay
|
||||||
;; sun
|
;; sun
|
||||||
("zlib" 'zlib)
|
("zlib" 'zlib)
|
||||||
((x) (string->license x))
|
(#(x) (string->license x))
|
||||||
((lst ...) `(list ,@(map string->license lst)))
|
(#(lst ...) `(list ,@(map string->license lst)))
|
||||||
(_ #f)))
|
(_ #f)))
|
||||||
|
|
||||||
(define (module->name module)
|
(define (module->name module)
|
||||||
|
@ -88,10 +88,10 @@
|
||||||
"Return the base distribution module for a given module. E.g. the 'ok'
|
"Return the base distribution module for a given module. E.g. the 'ok'
|
||||||
module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would
|
module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would
|
||||||
return \"Test-Simple\""
|
return \"Test-Simple\""
|
||||||
(assoc-ref (json-fetch-alist (string-append
|
(assoc-ref (json-fetch (string-append
|
||||||
"https://fastapi.metacpan.org/v1/module/"
|
"https://fastapi.metacpan.org/v1/module/"
|
||||||
module
|
module
|
||||||
"?fields=distribution"))
|
"?fields=distribution"))
|
||||||
"distribution"))
|
"distribution"))
|
||||||
|
|
||||||
(define (package->upstream-name package)
|
(define (package->upstream-name package)
|
||||||
|
@ -114,7 +114,7 @@ return \"Test-Simple\""
|
||||||
"Return an alist representation of the CPAN metadata for the perl module MODULE,
|
"Return an alist representation of the CPAN metadata for the perl module MODULE,
|
||||||
or #f on failure. MODULE should be e.g. \"Test::Script\""
|
or #f on failure. MODULE should be e.g. \"Test::Script\""
|
||||||
;; This API always returns the latest release of the module.
|
;; This API always returns the latest release of the module.
|
||||||
(json-fetch-alist (string-append "https://fastapi.metacpan.org/v1/release/" name)))
|
(json-fetch (string-append "https://fastapi.metacpan.org/v1/release/" name)))
|
||||||
|
|
||||||
(define (cpan-home name)
|
(define (cpan-home name)
|
||||||
(string-append "https://metacpan.org/release/" name))
|
(string-append "https://metacpan.org/release/" name))
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
(define (crate-kind-predicate kind)
|
(define (crate-kind-predicate kind)
|
||||||
(lambda (dep) (string=? (assoc-ref dep "kind") kind)))
|
(lambda (dep) (string=? (assoc-ref dep "kind") kind)))
|
||||||
|
|
||||||
(and-let* ((crate-json (json-fetch-alist (string-append crate-url crate-name)))
|
(and-let* ((crate-json (json-fetch (string-append crate-url crate-name)))
|
||||||
(crate (assoc-ref crate-json "crate"))
|
(crate (assoc-ref crate-json "crate"))
|
||||||
(name (assoc-ref crate "name"))
|
(name (assoc-ref crate "name"))
|
||||||
(version (assoc-ref crate "max_version"))
|
(version (assoc-ref crate "max_version"))
|
||||||
|
@ -63,8 +63,8 @@
|
||||||
string->license)
|
string->license)
|
||||||
'())) ;missing license info
|
'())) ;missing license info
|
||||||
(path (string-append "/" version "/dependencies"))
|
(path (string-append "/" version "/dependencies"))
|
||||||
(deps-json (json-fetch-alist (string-append crate-url name path)))
|
(deps-json (json-fetch (string-append crate-url name path)))
|
||||||
(deps (assoc-ref deps-json "dependencies"))
|
(deps (vector->list (assoc-ref deps-json "dependencies")))
|
||||||
(dep-crates (filter (crate-kind-predicate "normal") deps))
|
(dep-crates (filter (crate-kind-predicate "normal") deps))
|
||||||
(dev-dep-crates
|
(dev-dep-crates
|
||||||
(filter (lambda (dep)
|
(filter (lambda (dep)
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
(define (rubygems-fetch name)
|
(define (rubygems-fetch name)
|
||||||
"Return an alist representation of the RubyGems metadata for the package NAME,
|
"Return an alist representation of the RubyGems metadata for the package NAME,
|
||||||
or #f on failure."
|
or #f on failure."
|
||||||
(json-fetch-alist
|
(json-fetch
|
||||||
(string-append "https://rubygems.org/api/v1/gems/" name ".json")))
|
(string-append "https://rubygems.org/api/v1/gems/" name ".json")))
|
||||||
|
|
||||||
(define (ruby-package-name name)
|
(define (ruby-package-name name)
|
||||||
|
@ -130,14 +130,18 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
|
||||||
(assoc-ref package "info")))
|
(assoc-ref package "info")))
|
||||||
(home-page (assoc-ref package "homepage_uri"))
|
(home-page (assoc-ref package "homepage_uri"))
|
||||||
(dependencies-names (map (lambda (dep) (assoc-ref dep "name"))
|
(dependencies-names (map (lambda (dep) (assoc-ref dep "name"))
|
||||||
(assoc-ref* package "dependencies" "runtime")))
|
(vector->list
|
||||||
|
(assoc-ref* package
|
||||||
|
"dependencies"
|
||||||
|
"runtime"))))
|
||||||
(dependencies (map (lambda (dep)
|
(dependencies (map (lambda (dep)
|
||||||
(if (string=? dep "bundler")
|
(if (string=? dep "bundler")
|
||||||
"bundler" ; special case, no prefix
|
"bundler" ; special case, no prefix
|
||||||
(ruby-package-name dep)))
|
(ruby-package-name dep)))
|
||||||
dependencies-names))
|
dependencies-names))
|
||||||
(licenses (map string->license
|
(licenses (map string->license
|
||||||
(assoc-ref package "licenses"))))
|
(vector->list
|
||||||
|
(assoc-ref package "licenses")))))
|
||||||
(values (make-gem-sexp name version hash home-page synopsis
|
(values (make-gem-sexp name version hash home-page synopsis
|
||||||
description dependencies licenses)
|
description dependencies licenses)
|
||||||
dependencies-names)))))
|
dependencies-names)))))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;;
|
;;;
|
||||||
|
@ -130,7 +130,7 @@ repository separated by a forward slash, from a string URL of the form
|
||||||
|
|
||||||
(define (fetch-releases-or-tags url)
|
(define (fetch-releases-or-tags url)
|
||||||
"Fetch the list of \"releases\" or, if it's empty, the list of tags for the
|
"Fetch the list of \"releases\" or, if it's empty, the list of tags for the
|
||||||
repository at URL. Return the corresponding JSON dictionaries (hash tables),
|
repository at URL. Return the corresponding JSON dictionaries (alists),
|
||||||
or #f if the information could not be retrieved.
|
or #f if the information could not be retrieved.
|
||||||
|
|
||||||
We look at both /releases and /tags because the \"release\" feature of GitHub
|
We look at both /releases and /tags because the \"release\" feature of GitHub
|
||||||
|
@ -172,11 +172,11 @@ empty list."
|
||||||
'https://github.com/arq5x/bedtools2/archive/v2.24.0.tar.gz' and the name of
|
'https://github.com/arq5x/bedtools2/archive/v2.24.0.tar.gz' and the name of
|
||||||
the package e.g. 'bedtools2'. Return #f if there is no releases"
|
the package e.g. 'bedtools2'. Return #f if there is no releases"
|
||||||
(define (pre-release? x)
|
(define (pre-release? x)
|
||||||
(hash-ref x "prerelease"))
|
(assoc-ref x "prerelease"))
|
||||||
|
|
||||||
(define (release->version release)
|
(define (release->version release)
|
||||||
(let ((tag (or (hash-ref release "tag_name") ;a "release"
|
(let ((tag (or (assoc-ref release "tag_name") ;a "release"
|
||||||
(hash-ref release "name"))) ;a tag
|
(assoc-ref release "name"))) ;a tag
|
||||||
(name-length (string-length package-name)))
|
(name-length (string-length package-name)))
|
||||||
(cond
|
(cond
|
||||||
;; some tags include the name of the package e.g. "fdupes-1.51"
|
;; some tags include the name of the package e.g. "fdupes-1.51"
|
||||||
|
@ -197,7 +197,8 @@ the package e.g. 'bedtools2'. Return #f if there is no releases"
|
||||||
tag)
|
tag)
|
||||||
(else #f))))
|
(else #f))))
|
||||||
|
|
||||||
(let* ((json (fetch-releases-or-tags url)))
|
(let* ((json (and=> (fetch-releases-or-tags url)
|
||||||
|
vector->list)))
|
||||||
(if (eq? json #f)
|
(if (eq? json #f)
|
||||||
(if (%github-token)
|
(if (%github-token)
|
||||||
(error "Error downloading release information through the GitHub
|
(error "Error downloading release information through the GitHub
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -23,8 +23,7 @@
|
||||||
#:use-module (guix http-client)
|
#:use-module (guix http-client)
|
||||||
#:use-module (guix import utils)
|
#:use-module (guix import utils)
|
||||||
#:use-module (srfi srfi-34)
|
#:use-module (srfi srfi-34)
|
||||||
#:export (json-fetch
|
#:export (json-fetch))
|
||||||
json-fetch-alist))
|
|
||||||
|
|
||||||
(define* (json-fetch url
|
(define* (json-fetch url
|
||||||
;; Note: many websites returns 403 if we omit a
|
;; Note: many websites returns 403 if we omit a
|
||||||
|
@ -43,9 +42,3 @@ the query."
|
||||||
(result (json->scm port)))
|
(result (json->scm port)))
|
||||||
(close-port port)
|
(close-port port)
|
||||||
result)))
|
result)))
|
||||||
|
|
||||||
(define (json-fetch-alist url)
|
|
||||||
"Return an alist representation of the JSON resource URL, or #f if URL
|
|
||||||
returns 403 or 404."
|
|
||||||
(and=> (json-fetch url)
|
|
||||||
hash-table->alist))
|
|
||||||
|
|
|
@ -87,15 +87,16 @@ for example, 'linuxdcpp'. Return #f if there is no releases."
|
||||||
;; example, "5.1.0-rc1") are assumed to be pre-releases.
|
;; example, "5.1.0-rc1") are assumed to be pre-releases.
|
||||||
(not (string-every (char-set-union (char-set #\.)
|
(not (string-every (char-set-union (char-set #\.)
|
||||||
char-set:digit)
|
char-set:digit)
|
||||||
(hash-ref x "version"))))
|
(assoc-ref x "version"))))
|
||||||
|
|
||||||
(hash-ref
|
(assoc-ref
|
||||||
(last (remove
|
(last (remove
|
||||||
pre-release?
|
pre-release?
|
||||||
(hash-ref (json-fetch
|
(vector->list
|
||||||
(string-append "https://api.launchpad.net/1.0/"
|
(assoc-ref (json-fetch
|
||||||
package-name "/releases"))
|
(string-append "https://api.launchpad.net/1.0/"
|
||||||
"entries")))
|
package-name "/releases"))
|
||||||
|
"entries"))))
|
||||||
"version"))
|
"version"))
|
||||||
|
|
||||||
(define (latest-release pkg)
|
(define (latest-release pkg)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
(define (pypi-fetch name)
|
(define (pypi-fetch name)
|
||||||
"Return an alist representation of the PyPI metadata for the package NAME,
|
"Return an alist representation of the PyPI metadata for the package NAME,
|
||||||
or #f on failure."
|
or #f on failure."
|
||||||
(json-fetch-alist (string-append "https://pypi.org/pypi/" name "/json")))
|
(json-fetch (string-append "https://pypi.org/pypi/" name "/json")))
|
||||||
|
|
||||||
;; For packages found on PyPI that lack a source distribution.
|
;; For packages found on PyPI that lack a source distribution.
|
||||||
(define-condition-type &missing-source-error &error
|
(define-condition-type &missing-source-error &error
|
||||||
|
@ -69,7 +69,7 @@ or #f on failure."
|
||||||
(assoc-ref* pypi-package "info" "version"))))
|
(assoc-ref* pypi-package "info" "version"))))
|
||||||
(or (find (lambda (release)
|
(or (find (lambda (release)
|
||||||
(string=? "sdist" (assoc-ref release "packagetype")))
|
(string=? "sdist" (assoc-ref release "packagetype")))
|
||||||
releases)
|
(vector->list releases))
|
||||||
(raise (condition (&missing-source-error
|
(raise (condition (&missing-source-error
|
||||||
(package pypi-package)))))))
|
(package pypi-package)))))))
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ or #f if there isn't any."
|
||||||
(assoc-ref* pypi-package "info" "version"))))
|
(assoc-ref* pypi-package "info" "version"))))
|
||||||
(or (find (lambda (release)
|
(or (find (lambda (release)
|
||||||
(string=? "bdist_wheel" (assoc-ref release "packagetype")))
|
(string=? "bdist_wheel" (assoc-ref release "packagetype")))
|
||||||
releases)
|
(vector->list releases))
|
||||||
#f)))
|
#f)))
|
||||||
|
|
||||||
(define (python->package-name name)
|
(define (python->package-name name)
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
(let* ((url (if (string=? "" version)
|
(let* ((url (if (string=? "" version)
|
||||||
(string-append %stackage-url "/lts")
|
(string-append %stackage-url "/lts")
|
||||||
(string-append %stackage-url "/lts-" version)))
|
(string-append %stackage-url "/lts-" version)))
|
||||||
(lts-info (json-fetch-alist url)))
|
(lts-info (json-fetch url)))
|
||||||
(if lts-info
|
(if lts-info
|
||||||
(reverse lts-info)
|
(reverse lts-info)
|
||||||
(leave-with-message "LTS release version not found: ~a" version))))))
|
(leave-with-message "LTS release version not found: ~a" version))))))
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
(define (lts-package-version pkgs-info name)
|
(define (lts-package-version pkgs-info name)
|
||||||
"Return the version of the package with upstream NAME included in PKGS-INFO."
|
"Return the version of the package with upstream NAME included in PKGS-INFO."
|
||||||
(let ((pkg (find (lambda (pkg) (string=? (stackage-package-name pkg) name))
|
(let ((pkg (find (lambda (pkg) (string=? (stackage-package-name pkg) name))
|
||||||
pkgs-info)))
|
(vector->list pkgs-info))))
|
||||||
(stackage-package-version pkg)))
|
(stackage-package-version pkg)))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
#:use-module (srfi srfi-41)
|
#:use-module (srfi srfi-41)
|
||||||
#:export (factorize-uri
|
#:export (factorize-uri
|
||||||
|
|
||||||
hash-table->alist
|
|
||||||
flatten
|
flatten
|
||||||
assoc-ref*
|
assoc-ref*
|
||||||
|
|
||||||
|
@ -100,21 +99,6 @@ of the string VERSION is replaced by the symbol 'version."
|
||||||
'()
|
'()
|
||||||
indices))))))
|
indices))))))
|
||||||
|
|
||||||
(define (hash-table->alist table)
|
|
||||||
"Return an alist represenation of TABLE."
|
|
||||||
(map (match-lambda
|
|
||||||
((key . (lst ...))
|
|
||||||
(cons key
|
|
||||||
(map (lambda (x)
|
|
||||||
(if (hash-table? x)
|
|
||||||
(hash-table->alist x)
|
|
||||||
x))
|
|
||||||
lst)))
|
|
||||||
((key . (? hash-table? table))
|
|
||||||
(cons key (hash-table->alist table)))
|
|
||||||
(pair pair))
|
|
||||||
(hash-map->list cons table)))
|
|
||||||
|
|
||||||
(define (flatten lst)
|
(define (flatten lst)
|
||||||
"Return a list that recursively concatenates all sub-lists of LST."
|
"Return a list that recursively concatenates all sub-lists of LST."
|
||||||
(fold-right
|
(fold-right
|
||||||
|
@ -330,11 +314,14 @@ the expected fields of an <origin> object."
|
||||||
(lookup-build-system-by-name
|
(lookup-build-system-by-name
|
||||||
(string->symbol (assoc-ref meta "build-system"))))
|
(string->symbol (assoc-ref meta "build-system"))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(specs->package-lists (or (assoc-ref meta "native-inputs") '())))
|
(specs->package-lists
|
||||||
|
(vector->list (or (assoc-ref meta "native-inputs") '#()))))
|
||||||
(inputs
|
(inputs
|
||||||
(specs->package-lists (or (assoc-ref meta "inputs") '())))
|
(specs->package-lists
|
||||||
|
(vector->list (or (assoc-ref meta "inputs") '#()))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
(specs->package-lists (or (assoc-ref meta "propagated-inputs") '())))
|
(specs->package-lists
|
||||||
|
(vector->list (or (assoc-ref meta "propagated-inputs") '#()))))
|
||||||
(home-page
|
(home-page
|
||||||
(assoc-ref meta "home-page"))
|
(assoc-ref meta "home-page"))
|
||||||
(synopsis
|
(synopsis
|
||||||
|
|
|
@ -341,10 +341,15 @@ strings like \"guile-next=cabba9e\" meaning that packages are built using
|
||||||
(define (replace old url commit)
|
(define (replace old url commit)
|
||||||
(package
|
(package
|
||||||
(inherit old)
|
(inherit old)
|
||||||
(version (string-append "git."
|
(version (if (and (> (string-length commit) 1)
|
||||||
(if (< (string-length commit) 7)
|
(string-prefix? "v" commit)
|
||||||
commit
|
(char-set-contains? char-set:digit
|
||||||
(string-take commit 7))))
|
(string-ref commit 1)))
|
||||||
|
(string-drop commit 1) ;looks like a tag like "v1.0"
|
||||||
|
(string-append "git."
|
||||||
|
(if (< (string-length commit) 7)
|
||||||
|
commit
|
||||||
|
(string-take commit 7)))))
|
||||||
(source (git-checkout (url url) (commit commit)
|
(source (git-checkout (url url) (commit commit)
|
||||||
(recursive? #t)))))
|
(recursive? #t)))))
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
#:use-module (guix scripts build)
|
#:use-module (guix scripts build)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix ui)
|
#:use-module (guix ui)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix grafts)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-37)
|
#:use-module (srfi srfi-37)
|
||||||
|
@ -40,6 +42,8 @@
|
||||||
(define (show-help)
|
(define (show-help)
|
||||||
(display (G_ "Usage: guix deploy [OPTION] FILE...
|
(display (G_ "Usage: guix deploy [OPTION] FILE...
|
||||||
Perform the deployment specified by FILE.\n"))
|
Perform the deployment specified by FILE.\n"))
|
||||||
|
(display (G_ "
|
||||||
|
-s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""))
|
||||||
(show-build-options-help)
|
(show-build-options-help)
|
||||||
(newline)
|
(newline)
|
||||||
(display (G_ "
|
(display (G_ "
|
||||||
|
@ -54,10 +58,14 @@ Perform the deployment specified by FILE.\n"))
|
||||||
(lambda args
|
(lambda args
|
||||||
(show-help)
|
(show-help)
|
||||||
(exit 0)))
|
(exit 0)))
|
||||||
|
(option '(#\s "system") #t #f
|
||||||
|
(lambda (opt name arg result)
|
||||||
|
(alist-cons 'system arg
|
||||||
|
(alist-delete 'system result eq?))))
|
||||||
%standard-build-options))
|
%standard-build-options))
|
||||||
|
|
||||||
(define %default-options
|
(define %default-options
|
||||||
'((system . ,(%current-system))
|
`((system . ,(%current-system))
|
||||||
(substitutes? . #t)
|
(substitutes? . #t)
|
||||||
(build-hook? . #t)
|
(build-hook? . #t)
|
||||||
(graft? . #t)
|
(graft? . #t)
|
||||||
|
@ -80,5 +88,7 @@ Perform the deployment specified by FILE.\n"))
|
||||||
(set-build-options-from-command-line store opts)
|
(set-build-options-from-command-line store opts)
|
||||||
(for-each (lambda (machine)
|
(for-each (lambda (machine)
|
||||||
(info (G_ "deploying to ~a...") (machine-display-name machine))
|
(info (G_ "deploying to ~a...") (machine-display-name machine))
|
||||||
(run-with-store store (deploy-machine machine)))
|
(parameterize ((%current-system (assq-ref opts 'system))
|
||||||
|
(%graft? (assq-ref opts 'graft?)))
|
||||||
|
(run-with-store store (deploy-machine machine))))
|
||||||
machines))))
|
machines))))
|
||||||
|
|
|
@ -93,7 +93,7 @@ Import and convert the JSON package definition in PACKAGE-FILE.\n"))
|
||||||
(let ((json (json-string->scm
|
(let ((json (json-string->scm
|
||||||
(with-input-from-file file-name read-string))))
|
(with-input-from-file file-name read-string))))
|
||||||
;; TODO: also print define-module boilerplate
|
;; TODO: also print define-module boilerplate
|
||||||
(package->code (alist->package (hash-table->alist json)))))
|
(package->code (alist->package json))))
|
||||||
(lambda _
|
(lambda _
|
||||||
(leave (G_ "invalid JSON in file '~a'~%") file-name))))
|
(leave (G_ "invalid JSON in file '~a'~%") file-name))))
|
||||||
(()
|
(()
|
||||||
|
|
|
@ -479,7 +479,7 @@ the image."
|
||||||
|
|
||||||
(define build
|
(define build
|
||||||
;; Guile-JSON and Guile-Gcrypt are required by (guix docker).
|
;; Guile-JSON and Guile-Gcrypt are required by (guix docker).
|
||||||
(with-extensions (list guile-json guile-gcrypt)
|
(with-extensions (list guile-json-3 guile-gcrypt)
|
||||||
(with-imported-modules `(((guix config) => ,(make-config.scm))
|
(with-imported-modules `(((guix config) => ,(make-config.scm))
|
||||||
,@(source-module-closure
|
,@(source-module-closure
|
||||||
`((guix docker)
|
`((guix docker)
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
delete-matching-generations)
|
delete-matching-generations)
|
||||||
#:use-module (guix graph)
|
#:use-module (guix graph)
|
||||||
#:use-module (guix scripts graph)
|
#:use-module (guix scripts graph)
|
||||||
|
#:use-module (guix scripts system reconfigure)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (guix progress)
|
#:use-module (guix progress)
|
||||||
#:use-module ((guix build syscalls) #:select (terminal-columns))
|
#:use-module ((guix build syscalls) #:select (terminal-columns))
|
||||||
|
@ -178,43 +179,9 @@ TARGET, and register them."
|
||||||
|
|
||||||
(return *unspecified*)))
|
(return *unspecified*)))
|
||||||
|
|
||||||
(define* (install-bootloader installer
|
|
||||||
#:key
|
|
||||||
bootcfg bootcfg-file
|
|
||||||
target)
|
|
||||||
"Run INSTALLER, a bootloader installation script, with error handling, in
|
|
||||||
%STORE-MONAD."
|
|
||||||
(mlet %store-monad ((installer-drv (if installer
|
|
||||||
(lower-object installer)
|
|
||||||
(return #f)))
|
|
||||||
(bootcfg (lower-object bootcfg)))
|
|
||||||
(let* ((gc-root (string-append target %gc-roots-directory
|
|
||||||
"/bootcfg"))
|
|
||||||
(temp-gc-root (string-append gc-root ".new"))
|
|
||||||
(install (and installer-drv
|
|
||||||
(derivation->output-path installer-drv)))
|
|
||||||
(bootcfg (derivation->output-path bootcfg)))
|
|
||||||
;; Prepare the symlink to bootloader config file to make sure that it's
|
|
||||||
;; a GC root when 'installer-drv' completes (being a bit paranoid.)
|
|
||||||
(switch-symlinks temp-gc-root bootcfg)
|
|
||||||
|
|
||||||
(unless (false-if-exception
|
|
||||||
(begin
|
|
||||||
(install-boot-config bootcfg bootcfg-file target)
|
|
||||||
(when install
|
|
||||||
(save-load-path-excursion (primitive-load install)))))
|
|
||||||
(delete-file temp-gc-root)
|
|
||||||
(leave (G_ "failed to install bootloader ~a~%") install))
|
|
||||||
|
|
||||||
;; Register bootloader config file as a GC root so that its dependencies
|
|
||||||
;; (background image, font, etc.) are not reclaimed.
|
|
||||||
(rename-file temp-gc-root gc-root)
|
|
||||||
(return #t))))
|
|
||||||
|
|
||||||
(define* (install os-drv target
|
(define* (install os-drv target
|
||||||
#:key (log-port (current-output-port))
|
#:key (log-port (current-output-port))
|
||||||
bootloader-installer install-bootloader?
|
install-bootloader? bootloader bootcfg)
|
||||||
bootcfg bootcfg-file)
|
|
||||||
"Copy the closure of BOOTCFG, which includes the output of OS-DRV, to
|
"Copy the closure of BOOTCFG, which includes the output of OS-DRV, to
|
||||||
directory TARGET. TARGET must be an absolute directory name since that's what
|
directory TARGET. TARGET must be an absolute directory name since that's what
|
||||||
'register-path' expects.
|
'register-path' expects.
|
||||||
|
@ -265,10 +232,11 @@ the ownership of '~a' may be incorrect!~%")
|
||||||
(populate os-dir target)
|
(populate os-dir target)
|
||||||
|
|
||||||
(mwhen install-bootloader?
|
(mwhen install-bootloader?
|
||||||
(install-bootloader bootloader-installer
|
(install-bootloader local-eval bootloader bootcfg
|
||||||
#:bootcfg bootcfg
|
#:target target)
|
||||||
#:bootcfg-file bootcfg-file
|
(return
|
||||||
#:target target))))))
|
(info (G_ "bootloader successfully installed on '~a'~%")
|
||||||
|
(bootloader-configuration-target bootloader))))))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
@ -335,82 +303,6 @@ unload."
|
||||||
(warning (G_ "failed to obtain list of shepherd services~%"))
|
(warning (G_ "failed to obtain list of shepherd services~%"))
|
||||||
(return #f)))))
|
(return #f)))))
|
||||||
|
|
||||||
(define (upgrade-shepherd-services os)
|
|
||||||
"Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new
|
|
||||||
services specified in OS and not currently running.
|
|
||||||
|
|
||||||
This is currently very conservative in that it does not stop or unload any
|
|
||||||
running service. Unloading or stopping the wrong service ('udev', say) could
|
|
||||||
bring the system down."
|
|
||||||
(define new-services
|
|
||||||
(service-value
|
|
||||||
(fold-services (operating-system-services os)
|
|
||||||
#:target-type shepherd-root-service-type)))
|
|
||||||
|
|
||||||
;; Arrange to simply emit a warning if the service upgrade fails.
|
|
||||||
(with-shepherd-error-handling
|
|
||||||
(call-with-service-upgrade-info new-services
|
|
||||||
(lambda (to-restart to-unload)
|
|
||||||
(for-each (lambda (unload)
|
|
||||||
(info (G_ "unloading service '~a'...~%") unload)
|
|
||||||
(unload-service unload))
|
|
||||||
to-unload)
|
|
||||||
|
|
||||||
(with-monad %store-monad
|
|
||||||
(munless (null? new-services)
|
|
||||||
(let ((new-service-names (map shepherd-service-canonical-name new-services))
|
|
||||||
(to-restart-names (map shepherd-service-canonical-name to-restart))
|
|
||||||
(to-start (filter shepherd-service-auto-start? new-services)))
|
|
||||||
(info (G_ "loading new services:~{ ~a~}...~%") new-service-names)
|
|
||||||
(unless (null? to-restart-names)
|
|
||||||
;; Listing TO-RESTART-NAMES in the message below wouldn't help
|
|
||||||
;; because many essential services cannot be meaningfully
|
|
||||||
;; restarted. See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22039#30>.
|
|
||||||
(format #t (G_ "To complete the upgrade, run 'herd restart SERVICE' to stop,
|
|
||||||
upgrade, and restart each service that was not automatically restarted.\n")))
|
|
||||||
(mlet %store-monad ((files (mapm %store-monad
|
|
||||||
(compose lower-object
|
|
||||||
shepherd-service-file)
|
|
||||||
new-services)))
|
|
||||||
;; Here we assume that FILES are exactly those that were computed
|
|
||||||
;; as part of the derivation that built OS, which is normally the
|
|
||||||
;; case.
|
|
||||||
(load-services/safe (map derivation->output-path files))
|
|
||||||
|
|
||||||
(for-each start-service
|
|
||||||
(map shepherd-service-canonical-name to-start))
|
|
||||||
(return #t)))))))))
|
|
||||||
|
|
||||||
(define* (switch-to-system os
|
|
||||||
#:optional (profile %system-profile))
|
|
||||||
"Make a new generation of PROFILE pointing to the directory of OS, switch to
|
|
||||||
it atomically, and then run OS's activation script."
|
|
||||||
(mlet* %store-monad ((drv (operating-system-derivation os))
|
|
||||||
(script (lower-object (operating-system-activation-script os))))
|
|
||||||
(let* ((system (derivation->output-path drv))
|
|
||||||
(number (+ 1 (generation-number profile)))
|
|
||||||
(generation (generation-file-name profile number)))
|
|
||||||
(switch-symlinks generation system)
|
|
||||||
(switch-symlinks profile generation)
|
|
||||||
|
|
||||||
(format #t (G_ "activating system...~%"))
|
|
||||||
|
|
||||||
;; The activation script may change $PATH, among others, so protect
|
|
||||||
;; against that.
|
|
||||||
(save-environment-excursion
|
|
||||||
;; Tell 'activate-current-system' what the new system is.
|
|
||||||
(setenv "GUIX_NEW_SYSTEM" system)
|
|
||||||
|
|
||||||
;; The activation script may modify '%load-path' & co., so protect
|
|
||||||
;; against that. This is necessary to ensure that
|
|
||||||
;; 'upgrade-shepherd-services' gets to see the right modules when it
|
|
||||||
;; computes derivations with 'gexp->derivation'.
|
|
||||||
(save-load-path-excursion
|
|
||||||
(primitive-load (derivation->output-path script))))
|
|
||||||
|
|
||||||
;; Finally, try to update system services.
|
|
||||||
(upgrade-shepherd-services os))))
|
|
||||||
|
|
||||||
(define-syntax-rule (unless-file-not-found exp)
|
(define-syntax-rule (unless-file-not-found exp)
|
||||||
(catch 'system-error
|
(catch 'system-error
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
@ -505,18 +397,13 @@ STORE is an open connection to the store."
|
||||||
((bootloader-configuration-file-generator bootloader)
|
((bootloader-configuration-file-generator bootloader)
|
||||||
bootloader-config entries
|
bootloader-config entries
|
||||||
#:old-entries old-entries)))
|
#:old-entries old-entries)))
|
||||||
(bootcfg-file -> (bootloader-configuration-file bootloader))
|
|
||||||
(target -> "/")
|
|
||||||
(drvs -> (list bootcfg)))
|
(drvs -> (list bootcfg)))
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
(show-what-to-build* drvs)
|
(show-what-to-build* drvs)
|
||||||
(built-derivations drvs)
|
(built-derivations drvs)
|
||||||
;; Only install bootloader configuration file. Thus, no installer is
|
;; Only install bootloader configuration file.
|
||||||
;; provided here.
|
(install-bootloader local-eval bootloader-config bootcfg
|
||||||
(install-bootloader #f
|
#:run-installer? #f))))))
|
||||||
#:bootcfg bootcfg
|
|
||||||
#:bootcfg-file bootcfg-file
|
|
||||||
#:target target))))))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
@ -820,8 +707,17 @@ and TARGET arguments."
|
||||||
(condition-message c))
|
(condition-message c))
|
||||||
(exit 1)))
|
(exit 1)))
|
||||||
(#$installer #$bootloader #$device #$target)
|
(#$installer #$bootloader #$device #$target)
|
||||||
(format #t "bootloader successfully installed on '~a'~%"
|
(info (G_ "bootloader successfully installed on '~a'~%")
|
||||||
#$device))))))
|
#$device))))))
|
||||||
|
|
||||||
|
(define (local-eval exp)
|
||||||
|
"Evaluate EXP, a G-Expression, in-place."
|
||||||
|
(mlet* %store-monad ((lowered (lower-gexp exp))
|
||||||
|
(_ (built-derivations (lowered-gexp-inputs lowered))))
|
||||||
|
(save-load-path-excursion
|
||||||
|
(set! %load-path (lowered-gexp-load-path lowered))
|
||||||
|
(set! %load-compiled-path (lowered-gexp-load-compiled-path lowered))
|
||||||
|
(return (primitive-eval (lowered-gexp-sexp lowered))))))
|
||||||
|
|
||||||
(define* (perform-action action os
|
(define* (perform-action action os
|
||||||
#:key skip-safety-checks?
|
#:key skip-safety-checks?
|
||||||
|
@ -858,19 +754,12 @@ static checks."
|
||||||
(map boot-parameters->menu-entry (profile-boot-parameters))))
|
(map boot-parameters->menu-entry (profile-boot-parameters))))
|
||||||
|
|
||||||
(define bootloader
|
(define bootloader
|
||||||
(bootloader-configuration-bootloader (operating-system-bootloader os)))
|
(operating-system-bootloader os))
|
||||||
|
|
||||||
(define bootcfg
|
(define bootcfg
|
||||||
(and (memq action '(init reconfigure))
|
(and (memq action '(init reconfigure))
|
||||||
(operating-system-bootcfg os menu-entries)))
|
(operating-system-bootcfg os menu-entries)))
|
||||||
|
|
||||||
(define bootloader-script
|
|
||||||
(let ((installer (bootloader-installer bootloader))
|
|
||||||
(target (or target "/")))
|
|
||||||
(bootloader-installer-script installer
|
|
||||||
(bootloader-package bootloader)
|
|
||||||
bootloader-target target)))
|
|
||||||
|
|
||||||
(when (eq? action 'reconfigure)
|
(when (eq? action 'reconfigure)
|
||||||
(maybe-suggest-running-guix-pull))
|
(maybe-suggest-running-guix-pull))
|
||||||
|
|
||||||
|
@ -897,9 +786,7 @@ static checks."
|
||||||
;; See <http://bugs.gnu.org/21068>.
|
;; See <http://bugs.gnu.org/21068>.
|
||||||
(drvs (mapm %store-monad lower-object
|
(drvs (mapm %store-monad lower-object
|
||||||
(if (memq action '(init reconfigure))
|
(if (memq action '(init reconfigure))
|
||||||
(if install-bootloader?
|
(list sys bootcfg)
|
||||||
(list sys bootcfg bootloader-script)
|
|
||||||
(list sys bootcfg))
|
|
||||||
(list sys))))
|
(list sys))))
|
||||||
(% (if derivations-only?
|
(% (if derivations-only?
|
||||||
(return (for-each (compose println derivation-file-name)
|
(return (for-each (compose println derivation-file-name)
|
||||||
|
@ -909,28 +796,32 @@ static checks."
|
||||||
|
|
||||||
(if (or dry-run? derivations-only?)
|
(if (or dry-run? derivations-only?)
|
||||||
(return #f)
|
(return #f)
|
||||||
(let ((bootcfg-file (bootloader-configuration-file bootloader)))
|
(begin
|
||||||
(for-each (compose println derivation->output-path)
|
(for-each (compose println derivation->output-path)
|
||||||
drvs)
|
drvs)
|
||||||
|
|
||||||
(case action
|
(case action
|
||||||
((reconfigure)
|
((reconfigure)
|
||||||
|
(newline)
|
||||||
|
(format #t (G_ "activating system...~%"))
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
(switch-to-system os)
|
(switch-to-system local-eval os)
|
||||||
(mwhen install-bootloader?
|
(mwhen install-bootloader?
|
||||||
(install-bootloader bootloader-script
|
(install-bootloader local-eval bootloader bootcfg
|
||||||
#:bootcfg bootcfg
|
#:target (or target "/"))
|
||||||
#:bootcfg-file bootcfg-file
|
(return
|
||||||
#:target "/"))))
|
(info (G_ "bootloader successfully installed on '~a'~%")
|
||||||
|
(bootloader-configuration-target bootloader))))
|
||||||
|
(with-shepherd-error-handling
|
||||||
|
(upgrade-shepherd-services local-eval os))))
|
||||||
((init)
|
((init)
|
||||||
(newline)
|
(newline)
|
||||||
(format #t (G_ "initializing operating system under '~a'...~%")
|
(format #t (G_ "initializing operating system under '~a'...~%")
|
||||||
target)
|
target)
|
||||||
(install sys (canonicalize-path target)
|
(install sys (canonicalize-path target)
|
||||||
#:install-bootloader? install-bootloader?
|
#:install-bootloader? install-bootloader?
|
||||||
#:bootcfg bootcfg
|
#:bootloader bootloader
|
||||||
#:bootcfg-file bootcfg-file
|
#:bootcfg bootcfg))
|
||||||
#:bootloader-installer bootloader-script))
|
|
||||||
(else
|
(else
|
||||||
;; All we had to do was to build SYS and maybe register an
|
;; All we had to do was to build SYS and maybe register an
|
||||||
;; indirect GC root.
|
;; indirect GC root.
|
||||||
|
|
|
@ -0,0 +1,237 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||||
|
;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||||
|
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
|
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
|
||||||
|
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.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 (guix scripts system reconfigure)
|
||||||
|
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||||
|
#:use-module (gnu bootloader)
|
||||||
|
#:use-module (gnu services)
|
||||||
|
#:use-module (gnu services herd)
|
||||||
|
#:use-module (gnu services shepherd)
|
||||||
|
#:use-module (gnu system)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix modules)
|
||||||
|
#:use-module (guix monads)
|
||||||
|
#:use-module (guix store)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-11)
|
||||||
|
#:export (switch-system-program
|
||||||
|
switch-to-system
|
||||||
|
|
||||||
|
upgrade-services-program
|
||||||
|
upgrade-shepherd-services
|
||||||
|
|
||||||
|
install-bootloader-program
|
||||||
|
install-bootloader))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; This module implements the "effectful" parts of system
|
||||||
|
;;; reconfiguration. Although building a system derivation is a pure
|
||||||
|
;;; operation, a number of impure operations must be carried out for the
|
||||||
|
;;; system configuration to be realized -- chiefly, creation of generation
|
||||||
|
;;; symlinks and invocation of activation scripts.
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Profile creation.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define* (switch-system-program os #:optional profile)
|
||||||
|
"Return an executable store item that, upon being evaluated, will create a
|
||||||
|
new generation of PROFILE pointing to the directory of OS, switch to it
|
||||||
|
atomically, and run OS's activation script."
|
||||||
|
(program-file
|
||||||
|
"switch-to-system.scm"
|
||||||
|
(with-extensions (list guile-gcrypt)
|
||||||
|
(with-imported-modules (source-module-closure '((guix config)
|
||||||
|
(guix profiles)
|
||||||
|
(guix utils)))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (guix config)
|
||||||
|
(guix profiles)
|
||||||
|
(guix utils))
|
||||||
|
|
||||||
|
(define profile
|
||||||
|
(or #$profile (string-append %state-directory "/profiles/system")))
|
||||||
|
|
||||||
|
(let* ((number (1+ (generation-number profile)))
|
||||||
|
(generation (generation-file-name profile number)))
|
||||||
|
(switch-symlinks generation #$os)
|
||||||
|
(switch-symlinks profile generation)
|
||||||
|
(setenv "GUIX_NEW_SYSTEM" #$os)
|
||||||
|
(primitive-load #$(operating-system-activation-script os))))))))
|
||||||
|
|
||||||
|
(define* (switch-to-system eval os #:optional profile)
|
||||||
|
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
|
||||||
|
create a new generation of PROFILE pointing to the directory of OS, switch to
|
||||||
|
it atomically, and run OS's activation script."
|
||||||
|
(eval #~(primitive-load #$(switch-system-program os profile))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Services.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (running-services eval)
|
||||||
|
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
|
||||||
|
return the <live-service> objects that are currently running on MACHINE."
|
||||||
|
(define exp
|
||||||
|
(with-imported-modules '((gnu services herd))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (gnu services herd))
|
||||||
|
(let ((services (current-services)))
|
||||||
|
(and services
|
||||||
|
;; 'live-service-running' is ignored, as we can't necessarily
|
||||||
|
;; serialize arbitrary objects. This should be fine for now,
|
||||||
|
;; since 'machine-current-services' is not exposed publicly,
|
||||||
|
;; and the resultant <live-service> objects are only used for
|
||||||
|
;; resolving service dependencies.
|
||||||
|
(map (lambda (service)
|
||||||
|
(list (live-service-provision service)
|
||||||
|
(live-service-requirement service)))
|
||||||
|
services))))))
|
||||||
|
(mlet %store-monad ((services (eval exp)))
|
||||||
|
(return (map (match-lambda
|
||||||
|
((provision requirement)
|
||||||
|
(live-service provision requirement #f)))
|
||||||
|
services))))
|
||||||
|
|
||||||
|
;; XXX: Currently, this does NOT attempt to restart running services. See
|
||||||
|
;; <https://issues.guix.info/issue/33508> for details.
|
||||||
|
(define (upgrade-services-program service-files to-start to-unload to-restart)
|
||||||
|
"Return an executable store item that, upon being evaluated, will upgrade
|
||||||
|
the Shepherd (PID 1) by unloading obsolete services and loading new
|
||||||
|
services. SERVICE-FILES is a list of Shepherd service files to load, and
|
||||||
|
TO-START, TO-UNLOAD, and TO-RESTART are lists of the Shepherd services'
|
||||||
|
canonical names (symbols)."
|
||||||
|
(program-file
|
||||||
|
"upgrade-shepherd-services.scm"
|
||||||
|
(with-imported-modules '((gnu services herd))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (gnu services herd)
|
||||||
|
(srfi srfi-1))
|
||||||
|
|
||||||
|
;; Load the service files for any new services.
|
||||||
|
(load-services/safe '#$service-files)
|
||||||
|
|
||||||
|
;; Unload obsolete services and start new services.
|
||||||
|
(for-each unload-service '#$to-unload)
|
||||||
|
(for-each start-service '#$to-start)))))
|
||||||
|
|
||||||
|
(define* (upgrade-shepherd-services eval os)
|
||||||
|
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
|
||||||
|
upgrade the Shepherd (PID 1) by unloading obsolete services and loading new
|
||||||
|
services as defined by OS."
|
||||||
|
(define target-services
|
||||||
|
(service-value
|
||||||
|
(fold-services (operating-system-services os)
|
||||||
|
#:target-type shepherd-root-service-type)))
|
||||||
|
|
||||||
|
(mlet* %store-monad ((live-services (running-services eval)))
|
||||||
|
(let*-values (((to-unload to-restart)
|
||||||
|
(shepherd-service-upgrade live-services target-services)))
|
||||||
|
(let* ((to-unload (map live-service-canonical-name to-unload))
|
||||||
|
(to-restart (map shepherd-service-canonical-name to-restart))
|
||||||
|
(to-start (lset-difference eqv?
|
||||||
|
(map shepherd-service-canonical-name
|
||||||
|
target-services)
|
||||||
|
(map live-service-canonical-name
|
||||||
|
live-services)))
|
||||||
|
(service-files
|
||||||
|
(map shepherd-service-file
|
||||||
|
(filter (lambda (service)
|
||||||
|
(memq (shepherd-service-canonical-name service)
|
||||||
|
to-start))
|
||||||
|
target-services))))
|
||||||
|
(eval #~(primitive-load #$(upgrade-services-program service-files
|
||||||
|
to-start
|
||||||
|
to-unload
|
||||||
|
to-restart)))))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Bootloader configuration.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (install-bootloader-program installer bootloader-package bootcfg
|
||||||
|
bootcfg-file device target)
|
||||||
|
"Return an executable store item that, upon being evaluated, will install
|
||||||
|
BOOTCFG to BOOTCFG-FILE, a target file name, on DEVICE, a file system device,
|
||||||
|
at TARGET, a mount point, and subsequently run INSTALLER from
|
||||||
|
BOOTLOADER-PACKAGE."
|
||||||
|
(program-file
|
||||||
|
"install-bootloader.scm"
|
||||||
|
(with-extensions (list guile-gcrypt)
|
||||||
|
(with-imported-modules (source-module-closure '((gnu build bootloader)
|
||||||
|
(gnu build install)
|
||||||
|
(guix store)
|
||||||
|
(guix utils)))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (gnu build bootloader)
|
||||||
|
(gnu build install)
|
||||||
|
(guix build utils)
|
||||||
|
(guix store)
|
||||||
|
(guix utils)
|
||||||
|
(ice-9 binary-ports)
|
||||||
|
(srfi srfi-34)
|
||||||
|
(srfi srfi-35))
|
||||||
|
(let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg"))
|
||||||
|
(temp-gc-root (string-append gc-root ".new")))
|
||||||
|
(switch-symlinks temp-gc-root gc-root)
|
||||||
|
(install-boot-config #$bootcfg #$bootcfg-file #$target)
|
||||||
|
;; Preserve the previous activation's garbage collector root
|
||||||
|
;; until the bootloader installer has run, so that a failure in
|
||||||
|
;; the bootloader's installer script doesn't leave the user with
|
||||||
|
;; a broken installation.
|
||||||
|
(when #$installer
|
||||||
|
(catch #t
|
||||||
|
(lambda ()
|
||||||
|
(#$installer #$bootloader-package #$device #$target))
|
||||||
|
(lambda args
|
||||||
|
(delete-file temp-gc-root)
|
||||||
|
(apply throw args))))
|
||||||
|
(rename-file temp-gc-root gc-root)))))))
|
||||||
|
|
||||||
|
(define* (install-bootloader eval configuration bootcfg
|
||||||
|
#:key
|
||||||
|
(run-installer? #t)
|
||||||
|
(target "/"))
|
||||||
|
"Using EVAL, a monadic procedure taking a single G-Expression as an argument,
|
||||||
|
configure the bootloader on TARGET such that OS will be booted by default and
|
||||||
|
additional configurations specified by MENU-ENTRIES can be selected."
|
||||||
|
(let* ((bootloader (bootloader-configuration-bootloader configuration))
|
||||||
|
(installer (and run-installer?
|
||||||
|
(bootloader-installer bootloader)))
|
||||||
|
(package (bootloader-package bootloader))
|
||||||
|
(device (bootloader-configuration-target configuration))
|
||||||
|
(bootcfg-file (bootloader-configuration-file bootloader)))
|
||||||
|
(eval #~(primitive-load #$(install-bootloader-program installer
|
||||||
|
package
|
||||||
|
bootcfg
|
||||||
|
bootcfg-file
|
||||||
|
device
|
||||||
|
target)))))
|
|
@ -50,7 +50,7 @@
|
||||||
(module-ref (resolve-interface module) variable))))
|
(module-ref (resolve-interface module) variable))))
|
||||||
(match-lambda
|
(match-lambda
|
||||||
("guile" (ref '(gnu packages commencement) 'guile-final))
|
("guile" (ref '(gnu packages commencement) 'guile-final))
|
||||||
("guile-json" (ref '(gnu packages guile) 'guile-json))
|
("guile-json" (ref '(gnu packages guile) 'guile-json-3))
|
||||||
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
|
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
|
||||||
("guile-git" (ref '(gnu packages guile) 'guile-git))
|
("guile-git" (ref '(gnu packages guile) 'guile-git))
|
||||||
("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
|
("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
|
||||||
|
|
35
guix/swh.scm
35
guix/swh.scm
|
@ -138,16 +138,16 @@ following SPEC, a series of field specifications."
|
||||||
(json->scm input))
|
(json->scm input))
|
||||||
((string? input)
|
((string? input)
|
||||||
(json-string->scm input))
|
(json-string->scm input))
|
||||||
((hash-table? input)
|
((or (null? input) (pair? input))
|
||||||
input))))
|
input))))
|
||||||
(let-syntax ((extract-field (syntax-rules ()
|
(let-syntax ((extract-field (syntax-rules ()
|
||||||
((_ table (field key json->value))
|
((_ table (field key json->value))
|
||||||
(json->value (hash-ref table key)))
|
(json->value (assoc-ref table key)))
|
||||||
((_ table (field key))
|
((_ table (field key))
|
||||||
(hash-ref table key))
|
(assoc-ref table key))
|
||||||
((_ table (field))
|
((_ table (field))
|
||||||
(hash-ref table
|
(assoc-ref table
|
||||||
(symbol->string 'field))))))
|
(symbol->string 'field))))))
|
||||||
(ctor (extract-field table spec) ...)))))
|
(ctor (extract-field table spec) ...)))))
|
||||||
|
|
||||||
(define-syntax-rule (define-json-mapping rtd ctor pred json->record
|
(define-syntax-rule (define-json-mapping rtd ctor pred json->record
|
||||||
|
@ -257,12 +257,13 @@ FALSE-IF-404? is true, return #f upon 404 responses."
|
||||||
(target-url branch-target-url))
|
(target-url branch-target-url))
|
||||||
|
|
||||||
(define (json->branches branches)
|
(define (json->branches branches)
|
||||||
(hash-map->list (lambda (key value)
|
(map (match-lambda
|
||||||
(make-branch key
|
((key . value)
|
||||||
(string->symbol
|
(make-branch key
|
||||||
(hash-ref value "target_type"))
|
(string->symbol
|
||||||
(hash-ref value "target_url")))
|
(assoc-ref value "target_type"))
|
||||||
branches))
|
(assoc-ref value "target_url"))))
|
||||||
|
branches))
|
||||||
|
|
||||||
;; <https://archive.softwareheritage.org/api/1/release/1f44934fb6e2cefccbecd4fa347025349fa9ff76/>
|
;; <https://archive.softwareheritage.org/api/1/release/1f44934fb6e2cefccbecd4fa347025349fa9ff76/>
|
||||||
(define-json-mapping <release> make-release release?
|
(define-json-mapping <release> make-release release?
|
||||||
|
@ -292,9 +293,10 @@ FALSE-IF-404? is true, return #f upon 404 responses."
|
||||||
(license-url content-license-url "license_url"))
|
(license-url content-license-url "license_url"))
|
||||||
|
|
||||||
(define (json->checksums checksums)
|
(define (json->checksums checksums)
|
||||||
(hash-map->list (lambda (key value)
|
(map (match-lambda
|
||||||
(cons key (base16-string->bytevector value)))
|
((key . value)
|
||||||
checksums))
|
(cons key (base16-string->bytevector value))))
|
||||||
|
checksums))
|
||||||
|
|
||||||
;; <https://archive.softwareheritage.org/api/1/directory/27c69c5d298a43096a53affbf881e7b13f17bdcd/>
|
;; <https://archive.softwareheritage.org/api/1/directory/27c69c5d298a43096a53affbf881e7b13f17bdcd/>
|
||||||
(define-json-mapping <directory-entry> make-directory-entry directory-entry?
|
(define-json-mapping <directory-entry> make-directory-entry directory-entry?
|
||||||
|
@ -365,14 +367,15 @@ FALSE-IF-404? is true, return #f upon 404 responses."
|
||||||
json->directory-entries)
|
json->directory-entries)
|
||||||
|
|
||||||
(define (json->directory-entries port)
|
(define (json->directory-entries port)
|
||||||
(map json->directory-entry (json->scm port)))
|
(map json->directory-entry
|
||||||
|
(vector->list (json->scm port))))
|
||||||
|
|
||||||
(define (origin-visits origin)
|
(define (origin-visits origin)
|
||||||
"Return the list of visits of ORIGIN, a record as returned by
|
"Return the list of visits of ORIGIN, a record as returned by
|
||||||
'lookup-origin'."
|
'lookup-origin'."
|
||||||
(call (swh-url (origin-visits-url origin))
|
(call (swh-url (origin-visits-url origin))
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(map json->visit (json->scm port)))))
|
(map json->visit (vector->list (json->scm port))))))
|
||||||
|
|
||||||
(define (visit-snapshot visit)
|
(define (visit-snapshot visit)
|
||||||
"Return the snapshot corresponding to VISIT."
|
"Return the snapshot corresponding to VISIT."
|
||||||
|
|
21
m4/guix.m4
21
m4/guix.m4
|
@ -174,6 +174,27 @@ AC_DEFUN([GUIX_CHECK_GUILE_SQLITE3], [
|
||||||
fi])
|
fi])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl GUIX_CHECK_GUILE_JSON
|
||||||
|
dnl
|
||||||
|
dnl Check whether a recent-enough Guile-JSON is available.
|
||||||
|
AC_DEFUN([GUIX_CHECK_GUILE_JSON], [
|
||||||
|
dnl Check whether we're using Guile-JSON 3.x, which uses a JSON-to-Scheme
|
||||||
|
dnl mapping different from that of earlier versions.
|
||||||
|
AC_CACHE_CHECK([whether Guile-JSON is available and recent enough],
|
||||||
|
[guix_cv_have_recent_guile_json],
|
||||||
|
[GUILE_CHECK([retval],
|
||||||
|
[(use-modules (json) (ice-9 match))
|
||||||
|
(match (json-string->scm \"[[] { \\\"a\\\": 42 } []]\")
|
||||||
|
(#(("a" . 42)) #t)
|
||||||
|
(_ #f))])
|
||||||
|
if test "$retval" = 0; then
|
||||||
|
guix_cv_have_recent_guile_json="yes"
|
||||||
|
else
|
||||||
|
guix_cv_have_recent_guile_json="no"
|
||||||
|
fi])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl GUIX_TEST_ROOT_DIRECTORY
|
dnl GUIX_TEST_ROOT_DIRECTORY
|
||||||
AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [
|
AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [
|
||||||
AC_CACHE_CHECK([for unit test root directory],
|
AC_CACHE_CHECK([for unit test root directory],
|
||||||
|
|
|
@ -1104,6 +1104,25 @@
|
||||||
(return (and (zero? (close-pipe pipe))
|
(return (and (zero? (close-pipe pipe))
|
||||||
(= 42 (string->number str)))))))))
|
(= 42 (string->number str)))))))))
|
||||||
|
|
||||||
|
(test-assertm "program-file #:system"
|
||||||
|
(let* ((exp (with-imported-modules '((guix build utils))
|
||||||
|
(gexp (begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(display "hi!")))))
|
||||||
|
(system (if (string=? (%current-system) "x86_64-linux")
|
||||||
|
"armhf-linux"
|
||||||
|
"x86_64-linux"))
|
||||||
|
(file (program-file "program" exp)))
|
||||||
|
(mlet %store-monad ((drv (lower-object file system)))
|
||||||
|
(return (and (string=? (derivation-system drv) system)
|
||||||
|
(find (lambda (input)
|
||||||
|
(let ((drv (pk (derivation-input-derivation input))))
|
||||||
|
(and (string=? (derivation-name drv)
|
||||||
|
"module-import-compiled")
|
||||||
|
(string=? (derivation-system drv)
|
||||||
|
system))))
|
||||||
|
(derivation-inputs drv)))))))
|
||||||
|
|
||||||
(test-assertm "scheme-file"
|
(test-assertm "scheme-file"
|
||||||
(let* ((text (plain-file "foo" "Hello, world!"))
|
(let* ((text (plain-file "foo" "Hello, world!"))
|
||||||
(scheme (scheme-file "bar" #~(list "foo" #$text))))
|
(scheme (scheme-file "bar" #~(list "foo" #$text))))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
# Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -52,5 +52,11 @@ guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.9e3eacd
|
||||||
test "$v0_1_0_drv" != "$latest_drv"
|
test "$v0_1_0_drv" != "$latest_drv"
|
||||||
test "$v0_1_0_drv" != "$orig_drv"
|
test "$v0_1_0_drv" != "$orig_drv"
|
||||||
|
|
||||||
|
v0_1_0_drv="`guix build guix --with-commit=guile-gcrypt=v0.1.0 -d`"
|
||||||
|
guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.v0.1.0
|
||||||
|
guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-9e3eacd
|
||||||
|
test "$v0_1_0_drv" != "$latest_drv"
|
||||||
|
test "$v0_1_0_drv" != "$orig_drv"
|
||||||
|
|
||||||
if guix build guix --with-commit=guile-gcrypt=000 -d
|
if guix build guix --with-commit=guile-gcrypt=000 -d
|
||||||
then false; else true; fi
|
then false; else true; fi
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix build-system)
|
#:use-module (guix build-system)
|
||||||
|
#:use-module (gnu packages)
|
||||||
#:use-module (srfi srfi-64))
|
#:use-module (srfi srfi-64))
|
||||||
|
|
||||||
(test-begin "import-utils")
|
(test-begin "import-utils")
|
||||||
|
@ -98,4 +99,25 @@
|
||||||
(or (package-license (alist->package meta))
|
(or (package-license (alist->package meta))
|
||||||
'license-is-false)))
|
'license-is-false)))
|
||||||
|
|
||||||
|
(test-equal "alist->package with dependencies"
|
||||||
|
`(("gettext" ,(specification->package "gettext")))
|
||||||
|
(let* ((meta '(("name" . "hello")
|
||||||
|
("version" . "2.10")
|
||||||
|
("source" . (("method" . "url-fetch")
|
||||||
|
("uri" . "mirror://gnu/hello/hello-2.10.tar.gz")
|
||||||
|
("sha256" .
|
||||||
|
(("base32" .
|
||||||
|
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
|
||||||
|
("build-system" . "gnu")
|
||||||
|
("home-page" . "https://gnu.org")
|
||||||
|
("synopsis" . "Say hi")
|
||||||
|
("description" . "This package says hi.")
|
||||||
|
;
|
||||||
|
;; Note: As with Guile-JSON 3.x, JSON arrays are represented
|
||||||
|
;; by vectors.
|
||||||
|
("native-inputs" . #("gettext"))
|
||||||
|
|
||||||
|
("license" . #f))))
|
||||||
|
(package-native-inputs (alist->package meta))))
|
||||||
|
|
||||||
(test-end "import-utils")
|
(test-end "import-utils")
|
||||||
|
|
|
@ -26,10 +26,6 @@
|
||||||
#:use-module (srfi srfi-64)
|
#:use-module (srfi srfi-64)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define live-service
|
|
||||||
(@@ (gnu services herd) live-service))
|
|
||||||
|
|
||||||
|
|
||||||
(test-begin "services")
|
(test-begin "services")
|
||||||
|
|
||||||
(test-equal "services, default value"
|
(test-equal "services, default value"
|
||||||
|
|
Loading…
Reference in New Issue