Merge branch 'master' into core-updates
commit
50b99c90c8
|
@ -1,5 +1,5 @@
|
|||
# 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 © 2015, 2017 Alex Kost <alezost@gmail.com>
|
||||
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
|
||||
|
@ -511,9 +511,7 @@ endif !CAN_RUN_TESTS
|
|||
|
||||
check-system: $(GOBJECTS)
|
||||
$(AM_V_at)$(top_builddir)/pre-inst-env \
|
||||
$(GUILE) --no-auto-compile \
|
||||
-e '(@@ (run-system-tests) run-system-tests)' \
|
||||
$(top_srcdir)/build-aux/run-system-tests.scm
|
||||
guix build -m $(top_srcdir)/etc/system-tests.scm -K
|
||||
|
||||
# Public keys used to sign substitutes.
|
||||
dist_pkgdata_DATA = \
|
||||
|
@ -544,6 +542,7 @@ EXTRA_DIST += \
|
|||
scripts/guix.in \
|
||||
etc/guix-install.sh \
|
||||
etc/news.scm \
|
||||
etc/system-tests.scm \
|
||||
build-aux/build-self.scm \
|
||||
build-aux/compile-all.scm \
|
||||
build-aux/hydra/evaluate.scm \
|
||||
|
@ -561,7 +560,6 @@ EXTRA_DIST += \
|
|||
build-aux/test-driver.scm \
|
||||
build-aux/update-guix-package.scm \
|
||||
build-aux/update-NEWS.scm \
|
||||
build-aux/run-system-tests.scm \
|
||||
d3.v3.js \
|
||||
graph.js \
|
||||
tests/test.drv \
|
||||
|
|
|
@ -169,8 +169,12 @@
|
|||
"BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC")
|
||||
("rhelling"
|
||||
"0154 E1B9 1CC9 D9EF 7764 8DE7 F3A7 27DB 44FC CA36")
|
||||
("roelj"
|
||||
("roelj (old)"
|
||||
"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)"
|
||||
"B5FA E628 5B41 3728 B2A0 FAED 4311 1F45 2008 6A0C")
|
||||
("roptat"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 © 2018, 2019 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
|
@ -31,7 +31,7 @@
|
|||
|
||||
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
|
||||
;; 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))
|
||||
|
||||
(define (find-current-checkout arguments)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -33,7 +33,7 @@
|
|||
|
||||
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
|
||||
;; 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))
|
||||
|
||||
(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
|
||||
that anyone can contribute to the best of their abilities. To this end
|
||||
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.
|
||||
|
||||
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}).
|
||||
|
||||
@itemize
|
||||
@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
|
||||
@item @url{http://gnu.org/software/automake/, GNU Automake};
|
||||
@item @url{http://gnu.org/software/gettext/, GNU Gettext};
|
||||
@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
|
||||
@item @url{http://www.graphviz.org/, Graphviz};
|
||||
@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
||||
@item @url{https://gnu.org/software/autoconf/, GNU Autoconf};
|
||||
@item @url{https://gnu.org/software/automake/, GNU Automake};
|
||||
@item @url{https://gnu.org/software/gettext/, GNU Gettext};
|
||||
@item @url{https://gnu.org/software/texinfo/, GNU Texinfo};
|
||||
@item @url{https://www.graphviz.org/, Graphviz};
|
||||
@item @url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
||||
@end itemize
|
||||
|
||||
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
|
||||
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
||||
Manual}). First, you need more than an editor, you need
|
||||
@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||
wonderful @url{http://nongnu.org/geiser/, Geiser}. To set that up, run:
|
||||
@url{https://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||
wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run:
|
||||
|
||||
@example
|
||||
guix package -i emacs guile emacs-geiser
|
||||
|
@ -250,7 +250,7 @@ s-expression, etc.
|
|||
@cindex reducing boilerplate
|
||||
We also provide templates for common git commit messages and package
|
||||
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
|
||||
to add the snippets directory to the @var{yas-snippet-dirs} variable in
|
||||
Emacs.
|
||||
|
@ -385,14 +385,14 @@ needed is to review and apply the patch.
|
|||
@cindex free software
|
||||
The GNU operating system has been developed so that users can have
|
||||
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
|
||||
in source code form, to redistribute exact copies, and to distribute
|
||||
modified versions. Packages found in the GNU distribution provide only
|
||||
software that conveys these four freedoms.
|
||||
|
||||
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
|
||||
reject non-free firmware, recommendations of non-free software, and
|
||||
discuss ways to deal with trademarks and patents.
|
||||
|
@ -571,7 +571,7 @@ such as @command{guix package --show} take care of rendering it
|
|||
appropriately.
|
||||
|
||||
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
|
||||
their native language. User interfaces search them and display them in
|
||||
the language specified by the current locale.
|
||||
|
@ -838,7 +838,7 @@ especially when matching lists.
|
|||
@cindex coding style
|
||||
When writing Scheme code, we follow common wisdom among Scheme
|
||||
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
|
||||
used in Guile’s code too. It is very thoughtful and well written, so
|
||||
please do read it.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
@display
|
||||
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
|
||||
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
|
||||
versions will be similar in spirit to the present version, but may
|
||||
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.
|
||||
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 Damien Cassou@*
|
||||
Copyright @copyright{} 2020 Jakub Kądziołka@*
|
||||
Copyright @copyright{} 2020 Jack Hill@*
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
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
|
||||
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}
|
||||
command, followed by an @code{npm test} command.
|
||||
|
||||
|
@ -13350,7 +13351,7 @@ The ModemManager package to use.
|
|||
|
||||
@defvr {Scheme Variable} usb-modeswitch-service-type
|
||||
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.
|
||||
|
||||
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 real time clock
|
||||
@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
|
||||
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
|
||||
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.
|
||||
|
||||
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})
|
||||
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
|
||||
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.
|
||||
|
||||
@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
|
||||
via @code{pulseaudio-configuration}, see below.
|
||||
|
||||
|
@ -20398,7 +20399,7 @@ configuration. Otherwise this must be a file-like object with valid
|
|||
VCL syntax.
|
||||
|
||||
@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:
|
||||
|
||||
@lisp
|
||||
|
@ -21008,6 +21009,10 @@ and several @code{domains}.
|
|||
Mandatory email used for registration, recovery contact, and important
|
||||
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})
|
||||
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
|
||||
packages locally.
|
||||
|
||||
@item @code{extra-options} (default: @code{'()})
|
||||
Extra options to pass when running the Cuirass processes.
|
||||
|
||||
@item @code{cuirass} (default: @code{cuirass})
|
||||
The Cuirass package to use.
|
||||
@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
|
||||
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 deftp
|
||||
|
||||
|
@ -25814,7 +25828,7 @@ next method in the list. The NSS configuration is given in the
|
|||
@cindex nss-mdns
|
||||
@cindex .local, host name lookup
|
||||
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)
|
||||
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
|
||||
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
|
||||
bootstrap GCC with a sequence of assemblers, interpreters, and compilers
|
||||
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 build-system)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix ui)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl3+ license? license-name))
|
||||
|
@ -54,7 +55,7 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (channel-instance->package
|
||||
#:export (channel-source->package
|
||||
hydra-jobs))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -139,6 +140,49 @@ SYSTEM."
|
|||
"i686-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
|
||||
'("x86_64-linux" "i686-linux" "armhf-linux"))
|
||||
|
||||
|
@ -200,29 +244,39 @@ system.")
|
|||
(define channel-build-system
|
||||
;; Build system used to "convert" a channel instance to a package.
|
||||
(let* ((build (lambda* (store name inputs
|
||||
#:key instance system
|
||||
#:key source commit system
|
||||
#:allow-other-keys)
|
||||
(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)))
|
||||
(lower (lambda* (name #:key system instance #:allow-other-keys)
|
||||
(lower (lambda* (name #:key system source commit
|
||||
#:allow-other-keys)
|
||||
(bag
|
||||
(name name)
|
||||
(system system)
|
||||
(build build)
|
||||
(arguments `(#:instance ,instance))))))
|
||||
(arguments `(#:source ,source
|
||||
#:commit ,commit))))))
|
||||
(build-system (name 'channel)
|
||||
(description "Turn a channel instance into a package.")
|
||||
(lower lower))))
|
||||
|
||||
(define (channel-instance->package instance)
|
||||
"Return a package for the given channel INSTANCE."
|
||||
(define* (channel-source->package source #:key commit)
|
||||
"Return a package for the given channel SOURCE, a lowerable object."
|
||||
(package
|
||||
(inherit guix)
|
||||
(version (or (string-take (channel-instance-commit instance) 7)
|
||||
(string-append (package-version guix) "+")))
|
||||
(version (string-append (package-version guix) "+"))
|
||||
(build-system channel-build-system)
|
||||
(arguments `(#:instance ,instance))
|
||||
(arguments `(#:source ,source
|
||||
#:commit ,commit))
|
||||
(inputs '())
|
||||
(native-inputs '())
|
||||
(propagated-inputs '())))
|
||||
|
@ -230,9 +284,6 @@ system.")
|
|||
(define* (system-test-jobs store system
|
||||
#:key source commit)
|
||||
"Return a list of jobs for the system tests."
|
||||
(define instance
|
||||
(checkout->channel-instance source #:commit commit))
|
||||
|
||||
(define (test->thunk test)
|
||||
(lambda ()
|
||||
(define drv
|
||||
|
@ -269,7 +320,7 @@ system.")
|
|||
;; expensive. It also makes sure we get a valid Guix package when this
|
||||
;; code is not running from a checkout.
|
||||
(parameterize ((current-guix-package
|
||||
(channel-instance->package instance)))
|
||||
(channel-source->package source #:commit commit)))
|
||||
(map ->job (all-system-tests)))
|
||||
'()))
|
||||
|
||||
|
@ -421,48 +472,6 @@ Return #f if no such checkout is found."
|
|||
(define source
|
||||
(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.
|
||||
(parameterize ((%graft? #f))
|
||||
;; Return one job for each package, except bootstrap packages.
|
||||
|
@ -487,14 +496,14 @@ Return #f if no such checkout is found."
|
|||
#:source source
|
||||
#:commit commit)
|
||||
(tarball-jobs store system)
|
||||
(cross-jobs system))))
|
||||
(cross-jobs store system))))
|
||||
((core)
|
||||
;; Build core packages only.
|
||||
(append (map (lambda (package)
|
||||
(package-job store (job-name package)
|
||||
package system))
|
||||
%core-packages)
|
||||
(cross-jobs system)))
|
||||
(cross-jobs store system)))
|
||||
((hello)
|
||||
;; Build hello package only.
|
||||
(if (string=? system (%current-system))
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix ui)
|
||||
#: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 packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -280,6 +282,25 @@ selected keymap."
|
|||
((installer-final-page current-installer)
|
||||
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)
|
||||
"Return a file-like object that runs the given INSTALLER."
|
||||
(define init-gettext
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -28,6 +28,12 @@
|
|||
#:use-module (gnu build accounts)
|
||||
#:use-module ((gnu system shadow) #:prefix sys:)
|
||||
#: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))
|
||||
|
||||
(define %seed
|
||||
|
@ -97,24 +103,92 @@ USERS."
|
|||
(write-passwd password (string-append etc "/passwd"))
|
||||
(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)
|
||||
"Remove the store overlay and the bind-mount on /tmp created by the
|
||||
cow-store service."
|
||||
(let ((tmp-dir "/remove"))
|
||||
(mkdir-p tmp-dir)
|
||||
(mount (%store-directory) tmp-dir "" MS_MOVE)
|
||||
(umount tmp-dir)
|
||||
(umount "/tmp")))
|
||||
cow-store service. This procedure is very fragile and a better approach would
|
||||
be much appreciated."
|
||||
|
||||
;; Remove when integrated in (gnu services herd).
|
||||
(define (restart-service name)
|
||||
(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 '()))
|
||||
"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
|
||||
a subshell. LOCALE must be the locale name under which that command will run,
|
||||
or #f. Return #t on success and #f on failure."
|
||||
(let ((install-command
|
||||
(format #f "guix system init --fallback ~a ~a"
|
||||
(%installer-configuration-file)
|
||||
(%installer-target-dir))))
|
||||
(let* ((options (catch 'system-error
|
||||
(lambda ()
|
||||
;; If this file exists, it can provide
|
||||
;; 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))
|
||||
|
||||
;; 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 ()
|
||||
(start-service 'cow-store (list (%installer-target-dir))))
|
||||
(lambda ()
|
||||
(run-shell-command install-command #:locale locale))
|
||||
(run-command install-command #:locale locale))
|
||||
(lambda ()
|
||||
(stop-service 'cow-store)
|
||||
;; Remove the store overlay created at cow-store service start.
|
||||
|
|
|
@ -63,28 +63,38 @@ This will take a few minutes.")
|
|||
(&installer-step-abort)))))))
|
||||
|
||||
(define (run-install-success-page)
|
||||
(message-window
|
||||
(G_ "Installation complete")
|
||||
(G_ "Reboot")
|
||||
(G_ "Congratulations! Installation is now complete. \
|
||||
(match (current-clients)
|
||||
(()
|
||||
(message-window
|
||||
(G_ "Installation complete")
|
||||
(G_ "Reboot")
|
||||
(G_ "Congratulations! Installation is now complete. \
|
||||
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.
|
||||
'success)
|
||||
|
||||
(define (run-install-failed-page)
|
||||
(match (choice-window
|
||||
(G_ "Installation failed")
|
||||
(G_ "Resume")
|
||||
(G_ "Restart the installer")
|
||||
(G_ "The final system installation step failed. You can resume from \
|
||||
(match (current-clients)
|
||||
(()
|
||||
(match (choice-window
|
||||
(G_ "Installation failed")
|
||||
(G_ "Resume")
|
||||
(G_ "Restart the installer")
|
||||
(G_ "The final system installation step failed. You can resume from \
|
||||
a specific step, or restart the installer."))
|
||||
(1 (raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(2
|
||||
;; Keep going, the installer will be restarted later on.
|
||||
(1 (raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(2
|
||||
;; Keep going, the installer will be restarted later on.
|
||||
#t)))
|
||||
(_
|
||||
(send-to-clients '(installation-failure))
|
||||
#t)))
|
||||
|
||||
(define* (run-install-shell locale
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -119,6 +119,10 @@ network devices were found. Do you want to continue anyway?"))
|
|||
(define (wait-service-online)
|
||||
"Display a newt scale until connman detects an Internet access. Do
|
||||
FULL-VALUE tentatives, spaced by 1 second."
|
||||
(define (online?)
|
||||
(or (connman-online?)
|
||||
(file-exists? "/tmp/installer-assume-online")))
|
||||
|
||||
(let* ((full-value 5))
|
||||
(run-scale-page
|
||||
#:title (G_ "Checking connectivity")
|
||||
|
@ -127,10 +131,10 @@ FULL-VALUE tentatives, spaced by 1 second."
|
|||
#:scale-update-proc
|
||||
(lambda (value)
|
||||
(sleep 1)
|
||||
(if (connman-online?)
|
||||
(if (online?)
|
||||
full-value
|
||||
(+ value 1))))
|
||||
(unless (connman-online?)
|
||||
(unless (online?)
|
||||
(run-error-page
|
||||
(G_ "The selected network does not provide access to the \
|
||||
Internet, please try again.")
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu installer newt page)
|
||||
#:use-module (gnu installer steps)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu installer newt utils)
|
||||
#:use-module (guix i18n)
|
||||
|
@ -26,7 +27,10 @@
|
|||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 receive)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (newt)
|
||||
#:export (draw-info-page
|
||||
draw-connecting-page
|
||||
|
@ -36,7 +40,9 @@
|
|||
run-listbox-selection-page
|
||||
run-scale-page
|
||||
run-checkbox-tree-page
|
||||
run-file-textbox-page))
|
||||
run-file-textbox-page
|
||||
|
||||
run-form-with-clients))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -49,9 +55,123 @@
|
|||
;;;
|
||||
;;; 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)
|
||||
"Draw an informative page with the given TEXT as content. Set the title of
|
||||
this page to TITLE."
|
||||
(send-to-clients `(info (title ,title) (text ,text)))
|
||||
(let* ((text-box
|
||||
(make-reflowed-textbox -1 -1 text 40
|
||||
#:flags FLAG-BORDER))
|
||||
|
@ -126,20 +246,25 @@ input box, such as FLAG-PASSWORD."
|
|||
(G_ "Empty input")))))
|
||||
(let loop ()
|
||||
(receive (exit-reason argument)
|
||||
(run-form form)
|
||||
(let ((input (entry-value input-entry)))
|
||||
(if (and (not allow-empty-input?)
|
||||
(eq? exit-reason 'exit-component)
|
||||
(string=? input ""))
|
||||
(begin
|
||||
;; Display the error page.
|
||||
(error-page)
|
||||
;; Set the focus back to the input input field.
|
||||
(set-current-component form input-entry)
|
||||
(loop))
|
||||
(begin
|
||||
(destroy-form-and-pop form)
|
||||
input))))))))
|
||||
(run-form-with-clients form
|
||||
`(input (title ,title) (text ,text)
|
||||
(default ,default-text)))
|
||||
(let ((input (if (eq? exit-reason 'exit-fd-ready)
|
||||
argument
|
||||
(entry-value input-entry))))
|
||||
(cond ((not input) ;client disconnect or something
|
||||
(loop))
|
||||
((and (not allow-empty-input?)
|
||||
(eq? exit-reason 'exit-component)
|
||||
(string=? input ""))
|
||||
;; Display the error page.
|
||||
(error-page)
|
||||
;; 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)
|
||||
"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")
|
||||
(add-components-to-form form text-box ok-button)
|
||||
(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.
|
||||
(newt-set-color COLORSET-ROOT "white" "blue")
|
||||
(destroy-form-and-pop form)))
|
||||
|
@ -187,17 +313,23 @@ of the page is set to TITLE."
|
|||
(make-wrapped-grid-window grid title)
|
||||
|
||||
(receive (exit-reason argument)
|
||||
(run-form form)
|
||||
(run-form-with-clients form
|
||||
`(confirmation (title ,title)
|
||||
(text ,text)))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(case exit-reason
|
||||
((exit-component)
|
||||
(match exit-reason
|
||||
('exit-component
|
||||
(cond
|
||||
((components=? argument ok-button)
|
||||
#t)
|
||||
((components=? argument exit-button)
|
||||
(exit-button-procedure))))))
|
||||
(exit-button-procedure))))
|
||||
('exit-fd-ready
|
||||
(if argument
|
||||
#t
|
||||
(exit-button-procedure)))))
|
||||
(lambda ()
|
||||
(destroy-form-and-pop form))))))
|
||||
|
||||
|
@ -222,6 +354,8 @@ of the page is set to TITLE."
|
|||
(const #t))
|
||||
(listbox-callback-procedure
|
||||
identity)
|
||||
(client-callback-procedure
|
||||
listbox-callback-procedure)
|
||||
(hotkey-callback-procedure
|
||||
(const #t)))
|
||||
"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
|
||||
to the next/previous one depending on the previous item, otherwise do
|
||||
nothing."
|
||||
|
||||
(define (fill-listbox listbox items)
|
||||
"Append the given ITEMS to LISTBOX, once they have been converted to text
|
||||
(let loop ()
|
||||
(define (fill-listbox listbox items)
|
||||
"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
|
||||
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
|
||||
ITEM was inserted into LISTBOX."
|
||||
(map (lambda (item)
|
||||
(let* ((text (listbox-item->text item))
|
||||
(key (append-entry-to-listbox listbox text)))
|
||||
(cons key item)))
|
||||
items))
|
||||
(map (lambda (item)
|
||||
(let* ((text (listbox-item->text item))
|
||||
(key (append-entry-to-listbox listbox text)))
|
||||
(cons key item)))
|
||||
items))
|
||||
|
||||
(define (sort-listbox-items listbox-items)
|
||||
"Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
|
||||
(define (sort-listbox-items listbox-items)
|
||||
"Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
|
||||
corresponding to each item in the list."
|
||||
(let* ((items (map (lambda (item)
|
||||
(cons item (listbox-item->text item)))
|
||||
listbox-items))
|
||||
(sorted-items
|
||||
(sort items (lambda (a b)
|
||||
(let ((text-a (cdr a))
|
||||
(text-b (cdr b)))
|
||||
(string-locale<? text-a text-b))))))
|
||||
(map car sorted-items)))
|
||||
(let* ((items (map (lambda (item)
|
||||
(cons item (listbox-item->text item)))
|
||||
listbox-items))
|
||||
(sorted-items
|
||||
(sort items (lambda (a b)
|
||||
(let ((text-a (cdr a))
|
||||
(text-b (cdr b)))
|
||||
(string-locale<? text-a text-b))))))
|
||||
(map car sorted-items)))
|
||||
|
||||
;; Store the last selected listbox item's key.
|
||||
(define last-listbox-key (make-parameter #f))
|
||||
;; Store the last selected listbox item's key.
|
||||
(define last-listbox-key (make-parameter #f))
|
||||
|
||||
(define (previous-key keys key)
|
||||
(let ((index (list-index (cut eq? key <>) keys)))
|
||||
(and index
|
||||
(> index 0)
|
||||
(list-ref keys (- index 1)))))
|
||||
(define (previous-key keys key)
|
||||
(let ((index (list-index (cut eq? key <>) keys)))
|
||||
(and index
|
||||
(> index 0)
|
||||
(list-ref keys (- index 1)))))
|
||||
|
||||
(define (next-key keys key)
|
||||
(let ((index (list-index (cut eq? key <>) keys)))
|
||||
(and index
|
||||
(< index (- (length keys) 1))
|
||||
(list-ref keys (+ index 1)))))
|
||||
(define (next-key keys key)
|
||||
(let ((index (list-index (cut eq? key <>) keys)))
|
||||
(and index
|
||||
(< index (- (length keys) 1))
|
||||
(list-ref keys (+ index 1)))))
|
||||
|
||||
(define (set-default-item listbox listbox-keys default-item)
|
||||
"Set the default item of LISTBOX to DEFAULT-ITEM. LISTBOX-KEYS is the
|
||||
(define (set-default-item listbox listbox-keys default-item)
|
||||
"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
|
||||
the current listbox item has to be selected by key."
|
||||
(for-each (match-lambda
|
||||
((key . item)
|
||||
(when (equal? item default-item)
|
||||
(set-current-listbox-entry-by-key listbox key))))
|
||||
listbox-keys))
|
||||
(for-each (match-lambda
|
||||
((key . item)
|
||||
(when (equal? item default-item)
|
||||
(set-current-listbox-entry-by-key listbox key))))
|
||||
listbox-keys))
|
||||
|
||||
(let* ((listbox (make-listbox
|
||||
-1 -1
|
||||
listbox-height
|
||||
(logior FLAG-SCROLL FLAG-BORDER FLAG-RETURNEXIT
|
||||
(if listbox-allow-multiple?
|
||||
FLAG-MULTIPLE
|
||||
0))))
|
||||
(form (make-form #:flags FLAG-NOF12))
|
||||
(info-textbox
|
||||
(make-reflowed-textbox -1 -1 info-text
|
||||
info-textbox-width
|
||||
#:flags FLAG-BORDER))
|
||||
(button (make-button -1 -1 button-text))
|
||||
(button2 (and button2-text
|
||||
(make-button -1 -1 button2-text)))
|
||||
(grid (vertically-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT info-textbox
|
||||
GRID-ELEMENT-COMPONENT listbox
|
||||
GRID-ELEMENT-SUBGRID
|
||||
(apply
|
||||
horizontal-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT button
|
||||
`(,@(if button2
|
||||
(list GRID-ELEMENT-COMPONENT button2)
|
||||
'())))))
|
||||
(sorted-items (if sort-listbox-items?
|
||||
(sort-listbox-items listbox-items)
|
||||
listbox-items))
|
||||
(keys (fill-listbox listbox sorted-items)))
|
||||
(let* ((listbox (make-listbox
|
||||
-1 -1
|
||||
listbox-height
|
||||
(logior FLAG-SCROLL FLAG-BORDER FLAG-RETURNEXIT
|
||||
(if listbox-allow-multiple?
|
||||
FLAG-MULTIPLE
|
||||
0))))
|
||||
(form (make-form #:flags FLAG-NOF12))
|
||||
(info-textbox
|
||||
(make-reflowed-textbox -1 -1 info-text
|
||||
info-textbox-width
|
||||
#:flags FLAG-BORDER))
|
||||
(button (make-button -1 -1 button-text))
|
||||
(button2 (and button2-text
|
||||
(make-button -1 -1 button2-text)))
|
||||
(grid (vertically-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT info-textbox
|
||||
GRID-ELEMENT-COMPONENT listbox
|
||||
GRID-ELEMENT-SUBGRID
|
||||
(apply
|
||||
horizontal-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT button
|
||||
`(,@(if button2
|
||||
(list GRID-ELEMENT-COMPONENT button2)
|
||||
'())))))
|
||||
(sorted-items (if sort-listbox-items?
|
||||
(sort-listbox-items listbox-items)
|
||||
listbox-items))
|
||||
(keys (fill-listbox listbox sorted-items)))
|
||||
|
||||
;; On every listbox element change, check if we need to skip it. If yes,
|
||||
;; 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)))))))
|
||||
(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))))))
|
||||
|
||||
(when listbox-default-item
|
||||
(set-default-item listbox keys listbox-default-item))
|
||||
;; On every listbox element change, check if we need to skip it. If yes,
|
||||
;; 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?
|
||||
(form-add-hotkey form KEY-DELETE))
|
||||
(when listbox-default-item
|
||||
(set-default-item listbox keys listbox-default-item))
|
||||
|
||||
(add-form-to-grid grid form #t)
|
||||
(make-wrapped-grid-window grid title)
|
||||
(when allow-delete?
|
||||
(form-add-hotkey form KEY-DELETE))
|
||||
|
||||
(receive (exit-reason argument)
|
||||
(run-form form)
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(case exit-reason
|
||||
((exit-component)
|
||||
(cond
|
||||
((components=? argument button)
|
||||
(button-callback-procedure))
|
||||
((and button2
|
||||
(components=? argument button2))
|
||||
(button2-callback-procedure))
|
||||
((components=? argument listbox)
|
||||
(if listbox-allow-multiple?
|
||||
(let* ((entries (listbox-selection listbox))
|
||||
(items (map (lambda (entry)
|
||||
(assoc-ref keys entry))
|
||||
entries)))
|
||||
(listbox-callback-procedure items))
|
||||
(let* ((entry (current-listbox-entry listbox))
|
||||
(item (assoc-ref keys entry)))
|
||||
(listbox-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))))))
|
||||
(add-form-to-grid grid form #t)
|
||||
(make-wrapped-grid-window grid title)
|
||||
|
||||
(receive (exit-reason argument)
|
||||
(run-form-with-clients form
|
||||
`(list-selection (title ,title)
|
||||
(multiple-choices?
|
||||
,listbox-allow-multiple?)
|
||||
(items
|
||||
,(map listbox-item->text
|
||||
listbox-items))))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(match exit-reason
|
||||
('exit-component
|
||||
(cond
|
||||
((components=? argument button)
|
||||
(button-callback-procedure))
|
||||
((and button2
|
||||
(components=? argument button2))
|
||||
(button2-callback-procedure))
|
||||
((components=? argument listbox)
|
||||
(if listbox-allow-multiple?
|
||||
(let* ((entries (listbox-selection listbox))
|
||||
(items (map (lambda (entry)
|
||||
(assoc-ref keys entry))
|
||||
entries)))
|
||||
(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
|
||||
title
|
||||
|
@ -498,48 +653,65 @@ ITEMS when 'Ok' is pressed."
|
|||
items
|
||||
selection))
|
||||
|
||||
(let* ((checkbox-tree
|
||||
(make-checkboxtree -1 -1
|
||||
checkbox-tree-height
|
||||
FLAG-BORDER))
|
||||
(info-textbox
|
||||
(make-reflowed-textbox -1 -1 info-text
|
||||
info-textbox-width
|
||||
#:flags FLAG-BORDER))
|
||||
(ok-button (make-button -1 -1 (G_ "OK")))
|
||||
(exit-button (make-button -1 -1 (G_ "Exit")))
|
||||
(grid (vertically-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT info-textbox
|
||||
GRID-ELEMENT-COMPONENT checkbox-tree
|
||||
GRID-ELEMENT-SUBGRID
|
||||
(horizontal-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT ok-button
|
||||
GRID-ELEMENT-COMPONENT exit-button)))
|
||||
(keys (fill-checkbox-tree checkbox-tree items))
|
||||
(form (make-form #:flags FLAG-NOF12)))
|
||||
(let loop ()
|
||||
(let* ((checkbox-tree
|
||||
(make-checkboxtree -1 -1
|
||||
checkbox-tree-height
|
||||
FLAG-BORDER))
|
||||
(info-textbox
|
||||
(make-reflowed-textbox -1 -1 info-text
|
||||
info-textbox-width
|
||||
#:flags FLAG-BORDER))
|
||||
(ok-button (make-button -1 -1 (G_ "OK")))
|
||||
(exit-button (make-button -1 -1 (G_ "Exit")))
|
||||
(grid (vertically-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT info-textbox
|
||||
GRID-ELEMENT-COMPONENT checkbox-tree
|
||||
GRID-ELEMENT-SUBGRID
|
||||
(horizontal-stacked-grid
|
||||
GRID-ELEMENT-COMPONENT ok-button
|
||||
GRID-ELEMENT-COMPONENT exit-button)))
|
||||
(keys (fill-checkbox-tree checkbox-tree items))
|
||||
(form (make-form #:flags FLAG-NOF12)))
|
||||
|
||||
(add-form-to-grid grid form #t)
|
||||
(make-wrapped-grid-window grid title)
|
||||
(define (choice->item str)
|
||||
;; 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)
|
||||
(run-form form)
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(case exit-reason
|
||||
((exit-component)
|
||||
(cond
|
||||
((components=? argument ok-button)
|
||||
(let* ((entries (current-checkbox-selection checkbox-tree))
|
||||
(current-items (map (lambda (entry)
|
||||
(assoc-ref keys entry))
|
||||
entries)))
|
||||
(ok-button-callback-procedure)
|
||||
current-items))
|
||||
((components=? argument exit-button)
|
||||
(exit-button-callback-procedure))))))
|
||||
(lambda ()
|
||||
(destroy-form-and-pop form))))))
|
||||
(add-form-to-grid grid form #t)
|
||||
(make-wrapped-grid-window grid title)
|
||||
|
||||
(receive (exit-reason argument)
|
||||
(run-form-with-clients form
|
||||
`(checkbox-list (title ,title)
|
||||
(text ,info-text)
|
||||
(items
|
||||
,(map item->text items))))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
|
||||
(lambda ()
|
||||
(match exit-reason
|
||||
('exit-component
|
||||
(cond
|
||||
((components=? argument ok-button)
|
||||
(let* ((entries (current-checkbox-selection checkbox-tree))
|
||||
(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)
|
||||
"Spawn an editor for FILE."
|
||||
|
@ -547,9 +719,8 @@ ITEMS when 'Ok' is pressed."
|
|||
(newt-suspend)
|
||||
;; Use Nano because it syntax-highlights Scheme by default.
|
||||
;; TODO: Add a menu to choose an editor?
|
||||
(run-shell-command (string-append "/run/current-system/profile/bin/nano "
|
||||
file)
|
||||
#:locale locale)
|
||||
(run-command (list "/run/current-system/profile/bin/nano" file)
|
||||
#:locale locale)
|
||||
(newt-resume))
|
||||
|
||||
(define* (run-file-textbox-page #:key
|
||||
|
@ -606,13 +777,16 @@ ITEMS when 'Ok' is pressed."
|
|||
text))
|
||||
|
||||
(receive (exit-reason argument)
|
||||
(run-form form)
|
||||
(run-form-with-clients form
|
||||
`(file-dialog (title ,title)
|
||||
(text ,info-text)
|
||||
(file ,file)))
|
||||
(define result
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(case exit-reason
|
||||
((exit-component)
|
||||
(match exit-reason
|
||||
('exit-component
|
||||
(cond
|
||||
((components=? argument ok-button)
|
||||
(ok-button-callback-procedure))
|
||||
|
@ -621,10 +795,15 @@ ITEMS when 'Ok' is pressed."
|
|||
(exit-button-callback-procedure))
|
||||
((and 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 ()
|
||||
(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
|
||||
result)))))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -682,6 +682,12 @@ by pressing the Exit button.~%~%")))
|
|||
#:allow-delete? #t
|
||||
#:button-text (G_ "OK")
|
||||
#: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-callback-procedure button-exit-action
|
||||
#:listbox-callback-procedure listbox-action
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -23,6 +23,7 @@
|
|||
#:use-module ((gnu installer steps) #:select (&installer-step-abort))
|
||||
#:use-module (gnu installer newt page)
|
||||
#:use-module (gnu installer newt utils)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (newt)
|
||||
#: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 button-grid)
|
||||
title)
|
||||
|
||||
(let ((error-page
|
||||
(lambda ()
|
||||
(run-error-page (G_ "Empty inputs are not allowed.")
|
||||
|
@ -230,33 +232,45 @@ administrator (\"root\").")
|
|||
(set-current-component form ok-button))
|
||||
|
||||
(receive (exit-reason argument)
|
||||
(run-form form)
|
||||
(run-form-with-clients form '(add-users))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(when (eq? exit-reason 'exit-component)
|
||||
(cond
|
||||
((components=? argument add-button)
|
||||
(run (cons (run-user-add-page) users)))
|
||||
((components=? argument del-button)
|
||||
(let* ((current-user-key (current-listbox-entry listbox))
|
||||
(users
|
||||
(map (cut assoc-ref <> 'user)
|
||||
(remove (lambda (element)
|
||||
(equal? (assoc-ref element 'key)
|
||||
current-user-key))
|
||||
listbox-elements))))
|
||||
(run users)))
|
||||
((components=? argument ok-button)
|
||||
(when (null? users)
|
||||
(run-error-page (G_ "Please create at least one user.")
|
||||
(G_ "No user"))
|
||||
(run users))
|
||||
(reverse users))
|
||||
((components=? argument exit-button)
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(match exit-reason
|
||||
('exit-component
|
||||
(cond
|
||||
((components=? argument add-button)
|
||||
(run (cons (run-user-add-page) users)))
|
||||
((components=? argument del-button)
|
||||
(let* ((current-user-key (current-listbox-entry listbox))
|
||||
(users
|
||||
(map (cut assoc-ref <> 'user)
|
||||
(remove (lambda (element)
|
||||
(equal? (assoc-ref element 'key)
|
||||
current-user-key))
|
||||
listbox-elements))))
|
||||
(run users)))
|
||||
((components=? argument ok-button)
|
||||
(when (null? users)
|
||||
(run-error-page (G_ "Please create at least one user.")
|
||||
(G_ "No user"))
|
||||
(run users))
|
||||
(reverse users))
|
||||
((components=? argument exit-button)
|
||||
(raise
|
||||
(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 ()
|
||||
(destroy-form-and-pop form))))))
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -11,16 +12,20 @@
|
|||
;;; 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
|
||||
|
||||
;;;
|
||||
;;; 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 newt welcome)
|
||||
#:use-module (gnu installer steps)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu installer newt page)
|
||||
#:use-module (gnu installer newt utils)
|
||||
#:use-module (guix build syscalls)
|
||||
#: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 receive)
|
||||
#:use-module (newt)
|
||||
|
@ -66,24 +71,43 @@ we want this page to occupy all the screen space available."
|
|||
GRID-ELEMENT-COMPONENT options-listbox))
|
||||
(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))
|
||||
|
||||
(add-form-to-grid grid form #t)
|
||||
(make-wrapped-grid-window grid title)
|
||||
|
||||
(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
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(when (eq? exit-reason 'exit-component)
|
||||
(cond
|
||||
((components=? argument options-listbox)
|
||||
(let* ((entry (current-listbox-entry options-listbox))
|
||||
(item (assoc-ref keys entry)))
|
||||
(match item
|
||||
((text . proc)
|
||||
(proc))))))))
|
||||
(match exit-reason
|
||||
('exit-component
|
||||
(let* ((entry (current-listbox-entry options-listbox))
|
||||
(item (assoc-ref keys entry)))
|
||||
(match item
|
||||
((text . proc)
|
||||
(proc)))))
|
||||
('exit-fd-ready
|
||||
(let* ((choice argument)
|
||||
(item (choice->item choice)))
|
||||
(match item
|
||||
((text . proc)
|
||||
(proc)))))))
|
||||
(lambda ()
|
||||
(destroy-form-and-pop form))))))
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -19,6 +20,7 @@
|
|||
(define-module (gnu installer steps)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 pretty-print)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -185,13 +187,18 @@ return the accumalated result so far."
|
|||
#:todo-steps rest-steps
|
||||
#:done-steps (append done-steps (list step))))))))
|
||||
|
||||
(call-with-prompt 'raise-above
|
||||
(lambda ()
|
||||
(run '()
|
||||
#:todo-steps steps
|
||||
#:done-steps '()))
|
||||
(lambda (k condition)
|
||||
(raise condition))))
|
||||
;; Ignore SIGPIPE so that we don't die if a client closes the connection
|
||||
;; prematurely.
|
||||
(sigaction SIGPIPE SIG_IGN)
|
||||
|
||||
(with-server-socket
|
||||
(call-with-prompt 'raise-above
|
||||
(lambda ()
|
||||
(run '()
|
||||
#:todo-steps steps
|
||||
#:done-steps '()))
|
||||
(lambda (k condition)
|
||||
(raise condition)))))
|
||||
|
||||
(define (find-step-by-id steps 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)))
|
||||
configuration)
|
||||
(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 build utils)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -30,10 +32,15 @@
|
|||
read-all
|
||||
nearest-exact-integer
|
||||
read-percentage
|
||||
run-shell-command
|
||||
run-command
|
||||
|
||||
syslog-port
|
||||
syslog))
|
||||
syslog
|
||||
|
||||
with-server-socket
|
||||
current-server-socket
|
||||
current-clients
|
||||
send-to-clients))
|
||||
|
||||
(define* (read-lines #:optional (port (current-input-port)))
|
||||
"Read lines from PORT and return them as a list."
|
||||
|
@ -61,44 +68,48 @@ number. If no percentage is found, return #f"
|
|||
(and result
|
||||
(string->number (match:substring result 1)))))
|
||||
|
||||
(define* (run-shell-command command #:key locale)
|
||||
"Run COMMAND, a string, with Bash, and in the given LOCALE. Return true if
|
||||
(define* (run-command command #:key locale)
|
||||
"Run COMMAND, a list of strings, in the given LOCALE. Return true if
|
||||
COMMAND exited successfully, #f otherwise."
|
||||
(define env (environ))
|
||||
|
||||
(define (pause)
|
||||
(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
|
||||
(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 #\_))))))
|
||||
(setenv "PATH" "/run/current-system/profile/bin")
|
||||
|
||||
(format port "exec ~a~%" command)
|
||||
(close 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?
|
||||
(setenv "LC_ALL" locale)
|
||||
(setenv "LANGUAGE"
|
||||
(string-take locale
|
||||
(string-index locale #\_))))))
|
||||
|
||||
(guard (c ((invoke-error? c)
|
||||
(newline)
|
||||
(format (current-error-port)
|
||||
(G_ "Command failed with exit code ~a.~%")
|
||||
(invoke-error-exit-status c))
|
||||
(syslog "command ~s failed with exit code ~a"
|
||||
command (invoke-error-exit-status c))
|
||||
(pause)
|
||||
#f))
|
||||
(syslog "running command ~s~%" command)
|
||||
(invoke "bash" "--init-file" file)
|
||||
(syslog "command ~s succeeded~%" command)
|
||||
(newline)
|
||||
(pause)
|
||||
#t))))
|
||||
(guard (c ((invoke-error? c)
|
||||
(newline)
|
||||
(format (current-error-port)
|
||||
(G_ "Command failed with exit code ~a.~%")
|
||||
(invoke-error-exit-status c))
|
||||
(syslog "command ~s failed with exit code ~a"
|
||||
command (invoke-error-exit-status c))
|
||||
(pause)
|
||||
#f))
|
||||
(syslog "running command ~s~%" command)
|
||||
(apply invoke command)
|
||||
(syslog "command ~s succeeded~%" command)
|
||||
(newline)
|
||||
(pause)
|
||||
#t))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -134,3 +145,76 @@ COMMAND exited successfully, #f otherwise."
|
|||
(with-syntax ((fmt (string-append "installer[~d]: "
|
||||
(syntax->datum #'fmt))))
|
||||
#'(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/services.scm \
|
||||
%D%/installer/steps.scm \
|
||||
%D%/installer/tests.scm \
|
||||
%D%/installer/timezone.scm \
|
||||
%D%/installer/user.scm \
|
||||
%D%/installer/utils.scm \
|
||||
|
@ -713,10 +714,11 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/aegisub-boost68.patch \
|
||||
%D%/packages/patches/agg-am_c_prototype.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/allegro-mesa-18.2.5-and-later.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/antlr3-3_1-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/crawl-upgrade-saves.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/cube-nocheck.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-2.2-default-utf8.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-gdbm-ffi-support-gdbm-1.14.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/libmygpo-qt-fix-qt-5.11.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-CVE-2017-8361-8363-8365.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-blit_overflow.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-sans-serif.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-7039.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/qrcodegen-cpp-make-install.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/sooperlooper-build-with-wx-30.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/suitesparse-mongoose-cmake.patch \
|
||||
%D%/packages/patches/superlu-dist-awpm-grid.patch \
|
||||
%D%/packages/patches/superlu-dist-scotchmetis.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/wmctrl-64-fix.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-3908-pt1.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)
|
||||
|
||||
;; This is the Guile we use as a cross-compiler...
|
||||
("guile" ,guile-2.2)))
|
||||
("guile" ,guile-2.2.7)))
|
||||
(inputs
|
||||
;; ... 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
|
||||
;; an unusual use case though, so we don't propagate it.
|
||||
|
|
|
@ -111,7 +111,7 @@ has strong support for macros.")
|
|||
(inputs
|
||||
`(("python" ,python-wrapper)
|
||||
("xmlto" ,xmlto)))
|
||||
(home-page "http://yasm.tortall.net/")
|
||||
(home-page "https://yasm.tortall.net/")
|
||||
(synopsis "Rewrite of the NASM assembler")
|
||||
(description
|
||||
"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/>.
|
||||
|
||||
(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 algebra)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
|
@ -78,25 +66,29 @@
|
|||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gnunet) ; libmicrohttpd
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#: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 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 pkg-config)
|
||||
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages rdf)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages sdl)
|
||||
|
@ -110,9 +102,18 @@
|
|||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages music)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#: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-26))
|
||||
|
||||
|
@ -3923,11 +3924,22 @@ as is the case with audio plugins.")
|
|||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
(add-before 'build 'set-CC-variable-and-show-features
|
||||
(lambda _
|
||||
(setenv "CC" "gcc")
|
||||
(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
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
|
@ -3945,7 +3957,10 @@ as is the case with audio plugins.")
|
|||
("python-wrapper" ,python-wrapper)
|
||||
("libx11" ,libx11)
|
||||
("qtbase" ,qtbase)
|
||||
("zlib" ,zlib)))
|
||||
("zlib" ,zlib)
|
||||
|
||||
;; For WRAP-SCRIPT above.
|
||||
("guile" ,guile-2.2)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://kx.studio/Applications:Carla")
|
||||
|
|
|
@ -4026,14 +4026,14 @@ position-specific scores within R and Bioconductor.")
|
|||
(define-public r-atacseqqc
|
||||
(package
|
||||
(name "r-atacseqqc")
|
||||
(version "1.10.2")
|
||||
(version "1.10.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ATACseqQC" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0dzrizacy3br8fiy1vnsl5zf242lg1hqv9dyv5ayqh2n480is57f"))))
|
||||
"18zf90iksglbs13cwr4jjwsv332a19lf4bpdmy69jz8bpwrklv22"))))
|
||||
(properties `((upstream-name . "ATACseqQC")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -4055,6 +4055,8 @@ position-specific scores within R and Bioconductor.")
|
|||
("r-rsamtools" ,r-rsamtools)
|
||||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-s4vectors" ,r-s4vectors)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://bioconductor.org/packages/ATACseqQC/")
|
||||
(synopsis "ATAC-seq quality control")
|
||||
(description
|
||||
|
@ -4315,14 +4317,14 @@ visualization with image data.")
|
|||
(define-public r-yamss
|
||||
(package
|
||||
(name "r-yamss")
|
||||
(version "1.12.0")
|
||||
(version "1.12.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "yamss" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1n49a2vg1667wycrjww29xfafngllvpb5nq5wy6pgn0akva91nky"))))
|
||||
"12jr7hbrwhb1gfjadj1024hv80ra22miy46dn40nmsrbklkfn3rw"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)
|
||||
|
@ -4693,14 +4695,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
|
|||
(define-public r-xcms
|
||||
(package
|
||||
(name "r-xcms")
|
||||
(version "3.8.1")
|
||||
(version "3.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "xcms" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18iglvlvlxrdwn2apdvihj9jxmx0kwm5z37rml67xcj9sfdi3bjb"))))
|
||||
"0bfl56v3l6k31i11l09nx1yqfjy6z5yragm6k83z4w0mpgk18y7g"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biobase" ,r-biobase)
|
||||
|
@ -5943,14 +5945,14 @@ delete entire rows with missing data.")
|
|||
(define-public r-depecher
|
||||
(package
|
||||
(name "r-depecher")
|
||||
(version "1.2.1")
|
||||
(version "1.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DepecheR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08ja6ayvbax9m3x9w3xzi72z97miiha2nbsild1gp77n6sgn5i35"))))
|
||||
"199j2kw0xnw7y4v1gakm2jgyc7zzlj8xh0570f2yjq55gp1kggbm"))))
|
||||
(properties `((upstream-name . "DepecheR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -5970,6 +5972,8 @@ delete entire rows with missing data.")
|
|||
("r-reshape2" ,r-reshape2)
|
||||
("r-robustbase" ,r-robustbase)
|
||||
("r-viridis" ,r-viridis)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://bioconductor.org/packages/DepecheR/")
|
||||
(synopsis "Identify traits of clusters in high-dimensional entities")
|
||||
(description
|
||||
|
@ -7290,14 +7294,14 @@ access.")
|
|||
(define-public r-multiassayexperiment
|
||||
(package
|
||||
(name "r-multiassayexperiment")
|
||||
(version "1.12.3")
|
||||
(version "1.12.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "MultiAssayExperiment" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1vf6l88j3n6109j6sd08wfqxqpj2k20dvr8ll9zl1szsn18b4gny"))))
|
||||
"01cnp00y5bk551c8gqgqp5468dvccg72i0rvh5cxgbx1c42zy6xn"))))
|
||||
(properties
|
||||
`((upstream-name . "MultiAssayExperiment")))
|
||||
(build-system r-build-system)
|
||||
|
|
|
@ -6536,31 +6536,56 @@ Cuffdiff or Ballgown programs.")
|
|||
(define-public taxtastic
|
||||
(package
|
||||
(name "taxtastic")
|
||||
(version "0.8.5")
|
||||
(version "0.8.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "taxtastic" version))
|
||||
;; The Pypi version does not include tests.
|
||||
(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
|
||||
(base32
|
||||
"03pysw79lsrvz4lwzis88j15067ffqbi4cid5pqhrlxmd6bh8rrk"))))
|
||||
"1sv8mkg64jn7zdwf1jj71c16686yrwxk0apb1l8sjszy9p166g0p"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:phases
|
||||
`(#: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
|
||||
(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
|
||||
`(("python-sqlalchemy" ,python2-sqlalchemy)
|
||||
("python-decorator" ,python2-decorator)
|
||||
("python-biopython" ,python2-biopython)
|
||||
("python-pandas" ,python2-pandas)
|
||||
("python-psycopg2" ,python2-psycopg2)
|
||||
("python-fastalite" ,python2-fastalite)
|
||||
("python-pyyaml" ,python2-pyyaml)
|
||||
("python-six" ,python2-six)
|
||||
("python-jinja2" ,python2-jinja2)
|
||||
("python-dendropy" ,python2-dendropy)))
|
||||
`(("python-sqlalchemy" ,python-sqlalchemy)
|
||||
("python-decorator" ,python-decorator)
|
||||
("python-biopython" ,python-biopython)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-psycopg2" ,python-psycopg2)
|
||||
("python-fastalite" ,python-fastalite)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-six" ,python-six)
|
||||
("python-jinja2" ,python-jinja2)
|
||||
("python-dendropy" ,python-dendropy)))
|
||||
(home-page "https://github.com/fhcrc/taxtastic")
|
||||
(synopsis "Tools for taxonomic naming and annotation")
|
||||
(description
|
||||
|
@ -9091,6 +9116,8 @@ number detection tools.")
|
|||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-s4vectors" ,r-s4vectors)
|
||||
("r-zlibbioc" ,r-zlibbioc)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(home-page "https://github.com/al2na/methylKit")
|
||||
|
@ -9360,6 +9387,8 @@ analysis.")
|
|||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-lattice" ,r-lattice)
|
||||
("r-limma" ,r-limma)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
|
||||
(synopsis "Variance stabilization and calibration for microarray data")
|
||||
(description
|
||||
|
@ -13238,18 +13267,14 @@ in RNA-seq data.")
|
|||
(define-public python-scanpy
|
||||
(package
|
||||
(name "python-scanpy")
|
||||
(version "1.4")
|
||||
;; Fetch from git because the pypi tarball does not include tests.
|
||||
(version "1.4.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/theislab/scanpy.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "scanpy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zn6x6c0cnm1a20i6isigwb51g3pr9zpjk8r1minjqnxi5yc9pm4"))))
|
||||
"14kh1ji70xxhmri5q8sgcibsidhr6f221wxrcw8a5xvibj5da17j"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -13276,18 +13301,23 @@ in RNA-seq data.")
|
|||
("python-igraph" ,python-igraph)
|
||||
("python-joblib" ,python-joblib)
|
||||
("python-louvain" ,python-louvain)
|
||||
("python-legacy-api-wrap" ,python-legacy-api-wrap)
|
||||
("python-matplotlib" ,python-matplotlib)
|
||||
("python-natsort" ,python-natsort)
|
||||
("python-networkx" ,python-networkx)
|
||||
("python-numba" ,python-numba)
|
||||
("python-packaging" ,python-packaging)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-patsy" ,python-patsy)
|
||||
("python-scikit-learn" ,python-scikit-learn)
|
||||
("python-scipy" ,python-scipy)
|
||||
("python-seaborn" ,python-seaborn)
|
||||
("python-statsmodels" ,python-statsmodels)
|
||||
("python-tables" ,python-tables)))
|
||||
("python-tables" ,python-tables)
|
||||
("python-umap-learn" ,python-umap-learn)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||
(home-page "https://github.com/theislab/scanpy")
|
||||
(synopsis "Single-Cell Analysis in Python.")
|
||||
(description "Scanpy is a scalable toolkit for analyzing single-cell gene
|
||||
|
@ -13953,7 +13983,7 @@ datasets.")
|
|||
(define-public ngless
|
||||
(package
|
||||
(name "ngless")
|
||||
(version "1.0.1")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -13963,7 +13993,7 @@ datasets.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"06ygv8q2zjqsnrid1302yrlhhvb8ik48nq6n0higk3i1mdc8r0dg"))))
|
||||
"1wim8wpqyff080dfcazynrmjwqas38m24m0v350w245mmhrapdma"))))
|
||||
(build-system haskell-build-system)
|
||||
(arguments
|
||||
`(#:haddock? #f ; The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
|
||||
|
@ -14423,6 +14453,8 @@ repeated areas between contigs.")
|
|||
(base32
|
||||
"0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-joblib" ,python-joblib)))
|
||||
(propagated-inputs
|
||||
`(("python-click" ,python-click)
|
||||
("python-cython" ,python-cython)
|
||||
|
|
|
@ -30,30 +30,29 @@
|
|||
(define-public ccache
|
||||
(package
|
||||
(name "ccache")
|
||||
(version "3.6")
|
||||
(version "3.7.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
|
||||
version ".tar.xz"))
|
||||
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
|
||||
version "/ccache-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "07wv75xdcxpdkfsz9h5ffrm8pjbvr1dh6wnb02nyzz18cdbjkcd6"))))
|
||||
(base32 "1kcqii3hr1008gj6jgfsjibwh2ryhsplc9z99m18xwa2zvbddhdp"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl) ; for test/run
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
(inputs `(("zlib" ,zlib)))
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'setup-tests
|
||||
(lambda _
|
||||
(substitute* '("unittest/test_hashutil.c" "test/suites/base.bash")
|
||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||
#t)))))
|
||||
(home-page "https://ccache.samba.org/")
|
||||
(add-before 'check 'setup-tests
|
||||
(lambda _
|
||||
(substitute* '("unittest/test_hashutil.c" "test/suites/base.bash")
|
||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||
#t)))))
|
||||
(home-page "https://ccache.dev/")
|
||||
(synopsis "Compiler cache")
|
||||
(description
|
||||
"Ccache is a compiler cache. It speeds up recompilation by caching
|
||||
previous compilations and detecting when the same compilation is being done
|
||||
again. Supported languages are C, C++, Objective-C, Objective-C++, and
|
||||
Fortran 77.")
|
||||
again. Supported languages are C, C++, Objective-C and Objective-C++.")
|
||||
(license gpl3+)))
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -147,7 +148,7 @@ powerful plugin architecture.")
|
|||
`(#:python ,python-2
|
||||
;; No test suite
|
||||
#: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")
|
||||
(description "DomainFinder is an interactive program for the determination
|
||||
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
|
||||
(("PREFERENCES\\['documentation_style'\\] = 'html'")
|
||||
"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")
|
||||
(description "nMOLDYN is an interactive analysis program for Molecular Dynamics
|
||||
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
|
||||
;; 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")
|
||||
(description
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -424,7 +425,8 @@ compatible with bzip2 – both at file format and command line level.")
|
|||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)) ; no configure script
|
||||
#: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")
|
||||
(description
|
||||
"Pbzip2 is a parallel implementation of the bzip2 block-sorting file
|
||||
|
@ -822,7 +824,7 @@ time for compression ratio.")
|
|||
("lzo" ,lzo)
|
||||
("xz" ,xz)
|
||||
("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")
|
||||
(description
|
||||
"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.")
|
||||
(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
|
||||
(package
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "ucl")
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
|
||||
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -353,7 +354,7 @@ assistant.")
|
|||
(string-append "COQLIB=" (assoc-ref outputs "out")
|
||||
"/lib/coq/")
|
||||
"install"))))))
|
||||
(home-page "https://math-comp.github.io/math-comp/")
|
||||
(home-page "https://math-comp.github.io/")
|
||||
(synopsis "Mathematical Components for Coq")
|
||||
(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
|
||||
|
|
|
@ -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:
|
||||
;; 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
|
||||
;; collect2: error: ld returned 1 exit status
|
||||
"-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)))
|
||||
(native-inputs
|
||||
`(("uglify-js" ,uglify-js)))
|
||||
(home-page "http://rstudio.github.io/shinydashboard/")
|
||||
(home-page "https://rstudio.github.io/shinydashboard/")
|
||||
(synopsis "Create dashboards with shiny")
|
||||
(description "This package provides an extension to the Shiny web
|
||||
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")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-shiny" ,r-shiny)))
|
||||
(home-page "http://rstudio.github.io/shinythemes/")
|
||||
(home-page "https://rstudio.github.io/shinythemes/")
|
||||
(synopsis "Themes for Shiny")
|
||||
(description
|
||||
"This package provides themes for use with Shiny. It includes several
|
||||
|
@ -2660,14 +2660,14 @@ available in a vignette.")
|
|||
(define-public r-lava
|
||||
(package
|
||||
(name "r-lava")
|
||||
(version "1.6.6")
|
||||
(version "1.6.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lava" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nfab5fgnmxh8cplg8rd8cp34fny5j0k5wn4baj51r6ck7fq9g3s"))))
|
||||
"0ffzxbb8pvfh1m6j61az4ga37snyhylq2941fyc76w7w9i2sixv3"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-numderiv" ,r-numderiv)
|
||||
|
@ -3165,19 +3165,21 @@ for certain use cases.")
|
|||
(define-public r-ggrepel
|
||||
(package
|
||||
(name "r-ggrepel")
|
||||
(version "0.8.1")
|
||||
(version "0.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ggrepel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10vjrcmx8yknfbx93d9a4y3z8gafri0fhimw6hcq733dmdvkml6m"))))
|
||||
"1qaifn3dazdqbqlii210xhw7yf142iw7g9p2axmmxbz90p0by08d"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-scales" ,r-scales)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "http://github.com/slowkow/ggrepel")
|
||||
(synopsis "Repulsive text and label geometries for ggplot2")
|
||||
(description
|
||||
|
@ -3634,14 +3636,14 @@ modeling for empirical income distributions.")
|
|||
(define-public r-vcd
|
||||
(package
|
||||
(name "r-vcd")
|
||||
(version "1.4-5")
|
||||
(version "1.4-6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "vcd" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pqf1sdp0d60aqc7721hy2zfcp57902by0i28jqbn683dd50c21a"))))
|
||||
"0rjz49py5l6wnaimw6k8rcyzlvs8cyz5g2xwqj2qis92ly0l103z"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-colorspace" ,r-colorspace)
|
||||
|
@ -4422,14 +4424,14 @@ Fisher's method), and Sidak correction.")
|
|||
(define-public r-quantmod
|
||||
(package
|
||||
(name "r-quantmod")
|
||||
(version "0.4-15")
|
||||
(version "0.4-16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "quantmod" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lyzaf5ypk93v6zj9gdghy05cc7cxgn9yasv1apx5r6qsjcfgwky"))))
|
||||
"12l5br8abr1yagxqjnjvqzp79sqsv5vx56cxs37gk73r474f4vc2"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-curl" ,r-curl)
|
||||
|
@ -4812,6 +4814,8 @@ functions to enforce symmetric scales or add tags to facetted plots.")
|
|||
("r-seriation" ,r-seriation)
|
||||
("r-viridis" ,r-viridis)
|
||||
("r-webshot" ,r-webshot)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://cran.r-project.org/package=heatmaply")
|
||||
(synopsis "Interactive cluster heat maps using plotly")
|
||||
(description
|
||||
|
@ -6375,15 +6379,17 @@ other add-on packages.")
|
|||
(define-public r-insight
|
||||
(package
|
||||
(name "r-insight")
|
||||
(version "0.8.1")
|
||||
(version "0.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "insight" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1y889bydmji3pcq2bdf6xl6ikmd45wbwl53ssvsk05b5ahkyxi76"))))
|
||||
"0fjf7dwpv1a7qfbzixppg348z1ksq19kdjm08vcb2am7w0k3plcj"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://easystats.github.io/insight/")
|
||||
(synopsis "Easy access to model information for various model objects")
|
||||
(description
|
||||
|
@ -6504,14 +6510,14 @@ functions.")
|
|||
(define-public r-flextable
|
||||
(package
|
||||
(name "r-flextable")
|
||||
(version "0.5.8")
|
||||
(version "0.5.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "flextable" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x24rz1r5xin122czg85d7nrkwpaabb60p50m3yrd3dh81vfp0hk"))))
|
||||
"1rkz0nhwjy1l8sb0kmna5v492n2ydnk7gydswnmf88r8vfyjczhw"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-base64enc" ,r-base64enc)
|
||||
|
@ -7277,6 +7283,8 @@ Processing of very large files is supported.")
|
|||
("r-mosaicdata" ,r-mosaicdata)
|
||||
("r-readr" ,r-readr)
|
||||
("r-tidyr" ,r-tidyr)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/ProjectMOSAIC/mosaic/")
|
||||
(synopsis "Mathematics, statistics, and computation teaching utilities")
|
||||
(description
|
||||
|
@ -7590,13 +7598,13 @@ for the reconstruction of gene regulatory networks.")
|
|||
(define-public r-pscl
|
||||
(package
|
||||
(name "r-pscl")
|
||||
(version "1.5.2")
|
||||
(version "1.5.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "pscl" version))
|
||||
(sha256
|
||||
(base32 "1phf3awsfr4ncqfqzin5m1pz0g7y1zhbcm2sz7358ssw914fd7rc"))))
|
||||
(base32 "0vzf5wazs92bhqhqd66v3vwmbfmnh67gb2466g1xxawim649nk05"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-mass" ,r-mass)))
|
||||
|
@ -8663,14 +8671,14 @@ back to file after modifications.")
|
|||
(define-public r-fs
|
||||
(package
|
||||
(name "r-fs")
|
||||
(version "1.3.1")
|
||||
(version "1.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "fs" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g26rgx13dzigp2vrlld6h28q33lwbax97zvwdrq2pc3iz54v4yn"))))
|
||||
"1w30bflx4d7a6f3dn96bf7s7v6aqpvz2yzzxal6qz9jyhb16bxaz"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)))
|
||||
|
@ -9183,20 +9191,18 @@ address a bug.")
|
|||
(define-public r-rcppannoy
|
||||
(package
|
||||
(name "r-rcppannoy")
|
||||
(version "0.0.15")
|
||||
(version "0.0.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppAnnoy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1rlw6npwwcp066midvkhnzf0xmmfkkdf6f581j3j1s2naqss3fvl"))))
|
||||
"0bfa35lp6vc4b0h3ymvdx50br233q8vvyjml34ngi81rj0imz3fr"))))
|
||||
(properties `((upstream-name . "RcppAnnoy")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "https://cran.r-project.org/web/packages/RcppAnnoy/")
|
||||
(synopsis "Rcpp bindings for Annoy, a library for Approximate Nearest Neighbors")
|
||||
(description
|
||||
|
@ -9528,7 +9534,7 @@ circular variables).")
|
|||
"0ddf9bw5lhj8vb0ja78jf99i0smq4rgmm842k4a4ygap41vdyn2b"))))
|
||||
(build-system r-build-system)
|
||||
(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")
|
||||
(description
|
||||
"This package provides tools to fit and compare Ornstein-Uhlenbeck models
|
||||
|
@ -10545,14 +10551,14 @@ other manipulations of bitmapped images.")
|
|||
(define-public r-rapidjsonr
|
||||
(package
|
||||
(name "r-rapidjsonr")
|
||||
(version "1.1")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rapidjsonr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0h4phjjhykbb45rg5b1xn48vqxdcvcngbm0416ds8in7j469wbwd"))))
|
||||
"07zdirhbzmvq3cp4xn8ngk1lgxbbabzays315zxbs3sxrz6lzjb2"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/rapidjsonr")
|
||||
(synopsis "JSON parser")
|
||||
|
@ -11578,7 +11584,7 @@ lasso, adaptive lasso and Ridge regression based on cross-validation.")
|
|||
(base32
|
||||
"1i1nhdapyijvm58zx38q28zk01ndmi6smjivxk5xs2cx9b6v2av9"))))
|
||||
(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")
|
||||
(description
|
||||
"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
|
||||
(package
|
||||
(name "r-bookdown")
|
||||
(version "0.17")
|
||||
(version "0.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "bookdown" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10b4gnd6z3w13pysqqan43blxcbk7bgbzc7wr83b23ag1lh2n40j"))))
|
||||
"1my6g16phx21v5cvfqcnjibh3zcv02xkix347aafd6a7r3hnxpq5"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-htmltools" ,r-htmltools)
|
||||
|
@ -14313,7 +14319,7 @@ layer by layer.")
|
|||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("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")
|
||||
(description
|
||||
"This package provides tools for the variable selection from random
|
||||
|
@ -15328,20 +15334,22 @@ easily.")
|
|||
(define-public r-umap
|
||||
(package
|
||||
(name "r-umap")
|
||||
(version "0.2.4.1")
|
||||
(version "0.2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "umap" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pnh3hv8ihiz2nszqp797lkrdhhna2a6mzpizbsk0s9m8cj4wxva"))))
|
||||
"0qp8zbh6fn8kn6q2h2lyjgmq3pr6gqwsd8ymqx25px13zjhxch9d"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-openssl" ,r-openssl)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-reticulate" ,r-reticulate)
|
||||
("r-rspectra" ,r-rspectra)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/tkonopka/umap")
|
||||
(synopsis "Uniform manifold approximation and projection")
|
||||
(description
|
||||
|
@ -15682,13 +15690,13 @@ function and interfaces to external frameworks.")
|
|||
(define-public r-covr
|
||||
(package
|
||||
(name "r-covr")
|
||||
(version "3.4.0")
|
||||
(version "3.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "covr" version))
|
||||
(sha256
|
||||
(base32 "0p44kr6yz5sqza5zvq6divqglzkpv0if9pjpjmzhmdaaddjrqzg5"))))
|
||||
(base32 "1pvr95h7jg9hqq1qq1cccy323pkxldrwafl08151cc410499k4fb"))))
|
||||
(properties `((upstream-name . "covr")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -15699,6 +15707,8 @@ function and interfaces to external frameworks.")
|
|||
("r-rex" ,r-rex)
|
||||
("r-withr" ,r-withr)
|
||||
("r-yaml" ,r-yaml)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "https://github.com/r-lib/covr")
|
||||
(synopsis "Test coverage for R packages")
|
||||
(description
|
||||
|
@ -15941,19 +15951,21 @@ atmospheric physics.")
|
|||
(define-public r-lifecycle
|
||||
(package
|
||||
(name "r-lifecycle")
|
||||
(version "0.1.0")
|
||||
(version "0.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lifecycle" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11rk7hkw63rfrf4aqmb4xrb88kg95xh8hajpjvjfwjym2v02h74n"))))
|
||||
"0912865c6675fsblrfdk6s568krsj1x8qbk1kipy7m05xs6nwx19"))))
|
||||
(properties `((upstream-name . "lifecycle")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-glue" ,r-glue)
|
||||
("r-rlang" ,r-rlang)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "https://github.com/r-lib/lifecycle")
|
||||
(synopsis "Manage the life cycle of your package functions")
|
||||
(description
|
||||
|
@ -16016,13 +16028,13 @@ programming problems.")
|
|||
(define-public r-desolve
|
||||
(package
|
||||
(name "r-desolve")
|
||||
(version "1.27.1")
|
||||
(version "1.28")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "deSolve" version))
|
||||
(sha256
|
||||
(base32 "05sax045qrk550gsn2i7krb9rbg51rx88x4v190acsigqknxffrv"))))
|
||||
(base32 "0jasvdzig0pzhzspmy20089az19r91xjfb9q6h8gj7c4mr6fymac"))))
|
||||
(properties `((upstream-name . "deSolve")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
|
@ -16880,7 +16892,7 @@ Components. The Lasso solution paths can be computed by the same function.")
|
|||
`(("r-elasticnet" ,r-elasticnet)
|
||||
("r-mass" ,r-mass)
|
||||
("r-mda" ,r-mda)))
|
||||
(home-page "http://www.imm.dtu.dk/~lhc")
|
||||
(home-page "https://www.imm.dtu.dk/~lkhc/")
|
||||
(synopsis "Sparse discriminant analysis")
|
||||
(description
|
||||
"This package performs sparse linear discriminant analysis for Gaussians
|
||||
|
@ -17991,7 +18003,7 @@ actigraphy-measured activity counts data.")
|
|||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-matrix" ,r-matrix)))
|
||||
(home-page "http://www.functionaldata.org")
|
||||
(home-page "https://www.functionaldata.org")
|
||||
(synopsis "Functional data analysis")
|
||||
(description
|
||||
"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/")
|
||||
(synopsis "Create D3 JavaScript network, tree, dendrogram, and Sankey graphs")
|
||||
(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.")
|
||||
(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
|
||||
Encyclopedia of Integer Sequences} (OEIS) in the function help page.")
|
||||
(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.
|
||||
#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
|
||||
(home-page "https://github.com/blackbeam/named_pipe")
|
||||
(synopsis "Wrapper for overlapped (asyncronous) IO of Windows's named pipes")
|
||||
(description "This package provides a wrapper for overlapped (asyncronous)
|
||||
(synopsis "Wrapper for overlapped (asynchronous) IO of Windows's named pipes")
|
||||
(description "This package provides a wrapper for overlapped (asynchronous)
|
||||
IO of Windows's named pipes.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -420,14 +420,14 @@ should only be used as part of the Guix cups-pk-helper service.")
|
|||
(define-public hplip
|
||||
(package
|
||||
(name "hplip")
|
||||
(version "3.19.12")
|
||||
(version "3.20.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
|
||||
"/hplip-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mdj0sqgfxjqa550adiw1gn4z9n6wcvn55slivgf0ndn5x89iwxp"))
|
||||
"1hkiyj29vzmz14cy68g94i617ymxinzvjvcsfdd78kcbd1s9vi4h"))
|
||||
(modules '((guix build utils)))
|
||||
(patches (search-patches "hplip-remove-imageprocessor.patch"))
|
||||
(snippet
|
||||
|
|
|
@ -3368,3 +3368,38 @@ The drivers officially supported by @code{libdbi} are:
|
|||
@end itemize")
|
||||
(home-page "http://libdbi-drivers.sourceforge.net/")
|
||||
(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 utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages gdb)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages ninja)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pretty-print)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages virtualization)
|
||||
#:use-module (ice-9 match)
|
||||
#: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
|
||||
;; by GPLv3 or later.
|
||||
(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")
|
||||
(description "Ding is a dictionary lookup program for the X window system.
|
||||
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+)))
|
||||
|
||||
(define-public grammalecte
|
||||
|
|
|
@ -396,14 +396,14 @@ to result in system-wide compromise.")
|
|||
(define-public unbound
|
||||
(package
|
||||
(name "unbound")
|
||||
(version "1.9.6")
|
||||
(version "1.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.unbound.net/downloads/unbound-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1w5aylh2gfvfvqkgrq46aw427x9c0a3hwm0f985s55wim5pgr60x"))))
|
||||
(base32 "0mg9divpysr42sp0m693a70693dp8025v6c9dv1yabr4g1jlhbqm"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "python"))
|
||||
(native-inputs
|
||||
|
@ -600,14 +600,14 @@ Extensions} (DNSSEC).")
|
|||
(define-public knot
|
||||
(package
|
||||
(name "knot")
|
||||
(version "2.9.2")
|
||||
(version "2.9.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
|
||||
"knot-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1vmndmbzwwrqczhygkhpdn5xxljcnaa3d0z5yw6vb2bmm8rxz319"))
|
||||
(base32 "0zm0642hkb16sqkqpa84f89f3s0bw44m837r1nia8m89swvz3bgj"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -738,7 +738,8 @@ adjust the level of difficulty.")
|
|||
(uri (string-append "https://apps.ankiweb.net/downloads/archive/anki-"
|
||||
version "-source.tgz"))
|
||||
(sha256
|
||||
(base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))))
|
||||
(base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))
|
||||
(patches (search-patches "anki-mpv-args.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output))
|
||||
|
@ -779,6 +780,9 @@ adjust the level of difficulty.")
|
|||
(wrap-program program
|
||||
`("QTWEBENGINEPROCESS_PATH" =
|
||||
(,qtwebengineprocess))
|
||||
`("PATH" prefix (,(string-append
|
||||
(assoc-ref inputs "mpv")
|
||||
"/bin")))
|
||||
`("PYTHONPATH" = ,site-packages)))
|
||||
(find-files bin ".")))
|
||||
#t)))))
|
||||
|
|
|
@ -60,6 +60,8 @@
|
|||
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -970,13 +972,13 @@ in certain cases. It also enables recursion for anonymous functions.")
|
|||
(define-public emacs-xr
|
||||
(package
|
||||
(name "emacs-xr")
|
||||
(version "1.16")
|
||||
(version "1.18")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "1s6pkbr7gkan0r9gfmix75m587d8cg6l11722v70zzgf2z9w2xg9"))))
|
||||
(base32 "1nq9pj47sxgpkw97c2xrkhgcwh3zsfd2a22qiqbl4i9zf2l9yy91"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://elpa.gnu.org/packages/xr.html")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-relint")
|
||||
(version "1.14")
|
||||
(version "1.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://elpa.gnu.org/packages/relint-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "0hjzhxcygb2r2s3g2pk3z9x3appy1y8gkw8gpg9cpkl6lpwcsh2f"))))
|
||||
(base32 "0sxmdsacj8my942k8j76m2y68nzab7190acv7cwgflc5n4f07yxa"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs `(("emacs-xr" ,emacs-xr)))
|
||||
(home-page "https://github.com/mattiase/relint")
|
||||
|
@ -4684,7 +4686,7 @@ local directories.")
|
|||
(package
|
||||
(name "emacs-ffap-rfc-space")
|
||||
(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
|
||||
(method url-fetch)
|
||||
(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
|
||||
;; commit.
|
||||
(define-public emacs-sly
|
||||
(let ((commit "0a3b81770e46b93b9ffd8b9ac5254e0b88d1b13d")
|
||||
(revision "3"))
|
||||
(let ((commit "86a63df73360be51529806c7ed9b775b3f02284d")
|
||||
(revision "4"))
|
||||
(package
|
||||
(name "emacs-sly")
|
||||
(version (git-version "1.0.0" revision commit))
|
||||
|
@ -7403,7 +7405,7 @@ CIDER).")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1q5ga4mxa0ffa4zb2y0zfwmgzjggx4fn1y4bl2x7ac6ynvb32zkj"))))
|
||||
"0sx6fdckcfcld41db0695svvlvllnfaazwx513686gnykwfd209n"))))
|
||||
(build-system emacs-build-system)
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)))
|
||||
|
@ -17255,10 +17257,10 @@ leader key in vim), and much more.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-tldr
|
||||
(let ((commit "398b197c8d2238628b07e1b32d0f373876279f4c"))
|
||||
(let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
|
||||
(package
|
||||
(name "emacs-tldr")
|
||||
(version (git-version "0" "0" commit))
|
||||
(version (git-version "0" "1" commit))
|
||||
(home-page "https://github.com/kuanyui/tldr.el")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
|
@ -17267,9 +17269,11 @@ leader key in vim), and much more.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f"))
|
||||
"1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-request" ,emacs-request)))
|
||||
(synopsis "Simplified and community-driven man pages for Emacs")
|
||||
(description "@code{emacs-tldr} allows the user to access tldr pages
|
||||
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
|
||||
Format and MIME Type for CSV Files\" (@url{http://tools.ietf.org/html/rfc4180}).")
|
||||
(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
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("which" ,which)))
|
||||
(home-page "http://librecad.org/")
|
||||
(home-page "https://librecad.org/")
|
||||
(synopsis "Computer-aided design (CAD) application")
|
||||
(description
|
||||
"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.
|
||||
(package
|
||||
(name "monero")
|
||||
(version "0.15.0.1")
|
||||
(version "0.15.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -516,7 +516,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
|||
#t))
|
||||
(sha256
|
||||
(base32
|
||||
"0sypa235lf2bbib4b71xpaw39h9304slgsvnsz8wmy9fq1zx009m"))))
|
||||
"06zzwa0y8ic6x3y2fy501788r51p4klanyvmm76ywrwf087njlkv"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
|
@ -614,7 +614,7 @@ the Monero command line client and daemon.")
|
|||
(define-public monero-gui
|
||||
(package
|
||||
(name "monero-gui")
|
||||
(version "0.15.0.3")
|
||||
(version "0.15.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -624,7 +624,7 @@ the Monero command line client and daemon.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v2mk6qp7dfdj4j4cilxp0s0phfwwnmjvpvjrz6jzzlpvbnavkr0"))))
|
||||
"12m5fgnxkr11q2arx1m5ccpxqm5ljcvm6l547dwqn297zs5jim4z"))))
|
||||
(build-system qt-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
;;; Copyright © 2016 Jookia <166291@gmail.com>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; 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 Toni Reina <areina@riseup.net>
|
||||
;;; 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.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public font-open-dyslexic
|
||||
(define-public font-opendyslexic
|
||||
(package
|
||||
(name "font-open-dyslexic")
|
||||
(version "20160623")
|
||||
(name "font-opendyslexic")
|
||||
(version "0.91.12")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/antijingoist/open-dyslexic.git")
|
||||
(commit (string-append version "-Stable"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nr7s92nk1kbr459154idnib977ixc70z6g9mbra3lp73nyrmyvz"))))
|
||||
(origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri (string-append "https://github.com/antijingoist/opendyslexic/"
|
||||
"releases/download/v" version
|
||||
"/opendyslexic-0.910.12-rc2-2019.10.17.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"11ml7v4iyf3hr0fbnkwz8afb8vi58wbcfnmn4gyvrwh9jk5pybdr"))))
|
||||
(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")
|
||||
(description "OpenDyslexic is a font designed to help readability for some
|
||||
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
|
||||
swapping. The italic style for OpenDyslexic has been crafted to be used for
|
||||
emphasis while still being readable.")
|
||||
(license
|
||||
(license:fsdg-compatible
|
||||
"https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"
|
||||
"The Font Software may be sold as part of a larger software package but
|
||||
no copy of one or more of the Font Software typefaces may be sold by
|
||||
itself."))))
|
||||
(license license:silofl1.1)))
|
||||
|
||||
(define-public font-open-dyslexic
|
||||
(deprecated-package "font-open-dyslexic" font-opendyslexic))
|
||||
|
||||
(define-public font-dosis
|
||||
(package
|
||||
|
@ -1272,13 +1270,14 @@ itself."))))
|
|||
(source
|
||||
(origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
|
||||
(base32 "1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
|
||||
(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")
|
||||
(description
|
||||
"Dosis is a very simple, rounded, sans serif family.
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -45,6 +46,7 @@
|
|||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages fribidi)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages sqlite)
|
||||
|
@ -255,44 +257,35 @@ work with most software requiring Type 1 fonts.")
|
|||
(license license:bsd-3)))
|
||||
|
||||
(define-public woff2
|
||||
(let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "woff2")
|
||||
(version (string-append "20160306-" revision "."
|
||||
(string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/google/woff2.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wka0yhf0cjmd4rv2jckxpyv6lb5ckj4nj0k1ajq5hrjy7f30lcp"))
|
||||
(patches (list (search-patch "woff2-libbrotli.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("brotli" ,brotli)))
|
||||
(arguments
|
||||
`(#:tests? #f ;no tests
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(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
|
||||
(package
|
||||
(name "woff2")
|
||||
(version "1.0.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/google/woff2.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version ".git"))
|
||||
(sha256
|
||||
(base32
|
||||
"13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("google-brotli" ,google-brotli)))
|
||||
(arguments
|
||||
;; package has no tests
|
||||
`(#:tests? #f
|
||||
;; we can’t have both, shared libraries and binaries, so turn off the
|
||||
;; former
|
||||
#:configure-flags (list "-DBUILD_SHARED_LIBS=OFF")))
|
||||
(synopsis "Compress TrueType fonts to WOFF2")
|
||||
(description
|
||||
"This package provides utilities for compressing/decompressing TrueType
|
||||
fonts to/from the WOFF2 format.")
|
||||
(license license:asl2.0)
|
||||
(home-page "https://github.com/google/woff2"))))
|
||||
(license license:asl2.0)
|
||||
(home-page "https://github.com/google/woff2")))
|
||||
|
||||
(define-public fontconfig
|
||||
(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
|
||||
Unicode Charts. It was developed for use with DejaVu Fonts project.")
|
||||
(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)))
|
||||
|
||||
(define-public libinput
|
||||
;; Updating this will rebuild over 700 packages through libinput-minimal.
|
||||
(package
|
||||
(name "libinput")
|
||||
(version "1.15.0")
|
||||
|
|
|
@ -2078,7 +2078,7 @@ a.k.a. XenoCollide) as described in Game Programming Gems 7.")
|
|||
`(("glu" ,glu)
|
||||
("libccd" ,libccd)
|
||||
("mesa" ,mesa)))
|
||||
(home-page "http://www.ode.org/")
|
||||
(home-page "https://www.ode.org/")
|
||||
(synopsis "High performance library for simulating rigid body dynamics")
|
||||
(description "ODE is a high performance library for simulating
|
||||
rigid body dynamics. It is fully featured, stable, mature and
|
||||
|
|
|
@ -2054,7 +2054,7 @@ for common mesh file formats, and collision detection.")
|
|||
("fribidi" ,fribidi)
|
||||
("taglib" ,taglib)
|
||||
("sfml" ,sfml)))
|
||||
(home-page "http://marsshooter.org")
|
||||
(home-page "http://mars-game.sourceforge.net/")
|
||||
(synopsis "2D space shooter")
|
||||
(description
|
||||
"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
|
||||
(package
|
||||
(name "proj")
|
||||
(version "6.2.0")
|
||||
(version "6.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -336,7 +336,7 @@ fully fledged Spatial SQL capabilities.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l1as8f4zfg74fms6h5p5psziw0lpznja1xnirzsscpnfbwc005k"))))
|
||||
"1y46ij32j9b4x1kjnnlykcwk3kkjwkg44sfc1ziwm3a3g0ki3q3d"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("sqlite" ,sqlite)))
|
||||
|
@ -554,6 +554,7 @@ development.")
|
|||
`(("freexl" ,freexl)
|
||||
("geos" ,geos)
|
||||
("libgaiagraphics" ,libgaiagraphics)
|
||||
("libjpeg-turbo" ,libjpeg-turbo)
|
||||
("libspatialite" ,libspatialite)
|
||||
("libxml2" ,libxml2)
|
||||
("proj.4" ,proj.4)
|
||||
|
@ -571,7 +572,7 @@ development.")
|
|||
(define-public gdal
|
||||
(package
|
||||
(name "gdal")
|
||||
(version "3.0.2")
|
||||
(version "3.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -579,7 +580,7 @@ development.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f80izh9wshrsw55kg9abpip74hk6frk3hgqrkqbyn3f6i8g2z3q"))
|
||||
"10symyajj1b7j98f889lqxxbmhcyvlhq9gg0l42h69bv22wx45gw"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
`(begin
|
||||
|
@ -1451,3 +1452,58 @@ archive all the GPS recordings of your past trips. It is the successor of the
|
|||
QLandkarte GT application.")
|
||||
(home-page "https://github.com/Maproom/qmapshack/wiki")
|
||||
(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
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -31,15 +31,14 @@
|
|||
(define-public gkrellm
|
||||
(package
|
||||
(name "gkrellm")
|
||||
(version "2.3.10")
|
||||
(version "2.3.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://gkrellm.srcbox.net/releases/gkrellm-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rnpzjr0ys0ypm078y63q4aplcgdr5nshjzhmz330n6dmnxci7lb"))))
|
||||
(base32 "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
|
||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -4997,15 +4998,15 @@ which can read a large number of file formats.")
|
|||
(define-public rhythmbox
|
||||
(package
|
||||
(name "rhythmbox")
|
||||
(version "3.4.3")
|
||||
(version "3.4.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(uri (string-append "mirror://gnome/sources/rhythmbox/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
"rhythmbox-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
|
||||
"142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -7385,7 +7386,7 @@ easy, safe, and automatic.")
|
|||
(define-public tracker
|
||||
(package
|
||||
(name "tracker")
|
||||
(version "2.2.2")
|
||||
(version "2.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/tracker/"
|
||||
|
@ -7393,7 +7394,7 @@ easy, safe, and automatic.")
|
|||
"tracker-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
|
||||
"1nzbnvwwsk6kv6kqbxwlz8vk70l9ai6b4r9qypw51vp4qy72ny54"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:glib-or-gtk? #t
|
||||
|
@ -7404,64 +7405,58 @@ easy, safe, and automatic.")
|
|||
(assoc-ref %outputs "out") "/lib/tracker-2.0"))
|
||||
#: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
|
||||
(lambda _
|
||||
(setenv "LANG" "en_US.UTF-8")
|
||||
;; For the missing /etc/machine-id.
|
||||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
||||
;; Some tests expect to write to $HOME.
|
||||
(setenv "HOME" "/tmp")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin")
|
||||
("gnome-common" ,gnome-common)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("python-pygobject" ,python-pygobject)
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)
|
||||
("vala" ,vala)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("dbus" ,dbus)
|
||||
`(("dbus" ,dbus)
|
||||
("sqlite" ,sqlite)
|
||||
("python" ,python)
|
||||
("poppler" ,poppler)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("zlib" ,zlib)
|
||||
("libxml2" ,libxml2)
|
||||
("libunistring" ,libunistring)
|
||||
("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
|
||||
("json-glib" ,json-glib)
|
||||
("openjpeg" ,openjpeg-1)
|
||||
("libseccomp" ,libseccomp)
|
||||
("libsoup" ,libsoup)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("network-manager" ,network-manager)))
|
||||
("libsoup" ,libsoup)))
|
||||
(synopsis "Metadata database, indexer and search tool")
|
||||
(home-page "https://wiki.gnome.org/Projects/Tracker")
|
||||
(description
|
||||
"Tracker is an advanced framework for first class objects with associated
|
||||
metadata and tags. It provides a one stop solution for all metadata, tags,
|
||||
shared object databases, search tools and indexing.")
|
||||
"Tracker is a search engine and triplestore for desktop, embedded and mobile.
|
||||
|
||||
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/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:lgpl2.1+
|
||||
license:lgpl2.0+))))
|
||||
license:bsd-3
|
||||
license:lgpl2.1+))))
|
||||
|
||||
(define-public tracker-miners
|
||||
(package
|
||||
(name "tracker-miners")
|
||||
(version "2.2.2")
|
||||
(version "2.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/tracker-miners/"
|
||||
|
@ -7469,7 +7464,7 @@ shared object databases, search tools and indexing.")
|
|||
"/tracker-miners-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
|
||||
"1kizavw9gbdjkw4wykgv0fcl2y6fj788nycx9p4byn6ylb1277h6"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:glib-or-gtk? #t
|
||||
|
@ -8696,15 +8691,14 @@ only know by its Unicode name or code point.")
|
|||
(define-public bluefish
|
||||
(package
|
||||
(name "bluefish")
|
||||
(version "2.2.10")
|
||||
(version "2.2.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
|
||||
name "-" version ".tar.gz"))
|
||||
"bluefish-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
|
||||
(base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("desktop-file-utils" ,desktop-file-utils)
|
||||
|
@ -8713,7 +8707,7 @@ only know by its Unicode name or code point.")
|
|||
(inputs
|
||||
`(("enchant" ,enchant)
|
||||
("gtk+" ,gtk+)
|
||||
("python" ,python-2)
|
||||
("python" ,python-wrapper)
|
||||
("xmllint" ,libxml2)
|
||||
("gucharmap" ,gucharmap)))
|
||||
(home-page "http://bluefish.openoffice.nl")
|
||||
|
@ -9573,7 +9567,7 @@ for usage on small and big screens.")
|
|||
(define-public libgit2-glib
|
||||
(package
|
||||
(name "libgit2-glib")
|
||||
(version "0.28.0.1")
|
||||
(version "0.99.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -9581,19 +9575,20 @@ for usage on small and big screens.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
|
||||
"1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ;; For glib-mkenums
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("intltool" ,intltool)
|
||||
("libssh2" ,libssh2)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python-pygobject" ,python-pygobject)
|
||||
("python-wrapper" ,python-wrapper)
|
||||
("vala" ,vala)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("libssh2" ,libssh2)))
|
||||
(propagated-inputs
|
||||
`(;; In Requires of libgit2-glib.pc.
|
||||
("libgit2" ,libgit2)))
|
||||
(synopsis "GLib wrapper around the libgit2 Git access library")
|
||||
(description "libgit2-glib is a GLib wrapper library around the libgit2 Git
|
||||
|
@ -9647,7 +9642,6 @@ higher level porcelain stuff.")
|
|||
("json-glib" ,json-glib)
|
||||
("libdazzle" ,libdazzle)
|
||||
("libgee" ,libgee)
|
||||
("libgit2" ,libgit2) ; propagated by libgit2-glib
|
||||
("libgit2-glib" ,libgit2-glib)
|
||||
("libpeas" ,libpeas)
|
||||
("libsecret" ,libsecret)
|
||||
|
@ -9835,3 +9829,58 @@ index files needed for Adwaita to be used outside of GNOME.")
|
|||
integrate seamlessly with the GNOME desktop.")
|
||||
(home-page "https://wiki.gnome.org/Apps/Polari")
|
||||
(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
|
||||
#:guile-for-build guile)))
|
||||
|
||||
(define %icecat-version "68.5.0-guix0-preview1")
|
||||
(define %icecat-build-id "20200211000000") ;must be of the form YYYYMMDDhhmmss
|
||||
(define %icecat-version "68.6.0-guix0-preview1")
|
||||
(define %icecat-build-id "20200309000000") ;must be of the form YYYYMMDDhhmmss
|
||||
|
||||
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
|
||||
;; 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"))
|
||||
(sha256
|
||||
(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 "2dc3c0bed6f8a41a8426ae66db92729af5c27c70")
|
||||
(gnuzilla-commit "9dcb24d885eae5973eb2245b532b158c685d707a")
|
||||
(gnuzilla-source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -593,7 +593,7 @@ from forcing GEXP-PROMISE."
|
|||
(string-take gnuzilla-commit 8)))
|
||||
(sha256
|
||||
(base32
|
||||
"1xwr1xjs4j2i6skm8hknh37gzsd6r396n0lchbwlahig7w6z506y"))))
|
||||
"1y3jmh055vmx44gsjgwxvwv3zcyvz8pc5mhgrwkzm0ybbwpp2pqi"))))
|
||||
|
||||
(makeicecat-patch
|
||||
(local-file (search-patch "icecat-makeicecat.patch"))))
|
||||
|
|
|
@ -3197,7 +3197,7 @@ are semantically equal in Go (for writing tests).")
|
|||
(arguments
|
||||
'(#:import-path "golang.org/x/sync/errgroup"
|
||||
#: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.")
|
||||
(description "This package provides synchronization, error propagation,
|
||||
and Context cancelation for groups of goroutines working on subtasks of a
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; 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 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
|
||||
|
@ -80,8 +80,10 @@
|
|||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages search)
|
||||
#:use-module (gnu packages slang)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages tex)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#: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
|
||||
over, or update a value in arbitrary data structures.")
|
||||
(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")
|
||||
(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
|
||||
;; 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.
|
||||
|
@ -277,15 +293,18 @@ without requiring the source code to be rewritten.")
|
|||
(package
|
||||
(inherit guile-2.2)
|
||||
(name "guile-next") ;to be renamed to "guile"
|
||||
(version "3.0.0")
|
||||
(version "3.0.1")
|
||||
(source (origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x8ca6q1qdmk29lh12gj6ngvgn7kp79w42rxfgwrpxm9jmjqs4y9"))
|
||||
(patches (search-patches "guile-2.2-skip-oom-test.patch"))))
|
||||
"1jakps3127h8g69ixgb4zwc8v2g29dmwql1vi3pwg30kzp8fm5nn"))
|
||||
(patches
|
||||
(append (search-patches "guile-3.0-crash.patch")
|
||||
(origin-patches (package-source guile-2.2))))))
|
||||
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guile-2.2)
|
||||
;; 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
|
||||
(package
|
||||
(name "git-annex")
|
||||
(version "8.20200226")
|
||||
(version "8.20200309")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://hackage.haskell.org/package/"
|
||||
"git-annex/git-annex-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "09v80ni1w9z1im79lzrnpz7xlivwna44zqpwq4axwyd17cffqi9m"))))
|
||||
(base32 "1yjb01jh5rccqg44nqh4iyxmbpkcpm6m82lnw7s0s2vizj8891p5"))))
|
||||
(build-system haskell-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -615,7 +615,7 @@ Wayland, and Linux console environments alike.")
|
|||
("ghc-sdl2" ,ghc-sdl2)
|
||||
("ghc-sdl2-image" ,ghc-sdl2-image)
|
||||
("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")
|
||||
(description "Project Raincat is a game developed by Carnegie Mellon
|
||||
students through GCS during the Fall 2008 semester. Raincat features game
|
||||
|
|
|
@ -121,7 +121,7 @@
|
|||
(list (search-path-specification
|
||||
(variable "IDRIS_LIBRARY_PATH")
|
||||
(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")
|
||||
(description "Idris is a general purpose language with full dependent
|
||||
types. It is compiled, with eager evaluation. Dependent types allow types to
|
||||
|
|
|
@ -1298,7 +1298,7 @@ ISO/IEC 15444-1).")
|
|||
(define-public zimg
|
||||
(package
|
||||
(name "zimg")
|
||||
(version "2.9.2")
|
||||
(version "2.9.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1307,7 +1307,7 @@ ISO/IEC 15444-1).")
|
|||
(commit (string-append "release-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0jlgrlfs9maixd8mx7gk2kfawz8ixnihkxi7vhyzfy1gq49vmxm2"))))
|
||||
(base32 "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
|
|
|
@ -2353,6 +2353,12 @@ new Date();"))
|
|||
(string-join (string-split version #\.) "u")
|
||||
"-ga"))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Delete included gradle jar
|
||||
(delete-file-recursively "gradle/wrapper")
|
||||
#t))
|
||||
(sha256
|
||||
(base32
|
||||
"0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f"))))
|
||||
|
@ -3524,7 +3530,7 @@ testing frameworks, mocking libraries and UI validation rules.")
|
|||
#:jar-name "junit.jar"))
|
||||
(inputs
|
||||
`(("java-hamcrest-core" ,java-hamcrest-core)))
|
||||
(home-page "http://junit.org/")
|
||||
(home-page "https://junit.org/")
|
||||
(synopsis "Test framework for Java")
|
||||
(description
|
||||
"JUnit is a simple framework to write repeatable tests for Java projects.
|
||||
|
@ -4674,7 +4680,7 @@ overly clever.")
|
|||
(native-inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("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")
|
||||
(description "Commons Math is a library of lightweight, self-contained
|
||||
mathematics and statistics components addressing the most common problems not
|
||||
|
@ -4856,7 +4862,7 @@ are many features, including:
|
|||
(native-inputs
|
||||
`(("junit" ,java-junit)
|
||||
("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")
|
||||
(description "BeanUtils provides a simplified interface to reflection and
|
||||
introspection to set or get dynamically determined properties through their
|
||||
|
@ -4891,7 +4897,7 @@ setter and getter method.")
|
|||
(native-inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("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")
|
||||
(description "Commons-IO contains utility classes, stream implementations,
|
||||
file filters and endian classes.")
|
||||
|
@ -5007,7 +5013,7 @@ time/FastDateFormatTest.java"
|
|||
(add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
|
||||
(native-inputs
|
||||
`(("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")
|
||||
(description "The Commons Lang components contains a set of Java classes
|
||||
that provide helper methods for standard Java classes, especially those found
|
||||
|
@ -5071,7 +5077,7 @@ included:
|
|||
("java-commons-io" ,java-commons-io)
|
||||
("java-hamcrest-all" ,java-hamcrest-all)
|
||||
("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")
|
||||
(description "The Commons Lang components contains a set of Java classes
|
||||
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)))
|
||||
(native-inputs
|
||||
`(("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.")
|
||||
(description "The org.apache.commons.jxpath package defines a simple
|
||||
interpreter of an expression language called XPath. JXPath applies XPath
|
||||
|
@ -5438,7 +5444,7 @@ more!")
|
|||
"LogKitLogger.java"))
|
||||
(delete-file-recursively "src/test")
|
||||
#t)))))
|
||||
(home-page "http://commons.apache.org/logging/")
|
||||
(home-page "https://commons.apache.org/logging/")
|
||||
(synopsis "Common API for logging implementations")
|
||||
(description "The Logging package is a thin bridge between different
|
||||
logging implementations. A library that uses the commons-logging API can be
|
||||
|
@ -5655,7 +5661,7 @@ standards and recommendations.")
|
|||
(native-inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("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")
|
||||
(description "The Apache Commons Net library implements the client side of
|
||||
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-hamcrest-core" ,java-hamcrest-core)
|
||||
("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")
|
||||
(description
|
||||
"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")))))
|
||||
(native-inputs
|
||||
`(("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")
|
||||
(description "The Daemon package from Apache Commons can be used to
|
||||
implement Java applications which can be launched as daemons. For example the
|
||||
|
@ -9161,7 +9167,7 @@ those in Perl and JavaScript.")
|
|||
("cglib" ,java-cglib)
|
||||
("asm" ,java-asm)
|
||||
("aopalliance" ,java-aopalliance)))
|
||||
(home-page "http://testng.org")
|
||||
(home-page "https://testng.org")
|
||||
(synopsis "Testing framework")
|
||||
(description "TestNG is a testing framework inspired from JUnit and NUnit
|
||||
but introducing some new functionalities that make it more powerful and easier
|
||||
|
@ -10260,7 +10266,7 @@ Dependency Injection (CDI).")
|
|||
(native-inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("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")
|
||||
(description "Joda-Convert provides a small set of classes to aid
|
||||
conversion between Objects and Strings. It is not intended to tackle the
|
||||
|
@ -10631,7 +10637,7 @@ against expected outcomes.")
|
|||
`(("unzip" ,unzip)
|
||||
("java-junit" ,java-junit)
|
||||
("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")
|
||||
(description "Openchart2 provides a simple, yet powerful, interface for
|
||||
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-net" ,java-commons-net)
|
||||
("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")
|
||||
(description "Commons VFS provides a single API for accessing various
|
||||
different file systems. It presents a uniform view of the files from various
|
||||
|
|
|
@ -688,6 +688,8 @@ Its features include:
|
|||
("solid" ,solid)))
|
||||
(home-page "https://cgit.kde.org/libkcompactdisc.git/")
|
||||
(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
|
||||
(list license:gpl2+ license:lgpl2.0+))))
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
(patches (search-patches
|
||||
"akonadi-paths.patch"
|
||||
"akonadi-timestamps.patch"
|
||||
"akonadi-Revert-Make-installation-properly-relocatabl.patch"))))
|
||||
"akonadi-Revert-Make-installation-properly-relo.patch"))))
|
||||
(build-system qt-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
|
@ -329,8 +329,8 @@ wrapping notes into KMime::Message objects.")
|
|||
`(#:tests? #f)) ;; TODO: needs dbus
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
|
||||
(synopsis "Akonadi search library")
|
||||
(description "Xapian-based indexing and query infrastructure for
|
||||
Akonadi.")
|
||||
(description "This package provides a library used to search in the
|
||||
Akonadi PIM data server. It uses Xapian for indexing and querying.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
(list license:gpl2+ license:lgpl2.0+))))
|
||||
|
||||
|
@ -371,7 +371,8 @@ Akonadi.")
|
|||
`(#:tests? #f)) ;; TODO: TZ setup
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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+)))
|
||||
|
||||
(define-public kcalutils
|
||||
|
@ -454,7 +455,8 @@ functions for accessing calendar data using the kcalcore API.")
|
|||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/kdepim-apps-libs.git")
|
||||
(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
|
||||
(list license:gpl2+ license:lgpl2.0+))))
|
||||
|
||||
|
@ -541,7 +543,7 @@ cryptography to the contents of the clipboard.")
|
|||
#t)))))
|
||||
(home-page "https://kontact.kde.org/")
|
||||
(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
|
||||
(list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
|
||||
|
||||
|
@ -601,7 +603,9 @@ easier to do so.")
|
|||
("openldap" ,openldap)))
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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+)))
|
||||
|
||||
(define-public kleopatra
|
||||
|
@ -694,7 +698,8 @@ and retrieving certificates from LDAP servers.")
|
|||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/mailimporter.git")
|
||||
(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
|
||||
(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
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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.")
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
|
@ -760,7 +765,8 @@ mail transport.")
|
|||
("qtbase" ,qtbase)))
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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+ )))
|
||||
|
||||
(define-public kmime
|
||||
|
@ -794,7 +800,11 @@ mail transport.")
|
|||
#t)))))
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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+)))
|
||||
|
||||
(define-public kontactinterface
|
||||
|
@ -821,7 +831,8 @@ mail transport.")
|
|||
("qtbase" ,qtbase)))
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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+)))
|
||||
|
||||
(define-public kpimcommon
|
||||
|
@ -881,8 +892,8 @@ mail transport.")
|
|||
(arguments
|
||||
`(#:tests? #f)) ;; TODO tests hang
|
||||
(home-page "https://cgit.kde.org/pimcommon.git")
|
||||
(synopsis "Common library for KDE PIM")
|
||||
(description "Common library for KDE PIM.")
|
||||
(synopsis "Common libraries for KDE PIM")
|
||||
(description "This package provides common libraries for KDE PIM.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
(list license:gpl2+ license:lgpl2.0+))))
|
||||
|
||||
|
@ -922,7 +933,9 @@ mail transport.")
|
|||
`(#:tests? #f)) ;; TODO - test suite hangs
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
|
||||
(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
|
||||
(list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
|
||||
|
||||
|
@ -990,8 +1003,12 @@ standard protocols for e-mail transmission.")
|
|||
("ki18n" ,ki18n)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
|
||||
(synopsis "Viewer for mail attachments using TNEF format")
|
||||
(description "Viewer for mail attachments using TNEF format")
|
||||
(synopsis "Library for handling 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+)))
|
||||
|
||||
(define-public libkdepim
|
||||
|
@ -1037,8 +1054,8 @@ standard protocols for e-mail transmission.")
|
|||
("kwidgetsaddons" ,kwidgetsaddons)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/libkdepim.git")
|
||||
(synopsis "Libraries for common kdepim apps")
|
||||
(description "Libraries for common kdepim apps.")
|
||||
(synopsis "Libraries for common KDE PIM apps")
|
||||
(description "This package provided libraries for common KDE PIM apps.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
(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
|
||||
(home-page "https://kde.org/applications/system/org.kde.Help")
|
||||
(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+)))
|
||||
|
||||
(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,
|
||||
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,
|
||||
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.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -112,7 +112,7 @@ authentication for client/server applications by using secret-key
|
|||
cryptography.")
|
||||
(license (license:non-copyleft "file://NOTICE"
|
||||
"See NOTICE in the distribution."))
|
||||
(home-page "http://web.mit.edu/kerberos/")
|
||||
(home-page "https://web.mit.edu/kerberos/")
|
||||
(properties '((cpe-name . "kerberos")))))
|
||||
|
||||
(define-public shishi
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 © 2012 Nikita Karetnikov <nikita@karetnikov.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"))
|
||||
(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
|
||||
(let ((version linux-libre-5.4-version)
|
||||
(hash (base32 "1jhyg2yc03fka92l7hwdajim6q5rk538hjdr1gwgvpfyyp6sla1z")))
|
||||
(hash (base32 "1cvy3mxwzll4f9j8i3hfmi0i0zq75aiafq1jskp9n4kq9iwar83z")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "0h02pxzzwc5w2kfqw686bpxc13a93yq449lyzxxkxq1qilcsqjv5")))
|
||||
(hash (base32 "18shyy1z2s8r26qb4rcz7gwl43dnmycjjywp9gss5zlfn2jyrbh9")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.19)))
|
||||
|
@ -2909,6 +2909,26 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot
|
|||
time.")
|
||||
(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
|
||||
(deprecated-package "eudev-with-hwdb" eudev))
|
||||
|
||||
|
@ -5076,7 +5096,7 @@ of flash storage.")
|
|||
(define-public libseccomp
|
||||
(package
|
||||
(name "libseccomp")
|
||||
(version "2.4.2")
|
||||
(version "2.4.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/seccomp/libseccomp/"
|
||||
|
@ -5084,8 +5104,7 @@ of flash storage.")
|
|||
"/libseccomp-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nsq81acrbkdr8zairxbwa33bj2a6126npp76b4srjl472sjfkxm"))
|
||||
(patches (search-patches "libseccomp-open-aarch64.patch"))))
|
||||
"07crwxqzvl5k2b90a47ii9wgvi09s9hsy5b5jddw9ylp351d25fg"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("which" ,which)))
|
||||
|
|
|
@ -3008,7 +3008,7 @@ is a library for creating graphical user interfaces.")
|
|||
(sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
|
||||
|
||||
(define-public sbcl-cl-webkit
|
||||
(let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
|
||||
(let ((commit "79ad41996a1bd7fc8e53fe8d168e8f2030603b14"))
|
||||
(package
|
||||
(name "sbcl-cl-webkit")
|
||||
(version (git-version "2.4" "1" commit))
|
||||
|
@ -3016,12 +3016,12 @@ is a library for creating graphical user interfaces.")
|
|||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jmercouris/cl-webkit")
|
||||
(url "https://github.com/joachifm/cl-webkit")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-webkit" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
|
||||
"1gxvmxmss5k79v2ccigx92q46zbydxh9r7plnnqh8na348pffgcs"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("cffi" ,sbcl-cffi)
|
||||
|
@ -3038,7 +3038,7 @@ is a library for creating graphical user interfaces.")
|
|||
(("libwebkit2gtk" all)
|
||||
(string-append
|
||||
(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")
|
||||
(description
|
||||
"@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)))))
|
||||
(synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
|
||||
|
||||
(define-public sbcl-iolib
|
||||
(define sbcl-iolib+syscalls
|
||||
(package
|
||||
(inherit sbcl-iolib.asdf)
|
||||
(name "sbcl-iolib")
|
||||
(name "sbcl-iolib+syscalls")
|
||||
(inputs
|
||||
`(("iolib.asdf" ,sbcl-iolib.asdf)
|
||||
("iolib.conf" ,sbcl-iolib.conf)
|
||||
|
@ -5375,7 +5375,7 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
|
|||
`(("fiveam" ,sbcl-fiveam)))
|
||||
(arguments
|
||||
'(#:asd-file "iolib.asd"
|
||||
#:asd-system-name "iolib"
|
||||
#:asd-system-name "iolib/syscalls"
|
||||
#:test-asd-file "iolib.tests.asd"
|
||||
#: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")))
|
||||
|
||||
(define-public cl-iolib
|
||||
(sbcl-package->cl-source-package sbcl-iolib))
|
||||
|
||||
(define sbcl-iolib+multiplex
|
||||
(package
|
||||
(inherit sbcl-iolib)
|
||||
(inherit sbcl-iolib+syscalls)
|
||||
(name "sbcl-iolib+multiplex")
|
||||
(inputs
|
||||
`(("iolib+syscalls" ,sbcl-iolib+syscalls)
|
||||
,@(package-inputs sbcl-iolib+syscalls)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
||||
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||
((#: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
|
||||
(package
|
||||
(inherit sbcl-iolib)
|
||||
(inherit sbcl-iolib+syscalls)
|
||||
(name "sbcl-iolib+streams")
|
||||
(inputs
|
||||
`(("iolib+multiplex" ,sbcl-iolib+multiplex)
|
||||
,@(package-inputs sbcl-iolib+syscalls)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
||||
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||
((#:asd-system-name _) "iolib/streams")))))
|
||||
|
||||
(define sbcl-iolib+sockets
|
||||
(package
|
||||
(inherit sbcl-iolib)
|
||||
(inherit sbcl-iolib+syscalls)
|
||||
(name "sbcl-iolib+sockets")
|
||||
(inputs
|
||||
`(("iolib+syscalls" ,sbcl-iolib+syscalls)
|
||||
("iolib+streams" ,sbcl-iolib+streams)
|
||||
,@(package-inputs sbcl-iolib+syscalls)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments sbcl-iolib)
|
||||
(substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
|
||||
((#: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
|
||||
(let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
|
||||
(revision "1"))
|
||||
|
@ -6350,16 +6367,13 @@ power of CXML is available when necessary.")
|
|||
(sha256
|
||||
(base32
|
||||
"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
|
||||
`(("alexandria" ,sbcl-alexandria)
|
||||
("trivial-garbage" ,sbcl-trivial-garbage)
|
||||
("babel" ,sbcl-babel)
|
||||
("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)
|
||||
("flexi-streams" ,sbcl-flexi-streams)
|
||||
("cl-xmlspam" ,sbcl-cl-xmlspam)
|
||||
|
@ -11197,3 +11211,42 @@ interfaces as well as a functional and an object oriented interface.")
|
|||
"-o" shared-lib)
|
||||
#t)))))))
|
||||
(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
|
||||
(package
|
||||
(name "python-scikit-learn")
|
||||
(version "0.20.4")
|
||||
(version "0.22.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -808,7 +808,7 @@ computing environments.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj"))))
|
||||
"1xqxv210gsmjw094vc5ghq2y9lmm74qkk22pq6flcjzj51b86jxf"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -835,7 +835,8 @@ computing environments.")
|
|||
(inputs
|
||||
`(("openblas" ,openblas)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
`(("python-joblib" ,python-joblib)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-pandas" ,python-pandas) ;for tests
|
||||
("python-cython" ,python-cython)))
|
||||
(propagated-inputs
|
||||
|
@ -2105,7 +2106,8 @@ These include a barrier, broadcast, and allreduce.")
|
|||
"02ada2yy6km6zgk2836kg1c97yrcpalvan34p8c57446finnpki1"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-nose" ,python-nose)))
|
||||
`(("python-joblib" ,python-joblib)
|
||||
("python-nose" ,python-nose)))
|
||||
(propagated-inputs
|
||||
`(("python-numba" ,python-numba)
|
||||
("python-numpy" ,python-numpy)
|
||||
|
|
|
@ -1144,7 +1144,7 @@ MailCore 2.")
|
|||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.heanet.ie/mirrors/"
|
||||
"ftp.xemacs.org/aux/"
|
||||
name "-" version ".tar.gz"))
|
||||
"compface-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6"))))
|
||||
|
@ -1154,13 +1154,13 @@ MailCore 2.")
|
|||
(synopsis "Portrait image compressor")
|
||||
(description "This package takes your 48x48x1 portrait image and
|
||||
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"))))
|
||||
|
||||
(define-public claws-mail
|
||||
(package
|
||||
(name "claws-mail")
|
||||
(version "3.17.4")
|
||||
(version "3.17.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1168,7 +1168,7 @@ compresses it.")
|
|||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00mfhaac16sv67rwiq98hr4nl5zmd1h2afswwwksdcsi3q9x23jr"))))
|
||||
"1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("bogofilter" ,bogofilter)
|
||||
|
@ -1374,7 +1374,7 @@ facilities for checking incoming mail.")
|
|||
(define-public dovecot
|
||||
(package
|
||||
(name "dovecot")
|
||||
(version "2.3.9.3")
|
||||
(version "2.3.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1382,7 +1382,7 @@ facilities for checking incoming mail.")
|
|||
(version-major+minor version) "/"
|
||||
"dovecot-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0lcnqib63nv32xr3nr4s3x8k77mbgrhc13swjl2xqnzw4fabd7zq"))))
|
||||
(base32 "1ibiz3k2flablkcqbkvfzsjnq5b5kxximhcrplflsjl57mr88ca7"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -60,14 +60,14 @@ a flexible and convenient way.")
|
|||
(define-public man-db
|
||||
(package
|
||||
(name "man-db")
|
||||
(version "2.9.0")
|
||||
(version "2.9.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/man-db/man-db-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qg2sdn8mayya0ril484iz1r7hi46l68d2d80cr6lvc7x3csqjjx"))))
|
||||
"0ky7aq8313xa1y0zdwdbz5yvjfjb3xy0xymbimd2d9q9bky8lgds"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
|
||||
;;; 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 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
|
@ -34,6 +34,7 @@
|
|||
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
|
||||
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2020 Felix Gruber <felgru@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3028,7 +3029,7 @@ point numbers.")
|
|||
(define-public wxmaxima
|
||||
(package
|
||||
(name "wxmaxima")
|
||||
(version "20.01.3")
|
||||
(version "20.02.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -3037,10 +3038,13 @@ point numbers.")
|
|||
(commit (string-append "Version-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "18fj2m1qwlbavivpixph112wq9hxy3hh7c8q07djc3bhrzf2a7v7"))))
|
||||
(base32 "106a7jrjwfmymzj70nsv44fm3jbxngr8pmkaghhpwy0ln38lhf54"))))
|
||||
(build-system cmake-build-system)
|
||||
(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
|
||||
`(("wxwidgets" ,wxwidgets)
|
||||
("maxima" ,maxima)
|
||||
|
@ -3049,9 +3053,16 @@ point numbers.")
|
|||
("gtk+" ,gtk+)
|
||||
("shared-mime-info" ,shared-mime-info)))
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
`(#:test-target "test"
|
||||
#: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
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
|
@ -3220,7 +3231,7 @@ parts of it.")
|
|||
`(("cunit" ,cunit)
|
||||
("fortran" ,gfortran)
|
||||
("perl" ,perl)))
|
||||
(home-page "http://www.openblas.net/")
|
||||
(home-page "https://www.openblas.net/")
|
||||
(synopsis "Optimized BLAS library based on GotoBLAS")
|
||||
(description
|
||||
"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
|
||||
(package
|
||||
(name "suitesparse")
|
||||
(version "4.5.5")
|
||||
(version "5.7.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-"
|
||||
version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/DrTimothyAldenDavis/SuiteSparse.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1dnr6pmjzc2qmbkmb4shigx1l74ilf6abn7svyd6brxgvph8vadr"))
|
||||
"174p3l78kv9gaa0i5hflyai2ydwnjzh34k9938sl4aa3li0543s8"))
|
||||
(patches (search-patches "suitesparse-mongoose-cmake.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Remove bundled metis source
|
||||
|
@ -3428,6 +3441,14 @@ Fresnel integrals, and similar related functions as well.")
|
|||
"BLAS=-lblas"
|
||||
"TBB=-ltbb"
|
||||
"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="
|
||||
(assoc-ref %outputs "out") "/lib")
|
||||
(string-append "INSTALL_INCLUDE="
|
||||
|
@ -3440,6 +3461,9 @@ Fresnel integrals, and similar related functions as well.")
|
|||
`(("tbb" ,tbb)
|
||||
("lapack" ,lapack)
|
||||
("metis" ,metis)))
|
||||
(native-inputs
|
||||
`(("cmake" ,cmake)
|
||||
("m4" ,m4)))
|
||||
(home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html")
|
||||
(synopsis "Suite of sparse matrix software")
|
||||
(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
|
||||
variables, a formula book, and quick insertion of constants from various
|
||||
fields of knowledge.")
|
||||
(home-page "http://speedcrunch.org/")
|
||||
(home-page "https://speedcrunch.org/")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public minisat
|
||||
|
|
|
@ -1238,7 +1238,7 @@ for sending encrypted messages to one person or many subscribers.")
|
|||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)))
|
||||
(home-page "http://ytalk.ourproject.org")
|
||||
(home-page "https://ytalk.ourproject.org")
|
||||
(synopsis "Multi-user chat program")
|
||||
(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
|
||||
|
|
|
@ -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.")
|
||||
(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
|
||||
(package
|
||||
(name "cursynth")
|
||||
|
@ -2870,7 +2928,7 @@ websites such as Libre.fm.")
|
|||
(find-files "instantmusic.egg-info"
|
||||
"PKG-INFO|.*\\.txt"))
|
||||
#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")
|
||||
(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.")
|
||||
|
|
|
@ -1510,7 +1510,7 @@ that block port 22.")
|
|||
supports tuning of various parameters related to timing, buffers and
|
||||
protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
|
||||
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:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
|
||||
license:expat ; src/{cjson,net}.[ch]
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
(define-public ntp
|
||||
(package
|
||||
(name "ntp")
|
||||
(version "4.2.8p13")
|
||||
(version "4.2.8p14")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -54,7 +54,7 @@
|
|||
(version-major+minor version)
|
||||
"/ntp-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32 "0f1a4fya7v5s0426nim8ydvvlcashb8hicgs9xlm76ndrz7751r8"))
|
||||
(base32 "1dsfbrad5adwjnm3k0y0ip8dzs7r2nmw66vjil8gvapnh7qf8q0r"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -92,9 +92,9 @@
|
|||
(description "NTP is a system designed to synchronize the clocks of
|
||||
computers over a network.")
|
||||
(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"))
|
||||
(home-page "http://www.ntp.org")))
|
||||
(home-page "https://www.ntp.org")))
|
||||
|
||||
(define-public openntpd
|
||||
(package
|
||||
|
|
|
@ -111,8 +111,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "1.0.1")
|
||||
(commit "c2f9ea2b502a617bb69227d5f858eee9d4288a6a")
|
||||
(revision 14))
|
||||
(commit "09844816c77caaa60f4149f99a34733966724627")
|
||||
(revision 15))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -128,7 +128,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0hg6yrqlzqiv4gmk9liqar6m9qhhn66q75jsmh86awjwq4qmvyab"))
|
||||
"1fciffls6cw9zz13vig5x37r73qxc0irzyh0caimciddlksvabf7"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -1005,7 +1005,7 @@ for packaging and deployment of cross-compiled Windows applications.")
|
|||
(define-public libostree
|
||||
(package
|
||||
(name "libostree")
|
||||
(version "2020.1")
|
||||
(version "2020.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1013,7 +1013,7 @@ for packaging and deployment of cross-compiled Windows applications.")
|
|||
(version-major+minor version) "/libostree-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sgx81w6skiivbr2gfhljf9nvnqfwwnwfgpqqa10fjdkjrqwvpk8"))))
|
||||
"0bbk0sg4m38g7j00hy358p2azxas87minpgz3avwma6jsylj1qjg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#: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
|
||||
-gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||
-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
|
||||
-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
|
||||
+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||
+# 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
|
||||
+# 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 ng0 <ng0@n0.is>
|
||||
;;; 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 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
|
||||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.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 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; 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.")
|
||||
(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
|
||||
(package
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "perl-config-autoconf")
|
||||
|
@ -2251,14 +2300,14 @@ hours, minutes, seconds, and time zones.")
|
|||
(define-public perl-datetime
|
||||
(package
|
||||
(name "perl-datetime")
|
||||
(version "1.51")
|
||||
(version "1.52")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
|
||||
"DateTime-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1ibfq6acz1ih28vl613yygbb3r2d8ykx6di669vajhvswl6xl8ny"))))
|
||||
(base32 "1z1xpifh2kpyw7rlc8ivg9rl0qmabjq979gjp0s9agdjf9hqp0k7"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
|
||||
|
@ -2491,15 +2540,14 @@ parsing logic.")
|
|||
(define-public perl-datetime-format-strptime
|
||||
(package
|
||||
(name "perl-datetime-format-strptime")
|
||||
(version "1.76")
|
||||
(version "1.77")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
|
||||
"DateTime-Format-Strptime-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03dmzi9n6jmnfjmf0ld5sdmi3ib6jrhz25cjzv7d58ypdr32cg2r"))))
|
||||
(base32 "0jiy2yc9h9932ykb8x2l1j3ff8ms3p4426m947r5clygis1kr91g"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-datetime" ,perl-datetime)
|
||||
|
@ -5168,6 +5216,26 @@ Bezier Curve Drawing\".")
|
|||
both positive and negative, in various ways.")
|
||||
(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
|
||||
(package
|
||||
(name "perl-memoize")
|
||||
|
@ -9173,15 +9241,14 @@ still work as expected.")
|
|||
(define-public perl-timedate
|
||||
(package
|
||||
(name "perl-timedate")
|
||||
(version "2.31")
|
||||
(version "2.32")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cpan/authors/id/A/AT/ATOOMIC/"
|
||||
"TimeDate-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10ad6l4ii2iahdpw8h0xqwasc1jblan31h597q3js4j5nbnhywjw"))))
|
||||
(base32 "1mmk9dy4a26a4d4c5rswqqhxr0295j93bjbcx91d3qkmwfcs1v1l"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page "https://metacpan.org/release/TimeDate")
|
||||
(synopsis "Date parsing/formatting subroutines")
|
||||
|
@ -9625,14 +9692,14 @@ attribute names.")
|
|||
(define-public perl-xs-object-magic
|
||||
(package
|
||||
(name "perl-xs-object-magic")
|
||||
(version "0.04")
|
||||
(version "0.05")
|
||||
(source (origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"03fghj7hq0fiicmfdxhmzfm4mzv7s097pgkd32ji7jnljvhm9six"))))
|
||||
"0njyy4y0zax4zz55y82dlm9cly1pld1lcxb281s12bp9rrhf9j9x"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-extutils-depends" ,perl-extutils-depends)
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
("libxaw" ,libxaw)))
|
||||
|
||||
(home-page
|
||||
"http://www.gnu.org/software/plotutils/")
|
||||
"https://www.gnu.org/software/plotutils/")
|
||||
(synopsis "Plotting utilities and library")
|
||||
(description
|
||||
"GNU Plotutils is a package for plotting and working with 2D graphics.
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
(define-module (gnu packages pretty-print)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
|
@ -166,21 +167,20 @@ different programming languages.")
|
|||
(define-public fmt
|
||||
(package
|
||||
(name "fmt")
|
||||
(version "6.0.0")
|
||||
(version "6.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/fmtlib/fmt/releases/download/"
|
||||
version "/fmt-" version ".zip"))
|
||||
(uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
|
||||
version "/fmt-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h148anbaqgch6n69pxsvs1c9wmykgd052wmzgdia7qpz8w6p8dl"))))
|
||||
"1s1hxaby5byb07rgmrk4a0q11fxhz7b42khch7sp2qx974y0yrb3"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(home-page "http://fmtlib.net/")
|
||||
(home-page "https://fmt.dev")
|
||||
(synopsis "Small and fast C++ formatting library")
|
||||
(description
|
||||
"@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 © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;; 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 © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
||||
|
@ -82,14 +82,14 @@
|
|||
(define-public python-aiohttp
|
||||
(package
|
||||
(name "python-aiohttp")
|
||||
(version "3.5.4")
|
||||
(version "3.6.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "aiohttp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gy95ni8rkdwzir9zf14ivpfwp02g69xbhibldykff0rzbs86k4w"))))
|
||||
"09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
(package
|
||||
(name "python-h5py")
|
||||
(version "2.8.0")
|
||||
(version "2.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "h5py" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6"))))
|
||||
"0baipzv8n93m0dq0riyi8rfhzrjrfrfh8zqhszzp1j2xjac2fhc4"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#: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-numpy" ,python-numpy)))
|
||||
(inputs
|
||||
`(("hdf5" ,hdf5)))
|
||||
`(("hdf5" ,hdf5-1.10)))
|
||||
(native-inputs
|
||||
`(("python-cython" ,python-cython)
|
||||
("python-pkgconfig" ,python-pkgconfig)))
|
||||
("python-pkgconfig" ,python-pkgconfig)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://www.h5py.org/")
|
||||
(synopsis "Read and write HDF5 files from Python")
|
||||
(description
|
||||
|
@ -671,6 +672,26 @@ API for locking files.")
|
|||
(define-public python2-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
|
||||
(package
|
||||
(name "python-semantic-version")
|
||||
|
@ -2377,28 +2398,30 @@ e.g. filters, callbacks and errbacks can all be promises.")
|
|||
(define-public python-virtualenv
|
||||
(package
|
||||
(name "python-virtualenv")
|
||||
(version "16.1.0")
|
||||
(version "20.0.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "virtualenv" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0242cg3hdq3qdvx5flyrki8lpwlgwf5k45c21ks5049fv7ygm6gq"))))
|
||||
"096r7g5cv85vxymg9iqbn5z749613snlvd6p3rf1nxnrd386j0qz"))))
|
||||
(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
|
||||
`(("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/")
|
||||
(synopsis "Virtual Python environment builder")
|
||||
(description
|
||||
|
@ -3154,17 +3177,36 @@ used in text editing environments to provide a complete and integrated
|
|||
feature-set for programming Python effectively.")
|
||||
(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
|
||||
(package
|
||||
(name "python-black")
|
||||
(version "18.6b4")
|
||||
(version "19.10b0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "black" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0i4sfqgz6w15vd50kbhi7g7rifgqlf8yfr8y78rypd56q64qn592"))))
|
||||
"0f8mr0yzj78q1dx7v6ggbgfir2wv0n5z2shfbbvfdq7910xbgvf2"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -3174,16 +3216,39 @@ feature-set for programming Python effectively.")
|
|||
(let ((python3 (which "python3")))
|
||||
(substitute* '("tests/data/fmtonoff.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)
|
||||
(string-append "#!" python3 (if (string? 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
|
||||
`(("python-click" ,python-click)
|
||||
("python-attrs" ,python-attrs)
|
||||
("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")
|
||||
(synopsis "The uncompromising 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
|
||||
(package
|
||||
(name "python-pygit2")
|
||||
(version "0.28.2")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pygit2" version))
|
||||
(sha256
|
||||
(base32 "11kzj5mjkspvplnpdb6bj8dcj6rgmkk986k8hjcklyg5yaxkz32d"))))
|
||||
(base32 "1hs0pqqzn1yjxqk86nq7p0lvsklwnlyi5xwyzr7d5nrs19dmsjbg"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; tests don't run correctly in our environment
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)
|
||||
`(("python-cached-property" ,python-cached-property)
|
||||
("python-cffi" ,python-cffi)
|
||||
("libgit2" ,libgit2)
|
||||
("python-tox" ,python-tox)))
|
||||
("libgit2" ,libgit2)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/libgit2/pygit2")
|
||||
|
@ -3764,9 +3828,6 @@ library, libgit2 implements Git plumbing.")
|
|||
;; GPL2.0 only, with linking exception.
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public python2-pygit2
|
||||
(package-with-python2 python-pygit2))
|
||||
|
||||
(define-public python-pyparsing
|
||||
(package
|
||||
(name "python-pyparsing")
|
||||
|
@ -4410,6 +4471,40 @@ by pycodestyle.")
|
|||
(define-public python2-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
|
||||
(package
|
||||
(name "python-distutils-extra")
|
||||
|
@ -7271,6 +7366,12 @@ printing of sub-tables by specifying a row range.")
|
|||
"linker_exe='gcc',"
|
||||
"linker_so='gcc -shared')")))
|
||||
#t))
|
||||
(add-after 'unpack 'disable-tuning
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("cpu_flags = .*")
|
||||
"cpu_flags = ['sse2']\n"))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(invoke "python" "setup.py" "build"
|
||||
|
@ -7288,7 +7389,7 @@ printing of sub-tables by specifying a row range.")
|
|||
`(("python-cython" ,python-cython)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("hdf5" ,hdf5)
|
||||
`(("hdf5" ,hdf5-1.10)
|
||||
("bzip2" ,bzip2)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://www.pytables.org/")
|
||||
|
@ -7300,6 +7401,84 @@ designed to efficiently cope with extremely large amounts of data.")
|
|||
(define-public python2-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
|
||||
(package
|
||||
(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 scripts to administer multiple environments
|
||||
@end enumerate")
|
||||
(home-page "http://codespeak.net/execnet/")
|
||||
(home-page "https://codespeak.net/execnet/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-execnet
|
||||
|
@ -14520,7 +14699,12 @@ such as figshare or Zenodo.")
|
|||
"183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
|
||||
(build-system python-build-system)
|
||||
(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)))
|
||||
(home-page "https://github.com/k-bx/python-semver")
|
||||
(synopsis "Python helper for Semantic Versioning")
|
||||
|
@ -15835,23 +16019,126 @@ infrastructure at import time, runtime, or statically (using the included pycc
|
|||
tool).")
|
||||
(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
|
||||
(package
|
||||
(name "python-anndata")
|
||||
(version "0.6.18")
|
||||
(version "0.7.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "anndata" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03x83yjaccbqszj7x4fwwmpil0ai59yx64d1zmf2691za3j03w73"))))
|
||||
"0rnfbpr55j1a1bi2kd4mz444741hrn74kz90h5rnjr59jmpfnh09"))))
|
||||
(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
|
||||
`(("python-h5py" ,python-h5py)
|
||||
("python-importlib-metadata" ,python-importlib-metadata)
|
||||
("python-natsort" ,python-natsort)
|
||||
("python-numcodecs" ,python-numcodecs)
|
||||
("python-packaging" ,python-packaging)
|
||||
("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")
|
||||
(synopsis "Annotated data for data analysis pipelines")
|
||||
(description "Anndata is a package for simple (functional) high-level APIs
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
(base32
|
||||
"05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://re2c.org/")
|
||||
(home-page "https://re2c.org/")
|
||||
(synopsis "Lexer generator for C/C++")
|
||||
(description
|
||||
"@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 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -184,11 +185,11 @@ also knows about symlinks, extended attributes, and Git.")
|
|||
;; Manpages
|
||||
(install-file "doc/fd.1" (string-append out "/share/man/man1"))
|
||||
;; 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$" "/share/zsh/site-functions")
|
||||
(rename-file (string-append out "/etc/bash-completion.d/fd.bash")
|
||||
(string-append out "/etc/bash-completion.d/fd"))
|
||||
(rename-file (string-append out "/etc/bash_completion.d/fd.bash")
|
||||
(string-append out "/etc/bash_completion.d/fd"))
|
||||
#t))))))
|
||||
(inputs `(("jemalloc" ,jemalloc)))
|
||||
(home-page "https://github.com/sharkdp/fd")
|
||||
|
|
|
@ -421,47 +421,51 @@ key-value pair databases and a real LDAP database.")
|
|||
(license lgpl3+)))
|
||||
|
||||
(define-public ppp
|
||||
(package
|
||||
(name "ppp")
|
||||
(version "2.4.8")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/paulusmack/ppp")
|
||||
(commit (string-append "ppp-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1i88m79h6g3fzsb4yw3k8bq1grsx3hsyawm7id2vcaab0gfqzjjv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
#:make-flags '("CC=gcc")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-Makefile
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(openssl (assoc-ref inputs "openssl"))
|
||||
(libpcap (assoc-ref inputs "libpcap")))
|
||||
(substitute* "pppd/Makefile.linux"
|
||||
(("/usr/include/crypt\\.h")
|
||||
(string-append libc "/include/crypt.h"))
|
||||
(("/usr/include/openssl")
|
||||
(string-append openssl "/include/openssl"))
|
||||
(("/usr/include/pcap-bpf.h")
|
||||
(string-append libpcap "/include/pcap-bpf.h")))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("libpcap" ,libpcap)
|
||||
("openssl" ,(@ (gnu packages tls) openssl))))
|
||||
(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
|
||||
;; This git commit contains unreleased fixes for CVE-2020-8597.
|
||||
(let ((revision "1")
|
||||
(commit "8d45443bb5c9372b4c6a362ba2f443d41c5636af"))
|
||||
(package
|
||||
(name "ppp")
|
||||
(version (git-version "2.4.8" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/paulusmack/ppp")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"06cf8fb84l3h2zy5da4j7k2j1qjv2gfqn986sf43xgj75605aks2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
#:make-flags '("CC=gcc")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-Makefile
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(openssl (assoc-ref inputs "openssl"))
|
||||
(libpcap (assoc-ref inputs "libpcap")))
|
||||
(substitute* "pppd/Makefile.linux"
|
||||
(("/usr/include/crypt\\.h")
|
||||
(string-append libc "/include/crypt.h"))
|
||||
(("/usr/include/openssl")
|
||||
(string-append openssl "/include/openssl"))
|
||||
(("/usr/include/pcap-bpf.h")
|
||||
(string-append libpcap "/include/pcap-bpf.h")))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("libpcap" ,libpcap)
|
||||
("openssl" ,(@ (gnu packages tls) openssl))))
|
||||
(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
|
||||
and IPV6 and the protocols layered above them, such as TCP and UDP.")
|
||||
;; pppd, pppstats and pppdump are under BSD-style notices.
|
||||
;; some of the pppd plugins are GPL'd.
|
||||
;; chat is public domain.
|
||||
(license (list bsd-3 bsd-4 gpl2+ public-domain))))
|
||||
;; pppd, pppstats and pppdump are under BSD-style notices.
|
||||
;; some of the pppd plugins are GPL'd.
|
||||
;; chat is 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
|
||||
(package
|
||||
(name "scm")
|
||||
(version "5f2")
|
||||
(version "5f3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -763,7 +763,7 @@ utility functions for all standard Scheme implementations.")
|
|||
version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"050ijb51jm1cij9g3r89zl9rawsrikhbb5y8zb7lspb7bsxq5w99"))))
|
||||
"1jxxlhmgal26mpcl97kz37djkn97rfy9h5pvw0hah6f3f6w49j97"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -336,7 +336,7 @@ SDL.")
|
|||
"sdl-pango-api_additions.patch"
|
||||
"sdl-pango-blit_overflow.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-sans-serif.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
|
|
|
@ -391,7 +391,7 @@ written by Paul Haahr and Byron Rakitzis.")
|
|||
(with-directory-excursion bin
|
||||
(symlink "tcsh" "csh"))
|
||||
#t))))))
|
||||
(home-page "http://www.tcsh.org/")
|
||||
(home-page "https://www.tcsh.org/")
|
||||
(synopsis "Unix shell based on csh")
|
||||
(description
|
||||
"Tcsh is an enhanced, but completely compatible version of the Berkeley
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
|
||||
;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -104,14 +104,14 @@ complexity.")))
|
|||
(define-public s6
|
||||
(package
|
||||
(name "s6")
|
||||
(version "2.8.0.1")
|
||||
(version "2.9.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://skarnet.org/software/s6/s6-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1n1i3jm3kp9ii54cxj1sgh89m6nyna7vhy8714ma6py1frdqzq6v"))))
|
||||
(base32 "0mvcjrz8nlj9p2zclmcv22b4y6bqzd2iz38arhgc989vdvrbmkg0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("skalibs" ,skalibs)
|
||||
("execline" ,execline)))
|
||||
|
@ -179,14 +179,14 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
|
|||
(define-public s6-networking
|
||||
(package
|
||||
(name "s6-networking")
|
||||
(version "2.3.1.1")
|
||||
(version "2.3.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "127i7ig5wdgjbkjf0py0g96llc6cbxij22ns2j7bwa95figinhcx"))))
|
||||
(base32 "1029bgwfmv903y5ji93j75m7p2jgchdxya1khxzb42q2z7yxnlyr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("skalibs" ,skalibs)
|
||||
("execline" ,execline)
|
||||
|
@ -222,14 +222,14 @@ clock synchronization.")))
|
|||
(define-public s6-rc
|
||||
(package
|
||||
(name "s6-rc")
|
||||
(version "0.5.1.1")
|
||||
(version "0.5.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://skarnet.org/software/s6-rc/s6-rc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0lmg517l8inn7bi57q35rjd7b4jmqlmkhrbvs5ybbhinhd12qzi5"))))
|
||||
(base32 "18m8jsx3bkj566p6xwwnsvdckk10n8wqnhp0na2k88i295h4rnjp"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("skalibs" ,skalibs)
|
||||
("execline" ,execline)
|
||||
|
@ -263,7 +263,7 @@ environment.")))
|
|||
(define-public s6-portable-utils
|
||||
(package
|
||||
(name "s6-portable-utils")
|
||||
(version "2.2.2.1")
|
||||
(version "2.2.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -271,7 +271,7 @@ environment.")))
|
|||
"http://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "074kizkxjwvmxspxg69fr8r0lbiy61l2n5nzgbfvwvhc6lj34iqy"))))
|
||||
(base32 "1k3la37q46n93vjwk9wm9ym4w87z6lqzv43f03qd0vqj9k94mpv3"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("skalibs" ,skalibs)))
|
||||
(arguments
|
||||
|
@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere.")))
|
|||
(define-public s6-linux-init
|
||||
(package
|
||||
(name "s6-linux-init")
|
||||
(version "1.0.3.1")
|
||||
(version "1.0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(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-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1yq2xnp41a1lqpjzvq5jawgy64jwaxalvjdnlvgdpi9bkicgasi1"))))
|
||||
(base32 "176mgkqxlp6gb6my66dv73xsp7adfxbjp5hjyh35sykqkr4kfyfy"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("execline" ,execline)
|
||||
|
@ -340,7 +340,7 @@ all the details.")))
|
|||
(define-public s6-linux-utils
|
||||
(package
|
||||
(name "s6-linux-utils")
|
||||
(version "2.5.1.1")
|
||||
(version "2.5.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -348,7 +348,7 @@ all the details.")))
|
|||
"http://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "00nw2phd9prgv29hzqzwjnh4y0ivkzhx3srn6n1rlyr4ydhikxi5"))))
|
||||
(base32 "0w4jms9qyb5kx9zcyd3gzri60rrii2rbmh08s59ckg4awy27py86"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("skalibs" ,skalibs)))
|
||||
(arguments
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
("libpng" ,libpng)
|
||||
("pcre" ,pcre)
|
||||
("ncurses" ,ncurses)))
|
||||
(home-page "http://www.jedsoft.org/slang/")
|
||||
(home-page "https://www.jedsoft.org/slang/")
|
||||
(synopsis "Library for interactive applications and extensibility")
|
||||
(description
|
||||
"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, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; 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 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
|
@ -149,13 +149,13 @@ sources.")
|
|||
(define-public python-sphinxcontrib-applehelp
|
||||
(package
|
||||
(name "python-sphinxcontrib-applehelp")
|
||||
(version "1.0.1")
|
||||
(version "1.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sphinxcontrib-applehelp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"15rqmgphj4wqf4m5wnzxgmwxx5jwfzb0j0nb94ql0x5wnar0mapd"))))
|
||||
"0n5wrn4l7x6gxvi1g7c6y72hkxgc223axz1jykipaxhfr1g76wm0"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||
|
@ -195,13 +195,13 @@ to code blocks.")
|
|||
(define-public python-sphinxcontrib-devhelp
|
||||
(package
|
||||
(name "python-sphinxcontrib-devhelp")
|
||||
(version "1.0.1")
|
||||
(version "1.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sphinxcontrib-devhelp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0d2a57kqxl72i55rns0ly1i044y2x234b9sdi89ajc3kjdvv0r3c"))))
|
||||
"1r1qngsbjqbg4rj93kpj44qqy7n4x5khldkr0c3ffhlnggx1lzzz"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||
|
@ -215,13 +215,13 @@ to code blocks.")
|
|||
(define-public python-sphinxcontrib-htmlhelp
|
||||
(package
|
||||
(name "python-sphinxcontrib-htmlhelp")
|
||||
(version "1.0.2")
|
||||
(version "1.0.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sphinxcontrib-htmlhelp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08l4x8a2l4xjqdd5rhvmfsqihmlgg4prdayj9b6pigaii6gzjw26"))))
|
||||
"16v5jdnibwrqjdr5aqchgyzpwy3rgamwhdf4kidv5nxj65zbpxg8"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
(package
|
||||
(name "python-sphinxcontrib-qthelp")
|
||||
(version "1.0.2")
|
||||
(version "1.0.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sphinxcontrib-qthelp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vs09m6kf5vhiivpi5s5pks59iq0lqlsbkdycpqlysg53bhmqikr"))))
|
||||
"0wjsp96d262shzkx7pb7pra7mmf0j8c5rz56i6x0vdsqw1z7ccsc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;XXX: circular dependency on Sphinx
|
||||
|
@ -320,13 +320,13 @@ documents.")
|
|||
(define-public python-sphinxcontrib-serializinghtml
|
||||
(package
|
||||
(name "python-sphinxcontrib-serializinghtml")
|
||||
(version "1.1.3")
|
||||
(version "1.1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sphinxcontrib-serializinghtml" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09sj3nwahwr4iymg86gczbh151cfczqhf2kclbblzh2jh0zv7vy0"))))
|
||||
"1g3pbx0g88zd9xzcrbaypa2k60axrh92vf5j76wsk0p9hv6fr87a"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
(package
|
||||
(name "python-sphinxcontrib-websupport")
|
||||
(version "1.1.0")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sphinxcontrib-websupport" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x"))))
|
||||
"1smma7r0rhwcmbfvvkfs5djfz1qm8wbpcvp084ca6dmw2b9zplxs"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; 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
Reference in New Issue