Merge branch 'master' into core-updates
This commit is contained in:
commit
50b99c90c8
|
@ -1,5 +1,5 @@
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||||
# Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
|
# Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
|
||||||
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
|
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
|
||||||
|
@ -511,9 +511,7 @@ endif !CAN_RUN_TESTS
|
||||||
|
|
||||||
check-system: $(GOBJECTS)
|
check-system: $(GOBJECTS)
|
||||||
$(AM_V_at)$(top_builddir)/pre-inst-env \
|
$(AM_V_at)$(top_builddir)/pre-inst-env \
|
||||||
$(GUILE) --no-auto-compile \
|
guix build -m $(top_srcdir)/etc/system-tests.scm -K
|
||||||
-e '(@@ (run-system-tests) run-system-tests)' \
|
|
||||||
$(top_srcdir)/build-aux/run-system-tests.scm
|
|
||||||
|
|
||||||
# Public keys used to sign substitutes.
|
# Public keys used to sign substitutes.
|
||||||
dist_pkgdata_DATA = \
|
dist_pkgdata_DATA = \
|
||||||
|
@ -544,6 +542,7 @@ EXTRA_DIST += \
|
||||||
scripts/guix.in \
|
scripts/guix.in \
|
||||||
etc/guix-install.sh \
|
etc/guix-install.sh \
|
||||||
etc/news.scm \
|
etc/news.scm \
|
||||||
|
etc/system-tests.scm \
|
||||||
build-aux/build-self.scm \
|
build-aux/build-self.scm \
|
||||||
build-aux/compile-all.scm \
|
build-aux/compile-all.scm \
|
||||||
build-aux/hydra/evaluate.scm \
|
build-aux/hydra/evaluate.scm \
|
||||||
|
@ -561,7 +560,6 @@ EXTRA_DIST += \
|
||||||
build-aux/test-driver.scm \
|
build-aux/test-driver.scm \
|
||||||
build-aux/update-guix-package.scm \
|
build-aux/update-guix-package.scm \
|
||||||
build-aux/update-NEWS.scm \
|
build-aux/update-NEWS.scm \
|
||||||
build-aux/run-system-tests.scm \
|
|
||||||
d3.v3.js \
|
d3.v3.js \
|
||||||
graph.js \
|
graph.js \
|
||||||
tests/test.drv \
|
tests/test.drv \
|
||||||
|
|
|
@ -169,8 +169,12 @@
|
||||||
"BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC")
|
"BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC")
|
||||||
("rhelling"
|
("rhelling"
|
||||||
"0154 E1B9 1CC9 D9EF 7764 8DE7 F3A7 27DB 44FC CA36")
|
"0154 E1B9 1CC9 D9EF 7764 8DE7 F3A7 27DB 44FC CA36")
|
||||||
("roelj"
|
("roelj (old)"
|
||||||
"17CB 2812 EB63 3DFF 2C7F 0452 C3EC 1DCA 8430 72E1")
|
"17CB 2812 EB63 3DFF 2C7F 0452 C3EC 1DCA 8430 72E1")
|
||||||
|
("roelj"
|
||||||
|
;; From commit cc51c03ff867d4633505354819c6d88af88bf919 (March 2020).
|
||||||
|
;; See <https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00070.html>.
|
||||||
|
"F556 FD94 FB8F 8B87 79E3 6832 CBD0 CD51 38C1 9AFC")
|
||||||
("roptat (old)"
|
("roptat (old)"
|
||||||
"B5FA E628 5B41 3728 B2A0 FAED 4311 1F45 2008 6A0C")
|
"B5FA E628 5B41 3728 B2A0 FAED 4311 1F45 2008 6A0C")
|
||||||
("roptat"
|
("roptat"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
|
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
|
||||||
;;;
|
;;;
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
|
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
|
||||||
;; port to the bit bucket, let us write to the error port instead.
|
;; port to the bit bucket, let us write to the error port instead.
|
||||||
(setvbuf (current-error-port) _IOLBF)
|
(setvbuf (current-error-port) 'line)
|
||||||
(set-current-output-port (current-error-port))
|
(set-current-output-port (current-error-port))
|
||||||
|
|
||||||
(define (find-current-checkout arguments)
|
(define (find-current-checkout arguments)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
|
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
|
||||||
;; port to the bit bucket, let us write to the error port instead.
|
;; port to the bit bucket, let us write to the error port instead.
|
||||||
(setvbuf (current-error-port) _IOLBF)
|
(setvbuf (current-error-port) 'line)
|
||||||
(set-current-output-port (current-error-port))
|
(set-current-output-port (current-error-port))
|
||||||
|
|
||||||
(define* (build-job store source version system)
|
(define* (build-job store source version system)
|
||||||
|
|
|
@ -1,115 +0,0 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
|
||||||
;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.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 (run-system-tests)
|
|
||||||
#:use-module (gnu tests)
|
|
||||||
#:use-module (gnu packages package-management)
|
|
||||||
#:use-module ((gnu ci) #:select (channel-instance->package))
|
|
||||||
#:use-module (guix store)
|
|
||||||
#:use-module ((guix status) #:select (with-status-verbosity))
|
|
||||||
#:use-module (guix monads)
|
|
||||||
#:use-module (guix channels)
|
|
||||||
#:use-module (guix derivations)
|
|
||||||
#:use-module ((guix git-download) #:select (git-predicate))
|
|
||||||
#:use-module (guix utils)
|
|
||||||
#:use-module (guix ui)
|
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:use-module (srfi srfi-34)
|
|
||||||
#:use-module (ice-9 match)
|
|
||||||
#:export (run-system-tests))
|
|
||||||
|
|
||||||
(define (built-derivations* drv)
|
|
||||||
(lambda (store)
|
|
||||||
(guard (c ((store-protocol-error? c)
|
|
||||||
(values #f store)))
|
|
||||||
(values (build-derivations store drv) store))))
|
|
||||||
|
|
||||||
(define (filterm mproc lst) ;XXX: move to (guix monads)
|
|
||||||
(with-monad %store-monad
|
|
||||||
(>>= (foldm %store-monad
|
|
||||||
(lambda (item result)
|
|
||||||
(mlet %store-monad ((keep? (mproc item)))
|
|
||||||
(return (if keep?
|
|
||||||
(cons item result)
|
|
||||||
result))))
|
|
||||||
'()
|
|
||||||
lst)
|
|
||||||
(lift1 reverse %store-monad))))
|
|
||||||
|
|
||||||
(define (tests-for-channel-instance instance)
|
|
||||||
"Return a list of tests for perform, using Guix from INSTANCE, a channel
|
|
||||||
instance."
|
|
||||||
;; Honor the 'TESTS' environment variable so that one can select a subset
|
|
||||||
;; of tests to run in the usual way:
|
|
||||||
;;
|
|
||||||
;; make check-system TESTS=installed-os
|
|
||||||
(parameterize ((current-guix-package
|
|
||||||
(channel-instance->package instance)))
|
|
||||||
(match (getenv "TESTS")
|
|
||||||
(#f
|
|
||||||
(all-system-tests))
|
|
||||||
((= string-tokenize (tests ...))
|
|
||||||
(filter (lambda (test)
|
|
||||||
(member (system-test-name test) tests))
|
|
||||||
(all-system-tests))))))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(define (run-system-tests . args)
|
|
||||||
(define source
|
|
||||||
(string-append (current-source-directory) "/.."))
|
|
||||||
|
|
||||||
(with-store store
|
|
||||||
(with-status-verbosity 2
|
|
||||||
(run-with-store store
|
|
||||||
;; Intern SOURCE so that 'build-from-source' in (guix channels) sees
|
|
||||||
;; "fresh" file names and thus doesn't find itself loading .go files
|
|
||||||
;; from ~/.cache/guile when it loads 'build-aux/build-self.scm'.
|
|
||||||
;; XXX: It would be best to not do it upfront because we may need it.
|
|
||||||
(mlet* %store-monad ((source (interned-file source "guix-source"
|
|
||||||
#:recursive? #t
|
|
||||||
#:select?
|
|
||||||
(or (git-predicate source)
|
|
||||||
(const #t))))
|
|
||||||
(instance -> (checkout->channel-instance source))
|
|
||||||
(tests -> (tests-for-channel-instance instance))
|
|
||||||
(drv (mapm %store-monad system-test-value tests))
|
|
||||||
(out -> (map derivation->output-path drv)))
|
|
||||||
(format (current-error-port) "Running ~a system tests...~%"
|
|
||||||
(length tests))
|
|
||||||
|
|
||||||
(mbegin %store-monad
|
|
||||||
(show-what-to-build* drv)
|
|
||||||
(set-build-options* #:keep-going? #t #:keep-failed? #t
|
|
||||||
#:print-build-trace #t
|
|
||||||
#:print-extended-build-trace? #t
|
|
||||||
#:fallback? #t)
|
|
||||||
(built-derivations* drv)
|
|
||||||
(mlet %store-monad ((valid (filterm (store-lift valid-path?)
|
|
||||||
out))
|
|
||||||
(failed (filterm (store-lift
|
|
||||||
(negate valid-path?))
|
|
||||||
out)))
|
|
||||||
(format #t "TOTAL: ~a\n" (length drv))
|
|
||||||
(for-each (lambda (item)
|
|
||||||
(format #t "PASS: ~a~%" item))
|
|
||||||
valid)
|
|
||||||
(for-each (lambda (item)
|
|
||||||
(format #t "FAIL: ~a~%" item))
|
|
||||||
failed)
|
|
||||||
(exit (null? failed)))))))))
|
|
|
@ -12,7 +12,7 @@ particularly welcome help on packaging (@pxref{Packaging Guidelines}).
|
||||||
We want to provide a warm, friendly, and harassment-free environment, so
|
We want to provide a warm, friendly, and harassment-free environment, so
|
||||||
that anyone can contribute to the best of their abilities. To this end
|
that anyone can contribute to the best of their abilities. To this end
|
||||||
our project uses a ``Contributor Covenant'', which was adapted from
|
our project uses a ``Contributor Covenant'', which was adapted from
|
||||||
@url{http://contributor-covenant.org/}. You can find a local version in
|
@url{https://contributor-covenant.org/}. You can find a local version in
|
||||||
the @file{CODE-OF-CONDUCT} file in the source tree.
|
the @file{CODE-OF-CONDUCT} file in the source tree.
|
||||||
|
|
||||||
Contributors are not required to use their legal name in patches and
|
Contributors are not required to use their legal name in patches and
|
||||||
|
@ -98,12 +98,12 @@ following are the required packages in addition to those mentioned in the
|
||||||
installation instructions (@pxref{Requirements}).
|
installation instructions (@pxref{Requirements}).
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
|
@item @url{https://gnu.org/software/autoconf/, GNU Autoconf};
|
||||||
@item @url{http://gnu.org/software/automake/, GNU Automake};
|
@item @url{https://gnu.org/software/automake/, GNU Automake};
|
||||||
@item @url{http://gnu.org/software/gettext/, GNU Gettext};
|
@item @url{https://gnu.org/software/gettext/, GNU Gettext};
|
||||||
@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
|
@item @url{https://gnu.org/software/texinfo/, GNU Texinfo};
|
||||||
@item @url{http://www.graphviz.org/, Graphviz};
|
@item @url{https://www.graphviz.org/, Graphviz};
|
||||||
@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
@item @url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
On Guix, extra dependencies can be added by instead running @command{guix
|
On Guix, extra dependencies can be added by instead running @command{guix
|
||||||
|
@ -217,8 +217,8 @@ you want to upgrade your local source tree.
|
||||||
The Perfect Setup to hack on Guix is basically the perfect setup used
|
The Perfect Setup to hack on Guix is basically the perfect setup used
|
||||||
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
||||||
Manual}). First, you need more than an editor, you need
|
Manual}). First, you need more than an editor, you need
|
||||||
@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the
|
@url{https://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||||
wonderful @url{http://nongnu.org/geiser/, Geiser}. To set that up, run:
|
wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
guix package -i emacs guile emacs-geiser
|
guix package -i emacs guile emacs-geiser
|
||||||
|
@ -250,7 +250,7 @@ s-expression, etc.
|
||||||
@cindex reducing boilerplate
|
@cindex reducing boilerplate
|
||||||
We also provide templates for common git commit messages and package
|
We also provide templates for common git commit messages and package
|
||||||
definitions in the @file{etc/snippets} directory. These templates can
|
definitions in the @file{etc/snippets} directory. These templates can
|
||||||
be used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to
|
be used with @url{https://joaotavora.github.io/yasnippet/, YASnippet} to
|
||||||
expand short trigger strings to interactive text snippets. You may want
|
expand short trigger strings to interactive text snippets. You may want
|
||||||
to add the snippets directory to the @var{yas-snippet-dirs} variable in
|
to add the snippets directory to the @var{yas-snippet-dirs} variable in
|
||||||
Emacs.
|
Emacs.
|
||||||
|
@ -385,14 +385,14 @@ needed is to review and apply the patch.
|
||||||
@cindex free software
|
@cindex free software
|
||||||
The GNU operating system has been developed so that users can have
|
The GNU operating system has been developed so that users can have
|
||||||
freedom in their computing. GNU is @dfn{free software}, meaning that
|
freedom in their computing. GNU is @dfn{free software}, meaning that
|
||||||
users have the @url{http://www.gnu.org/philosophy/free-sw.html,four
|
users have the @url{https://www.gnu.org/philosophy/free-sw.html,four
|
||||||
essential freedoms}: to run the program, to study and change the program
|
essential freedoms}: to run the program, to study and change the program
|
||||||
in source code form, to redistribute exact copies, and to distribute
|
in source code form, to redistribute exact copies, and to distribute
|
||||||
modified versions. Packages found in the GNU distribution provide only
|
modified versions. Packages found in the GNU distribution provide only
|
||||||
software that conveys these four freedoms.
|
software that conveys these four freedoms.
|
||||||
|
|
||||||
In addition, the GNU distribution follow the
|
In addition, the GNU distribution follow the
|
||||||
@url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free
|
@url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free
|
||||||
software distribution guidelines}. Among other things, these guidelines
|
software distribution guidelines}. Among other things, these guidelines
|
||||||
reject non-free firmware, recommendations of non-free software, and
|
reject non-free firmware, recommendations of non-free software, and
|
||||||
discuss ways to deal with trademarks and patents.
|
discuss ways to deal with trademarks and patents.
|
||||||
|
@ -571,7 +571,7 @@ such as @command{guix package --show} take care of rendering it
|
||||||
appropriately.
|
appropriately.
|
||||||
|
|
||||||
Synopses and descriptions are translated by volunteers
|
Synopses and descriptions are translated by volunteers
|
||||||
@uref{http://translationproject.org/domain/guix-packages.html, at the
|
@uref{https://translationproject.org/domain/guix-packages.html, at the
|
||||||
Translation Project} so that as many users as possible can read them in
|
Translation Project} so that as many users as possible can read them in
|
||||||
their native language. User interfaces search them and display them in
|
their native language. User interfaces search them and display them in
|
||||||
the language specified by the current locale.
|
the language specified by the current locale.
|
||||||
|
@ -838,7 +838,7 @@ especially when matching lists.
|
||||||
@cindex coding style
|
@cindex coding style
|
||||||
When writing Scheme code, we follow common wisdom among Scheme
|
When writing Scheme code, we follow common wisdom among Scheme
|
||||||
programmers. In general, we follow the
|
programmers. In general, we follow the
|
||||||
@url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp
|
@url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp
|
||||||
Style Rules}. This document happens to describe the conventions mostly
|
Style Rules}. This document happens to describe the conventions mostly
|
||||||
used in Guile’s code too. It is very thoughtful and well written, so
|
used in Guile’s code too. It is very thoughtful and well written, so
|
||||||
please do read it.
|
please do read it.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
@display
|
@display
|
||||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||||
@uref{http://fsf.org/}
|
@uref{https://fsf.org/}
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
@ -414,7 +414,7 @@ The Free Software Foundation may publish new, revised versions
|
||||||
of the GNU Free Documentation License from time to time. Such new
|
of the GNU Free Documentation License from time to time. Such new
|
||||||
versions will be similar in spirit to the present version, but may
|
versions will be similar in spirit to the present version, but may
|
||||||
differ in detail to address new problems or concerns. See
|
differ in detail to address new problems or concerns. See
|
||||||
@uref{http://www.gnu.org/copyleft/}.
|
@uref{https://www.gnu.org/copyleft/}.
|
||||||
|
|
||||||
Each version of the License is given a distinguishing version number.
|
Each version of the License is given a distinguishing version number.
|
||||||
If the Document specifies that a particular numbered version of this
|
If the Document specifies that a particular numbered version of this
|
||||||
|
|
|
@ -74,6 +74,7 @@ Copyright @copyright{} 2019, 2020 Simon Tournier@*
|
||||||
Copyright @copyright{} 2020 Wiktor Żelazny@*
|
Copyright @copyright{} 2020 Wiktor Żelazny@*
|
||||||
Copyright @copyright{} 2020 Damien Cassou@*
|
Copyright @copyright{} 2020 Damien Cassou@*
|
||||||
Copyright @copyright{} 2020 Jakub Kądziołka@*
|
Copyright @copyright{} 2020 Jakub Kądziołka@*
|
||||||
|
Copyright @copyright{} 2020 Jack Hill@*
|
||||||
|
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||||
|
@ -6777,7 +6778,7 @@ linux-module-build-system, use the key #:linux to specify it).
|
||||||
|
|
||||||
@defvr {Scheme Variable} node-build-system
|
@defvr {Scheme Variable} node-build-system
|
||||||
This variable is exported by @code{(guix build-system node)}. It
|
This variable is exported by @code{(guix build-system node)}. It
|
||||||
implements the build procedure used by @uref{http://nodejs.org,
|
implements the build procedure used by @uref{https://nodejs.org,
|
||||||
Node.js}, which implements an approximation of the @code{npm install}
|
Node.js}, which implements an approximation of the @code{npm install}
|
||||||
command, followed by an @code{npm test} command.
|
command, followed by an @code{npm test} command.
|
||||||
|
|
||||||
|
@ -13350,7 +13351,7 @@ The ModemManager package to use.
|
||||||
|
|
||||||
@defvr {Scheme Variable} usb-modeswitch-service-type
|
@defvr {Scheme Variable} usb-modeswitch-service-type
|
||||||
This is the service type for the
|
This is the service type for the
|
||||||
@uref{http://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The
|
@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The
|
||||||
value for this service type is a @code{usb-modeswitch-configuration} record.
|
value for this service type is a @code{usb-modeswitch-configuration} record.
|
||||||
|
|
||||||
When plugged in, some USB modems (and other USB devices) initially present
|
When plugged in, some USB modems (and other USB devices) initially present
|
||||||
|
@ -13595,7 +13596,7 @@ The nftables ruleset to use. This may be any ``file-like'' object
|
||||||
@cindex ntpd, service for the Network Time Protocol daemon
|
@cindex ntpd, service for the Network Time Protocol daemon
|
||||||
@cindex real time clock
|
@cindex real time clock
|
||||||
@defvr {Scheme Variable} ntp-service-type
|
@defvr {Scheme Variable} ntp-service-type
|
||||||
This is the type of the service running the @uref{http://www.ntp.org,
|
This is the type of the service running the @uref{https://www.ntp.org,
|
||||||
Network Time Protocol (NTP)} daemon, @command{ntpd}. The daemon will keep the
|
Network Time Protocol (NTP)} daemon, @command{ntpd}. The daemon will keep the
|
||||||
system clock synchronized with that of the specified NTP servers.
|
system clock synchronized with that of the specified NTP servers.
|
||||||
|
|
||||||
|
@ -14233,7 +14234,7 @@ Its value must be a @code{zero-configuration} record---see below.
|
||||||
|
|
||||||
This service extends the name service cache daemon (nscd) so that it can
|
This service extends the name service cache daemon (nscd) so that it can
|
||||||
resolve @code{.local} host names using
|
resolve @code{.local} host names using
|
||||||
@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. @xref{Name
|
@uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. @xref{Name
|
||||||
Service Switch}, for information on host name resolution.
|
Service Switch}, for information on host name resolution.
|
||||||
|
|
||||||
Additionally, add the @var{avahi} package to the system profile so that
|
Additionally, add the @var{avahi} package to the system profile so that
|
||||||
|
@ -16052,7 +16053,7 @@ Data type representing the configuration for @code{alsa-service}.
|
||||||
|
|
||||||
@item @code{pulseaudio?} (default: @var{#t})
|
@item @code{pulseaudio?} (default: @var{#t})
|
||||||
Whether ALSA applications should transparently be made to use the
|
Whether ALSA applications should transparently be made to use the
|
||||||
@uref{http://www.pulseaudio.org/, PulseAudio} sound server.
|
@uref{https://www.pulseaudio.org/, PulseAudio} sound server.
|
||||||
|
|
||||||
Using PulseAudio allows you to run several sound-producing applications
|
Using PulseAudio allows you to run several sound-producing applications
|
||||||
at the same time and to individual control them @i{via}
|
at the same time and to individual control them @i{via}
|
||||||
|
@ -16100,7 +16101,7 @@ See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the
|
||||||
details.
|
details.
|
||||||
|
|
||||||
@deffn {Scheme Variable} pulseaudio-service-type
|
@deffn {Scheme Variable} pulseaudio-service-type
|
||||||
This is the type for the @uref{http://www.pulseaudio.org/, PulseAudio}
|
This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio}
|
||||||
sound server. It exists to allow system overrides of the default settings
|
sound server. It exists to allow system overrides of the default settings
|
||||||
via @code{pulseaudio-configuration}, see below.
|
via @code{pulseaudio-configuration}, see below.
|
||||||
|
|
||||||
|
@ -20398,7 +20399,7 @@ configuration. Otherwise this must be a file-like object with valid
|
||||||
VCL syntax.
|
VCL syntax.
|
||||||
|
|
||||||
@c Varnish does not support HTTPS, so keep this URL to avoid confusion.
|
@c Varnish does not support HTTPS, so keep this URL to avoid confusion.
|
||||||
For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you
|
For example, to mirror @url{https://www.gnu.org,www.gnu.org} with VCL you
|
||||||
can do something along these lines:
|
can do something along these lines:
|
||||||
|
|
||||||
@lisp
|
@lisp
|
||||||
|
@ -21008,6 +21009,10 @@ and several @code{domains}.
|
||||||
Mandatory email used for registration, recovery contact, and important
|
Mandatory email used for registration, recovery contact, and important
|
||||||
account notifications.
|
account notifications.
|
||||||
|
|
||||||
|
@item @code{server} (default: @code{#f})
|
||||||
|
Optional URL of ACME server. Setting this overrides certbot's default,
|
||||||
|
which is the Let's Encrypt server.
|
||||||
|
|
||||||
@item @code{rsa-key-size} (default: @code{2048})
|
@item @code{rsa-key-size} (default: @code{2048})
|
||||||
Size of the RSA key.
|
Size of the RSA key.
|
||||||
|
|
||||||
|
@ -22445,6 +22450,9 @@ Only evaluate specifications and build derivations once.
|
||||||
When substituting a pre-built binary fails, fall back to building
|
When substituting a pre-built binary fails, fall back to building
|
||||||
packages locally.
|
packages locally.
|
||||||
|
|
||||||
|
@item @code{extra-options} (default: @code{'()})
|
||||||
|
Extra options to pass when running the Cuirass processes.
|
||||||
|
|
||||||
@item @code{cuirass} (default: @code{cuirass})
|
@item @code{cuirass} (default: @code{cuirass})
|
||||||
The Cuirass package to use.
|
The Cuirass package to use.
|
||||||
@end table
|
@end table
|
||||||
|
@ -25245,6 +25253,12 @@ If set, this is the @code{getmail-retriever-configuration} object with
|
||||||
which to configure getmail to fetch mail from the guix-commits mailing
|
which to configure getmail to fetch mail from the guix-commits mailing
|
||||||
list.
|
list.
|
||||||
|
|
||||||
|
@item @code{extra-options} (default: @var{'()})
|
||||||
|
Extra command line options for @code{guix-data-service}.
|
||||||
|
|
||||||
|
@item @code{extra-process-jobs-options} (default: @var{'()})
|
||||||
|
Extra command line options for @code{guix-data-service-process-jobs}.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
@ -25814,7 +25828,7 @@ next method in the list. The NSS configuration is given in the
|
||||||
@cindex nss-mdns
|
@cindex nss-mdns
|
||||||
@cindex .local, host name lookup
|
@cindex .local, host name lookup
|
||||||
As an example, the declaration below configures the NSS to use the
|
As an example, the declaration below configures the NSS to use the
|
||||||
@uref{http://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns}
|
@uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns}
|
||||||
back-end}, which supports host name lookups over multicast DNS (mDNS)
|
back-end}, which supports host name lookups over multicast DNS (mDNS)
|
||||||
for host names ending in @code{.local}:
|
for host names ending in @code{.local}:
|
||||||
|
|
||||||
|
@ -28286,7 +28300,7 @@ transparency that we get in the rest of the package dependency graph,
|
||||||
where Guix always gives us a source-to-binary mapping. Thus, our goal
|
where Guix always gives us a source-to-binary mapping. Thus, our goal
|
||||||
is to reduce the set of bootstrap binaries to the bare minimum.
|
is to reduce the set of bootstrap binaries to the bare minimum.
|
||||||
|
|
||||||
The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists
|
The @uref{https://bootstrappable.org, Bootstrappable.org web site} lists
|
||||||
on-going projects to do that. One of these is about replacing the
|
on-going projects to do that. One of these is about replacing the
|
||||||
bootstrap GCC with a sequence of assemblers, interpreters, and compilers
|
bootstrap GCC with a sequence of assemblers, interpreters, and compilers
|
||||||
of increasing complexity, which could be built from source starting from
|
of increasing complexity, which could be built from source starting from
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.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/>.
|
||||||
|
|
||||||
|
(use-modules (gnu tests)
|
||||||
|
(gnu packages package-management)
|
||||||
|
((gnu ci) #:select (channel-source->package))
|
||||||
|
((guix git-download) #:select (git-predicate))
|
||||||
|
((guix utils) #:select (current-source-directory))
|
||||||
|
(git)
|
||||||
|
(ice-9 match))
|
||||||
|
|
||||||
|
(define (source-commit directory)
|
||||||
|
"Return the commit of the head of DIRECTORY or #f if it could not be
|
||||||
|
determined."
|
||||||
|
(let ((repository #f))
|
||||||
|
(catch 'git-error
|
||||||
|
(lambda ()
|
||||||
|
(set! repository (repository-open directory))
|
||||||
|
(let* ((head (repository-head repository))
|
||||||
|
(target (reference-target head))
|
||||||
|
(commit (oid->string target)))
|
||||||
|
(repository-close! repository)
|
||||||
|
commit))
|
||||||
|
(lambda _
|
||||||
|
(when repository
|
||||||
|
(repository-close! repository))
|
||||||
|
#f))))
|
||||||
|
|
||||||
|
(define (tests-for-current-guix source commit)
|
||||||
|
"Return a list of tests for perform, using Guix built from SOURCE, a channel
|
||||||
|
instance."
|
||||||
|
;; Honor the 'TESTS' environment variable so that one can select a subset
|
||||||
|
;; of tests to run in the usual way:
|
||||||
|
;;
|
||||||
|
;; make check-system TESTS=installed-os
|
||||||
|
(parameterize ((current-guix-package
|
||||||
|
(channel-source->package source #:commit commit)))
|
||||||
|
(match (getenv "TESTS")
|
||||||
|
(#f
|
||||||
|
(all-system-tests))
|
||||||
|
((= string-tokenize (tests ...))
|
||||||
|
(filter (lambda (test)
|
||||||
|
(member (system-test-name test) tests))
|
||||||
|
(all-system-tests))))))
|
||||||
|
|
||||||
|
(define (system-test->manifest-entry test)
|
||||||
|
"Return a manifest entry for TEST, a system test."
|
||||||
|
(manifest-entry
|
||||||
|
(name (string-append "test." (system-test-name test)))
|
||||||
|
(version "0")
|
||||||
|
(item test)))
|
||||||
|
|
||||||
|
(define (system-test-manifest)
|
||||||
|
"Return a manifest containing all the system tests, or all those selected by
|
||||||
|
the 'TESTS' environment variable."
|
||||||
|
(define source
|
||||||
|
(string-append (current-source-directory) "/.."))
|
||||||
|
|
||||||
|
(define commit
|
||||||
|
;; Fetch the current commit ID so we can potentially build the same
|
||||||
|
;; derivation as ci.guix.gnu.org.
|
||||||
|
(source-commit source))
|
||||||
|
|
||||||
|
;; Intern SOURCE so that 'build-from-source' in (guix channels) sees
|
||||||
|
;; "fresh" file names and thus doesn't find itself loading .go files
|
||||||
|
;; from ~/.cache/guile when it loads 'build-aux/build-self.scm'.
|
||||||
|
(let* ((source (local-file source "guix-source"
|
||||||
|
#:recursive? #t
|
||||||
|
#:select?
|
||||||
|
(or (git-predicate source)
|
||||||
|
(const #t))))
|
||||||
|
(tests (tests-for-current-guix source commit)))
|
||||||
|
(format (current-error-port) "Selected ~a system tests...~%"
|
||||||
|
(length tests))
|
||||||
|
|
||||||
|
(manifest (map system-test->manifest-entry tests))))
|
||||||
|
|
||||||
|
;; Return the manifest.
|
||||||
|
(system-test-manifest)
|
125
gnu/ci.scm
125
gnu/ci.scm
|
@ -28,6 +28,7 @@
|
||||||
#:use-module (guix derivations)
|
#:use-module (guix derivations)
|
||||||
#:use-module (guix build-system)
|
#:use-module (guix build-system)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix ui)
|
#:use-module (guix ui)
|
||||||
#:use-module ((guix licenses)
|
#:use-module ((guix licenses)
|
||||||
#:select (gpl3+ license? license-name))
|
#:select (gpl3+ license? license-name))
|
||||||
|
@ -54,7 +55,7 @@
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:export (channel-instance->package
|
#:export (channel-source->package
|
||||||
hydra-jobs))
|
hydra-jobs))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
@ -139,6 +140,49 @@ SYSTEM."
|
||||||
"i686-w64-mingw32"
|
"i686-w64-mingw32"
|
||||||
"x86_64-w64-mingw32"))
|
"x86_64-w64-mingw32"))
|
||||||
|
|
||||||
|
(define (cross-jobs store system)
|
||||||
|
"Return a list of cross-compilation jobs for SYSTEM."
|
||||||
|
(define (from-32-to-64? target)
|
||||||
|
;; Return true if SYSTEM is 32-bit and TARGET is 64-bit. This hack
|
||||||
|
;; prevents known-to-fail cross-builds from i686-linux or armhf-linux to
|
||||||
|
;; mips64el-linux-gnuabi64.
|
||||||
|
(and (or (string-prefix? "i686-" system)
|
||||||
|
(string-prefix? "i586-" system)
|
||||||
|
(string-prefix? "armhf-" system))
|
||||||
|
(string-contains target "64"))) ;x86_64, mips64el, aarch64, etc.
|
||||||
|
|
||||||
|
(define (same? target)
|
||||||
|
;; Return true if SYSTEM and TARGET are the same thing. This is so we
|
||||||
|
;; don't try to cross-compile to 'mips64el-linux-gnu' from
|
||||||
|
;; 'mips64el-linux'.
|
||||||
|
(or (string-contains target system)
|
||||||
|
(and (string-prefix? "armhf" system) ;armhf-linux
|
||||||
|
(string-prefix? "arm" target)))) ;arm-linux-gnueabihf
|
||||||
|
|
||||||
|
(define (pointless? target)
|
||||||
|
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
|
||||||
|
(match system
|
||||||
|
((or "x86_64-linux" "i686-linux")
|
||||||
|
(if (string-contains target "mingw")
|
||||||
|
(not (string=? "x86_64-linux" system))
|
||||||
|
#f))
|
||||||
|
(_
|
||||||
|
;; Don't try to cross-compile from non-Intel platforms: this isn't
|
||||||
|
;; very useful and these are often brittle configurations.
|
||||||
|
#t)))
|
||||||
|
|
||||||
|
(define (either proc1 proc2 proc3)
|
||||||
|
(lambda (x)
|
||||||
|
(or (proc1 x) (proc2 x) (proc3 x))))
|
||||||
|
|
||||||
|
(append-map (lambda (target)
|
||||||
|
(map (lambda (package)
|
||||||
|
(package-cross-job store (job-name package)
|
||||||
|
package target system))
|
||||||
|
(packages-to-cross-build target)))
|
||||||
|
(remove (either from-32-to-64? same? pointless?)
|
||||||
|
%cross-targets)))
|
||||||
|
|
||||||
(define %guixsd-supported-systems
|
(define %guixsd-supported-systems
|
||||||
'("x86_64-linux" "i686-linux" "armhf-linux"))
|
'("x86_64-linux" "i686-linux" "armhf-linux"))
|
||||||
|
|
||||||
|
@ -200,29 +244,39 @@ system.")
|
||||||
(define channel-build-system
|
(define channel-build-system
|
||||||
;; Build system used to "convert" a channel instance to a package.
|
;; Build system used to "convert" a channel instance to a package.
|
||||||
(let* ((build (lambda* (store name inputs
|
(let* ((build (lambda* (store name inputs
|
||||||
#:key instance system
|
#:key source commit system
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
(run-with-store store
|
(run-with-store store
|
||||||
(channel-instances->derivation (list instance))
|
;; SOURCE can be a lowerable object such as <local-file>
|
||||||
|
;; or a file name. Adjust accordingly.
|
||||||
|
(mlet* %store-monad ((source (if (string? source)
|
||||||
|
(return source)
|
||||||
|
(lower-object source)))
|
||||||
|
(instance
|
||||||
|
-> (checkout->channel-instance
|
||||||
|
source #:commit commit)))
|
||||||
|
(channel-instances->derivation (list instance)))
|
||||||
#:system system)))
|
#:system system)))
|
||||||
(lower (lambda* (name #:key system instance #:allow-other-keys)
|
(lower (lambda* (name #:key system source commit
|
||||||
|
#:allow-other-keys)
|
||||||
(bag
|
(bag
|
||||||
(name name)
|
(name name)
|
||||||
(system system)
|
(system system)
|
||||||
(build build)
|
(build build)
|
||||||
(arguments `(#:instance ,instance))))))
|
(arguments `(#:source ,source
|
||||||
|
#:commit ,commit))))))
|
||||||
(build-system (name 'channel)
|
(build-system (name 'channel)
|
||||||
(description "Turn a channel instance into a package.")
|
(description "Turn a channel instance into a package.")
|
||||||
(lower lower))))
|
(lower lower))))
|
||||||
|
|
||||||
(define (channel-instance->package instance)
|
(define* (channel-source->package source #:key commit)
|
||||||
"Return a package for the given channel INSTANCE."
|
"Return a package for the given channel SOURCE, a lowerable object."
|
||||||
(package
|
(package
|
||||||
(inherit guix)
|
(inherit guix)
|
||||||
(version (or (string-take (channel-instance-commit instance) 7)
|
(version (string-append (package-version guix) "+"))
|
||||||
(string-append (package-version guix) "+")))
|
|
||||||
(build-system channel-build-system)
|
(build-system channel-build-system)
|
||||||
(arguments `(#:instance ,instance))
|
(arguments `(#:source ,source
|
||||||
|
#:commit ,commit))
|
||||||
(inputs '())
|
(inputs '())
|
||||||
(native-inputs '())
|
(native-inputs '())
|
||||||
(propagated-inputs '())))
|
(propagated-inputs '())))
|
||||||
|
@ -230,9 +284,6 @@ system.")
|
||||||
(define* (system-test-jobs store system
|
(define* (system-test-jobs store system
|
||||||
#:key source commit)
|
#:key source commit)
|
||||||
"Return a list of jobs for the system tests."
|
"Return a list of jobs for the system tests."
|
||||||
(define instance
|
|
||||||
(checkout->channel-instance source #:commit commit))
|
|
||||||
|
|
||||||
(define (test->thunk test)
|
(define (test->thunk test)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(define drv
|
(define drv
|
||||||
|
@ -269,7 +320,7 @@ system.")
|
||||||
;; expensive. It also makes sure we get a valid Guix package when this
|
;; expensive. It also makes sure we get a valid Guix package when this
|
||||||
;; code is not running from a checkout.
|
;; code is not running from a checkout.
|
||||||
(parameterize ((current-guix-package
|
(parameterize ((current-guix-package
|
||||||
(channel-instance->package instance)))
|
(channel-source->package source #:commit commit)))
|
||||||
(map ->job (all-system-tests)))
|
(map ->job (all-system-tests)))
|
||||||
'()))
|
'()))
|
||||||
|
|
||||||
|
@ -421,48 +472,6 @@ Return #f if no such checkout is found."
|
||||||
(define source
|
(define source
|
||||||
(assq-ref checkout 'file-name))
|
(assq-ref checkout 'file-name))
|
||||||
|
|
||||||
(define (cross-jobs system)
|
|
||||||
(define (from-32-to-64? target)
|
|
||||||
;; Return true if SYSTEM is 32-bit and TARGET is 64-bit. This hack
|
|
||||||
;; prevents known-to-fail cross-builds from i686-linux or armhf-linux to
|
|
||||||
;; mips64el-linux-gnuabi64.
|
|
||||||
(and (or (string-prefix? "i686-" system)
|
|
||||||
(string-prefix? "i586-" system)
|
|
||||||
(string-prefix? "armhf-" system))
|
|
||||||
(string-contains target "64"))) ;x86_64, mips64el, aarch64, etc.
|
|
||||||
|
|
||||||
(define (same? target)
|
|
||||||
;; Return true if SYSTEM and TARGET are the same thing. This is so we
|
|
||||||
;; don't try to cross-compile to 'mips64el-linux-gnu' from
|
|
||||||
;; 'mips64el-linux'.
|
|
||||||
(or (string-contains target system)
|
|
||||||
(and (string-prefix? "armhf" system) ;armhf-linux
|
|
||||||
(string-prefix? "arm" target)))) ;arm-linux-gnueabihf
|
|
||||||
|
|
||||||
(define (pointless? target)
|
|
||||||
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
|
|
||||||
(match system
|
|
||||||
((or "x86_64-linux" "i686-linux")
|
|
||||||
(if (string-contains target "mingw")
|
|
||||||
(not (string=? "x86_64-linux" system))
|
|
||||||
#f))
|
|
||||||
(_
|
|
||||||
;; Don't try to cross-compile from non-Intel platforms: this isn't
|
|
||||||
;; very useful and these are often brittle configurations.
|
|
||||||
#t)))
|
|
||||||
|
|
||||||
(define (either proc1 proc2 proc3)
|
|
||||||
(lambda (x)
|
|
||||||
(or (proc1 x) (proc2 x) (proc3 x))))
|
|
||||||
|
|
||||||
(append-map (lambda (target)
|
|
||||||
(map (lambda (package)
|
|
||||||
(package-cross-job store (job-name package)
|
|
||||||
package target system))
|
|
||||||
(packages-to-cross-build target)))
|
|
||||||
(remove (either from-32-to-64? same? pointless?)
|
|
||||||
%cross-targets)))
|
|
||||||
|
|
||||||
;; Turn off grafts. Grafting is meant to happen on the user's machines.
|
;; Turn off grafts. Grafting is meant to happen on the user's machines.
|
||||||
(parameterize ((%graft? #f))
|
(parameterize ((%graft? #f))
|
||||||
;; Return one job for each package, except bootstrap packages.
|
;; Return one job for each package, except bootstrap packages.
|
||||||
|
@ -487,14 +496,14 @@ Return #f if no such checkout is found."
|
||||||
#:source source
|
#:source source
|
||||||
#:commit commit)
|
#:commit commit)
|
||||||
(tarball-jobs store system)
|
(tarball-jobs store system)
|
||||||
(cross-jobs system))))
|
(cross-jobs store system))))
|
||||||
((core)
|
((core)
|
||||||
;; Build core packages only.
|
;; Build core packages only.
|
||||||
(append (map (lambda (package)
|
(append (map (lambda (package)
|
||||||
(package-job store (job-name package)
|
(package-job store (job-name package)
|
||||||
package system))
|
package system))
|
||||||
%core-packages)
|
%core-packages)
|
||||||
(cross-jobs system)))
|
(cross-jobs store system)))
|
||||||
((hello)
|
((hello)
|
||||||
;; Build hello package only.
|
;; Build hello package only.
|
||||||
(if (string=? system (%current-system))
|
(if (string=? system (%current-system))
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix ui)
|
#:use-module (guix ui)
|
||||||
#:use-module ((guix self) #:select (make-config.scm))
|
#:use-module ((guix self) #:select (make-config.scm))
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (gnu installer utils)
|
#:use-module (gnu installer utils)
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
@ -280,6 +282,25 @@ selected keymap."
|
||||||
((installer-final-page current-installer)
|
((installer-final-page current-installer)
|
||||||
result prev-steps))))))))
|
result prev-steps))))))))
|
||||||
|
|
||||||
|
(define guile-newt
|
||||||
|
;; Guile-Newt with 'form-watch-fd'.
|
||||||
|
;; TODO: Remove once a new release is out.
|
||||||
|
(let ((commit "b3c885d42cfac327d3531c9d064939514ce6bf12")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(inherit (@ (gnu packages guile-xyz) guile-newt))
|
||||||
|
(name "guile-newt")
|
||||||
|
(version (git-version "0.0.1" revision commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://gitlab.com/mothacehe/guile-newt")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"02p0bi6c05699idgx6gfkljhqgi8zf09clhzx81i8wa064s70r1y")))))))
|
||||||
|
|
||||||
(define (installer-program)
|
(define (installer-program)
|
||||||
"Return a file-like object that runs the given INSTALLER."
|
"Return a file-like object that runs the given INSTALLER."
|
||||||
(define init-gettext
|
(define init-gettext
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -28,6 +28,12 @@
|
||||||
#:use-module (gnu build accounts)
|
#:use-module (gnu build accounts)
|
||||||
#:use-module ((gnu system shadow) #:prefix sys:)
|
#:use-module ((gnu system shadow) #:prefix sys:)
|
||||||
#:use-module (rnrs io ports)
|
#:use-module (rnrs io ports)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (ice-9 ftw)
|
||||||
|
#:use-module (ice-9 popen)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 format)
|
||||||
|
#:use-module (ice-9 rdelim)
|
||||||
#:export (install-system))
|
#:export (install-system))
|
||||||
|
|
||||||
(define %seed
|
(define %seed
|
||||||
|
@ -97,24 +103,92 @@ USERS."
|
||||||
(write-passwd password (string-append etc "/passwd"))
|
(write-passwd password (string-append etc "/passwd"))
|
||||||
(write-shadow shadow (string-append etc "/shadow")))
|
(write-shadow shadow (string-append etc "/shadow")))
|
||||||
|
|
||||||
|
(define* (kill-cow-users cow-path #:key (spare '("udevd")))
|
||||||
|
"Kill all processes that have references to the given COW-PATH in their
|
||||||
|
'maps' file. The process whose names are in SPARE list are spared."
|
||||||
|
(define %not-nul
|
||||||
|
(char-set-complement (char-set #\nul)))
|
||||||
|
|
||||||
|
(let ((pids
|
||||||
|
(filter-map (lambda (pid)
|
||||||
|
(call-with-input-file
|
||||||
|
(string-append "/proc/" pid "/maps")
|
||||||
|
(lambda (port)
|
||||||
|
(and (string-contains (get-string-all port)
|
||||||
|
cow-path)
|
||||||
|
(string->number pid)))))
|
||||||
|
(scandir "/proc" string->number))))
|
||||||
|
(for-each (lambda (pid)
|
||||||
|
;; cmdline does not always exist.
|
||||||
|
(false-if-exception
|
||||||
|
(call-with-input-file
|
||||||
|
(string-append "/proc/" (number->string pid) "/cmdline")
|
||||||
|
(lambda (port)
|
||||||
|
(match (string-tokenize (read-string port) %not-nul)
|
||||||
|
((argv0 _ ...)
|
||||||
|
(unless (member (pk (basename argv0)) spare)
|
||||||
|
(syslog "Killing process ~a~%" pid)
|
||||||
|
(kill pid SIGKILL)))
|
||||||
|
(_ #f))))))
|
||||||
|
pids)))
|
||||||
|
|
||||||
(define (umount-cow-store)
|
(define (umount-cow-store)
|
||||||
"Remove the store overlay and the bind-mount on /tmp created by the
|
"Remove the store overlay and the bind-mount on /tmp created by the
|
||||||
cow-store service."
|
cow-store service. This procedure is very fragile and a better approach would
|
||||||
(let ((tmp-dir "/remove"))
|
be much appreciated."
|
||||||
(mkdir-p tmp-dir)
|
|
||||||
(mount (%store-directory) tmp-dir "" MS_MOVE)
|
;; Remove when integrated in (gnu services herd).
|
||||||
(umount tmp-dir)
|
(define (restart-service name)
|
||||||
(umount "/tmp")))
|
(with-shepherd-action name ('restart) result
|
||||||
|
result))
|
||||||
|
|
||||||
|
(catch #t
|
||||||
|
(lambda ()
|
||||||
|
(let ((tmp-dir "/remove"))
|
||||||
|
(mkdir-p tmp-dir)
|
||||||
|
(mount (%store-directory) tmp-dir "" MS_MOVE)
|
||||||
|
|
||||||
|
;; The guix-daemon has possibly opened files from the cow-store,
|
||||||
|
;; restart it.
|
||||||
|
(restart-service 'guix-daemon)
|
||||||
|
|
||||||
|
;; Kill all processes started while the cow-store was active (logins
|
||||||
|
;; on other TTYs for instance).
|
||||||
|
(kill-cow-users tmp-dir)
|
||||||
|
|
||||||
|
;; Try to umount the store overlay. Some process such as udevd
|
||||||
|
;; workers might still be active, so do some retries.
|
||||||
|
(let loop ((try 5))
|
||||||
|
(sleep 1)
|
||||||
|
(let ((umounted? (false-if-exception (umount tmp-dir))))
|
||||||
|
(if (and (not umounted?) (> try 0))
|
||||||
|
(loop (- try 1))
|
||||||
|
(if umounted?
|
||||||
|
(syslog "Umounted ~a successfully.~%" tmp-dir)
|
||||||
|
(syslog "Failed to umount ~a.~%" tmp-dir)))))
|
||||||
|
|
||||||
|
(umount "/tmp")))
|
||||||
|
(lambda args
|
||||||
|
(syslog "~a~%" args))))
|
||||||
|
|
||||||
(define* (install-system locale #:key (users '()))
|
(define* (install-system locale #:key (users '()))
|
||||||
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
|
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
|
||||||
Start COW-STORE service on target directory and launch guix install command in
|
Start COW-STORE service on target directory and launch guix install command in
|
||||||
a subshell. LOCALE must be the locale name under which that command will run,
|
a subshell. LOCALE must be the locale name under which that command will run,
|
||||||
or #f. Return #t on success and #f on failure."
|
or #f. Return #t on success and #f on failure."
|
||||||
(let ((install-command
|
(let* ((options (catch 'system-error
|
||||||
(format #f "guix system init --fallback ~a ~a"
|
(lambda ()
|
||||||
(%installer-configuration-file)
|
;; If this file exists, it can provide
|
||||||
(%installer-target-dir))))
|
;; additional command-line options.
|
||||||
|
(call-with-input-file
|
||||||
|
"/tmp/installer-system-init-options"
|
||||||
|
read))
|
||||||
|
(const '())))
|
||||||
|
(install-command (append (list "guix" "system" "init"
|
||||||
|
"--fallback")
|
||||||
|
options
|
||||||
|
(list (%installer-configuration-file)
|
||||||
|
(%installer-target-dir)))))
|
||||||
(mkdir-p (%installer-target-dir))
|
(mkdir-p (%installer-target-dir))
|
||||||
|
|
||||||
;; We want to initialize user passwords but we don't want to store them in
|
;; We want to initialize user passwords but we don't want to store them in
|
||||||
|
@ -128,7 +202,7 @@ or #f. Return #t on success and #f on failure."
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(start-service 'cow-store (list (%installer-target-dir))))
|
(start-service 'cow-store (list (%installer-target-dir))))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(run-shell-command install-command #:locale locale))
|
(run-command install-command #:locale locale))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(stop-service 'cow-store)
|
(stop-service 'cow-store)
|
||||||
;; Remove the store overlay created at cow-store service start.
|
;; Remove the store overlay created at cow-store service start.
|
||||||
|
|
|
@ -63,28 +63,38 @@ This will take a few minutes.")
|
||||||
(&installer-step-abort)))))))
|
(&installer-step-abort)))))))
|
||||||
|
|
||||||
(define (run-install-success-page)
|
(define (run-install-success-page)
|
||||||
(message-window
|
(match (current-clients)
|
||||||
(G_ "Installation complete")
|
(()
|
||||||
(G_ "Reboot")
|
(message-window
|
||||||
(G_ "Congratulations! Installation is now complete. \
|
(G_ "Installation complete")
|
||||||
|
(G_ "Reboot")
|
||||||
|
(G_ "Congratulations! Installation is now complete. \
|
||||||
You may remove the device containing the installation image and \
|
You may remove the device containing the installation image and \
|
||||||
press the button to reboot."))
|
press the button to reboot.")))
|
||||||
|
(_
|
||||||
|
;; When there are clients connected, send them a message and keep going.
|
||||||
|
(send-to-clients '(installation-complete))))
|
||||||
|
|
||||||
;; Return success so that the installer happily reboots.
|
;; Return success so that the installer happily reboots.
|
||||||
'success)
|
'success)
|
||||||
|
|
||||||
(define (run-install-failed-page)
|
(define (run-install-failed-page)
|
||||||
(match (choice-window
|
(match (current-clients)
|
||||||
(G_ "Installation failed")
|
(()
|
||||||
(G_ "Resume")
|
(match (choice-window
|
||||||
(G_ "Restart the installer")
|
(G_ "Installation failed")
|
||||||
(G_ "The final system installation step failed. You can resume from \
|
(G_ "Resume")
|
||||||
|
(G_ "Restart the installer")
|
||||||
|
(G_ "The final system installation step failed. You can resume from \
|
||||||
a specific step, or restart the installer."))
|
a specific step, or restart the installer."))
|
||||||
(1 (raise
|
(1 (raise
|
||||||
(condition
|
(condition
|
||||||
(&installer-step-abort))))
|
(&installer-step-abort))))
|
||||||
(2
|
(2
|
||||||
;; Keep going, the installer will be restarted later on.
|
;; Keep going, the installer will be restarted later on.
|
||||||
|
#t)))
|
||||||
|
(_
|
||||||
|
(send-to-clients '(installation-failure))
|
||||||
#t)))
|
#t)))
|
||||||
|
|
||||||
(define* (run-install-shell locale
|
(define* (run-install-shell locale
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -119,6 +119,10 @@ network devices were found. Do you want to continue anyway?"))
|
||||||
(define (wait-service-online)
|
(define (wait-service-online)
|
||||||
"Display a newt scale until connman detects an Internet access. Do
|
"Display a newt scale until connman detects an Internet access. Do
|
||||||
FULL-VALUE tentatives, spaced by 1 second."
|
FULL-VALUE tentatives, spaced by 1 second."
|
||||||
|
(define (online?)
|
||||||
|
(or (connman-online?)
|
||||||
|
(file-exists? "/tmp/installer-assume-online")))
|
||||||
|
|
||||||
(let* ((full-value 5))
|
(let* ((full-value 5))
|
||||||
(run-scale-page
|
(run-scale-page
|
||||||
#:title (G_ "Checking connectivity")
|
#:title (G_ "Checking connectivity")
|
||||||
|
@ -127,10 +131,10 @@ FULL-VALUE tentatives, spaced by 1 second."
|
||||||
#:scale-update-proc
|
#:scale-update-proc
|
||||||
(lambda (value)
|
(lambda (value)
|
||||||
(sleep 1)
|
(sleep 1)
|
||||||
(if (connman-online?)
|
(if (online?)
|
||||||
full-value
|
full-value
|
||||||
(+ value 1))))
|
(+ value 1))))
|
||||||
(unless (connman-online?)
|
(unless (online?)
|
||||||
(run-error-page
|
(run-error-page
|
||||||
(G_ "The selected network does not provide access to the \
|
(G_ "The selected network does not provide access to the \
|
||||||
Internet, please try again.")
|
Internet, please try again.")
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
;;; 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 installer newt page)
|
(define-module (gnu installer newt page)
|
||||||
|
#:use-module (gnu installer steps)
|
||||||
#:use-module (gnu installer utils)
|
#:use-module (gnu installer utils)
|
||||||
#:use-module (gnu installer newt utils)
|
#:use-module (gnu installer newt utils)
|
||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
|
@ -26,7 +27,10 @@
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 receive)
|
#:use-module (ice-9 receive)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
#:use-module (srfi srfi-34)
|
||||||
|
#:use-module (srfi srfi-35)
|
||||||
#:use-module (newt)
|
#:use-module (newt)
|
||||||
#:export (draw-info-page
|
#:export (draw-info-page
|
||||||
draw-connecting-page
|
draw-connecting-page
|
||||||
|
@ -36,7 +40,9 @@
|
||||||
run-listbox-selection-page
|
run-listbox-selection-page
|
||||||
run-scale-page
|
run-scale-page
|
||||||
run-checkbox-tree-page
|
run-checkbox-tree-page
|
||||||
run-file-textbox-page))
|
run-file-textbox-page
|
||||||
|
|
||||||
|
run-form-with-clients))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
|
@ -49,9 +55,123 @@
|
||||||
;;;
|
;;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(define* (watch-clients! form #:optional (clients (current-clients)))
|
||||||
|
"Have FORM watch the file descriptors corresponding to current client
|
||||||
|
connections. Consequently, FORM may exit with the 'exit-fd-ready' reason."
|
||||||
|
(when (current-server-socket)
|
||||||
|
(form-watch-fd form (fileno (current-server-socket))
|
||||||
|
FD-READ))
|
||||||
|
|
||||||
|
(for-each (lambda (client)
|
||||||
|
(form-watch-fd form (fileno client)
|
||||||
|
(logior FD-READ FD-EXCEPT)))
|
||||||
|
clients))
|
||||||
|
|
||||||
|
(define close-port-and-reuse-fd
|
||||||
|
(let ((bit-bucket #f))
|
||||||
|
(lambda (port)
|
||||||
|
"Close PORT and redirect its underlying FD to point to a valid open file
|
||||||
|
descriptor."
|
||||||
|
(let ((fd (fileno port)))
|
||||||
|
(unless bit-bucket
|
||||||
|
(set! bit-bucket (car (pipe))))
|
||||||
|
(close-port port)
|
||||||
|
|
||||||
|
;; FIXME: We're leaking FD.
|
||||||
|
(dup2 (fileno bit-bucket) fd)))))
|
||||||
|
|
||||||
|
(define* (run-form-with-clients form exp)
|
||||||
|
"Run FORM such as it watches the file descriptors beneath CLIENTS after
|
||||||
|
sending EXP to all the clients.
|
||||||
|
|
||||||
|
Automatically restart the form when it exits with 'exit-fd-ready but without
|
||||||
|
an actual client reply--e.g., it got a connection request or a client
|
||||||
|
disconnect.
|
||||||
|
|
||||||
|
Like 'run-form', return two values: the exit reason, and an \"argument\"."
|
||||||
|
(define* (discard-client! port #:optional errno)
|
||||||
|
(if errno
|
||||||
|
(syslog "removing client ~d due to ~s~%"
|
||||||
|
(fileno port) (strerror errno))
|
||||||
|
(syslog "removing client ~d due to EOF~%"
|
||||||
|
(fileno port)))
|
||||||
|
|
||||||
|
;; XXX: Watch out! There's no 'form-unwatch-fd' procedure in Newt so we
|
||||||
|
;; cheat: we keep PORT's file descriptor open, but make it a duplicate of
|
||||||
|
;; a valid but inactive FD. Failing to do that, 'run-form' would
|
||||||
|
;; select(2) on the now-closed port and keep spinning as select(2) returns
|
||||||
|
;; EBADF.
|
||||||
|
(close-port-and-reuse-fd port)
|
||||||
|
|
||||||
|
(current-clients (delq port (current-clients)))
|
||||||
|
(close-port port))
|
||||||
|
|
||||||
|
(define title
|
||||||
|
;; Title of FORM.
|
||||||
|
(match exp
|
||||||
|
(((? symbol? tag) alist ...)
|
||||||
|
(match (assq 'title alist)
|
||||||
|
((_ title) title)
|
||||||
|
(_ tag)))
|
||||||
|
(((? symbol? tag) _ ...)
|
||||||
|
tag)
|
||||||
|
(_
|
||||||
|
'unknown)))
|
||||||
|
|
||||||
|
;; Send EXP to all the currently-connected clients.
|
||||||
|
(send-to-clients exp)
|
||||||
|
|
||||||
|
(let loop ()
|
||||||
|
(syslog "running form ~s (~s) with ~d clients~%"
|
||||||
|
form title (length (current-clients)))
|
||||||
|
|
||||||
|
;; Call 'watch-clients!' within the loop because there might be new
|
||||||
|
;; clients.
|
||||||
|
(watch-clients! form)
|
||||||
|
|
||||||
|
(let-values (((reason argument) (run-form form)))
|
||||||
|
(match reason
|
||||||
|
('exit-fd-ready
|
||||||
|
(match (fdes->ports argument)
|
||||||
|
((port _ ...)
|
||||||
|
(if (memq port (current-clients))
|
||||||
|
|
||||||
|
;; Read a reply from a client or handle its departure.
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(match (read port)
|
||||||
|
((? eof-object? eof)
|
||||||
|
(discard-client! port)
|
||||||
|
(loop))
|
||||||
|
(obj
|
||||||
|
(syslog "form ~s (~s): client ~d replied ~s~%"
|
||||||
|
form title (fileno port) obj)
|
||||||
|
(values 'exit-fd-ready obj))))
|
||||||
|
(lambda args
|
||||||
|
(discard-client! port (system-error-errno args))
|
||||||
|
(loop)))
|
||||||
|
|
||||||
|
;; Accept a new client and send it EXP.
|
||||||
|
(match (accept port)
|
||||||
|
((client . _)
|
||||||
|
(syslog "accepting new client ~d while on form ~s~%"
|
||||||
|
(fileno client) form)
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(write exp client)
|
||||||
|
(newline client)
|
||||||
|
(force-output client)
|
||||||
|
(current-clients (cons client (current-clients))))
|
||||||
|
(lambda _
|
||||||
|
(close-port client)))
|
||||||
|
(loop)))))))
|
||||||
|
(_
|
||||||
|
(values reason argument))))))
|
||||||
|
|
||||||
(define (draw-info-page text title)
|
(define (draw-info-page text title)
|
||||||
"Draw an informative page with the given TEXT as content. Set the title of
|
"Draw an informative page with the given TEXT as content. Set the title of
|
||||||
this page to TITLE."
|
this page to TITLE."
|
||||||
|
(send-to-clients `(info (title ,title) (text ,text)))
|
||||||
(let* ((text-box
|
(let* ((text-box
|
||||||
(make-reflowed-textbox -1 -1 text 40
|
(make-reflowed-textbox -1 -1 text 40
|
||||||
#:flags FLAG-BORDER))
|
#:flags FLAG-BORDER))
|
||||||
|
@ -126,20 +246,25 @@ input box, such as FLAG-PASSWORD."
|
||||||
(G_ "Empty input")))))
|
(G_ "Empty input")))))
|
||||||
(let loop ()
|
(let loop ()
|
||||||
(receive (exit-reason argument)
|
(receive (exit-reason argument)
|
||||||
(run-form form)
|
(run-form-with-clients form
|
||||||
(let ((input (entry-value input-entry)))
|
`(input (title ,title) (text ,text)
|
||||||
(if (and (not allow-empty-input?)
|
(default ,default-text)))
|
||||||
(eq? exit-reason 'exit-component)
|
(let ((input (if (eq? exit-reason 'exit-fd-ready)
|
||||||
(string=? input ""))
|
argument
|
||||||
(begin
|
(entry-value input-entry))))
|
||||||
;; Display the error page.
|
(cond ((not input) ;client disconnect or something
|
||||||
(error-page)
|
(loop))
|
||||||
;; Set the focus back to the input input field.
|
((and (not allow-empty-input?)
|
||||||
(set-current-component form input-entry)
|
(eq? exit-reason 'exit-component)
|
||||||
(loop))
|
(string=? input ""))
|
||||||
(begin
|
;; Display the error page.
|
||||||
(destroy-form-and-pop form)
|
(error-page)
|
||||||
input))))))))
|
;; Set the focus back to the input input field.
|
||||||
|
(set-current-component form input-entry)
|
||||||
|
(loop))
|
||||||
|
(else
|
||||||
|
(destroy-form-and-pop form)
|
||||||
|
input))))))))
|
||||||
|
|
||||||
(define (run-error-page text title)
|
(define (run-error-page text title)
|
||||||
"Run a page to inform the user of an error. The page contains the given TEXT
|
"Run a page to inform the user of an error. The page contains the given TEXT
|
||||||
|
@ -160,7 +285,8 @@ of the page is set to TITLE."
|
||||||
(newt-set-color COLORSET-ROOT "white" "red")
|
(newt-set-color COLORSET-ROOT "white" "red")
|
||||||
(add-components-to-form form text-box ok-button)
|
(add-components-to-form form text-box ok-button)
|
||||||
(make-wrapped-grid-window grid title)
|
(make-wrapped-grid-window grid title)
|
||||||
(run-form form)
|
(run-form-with-clients form
|
||||||
|
`(error (title ,title) (text ,text)))
|
||||||
;; Restore the background to its original color.
|
;; Restore the background to its original color.
|
||||||
(newt-set-color COLORSET-ROOT "white" "blue")
|
(newt-set-color COLORSET-ROOT "white" "blue")
|
||||||
(destroy-form-and-pop form)))
|
(destroy-form-and-pop form)))
|
||||||
|
@ -187,17 +313,23 @@ of the page is set to TITLE."
|
||||||
(make-wrapped-grid-window grid title)
|
(make-wrapped-grid-window grid title)
|
||||||
|
|
||||||
(receive (exit-reason argument)
|
(receive (exit-reason argument)
|
||||||
(run-form form)
|
(run-form-with-clients form
|
||||||
|
`(confirmation (title ,title)
|
||||||
|
(text ,text)))
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
(const #t)
|
(const #t)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(case exit-reason
|
(match exit-reason
|
||||||
((exit-component)
|
('exit-component
|
||||||
(cond
|
(cond
|
||||||
((components=? argument ok-button)
|
((components=? argument ok-button)
|
||||||
#t)
|
#t)
|
||||||
((components=? argument exit-button)
|
((components=? argument exit-button)
|
||||||
(exit-button-procedure))))))
|
(exit-button-procedure))))
|
||||||
|
('exit-fd-ready
|
||||||
|
(if argument
|
||||||
|
#t
|
||||||
|
(exit-button-procedure)))))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(destroy-form-and-pop form))))))
|
(destroy-form-and-pop form))))))
|
||||||
|
|
||||||
|
@ -222,6 +354,8 @@ of the page is set to TITLE."
|
||||||
(const #t))
|
(const #t))
|
||||||
(listbox-callback-procedure
|
(listbox-callback-procedure
|
||||||
identity)
|
identity)
|
||||||
|
(client-callback-procedure
|
||||||
|
listbox-callback-procedure)
|
||||||
(hotkey-callback-procedure
|
(hotkey-callback-procedure
|
||||||
(const #t)))
|
(const #t)))
|
||||||
"Run a page asking the user to select an item in a listbox. The page
|
"Run a page asking the user to select an item in a listbox. The page
|
||||||
|
@ -254,9 +388,9 @@ Each time the listbox current item changes, call SKIP-ITEM-PROCEDURE? with the
|
||||||
current listbox item as argument. If it returns #t, skip the element and jump
|
current listbox item as argument. If it returns #t, skip the element and jump
|
||||||
to the next/previous one depending on the previous item, otherwise do
|
to the next/previous one depending on the previous item, otherwise do
|
||||||
nothing."
|
nothing."
|
||||||
|
(let loop ()
|
||||||
(define (fill-listbox listbox items)
|
(define (fill-listbox listbox items)
|
||||||
"Append the given ITEMS to LISTBOX, once they have been converted to text
|
"Append the given ITEMS to LISTBOX, once they have been converted to text
|
||||||
with LISTBOX-ITEM->TEXT. Each item appended to the LISTBOX is given a key by
|
with LISTBOX-ITEM->TEXT. Each item appended to the LISTBOX is given a key by
|
||||||
newt. Save this key by returning an association list under the form:
|
newt. Save this key by returning an association list under the form:
|
||||||
|
|
||||||
|
@ -264,144 +398,165 @@ newt. Save this key by returning an association list under the form:
|
||||||
|
|
||||||
where NEWT-LISTBOX-KEY is the key returned by APPEND-ENTRY-TO-LISTBOX, when
|
where NEWT-LISTBOX-KEY is the key returned by APPEND-ENTRY-TO-LISTBOX, when
|
||||||
ITEM was inserted into LISTBOX."
|
ITEM was inserted into LISTBOX."
|
||||||
(map (lambda (item)
|
(map (lambda (item)
|
||||||
(let* ((text (listbox-item->text item))
|
(let* ((text (listbox-item->text item))
|
||||||
(key (append-entry-to-listbox listbox text)))
|
(key (append-entry-to-listbox listbox text)))
|
||||||
(cons key item)))
|
(cons key item)))
|
||||||
items))
|
items))
|
||||||
|
|
||||||
(define (sort-listbox-items listbox-items)
|
(define (sort-listbox-items listbox-items)
|
||||||
"Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
|
"Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
|
||||||
corresponding to each item in the list."
|
corresponding to each item in the list."
|
||||||
(let* ((items (map (lambda (item)
|
(let* ((items (map (lambda (item)
|
||||||
(cons item (listbox-item->text item)))
|
(cons item (listbox-item->text item)))
|
||||||
listbox-items))
|
listbox-items))
|
||||||
(sorted-items
|
(sorted-items
|
||||||
(sort items (lambda (a b)
|
(sort items (lambda (a b)
|
||||||
(let ((text-a (cdr a))
|
(let ((text-a (cdr a))
|
||||||
(text-b (cdr b)))
|
(text-b (cdr b)))
|
||||||
(string-locale<? text-a text-b))))))
|
(string-locale<? text-a text-b))))))
|
||||||
(map car sorted-items)))
|
(map car sorted-items)))
|
||||||
|
|
||||||
;; Store the last selected listbox item's key.
|
;; Store the last selected listbox item's key.
|
||||||
(define last-listbox-key (make-parameter #f))
|
(define last-listbox-key (make-parameter #f))
|
||||||
|
|
||||||
(define (previous-key keys key)
|
(define (previous-key keys key)
|
||||||
(let ((index (list-index (cut eq? key <>) keys)))
|
(let ((index (list-index (cut eq? key <>) keys)))
|
||||||
(and index
|
(and index
|
||||||
(> index 0)
|
(> index 0)
|
||||||
(list-ref keys (- index 1)))))
|
(list-ref keys (- index 1)))))
|
||||||
|
|
||||||
(define (next-key keys key)
|
(define (next-key keys key)
|
||||||
(let ((index (list-index (cut eq? key <>) keys)))
|
(let ((index (list-index (cut eq? key <>) keys)))
|
||||||
(and index
|
(and index
|
||||||
(< index (- (length keys) 1))
|
(< index (- (length keys) 1))
|
||||||
(list-ref keys (+ index 1)))))
|
(list-ref keys (+ index 1)))))
|
||||||
|
|
||||||
(define (set-default-item listbox listbox-keys default-item)
|
(define (set-default-item listbox listbox-keys default-item)
|
||||||
"Set the default item of LISTBOX to DEFAULT-ITEM. LISTBOX-KEYS is the
|
"Set the default item of LISTBOX to DEFAULT-ITEM. LISTBOX-KEYS is the
|
||||||
association list returned by the FILL-LISTBOX procedure. It is used because
|
association list returned by the FILL-LISTBOX procedure. It is used because
|
||||||
the current listbox item has to be selected by key."
|
the current listbox item has to be selected by key."
|
||||||
(for-each (match-lambda
|
(for-each (match-lambda
|
||||||
((key . item)
|
((key . item)
|
||||||
(when (equal? item default-item)
|
(when (equal? item default-item)
|
||||||
(set-current-listbox-entry-by-key listbox key))))
|
(set-current-listbox-entry-by-key listbox key))))
|
||||||
listbox-keys))
|
listbox-keys))
|
||||||
|
|
||||||
(let* ((listbox (make-listbox
|
(let* ((listbox (make-listbox
|
||||||
-1 -1
|
-1 -1
|
||||||
listbox-height
|
listbox-height
|
||||||
(logior FLAG-SCROLL FLAG-BORDER FLAG-RETURNEXIT
|
(logior FLAG-SCROLL FLAG-BORDER FLAG-RETURNEXIT
|
||||||
(if listbox-allow-multiple?
|
(if listbox-allow-multiple?
|
||||||
FLAG-MULTIPLE
|
FLAG-MULTIPLE
|
||||||
0))))
|
0))))
|
||||||
(form (make-form #:flags FLAG-NOF12))
|
(form (make-form #:flags FLAG-NOF12))
|
||||||
(info-textbox
|
(info-textbox
|
||||||
(make-reflowed-textbox -1 -1 info-text
|
(make-reflowed-textbox -1 -1 info-text
|
||||||
info-textbox-width
|
info-textbox-width
|
||||||
#:flags FLAG-BORDER))
|
#:flags FLAG-BORDER))
|
||||||
(button (make-button -1 -1 button-text))
|
(button (make-button -1 -1 button-text))
|
||||||
(button2 (and button2-text
|
(button2 (and button2-text
|
||||||
(make-button -1 -1 button2-text)))
|
(make-button -1 -1 button2-text)))
|
||||||
(grid (vertically-stacked-grid
|
(grid (vertically-stacked-grid
|
||||||
GRID-ELEMENT-COMPONENT info-textbox
|
GRID-ELEMENT-COMPONENT info-textbox
|
||||||
GRID-ELEMENT-COMPONENT listbox
|
GRID-ELEMENT-COMPONENT listbox
|
||||||
GRID-ELEMENT-SUBGRID
|
GRID-ELEMENT-SUBGRID
|
||||||
(apply
|
(apply
|
||||||
horizontal-stacked-grid
|
horizontal-stacked-grid
|
||||||
GRID-ELEMENT-COMPONENT button
|
GRID-ELEMENT-COMPONENT button
|
||||||
`(,@(if button2
|
`(,@(if button2
|
||||||
(list GRID-ELEMENT-COMPONENT button2)
|
(list GRID-ELEMENT-COMPONENT button2)
|
||||||
'())))))
|
'())))))
|
||||||
(sorted-items (if sort-listbox-items?
|
(sorted-items (if sort-listbox-items?
|
||||||
(sort-listbox-items listbox-items)
|
(sort-listbox-items listbox-items)
|
||||||
listbox-items))
|
listbox-items))
|
||||||
(keys (fill-listbox listbox sorted-items)))
|
(keys (fill-listbox listbox sorted-items)))
|
||||||
|
|
||||||
;; On every listbox element change, check if we need to skip it. If yes,
|
(define (choice->item str)
|
||||||
;; depending on the 'last-listbox-key', jump forward or backward. If no,
|
;; Return the item that corresponds to STR.
|
||||||
;; do nothing.
|
(match (find (match-lambda
|
||||||
(add-component-callback
|
((key . item)
|
||||||
listbox
|
(string=? str (listbox-item->text item))))
|
||||||
(lambda (component)
|
keys)
|
||||||
(let* ((current-key (current-listbox-entry listbox))
|
((key . item) item)
|
||||||
(listbox-keys (map car keys))
|
(#f (raise (condition (&installer-step-abort))))))
|
||||||
(last-key (last-listbox-key))
|
|
||||||
(item (assoc-ref keys current-key))
|
|
||||||
(prev-key (previous-key listbox-keys current-key))
|
|
||||||
(next-key (next-key listbox-keys current-key)))
|
|
||||||
;; Update last-listbox-key before a potential call to
|
|
||||||
;; set-current-listbox-entry-by-key, because it will immediately
|
|
||||||
;; cause this callback to be called for the new entry.
|
|
||||||
(last-listbox-key current-key)
|
|
||||||
(when (skip-item-procedure? item)
|
|
||||||
(when (eq? prev-key last-key)
|
|
||||||
(if next-key
|
|
||||||
(set-current-listbox-entry-by-key listbox next-key)
|
|
||||||
(set-current-listbox-entry-by-key listbox prev-key)))
|
|
||||||
(when (eq? next-key last-key)
|
|
||||||
(if prev-key
|
|
||||||
(set-current-listbox-entry-by-key listbox prev-key)
|
|
||||||
(set-current-listbox-entry-by-key listbox next-key)))))))
|
|
||||||
|
|
||||||
(when listbox-default-item
|
;; On every listbox element change, check if we need to skip it. If yes,
|
||||||
(set-default-item listbox keys listbox-default-item))
|
;; depending on the 'last-listbox-key', jump forward or backward. If no,
|
||||||
|
;; do nothing.
|
||||||
|
(add-component-callback
|
||||||
|
listbox
|
||||||
|
(lambda (component)
|
||||||
|
(let* ((current-key (current-listbox-entry listbox))
|
||||||
|
(listbox-keys (map car keys))
|
||||||
|
(last-key (last-listbox-key))
|
||||||
|
(item (assoc-ref keys current-key))
|
||||||
|
(prev-key (previous-key listbox-keys current-key))
|
||||||
|
(next-key (next-key listbox-keys current-key)))
|
||||||
|
;; Update last-listbox-key before a potential call to
|
||||||
|
;; set-current-listbox-entry-by-key, because it will immediately
|
||||||
|
;; cause this callback to be called for the new entry.
|
||||||
|
(last-listbox-key current-key)
|
||||||
|
(when (skip-item-procedure? item)
|
||||||
|
(when (eq? prev-key last-key)
|
||||||
|
(if next-key
|
||||||
|
(set-current-listbox-entry-by-key listbox next-key)
|
||||||
|
(set-current-listbox-entry-by-key listbox prev-key)))
|
||||||
|
(when (eq? next-key last-key)
|
||||||
|
(if prev-key
|
||||||
|
(set-current-listbox-entry-by-key listbox prev-key)
|
||||||
|
(set-current-listbox-entry-by-key listbox next-key)))))))
|
||||||
|
|
||||||
(when allow-delete?
|
(when listbox-default-item
|
||||||
(form-add-hotkey form KEY-DELETE))
|
(set-default-item listbox keys listbox-default-item))
|
||||||
|
|
||||||
(add-form-to-grid grid form #t)
|
(when allow-delete?
|
||||||
(make-wrapped-grid-window grid title)
|
(form-add-hotkey form KEY-DELETE))
|
||||||
|
|
||||||
(receive (exit-reason argument)
|
(add-form-to-grid grid form #t)
|
||||||
(run-form form)
|
(make-wrapped-grid-window grid title)
|
||||||
(dynamic-wind
|
|
||||||
(const #t)
|
(receive (exit-reason argument)
|
||||||
(lambda ()
|
(run-form-with-clients form
|
||||||
(case exit-reason
|
`(list-selection (title ,title)
|
||||||
((exit-component)
|
(multiple-choices?
|
||||||
(cond
|
,listbox-allow-multiple?)
|
||||||
((components=? argument button)
|
(items
|
||||||
(button-callback-procedure))
|
,(map listbox-item->text
|
||||||
((and button2
|
listbox-items))))
|
||||||
(components=? argument button2))
|
(dynamic-wind
|
||||||
(button2-callback-procedure))
|
(const #t)
|
||||||
((components=? argument listbox)
|
(lambda ()
|
||||||
(if listbox-allow-multiple?
|
(match exit-reason
|
||||||
(let* ((entries (listbox-selection listbox))
|
('exit-component
|
||||||
(items (map (lambda (entry)
|
(cond
|
||||||
(assoc-ref keys entry))
|
((components=? argument button)
|
||||||
entries)))
|
(button-callback-procedure))
|
||||||
(listbox-callback-procedure items))
|
((and button2
|
||||||
(let* ((entry (current-listbox-entry listbox))
|
(components=? argument button2))
|
||||||
(item (assoc-ref keys entry)))
|
(button2-callback-procedure))
|
||||||
(listbox-callback-procedure item))))))
|
((components=? argument listbox)
|
||||||
((exit-hotkey)
|
(if listbox-allow-multiple?
|
||||||
(let* ((entry (current-listbox-entry listbox))
|
(let* ((entries (listbox-selection listbox))
|
||||||
(item (assoc-ref keys entry)))
|
(items (map (lambda (entry)
|
||||||
(hotkey-callback-procedure argument item)))))
|
(assoc-ref keys entry))
|
||||||
(lambda ()
|
entries)))
|
||||||
(destroy-form-and-pop form))))))
|
(listbox-callback-procedure items))
|
||||||
|
(let* ((entry (current-listbox-entry listbox))
|
||||||
|
(item (assoc-ref keys entry)))
|
||||||
|
(listbox-callback-procedure item))))))
|
||||||
|
('exit-fd-ready
|
||||||
|
(let* ((choice argument)
|
||||||
|
(item (if listbox-allow-multiple?
|
||||||
|
(map choice->item choice)
|
||||||
|
(choice->item choice))))
|
||||||
|
(client-callback-procedure item)))
|
||||||
|
('exit-hotkey
|
||||||
|
(let* ((entry (current-listbox-entry listbox))
|
||||||
|
(item (assoc-ref keys entry)))
|
||||||
|
(hotkey-callback-procedure argument item)))))
|
||||||
|
(lambda ()
|
||||||
|
(destroy-form-and-pop form)))))))
|
||||||
|
|
||||||
(define* (run-scale-page #:key
|
(define* (run-scale-page #:key
|
||||||
title
|
title
|
||||||
|
@ -498,48 +653,65 @@ ITEMS when 'Ok' is pressed."
|
||||||
items
|
items
|
||||||
selection))
|
selection))
|
||||||
|
|
||||||
(let* ((checkbox-tree
|
(let loop ()
|
||||||
(make-checkboxtree -1 -1
|
(let* ((checkbox-tree
|
||||||
checkbox-tree-height
|
(make-checkboxtree -1 -1
|
||||||
FLAG-BORDER))
|
checkbox-tree-height
|
||||||
(info-textbox
|
FLAG-BORDER))
|
||||||
(make-reflowed-textbox -1 -1 info-text
|
(info-textbox
|
||||||
info-textbox-width
|
(make-reflowed-textbox -1 -1 info-text
|
||||||
#:flags FLAG-BORDER))
|
info-textbox-width
|
||||||
(ok-button (make-button -1 -1 (G_ "OK")))
|
#:flags FLAG-BORDER))
|
||||||
(exit-button (make-button -1 -1 (G_ "Exit")))
|
(ok-button (make-button -1 -1 (G_ "OK")))
|
||||||
(grid (vertically-stacked-grid
|
(exit-button (make-button -1 -1 (G_ "Exit")))
|
||||||
GRID-ELEMENT-COMPONENT info-textbox
|
(grid (vertically-stacked-grid
|
||||||
GRID-ELEMENT-COMPONENT checkbox-tree
|
GRID-ELEMENT-COMPONENT info-textbox
|
||||||
GRID-ELEMENT-SUBGRID
|
GRID-ELEMENT-COMPONENT checkbox-tree
|
||||||
(horizontal-stacked-grid
|
GRID-ELEMENT-SUBGRID
|
||||||
GRID-ELEMENT-COMPONENT ok-button
|
(horizontal-stacked-grid
|
||||||
GRID-ELEMENT-COMPONENT exit-button)))
|
GRID-ELEMENT-COMPONENT ok-button
|
||||||
(keys (fill-checkbox-tree checkbox-tree items))
|
GRID-ELEMENT-COMPONENT exit-button)))
|
||||||
(form (make-form #:flags FLAG-NOF12)))
|
(keys (fill-checkbox-tree checkbox-tree items))
|
||||||
|
(form (make-form #:flags FLAG-NOF12)))
|
||||||
|
|
||||||
(add-form-to-grid grid form #t)
|
(define (choice->item str)
|
||||||
(make-wrapped-grid-window grid title)
|
;; Return the item that corresponds to STR.
|
||||||
|
(match (find (match-lambda
|
||||||
|
((key . item)
|
||||||
|
(string=? str (item->text item))))
|
||||||
|
keys)
|
||||||
|
((key . item) item)
|
||||||
|
(#f (raise (condition (&installer-step-abort))))))
|
||||||
|
|
||||||
(receive (exit-reason argument)
|
(add-form-to-grid grid form #t)
|
||||||
(run-form form)
|
(make-wrapped-grid-window grid title)
|
||||||
(dynamic-wind
|
|
||||||
(const #t)
|
(receive (exit-reason argument)
|
||||||
(lambda ()
|
(run-form-with-clients form
|
||||||
(case exit-reason
|
`(checkbox-list (title ,title)
|
||||||
((exit-component)
|
(text ,info-text)
|
||||||
(cond
|
(items
|
||||||
((components=? argument ok-button)
|
,(map item->text items))))
|
||||||
(let* ((entries (current-checkbox-selection checkbox-tree))
|
(dynamic-wind
|
||||||
(current-items (map (lambda (entry)
|
(const #t)
|
||||||
(assoc-ref keys entry))
|
|
||||||
entries)))
|
(lambda ()
|
||||||
(ok-button-callback-procedure)
|
(match exit-reason
|
||||||
current-items))
|
('exit-component
|
||||||
((components=? argument exit-button)
|
(cond
|
||||||
(exit-button-callback-procedure))))))
|
((components=? argument ok-button)
|
||||||
(lambda ()
|
(let* ((entries (current-checkbox-selection checkbox-tree))
|
||||||
(destroy-form-and-pop form))))))
|
(current-items (map (lambda (entry)
|
||||||
|
(assoc-ref keys entry))
|
||||||
|
entries)))
|
||||||
|
(ok-button-callback-procedure)
|
||||||
|
current-items))
|
||||||
|
((components=? argument exit-button)
|
||||||
|
(exit-button-callback-procedure))))
|
||||||
|
('exit-fd-ready
|
||||||
|
(map choice->item argument))))
|
||||||
|
(lambda ()
|
||||||
|
(destroy-form-and-pop form)))))))
|
||||||
|
|
||||||
(define* (edit-file file #:key locale)
|
(define* (edit-file file #:key locale)
|
||||||
"Spawn an editor for FILE."
|
"Spawn an editor for FILE."
|
||||||
|
@ -547,9 +719,8 @@ ITEMS when 'Ok' is pressed."
|
||||||
(newt-suspend)
|
(newt-suspend)
|
||||||
;; Use Nano because it syntax-highlights Scheme by default.
|
;; Use Nano because it syntax-highlights Scheme by default.
|
||||||
;; TODO: Add a menu to choose an editor?
|
;; TODO: Add a menu to choose an editor?
|
||||||
(run-shell-command (string-append "/run/current-system/profile/bin/nano "
|
(run-command (list "/run/current-system/profile/bin/nano" file)
|
||||||
file)
|
#:locale locale)
|
||||||
#:locale locale)
|
|
||||||
(newt-resume))
|
(newt-resume))
|
||||||
|
|
||||||
(define* (run-file-textbox-page #:key
|
(define* (run-file-textbox-page #:key
|
||||||
|
@ -606,13 +777,16 @@ ITEMS when 'Ok' is pressed."
|
||||||
text))
|
text))
|
||||||
|
|
||||||
(receive (exit-reason argument)
|
(receive (exit-reason argument)
|
||||||
(run-form form)
|
(run-form-with-clients form
|
||||||
|
`(file-dialog (title ,title)
|
||||||
|
(text ,info-text)
|
||||||
|
(file ,file)))
|
||||||
(define result
|
(define result
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
(const #t)
|
(const #t)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(case exit-reason
|
(match exit-reason
|
||||||
((exit-component)
|
('exit-component
|
||||||
(cond
|
(cond
|
||||||
((components=? argument ok-button)
|
((components=? argument ok-button)
|
||||||
(ok-button-callback-procedure))
|
(ok-button-callback-procedure))
|
||||||
|
@ -621,10 +795,15 @@ ITEMS when 'Ok' is pressed."
|
||||||
(exit-button-callback-procedure))
|
(exit-button-callback-procedure))
|
||||||
((and edit-button?
|
((and edit-button?
|
||||||
(components=? argument edit-button))
|
(components=? argument edit-button))
|
||||||
(edit-file file))))))
|
(edit-file file))))
|
||||||
|
('exit-fd-ready
|
||||||
|
(if argument
|
||||||
|
(ok-button-callback-procedure)
|
||||||
|
(exit-button-callback-procedure)))))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(destroy-form-and-pop form))))
|
(destroy-form-and-pop form))))
|
||||||
|
|
||||||
(if (components=? argument edit-button)
|
(if (and (eq? exit-reason 'exit-component)
|
||||||
|
(components=? argument edit-button))
|
||||||
(loop) ;recurse in tail position
|
(loop) ;recurse in tail position
|
||||||
result)))))
|
result)))))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -682,6 +682,12 @@ by pressing the Exit button.~%~%")))
|
||||||
#:allow-delete? #t
|
#:allow-delete? #t
|
||||||
#:button-text (G_ "OK")
|
#:button-text (G_ "OK")
|
||||||
#:button-callback-procedure button-ok-action
|
#:button-callback-procedure button-ok-action
|
||||||
|
|
||||||
|
;; Consider client replies equivalent to hitting the "OK" button.
|
||||||
|
;; XXX: In practice this means that clients cannot do anything but
|
||||||
|
;; approve the predefined list of partitions.
|
||||||
|
#:client-callback-procedure (lambda (_) (button-ok-action))
|
||||||
|
|
||||||
#:button2-text (G_ "Exit")
|
#:button2-text (G_ "Exit")
|
||||||
#:button2-callback-procedure button-exit-action
|
#:button2-callback-procedure button-exit-action
|
||||||
#:listbox-callback-procedure listbox-action
|
#:listbox-callback-procedure listbox-action
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -23,6 +23,7 @@
|
||||||
#:use-module ((gnu installer steps) #:select (&installer-step-abort))
|
#:use-module ((gnu installer steps) #:select (&installer-step-abort))
|
||||||
#:use-module (gnu installer newt page)
|
#:use-module (gnu installer newt page)
|
||||||
#:use-module (gnu installer newt utils)
|
#:use-module (gnu installer newt utils)
|
||||||
|
#:use-module (gnu installer utils)
|
||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
#:use-module (newt)
|
#:use-module (newt)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -115,6 +116,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
|
||||||
GRID-ELEMENT-SUBGRID entry-grid
|
GRID-ELEMENT-SUBGRID entry-grid
|
||||||
GRID-ELEMENT-SUBGRID button-grid)
|
GRID-ELEMENT-SUBGRID button-grid)
|
||||||
title)
|
title)
|
||||||
|
|
||||||
(let ((error-page
|
(let ((error-page
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(run-error-page (G_ "Empty inputs are not allowed.")
|
(run-error-page (G_ "Empty inputs are not allowed.")
|
||||||
|
@ -230,33 +232,45 @@ administrator (\"root\").")
|
||||||
(set-current-component form ok-button))
|
(set-current-component form ok-button))
|
||||||
|
|
||||||
(receive (exit-reason argument)
|
(receive (exit-reason argument)
|
||||||
(run-form form)
|
(run-form-with-clients form '(add-users))
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
(const #t)
|
(const #t)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(when (eq? exit-reason 'exit-component)
|
(match exit-reason
|
||||||
(cond
|
('exit-component
|
||||||
((components=? argument add-button)
|
(cond
|
||||||
(run (cons (run-user-add-page) users)))
|
((components=? argument add-button)
|
||||||
((components=? argument del-button)
|
(run (cons (run-user-add-page) users)))
|
||||||
(let* ((current-user-key (current-listbox-entry listbox))
|
((components=? argument del-button)
|
||||||
(users
|
(let* ((current-user-key (current-listbox-entry listbox))
|
||||||
(map (cut assoc-ref <> 'user)
|
(users
|
||||||
(remove (lambda (element)
|
(map (cut assoc-ref <> 'user)
|
||||||
(equal? (assoc-ref element 'key)
|
(remove (lambda (element)
|
||||||
current-user-key))
|
(equal? (assoc-ref element 'key)
|
||||||
listbox-elements))))
|
current-user-key))
|
||||||
(run users)))
|
listbox-elements))))
|
||||||
((components=? argument ok-button)
|
(run users)))
|
||||||
(when (null? users)
|
((components=? argument ok-button)
|
||||||
(run-error-page (G_ "Please create at least one user.")
|
(when (null? users)
|
||||||
(G_ "No user"))
|
(run-error-page (G_ "Please create at least one user.")
|
||||||
(run users))
|
(G_ "No user"))
|
||||||
(reverse users))
|
(run users))
|
||||||
((components=? argument exit-button)
|
(reverse users))
|
||||||
(raise
|
((components=? argument exit-button)
|
||||||
(condition
|
(raise
|
||||||
(&installer-step-abort)))))))
|
(condition
|
||||||
|
(&installer-step-abort))))))
|
||||||
|
('exit-fd-ready
|
||||||
|
;; Read the complete user list at once.
|
||||||
|
(match argument
|
||||||
|
((('user ('name names) ('real-name real-names)
|
||||||
|
('home-directory homes) ('password passwords))
|
||||||
|
..1)
|
||||||
|
(map (lambda (name real-name home password)
|
||||||
|
(user (name name) (real-name real-name)
|
||||||
|
(home-directory home)
|
||||||
|
(password password)))
|
||||||
|
names real-names homes passwords))))))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(destroy-form-and-pop form))))))
|
(destroy-form-and-pop form))))))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
|
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -11,16 +12,20 @@
|
||||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; You should have received a copy of the GNU General Public License
|
;;; You should have received a copy of the GNU General Public License
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (gnu installer newt welcome)
|
(define-module (gnu installer newt welcome)
|
||||||
|
#:use-module (gnu installer steps)
|
||||||
#:use-module (gnu installer utils)
|
#:use-module (gnu installer utils)
|
||||||
|
#:use-module (gnu installer newt page)
|
||||||
#:use-module (gnu installer newt utils)
|
#:use-module (gnu installer newt utils)
|
||||||
#:use-module (guix build syscalls)
|
#:use-module (guix build syscalls)
|
||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-34)
|
||||||
|
#:use-module (srfi srfi-35)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 receive)
|
#:use-module (ice-9 receive)
|
||||||
#:use-module (newt)
|
#:use-module (newt)
|
||||||
|
@ -66,24 +71,43 @@ we want this page to occupy all the screen space available."
|
||||||
GRID-ELEMENT-COMPONENT options-listbox))
|
GRID-ELEMENT-COMPONENT options-listbox))
|
||||||
(form (make-form)))
|
(form (make-form)))
|
||||||
|
|
||||||
|
(define (choice->item str)
|
||||||
|
;; Return the item that corresponds to STR.
|
||||||
|
(match (find (match-lambda
|
||||||
|
((key . item)
|
||||||
|
(string=? str (listbox-item->text item))))
|
||||||
|
keys)
|
||||||
|
((key . item) item)
|
||||||
|
(#f (raise (condition (&installer-step-abort))))))
|
||||||
|
|
||||||
(set-textbox-text logo-textbox (read-all logo))
|
(set-textbox-text logo-textbox (read-all logo))
|
||||||
|
|
||||||
(add-form-to-grid grid form #t)
|
(add-form-to-grid grid form #t)
|
||||||
(make-wrapped-grid-window grid title)
|
(make-wrapped-grid-window grid title)
|
||||||
|
|
||||||
(receive (exit-reason argument)
|
(receive (exit-reason argument)
|
||||||
(run-form form)
|
(run-form-with-clients form
|
||||||
|
`(menu (title ,title)
|
||||||
|
(text ,info-text)
|
||||||
|
(items
|
||||||
|
,(map listbox-item->text
|
||||||
|
listbox-items))))
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
(const #t)
|
(const #t)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(when (eq? exit-reason 'exit-component)
|
(match exit-reason
|
||||||
(cond
|
('exit-component
|
||||||
((components=? argument options-listbox)
|
(let* ((entry (current-listbox-entry options-listbox))
|
||||||
(let* ((entry (current-listbox-entry options-listbox))
|
(item (assoc-ref keys entry)))
|
||||||
(item (assoc-ref keys entry)))
|
(match item
|
||||||
(match item
|
((text . proc)
|
||||||
((text . proc)
|
(proc)))))
|
||||||
(proc))))))))
|
('exit-fd-ready
|
||||||
|
(let* ((choice argument)
|
||||||
|
(item (choice->item choice)))
|
||||||
|
(match item
|
||||||
|
((text . proc)
|
||||||
|
(proc)))))))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(destroy-form-and-pop form))))))
|
(destroy-form-and-pop form))))))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
|
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -19,6 +20,7 @@
|
||||||
(define-module (gnu installer steps)
|
(define-module (gnu installer steps)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
|
#:use-module (gnu installer utils)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 pretty-print)
|
#:use-module (ice-9 pretty-print)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
@ -185,13 +187,18 @@ return the accumalated result so far."
|
||||||
#:todo-steps rest-steps
|
#:todo-steps rest-steps
|
||||||
#:done-steps (append done-steps (list step))))))))
|
#:done-steps (append done-steps (list step))))))))
|
||||||
|
|
||||||
(call-with-prompt 'raise-above
|
;; Ignore SIGPIPE so that we don't die if a client closes the connection
|
||||||
(lambda ()
|
;; prematurely.
|
||||||
(run '()
|
(sigaction SIGPIPE SIG_IGN)
|
||||||
#:todo-steps steps
|
|
||||||
#:done-steps '()))
|
(with-server-socket
|
||||||
(lambda (k condition)
|
(call-with-prompt 'raise-above
|
||||||
(raise condition))))
|
(lambda ()
|
||||||
|
(run '()
|
||||||
|
#:todo-steps steps
|
||||||
|
#:done-steps '()))
|
||||||
|
(lambda (k condition)
|
||||||
|
(raise condition)))))
|
||||||
|
|
||||||
(define (find-step-by-id steps id)
|
(define (find-step-by-id steps id)
|
||||||
"Find and return the step in STEPS whose id is equal to ID."
|
"Find and return the step in STEPS whose id is equal to ID."
|
||||||
|
@ -249,3 +256,7 @@ found in RESULTS."
|
||||||
(pretty-print part port)))
|
(pretty-print part port)))
|
||||||
configuration)
|
configuration)
|
||||||
(flush-output-port port))))
|
(flush-output-port port))))
|
||||||
|
|
||||||
|
;;; Local Variables:
|
||||||
|
;;; eval: (put 'with-server-socket 'scheme-indent-function 0)
|
||||||
|
;;; End:
|
||||||
|
|
|
@ -0,0 +1,340 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.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 installer tests)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-34)
|
||||||
|
#:use-module (srfi srfi-35)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 regex)
|
||||||
|
#:use-module (ice-9 pretty-print)
|
||||||
|
#:export (&pattern-not-matched
|
||||||
|
pattern-not-matched?
|
||||||
|
|
||||||
|
%installer-socket-file
|
||||||
|
open-installer-socket
|
||||||
|
|
||||||
|
converse
|
||||||
|
conversation-log-port
|
||||||
|
|
||||||
|
choose-locale+keyboard
|
||||||
|
enter-host-name+passwords
|
||||||
|
choose-services
|
||||||
|
choose-partitioning
|
||||||
|
conclude-installation
|
||||||
|
|
||||||
|
edit-configuration-file))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; This module provides tools to test the guided "graphical" installer in a
|
||||||
|
;;; non-interactive fashion. The core of it is 'converse': it allows you to
|
||||||
|
;;; state Expect-style dialogues, which happen over the Unix-domain socket the
|
||||||
|
;;; installer listens to. Higher-level procedures such as
|
||||||
|
;;; 'choose-locale+keyboard' are provided to perform specific parts of the
|
||||||
|
;;; dialogue.
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(define %installer-socket-file
|
||||||
|
;; Socket the installer listens to.
|
||||||
|
"/var/guix/installer-socket")
|
||||||
|
|
||||||
|
(define* (open-installer-socket #:optional (file %installer-socket-file))
|
||||||
|
"Return a socket connected to the installer."
|
||||||
|
(let ((sock (socket AF_UNIX SOCK_STREAM 0)))
|
||||||
|
(connect sock AF_UNIX file)
|
||||||
|
sock))
|
||||||
|
|
||||||
|
(define-condition-type &pattern-not-matched &error
|
||||||
|
pattern-not-matched?
|
||||||
|
(pattern pattern-not-matched-pattern)
|
||||||
|
(sexp pattern-not-matched-sexp))
|
||||||
|
|
||||||
|
(define (pattern-error pattern sexp)
|
||||||
|
(raise (condition
|
||||||
|
(&pattern-not-matched
|
||||||
|
(pattern pattern) (sexp sexp)))))
|
||||||
|
|
||||||
|
(define conversation-log-port
|
||||||
|
;; Port where debugging info is logged
|
||||||
|
(make-parameter (current-error-port)))
|
||||||
|
|
||||||
|
(define (converse-debug pattern)
|
||||||
|
(format (conversation-log-port)
|
||||||
|
"conversation expecting pattern ~s~%"
|
||||||
|
pattern))
|
||||||
|
|
||||||
|
(define-syntax converse
|
||||||
|
(lambda (s)
|
||||||
|
"Convert over PORT: read sexps from there, match them against each
|
||||||
|
PATTERN, and send the corresponding REPLY. Raise to '&pattern-not-matched'
|
||||||
|
when one of the PATTERNs is not matched."
|
||||||
|
|
||||||
|
;; XXX: Strings that appear in PATTERNs must be in the language the
|
||||||
|
;; installer is running in. In the future, we should add support to allow
|
||||||
|
;; writing English strings in PATTERNs and have the pattern matcher
|
||||||
|
;; automatically translate them.
|
||||||
|
|
||||||
|
;; Here we emulate 'pmatch' syntax on top of 'match'. This is ridiculous
|
||||||
|
;; but that's because 'pmatch' compares objects with 'eq?', making it
|
||||||
|
;; pretty useless, and it doesn't support ellipses and such.
|
||||||
|
|
||||||
|
(define (quote-pattern s)
|
||||||
|
;; Rewrite the pattern S from pmatch style (a ,b) to match style like
|
||||||
|
;; ('a b).
|
||||||
|
(with-ellipsis :::
|
||||||
|
(syntax-case s (unquote _ ...)
|
||||||
|
((unquote id) #'id)
|
||||||
|
(_ #'_)
|
||||||
|
(... #'...)
|
||||||
|
(id
|
||||||
|
(identifier? #'id)
|
||||||
|
#''id)
|
||||||
|
((lst :::) (map quote-pattern #'(lst :::)))
|
||||||
|
(pattern #'pattern))))
|
||||||
|
|
||||||
|
(define (match-pattern s)
|
||||||
|
;; Match one pattern without a guard.
|
||||||
|
(syntax-case s ()
|
||||||
|
((port (pattern reply) continuation)
|
||||||
|
(with-syntax ((pattern (quote-pattern #'pattern)))
|
||||||
|
#'(let ((pat 'pattern))
|
||||||
|
(converse-debug pat)
|
||||||
|
(match (read port)
|
||||||
|
(pattern
|
||||||
|
(let ((data (call-with-values (lambda () reply)
|
||||||
|
list)))
|
||||||
|
(for-each (lambda (obj)
|
||||||
|
(write obj port)
|
||||||
|
(newline port))
|
||||||
|
data)
|
||||||
|
(force-output port)
|
||||||
|
(continuation port)))
|
||||||
|
(sexp
|
||||||
|
(pattern-error pat sexp))))))))
|
||||||
|
|
||||||
|
(syntax-case s ()
|
||||||
|
((_ port (pattern reply) rest ...)
|
||||||
|
(match-pattern #'(port (pattern reply)
|
||||||
|
(lambda (port)
|
||||||
|
(converse port rest ...)))))
|
||||||
|
((_ port (pattern guard reply) rest ...)
|
||||||
|
#`(let ((skip? (not guard))
|
||||||
|
(next (lambda (p)
|
||||||
|
(converse p rest ...))))
|
||||||
|
(if skip?
|
||||||
|
(next port)
|
||||||
|
#,(match-pattern #'(port (pattern reply) next)))))
|
||||||
|
((_ port)
|
||||||
|
#t))))
|
||||||
|
|
||||||
|
(define* (choose-locale+keyboard port
|
||||||
|
#:key
|
||||||
|
(language "English")
|
||||||
|
(location "Hong Kong")
|
||||||
|
(timezone '("Europe" "Zagreb"))
|
||||||
|
(keyboard
|
||||||
|
'("English (US)"
|
||||||
|
"English (intl., with AltGr dead keys)")))
|
||||||
|
"Converse over PORT with the guided installer to choose the specified
|
||||||
|
LANGUAGE, LOCATION, TIMEZONE, and KEYBOARD."
|
||||||
|
(converse port
|
||||||
|
((list-selection (title "Locale language")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
language)
|
||||||
|
((list-selection (title "Locale location")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
location)
|
||||||
|
((menu (title "GNU Guix install")
|
||||||
|
(text _)
|
||||||
|
(items (,guided _ ...))) ;"Guided graphical installation"
|
||||||
|
guided)
|
||||||
|
((list-selection (title "Timezone")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
(first timezone))
|
||||||
|
((list-selection (title "Timezone")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
(second timezone))
|
||||||
|
((list-selection (title "Layout")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
(first keyboard))
|
||||||
|
((list-selection (title "Variant")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
(second keyboard))))
|
||||||
|
|
||||||
|
(define* (enter-host-name+passwords port
|
||||||
|
#:key
|
||||||
|
(host-name "guix")
|
||||||
|
(root-password "foo")
|
||||||
|
(users '(("alice" "pass1")
|
||||||
|
("bob" "pass2")
|
||||||
|
("charlie" "pass3"))))
|
||||||
|
"Converse over PORT with the guided installer to choose HOST-NAME,
|
||||||
|
ROOT-PASSWORD, and USERS."
|
||||||
|
(converse port
|
||||||
|
((input (title "Hostname") (text _) (default _))
|
||||||
|
host-name)
|
||||||
|
((input (title "System administrator password") (text _) (default _))
|
||||||
|
root-password)
|
||||||
|
((input (title "Password confirmation required") (text _) (default _))
|
||||||
|
root-password)
|
||||||
|
((add-users)
|
||||||
|
(match users
|
||||||
|
(((names passwords) ...)
|
||||||
|
(map (lambda (name password)
|
||||||
|
`(user (name ,name) (real-name ,(string-titlecase name))
|
||||||
|
(home-directory ,(string-append "/home/" name))
|
||||||
|
(password ,password)))
|
||||||
|
names passwords))))))
|
||||||
|
|
||||||
|
(define* (choose-services port
|
||||||
|
#:key
|
||||||
|
(desktop-environments '("GNOME"))
|
||||||
|
(choose-network-service?
|
||||||
|
(lambda (service)
|
||||||
|
(or (string-contains service "SSH")
|
||||||
|
(string-contains service "NSS"))))
|
||||||
|
(choose-network-management-tool?
|
||||||
|
(lambda (service)
|
||||||
|
(string-contains service "DHCP"))))
|
||||||
|
"Converse over PORT to choose networking services."
|
||||||
|
(converse port
|
||||||
|
((checkbox-list (title "Desktop environment") (text _)
|
||||||
|
(items _))
|
||||||
|
desktop-environments)
|
||||||
|
((checkbox-list (title "Network service") (text _)
|
||||||
|
(items ,services))
|
||||||
|
(filter choose-network-service? services))
|
||||||
|
|
||||||
|
;; The "Network management" dialog shows up only when no desktop
|
||||||
|
;; environments have been selected, hence the guard.
|
||||||
|
((list-selection (title "Network management")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items ,services))
|
||||||
|
(null? desktop-environments)
|
||||||
|
(find choose-network-management-tool? services))))
|
||||||
|
|
||||||
|
(define (edit-configuration-file file)
|
||||||
|
"Edit FILE, an operating system configuration file generated by the
|
||||||
|
installer, by adding a marionette service such that the installed OS is
|
||||||
|
instrumented for further testing."
|
||||||
|
(define (read-expressions port)
|
||||||
|
(let loop ((result '()))
|
||||||
|
(match (read port)
|
||||||
|
((? eof-object?)
|
||||||
|
(reverse result))
|
||||||
|
(exp
|
||||||
|
(loop (cons exp result))))))
|
||||||
|
|
||||||
|
(define (edit exp)
|
||||||
|
(match exp
|
||||||
|
(('operating-system _ ...)
|
||||||
|
`(marionette-operating-system ,exp
|
||||||
|
#:imported-modules
|
||||||
|
'((gnu services herd)
|
||||||
|
(guix build utils)
|
||||||
|
(guix combinators))))
|
||||||
|
(_
|
||||||
|
exp)))
|
||||||
|
|
||||||
|
(let ((content (call-with-input-file file read-expressions)))
|
||||||
|
(call-with-output-file file
|
||||||
|
(lambda (port)
|
||||||
|
(format port "\
|
||||||
|
;; Operating system configuration edited for automated testing.~%~%")
|
||||||
|
|
||||||
|
(pretty-print '(use-modules (gnu tests)) port)
|
||||||
|
(for-each (lambda (exp)
|
||||||
|
(pretty-print (edit exp) port)
|
||||||
|
(newline port))
|
||||||
|
content)))
|
||||||
|
|
||||||
|
#t))
|
||||||
|
|
||||||
|
(define* (choose-partitioning port
|
||||||
|
#:key
|
||||||
|
(encrypted? #t)
|
||||||
|
(passphrase "thepassphrase")
|
||||||
|
(edit-configuration-file
|
||||||
|
edit-configuration-file))
|
||||||
|
"Converse over PORT to choose the partitioning method. When ENCRYPTED? is
|
||||||
|
true, choose full-disk encryption with PASSPHRASE as the LUKS passphrase.
|
||||||
|
This conversation goes past the final dialog box that shows the configuration
|
||||||
|
file, actually starting the installation process."
|
||||||
|
(converse port
|
||||||
|
((list-selection (title "Partitioning method")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items (,not-encrypted ,encrypted _ ...)))
|
||||||
|
(if encrypted?
|
||||||
|
encrypted
|
||||||
|
not-encrypted))
|
||||||
|
((list-selection (title "Disk") (multiple-choices? #f)
|
||||||
|
(items (,disk _ ...)))
|
||||||
|
disk)
|
||||||
|
|
||||||
|
;; The "Partition table" dialog pops up only if there's not already a
|
||||||
|
;; partition table.
|
||||||
|
((list-selection (title "Partition table")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items _))
|
||||||
|
"gpt")
|
||||||
|
((list-selection (title "Partition scheme")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items (,one-partition _ ...)))
|
||||||
|
one-partition)
|
||||||
|
((list-selection (title "Guided partitioning")
|
||||||
|
(multiple-choices? #f)
|
||||||
|
(items (,disk _ ...)))
|
||||||
|
disk)
|
||||||
|
((input (title "Password required")
|
||||||
|
(text _) (default #f))
|
||||||
|
encrypted? ;only when ENCRYPTED?
|
||||||
|
passphrase)
|
||||||
|
((input (title "Password confirmation required")
|
||||||
|
(text _) (default #f))
|
||||||
|
encrypted?
|
||||||
|
passphrase)
|
||||||
|
((confirmation (title "Format disk?") (text _))
|
||||||
|
#t)
|
||||||
|
((info (title "Preparing partitions") _ ...)
|
||||||
|
(values)) ;nothing to return
|
||||||
|
((file-dialog (title "Configuration file")
|
||||||
|
(text _)
|
||||||
|
(file ,configuration-file))
|
||||||
|
(edit-configuration-file configuration-file))))
|
||||||
|
|
||||||
|
(define (conclude-installation port)
|
||||||
|
"Conclude the installation by checking over PORT that we get the final
|
||||||
|
messages once the 'guix system init' process has completed."
|
||||||
|
(converse port
|
||||||
|
((pause) ;"Press Enter to continue."
|
||||||
|
#t)
|
||||||
|
((installation-complete) ;congratulations!
|
||||||
|
(values))))
|
||||||
|
|
||||||
|
;;; Local Variables:
|
||||||
|
;;; eval: (put 'converse 'scheme-indent-function 1)
|
||||||
|
;;; eval: (put 'with-ellipsis 'scheme-indent-function 1)
|
||||||
|
;;; End:
|
|
@ -21,7 +21,9 @@
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-34)
|
#:use-module (srfi srfi-34)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 rdelim)
|
#:use-module (ice-9 rdelim)
|
||||||
#:use-module (ice-9 regex)
|
#:use-module (ice-9 regex)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
|
@ -30,10 +32,15 @@
|
||||||
read-all
|
read-all
|
||||||
nearest-exact-integer
|
nearest-exact-integer
|
||||||
read-percentage
|
read-percentage
|
||||||
run-shell-command
|
run-command
|
||||||
|
|
||||||
syslog-port
|
syslog-port
|
||||||
syslog))
|
syslog
|
||||||
|
|
||||||
|
with-server-socket
|
||||||
|
current-server-socket
|
||||||
|
current-clients
|
||||||
|
send-to-clients))
|
||||||
|
|
||||||
(define* (read-lines #:optional (port (current-input-port)))
|
(define* (read-lines #:optional (port (current-input-port)))
|
||||||
"Read lines from PORT and return them as a list."
|
"Read lines from PORT and return them as a list."
|
||||||
|
@ -61,44 +68,48 @@ number. If no percentage is found, return #f"
|
||||||
(and result
|
(and result
|
||||||
(string->number (match:substring result 1)))))
|
(string->number (match:substring result 1)))))
|
||||||
|
|
||||||
(define* (run-shell-command command #:key locale)
|
(define* (run-command command #:key locale)
|
||||||
"Run COMMAND, a string, with Bash, and in the given LOCALE. Return true if
|
"Run COMMAND, a list of strings, in the given LOCALE. Return true if
|
||||||
COMMAND exited successfully, #f otherwise."
|
COMMAND exited successfully, #f otherwise."
|
||||||
|
(define env (environ))
|
||||||
|
|
||||||
(define (pause)
|
(define (pause)
|
||||||
(format #t (G_ "Press Enter to continue.~%"))
|
(format #t (G_ "Press Enter to continue.~%"))
|
||||||
(read-line (current-input-port)))
|
(send-to-clients '(pause))
|
||||||
|
(environ env) ;restore environment variables
|
||||||
|
(match (select (cons (current-input-port) (current-clients))
|
||||||
|
'() '())
|
||||||
|
(((port _ ...) _ _)
|
||||||
|
(read-line port))))
|
||||||
|
|
||||||
(call-with-temporary-output-file
|
(setenv "PATH" "/run/current-system/profile/bin")
|
||||||
(lambda (file port)
|
|
||||||
(when locale
|
|
||||||
(let ((supported? (false-if-exception
|
|
||||||
(setlocale LC_ALL locale))))
|
|
||||||
;; If LOCALE is not supported, then set LANGUAGE, which might at
|
|
||||||
;; least give us translated messages.
|
|
||||||
(if supported?
|
|
||||||
(format port "export LC_ALL=\"~a\"~%" locale)
|
|
||||||
(format port "export LANGUAGE=\"~a\"~%"
|
|
||||||
(string-take locale
|
|
||||||
(string-index locale #\_))))))
|
|
||||||
|
|
||||||
(format port "exec ~a~%" command)
|
(when locale
|
||||||
(close port)
|
(let ((supported? (false-if-exception
|
||||||
|
(setlocale LC_ALL locale))))
|
||||||
|
;; If LOCALE is not supported, then set LANGUAGE, which might at
|
||||||
|
;; least give us translated messages.
|
||||||
|
(if supported?
|
||||||
|
(setenv "LC_ALL" locale)
|
||||||
|
(setenv "LANGUAGE"
|
||||||
|
(string-take locale
|
||||||
|
(string-index locale #\_))))))
|
||||||
|
|
||||||
(guard (c ((invoke-error? c)
|
(guard (c ((invoke-error? c)
|
||||||
(newline)
|
(newline)
|
||||||
(format (current-error-port)
|
(format (current-error-port)
|
||||||
(G_ "Command failed with exit code ~a.~%")
|
(G_ "Command failed with exit code ~a.~%")
|
||||||
(invoke-error-exit-status c))
|
(invoke-error-exit-status c))
|
||||||
(syslog "command ~s failed with exit code ~a"
|
(syslog "command ~s failed with exit code ~a"
|
||||||
command (invoke-error-exit-status c))
|
command (invoke-error-exit-status c))
|
||||||
(pause)
|
(pause)
|
||||||
#f))
|
#f))
|
||||||
(syslog "running command ~s~%" command)
|
(syslog "running command ~s~%" command)
|
||||||
(invoke "bash" "--init-file" file)
|
(apply invoke command)
|
||||||
(syslog "command ~s succeeded~%" command)
|
(syslog "command ~s succeeded~%" command)
|
||||||
(newline)
|
(newline)
|
||||||
(pause)
|
(pause)
|
||||||
#t))))
|
#t))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
@ -134,3 +145,76 @@ COMMAND exited successfully, #f otherwise."
|
||||||
(with-syntax ((fmt (string-append "installer[~d]: "
|
(with-syntax ((fmt (string-append "installer[~d]: "
|
||||||
(syntax->datum #'fmt))))
|
(syntax->datum #'fmt))))
|
||||||
#'(format (syslog-port) fmt (getpid) args ...))))))
|
#'(format (syslog-port) fmt (getpid) args ...))))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Client protocol.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define %client-socket-file
|
||||||
|
;; Unix-domain socket where the installer accepts connections.
|
||||||
|
"/var/guix/installer-socket")
|
||||||
|
|
||||||
|
(define current-server-socket
|
||||||
|
;; Socket on which the installer is currently accepting connections, or #f.
|
||||||
|
(make-parameter #f))
|
||||||
|
|
||||||
|
(define current-clients
|
||||||
|
;; List of currently connected clients.
|
||||||
|
(make-parameter '()))
|
||||||
|
|
||||||
|
(define* (open-server-socket
|
||||||
|
#:optional (socket-file %client-socket-file))
|
||||||
|
"Open SOCKET-FILE as a Unix-domain socket to accept incoming connections and
|
||||||
|
return it."
|
||||||
|
(mkdir-p (dirname socket-file))
|
||||||
|
(when (file-exists? socket-file)
|
||||||
|
(delete-file socket-file))
|
||||||
|
(let ((sock (socket AF_UNIX SOCK_STREAM 0)))
|
||||||
|
(bind sock AF_UNIX socket-file)
|
||||||
|
(listen sock 0)
|
||||||
|
sock))
|
||||||
|
|
||||||
|
(define (call-with-server-socket thunk)
|
||||||
|
(if (current-server-socket)
|
||||||
|
(thunk)
|
||||||
|
(let ((socket (open-server-socket)))
|
||||||
|
(dynamic-wind
|
||||||
|
(const #t)
|
||||||
|
(lambda ()
|
||||||
|
(parameterize ((current-server-socket socket))
|
||||||
|
(thunk)))
|
||||||
|
(lambda ()
|
||||||
|
(close-port socket))))))
|
||||||
|
|
||||||
|
(define-syntax-rule (with-server-socket exp ...)
|
||||||
|
"Evaluate EXP with 'current-server-socket' parameterized to a currently
|
||||||
|
accepting socket."
|
||||||
|
(call-with-server-socket (lambda () exp ...)))
|
||||||
|
|
||||||
|
(define* (send-to-clients exp)
|
||||||
|
"Send EXP to all the current clients."
|
||||||
|
(define remainder
|
||||||
|
(fold (lambda (client remainder)
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(write exp client)
|
||||||
|
(newline client)
|
||||||
|
(force-output client)
|
||||||
|
(cons client remainder))
|
||||||
|
(lambda args
|
||||||
|
;; We might get EPIPE if the client disconnects; when that
|
||||||
|
;; happens, remove CLIENT from the set of available clients.
|
||||||
|
(let ((errno (system-error-errno args)))
|
||||||
|
(if (memv errno (list EPIPE ECONNRESET ECONNABORTED))
|
||||||
|
(begin
|
||||||
|
(syslog "removing client ~s due to ~s while replying~%"
|
||||||
|
(fileno client) (strerror errno))
|
||||||
|
(false-if-exception (close-port client))
|
||||||
|
remainder)
|
||||||
|
(cons client remainder))))))
|
||||||
|
'()
|
||||||
|
(current-clients)))
|
||||||
|
|
||||||
|
(current-clients (reverse remainder))
|
||||||
|
exp)
|
||||||
|
|
13
gnu/local.mk
13
gnu/local.mk
|
@ -656,6 +656,7 @@ INSTALLER_MODULES = \
|
||||||
%D%/installer/record.scm \
|
%D%/installer/record.scm \
|
||||||
%D%/installer/services.scm \
|
%D%/installer/services.scm \
|
||||||
%D%/installer/steps.scm \
|
%D%/installer/steps.scm \
|
||||||
|
%D%/installer/tests.scm \
|
||||||
%D%/installer/timezone.scm \
|
%D%/installer/timezone.scm \
|
||||||
%D%/installer/user.scm \
|
%D%/installer/user.scm \
|
||||||
%D%/installer/utils.scm \
|
%D%/installer/utils.scm \
|
||||||
|
@ -713,10 +714,11 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/aegisub-boost68.patch \
|
%D%/packages/patches/aegisub-boost68.patch \
|
||||||
%D%/packages/patches/agg-am_c_prototype.patch \
|
%D%/packages/patches/agg-am_c_prototype.patch \
|
||||||
%D%/packages/patches/akonadi-paths.patch \
|
%D%/packages/patches/akonadi-paths.patch \
|
||||||
%D%/packages/patches/akonadi-Revert-Make-installation-properly-relocatabl.patch \
|
%D%/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch \
|
||||||
%D%/packages/patches/akonadi-timestamps.patch \
|
%D%/packages/patches/akonadi-timestamps.patch \
|
||||||
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
|
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
|
||||||
%D%/packages/patches/amule-crypto-6.patch \
|
%D%/packages/patches/amule-crypto-6.patch \
|
||||||
|
%D%/packages/patches/anki-mpv-args.patch \
|
||||||
%D%/packages/patches/antiword-CVE-2014-8123.patch \
|
%D%/packages/patches/antiword-CVE-2014-8123.patch \
|
||||||
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
||||||
%D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \
|
%D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \
|
||||||
|
@ -801,7 +803,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
|
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
|
||||||
%D%/packages/patches/crawl-upgrade-saves.patch \
|
%D%/packages/patches/crawl-upgrade-saves.patch \
|
||||||
%D%/packages/patches/crda-optional-gcrypt.patch \
|
%D%/packages/patches/crda-optional-gcrypt.patch \
|
||||||
%D%/packages/patches/csvkit-fix-tests.patch \
|
|
||||||
%D%/packages/patches/clucene-contribs-lib.patch \
|
%D%/packages/patches/clucene-contribs-lib.patch \
|
||||||
%D%/packages/patches/cube-nocheck.patch \
|
%D%/packages/patches/cube-nocheck.patch \
|
||||||
%D%/packages/patches/curl-use-ssl-cert-env.patch \
|
%D%/packages/patches/curl-use-ssl-cert-env.patch \
|
||||||
|
@ -988,6 +989,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||||
%D%/packages/patches/guile-2.2-default-utf8.patch \
|
%D%/packages/patches/guile-2.2-default-utf8.patch \
|
||||||
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
|
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
|
||||||
|
%D%/packages/patches/guile-3.0-crash.patch \
|
||||||
%D%/packages/patches/guile-default-utf8.patch \
|
%D%/packages/patches/guile-default-utf8.patch \
|
||||||
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
||||||
%D%/packages/patches/guile-finalization-crash.patch \
|
%D%/packages/patches/guile-finalization-crash.patch \
|
||||||
|
@ -1123,7 +1125,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
|
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
|
||||||
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
|
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
|
||||||
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
|
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
|
||||||
%D%/packages/patches/libseccomp-open-aarch64.patch \
|
|
||||||
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
|
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
|
||||||
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
|
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
|
||||||
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
|
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
|
||||||
|
@ -1265,7 +1266,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/sdl-pango-api_additions.patch \
|
%D%/packages/patches/sdl-pango-api_additions.patch \
|
||||||
%D%/packages/patches/sdl-pango-blit_overflow.patch \
|
%D%/packages/patches/sdl-pango-blit_overflow.patch \
|
||||||
%D%/packages/patches/sdl-pango-fillrect_crash.patch \
|
%D%/packages/patches/sdl-pango-fillrect_crash.patch \
|
||||||
%D%/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch \
|
%D%/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch \
|
||||||
%D%/packages/patches/sdl-pango-matrix_declarations.patch \
|
%D%/packages/patches/sdl-pango-matrix_declarations.patch \
|
||||||
%D%/packages/patches/sdl-pango-sans-serif.patch \
|
%D%/packages/patches/sdl-pango-sans-serif.patch \
|
||||||
%D%/packages/patches/patchutils-test-perms.patch \
|
%D%/packages/patches/patchutils-test-perms.patch \
|
||||||
|
@ -1357,6 +1358,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/qemu-CVE-2020-1711.patch \
|
%D%/packages/patches/qemu-CVE-2020-1711.patch \
|
||||||
%D%/packages/patches/qemu-CVE-2020-7039.patch \
|
%D%/packages/patches/qemu-CVE-2020-7039.patch \
|
||||||
%D%/packages/patches/qemu-CVE-2020-7211.patch \
|
%D%/packages/patches/qemu-CVE-2020-7211.patch \
|
||||||
|
%D%/packages/patches/qemu-CVE-2020-8608.patch \
|
||||||
%D%/packages/patches/qemu-fix-documentation-build-failure.patch \
|
%D%/packages/patches/qemu-fix-documentation-build-failure.patch \
|
||||||
%D%/packages/patches/qrcodegen-cpp-make-install.patch \
|
%D%/packages/patches/qrcodegen-cpp-make-install.patch \
|
||||||
%D%/packages/patches/qt4-ldflags.patch \
|
%D%/packages/patches/qt4-ldflags.patch \
|
||||||
|
@ -1415,8 +1417,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
|
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
|
||||||
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
|
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
|
||||||
%D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
|
%D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
|
||||||
%D%/packages/patches/spice-fix-test-armhf.patch \
|
|
||||||
%D%/packages/patches/steghide-fixes.patch \
|
%D%/packages/patches/steghide-fixes.patch \
|
||||||
|
%D%/packages/patches/suitesparse-mongoose-cmake.patch \
|
||||||
%D%/packages/patches/superlu-dist-awpm-grid.patch \
|
%D%/packages/patches/superlu-dist-awpm-grid.patch \
|
||||||
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
%D%/packages/patches/superlu-dist-scotchmetis.patch \
|
||||||
%D%/packages/patches/supertux-unbundle-squirrel.patch \
|
%D%/packages/patches/supertux-unbundle-squirrel.patch \
|
||||||
|
@ -1497,7 +1499,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/wicd-wpa2-ttls.patch \
|
%D%/packages/patches/wicd-wpa2-ttls.patch \
|
||||||
%D%/packages/patches/wmctrl-64-fix.patch \
|
%D%/packages/patches/wmctrl-64-fix.patch \
|
||||||
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
|
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
|
||||||
%D%/packages/patches/woff2-libbrotli.patch \
|
|
||||||
%D%/packages/patches/wordnet-CVE-2008-2149.patch \
|
%D%/packages/patches/wordnet-CVE-2008-2149.patch \
|
||||||
%D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \
|
%D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \
|
||||||
%D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \
|
%D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \
|
||||||
|
|
|
@ -211,10 +211,10 @@ and provides a \"top-like\" mode (monitoring).")
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
|
|
||||||
;; This is the Guile we use as a cross-compiler...
|
;; This is the Guile we use as a cross-compiler...
|
||||||
("guile" ,guile-2.2)))
|
("guile" ,guile-2.2.7)))
|
||||||
(inputs
|
(inputs
|
||||||
;; ... and this is the one that appears in shebangs when cross-compiling.
|
;; ... and this is the one that appears in shebangs when cross-compiling.
|
||||||
`(("guile" ,guile-2.2) ;for <https://bugs.gnu.org/37757>
|
`(("guile" ,guile-2.2.7) ;for <https://bugs.gnu.org/37757>
|
||||||
|
|
||||||
;; The 'shepherd' command uses Readline when used interactively. It's
|
;; The 'shepherd' command uses Readline when used interactively. It's
|
||||||
;; an unusual use case though, so we don't propagate it.
|
;; an unusual use case though, so we don't propagate it.
|
||||||
|
|
|
@ -111,7 +111,7 @@ has strong support for macros.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("python" ,python-wrapper)
|
`(("python" ,python-wrapper)
|
||||||
("xmlto" ,xmlto)))
|
("xmlto" ,xmlto)))
|
||||||
(home-page "http://yasm.tortall.net/")
|
(home-page "https://yasm.tortall.net/")
|
||||||
(synopsis "Rewrite of the NASM assembler")
|
(synopsis "Rewrite of the NASM assembler")
|
||||||
(description
|
(description
|
||||||
"Yasm is a complete rewrite of the NASM assembler.
|
"Yasm is a complete rewrite of the NASM assembler.
|
||||||
|
|
|
@ -45,26 +45,14 @@
|
||||||
;;; 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 packages audio)
|
(define-module (gnu packages audio)
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix git-download)
|
|
||||||
#:use-module (guix utils)
|
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (guix build-system waf)
|
|
||||||
#:use-module (guix build-system trivial)
|
|
||||||
#:use-module (guix build-system cmake)
|
|
||||||
#:use-module (guix build-system meson)
|
|
||||||
#:use-module (guix build-system python)
|
|
||||||
#:use-module (guix build-system glib-or-gtk)
|
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages algebra)
|
#:use-module (gnu packages algebra)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages avahi)
|
#:use-module (gnu packages avahi)
|
||||||
#:use-module (gnu packages boost)
|
|
||||||
#:use-module (gnu packages backup)
|
#:use-module (gnu packages backup)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
|
#:use-module (gnu packages boost)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
|
@ -78,25 +66,29 @@
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gtk)
|
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
#:use-module (gnu packages gnunet) ; libmicrohttpd
|
#:use-module (gnu packages gnunet) ; libmicrohttpd
|
||||||
#:use-module (gnu packages gperf)
|
#:use-module (gnu packages gperf)
|
||||||
|
#:use-module (gnu packages gtk)
|
||||||
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages icu4c)
|
#:use-module (gnu packages icu4c)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
|
#:use-module (gnu packages libbsd)
|
||||||
|
#:use-module (gnu packages libusb)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages llvm)
|
||||||
|
#:use-module (gnu packages maths)
|
||||||
|
#:use-module (gnu packages mp3) ;taglib
|
||||||
|
#:use-module (gnu packages multiprecision)
|
||||||
|
#:use-module (gnu packages music)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages onc-rpc)
|
#:use-module (gnu packages onc-rpc)
|
||||||
#:use-module (gnu packages qt)
|
|
||||||
#:use-module (gnu packages libbsd)
|
|
||||||
#:use-module (gnu packages linux)
|
|
||||||
#:use-module (gnu packages libusb)
|
|
||||||
#:use-module (gnu packages llvm)
|
|
||||||
#:use-module (gnu packages mp3) ;taglib
|
|
||||||
#: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 pulseaudio) ;libsndfile, libsamplerate
|
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages rdf)
|
#:use-module (gnu packages rdf)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages sdl)
|
#:use-module (gnu packages sdl)
|
||||||
|
@ -110,9 +102,18 @@
|
||||||
#:use-module (gnu packages xiph)
|
#:use-module (gnu packages xiph)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (gnu packages multiprecision)
|
#:use-module (guix build-system glib-or-gtk)
|
||||||
#:use-module (gnu packages music)
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (guix build-system meson)
|
||||||
|
#:use-module (guix build-system python)
|
||||||
|
#:use-module (guix build-system trivial)
|
||||||
|
#:use-module (guix build-system waf)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix utils)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26))
|
#:use-module (srfi srfi-26))
|
||||||
|
|
||||||
|
@ -3923,11 +3924,22 @@ as is the case with audio plugins.")
|
||||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure) ; no configure script
|
||||||
(add-before 'build 'set-CC-variable-and-show-features
|
(add-before 'build 'set-CC-variable-and-show-features
|
||||||
(lambda _
|
(lambda _
|
||||||
(setenv "CC" "gcc")
|
(setenv "CC" "gcc")
|
||||||
(invoke "make" "features")))
|
(invoke "make" "features")))
|
||||||
(delete 'configure))))
|
(add-after 'install 'make-carla-executable
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(chmod (string-append out "/share/carla/carla") #o555)
|
||||||
|
#t)))
|
||||||
|
(add-after 'install 'wrap-executables
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(wrap-script (string-append out "/bin/carla")
|
||||||
|
`("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
|
||||||
|
#t))))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("alsa-lib" ,alsa-lib)
|
`(("alsa-lib" ,alsa-lib)
|
||||||
("ffmpeg" ,ffmpeg)
|
("ffmpeg" ,ffmpeg)
|
||||||
|
@ -3945,7 +3957,10 @@ as is the case with audio plugins.")
|
||||||
("python-wrapper" ,python-wrapper)
|
("python-wrapper" ,python-wrapper)
|
||||||
("libx11" ,libx11)
|
("libx11" ,libx11)
|
||||||
("qtbase" ,qtbase)
|
("qtbase" ,qtbase)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)
|
||||||
|
|
||||||
|
;; For WRAP-SCRIPT above.
|
||||||
|
("guile" ,guile-2.2)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(home-page "https://kx.studio/Applications:Carla")
|
(home-page "https://kx.studio/Applications:Carla")
|
||||||
|
|
|
@ -4026,14 +4026,14 @@ position-specific scores within R and Bioconductor.")
|
||||||
(define-public r-atacseqqc
|
(define-public r-atacseqqc
|
||||||
(package
|
(package
|
||||||
(name "r-atacseqqc")
|
(name "r-atacseqqc")
|
||||||
(version "1.10.2")
|
(version "1.10.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (bioconductor-uri "ATACseqQC" version))
|
(uri (bioconductor-uri "ATACseqQC" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0dzrizacy3br8fiy1vnsl5zf242lg1hqv9dyv5ayqh2n480is57f"))))
|
"18zf90iksglbs13cwr4jjwsv332a19lf4bpdmy69jz8bpwrklv22"))))
|
||||||
(properties `((upstream-name . "ATACseqQC")))
|
(properties `((upstream-name . "ATACseqQC")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
|
@ -4055,6 +4055,8 @@ position-specific scores within R and Bioconductor.")
|
||||||
("r-rsamtools" ,r-rsamtools)
|
("r-rsamtools" ,r-rsamtools)
|
||||||
("r-rtracklayer" ,r-rtracklayer)
|
("r-rtracklayer" ,r-rtracklayer)
|
||||||
("r-s4vectors" ,r-s4vectors)))
|
("r-s4vectors" ,r-s4vectors)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr)))
|
||||||
(home-page "https://bioconductor.org/packages/ATACseqQC/")
|
(home-page "https://bioconductor.org/packages/ATACseqQC/")
|
||||||
(synopsis "ATAC-seq quality control")
|
(synopsis "ATAC-seq quality control")
|
||||||
(description
|
(description
|
||||||
|
@ -4315,14 +4317,14 @@ visualization with image data.")
|
||||||
(define-public r-yamss
|
(define-public r-yamss
|
||||||
(package
|
(package
|
||||||
(name "r-yamss")
|
(name "r-yamss")
|
||||||
(version "1.12.0")
|
(version "1.12.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (bioconductor-uri "yamss" version))
|
(uri (bioconductor-uri "yamss" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1n49a2vg1667wycrjww29xfafngllvpb5nq5wy6pgn0akva91nky"))))
|
"12jr7hbrwhb1gfjadj1024hv80ra22miy46dn40nmsrbklkfn3rw"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-biocgenerics" ,r-biocgenerics)
|
`(("r-biocgenerics" ,r-biocgenerics)
|
||||||
|
@ -4693,14 +4695,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
|
||||||
(define-public r-xcms
|
(define-public r-xcms
|
||||||
(package
|
(package
|
||||||
(name "r-xcms")
|
(name "r-xcms")
|
||||||
(version "3.8.1")
|
(version "3.8.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (bioconductor-uri "xcms" version))
|
(uri (bioconductor-uri "xcms" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"18iglvlvlxrdwn2apdvihj9jxmx0kwm5z37rml67xcj9sfdi3bjb"))))
|
"0bfl56v3l6k31i11l09nx1yqfjy6z5yragm6k83z4w0mpgk18y7g"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-biobase" ,r-biobase)
|
`(("r-biobase" ,r-biobase)
|
||||||
|
@ -5943,14 +5945,14 @@ delete entire rows with missing data.")
|
||||||
(define-public r-depecher
|
(define-public r-depecher
|
||||||
(package
|
(package
|
||||||
(name "r-depecher")
|
(name "r-depecher")
|
||||||
(version "1.2.1")
|
(version "1.2.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (bioconductor-uri "DepecheR" version))
|
(uri (bioconductor-uri "DepecheR" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"08ja6ayvbax9m3x9w3xzi72z97miiha2nbsild1gp77n6sgn5i35"))))
|
"199j2kw0xnw7y4v1gakm2jgyc7zzlj8xh0570f2yjq55gp1kggbm"))))
|
||||||
(properties `((upstream-name . "DepecheR")))
|
(properties `((upstream-name . "DepecheR")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
|
@ -5970,6 +5972,8 @@ delete entire rows with missing data.")
|
||||||
("r-reshape2" ,r-reshape2)
|
("r-reshape2" ,r-reshape2)
|
||||||
("r-robustbase" ,r-robustbase)
|
("r-robustbase" ,r-robustbase)
|
||||||
("r-viridis" ,r-viridis)))
|
("r-viridis" ,r-viridis)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr)))
|
||||||
(home-page "https://bioconductor.org/packages/DepecheR/")
|
(home-page "https://bioconductor.org/packages/DepecheR/")
|
||||||
(synopsis "Identify traits of clusters in high-dimensional entities")
|
(synopsis "Identify traits of clusters in high-dimensional entities")
|
||||||
(description
|
(description
|
||||||
|
@ -7290,14 +7294,14 @@ access.")
|
||||||
(define-public r-multiassayexperiment
|
(define-public r-multiassayexperiment
|
||||||
(package
|
(package
|
||||||
(name "r-multiassayexperiment")
|
(name "r-multiassayexperiment")
|
||||||
(version "1.12.3")
|
(version "1.12.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (bioconductor-uri "MultiAssayExperiment" version))
|
(uri (bioconductor-uri "MultiAssayExperiment" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1vf6l88j3n6109j6sd08wfqxqpj2k20dvr8ll9zl1szsn18b4gny"))))
|
"01cnp00y5bk551c8gqgqp5468dvccg72i0rvh5cxgbx1c42zy6xn"))))
|
||||||
(properties
|
(properties
|
||||||
`((upstream-name . "MultiAssayExperiment")))
|
`((upstream-name . "MultiAssayExperiment")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
|
|
|
@ -6536,31 +6536,56 @@ Cuffdiff or Ballgown programs.")
|
||||||
(define-public taxtastic
|
(define-public taxtastic
|
||||||
(package
|
(package
|
||||||
(name "taxtastic")
|
(name "taxtastic")
|
||||||
(version "0.8.5")
|
(version "0.8.11")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
;; The Pypi version does not include tests.
|
||||||
(uri (pypi-uri "taxtastic" version))
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/fhcrc/taxtastic.git")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03pysw79lsrvz4lwzis88j15067ffqbi4cid5pqhrlxmd6bh8rrk"))))
|
"1sv8mkg64jn7zdwf1jj71c16686yrwxk0apb1l8sjszy9p166g0p"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:python ,python-2
|
`(#:phases
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'prepare-directory
|
||||||
|
(lambda _
|
||||||
|
;; The git checkout must be writable for tests.
|
||||||
|
(for-each make-file-writable (find-files "."))
|
||||||
|
;; This test fails, but the error is not caught by the test
|
||||||
|
;; framework, so the tests fail...
|
||||||
|
(substitute* "tests/test_taxit.py"
|
||||||
|
(("self.cmd_fails\\(''\\)")
|
||||||
|
"self.cmd_fails('nothing')"))
|
||||||
|
;; This version file is expected to be created with git describe.
|
||||||
|
(mkdir-p "taxtastic/data")
|
||||||
|
(with-output-to-file "taxtastic/data/ver"
|
||||||
|
(lambda () (display ,version)))
|
||||||
|
#t))
|
||||||
|
(add-after 'unpack 'python37-compatibility
|
||||||
|
(lambda _
|
||||||
|
(substitute* "taxtastic/utils.py"
|
||||||
|
(("import csv") "import csv, errno")
|
||||||
|
(("os.errno") "errno"))
|
||||||
|
#t))
|
||||||
(replace 'check
|
(replace 'check
|
||||||
(lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t)))))
|
;; Note, this fails to run with "-v" as it tries to write to a
|
||||||
|
;; closed output stream.
|
||||||
|
(lambda _ (invoke "python" "-m" "unittest") #t)))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-sqlalchemy" ,python2-sqlalchemy)
|
`(("python-sqlalchemy" ,python-sqlalchemy)
|
||||||
("python-decorator" ,python2-decorator)
|
("python-decorator" ,python-decorator)
|
||||||
("python-biopython" ,python2-biopython)
|
("python-biopython" ,python-biopython)
|
||||||
("python-pandas" ,python2-pandas)
|
("python-pandas" ,python-pandas)
|
||||||
("python-psycopg2" ,python2-psycopg2)
|
("python-psycopg2" ,python-psycopg2)
|
||||||
("python-fastalite" ,python2-fastalite)
|
("python-fastalite" ,python-fastalite)
|
||||||
("python-pyyaml" ,python2-pyyaml)
|
("python-pyyaml" ,python-pyyaml)
|
||||||
("python-six" ,python2-six)
|
("python-six" ,python-six)
|
||||||
("python-jinja2" ,python2-jinja2)
|
("python-jinja2" ,python-jinja2)
|
||||||
("python-dendropy" ,python2-dendropy)))
|
("python-dendropy" ,python-dendropy)))
|
||||||
(home-page "https://github.com/fhcrc/taxtastic")
|
(home-page "https://github.com/fhcrc/taxtastic")
|
||||||
(synopsis "Tools for taxonomic naming and annotation")
|
(synopsis "Tools for taxonomic naming and annotation")
|
||||||
(description
|
(description
|
||||||
|
@ -9091,6 +9116,8 @@ number detection tools.")
|
||||||
("r-rtracklayer" ,r-rtracklayer)
|
("r-rtracklayer" ,r-rtracklayer)
|
||||||
("r-s4vectors" ,r-s4vectors)
|
("r-s4vectors" ,r-s4vectors)
|
||||||
("r-zlibbioc" ,r-zlibbioc)))
|
("r-zlibbioc" ,r-zlibbioc)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||||
(inputs
|
(inputs
|
||||||
`(("zlib" ,zlib)))
|
`(("zlib" ,zlib)))
|
||||||
(home-page "https://github.com/al2na/methylKit")
|
(home-page "https://github.com/al2na/methylKit")
|
||||||
|
@ -9360,6 +9387,8 @@ analysis.")
|
||||||
("r-ggplot2" ,r-ggplot2)
|
("r-ggplot2" ,r-ggplot2)
|
||||||
("r-lattice" ,r-lattice)
|
("r-lattice" ,r-lattice)
|
||||||
("r-limma" ,r-limma)))
|
("r-limma" ,r-limma)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||||
(home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
|
(home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
|
||||||
(synopsis "Variance stabilization and calibration for microarray data")
|
(synopsis "Variance stabilization and calibration for microarray data")
|
||||||
(description
|
(description
|
||||||
|
@ -13238,18 +13267,14 @@ in RNA-seq data.")
|
||||||
(define-public python-scanpy
|
(define-public python-scanpy
|
||||||
(package
|
(package
|
||||||
(name "python-scanpy")
|
(name "python-scanpy")
|
||||||
(version "1.4")
|
(version "1.4.5.1")
|
||||||
;; Fetch from git because the pypi tarball does not include tests.
|
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method url-fetch)
|
||||||
(uri (git-reference
|
(uri (pypi-uri "scanpy" version))
|
||||||
(url "https://github.com/theislab/scanpy.git")
|
|
||||||
(commit version)))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0zn6x6c0cnm1a20i6isigwb51g3pr9zpjk8r1minjqnxi5yc9pm4"))))
|
"14kh1ji70xxhmri5q8sgcibsidhr6f221wxrcw8a5xvibj5da17j"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -13276,18 +13301,23 @@ in RNA-seq data.")
|
||||||
("python-igraph" ,python-igraph)
|
("python-igraph" ,python-igraph)
|
||||||
("python-joblib" ,python-joblib)
|
("python-joblib" ,python-joblib)
|
||||||
("python-louvain" ,python-louvain)
|
("python-louvain" ,python-louvain)
|
||||||
|
("python-legacy-api-wrap" ,python-legacy-api-wrap)
|
||||||
("python-matplotlib" ,python-matplotlib)
|
("python-matplotlib" ,python-matplotlib)
|
||||||
("python-natsort" ,python-natsort)
|
("python-natsort" ,python-natsort)
|
||||||
("python-networkx" ,python-networkx)
|
("python-networkx" ,python-networkx)
|
||||||
("python-numba" ,python-numba)
|
("python-numba" ,python-numba)
|
||||||
|
("python-packaging" ,python-packaging)
|
||||||
("python-pandas" ,python-pandas)
|
("python-pandas" ,python-pandas)
|
||||||
|
("python-patsy" ,python-patsy)
|
||||||
("python-scikit-learn" ,python-scikit-learn)
|
("python-scikit-learn" ,python-scikit-learn)
|
||||||
("python-scipy" ,python-scipy)
|
("python-scipy" ,python-scipy)
|
||||||
("python-seaborn" ,python-seaborn)
|
("python-seaborn" ,python-seaborn)
|
||||||
("python-statsmodels" ,python-statsmodels)
|
("python-statsmodels" ,python-statsmodels)
|
||||||
("python-tables" ,python-tables)))
|
("python-tables" ,python-tables)
|
||||||
|
("python-umap-learn" ,python-umap-learn)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-pytest" ,python-pytest)))
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
(home-page "https://github.com/theislab/scanpy")
|
(home-page "https://github.com/theislab/scanpy")
|
||||||
(synopsis "Single-Cell Analysis in Python.")
|
(synopsis "Single-Cell Analysis in Python.")
|
||||||
(description "Scanpy is a scalable toolkit for analyzing single-cell gene
|
(description "Scanpy is a scalable toolkit for analyzing single-cell gene
|
||||||
|
@ -13953,7 +13983,7 @@ datasets.")
|
||||||
(define-public ngless
|
(define-public ngless
|
||||||
(package
|
(package
|
||||||
(name "ngless")
|
(name "ngless")
|
||||||
(version "1.0.1")
|
(version "1.1.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -13963,7 +13993,7 @@ datasets.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06ygv8q2zjqsnrid1302yrlhhvb8ik48nq6n0higk3i1mdc8r0dg"))))
|
"1wim8wpqyff080dfcazynrmjwqas38m24m0v350w245mmhrapdma"))))
|
||||||
(build-system haskell-build-system)
|
(build-system haskell-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:haddock? #f ; The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
|
`(#:haddock? #f ; The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
|
||||||
|
@ -14423,6 +14453,8 @@ repeated areas between contigs.")
|
||||||
(base32
|
(base32
|
||||||
"0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
|
"0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-joblib" ,python-joblib)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-click" ,python-click)
|
`(("python-click" ,python-click)
|
||||||
("python-cython" ,python-cython)
|
("python-cython" ,python-cython)
|
||||||
|
|
|
@ -30,30 +30,29 @@
|
||||||
(define-public ccache
|
(define-public ccache
|
||||||
(package
|
(package
|
||||||
(name "ccache")
|
(name "ccache")
|
||||||
(version "3.6")
|
(version "3.7.7")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
|
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
|
||||||
version ".tar.xz"))
|
version "/ccache-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "07wv75xdcxpdkfsz9h5ffrm8pjbvr1dh6wnb02nyzz18cdbjkcd6"))))
|
(base32 "1kcqii3hr1008gj6jgfsjibwh2ryhsplc9z99m18xwa2zvbddhdp"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("perl" ,perl) ; for test/run
|
(native-inputs `(("perl" ,perl) ; for test/run
|
||||||
("which" ,(@ (gnu packages base) which))))
|
("which" ,(@ (gnu packages base) which))))
|
||||||
(inputs `(("zlib" ,zlib)))
|
(inputs `(("zlib" ,zlib)))
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases (modify-phases %standard-phases
|
'(#:phases (modify-phases %standard-phases
|
||||||
(add-before 'check 'setup-tests
|
(add-before 'check 'setup-tests
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* '("unittest/test_hashutil.c" "test/suites/base.bash")
|
(substitute* '("unittest/test_hashutil.c" "test/suites/base.bash")
|
||||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||||
#t)))))
|
#t)))))
|
||||||
(home-page "https://ccache.samba.org/")
|
(home-page "https://ccache.dev/")
|
||||||
(synopsis "Compiler cache")
|
(synopsis "Compiler cache")
|
||||||
(description
|
(description
|
||||||
"Ccache is a compiler cache. It speeds up recompilation by caching
|
"Ccache is a compiler cache. It speeds up recompilation by caching
|
||||||
previous compilations and detecting when the same compilation is being done
|
previous compilations and detecting when the same compilation is being done
|
||||||
again. Supported languages are C, C++, Objective-C, Objective-C++, and
|
again. Supported languages are C, C++, Objective-C and Objective-C++.")
|
||||||
Fortran 77.")
|
|
||||||
(license gpl3+)))
|
(license gpl3+)))
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -147,7 +148,7 @@ powerful plugin architecture.")
|
||||||
`(#:python ,python-2
|
`(#:python ,python-2
|
||||||
;; No test suite
|
;; No test suite
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
(home-page "http://dirac.cnrs-orleans.fr/DomainFinder")
|
(home-page "http://dirac.cnrs-orleans.fr/DomainFinder.html")
|
||||||
(synopsis "Analysis of dynamical domains in proteins")
|
(synopsis "Analysis of dynamical domains in proteins")
|
||||||
(description "DomainFinder is an interactive program for the determination
|
(description "DomainFinder is an interactive program for the determination
|
||||||
and characterization of dynamical domains in proteins. It can infer dynamical
|
and characterization of dynamical domains in proteins. It can infer dynamical
|
||||||
|
@ -290,7 +291,7 @@ analogy is that InChI is the bar-code for chemistry and chemical structures.")
|
||||||
;; Show documentation as PDF
|
;; Show documentation as PDF
|
||||||
(("PREFERENCES\\['documentation_style'\\] = 'html'")
|
(("PREFERENCES\\['documentation_style'\\] = 'html'")
|
||||||
"PREFERENCES['documentation_style'] = 'pdf'") ))))))
|
"PREFERENCES['documentation_style'] = 'pdf'") ))))))
|
||||||
(home-page "http://dirac.cnrs-orleans.fr/nMOLDYN/")
|
(home-page "http://dirac.cnrs-orleans.fr/nMOLDYN.html")
|
||||||
(synopsis "Analysis software for Molecular Dynamics trajectories")
|
(synopsis "Analysis software for Molecular Dynamics trajectories")
|
||||||
(description "nMOLDYN is an interactive analysis program for Molecular Dynamics
|
(description "nMOLDYN is an interactive analysis program for Molecular Dynamics
|
||||||
simulations. It is especially designed for the computation and decomposition of
|
simulations. It is especially designed for the computation and decomposition of
|
||||||
|
|
|
@ -826,7 +826,9 @@ from forcing GEXP-PROMISE."
|
||||||
|
|
||||||
;; Building Chromium takes ... a very long time. On a single core, a busy
|
;; Building Chromium takes ... a very long time. On a single core, a busy
|
||||||
;; mid-end x86 system may need more than 24 hours to complete the build.
|
;; mid-end x86 system may need more than 24 hours to complete the build.
|
||||||
(properties '((timeout . 144000))) ;40 hours
|
(properties '((timeout . 144000) ;40 hours
|
||||||
|
;; The linking step may take more than an hour on some hardware.
|
||||||
|
(max-silent-time . 7200)))
|
||||||
|
|
||||||
(home-page "https://github.com/Eloston/ungoogled-chromium")
|
(home-page "https://github.com/Eloston/ungoogled-chromium")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
|
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -424,7 +425,8 @@ compatible with bzip2 – both at file format and command line level.")
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
(delete 'configure)) ; no configure script
|
(delete 'configure)) ; no configure script
|
||||||
#:make-flags (list (string-append "PREFIX=" %output))))
|
#:make-flags (list (string-append "PREFIX=" %output))))
|
||||||
(home-page "http://compression.ca/pbzip2/")
|
(home-page (string-append "https://web.archive.org/web/20180412020219/"
|
||||||
|
"http://compression.ca/pbzip2/"))
|
||||||
(synopsis "Parallel bzip2 implementation")
|
(synopsis "Parallel bzip2 implementation")
|
||||||
(description
|
(description
|
||||||
"Pbzip2 is a parallel implementation of the bzip2 block-sorting file
|
"Pbzip2 is a parallel implementation of the bzip2 block-sorting file
|
||||||
|
@ -822,7 +824,7 @@ time for compression ratio.")
|
||||||
("lzo" ,lzo)
|
("lzo" ,lzo)
|
||||||
("xz" ,xz)
|
("xz" ,xz)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
(home-page "http://squashfs.sourceforge.net/")
|
(home-page "https://github.com/plougher/squashfs-tools")
|
||||||
(synopsis "Tools to create and extract squashfs file systems")
|
(synopsis "Tools to create and extract squashfs file systems")
|
||||||
(description
|
(description
|
||||||
"Squashfs is a highly compressed read-only file system for Linux. It uses
|
"Squashfs is a highly compressed read-only file system for Linux. It uses
|
||||||
|
@ -897,49 +899,6 @@ possible and can compress in parallel. This is especially useful for large
|
||||||
tarballs.")
|
tarballs.")
|
||||||
(license license:bsd-2)))
|
(license license:bsd-2)))
|
||||||
|
|
||||||
(define-public brotli
|
|
||||||
(let ((commit "e992cce7a174d6e2b3486616499d26bb0bad6448")
|
|
||||||
(revision "1"))
|
|
||||||
(package
|
|
||||||
(name "brotli")
|
|
||||||
(version (string-append "0.1-" revision "."
|
|
||||||
(string-take commit 7)))
|
|
||||||
(source (origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://github.com/bagder/libbrotli.git")
|
|
||||||
(commit commit)
|
|
||||||
(recursive? #t)))
|
|
||||||
(file-name (string-append name "-" version ".tar.xz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n"))
|
|
||||||
(modules '((guix build utils)))
|
|
||||||
(snippet '(begin
|
|
||||||
;; This is a recursive submodule that is
|
|
||||||
;; unnecessary for this package, so delete it.
|
|
||||||
(delete-file-recursively "brotli/terryfy")
|
|
||||||
#t))))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(native-inputs
|
|
||||||
`(("autoconf" ,autoconf)
|
|
||||||
("automake" ,automake)
|
|
||||||
("libtool" ,libtool)))
|
|
||||||
(arguments
|
|
||||||
`(#:phases (modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'autogen
|
|
||||||
(lambda _
|
|
||||||
(mkdir "m4")
|
|
||||||
(invoke "autoreconf" "-vfi"))))))
|
|
||||||
(home-page "https://github.com/bagder/libbrotli/")
|
|
||||||
(synopsis "Implementation of the Brotli compression algorithm")
|
|
||||||
(description
|
|
||||||
"Brotli is a general-purpose lossless compression algorithm. It is
|
|
||||||
similar in speed to deflate but offers denser compression. This package
|
|
||||||
provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,
|
|
||||||
respectively, based on the reference implementation from Google.")
|
|
||||||
(license license:expat))))
|
|
||||||
|
|
||||||
(define-public bsdiff
|
(define-public bsdiff
|
||||||
(package
|
(package
|
||||||
(name "bsdiff")
|
(name "bsdiff")
|
||||||
|
@ -1888,6 +1847,10 @@ with @code{deflate} but offers more dense compression.
|
||||||
The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
|
The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public brotli
|
||||||
|
;; We used to provide an older version under the name "brotli".
|
||||||
|
(deprecated-package "brotli" google-brotli))
|
||||||
|
|
||||||
(define-public ucl
|
(define-public ucl
|
||||||
(package
|
(package
|
||||||
(name "ucl")
|
(name "ucl")
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
|
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
|
||||||
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
|
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
|
||||||
|
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -353,7 +354,7 @@ assistant.")
|
||||||
(string-append "COQLIB=" (assoc-ref outputs "out")
|
(string-append "COQLIB=" (assoc-ref outputs "out")
|
||||||
"/lib/coq/")
|
"/lib/coq/")
|
||||||
"install"))))))
|
"install"))))))
|
||||||
(home-page "https://math-comp.github.io/math-comp/")
|
(home-page "https://math-comp.github.io/")
|
||||||
(synopsis "Mathematical Components for Coq")
|
(synopsis "Mathematical Components for Coq")
|
||||||
(description "Mathematical Components for Coq has its origins in the formal
|
(description "Mathematical Components for Coq has its origins in the formal
|
||||||
proof of the Four Colour Theorem. Since then it has grown to cover many areas
|
proof of the Four Colour Theorem. Since then it has grown to cover many areas
|
||||||
|
|
|
@ -462,7 +462,7 @@ point and then, after each tween step, plugging back the result.")
|
||||||
;;
|
;;
|
||||||
;; ld: CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
|
;; ld: CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
|
||||||
;; undefined reference to symbol '_ZN7testing4Mock16UnregisterLockedEPNS_8internal25UntypedFunctionMockerBaseE'
|
;; undefined reference to symbol '_ZN7testing4Mock16UnregisterLockedEPNS_8internal25UntypedFunctionMockerBaseE'
|
||||||
;; ld: /gnu/store/bxapb1f1l8frjpbjckk3zdxhmcig3xzk-googletest-1.10.0/lib/libgmock.so:
|
;; ld: /gnu/store/...-googletest-1.10.0/lib/libgmock.so:
|
||||||
;; error adding symbols: DSO missing from command line
|
;; error adding symbols: DSO missing from command line
|
||||||
;; collect2: error: ld returned 1 exit status
|
;; collect2: error: ld returned 1 exit status
|
||||||
"-DCMAKE_EXE_LINKER_FLAGS=-lgtest -lpthread -lgmock")
|
"-DCMAKE_EXE_LINKER_FLAGS=-lgtest -lpthread -lgmock")
|
||||||
|
|
|
@ -977,7 +977,7 @@ supports interactive trees, to enable rich, editable trees in Shiny.")
|
||||||
("r-shiny" ,r-shiny)))
|
("r-shiny" ,r-shiny)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("uglify-js" ,uglify-js)))
|
`(("uglify-js" ,uglify-js)))
|
||||||
(home-page "http://rstudio.github.io/shinydashboard/")
|
(home-page "https://rstudio.github.io/shinydashboard/")
|
||||||
(synopsis "Create dashboards with shiny")
|
(synopsis "Create dashboards with shiny")
|
||||||
(description "This package provides an extension to the Shiny web
|
(description "This package provides an extension to the Shiny web
|
||||||
application framework for R, making it easy to create attractive dashboards.")
|
application framework for R, making it easy to create attractive dashboards.")
|
||||||
|
@ -1028,7 +1028,7 @@ well as file saving is available.")
|
||||||
(properties `((upstream-name . "shinythemes")))
|
(properties `((upstream-name . "shinythemes")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs `(("r-shiny" ,r-shiny)))
|
(propagated-inputs `(("r-shiny" ,r-shiny)))
|
||||||
(home-page "http://rstudio.github.io/shinythemes/")
|
(home-page "https://rstudio.github.io/shinythemes/")
|
||||||
(synopsis "Themes for Shiny")
|
(synopsis "Themes for Shiny")
|
||||||
(description
|
(description
|
||||||
"This package provides themes for use with Shiny. It includes several
|
"This package provides themes for use with Shiny. It includes several
|
||||||
|
@ -2660,14 +2660,14 @@ available in a vignette.")
|
||||||
(define-public r-lava
|
(define-public r-lava
|
||||||
(package
|
(package
|
||||||
(name "r-lava")
|
(name "r-lava")
|
||||||
(version "1.6.6")
|
(version "1.6.7")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "lava" version))
|
(uri (cran-uri "lava" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0nfab5fgnmxh8cplg8rd8cp34fny5j0k5wn4baj51r6ck7fq9g3s"))))
|
"0ffzxbb8pvfh1m6j61az4ga37snyhylq2941fyc76w7w9i2sixv3"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-numderiv" ,r-numderiv)
|
`(("r-numderiv" ,r-numderiv)
|
||||||
|
@ -3165,19 +3165,21 @@ for certain use cases.")
|
||||||
(define-public r-ggrepel
|
(define-public r-ggrepel
|
||||||
(package
|
(package
|
||||||
(name "r-ggrepel")
|
(name "r-ggrepel")
|
||||||
(version "0.8.1")
|
(version "0.8.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "ggrepel" version))
|
(uri (cran-uri "ggrepel" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"10vjrcmx8yknfbx93d9a4y3z8gafri0fhimw6hcq733dmdvkml6m"))))
|
"1qaifn3dazdqbqlii210xhw7yf142iw7g9p2axmmxbz90p0by08d"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-ggplot2" ,r-ggplot2)
|
`(("r-ggplot2" ,r-ggplot2)
|
||||||
("r-rcpp" ,r-rcpp)
|
("r-rcpp" ,r-rcpp)
|
||||||
("r-scales" ,r-scales)))
|
("r-scales" ,r-scales)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||||
(home-page "http://github.com/slowkow/ggrepel")
|
(home-page "http://github.com/slowkow/ggrepel")
|
||||||
(synopsis "Repulsive text and label geometries for ggplot2")
|
(synopsis "Repulsive text and label geometries for ggplot2")
|
||||||
(description
|
(description
|
||||||
|
@ -3634,14 +3636,14 @@ modeling for empirical income distributions.")
|
||||||
(define-public r-vcd
|
(define-public r-vcd
|
||||||
(package
|
(package
|
||||||
(name "r-vcd")
|
(name "r-vcd")
|
||||||
(version "1.4-5")
|
(version "1.4-6")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "vcd" version))
|
(uri (cran-uri "vcd" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0pqf1sdp0d60aqc7721hy2zfcp57902by0i28jqbn683dd50c21a"))))
|
"0rjz49py5l6wnaimw6k8rcyzlvs8cyz5g2xwqj2qis92ly0l103z"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-colorspace" ,r-colorspace)
|
`(("r-colorspace" ,r-colorspace)
|
||||||
|
@ -4422,14 +4424,14 @@ Fisher's method), and Sidak correction.")
|
||||||
(define-public r-quantmod
|
(define-public r-quantmod
|
||||||
(package
|
(package
|
||||||
(name "r-quantmod")
|
(name "r-quantmod")
|
||||||
(version "0.4-15")
|
(version "0.4-16")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "quantmod" version))
|
(uri (cran-uri "quantmod" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0lyzaf5ypk93v6zj9gdghy05cc7cxgn9yasv1apx5r6qsjcfgwky"))))
|
"12l5br8abr1yagxqjnjvqzp79sqsv5vx56cxs37gk73r474f4vc2"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-curl" ,r-curl)
|
`(("r-curl" ,r-curl)
|
||||||
|
@ -4812,6 +4814,8 @@ functions to enforce symmetric scales or add tags to facetted plots.")
|
||||||
("r-seriation" ,r-seriation)
|
("r-seriation" ,r-seriation)
|
||||||
("r-viridis" ,r-viridis)
|
("r-viridis" ,r-viridis)
|
||||||
("r-webshot" ,r-webshot)))
|
("r-webshot" ,r-webshot)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr)))
|
||||||
(home-page "https://cran.r-project.org/package=heatmaply")
|
(home-page "https://cran.r-project.org/package=heatmaply")
|
||||||
(synopsis "Interactive cluster heat maps using plotly")
|
(synopsis "Interactive cluster heat maps using plotly")
|
||||||
(description
|
(description
|
||||||
|
@ -6375,15 +6379,17 @@ other add-on packages.")
|
||||||
(define-public r-insight
|
(define-public r-insight
|
||||||
(package
|
(package
|
||||||
(name "r-insight")
|
(name "r-insight")
|
||||||
(version "0.8.1")
|
(version "0.8.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "insight" version))
|
(uri (cran-uri "insight" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1y889bydmji3pcq2bdf6xl6ikmd45wbwl53ssvsk05b5ahkyxi76"))))
|
"0fjf7dwpv1a7qfbzixppg348z1ksq19kdjm08vcb2am7w0k3plcj"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr)))
|
||||||
(home-page "https://easystats.github.io/insight/")
|
(home-page "https://easystats.github.io/insight/")
|
||||||
(synopsis "Easy access to model information for various model objects")
|
(synopsis "Easy access to model information for various model objects")
|
||||||
(description
|
(description
|
||||||
|
@ -6504,14 +6510,14 @@ functions.")
|
||||||
(define-public r-flextable
|
(define-public r-flextable
|
||||||
(package
|
(package
|
||||||
(name "r-flextable")
|
(name "r-flextable")
|
||||||
(version "0.5.8")
|
(version "0.5.9")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "flextable" version))
|
(uri (cran-uri "flextable" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1x24rz1r5xin122czg85d7nrkwpaabb60p50m3yrd3dh81vfp0hk"))))
|
"1rkz0nhwjy1l8sb0kmna5v492n2ydnk7gydswnmf88r8vfyjczhw"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-base64enc" ,r-base64enc)
|
`(("r-base64enc" ,r-base64enc)
|
||||||
|
@ -7277,6 +7283,8 @@ Processing of very large files is supported.")
|
||||||
("r-mosaicdata" ,r-mosaicdata)
|
("r-mosaicdata" ,r-mosaicdata)
|
||||||
("r-readr" ,r-readr)
|
("r-readr" ,r-readr)
|
||||||
("r-tidyr" ,r-tidyr)))
|
("r-tidyr" ,r-tidyr)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr)))
|
||||||
(home-page "https://github.com/ProjectMOSAIC/mosaic/")
|
(home-page "https://github.com/ProjectMOSAIC/mosaic/")
|
||||||
(synopsis "Mathematics, statistics, and computation teaching utilities")
|
(synopsis "Mathematics, statistics, and computation teaching utilities")
|
||||||
(description
|
(description
|
||||||
|
@ -7590,13 +7598,13 @@ for the reconstruction of gene regulatory networks.")
|
||||||
(define-public r-pscl
|
(define-public r-pscl
|
||||||
(package
|
(package
|
||||||
(name "r-pscl")
|
(name "r-pscl")
|
||||||
(version "1.5.2")
|
(version "1.5.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "pscl" version))
|
(uri (cran-uri "pscl" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1phf3awsfr4ncqfqzin5m1pz0g7y1zhbcm2sz7358ssw914fd7rc"))))
|
(base32 "0vzf5wazs92bhqhqd66v3vwmbfmnh67gb2466g1xxawim649nk05"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-mass" ,r-mass)))
|
`(("r-mass" ,r-mass)))
|
||||||
|
@ -8663,14 +8671,14 @@ back to file after modifications.")
|
||||||
(define-public r-fs
|
(define-public r-fs
|
||||||
(package
|
(package
|
||||||
(name "r-fs")
|
(name "r-fs")
|
||||||
(version "1.3.1")
|
(version "1.3.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "fs" version))
|
(uri (cran-uri "fs" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1g26rgx13dzigp2vrlld6h28q33lwbax97zvwdrq2pc3iz54v4yn"))))
|
"1w30bflx4d7a6f3dn96bf7s7v6aqpvz2yzzxal6qz9jyhb16bxaz"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-rcpp" ,r-rcpp)))
|
`(("r-rcpp" ,r-rcpp)))
|
||||||
|
@ -9183,20 +9191,18 @@ address a bug.")
|
||||||
(define-public r-rcppannoy
|
(define-public r-rcppannoy
|
||||||
(package
|
(package
|
||||||
(name "r-rcppannoy")
|
(name "r-rcppannoy")
|
||||||
(version "0.0.15")
|
(version "0.0.16")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "RcppAnnoy" version))
|
(uri (cran-uri "RcppAnnoy" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1rlw6npwwcp066midvkhnzf0xmmfkkdf6f581j3j1s2naqss3fvl"))))
|
"0bfa35lp6vc4b0h3ymvdx50br233q8vvyjml34ngi81rj0imz3fr"))))
|
||||||
(properties `((upstream-name . "RcppAnnoy")))
|
(properties `((upstream-name . "RcppAnnoy")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-rcpp" ,r-rcpp)))
|
`(("r-rcpp" ,r-rcpp)))
|
||||||
(native-inputs
|
|
||||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
|
||||||
(home-page "https://cran.r-project.org/web/packages/RcppAnnoy/")
|
(home-page "https://cran.r-project.org/web/packages/RcppAnnoy/")
|
||||||
(synopsis "Rcpp bindings for Annoy, a library for Approximate Nearest Neighbors")
|
(synopsis "Rcpp bindings for Annoy, a library for Approximate Nearest Neighbors")
|
||||||
(description
|
(description
|
||||||
|
@ -9528,7 +9534,7 @@ circular variables).")
|
||||||
"0ddf9bw5lhj8vb0ja78jf99i0smq4rgmm842k4a4ygap41vdyn2b"))))
|
"0ddf9bw5lhj8vb0ja78jf99i0smq4rgmm842k4a4ygap41vdyn2b"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs `(("r-subplex" ,r-subplex)))
|
(propagated-inputs `(("r-subplex" ,r-subplex)))
|
||||||
(home-page "http://kingaa.github.io/ouch/")
|
(home-page "https://kingaa.github.io/ouch/")
|
||||||
(synopsis "Ornstein-Uhlenbeck models for phylogenetic comparative hypotheses")
|
(synopsis "Ornstein-Uhlenbeck models for phylogenetic comparative hypotheses")
|
||||||
(description
|
(description
|
||||||
"This package provides tools to fit and compare Ornstein-Uhlenbeck models
|
"This package provides tools to fit and compare Ornstein-Uhlenbeck models
|
||||||
|
@ -10545,14 +10551,14 @@ other manipulations of bitmapped images.")
|
||||||
(define-public r-rapidjsonr
|
(define-public r-rapidjsonr
|
||||||
(package
|
(package
|
||||||
(name "r-rapidjsonr")
|
(name "r-rapidjsonr")
|
||||||
(version "1.1")
|
(version "1.2.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "rapidjsonr" version))
|
(uri (cran-uri "rapidjsonr" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0h4phjjhykbb45rg5b1xn48vqxdcvcngbm0416ds8in7j469wbwd"))))
|
"07zdirhbzmvq3cp4xn8ngk1lgxbbabzays315zxbs3sxrz6lzjb2"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(home-page "https://cran.r-project.org/web/packages/rapidjsonr")
|
(home-page "https://cran.r-project.org/web/packages/rapidjsonr")
|
||||||
(synopsis "JSON parser")
|
(synopsis "JSON parser")
|
||||||
|
@ -11578,7 +11584,7 @@ lasso, adaptive lasso and Ridge regression based on cross-validation.")
|
||||||
(base32
|
(base32
|
||||||
"1i1nhdapyijvm58zx38q28zk01ndmi6smjivxk5xs2cx9b6v2av9"))))
|
"1i1nhdapyijvm58zx38q28zk01ndmi6smjivxk5xs2cx9b6v2av9"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(home-page "http://www.stat.umn.edu/geyer/mcmc/")
|
(home-page "https://www.stat.umn.edu/geyer/mcmc/")
|
||||||
(synopsis "Markov chain Monte Carlo")
|
(synopsis "Markov chain Monte Carlo")
|
||||||
(description
|
(description
|
||||||
"This package simulates continuous distributions of random vectors using
|
"This package simulates continuous distributions of random vectors using
|
||||||
|
@ -13599,13 +13605,13 @@ SELECT or UPDATE queries to an end-point.")
|
||||||
(define-public r-bookdown
|
(define-public r-bookdown
|
||||||
(package
|
(package
|
||||||
(name "r-bookdown")
|
(name "r-bookdown")
|
||||||
(version "0.17")
|
(version "0.18")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "bookdown" version))
|
(uri (cran-uri "bookdown" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"10b4gnd6z3w13pysqqan43blxcbk7bgbzc7wr83b23ag1lh2n40j"))))
|
"1my6g16phx21v5cvfqcnjibh3zcv02xkix347aafd6a7r3hnxpq5"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-htmltools" ,r-htmltools)
|
`(("r-htmltools" ,r-htmltools)
|
||||||
|
@ -14313,7 +14319,7 @@ layer by layer.")
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-randomforest" ,r-randomforest)))
|
`(("r-randomforest" ,r-randomforest)))
|
||||||
(home-page "http://ligarto.org/rdiaz/Software/Software.html")
|
(home-page "https://www.ligarto.org/rdiaz/software/software")
|
||||||
(synopsis "Variable selection using random forests")
|
(synopsis "Variable selection using random forests")
|
||||||
(description
|
(description
|
||||||
"This package provides tools for the variable selection from random
|
"This package provides tools for the variable selection from random
|
||||||
|
@ -15328,20 +15334,22 @@ easily.")
|
||||||
(define-public r-umap
|
(define-public r-umap
|
||||||
(package
|
(package
|
||||||
(name "r-umap")
|
(name "r-umap")
|
||||||
(version "0.2.4.1")
|
(version "0.2.5.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "umap" version))
|
(uri (cran-uri "umap" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1pnh3hv8ihiz2nszqp797lkrdhhna2a6mzpizbsk0s9m8cj4wxva"))))
|
"0qp8zbh6fn8kn6q2h2lyjgmq3pr6gqwsd8ymqx25px13zjhxch9d"))))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-openssl" ,r-openssl)
|
`(("r-openssl" ,r-openssl)
|
||||||
("r-rcpp" ,r-rcpp)
|
("r-rcpp" ,r-rcpp)
|
||||||
("r-reticulate" ,r-reticulate)
|
("r-reticulate" ,r-reticulate)
|
||||||
("r-rspectra" ,r-rspectra)))
|
("r-rspectra" ,r-rspectra)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr)))
|
||||||
(home-page "https://github.com/tkonopka/umap")
|
(home-page "https://github.com/tkonopka/umap")
|
||||||
(synopsis "Uniform manifold approximation and projection")
|
(synopsis "Uniform manifold approximation and projection")
|
||||||
(description
|
(description
|
||||||
|
@ -15682,13 +15690,13 @@ function and interfaces to external frameworks.")
|
||||||
(define-public r-covr
|
(define-public r-covr
|
||||||
(package
|
(package
|
||||||
(name "r-covr")
|
(name "r-covr")
|
||||||
(version "3.4.0")
|
(version "3.5.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "covr" version))
|
(uri (cran-uri "covr" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0p44kr6yz5sqza5zvq6divqglzkpv0if9pjpjmzhmdaaddjrqzg5"))))
|
(base32 "1pvr95h7jg9hqq1qq1cccy323pkxldrwafl08151cc410499k4fb"))))
|
||||||
(properties `((upstream-name . "covr")))
|
(properties `((upstream-name . "covr")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
|
@ -15699,6 +15707,8 @@ function and interfaces to external frameworks.")
|
||||||
("r-rex" ,r-rex)
|
("r-rex" ,r-rex)
|
||||||
("r-withr" ,r-withr)
|
("r-withr" ,r-withr)
|
||||||
("r-yaml" ,r-yaml)))
|
("r-yaml" ,r-yaml)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||||
(home-page "https://github.com/r-lib/covr")
|
(home-page "https://github.com/r-lib/covr")
|
||||||
(synopsis "Test coverage for R packages")
|
(synopsis "Test coverage for R packages")
|
||||||
(description
|
(description
|
||||||
|
@ -15941,19 +15951,21 @@ atmospheric physics.")
|
||||||
(define-public r-lifecycle
|
(define-public r-lifecycle
|
||||||
(package
|
(package
|
||||||
(name "r-lifecycle")
|
(name "r-lifecycle")
|
||||||
(version "0.1.0")
|
(version "0.2.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "lifecycle" version))
|
(uri (cran-uri "lifecycle" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"11rk7hkw63rfrf4aqmb4xrb88kg95xh8hajpjvjfwjym2v02h74n"))))
|
"0912865c6675fsblrfdk6s568krsj1x8qbk1kipy7m05xs6nwx19"))))
|
||||||
(properties `((upstream-name . "lifecycle")))
|
(properties `((upstream-name . "lifecycle")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-glue" ,r-glue)
|
`(("r-glue" ,r-glue)
|
||||||
("r-rlang" ,r-rlang)))
|
("r-rlang" ,r-rlang)))
|
||||||
|
(native-inputs
|
||||||
|
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||||
(home-page "https://github.com/r-lib/lifecycle")
|
(home-page "https://github.com/r-lib/lifecycle")
|
||||||
(synopsis "Manage the life cycle of your package functions")
|
(synopsis "Manage the life cycle of your package functions")
|
||||||
(description
|
(description
|
||||||
|
@ -16016,13 +16028,13 @@ programming problems.")
|
||||||
(define-public r-desolve
|
(define-public r-desolve
|
||||||
(package
|
(package
|
||||||
(name "r-desolve")
|
(name "r-desolve")
|
||||||
(version "1.27.1")
|
(version "1.28")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (cran-uri "deSolve" version))
|
(uri (cran-uri "deSolve" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "05sax045qrk550gsn2i7krb9rbg51rx88x4v190acsigqknxffrv"))))
|
(base32 "0jasvdzig0pzhzspmy20089az19r91xjfb9q6h8gj7c4mr6fymac"))))
|
||||||
(properties `((upstream-name . "deSolve")))
|
(properties `((upstream-name . "deSolve")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -16880,7 +16892,7 @@ Components. The Lasso solution paths can be computed by the same function.")
|
||||||
`(("r-elasticnet" ,r-elasticnet)
|
`(("r-elasticnet" ,r-elasticnet)
|
||||||
("r-mass" ,r-mass)
|
("r-mass" ,r-mass)
|
||||||
("r-mda" ,r-mda)))
|
("r-mda" ,r-mda)))
|
||||||
(home-page "http://www.imm.dtu.dk/~lhc")
|
(home-page "https://www.imm.dtu.dk/~lkhc/")
|
||||||
(synopsis "Sparse discriminant analysis")
|
(synopsis "Sparse discriminant analysis")
|
||||||
(description
|
(description
|
||||||
"This package performs sparse linear discriminant analysis for Gaussians
|
"This package performs sparse linear discriminant analysis for Gaussians
|
||||||
|
@ -17991,7 +18003,7 @@ actigraphy-measured activity counts data.")
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("r-matrix" ,r-matrix)))
|
`(("r-matrix" ,r-matrix)))
|
||||||
(home-page "http://www.functionaldata.org")
|
(home-page "https://www.functionaldata.org")
|
||||||
(synopsis "Functional data analysis")
|
(synopsis "Functional data analysis")
|
||||||
(description
|
(description
|
||||||
"These functions were developed to support functional data analysis as
|
"These functions were developed to support functional data analysis as
|
||||||
|
@ -19978,7 +19990,7 @@ on a continuous-time birth-death process.")
|
||||||
(home-page "http://christophergandrud.github.io/d3Network/")
|
(home-page "http://christophergandrud.github.io/d3Network/")
|
||||||
(synopsis "Create D3 JavaScript network, tree, dendrogram, and Sankey graphs")
|
(synopsis "Create D3 JavaScript network, tree, dendrogram, and Sankey graphs")
|
||||||
(description
|
(description
|
||||||
"This packages is intended to make it easy to create D3 JavaScript
|
"This package is intended to make it easy to create D3 JavaScript
|
||||||
network, tree, dendrogram, and Sankey graphs from R using data frames.")
|
network, tree, dendrogram, and Sankey graphs from R using data frames.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
@ -20691,3 +20703,50 @@ package is adopted for computing with arbitrarily large numbers. Every
|
||||||
function has a hyperlink to its corresponding item in the @dfn{On-Line
|
function has a hyperlink to its corresponding item in the @dfn{On-Line
|
||||||
Encyclopedia of Integer Sequences} (OEIS) in the function help page.")
|
Encyclopedia of Integer Sequences} (OEIS) in the function help page.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public r-isoband
|
||||||
|
(package
|
||||||
|
(name "r-isoband")
|
||||||
|
(version "0.2.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "isoband" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1r023s73qypnvpx18znr9ymylr022m90v65mz2jasn0a1kjrfcbq"))))
|
||||||
|
(properties `((upstream-name . "isoband")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-rcpp" ,r-rcpp)
|
||||||
|
("r-testthat" ,r-testthat)))
|
||||||
|
(home-page "https://github.com/wilkelab/isoband")
|
||||||
|
(synopsis "Generate isolines and isobands from regularly spaced elevation grids")
|
||||||
|
(description
|
||||||
|
"This package provides a fast C++ implementation to generate contour
|
||||||
|
lines (isolines) and contour polygons (isobands) from regularly spaced grids
|
||||||
|
containing elevation data.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public r-ppcor
|
||||||
|
(package
|
||||||
|
(name "r-ppcor")
|
||||||
|
(version "1.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "ppcor" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1x9b2kb8s0bp92b17gby0jwzzr3i4cf3ap9c4nq7m8fav72g0y3a"))))
|
||||||
|
(properties `((upstream-name . "ppcor")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-mass" ,r-mass)))
|
||||||
|
(home-page "https://cran.r-project.org/web/packages/ppcor/")
|
||||||
|
(synopsis "Partial and semi-partial correlation")
|
||||||
|
(description
|
||||||
|
"This package provides users not only with a function to readily
|
||||||
|
calculate the higher-order partial and semi-partial correlations but also with
|
||||||
|
statistics and p-values of the correlation coefficients.")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
|
@ -10004,8 +10004,8 @@ checking.")
|
||||||
`(#:skip-build? #t ; Only builds on Windows.
|
`(#:skip-build? #t ; Only builds on Windows.
|
||||||
#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
|
#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
|
||||||
(home-page "https://github.com/blackbeam/named_pipe")
|
(home-page "https://github.com/blackbeam/named_pipe")
|
||||||
(synopsis "Wrapper for overlapped (asyncronous) IO of Windows's named pipes")
|
(synopsis "Wrapper for overlapped (asynchronous) IO of Windows's named pipes")
|
||||||
(description "This package provides a wrapper for overlapped (asyncronous)
|
(description "This package provides a wrapper for overlapped (asynchronous)
|
||||||
IO of Windows's named pipes.")
|
IO of Windows's named pipes.")
|
||||||
(license (list license:expat license:asl2.0))))
|
(license (list license:expat license:asl2.0))))
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -420,14 +420,14 @@ should only be used as part of the Guix cups-pk-helper service.")
|
||||||
(define-public hplip
|
(define-public hplip
|
||||||
(package
|
(package
|
||||||
(name "hplip")
|
(name "hplip")
|
||||||
(version "3.19.12")
|
(version "3.20.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
|
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
|
||||||
"/hplip-" version ".tar.gz"))
|
"/hplip-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0mdj0sqgfxjqa550adiw1gn4z9n6wcvn55slivgf0ndn5x89iwxp"))
|
"1hkiyj29vzmz14cy68g94i617ymxinzvjvcsfdd78kcbd1s9vi4h"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(patches (search-patches "hplip-remove-imageprocessor.patch"))
|
(patches (search-patches "hplip-remove-imageprocessor.patch"))
|
||||||
(snippet
|
(snippet
|
||||||
|
|
|
@ -3368,3 +3368,38 @@ The drivers officially supported by @code{libdbi} are:
|
||||||
@end itemize")
|
@end itemize")
|
||||||
(home-page "http://libdbi-drivers.sourceforge.net/")
|
(home-page "http://libdbi-drivers.sourceforge.net/")
|
||||||
(license license:lgpl2.1+)))
|
(license license:lgpl2.1+)))
|
||||||
|
|
||||||
|
(define-public soci
|
||||||
|
(package
|
||||||
|
(name "soci")
|
||||||
|
(version "4.0.0")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/SOCI/soci/")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"06faswdxd2frqr9xnx6bxc7zwarlzsbdi3bqpz7kwdxsjvq41rnb"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("postgresql" ,postgresql)
|
||||||
|
("sqlite" ,sqlite)
|
||||||
|
("odbc" ,unixodbc)
|
||||||
|
("boost" ,boost)
|
||||||
|
("mysql" ,mysql)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; Tests may require running database management systems.
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-lib-path
|
||||||
|
(lambda _
|
||||||
|
(substitute* "CMakeLists.txt"
|
||||||
|
(("set\\(SOCI_LIBDIR \"lib64\"\\)") "")))))))
|
||||||
|
(synopsis "C++ Database Access Library")
|
||||||
|
(description
|
||||||
|
"SOCI is an abstraction layer for several database backends, including
|
||||||
|
PostreSQL, SQLite, ODBC and MySQL.")
|
||||||
|
(home-page "http://soci.sourceforge.net/")
|
||||||
|
(license license:boost1.0)))
|
||||||
|
|
|
@ -27,19 +27,25 @@
|
||||||
#:use-module (guix git-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 cmake)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
|
#:use-module (gnu packages code)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
|
#:use-module (gnu packages gdb)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages golang)
|
#:use-module (gnu packages golang)
|
||||||
#:use-module (gnu packages code)
|
|
||||||
#:use-module (gnu packages llvm)
|
#:use-module (gnu packages llvm)
|
||||||
|
#:use-module (gnu packages ninja)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages pretty-print)
|
#:use-module (gnu packages pretty-print)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
|
#:use-module (gnu packages serialization)
|
||||||
#:use-module (gnu packages virtualization)
|
#:use-module (gnu packages virtualization)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
@ -406,3 +412,66 @@ the position of the variable and allows you to modify its value.")
|
||||||
;; The library is covered by LGPLv3 or later; the application is covered
|
;; The library is covered by LGPLv3 or later; the application is covered
|
||||||
;; by GPLv3 or later.
|
;; by GPLv3 or later.
|
||||||
(license (list lgpl3+ gpl3+))))
|
(license (list lgpl3+ gpl3+))))
|
||||||
|
|
||||||
|
(define-public rr
|
||||||
|
(package
|
||||||
|
(name "rr")
|
||||||
|
(version "5.3.0")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/mozilla/rr")
|
||||||
|
(commit version)))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1x6l1xsdksnhz9v50p4r7hhmr077cq20kaywqy1jzdklvkjqzf64"))
|
||||||
|
(file-name (git-file-name name version))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
;; The 'rr_exec_stub' is a static binary, which leads CMake to fail
|
||||||
|
;; with:
|
||||||
|
;;
|
||||||
|
;; file RPATH_CHANGE could not write new RPATH:
|
||||||
|
;;
|
||||||
|
;; Clear CMAKE_INSTALL_RPATH to avoid that problem.
|
||||||
|
(list "-DCMAKE_INSTALL_RPATH="
|
||||||
|
,@(if (and (not (%current-target-system))
|
||||||
|
(member (%current-system)
|
||||||
|
'("x86_64-linux" "aarch64-linux")))
|
||||||
|
;; The toolchain doesn't support '-m32'.
|
||||||
|
'("-Ddisable32bit=ON")
|
||||||
|
'()))
|
||||||
|
|
||||||
|
;; XXX: Most tests fail with:
|
||||||
|
;;
|
||||||
|
;; rr needs /proc/sys/kernel/perf_event_paranoid <= 1, but it is 2.
|
||||||
|
;;
|
||||||
|
;; This setting cannot be changed from the build environment, so skip
|
||||||
|
;; the tests.
|
||||||
|
#:tests? #f
|
||||||
|
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
(add-before 'check 'set-home
|
||||||
|
(lambda _
|
||||||
|
;; Some tests expect 'HOME' to be set.
|
||||||
|
(setenv "HOME" (getcwd))
|
||||||
|
#t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("ninja" ,ninja)
|
||||||
|
("which" ,which)))
|
||||||
|
(inputs
|
||||||
|
`(("gdb" ,gdb)
|
||||||
|
("cpanproto" ,capnproto)
|
||||||
|
("python" ,python)
|
||||||
|
("python-pexpect" ,python-pexpect)))
|
||||||
|
(home-page "https://rr-project.org/")
|
||||||
|
(synopsis "Record and reply debugging framework")
|
||||||
|
(description
|
||||||
|
"rr is a lightweight tool for recording, replaying and debugging
|
||||||
|
execution of applications (trees of processes and threads). Debugging extends
|
||||||
|
GDB with very efficient reverse-execution, which in combination with standard
|
||||||
|
GDB/x86 features like hardware data watchpoints, makes debugging much more
|
||||||
|
fun.")
|
||||||
|
(license expat)))
|
||||||
|
|
|
@ -199,7 +199,7 @@ work, such as sentence length and other readability measures.")
|
||||||
(synopsis "Dictionary lookup program with a German-English dictionary")
|
(synopsis "Dictionary lookup program with a German-English dictionary")
|
||||||
(description "Ding is a dictionary lookup program for the X window system.
|
(description "Ding is a dictionary lookup program for the X window system.
|
||||||
It comes with a German-English dictionary with approximately 270,000 entries.")
|
It comes with a German-English dictionary with approximately 270,000 entries.")
|
||||||
(home-page "http://www-user.tu-chemnitz.de/~fri/ding/")
|
(home-page "https://www-user.tu-chemnitz.de/~fri/ding/")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public grammalecte
|
(define-public grammalecte
|
||||||
|
|
|
@ -396,14 +396,14 @@ to result in system-wide compromise.")
|
||||||
(define-public unbound
|
(define-public unbound
|
||||||
(package
|
(package
|
||||||
(name "unbound")
|
(name "unbound")
|
||||||
(version "1.9.6")
|
(version "1.10.0")
|
||||||
(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 "1w5aylh2gfvfvqkgrq46aw427x9c0a3hwm0f985s55wim5pgr60x"))))
|
(base32 "0mg9divpysr42sp0m693a70693dp8025v6c9dv1yabr4g1jlhbqm"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" "python"))
|
(outputs '("out" "python"))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -600,14 +600,14 @@ Extensions} (DNSSEC).")
|
||||||
(define-public knot
|
(define-public knot
|
||||||
(package
|
(package
|
||||||
(name "knot")
|
(name "knot")
|
||||||
(version "2.9.2")
|
(version "2.9.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
|
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
|
||||||
"knot-" version ".tar.xz"))
|
"knot-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1vmndmbzwwrqczhygkhpdn5xxljcnaa3d0z5yw6vb2bmm8rxz319"))
|
(base32 "0zm0642hkb16sqkqpa84f89f3s0bw44m837r1nia8m89swvz3bgj"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
|
|
@ -738,7 +738,8 @@ adjust the level of difficulty.")
|
||||||
(uri (string-append "https://apps.ankiweb.net/downloads/archive/anki-"
|
(uri (string-append "https://apps.ankiweb.net/downloads/archive/anki-"
|
||||||
version "-source.tgz"))
|
version "-source.tgz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))))
|
(base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))
|
||||||
|
(patches (search-patches "anki-mpv-args.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags (list (string-append "PREFIX=" %output))
|
`(#:make-flags (list (string-append "PREFIX=" %output))
|
||||||
|
@ -779,6 +780,9 @@ adjust the level of difficulty.")
|
||||||
(wrap-program program
|
(wrap-program program
|
||||||
`("QTWEBENGINEPROCESS_PATH" =
|
`("QTWEBENGINEPROCESS_PATH" =
|
||||||
(,qtwebengineprocess))
|
(,qtwebengineprocess))
|
||||||
|
`("PATH" prefix (,(string-append
|
||||||
|
(assoc-ref inputs "mpv")
|
||||||
|
"/bin")))
|
||||||
`("PYTHONPATH" = ,site-packages)))
|
`("PYTHONPATH" = ,site-packages)))
|
||||||
(find-files bin ".")))
|
(find-files bin ".")))
|
||||||
#t)))))
|
#t)))))
|
||||||
|
|
|
@ -60,6 +60,8 @@
|
||||||
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
|
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||||
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
|
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
|
||||||
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
|
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
|
||||||
|
;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
|
||||||
|
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -970,13 +972,13 @@ in certain cases. It also enables recursion for anonymous functions.")
|
||||||
(define-public emacs-xr
|
(define-public emacs-xr
|
||||||
(package
|
(package
|
||||||
(name "emacs-xr")
|
(name "emacs-xr")
|
||||||
(version "1.16")
|
(version "1.18")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
|
(uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1s6pkbr7gkan0r9gfmix75m587d8cg6l11722v70zzgf2z9w2xg9"))))
|
(base32 "1nq9pj47sxgpkw97c2xrkhgcwh3zsfd2a22qiqbl4i9zf2l9yy91"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(home-page "https://elpa.gnu.org/packages/xr.html")
|
(home-page "https://elpa.gnu.org/packages/xr.html")
|
||||||
(synopsis "Convert string regexp to rx notation")
|
(synopsis "Convert string regexp to rx notation")
|
||||||
|
@ -1074,14 +1076,14 @@ optional minor mode which can apply this command automatically on save.")
|
||||||
(define-public emacs-relint
|
(define-public emacs-relint
|
||||||
(package
|
(package
|
||||||
(name "emacs-relint")
|
(name "emacs-relint")
|
||||||
(version "1.14")
|
(version "1.15")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"https://elpa.gnu.org/packages/relint-" version ".tar"))
|
"https://elpa.gnu.org/packages/relint-" version ".tar"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0hjzhxcygb2r2s3g2pk3z9x3appy1y8gkw8gpg9cpkl6lpwcsh2f"))))
|
(base32 "0sxmdsacj8my942k8j76m2y68nzab7190acv7cwgflc5n4f07yxa"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(propagated-inputs `(("emacs-xr" ,emacs-xr)))
|
(propagated-inputs `(("emacs-xr" ,emacs-xr)))
|
||||||
(home-page "https://github.com/mattiase/relint")
|
(home-page "https://github.com/mattiase/relint")
|
||||||
|
@ -4684,7 +4686,7 @@ local directories.")
|
||||||
(package
|
(package
|
||||||
(name "emacs-ffap-rfc-space")
|
(name "emacs-ffap-rfc-space")
|
||||||
(version "12")
|
(version "12")
|
||||||
(home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
|
(home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
|
(uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
|
||||||
|
@ -7389,8 +7391,8 @@ CIDER).")
|
||||||
;; There hasn't been a tag or release since 2016, so we take the latest
|
;; There hasn't been a tag or release since 2016, so we take the latest
|
||||||
;; commit.
|
;; commit.
|
||||||
(define-public emacs-sly
|
(define-public emacs-sly
|
||||||
(let ((commit "0a3b81770e46b93b9ffd8b9ac5254e0b88d1b13d")
|
(let ((commit "86a63df73360be51529806c7ed9b775b3f02284d")
|
||||||
(revision "3"))
|
(revision "4"))
|
||||||
(package
|
(package
|
||||||
(name "emacs-sly")
|
(name "emacs-sly")
|
||||||
(version (git-version "1.0.0" revision commit))
|
(version (git-version "1.0.0" revision commit))
|
||||||
|
@ -7403,7 +7405,7 @@ CIDER).")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1q5ga4mxa0ffa4zb2y0zfwmgzjggx4fn1y4bl2x7ac6ynvb32zkj"))))
|
"0sx6fdckcfcld41db0695svvlvllnfaazwx513686gnykwfd209n"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("texinfo" ,texinfo)))
|
`(("texinfo" ,texinfo)))
|
||||||
|
@ -17255,10 +17257,10 @@ leader key in vim), and much more.")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
(define-public emacs-tldr
|
(define-public emacs-tldr
|
||||||
(let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
|
(let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
|
||||||
(package
|
(package
|
||||||
(name "emacs-tldr")
|
(name "emacs-tldr")
|
||||||
(version (git-version "0" "0" commit))
|
(version (git-version "0" "1" commit))
|
||||||
(home-page "https://github.com/kuanyui/tldr.el")
|
(home-page "https://github.com/kuanyui/tldr.el")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -17267,9 +17269,11 @@ leader key in vim), and much more.")
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
|
"1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("emacs-request" ,emacs-request)))
|
||||||
(synopsis "Simplified and community-driven man pages for Emacs")
|
(synopsis "Simplified and community-driven man pages for Emacs")
|
||||||
(description "@code{emacs-tldr} allows the user to access tldr pages
|
(description "@code{emacs-tldr} allows the user to access tldr pages
|
||||||
from within emacs. The @code{tldr} pages are a community effort to simplify
|
from within emacs. The @code{tldr} pages are a community effort to simplify
|
||||||
|
@ -21727,3 +21731,75 @@ supports generation of phonetic and numeric passwords.")
|
||||||
Separated Value) files. It follows the format as defined in RFC 4180 \"Common
|
Separated Value) files. It follows the format as defined in RFC 4180 \"Common
|
||||||
Format and MIME Type for CSV Files\" (@url{http://tools.ietf.org/html/rfc4180}).")
|
Format and MIME Type for CSV Files\" (@url{http://tools.ietf.org/html/rfc4180}).")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-org-journal
|
||||||
|
(package
|
||||||
|
(name "emacs-org-journal")
|
||||||
|
(version "2.0.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/bastibe/org-journal.git")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/bastibe/org-journal")
|
||||||
|
(synopsis "Simple Org mode journaling mode")
|
||||||
|
(description
|
||||||
|
"Org Journal is a set of functions to maintain a simple personal diary /
|
||||||
|
journal using in Emacs, adapted from
|
||||||
|
@url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
|
||||||
|
allow the creation of journal records in the current daily, weekly, monthly or
|
||||||
|
yearly file and search within all records or specified time intervals. All
|
||||||
|
records can be browsed and searched from the Emacs Calendar for convenience.
|
||||||
|
All entries in a specified TODO state will be carried over to the next day.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public emacs-ddskk
|
||||||
|
;; XXX: Upstream adds code names to their release tags, so version and code
|
||||||
|
;; name below need to be updated together.
|
||||||
|
(let ((version "16.3")
|
||||||
|
(code-name "Kutomatsunai"))
|
||||||
|
(package
|
||||||
|
(name "emacs-ddskk")
|
||||||
|
(version version)
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/skk-dev/ddskk")
|
||||||
|
(commit (string-append "ddskk-" version "_" code-name))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build gnu-build-system)
|
||||||
|
(guix build utils)
|
||||||
|
(guix build emacs-utils))
|
||||||
|
#:imported-modules (,@%gnu-build-system-modules
|
||||||
|
(guix build emacs-utils))
|
||||||
|
#:test-target "test"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(make-file-writable "SKK-MK")
|
||||||
|
(emacs-substitute-variables "SKK-MK"
|
||||||
|
("PREFIX" (assoc-ref outputs "out"))
|
||||||
|
("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
|
||||||
|
("SKK_PREFIX" "")
|
||||||
|
("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
|
||||||
|
(for-each make-file-writable (find-files "./doc"))
|
||||||
|
#t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("emacs-minimal" ,emacs-minimal)))
|
||||||
|
(home-page "https://github.com/skk-dev/ddskk")
|
||||||
|
(synopsis "Simple Kana to Kanji conversion program")
|
||||||
|
(description
|
||||||
|
"Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
|
||||||
|
conversion program}, a Japanese input method on Emacs.")
|
||||||
|
(license license:gpl2+))))
|
||||||
|
|
|
@ -178,7 +178,7 @@
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
("which" ,which)))
|
("which" ,which)))
|
||||||
(home-page "http://librecad.org/")
|
(home-page "https://librecad.org/")
|
||||||
(synopsis "Computer-aided design (CAD) application")
|
(synopsis "Computer-aided design (CAD) application")
|
||||||
(description
|
(description
|
||||||
"LibreCAD is a 2D Computer-aided design (CAD) application for creating
|
"LibreCAD is a 2D Computer-aided design (CAD) application for creating
|
||||||
|
|
|
@ -495,7 +495,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
||||||
;; the system's dynamically linked library.
|
;; the system's dynamically linked library.
|
||||||
(package
|
(package
|
||||||
(name "monero")
|
(name "monero")
|
||||||
(version "0.15.0.1")
|
(version "0.15.0.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -516,7 +516,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
||||||
#t))
|
#t))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0sypa235lf2bbib4b71xpaw39h9304slgsvnsz8wmy9fq1zx009m"))))
|
"06zzwa0y8ic6x3y2fy501788r51p4klanyvmm76ywrwf087njlkv"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("doxygen" ,doxygen)
|
`(("doxygen" ,doxygen)
|
||||||
|
@ -614,7 +614,7 @@ the Monero command line client and daemon.")
|
||||||
(define-public monero-gui
|
(define-public monero-gui
|
||||||
(package
|
(package
|
||||||
(name "monero-gui")
|
(name "monero-gui")
|
||||||
(version "0.15.0.3")
|
(version "0.15.0.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -624,7 +624,7 @@ the Monero command line client and daemon.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1v2mk6qp7dfdj4j4cilxp0s0phfwwnmjvpvjrz6jzzlpvbnavkr0"))))
|
"12m5fgnxkr11q2arx1m5ccpxqm5ljcvm6l547dwqn297zs5jim4z"))))
|
||||||
(build-system qt-build-system)
|
(build-system qt-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
;;; Copyright © 2016 Jookia <166291@gmail.com>
|
;;; Copyright © 2016 Jookia <166291@gmail.com>
|
||||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
|
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
|
||||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2016 Toni Reina <areina@riseup.net>
|
;;; Copyright © 2016 Toni Reina <areina@riseup.net>
|
||||||
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
@ -1234,22 +1234,22 @@ have been optimized for beautiful display on all common platforms and display
|
||||||
resolutions.")
|
resolutions.")
|
||||||
(license license:asl2.0)))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
(define-public font-open-dyslexic
|
(define-public font-opendyslexic
|
||||||
(package
|
(package
|
||||||
(name "font-open-dyslexic")
|
(name "font-opendyslexic")
|
||||||
(version "20160623")
|
(version "0.91.12")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method url-fetch/zipbomb)
|
||||||
(uri (git-reference
|
(uri (string-append "https://github.com/antijingoist/opendyslexic/"
|
||||||
(url "https://github.com/antijingoist/open-dyslexic.git")
|
"releases/download/v" version
|
||||||
(commit (string-append version "-Stable"))))
|
"/opendyslexic-0.910.12-rc2-2019.10.17.zip"))
|
||||||
(file-name (git-file-name name version))
|
(sha256
|
||||||
(sha256
|
(base32
|
||||||
(base32
|
"11ml7v4iyf3hr0fbnkwz8afb8vi58wbcfnmn4gyvrwh9jk5pybdr"))))
|
||||||
"0nr7s92nk1kbr459154idnib977ixc70z6g9mbra3lp73nyrmyvz"))))
|
|
||||||
(build-system font-build-system)
|
(build-system font-build-system)
|
||||||
(home-page "https://opendyslexic.org")
|
(native-inputs `(("unzip" ,unzip)))
|
||||||
|
(home-page "https://opendyslexic.org/")
|
||||||
(synopsis "Font for dyslexics and high readability")
|
(synopsis "Font for dyslexics and high readability")
|
||||||
(description "OpenDyslexic is a font designed to help readability for some
|
(description "OpenDyslexic is a font designed to help readability for some
|
||||||
of the symptoms of dyslexia. Letters have heavy weighted bottoms to provide
|
of the symptoms of dyslexia. Letters have heavy weighted bottoms to provide
|
||||||
|
@ -1258,12 +1258,10 @@ similar letters. Consistently weighted bottoms can also help reinforce the
|
||||||
line of text. The unique shapes of each letter can help prevent flipping and
|
line of text. The unique shapes of each letter can help prevent flipping and
|
||||||
swapping. The italic style for OpenDyslexic has been crafted to be used for
|
swapping. The italic style for OpenDyslexic has been crafted to be used for
|
||||||
emphasis while still being readable.")
|
emphasis while still being readable.")
|
||||||
(license
|
(license license:silofl1.1)))
|
||||||
(license:fsdg-compatible
|
|
||||||
"https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"
|
(define-public font-open-dyslexic
|
||||||
"The Font Software may be sold as part of a larger software package but
|
(deprecated-package "font-open-dyslexic" font-opendyslexic))
|
||||||
no copy of one or more of the Font Software typefaces may be sold by
|
|
||||||
itself."))))
|
|
||||||
|
|
||||||
(define-public font-dosis
|
(define-public font-dosis
|
||||||
(package
|
(package
|
||||||
|
@ -1272,13 +1270,14 @@ itself."))))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch/zipbomb)
|
(method url-fetch/zipbomb)
|
||||||
(uri (string-append "http://www.impallari.com/media/releases/dosis-"
|
(uri (string-append "https://web.archive.org/web/20180228233737/"
|
||||||
|
"https://www.impallari.com/media/releases/dosis-"
|
||||||
"v" version ".zip"))
|
"v" version ".zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
|
||||||
"1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
|
|
||||||
(build-system font-build-system)
|
(build-system font-build-system)
|
||||||
(home-page "http://www.impallari.com/dosis")
|
(home-page (string-append "https://web.archive.org/web/20180228233737/"
|
||||||
|
"https://www.impallari.com/dosis"))
|
||||||
(synopsis "Very simple, rounded, sans serif family")
|
(synopsis "Very simple, rounded, sans serif family")
|
||||||
(description
|
(description
|
||||||
"Dosis is a very simple, rounded, sans serif family.
|
"Dosis is a very simple, rounded, sans serif family.
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
|
||||||
|
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -45,6 +46,7 @@
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gperf)
|
#:use-module (gnu packages gperf)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
|
#:use-module (gnu packages fribidi)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages sqlite)
|
#:use-module (gnu packages sqlite)
|
||||||
|
@ -255,44 +257,35 @@ work with most software requiring Type 1 fonts.")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public woff2
|
(define-public woff2
|
||||||
(let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
|
(package
|
||||||
(revision "1"))
|
(name "woff2")
|
||||||
(package
|
(version "1.0.2")
|
||||||
(name "woff2")
|
(source (origin
|
||||||
(version (string-append "20160306-" revision "."
|
(method git-fetch)
|
||||||
(string-take commit 7)))
|
(uri (git-reference
|
||||||
(source (origin
|
(url "https://github.com/google/woff2.git")
|
||||||
(method git-fetch)
|
(commit (string-append "v" version))))
|
||||||
(uri (git-reference
|
(file-name (string-append name "-" version ".git"))
|
||||||
(url "https://github.com/google/woff2.git")
|
(sha256
|
||||||
(commit commit)))
|
(base32
|
||||||
(file-name (string-append name "-" version ".tar.xz"))
|
"13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y"))))
|
||||||
(sha256
|
(build-system cmake-build-system)
|
||||||
(base32
|
(native-inputs
|
||||||
"0wka0yhf0cjmd4rv2jckxpyv6lb5ckj4nj0k1ajq5hrjy7f30lcp"))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(patches (list (search-patch "woff2-libbrotli.patch")))))
|
(inputs
|
||||||
(build-system gnu-build-system)
|
`(("google-brotli" ,google-brotli)))
|
||||||
(native-inputs
|
(arguments
|
||||||
`(("pkg-config" ,pkg-config)))
|
;; package has no tests
|
||||||
(inputs
|
`(#:tests? #f
|
||||||
`(("brotli" ,brotli)))
|
;; we can’t have both, shared libraries and binaries, so turn off the
|
||||||
(arguments
|
;; former
|
||||||
`(#:tests? #f ;no tests
|
#:configure-flags (list "-DBUILD_SHARED_LIBS=OFF")))
|
||||||
#:phases (modify-phases %standard-phases
|
(synopsis "Compress TrueType fonts to WOFF2")
|
||||||
(delete 'configure)
|
(description
|
||||||
(replace 'install
|
"This package provides utilities for compressing/decompressing TrueType
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
|
||||||
(bin (string-append out "/bin")))
|
|
||||||
(install-file "woff2_compress" bin)
|
|
||||||
(install-file "woff2_decompress" bin)
|
|
||||||
#t))))))
|
|
||||||
(synopsis "Compress TrueType fonts to WOFF2")
|
|
||||||
(description
|
|
||||||
"This package provides utilities for compressing/decompressing TrueType
|
|
||||||
fonts to/from the WOFF2 format.")
|
fonts to/from the WOFF2 format.")
|
||||||
(license license:asl2.0)
|
(license license:asl2.0)
|
||||||
(home-page "https://github.com/google/woff2"))))
|
(home-page "https://github.com/google/woff2")))
|
||||||
|
|
||||||
(define-public fontconfig
|
(define-public fontconfig
|
||||||
(package
|
(package
|
||||||
|
@ -857,3 +850,37 @@ work well with other GTK+ desktop environments.")
|
||||||
samples that show coverage of the font and are similar in appearance to
|
samples that show coverage of the font and are similar in appearance to
|
||||||
Unicode Charts. It was developed for use with DejaVu Fonts project.")
|
Unicode Charts. It was developed for use with DejaVu Fonts project.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public libraqm
|
||||||
|
(package
|
||||||
|
(name "libraqm")
|
||||||
|
(version "0.7.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/HOST-Oman/libraqm/"
|
||||||
|
"releases/download/v" version "/"
|
||||||
|
"raqm-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32 "0hgry3fj2y3qaq2fnmdgd93ixkk3ns5jds4vglkiv2jfvpn7b1g2"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags (list "--disable-static")))
|
||||||
|
(native-inputs
|
||||||
|
`(("gtk-doc" ,gtk-doc)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("python" ,python-wrapper)))
|
||||||
|
(inputs
|
||||||
|
`(("freetype" ,freetype)
|
||||||
|
("fribidi" ,fribidi)
|
||||||
|
("harfbuzz" ,harfbuzz)))
|
||||||
|
(home-page "https://github.com/HOST-Oman/libraqm")
|
||||||
|
(synopsis "Library for complex text layout")
|
||||||
|
(description
|
||||||
|
"Raqm is a small library that encapsulates the logic for complex text
|
||||||
|
layout and provides a convenient API.
|
||||||
|
|
||||||
|
It currently provides bidirectional text support (using FriBiDi),
|
||||||
|
shaping (using HarfBuzz), and proper script itemization. As a result, Raqm
|
||||||
|
can support most writing systems covered by Unicode.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
|
@ -179,6 +179,7 @@ freedesktop.org project.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public libinput
|
(define-public libinput
|
||||||
|
;; Updating this will rebuild over 700 packages through libinput-minimal.
|
||||||
(package
|
(package
|
||||||
(name "libinput")
|
(name "libinput")
|
||||||
(version "1.15.0")
|
(version "1.15.0")
|
||||||
|
|
|
@ -2078,7 +2078,7 @@ a.k.a. XenoCollide) as described in Game Programming Gems 7.")
|
||||||
`(("glu" ,glu)
|
`(("glu" ,glu)
|
||||||
("libccd" ,libccd)
|
("libccd" ,libccd)
|
||||||
("mesa" ,mesa)))
|
("mesa" ,mesa)))
|
||||||
(home-page "http://www.ode.org/")
|
(home-page "https://www.ode.org/")
|
||||||
(synopsis "High performance library for simulating rigid body dynamics")
|
(synopsis "High performance library for simulating rigid body dynamics")
|
||||||
(description "ODE is a high performance library for simulating
|
(description "ODE is a high performance library for simulating
|
||||||
rigid body dynamics. It is fully featured, stable, mature and
|
rigid body dynamics. It is fully featured, stable, mature and
|
||||||
|
|
|
@ -2054,7 +2054,7 @@ for common mesh file formats, and collision detection.")
|
||||||
("fribidi" ,fribidi)
|
("fribidi" ,fribidi)
|
||||||
("taglib" ,taglib)
|
("taglib" ,taglib)
|
||||||
("sfml" ,sfml)))
|
("sfml" ,sfml)))
|
||||||
(home-page "http://marsshooter.org")
|
(home-page "http://mars-game.sourceforge.net/")
|
||||||
(synopsis "2D space shooter")
|
(synopsis "2D space shooter")
|
||||||
(description
|
(description
|
||||||
"M.A.R.S. is a 2D space shooter with pretty visual effects and
|
"M.A.R.S. is a 2D space shooter with pretty visual effects and
|
||||||
|
|
|
@ -328,7 +328,7 @@ fully fledged Spatial SQL capabilities.")
|
||||||
(define-public proj
|
(define-public proj
|
||||||
(package
|
(package
|
||||||
(name "proj")
|
(name "proj")
|
||||||
(version "6.2.0")
|
(version "6.3.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -336,7 +336,7 @@ fully fledged Spatial SQL capabilities.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0l1as8f4zfg74fms6h5p5psziw0lpznja1xnirzsscpnfbwc005k"))))
|
"1y46ij32j9b4x1kjnnlykcwk3kkjwkg44sfc1ziwm3a3g0ki3q3d"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("sqlite" ,sqlite)))
|
`(("sqlite" ,sqlite)))
|
||||||
|
@ -554,6 +554,7 @@ development.")
|
||||||
`(("freexl" ,freexl)
|
`(("freexl" ,freexl)
|
||||||
("geos" ,geos)
|
("geos" ,geos)
|
||||||
("libgaiagraphics" ,libgaiagraphics)
|
("libgaiagraphics" ,libgaiagraphics)
|
||||||
|
("libjpeg-turbo" ,libjpeg-turbo)
|
||||||
("libspatialite" ,libspatialite)
|
("libspatialite" ,libspatialite)
|
||||||
("libxml2" ,libxml2)
|
("libxml2" ,libxml2)
|
||||||
("proj.4" ,proj.4)
|
("proj.4" ,proj.4)
|
||||||
|
@ -571,7 +572,7 @@ development.")
|
||||||
(define-public gdal
|
(define-public gdal
|
||||||
(package
|
(package
|
||||||
(name "gdal")
|
(name "gdal")
|
||||||
(version "3.0.2")
|
(version "3.0.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -579,7 +580,7 @@ development.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0f80izh9wshrsw55kg9abpip74hk6frk3hgqrkqbyn3f6i8g2z3q"))
|
"10symyajj1b7j98f889lqxxbmhcyvlhq9gg0l42h69bv22wx45gw"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
`(begin
|
`(begin
|
||||||
|
@ -1451,3 +1452,58 @@ archive all the GPS recordings of your past trips. It is the successor of the
|
||||||
QLandkarte GT application.")
|
QLandkarte GT application.")
|
||||||
(home-page "https://github.com/Maproom/qmapshack/wiki")
|
(home-page "https://github.com/Maproom/qmapshack/wiki")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public readosm
|
||||||
|
(package
|
||||||
|
(name "readosm")
|
||||||
|
(version "1.1.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://www.gaia-gis.it/gaia-sins/"
|
||||||
|
"readosm-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32 "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("expat" ,expat)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(synopsis "Data extractor for OpenStreetMap files")
|
||||||
|
(description
|
||||||
|
"ReadOSM is a library to extract valid data from within an OpenStreetMap
|
||||||
|
input file (in @code{.osm} or @code{.osm.pbf} format).")
|
||||||
|
(home-page "https://www.gaia-gis.it/fossil/readosm/index")
|
||||||
|
(license (list license:gpl2+
|
||||||
|
license:lgpl2.1+
|
||||||
|
license:mpl1.1))))
|
||||||
|
|
||||||
|
(define-public spatialite-tools
|
||||||
|
(package
|
||||||
|
(name "spatialite-tools")
|
||||||
|
(version "4.3.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://www.gaia-gis.it/gaia-sins/"
|
||||||
|
"spatialite-tools-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32 "12fggjhi8cgwvw8f6nk76f83b8lqkc07abxyj5ap6f2gq2dqafgp"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("expat" ,expat)
|
||||||
|
("freexl" ,freexl)
|
||||||
|
("geos" ,geos)
|
||||||
|
("libspatialite" ,libspatialite)
|
||||||
|
("libxml2" ,libxml2)
|
||||||
|
("proj.4" ,proj.4)
|
||||||
|
("readosm" ,readosm)
|
||||||
|
("sqlite" ,sqlite)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(synopsis "Collection of command line tools for SpatiaLite")
|
||||||
|
(description
|
||||||
|
"@code{spatialite-tools} is a collection of Command Line Interface (CLI)
|
||||||
|
tools supporting SpatiaLite.")
|
||||||
|
(home-page "https://www.gaia-gis.it/fossil/spatialite-tools/index")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -31,15 +31,14 @@
|
||||||
(define-public gkrellm
|
(define-public gkrellm
|
||||||
(package
|
(package
|
||||||
(name "gkrellm")
|
(name "gkrellm")
|
||||||
(version "2.3.10")
|
(version "2.3.11")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://gkrellm.srcbox.net/releases/gkrellm-"
|
(uri (string-append "http://gkrellm.srcbox.net/releases/gkrellm-"
|
||||||
version ".tar.bz2"))
|
version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y"))))
|
||||||
"0rnpzjr0ys0ypm078y63q4aplcgdr5nshjzhmz330n6dmnxci7lb"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("gettext" ,gettext-minimal)
|
`(("gettext" ,gettext-minimal)
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
|
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
|
||||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
|
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -4997,15 +4998,15 @@ which can read a large number of file formats.")
|
||||||
(define-public rhythmbox
|
(define-public rhythmbox
|
||||||
(package
|
(package
|
||||||
(name "rhythmbox")
|
(name "rhythmbox")
|
||||||
(version "3.4.3")
|
(version "3.4.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/rhythmbox/"
|
||||||
(version-major+minor version) "/"
|
(version-major+minor version) "/"
|
||||||
name "-" version ".tar.xz"))
|
"rhythmbox-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
|
"142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
|
||||||
(build-system glib-or-gtk-build-system)
|
(build-system glib-or-gtk-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
|
@ -7385,7 +7386,7 @@ easy, safe, and automatic.")
|
||||||
(define-public tracker
|
(define-public tracker
|
||||||
(package
|
(package
|
||||||
(name "tracker")
|
(name "tracker")
|
||||||
(version "2.2.2")
|
(version "2.3.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/tracker/"
|
(uri (string-append "mirror://gnome/sources/tracker/"
|
||||||
|
@ -7393,7 +7394,7 @@ easy, safe, and automatic.")
|
||||||
"tracker-" version ".tar.xz"))
|
"tracker-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
|
"1nzbnvwwsk6kv6kqbxwlz8vk70l9ai6b4r9qypw51vp4qy72ny54"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:glib-or-gtk? #t
|
`(#:glib-or-gtk? #t
|
||||||
|
@ -7404,64 +7405,58 @@ easy, safe, and automatic.")
|
||||||
(assoc-ref %outputs "out") "/lib/tracker-2.0"))
|
(assoc-ref %outputs "out") "/lib/tracker-2.0"))
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'disable-broken-tests
|
|
||||||
(lambda _
|
|
||||||
;; These fail because the SPARQL backend could not be loaded.
|
|
||||||
;; That's because /etc/machine-id is missing, but
|
|
||||||
;; DBUS_FATAL_WARNINGS does not help here.
|
|
||||||
(substitute* "tests/libtracker-sparql/meson.build"
|
|
||||||
(("'sparql',") ""))
|
|
||||||
(substitute* "tests/tracker-steroids/meson.build"
|
|
||||||
(("test\\(.*") ""))
|
|
||||||
#t))
|
|
||||||
;; Two tests fail if LANG is not set.
|
|
||||||
(add-before 'check 'pre-check
|
(add-before 'check 'pre-check
|
||||||
(lambda _
|
(lambda _
|
||||||
(setenv "LANG" "en_US.UTF-8")
|
;; Some tests expect to write to $HOME.
|
||||||
;; For the missing /etc/machine-id.
|
(setenv "HOME" "/tmp")
|
||||||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
|
||||||
#t)))))
|
#t)))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("glib:bin" ,glib "bin")
|
`(("glib:bin" ,glib "bin")
|
||||||
("gnome-common" ,gnome-common)
|
|
||||||
("gobject-introspection" ,gobject-introspection)
|
("gobject-introspection" ,gobject-introspection)
|
||||||
("python-pygobject" ,python-pygobject)
|
("python-pygobject" ,python-pygobject)
|
||||||
("intltool" ,intltool)
|
("intltool" ,intltool)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("vala" ,vala)))
|
("vala" ,vala)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("gtk+" ,gtk+)
|
`(("dbus" ,dbus)
|
||||||
("dbus" ,dbus)
|
|
||||||
("sqlite" ,sqlite)
|
("sqlite" ,sqlite)
|
||||||
("python" ,python)
|
|
||||||
("poppler" ,poppler)
|
|
||||||
("libpng" ,libpng)
|
|
||||||
("libtiff" ,libtiff)
|
|
||||||
("zlib" ,zlib)
|
|
||||||
("libxml2" ,libxml2)
|
("libxml2" ,libxml2)
|
||||||
("libunistring" ,libunistring)
|
("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
|
||||||
("json-glib" ,json-glib)
|
("json-glib" ,json-glib)
|
||||||
("openjpeg" ,openjpeg-1)
|
("libsoup" ,libsoup)))
|
||||||
("libseccomp" ,libseccomp)
|
|
||||||
("libsoup" ,libsoup)
|
|
||||||
("libuuid" ,util-linux "lib")
|
|
||||||
("network-manager" ,network-manager)))
|
|
||||||
(synopsis "Metadata database, indexer and search tool")
|
(synopsis "Metadata database, indexer and search tool")
|
||||||
(home-page "https://wiki.gnome.org/Projects/Tracker")
|
(home-page "https://wiki.gnome.org/Projects/Tracker")
|
||||||
(description
|
(description
|
||||||
"Tracker is an advanced framework for first class objects with associated
|
"Tracker is a search engine and triplestore for desktop, embedded and mobile.
|
||||||
metadata and tags. It provides a one stop solution for all metadata, tags,
|
|
||||||
shared object databases, search tools and indexing.")
|
It is a middleware component aimed at desktop application developers who want
|
||||||
|
their apps to browse and search user content. It's not designed to be used
|
||||||
|
directly by desktop users, but it provides a commandline tool named
|
||||||
|
@command{tracker} for the adventurous.
|
||||||
|
|
||||||
|
Tracker allows your application to instantly perform full-text searches across
|
||||||
|
all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
|
||||||
|
example. This is achieved by indexing the user's home directory in the
|
||||||
|
background.
|
||||||
|
|
||||||
|
Tracker also allows your application to query and list content that the user
|
||||||
|
has stored. For example, GNOME Music displays all the music files that are
|
||||||
|
found by Tracker. This means that GNOME Music doesn't need to maintain a
|
||||||
|
database of its own.
|
||||||
|
|
||||||
|
If you need to go beyond simple searches, Tracker is also a linked data
|
||||||
|
endpoint and it understands SPARQL. ")
|
||||||
|
;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
|
||||||
;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
|
;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
|
||||||
;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
|
;; libstemmer is bsd-3 and the rest is gpl2+.
|
||||||
(license (list license:gpl2+
|
(license (list license:gpl2+
|
||||||
license:lgpl2.1+
|
license:bsd-3
|
||||||
license:lgpl2.0+))))
|
license:lgpl2.1+))))
|
||||||
|
|
||||||
(define-public tracker-miners
|
(define-public tracker-miners
|
||||||
(package
|
(package
|
||||||
(name "tracker-miners")
|
(name "tracker-miners")
|
||||||
(version "2.2.2")
|
(version "2.3.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/tracker-miners/"
|
(uri (string-append "mirror://gnome/sources/tracker-miners/"
|
||||||
|
@ -7469,7 +7464,7 @@ shared object databases, search tools and indexing.")
|
||||||
"/tracker-miners-" version ".tar.xz"))
|
"/tracker-miners-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
|
"1kizavw9gbdjkw4wykgv0fcl2y6fj788nycx9p4byn6ylb1277h6"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:glib-or-gtk? #t
|
`(#:glib-or-gtk? #t
|
||||||
|
@ -8696,15 +8691,14 @@ only know by its Unicode name or code point.")
|
||||||
(define-public bluefish
|
(define-public bluefish
|
||||||
(package
|
(package
|
||||||
(name "bluefish")
|
(name "bluefish")
|
||||||
(version "2.2.10")
|
(version "2.2.11")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
|
(uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
|
||||||
name "-" version ".tar.gz"))
|
"bluefish-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
|
||||||
"1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("desktop-file-utils" ,desktop-file-utils)
|
`(("desktop-file-utils" ,desktop-file-utils)
|
||||||
|
@ -8713,7 +8707,7 @@ only know by its Unicode name or code point.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("enchant" ,enchant)
|
`(("enchant" ,enchant)
|
||||||
("gtk+" ,gtk+)
|
("gtk+" ,gtk+)
|
||||||
("python" ,python-2)
|
("python" ,python-wrapper)
|
||||||
("xmllint" ,libxml2)
|
("xmllint" ,libxml2)
|
||||||
("gucharmap" ,gucharmap)))
|
("gucharmap" ,gucharmap)))
|
||||||
(home-page "http://bluefish.openoffice.nl")
|
(home-page "http://bluefish.openoffice.nl")
|
||||||
|
@ -9573,7 +9567,7 @@ for usage on small and big screens.")
|
||||||
(define-public libgit2-glib
|
(define-public libgit2-glib
|
||||||
(package
|
(package
|
||||||
(name "libgit2-glib")
|
(name "libgit2-glib")
|
||||||
(version "0.28.0.1")
|
(version "0.99.0.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
@ -9581,19 +9575,20 @@ for usage on small and big screens.")
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
|
"1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("glib:bin" ,glib "bin") ;; For glib-mkenums
|
`(("glib:bin" ,glib "bin") ;; For glib-mkenums
|
||||||
("gobject-introspection" ,gobject-introspection)
|
("gobject-introspection" ,gobject-introspection)
|
||||||
("intltool" ,intltool)
|
|
||||||
("libssh2" ,libssh2)
|
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("python-pygobject" ,python-pygobject)
|
("python-pygobject" ,python-pygobject)
|
||||||
("python-wrapper" ,python-wrapper)
|
("python-wrapper" ,python-wrapper)
|
||||||
("vala" ,vala)))
|
("vala" ,vala)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("glib" ,glib)
|
`(("glib" ,glib)
|
||||||
|
("libssh2" ,libssh2)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(;; In Requires of libgit2-glib.pc.
|
||||||
("libgit2" ,libgit2)))
|
("libgit2" ,libgit2)))
|
||||||
(synopsis "GLib wrapper around the libgit2 Git access library")
|
(synopsis "GLib wrapper around the libgit2 Git access library")
|
||||||
(description "libgit2-glib is a GLib wrapper library around the libgit2 Git
|
(description "libgit2-glib is a GLib wrapper library around the libgit2 Git
|
||||||
|
@ -9647,7 +9642,6 @@ higher level porcelain stuff.")
|
||||||
("json-glib" ,json-glib)
|
("json-glib" ,json-glib)
|
||||||
("libdazzle" ,libdazzle)
|
("libdazzle" ,libdazzle)
|
||||||
("libgee" ,libgee)
|
("libgee" ,libgee)
|
||||||
("libgit2" ,libgit2) ; propagated by libgit2-glib
|
|
||||||
("libgit2-glib" ,libgit2-glib)
|
("libgit2-glib" ,libgit2-glib)
|
||||||
("libpeas" ,libpeas)
|
("libpeas" ,libpeas)
|
||||||
("libsecret" ,libsecret)
|
("libsecret" ,libsecret)
|
||||||
|
@ -9835,3 +9829,58 @@ index files needed for Adwaita to be used outside of GNOME.")
|
||||||
integrate seamlessly with the GNOME desktop.")
|
integrate seamlessly with the GNOME desktop.")
|
||||||
(home-page "https://wiki.gnome.org/Apps/Polari")
|
(home-page "https://wiki.gnome.org/Apps/Polari")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public gnome-boxes
|
||||||
|
(package
|
||||||
|
(name "gnome-boxes")
|
||||||
|
(version "3.35.91")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnome/sources/gnome-boxes/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
"gnome-boxes-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
|
||||||
|
(build-system meson-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:glib-or-gtk? #t
|
||||||
|
#:configure-flags (list "-Drdp=false"
|
||||||
|
(string-append "-Dc_link_args=-Wl,-rpath="
|
||||||
|
(assoc-ref %outputs "out")
|
||||||
|
"/lib/gnome-boxes"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("glib:bin" ,glib "bin") ; for glib-compile-resources
|
||||||
|
("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
|
||||||
|
("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
|
||||||
|
("itstool" ,itstool)
|
||||||
|
("intltool" ,intltool)
|
||||||
|
("vala" ,vala)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("libarchive" ,libarchive)
|
||||||
|
("gtk" ,gtk+)
|
||||||
|
("gtk-vnc" ,gtk-vnc)
|
||||||
|
("libosinfo" ,libosinfo)
|
||||||
|
("libsecret" ,libsecret)
|
||||||
|
("libsoup" ,libsoup)
|
||||||
|
("libusb" ,libusb)
|
||||||
|
("libvirt" ,libvirt)
|
||||||
|
("libvirt-glib" ,libvirt-glib)
|
||||||
|
("libxml" ,libxml2)
|
||||||
|
("spice-gtk" ,spice-gtk)
|
||||||
|
("sparql-query" ,sparql-query)
|
||||||
|
("vte" ,vte)
|
||||||
|
("webkitgtk" ,webkitgtk)
|
||||||
|
("tracker" ,tracker)
|
||||||
|
("libgudev" ,libgudev)))
|
||||||
|
(home-page "https://wiki.gnome.org/Apps/Boxes")
|
||||||
|
(synopsis "View, access, and manage remote and virtual systems")
|
||||||
|
(description "GNOME Boxes is a simple application to view, access, and
|
||||||
|
manage remote and virtual systems.")
|
||||||
|
(license (list
|
||||||
|
;; For data/icons/empty-boxes.png.
|
||||||
|
license:cc-by2.0
|
||||||
|
;; For all others.
|
||||||
|
license:lgpl2.0+))))
|
||||||
|
|
|
@ -554,8 +554,8 @@ from forcing GEXP-PROMISE."
|
||||||
#:system system
|
#:system system
|
||||||
#:guile-for-build guile)))
|
#:guile-for-build guile)))
|
||||||
|
|
||||||
(define %icecat-version "68.5.0-guix0-preview1")
|
(define %icecat-version "68.6.0-guix0-preview1")
|
||||||
(define %icecat-build-id "20200211000000") ;must be of the form YYYYMMDDhhmmss
|
(define %icecat-build-id "20200309000000") ;must be of the form YYYYMMDDhhmmss
|
||||||
|
|
||||||
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
|
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
|
||||||
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
|
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
|
||||||
|
@ -577,11 +577,11 @@ from forcing GEXP-PROMISE."
|
||||||
"firefox-" upstream-firefox-version ".source.tar.xz"))
|
"firefox-" upstream-firefox-version ".source.tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ld6jinnln0si6p8qy93v5nzd21ckhl266vz425lwqipibwq9rsj"))))
|
"17qwfq9hwra8jarawy8k2sqfa6hdhwa9qk84ndr6gjvmxcy22a14"))))
|
||||||
|
|
||||||
(upstream-icecat-base-version "68.5.0") ; maybe older than base-version
|
(upstream-icecat-base-version "68.6.0") ; maybe older than base-version
|
||||||
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
|
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
|
||||||
(gnuzilla-commit "2dc3c0bed6f8a41a8426ae66db92729af5c27c70")
|
(gnuzilla-commit "9dcb24d885eae5973eb2245b532b158c685d707a")
|
||||||
(gnuzilla-source
|
(gnuzilla-source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -593,7 +593,7 @@ from forcing GEXP-PROMISE."
|
||||||
(string-take gnuzilla-commit 8)))
|
(string-take gnuzilla-commit 8)))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1xwr1xjs4j2i6skm8hknh37gzsd6r396n0lchbwlahig7w6z506y"))))
|
"1y3jmh055vmx44gsjgwxvwv3zcyvz8pc5mhgrwkzm0ybbwpp2pqi"))))
|
||||||
|
|
||||||
(makeicecat-patch
|
(makeicecat-patch
|
||||||
(local-file (search-patch "icecat-makeicecat.patch"))))
|
(local-file (search-patch "icecat-makeicecat.patch"))))
|
||||||
|
|
|
@ -3197,7 +3197,7 @@ are semantically equal in Go (for writing tests).")
|
||||||
(arguments
|
(arguments
|
||||||
'(#:import-path "golang.org/x/sync/errgroup"
|
'(#:import-path "golang.org/x/sync/errgroup"
|
||||||
#:unpack-path "golang.org/x/sync"))
|
#:unpack-path "golang.org/x/sync"))
|
||||||
(synopsis "Synchronization, error propagation, and Context cancelation
|
(synopsis "Synchronization, error propagation, and Context cancellation
|
||||||
for groups of goroutines working on subtasks of a common task.")
|
for groups of goroutines working on subtasks of a common task.")
|
||||||
(description "This package provides synchronization, error propagation,
|
(description "This package provides synchronization, error propagation,
|
||||||
and Context cancelation for groups of goroutines working on subtasks of a
|
and Context cancelation for groups of goroutines working on subtasks of a
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
|
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
|
||||||
|
@ -80,8 +80,10 @@
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages sdl)
|
#:use-module (gnu packages sdl)
|
||||||
|
#:use-module (gnu packages search)
|
||||||
#:use-module (gnu packages slang)
|
#:use-module (gnu packages slang)
|
||||||
#:use-module (gnu packages sqlite)
|
#:use-module (gnu packages sqlite)
|
||||||
|
#:use-module (gnu packages swig)
|
||||||
#:use-module (gnu packages tex)
|
#:use-module (gnu packages tex)
|
||||||
#:use-module (gnu packages texinfo)
|
#:use-module (gnu packages texinfo)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
|
@ -3096,3 +3098,49 @@ currently a re-implementation of the lentes library for Clojure. Lenses
|
||||||
provide composable procedures, which can be used to focus, apply functions
|
provide composable procedures, which can be used to focus, apply functions
|
||||||
over, or update a value in arbitrary data structures.")
|
over, or update a value in arbitrary data structures.")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public guile-xapian
|
||||||
|
(let ((commit "ede26b808188eb4d14c6b4181c933dfc09c0a22e")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "guile-xapian")
|
||||||
|
(version (git-version "0" revision commit))
|
||||||
|
(home-page "https://git.systemreboot.net/guile-xapian")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference (url home-page)
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"07a9fmqi3pm6mbbpzi01mjwrqwnljs2rnc3603sq49dz4lf663gb"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
|
||||||
|
(inputs
|
||||||
|
`(("guile" ,guile-2.2)
|
||||||
|
("xapian" ,xapian)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(native-inputs
|
||||||
|
`(("autoconf" ,autoconf)
|
||||||
|
("autoconf-archive" ,autoconf-archive)
|
||||||
|
("automake" ,automake)
|
||||||
|
("libtool" ,libtool)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("swig" ,swig)))
|
||||||
|
(synopsis "Guile bindings for Xapian")
|
||||||
|
(description "@code{guile-xapian} provides Guile bindings for Xapian, a
|
||||||
|
search engine library. Xapian is a highly adaptable toolkit which allows
|
||||||
|
developers to easily add advanced indexing and search facilities to their own
|
||||||
|
applications. It has built-in support for several families of weighting
|
||||||
|
models and also supports a rich set of boolean query operators.")
|
||||||
|
(license license:gpl2+))))
|
||||||
|
|
||||||
|
(define-public guile3.0-xapian
|
||||||
|
(package
|
||||||
|
(inherit guile-xapian)
|
||||||
|
(name "guile3.0-xapian")
|
||||||
|
(inputs
|
||||||
|
`(("guile" ,guile-next)
|
||||||
|
,@(alist-delete "guile" (package-inputs guile-xapian))))))
|
||||||
|
|
|
@ -251,6 +251,22 @@ without requiring the source code to be rewritten.")
|
||||||
(variable "GUILE_LOAD_COMPILED_PATH")
|
(variable "GUILE_LOAD_COMPILED_PATH")
|
||||||
(files '("lib/guile/2.2/site-ccache")))))))
|
(files '("lib/guile/2.2/site-ccache")))))))
|
||||||
|
|
||||||
|
(define-public guile-2.2.7
|
||||||
|
;; This version contains a bug fix for a relatively rare crash that could
|
||||||
|
;; affect shepherd as PID 1: <https://bugs.gnu.org/37757>.
|
||||||
|
(package
|
||||||
|
(inherit guile-2.2)
|
||||||
|
(version "2.2.7")
|
||||||
|
(source (origin
|
||||||
|
(inherit (package-source guile-2.2))
|
||||||
|
(uri (string-append "mirror://gnu/guile/guile-" version
|
||||||
|
".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd"))))))
|
||||||
|
|
||||||
|
(define-deprecated guile-2.2/bug-fix guile-2.2.7)
|
||||||
|
|
||||||
(define-public guile-2.2/fixed
|
(define-public guile-2.2/fixed
|
||||||
;; A package of Guile 2.2 that's rarely changed. It is the one used
|
;; A package of Guile 2.2 that's rarely changed. It is the one used
|
||||||
;; in the `base' module, and thus changing it entails a full rebuild.
|
;; in the `base' module, and thus changing it entails a full rebuild.
|
||||||
|
@ -277,15 +293,18 @@ without requiring the source code to be rewritten.")
|
||||||
(package
|
(package
|
||||||
(inherit guile-2.2)
|
(inherit guile-2.2)
|
||||||
(name "guile-next") ;to be renamed to "guile"
|
(name "guile-next") ;to be renamed to "guile"
|
||||||
(version "3.0.0")
|
(version "3.0.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(inherit (package-source guile-2.2))
|
(inherit (package-source guile-2.2))
|
||||||
(uri (string-append "ftp://ftp.gnu.org/gnu/guile/guile-"
|
(uri (string-append "mirror://gnu/guile/guile-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0x8ca6q1qdmk29lh12gj6ngvgn7kp79w42rxfgwrpxm9jmjqs4y9"))
|
"1jakps3127h8g69ixgb4zwc8v2g29dmwql1vi3pwg30kzp8fm5nn"))
|
||||||
(patches (search-patches "guile-2.2-skip-oom-test.patch"))))
|
(patches
|
||||||
|
(append (search-patches "guile-3.0-crash.patch")
|
||||||
|
(origin-patches (package-source guile-2.2))))))
|
||||||
|
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments guile-2.2)
|
(substitute-keyword-arguments (package-arguments guile-2.2)
|
||||||
;; XXX: On ARMv7, work around <https://bugs.gnu.org/39208> by disabling
|
;; XXX: On ARMv7, work around <https://bugs.gnu.org/39208> by disabling
|
||||||
|
|
|
@ -269,14 +269,14 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
|
||||||
(define-public git-annex
|
(define-public git-annex
|
||||||
(package
|
(package
|
||||||
(name "git-annex")
|
(name "git-annex")
|
||||||
(version "8.20200226")
|
(version "8.20200309")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://hackage.haskell.org/package/"
|
(uri (string-append "https://hackage.haskell.org/package/"
|
||||||
"git-annex/git-annex-" version ".tar.gz"))
|
"git-annex/git-annex-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "09v80ni1w9z1im79lzrnpz7xlivwna44zqpwq4axwyd17cffqi9m"))))
|
(base32 "1yjb01jh5rccqg44nqh4iyxmbpkcpm6m82lnw7s0s2vizj8891p5"))))
|
||||||
(build-system haskell-build-system)
|
(build-system haskell-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
|
@ -615,7 +615,7 @@ Wayland, and Linux console environments alike.")
|
||||||
("ghc-sdl2" ,ghc-sdl2)
|
("ghc-sdl2" ,ghc-sdl2)
|
||||||
("ghc-sdl2-image" ,ghc-sdl2-image)
|
("ghc-sdl2-image" ,ghc-sdl2-image)
|
||||||
("ghc-sdl2-mixer" ,ghc-sdl2-mixer)))
|
("ghc-sdl2-mixer" ,ghc-sdl2-mixer)))
|
||||||
(home-page "http://www.bysusanlin.com/raincat/")
|
(home-page "https://www.gamecreation.org/games/raincat")
|
||||||
(synopsis "Puzzle game with a cat in lead role")
|
(synopsis "Puzzle game with a cat in lead role")
|
||||||
(description "Project Raincat is a game developed by Carnegie Mellon
|
(description "Project Raincat is a game developed by Carnegie Mellon
|
||||||
students through GCS during the Fall 2008 semester. Raincat features game
|
students through GCS during the Fall 2008 semester. Raincat features game
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
(list (search-path-specification
|
(list (search-path-specification
|
||||||
(variable "IDRIS_LIBRARY_PATH")
|
(variable "IDRIS_LIBRARY_PATH")
|
||||||
(files '("lib/idris")))))
|
(files '("lib/idris")))))
|
||||||
(home-page "http://www.idris-lang.org")
|
(home-page "https://www.idris-lang.org")
|
||||||
(synopsis "General purpose language with full dependent types")
|
(synopsis "General purpose language with full dependent types")
|
||||||
(description "Idris is a general purpose language with full dependent
|
(description "Idris is a general purpose language with full dependent
|
||||||
types. It is compiled, with eager evaluation. Dependent types allow types to
|
types. It is compiled, with eager evaluation. Dependent types allow types to
|
||||||
|
|
|
@ -1298,7 +1298,7 @@ ISO/IEC 15444-1).")
|
||||||
(define-public zimg
|
(define-public zimg
|
||||||
(package
|
(package
|
||||||
(name "zimg")
|
(name "zimg")
|
||||||
(version "2.9.2")
|
(version "2.9.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1307,7 +1307,7 @@ ISO/IEC 15444-1).")
|
||||||
(commit (string-append "release-" version))))
|
(commit (string-append "release-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0jlgrlfs9maixd8mx7gk2kfawz8ixnihkxi7vhyzfy1gq49vmxm2"))))
|
(base32 "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("autoconf" ,autoconf)
|
`(("autoconf" ,autoconf)
|
||||||
|
|
|
@ -2353,6 +2353,12 @@ new Date();"))
|
||||||
(string-join (string-split version #\.) "u")
|
(string-join (string-split version #\.) "u")
|
||||||
"-ga"))))
|
"-ga"))))
|
||||||
(file-name (string-append name "-" version "-checkout"))
|
(file-name (string-append name "-" version "-checkout"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Delete included gradle jar
|
||||||
|
(delete-file-recursively "gradle/wrapper")
|
||||||
|
#t))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f"))))
|
"0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f"))))
|
||||||
|
@ -3524,7 +3530,7 @@ testing frameworks, mocking libraries and UI validation rules.")
|
||||||
#:jar-name "junit.jar"))
|
#:jar-name "junit.jar"))
|
||||||
(inputs
|
(inputs
|
||||||
`(("java-hamcrest-core" ,java-hamcrest-core)))
|
`(("java-hamcrest-core" ,java-hamcrest-core)))
|
||||||
(home-page "http://junit.org/")
|
(home-page "https://junit.org/")
|
||||||
(synopsis "Test framework for Java")
|
(synopsis "Test framework for Java")
|
||||||
(description
|
(description
|
||||||
"JUnit is a simple framework to write repeatable tests for Java projects.
|
"JUnit is a simple framework to write repeatable tests for Java projects.
|
||||||
|
@ -4674,7 +4680,7 @@ overly clever.")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)
|
`(("java-junit" ,java-junit)
|
||||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||||
(home-page "http://commons.apache.org/math/")
|
(home-page "https://commons.apache.org/math/")
|
||||||
(synopsis "Apache Commons mathematics library")
|
(synopsis "Apache Commons mathematics library")
|
||||||
(description "Commons Math is a library of lightweight, self-contained
|
(description "Commons Math is a library of lightweight, self-contained
|
||||||
mathematics and statistics components addressing the most common problems not
|
mathematics and statistics components addressing the most common problems not
|
||||||
|
@ -4856,7 +4862,7 @@ are many features, including:
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("junit" ,java-junit)
|
`(("junit" ,java-junit)
|
||||||
("collections-test" ,java-commons-collections-test-classes)))
|
("collections-test" ,java-commons-collections-test-classes)))
|
||||||
(home-page "http://commons.apache.org/beanutils/")
|
(home-page "https://commons.apache.org/beanutils/")
|
||||||
(synopsis "Dynamically set or get properties in Java")
|
(synopsis "Dynamically set or get properties in Java")
|
||||||
(description "BeanUtils provides a simplified interface to reflection and
|
(description "BeanUtils provides a simplified interface to reflection and
|
||||||
introspection to set or get dynamically determined properties through their
|
introspection to set or get dynamically determined properties through their
|
||||||
|
@ -4891,7 +4897,7 @@ setter and getter method.")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)
|
`(("java-junit" ,java-junit)
|
||||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||||
(home-page "http://commons.apache.org/io/")
|
(home-page "https://commons.apache.org/io/")
|
||||||
(synopsis "Common useful IO related classes")
|
(synopsis "Common useful IO related classes")
|
||||||
(description "Commons-IO contains utility classes, stream implementations,
|
(description "Commons-IO contains utility classes, stream implementations,
|
||||||
file filters and endian classes.")
|
file filters and endian classes.")
|
||||||
|
@ -5007,7 +5013,7 @@ time/FastDateFormatTest.java"
|
||||||
(add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
|
(add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)))
|
`(("java-junit" ,java-junit)))
|
||||||
(home-page "http://commons.apache.org/lang/")
|
(home-page "https://commons.apache.org/lang/")
|
||||||
(synopsis "Extension of the java.lang package")
|
(synopsis "Extension of the java.lang package")
|
||||||
(description "The Commons Lang components contains a set of Java classes
|
(description "The Commons Lang components contains a set of Java classes
|
||||||
that provide helper methods for standard Java classes, especially those found
|
that provide helper methods for standard Java classes, especially those found
|
||||||
|
@ -5071,7 +5077,7 @@ included:
|
||||||
("java-commons-io" ,java-commons-io)
|
("java-commons-io" ,java-commons-io)
|
||||||
("java-hamcrest-all" ,java-hamcrest-all)
|
("java-hamcrest-all" ,java-hamcrest-all)
|
||||||
("java-easymock" ,java-easymock)))
|
("java-easymock" ,java-easymock)))
|
||||||
(home-page "http://commons.apache.org/lang/")
|
(home-page "https://commons.apache.org/lang/")
|
||||||
(synopsis "Extension of the java.lang package")
|
(synopsis "Extension of the java.lang package")
|
||||||
(description "The Commons Lang components contains a set of Java classes
|
(description "The Commons Lang components contains a set of Java classes
|
||||||
that provide helper methods for standard Java classes, especially those found
|
that provide helper methods for standard Java classes, especially those found
|
||||||
|
@ -5179,7 +5185,7 @@ these scripting language engines.")
|
||||||
("java-commons-beanutils" ,java-commons-beanutils)))
|
("java-commons-beanutils" ,java-commons-beanutils)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)))
|
`(("java-junit" ,java-junit)))
|
||||||
(home-page "http://commons.apache.org/jxpath/")
|
(home-page "https://commons.apache.org/jxpath/")
|
||||||
(synopsis "Simple interpreter of an expression language called XPath.")
|
(synopsis "Simple interpreter of an expression language called XPath.")
|
||||||
(description "The org.apache.commons.jxpath package defines a simple
|
(description "The org.apache.commons.jxpath package defines a simple
|
||||||
interpreter of an expression language called XPath. JXPath applies XPath
|
interpreter of an expression language called XPath. JXPath applies XPath
|
||||||
|
@ -5438,7 +5444,7 @@ more!")
|
||||||
"LogKitLogger.java"))
|
"LogKitLogger.java"))
|
||||||
(delete-file-recursively "src/test")
|
(delete-file-recursively "src/test")
|
||||||
#t)))))
|
#t)))))
|
||||||
(home-page "http://commons.apache.org/logging/")
|
(home-page "https://commons.apache.org/logging/")
|
||||||
(synopsis "Common API for logging implementations")
|
(synopsis "Common API for logging implementations")
|
||||||
(description "The Logging package is a thin bridge between different
|
(description "The Logging package is a thin bridge between different
|
||||||
logging implementations. A library that uses the commons-logging API can be
|
logging implementations. A library that uses the commons-logging API can be
|
||||||
|
@ -5655,7 +5661,7 @@ standards and recommendations.")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)
|
`(("java-junit" ,java-junit)
|
||||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||||
(home-page "http://commons.apache.org/net/")
|
(home-page "https://commons.apache.org/net/")
|
||||||
(synopsis "Client library for many basic Internet protocols")
|
(synopsis "Client library for many basic Internet protocols")
|
||||||
(description "The Apache Commons Net library implements the client side of
|
(description "The Apache Commons Net library implements the client side of
|
||||||
many basic Internet protocols. The purpose of the library is to provide
|
many basic Internet protocols. The purpose of the library is to provide
|
||||||
|
@ -6497,7 +6503,7 @@ JavaMail API.")
|
||||||
`(("java-osgi-core" ,java-osgi-core)
|
`(("java-osgi-core" ,java-osgi-core)
|
||||||
("java-hamcrest-core" ,java-hamcrest-core)
|
("java-hamcrest-core" ,java-hamcrest-core)
|
||||||
("java-junit" ,java-junit)))
|
("java-junit" ,java-junit)))
|
||||||
(home-page "http://logging.apache.org/log4j/2.x/")
|
(home-page "https://logging.apache.org/log4j/2.x/")
|
||||||
(synopsis "API module of the Log4j logging framework for Java")
|
(synopsis "API module of the Log4j logging framework for Java")
|
||||||
(description
|
(description
|
||||||
"This package provides the API module of the Log4j logging framework for
|
"This package provides the API module of the Log4j logging framework for
|
||||||
|
@ -6665,7 +6671,7 @@ This is a part of the Apache Commons Project.")
|
||||||
(add-after 'install 'install-doc (install-javadoc "dist/docs/api")))))
|
(add-after 'install 'install-doc (install-javadoc "dist/docs/api")))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)))
|
`(("java-junit" ,java-junit)))
|
||||||
(home-page "http://commons.apache.org/daemon/")
|
(home-page "https://commons.apache.org/daemon/")
|
||||||
(synopsis "Library to launch Java applications as daemons")
|
(synopsis "Library to launch Java applications as daemons")
|
||||||
(description "The Daemon package from Apache Commons can be used to
|
(description "The Daemon package from Apache Commons can be used to
|
||||||
implement Java applications which can be launched as daemons. For example the
|
implement Java applications which can be launched as daemons. For example the
|
||||||
|
@ -9161,7 +9167,7 @@ those in Perl and JavaScript.")
|
||||||
("cglib" ,java-cglib)
|
("cglib" ,java-cglib)
|
||||||
("asm" ,java-asm)
|
("asm" ,java-asm)
|
||||||
("aopalliance" ,java-aopalliance)))
|
("aopalliance" ,java-aopalliance)))
|
||||||
(home-page "http://testng.org")
|
(home-page "https://testng.org")
|
||||||
(synopsis "Testing framework")
|
(synopsis "Testing framework")
|
||||||
(description "TestNG is a testing framework inspired from JUnit and NUnit
|
(description "TestNG is a testing framework inspired from JUnit and NUnit
|
||||||
but introducing some new functionalities that make it more powerful and easier
|
but introducing some new functionalities that make it more powerful and easier
|
||||||
|
@ -10260,7 +10266,7 @@ Dependency Injection (CDI).")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("java-junit" ,java-junit)
|
`(("java-junit" ,java-junit)
|
||||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||||
(home-page "http://www.joda.org/joda-convert/")
|
(home-page "https://www.joda.org/joda-convert/")
|
||||||
(synopsis "Conversion between Objects and Strings")
|
(synopsis "Conversion between Objects and Strings")
|
||||||
(description "Joda-Convert provides a small set of classes to aid
|
(description "Joda-Convert provides a small set of classes to aid
|
||||||
conversion between Objects and Strings. It is not intended to tackle the
|
conversion between Objects and Strings. It is not intended to tackle the
|
||||||
|
@ -10631,7 +10637,7 @@ against expected outcomes.")
|
||||||
`(("unzip" ,unzip)
|
`(("unzip" ,unzip)
|
||||||
("java-junit" ,java-junit)
|
("java-junit" ,java-junit)
|
||||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||||
(home-page "http://approximatrix.com/products/openchart2/")
|
(home-page "https://approximatrix.com/products/openchart2/")
|
||||||
(synopsis "Simple plotting for Java")
|
(synopsis "Simple plotting for Java")
|
||||||
(description "Openchart2 provides a simple, yet powerful, interface for
|
(description "Openchart2 provides a simple, yet powerful, interface for
|
||||||
Java programmers to create two-dimensional charts and plots. The library
|
Java programmers to create two-dimensional charts and plots. The library
|
||||||
|
@ -10727,7 +10733,7 @@ authentication, HTTP state management, and HTTP connection management.")
|
||||||
("java-commons-logging-minimal" ,java-commons-logging-minimal)
|
("java-commons-logging-minimal" ,java-commons-logging-minimal)
|
||||||
("java-commons-net" ,java-commons-net)
|
("java-commons-net" ,java-commons-net)
|
||||||
("java-jsch" ,java-jsch)))
|
("java-jsch" ,java-jsch)))
|
||||||
(home-page "http://commons.apache.org/proper/commons-vfs/")
|
(home-page "https://commons.apache.org/proper/commons-vfs/")
|
||||||
(synopsis "Java file system library")
|
(synopsis "Java file system library")
|
||||||
(description "Commons VFS provides a single API for accessing various
|
(description "Commons VFS provides a single API for accessing various
|
||||||
different file systems. It presents a uniform view of the files from various
|
different file systems. It presents a uniform view of the files from various
|
||||||
|
|
|
@ -688,6 +688,8 @@ Its features include:
|
||||||
("solid" ,solid)))
|
("solid" ,solid)))
|
||||||
(home-page "https://cgit.kde.org/libkcompactdisc.git/")
|
(home-page "https://cgit.kde.org/libkcompactdisc.git/")
|
||||||
(synopsis "KDE library for playing & ripping CDs")
|
(synopsis "KDE library for playing & ripping CDs")
|
||||||
(description "KDE library for playing & ripping CDs.")
|
(description "The KDE Compact Disc library provides an API for
|
||||||
|
applications using the KDE Platform to interface with the CD drives for audio
|
||||||
|
CDs.")
|
||||||
(license ;; GPL for programs, LGPL for libraries
|
(license ;; GPL for programs, LGPL for libraries
|
||||||
(list license:gpl2+ license:lgpl2.0+))))
|
(list license:gpl2+ license:lgpl2.0+))))
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
(patches (search-patches
|
(patches (search-patches
|
||||||
"akonadi-paths.patch"
|
"akonadi-paths.patch"
|
||||||
"akonadi-timestamps.patch"
|
"akonadi-timestamps.patch"
|
||||||
"akonadi-Revert-Make-installation-properly-relocatabl.patch"))))
|
"akonadi-Revert-Make-installation-properly-relo.patch"))))
|
||||||
(build-system qt-build-system)
|
(build-system qt-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||||
|
@ -329,8 +329,8 @@ wrapping notes into KMime::Message objects.")
|
||||||
`(#:tests? #f)) ;; TODO: needs dbus
|
`(#:tests? #f)) ;; TODO: needs dbus
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
|
||||||
(synopsis "Akonadi search library")
|
(synopsis "Akonadi search library")
|
||||||
(description "Xapian-based indexing and query infrastructure for
|
(description "This package provides a library used to search in the
|
||||||
Akonadi.")
|
Akonadi PIM data server. It uses Xapian for indexing and querying.")
|
||||||
(license ;; GPL for programs, LGPL for libraries
|
(license ;; GPL for programs, LGPL for libraries
|
||||||
(list license:gpl2+ license:lgpl2.0+))))
|
(list license:gpl2+ license:lgpl2.0+))))
|
||||||
|
|
||||||
|
@ -371,7 +371,8 @@ Akonadi.")
|
||||||
`(#:tests? #f)) ;; TODO: TZ setup
|
`(#:tests? #f)) ;; TODO: TZ setup
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Library for handling kalarm calendar data")
|
(synopsis "Library for handling kalarm calendar data")
|
||||||
(description "This library provides an API for KAlarm alarms.")
|
(description "This library provides access to and handling of kalarm
|
||||||
|
calendar data.")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public kcalutils
|
(define-public kcalutils
|
||||||
|
@ -454,7 +455,8 @@ functions for accessing calendar data using the kcalcore API.")
|
||||||
("qtbase" ,qtbase)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://cgit.kde.org/kdepim-apps-libs.git")
|
(home-page "https://cgit.kde.org/kdepim-apps-libs.git")
|
||||||
(synopsis "KDE PIM mail related libraries and data files")
|
(synopsis "KDE PIM mail related libraries and data files")
|
||||||
(description "KDE PIM mail related libraries and data files.")
|
(description "This packages provides mail related libraries and data files
|
||||||
|
for KDE PIM.")
|
||||||
(license ;; GPL for programs, LGPL for libraries
|
(license ;; GPL for programs, LGPL for libraries
|
||||||
(list license:gpl2+ license:lgpl2.0+))))
|
(list license:gpl2+ license:lgpl2.0+))))
|
||||||
|
|
||||||
|
@ -541,7 +543,7 @@ cryptography to the contents of the clipboard.")
|
||||||
#t)))))
|
#t)))))
|
||||||
(home-page "https://kontact.kde.org/")
|
(home-page "https://kontact.kde.org/")
|
||||||
(synopsis "Library for shared identities between mail applications")
|
(synopsis "Library for shared identities between mail applications")
|
||||||
(description "Library for shared identities between mail applications.")
|
(description "This library provides an API for managing user identities.")
|
||||||
(license ;; GPL for programs, LGPL for libraries, FDL for documentation
|
(license ;; GPL for programs, LGPL for libraries, FDL for documentation
|
||||||
(list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
|
(list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
|
||||||
|
|
||||||
|
@ -601,7 +603,9 @@ easier to do so.")
|
||||||
("openldap" ,openldap)))
|
("openldap" ,openldap)))
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Library for accessing LDAP")
|
(synopsis "Library for accessing LDAP")
|
||||||
(description "This library provides an API for LDAP.")
|
(description " This is a library for accessing LDAP with a convenient Qt
|
||||||
|
style C++ API. LDAP (Lightweight Directory Access Protocol) is an application
|
||||||
|
protocol for querying and modifying directory services running over TCP/IP. ")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public kleopatra
|
(define-public kleopatra
|
||||||
|
@ -694,7 +698,8 @@ and retrieving certificates from LDAP servers.")
|
||||||
("qtbase" ,qtbase)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://cgit.kde.org/mailimporter.git")
|
(home-page "https://cgit.kde.org/mailimporter.git")
|
||||||
(synopsis "KDE mail importer library")
|
(synopsis "KDE mail importer library")
|
||||||
(description "KDE mail importer library.")
|
(description "This package provides libraries for importing mails other
|
||||||
|
e-mail client programs into KMail and KDE PIM.")
|
||||||
(license ;; GPL for programs, LGPL for libraries
|
(license ;; GPL for programs, LGPL for libraries
|
||||||
(list license:gpl2+ license:lgpl2.0+))))
|
(list license:gpl2+ license:lgpl2.0+))))
|
||||||
|
|
||||||
|
@ -736,7 +741,7 @@ and retrieving certificates from LDAP servers.")
|
||||||
`(#:tests? #f)) ;; TODO - 3/3 tests fail, require drkonqi
|
`(#:tests? #f)) ;; TODO - 3/3 tests fail, require drkonqi
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Mail transport service library")
|
(synopsis "Mail transport service library")
|
||||||
(description " This library provides an API and support code for managing
|
(description "This library provides an API and support code for managing
|
||||||
mail transport.")
|
mail transport.")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
|
@ -760,7 +765,8 @@ mail transport.")
|
||||||
("qtbase" ,qtbase)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Library for handling mbox mailboxes")
|
(synopsis "Library for handling mbox mailboxes")
|
||||||
(description "A library for accessing mail storages in MBox format.")
|
(description "This is a library for handling mailboxes in mbox format,
|
||||||
|
using a Qt/KMime C++ API.")
|
||||||
(license license:lgpl2.0+ )))
|
(license license:lgpl2.0+ )))
|
||||||
|
|
||||||
(define-public kmime
|
(define-public kmime
|
||||||
|
@ -794,7 +800,11 @@ mail transport.")
|
||||||
#t)))))
|
#t)))))
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Library for handling MIME data")
|
(synopsis "Library for handling MIME data")
|
||||||
(description "A library for MIME handling.")
|
(description "This library provides an API for handling MIME
|
||||||
|
data. MIME (Multipurpose Internet Mail Extensions) is an Internet Standard
|
||||||
|
that extends the format of e-mail to support text in character sets other than
|
||||||
|
US-ASCII, non-text attachments, multi-part message bodies, and header
|
||||||
|
information in non-ASCII character sets.")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public kontactinterface
|
(define-public kontactinterface
|
||||||
|
@ -821,7 +831,8 @@ mail transport.")
|
||||||
("qtbase" ,qtbase)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Kontact interface library")
|
(synopsis "Kontact interface library")
|
||||||
(description "Kontact Interface library.")
|
(description " This library provides the glue necessary for
|
||||||
|
application \"Parts\" to be embedded as a Kontact component (or plugin).")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public kpimcommon
|
(define-public kpimcommon
|
||||||
|
@ -881,8 +892,8 @@ mail transport.")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;; TODO tests hang
|
`(#:tests? #f)) ;; TODO tests hang
|
||||||
(home-page "https://cgit.kde.org/pimcommon.git")
|
(home-page "https://cgit.kde.org/pimcommon.git")
|
||||||
(synopsis "Common library for KDE PIM")
|
(synopsis "Common libraries for KDE PIM")
|
||||||
(description "Common library for KDE PIM.")
|
(description "This package provides common libraries for KDE PIM.")
|
||||||
(license ;; GPL for programs, LGPL for libraries
|
(license ;; GPL for programs, LGPL for libraries
|
||||||
(list license:gpl2+ license:lgpl2.0+))))
|
(list license:gpl2+ license:lgpl2.0+))))
|
||||||
|
|
||||||
|
@ -922,7 +933,9 @@ mail transport.")
|
||||||
`(#:tests? #f)) ;; TODO - test suite hangs
|
`(#:tests? #f)) ;; TODO - test suite hangs
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||||
(synopsis "Library providing a textedit with PIM-specific features")
|
(synopsis "Library providing a textedit with PIM-specific features")
|
||||||
(description "A library for PIM-specific text editing utilities.")
|
(description "This package provides a textedit with PIM-specific features.
|
||||||
|
It also provides so-called rich text builders which can convert the formatted
|
||||||
|
text in the text edit to all kinds of markup, like HTML or BBCODE.")
|
||||||
(license ;; GPL for programs, LGPL for libraries, FDL for documentation
|
(license ;; GPL for programs, LGPL for libraries, FDL for documentation
|
||||||
(list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
|
(list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
|
||||||
|
|
||||||
|
@ -990,8 +1003,12 @@ standard protocols for e-mail transmission.")
|
||||||
("ki18n" ,ki18n)
|
("ki18n" ,ki18n)
|
||||||
("qtbase" ,qtbase)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
|
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
|
||||||
(synopsis "Viewer for mail attachments using TNEF format")
|
(synopsis "Library for handling mail attachments using TNEF format")
|
||||||
(description "Viewer for mail attachments using TNEF format")
|
(description "Ktnef is a library for handling data in the TNEF
|
||||||
|
format (Transport Neutral Encapsulation Format, a proprietary format of e-mail
|
||||||
|
attachment used by Microsoft Outlook and Microsoft Exchange Server). The API
|
||||||
|
permits access to the actual attachments, the message properties (TNEF/MAPI),
|
||||||
|
and allows one to view/extract message formatted text in Rich Text Format.")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public libkdepim
|
(define-public libkdepim
|
||||||
|
@ -1037,8 +1054,8 @@ standard protocols for e-mail transmission.")
|
||||||
("kwidgetsaddons" ,kwidgetsaddons)
|
("kwidgetsaddons" ,kwidgetsaddons)
|
||||||
("qtbase" ,qtbase)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://cgit.kde.org/libkdepim.git")
|
(home-page "https://cgit.kde.org/libkdepim.git")
|
||||||
(synopsis "Libraries for common kdepim apps")
|
(synopsis "Libraries for common KDE PIM apps")
|
||||||
(description "Libraries for common kdepim apps.")
|
(description "This package provided libraries for common KDE PIM apps.")
|
||||||
(license ;; GPL for programs, LGPL for libraries
|
(license ;; GPL for programs, LGPL for libraries
|
||||||
(list license:gpl2+ license:lgpl2.0+))))
|
(list license:gpl2+ license:lgpl2.0+))))
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,15 @@ Dolphin with the version control systems: Bzr, Git, Mercurial, Subversion.")
|
||||||
`(#:tests? #f)) ;; 1/1 test fails
|
`(#:tests? #f)) ;; 1/1 test fails
|
||||||
(home-page "https://kde.org/applications/system/org.kde.Help")
|
(home-page "https://kde.org/applications/system/org.kde.Help")
|
||||||
(synopsis "KDE documentation viewer")
|
(synopsis "KDE documentation viewer")
|
||||||
(description "KDE documentation viewer")
|
(description "KHelpCenter uses meta data files which describe the
|
||||||
|
documentation available in the system. Each document is represented by a meta
|
||||||
|
data file and shown as an entry in the KHelpCenter navigation tree view. The
|
||||||
|
meta data contains information about title and short description of the
|
||||||
|
document, the location of the document and some more information like how to
|
||||||
|
search the document and translations of title and description. Document
|
||||||
|
hierarchy is represented as hierarchy of the meta data files. Directories are
|
||||||
|
also described by a meta data file which contains the same information as a
|
||||||
|
document meta data file.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public konsole
|
(define-public konsole
|
||||||
|
@ -306,7 +314,7 @@ This package is part of the KDE networking module.")
|
||||||
(description "This program is developed for being used by beginner users,
|
(description "This program is developed for being used by beginner users,
|
||||||
which don't know how to find information about their Linux system, and how the
|
which don't know how to find information about their Linux system, and how the
|
||||||
log files are in their computer. But it is also designed for advanced users,
|
log files are in their computer. But it is also designed for advanced users,
|
||||||
who want to quickly see problems occuring on their server.
|
who want to quickly see problems occurring on their server.
|
||||||
|
|
||||||
This package is part of the KDE administration module.")
|
This package is part of the KDE administration module.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -112,7 +112,7 @@ authentication for client/server applications by using secret-key
|
||||||
cryptography.")
|
cryptography.")
|
||||||
(license (license:non-copyleft "file://NOTICE"
|
(license (license:non-copyleft "file://NOTICE"
|
||||||
"See NOTICE in the distribution."))
|
"See NOTICE in the distribution."))
|
||||||
(home-page "http://web.mit.edu/kerberos/")
|
(home-page "https://web.mit.edu/kerberos/")
|
||||||
(properties '((cpe-name . "kerberos")))))
|
(properties '((cpe-name . "kerberos")))))
|
||||||
|
|
||||||
(define-public shishi
|
(define-public shishi
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
|
||||||
|
@ -361,18 +361,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.4-version "5.4.23")
|
(define-public linux-libre-5.4-version "5.4.24")
|
||||||
(define-public linux-libre-5.4-pristine-source
|
(define-public linux-libre-5.4-pristine-source
|
||||||
(let ((version linux-libre-5.4-version)
|
(let ((version linux-libre-5.4-version)
|
||||||
(hash (base32 "1jhyg2yc03fka92l7hwdajim6q5rk538hjdr1gwgvpfyyp6sla1z")))
|
(hash (base32 "1cvy3mxwzll4f9j8i3hfmi0i0zq75aiafq1jskp9n4kq9iwar83z")))
|
||||||
(make-linux-libre-source version
|
(make-linux-libre-source version
|
||||||
(%upstream-linux-source version hash)
|
(%upstream-linux-source version hash)
|
||||||
deblob-scripts-5.4)))
|
deblob-scripts-5.4)))
|
||||||
|
|
||||||
(define-public linux-libre-4.19-version "4.19.107")
|
(define-public linux-libre-4.19-version "4.19.108")
|
||||||
(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 "0h02pxzzwc5w2kfqw686bpxc13a93yq449lyzxxkxq1qilcsqjv5")))
|
(hash (base32 "18shyy1z2s8r26qb4rcz7gwl43dnmycjjywp9gss5zlfn2jyrbh9")))
|
||||||
(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)))
|
||||||
|
@ -2909,6 +2909,26 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot
|
||||||
time.")
|
time.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
;; TODO: Merge with eudev on the next rebuild cycle.
|
||||||
|
(define-public eudev/btrfs-fix
|
||||||
|
(package/inherit
|
||||||
|
eudev
|
||||||
|
(version (string-append (package-version eudev) "-1"))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments eudev)
|
||||||
|
((#:phases phases '%standard-phases)
|
||||||
|
`(modify-phases ,phases
|
||||||
|
(add-before 'configure 'patch-bindir-in-btrfs-rules
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; The "@bindir@" substitution incorrectly expands to a literal
|
||||||
|
;; "${exec_prefix}" (see <https://bugs.gnu.org/39926>). Work
|
||||||
|
;; around it.
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(substitute* "rules/64-btrfs.rules.in"
|
||||||
|
(("@bindir@")
|
||||||
|
(string-append out "/bin")))
|
||||||
|
#t)))))))))
|
||||||
|
|
||||||
(define-public eudev-with-hwdb
|
(define-public eudev-with-hwdb
|
||||||
(deprecated-package "eudev-with-hwdb" eudev))
|
(deprecated-package "eudev-with-hwdb" eudev))
|
||||||
|
|
||||||
|
@ -5076,7 +5096,7 @@ of flash storage.")
|
||||||
(define-public libseccomp
|
(define-public libseccomp
|
||||||
(package
|
(package
|
||||||
(name "libseccomp")
|
(name "libseccomp")
|
||||||
(version "2.4.2")
|
(version "2.4.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/seccomp/libseccomp/"
|
(uri (string-append "https://github.com/seccomp/libseccomp/"
|
||||||
|
@ -5084,8 +5104,7 @@ of flash storage.")
|
||||||
"/libseccomp-" version ".tar.gz"))
|
"/libseccomp-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0nsq81acrbkdr8zairxbwa33bj2a6126npp76b4srjl472sjfkxm"))
|
"07crwxqzvl5k2b90a47ii9wgvi09s9hsy5b5jddw9ylp351d25fg"))))
|
||||||
(patches (search-patches "libseccomp-open-aarch64.patch"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("which" ,which)))
|
`(("which" ,which)))
|
||||||
|
|
|
@ -3008,7 +3008,7 @@ is a library for creating graphical user interfaces.")
|
||||||
(sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
|
(sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
|
||||||
|
|
||||||
(define-public sbcl-cl-webkit
|
(define-public sbcl-cl-webkit
|
||||||
(let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
|
(let ((commit "79ad41996a1bd7fc8e53fe8d168e8f2030603b14"))
|
||||||
(package
|
(package
|
||||||
(name "sbcl-cl-webkit")
|
(name "sbcl-cl-webkit")
|
||||||
(version (git-version "2.4" "1" commit))
|
(version (git-version "2.4" "1" commit))
|
||||||
|
@ -3016,12 +3016,12 @@ is a library for creating graphical user interfaces.")
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/jmercouris/cl-webkit")
|
(url "https://github.com/joachifm/cl-webkit")
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(file-name (git-file-name "cl-webkit" version))
|
(file-name (git-file-name "cl-webkit" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
|
"1gxvmxmss5k79v2ccigx92q46zbydxh9r7plnnqh8na348pffgcs"))))
|
||||||
(build-system asdf-build-system/sbcl)
|
(build-system asdf-build-system/sbcl)
|
||||||
(inputs
|
(inputs
|
||||||
`(("cffi" ,sbcl-cffi)
|
`(("cffi" ,sbcl-cffi)
|
||||||
|
@ -3038,7 +3038,7 @@ is a library for creating graphical user interfaces.")
|
||||||
(("libwebkit2gtk" all)
|
(("libwebkit2gtk" all)
|
||||||
(string-append
|
(string-append
|
||||||
(assoc-ref inputs "webkitgtk") "/lib/" all))))))))
|
(assoc-ref inputs "webkitgtk") "/lib/" all))))))))
|
||||||
(home-page "https://github.com/jmercouris/cl-webkit")
|
(home-page "https://github.com/joachifm/cl-webkit")
|
||||||
(synopsis "Binding to WebKitGTK+ for Common Lisp")
|
(synopsis "Binding to WebKitGTK+ for Common Lisp")
|
||||||
(description
|
(description
|
||||||
"@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
|
"@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
|
||||||
|
@ -5357,10 +5357,10 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
|
||||||
#t)))))
|
#t)))))
|
||||||
(synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
|
(synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
|
||||||
|
|
||||||
(define-public sbcl-iolib
|
(define sbcl-iolib+syscalls
|
||||||
(package
|
(package
|
||||||
(inherit sbcl-iolib.asdf)
|
(inherit sbcl-iolib.asdf)
|
||||||
(name "sbcl-iolib")
|
(name "sbcl-iolib+syscalls")
|
||||||
(inputs
|
(inputs
|
||||||
`(("iolib.asdf" ,sbcl-iolib.asdf)
|
`(("iolib.asdf" ,sbcl-iolib.asdf)
|
||||||
("iolib.conf" ,sbcl-iolib.conf)
|
("iolib.conf" ,sbcl-iolib.conf)
|
||||||
|
@ -5375,7 +5375,7 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
|
||||||
`(("fiveam" ,sbcl-fiveam)))
|
`(("fiveam" ,sbcl-fiveam)))
|
||||||
(arguments
|
(arguments
|
||||||
'(#:asd-file "iolib.asd"
|
'(#:asd-file "iolib.asd"
|
||||||
#:asd-system-name "iolib"
|
#:asd-system-name "iolib/syscalls"
|
||||||
#:test-asd-file "iolib.tests.asd"
|
#:test-asd-file "iolib.tests.asd"
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
@ -5392,41 +5392,58 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
|
||||||
"")))))))
|
"")))))))
|
||||||
(synopsis "Common Lisp I/O library")))
|
(synopsis "Common Lisp I/O library")))
|
||||||
|
|
||||||
(define-public cl-iolib
|
|
||||||
(sbcl-package->cl-source-package sbcl-iolib))
|
|
||||||
|
|
||||||
(define sbcl-iolib+multiplex
|
(define sbcl-iolib+multiplex
|
||||||
(package
|
(package
|
||||||
(inherit sbcl-iolib)
|
(inherit sbcl-iolib+syscalls)
|
||||||
(name "sbcl-iolib+multiplex")
|
(name "sbcl-iolib+multiplex")
|
||||||
|
(inputs
|
||||||
|
`(("iolib+syscalls" ,sbcl-iolib+syscalls)
|
||||||
|
,@(package-inputs sbcl-iolib+syscalls)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||||
((#:asd-system-name _) "iolib/multiplex")))))
|
((#:asd-system-name _) "iolib/multiplex")))))
|
||||||
|
|
||||||
(define sbcl-iolib+syscalls
|
|
||||||
(package
|
|
||||||
(inherit sbcl-iolib)
|
|
||||||
(name "sbcl-iolib+syscalls")
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
|
||||||
((#:asd-system-name _) "iolib/syscalls")))))
|
|
||||||
|
|
||||||
(define sbcl-iolib+streams
|
(define sbcl-iolib+streams
|
||||||
(package
|
(package
|
||||||
(inherit sbcl-iolib)
|
(inherit sbcl-iolib+syscalls)
|
||||||
(name "sbcl-iolib+streams")
|
(name "sbcl-iolib+streams")
|
||||||
|
(inputs
|
||||||
|
`(("iolib+multiplex" ,sbcl-iolib+multiplex)
|
||||||
|
,@(package-inputs sbcl-iolib+syscalls)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||||
((#:asd-system-name _) "iolib/streams")))))
|
((#:asd-system-name _) "iolib/streams")))))
|
||||||
|
|
||||||
(define sbcl-iolib+sockets
|
(define sbcl-iolib+sockets
|
||||||
(package
|
(package
|
||||||
(inherit sbcl-iolib)
|
(inherit sbcl-iolib+syscalls)
|
||||||
(name "sbcl-iolib+sockets")
|
(name "sbcl-iolib+sockets")
|
||||||
|
(inputs
|
||||||
|
`(("iolib+syscalls" ,sbcl-iolib+syscalls)
|
||||||
|
("iolib+streams" ,sbcl-iolib+streams)
|
||||||
|
,@(package-inputs sbcl-iolib+syscalls)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||||
((#:asd-system-name _) "iolib/sockets")))))
|
((#:asd-system-name _) "iolib/sockets")))))
|
||||||
|
|
||||||
|
(define-public sbcl-iolib
|
||||||
|
(package
|
||||||
|
(inherit sbcl-iolib+syscalls)
|
||||||
|
(name "sbcl-iolib")
|
||||||
|
(inputs
|
||||||
|
`(("iolib+multiplex" ,sbcl-iolib+multiplex)
|
||||||
|
("iolib+streams" ,sbcl-iolib+streams)
|
||||||
|
("iolib+sockets" ,sbcl-iolib+sockets)
|
||||||
|
,@(package-inputs sbcl-iolib+syscalls)))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||||
|
((#:asd-system-name _) "iolib")))))
|
||||||
|
|
||||||
|
(define-public cl-iolib
|
||||||
|
(sbcl-package->cl-source-package sbcl-iolib))
|
||||||
|
|
||||||
(define-public sbcl-ieee-floats
|
(define-public sbcl-ieee-floats
|
||||||
(let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
|
(let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
|
||||||
(revision "1"))
|
(revision "1"))
|
||||||
|
@ -6350,16 +6367,13 @@ power of CXML is available when necessary.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
|
"0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
|
||||||
;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
|
;; Inputs must be propagated or else packages depending on this won't
|
||||||
|
;; have the necessary packages.
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("alexandria" ,sbcl-alexandria)
|
`(("alexandria" ,sbcl-alexandria)
|
||||||
("trivial-garbage" ,sbcl-trivial-garbage)
|
("trivial-garbage" ,sbcl-trivial-garbage)
|
||||||
("babel" ,sbcl-babel)
|
("babel" ,sbcl-babel)
|
||||||
("iolib" ,sbcl-iolib)
|
("iolib" ,sbcl-iolib)
|
||||||
("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
|
|
||||||
("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
|
|
||||||
("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
|
|
||||||
("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
|
|
||||||
("ieee-floats" ,sbcl-ieee-floats)
|
("ieee-floats" ,sbcl-ieee-floats)
|
||||||
("flexi-streams" ,sbcl-flexi-streams)
|
("flexi-streams" ,sbcl-flexi-streams)
|
||||||
("cl-xmlspam" ,sbcl-cl-xmlspam)
|
("cl-xmlspam" ,sbcl-cl-xmlspam)
|
||||||
|
@ -11197,3 +11211,42 @@ interfaces as well as a functional and an object oriented interface.")
|
||||||
"-o" shared-lib)
|
"-o" shared-lib)
|
||||||
#t)))))))
|
#t)))))))
|
||||||
(synopsis "MySQL driver for Common Lisp SQL interface library")))
|
(synopsis "MySQL driver for Common Lisp SQL interface library")))
|
||||||
|
|
||||||
|
(define-public sbcl-sycamore
|
||||||
|
(let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
|
||||||
|
(package
|
||||||
|
(name "sbcl-sycamore")
|
||||||
|
(version "0.0.20120604")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/ndantam/sycamore/")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
|
||||||
|
(build-system asdf-build-system/sbcl)
|
||||||
|
(arguments
|
||||||
|
`(#:asd-file "src/sycamore.asd"))
|
||||||
|
(inputs
|
||||||
|
`(("alexandria" ,sbcl-alexandria)
|
||||||
|
("cl-ppcre" ,sbcl-cl-ppcre)))
|
||||||
|
(synopsis "Purely functional data structure library in Common Lisp")
|
||||||
|
(description
|
||||||
|
"Sycamore is a fast, purely functional data structure library in Common Lisp.
|
||||||
|
If features:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Fast, purely functional weight-balanced binary trees.
|
||||||
|
@item Leaf nodes are simple-vectors, greatly reducing tree height.
|
||||||
|
@item Interfaces for tree Sets and Maps (dictionaries).
|
||||||
|
@item Ropes.
|
||||||
|
@item Purely functional pairing heaps.
|
||||||
|
@item Purely functional amortized queue.
|
||||||
|
@end itemize\n")
|
||||||
|
(home-page "http://ndantam.github.io/sycamore/")
|
||||||
|
(license license:bsd-3))))
|
||||||
|
|
||||||
|
(define-public cl-sycamore
|
||||||
|
(sbcl-package->cl-source-package sbcl-sycamore))
|
||||||
|
|
|
@ -798,7 +798,7 @@ computing environments.")
|
||||||
(define-public python-scikit-learn
|
(define-public python-scikit-learn
|
||||||
(package
|
(package
|
||||||
(name "python-scikit-learn")
|
(name "python-scikit-learn")
|
||||||
(version "0.20.4")
|
(version "0.22.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -808,7 +808,7 @@ computing environments.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj"))))
|
"1xqxv210gsmjw094vc5ghq2y9lmm74qkk22pq6flcjzj51b86jxf"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -835,7 +835,8 @@ computing environments.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("openblas" ,openblas)))
|
`(("openblas" ,openblas)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-pytest" ,python-pytest)
|
`(("python-joblib" ,python-joblib)
|
||||||
|
("python-pytest" ,python-pytest)
|
||||||
("python-pandas" ,python-pandas) ;for tests
|
("python-pandas" ,python-pandas) ;for tests
|
||||||
("python-cython" ,python-cython)))
|
("python-cython" ,python-cython)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
|
@ -2105,7 +2106,8 @@ These include a barrier, broadcast, and allreduce.")
|
||||||
"02ada2yy6km6zgk2836kg1c97yrcpalvan34p8c57446finnpki1"))))
|
"02ada2yy6km6zgk2836kg1c97yrcpalvan34p8c57446finnpki1"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-nose" ,python-nose)))
|
`(("python-joblib" ,python-joblib)
|
||||||
|
("python-nose" ,python-nose)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-numba" ,python-numba)
|
`(("python-numba" ,python-numba)
|
||||||
("python-numpy" ,python-numpy)
|
("python-numpy" ,python-numpy)
|
||||||
|
|
|
@ -1144,7 +1144,7 @@ MailCore 2.")
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://ftp.heanet.ie/mirrors/"
|
(uri (string-append "https://ftp.heanet.ie/mirrors/"
|
||||||
"ftp.xemacs.org/aux/"
|
"ftp.xemacs.org/aux/"
|
||||||
name "-" version ".tar.gz"))
|
"compface-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6"))))
|
"09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6"))))
|
||||||
|
@ -1154,13 +1154,13 @@ MailCore 2.")
|
||||||
(synopsis "Portrait image compressor")
|
(synopsis "Portrait image compressor")
|
||||||
(description "This package takes your 48x48x1 portrait image and
|
(description "This package takes your 48x48x1 portrait image and
|
||||||
compresses it.")
|
compresses it.")
|
||||||
(home-page "http://www.cs.indiana.edu/pub/faces/")
|
(home-page "https://legacy.cs.indiana.edu/ftp/faces/")
|
||||||
(license (x11-style "file://README"))))
|
(license (x11-style "file://README"))))
|
||||||
|
|
||||||
(define-public claws-mail
|
(define-public claws-mail
|
||||||
(package
|
(package
|
||||||
(name "claws-mail")
|
(name "claws-mail")
|
||||||
(version "3.17.4")
|
(version "3.17.5")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -1168,7 +1168,7 @@ compresses it.")
|
||||||
".tar.xz"))
|
".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"00mfhaac16sv67rwiq98hr4nl5zmd1h2afswwwksdcsi3q9x23jr"))))
|
"1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||||
(inputs `(("bogofilter" ,bogofilter)
|
(inputs `(("bogofilter" ,bogofilter)
|
||||||
|
@ -1374,7 +1374,7 @@ facilities for checking incoming mail.")
|
||||||
(define-public dovecot
|
(define-public dovecot
|
||||||
(package
|
(package
|
||||||
(name "dovecot")
|
(name "dovecot")
|
||||||
(version "2.3.9.3")
|
(version "2.3.10")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1382,7 +1382,7 @@ facilities for checking incoming mail.")
|
||||||
(version-major+minor version) "/"
|
(version-major+minor version) "/"
|
||||||
"dovecot-" version ".tar.gz"))
|
"dovecot-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0lcnqib63nv32xr3nr4s3x8k77mbgrhc13swjl2xqnzw4fabd7zq"))))
|
(base32 "1ibiz3k2flablkcqbkvfzsjnq5b5kxximhcrplflsjl57mr88ca7"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
|
|
@ -60,14 +60,14 @@ a flexible and convenient way.")
|
||||||
(define-public man-db
|
(define-public man-db
|
||||||
(package
|
(package
|
||||||
(name "man-db")
|
(name "man-db")
|
||||||
(version "2.9.0")
|
(version "2.9.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://savannah/man-db/man-db-"
|
(uri (string-append "mirror://savannah/man-db/man-db-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0qg2sdn8mayya0ril484iz1r7hi46l68d2d80cr6lvc7x3csqjjx"))))
|
"0ky7aq8313xa1y0zdwdbz5yvjfjb3xy0xymbimd2d9q9bky8lgds"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
|
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
|
||||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2016, 2018 Kei Kebreau <kkebreau@posteo.net>
|
;;; Copyright © 2016, 2018, 2020 Kei Kebreau <kkebreau@posteo.net>
|
||||||
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
|
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
|
||||||
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
|
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
|
||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||||
|
;;; Copyright © 2020 Felix Gruber <felgru@posteo.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -3028,7 +3029,7 @@ point numbers.")
|
||||||
(define-public wxmaxima
|
(define-public wxmaxima
|
||||||
(package
|
(package
|
||||||
(name "wxmaxima")
|
(name "wxmaxima")
|
||||||
(version "20.01.3")
|
(version "20.02.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -3037,10 +3038,13 @@ point numbers.")
|
||||||
(commit (string-append "Version-" version))))
|
(commit (string-append "Version-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "18fj2m1qwlbavivpixph112wq9hxy3hh7c8q07djc3bhrzf2a7v7"))))
|
(base32 "106a7jrjwfmymzj70nsv44fm3jbxngr8pmkaghhpwy0ln38lhf54"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("gettext" ,gettext-minimal)))
|
`(("gettext" ,gettext-minimal)
|
||||||
|
("xorg-server" ,xorg-server-for-tests)))
|
||||||
|
;; TODO: Add libomp for multithreading support.
|
||||||
|
;; As of right now, enabling libomp causes the imageCells.wxm test to fail.
|
||||||
(inputs
|
(inputs
|
||||||
`(("wxwidgets" ,wxwidgets)
|
`(("wxwidgets" ,wxwidgets)
|
||||||
("maxima" ,maxima)
|
("maxima" ,maxima)
|
||||||
|
@ -3049,9 +3053,16 @@ point numbers.")
|
||||||
("gtk+" ,gtk+)
|
("gtk+" ,gtk+)
|
||||||
("shared-mime-info" ,shared-mime-info)))
|
("shared-mime-info" ,shared-mime-info)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no check target
|
`(#:test-target "test"
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'check 'pre-check
|
||||||
|
(lambda _
|
||||||
|
;; Tests require a running X server.
|
||||||
|
(system "Xvfb :1 &")
|
||||||
|
(setenv "DISPLAY" ":1")
|
||||||
|
(setenv "HOME" (getcwd))
|
||||||
|
#t))
|
||||||
(add-after 'install 'wrap-program
|
(add-after 'install 'wrap-program
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(wrap-program (string-append (assoc-ref outputs "out")
|
(wrap-program (string-append (assoc-ref outputs "out")
|
||||||
|
@ -3220,7 +3231,7 @@ parts of it.")
|
||||||
`(("cunit" ,cunit)
|
`(("cunit" ,cunit)
|
||||||
("fortran" ,gfortran)
|
("fortran" ,gfortran)
|
||||||
("perl" ,perl)))
|
("perl" ,perl)))
|
||||||
(home-page "http://www.openblas.net/")
|
(home-page "https://www.openblas.net/")
|
||||||
(synopsis "Optimized BLAS library based on GotoBLAS")
|
(synopsis "Optimized BLAS library based on GotoBLAS")
|
||||||
(description
|
(description
|
||||||
"OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.")
|
"OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.")
|
||||||
|
@ -3404,16 +3415,18 @@ Fresnel integrals, and similar related functions as well.")
|
||||||
(define-public suitesparse
|
(define-public suitesparse
|
||||||
(package
|
(package
|
||||||
(name "suitesparse")
|
(name "suitesparse")
|
||||||
(version "4.5.5")
|
(version "5.7.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
(uri (string-append
|
(uri (git-reference
|
||||||
"http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-"
|
(url "https://github.com/DrTimothyAldenDavis/SuiteSparse.git")
|
||||||
version ".tar.gz"))
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1dnr6pmjzc2qmbkmb4shigx1l74ilf6abn7svyd6brxgvph8vadr"))
|
"174p3l78kv9gaa0i5hflyai2ydwnjzh34k9938sl4aa3li0543s8"))
|
||||||
|
(patches (search-patches "suitesparse-mongoose-cmake.patch"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
;; Remove bundled metis source
|
;; Remove bundled metis source
|
||||||
|
@ -3428,6 +3441,14 @@ Fresnel integrals, and similar related functions as well.")
|
||||||
"BLAS=-lblas"
|
"BLAS=-lblas"
|
||||||
"TBB=-ltbb"
|
"TBB=-ltbb"
|
||||||
"MY_METIS_LIB=-lmetis"
|
"MY_METIS_LIB=-lmetis"
|
||||||
|
;; Flags for cmake (required to build GraphBLAS and Mongoose)
|
||||||
|
(string-append "CMAKE_OPTIONS=-DCMAKE_INSTALL_PREFIX="
|
||||||
|
(assoc-ref %outputs "out")
|
||||||
|
" -DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||||
|
" -DCMAKE_C_FLAGS_RELEASE=\"$(CFLAGS) $(CPPFLAGS)\""
|
||||||
|
" -DCMAKE_CXX_FLAGS_RELEASE=\"$(CXXFLAGS) $(CPPFLAGS)\""
|
||||||
|
" -DCMAKE_SKIP_RPATH=TRUE"
|
||||||
|
" -DCMAKE_BUILD_TYPE=Release")
|
||||||
(string-append "INSTALL_LIB="
|
(string-append "INSTALL_LIB="
|
||||||
(assoc-ref %outputs "out") "/lib")
|
(assoc-ref %outputs "out") "/lib")
|
||||||
(string-append "INSTALL_INCLUDE="
|
(string-append "INSTALL_INCLUDE="
|
||||||
|
@ -3440,6 +3461,9 @@ Fresnel integrals, and similar related functions as well.")
|
||||||
`(("tbb" ,tbb)
|
`(("tbb" ,tbb)
|
||||||
("lapack" ,lapack)
|
("lapack" ,lapack)
|
||||||
("metis" ,metis)))
|
("metis" ,metis)))
|
||||||
|
(native-inputs
|
||||||
|
`(("cmake" ,cmake)
|
||||||
|
("m4" ,m4)))
|
||||||
(home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html")
|
(home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html")
|
||||||
(synopsis "Suite of sparse matrix software")
|
(synopsis "Suite of sparse matrix software")
|
||||||
(description
|
(description
|
||||||
|
@ -5217,7 +5241,7 @@ syntax-highlighted scrollable display and is designed to be fully used via
|
||||||
keyboard. Some distinctive features are auto-completion of functions and
|
keyboard. Some distinctive features are auto-completion of functions and
|
||||||
variables, a formula book, and quick insertion of constants from various
|
variables, a formula book, and quick insertion of constants from various
|
||||||
fields of knowledge.")
|
fields of knowledge.")
|
||||||
(home-page "http://speedcrunch.org/")
|
(home-page "https://speedcrunch.org/")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public minisat
|
(define-public minisat
|
||||||
|
|
|
@ -1238,7 +1238,7 @@ for sending encrypted messages to one person or many subscribers.")
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("ncurses" ,ncurses)))
|
`(("ncurses" ,ncurses)))
|
||||||
(home-page "http://ytalk.ourproject.org")
|
(home-page "https://ytalk.ourproject.org")
|
||||||
(synopsis "Multi-user chat program")
|
(synopsis "Multi-user chat program")
|
||||||
(description "Ytalk is a replacement for the BSD talk program. Its main
|
(description "Ytalk is a replacement for the BSD talk program. Its main
|
||||||
advantage is the ability to communicate with any arbitrary number of users at
|
advantage is the ability to communicate with any arbitrary number of users at
|
||||||
|
|
|
@ -2353,6 +2353,64 @@ allows you to send JACK MIDI events (i.e. play) using your PC keyboard.")
|
||||||
can connect to any JACK port and record the output into a stereo WAV file.")
|
can connect to any JACK port and record the output into a stereo WAV file.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public jack-select
|
||||||
|
(package
|
||||||
|
(name "jack-select")
|
||||||
|
(version "1.5.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "jack-select" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1zijk9ly2fczxsnnrqr8s0ajmlyx1j1vd8gk0rm5dj5zyhhmia7f"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build gnu-build-system)
|
||||||
|
((guix build python-build-system) #:prefix python:)
|
||||||
|
(guix build utils))
|
||||||
|
#:imported-modules (,@%gnu-build-system-modules
|
||||||
|
(guix build python-build-system))
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||||
|
#:tests? #f ; there are none
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; python-dbus cannot be found but it's really there. See
|
||||||
|
;; https://github.com/SpotlightKid/jack-select/issues/2
|
||||||
|
(substitute* "setup.py"
|
||||||
|
(("'dbus-python',") ""))
|
||||||
|
;; Fix reference to dlopened libraries.
|
||||||
|
(substitute* "jackselect/alsainfo.py"
|
||||||
|
(("libasound.so.2")
|
||||||
|
(string-append (assoc-ref inputs "alsa-lib")
|
||||||
|
"/lib/libasound.so.2")))
|
||||||
|
#t))
|
||||||
|
(replace 'build
|
||||||
|
(assoc-ref python:%standard-phases 'build))
|
||||||
|
(add-after 'install 'wrap
|
||||||
|
(assoc-ref python:%standard-phases 'wrap)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("alsa-lib" ,alsa-lib)
|
||||||
|
("python" ,python-wrapper)
|
||||||
|
("python-pyudev" ,python-pyudev)
|
||||||
|
("python-pyxdg" ,python-pyxdg)
|
||||||
|
("python-dbus" ,python-dbus)
|
||||||
|
("python-pygobject" ,python-pygobject)))
|
||||||
|
(home-page "https://github.com/SpotlightKid/jack-select")
|
||||||
|
(synopsis "Systray application to quickly change the JACK-DBus configuration")
|
||||||
|
(description "This application displays an icon in the system tray (also
|
||||||
|
known as notification area) of your desktop, which shows the status of the
|
||||||
|
JACK audio server and when you click on it, a menu pops up, which lets you
|
||||||
|
quickly select from the JACK configuration presets you created with QjackCtl.
|
||||||
|
When you select a preset, its JACK engine and driver configuration settings
|
||||||
|
are loaded via DBus into JACK and then the server is restarted. This allows
|
||||||
|
you to switch between different audio setups with just two mouse clicks.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public cursynth
|
(define-public cursynth
|
||||||
(package
|
(package
|
||||||
(name "cursynth")
|
(name "cursynth")
|
||||||
|
@ -2870,7 +2928,7 @@ websites such as Libre.fm.")
|
||||||
(find-files "instantmusic.egg-info"
|
(find-files "instantmusic.egg-info"
|
||||||
"PKG-INFO|.*\\.txt"))
|
"PKG-INFO|.*\\.txt"))
|
||||||
#t)))))
|
#t)))))
|
||||||
(home-page "http://iyask.me/Instant-Music-Downloader/")
|
(home-page "https://github.com/yask123/Instant-Music-Downloader")
|
||||||
(synopsis "Command-line program to download a song from YouTube")
|
(synopsis "Command-line program to download a song from YouTube")
|
||||||
(description "InstantMusic downloads a song from YouTube in MP3 format.
|
(description "InstantMusic downloads a song from YouTube in MP3 format.
|
||||||
Songs can be searched by artist, name or even by a part of the song text.")
|
Songs can be searched by artist, name or even by a part of the song text.")
|
||||||
|
|
|
@ -1510,7 +1510,7 @@ that block port 22.")
|
||||||
supports tuning of various parameters related to timing, buffers and
|
supports tuning of various parameters related to timing, buffers and
|
||||||
protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
|
protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
|
||||||
the bandwidth, loss, and other parameters.")
|
the bandwidth, loss, and other parameters.")
|
||||||
(home-page "http://software.es.net/iperf/")
|
(home-page "https://software.es.net/iperf/")
|
||||||
(license (list license:bsd-3 ; Main distribution.
|
(license (list license:bsd-3 ; Main distribution.
|
||||||
license:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
|
license:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
|
||||||
license:expat ; src/{cjson,net}.[ch]
|
license:expat ; src/{cjson,net}.[ch]
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
(define-public ntp
|
(define-public ntp
|
||||||
(package
|
(package
|
||||||
(name "ntp")
|
(name "ntp")
|
||||||
(version "4.2.8p13")
|
(version "4.2.8p14")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
(version-major+minor version)
|
(version-major+minor version)
|
||||||
"/ntp-" version ".tar.gz")))
|
"/ntp-" version ".tar.gz")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0f1a4fya7v5s0426nim8ydvvlcashb8hicgs9xlm76ndrz7751r8"))
|
(base32 "1dsfbrad5adwjnm3k0y0ip8dzs7r2nmw66vjil8gvapnh7qf8q0r"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -92,9 +92,9 @@
|
||||||
(description "NTP is a system designed to synchronize the clocks of
|
(description "NTP is a system designed to synchronize the clocks of
|
||||||
computers over a network.")
|
computers over a network.")
|
||||||
(license (l:x11-style
|
(license (l:x11-style
|
||||||
"http://www.eecis.udel.edu/~mills/ntp/html/copyright.html"
|
"https://www.eecis.udel.edu/~mills/ntp/html/copyright.html"
|
||||||
"A non-copyleft free licence from the University of Delaware"))
|
"A non-copyleft free licence from the University of Delaware"))
|
||||||
(home-page "http://www.ntp.org")))
|
(home-page "https://www.ntp.org")))
|
||||||
|
|
||||||
(define-public openntpd
|
(define-public openntpd
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -111,8 +111,8 @@
|
||||||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||||
;; start precisely like this.
|
;; start precisely like this.
|
||||||
(let ((version "1.0.1")
|
(let ((version "1.0.1")
|
||||||
(commit "c2f9ea2b502a617bb69227d5f858eee9d4288a6a")
|
(commit "09844816c77caaa60f4149f99a34733966724627")
|
||||||
(revision 14))
|
(revision 15))
|
||||||
(package
|
(package
|
||||||
(name "guix")
|
(name "guix")
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0hg6yrqlzqiv4gmk9liqar6m9qhhn66q75jsmh86awjwq4qmvyab"))
|
"1fciffls6cw9zz13vig5x37r73qxc0irzyh0caimciddlksvabf7"))
|
||||||
(file-name (string-append "guix-" version "-checkout"))))
|
(file-name (string-append "guix-" version "-checkout"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -1005,7 +1005,7 @@ for packaging and deployment of cross-compiled Windows applications.")
|
||||||
(define-public libostree
|
(define-public libostree
|
||||||
(package
|
(package
|
||||||
(name "libostree")
|
(name "libostree")
|
||||||
(version "2020.1")
|
(version "2020.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -1013,7 +1013,7 @@ for packaging and deployment of cross-compiled Windows applications.")
|
||||||
(version-major+minor version) "/libostree-" version ".tar.xz"))
|
(version-major+minor version) "/libostree-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0sgx81w6skiivbr2gfhljf9nvnqfwwnwfgpqqa10fjdkjrqwvpk8"))))
|
"0bbk0sg4m38g7j00hy358p2azxas87minpgz3avwma6jsylj1qjg"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
Modified from upstream commit:
|
||||||
|
https://github.com/ankitects/anki/commit/ccd715013609133c55e83924734efa78abc03326
|
||||||
|
Fixes mpv argument syntax (support for old syntax removed in mpv 0.31):
|
||||||
|
https://anki.tenderapp.com/discussions/ankidesktop/38186-mpvprocesserror-unable-to-start-process
|
||||||
|
Necessary because we are currently unable to upgrade anki to the
|
||||||
|
latest version in guix (NPM dependencies currently unpackaged).
|
||||||
|
---
|
||||||
|
anki/mpv.py | 4 ++--
|
||||||
|
anki/sound.py | 1 -
|
||||||
|
2 files changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/anki/mpv.py b/anki/mpv.py
|
||||||
|
index f53d9d0..563fddc 100644
|
||||||
|
--- a/anki/mpv.py
|
||||||
|
+++ b/anki/mpv.py
|
||||||
|
@@ -104,9 +104,9 @@ class MPVBase:
|
||||||
|
"""
|
||||||
|
self.argv = [self.executable]
|
||||||
|
self.argv += self.default_argv
|
||||||
|
- self.argv += ["--input-ipc-server", self._sock_filename]
|
||||||
|
+ self.argv += ["--input-ipc-server="+self._sock_filename]
|
||||||
|
if self.window_id is not None:
|
||||||
|
- self.argv += ["--wid", str(self.window_id)]
|
||||||
|
+ self.argv += ["--wid="+str(self.window_id)]
|
||||||
|
|
||||||
|
def _start_process(self):
|
||||||
|
"""Start the mpv process.
|
||||||
|
diff --git a/anki/sound.py b/anki/sound.py
|
||||||
|
index aa3431b..a5fce44 100644
|
||||||
|
--- a/anki/sound.py
|
||||||
|
+++ b/anki/sound.py
|
||||||
|
@@ -124,7 +124,6 @@ class MpvManager(MPV):
|
||||||
|
def setMpvConfigBase(base):
|
||||||
|
mpvConfPath = os.path.join(base, "mpv.conf")
|
||||||
|
MpvManager.default_argv += [
|
||||||
|
- "--no-config",
|
||||||
|
"--include="+mpvConfPath,
|
||||||
|
]
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
diff --git a/tests/test_utilities/test_csvsql.py b/tests/test_utilities/test_csvsql.py
|
|
||||||
index e6ec4af..4f47980 100644
|
|
||||||
--- a/tests/test_utilities/test_csvsql.py
|
|
||||||
+++ b/tests/test_utilities/test_csvsql.py
|
|
||||||
@@ -197,7 +197,7 @@ class TestCSVSQL(CSVKitTestCase, EmptyFileTests):
|
|
||||||
utility.run()
|
|
||||||
output = output_file.getvalue()
|
|
||||||
output_file.close()
|
|
||||||
- self.assertEqual(output, 'a,b,c\n1,2,3\n0,5,6\n')
|
|
||||||
+ self.assertEqual(output, 'a,b,c\n1,2.0,3.0\n0,5.0,6.0\n')
|
|
||||||
|
|
||||||
def test_no_prefix_unique_constraint(self):
|
|
||||||
self.get_output(['--db', 'sqlite:///' + self.db_file, '--insert', 'examples/dummy.csv', '--unique-constraint', 'a'])
|
|
||||||
diff --git a/tests/test_utilities/test_sql2csv.py b/tests/test_utilities/test_sql2csv.py
|
|
||||||
index a0c3d3e..babcfd6 100644
|
|
||||||
--- a/tests/test_utilities/test_sql2csv.py
|
|
||||||
+++ b/tests/test_utilities/test_sql2csv.py
|
|
||||||
@@ -121,23 +121,23 @@ class TestSQL2CSV(CSVKitTestCase, EmptyFileTests):
|
|
||||||
input_file.close()
|
|
||||||
|
|
||||||
def test_unicode(self):
|
|
||||||
- expected = self.csvsql('examples/test_utf8.csv')
|
|
||||||
+ self.csvsql('examples/test_utf8.csv')
|
|
||||||
csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--query', 'select * from foo'])
|
|
||||||
- self.assertEqual(csv.strip(), expected)
|
|
||||||
+ self.assertEqual(csv.strip(), 'foo,bar,baz\n1.0,2.0,3\n4.0,5.0,ʤ')
|
|
||||||
|
|
||||||
def test_no_header_row(self):
|
|
||||||
self.csvsql('examples/dummy.csv')
|
|
||||||
csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--no-header-row', '--query', 'select * from foo'])
|
|
||||||
|
|
||||||
self.assertTrue('a,b,c' not in csv)
|
|
||||||
- self.assertTrue('1,2,3' in csv)
|
|
||||||
+ self.assertTrue('1,2.0,3.0' in csv)
|
|
||||||
|
|
||||||
def test_linenumbers(self):
|
|
||||||
self.csvsql('examples/dummy.csv')
|
|
||||||
csv = self.get_output(['--db', 'sqlite:///' + self.db_file, '--linenumbers', '--query', 'select * from foo'])
|
|
||||||
|
|
||||||
self.assertTrue('line_number,a,b,c' in csv)
|
|
||||||
- self.assertTrue('1,1,2,3' in csv)
|
|
||||||
+ self.assertTrue('1,1,2.0,3.0' in csv)
|
|
||||||
|
|
||||||
def test_wildcard_on_sqlite(self):
|
|
||||||
self.csvsql('examples/iris.csv')
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
Fix crash due to: <https://issues.guix.gnu.org/issue/39266>.
|
||||||
|
|
||||||
|
diff --git a/libguile/struct.c b/libguile/struct.c
|
||||||
|
index 3dbcc71d4..ddcbe46d2 100644
|
||||||
|
--- a/libguile/struct.c
|
||||||
|
+++ b/libguile/struct.c
|
||||||
|
@@ -139,7 +139,9 @@ set_vtable_access_fields (SCM vtable)
|
||||||
|
nfields = len / 2;
|
||||||
|
|
||||||
|
bitmask_size = (nfields + 31U) / 32U;
|
||||||
|
- unboxed_fields = scm_gc_malloc_pointerless (bitmask_size, "unboxed fields");
|
||||||
|
+ unboxed_fields =
|
||||||
|
+ scm_gc_malloc_pointerless (bitmask_size * sizeof (*unboxed_fields),
|
||||||
|
+ "unboxed fields");
|
||||||
|
memset (unboxed_fields, 0, bitmask_size * sizeof(*unboxed_fields));
|
||||||
|
|
||||||
|
/* Update FLAGS according to LAYOUT. */
|
|
@ -25,7 +25,7 @@ index 8be2362..48716f2 100755
|
||||||
-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
|
-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
|
||||||
-gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
|
-gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||||
-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
|
-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
|
||||||
-echo -n 52e784f98a37624e8b207f1b23289c2c88f66dd923798cae891a586a6d94a6d1 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
|
-echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
|
||||||
-
|
-
|
||||||
-echo Extracting Firefox tarball
|
-echo Extracting Firefox tarball
|
||||||
-tar -xf firefox-${FFVERSION}esr.source.tar.xz
|
-tar -xf firefox-${FFVERSION}esr.source.tar.xz
|
||||||
|
@ -37,7 +37,7 @@ index 8be2362..48716f2 100755
|
||||||
+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
|
+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
|
||||||
+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
|
+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||||
+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
|
+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
|
||||||
+# echo -n 52e784f98a37624e8b207f1b23289c2c88f66dd923798cae891a586a6d94a6d1 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
|
+# echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
|
||||||
+#
|
+#
|
||||||
+# echo Extracting Firefox tarball
|
+# echo Extracting Firefox tarball
|
||||||
+# tar -xf firefox-${FFVERSION}esr.source.tar.xz
|
+# tar -xf firefox-${FFVERSION}esr.source.tar.xz
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
This patch fixes the build failure on AArch64 reported
|
|
||||||
at <https://github.com/seccomp/libseccomp/pull/191>.
|
|
||||||
|
|
||||||
From cc21c1b48d35f9d34ef2da0e184af3855bfeee5f Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Wed, 20 Nov 2019 14:11:12 -0500
|
|
||||||
Subject: [PATCH] tests: use openat instead of open
|
|
||||||
|
|
||||||
On arm64, __NR_open is not defined, openat is always used. Let's use openat
|
|
||||||
instead, which is defined for architectures currently.
|
|
||||||
---
|
|
||||||
tests/15-basic-resolver.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/tests/15-basic-resolver.c b/tests/15-basic-resolver.c
|
|
||||||
index 6badef1..4884faf 100644
|
|
||||||
--- a/tests/15-basic-resolver.c
|
|
||||||
+++ b/tests/15-basic-resolver.c
|
|
||||||
@@ -55,7 +55,7 @@ int main(int argc, char *argv[])
|
|
||||||
unsigned int arch;
|
|
||||||
char *name = NULL;
|
|
||||||
|
|
||||||
- if (seccomp_syscall_resolve_name("open") != __NR_open)
|
|
||||||
+ if (seccomp_syscall_resolve_name("openat") != __NR_openat)
|
|
||||||
goto fail;
|
|
||||||
if (seccomp_syscall_resolve_name("read") != __NR_read)
|
|
||||||
goto fail;
|
|
|
@ -0,0 +1,269 @@
|
||||||
|
Fix CVE-2020-8608:
|
||||||
|
|
||||||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8608
|
||||||
|
https://www.openwall.com/lists/oss-security/2020/02/06/2
|
||||||
|
|
||||||
|
Patches copied from upstream dependency repository:
|
||||||
|
|
||||||
|
https://gitlab.freedesktop.org/slirp/libslirp/commit/68ccb8021a838066f0951d4b2817eb6b6f10a843
|
||||||
|
https://gitlab.freedesktop.org/slirp/libslirp/commit/30648c03b27fb8d9611b723184216cd3174b6775
|
||||||
|
|
||||||
|
From 68ccb8021a838066f0951d4b2817eb6b6f10a843 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||||
|
Date: Mon, 27 Jan 2020 10:24:14 +0100
|
||||||
|
Subject: [PATCH] tcp_emu: fix unsafe snprintf() usages
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Various calls to snprintf() assume that snprintf() returns "only" the
|
||||||
|
number of bytes written (excluding terminating NUL).
|
||||||
|
|
||||||
|
https://pubs.opengroup.org/onlinepubs/9699919799/functions/snprintf.html#tag_16_159_04
|
||||||
|
|
||||||
|
"Upon successful completion, the snprintf() function shall return the
|
||||||
|
number of bytes that would be written to s had n been sufficiently
|
||||||
|
large excluding the terminating null byte."
|
||||||
|
|
||||||
|
Before patch ce131029, if there isn't enough room in "m_data" for the
|
||||||
|
"DCC ..." message, we overflow "m_data".
|
||||||
|
|
||||||
|
After the patch, if there isn't enough room for the same, we don't
|
||||||
|
overflow "m_data", but we set "m_len" out-of-bounds. The next time an
|
||||||
|
access is bounded by "m_len", we'll have a buffer overflow then.
|
||||||
|
|
||||||
|
Use slirp_fmt*() to fix potential OOB memory access.
|
||||||
|
|
||||||
|
Reported-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||||
|
Message-Id: <20200127092414.169796-7-marcandre.lureau@redhat.com>
|
||||||
|
---
|
||||||
|
src/tcp_subr.c | 44 +++++++++++++++++++++-----------------------
|
||||||
|
1 file changed, 21 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tcp_subr.c b/src/tcp_subr.c
|
||||||
|
index a699117..a72c86b 100644
|
||||||
|
--- a/slirp/src/tcp_subr.c
|
||||||
|
+++ b/slirp/src/tcp_subr.c
|
||||||
|
@@ -643,8 +643,7 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
NTOHS(n1);
|
||||||
|
NTOHS(n2);
|
||||||
|
m_inc(m, snprintf(NULL, 0, "%d,%d\r\n", n1, n2) + 1);
|
||||||
|
- m->m_len = snprintf(m->m_data, M_ROOM(m), "%d,%d\r\n", n1, n2);
|
||||||
|
- assert(m->m_len < M_ROOM(m));
|
||||||
|
+ m->m_len = slirp_fmt(m->m_data, M_ROOM(m), "%d,%d\r\n", n1, n2);
|
||||||
|
} else {
|
||||||
|
*eol = '\r';
|
||||||
|
}
|
||||||
|
@@ -684,9 +683,9 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
n4 = (laddr & 0xff);
|
||||||
|
|
||||||
|
m->m_len = bptr - m->m_data; /* Adjust length */
|
||||||
|
- m->m_len += snprintf(bptr, M_FREEROOM(m),
|
||||||
|
- "ORT %d,%d,%d,%d,%d,%d\r\n%s", n1, n2, n3, n4,
|
||||||
|
- n5, n6, x == 7 ? buff : "");
|
||||||
|
+ m->m_len += slirp_fmt(bptr, M_FREEROOM(m),
|
||||||
|
+ "ORT %d,%d,%d,%d,%d,%d\r\n%s",
|
||||||
|
+ n1, n2, n3, n4, n5, n6, x == 7 ? buff : "");
|
||||||
|
return 1;
|
||||||
|
} else if ((bptr = (char *)strstr(m->m_data, "27 Entering")) != NULL) {
|
||||||
|
/*
|
||||||
|
@@ -719,10 +718,9 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
n4 = (laddr & 0xff);
|
||||||
|
|
||||||
|
m->m_len = bptr - m->m_data; /* Adjust length */
|
||||||
|
- m->m_len += snprintf(bptr, M_FREEROOM(m),
|
||||||
|
- "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s",
|
||||||
|
- n1, n2, n3, n4, n5, n6, x == 7 ? buff : "");
|
||||||
|
-
|
||||||
|
+ m->m_len += slirp_fmt(bptr, M_FREEROOM(m),
|
||||||
|
+ "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s",
|
||||||
|
+ n1, n2, n3, n4, n5, n6, x == 7 ? buff : "");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -745,8 +743,8 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
if (m->m_data[m->m_len - 1] == '\0' && lport != 0 &&
|
||||||
|
(so = tcp_listen(slirp, INADDR_ANY, 0, so->so_laddr.s_addr,
|
||||||
|
htons(lport), SS_FACCEPTONCE)) != NULL)
|
||||||
|
- m->m_len = snprintf(m->m_data, M_ROOM(m),
|
||||||
|
- "%d", ntohs(so->so_fport)) + 1;
|
||||||
|
+ m->m_len = slirp_fmt0(m->m_data, M_ROOM(m),
|
||||||
|
+ "%d", ntohs(so->so_fport));
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
case EMU_IRC:
|
||||||
|
@@ -765,10 +763,10 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
m->m_len = bptr - m->m_data; /* Adjust length */
|
||||||
|
- m->m_len += snprintf(bptr, M_FREEROOM(m),
|
||||||
|
- "DCC CHAT chat %lu %u%c\n",
|
||||||
|
- (unsigned long)ntohl(so->so_faddr.s_addr),
|
||||||
|
- ntohs(so->so_fport), 1);
|
||||||
|
+ m->m_len += slirp_fmt(bptr, M_FREEROOM(m),
|
||||||
|
+ "DCC CHAT chat %lu %u%c\n",
|
||||||
|
+ (unsigned long)ntohl(so->so_faddr.s_addr),
|
||||||
|
+ ntohs(so->so_fport), 1);
|
||||||
|
} else if (sscanf(bptr, "DCC SEND %256s %u %u %u", buff, &laddr, &lport,
|
||||||
|
&n1) == 4) {
|
||||||
|
if ((so = tcp_listen(slirp, INADDR_ANY, 0, htonl(laddr),
|
||||||
|
@@ -776,10 +774,10 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
m->m_len = bptr - m->m_data; /* Adjust length */
|
||||||
|
- m->m_len += snprintf(bptr, M_FREEROOM(m),
|
||||||
|
- "DCC SEND %s %lu %u %u%c\n", buff,
|
||||||
|
- (unsigned long)ntohl(so->so_faddr.s_addr),
|
||||||
|
- ntohs(so->so_fport), n1, 1);
|
||||||
|
+ m->m_len += slirp_fmt(bptr, M_FREEROOM(m),
|
||||||
|
+ "DCC SEND %s %lu %u %u%c\n", buff,
|
||||||
|
+ (unsigned long)ntohl(so->so_faddr.s_addr),
|
||||||
|
+ ntohs(so->so_fport), n1, 1);
|
||||||
|
} else if (sscanf(bptr, "DCC MOVE %256s %u %u %u", buff, &laddr, &lport,
|
||||||
|
&n1) == 4) {
|
||||||
|
if ((so = tcp_listen(slirp, INADDR_ANY, 0, htonl(laddr),
|
||||||
|
@@ -787,10 +785,10 @@ int tcp_emu(struct socket *so, struct mbuf *m)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
m->m_len = bptr - m->m_data; /* Adjust length */
|
||||||
|
- m->m_len += snprintf(bptr, M_FREEROOM(m),
|
||||||
|
- "DCC MOVE %s %lu %u %u%c\n", buff,
|
||||||
|
- (unsigned long)ntohl(so->so_faddr.s_addr),
|
||||||
|
- ntohs(so->so_fport), n1, 1);
|
||||||
|
+ m->m_len += slirp_fmt(bptr, M_FREEROOM(m),
|
||||||
|
+ "DCC MOVE %s %lu %u %u%c\n", buff,
|
||||||
|
+ (unsigned long)ntohl(so->so_faddr.s_addr),
|
||||||
|
+ ntohs(so->so_fport), n1, 1);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
||||||
|
From 30648c03b27fb8d9611b723184216cd3174b6775 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||||
|
Date: Mon, 27 Jan 2020 10:24:09 +0100
|
||||||
|
Subject: [PATCH] util: add slirp_fmt() helpers
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Various calls to snprintf() in libslirp assume that snprintf() returns
|
||||||
|
"only" the number of bytes written (excluding terminating NUL).
|
||||||
|
|
||||||
|
https://pubs.opengroup.org/onlinepubs/9699919799/functions/snprintf.html#tag_16_159_04
|
||||||
|
|
||||||
|
"Upon successful completion, the snprintf() function shall return the
|
||||||
|
number of bytes that would be written to s had n been sufficiently
|
||||||
|
large excluding the terminating null byte."
|
||||||
|
|
||||||
|
Introduce slirp_fmt() that handles several pathological cases the
|
||||||
|
way libslirp usually expect:
|
||||||
|
|
||||||
|
- treat error as fatal (instead of silently returning -1)
|
||||||
|
|
||||||
|
- fmt0() will always \0 end
|
||||||
|
|
||||||
|
- return the number of bytes actually written (instead of what would
|
||||||
|
have been written, which would usually result in OOB later), including
|
||||||
|
the ending \0 for fmt0()
|
||||||
|
|
||||||
|
- warn if truncation happened (instead of ignoring)
|
||||||
|
|
||||||
|
Other less common cases can still be handled with strcpy/snprintf() etc.
|
||||||
|
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||||
|
Message-Id: <20200127092414.169796-2-marcandre.lureau@redhat.com>
|
||||||
|
---
|
||||||
|
src/util.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
src/util.h | 3 +++
|
||||||
|
2 files changed, 65 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/util.c b/src/util.c
|
||||||
|
index e596087..e3b6257 100644
|
||||||
|
--- a/slirp/src/util.c
|
||||||
|
+++ b/slirp/src/util.c
|
||||||
|
@@ -364,3 +364,65 @@ void slirp_pstrcpy(char *buf, int buf_size, const char *str)
|
||||||
|
}
|
||||||
|
*q = '\0';
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+static int slirp_vsnprintf(char *str, size_t size,
|
||||||
|
+ const char *format, va_list args)
|
||||||
|
+{
|
||||||
|
+ int rv = vsnprintf(str, size, format, args);
|
||||||
|
+
|
||||||
|
+ if (rv < 0) {
|
||||||
|
+ g_error("vsnprintf() failed: %s", g_strerror(errno));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return rv;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * A snprintf()-like function that:
|
||||||
|
+ * - returns the number of bytes written (excluding optional \0-ending)
|
||||||
|
+ * - dies on error
|
||||||
|
+ * - warn on truncation
|
||||||
|
+ */
|
||||||
|
+int slirp_fmt(char *str, size_t size, const char *format, ...)
|
||||||
|
+{
|
||||||
|
+ va_list args;
|
||||||
|
+ int rv;
|
||||||
|
+
|
||||||
|
+ va_start(args, format);
|
||||||
|
+ rv = slirp_vsnprintf(str, size, format, args);
|
||||||
|
+ va_end(args);
|
||||||
|
+
|
||||||
|
+ if (rv > size) {
|
||||||
|
+ g_critical("vsnprintf() truncation");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return MIN(rv, size);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * A snprintf()-like function that:
|
||||||
|
+ * - always \0-end (unless size == 0)
|
||||||
|
+ * - returns the number of bytes actually written, including \0 ending
|
||||||
|
+ * - dies on error
|
||||||
|
+ * - warn on truncation
|
||||||
|
+ */
|
||||||
|
+int slirp_fmt0(char *str, size_t size, const char *format, ...)
|
||||||
|
+{
|
||||||
|
+ va_list args;
|
||||||
|
+ int rv;
|
||||||
|
+
|
||||||
|
+ va_start(args, format);
|
||||||
|
+ rv = slirp_vsnprintf(str, size, format, args);
|
||||||
|
+ va_end(args);
|
||||||
|
+
|
||||||
|
+ if (rv >= size) {
|
||||||
|
+ g_critical("vsnprintf() truncation");
|
||||||
|
+ if (size > 0)
|
||||||
|
+ str[size - 1] = '\0';
|
||||||
|
+ rv = size;
|
||||||
|
+ } else {
|
||||||
|
+ rv += 1; /* include \0 */
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return rv;
|
||||||
|
+}
|
||||||
|
diff --git a/src/util.h b/src/util.h
|
||||||
|
index e9c3073..5530c46 100644
|
||||||
|
--- a/slirp/src/util.h
|
||||||
|
+++ b/slirp/src/util.h
|
||||||
|
@@ -181,4 +181,7 @@ static inline int slirp_socket_set_fast_reuse(int fd)
|
||||||
|
|
||||||
|
void slirp_pstrcpy(char *buf, int buf_size, const char *str);
|
||||||
|
|
||||||
|
+int slirp_fmt(char *str, size_t size, const char *format, ...);
|
||||||
|
+int slirp_fmt0(char *str, size_t size, const char *format, ...);
|
||||||
|
+
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
Fix test failure on armhf and ppc64el:
|
|
||||||
https://gitlab.freedesktop.org/spice/spice-server/issues/31
|
|
||||||
|
|
||||||
Taken from upstream:
|
|
||||||
https://gitlab.freedesktop.org/spice/spice/commit/19f9f454e0777d851f26d14df0c7984267c57015
|
|
||||||
|
|
||||||
diff --git a/server/tests/test-qxl-parsing.c b/server/tests/test-qxl-parsing.c
|
|
||||||
index 60ca8f88c62441e02577ced21e4f60a08ad4171a..234bdabc9ce619d0799b5136f1d72357b0b2f490 100644
|
|
||||||
--- a/server/tests/test-qxl-parsing.c
|
|
||||||
+++ b/server/tests/test-qxl-parsing.c
|
|
||||||
@@ -96,7 +96,7 @@ static void test_memslot_invalid_slot_id(void)
|
|
||||||
RedMemSlotInfo mem_info;
|
|
||||||
init_meminfo(&mem_info);
|
|
||||||
|
|
||||||
- memslot_get_virt(&mem_info, 1 << mem_info.memslot_id_shift, 16, 0);
|
|
||||||
+ memslot_get_virt(&mem_info, UINT64_C(1) << mem_info.memslot_id_shift, 16, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_memslot_invalid_addresses(void)
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
Fix required by suitesparse to build Mongoose
|
||||||
|
|
||||||
|
The CMakeLists.txt of Mongoose assumes that SuiteSparse_config has been
|
||||||
|
installed into the suitesparse source directory, which is not the case
|
||||||
|
for us, as we are building suitesparse out-of-tree.
|
||||||
|
|
||||||
|
SuiteSparse_config can instead be found in the ${CMAKE_INSTALL_PREFIX}
|
||||||
|
directory.
|
||||||
|
|
||||||
|
diff --git a/Mongoose/CMakeLists.txt b/Mongoose/CMakeLists.txt
|
||||||
|
index 7e134ab..76fa9e2 100644
|
||||||
|
--- a/Mongoose/CMakeLists.txt
|
||||||
|
+++ b/Mongoose/CMakeLists.txt
|
||||||
|
@@ -148,10 +148,10 @@ set(CMAKE_CXX_STANDARD 11)
|
||||||
|
#set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
# determine which SuiteSparse_config to use
|
||||||
|
-if (EXISTS ${PROJECT_SOURCE_DIR}/../SuiteSparse_config)
|
||||||
|
- message(STATUS "External ../SuiteSparse_config" ${BoldBlue} " found" ${ColourReset} ".")
|
||||||
|
+if (EXISTS ${CMAKE_INSTALL_PREFIX})
|
||||||
|
+ message(STATUS "External SuiteSparse_config" ${BoldBlue} " found" ${ColourReset} ".")
|
||||||
|
set ( SUITESPARSE_CONFIG_DIR ${PROJECT_SOURCE_DIR}/../SuiteSparse_config )
|
||||||
|
- link_directories ( ${PROJECT_SOURCE_DIR}/../lib )
|
||||||
|
+ link_directories ( ${CMAKE_INSTALL_PREFIX}/lib )
|
||||||
|
message ( STATUS "Note: ../SuiteSparse_config must be compiled before compiling Mongoose" )
|
||||||
|
set ( SUITESPARSE_CONFIG_LIBRARY suitesparseconfig )
|
||||||
|
else ()
|
|
@ -1,84 +0,0 @@
|
||||||
From: Eric Bavier <bavier@member.fsf.org>
|
|
||||||
Date: Sat, 2 Apr 2016 01:31:03 -0500
|
|
||||||
Subject: [PATCH] Build against external libbrotli.
|
|
||||||
|
|
||||||
---
|
|
||||||
Makefile | 20 ++++----------------
|
|
||||||
src/woff2_dec.cc | 2 +-
|
|
||||||
src/woff2_enc.cc | 2 +-
|
|
||||||
3 files changed, 6 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index 92b8d54..618a751 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
OS := $(shell uname)
|
|
||||||
|
|
||||||
-CPPFLAGS = -I./brotli/dec/ -I./brotli/enc/ -I./src
|
|
||||||
+CPPFLAGS := -I./src $(shell pkg-config --cflags libbrotlienc libbrotlidec)
|
|
||||||
|
|
||||||
CC ?= gcc
|
|
||||||
CXX ?= g++
|
|
||||||
@@ -22,29 +22,17 @@ OUROBJ = font.o glyph.o normalize.o table_tags.o transform.o \
|
|
||||||
woff2_dec.o woff2_enc.o woff2_common.o woff2_out.o \
|
|
||||||
variable_length.o
|
|
||||||
|
|
||||||
-BROTLI = brotli
|
|
||||||
-ENCOBJ = $(BROTLI)/enc/*.o
|
|
||||||
-DECOBJ = $(BROTLI)/dec/*.o
|
|
||||||
+BROTLI_LIBS := $(shell pkg-config --libs libbrotlienc libbrotlidec)
|
|
||||||
|
|
||||||
OBJS = $(patsubst %, $(SRCDIR)/%, $(OUROBJ))
|
|
||||||
EXECUTABLES=woff2_compress woff2_decompress
|
|
||||||
|
|
||||||
EXE_OBJS=$(patsubst %, $(SRCDIR)/%.o, $(EXECUTABLES))
|
|
||||||
|
|
||||||
-ifeq (,$(wildcard $(BROTLI)/*))
|
|
||||||
- $(error Brotli dependency not found : you must initialize the Git submodule)
|
|
||||||
-endif
|
|
||||||
-
|
|
||||||
all : $(OBJS) $(EXECUTABLES)
|
|
||||||
|
|
||||||
-$(EXECUTABLES) : $(EXE_OBJS) deps
|
|
||||||
- $(CXX) $(LFLAGS) $(OBJS) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o -o $@
|
|
||||||
-
|
|
||||||
-deps :
|
|
||||||
- $(MAKE) -C $(BROTLI)/dec
|
|
||||||
- $(MAKE) -C $(BROTLI)/enc
|
|
||||||
+$(EXECUTABLES) : $(EXE_OBJS) $(OBJS)
|
|
||||||
+ $(CXX) $(LDFLAGS) $(OBJS) $(SRCDIR)/$@.o -o $@ $(BROTLI_LIBS) $(LIBS)
|
|
||||||
|
|
||||||
clean :
|
|
||||||
rm -f $(OBJS) $(EXE_OBJS) $(EXECUTABLES)
|
|
||||||
- $(MAKE) -C $(BROTLI)/dec clean
|
|
||||||
- $(MAKE) -C $(BROTLI)/enc clean
|
|
||||||
diff --git a/src/woff2_dec.cc b/src/woff2_dec.cc
|
|
||||||
index 837eede..98c01ce 100644
|
|
||||||
--- a/src/woff2_dec.cc
|
|
||||||
+++ b/src/woff2_dec.cc
|
|
||||||
@@ -27,7 +27,7 @@
|
|
||||||
#include <memory>
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
-#include "./decode.h"
|
|
||||||
+#include "brotli/dec/decode.h"
|
|
||||||
#include "./buffer.h"
|
|
||||||
#include "./port.h"
|
|
||||||
#include "./round.h"
|
|
||||||
diff --git a/src/woff2_enc.cc b/src/woff2_enc.cc
|
|
||||||
index 920c614..00d74da 100644
|
|
||||||
--- a/src/woff2_enc.cc
|
|
||||||
+++ b/src/woff2_enc.cc
|
|
||||||
@@ -23,7 +23,7 @@
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
-#include "./encode.h"
|
|
||||||
+#include "brotli/enc/encode.h"
|
|
||||||
#include "./buffer.h"
|
|
||||||
#include "./font.h"
|
|
||||||
#include "./normalize.h"
|
|
||||||
--
|
|
||||||
2.7.3
|
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 ng0 <ng0@n0.is>
|
;;; Copyright © 2016 ng0 <ng0@n0.is>
|
||||||
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
|
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
|
||||||
;;; Copyright © 2016, 2018 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016, 2018, 2020 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
|
;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
|
||||||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
|
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
|
||||||
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
|
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||||
;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
|
@ -325,6 +325,33 @@ signal running perl code from another thread, asynchronously, and
|
||||||
sometimes even without using a single syscall.")
|
sometimes even without using a single syscall.")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-attribute-util
|
||||||
|
(package
|
||||||
|
(name "perl-attribute-util")
|
||||||
|
(version "1.07")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://cpan.metacpan.org/authors/id/D/DA/DANKOGAI/"
|
||||||
|
"Attribute-Util-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1z79d845dy96lg0pxw0kr2za0gniwnpn963r7ccajfpj6k7jfw07"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "https://metacpan.org/pod/Attribute::Util")
|
||||||
|
(synopsis "Assorted general utility attributes")
|
||||||
|
(description "This packages provides various utility functions. When used
|
||||||
|
without argument, this module provides four universally accessible attributes
|
||||||
|
of general interest as follows:
|
||||||
|
@itemize
|
||||||
|
@item Abstract
|
||||||
|
@item Alias
|
||||||
|
@item Memoize
|
||||||
|
@item Method
|
||||||
|
@item SigHandler
|
||||||
|
@end itemize")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-autovivification
|
(define-public perl-autovivification
|
||||||
(package
|
(package
|
||||||
(name "perl-autovivification")
|
(name "perl-autovivification")
|
||||||
|
@ -1414,6 +1441,28 @@ libraries to load configuration data from multiple different file formats. It
|
||||||
supports XML, YAML, JSON, Apache-style configuration, and Perl code.")
|
supports XML, YAML, JSON, Apache-style configuration, and Perl code.")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
|
(define-public perl-config-inifiles
|
||||||
|
(package
|
||||||
|
(name "perl-config-inifiles")
|
||||||
|
(version "3.000002")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/"
|
||||||
|
"Config-IniFiles-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32 "02dsz3inh5jwgaxmbcz8qxwgin8mkhm6vj9jyzfmm3dr5pnxcbnr"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("perl-module-build" ,perl-module-build)
|
||||||
|
("perl-io-stringy",perl-io-stringy)))
|
||||||
|
(home-page "https://metacpan.org/pod/Config::IniFiles")
|
||||||
|
(synopsis "Package for configuration files outside your Perl script")
|
||||||
|
(description "This package provides a way to have readable configuration
|
||||||
|
files outside your Perl script. Configurations can be imported, sections
|
||||||
|
can be grouped, and settings can be accessed from a tied hash.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-config-autoconf
|
(define-public perl-config-autoconf
|
||||||
(package
|
(package
|
||||||
(name "perl-config-autoconf")
|
(name "perl-config-autoconf")
|
||||||
|
@ -2251,14 +2300,14 @@ hours, minutes, seconds, and time zones.")
|
||||||
(define-public perl-datetime
|
(define-public perl-datetime
|
||||||
(package
|
(package
|
||||||
(name "perl-datetime")
|
(name "perl-datetime")
|
||||||
(version "1.51")
|
(version "1.52")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
|
(uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
|
||||||
"DateTime-" version ".tar.gz"))
|
"DateTime-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1ibfq6acz1ih28vl613yygbb3r2d8ykx6di669vajhvswl6xl8ny"))))
|
(base32 "1z1xpifh2kpyw7rlc8ivg9rl0qmabjq979gjp0s9agdjf9hqp0k7"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
|
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
|
||||||
|
@ -2491,15 +2540,14 @@ parsing logic.")
|
||||||
(define-public perl-datetime-format-strptime
|
(define-public perl-datetime-format-strptime
|
||||||
(package
|
(package
|
||||||
(name "perl-datetime-format-strptime")
|
(name "perl-datetime-format-strptime")
|
||||||
(version "1.76")
|
(version "1.77")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
|
(uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
|
||||||
"DateTime-Format-Strptime-" version ".tar.gz"))
|
"DateTime-Format-Strptime-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "0jiy2yc9h9932ykb8x2l1j3ff8ms3p4426m947r5clygis1kr91g"))))
|
||||||
"03dmzi9n6jmnfjmf0ld5sdmi3ib6jrhz25cjzv7d58ypdr32cg2r"))))
|
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("perl-datetime" ,perl-datetime)
|
`(("perl-datetime" ,perl-datetime)
|
||||||
|
@ -5168,6 +5216,26 @@ Bezier Curve Drawing\".")
|
||||||
both positive and negative, in various ways.")
|
both positive and negative, in various ways.")
|
||||||
(license perl-license)))
|
(license perl-license)))
|
||||||
|
|
||||||
|
(define-public perl-math-vecstat
|
||||||
|
(package
|
||||||
|
(name "perl-math-vecstat")
|
||||||
|
(version "0.08")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://cpan/authors/id/A/AS/ASPINELLI/Math-VecStat-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"03bdcl9pn2bc9b50c50nhnr7m9wafylnb3v21zlch98h9c78x6j0"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(home-page "http://search.cpan.org/dist/Math-VecStat")
|
||||||
|
(synopsis "Basic numeric stats on vectors")
|
||||||
|
(description "This package provides some basic statistics on numerical
|
||||||
|
vectors. All the subroutines can take a reference to the vector to be
|
||||||
|
operated on.")
|
||||||
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-memoize
|
(define-public perl-memoize
|
||||||
(package
|
(package
|
||||||
(name "perl-memoize")
|
(name "perl-memoize")
|
||||||
|
@ -9173,15 +9241,14 @@ still work as expected.")
|
||||||
(define-public perl-timedate
|
(define-public perl-timedate
|
||||||
(package
|
(package
|
||||||
(name "perl-timedate")
|
(name "perl-timedate")
|
||||||
(version "2.31")
|
(version "2.32")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/A/AT/ATOOMIC/"
|
(uri (string-append "mirror://cpan/authors/id/A/AT/ATOOMIC/"
|
||||||
"TimeDate-" version ".tar.gz"))
|
"TimeDate-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "1mmk9dy4a26a4d4c5rswqqhxr0295j93bjbcx91d3qkmwfcs1v1l"))))
|
||||||
"10ad6l4ii2iahdpw8h0xqwasc1jblan31h597q3js4j5nbnhywjw"))))
|
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(home-page "https://metacpan.org/release/TimeDate")
|
(home-page "https://metacpan.org/release/TimeDate")
|
||||||
(synopsis "Date parsing/formatting subroutines")
|
(synopsis "Date parsing/formatting subroutines")
|
||||||
|
@ -9625,14 +9692,14 @@ attribute names.")
|
||||||
(define-public perl-xs-object-magic
|
(define-public perl-xs-object-magic
|
||||||
(package
|
(package
|
||||||
(name "perl-xs-object-magic")
|
(name "perl-xs-object-magic")
|
||||||
(version "0.04")
|
(version "0.05")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
|
(uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
|
||||||
"XS-Object-Magic-" version ".tar.gz"))
|
"XS-Object-Magic-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03fghj7hq0fiicmfdxhmzfm4mzv7s097pgkd32ji7jnljvhm9six"))))
|
"0njyy4y0zax4zz55y82dlm9cly1pld1lcxb281s12bp9rrhf9j9x"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl-extutils-depends" ,perl-extutils-depends)
|
`(("perl-extutils-depends" ,perl-extutils-depends)
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
("libxaw" ,libxaw)))
|
("libxaw" ,libxaw)))
|
||||||
|
|
||||||
(home-page
|
(home-page
|
||||||
"http://www.gnu.org/software/plotutils/")
|
"https://www.gnu.org/software/plotutils/")
|
||||||
(synopsis "Plotting utilities and library")
|
(synopsis "Plotting utilities and library")
|
||||||
(description
|
(description
|
||||||
"GNU Plotutils is a package for plotting and working with 2D graphics.
|
"GNU Plotutils is a package for plotting and working with 2D graphics.
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
(define-module (gnu packages pretty-print)
|
(define-module (gnu packages pretty-print)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix licenses)
|
#:use-module (guix licenses)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
@ -166,21 +167,20 @@ different programming languages.")
|
||||||
(define-public fmt
|
(define-public fmt
|
||||||
(package
|
(package
|
||||||
(name "fmt")
|
(name "fmt")
|
||||||
(version "6.0.0")
|
(version "6.1.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
|
||||||
"https://github.com/fmtlib/fmt/releases/download/"
|
version "/fmt-" version ".zip"))
|
||||||
version "/fmt-" version ".zip"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0h148anbaqgch6n69pxsvs1c9wmykgd052wmzgdia7qpz8w6p8dl"))))
|
"1s1hxaby5byb07rgmrk4a0q11fxhz7b42khch7sp2qx974y0yrb3"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
|
'(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("unzip" ,unzip)))
|
`(("unzip" ,unzip)))
|
||||||
(home-page "http://fmtlib.net/")
|
(home-page "https://fmt.dev")
|
||||||
(synopsis "Small and fast C++ formatting library")
|
(synopsis "Small and fast C++ formatting library")
|
||||||
(description
|
(description
|
||||||
"@code{fmt} (formerly @code{cppformat}) is a formatting library for C++.
|
"@code{fmt} (formerly @code{cppformat}) is a formatting library for C++.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
|
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
||||||
|
@ -82,14 +82,14 @@
|
||||||
(define-public python-aiohttp
|
(define-public python-aiohttp
|
||||||
(package
|
(package
|
||||||
(name "python-aiohttp")
|
(name "python-aiohttp")
|
||||||
(version "3.5.4")
|
(version "3.6.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "aiohttp" version))
|
(uri (pypi-uri "aiohttp" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1gy95ni8rkdwzir9zf14ivpfwp02g69xbhibldykff0rzbs86k4w"))))
|
"09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;missing pytest-timeout
|
`(#:tests? #f)) ;missing pytest-timeout
|
||||||
|
|
|
@ -476,14 +476,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of
|
||||||
(define-public python-h5py
|
(define-public python-h5py
|
||||||
(package
|
(package
|
||||||
(name "python-h5py")
|
(name "python-h5py")
|
||||||
(version "2.8.0")
|
(version "2.10.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "h5py" version))
|
(uri (pypi-uri "h5py" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6"))))
|
"0baipzv8n93m0dq0riyi8rfhzrjrfrfh8zqhszzp1j2xjac2fhc4"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no test target
|
`(#:tests? #f ; no test target
|
||||||
|
@ -505,10 +505,11 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of
|
||||||
`(("python-six" ,python-six)
|
`(("python-six" ,python-six)
|
||||||
("python-numpy" ,python-numpy)))
|
("python-numpy" ,python-numpy)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("hdf5" ,hdf5)))
|
`(("hdf5" ,hdf5-1.10)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-cython" ,python-cython)
|
`(("python-cython" ,python-cython)
|
||||||
("python-pkgconfig" ,python-pkgconfig)))
|
("python-pkgconfig" ,python-pkgconfig)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
(home-page "https://www.h5py.org/")
|
(home-page "https://www.h5py.org/")
|
||||||
(synopsis "Read and write HDF5 files from Python")
|
(synopsis "Read and write HDF5 files from Python")
|
||||||
(description
|
(description
|
||||||
|
@ -671,6 +672,26 @@ API for locking files.")
|
||||||
(define-public python2-lockfile
|
(define-public python2-lockfile
|
||||||
(package-with-python2 python-lockfile))
|
(package-with-python2 python-lockfile))
|
||||||
|
|
||||||
|
(define-public python-filelock
|
||||||
|
(package
|
||||||
|
(name "python-filelock")
|
||||||
|
(version "3.0.12")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "filelock" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ngzlvb5j8gqs2nxlp2b0jhzii792h66wsn694qm8kqixr225n0q"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page
|
||||||
|
"https://github.com/benediktschmitt/py-filelock")
|
||||||
|
(synopsis "Platform independent file lock")
|
||||||
|
(description "@code{filelock} contains a single module implementing
|
||||||
|
a platform independent file lock in Python, which provides a simple way of
|
||||||
|
inter-process communication.")
|
||||||
|
(license license:unlicense)))
|
||||||
|
|
||||||
(define-public python-semantic-version
|
(define-public python-semantic-version
|
||||||
(package
|
(package
|
||||||
(name "python-semantic-version")
|
(name "python-semantic-version")
|
||||||
|
@ -2377,28 +2398,30 @@ e.g. filters, callbacks and errbacks can all be promises.")
|
||||||
(define-public python-virtualenv
|
(define-public python-virtualenv
|
||||||
(package
|
(package
|
||||||
(name "python-virtualenv")
|
(name "python-virtualenv")
|
||||||
(version "16.1.0")
|
(version "20.0.8")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "virtualenv" version))
|
(uri (pypi-uri "virtualenv" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0242cg3hdq3qdvx5flyrki8lpwlgwf5k45c21ks5049fv7ygm6gq"))))
|
"096r7g5cv85vxymg9iqbn5z749613snlvd6p3rf1nxnrd386j0qz"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
|
||||||
`(#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(add-before 'check 'disable-failing-test
|
|
||||||
(lambda _
|
|
||||||
;; Disable failing test. See upstream bug report
|
|
||||||
;; https://github.com/pypa/virtualenv/issues/957
|
|
||||||
(substitute* "tests/test_virtualenv.py"
|
|
||||||
(("skipif.*") "skipif(True, reason=\"Guix\")\n"))
|
|
||||||
#t)))))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-mock" ,python-mock)
|
`(("python-mock" ,python-mock)
|
||||||
("python-pytest" ,python-pytest)))
|
("python-pytest" ,python-pytest)
|
||||||
|
;; NOTE: guix lint remarks that "python-setuptools should probably not
|
||||||
|
;; be an input at all". However, removing the input makes the build error:
|
||||||
|
;; File "setup.py", line 4, in <module>
|
||||||
|
;; raise RuntimeError("setuptools >= 41 required to build")
|
||||||
|
("python-setuptools" ,python-setuptools)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-appdirs" ,python-appdirs)
|
||||||
|
("python-distlib" ,python-distlib)
|
||||||
|
("python-filelock" ,python-filelock)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-importlib-metadata" ,python-importlib-metadata)))
|
||||||
(home-page "https://virtualenv.pypa.io/")
|
(home-page "https://virtualenv.pypa.io/")
|
||||||
(synopsis "Virtual Python environment builder")
|
(synopsis "Virtual Python environment builder")
|
||||||
(description
|
(description
|
||||||
|
@ -3154,17 +3177,36 @@ used in text editing environments to provide a complete and integrated
|
||||||
feature-set for programming Python effectively.")
|
feature-set for programming Python effectively.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-pathspec
|
||||||
|
(package
|
||||||
|
(name "python-pathspec")
|
||||||
|
(version "0.7.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pathspec" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"15lvs4awlg8xzl0l4gk9y53xx4yqmqvsv44pglv39m70y85afajn"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page "https://github.com/cpburnz/python-path-specification")
|
||||||
|
(synopsis "Utility library for gitignore style pattern matching of file paths")
|
||||||
|
(description
|
||||||
|
"This package provides a utility library for gitignore style pattern
|
||||||
|
matching of file paths.")
|
||||||
|
(license license:mpl2.0)))
|
||||||
|
|
||||||
(define-public python-black
|
(define-public python-black
|
||||||
(package
|
(package
|
||||||
(name "python-black")
|
(name "python-black")
|
||||||
(version "18.6b4")
|
(version "19.10b0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "black" version))
|
(uri (pypi-uri "black" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0i4sfqgz6w15vd50kbhi7g7rifgqlf8yfr8y78rypd56q64qn592"))))
|
"0f8mr0yzj78q1dx7v6ggbgfir2wv0n5z2shfbbvfdq7910xbgvf2"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -3174,16 +3216,39 @@ feature-set for programming Python effectively.")
|
||||||
(let ((python3 (which "python3")))
|
(let ((python3 (which "python3")))
|
||||||
(substitute* '("tests/data/fmtonoff.py"
|
(substitute* '("tests/data/fmtonoff.py"
|
||||||
"tests/data/string_prefixes.py"
|
"tests/data/string_prefixes.py"
|
||||||
"tests/data/function.py")
|
"tests/data/function.py"
|
||||||
|
"tests/data/python37.py")
|
||||||
(("#!/usr/bin/env python3(\\.[0-9]+)?" _ minor-version)
|
(("#!/usr/bin/env python3(\\.[0-9]+)?" _ minor-version)
|
||||||
(string-append "#!" python3 (if (string? minor-version)
|
(string-append "#!" python3 (if (string? minor-version)
|
||||||
minor-version
|
minor-version
|
||||||
""))))))))))
|
"")))))
|
||||||
|
#t))
|
||||||
|
(add-after 'unpack 'disable-broken-tests
|
||||||
|
(lambda _
|
||||||
|
;; These tests are supposed to be skipped when the blackd
|
||||||
|
;; dependencies are missing, but this doesn't quite work.
|
||||||
|
(substitute* "tests/test_black.py"
|
||||||
|
(("( *)class BlackDTestCase.*" match indent)
|
||||||
|
(string-append indent "@unittest.skip(\"no blackd deps\")\n"
|
||||||
|
indent "class BlackDTestCase(unittest.TestCase):\n"))
|
||||||
|
(("web.Application") "False")
|
||||||
|
(("@unittest_run_loop") ""))
|
||||||
|
|
||||||
|
;; Patching the above file breaks the self test
|
||||||
|
(substitute* "tests/test_black.py"
|
||||||
|
(("( *)def test_self" match indent)
|
||||||
|
(string-append indent "@unittest.skip(\"guix\")\n" match)))
|
||||||
|
#t)))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-click" ,python-click)
|
`(("python-click" ,python-click)
|
||||||
("python-attrs" ,python-attrs)
|
("python-attrs" ,python-attrs)
|
||||||
("python-appdirs" ,python-appdirs)
|
("python-appdirs" ,python-appdirs)
|
||||||
("python-toml" ,python-toml)))
|
("python-pathspec" ,python-pathspec)
|
||||||
|
("python-regex" ,python-regex)
|
||||||
|
("python-toml" ,python-toml)
|
||||||
|
("python-typed-ast" ,python-typed-ast)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
(home-page "https://github.com/ambv/black")
|
(home-page "https://github.com/ambv/black")
|
||||||
(synopsis "The uncompromising code formatter")
|
(synopsis "The uncompromising code formatter")
|
||||||
(description "Black is the uncompromising Python code formatter.")
|
(description "Black is the uncompromising Python code formatter.")
|
||||||
|
@ -3740,21 +3805,20 @@ color scales, and color space conversion easy. It has support for:
|
||||||
(define-public python-pygit2
|
(define-public python-pygit2
|
||||||
(package
|
(package
|
||||||
(name "python-pygit2")
|
(name "python-pygit2")
|
||||||
(version "0.28.2")
|
(version "1.1.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "pygit2" version))
|
(uri (pypi-uri "pygit2" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "11kzj5mjkspvplnpdb6bj8dcj6rgmkk986k8hjcklyg5yaxkz32d"))))
|
(base32 "1hs0pqqzn1yjxqk86nq7p0lvsklwnlyi5xwyzr7d5nrs19dmsjbg"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f)) ; tests don't run correctly in our environment
|
'(#:tests? #f)) ; tests don't run correctly in our environment
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-six" ,python-six)
|
`(("python-cached-property" ,python-cached-property)
|
||||||
("python-cffi" ,python-cffi)
|
("python-cffi" ,python-cffi)
|
||||||
("libgit2" ,libgit2)
|
("libgit2" ,libgit2)))
|
||||||
("python-tox" ,python-tox)))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-pytest" ,python-pytest)))
|
`(("python-pytest" ,python-pytest)))
|
||||||
(home-page "https://github.com/libgit2/pygit2")
|
(home-page "https://github.com/libgit2/pygit2")
|
||||||
|
@ -3764,9 +3828,6 @@ library, libgit2 implements Git plumbing.")
|
||||||
;; GPL2.0 only, with linking exception.
|
;; GPL2.0 only, with linking exception.
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public python2-pygit2
|
|
||||||
(package-with-python2 python-pygit2))
|
|
||||||
|
|
||||||
(define-public python-pyparsing
|
(define-public python-pyparsing
|
||||||
(package
|
(package
|
||||||
(name "python-pyparsing")
|
(name "python-pyparsing")
|
||||||
|
@ -4410,6 +4471,40 @@ by pycodestyle.")
|
||||||
(define-public python2-autopep8
|
(define-public python2-autopep8
|
||||||
(package-with-python2 python-autopep8))
|
(package-with-python2 python-autopep8))
|
||||||
|
|
||||||
|
(define-public python-distlib
|
||||||
|
(package
|
||||||
|
(name "python-distlib")
|
||||||
|
(version "0.3.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "distlib" version ".zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"08fyi2r246733vharl2yckw20rilci28r91mzrnnvcr638inw5if"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'build 'no-/bin/sh
|
||||||
|
(lambda _
|
||||||
|
(substitute* '("distlib/scripts.py" "tests/test_scripts.py")
|
||||||
|
(("/bin/sh") (which "sh")))
|
||||||
|
#t))
|
||||||
|
(add-before 'check 'prepare-test-env
|
||||||
|
(lambda _
|
||||||
|
(setenv "HOME" "/tmp")
|
||||||
|
;; NOTE: Any value works, the variable just has to be present.
|
||||||
|
(setenv "SKIP_ONLINE" "1")
|
||||||
|
#t)))))
|
||||||
|
(native-inputs `(("unzip" ,unzip)))
|
||||||
|
(home-page "https://bitbucket.org/pypa/distlib")
|
||||||
|
(synopsis "Distribution utilities")
|
||||||
|
(description "Distlib is a library which implements low-level functions that
|
||||||
|
relate to packaging and distribution of Python software. It is intended to be
|
||||||
|
used as the basis for third-party packaging tools.")
|
||||||
|
(license license:psfl)))
|
||||||
|
|
||||||
(define-public python-distutils-extra
|
(define-public python-distutils-extra
|
||||||
(package
|
(package
|
||||||
(name "python-distutils-extra")
|
(name "python-distutils-extra")
|
||||||
|
@ -7271,6 +7366,12 @@ printing of sub-tables by specifying a row range.")
|
||||||
"linker_exe='gcc',"
|
"linker_exe='gcc',"
|
||||||
"linker_so='gcc -shared')")))
|
"linker_so='gcc -shared')")))
|
||||||
#t))
|
#t))
|
||||||
|
(add-after 'unpack 'disable-tuning
|
||||||
|
(lambda _
|
||||||
|
(substitute* "setup.py"
|
||||||
|
(("cpu_flags = .*")
|
||||||
|
"cpu_flags = ['sse2']\n"))
|
||||||
|
#t))
|
||||||
(replace 'build
|
(replace 'build
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(invoke "python" "setup.py" "build"
|
(invoke "python" "setup.py" "build"
|
||||||
|
@ -7288,7 +7389,7 @@ printing of sub-tables by specifying a row range.")
|
||||||
`(("python-cython" ,python-cython)
|
`(("python-cython" ,python-cython)
|
||||||
("pkg-config" ,pkg-config)))
|
("pkg-config" ,pkg-config)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("hdf5" ,hdf5)
|
`(("hdf5" ,hdf5-1.10)
|
||||||
("bzip2" ,bzip2)
|
("bzip2" ,bzip2)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
(home-page "http://www.pytables.org/")
|
(home-page "http://www.pytables.org/")
|
||||||
|
@ -7300,6 +7401,84 @@ designed to efficiently cope with extremely large amounts of data.")
|
||||||
(define-public python2-tables
|
(define-public python2-tables
|
||||||
(package-with-python2 python-tables))
|
(package-with-python2 python-tables))
|
||||||
|
|
||||||
|
(define-public python-pytest-black
|
||||||
|
(package
|
||||||
|
(name "python-pytest-black")
|
||||||
|
(version "0.3.8")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pytest-black" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"04lppqydxm0f3f3x0l8hj7v0j6d8syj34jc37yzqwqcyqsnaga81"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-black" ,python-black)
|
||||||
|
("python-toml" ,python-toml)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
|
(home-page "https://github.com/shopkeep/pytest-black")
|
||||||
|
(synopsis "Pytest plugin to enable format checking with black")
|
||||||
|
(description
|
||||||
|
"This package provides a pytest plugin to enable format checking with the
|
||||||
|
Python code formatter \"black\".")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-get-version
|
||||||
|
(package
|
||||||
|
(name "python-get-version")
|
||||||
|
(version "2.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "get_version" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1g15jyx33vkxavv9hwv275cs4g9bp2i1y942raw3fxamq8kbaml1"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-pygments" ,python-pygments)
|
||||||
|
("python-pytest" ,python-pytest)
|
||||||
|
("python-pytest-black" ,python-pytest-black)
|
||||||
|
("python-pytest-cov" ,python-pytest-cov)
|
||||||
|
("python-setuptools" ,python-setuptools)
|
||||||
|
("python-testpath" ,python-testpath)))
|
||||||
|
(home-page "https://github.com/flying-sheep/get_version")
|
||||||
|
(synopsis "Version helper in the spirit of versioneer")
|
||||||
|
(description
|
||||||
|
"This package provides a version helper that lets you automatically use
|
||||||
|
the latest @code{vX.X.X} Git tag as the version in your Python package. It
|
||||||
|
also supports getting the version from Python source distributions or, once
|
||||||
|
your package is installed, via @code{pkg_resources} (part of
|
||||||
|
@code{setuptools}).")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public python-legacy-api-wrap
|
||||||
|
(package
|
||||||
|
(name "python-legacy-api-wrap")
|
||||||
|
(version "1.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "legacy-api-wrap" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"06qhp0g543dy98vpa41hwdalvdbsjfc3ldk474yr9sd75mhl8jh3"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-get-version" ,python-get-version)
|
||||||
|
("python-pytest" ,python-pytest)
|
||||||
|
("python-pytest-black" ,python-pytest-black)
|
||||||
|
("python-pytest-cov" ,python-pytest-cov)
|
||||||
|
("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/flying-sheep/legacy-api-wrap")
|
||||||
|
(synopsis "Legacy API wrapper")
|
||||||
|
(description "This module defines a decorator to wrap legacy APIs. The
|
||||||
|
primary use case is APIs defined before keyword-only parameters existed.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public python-pyasn1
|
(define-public python-pyasn1
|
||||||
(package
|
(package
|
||||||
(name "python-pyasn1")
|
(name "python-pyasn1")
|
||||||
|
@ -8526,7 +8705,7 @@ minimal and fast API targeting the following uses:
|
||||||
@item write and deploy hybrid multi-process applications
|
@item write and deploy hybrid multi-process applications
|
||||||
@item write scripts to administer multiple environments
|
@item write scripts to administer multiple environments
|
||||||
@end enumerate")
|
@end enumerate")
|
||||||
(home-page "http://codespeak.net/execnet/")
|
(home-page "https://codespeak.net/execnet/")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public python2-execnet
|
(define-public python2-execnet
|
||||||
|
@ -14520,7 +14699,12 @@ such as figshare or Zenodo.")
|
||||||
"183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
|
"183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-tox" ,python-tox)
|
`(("python-appdirs" ,python-appdirs)
|
||||||
|
("python-distlib" ,python-distlib)
|
||||||
|
("python-importlib-metadata" ,python-importlib-metadata)
|
||||||
|
("python-filelock" ,python-filelock)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-tox" ,python-tox)
|
||||||
("python-virtualenv" ,python-virtualenv)))
|
("python-virtualenv" ,python-virtualenv)))
|
||||||
(home-page "https://github.com/k-bx/python-semver")
|
(home-page "https://github.com/k-bx/python-semver")
|
||||||
(synopsis "Python helper for Semantic Versioning")
|
(synopsis "Python helper for Semantic Versioning")
|
||||||
|
@ -15835,23 +16019,126 @@ infrastructure at import time, runtime, or statically (using the included pycc
|
||||||
tool).")
|
tool).")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public python-numcodecs
|
||||||
|
(package
|
||||||
|
(name "python-numcodecs")
|
||||||
|
(version "0.6.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "numcodecs" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0kbfr8pl3x9glsypbq8hzim003f16ml1b1cvgrh4w1sdvgal6j7g"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-numpy" ,python-numpy)
|
||||||
|
("python-msgpack" ,python-msgpack)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
|
(home-page "https://github.com/zarr-developers/numcodecs")
|
||||||
|
(synopsis "Buffer compression and transformation codecs")
|
||||||
|
(description
|
||||||
|
"This Python package provides buffer compression and transformation
|
||||||
|
codecs for use in data storage and communication applications.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-asciitree
|
||||||
|
(package
|
||||||
|
(name "python-asciitree")
|
||||||
|
(version "0.3.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "asciitree" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0vhgri2m2xlnibhz4xwn4hpbc7xacisxjqrk6k5kyppq96vbk92a"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page "https://github.com/mbr/asciitree")
|
||||||
|
(synopsis "Draws ASCII trees")
|
||||||
|
(description "This package draws tree structures using characters.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-zarr
|
||||||
|
(package
|
||||||
|
(name "python-zarr")
|
||||||
|
(version "2.4.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "zarr" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"026n3sjzjv2gmwx6y72b8ij0hk42bc8zdbvfj5gdqzd4i6wj3ajk"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'disable-service-tests
|
||||||
|
(lambda _
|
||||||
|
(setenv "ZARR_TEST_ABS" "0")
|
||||||
|
(setenv "ZARR_TEST_MONGO" "0")
|
||||||
|
(setenv "ZARR_TEST_REDIS" "0")
|
||||||
|
#t))
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
(invoke "pytest" "-vv" "-k" "not lmdb")
|
||||||
|
#t)))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-asciitree" ,python-asciitree)
|
||||||
|
("python-fasteners" ,python-fasteners)
|
||||||
|
("python-numcodecs" ,python-numcodecs)
|
||||||
|
("python-numpy" ,python-numpy)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
|
(home-page "https://github.com/zarr-developers/zarr-python")
|
||||||
|
(synopsis "Chunked, compressed, N-dimensional arrays for Python")
|
||||||
|
(description
|
||||||
|
"This package provides an implementation of chunked, compressed,
|
||||||
|
N-dimensional arrays for Python.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public python-anndata
|
(define-public python-anndata
|
||||||
(package
|
(package
|
||||||
(name "python-anndata")
|
(name "python-anndata")
|
||||||
(version "0.6.18")
|
(version "0.7.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "anndata" version))
|
(uri (pypi-uri "anndata" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03x83yjaccbqszj7x4fwwmpil0ai59yx64d1zmf2691za3j03w73"))))
|
"0rnfbpr55j1a1bi2kd4mz444741hrn74kz90h5rnjr59jmpfnh09"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'delete-inconvenient-tests
|
||||||
|
(lambda _
|
||||||
|
;; This test depends on python-scikit-learn.
|
||||||
|
(delete-file "anndata/tests/test_inplace_subset.py")
|
||||||
|
#t))
|
||||||
|
(delete 'check)
|
||||||
|
(add-after 'install 'check
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(add-installed-pythonpath inputs outputs)
|
||||||
|
(invoke "pytest" "-vv"))))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-h5py" ,python-h5py)
|
`(("python-h5py" ,python-h5py)
|
||||||
|
("python-importlib-metadata" ,python-importlib-metadata)
|
||||||
("python-natsort" ,python-natsort)
|
("python-natsort" ,python-natsort)
|
||||||
|
("python-numcodecs" ,python-numcodecs)
|
||||||
|
("python-packaging" ,python-packaging)
|
||||||
("python-pandas" ,python-pandas)
|
("python-pandas" ,python-pandas)
|
||||||
("python-scipy" ,python-scipy)))
|
("python-scipy" ,python-scipy)
|
||||||
|
("python-zarr" ,python-zarr)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-joblib" ,python-joblib)
|
||||||
|
("python-pytest" ,python-pytest)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
(home-page "https://github.com/theislab/anndata")
|
(home-page "https://github.com/theislab/anndata")
|
||||||
(synopsis "Annotated data for data analysis pipelines")
|
(synopsis "Annotated data for data analysis pipelines")
|
||||||
(description "Anndata is a package for simple (functional) high-level APIs
|
(description "Anndata is a package for simple (functional) high-level APIs
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
(base32
|
(base32
|
||||||
"05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s"))))
|
"05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(home-page "http://re2c.org/")
|
(home-page "https://re2c.org/")
|
||||||
(synopsis "Lexer generator for C/C++")
|
(synopsis "Lexer generator for C/C++")
|
||||||
(description
|
(description
|
||||||
"@code{re2c} generates minimalistic hard-coded state machine (as opposed
|
"@code{re2c} generates minimalistic hard-coded state machine (as opposed
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
|
;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
|
||||||
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||||
|
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -184,11 +185,11 @@ also knows about symlinks, extended attributes, and Git.")
|
||||||
;; Manpages
|
;; Manpages
|
||||||
(install-file "doc/fd.1" (string-append out "/share/man/man1"))
|
(install-file "doc/fd.1" (string-append out "/share/man/man1"))
|
||||||
;; Completions
|
;; Completions
|
||||||
(install-completion "^fd.bash$" "/etc/bash-completion.d")
|
(install-completion "^fd.bash$" "/etc/bash_completion.d")
|
||||||
(install-completion "^fd.fish$" "/share/fish/vendor_completions.d")
|
(install-completion "^fd.fish$" "/share/fish/vendor_completions.d")
|
||||||
(install-completion "^_fd$" "/share/zsh/site-functions")
|
(install-completion "^_fd$" "/share/zsh/site-functions")
|
||||||
(rename-file (string-append out "/etc/bash-completion.d/fd.bash")
|
(rename-file (string-append out "/etc/bash_completion.d/fd.bash")
|
||||||
(string-append out "/etc/bash-completion.d/fd"))
|
(string-append out "/etc/bash_completion.d/fd"))
|
||||||
#t))))))
|
#t))))))
|
||||||
(inputs `(("jemalloc" ,jemalloc)))
|
(inputs `(("jemalloc" ,jemalloc)))
|
||||||
(home-page "https://github.com/sharkdp/fd")
|
(home-page "https://github.com/sharkdp/fd")
|
||||||
|
|
|
@ -421,47 +421,51 @@ key-value pair databases and a real LDAP database.")
|
||||||
(license lgpl3+)))
|
(license lgpl3+)))
|
||||||
|
|
||||||
(define-public ppp
|
(define-public ppp
|
||||||
(package
|
;; This git commit contains unreleased fixes for CVE-2020-8597.
|
||||||
(name "ppp")
|
(let ((revision "1")
|
||||||
(version "2.4.8")
|
(commit "8d45443bb5c9372b4c6a362ba2f443d41c5636af"))
|
||||||
(source (origin
|
(package
|
||||||
(method git-fetch)
|
(name "ppp")
|
||||||
(uri (git-reference
|
(version (git-version "2.4.8" revision commit))
|
||||||
(url "https://github.com/paulusmack/ppp")
|
(source (origin
|
||||||
(commit (string-append "ppp-" version))))
|
(method git-fetch)
|
||||||
(file-name (git-file-name name version))
|
(uri (git-reference
|
||||||
(sha256
|
(url "https://github.com/paulusmack/ppp")
|
||||||
(base32
|
(commit commit)))
|
||||||
"1i88m79h6g3fzsb4yw3k8bq1grsx3hsyawm7id2vcaab0gfqzjjv"))))
|
(file-name (git-file-name name version))
|
||||||
(build-system gnu-build-system)
|
(sha256
|
||||||
(arguments
|
(base32
|
||||||
'(#:tests? #f ; no check target
|
"06cf8fb84l3h2zy5da4j7k2j1qjv2gfqn986sf43xgj75605aks2"))))
|
||||||
#:make-flags '("CC=gcc")
|
(build-system gnu-build-system)
|
||||||
#:phases
|
(arguments
|
||||||
(modify-phases %standard-phases
|
'(#:tests? #f ; no check target
|
||||||
(add-before 'configure 'patch-Makefile
|
#:make-flags '("CC=gcc")
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
#:phases
|
||||||
(let ((libc (assoc-ref inputs "libc"))
|
(modify-phases %standard-phases
|
||||||
(openssl (assoc-ref inputs "openssl"))
|
(add-before 'configure 'patch-Makefile
|
||||||
(libpcap (assoc-ref inputs "libpcap")))
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(substitute* "pppd/Makefile.linux"
|
(let ((libc (assoc-ref inputs "libc"))
|
||||||
(("/usr/include/crypt\\.h")
|
(openssl (assoc-ref inputs "openssl"))
|
||||||
(string-append libc "/include/crypt.h"))
|
(libpcap (assoc-ref inputs "libpcap")))
|
||||||
(("/usr/include/openssl")
|
(substitute* "pppd/Makefile.linux"
|
||||||
(string-append openssl "/include/openssl"))
|
(("/usr/include/crypt\\.h")
|
||||||
(("/usr/include/pcap-bpf.h")
|
(string-append libc "/include/crypt.h"))
|
||||||
(string-append libpcap "/include/pcap-bpf.h")))
|
(("/usr/include/openssl")
|
||||||
#t))))))
|
(string-append openssl "/include/openssl"))
|
||||||
(inputs
|
(("/usr/include/pcap-bpf.h")
|
||||||
`(("libpcap" ,libpcap)
|
(string-append libpcap "/include/pcap-bpf.h")))
|
||||||
("openssl" ,(@ (gnu packages tls) openssl))))
|
#t))))))
|
||||||
(synopsis "Implementation of the Point-to-Point Protocol")
|
(inputs
|
||||||
(home-page "https://ppp.samba.org/")
|
`(("libpcap" ,libpcap)
|
||||||
(description
|
("openssl" ,(@ (gnu packages tls) openssl))))
|
||||||
"The Point-to-Point Protocol (PPP) provides a standard way to establish
|
(synopsis "Implementation of the Point-to-Point Protocol")
|
||||||
|
(home-page "https://ppp.samba.org/")
|
||||||
|
(description
|
||||||
|
"The Point-to-Point Protocol (PPP) provides a standard way to establish
|
||||||
a network connection over a serial link. At present, this package supports IP
|
a network connection over a serial link. At present, this package supports IP
|
||||||
and IPV6 and the protocols layered above them, such as TCP and UDP.")
|
and IPV6 and the protocols layered above them, such as TCP and UDP.")
|
||||||
;; pppd, pppstats and pppdump are under BSD-style notices.
|
;; pppd, pppstats and pppdump are under BSD-style notices.
|
||||||
;; some of the pppd plugins are GPL'd.
|
;; some of the pppd plugins are GPL'd.
|
||||||
;; chat is public domain.
|
;; chat is public domain.
|
||||||
(license (list bsd-3 bsd-4 gpl2+ public-domain))))
|
(license (list bsd-3 bsd-4 gpl2+ public-domain)))))
|
||||||
|
|
||||||
|
|
|
@ -755,7 +755,7 @@ utility functions for all standard Scheme implementations.")
|
||||||
(define-public scm
|
(define-public scm
|
||||||
(package
|
(package
|
||||||
(name "scm")
|
(name "scm")
|
||||||
(version "5f2")
|
(version "5f3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -763,7 +763,7 @@ utility functions for all standard Scheme implementations.")
|
||||||
version ".zip"))
|
version ".zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"050ijb51jm1cij9g3r89zl9rawsrikhbb5y8zb7lspb7bsxq5w99"))))
|
"1jxxlhmgal26mpcl97kz37djkn97rfy9h5pvw0hah6f3f6w49j97"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
|
@ -336,7 +336,7 @@ SDL.")
|
||||||
"sdl-pango-api_additions.patch"
|
"sdl-pango-api_additions.patch"
|
||||||
"sdl-pango-blit_overflow.patch"
|
"sdl-pango-blit_overflow.patch"
|
||||||
"sdl-pango-fillrect_crash.patch"
|
"sdl-pango-fillrect_crash.patch"
|
||||||
"sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch"
|
"sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch"
|
||||||
"sdl-pango-matrix_declarations.patch"
|
"sdl-pango-matrix_declarations.patch"
|
||||||
"sdl-pango-sans-serif.patch"))))
|
"sdl-pango-sans-serif.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
|
@ -391,7 +391,7 @@ written by Paul Haahr and Byron Rakitzis.")
|
||||||
(with-directory-excursion bin
|
(with-directory-excursion bin
|
||||||
(symlink "tcsh" "csh"))
|
(symlink "tcsh" "csh"))
|
||||||
#t))))))
|
#t))))))
|
||||||
(home-page "http://www.tcsh.org/")
|
(home-page "https://www.tcsh.org/")
|
||||||
(synopsis "Unix shell based on csh")
|
(synopsis "Unix shell based on csh")
|
||||||
(description
|
(description
|
||||||
"Tcsh is an enhanced, but completely compatible version of the Berkeley
|
"Tcsh is an enhanced, but completely compatible version of the Berkeley
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
|
;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
|
||||||
;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
|
;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
|
||||||
;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
|
;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -104,14 +104,14 @@ complexity.")))
|
||||||
(define-public s6
|
(define-public s6
|
||||||
(package
|
(package
|
||||||
(name "s6")
|
(name "s6")
|
||||||
(version "2.8.0.1")
|
(version "2.9.0.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://skarnet.org/software/s6/s6-"
|
(uri (string-append "http://skarnet.org/software/s6/s6-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1n1i3jm3kp9ii54cxj1sgh89m6nyna7vhy8714ma6py1frdqzq6v"))))
|
(base32 "0mvcjrz8nlj9p2zclmcv22b4y6bqzd2iz38arhgc989vdvrbmkg0"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("skalibs" ,skalibs)
|
(inputs `(("skalibs" ,skalibs)
|
||||||
("execline" ,execline)))
|
("execline" ,execline)))
|
||||||
|
@ -179,14 +179,14 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
|
||||||
(define-public s6-networking
|
(define-public s6-networking
|
||||||
(package
|
(package
|
||||||
(name "s6-networking")
|
(name "s6-networking")
|
||||||
(version "2.3.1.1")
|
(version "2.3.1.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
|
(uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "127i7ig5wdgjbkjf0py0g96llc6cbxij22ns2j7bwa95figinhcx"))))
|
(base32 "1029bgwfmv903y5ji93j75m7p2jgchdxya1khxzb42q2z7yxnlyr"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("skalibs" ,skalibs)
|
(inputs `(("skalibs" ,skalibs)
|
||||||
("execline" ,execline)
|
("execline" ,execline)
|
||||||
|
@ -222,14 +222,14 @@ clock synchronization.")))
|
||||||
(define-public s6-rc
|
(define-public s6-rc
|
||||||
(package
|
(package
|
||||||
(name "s6-rc")
|
(name "s6-rc")
|
||||||
(version "0.5.1.1")
|
(version "0.5.1.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://skarnet.org/software/s6-rc/s6-rc-"
|
(uri (string-append "http://skarnet.org/software/s6-rc/s6-rc-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0lmg517l8inn7bi57q35rjd7b4jmqlmkhrbvs5ybbhinhd12qzi5"))))
|
(base32 "18m8jsx3bkj566p6xwwnsvdckk10n8wqnhp0na2k88i295h4rnjp"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("skalibs" ,skalibs)
|
(inputs `(("skalibs" ,skalibs)
|
||||||
("execline" ,execline)
|
("execline" ,execline)
|
||||||
|
@ -263,7 +263,7 @@ environment.")))
|
||||||
(define-public s6-portable-utils
|
(define-public s6-portable-utils
|
||||||
(package
|
(package
|
||||||
(name "s6-portable-utils")
|
(name "s6-portable-utils")
|
||||||
(version "2.2.2.1")
|
(version "2.2.2.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -271,7 +271,7 @@ environment.")))
|
||||||
"http://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
|
"http://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "074kizkxjwvmxspxg69fr8r0lbiy61l2n5nzgbfvwvhc6lj34iqy"))))
|
(base32 "1k3la37q46n93vjwk9wm9ym4w87z6lqzv43f03qd0vqj9k94mpv3"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("skalibs" ,skalibs)))
|
(inputs `(("skalibs" ,skalibs)))
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere.")))
|
||||||
(define-public s6-linux-init
|
(define-public s6-linux-init
|
||||||
(package
|
(package
|
||||||
(name "s6-linux-init")
|
(name "s6-linux-init")
|
||||||
(version "1.0.3.1")
|
(version "1.0.4.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -303,7 +303,7 @@ systems and other constrained environments, but they work everywhere.")))
|
||||||
"http://skarnet.org/software/s6-linux-init/s6-linux-init-"
|
"http://skarnet.org/software/s6-linux-init/s6-linux-init-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1yq2xnp41a1lqpjzvq5jawgy64jwaxalvjdnlvgdpi9bkicgasi1"))))
|
(base32 "176mgkqxlp6gb6my66dv73xsp7adfxbjp5hjyh35sykqkr4kfyfy"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("execline" ,execline)
|
`(("execline" ,execline)
|
||||||
|
@ -340,7 +340,7 @@ all the details.")))
|
||||||
(define-public s6-linux-utils
|
(define-public s6-linux-utils
|
||||||
(package
|
(package
|
||||||
(name "s6-linux-utils")
|
(name "s6-linux-utils")
|
||||||
(version "2.5.1.1")
|
(version "2.5.1.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -348,7 +348,7 @@ all the details.")))
|
||||||
"http://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
|
"http://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "00nw2phd9prgv29hzqzwjnh4y0ivkzhx3srn6n1rlyr4ydhikxi5"))))
|
(base32 "0w4jms9qyb5kx9zcyd3gzri60rrii2rbmh08s59ckg4awy27py86"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("skalibs" ,skalibs)))
|
(inputs `(("skalibs" ,skalibs)))
|
||||||
(arguments
|
(arguments
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
("libpng" ,libpng)
|
("libpng" ,libpng)
|
||||||
("pcre" ,pcre)
|
("pcre" ,pcre)
|
||||||
("ncurses" ,ncurses)))
|
("ncurses" ,ncurses)))
|
||||||
(home-page "http://www.jedsoft.org/slang/")
|
(home-page "https://www.jedsoft.org/slang/")
|
||||||
(synopsis "Library for interactive applications and extensibility")
|
(synopsis "Library for interactive applications and extensibility")
|
||||||
(description
|
(description
|
||||||
"S-Lang is a multi-platform programmer's library designed to allow a
|
"S-Lang is a multi-platform programmer's library designed to allow a
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||||
;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
|
;;; Copyright © 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
|
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
|
||||||
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
|
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||||
|
@ -149,13 +149,13 @@ sources.")
|
||||||
(define-public python-sphinxcontrib-applehelp
|
(define-public python-sphinxcontrib-applehelp
|
||||||
(package
|
(package
|
||||||
(name "python-sphinxcontrib-applehelp")
|
(name "python-sphinxcontrib-applehelp")
|
||||||
(version "1.0.1")
|
(version "1.0.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "sphinxcontrib-applehelp" version))
|
(uri (pypi-uri "sphinxcontrib-applehelp" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"15rqmgphj4wqf4m5wnzxgmwxx5jwfzb0j0nb94ql0x5wnar0mapd"))))
|
"0n5wrn4l7x6gxvi1g7c6y72hkxgc223axz1jykipaxhfr1g76wm0"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||||
|
@ -195,13 +195,13 @@ to code blocks.")
|
||||||
(define-public python-sphinxcontrib-devhelp
|
(define-public python-sphinxcontrib-devhelp
|
||||||
(package
|
(package
|
||||||
(name "python-sphinxcontrib-devhelp")
|
(name "python-sphinxcontrib-devhelp")
|
||||||
(version "1.0.1")
|
(version "1.0.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "sphinxcontrib-devhelp" version))
|
(uri (pypi-uri "sphinxcontrib-devhelp" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0d2a57kqxl72i55rns0ly1i044y2x234b9sdi89ajc3kjdvv0r3c"))))
|
"1r1qngsbjqbg4rj93kpj44qqy7n4x5khldkr0c3ffhlnggx1lzzz"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||||
|
@ -215,13 +215,13 @@ to code blocks.")
|
||||||
(define-public python-sphinxcontrib-htmlhelp
|
(define-public python-sphinxcontrib-htmlhelp
|
||||||
(package
|
(package
|
||||||
(name "python-sphinxcontrib-htmlhelp")
|
(name "python-sphinxcontrib-htmlhelp")
|
||||||
(version "1.0.2")
|
(version "1.0.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "sphinxcontrib-htmlhelp" version))
|
(uri (pypi-uri "sphinxcontrib-htmlhelp" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"08l4x8a2l4xjqdd5rhvmfsqihmlgg4prdayj9b6pigaii6gzjw26"))))
|
"16v5jdnibwrqjdr5aqchgyzpwy3rgamwhdf4kidv5nxj65zbpxg8"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||||
|
@ -300,13 +300,13 @@ commands into documents, helping you to keep your command examples up to date.")
|
||||||
(define-public python-sphinxcontrib-qthelp
|
(define-public python-sphinxcontrib-qthelp
|
||||||
(package
|
(package
|
||||||
(name "python-sphinxcontrib-qthelp")
|
(name "python-sphinxcontrib-qthelp")
|
||||||
(version "1.0.2")
|
(version "1.0.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "sphinxcontrib-qthelp" version))
|
(uri (pypi-uri "sphinxcontrib-qthelp" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0vs09m6kf5vhiivpi5s5pks59iq0lqlsbkdycpqlysg53bhmqikr"))))
|
"0wjsp96d262shzkx7pb7pra7mmf0j8c5rz56i6x0vdsqw1z7ccsc"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||||
|
@ -320,13 +320,13 @@ documents.")
|
||||||
(define-public python-sphinxcontrib-serializinghtml
|
(define-public python-sphinxcontrib-serializinghtml
|
||||||
(package
|
(package
|
||||||
(name "python-sphinxcontrib-serializinghtml")
|
(name "python-sphinxcontrib-serializinghtml")
|
||||||
(version "1.1.3")
|
(version "1.1.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "sphinxcontrib-serializinghtml" version))
|
(uri (pypi-uri "sphinxcontrib-serializinghtml" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"09sj3nwahwr4iymg86gczbh151cfczqhf2kclbblzh2jh0zv7vy0"))))
|
"1g3pbx0g88zd9xzcrbaypa2k60axrh92vf5j76wsk0p9hv6fr87a"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||||
|
@ -359,13 +359,13 @@ builder does not support SVG images natively (e.g. LaTeX).")
|
||||||
(define-public python-sphinxcontrib-websupport
|
(define-public python-sphinxcontrib-websupport
|
||||||
(package
|
(package
|
||||||
(name "python-sphinxcontrib-websupport")
|
(name "python-sphinxcontrib-websupport")
|
||||||
(version "1.1.0")
|
(version "1.2.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "sphinxcontrib-websupport" version))
|
(uri (pypi-uri "sphinxcontrib-websupport" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x"))))
|
"1smma7r0rhwcmbfvvkfs5djfz1qm8wbpcvp084ca6dmw2b9zplxs"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; FIXME: Tests depend on Sphinx, which depends on this.
|
;; FIXME: Tests depend on Sphinx, which depends on this.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue