Merge branch 'master' into ungrafting
This commit is contained in:
commit
a7737f0ead
@ -39,6 +39,7 @@ do_subst = $(SED) \
|
||||
-e 's,[@]GUILE[@],$(GUILE),g' \
|
||||
-e 's,[@]guilemoduledir[@],$(guilemoduledir),g' \
|
||||
-e 's,[@]guileobjectdir[@],$(guileobjectdir),g' \
|
||||
-e 's,[@]abs_top_builddir[@],$(abs_top_builddir),g' \
|
||||
-e 's,[@]localedir[@],$(localedir),g'
|
||||
|
||||
scripts/guix: scripts/guix.in Makefile
|
||||
|
@ -13,7 +13,7 @@ if test "x$guix_build_daemon" = "xyes"; then
|
||||
GUIX_ASSERT_CXX11
|
||||
|
||||
AC_PROG_RANLIB
|
||||
AC_CONFIG_HEADER([nix/config.h])
|
||||
AC_CONFIG_HEADERS([nix/config.h])
|
||||
|
||||
dnl Use 64-bit file system calls so that we can support files > 2 GiB.
|
||||
AC_SYS_LARGEFILE
|
||||
@ -34,7 +34,6 @@ if test "x$guix_build_daemon" = "xyes"; then
|
||||
dnl Look for SQLite, a required dependency.
|
||||
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19])
|
||||
|
||||
AC_DEFINE([NIX_VERSION], ["0.0.0"], [Fake Nix version number.])
|
||||
AC_DEFINE_UNQUOTED([SYSTEM], ["$guix_system"],
|
||||
[Guix host system type--i.e., platform and OS kernel tuple.])
|
||||
|
||||
|
12
configure.ac
12
configure.ac
@ -1,7 +1,7 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.68)
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([GNU Guix],
|
||||
[m4_esyscmd([build-aux/git-version-gen .tarball-version])],
|
||||
[bug-guix@gnu.org], [guix],
|
||||
@ -29,35 +29,35 @@ GUIX_ASSERT_SUPPORTED_SYSTEM
|
||||
AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = "xyes"])
|
||||
|
||||
AC_ARG_WITH(store-dir,
|
||||
AC_HELP_STRING([--with-store-dir=PATH],
|
||||
AS_HELP_STRING([--with-store-dir=PATH],
|
||||
[file name of the store (defaults to /gnu/store)]),
|
||||
[storedir="$withval"],
|
||||
[storedir="/gnu/store"])
|
||||
AC_SUBST(storedir)
|
||||
|
||||
AC_ARG_WITH([bash-completion-dir],
|
||||
AC_HELP_STRING([--with-bash-completion-dir=DIR],
|
||||
AS_HELP_STRING([--with-bash-completion-dir=DIR],
|
||||
[name of the Bash completion directory]),
|
||||
[bashcompletiondir="$withval"],
|
||||
[bashcompletiondir='${sysconfdir}/bash_completion.d'])
|
||||
AC_SUBST([bashcompletiondir])
|
||||
|
||||
AC_ARG_WITH([zsh-completion-dir],
|
||||
AC_HELP_STRING([--with-zsh-completion-dir=DIR],
|
||||
AS_HELP_STRING([--with-zsh-completion-dir=DIR],
|
||||
[name of the Zsh completion directory]),
|
||||
[zshcompletiondir="$withval"],
|
||||
[zshcompletiondir='${datadir}/zsh/site-functions'])
|
||||
AC_SUBST([zshcompletiondir])
|
||||
|
||||
AC_ARG_WITH([fish-completion-dir],
|
||||
AC_HELP_STRING([--with-fish-completion-dir=DIR],
|
||||
AS_HELP_STRING([--with-fish-completion-dir=DIR],
|
||||
[name of the Fish completion directory]),
|
||||
[fishcompletiondir="$withval"],
|
||||
[fishcompletiondir='${datadir}/fish/vendor_completions.d'])
|
||||
AC_SUBST([fishcompletiondir])
|
||||
|
||||
AC_ARG_WITH([selinux-policy-dir],
|
||||
AC_HELP_STRING([--with-selinux-policy-dir=DIR],
|
||||
AS_HELP_STRING([--with-selinux-policy-dir=DIR],
|
||||
[name of the SELinux policy directory]),
|
||||
[selinux_policydir="$withval"],
|
||||
[selinux_policydir='${datadir}/selinux/'])
|
||||
|
@ -11291,6 +11291,25 @@ in Guix.
|
||||
@cindex OCaml
|
||||
Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package
|
||||
repository used by the OCaml community.
|
||||
|
||||
Additional options include:
|
||||
|
||||
@table @code
|
||||
@item --recursive
|
||||
@itemx -r
|
||||
Traverse the dependency graph of the given upstream package recursively
|
||||
and generate package expressions for all those packages that are not yet
|
||||
in Guix.
|
||||
@item --repo
|
||||
Select the given repository (a repository name). Possible values include:
|
||||
@itemize
|
||||
@item @code{opam}, the default opam repository,
|
||||
@item @code{coq} or @code{coq-released}, the stable repository for coq packages,
|
||||
@item @code{coq-core-dev}, the repository that contains development versions of coq,
|
||||
@item @code{coq-extra-dev}, the repository that contains development versions
|
||||
of coq packages.
|
||||
@end itemize
|
||||
@end table
|
||||
@end table
|
||||
|
||||
The structure of the @command{guix import} code is modular. It would be
|
||||
@ -15334,6 +15353,14 @@ The TCP port to listen for connections.
|
||||
The host (and thus, network interface) to listen to. Use
|
||||
@code{"0.0.0.0"} to listen on all the network interfaces.
|
||||
|
||||
@item @code{advertise?} (default: @code{#f})
|
||||
When true, advertise the service on the local network @i{via} the DNS-SD
|
||||
protocol, using Avahi.
|
||||
|
||||
This allows neighboring Guix devices with discovery on (see
|
||||
@code{guix-configuration} above) to discover this @command{guix publish}
|
||||
instance and to automatically download substitutes from it.
|
||||
|
||||
@item @code{compression} (default: @code{'(("gzip" 3))})
|
||||
This is a list of compression method/level tuple used when compressing
|
||||
substitutes. For example, to compress all substitutes with @emph{both} lzip
|
||||
@ -25695,6 +25722,9 @@ Owner's group of the @code{cuirass} process.
|
||||
Number of seconds between the poll of the repositories followed by the
|
||||
Cuirass jobs.
|
||||
|
||||
@item @code{queue-size} (default: @code{1})
|
||||
Size of the database writer queue.
|
||||
|
||||
@item @code{database} (default: @code{"/var/lib/cuirass/cuirass.db"})
|
||||
Location of sqlite database which contains the build results and previously
|
||||
added specifications.
|
||||
|
@ -167,7 +167,9 @@
|
||||
(process (fork execmem setrlimit setpgid setsched)))
|
||||
(allow guix_daemon_t
|
||||
guix_daemon_exec_t
|
||||
(file (execute execute_no_trans read open entrypoint map)))
|
||||
(file (execute
|
||||
execute_no_trans read write open entrypoint map
|
||||
getattr link unlink)))
|
||||
|
||||
;; TODO: unknown
|
||||
(allow guix_daemon_t
|
||||
|
26
etc/news.scm
26
etc/news.scm
@ -20,6 +20,7 @@
|
||||
(entry (commit "79f9dee3c4c0e6d21066f142116a537207ae7ba4")
|
||||
(title (en "Local substitute servers discovery is now supported")
|
||||
(de "Substitutserver können jetzt im lokalen Netz erkannt werden")
|
||||
(es "Los servidores de sustituciones se pueden descubrir localmente")
|
||||
(fr "La découverte des serveurs de substituts locaux est désormais supportée"))
|
||||
(body
|
||||
(en "The @command{guix-daemon} can now discover local substitute
|
||||
@ -34,6 +35,12 @@ gefunden, die mit der Befehlszeilenoption @option{--advertise} gestartet
|
||||
wurden. Die Ermittlung im Netzwerk verfügbarer Substitutserver baut auf den
|
||||
Protokollen mDNS und DNS-SD auf. Derzeit wird dazu die Bibliothek Guile-Avahi
|
||||
benutzt.")
|
||||
(es "El daemon @command{guix-daemon} ahora puede descubrir servidores
|
||||
de sustituciones locales cuando se le proporciona la opción
|
||||
@option{--discover}. Únicamente se descubrirán los servidores de
|
||||
sustituciones que se hayan arrancado con la opción @option{--advertise}. La
|
||||
búsqueda en la red se basa en los protocolos mDNS y DNS-SD, actualmente
|
||||
mediante el uso de la biblioteca Guile-Avahi.")
|
||||
(fr "Le @command{guix-daemon} peut désormais découvrir les serveurs
|
||||
de substituts locaux lorsque l'option @option{--discover} est passée. Seuls
|
||||
les serveurs de substituts démarrés avec l'option @option{--advertise} seront
|
||||
@ -42,7 +49,8 @@ l'instant grâce à la librairie Guile-Avahi.")))
|
||||
|
||||
(entry (commit "a9a2fdaabcc78e7a54d9a6bcfa4ee3de308e9a90")
|
||||
(title (en "Logical Volume Manager (LVM) now supported on Guix System")
|
||||
(de "Logical Volume Manager (LVM) wird jetzt auf Guix System unterstützt"))
|
||||
(de "Logical Volume Manager (LVM) wird jetzt auf Guix System unterstützt")
|
||||
(es "El sistema Guix ahora implementa también volúmenes lógicos LVM"))
|
||||
(body
|
||||
(en "On Guix System, the new @code{lvm-device-mapping} variable
|
||||
allows you to declare ``mapped devices'' for LVM, the Linux Logical Volume
|
||||
@ -70,7 +78,21 @@ Datenträgergruppe (Volume Group) „vg0“ wie folgt deklariert werden:
|
||||
(type lvm-device-mapping))
|
||||
@end lisp
|
||||
|
||||
Siehe @command{info \"(guix.de) Zugeordnete Geräte\"} für nähere Informationen.")))
|
||||
Siehe @command{info \"(guix.de) Zugeordnete Geräte\"} für nähere Informationen.")
|
||||
(es "En el sistema Guix, la nueva variable @code{lvm-device-mapping}
|
||||
le permite declarar «dispositivos traducidos» para LVM, el gestor de volúmenes
|
||||
lógicos de Linux. A continuación se muestra un ejemplo con la declaración de
|
||||
los volúmenes lógicos «alfa» y «beta» del grupo de volúmenes «vg0»:
|
||||
|
||||
@lisp
|
||||
(mapped-device
|
||||
(source \"vg0\")
|
||||
(target (list \"vg0-alfa\" \"vg0-beta\"))
|
||||
(type lvm-device-mapping))
|
||||
@end lisp
|
||||
|
||||
Véase @command{info \"(guix.es) Dispositivos traducidos\"} para obtener más
|
||||
información.")))
|
||||
|
||||
(entry (commit "3b6e4e5fd05e72b8a32ff1a2d5e21464260e21e6")
|
||||
(title (en "List of substitute keys is now declarative on Guix System")
|
||||
|
@ -266,6 +266,13 @@ selected keymap."
|
||||
(compute (lambda _
|
||||
((installer-network-page current-installer)))))
|
||||
|
||||
;; Ask whether to enable substitute server discovery.
|
||||
(installer-step
|
||||
(id 'substitutes)
|
||||
(description (G_ "Substitute server discovery"))
|
||||
(compute (lambda _
|
||||
((installer-substitutes-page current-installer)))))
|
||||
|
||||
;; Prompt for users (name, group and home directory).
|
||||
(installer-step
|
||||
(id 'user)
|
||||
|
@ -30,6 +30,7 @@
|
||||
#:use-module (gnu installer newt page)
|
||||
#:use-module (gnu installer newt partition)
|
||||
#:use-module (gnu installer newt services)
|
||||
#:use-module (gnu installer newt substitutes)
|
||||
#:use-module (gnu installer newt timezone)
|
||||
#:use-module (gnu installer newt user)
|
||||
#:use-module (gnu installer newt utils)
|
||||
@ -101,6 +102,9 @@ problem. The backtrace is displayed below. Please report it by email to \
|
||||
(define (network-page)
|
||||
(run-network-page))
|
||||
|
||||
(define (substitutes-page)
|
||||
(run-substitutes-page))
|
||||
|
||||
(define (hostname-page)
|
||||
(run-hostname-page))
|
||||
|
||||
@ -130,6 +134,7 @@ problem. The backtrace is displayed below. Please report it by email to \
|
||||
(locale-page locale-page)
|
||||
(menu-page menu-page)
|
||||
(network-page network-page)
|
||||
(substitutes-page substitutes-page)
|
||||
(timezone-page timezone-page)
|
||||
(hostname-page hostname-page)
|
||||
(user-page user-page)
|
||||
|
43
gnu/installer/newt/substitutes.scm
Normal file
43
gnu/installer/newt/substitutes.scm
Normal file
@ -0,0 +1,43 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Mathieu Othacehe <othacehe@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 newt substitutes)
|
||||
#:use-module (gnu installer substitutes)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (newt)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (run-substitutes-page))
|
||||
|
||||
(define* (run-substitutes-page)
|
||||
(match (current-clients)
|
||||
(()
|
||||
(case (choice-window
|
||||
(G_ "Substitute server discovery.")
|
||||
(G_ "Enable") (G_ "Disable")
|
||||
(G_ " By turning this option on, you allow Guix to fetch \
|
||||
substitutes (pre-built binaries) during installation from servers \
|
||||
discovered on your local area network (LAN) in addition to the official \
|
||||
server. This can increase download throughput.
|
||||
|
||||
There are no security risks: only genuine substitutes may be retrieved from \
|
||||
those servers. However, eavesdroppers on your LAN may be able to see what \
|
||||
software you are installing."))
|
||||
((1) (enable-discovery))
|
||||
((2) (disable-discovery))))
|
||||
(_ #f)))
|
@ -17,15 +17,11 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu installer proxy)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu services herd)
|
||||
#:export (set-http-proxy
|
||||
clear-http-proxy))
|
||||
|
||||
(define-syntax-rule (with-silent-shepherd exp ...)
|
||||
(parameterize ((shepherd-message-port
|
||||
(%make-void-port "w")))
|
||||
exp ...))
|
||||
|
||||
(define (set-http-proxy proxy)
|
||||
(with-silent-shepherd
|
||||
(with-shepherd-action 'guix-daemon
|
||||
|
@ -33,6 +33,7 @@
|
||||
installer-locale-page
|
||||
installer-menu-page
|
||||
installer-network-page
|
||||
installer-substitutes-page
|
||||
installer-timezone-page
|
||||
installer-hostname-page
|
||||
installer-user-page
|
||||
@ -73,6 +74,8 @@
|
||||
(menu-page installer-menu-page)
|
||||
;; procedure void -> void
|
||||
(network-page installer-network-page)
|
||||
;; procedure void -> void
|
||||
(substitutes-page installer-substitutes-page)
|
||||
;; procedure (zonetab) -> posix-timezone
|
||||
(timezone-page installer-timezone-page)
|
||||
;; procedure void -> void
|
||||
|
@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -93,11 +93,7 @@
|
||||
(system-service
|
||||
(name (G_ "OpenSSH secure shell daemon (sshd)"))
|
||||
(type 'networking)
|
||||
(snippet '((service openssh-service-type
|
||||
(openssh-configuration
|
||||
;; Currently the default is #t but it's considered
|
||||
;; unsafe. Explicitly pass #f.
|
||||
(password-authentication? #f))))))
|
||||
(snippet '((service openssh-service-type))))
|
||||
(system-service
|
||||
(name (G_ "Tor anonymous network router"))
|
||||
(type 'networking)
|
||||
|
41
gnu/installer/substitutes.scm
Normal file
41
gnu/installer/substitutes.scm
Normal file
@ -0,0 +1,41 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu installer substitutes)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu services herd)
|
||||
#:export (enable-discovery
|
||||
disable-discovery))
|
||||
|
||||
(define (enable-discovery)
|
||||
(with-silent-shepherd
|
||||
(with-shepherd-action 'guix-daemon
|
||||
('discover "on")
|
||||
result
|
||||
result)))
|
||||
|
||||
(define (disable-discovery)
|
||||
(with-silent-shepherd
|
||||
(with-shepherd-action 'guix-daemon
|
||||
('discover "off")
|
||||
result
|
||||
result)))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'with-silent-shepherd 'scheme-indent-function 0)
|
||||
;; End:
|
@ -18,6 +18,7 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu installer utils)
|
||||
#:use-module (gnu services herd)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix i18n)
|
||||
@ -43,7 +44,9 @@
|
||||
with-server-socket
|
||||
current-server-socket
|
||||
current-clients
|
||||
send-to-clients))
|
||||
send-to-clients
|
||||
|
||||
with-silent-shepherd))
|
||||
|
||||
(define* (read-lines #:optional (port (current-input-port)))
|
||||
"Read lines from PORT and return them as a list."
|
||||
@ -233,3 +236,9 @@ accepting socket."
|
||||
|
||||
(current-clients (reverse remainder))
|
||||
exp)
|
||||
|
||||
(define-syntax-rule (with-silent-shepherd exp ...)
|
||||
"Evaluate EXP while discarding shepherd messages."
|
||||
(parameterize ((shepherd-message-port
|
||||
(%make-void-port "w")))
|
||||
exp ...))
|
||||
|
@ -205,6 +205,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/erlang.scm \
|
||||
%D%/packages/fabric-management.scm \
|
||||
%D%/packages/fcitx.scm \
|
||||
%D%/packages/fcitx5.scm \
|
||||
%D%/packages/figlet.scm \
|
||||
%D%/packages/file.scm \
|
||||
%D%/packages/file-systems.scm \
|
||||
@ -716,6 +717,7 @@ INSTALLER_MODULES = \
|
||||
%D%/installer/record.scm \
|
||||
%D%/installer/services.scm \
|
||||
%D%/installer/steps.scm \
|
||||
%D%/installer/substitutes.scm \
|
||||
%D%/installer/tests.scm \
|
||||
%D%/installer/timezone.scm \
|
||||
%D%/installer/user.scm \
|
||||
@ -732,6 +734,7 @@ INSTALLER_MODULES = \
|
||||
%D%/installer/newt/page.scm \
|
||||
%D%/installer/newt/partition.scm \
|
||||
%D%/installer/newt/services.scm \
|
||||
%D%/installer/newt/substitutes.scm \
|
||||
%D%/installer/newt/timezone.scm \
|
||||
%D%/installer/newt/user.scm \
|
||||
%D%/installer/newt/utils.scm \
|
||||
@ -856,7 +859,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
|
||||
%D%/packages/patches/blender-2.79-python-3.8-fix.patch \
|
||||
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
|
||||
%D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \
|
||||
%D%/packages/patches/byobu-writable-status.patch \
|
||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||
%D%/packages/patches/calibre-remove-test-sqlite.patch \
|
||||
@ -1223,7 +1225,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/kmail-Fix-missing-link-libraries.patch \
|
||||
%D%/packages/patches/kmod-module-directory.patch \
|
||||
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
|
||||
%D%/packages/patches/knot-resolver-fix-map-command-on-32-bit.patch \
|
||||
%D%/packages/patches/kpackage-allow-external-paths.patch \
|
||||
%D%/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch \
|
||||
%D%/packages/patches/kmplayer-aarch64.patch \
|
||||
@ -1437,6 +1438,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/pam-krb5-CVE-2020-10595.patch \
|
||||
%D%/packages/patches/pango-skip-libthai-test.patch \
|
||||
%D%/packages/patches/pciutils-hurd-configure.patch \
|
||||
%D%/packages/patches/pciutils-hurd-fix.patch \
|
||||
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
|
||||
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
|
||||
%D%/packages/patches/samba-fix-fcntl-hint-detection.patch \
|
||||
@ -1571,6 +1573,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/rct-add-missing-headers.patch \
|
||||
%D%/packages/patches/readline-link-ncurses.patch \
|
||||
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
|
||||
%D%/packages/patches/renpy-use-system-fribidi.patch \
|
||||
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
|
||||
%D%/packages/patches/r-httpuv-1.5.4-unvendor-libuv.patch \
|
||||
%D%/packages/patches/ri-li-modernize_cpp.patch \
|
||||
@ -1599,7 +1602,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
|
||||
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \
|
||||
%D%/packages/patches/sbcl-clml-fix-types.patch \
|
||||
%D%/packages/patches/sbcl-geco-fix-organism-class.patch \
|
||||
%D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \
|
||||
%D%/packages/patches/scheme48-tests.patch \
|
||||
%D%/packages/patches/scotch-build-parallelism.patch \
|
||||
|
@ -515,7 +515,7 @@ or via the @code{facter} Ruby library.")
|
||||
(define-public htop
|
||||
(package
|
||||
(name "htop")
|
||||
(version "3.0.2")
|
||||
(version "3.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -523,7 +523,7 @@ or via the @code{facter} Ruby library.")
|
||||
(url "https://github.com/htop-dev/htop")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "1qmqhbnc5yw4brd24yrp85k09770c1c00nl03mkv5pdz2bvqivk7"))
|
||||
(base32 "0ylig6g2w4r3qfb16cf922iriqyn64frkzpk87vpga16kclvf08y"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
@ -43,7 +43,7 @@
|
||||
#:use-module (ice-9 match)
|
||||
#:export (autoconf-wrapper))
|
||||
|
||||
(define-public autoconf
|
||||
(define-public autoconf-2.69
|
||||
(package
|
||||
(name "autoconf")
|
||||
(version "2.69")
|
||||
@ -103,6 +103,39 @@ scripts are self-contained and portable, freeing the user from needing to
|
||||
know anything about Autoconf or M4.")
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
||||
|
||||
(define-public autoconf-2.70
|
||||
(package
|
||||
(inherit autoconf-2.69)
|
||||
(version "2.70")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/autoconf/autoconf-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ipckz0wr2mvhj9n3ys54fmf2aksin6bhqvzl304bn6rc1w257ps"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments autoconf-2.69)
|
||||
((#:tests? _ #f)
|
||||
;; FIXME: To run the test suite, fix all the instances where scripts
|
||||
;; generates "#! /bin/sh" shebangs.
|
||||
#f)
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'prepare-tests
|
||||
(lambda _
|
||||
(for-each patch-shebang
|
||||
(append (find-files "tests"
|
||||
(lambda (file stat)
|
||||
(executable-file? file)))
|
||||
(find-files "bin"
|
||||
(lambda (file stat)
|
||||
(executable-file? file)))))
|
||||
#t))))))))
|
||||
|
||||
(define-public autoconf autoconf-2.69)
|
||||
|
||||
(define-public autoconf-2.68
|
||||
(package (inherit autoconf)
|
||||
(version "2.68")
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* GNU Guix --- Functional package management for GNU
|
||||
Copyright 1996-1997,2000-2001,2006,2008,2011,2013,2018
|
||||
Copyright 1996-1997,2000-2001,2006,2008,2011,2013,2018,2020
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
@ -19,14 +19,47 @@
|
||||
along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* This file implements a variant of the 'guile' executable that does not
|
||||
complain about locale issues. */
|
||||
complain about locale issues and arranges to reduce startup time by
|
||||
ignoring GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH until it has
|
||||
booted. */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <locale.h>
|
||||
#include <libguile.h>
|
||||
|
||||
/* Saved values of GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH. */
|
||||
static const char *load_path, *load_compiled_path;
|
||||
|
||||
static void
|
||||
inner_main (void *unused, int argc, char **argv)
|
||||
{
|
||||
if (load_path != NULL)
|
||||
{
|
||||
setenv ("GUILE_LOAD_PATH", load_path, 1);
|
||||
SCM load_path_var =
|
||||
scm_c_public_lookup ("guile", "%load-path");
|
||||
SCM addition =
|
||||
scm_parse_path (scm_from_locale_string (load_path), SCM_EOL);
|
||||
scm_variable_set_x (load_path_var,
|
||||
scm_append
|
||||
(scm_list_2 (scm_variable_ref (load_path_var),
|
||||
addition)));
|
||||
}
|
||||
|
||||
if (load_compiled_path != NULL)
|
||||
{
|
||||
setenv ("GUILE_LOAD_COMPILED_PATH", load_compiled_path, 1);
|
||||
SCM load_compiled_path_var =
|
||||
scm_c_public_lookup ("guile", "%load-compiled-path");
|
||||
SCM addition =
|
||||
scm_parse_path (scm_from_locale_string (load_compiled_path), SCM_EOL);
|
||||
scm_variable_set_x (load_compiled_path_var,
|
||||
scm_append
|
||||
(scm_list_2 (scm_variable_ref (load_compiled_path_var),
|
||||
addition)));
|
||||
}
|
||||
|
||||
scm_shell (argc, argv);
|
||||
}
|
||||
|
||||
@ -40,6 +73,15 @@ main (int argc, char **argv)
|
||||
which is always preferable over the C locale. */
|
||||
setlocale (LC_ALL, "en_US.utf8");
|
||||
|
||||
const char *str;
|
||||
str = getenv ("GUILE_LOAD_PATH");
|
||||
load_path = str != NULL ? strdup (str) : NULL;
|
||||
str = getenv ("GUILE_LOAD_COMPILED_PATH");
|
||||
load_compiled_path = str ? strdup (str) : NULL;
|
||||
|
||||
unsetenv ("GUILE_LOAD_PATH");
|
||||
unsetenv ("GUILE_LOAD_COMPILED_PATH");
|
||||
|
||||
scm_install_gmp_memory_functions = 1;
|
||||
scm_boot_guile (argc, argv, inner_main, 0);
|
||||
return 0; /* never reached */
|
||||
|
@ -696,50 +696,6 @@ to not fully trusted targets. Borg is a fork of Attic.")
|
||||
(home-page "https://www.borgbackup.org/")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public attic
|
||||
(package
|
||||
(name "attic")
|
||||
(version "0.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Attic" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; The tests assume they are run as root:
|
||||
;; https://github.com/jborg/attic/issues/7
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before
|
||||
'build 'set-openssl-prefix
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "ATTIC_OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("acl" ,acl)
|
||||
("openssl" ,openssl)
|
||||
("python-msgpack" ,python-msgpack)
|
||||
|
||||
;; Attic is probably incompatible with llfuse > 0.41.
|
||||
;; These links are to discussions of llfuse compatibility from
|
||||
;; the borg project. Borg is a recent fork of attic, and attic
|
||||
;; has not been updated since the fork, so it's likely that
|
||||
;; llfuse compatibility requirements are still the same.
|
||||
;; https://github.com/borgbackup/borg/issues/642
|
||||
;; https://github.com/borgbackup/borg/issues/643
|
||||
("python-llfuse" ,python-llfuse-0.41)))
|
||||
(synopsis "Deduplicating backup program")
|
||||
(description "Attic is a deduplicating backup program. The main goal of
|
||||
Attic is to provide an efficient and secure way to backup data. The data
|
||||
deduplication technique used makes Attic suitable for daily backups since only
|
||||
changes are stored.")
|
||||
(home-page "https://attic-backup.org/")
|
||||
(license license:bsd-3)
|
||||
(properties `((superseded . ,borg)))))
|
||||
|
||||
(define-public wimlib
|
||||
(package
|
||||
(name "wimlib")
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -22,6 +22,7 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages admin)
|
||||
@ -32,7 +33,7 @@
|
||||
(define-public busybox
|
||||
(package
|
||||
(name "busybox")
|
||||
(version "1.31.1")
|
||||
(version "1.32.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -40,10 +41,7 @@
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh"))
|
||||
(patches
|
||||
(search-patches
|
||||
"busybox-1.31.1-fix-build-with-glibc-2.31.patch"))))
|
||||
"12g63zsvzfz04wbyga8riyl8ils05riw4xf26cyiaasbs3qqfpf3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
@ -90,7 +88,7 @@
|
||||
;; true in guix build environment
|
||||
(substitute* "testsuite/pidof.tests"
|
||||
(("-s init") "-s $(cat /proc/1/comm)"))
|
||||
|
||||
|
||||
;; This test cannot possibly pass.
|
||||
;; It is trying to test that "which ls" returns "/bin/ls" when PATH is not set.
|
||||
;; However, this relies on /bin/ls existing. Which it does not in guix.
|
||||
@ -135,11 +133,11 @@ any small or embedded system.")
|
||||
"00aw9d809wj1bqlb2fsssdgz7rj0363ya14py0gfdm0rkp98zcpa"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-environment-variables
|
||||
(lambda _
|
||||
(setenv "CC" (which "gcc"))
|
||||
(setenv "CC" ,(cc-for-target))
|
||||
(setenv "HOSTCC" (which "gcc"))
|
||||
#t))
|
||||
(replace 'configure
|
||||
|
@ -68,8 +68,8 @@
|
||||
(file-name (string-append name "-" version "-checkout")))))))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "fd432b8e8f449d691773e96e7d90f44761e01aa3")
|
||||
(revision "55"))
|
||||
(let ((commit "697fa14584551d9595cd042f1ffeba240e45a127")
|
||||
(revision "56"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
@ -81,7 +81,7 @@
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10j3w3px0250avwry2x8wsa0m0plvm957g4qqgnajsbc9gvka554"))))
|
||||
"0gw9cja8fiyra9vnn3y384gwanvsqdq6gwjcvmz91sy5lvfwv34m"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
@ -94,7 +94,7 @@
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-repo-tests
|
||||
(λ _
|
||||
(lambda _
|
||||
;; Disable tests that use a connection to the Guix daemon.
|
||||
(substitute* "Makefile.am"
|
||||
(("tests/repo.scm \\\\") "\\"))
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1081,6 +1081,29 @@ standard library.")
|
||||
(description "Test CLI Applications.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-assert-cmd-0.9
|
||||
(package
|
||||
(inherit rust-assert-cmd-1)
|
||||
(name "rust-assert-cmd")
|
||||
(version "0.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "assert-cmd" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02gq7j9qzjkbyq4hk18cih3kylk3dyxwa2gc5k7lah9kdwkhrdn5"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-escargot" ,rust-escargot-0.3)
|
||||
("rust-predicates" ,rust-predicates-0.9)
|
||||
("rust-predicates-core" ,rust-predicates-core-0.9)
|
||||
("rust-predicates-tree" ,rust-predicates-tree-0.9))
|
||||
#:cargo-development-inputs
|
||||
(("rust-docmatic" ,rust-docmatic-0.1))))))
|
||||
|
||||
(define-public rust-assert-fs-0.11
|
||||
(package
|
||||
(name "rust-assert-fs")
|
||||
@ -1307,6 +1330,32 @@ methods.")
|
||||
"1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"))))
|
||||
(arguments '(#:skip-build? #t))))
|
||||
|
||||
(define-public rust-automod-1
|
||||
(package
|
||||
(name "rust-automod")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "automod" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z8kdbvvz0k8mfs45mvs16lr9xj59cdcp0sm45fawfh93gai4mhg"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-proc-macro2" ,rust-proc-macro2-1)
|
||||
("rust-quote" ,rust-quote-1)
|
||||
("rust-syn" ,rust-syn-1))
|
||||
;; Tests not included in tar.
|
||||
#:tests? #f))
|
||||
(home-page "https://github.com/dtolnay/automod")
|
||||
(synopsis "Pull in every source file in a directory as a module")
|
||||
(description "Pull in every source file in a directory as a module.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-average-0.10
|
||||
(package
|
||||
(name "rust-average")
|
||||
@ -1728,6 +1777,29 @@ tracebacks.")
|
||||
that uses Serde for transforming structs into bytes and vice versa!")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public rust-bincode-0.8
|
||||
(package
|
||||
(inherit rust-bincode-1)
|
||||
(name "rust-bincode")
|
||||
(version "0.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "bincode" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nbj0lwykwa1a7sa4303rxgpng9p2hcz9s5d5qcrckrpmcxjsjkf"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-byteorder" ,rust-byteorder-1)
|
||||
("rust-num-traits" ,rust-num-traits-0.1)
|
||||
("rust-serde" ,rust-serde-1))
|
||||
#:cargo-development-inputs
|
||||
(("rust-serde-bytes" ,rust-serde-bytes-0.10)
|
||||
("rust-serde-derive" ,rust-serde-derive-1))))))
|
||||
|
||||
(define-public rust-bindgen-0.55
|
||||
(package
|
||||
(name "rust-bindgen")
|
||||
@ -1967,6 +2039,41 @@ bindings to C and C++ libraries.")
|
||||
("rust-diff" ,rust-diff-0.1)
|
||||
("rust-shlex" ,rust-shlex-0.1))))))
|
||||
|
||||
(define-public rust-bindgen-0.46
|
||||
(package
|
||||
(inherit rust-bindgen-0.50)
|
||||
(name "rust-bindgen")
|
||||
(version "0.46.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "bindgen" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qclvj5pydn5camw396b0r3nz4nn3p5wpxg4fgg1favp043pyzwg"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-bitflags" ,rust-bitflags-1)
|
||||
("rust-cexpr" ,rust-cexpr-0.3)
|
||||
("rust-cfg-if" ,rust-cfg-if-0.1)
|
||||
("rust-clang-sys" ,rust-clang-sys-0.26)
|
||||
("rust-clap" ,rust-clap-2)
|
||||
("rust-env-logger" ,rust-env-logger-0.6)
|
||||
("rust-hashbrown" ,rust-hashbrown-0.1)
|
||||
("rust-lazy-static" ,rust-lazy-static-1)
|
||||
("rust-log" ,rust-log-0.4)
|
||||
("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
|
||||
("rust-proc-macro2" ,rust-proc-macro2-0.4)
|
||||
("rust-quote" ,rust-quote-0.6)
|
||||
("rust-regex" ,rust-regex-1)
|
||||
("rust-which" ,rust-which-2.0))
|
||||
#:cargo-development-inputs
|
||||
(("rust-clap" ,rust-clap-2)
|
||||
("rust-diff" ,rust-diff-0.1)
|
||||
("rust-shlex" ,rust-shlex-0.1))))) )
|
||||
|
||||
(define-public rust-bindgen-0.37
|
||||
(package
|
||||
(inherit rust-bindgen-0.50)
|
||||
@ -3217,6 +3324,32 @@ exposed as Reader/Writer streams.")
|
||||
"The ChaCha family of stream ciphers.")
|
||||
(license (list license:asl2.0 license:expat))))
|
||||
|
||||
(define-public rust-cachedir-0.1
|
||||
(package
|
||||
(name "rust-cachedir")
|
||||
(version "0.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "cachedir" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1j18j73fxrr82marcdrn86123vr9v5n0fgyjkf9mi9pzyk8hjrf0"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-tempfile" ,rust-tempfile-3))
|
||||
;; Tests require a mutable home directory and access to /var/tmp.
|
||||
#:tests? #f))
|
||||
(home-page "https://github.com/lilianmoraru/cachedir")
|
||||
(synopsis "Interact with cache directories and @file{CACHEDIR.TAG} files")
|
||||
(description
|
||||
"This package provides a library to help interacting with cache
|
||||
directories and @code{CACHEDIR.TAG} files.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-calloop-0.4
|
||||
(package
|
||||
(name "rust-calloop")
|
||||
@ -3599,6 +3732,32 @@ archive to be linked into Rustcode.")
|
||||
#:cargo-development-inputs
|
||||
(("rust-clang-sys" ,rust-clang-sys-0.11))))))
|
||||
|
||||
(define-public rust-cfg-if-1
|
||||
(package
|
||||
(name "rust-cfg-if")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "cfg-if" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
|
||||
("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
|
||||
(home-page "https://github.com/alexcrichton/cfg-if")
|
||||
(synopsis "Define an item depending on parameters")
|
||||
(description "This package provides a macro to ergonomically define an
|
||||
item depending on a large number of @code{#[cfg]} parameters. Structured like
|
||||
an @code{if-else} chain, the first matching branch is the item that gets
|
||||
emitted.")
|
||||
(license (list license:asl2.0 license:expat))))
|
||||
|
||||
(define-public rust-cfg-if-0.1
|
||||
(package
|
||||
(name "rust-cfg-if")
|
||||
@ -3627,7 +3786,7 @@ depending on a large number of #[cfg] parameters. Structured like an
|
||||
(define-public rust-chrono-0.4
|
||||
(package
|
||||
(name "rust-chrono")
|
||||
(version "0.4.13")
|
||||
(version "0.4.19")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -3636,28 +3795,30 @@ depending on a large number of #[cfg] parameters. Structured like an
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dm0q1kmk2vq5djwhp1j9cm4aa38wr9vy1i1w19p2y0nj4188kf7"))))
|
||||
"0wyfl6c00vhfl562spnfcna3zkw8jqvcp652m9iskhl8j26dc2k7"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:skip-build? #t
|
||||
#:cargo-inputs
|
||||
(("rust-num-integer" ,rust-num-integer-0.1)
|
||||
`(#:cargo-inputs
|
||||
(("rust-js-sys" ,rust-js-sys-0.3)
|
||||
("rust-libc" ,rust-libc-0.2)
|
||||
("rust-num-integer" ,rust-num-integer-0.1)
|
||||
("rust-num-traits" ,rust-num-traits-0.2)
|
||||
("rust-js-sys" ,rust-js-sys-0.3)
|
||||
("rust-pure-rust-locales" ,rust-pure-rust-locales-0.5)
|
||||
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
|
||||
("rust-serde" ,rust-serde-1)
|
||||
("rust-time" ,rust-time-0.1)
|
||||
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
|
||||
#:cargo-development-inputs
|
||||
(;("rust-bincode" ,rust-bincode-0.8)
|
||||
("rust-criterion" ,rust-criterion-0.2)
|
||||
(("rust-bincode" ,rust-bincode-0.8)
|
||||
("rust-criterion" ,rust-criterion-0.3)
|
||||
("rust-doc-comment" ,rust-doc-comment-0.3)
|
||||
("rust-num-iter" ,rust-num-iter-0.1)
|
||||
("rust-serde-derive" ,rust-serde-derive-1)
|
||||
("rust-serde-json" ,rust-serde-json-1)
|
||||
("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
|
||||
(home-page
|
||||
"https://github.com/chronotope/chrono")
|
||||
("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))
|
||||
#:features '("unstable-locales")
|
||||
#:tests? #f))
|
||||
(home-page "https://github.com/chronotope/chrono")
|
||||
(synopsis "Date and time library for Rust")
|
||||
(description "Date and time library for Rust.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
@ -6529,7 +6690,7 @@ error-chain.")
|
||||
(define-public rust-derive-more-0.99
|
||||
(package
|
||||
(name "rust-derive-more")
|
||||
(version "0.99.9")
|
||||
(version "0.99.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -6538,7 +6699,7 @@ error-chain.")
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xizcpj39rx0474mbbx8m0xww98qh92zsg82gf52qnvbryqri299"))))
|
||||
"131xrz5nmnh8zq3vcvv0wfpcaflypbxp3fin984fsqddc5hhxjs1"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; Some test files missing.
|
||||
@ -6896,6 +7057,28 @@ on Linux, the Known Folder API on Windows, and the Standard
|
||||
Directory guidelines on macOS.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-directories-next-1
|
||||
(package
|
||||
(inherit rust-directories-3)
|
||||
(name "rust-directories-next")
|
||||
(version "1.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "directories-next" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mmym1h9vlyapwlzygfas3q9mx03mki8cnf5y1bmr713q7mwqa4a"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-cfg-if" ,rust-cfg-if-1)
|
||||
("rust-dirs-sys" ,rust-dirs-sys-next-0.1))
|
||||
#:cargo-development-inputs
|
||||
(("rust-bencher" ,rust-bencher-0.1))))
|
||||
(home-page "https://github.com/xdg-rs/dirs/tree/master/directories")))
|
||||
|
||||
(define-public rust-dirs-3
|
||||
(package
|
||||
(name "rust-dirs")
|
||||
@ -6955,6 +7138,28 @@ standard locations of directories for config, cache and other data.")
|
||||
("rust-redox-users" ,rust-redox-users-0.3)
|
||||
("rust-winapi" ,rust-winapi-0.3))))))
|
||||
|
||||
(define-public rust-dirs-next-1
|
||||
(package
|
||||
(inherit rust-dirs-1.0)
|
||||
(name "rust-dirs-next")
|
||||
(version "1.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "dirs-next" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dl2dqzsrcb7qigfiwpdpakhdkpz0629pvylbj2ylyrkh1dfcdng"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-cfg-if" ,rust-cfg-if-1)
|
||||
("rust-dirs-sys" ,rust-dirs-sys-next-0.1))))
|
||||
(home-page "https://github.com/xdg-rs/dirs")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-dirs-sys-0.3
|
||||
(package
|
||||
(name "rust-dirs-sys")
|
||||
@ -6983,6 +7188,27 @@ standard locations of directories for config, cache and other data.")
|
||||
and @code{directories} crates.")
|
||||
(license (list license:asl2.0 license:expat))))
|
||||
|
||||
(define-public rust-dirs-sys-next-0.1
|
||||
(package
|
||||
(inherit rust-dirs-sys-0.3)
|
||||
(name "rust-dirs-sys-next")
|
||||
(version "0.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "dirs-sys-next" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zgy7is3h2dyf1l4sa7k065w2kvx0l12l40my4rswm2mc1gkdplr"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-libc" ,rust-libc-0.2)
|
||||
("rust-redox-users" ,rust-redox-users-0.3)
|
||||
("rust-winapi" ,rust-winapi-0.3))))
|
||||
(home-page "https://github.com/xdg-rs/dirs/tree/master/dirs-sys")))
|
||||
|
||||
(define-public rust-discard-1.0
|
||||
(package
|
||||
(name "rust-discard")
|
||||
@ -8306,6 +8532,54 @@ variables.")
|
||||
(description "Cargo API written in Paris.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-escargot-0.3
|
||||
(package
|
||||
(inherit rust-escargot-0.5)
|
||||
(name "rust-escargot")
|
||||
(version "0.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "escargot" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19fmn7bz1h6nlqy0mp825xwjwnrjn4xjdpwc06jl51j3fiz1znqr"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-serde" ,rust-serde-1)
|
||||
("rust-serde-json" ,rust-serde-json-1))))))
|
||||
|
||||
(define-public rust-exitfailure-0.5
|
||||
(package
|
||||
(name "rust-exitfailure")
|
||||
(version "0.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "exitfailure" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0585wix3b3pjjj90fkqj9x4ar46d24x82k8rdin3czzk5a1vvx9g"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-failure" ,rust-failure-0.1))
|
||||
#:cargo-development-inputs
|
||||
(("rust-assert-cmd" ,rust-assert-cmd-0.9)
|
||||
("rust-predicates" ,rust-predicates-0.9))
|
||||
;; Tests fail with "No such file or directory".
|
||||
#:tests? #f))
|
||||
(home-page "https://github.com/tismith/exitfailure")
|
||||
(synopsis "Provide @code{newtype} wrappers for using @code{?} in @code{main}")
|
||||
(description
|
||||
"This package provides a basic @code{newtype} wrappers to help with using
|
||||
@code{?} in @code{main}.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-expat-sys-2.1
|
||||
(package
|
||||
(name "rust-expat-sys")
|
||||
@ -8843,6 +9117,21 @@ streams.")
|
||||
(base32
|
||||
"03hmx3n48hjm0x1ig84n1j87kzp75lzr6cj1sgi6a6pykgn4n8km"))))))
|
||||
|
||||
(define-public rust-float-cmp-0.4
|
||||
(package
|
||||
(inherit rust-float-cmp-0.5)
|
||||
(name "rust-float-cmp")
|
||||
(version "0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "float-cmp" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0036jb8ry4h83n319jb20b5yvyfyq8mx8dkxnyjm22nq8fl8yjhk"))))))
|
||||
|
||||
(define-public rust-float-cmp-0.3
|
||||
(package
|
||||
(inherit rust-float-cmp-0.5)
|
||||
@ -11395,6 +11684,39 @@ hash map.")
|
||||
("rust-rustc-hash" ,rust-rustc-hash-1)
|
||||
("rust-serde-test" ,rust-serde-test-1))))))
|
||||
|
||||
(define-public rust-hashbrown-0.1
|
||||
(package
|
||||
(inherit rust-hashbrown-0.5)
|
||||
(name "rust-hashbrown")
|
||||
(version "0.1.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "hashbrown" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1np350nrzysy021ndn2135q5vpzrp5nli78ywz114d1vcnv2kbiv"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "Cargo.toml"
|
||||
(("~1.2") "1.2"))
|
||||
#t))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-byteorder" ,rust-byteorder-1)
|
||||
("rust-rayon" ,rust-rayon-1)
|
||||
("rust-scopeguard" ,rust-scopeguard-0.3)
|
||||
("rust-serde" ,rust-serde-1))
|
||||
#:cargo-development-inputs
|
||||
(("rust-lazy-static" ,rust-lazy-static-1)
|
||||
("rust-rand" ,rust-rand-0.5)
|
||||
("rust-rayon" ,rust-rayon-1)
|
||||
("rust-rustc-hash" ,rust-rustc-hash-1)
|
||||
("rust-serde-test" ,rust-serde-test-1))))))
|
||||
|
||||
(define-public rust-hashlink-0.6
|
||||
(package
|
||||
(name "rust-hashlink")
|
||||
@ -16959,6 +17281,21 @@ combinators library.")
|
||||
with all line endings.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public rust-normalize-line-endings-0.2
|
||||
(package
|
||||
(inherit rust-normalize-line-endings-0.3)
|
||||
(name "rust-normalize-line-endings")
|
||||
(version "0.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "normalize-line-endings" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a1knz9j1w5a1pl2q6whmjphm3z6p64r5njnam7syp5rx8wil2if"))))))
|
||||
|
||||
(define-public rust-notify-4
|
||||
(package
|
||||
(name "rust-notify")
|
||||
@ -20278,6 +20615,30 @@ dependency to expose a precomputed hash.")
|
||||
functions.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-predicates-0.9
|
||||
(package
|
||||
(inherit rust-predicates-1)
|
||||
(name "rust-predicates")
|
||||
(version "0.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "predicates" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"085ysw5iigw9l7fdy0pxqs7h165m9hxaxdknmkyq868izivpj7pk"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-difference" ,rust-difference-2)
|
||||
("rust-float-cmp" ,rust-float-cmp-0.4)
|
||||
("rust-normalize-line-endings" ,rust-normalize-line-endings-0.2)
|
||||
("rust-predicates-core" ,rust-predicates-core-0.9)
|
||||
("rust-regex" ,rust-regex-1))
|
||||
#:cargo-development-inputs
|
||||
(("rust-predicates-tree" ,rust-predicates-tree-0.9))))))
|
||||
|
||||
(define-public rust-predicates-core-1
|
||||
(package
|
||||
(name "rust-predicates-core")
|
||||
@ -20299,6 +20660,21 @@ functions.")
|
||||
"An API for boolean-valued predicate functions.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-predicates-core-0.9
|
||||
(package
|
||||
(inherit rust-predicates-core-1)
|
||||
(name "rust-predicates-core")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "predicates-core" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ig5wi3j2faxss6kshv5xdwnchiwbkq2fgx6v962mh6ij31hpy45"))))))
|
||||
|
||||
(define-public rust-predicates-tree-1
|
||||
(package
|
||||
(name "rust-predicates-tree")
|
||||
@ -20325,6 +20701,25 @@ functions.")
|
||||
"Render boolean-valued predicate functions results as a tree.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public rust-predicates-tree-0.9
|
||||
(package
|
||||
(inherit rust-predicates-tree-1)
|
||||
(name "rust-predicates-tree")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "predicates-tree" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ga0yyfmqbwi28naxlr6cvpmiig0qnwx5adc858hmjxxh6dxz1if"))))
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-predicates-core" ,rust-predicates-core-0.9)
|
||||
("rust-treeline" ,rust-treeline-0.1))))))
|
||||
|
||||
(define-public rust-pretty-assertions-0.6
|
||||
(package
|
||||
(name "rust-pretty-assertions")
|
||||
@ -21132,6 +21527,31 @@ compliant email address validation.")
|
||||
(description "This package provides a library for async wake signals.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public rust-pure-rust-locales-0.5
|
||||
(package
|
||||
(name "rust-pure-rust-locales")
|
||||
(version "0.5.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "pure-rust-locales" version))
|
||||
(file-name
|
||||
(string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ryjj0gs4hfadqx9vl4sgi32zyb2dlvwpxca1m1kmrw9hk1g7gv5"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-itertools" ,rust-itertools-0.8)
|
||||
("rust-nom" ,rust-nom-5))))
|
||||
(home-page "https://github.com/cecton/pure-rust-locales")
|
||||
(synopsis "Pure Rust locales imported directly from the GNU C Library")
|
||||
(description
|
||||
"Pure Rust locales imported directly from the GNU C Library.
|
||||
@code{LC_COLLATE} and @code{LC_CTYPE} are not yet supported.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public rust-quantiles-0.7
|
||||
(package
|
||||
(name "rust-quantiles")
|
||||
|
@ -54,6 +54,7 @@
|
||||
(package
|
||||
(name "curl")
|
||||
(version "7.73.0")
|
||||
(replacement curl-7.74.0)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
@ -150,6 +151,19 @@ tunneling, and so on.")
|
||||
(name "curl-minimal")
|
||||
(inputs (alist-delete "openldap" (package-inputs curl))))))
|
||||
|
||||
;; Replacement package to fix multiple security vulnerabilities.
|
||||
(define curl-7.74.0
|
||||
(package
|
||||
(inherit curl)
|
||||
(version "7.74.0")
|
||||
(source (origin
|
||||
(inherit (package-source curl))
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12w7gskrglg6qrmp822j37fmbr0icrcxv7rib1fy5xiw80n5z7cr"))))))
|
||||
|
||||
(define-public kurly
|
||||
(package
|
||||
(name "kurly")
|
||||
|
@ -1206,6 +1206,18 @@ pictures, sounds, or video.")
|
||||
|
||||
(define-public postgresql-10 postgresql)
|
||||
|
||||
(define-public postgresql-13
|
||||
(package
|
||||
(inherit postgresql)
|
||||
(version "13.1")
|
||||
(source (origin
|
||||
(inherit (package-source postgresql))
|
||||
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
|
||||
version "/postgresql-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j"))))))
|
||||
|
||||
(define-public postgresql-11
|
||||
(package
|
||||
(inherit postgresql)
|
||||
|
@ -937,17 +937,14 @@ synthesis, and on-the-fly re-configuration.")
|
||||
(define-public knot-resolver
|
||||
(package
|
||||
(name "knot-resolver")
|
||||
(version "5.2.0")
|
||||
(version "5.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
|
||||
"knot-resolver-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cwlipib3x88dr6cijqv2aps13b4ijv524wc85ns07rkldy2c948"))
|
||||
(patches
|
||||
(search-patches
|
||||
"knot-resolver-fix-map-command-on-32-bit.patch"))))
|
||||
"09jqy23q1pgj76y2qd1xfk72wwmypnyawm3span3gx00qi2bfdxa"))))
|
||||
(build-system meson-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
|
@ -7,6 +7,7 @@
|
||||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
|
||||
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -29,6 +30,7 @@
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system python)
|
||||
@ -314,6 +316,32 @@ e-books for convenient reading.")
|
||||
license:silofl1.1
|
||||
license:cc-by-sa3.0))))
|
||||
|
||||
(define-public ebook-tools
|
||||
(package
|
||||
(name "ebook-tools")
|
||||
(version "0.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/ebook-tools/ebook-tools/"
|
||||
version "/ebook-tools-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bi7wsz3p5slb43kj7lgb3r6lb91lvb6ldi556k4y50ix6b5khyb"))))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; No 'test' target
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libzip" ,libzip)
|
||||
("libxml2" ,libxml2)))
|
||||
(home-page "http://ebook-tools.sourceforge.net")
|
||||
(synopsis "Tools and library for dealing with various ebook file formats")
|
||||
(description "This package provides command-line tools and a library for
|
||||
accessing and converting various ebook file formats.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public liblinebreak
|
||||
(package
|
||||
(name "liblinebreak")
|
||||
|
@ -1810,7 +1810,8 @@ mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
|
||||
(base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("bluez" ,bluez)))
|
||||
`(("bluez" ,bluez)
|
||||
("dbus" ,dbus)))
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)))
|
||||
(home-page "https://gitlab.com/rstocker/emacs-bluetooth")
|
||||
@ -2764,20 +2765,21 @@ type, for example: packages, buffers, files, etc.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-guix
|
||||
(let ((commit "58a840d0671091e3064e36244790ef8839da87d6")
|
||||
(revision "2"))
|
||||
(let* ((commit "a694fdbcedb6edd2239a31d326e475c763ee32f8")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "emacs-guix")
|
||||
(version (git-version "0.5.2" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/emacs-guix/emacs-guix")
|
||||
;; TODO: Use the official version when it has a new home
|
||||
(url "https://github.com/jsoo1/guix.el")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"))))
|
||||
"1pqw7zbgxzwpig4xr0izc3z8h80c72i6bl5yi12br0d7aq6dbkvj"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
@ -2786,7 +2788,8 @@ type, for example: packages, buffers, files, etc.")
|
||||
("texinfo" ,texinfo)
|
||||
("emacs" ,emacs-minimal)))
|
||||
(inputs
|
||||
`(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
|
||||
`(("guile"
|
||||
,@(assoc-ref (package-native-inputs guix) "guile"))
|
||||
("guix" ,guix)))
|
||||
(propagated-inputs
|
||||
`(("geiser" ,emacs-geiser)
|
||||
@ -3245,7 +3248,7 @@ files and directories.")
|
||||
(define-public emacs-fountain-mode
|
||||
(package
|
||||
(name "emacs-fountain-mode")
|
||||
(version "3.3.0")
|
||||
(version "3.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -3254,7 +3257,7 @@ files and directories.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "04jrv6i4ah3i8c9hcd9wyaw2vrxr46f50qb9qwna2v7qa5vaway3"))))
|
||||
(base32 "095nrkg2bap6rcg9hy3bh0nis4v2f8w8d9hnahkzsa3njlpqa4ka"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/rnkn/fountain-mode")
|
||||
(synopsis "Major mode for screenwriting in Fountain markup")
|
||||
@ -4840,14 +4843,14 @@ source code using IPython.")
|
||||
(define-public emacs-debbugs
|
||||
(package
|
||||
(name "emacs-debbugs")
|
||||
(version "0.26")
|
||||
(version "0.27")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/debbugs-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32 "14n2rrs3ccvlp8fhxs08awlqdfawxwbj8nq1xpa0wwlbfvxnf24c"))))
|
||||
(base32 "1zn9p9vmfv5ihrp8d06b6abs48q225v42cgwa01s39hld6zg6wbv"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
|
||||
(propagated-inputs
|
||||
@ -6624,14 +6627,14 @@ board and goal value can be customized.")
|
||||
(define-public emacs-chess
|
||||
(package
|
||||
(name "emacs-chess")
|
||||
(version "2.0.4")
|
||||
(version "2.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/"
|
||||
"chess-" version ".tar"))
|
||||
(sha256
|
||||
(base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
|
||||
(base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -10264,6 +10267,30 @@ lists, and project planning with a fast and effective plain-text system.
|
||||
This package is equivalent to org-plus-contrib, but only includes additional
|
||||
files that you would find in @file{contrib/} from the git repository.")))
|
||||
|
||||
(define-public emacs-org-pretty-table
|
||||
;; There is no release yet.
|
||||
(let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-org-pretty-table")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Fuco1/org-pretty-table")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/Fuco1/org-pretty-table")
|
||||
(synopsis "Make tables in Org mode and OrgTbl mode prettier")
|
||||
(description
|
||||
"This package displays tables in Org mode and OrgTbl mode using Unicode
|
||||
characters.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-ob-sclang
|
||||
(package
|
||||
(inherit emacs-org-contrib)
|
||||
@ -15235,6 +15262,14 @@ and @code{erc-send-modify-hook} to download and show images.")
|
||||
(sha256
|
||||
(base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-require-cl
|
||||
(lambda _
|
||||
(substitute* "list-utils.el"
|
||||
(("\\(require 'cl\\)") "(require 'cl-lib)"))
|
||||
#t)))))
|
||||
(home-page "https://github.com/rolandwalker/list-utils")
|
||||
(synopsis "List-manipulation utility functions")
|
||||
(description "This package provides a list manipulation library for Emacs.")
|
||||
@ -21011,31 +21046,29 @@ and code peeking.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-lsp-ivy
|
||||
(let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-lsp-ivy")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emacs-lsp/lsp-ivy")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-ivy" ,emacs-ivy)
|
||||
("emacs-lsp-mode" ,emacs-lsp-mode)
|
||||
("emacs-dash" ,emacs-dash)))
|
||||
(home-page "https://github.com/emacs-lsp/lsp-ivy")
|
||||
(synopsis "Provide LSP-enhanced completion for symbols")
|
||||
(description
|
||||
"This package enhances @code{ivy} with completion for symbols from
|
||||
(package
|
||||
(name "emacs-lsp-ivy")
|
||||
(version "0.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emacs-lsp/lsp-ivy")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
("emacs-ivy" ,emacs-ivy)
|
||||
("emacs-lsp-mode" ,emacs-lsp-mode)))
|
||||
(home-page "https://github.com/emacs-lsp/lsp-ivy")
|
||||
(synopsis "Provide LSP-enhanced completion for symbols")
|
||||
(description
|
||||
"This package enhances @code{ivy} with completion for symbols from
|
||||
workspaces with a LSP-compliant server running.")
|
||||
(license license:gpl3+))))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-helm-lsp
|
||||
(let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
|
||||
@ -21946,8 +21979,8 @@ copied into @code{org-mode} buffers.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-dash-docs
|
||||
(let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
|
||||
(revision "1"))
|
||||
(let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-dash-docs")
|
||||
(version (git-version "1.4.0" revision commit))
|
||||
@ -21960,7 +21993,7 @@ copied into @code{org-mode} buffers.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
|
||||
"0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)))
|
||||
@ -22680,10 +22713,10 @@ it forcibly
|
||||
(lambda _
|
||||
(invoke "makeinfo" "elpher.texi"))))))
|
||||
(home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
|
||||
(synopsis "Gopher client for Emacs")
|
||||
(description "Elpher is a full-featured gopher client for Emacs. Its
|
||||
features include intuitive keyboard and mouse-driven browsing, out-of-the-box
|
||||
compatibility with evil-mode, clickable web and gopher links in plain text,
|
||||
(synopsis "Gopher and gemini client for Emacs")
|
||||
(description "Elpher is a full-featured gopher and gemini client for
|
||||
Emacs. Its features include intuitive keyboard and mouse-driven browsing,
|
||||
out-of-the-box compatibility with evil-mode, clickable links in plain text,
|
||||
caching of visited sites, pleasant and configurable visualization of Gopher
|
||||
directories, direct visualisation of image files, jumping directly to links by
|
||||
name (with autocompletion), a simple bookmark management system and
|
||||
@ -23536,6 +23569,30 @@ Google guidelines.")
|
||||
fish-completion. It can be used in both Eshell and M-x shell.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-helm-switch-to-repl
|
||||
(package
|
||||
(name "emacs-helm-switch-to-repl")
|
||||
(version "0.1.0")
|
||||
(home-page "https://github.com/emacs-helm/helm-switch-to-repl")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0n19brymwnawhi0y10m54cas3qg64pmkqq1ajvjw1rfibmw3n6nk"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("helm" ,emacs-helm)))
|
||||
(synopsis "Helm action to switch directory in Emacs REPLs")
|
||||
(description "Helm \"Switch-to-REPL\" offers the
|
||||
@code{helm-switch-to-repl} action, a generalized and extensible version of
|
||||
@code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
|
||||
other @code{helm-type-file} sources such as @code{helm-locate}.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-telega
|
||||
;; This package has versions newer than indicated on MELPA.
|
||||
;; Get the current version from `telega-version` in telega.el.
|
||||
@ -24816,7 +24873,7 @@ variables.")
|
||||
(define-public emacs-company-emoji
|
||||
(package
|
||||
(name "emacs-company-emoji")
|
||||
(version "2.5.2")
|
||||
(version "2.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -24825,7 +24882,7 @@ variables.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
|
||||
(base32 "0pa67yfcr8lrxdbvln8hs663gsxz38ggwpva7121ngascqgx42wp"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-company" ,emacs-company)))
|
||||
@ -25768,3 +25825,67 @@ anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
|
||||
you to easily restore one or more frames, including their windows, the
|
||||
windows' layout, and their buffers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-smart-hungry-delete
|
||||
(let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
|
||||
(package
|
||||
(name "emacs-smart-hungry-delete")
|
||||
(version "0.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
|
||||
(synopsis "Smart hungry deletion of whitespace")
|
||||
(description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
|
||||
between cursor and next word, parenthesis or delimiter while honoring some
|
||||
rules about where space should be left to separate words and parentheses.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public emacs-webpaste
|
||||
(package
|
||||
(name "emacs-webpaste")
|
||||
(version "3.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/etu/webpaste.el")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("make" "unit" "integration")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-tests
|
||||
(lambda _
|
||||
;; Do not use cask to run tests.
|
||||
(substitute* "Makefile"
|
||||
(("\\$\\{CASK\\} exec ") ""))
|
||||
;; Disable tests that need network access.
|
||||
(substitute* (list "tests/unit/test-webpaste-provider-creation.el"
|
||||
"tests/integration/test-webpaste-providers.el")
|
||||
(("describe") "xdescribe")))))))
|
||||
(native-inputs
|
||||
`(("emacs-buttercup" ,emacs-buttercup)))
|
||||
(propagated-inputs
|
||||
`(("emacs-request" ,emacs-request)))
|
||||
(home-page "https://github.com/etu/webpaste.el")
|
||||
(synopsis "Paste to pastebin-like services")
|
||||
(description "This mode allows to paste whole buffers or parts of buffers
|
||||
to pastebin-like services. It supports more than one service and will
|
||||
failover if one service fails. More services can easily be added over time
|
||||
and prefered services can easily be configured.")
|
||||
(license license:gpl3+)))
|
||||
|
@ -1133,22 +1133,23 @@ use on a given system.")
|
||||
(define-public libredwg
|
||||
(package
|
||||
(name "libredwg")
|
||||
(version "0.11")
|
||||
(version "0.11.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libredwg/libredwg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1vd7ii32k5447z7k4w9s005hv1ffpj6dyf1w40x6c53qksrblny2"))))
|
||||
(base32 "1xx6y6ckm4mzqln8y8lqf5frcn2b32ypc0d0h9dzpz6363zh7pdn"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-bindings")))
|
||||
(native-inputs
|
||||
`(("libxml2" ,libxml2)
|
||||
("parallel" ,parallel)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python)
|
||||
("python" ,python-wrapper)
|
||||
("python-libxml2" ,python-libxml2)))
|
||||
(inputs
|
||||
`(("pcre2" ,pcre2)))
|
||||
|
450
gnu/packages/fcitx5.scm
Normal file
450
gnu/packages/fcitx5.scm
Normal file
@ -0,0 +1,450 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages fcitx5)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages enchant)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages iso-codes)
|
||||
#:use-module (gnu packages kde-frameworks)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pretty-print)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages unicode)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
(define-public xcb-imdkit
|
||||
(package
|
||||
(name "xcb-imdkit")
|
||||
(version "1.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1qgbbp8y8ci7haz99vgbrgpjsbrwwyjianyhdvxcirnbm5bybvmz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove bundled uthash.
|
||||
(delete-file-recursively "uthash")
|
||||
#t))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("uthash" ,uthash)
|
||||
("libxcb" ,libxcb)
|
||||
("xcb-util" ,xcb-util)
|
||||
("xcb-util-keysyms" ,xcb-util-keysyms)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/fcitx/xcb-imdkit")
|
||||
(synopsis "Input method development support for XCB")
|
||||
(description "Xcb-imdkit is an implementation of xim protocol in XCB,
|
||||
comparing with the implementation of IMDkit with Xlib, and xim inside Xlib, it
|
||||
has less memory foot print, better performance, and safer on malformed
|
||||
client.")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public fcitx5
|
||||
(package
|
||||
(name "fcitx5")
|
||||
(version "5.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
|
||||
version "_dict.tar.xz"))
|
||||
(sha256
|
||||
(base32 "06zkb33m2rnhg385iy79n3r4svz5jbav74di61xqa3lhbv7534s3"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "-DCLDR_DIR="
|
||||
(assoc-ref %build-inputs "unicode-cldr-common")
|
||||
"/share/unicode/cldr"))))
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("cairo-xcb" ,cairo-xcb)
|
||||
("dbus" ,dbus)
|
||||
("enchant" ,enchant)
|
||||
("expat" ,expat)
|
||||
("fmt" ,fmt)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gettext" ,gettext-minimal)
|
||||
("glib" ,glib)
|
||||
("iso-codes" ,iso-codes)
|
||||
("json-c" ,json-c)
|
||||
("libevent" ,libevent)
|
||||
("libpthread-stubs" ,libpthread-stubs)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("libx11" ,libx11)
|
||||
("libxcb" ,libxcb)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("libxkbfile" ,libxkbfile)
|
||||
("pango" ,pango)
|
||||
("unicode-cldr-common" ,unicode-cldr-common)
|
||||
("wayland" ,wayland)
|
||||
("wayland-protocols" ,wayland-protocols)
|
||||
("xcb-imdkit" ,xcb-imdkit)
|
||||
("xcb-util" ,xcb-util)
|
||||
("xcb-util-keysyms" ,xcb-util-keysyms)
|
||||
("xcb-util-wm" ,xcb-util-wm)
|
||||
("xkeyboard-config" ,xkeyboard-config)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "FCITX_ADDON_DIRS")
|
||||
(files '("lib/fcitx5")))))
|
||||
(home-page "https://github.com/fcitx/fcitx5")
|
||||
(synopsis "Input method framework")
|
||||
(description "Fcitx 5 is a generic input method framework.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public fcitx5-lua
|
||||
(package
|
||||
(name "fcitx5-lua")
|
||||
(version "5.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "177mj56j8yrl79hvk7bbrifvm137np23pwalv83ibgk4l51z92hf"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("fcitx5" ,fcitx5)
|
||||
("lua" ,lua)
|
||||
("gettext" ,gettext-minimal)
|
||||
("libpthread-stubs" ,libpthread-stubs)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(home-page "https://github.com/fcitx/fcitx5-lua")
|
||||
(synopsis "Lua support for Fcitx 5")
|
||||
(description "Fcitx5-lua allows writing Fcitx5 extension in Lua.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public libime
|
||||
(package
|
||||
(name "libime")
|
||||
(version "1.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
|
||||
version "_dict.tar.xz"))
|
||||
(sha256
|
||||
(base32 "006pncby7p6h3rnicckzjwi6jzsrqiqbj6p9bpic80lanlllgw31"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("fcitx5" ,fcitx5)
|
||||
("boost" ,boost)))
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc-9) ;for #include <filesystem> and ld support
|
||||
("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("python" ,python))) ;needed to run test
|
||||
(home-page "https://github.com/fcitx/libime")
|
||||
(synopsis "Library for implementing generic input method")
|
||||
(description "Libime is a library for implmenting various input methods
|
||||
editors.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public fcitx5-gtk
|
||||
(package
|
||||
(name "fcitx5-gtk")
|
||||
(version "5.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.fcitx-im.org/fcitx5"
|
||||
"/fcitx5-gtk/fcitx5-gtk-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0h53liraqc5nz4nyi3ixdfdw3zzkdcsiff7j25acc3gmaa5gyij7"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;No test
|
||||
#:configure-flags
|
||||
(list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR="
|
||||
%output "/share/gir-1.0")
|
||||
(string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR="
|
||||
%output "/lib/girepository-1.0"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-install-prefix
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(gtk2 (assoc-ref outputs "gtk2")))
|
||||
;; Install GTK+ 2 input method module to its own output.
|
||||
(substitute* "gtk2/CMakeLists.txt"
|
||||
(("\\$\\{CMAKE_INSTALL_LIBDIR\\}")
|
||||
(string-append gtk2 "/lib")))))))))
|
||||
(inputs
|
||||
`(("fcitx5" ,fcitx5)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("gtk2" ,gtk+-2)
|
||||
("gtk3" ,gtk+)
|
||||
("glib" ,glib)
|
||||
("libx11" ,libx11)
|
||||
("gettext" ,gettext-minimal)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)
|
||||
("glib" ,glib "bin"))) ;for glib-genmarshal
|
||||
;; TODO: Add "lib" output to reduce the closure size of "gtk2".
|
||||
(outputs '("out" "gtk2"))
|
||||
(home-page "https://github.com/fcitx/fcitx5-gtk")
|
||||
(synopsis "Glib based D-Bus client and GTK IM module for Fcitx 5")
|
||||
(description "Fcitx5-gtk provides a Glib based D-Bus client and IM module
|
||||
for GTK+2/GTK+3 application.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public fcitx5-qt
|
||||
(package
|
||||
(name "fcitx5-qt")
|
||||
(version "5.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.fcitx-im.org/fcitx5"
|
||||
"/fcitx5-qt/fcitx5-qt-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0ilhb4yw9k3m1c4fidnv3nd5dgm9xxds11dgdys6gswjjnmcgqqm"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "-DCMAKE_INSTALL_QT5PLUGINDIR="
|
||||
%output "/lib/qt5/plugins")
|
||||
"-DENABLE_QT4=Off")))
|
||||
(inputs
|
||||
`(("fcitx5" ,fcitx5)
|
||||
("libxcb" ,libxcb)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("qtbase" ,qtbase)
|
||||
("gettext" ,gettext-minimal)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(home-page "https://github.com/fcitx/fcitx5-qt")
|
||||
(synopsis "Qt library and IM module for Fcitx 5")
|
||||
(description "Fcitx5-qt provides Qt library for development and IM module
|
||||
for Qt based application.")
|
||||
(license (list license:lgpl2.1+
|
||||
;; Files under qt4(Fcitx5Qt4DBusAddons), qt5/dbusaddons
|
||||
;; and qt5/platforminputcontext.
|
||||
license:bsd-3))))
|
||||
|
||||
(define-public fcitx5-chinese-addons
|
||||
(package
|
||||
(name "fcitx5-chinese-addons")
|
||||
(version "5.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.fcitx-im.org/fcitx5"
|
||||
"/fcitx5-chinese-addons/fcitx5-chinese-addons-"
|
||||
version "_dict.tar.xz"))
|
||||
(sha256
|
||||
(base32 "0mf91gzwzhfci0jn6g3l516xjw8r4v40ginnbl70h1zx6vr24rfp"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'split-outputs
|
||||
;; Build with GUI supports requires Qt and increase package closure
|
||||
;; by 800M on x86_64, so place it under another output.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "gui/pinyindictmanager/CMakeLists.txt"
|
||||
(("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _)
|
||||
(string-append (assoc-ref outputs "gui") "/lib"))))))))
|
||||
(inputs
|
||||
`(("fcitx5" ,fcitx5)
|
||||
("fcitx5-lua" ,fcitx5-lua)
|
||||
("boost" ,boost)
|
||||
("libime",libime)
|
||||
("curl" ,curl)
|
||||
("gettext" ,gettext-minimal)
|
||||
("fmt" ,fmt)
|
||||
("libpthread-stubs" ,libpthread-stubs)
|
||||
("opencc" ,opencc)
|
||||
("qtbase" ,qtbase)
|
||||
("fcitx5-qt" ,fcitx5-qt)
|
||||
("qtwebkit" ,qtwebkit)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(outputs '("out" "gui"))
|
||||
(home-page "https://github.com/fcitx/fcitx5-chinese-addons")
|
||||
(synopsis "Chinese related addons for Fcitx 5")
|
||||
(description "Fcitx5-chinese-addons provides Chinese related addons,
|
||||
including input methods previous bundled inside Fcitx 4:
|
||||
|
||||
@itemize
|
||||
@item Bingchan
|
||||
@item Cangjie
|
||||
@item Erbi
|
||||
@item Pinyin
|
||||
@item Shuangpin
|
||||
@item Wanfeng
|
||||
@item Wubi
|
||||
@item Wubi Pinyin
|
||||
@item Ziranma
|
||||
@end itemize\n")
|
||||
(license (list license:lgpl2.1+
|
||||
license:gpl2+
|
||||
;; im/pinyin/emoji.txt
|
||||
license:unicode))))
|
||||
|
||||
(define-public fcitx5-configtool
|
||||
(package
|
||||
(name "fcitx5-configtool")
|
||||
(version "5.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.fcitx-im.org/fcitx5"
|
||||
"/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0mrqhzvab41hkvhkz7vkb8d2mv5bgx4aqp9jpz4kf3kskwm1q14b"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
;; KDE is currently not working on Guix, KCM supports doesn't make sense.
|
||||
'("-DENABLE_KCM=Off")))
|
||||
(inputs
|
||||
`(("fcitx5" ,fcitx5)
|
||||
("fcitx5-qt" ,fcitx5-qt)
|
||||
("qtbase" ,qtbase)
|
||||
("qtx11extras" ,qtx11extras)
|
||||
("kitemviews" ,kitemviews)
|
||||
("kwidgetsaddons" ,kwidgetsaddons)
|
||||
("libx11" ,libx11)
|
||||
("xkeyboard-config" ,xkeyboard-config)
|
||||
("libxkbfile" ,libxkbfile)
|
||||
("gettext" ,gettext-minimal)
|
||||
("iso-codes" ,iso-codes)))
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc-9)
|
||||
("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/fcitx/fcitx5-configtool")
|
||||
(synopsis "Graphical configuration tool for Fcitx 5")
|
||||
(description "Fcitx5-configtool is a graphical configuration tool
|
||||
to manage different input methods in Fcitx 5.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public fcitx5-material-color-theme
|
||||
(package
|
||||
(name "fcitx5-material-color-theme")
|
||||
(version "0.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/hosxy/Fcitx5-Material-Color")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1mgc722521jmfx0xc3ibmiycd3q2w7xg2956xcpc07kz90gcdjaa"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(use-modules (srfi srfi-26))
|
||||
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(assets-dir (string-append
|
||||
out "/share/fcitx5-material-color-theme"))
|
||||
(themes-prefix (string-append out "/share/fcitx5/themes")))
|
||||
|
||||
(define (install-theme-variant variant target)
|
||||
(let ((dir (string-append themes-prefix "/" target))
|
||||
(png (string-append "panel-" variant ".png"))
|
||||
(conf (string-append "theme-" variant ".conf")))
|
||||
(format #t "install: Installing color variant \"~a\" to ~a~%"
|
||||
variant dir)
|
||||
(substitute* conf
|
||||
(("^Name=.*")
|
||||
(string-append "Name=" target "\n")))
|
||||
(mkdir-p dir)
|
||||
(install-file png dir)
|
||||
(copy-file conf (string-append dir "/theme.conf"))
|
||||
(symlink (string-append assets-dir "/arrow.png")
|
||||
(string-append dir "/arrow.png"))))
|
||||
|
||||
(mkdir-p assets-dir)
|
||||
(install-file "arrow.png" assets-dir)
|
||||
(for-each
|
||||
(lambda (x)
|
||||
(install-theme-variant
|
||||
x (string-append "Material-Color-" (string-capitalize x))))
|
||||
'("black" "blue" "brown" "indigo"
|
||||
"orange" "pink" "red" "teal"))
|
||||
|
||||
(install-theme-variant
|
||||
"deepPurple" "Material-Color-DeepPurple")))))))
|
||||
(home-page "https://github.com/hosxy/Fcitx5-Material-Color")
|
||||
(synopsis "Material Design for Fcitx 5")
|
||||
(description "Fcitx5-material-color-theme is a Material Design theme
|
||||
for Fcitx 5 with following color variants:
|
||||
|
||||
@itemize
|
||||
@item Black
|
||||
@item Blue
|
||||
@item Brown
|
||||
@item Indigo
|
||||
@item Orange
|
||||
@item Pink
|
||||
@item Red
|
||||
@item teal
|
||||
@item DeepPurple
|
||||
@end itemize\n")
|
||||
(license license:asl2.0)))
|
@ -625,7 +625,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
||||
;; the system's dynamically linked library.
|
||||
(package
|
||||
(name "monero")
|
||||
(version "0.17.1.5")
|
||||
(version "0.17.1.6")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -645,7 +645,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
||||
"external/unbound"))
|
||||
#t))
|
||||
(sha256
|
||||
(base32 "0yy9n2qng02j314h8fh5n0mcy6vpdks0yk4d8ifn8hj03f3g2c8b"))))
|
||||
(base32 "0b6zyr3mzqvcxf48i2g45gr649x6nhppik5598jsvg0z7i2hxb9q"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
@ -735,7 +735,7 @@ the Monero command line client and daemon.")
|
||||
(define-public monero-gui
|
||||
(package
|
||||
(name "monero-gui")
|
||||
(version "0.17.1.5")
|
||||
(version "0.17.1.6")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -744,7 +744,7 @@ the Monero command line client and daemon.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0qlcqli0wvrjfy89mbgh1hpmk60dxgn5sws93h8lhgyfwx557iw0"))))
|
||||
(base32 "0kn5wvx2psbdaqmy1cxlbf5l1mdpvh0b6hh9drah3s7nj3654a3r"))))
|
||||
(build-system qt-build-system)
|
||||
(native-inputs
|
||||
`(,@(package-native-inputs monero)
|
||||
|
@ -1071,7 +1071,14 @@ to create fully featured games and multimedia programs in the python language.")
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.renpy.org/dl/" renpy-version
|
||||
"/pygame_sdl2-" version ".tar.gz"))
|
||||
(sha256 (base32 "1bmr7j9mlsc4czpgw70ld15ymyp4wxrk9hdsqad40wjwdxvvg2dr"))))
|
||||
(sha256 (base32 "1bmr7j9mlsc4czpgw70ld15ymyp4wxrk9hdsqad40wjwdxvvg2dr"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; drop generated sources
|
||||
(delete-file-recursively "gen")
|
||||
(delete-file-recursively "gen3")
|
||||
#t))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; tests require pygame to be installed first
|
||||
@ -1090,11 +1097,6 @@ to create fully featured games and multimedia programs in the python language.")
|
||||
"/lib -Wl,-rpath,"
|
||||
(assoc-ref inputs "sdl-union")
|
||||
"/lib -Wl,--enable-new-dtags -lSDL2"))
|
||||
#t))
|
||||
(add-before 'build 'drop-generated-files
|
||||
(lambda args
|
||||
(delete-file-recursively "gen")
|
||||
(delete-file-recursively "gen3")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("sdl-union"
|
||||
@ -1118,7 +1120,18 @@ developed mainly for Ren'py.")
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.renpy.org/dl/" version
|
||||
"/renpy-" version "-source.tar.bz2"))
|
||||
(sha256 (base32 "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4"))))
|
||||
(sha256 (base32 "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4"))
|
||||
(modules '((guix build utils)))
|
||||
(patches
|
||||
(search-patches
|
||||
"renpy-use-system-fribidi.patch"))
|
||||
(snippet
|
||||
'(with-directory-excursion "module"
|
||||
;; drop generated sources
|
||||
(delete-file-recursively "gen")
|
||||
;; drop fribidi sources
|
||||
(delete-file-recursively "fribidi-src")
|
||||
#t))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; Ren'py doesn't seem to package tests
|
||||
@ -1131,6 +1144,13 @@ developed mainly for Ren'py.")
|
||||
(("xdg-open")
|
||||
(which "xdg-open")))
|
||||
#t))
|
||||
(add-after 'unpack 'fix-include-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "module/setup.py"
|
||||
(("/usr/include/fribidi")
|
||||
(string-append (assoc-ref inputs "fribidi")
|
||||
"/include/fribidi")))
|
||||
#t))
|
||||
(add-after 'set-paths 'set-build-vars
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "RENPY_CYTHON"
|
||||
@ -1168,6 +1188,7 @@ developed mainly for Ren'py.")
|
||||
(inputs
|
||||
`(("ffmpeg" ,ffmpeg)
|
||||
("freetype" ,freetype)
|
||||
("fribidi" ,fribidi)
|
||||
("glew" ,glew)
|
||||
("libpng" ,libpng)
|
||||
("python2-pygame" ,python2-pygame-sdl2)
|
||||
|
@ -409,7 +409,7 @@ inverse fourier transform.")
|
||||
(define-public libmypaint
|
||||
(package
|
||||
(name "libmypaint")
|
||||
(version "1.5.1")
|
||||
(version "1.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mypaint/libmypaint/"
|
||||
@ -417,7 +417,7 @@ inverse fourier transform.")
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0aqcv4fyscpfhknxgfpq0v84aj2nzigqvpi4zgv2zkl41h51by5f"))))
|
||||
"0priwpmc7dizccqvn21ig6d649bprl3xl1hmjj7nddznjgr585vl"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
|
@ -11504,7 +11504,7 @@ and toolbars.")
|
||||
(define-public setzer
|
||||
(package
|
||||
(name "setzer")
|
||||
(version "0.3.6")
|
||||
(version "0.3.8")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -11513,7 +11513,7 @@ and toolbars.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "118gip6bv4mcsq4nrai7kl0vmqqbyzpsd4ky9vhxb1x2cvg048s8"))))
|
||||
(base32 "1f5qmkz4hzn54sh56z3hw8zrvg93xlz62ggzlzyg7vgsr83kpns9"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:glib-or-gtk? #t
|
||||
|
@ -7,6 +7,7 @@
|
||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
|
||||
;;; Copyright © 2020 Christopher Lam <christopher.lck@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -51,6 +52,7 @@
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages webkit)
|
||||
@ -61,25 +63,24 @@
|
||||
;; directory.
|
||||
(package
|
||||
(name "gnucash")
|
||||
(version "3.8")
|
||||
(version "4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
|
||||
version "/gnucash-" version "b" ".tar.bz2"))
|
||||
version "/gnucash-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dvzm3bib7jcj685sklpzyy9mrak9mxyvih2k9fk4sl3v21wlphg"))))
|
||||
"020k1mm909dcgs52ls4v7xx3yn8gqazi9awyr81l6y7pkq1spn2n"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
`(("guile" ,guile-3.0)
|
||||
("boost" ,boost)
|
||||
("icu4c" ,icu4c)
|
||||
("glib" ,glib)
|
||||
("gtk" ,gtk+)
|
||||
("libdbi" ,libdbi)
|
||||
("libdbi-drivers" ,libdbi-drivers)
|
||||
("libgnomecanvas" ,libgnomecanvas)
|
||||
("libofx" ,libofx)
|
||||
("libxml2" ,libxml2)
|
||||
("libxslt" ,libxslt)
|
||||
@ -95,6 +96,7 @@
|
||||
("googlemock" ,(package-source googletest))
|
||||
("googletest" ,googletest)
|
||||
("gnucash-docs" ,gnucash-docs)
|
||||
("swig" ,swig)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
;; dconf is required at runtime according to README.dependencies.
|
||||
@ -134,8 +136,8 @@
|
||||
;; execute them with perl, so execute them directly instead.
|
||||
(add-after 'unpack 'fix-finance-quote-check
|
||||
(lambda _
|
||||
(substitute* "libgnucash/scm/price-quotes.scm"
|
||||
(("\"perl\" \"-w\" ") ""))
|
||||
(substitute* "gnucash/price-quotes.scm"
|
||||
(("\"perl\" \"-w\" ") ""))
|
||||
#t))
|
||||
;; The qof test requires the en_US, en_GB, and fr_FR locales.
|
||||
(add-before 'check 'install-locales
|
||||
@ -230,7 +232,7 @@ installed as well as Yelp, the Gnome help browser.")
|
||||
version "/gnucash-docs-" version revision ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19v6kchda724xkkgwlw5rg21jcpirhch12j9sr6ibnv61sd4ql52"))))
|
||||
"1p1rbv0gyi07nh5pzhk3xm46w66kjyaipb6rpaq9yb9gil1nl7q5"))))
|
||||
(build-system gnu-build-system)
|
||||
;; These are native-inputs because they are only required for building the
|
||||
;; documentation.
|
||||
|
@ -512,6 +512,35 @@ way of specifying command line options.")
|
||||
(home-page "https://github.com/jessevdk/go-flags")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public go-github-com-aws-sdk
|
||||
(package
|
||||
(name "go-github-com-aws-sdk")
|
||||
(version "1.35.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/aws/aws-sdk-go")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ky5lw2s2zpslnnqcs6hgsrwvwbxwgflb5jwf16dd4aga3vrg10c"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
'(#:import-path "github.com/aws/aws-sdk-go/aws"
|
||||
#:unpack-path "github.com/aws/aws-sdk-go"))
|
||||
(propagated-inputs
|
||||
`(("go-github-com-go-sql-driver-mysql" ,go-github-com-go-sql-driver-mysql)
|
||||
("go-github-com-jmespath-go-jmespath" ,go-github-com-jmespath-go-jmespath)
|
||||
("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
|
||||
("go-golang-org-x-net" ,go-golang-org-x-net)))
|
||||
(home-page "https://github.com/aws/aws-sdk-go")
|
||||
(synopsis "Library to access Amazon Web Services (AWS)")
|
||||
(description
|
||||
"This is the official AWS SDK for the Go programming language.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-gopkg.in-tomb.v2
|
||||
(let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
|
||||
(revision "0"))
|
||||
@ -3582,6 +3611,31 @@ without requiring a real database connection.")
|
||||
(home-page "https://github.com/DATA-DOG/go-sqlmock")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public go-github-com-go-sql-driver-mysql
|
||||
(package
|
||||
(name "go-github-com-go-sql-driver-mysql")
|
||||
(version "1.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/go-sql-driver/mysql")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ;; tests require a network connection
|
||||
#:import-path "github.com/go-sql-driver/mysql"))
|
||||
(home-page "https://github.com/go-sql-driver/mysql")
|
||||
(synopsis "MySQL driver for golang")
|
||||
(description
|
||||
"This is a pure Go implementaton of the MySQL API, compatible with
|
||||
golang's database/sql package.")
|
||||
(license license:mpl2.0)))
|
||||
|
||||
(define-public go-golang-org-colorful
|
||||
(package
|
||||
(name "go-golang-org-colorful")
|
||||
@ -5104,6 +5158,34 @@ the parse trees produced by the html package.")
|
||||
to jQuery to the Go language.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public go-github-com-jmespath-go-jmespath
|
||||
(package
|
||||
(name "go-github-com-jmespath-go-jmespath")
|
||||
(version "0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jmespath/go-jmespath")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"18zyr9nlywmwp3wpzcjxrgq9s9d2mmc6zg6xhsna00m663nkyc3n"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
'(#:import-path "github.com/jmespath/go-jmespath"))
|
||||
(native-inputs
|
||||
`(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
|
||||
("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
|
||||
("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
|
||||
(home-page "https://github.com/jmespath/go-jmespath")
|
||||
(synopsis "Golang implementation of JMESPath")
|
||||
(description
|
||||
"This package implements JMESPath, a query language for JSON. It
|
||||
transforms one JSON document into another through a JMESPath expression.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-aymerick-douceur
|
||||
(package
|
||||
(name "go-github-com-aymerick-douceur")
|
||||
|
@ -32,6 +32,7 @@
|
||||
;;; Copyright © 2020 Jesse Gibbons <jgibbons2357@gmail.com>
|
||||
;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
|
||||
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
|
||||
;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -58,6 +59,7 @@
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages disk)
|
||||
#:use-module (gnu packages emacs)
|
||||
@ -886,8 +888,8 @@ Vicare Scheme and IronScheme. Right now it contains:
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public guile-prometheus
|
||||
(let ((commit "2549c482fb04db84481d595f0bf99a1c8bb97c4c")
|
||||
(revision "3"))
|
||||
(let ((commit "35dc26c0ea44c3d70f1819f240d84e2cbb4b7b4c")
|
||||
(revision "5"))
|
||||
(package
|
||||
(name "guile-prometheus")
|
||||
(version (git-version "0" revision commit))
|
||||
@ -898,7 +900,7 @@ Vicare Scheme and IronScheme. Right now it contains:
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0wfaspy3gvn2bkfzlvgx9ncz6114ldxxj25vnj4frcgbzqbdsair"))
|
||||
"07822jj4appw37lf444kc4xlgl7nm64mgldag56072l55kwashgb"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
@ -966,8 +968,8 @@ convenient nested tree operations.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile-simple-zmq
|
||||
(let ((commit "5fc3b7190d31c258ce969c2a5d2ad38c66a09d09")
|
||||
(revision "4"))
|
||||
(let ((commit "f8b7d81afb38525750f8818ed2956ca18c828ee8")
|
||||
(revision "5"))
|
||||
(package
|
||||
(name "guile-simple-zmq")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
@ -979,7 +981,7 @@ convenient nested tree operations.")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0inhvl5jssvbw3nd129wdahfwyvy1iciq403wzf0algbvl1fqs7z"))
|
||||
"1gpzlpcq7bxw7sxyrg8zslwb3631vizw56lgg1aavw4gafh0hxb3"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
@ -4176,3 +4178,65 @@ recursively. It also provides new versions of @code{open-output-file},
|
||||
directory of its argument if it does not exist.")
|
||||
(home-page "https://mkdir-p.divoplade.fr")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public guile-sodium
|
||||
(package
|
||||
(name "guile-sodium")
|
||||
(version "0.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://inqlab.net/git/guile-sodium.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256 (base32 "189jsj87hycs57a54x0b9lifwvhr63nypb9vfxdrq7rwrpcvi5f8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `())
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("pkg-config" ,pkg-config)
|
||||
("texinfo" ,texinfo)))
|
||||
(inputs `(("guile" ,guile-3.0)))
|
||||
(propagated-inputs `(("libsodium" ,libsodium)))
|
||||
(synopsis "Guile bindings to the libsodium cryptographic library")
|
||||
(description
|
||||
"This package provides Guile bindings to the libsodium cryptographic library
|
||||
which provides core cryptographic primitives needed to build higher-level
|
||||
tools.")
|
||||
(home-page "https://inqlab.net/git/guile-sodium.git")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile-eris
|
||||
(package
|
||||
(name "guile-eris")
|
||||
(version "0.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://inqlab.net/git/eris.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256 (base32 "1ijglmwkdy1l87gj429qfjis0v8b1zlxhbyfhx5za8664h68nqka"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '())
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("pkg-config" ,pkg-config)
|
||||
("texinfo" ,texinfo)
|
||||
;; test dependency
|
||||
("guile-srfi-180" ,guile-srfi-180)))
|
||||
(inputs `(("guile" ,guile-3.0)))
|
||||
(propagated-inputs
|
||||
`(("guile-sodium" ,guile-sodium)))
|
||||
(synopsis "Guile implementation of the Encoding for Robust Immutable Storage (ERIS)")
|
||||
(description
|
||||
"Guile-ERIS is the reference implementation of the Encoding for Robust
|
||||
Immutable Storage (ERIS). ERIS allows arbirtary content to be encoded into
|
||||
uniformly sized, encrypted blocks that can be reassembled using a short
|
||||
read-capability.")
|
||||
(home-page "https://inqlab.net/git/eris.git")
|
||||
(license license:gpl3+)))
|
||||
|
@ -59,8 +59,10 @@
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gimp)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages lua)
|
||||
@ -76,6 +78,7 @@
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages web)
|
||||
@ -2150,6 +2153,66 @@ painting and palette manipulation tools. It also handles JPEG, JPEG2000,
|
||||
GIF, TIFF, WEBP, BMP, PNG, XPM formats.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public mypaint
|
||||
(package
|
||||
(name "mypaint")
|
||||
(version "2.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mypaint/mypaint/"
|
||||
"releases/download/v" version "/mypaint-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05mvay73vb9d2sh1ckv4vny45n059dmsps1jcppjizfmrpbkgr7k"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:imported-modules ((guix build glib-or-gtk-build-system)
|
||||
,@%python-build-system-modules)
|
||||
#:modules ((guix build python-build-system)
|
||||
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'glib-or-gtk-wrap
|
||||
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(gdk-pixbuf (assoc-ref inputs "gdk-pixbuf"))
|
||||
(gtk+ (assoc-ref inputs "gtk+")))
|
||||
(wrap-program (string-append out "/bin/mypaint")
|
||||
`("GI_TYPELIB_PATH" ":" prefix
|
||||
(,(getenv "GI_TYPELIB_PATH"))))
|
||||
#t)))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; Tests need writing access
|
||||
(setenv "HOME" "/tmp")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("swig" ,swig)
|
||||
("gettext" ,gettext-minimal)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("gdk-pixbuf" ,gdk-pixbuf+svg)
|
||||
("hicolor-icon-theme" ,hicolor-icon-theme)
|
||||
("libmypaint" ,libmypaint)
|
||||
("mypaint-brushes" ,mypaint-brushes)
|
||||
("json-c" ,json-c)
|
||||
("lcms" ,lcms)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pycairo" ,python-pycairo)
|
||||
("python-pygobject" ,python-pygobject)))
|
||||
(home-page "http://mypaint.org/")
|
||||
(synopsis "Fast and simple painting app for artists")
|
||||
(description
|
||||
"MyPaint is a simple drawing and painting program that works well with
|
||||
Wacom-style graphics tablets.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public phockup
|
||||
(package
|
||||
(name "phockup")
|
||||
|
@ -811,7 +811,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
("qtdeclarative" ,qtdeclarative)))
|
||||
(home-page "https://cgit.kde.org/kholidays.git")
|
||||
(home-page "https://invent.kde.org/frameworks/kholidays")
|
||||
(synopsis "Library for regional holiday information")
|
||||
(description "This library provides a C++ API that determines holiday and
|
||||
other special events for a geographical region.")
|
||||
|
@ -450,7 +450,7 @@ a full-featured client for BitTorrent.")
|
||||
("qtbase" ,qtbase)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
|
||||
(home-page "https://cgit.kde.org/libgravatar.git")
|
||||
(home-page "https://invent.kde.org/pim/libgravatar")
|
||||
(synopsis "Online avatar lookup library")
|
||||
(description "This library retrieves avatar images based on a
|
||||
hash from a person's email address, as well as local caching to avoid
|
||||
@ -484,7 +484,7 @@ unnecessary network operations.")
|
||||
("qca" ,qca)
|
||||
("qtbase" ,qtbase)
|
||||
("solid" ,solid)))
|
||||
(home-page "https://cgit.kde.org/libktorrent.git")
|
||||
(home-page "https://invent.kde.org/network/libktorrent")
|
||||
(synopsis "BitTorrent protocol library for C++ / Qt 5 / KDE Frameworks")
|
||||
(description "The KTorrent library supports connectivity to HTTP and UDP
|
||||
trackers, mainline DHT and the new generation Micro Transport
|
||||
|
@ -695,7 +695,7 @@ Its features include:
|
||||
("qtbase" ,qtbase)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; Most tests require network
|
||||
(home-page "https://cgit.kde.org/libkcddb.git")
|
||||
(home-page "https://invent.kde.org/multimedia/libkcddb")
|
||||
(synopsis "CDDB library for KDE Platform (runtime)")
|
||||
(description "A library for retrieving and sending cddb information.")
|
||||
(license ;; GPL for programs, LGPL for libraries, FDL for documentation
|
||||
@ -722,7 +722,7 @@ Its features include:
|
||||
("phonon" ,phonon)
|
||||
("qtbase" ,qtbase)
|
||||
("solid" ,solid)))
|
||||
(home-page "https://cgit.kde.org/libkcompactdisc.git/")
|
||||
(home-page "https://invent.kde.org/multimedia/libkcompactdisc")
|
||||
(synopsis "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
|
||||
|
@ -391,7 +391,7 @@ Akonadi PIM data server. It uses Xapian for indexing and querying.")
|
||||
("kwallat" ,kwallet)
|
||||
("libkdepim" ,libkdepim)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/incidenceeditor.git")
|
||||
(home-page "https://invent.kde.org/pim/incidenceeditor")
|
||||
(synopsis "KDE PIM library for editing incidences")
|
||||
(description "This library provides an incidence editor for KDE PIM.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
@ -518,7 +518,7 @@ calendar data.")
|
||||
("qtbase" ,qtbase)
|
||||
("syndication" ,syndication)))
|
||||
;; Note: Some tests take up to 90 sec.
|
||||
(home-page "https://cgit.kde.org/kblog.git")
|
||||
(home-page "https://invent.kde.org/pim/kblog")
|
||||
(synopsis "Client-side support library for web application remote blogging
|
||||
APIs")
|
||||
(description "KBlog is a library for calling functions on Blogger 1.0,
|
||||
@ -634,7 +634,7 @@ functions for accessing calendar data using the kcalcore API.")
|
||||
("kio" ,kio)
|
||||
("qtbase" ,qtbase)
|
||||
("qtxmlpatterns" ,qtxmlpatterns)))
|
||||
(home-page "https://cgit.kde.org/kdav.git")
|
||||
(home-page "https://invent.kde.org/frameworks/kdav")
|
||||
(synopsis "DAV protocol implementation with KJobs")
|
||||
(description "This is a DAV protocol implementation with KJobs. Calendars
|
||||
and todos are supported, using either GroupDAV or CalDAV, and contacts are
|
||||
@ -679,7 +679,7 @@ supported using GroupDAV or CardDAV.")
|
||||
("prison" ,prison)
|
||||
("qgpgme" ,qgpgme)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/kdepim-apps-libs.git")
|
||||
(home-page "https://invent.kde.org/pim/kdepim-apps-libs")
|
||||
(synopsis "KDE PIM mail related libraries and data files")
|
||||
(description "This package provides mail related libraries and data files
|
||||
for KDE PIM.")
|
||||
@ -761,7 +761,7 @@ for KDE PIM.")
|
||||
"/include/KF5:"
|
||||
(or (getenv "CPLUS_INCLUDE_PATH") "")))
|
||||
#t)))))
|
||||
(home-page "https://cgit.kde.org/kdepim-runtime.git")
|
||||
(home-page "https://invent.kde.org/pim/kdepim-runtime")
|
||||
(synopsis "Runtime components for Akonadi KDE")
|
||||
(description "This package contains Akonadi agents written using KDE
|
||||
Development Platform libraries. Any package that uses Akonadi should probably
|
||||
@ -816,7 +816,7 @@ package.")
|
||||
("kxmlgui" ,kxmlgui)
|
||||
("libkdepim" ,libkdepim)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/eventviews.git")
|
||||
(home-page "https://invent.kde.org/pim/eventviews")
|
||||
(synopsis "KDE PIM library for creating events")
|
||||
(description "This library provides an event creator for KDE PIM.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
@ -1180,7 +1180,7 @@ manager from KDE.")
|
||||
("qtbase" ,qtbase)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; TODO: 4/56 tests fail, even with "offscreen" and dbus
|
||||
(home-page "https://cgit.kde.org/mailcommon.git")
|
||||
(home-page "https://invent.kde.org/pim/mailcommon")
|
||||
(synopsis "KDE email utility library")
|
||||
(description "The mail common library provides utility functions for
|
||||
dealing with email.")
|
||||
@ -1219,7 +1219,7 @@ dealing with email.")
|
||||
("kxmlgui" ,kxmlgui)
|
||||
("libkdepim" ,libkdepim)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/mailimporter.git")
|
||||
(home-page "https://invent.kde.org/pim/mailimporter")
|
||||
(synopsis "KDE mail importer library")
|
||||
(description "This package provides libraries for importing mails other
|
||||
e-mail client programs into KMail and KDE PIM.")
|
||||
@ -1373,7 +1373,7 @@ using a Qt/KMime C++ API.")
|
||||
"/include/KF5:"
|
||||
(or (getenv "CPLUS_INCLUDE_PATH") "")))
|
||||
#t)))))
|
||||
(home-page "https://cgit.kde.org/messagelib.git")
|
||||
(home-page "https://invent.kde.org/pim/messagelib")
|
||||
(synopsis "KDE PIM messaging libraries")
|
||||
(description "This package provides several libraries for messages,
|
||||
e.g. a message list, a mime tree parse, a template parser and the
|
||||
@ -1701,7 +1701,7 @@ Virtual Contact File}) files to the KPeople contact management library.")
|
||||
("qtwebengine" ,qtwebengine)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; TODO tests hang
|
||||
(home-page "https://cgit.kde.org/pimcommon.git")
|
||||
(home-page "https://invent.kde.org/pim/pimcommon")
|
||||
(synopsis "Common libraries for KDE PIM")
|
||||
(description "This package provides common libraries for KDE PIM.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
@ -1782,7 +1782,7 @@ text in the text edit to all kinds of markup, like HTML or BBCODE.")
|
||||
_ prefix)
|
||||
(string-append prefix "${KDE_INSTALL_TARGETS_DEFAULT_ARGS})")))
|
||||
#t)))))
|
||||
(home-page "https://cgit.kde.org/ksmtp.git")
|
||||
(home-page "https://invent.kde.org/pim/ksmtp")
|
||||
(synopsis "Library for sending email through an SMTP server")
|
||||
(description "This library provides an API for handling SMTP
|
||||
services. SMTP (Simple Mail Transfer Protocol) is the most prevalent Internet
|
||||
@ -1863,7 +1863,7 @@ and allows one to view/extract message formatted text in Rich Text Format.")
|
||||
("kwallet" ,kwallet)
|
||||
("kwidgetsaddons" ,kwidgetsaddons)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/libkdepim.git")
|
||||
(home-page "https://invent.kde.org/pim/libkdepim")
|
||||
(synopsis "Libraries for common KDE PIM apps")
|
||||
(description "This package provided libraries for common KDE PIM apps.")
|
||||
(license ;; GPL for programs, LGPL for libraries
|
||||
@ -1898,7 +1898,7 @@ and allows one to view/extract message formatted text in Rich Text Format.")
|
||||
("qtwebengine" ,qtwebengine)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; TODO 6/48 tests fail
|
||||
(home-page "https://cgit.kde.org/libkgapi.git")
|
||||
(home-page "https://invent.kde.org/pim/libkgapi")
|
||||
(synopsis "Library for accessing various Google services via their public
|
||||
API")
|
||||
(description "@code{LibKGAPI} is a C++ library that implements APIs for
|
||||
@ -1936,7 +1936,7 @@ various Google services.")
|
||||
("kpimtextedit" ,kpimtextedit)
|
||||
("qgpgme" ,qgpgme)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/libkleo.git/")
|
||||
(home-page "https://invent.kde.org/pim/libkleo")
|
||||
(synopsis "KDE PIM cryptographic library")
|
||||
(description "@code{libkleo} is a library for Kleopatra and other parts of
|
||||
KDE using certificate-based crypto.")
|
||||
@ -1999,7 +1999,7 @@ KDE using certificate-based crypto.")
|
||||
((".*sieveeditorgraphicalmodewidgettest\\.cpp.*")
|
||||
""))
|
||||
#t)))))
|
||||
(home-page "https://cgit.kde.org/libksieve.git")
|
||||
(home-page "https://invent.kde.org/pim/libksieve")
|
||||
(synopsis "KDE Sieve library")
|
||||
(description "Sieve is a language that can be used filter emails. KSieve
|
||||
is a Sieve parser and interpreter library for KDE.")
|
||||
|
@ -52,7 +52,7 @@
|
||||
(inputs
|
||||
`(("ki18n" ,ki18n)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/kdecoration.git")
|
||||
(home-page "https://invent.kde.org/plasma/kdecoration")
|
||||
(synopsis "Plugin based library to create window decorations")
|
||||
(description "KDecoration is a library to create window decorations.
|
||||
These window decorations can be used by for example an X11 based window
|
||||
@ -119,7 +119,7 @@ manager which re-parents a Client window to a window decoration frame.")
|
||||
("solid" ,solid)
|
||||
("wayland" ,wayland)
|
||||
("xcb-util-keysyms" ,xcb-util-keysyms)))
|
||||
(home-page "https://cgit.kde.org/kscreenlocker.git")
|
||||
(home-page "https://invent.kde.org/plasma/kscreenlocker")
|
||||
(synopsis "Screen locking library")
|
||||
(description
|
||||
"@code{kscreenlocker} is a library for creating secure lock screens.")
|
||||
|
@ -11,6 +11,7 @@
|
||||
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
|
||||
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -130,7 +131,7 @@ This package contains GUI widgets for baloo.")
|
||||
("kiconthemes" ,kiconthemes)
|
||||
("knewstuff" ,knewstuff)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://cgit.kde.org/grantleetheme.git")
|
||||
(home-page "https://invent.kde.org/pim/grantleetheme")
|
||||
(synopsis "Library providing Grantlee theme support")
|
||||
(description "This library provides Grantlee theme support.")
|
||||
(license ;; LGPL for libraries, FDL for documentation
|
||||
@ -362,7 +363,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
("qtsvg" ,qtsvg)))
|
||||
(home-page "https://cgit.kde.org/kdiagram.git/")
|
||||
(home-page "https://invent.kde.org/graphics/kdiagram")
|
||||
(synopsis "Libraries for creating business diagrams")
|
||||
(description "This package provides libraries for integrating business
|
||||
diagrams in Qt-based applications.
|
||||
@ -765,6 +766,52 @@ Python, PHP, and Perl.")
|
||||
(description "Runtime library for kdegames")
|
||||
(license (list license:gpl2+ license:fdl1.2+))))
|
||||
|
||||
(define-public kdegraphics-mobipocket
|
||||
(package
|
||||
(name "kdegraphics-mobipocket")
|
||||
(version "20.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kde/stable/release-service/" version
|
||||
"/src/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0fm880lp9g60zgrkjyh4jxws6x0s77l9ia4f8pza3w8sxcbbswk5"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(inputs
|
||||
`(("kio" ,kio)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://apps.kde.org/en/kdegraphics_mobipocket")
|
||||
(synopsis "KDE thumbnailer for Mobipocket files")
|
||||
(description "This package provides a KDE plugin that shows thumbnails of
|
||||
Mobipocket e-books in Dolphin and other KDE apps.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public libkexiv2
|
||||
(package
|
||||
(name "libkexiv2")
|
||||
(version "20.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kde/stable/release-service/" version
|
||||
"/src/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0k0iinf7s8qlk3fwvq7iic1b4zn2gm65rfd58q7d3wb1i1j2hjjk"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(inputs
|
||||
`(("exiv2" ,exiv2)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://invent.kde.org/graphics/libkexiv2")
|
||||
(synopsis "Manipulate the metadata of images")
|
||||
(description "Libkexiv2 wraps the Exiv2 library, allowing to manipulate
|
||||
picture metadata as EXIF/IPTC and XMP.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public zeroconf-ioslave
|
||||
(package
|
||||
(name "zeroconf-ioslave")
|
||||
|
@ -352,7 +352,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
|
||||
;; The current "stable" kernel. That is, the most recently released major
|
||||
;; version.
|
||||
(define-public linux-libre-5.9-version "5.9.12")
|
||||
(define-public linux-libre-5.9-version "5.9.14")
|
||||
(define deblob-scripts-5.9
|
||||
(linux-libre-deblob-scripts
|
||||
linux-libre-5.9-version
|
||||
@ -360,7 +360,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "0yb04a4j2wq3mwvks3cj7kcm2pscmfs29lrz3falkxpbvjxbbgq2")))
|
||||
(define-public linux-libre-5.9-pristine-source
|
||||
(let ((version linux-libre-5.9-version)
|
||||
(hash (base32 "1gfrn3sz3h4cbsf3r8f9jxja400qsmbrk8sclk4cjx1l5qcmczyr")))
|
||||
(hash (base32 "0jbb3rzbkh0l75zq9bnc60w55ryvrvcg7vw85fsbcwfzvi0zpz1r")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.9)))
|
||||
@ -368,7 +368,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
;; The "longterm" kernels — the older releases with long-term upstream support.
|
||||
;; Here are the support timelines:
|
||||
;; <https://www.kernel.org/category/releases.html>
|
||||
(define-public linux-libre-5.4-version "5.4.81")
|
||||
(define-public linux-libre-5.4-version "5.4.83")
|
||||
(define deblob-scripts-5.4
|
||||
(linux-libre-deblob-scripts
|
||||
linux-libre-5.4-version
|
||||
@ -376,12 +376,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "167zcfkw62pm6nv1xdvvhxw0ca724sywcywnv3z00189f8f8p3vg")))
|
||||
(define-public linux-libre-5.4-pristine-source
|
||||
(let ((version linux-libre-5.4-version)
|
||||
(hash (base32 "09w4bpr3v9rzcvxics5wddabplwbpk1mynl45lh9csbjfpjbsw4l")))
|
||||
(hash (base32 "1ik14pfgynkn1sjhgyhgmxjvviq0mgvk0ygj76w8mplkpc5rgv5y")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.4)))
|
||||
|
||||
(define-public linux-libre-4.19-version "4.19.161")
|
||||
(define-public linux-libre-4.19-version "4.19.163")
|
||||
(define deblob-scripts-4.19
|
||||
(linux-libre-deblob-scripts
|
||||
linux-libre-4.19-version
|
||||
@ -389,12 +389,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
|
||||
(define-public linux-libre-4.19-pristine-source
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "0h9wskmz9wridwnicnjlcmj1112qnlvqk01bhjkxv6b8jsajjh87")))
|
||||
(hash (base32 "1z65iwwyx2b01fncygckmhpxirzs52qfqmv3agirn4laxgjw9viy")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.19)))
|
||||
|
||||
(define-public linux-libre-4.14-version "4.14.210")
|
||||
(define-public linux-libre-4.14-version "4.14.212")
|
||||
(define deblob-scripts-4.14
|
||||
(linux-libre-deblob-scripts
|
||||
linux-libre-4.14-version
|
||||
@ -402,12 +402,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
|
||||
(define-public linux-libre-4.14-pristine-source
|
||||
(let ((version linux-libre-4.14-version)
|
||||
(hash (base32 "067xqi6sgf50p7s3n6y77cgf5bj5062s3bz3kqpp6f9wnk85267r")))
|
||||
(hash (base32 "0y8ck8pfxm8862wi4cz8qp9x9b18yl448i8m7bpbphs290nc66qf")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.14)))
|
||||
|
||||
(define-public linux-libre-4.9-version "4.9.247")
|
||||
(define-public linux-libre-4.9-version "4.9.248")
|
||||
(define deblob-scripts-4.9
|
||||
(linux-libre-deblob-scripts
|
||||
linux-libre-4.9-version
|
||||
@ -415,12 +415,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
|
||||
(define-public linux-libre-4.9-pristine-source
|
||||
(let ((version linux-libre-4.9-version)
|
||||
(hash (base32 "1mngdbsq8pdzd0x9hif4715cc7wzc3ahgp1yrknnqk598q0fnfpp")))
|
||||
(hash (base32 "1kzczy0lz3lnjkhvx90dgjmzn3d3y55qxlihiclkr4y9c602d1s6")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.9)))
|
||||
|
||||
(define-public linux-libre-4.4-version "4.4.247")
|
||||
(define-public linux-libre-4.4-version "4.4.248")
|
||||
(define deblob-scripts-4.4
|
||||
(linux-libre-deblob-scripts
|
||||
linux-libre-4.4-version
|
||||
@ -428,7 +428,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
|
||||
(define-public linux-libre-4.4-pristine-source
|
||||
(let ((version linux-libre-4.4-version)
|
||||
(hash (base32 "1jh7vmyx55krk6y2r9v48liifs5wwkgns3gp8rs5sm4klfm36r2a")))
|
||||
(hash (base32 "1z1xbkm0z0v6k3scszii5hi24pn391332g0li93p3n1rnv74jap5")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.4)))
|
||||
@ -4045,18 +4045,18 @@ thanks to the use of namespaces.")
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-references
|
||||
(lambda _
|
||||
(substitute* "libexec/cli/build.exec"
|
||||
(("if ! singularity_which mksquashfs") "if 0")
|
||||
(("if ! mksquashfs")
|
||||
(string-append "if ! " (which "mksquashfs"))))
|
||||
(substitute* (list "libexec/cli/help.exec"
|
||||
"libexec/bootstrap-scripts/functions"
|
||||
"libexec/bootstrap-scripts/post.sh"
|
||||
"libexec/functions")
|
||||
(substitute* "libexec/cli/build.exec.in"
|
||||
(("-mksquashfs") (string-append "-" (which "mksquashfs"))))
|
||||
(substitute* (append
|
||||
(find-files "libexec" "functions")
|
||||
(find-files "libexec/bootstrap-scripts" ".*sh$")
|
||||
(find-files "libexec/cli" ".*exec$"))
|
||||
(("\\| grep ")
|
||||
(string-append "| " (which "grep") " "))
|
||||
(("egrep ")
|
||||
(string-append (which "egrep") " ")))
|
||||
(string-append (which "egrep") " "))
|
||||
((" sed ")
|
||||
(string-append " " (which "sed") " ")))
|
||||
#t))
|
||||
(add-after 'install 'set-PATH
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
@ -4544,7 +4544,7 @@ arrays when needed.")
|
||||
;; For tests.
|
||||
("cmocka" ,cmocka)))
|
||||
(inputs
|
||||
`(("json-c" ,json-c-0.13)
|
||||
`(("json-c" ,json-c)
|
||||
("libaio" ,libaio)
|
||||
("liburcu" ,liburcu)
|
||||
("lvm2" ,lvm2)
|
||||
|
@ -309,6 +309,45 @@ streams which are similar to string streams.")
|
||||
(define-public ecl-flexi-streams
|
||||
(sbcl-package->ecl-package sbcl-flexi-streams))
|
||||
|
||||
(define-public sbcl-cl-abnf
|
||||
;; There are no releases
|
||||
(let ((commit "ba1fbb104dedbdaddb1ef93d2e4da711bd96cd70")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-cl-abnf")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dimitri/cl-abnf")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-abnf" version))
|
||||
(sha256
|
||||
(base32 "0f09nsndxa90acm71zd4qdnp40v705a4sqm04mnv9x76h6dlggmz"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("cl-ppcre" ,sbcl-cl-ppcre)
|
||||
("esrap" ,sbcl-esrap)))
|
||||
(arguments
|
||||
`(#:asd-systems '("abnf")))
|
||||
(home-page "https://github.com/dimitri/cl-abnf")
|
||||
(synopsis "ABNF parser generator for Common Lisp")
|
||||
(description "This Common Lisp library implements a parser generator for
|
||||
the ABNF grammar format as described in RFC2234. The generated parser is a
|
||||
regular expression scanner provided by the cl-ppcre lib, which means that we
|
||||
can't parse recursive grammar definition. One such definition is the ABNF
|
||||
definition as given by the RFC. Fortunately, as you have this lib, you most
|
||||
probably don't need to generate another parser to handle that particular ABNF
|
||||
grammar.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-abnf
|
||||
(sbcl-package->cl-source-package sbcl-cl-abnf))
|
||||
|
||||
(define-public ecl-cl-abnf
|
||||
(sbcl-package->ecl-package sbcl-cl-abnf))
|
||||
|
||||
(define-public sbcl-cl-ppcre
|
||||
(package
|
||||
(name "sbcl-cl-ppcre")
|
||||
@ -2725,7 +2764,11 @@ Lisp, featuring:
|
||||
(sbcl-package->cl-source-package sbcl-lparallel))
|
||||
|
||||
(define-public ecl-lparallel
|
||||
(sbcl-package->ecl-package sbcl-lparallel))
|
||||
(package
|
||||
(inherit (sbcl-package->ecl-package sbcl-lparallel))
|
||||
(arguments
|
||||
;; TODO: Find why the tests get stuck forever; disable them for now.
|
||||
`(#:tests? #f))))
|
||||
|
||||
(define-public sbcl-cl-markup
|
||||
(let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
|
||||
@ -5638,6 +5681,41 @@ extension-points via the concept of hooks.")
|
||||
(define-public ecl-cl-hooks
|
||||
(sbcl-package->ecl-package sbcl-cl-hooks))
|
||||
|
||||
(define-public sbcl-cl-autowrap
|
||||
(let ((revision "1")
|
||||
(commit "ae846d6968fc0d000de0c541638929a157f3009e"))
|
||||
;; no taged branches
|
||||
(package
|
||||
(name "sbcl-cl-autowrap")
|
||||
(version (git-version "1.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/rpav/cl-autowrap")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gisldp2zns92kdcaikghm7c38ldy2d884n8bfg0wcjvbz78p3ar"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("alexandria" ,sbcl-alexandria)
|
||||
("cffi" ,sbcl-cffi)
|
||||
("cl-json" ,sbcl-cl-json)
|
||||
("cl-ppcre" ,sbcl-cl-ppcre)
|
||||
("defpackage-plus" ,sbcl-defpackage-plus)
|
||||
("trivial-features" ,sbcl-trivial-features)))
|
||||
(home-page "https://github.com/rpav/cl-autowrap")
|
||||
(synopsis "FFI wrapper generator for Common Lisp")
|
||||
(description "This is a c2ffi-based wrapper generator for Common Lisp.")
|
||||
(license license:bsd-2))))
|
||||
|
||||
(define-public cl-autowrap
|
||||
(sbcl-package->cl-source-package sbcl-cl-autowrap))
|
||||
|
||||
(define-public ecl-cl-autowrap
|
||||
(sbcl-package->ecl-package sbcl-cl-autowrap))
|
||||
|
||||
(define-public sbcl-s-sysdeps
|
||||
;; No release since 2013.
|
||||
(let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
|
||||
@ -11234,17 +11312,18 @@ XML to Lisp structures or s-expressions and back.")
|
||||
(define-public sbcl-geco
|
||||
(package
|
||||
(name "sbcl-geco")
|
||||
(version "2.01a")
|
||||
(version "2.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://common-lisp.net/project/geco/download/"
|
||||
"geco-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/gpwwjr/GECO")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "geco" version))
|
||||
(sha256
|
||||
(base32 "0kk0bzr1019cfmf2b1jl1rk9shv3gx5z1znifxllg9mb98yqsgw0"))
|
||||
(patches (search-patches "sbcl-geco-fix-organism-class.patch"))))
|
||||
(base32 "1rc8a4mk40hjx5qy980hjylv6xxqdbq38hg8c4w30y93abfd519s"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(home-page "https://common-lisp.net/project/geco/")
|
||||
(home-page "http://hiwaay.net/~gpw/geco/geco.html")
|
||||
(synopsis "Genetic algorithm toolkit for Common Lisp")
|
||||
(description
|
||||
"GECO (Genetic Evolution through Combination of Objects) is an extensible,
|
||||
@ -12405,3 +12484,44 @@ Service (S3) and CloudFront service from Common Lisp.")
|
||||
|
||||
(define-public ecl-zs3
|
||||
(sbcl-package->ecl-package sbcl-zs3))
|
||||
|
||||
(define-public sbcl-simple-neural-network
|
||||
(package
|
||||
(name "sbcl-simple-neural-network")
|
||||
(version "3.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/glv2/simple-neural-network")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "simple-neural-network" version))
|
||||
(sha256
|
||||
(base32 "1jj1c90fr5clwka0jv32hv6xp1bkdlpa6x5jh19an13rhx8ll4zr"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(native-inputs
|
||||
`(("chipz" ,sbcl-chipz)
|
||||
("fiveam" ,sbcl-fiveam)))
|
||||
(inputs
|
||||
`(("cl-store" ,sbcl-cl-store)
|
||||
("lparallel" ,sbcl-lparallel)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'check 'remove-test-data
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(for-each delete-file (find-files out "\\.gz$"))))))))
|
||||
(synopsis "Simple neural network in Common Lisp")
|
||||
(description
|
||||
"@code{simple-neural-network} is a Common Lisp library for creating,
|
||||
training and using basic neural networks. The networks created by this
|
||||
library are feedforward neural networks trained using backpropagation.")
|
||||
(home-page "https://github.com/glv2/simple-neural-network")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public cl-simple-neural-network
|
||||
(sbcl-package->cl-source-package sbcl-simple-neural-network))
|
||||
|
||||
(define-public ecl-simple-neural-network
|
||||
(sbcl-package->ecl-package sbcl-simple-neural-network))
|
||||
|
@ -582,7 +582,7 @@ in terms of new algorithms.")
|
||||
(define-public python-onnx
|
||||
(package
|
||||
(name "python-onnx")
|
||||
(version "1.7.0")
|
||||
(version "1.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -591,7 +591,7 @@ in terms of new algorithms.")
|
||||
;; to use googletest from Guix and enable tests by default.
|
||||
(patches (search-patches "python-onnx-use-system-googletest.patch"))
|
||||
(sha256
|
||||
(base32 "0j6rgfbhsw3a8id8pyg18y93k68lbjbj1kq6qia36h69f6pvlyjy"))))
|
||||
(base32 "0365zkikq6v3cl5hh2daa5z1alhij8xpn8rmlcny340jrv9pyy2z"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("cmake" ,cmake)
|
||||
|
@ -39,6 +39,7 @@
|
||||
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
|
||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
|
||||
;;; Copyright © 2020 divoplade <d@divoplade.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -1700,7 +1701,13 @@ delivery.")
|
||||
(("(ZCAT_COMMAND=).*" all var)
|
||||
(string-append var gzip "/bin/zcat\n"))
|
||||
(("# (USE_GNUTLS(|_PC)=.*)" all line)
|
||||
(string-append line "\n")))
|
||||
(string-append line "\n"))
|
||||
(("# (AUTH_CRAM_MD5=yes)" all line) line)
|
||||
(("# (AUTH_DOVECOT=yes)" all line) line)
|
||||
(("# (AUTH_EXTERNAL=yes)" all line) line)
|
||||
(("# (AUTH_PLAINTEXT=yes)" all line) line)
|
||||
(("# (AUTH_SPA=yes)" all line) line)
|
||||
(("# (AUTH_TLS=yes)" all line) line))
|
||||
;; This file has hard-coded relative file names for tools despite
|
||||
;; the zcat configuration above.
|
||||
(substitute* '("src/exigrep.src")
|
||||
@ -1993,7 +2000,7 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
|
||||
(inputs
|
||||
`(("bdb" ,bdb)
|
||||
("cyrus-sasl" ,cyrus-sasl)
|
||||
("openssl" ,openssl-1.0)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://isync.sourceforge.io/")
|
||||
(synopsis "Mailbox synchronization program")
|
||||
|
@ -518,7 +518,7 @@ numbers.")
|
||||
(define-public sleef
|
||||
(package
|
||||
(name "sleef")
|
||||
(version "3.4.1")
|
||||
(version "3.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -527,7 +527,7 @@ numbers.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gvf7cfvszmgjrsqivwmyy1jnp3hy80dmszxx827lhjz8yqq5019"))))
|
||||
(base32 "1jybqrl2dvjxzg30xrhh847s375n2jr1pix644wi6hb5wh5mx3f7"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags (list "-DCMAKE_BUILD_TYPE=Release"
|
||||
@ -2211,13 +2211,13 @@ ASCII text files using Gmsh's own scripting language.")
|
||||
(define-public veusz
|
||||
(package
|
||||
(name "veusz")
|
||||
(version "3.2.1")
|
||||
(version "3.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "veusz" version))
|
||||
(sha256
|
||||
(base32 "00vmfpvyd6f33l5awlf02qdik3gmbhzyfizfwwbx7qnam2i9bbwy"))))
|
||||
(base32 "1q7hi1qwwg4pgiz62isvv1pia85m13bspdpp1q3mrnwl11in0ag0"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; Tests will fail because they depend on optional packages like
|
||||
@ -4194,7 +4194,7 @@ revised simplex and the branch-and-bound methods.")
|
||||
(define-public dealii
|
||||
(package
|
||||
(name "dealii")
|
||||
(version "9.1.1")
|
||||
(version "9.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -4202,7 +4202,7 @@ revised simplex and the branch-and-bound methods.")
|
||||
"download/v" version "/dealii-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xhjv0gzswpjbc43xbrpwfc5848g508l01855nszx3g5gwzlhnzw"))
|
||||
"0fm4xzrnb7dfn4415j24d8v3jkh0lssi86250x2f5wgi83xq4nnh"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
|
||||
|
@ -61,13 +61,13 @@ an LDAP server.")
|
||||
(define-public synapse
|
||||
(package
|
||||
(name "synapse")
|
||||
(version "1.22.1")
|
||||
(version "1.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "matrix-synapse" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pbxdqpfa7wzdz61p6x58x7841vng1g65qayxgcw73bn1shl50jb"))))
|
||||
"0pmn8aqc7jj2xdrwljjz2vwg58hlyxp9axac471pcmg2vqais5yb"))))
|
||||
(build-system python-build-system)
|
||||
;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’.
|
||||
(propagated-inputs
|
||||
|
@ -117,10 +117,11 @@
|
||||
`(("keyutils" ,keyutils)
|
||||
("libevent" ,libevent)
|
||||
("libnfsidmap" ,libnfsidmap)
|
||||
("rpcsvc-proto" ,rpcsvc-proto) ;for 'rpcgen'
|
||||
("rpcsvc-proto" ,rpcsvc-proto) ;for 'rpcgen'
|
||||
("sqlite" ,sqlite)
|
||||
("lvm2" ,lvm2)
|
||||
("util-linux" ,util-linux "lib")
|
||||
("util-linux" ,util-linux) ; only for above substitutions
|
||||
("util-linux:lib" ,util-linux "lib") ; for libblkid
|
||||
("mit-krb5" ,mit-krb5)
|
||||
("libtirpc" ,libtirpc)
|
||||
("python-wrapper" ,python-wrapper))) ;for the Python based tools
|
||||
|
@ -166,14 +166,14 @@ computers over a network.")
|
||||
(define-public openntpd
|
||||
(package
|
||||
(name "openntpd")
|
||||
(version "6.2p3")
|
||||
(version "6.8p1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://openbsd/OpenNTPD/openntpd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv"))))
|
||||
"0ijsylc7a4jlpxsqa0jq1w1c7333id8pcakzl7a5749ria1xp0l5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags `( "--with-privsep-user=ntpd"
|
||||
|
@ -739,8 +739,7 @@ Emacs.")
|
||||
(define-public ocaml-menhir
|
||||
(package
|
||||
(name "ocaml-menhir")
|
||||
;; More recent versions can be built after we have dune >= 2.0
|
||||
(version "20190626")
|
||||
(version "20200211")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -749,19 +748,12 @@ Emacs.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0v8av4pw6rykzb7wx54xhbsx0jhh8xyb4x0k4yrxi0w5ylkck6mb"))))
|
||||
(build-system ocaml-build-system)
|
||||
(base32 "019izf51kdc7pzkw68zg8a2alc8lxw1gwdp7in970mr90n16b5zj"))))
|
||||
(build-system dune-build-system)
|
||||
(inputs
|
||||
`(("ocaml" ,ocaml)))
|
||||
(native-inputs
|
||||
`(("ocamlbuild" ,ocamlbuild)))
|
||||
(arguments
|
||||
`(#:make-flags `("USE_OCAMLFIND=true"
|
||||
,(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:tests? #f ; No check target
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
`(#:tests? #f)) ; No check target
|
||||
(home-page "http://gallium.inria.fr/~fpottier/menhir/")
|
||||
(synopsis "Parser generator")
|
||||
(description "Menhir is a parser generator. It turns high-level grammar
|
||||
|
@ -131,8 +131,8 @@
|
||||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "1.2.0")
|
||||
(commit "c952a9312a94bb236495ec654bf184685cf9fe79")
|
||||
(revision 5))
|
||||
(commit "799f066768bacb321ebad84c75b2bbfd269e7cd8")
|
||||
(revision 6))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
@ -148,7 +148,7 @@
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1k32p37ikwls086mgxjhz9qhrbc7lgvfpbnk0ikfg4p40rxjp4w8"))
|
||||
"04k8q5yjmxazskl13ap210jki2zh73zlzd0xdx06v08liskgz10q"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -1,68 +0,0 @@
|
||||
See: https://bugs.gentoo.org/708350
|
||||
Author: Patrick McLean <patrick.mclean@sony.com>
|
||||
Date: 2020-02-06 23:06:22 +0000
|
||||
diff --git a/coreutils/date.c b/coreutils/date.c
|
||||
index 3414d38ae..4ade6abb4 100644
|
||||
--- a/coreutils/date.c
|
||||
+++ b/coreutils/date.c
|
||||
@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, char **argv)
|
||||
time(&ts.tv_sec);
|
||||
#endif
|
||||
}
|
||||
+#if !ENABLE_FEATURE_DATE_NANO
|
||||
+ ts.tv_nsec = 0;
|
||||
+#endif
|
||||
localtime_r(&ts.tv_sec, &tm_time);
|
||||
|
||||
/* If date string is given, update tm_time, and maybe set date */
|
||||
@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (date_str[0] != '@')
|
||||
tm_time.tm_isdst = -1;
|
||||
ts.tv_sec = validate_tm_time(date_str, &tm_time);
|
||||
+ ts.tv_nsec = 0;
|
||||
|
||||
/* if setting time, set it */
|
||||
- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
|
||||
+ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
|
||||
bb_perror_msg("can't set date");
|
||||
}
|
||||
}
|
||||
diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
|
||||
index 87cf59b3d..dc40d9155 100644
|
||||
--- a/libbb/missing_syscalls.c
|
||||
+++ b/libbb/missing_syscalls.c
|
||||
@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
|
||||
return syscall(__NR_getsid, pid);
|
||||
}
|
||||
|
||||
-int stime(const time_t *t)
|
||||
-{
|
||||
- struct timeval tv;
|
||||
- tv.tv_sec = *t;
|
||||
- tv.tv_usec = 0;
|
||||
- return settimeofday(&tv, NULL);
|
||||
-}
|
||||
-
|
||||
int sethostname(const char *name, size_t len)
|
||||
{
|
||||
return syscall(__NR_sethostname, name, len);
|
||||
diff --git a/util-linux/rdate.c b/util-linux/rdate.c
|
||||
index 70f829e7f..878375d78 100644
|
||||
--- a/util-linux/rdate.c
|
||||
+++ b/util-linux/rdate.c
|
||||
@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!(flags & 2)) { /* no -p (-s may be present) */
|
||||
if (time(NULL) == remote_time)
|
||||
bb_error_msg("current time matches remote time");
|
||||
- else
|
||||
- if (stime(&remote_time) < 0)
|
||||
+ else {
|
||||
+ struct timespec ts;
|
||||
+ ts.tv_sec = remote_time;
|
||||
+ ts.tv_nsec = 0;
|
||||
+ if (clock_settime(CLOCK_REALTIME, &ts) < 0)
|
||||
bb_perror_msg_and_die("can't set time of day");
|
||||
+ }
|
||||
}
|
||||
|
||||
if (flags != 1) /* not lone -s */
|
@ -1,146 +0,0 @@
|
||||
commit e01979620025666633250b3e2d545fe59c629f73
|
||||
Author: Vladimír Čunát <vladimir.cunat@nic.cz>
|
||||
Date: Fri Nov 13 14:16:32 2020 +0100
|
||||
|
||||
fix map() command on 32-bit platforms; regressed in 5.2.0
|
||||
|
||||
LuaJIT FFI was using opendir() (etc.) variants with 32-bit inodes
|
||||
but the C parts was using them as 64-bit inode variants.
|
||||
Consequently the `struct dirent` layout didn't match and we were getting
|
||||
filenames shifted by eight bytes.
|
||||
|
||||
Now the whole dir-listing lua function is written in C.
|
||||
|
||||
diff --git a/.luacheckrc b/.luacheckrc
|
||||
index 0cf0b884..67bc18f6 100644
|
||||
--- a/.luacheckrc
|
||||
+++ b/.luacheckrc
|
||||
@@ -20,6 +20,7 @@ new_read_globals = {
|
||||
'user',
|
||||
'verbose',
|
||||
'worker',
|
||||
+ 'kluautil_list_dir',
|
||||
-- Sandbox declarations
|
||||
'kB',
|
||||
'MB',
|
||||
diff --git a/NEWS b/NEWS
|
||||
index 2eae3082..9d8cde99 100644
|
||||
--- a/NEWS
|
||||
+++ b/NEWS
|
||||
@@ -1,6 +1,10 @@
|
||||
Knot Resolver X.Y.X (yyyy-mm-dd)
|
||||
================================
|
||||
|
||||
+Bugfixes
|
||||
+--------
|
||||
+- fix map() command on 32-bit platforms; regressed in 5.2.0 (!1093)
|
||||
+
|
||||
|
||||
Knot Resolver 5.2.0 (2020-11-11)
|
||||
================================
|
||||
diff --git a/daemon/bindings/impl.c b/daemon/bindings/impl.c
|
||||
index d10f4525..d9ad0774 100644
|
||||
--- a/daemon/bindings/impl.c
|
||||
+++ b/daemon/bindings/impl.c
|
||||
@@ -2,6 +2,7 @@
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
+#include <dirent.h>
|
||||
#include <lua.h>
|
||||
#include <lauxlib.h>
|
||||
#include <string.h>
|
||||
@@ -29,6 +30,29 @@ const char * lua_table_checkindices(lua_State *L, const char *keys[])
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+/** Return table listing filenames in a given directory (ls -A). */
|
||||
+static int kluautil_list_dir(lua_State *L)
|
||||
+{
|
||||
+ lua_newtable(L); // empty table even on errors
|
||||
+
|
||||
+ const char *path = lua_tolstring(L, 1, NULL);
|
||||
+ if (!path) return 1;
|
||||
+ DIR *dir = opendir(path);
|
||||
+ if (!dir) return 1;
|
||||
+
|
||||
+ struct dirent *entry;
|
||||
+ int lua_i = 1;
|
||||
+ while ((entry = readdir(dir)) != NULL) {
|
||||
+ if (strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..")) {
|
||||
+ lua_pushstring(L, entry->d_name);
|
||||
+ lua_rawseti(L, -2, lua_i++);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ closedir(dir);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
|
||||
/* Each of these just creates the correspondingly named lua table of functions. */
|
||||
int kr_bindings_cache (lua_State *L); /* ./cache.c */
|
||||
@@ -44,6 +68,9 @@ void kr_bindings_register(lua_State *L)
|
||||
kr_bindings_modules(L);
|
||||
kr_bindings_net(L);
|
||||
kr_bindings_worker(L);
|
||||
+
|
||||
+ /* Finally some lua utils *written in C*, not really a binding. */
|
||||
+ lua_register(L, "kluautil_list_dir", kluautil_list_dir);
|
||||
}
|
||||
|
||||
void lua_error_p(lua_State *L, const char *fmt, ...)
|
||||
diff --git a/daemon/lua/kluautil.lua b/daemon/lua/kluautil.lua
|
||||
index 57912e7b..e73e952c 100644
|
||||
--- a/daemon/lua/kluautil.lua
|
||||
+++ b/daemon/lua/kluautil.lua
|
||||
@@ -1,6 +1,5 @@
|
||||
-- SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
-local ffi = require('ffi')
|
||||
local kluautil = {}
|
||||
|
||||
-- Get length of table
|
||||
@@ -28,14 +27,6 @@ function kluautil.kr_table_unpack(tab)
|
||||
return unpack(tab, 1, tab.n)
|
||||
end
|
||||
|
||||
-ffi.cdef([[
|
||||
- typedef struct __dirstream DIR;
|
||||
- DIR *opendir(const char *name);
|
||||
- struct dirent *readdir(DIR *dirp);
|
||||
- int closedir(DIR *dirp);
|
||||
- char *strerror(int errnum);
|
||||
-]])
|
||||
-
|
||||
-- Fetch over HTTPS
|
||||
function kluautil.kr_https_fetch(url, out_file, ca_file)
|
||||
local http_ok, http_request = pcall(require, 'http.request')
|
||||
@@ -88,26 +79,6 @@ function kluautil.kr_https_fetch(url, out_file, ca_file)
|
||||
return true
|
||||
end
|
||||
|
||||
--- List directory
|
||||
-function kluautil.list_dir (path)
|
||||
- local results = {}
|
||||
- local dir = ffi.C.opendir(path)
|
||||
- if dir == nil then
|
||||
- return results
|
||||
- end
|
||||
-
|
||||
- local entry = ffi.C.readdir(dir)
|
||||
- while entry ~= nil do
|
||||
- local entry_name = ffi.string(ffi.C.kr_dirent_name(entry))
|
||||
- if entry_name ~= '.' and entry_name ~= '..' then
|
||||
- table.insert(results, entry_name)
|
||||
- end
|
||||
- entry = ffi.C.readdir(dir)
|
||||
- end
|
||||
-
|
||||
- ffi.C.closedir(dir)
|
||||
-
|
||||
- return results
|
||||
-end
|
||||
+kluautil.list_dir = kluautil_list_dir
|
||||
|
||||
return kluautil
|
23
gnu/packages/patches/pciutils-hurd-fix.patch
Normal file
23
gnu/packages/patches/pciutils-hurd-fix.patch
Normal file
@ -0,0 +1,23 @@
|
||||
Fix a build error on GNU/Hurd for pciutils 3.7.0.
|
||||
|
||||
commit 053cf6c8b2acafadf828912828336d90fe9b8696
|
||||
Author: Martin Mares <mj@ucw.cz>
|
||||
Date: Sun May 31 11:53:28 2020 +0200
|
||||
|
||||
HURD backend should compile again
|
||||
|
||||
Fixes a bug introduced by commit 82c06b47dea5a38075ce9d56f743360bc47b4c78.
|
||||
|
||||
diff --git a/lib/hurd.c b/lib/hurd.c
|
||||
index 7b3b2ae..ccd92f6 100644
|
||||
--- a/lib/hurd.c
|
||||
+++ b/lib/hurd.c
|
||||
@@ -307,7 +307,6 @@ hurd_fill_regions(struct pci_dev *d)
|
||||
d->base_addr[i] |= regions[i].is_64 << 2;
|
||||
d->base_addr[i] |= regions[i].is_prefetchable << 3;
|
||||
|
||||
- if (flags & PCI_FILL_SIZES)
|
||||
- d->size[i] = regions[i].size;
|
||||
+ d->size[i] = regions[i].size;
|
||||
}
|
||||
}
|
52
gnu/packages/patches/renpy-use-system-fribidi.patch
Normal file
52
gnu/packages/patches/renpy-use-system-fribidi.patch
Normal file
@ -0,0 +1,52 @@
|
||||
See also [Arch] and [Gentoo] for similar patches in other distros.
|
||||
[Arch] https://github.com/archlinux/svntogit-community/blob/packages/renpy/trunk/renpy-system-fribidi.patch
|
||||
[Gentoo] https://gitweb.gentoo.org/repo/gentoo.git/tree/games-engines/renpy/files/renpy-7.3.5-use-system-fribidi.patch
|
||||
|
||||
Index: renpy-7.3.5-source/module/renpybidicore.c
|
||||
===================================================================
|
||||
--- renpy-7.3.5-source.orig/module/renpybidicore.c
|
||||
+++ renpy-7.3.5-source/module/renpybidicore.c
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <Python.h>
|
||||
-#include <fribidi-src/lib/fribidi.h>
|
||||
+#include <fribidi.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef alloca
|
||||
Index: renpy-7.3.5-source/module/setup.py
|
||||
===================================================================
|
||||
--- renpy-7.3.5-source.orig/module/setup.py
|
||||
+++ renpy-7.3.5-source/module/setup.py
|
||||
@@ -119,30 +119,13 @@ cython(
|
||||
sdl + [ png, 'z', 'm' ])
|
||||
|
||||
FRIBIDI_SOURCES = """
|
||||
-fribidi-src/lib/fribidi.c
|
||||
-fribidi-src/lib/fribidi-arabic.c
|
||||
-fribidi-src/lib/fribidi-bidi.c
|
||||
-fribidi-src/lib/fribidi-bidi-types.c
|
||||
-fribidi-src/lib/fribidi-deprecated.c
|
||||
-fribidi-src/lib/fribidi-joining.c
|
||||
-fribidi-src/lib/fribidi-joining-types.c
|
||||
-fribidi-src/lib/fribidi-mem.c
|
||||
-fribidi-src/lib/fribidi-mirroring.c
|
||||
-fribidi-src/lib/fribidi-run.c
|
||||
-fribidi-src/lib/fribidi-shape.c
|
||||
renpybidicore.c
|
||||
""".split()
|
||||
cython(
|
||||
"_renpybidi",
|
||||
FRIBIDI_SOURCES,
|
||||
- includes=[
|
||||
- BASE + "/fribidi-src/",
|
||||
- BASE + "/fribidi-src/lib/",
|
||||
- ],
|
||||
- define_macros=[
|
||||
- ("FRIBIDI_ENTRY", ""),
|
||||
- ("HAVE_CONFIG_H", "1"),
|
||||
- ])
|
||||
+ includes=["/usr/include/fribidi"],
|
||||
+ libs=["fribidi"])
|
||||
|
||||
|
||||
cython("_renpysteam", language="c++", compile_if=steam_sdk, libs=["steam_api"])
|
@ -1,13 +0,0 @@
|
||||
Fix the ORGANISM class so that SBCL >= 2.0.9 can compile it without error.
|
||||
|
||||
--- a/classes.lisp 2020-10-28 12:11:10.725659464 +0100
|
||||
+++ b/classes.lisp 2020-10-31 17:34:36.822752447 +0100
|
||||
@@ -148,7 +148,7 @@
|
||||
:accessor score
|
||||
:initarg :score
|
||||
:initform 'nil
|
||||
- :type number)
|
||||
+ :type (or number null))
|
||||
(NORMALIZED-SCORE
|
||||
:accessor normalized-score
|
||||
:initarg :normalized-score
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
@ -92,7 +92,15 @@
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Install the commands, library, and .pc files.
|
||||
(invoke "make" "install" "install-lib"))))
|
||||
(invoke "make" "install" "install-lib")))
|
||||
|
||||
,@(if (hurd-target?)
|
||||
'((add-after 'unpack 'apply-hurd-patch
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((patch (assoc-ref inputs "hurd-patch")))
|
||||
(invoke "patch" "-p1" "--batch" "-i"
|
||||
patch)))))
|
||||
'()))
|
||||
|
||||
;; Make sure programs have an RPATH so they can find libpciutils.so.
|
||||
#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
|
||||
@ -109,6 +117,9 @@
|
||||
(package-supported-systems kmod))
|
||||
`(("kmod" ,kmod))
|
||||
'())
|
||||
,@(if (hurd-target?)
|
||||
`(("hurd-patch" ,(search-patch "pciutils-hurd-fix.patch")))
|
||||
'())
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://mj.ucw.cz/sw/pciutils/")
|
||||
(synopsis "Programs for inspecting and manipulating PCI devices")
|
||||
|
@ -4989,7 +4989,7 @@ Some things HTTP Core does do:
|
||||
(define-public python-httpx
|
||||
(package
|
||||
(name "python-httpx")
|
||||
(version "0.15.4")
|
||||
(version "0.16.1")
|
||||
(source
|
||||
(origin
|
||||
;; PyPI tarball does not contain tests.
|
||||
@ -4999,7 +4999,7 @@ Some things HTTP Core does do:
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1qr91xw6jxynvihmw953bi5446ssm9ffmb2c4nhfa77v7883sp21"))))
|
||||
(base32 "00gmq45fckcqkj910bvd7pyqz1mvgsdvz4s0k7dzbnc5czzq1f4a"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -719,18 +719,6 @@ etc. ")
|
||||
(define-public python2-babel
|
||||
(package-with-python2 python-babel))
|
||||
|
||||
;; Sphinx < 2.0 requires this version. Remove once no longer needed.
|
||||
(define-public python2-babel-2.6
|
||||
(package
|
||||
(inherit python2-babel)
|
||||
(version "2.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Babel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08rxmbx2s4irp0w0gmn498vns5xy0fagm0fg33xa772jiks51flc"))))))
|
||||
|
||||
(define-public python2-backport-ssl-match-hostname
|
||||
(package
|
||||
(name "python2-backport-ssl-match-hostname")
|
||||
@ -2184,14 +2172,14 @@ backported for previous versions of Python from 2.4 to 3.3.")
|
||||
(define-public python-parse
|
||||
(package
|
||||
(name "python-parse")
|
||||
(version "1.8.4")
|
||||
(version "1.18.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "parse" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0f8997xr8nq2nq35iiviq8ningd1zvy59fg503xfpbi2dwhgdkf3"))))
|
||||
"19063x4xdjpaf7rfxai6jpgm2k4yvkq7wha8aa8cagbjsqr60rli"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -8813,13 +8801,13 @@ third-party code.")
|
||||
(define-public python-llfuse
|
||||
(package
|
||||
(name "python-llfuse")
|
||||
(version "1.3.6")
|
||||
(version "1.3.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "llfuse" version ".tar.bz2"))
|
||||
(uri (pypi-uri "llfuse" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j9fzxpgmb4rxxyl9jcf84zvznhgi3hnh4hg5vb0qaslxkvng8ii"))))
|
||||
"1g2cdhdqrb6m7655qp61pn61pwj1ql61cdzhr2jvl3w4i8877ddr"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("fuse" ,fuse)
|
||||
@ -8838,22 +8826,6 @@ third-party code.")
|
||||
(strip-python2-variant python-llfuse)))
|
||||
(propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))
|
||||
|
||||
;; For attic-0.16
|
||||
(define-public python-llfuse-0.41
|
||||
(package (inherit python-llfuse)
|
||||
(version "0.41.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://bitbucket.org/nikratio/python-llfuse/downloads/"
|
||||
"llfuse-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1imlqw9b73086y97izr036f58pgc5akv4ihc2rrf8j5h75jbrlaa"))))
|
||||
;; Python-LLFUSE < 0.42 includes underscore.js, which is MIT (expat)
|
||||
;; licensed. The rest of the package is licensed under LGPL2.0 or later.
|
||||
(license (list license:expat license:lgpl2.0+))))
|
||||
|
||||
(define-public python-msgpack
|
||||
(package
|
||||
(name "python-msgpack")
|
||||
|
@ -228,7 +228,7 @@ a focus on simplicity and productivity.")
|
||||
(define-public mruby
|
||||
(package
|
||||
(name "mruby")
|
||||
(version "2.0.0")
|
||||
(version "2.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -238,7 +238,7 @@ a focus on simplicity and productivity.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1r6w1asjshff43ymdwa6xmrkggza99mi2kw88k7ic6ag2j81hcj5"))))
|
||||
"0fhfv8pi7i8jn2vgk2n2rjnbnfa12nhj514v8i4k353n7q4pmkh3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
|
@ -503,14 +503,14 @@ Hubert, based on Kaufman and Rousseeuw (1990) \"Finding Groups in Data\".")
|
||||
(define-public r-codetools
|
||||
(package
|
||||
(name "r-codetools")
|
||||
(version "0.2-16")
|
||||
(version "0.2-18")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "codetools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00bmhzqprqfn3w6ghx7sakai6s7il8gbksfiawj8in5mbhbncypn"))))
|
||||
"0a2c115glq8jxixwfigrpvjabhxchn9r4mc40y41dg9dg6wsd7hs"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/codetools")
|
||||
(synopsis "Code analysis tools for R")
|
||||
@ -889,14 +889,18 @@ algorithms.")
|
||||
(define-public r-magrittr
|
||||
(package
|
||||
(name "r-magrittr")
|
||||
(version "1.5")
|
||||
(version "2.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "magrittr" version))
|
||||
(sha256
|
||||
(base32 "1s1ar6rag8m277qcqmdp02gn4awn9bdj9ax0r8s32i59mm1mki05"))))
|
||||
(base32 "0pxd99fvg406whqsk9wh756rayrwh84xn3h44zmlpcy23kanbhkm"))))
|
||||
(build-system r-build-system)
|
||||
;; knitr needs magrittr
|
||||
#;
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://cran.r-project.org/web/packages/magrittr/index.html")
|
||||
(synopsis "A forward-pipe operator for R")
|
||||
(description
|
||||
@ -1579,26 +1583,36 @@ R packages that praise their users.")
|
||||
(define-public r-testthat
|
||||
(package
|
||||
(name "r-testthat")
|
||||
(version "2.3.2")
|
||||
(version "3.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "testthat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0v70v2fs0f2ir962z9csbjlj8snrq9mbjfyhhb9dhz3zy26qs9hs"))))
|
||||
"069ixg03r1s85my9dbc9c1261i4gz8fc1mv67whi2l6kpbp4cjzh"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cli" ,r-cli)
|
||||
`(("r-brio" ,r-brio)
|
||||
("r-callr" ,r-callr)
|
||||
("r-cli" ,r-cli)
|
||||
("r-crayon" ,r-crayon)
|
||||
("r-desc" ,r-desc)
|
||||
("r-digest" ,r-digest)
|
||||
("r-ellipsis" ,r-ellipsis)
|
||||
("r-evaluate" ,r-evaluate)
|
||||
("r-jsonlite" ,r-jsonlite)
|
||||
("r-lifecycle" ,r-lifecycle)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-pkgload" ,r-pkgload)
|
||||
("r-praise" ,r-praise)
|
||||
("r-processx" ,r-processx)
|
||||
("r-ps" ,r-ps)
|
||||
("r-r6" ,r-r6)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-waldo" ,r-waldo)
|
||||
("r-withr" ,r-withr)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/hadley/testthat")
|
||||
(synopsis "Unit testing for R")
|
||||
(description
|
||||
@ -1631,13 +1645,13 @@ defined in different packages.")
|
||||
(define-public r-rlang
|
||||
(package
|
||||
(name "r-rlang")
|
||||
(version "0.4.8")
|
||||
(version "0.4.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rlang" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0z8hnwbzpwal66svwp04csjm49vdb9rmwzvn8hyqn93qy6pd9015"))))
|
||||
"0qix6jigz3qqjx151fpv1k5hq2miqyakvm3jql2qqsyr9d1028yr"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://rlang.tidyverse.org")
|
||||
(synopsis "Functions for base types, core R and Tidyverse features")
|
||||
@ -1717,14 +1731,14 @@ database.")
|
||||
(define-public r-dbplyr
|
||||
(package
|
||||
(name "r-dbplyr")
|
||||
(version "1.4.4")
|
||||
(version "2.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dbplyr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v0p0557n6bz84nq9jc4182k00mdd1hvz7h4w3bbg81z0fmpj0d8"))))
|
||||
"0sa0ggirvfn8j9y4cvhj04z93h6979jm4knjzahdvyzyxhv1kmzc"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-assertthat" ,r-assertthat)
|
||||
@ -1738,7 +1752,8 @@ database.")
|
||||
("r-r6" ,r-r6)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyselect" ,r-tidyselect)))
|
||||
("r-tidyselect" ,r-tidyselect)
|
||||
("r-withr" ,r-withr)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/tidyverse/dbplyr")
|
||||
@ -1835,13 +1850,13 @@ times.")
|
||||
(define-public r-data-table
|
||||
(package
|
||||
(name "r-data-table")
|
||||
(version "1.13.2")
|
||||
(version "1.13.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "data.table" version))
|
||||
(sha256
|
||||
(base32
|
||||
"011qsjfybvlpy2sjn9b6hfkcgwx2xrnpxlaqq3y3baps8n1lgnr7"))))
|
||||
"0jrvl5b8qbzmiymhjgbj4l2nai87ijvv33aw24xvzjx0rkys9dv1"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
@ -2110,14 +2125,14 @@ limited to R.")
|
||||
(define-public r-backports
|
||||
(package
|
||||
(name "r-backports")
|
||||
(version "1.1.10")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "backports" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pq16bf40zx441ylmqqqilj3xp39r707h56kwqp5yqklq9yln2z1"))))
|
||||
"1xgp4i6yxkh2viia96hlf004hn47yrhfivwf8wv63xdldqa8yj9v"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/backports")
|
||||
(synopsis "Reimplementations of functions introduced since R 3.0.0")
|
||||
@ -2418,14 +2433,16 @@ pure C implementation of the Git core methods.")
|
||||
(define-public r-rstudioapi
|
||||
(package
|
||||
(name "r-rstudioapi")
|
||||
(version "0.11")
|
||||
(version "0.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rstudioapi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0srh0m4mw4k6s7spwb84l4cx4xnn04cp5cjxi0fwza7bwavpzq0k"))))
|
||||
"12vdfzzjc6mv4h105l8cp108j3hjk0mqmg23m6mqr3jarfymphxa"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://cran.r-project.org/web/packages/rstudioapi")
|
||||
(synopsis "Safely access the RStudio API")
|
||||
(description
|
||||
@ -2613,13 +2630,13 @@ well as additional utilities such as panel and axis annotation functions.")
|
||||
(define-public r-rcpparmadillo
|
||||
(package
|
||||
(name "r-rcpparmadillo")
|
||||
(version "0.10.1.0.0")
|
||||
(version "0.10.1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppArmadillo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0m0f4viw3r6zfk85b7v7h5dqydhdkjdacpl0bqxkmcndlzq8jnsb"))))
|
||||
"0nzi6plhdijx3khavmywzw9wbch0hj8kygphw35wdlslm4cnqcj1"))))
|
||||
(properties `((upstream-name . "RcppArmadillo")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
@ -2682,17 +2699,17 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
|
||||
(define-public r-rprojroot
|
||||
(package
|
||||
(name "r-rprojroot")
|
||||
(version "1.3-2")
|
||||
(version "2.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rprojroot" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12r3fdxmi2pmwn6ic3rhg0b20ll5z420m0d8fziv1n21961namnz"))))
|
||||
"07wy07yhms8zln9qb0iwx69dq08h4lrdi8kavjcplfxcskq638az"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-backports" ,r-backports)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/krlmlr/rprojroot")
|
||||
(synopsis "Finding files in project subdirectories")
|
||||
(description
|
||||
@ -2723,7 +2740,8 @@ certain criterion, e.g., it contains a certain regular file.")
|
||||
("r-tinytex" ,r-tinytex)
|
||||
("r-xfun" ,r-xfun)
|
||||
("r-yaml" ,r-yaml)
|
||||
("pandoc" ,pandoc)))
|
||||
("pandoc" ,pandoc)
|
||||
("pandoc-citeproc" ,pandoc-citeproc)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://rmarkdown.rstudio.com")
|
||||
@ -4012,13 +4030,13 @@ package instead.")
|
||||
(define-public r-hmisc
|
||||
(package
|
||||
(name "r-hmisc")
|
||||
(version "4.4-1")
|
||||
(version "4.4-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "Hmisc" version))
|
||||
(sha256
|
||||
(base32 "0mm3r2kv0kgrhg7salk2hw0s37d4i2mghwk0l0qxaw2ny0w8w5z6"))))
|
||||
(base32 "1j7vkckmahdh90ndcl646sjpxq82y4x55ngxqvkni22mv16wc2j9"))))
|
||||
(properties `((upstream-name . "Hmisc")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
@ -4208,14 +4226,14 @@ including:
|
||||
(define-public r-gplots
|
||||
(package
|
||||
(name "r-gplots")
|
||||
(version "3.1.0")
|
||||
(version "3.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gplots" version))
|
||||
(sha256
|
||||
(base32
|
||||
"05rislwgaw6v5dmhcwyvc04hi1fgaxrpb61f66kx483px45w6f24"))))
|
||||
"0f8khaymz383w2ksnk80d4kpnvgmdk37pbycpsnl2vabaz11kbpr"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-catools" ,r-catools)
|
||||
@ -4700,14 +4718,14 @@ models, generalized linear models and model-based clustering.")
|
||||
(define-public r-mclust
|
||||
(package
|
||||
(name "r-mclust")
|
||||
(version "5.4.6")
|
||||
(version "5.4.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "mclust" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1z46qask09x3xpv0wzvhn09218vwyrip4f5jrhnx96khpwvczzyl"))))
|
||||
"08scl72llpinfijiyx14yqvmx8lma9jvh8h92v9ynnzfr9kadxa5"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("gfortran" ,gfortran)
|
||||
@ -4919,14 +4937,14 @@ of the points.")
|
||||
(define-public r-fpc
|
||||
(package
|
||||
(name "r-fpc")
|
||||
(version "2.2-8")
|
||||
(version "2.2-9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "fpc" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07a125pji1flmybn6iidcnizwnqyl6chnrckxa5jp4qxxfdqx658"))))
|
||||
"0f7sfmpcycr9y7cy5gasyjm2ardxa62kglqms92mcr68jrp01c19"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-class" ,r-class)
|
||||
@ -5144,14 +5162,14 @@ algorithms.")
|
||||
(define-public r-lme4
|
||||
(package
|
||||
(name "r-lme4")
|
||||
(version "1.1-25")
|
||||
(version "1.1-26")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lme4" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vvjac7hnn5lfbyl92zi8qxyc8kkjcwsg94z0p2s2q311in4gnp4"))))
|
||||
"0ls2krph4pfjn45vf9fn3ln3x98s85wxrkvm5pnxyx55n1pnsjrn"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-boot" ,r-boot)
|
||||
@ -5480,14 +5498,14 @@ is supported.")
|
||||
(define-public r-lubridate
|
||||
(package
|
||||
(name "r-lubridate")
|
||||
(version "1.7.9")
|
||||
(version "1.7.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lubridate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wnjzvfkrgp2hkr8g5r5vcgcxmsq8bhdmkzkk0m93wr3fgh5xyfb"))))
|
||||
"0yfvlgksasmia7rsp83lsipjpgvlly5qkldcfxj68lfaz9l2sspf"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-generics" ,r-generics)
|
||||
|
@ -11,6 +11,7 @@
|
||||
;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
|
||||
;;; Copyright © 2020 Mark Meyer <mark@ofosos.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -62,6 +63,7 @@
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages regex)
|
||||
@ -1029,3 +1031,42 @@ files. It was originally developed on the Amiga 3000T.")
|
||||
systems that displays its buffer(s) as a hex dump. The user interface is kept
|
||||
similar to vi/ex.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public virtaal
|
||||
(package
|
||||
(name "virtaal")
|
||||
(version "0.7.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/translate/Virtaal/"
|
||||
version "/virtaal-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cyimjp3191qlmw6n0ipqdr9xr0cq4f6dqvz4rl9q31h6l3kywf9"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:use-setuptools? #f
|
||||
#:tests? #f ;; Failing tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Set data file path to absolute store path.
|
||||
(substitute* "virtaal/common/pan_app.py"
|
||||
(("file_discovery\\.get_abs_data_filename.*")
|
||||
(string-append "os.path.join('"
|
||||
(assoc-ref outputs "out")
|
||||
"/share', *path_parts)"))))))))
|
||||
(inputs
|
||||
`(("python2-lxml" ,python2-lxml)
|
||||
("python2-pygtk" ,python2-pygtk)
|
||||
("python2-simplejson" ,python2-simplejson)
|
||||
("python2-translate-toolkit" ,python2-translate-toolkit)
|
||||
("python2-pycurl" ,python2-pycurl)))
|
||||
(synopsis "Graphical translation tool")
|
||||
(description "Virtaal is a powerful yet simple translation tool with an
|
||||
uncluttered user interface. It supports a multitude of translation formats
|
||||
provided by the Translate Toolkit, including XLIFF and PO.")
|
||||
(home-page "https://virtaal.translatehouse.org/")
|
||||
(license license:gpl2+)))
|
||||
|
@ -2190,14 +2190,14 @@ To load this plugin, specify the following option when starting mpv:
|
||||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2020.12.07")
|
||||
(version "2020.12.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://youtube-dl.org/downloads/latest/"
|
||||
"youtube-dl-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sbrwak9c0pbacg15q2wj5fcsj5k5k1sx9jm7rcjwkjdhqcjqrsi"))))
|
||||
"0iv4l78ylzx8q6myv4v7xq6r5y0hacz6l30bqk1szncfikvfc3cf"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; The problem here is that the directory for the man page and completion
|
||||
|
@ -31,14 +31,14 @@
|
||||
(define-public visidata
|
||||
(package
|
||||
(name "visidata")
|
||||
(version "2.0.1")
|
||||
(version "2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "visidata" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1p4x9fz59ablyjvp18y50zdsapavhzx7w5hk2v8rsar5ill8947v"))))
|
||||
"15y6yif0h610ill57ck85l8n5faw849caw6rhf95rd0x67hkikaa"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -14,6 +14,7 @@
|
||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
|
||||
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
|
||||
;;; Copyright © 2020 David Dashyan <mail@davie.li>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -285,6 +286,34 @@ and probably others.")
|
||||
(license license:lgpl2.1)
|
||||
(home-page "https://www.infradead.org/openconnect/")))
|
||||
|
||||
(define-public openfortivpn
|
||||
(package
|
||||
(name "openfortivpn")
|
||||
(version "1.15.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/adrienverge/openfortivpn")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("autotools" ,automake)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("openssl" ,openssl)
|
||||
("ppp" ,ppp)))
|
||||
(home-page "https://github.com/adrienverge/openfortivpn")
|
||||
(synopsis "Client for PPP+SSL VPN tunnel services")
|
||||
(description "Openfortivpn is a client for PPP+SSL VPN tunnel services. It
|
||||
spawns a pppd process and operates the communication between the gateway and
|
||||
this process. It is compatible with Fortinet VPNs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public openvpn
|
||||
(package
|
||||
(name "openvpn")
|
||||
|
@ -79,8 +79,10 @@
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix build-system scons)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
@ -90,6 +92,7 @@
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages bittorrent)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
@ -111,6 +114,7 @@
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gnu-doc)
|
||||
#:use-module (gnu packages gnunet)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages gperf)
|
||||
@ -118,6 +122,7 @@
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages guile-xyz)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages java)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
@ -152,6 +157,7 @@
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages re2c)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages search)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
@ -1067,7 +1073,7 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "src/src.pro"
|
||||
;; Do not attempt to install the .prf file into qtbase
|
||||
;; "lib/mkspecs/features", ref <https://bugs.gnu.org/45301>.
|
||||
;; "lib/qt5/mkspecs/features", ref <https://bugs.gnu.org/45031>.
|
||||
(("\\$\\$\\[QMAKE_MKSPECS\\]")
|
||||
(string-append (assoc-ref outputs "out") "/lib/qt5/mkspecs")))
|
||||
#t))
|
||||
@ -1470,7 +1476,7 @@ used to validate and fix HTML data.")
|
||||
(define-public esbuild
|
||||
(package
|
||||
(name "esbuild")
|
||||
(version "0.8.19")
|
||||
(version "0.8.21")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@ -1479,7 +1485,7 @@ used to validate and fix HTML data.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "19y4g0wjkvrqzl4ngnlkb1giqjyx35gwz4zfk8pw4szsy85z6mli"))
|
||||
(base32 "1gkh3ka7gfdqvzymj6vh9w2d0cp7n2vih42y7ghg7y8x6ry4c6mi"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@ -7830,3 +7836,148 @@ solution for any project's interface needs:
|
||||
(description "gmnisrv is a simple Gemini protocol server written in C.")
|
||||
(license (list license:gpl3+
|
||||
license:bsd-3))))) ;; for ini.c and ini.h
|
||||
|
||||
(define-public libzim
|
||||
(package
|
||||
(name "libzim")
|
||||
(version "6.2.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/openzim/libzim")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0p2317cp19lx0hw9n4fsb3nw2vc4hc1yyi98k3yrs41pkr840kwa"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
;; TODO: Find out why tests fail.
|
||||
'(#:tests? #f))
|
||||
(inputs
|
||||
`(("icu4c" ,icu4c)
|
||||
("liblzma" ,xz)
|
||||
("libuuid" ,util-linux "lib")
|
||||
("xapian" ,xapian)
|
||||
("zlib" ,zlib)
|
||||
("zstd" ,zstd "lib")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("googletest" ,googletest)))
|
||||
(home-page "https://wiki.openzim.org/wiki/Main_Page")
|
||||
(synopsis "Reference implementation of the ZIM specification")
|
||||
(description "The openZIM project proposes offline storage solutions for
|
||||
content coming from the Web. The zimlib is the standard implementation of the
|
||||
ZIM specification. It is a library which implements the read and write method
|
||||
for ZIM files.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public kiwix-lib
|
||||
(package
|
||||
(name "kiwix-lib")
|
||||
(version "9.4.0")
|
||||
(home-page "https://github.com/kiwix/kiwix-lib/")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0nsm4qgl0cb6wv983n0px1kf217k4kykb8q56b8j6ikp061lzamm"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'fix-paths-and-includes
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "CPPFLAGS" (string-append "-I" (assoc-ref inputs "mustache")))
|
||||
(substitute* "src/aria2.cpp"
|
||||
(("ARIA2_CMD \"aria2c\"")
|
||||
(string-append "ARIA2_CMD \""
|
||||
(assoc-ref inputs "aria2")
|
||||
"/bin/aria2c\"")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("aria2" ,aria2)
|
||||
("curl" ,curl)
|
||||
("icu4c" ,icu4c)
|
||||
("libmicrohttpd" ,libmicrohttpd)
|
||||
("libzim" ,libzim)
|
||||
("pugixml" ,pugixml)
|
||||
("xapian" ,xapian)
|
||||
("zlib" ,zlib)
|
||||
("zstd" ,zstd "lib")))
|
||||
(native-inputs
|
||||
`(("mustache" ,(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/kainjow/Mustache")
|
||||
;; XXX: Readme says to use version 3. Can we use 3.2.1?
|
||||
(commit "v4.1")))
|
||||
(file-name (git-file-name "mustache" "4.1"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r9rbk6v1wpld2ismfsk2lkhbyv3dkf0p03hkjivbj05qkfhvlbb"))))
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "Common code base for all Kiwix ports")
|
||||
(description "The Kiwix library provides the Kiwix software suite core.
|
||||
It contains the code shared by all Kiwix ports.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public kiwix-desktop
|
||||
(package
|
||||
(name "kiwix-desktop")
|
||||
(version "2.0.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.kiwix.org/release/kiwix-desktop/kiwix-desktop-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a9h4qmh6fkfscyp6lax0ri07dvvzw2wp4kr1sm86n0bdk3cwwha"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "qmake"
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref outputs "out")))))
|
||||
(add-before 'configrue 'enable-print-support
|
||||
(lambda _
|
||||
(substitute* "kiwix-desktop.pro"
|
||||
(("webenginewidgets") "webenginewidgets printsupport"))
|
||||
#t))
|
||||
(add-before 'configure 'substitute-source
|
||||
;; Looks like .pro file is missing a feature.
|
||||
;; See https://github.com/kiwix/kiwix-desktop/issues/556.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "kiwix-desktop.pro"
|
||||
(("webenginewidgets" all) (string-append all " printsupport")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("curl" ,curl)
|
||||
("icu4c" ,icu4c)
|
||||
("kiwix-lib" ,kiwix-lib)
|
||||
("libzim" ,libzim)
|
||||
("pugixml" ,pugixml)
|
||||
("qtbase" ,qtbase)
|
||||
("qtdeclarative" ,qtdeclarative)
|
||||
("qtwebchannel" ,qtwebchannel)
|
||||
("qtwebengine" ,qtwebengine)
|
||||
("xapian" ,xapian)
|
||||
("zlib" ,zlib)
|
||||
("zstd" ,zstd "lib")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("qmake" ,qtbase)))
|
||||
(home-page "https://wiki.kiwix.org/wiki/Software")
|
||||
(synopsis "Viewer and manager of ZIM files")
|
||||
(description "Kiwix Desktop allows you to enjoy a lot of different content
|
||||
offline (such as Wikipedia), without any access to Internet.")
|
||||
(license license:gpl3)))
|
||||
|
@ -38,6 +38,9 @@
|
||||
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
|
||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
|
||||
;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
|
||||
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -1557,6 +1560,27 @@ modules for building a Wayland compositor.")
|
||||
Wlroots based compositors.")
|
||||
(license license:expat))) ; MIT license
|
||||
|
||||
(define-public wlr-randr
|
||||
(package
|
||||
(name "wlr-randr")
|
||||
(version "0.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emersion/wlr-randr")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc"))))
|
||||
(build-system meson-build-system)
|
||||
(inputs `(("wayland" ,wayland)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/emersion/wlr-randr")
|
||||
(synopsis "Utility to manage Wayland compositor outputs")
|
||||
(description "wlr-randr is a utility to manage outputs of a Wayland compositor.")
|
||||
(license license:expat))) ; MIT license
|
||||
|
||||
(define-public mako
|
||||
(package
|
||||
(name "mako")
|
||||
@ -1679,6 +1703,7 @@ productive, customizable lisp based systems.")
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(program (string-append out "/bin/stumpwm")))
|
||||
(setenv "HOME" "/tmp")
|
||||
(build-program program outputs
|
||||
#:entry-program '((stumpwm:stumpwm) 0)
|
||||
#:dependencies '("stumpwm" "slynk")
|
||||
@ -2029,6 +2054,52 @@ formatting, RandR and Xinerama support and EWMH compliance without
|
||||
wasting your precious memory.")
|
||||
(license license:x11))))
|
||||
|
||||
(define-public lemonbar-xft
|
||||
;; Upstream v2.0 tag is several years behind HEAD
|
||||
(let ((commit "481e12363e2a0fe0ddd2176a8e003392be90ed02"))
|
||||
(package
|
||||
(inherit lemonbar)
|
||||
(name "lemonbar-xft")
|
||||
(version (string-append "2.0." (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/drscream/lemonbar-xft")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0588g37h18lv50h7w8vfbwhvc3iajh7sdr53848spaif99nh3mh4"))))
|
||||
(inputs
|
||||
`(("freetype" ,freetype)
|
||||
("libxft" ,libxft)
|
||||
("libx11" ,libx11)
|
||||
,@(package-inputs lemonbar)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments lemonbar)
|
||||
((#:make-flags make-flags)
|
||||
`(append
|
||||
,make-flags
|
||||
(list (string-append
|
||||
"CFLAGS="
|
||||
(string-join
|
||||
(list (string-append
|
||||
"-I" (assoc-ref %build-inputs "freetype")
|
||||
"/include/freetype2")
|
||||
(string-append
|
||||
"-D" "VERSION="
|
||||
(format #f "'~s'" ,version))))))))))
|
||||
(home-page "https://github.com/drscream/lemonbar-xft")
|
||||
(synopsis
|
||||
(string-append
|
||||
(package-synopsis lemonbar)
|
||||
" with fontconfig support"))
|
||||
(description
|
||||
(string-append
|
||||
(package-description lemonbar)
|
||||
"This is a fork of the @code{lemonbar} package that adds fontconfig
|
||||
support, for easier unicode usage.")))))
|
||||
|
||||
(define-public xclickroot
|
||||
(package
|
||||
(name "xclickroot")
|
||||
|
@ -42,6 +42,7 @@
|
||||
;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
|
||||
;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org>
|
||||
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
|
||||
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -2618,3 +2619,43 @@ and execute @file{.desktop} files of the Application type.")
|
||||
"@command{sx} is a simple alternative to both @command{xinit} and
|
||||
@command{startx} for starting an Xorg server.")
|
||||
(license license:x11)))
|
||||
|
||||
(define-public hsetroot
|
||||
(package
|
||||
(name "hsetroot")
|
||||
(version "1.0.5")
|
||||
(home-page "https://github.com/himdel/hsetroot")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(file-name (git-file-name name version))
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1jbk5hlxm48zmjzkaq5946s58rqwg1v1ds2sdyd2ba029hmvr722"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:make-flags
|
||||
(list
|
||||
"CC=gcc"
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'install 'mkdir-install-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(mkdir-p (string-append out "/bin"))))))))
|
||||
(inputs
|
||||
`(("libx11" ,libx11)
|
||||
("imlib2" ,imlib2)
|
||||
("libxinerama" ,libxinerama)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(synopsis "Imlib2-based wallpaper changer")
|
||||
(description
|
||||
"The @command{hsetroot} command composes wallpapers for X.
|
||||
This package is the fork of hsetroot by Hyriand.")
|
||||
(license license:gpl2+)))
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -130,7 +130,7 @@
|
||||
(list (shepherd-service
|
||||
(documentation "Run the Avahi mDNS/DNS-SD responder.")
|
||||
(provision '(avahi-daemon))
|
||||
(requirement '(dbus-system networking))
|
||||
(requirement '(user-processes dbus-system networking))
|
||||
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append avahi "/sbin/avahi-daemon")
|
||||
|
@ -1825,7 +1825,9 @@ raise a deprecation warning if the 'compression-level' field was used."
|
||||
advertise?)
|
||||
(list (shepherd-service
|
||||
(provision '(guix-publish))
|
||||
(requirement '(guix-daemon))
|
||||
(requirement `(user-processes
|
||||
guix-daemon
|
||||
,@(if advertise? '(avahi-daemon) '())))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append guix "/bin/guix")
|
||||
"publish" "-u" "guix-publish"
|
||||
|
@ -69,6 +69,8 @@
|
||||
(default "cuirass"))
|
||||
(interval cuirass-configuration-interval ;integer (seconds)
|
||||
(default 60))
|
||||
(queue-size cuirass-configuration-queue-size
|
||||
(default 1))
|
||||
(database cuirass-configuration-database ;string (file-name)
|
||||
(default "/var/lib/cuirass/cuirass.db"))
|
||||
(port cuirass-configuration-port ;integer (port)
|
||||
@ -98,6 +100,7 @@
|
||||
(user (cuirass-configuration-user config))
|
||||
(group (cuirass-configuration-group config))
|
||||
(interval (cuirass-configuration-interval config))
|
||||
(queue-size (cuirass-configuration-queue-size config))
|
||||
(database (cuirass-configuration-database config))
|
||||
(ttl (cuirass-configuration-ttl config))
|
||||
(port (cuirass-configuration-port config))
|
||||
@ -119,6 +122,7 @@
|
||||
"--database" #$database
|
||||
"--ttl" #$(string-append (number->string ttl) "s")
|
||||
"--interval" #$(number->string interval)
|
||||
"--queue-size" #$(number->string queue-size)
|
||||
#$@(if queries-log-file
|
||||
(list (string-append "--log-queries="
|
||||
queries-log-file))
|
||||
|
@ -1,3 +1,21 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; 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 services science)
|
||||
#:export (<rshiny-configuration>
|
||||
rshiny-configuration
|
||||
|
@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -57,7 +58,7 @@
|
||||
(modules '((gnu build shepherd)))
|
||||
(start #~(lambda _
|
||||
(invoke #$(file-append pcsc-lite "/sbin/pcscd"))
|
||||
(call-with-input-file "/var/run/pcscd/pcscd.pid" read)))
|
||||
(call-with-input-file "/run/pcscd/pcscd.pid" read)))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define pcscd-activation
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||
@ -33,9 +33,6 @@
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix modules)
|
||||
#:use-module ((guix i18n) #:select (G_))
|
||||
#:use-module ((guix diagnostics) #:select (warning source-properties->location))
|
||||
#:use-module ((guix memoization) #:select (mlambda))
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match)
|
||||
@ -279,16 +276,6 @@ The other options should be self-descriptive."
|
||||
;;; OpenSSH.
|
||||
;;;
|
||||
|
||||
(define true-but-soon-false
|
||||
(mlambda (loc)
|
||||
;; The plan is to change the default 'password-authentication?' to #f in
|
||||
;; Guix 1.3.0 or so. See <https://issues.guix.gnu.org/44808>.
|
||||
(warning (source-properties->location loc)
|
||||
(G_ "The default value of the 'password-authentication?'
|
||||
field of 'openssh-configuration' will change from #true to #false in the
|
||||
future. Explicitly set it to #true to allow password authentication.~%"))
|
||||
#t))
|
||||
|
||||
(define-record-type* <openssh-configuration>
|
||||
openssh-configuration make-openssh-configuration
|
||||
openssh-configuration?
|
||||
@ -309,8 +296,7 @@ future. Explicitly set it to #true to allow password authentication.~%"))
|
||||
(default #f))
|
||||
;; Boolean
|
||||
(password-authentication? openssh-configuration-password-authentication?
|
||||
(default (true-but-soon-false
|
||||
(current-source-location))))
|
||||
(default #t))
|
||||
;; Boolean
|
||||
(public-key-authentication? openssh-configuration-public-key-authentication?
|
||||
(default #t))
|
||||
|
@ -34,6 +34,7 @@
|
||||
#:use-module ((guix store) #:select (%store-prefix))
|
||||
#:use-module (gnu installer)
|
||||
#:use-module (gnu system locale)
|
||||
#:use-module (gnu services avahi)
|
||||
#:use-module (gnu services dbus)
|
||||
#:use-module (gnu services networking)
|
||||
#:use-module (gnu services shepherd)
|
||||
@ -335,6 +336,10 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
|
||||
;; The usual services.
|
||||
(syslog-service)
|
||||
|
||||
;; Use the Avahi daemon to discover substitute servers on the local
|
||||
;; network. It can be faster than fetching from remote servers.
|
||||
(service avahi-service-type)
|
||||
|
||||
;; The build daemon. Register the default substitute server key(s)
|
||||
;; as trusted to allow the installation process to use substitutes by
|
||||
;; default.
|
||||
@ -435,6 +440,7 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
|
||||
(host-name "gnu")
|
||||
(timezone "Europe/Paris")
|
||||
(locale "en_US.utf8")
|
||||
(name-service-switch %mdns-host-lookup-nss)
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
(target "/dev/sda")))
|
||||
|
@ -92,6 +92,7 @@ when STOP-LOOP? procedure returns true."
|
||||
(define* (avahi-browse-service-thread proc
|
||||
#:key
|
||||
types
|
||||
(ignore-local? #t)
|
||||
(family AF_INET)
|
||||
(stop-loop? (const #f))
|
||||
(timeout 100))
|
||||
@ -116,7 +117,9 @@ when STOP-LOOP? procedure returns true."
|
||||
;; Add the service if the host is unknown. This means that if a
|
||||
;; service is available on multiple network interfaces for a single
|
||||
;; host, only the first interface found will be considered.
|
||||
(unless (hash-ref %known-hosts service-name)
|
||||
(unless (or (hash-ref %known-hosts service-name)
|
||||
(and ignore-local?
|
||||
(member lookup-result-flag/local flags)))
|
||||
(let* ((address (inet-ntop family address))
|
||||
(local-address (interface->ip-address interface))
|
||||
(service* (avahi-service
|
||||
@ -144,8 +147,8 @@ when STOP-LOOP? procedure returns true."
|
||||
((eq? event browser-event/remove)
|
||||
(let ((service (hash-ref %known-hosts service-name)))
|
||||
(when service
|
||||
(proc 'remove-service service)
|
||||
(hash-remove! %known-hosts service-name))))))
|
||||
(proc 'remove-service service)
|
||||
(hash-remove! %known-hosts service-name))))))
|
||||
|
||||
(define client-callback
|
||||
(lambda (client state)
|
||||
|
@ -59,7 +59,7 @@ release corresponding to NAME and VERSION."
|
||||
"/src/contrib/"
|
||||
name "_" version ".tar.gz")
|
||||
;; TODO: use %bioconductor-version from (guix import cran)
|
||||
(string-append "https://bioconductor.org/packages/3.11"
|
||||
(string-append "https://bioconductor.org/packages/3.12"
|
||||
type-url-part
|
||||
"/src/contrib/"
|
||||
name "_" version ".tar.gz"))))
|
||||
|
@ -248,22 +248,13 @@
|
||||
(imagemagick
|
||||
;; from http://www.imagemagick.org/script/download.php
|
||||
;; (without mirrors that are unavailable or not up to date)
|
||||
;; mirrors keeping old versions at the top level
|
||||
"https://sunsite.icm.edu.pl/packages/ImageMagick/"
|
||||
;; mirrors moving old versions to "legacy"
|
||||
"http://mirror.checkdomain.de/imagemagick/"
|
||||
"http://ftp.surfnet.nl/pub/ImageMagick/"
|
||||
"http://mirror.searchdaimon.com/ImageMagick"
|
||||
"http://mirror.is.co.za/pub/imagemagick/"
|
||||
"http://www.imagemagick.org/download/"
|
||||
"ftp://mirror.aarnet.edu.au/pub/imagemagick/"
|
||||
"ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/"
|
||||
"ftp://ftp.u-aizu.ac.jp/pub/graphics/image/ImageMagick/imagemagick.org/"
|
||||
"https://sunsite.icm.edu.pl/packages/ImageMagick/releases"
|
||||
"http://mirror.checkdomain.de/imagemagick/releases"
|
||||
"ftp://ftp.u-aizu.ac.jp/pub/graphics/image/ImageMagick/imagemagick.org/releases"
|
||||
"ftp://ftp.nluug.nl/pub/ImageMagick/"
|
||||
"ftp://ftp.tpnet.pl/pub/graphics/ImageMagick/"
|
||||
"ftp://ftp.fifi.org/pub/ImageMagick/"
|
||||
;; one legacy location as a last resort
|
||||
"http://www.imagemagick.org/download/legacy/")
|
||||
"http://www.imagemagick.org/download/releases/"
|
||||
;; Try this if all else fails (normally contains just the latest version).
|
||||
"http://www.imagemagick.org/download/")
|
||||
(debian
|
||||
"http://ftp.de.debian.org/debian/"
|
||||
"http://ftp.fr.debian.org/debian/"
|
||||
|
@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -61,6 +62,11 @@ STR, a glob pattern such as \"foo*\" or \"foo??bar\"."
|
||||
(flatten (reverse (if (null? pending)
|
||||
result
|
||||
(cons-string pending result)))))
|
||||
((#\* #\* #\/ . rest)
|
||||
(if (zero? brackets)
|
||||
(loop rest '() 0
|
||||
(cons* '**/ (cons-string pending result)))
|
||||
(loop rest (cons '**/ pending) brackets result)))
|
||||
(((and chr (or #\? #\*)) . rest)
|
||||
(let ((wildcard (match chr
|
||||
(#\? '?)
|
||||
@ -121,6 +127,15 @@ STR, a glob pattern such as \"foo*\" or \"foo??bar\"."
|
||||
(string-null? str))
|
||||
(('*)
|
||||
#t)
|
||||
(('**/)
|
||||
#t)
|
||||
(('**/ suffix . rest)
|
||||
(let ((rest (if (eq? '* suffix) (cdr rest) rest))
|
||||
(suffix (if (eq? '* suffix) (car rest) suffix)))
|
||||
(match (string-contains str suffix)
|
||||
(#f #f)
|
||||
(index (loop rest (string-drop str
|
||||
(+ index (string-length suffix))))))))
|
||||
(('* suffix . rest)
|
||||
(match (string-contains str suffix)
|
||||
(#f #f)
|
||||
|
@ -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 © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2012, 2015 Free Software Foundation, Inc.
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
@ -70,6 +70,7 @@
|
||||
|
||||
|
||||
(define* (http-fetch uri #:key port (text? #f) (buffered? #t)
|
||||
(keep-alive? #f)
|
||||
(verify-certificate? #t)
|
||||
(headers '((user-agent . "GNU Guile")))
|
||||
timeout)
|
||||
@ -79,6 +80,9 @@ textual. Follow any HTTP redirection. When BUFFERED? is #f, return an
|
||||
unbuffered port, suitable for use in `filtered-port'. HEADERS is an alist of
|
||||
extra HTTP headers.
|
||||
|
||||
When KEEP-ALIVE? is true, the connection is marked as 'keep-alive' and PORT is
|
||||
not closed upon completion.
|
||||
|
||||
When VERIFY-CERTIFICATE? is true, verify HTTPS server certificates.
|
||||
|
||||
TIMEOUT specifies the timeout in seconds for connection establishment; when
|
||||
@ -104,11 +108,7 @@ Raise an '&http-get-error' condition if downloading fails."
|
||||
(setvbuf port 'none))
|
||||
(let*-values (((resp data)
|
||||
(http-get uri #:streaming? #t #:port port
|
||||
;; XXX: When #:keep-alive? is true, if DATA is
|
||||
;; a chunked-encoding port, closing DATA won't
|
||||
;; close PORT, leading to a file descriptor
|
||||
;; leak.
|
||||
#:keep-alive? #f
|
||||
#:keep-alive? keep-alive?
|
||||
#:headers headers))
|
||||
((code)
|
||||
(response-code resp)))
|
||||
|
@ -29,6 +29,7 @@
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 receive)
|
||||
#:use-module (web uri)
|
||||
#:use-module (guix memoization)
|
||||
@ -142,9 +143,9 @@ package definition."
|
||||
(define %cran-url "https://cran.r-project.org/web/packages/")
|
||||
(define %bioconductor-url "https://bioconductor.org/packages/")
|
||||
|
||||
;; The latest Bioconductor release is 3.11. Bioconductor packages should be
|
||||
;; The latest Bioconductor release is 3.12. Bioconductor packages should be
|
||||
;; updated together.
|
||||
(define %bioconductor-version "3.11")
|
||||
(define %bioconductor-version "3.12")
|
||||
|
||||
(define* (bioconductor-packages-list-url #:optional type)
|
||||
(string-append "https://bioconductor.org/packages/"
|
||||
@ -585,7 +586,10 @@ s-expression corresponding to that package, or #f on failure."
|
||||
((bioconductor)
|
||||
;; Retry import from CRAN
|
||||
(cran->guix-package package-name #:repo 'cran))
|
||||
(else (values #f '()))))))))
|
||||
(else
|
||||
(raise (condition
|
||||
(&message
|
||||
(message "couldn't find meta-data for R package")))))))))))
|
||||
|
||||
(define* (cran-recursive-import package-name #:key (repo 'cran))
|
||||
(recursive-import package-name
|
||||
|
@ -120,12 +120,29 @@
|
||||
(define-peg-pattern condition-string all (and QUOTE (* STRCHR) QUOTE))
|
||||
(define-peg-pattern condition-var all (+ (or (range #\a #\z) "-" ":")))
|
||||
|
||||
(define (get-opam-repository)
|
||||
(define* (get-opam-repository #:optional repo)
|
||||
"Update or fetch the latest version of the opam repository and return the
|
||||
path to the repository."
|
||||
(receive (location commit _)
|
||||
(update-cached-checkout "https://github.com/ocaml/opam-repository")
|
||||
location))
|
||||
(let ((url (cond
|
||||
((or (not repo) (equal? repo 'opam))
|
||||
"https://github.com/ocaml/opam-repository")
|
||||
((string-prefix? "coq-" (symbol->string repo))
|
||||
"https://github.com/coq/opam-coq-archive")
|
||||
((equal? repo 'coq) "https://github.com/coq/opam-coq-archive")
|
||||
(else (throw 'unknown-repository repo)))))
|
||||
(receive (location commit _)
|
||||
(update-cached-checkout url)
|
||||
(cond
|
||||
((or (not repo) (equal? repo 'opam))
|
||||
location)
|
||||
((equal? repo 'coq)
|
||||
(string-append location "/released"))
|
||||
((string-prefix? "coq-" (symbol->string repo))
|
||||
(string-append location "/" (substring (symbol->string repo) 4)))
|
||||
(else location)))))
|
||||
|
||||
;; Prevent Guile 3 from inlining this procedure so we can mock it in tests.
|
||||
(set! get-opam-repository get-opam-repository)
|
||||
|
||||
(define (latest-version versions)
|
||||
"Find the most recent version from a list of versions."
|
||||
@ -161,6 +178,7 @@ path to the repository."
|
||||
(substitute-char
|
||||
(cond
|
||||
((equal? name "ocamlfind") "ocaml-findlib")
|
||||
((equal? name "coq") name)
|
||||
((string-prefix? "ocaml" name) name)
|
||||
((string-prefix? "conf-" name) (substring name 5))
|
||||
(else (string-append "ocaml-" name)))
|
||||
@ -235,12 +253,15 @@ path to the repository."
|
||||
(equal? "ocaml" name))
|
||||
names)))
|
||||
|
||||
(define (depends->inputs depends)
|
||||
(define (filter-dependencies depends)
|
||||
"Remove implicit dependencies from the list of dependencies in @var{depends}."
|
||||
(filter (lambda (name)
|
||||
(and (not (equal? "" name))
|
||||
(not (equal? "ocaml" name))
|
||||
(not (equal? "ocamlfind" name))))
|
||||
(map dependency->input depends)))
|
||||
(and (not (member name '("" "ocaml" "ocamlfind" "dune" "jbuilder")))
|
||||
(not (string-prefix? "base-" name))))
|
||||
depends))
|
||||
|
||||
(define (depends->inputs depends)
|
||||
(filter-dependencies (map dependency->input depends)))
|
||||
|
||||
(define (depends->native-inputs depends)
|
||||
(filter (lambda (name) (not (equal? "" name)))
|
||||
@ -261,18 +282,19 @@ path to the repository."
|
||||
(substring version 1)
|
||||
version)))))
|
||||
|
||||
(define* (opam->guix-package name #:key (repository (get-opam-repository)) version)
|
||||
(define* (opam->guix-package name #:key (repo 'opam) version)
|
||||
"Import OPAM package NAME from REPOSITORY (a directory name) or, if
|
||||
REPOSITORY is #f, from the official OPAM repository. Return a 'package' sexp
|
||||
or #f on failure."
|
||||
(and-let* ((opam-file (opam-fetch name repository))
|
||||
(and-let* ((opam-file (opam-fetch name (get-opam-repository repo)))
|
||||
(version (assoc-ref opam-file "version"))
|
||||
(opam-content (pk (assoc-ref opam-file "metadata")))
|
||||
(opam-content (assoc-ref opam-file "metadata"))
|
||||
(url-dict (metadata-ref opam-content "url"))
|
||||
(source-url (or (metadata-ref url-dict "src")
|
||||
(metadata-ref url-dict "archive")))
|
||||
(requirements (metadata-ref opam-content "depends"))
|
||||
(dependencies (dependency-list->names requirements))
|
||||
(names (dependency-list->names requirements))
|
||||
(dependencies (filter-dependencies names))
|
||||
(native-dependencies (depends->native-inputs requirements))
|
||||
(inputs (dependency-list->inputs (depends->inputs requirements)))
|
||||
(native-inputs (dependency-list->inputs
|
||||
@ -282,10 +304,7 @@ or #f on failure."
|
||||
(lambda (name)
|
||||
(not (member name '("dune" "jbuilder"))))
|
||||
native-dependencies))))
|
||||
;; If one of these are required at build time, it means we
|
||||
;; can use the much nicer dune-build-system.
|
||||
(let ((use-dune? (or (member "dune" (append dependencies native-dependencies))
|
||||
(member "jbuilder" (append dependencies native-dependencies)))))
|
||||
(let ((use-dune? (member "dune" names)))
|
||||
(call-with-temporary-output-file
|
||||
(lambda (temp port)
|
||||
(and (url-fetch source-url temp)
|
||||
@ -322,10 +341,11 @@ or #f on failure."
|
||||
(not (member name '("dune" "jbuilder"))))
|
||||
dependencies))))))))
|
||||
|
||||
(define (opam-recursive-import package-name)
|
||||
(define* (opam-recursive-import package-name #:key repo)
|
||||
(recursive-import package-name
|
||||
#:repo->guix-package opam->guix-package
|
||||
#:guix-name ocaml-name->guix-name))
|
||||
#:guix-name ocaml-name->guix-name
|
||||
#:repo repo))
|
||||
|
||||
(define (guix-name->opam-name name)
|
||||
(if (string-prefix? "ocaml-" name)
|
||||
|
@ -275,9 +275,9 @@ version. If APPEND-VERSION?/string is a string, append this string."
|
||||
(cond
|
||||
((string? append-version?/string)
|
||||
(string-append name "-" append-version?/string))
|
||||
((= append-version?/string #t)
|
||||
((eq? append-version?/string #t)
|
||||
(string-append name "-" (version-major+minor version)))
|
||||
((#t) version)))
|
||||
(else name)))
|
||||
,guix-package))))
|
||||
|
||||
(define (build-system-modules)
|
||||
|
@ -337,9 +337,10 @@ should be a <progress-reporter> object."
|
||||
(report total)
|
||||
(loop total (get-bytevector-n! in buffer 0 buffer-size))))))))
|
||||
|
||||
(define (progress-report-port reporter port)
|
||||
(define* (progress-report-port reporter port #:key (close? #t))
|
||||
"Return a port that continuously reports the bytes read from PORT using
|
||||
REPORTER, which should be a <progress-reporter> object."
|
||||
REPORTER, which should be a <progress-reporter> object. When CLOSE? is true,
|
||||
PORT is closed when the returned port is closed."
|
||||
(match reporter
|
||||
(($ <progress-reporter> start report stop)
|
||||
(let* ((total 0)
|
||||
@ -364,5 +365,6 @@ REPORTER, which should be a <progress-reporter> object."
|
||||
;; trace.
|
||||
(unless (zero? total)
|
||||
(stop))
|
||||
(close-port port)))))))
|
||||
(when close?
|
||||
(close-port port))))))))
|
||||
|
||||
|
@ -97,10 +97,11 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
|
||||
((package-name)
|
||||
(if (assoc-ref opts 'recursive)
|
||||
;; Recursive import
|
||||
(map package->definition
|
||||
(filter identity
|
||||
(cran-recursive-import package-name
|
||||
#:repo (or (assoc-ref opts 'repo) 'cran))))
|
||||
(with-error-handling
|
||||
(map package->definition
|
||||
(filter identity
|
||||
(cran-recursive-import package-name
|
||||
#:repo (or (assoc-ref opts 'repo) 'cran)))))
|
||||
;; Single import
|
||||
(let ((sexp (cran->guix-package package-name
|
||||
#:repo (or (assoc-ref opts 'repo) 'cran))))
|
||||
|
@ -44,6 +44,8 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
|
||||
-h, --help display this help and exit"))
|
||||
(display (G_ "
|
||||
-r, --recursive import packages recursively"))
|
||||
(display (G_ "
|
||||
--repo import packages from this opam repository"))
|
||||
(display (G_ "
|
||||
-V, --version display version information and exit"))
|
||||
(newline)
|
||||
@ -58,6 +60,9 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
|
||||
(option '(#\V "version") #f #f
|
||||
(lambda args
|
||||
(show-version-and-exit "guix import opam")))
|
||||
(option '(#f "repo") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'repo arg result)))
|
||||
(option '(#\r "recursive") #f #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'recursive #t result)))
|
||||
@ -79,6 +84,7 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
|
||||
%default-options))
|
||||
|
||||
(let* ((opts (parse-options))
|
||||
(repo (and=> (assoc-ref opts 'repo) string->symbol))
|
||||
(args (filter-map (match-lambda
|
||||
(('argument . value)
|
||||
value)
|
||||
@ -93,9 +99,9 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
|
||||
`(define-public ,(string->symbol name)
|
||||
,pkg))
|
||||
(_ #f))
|
||||
(opam-recursive-import package-name))
|
||||
(opam-recursive-import package-name #:repo repo))
|
||||
;; Single import
|
||||
(let ((sexp (opam->guix-package package-name)))
|
||||
(let ((sexp (opam->guix-package package-name #:repo repo)))
|
||||
(unless sexp
|
||||
(leave (G_ "failed to download meta-data for package '~a'~%")
|
||||
package-name))
|
||||
|
@ -88,6 +88,7 @@
|
||||
write-narinfo
|
||||
|
||||
%allow-unauthenticated-substitutes?
|
||||
%error-to-file-descriptor-4?
|
||||
|
||||
substitute-urls
|
||||
guix-substitute))
|
||||
@ -124,11 +125,7 @@ disabled!~%"))
|
||||
;; purposes, and should be avoided otherwise.
|
||||
(make-parameter
|
||||
(and=> (getenv "GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES")
|
||||
(cut string-ci=? <> "yes"))
|
||||
(lambda (value)
|
||||
(when value
|
||||
(warn-about-missing-authentication))
|
||||
value)))
|
||||
(cut string-ci=? <> "yes"))))
|
||||
|
||||
(define %narinfo-ttl
|
||||
;; Number of seconds during which cached narinfo lookups are considered
|
||||
@ -191,9 +188,14 @@ again."
|
||||
(sigaction SIGALRM SIG_DFL)
|
||||
(apply values result)))))
|
||||
|
||||
(define* (fetch uri #:key (buffered? #t) (timeout? #t))
|
||||
(define* (fetch uri #:key (buffered? #t) (timeout? #t)
|
||||
(keep-alive? #f) (port #f))
|
||||
"Return a binary input port to URI and the number of bytes it's expected to
|
||||
provide."
|
||||
provide.
|
||||
|
||||
When PORT is true, use it as the underlying I/O port for HTTP transfers; when
|
||||
PORT is false, open a new connection for URI. When KEEP-ALIVE? is true, the
|
||||
connection (typically PORT) is kept open once data has been fetched from URI."
|
||||
(case (uri-scheme uri)
|
||||
((file)
|
||||
(let ((port (open-file (uri-path uri)
|
||||
@ -209,7 +211,7 @@ provide."
|
||||
;; sudo tc qdisc add dev eth0 root netem delay 1500ms
|
||||
;; and then cancel with:
|
||||
;; sudo tc qdisc del dev eth0 root
|
||||
(let ((port #f))
|
||||
(let ((port port))
|
||||
(with-timeout (if timeout?
|
||||
%fetch-timeout
|
||||
0)
|
||||
@ -220,10 +222,11 @@ provide."
|
||||
(begin
|
||||
(when (or (not port) (port-closed? port))
|
||||
(set! port (guix:open-connection-for-uri
|
||||
uri #:verify-certificate? #f))
|
||||
(unless (or buffered? (not (file-port? port)))
|
||||
(setvbuf port 'none)))
|
||||
uri #:verify-certificate? #f)))
|
||||
(unless (or buffered? (not (file-port? port)))
|
||||
(setvbuf port 'none))
|
||||
(http-fetch uri #:text? #f #:port port
|
||||
#:keep-alive? keep-alive?
|
||||
#:verify-certificate? #f))))))
|
||||
(else
|
||||
(leave (G_ "unsupported substitute URI scheme: ~a~%")
|
||||
@ -481,17 +484,17 @@ indicates that PATH is unavailable at CACHE-URL."
|
||||
(build-request (string->uri url) #:method 'GET #:headers headers)))
|
||||
|
||||
(define (at-most max-length lst)
|
||||
"If LST is shorter than MAX-LENGTH, return it; otherwise return its
|
||||
MAX-LENGTH first elements."
|
||||
"If LST is shorter than MAX-LENGTH, return it and the empty list; otherwise
|
||||
return its MAX-LENGTH first elements and its tail."
|
||||
(let loop ((len 0)
|
||||
(lst lst)
|
||||
(result '()))
|
||||
(match lst
|
||||
(()
|
||||
(reverse result))
|
||||
(values (reverse result) '()))
|
||||
((head . tail)
|
||||
(if (>= len max-length)
|
||||
(reverse result)
|
||||
(values (reverse result) lst)
|
||||
(loop (+ 1 len) tail (cons head result)))))))
|
||||
|
||||
(define* (http-multiple-get base-uri proc seed requests
|
||||
@ -893,6 +896,9 @@ authorized substitutes."
|
||||
(define (valid? obj)
|
||||
(valid-narinfo? obj acl))
|
||||
|
||||
(when (%allow-unauthenticated-substitutes?)
|
||||
(warn-about-missing-authentication))
|
||||
|
||||
(match (string-tokenize command)
|
||||
(("have" paths ..1)
|
||||
;; Return the subset of PATHS available in CACHE-URLS.
|
||||
@ -962,6 +968,68 @@ the URI, its compression method (a string), and the compressed file size."
|
||||
(((uri compression file-size) _ ...)
|
||||
(values uri compression file-size))))
|
||||
|
||||
(define %max-cached-connections
|
||||
;; Maximum number of connections kept in cache by
|
||||
;; 'open-connection-for-uri/cached'.
|
||||
16)
|
||||
|
||||
(define open-connection-for-uri/cached
|
||||
(let ((cache '()))
|
||||
(lambda* (uri #:key fresh?)
|
||||
"Return a connection for URI, possibly reusing a cached connection.
|
||||
When FRESH? is true, delete any cached connections for URI and open a new
|
||||
one. Return #f if URI's scheme is 'file' or #f."
|
||||
(define host (uri-host uri))
|
||||
(define scheme (uri-scheme uri))
|
||||
(define key (list host scheme (uri-port uri)))
|
||||
|
||||
(and (not (memq scheme '(file #f)))
|
||||
(match (assoc-ref cache key)
|
||||
(#f
|
||||
;; Open a new connection to URI and evict old entries from
|
||||
;; CACHE, if any.
|
||||
(let-values (((socket)
|
||||
(guix:open-connection-for-uri
|
||||
uri #:verify-certificate? #f))
|
||||
((new-cache evicted)
|
||||
(at-most (- %max-cached-connections 1) cache)))
|
||||
(for-each (match-lambda
|
||||
((_ . port)
|
||||
(false-if-exception (close-port port))))
|
||||
evicted)
|
||||
(set! cache (alist-cons key socket new-cache))
|
||||
socket))
|
||||
(socket
|
||||
(if (or fresh? (port-closed? socket))
|
||||
(begin
|
||||
(false-if-exception (close-port socket))
|
||||
(set! cache (alist-delete key cache))
|
||||
(open-connection-for-uri/cached uri))
|
||||
(begin
|
||||
;; Drain input left from the previous use.
|
||||
(drain-input socket)
|
||||
socket))))))))
|
||||
|
||||
(define (call-with-cached-connection uri proc)
|
||||
(let ((port (open-connection-for-uri/cached uri)))
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(proc port))
|
||||
(lambda (key . args)
|
||||
;; If PORT was cached and the server closed the connection in the
|
||||
;; meantime, we get EPIPE. In that case, open a fresh connection and
|
||||
;; retry. We might also get 'bad-response or a similar exception from
|
||||
;; (web response) later on, once we've sent the request.
|
||||
(if (or (and (eq? key 'system-error)
|
||||
(= EPIPE (system-error-errno `(,key ,@args))))
|
||||
(memq key '(bad-response bad-header bad-header-component)))
|
||||
(proc (open-connection-for-uri/cached uri #:fresh? #t))
|
||||
(apply throw key args))))))
|
||||
|
||||
(define-syntax-rule (with-cached-connection uri port exp ...)
|
||||
"Bind PORT with EXP... to a socket connected to URI."
|
||||
(call-with-cached-connection uri (lambda (port) exp ...)))
|
||||
|
||||
(define* (process-substitution store-item destination
|
||||
#:key cache-urls acl print-build-trace?)
|
||||
"Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to
|
||||
@ -984,10 +1052,12 @@ DESTINATION as a nar file. Verify the substitute against ACL."
|
||||
(G_ "Downloading ~a...~%") (uri->string uri)))
|
||||
|
||||
(let*-values (((raw download-size)
|
||||
;; Note that Hydra currently generates Nars on the fly
|
||||
;; and doesn't specify a Content-Length, so
|
||||
;; DOWNLOAD-SIZE is #f in practice.
|
||||
(fetch uri #:buffered? #f #:timeout? #f))
|
||||
;; 'guix publish' without '--cache' doesn't specify a
|
||||
;; Content-Length, so DOWNLOAD-SIZE is #f in this case.
|
||||
(with-cached-connection uri port
|
||||
(fetch uri #:buffered? #f #:timeout? #f
|
||||
#:port port
|
||||
#:keep-alive? #t)))
|
||||
((progress)
|
||||
(let* ((dl-size (or download-size
|
||||
(and (equal? compression "none")
|
||||
@ -1001,7 +1071,9 @@ DESTINATION as a nar file. Verify the substitute against ACL."
|
||||
(uri->string uri) dl-size
|
||||
(current-error-port)
|
||||
#:abbreviation nar-uri-abbreviation))))
|
||||
(progress-report-port reporter raw)))
|
||||
;; Keep RAW open upon completion so we can later reuse
|
||||
;; the underlying connection.
|
||||
(progress-report-port reporter raw #:close? #f)))
|
||||
((input pids)
|
||||
;; NOTE: This 'progress' port of current process will be
|
||||
;; closed here, while the child process doing the
|
||||
@ -1017,7 +1089,10 @@ DESTINATION as a nar file. Verify the substitute against ACL."
|
||||
|
||||
;; Skip a line after what 'progress-reporter/file' printed, and another
|
||||
;; one to visually separate substitutions.
|
||||
(display "\n\n" (current-error-port)))))
|
||||
(display "\n\n" (current-error-port))
|
||||
|
||||
;; Tell the daemon that we're done.
|
||||
(display "success\n" (current-output-port)))))
|
||||
|
||||
|
||||
;;;
|
||||
@ -1128,6 +1203,11 @@ default value."
|
||||
(unless (string->uri uri)
|
||||
(leave (G_ "~a: invalid URI~%") uri)))
|
||||
|
||||
(define %error-to-file-descriptor-4?
|
||||
;; Whether to direct 'current-error-port' to file descriptor 4 like
|
||||
;; 'guix-daemon' expects.
|
||||
(make-parameter #t))
|
||||
|
||||
(define-command (guix-substitute . args)
|
||||
(category internal)
|
||||
(synopsis "implement the build daemon's substituter protocol")
|
||||
@ -1139,71 +1219,78 @@ default value."
|
||||
((= string->number number) (> number 0))
|
||||
(_ #f)))
|
||||
|
||||
(mkdir-p %narinfo-cache-directory)
|
||||
(maybe-remove-expired-cache-entries %narinfo-cache-directory
|
||||
cached-narinfo-files
|
||||
#:entry-expiration
|
||||
cached-narinfo-expiration-time
|
||||
#:cleanup-period
|
||||
%narinfo-expired-cache-entry-removal-delay)
|
||||
(check-acl-initialized)
|
||||
;; The daemon's agent code opens file descriptor 4 for us and this is where
|
||||
;; stderr should go.
|
||||
(parameterize ((current-error-port (if (%error-to-file-descriptor-4?)
|
||||
(fdopen 4 "wl")
|
||||
(current-error-port))))
|
||||
;; Redirect diagnostics to file descriptor 4 as well.
|
||||
(guix-warning-port (current-error-port))
|
||||
|
||||
;; Starting from commit 22144afa in Nix, we are allowed to bail out directly
|
||||
;; when we know we cannot substitute, but we must emit a newline on stdout
|
||||
;; when everything is alright.
|
||||
(when (null? (substitute-urls))
|
||||
(exit 0))
|
||||
(mkdir-p %narinfo-cache-directory)
|
||||
(maybe-remove-expired-cache-entries %narinfo-cache-directory
|
||||
cached-narinfo-files
|
||||
#:entry-expiration
|
||||
cached-narinfo-expiration-time
|
||||
#:cleanup-period
|
||||
%narinfo-expired-cache-entry-removal-delay)
|
||||
(check-acl-initialized)
|
||||
|
||||
;; Say hello (see above.)
|
||||
(newline)
|
||||
(force-output (current-output-port))
|
||||
;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error
|
||||
;; message.
|
||||
(for-each validate-uri (substitute-urls))
|
||||
|
||||
;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error message.
|
||||
(for-each validate-uri (substitute-urls))
|
||||
;; Attempt to install the client's locale so that messages are suitably
|
||||
;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default
|
||||
;; so don't change it.
|
||||
(match (or (find-daemon-option "untrusted-locale")
|
||||
(find-daemon-option "locale"))
|
||||
(#f #f)
|
||||
(locale (false-if-exception (setlocale LC_MESSAGES locale))))
|
||||
|
||||
;; Attempt to install the client's locale so that messages are suitably
|
||||
;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default so
|
||||
;; don't change it.
|
||||
(match (or (find-daemon-option "untrusted-locale")
|
||||
(find-daemon-option "locale"))
|
||||
(#f #f)
|
||||
(locale (false-if-exception (setlocale LC_MESSAGES locale))))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(set-thread-name "guix substitute"))
|
||||
(const #t)) ;GNU/Hurd lacks 'prctl'
|
||||
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(set-thread-name "guix substitute"))
|
||||
(const #t)) ;GNU/Hurd lacks 'prctl'
|
||||
|
||||
(with-networking
|
||||
(with-error-handling ; for signature errors
|
||||
(match args
|
||||
(("--query")
|
||||
(let ((acl (current-acl)))
|
||||
(let loop ((command (read-line)))
|
||||
(or (eof-object? command)
|
||||
(begin
|
||||
(process-query command
|
||||
#:cache-urls (substitute-urls)
|
||||
#:acl acl)
|
||||
(loop (read-line)))))))
|
||||
(("--substitute" store-path destination)
|
||||
;; Download STORE-PATH and add store it as a Nar in file DESTINATION.
|
||||
;; Specify the number of columns of the terminal so the progress
|
||||
;; report displays nicely.
|
||||
(parameterize ((current-terminal-columns (client-terminal-columns)))
|
||||
(process-substitution store-path destination
|
||||
#:cache-urls (substitute-urls)
|
||||
#:acl (current-acl)
|
||||
#:print-build-trace? print-build-trace?)))
|
||||
((or ("-V") ("--version"))
|
||||
(show-version-and-exit "guix substitute"))
|
||||
(("--help")
|
||||
(show-help))
|
||||
(opts
|
||||
(leave (G_ "~a: unrecognized options~%") opts))))))
|
||||
(with-networking
|
||||
(with-error-handling ; for signature errors
|
||||
(match args
|
||||
(("--query")
|
||||
(let ((acl (current-acl)))
|
||||
(let loop ((command (read-line)))
|
||||
(or (eof-object? command)
|
||||
(begin
|
||||
(process-query command
|
||||
#:cache-urls (substitute-urls)
|
||||
#:acl acl)
|
||||
(loop (read-line)))))))
|
||||
(("--substitute")
|
||||
;; Download STORE-PATH and store it as a Nar in file DESTINATION.
|
||||
;; Specify the number of columns of the terminal so the progress
|
||||
;; report displays nicely.
|
||||
(parameterize ((current-terminal-columns (client-terminal-columns)))
|
||||
(let loop ()
|
||||
(match (read-line)
|
||||
((? eof-object?)
|
||||
#t)
|
||||
((= string-tokenize ("substitute" store-path destination))
|
||||
(process-substitution store-path destination
|
||||
#:cache-urls (substitute-urls)
|
||||
#:acl (current-acl)
|
||||
#:print-build-trace?
|
||||
print-build-trace?)
|
||||
(loop))))))
|
||||
((or ("-V") ("--version"))
|
||||
(show-version-and-exit "guix substitute"))
|
||||
(("--help")
|
||||
(show-help))
|
||||
(opts
|
||||
(leave (G_ "~a: unrecognized options~%") opts)))))))
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'with-timeout 'scheme-indent-function 1)
|
||||
;;; eval: (put 'with-cached-connection 'scheme-indent-function 2)
|
||||
;;; End:
|
||||
|
||||
;;; substitute.scm ends here
|
||||
|
@ -649,18 +649,26 @@ load path."
|
||||
|
||||
(program-file "guix-command"
|
||||
#~(begin
|
||||
;; Remove the empty extension from the search path.
|
||||
(set! %load-extensions '(".scm"))
|
||||
|
||||
(set! %load-path
|
||||
(cons (string-append #$module-directory
|
||||
"/share/guile/site/"
|
||||
(effective-version))
|
||||
%load-path))
|
||||
(append (list (string-append #$module-directory
|
||||
"/share/guile/site/"
|
||||
(effective-version))
|
||||
(string-append #$guile "/share/guile/"
|
||||
(effective-version)))
|
||||
%load-path))
|
||||
|
||||
(set! %load-compiled-path
|
||||
(cons (string-append #$module-directory
|
||||
"/lib/guile/"
|
||||
(effective-version)
|
||||
"/site-ccache")
|
||||
%load-compiled-path))
|
||||
(append (list (string-append #$module-directory
|
||||
"/lib/guile/"
|
||||
(effective-version)
|
||||
"/site-ccache")
|
||||
(string-append #$guile "/lib/guile/"
|
||||
(effective-version)
|
||||
"/ccache"))
|
||||
%load-compiled-path))
|
||||
|
||||
;; To maximize the chances that locales are set up right
|
||||
;; out-of-the-box, bundle "common" UTF-8 locales.
|
||||
|
@ -21,7 +21,6 @@
|
||||
(define-module (guix store database)
|
||||
#:use-module (sqlite3)
|
||||
#:use-module (guix config)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix serialization)
|
||||
#:use-module (guix store deduplication)
|
||||
#:use-module (guix base16)
|
||||
@ -29,7 +28,6 @@
|
||||
#:use-module (guix build syscalls)
|
||||
#:use-module ((guix build utils)
|
||||
#:select (mkdir-p executable-file?))
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build store-copy)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
|
@ -26,7 +26,7 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_PATH_PROG([SED], [sed])
|
||||
|
||||
AC_ARG_WITH(system, AC_HELP_STRING([--with-system=SYSTEM],
|
||||
AC_ARG_WITH(system, AS_HELP_STRING([--with-system=SYSTEM],
|
||||
[Platform identifier (e.g., `i686-linux').]),
|
||||
[guix_system="$withval"],
|
||||
[case "$host_cpu" in
|
||||
@ -78,7 +78,7 @@ dnl Assert that this is a system to which the distro is ported.
|
||||
AC_DEFUN([GUIX_ASSERT_SUPPORTED_SYSTEM], [
|
||||
AC_REQUIRE([GUIX_SYSTEM_TYPE])
|
||||
|
||||
AC_ARG_WITH([courage], [AC_HELP_STRING([--with-courage],
|
||||
AC_ARG_WITH([courage], [AS_HELP_STRING([--with-courage],
|
||||
[Assert that even if this platform is unsupported, you will be
|
||||
courageous and port the GNU System distribution to it (see
|
||||
"GNU Distribution" in the manual.)])],
|
||||
|
@ -262,6 +262,7 @@ public:
|
||||
LocalStore & store;
|
||||
|
||||
std::shared_ptr<Agent> hook;
|
||||
std::shared_ptr<Agent> substituter;
|
||||
|
||||
Worker(LocalStore & store);
|
||||
~Worker();
|
||||
@ -2773,15 +2774,6 @@ private:
|
||||
/* Path info returned by the substituter's query info operation. */
|
||||
SubstitutablePathInfo info;
|
||||
|
||||
/* Pipe for the substituter's standard output. */
|
||||
Pipe outPipe;
|
||||
|
||||
/* Pipe for the substituter's standard error. */
|
||||
Pipe logPipe;
|
||||
|
||||
/* The process ID of the builder. */
|
||||
Pid pid;
|
||||
|
||||
/* Lock on the store path. */
|
||||
std::shared_ptr<PathLocks> outputLock;
|
||||
|
||||
@ -2795,6 +2787,17 @@ private:
|
||||
typedef void (SubstitutionGoal::*GoalState)();
|
||||
GoalState state;
|
||||
|
||||
/* The substituter. */
|
||||
std::shared_ptr<Agent> substituter;
|
||||
|
||||
/* Either the empty string, or the expected hash as returned by the
|
||||
substituter. */
|
||||
string expectedHashStr;
|
||||
|
||||
/* Either the empty string, or the status phrase returned by the
|
||||
substituter. */
|
||||
string status;
|
||||
|
||||
void tryNext();
|
||||
|
||||
public:
|
||||
@ -2840,7 +2843,7 @@ SubstitutionGoal::SubstitutionGoal(const Path & storePath, Worker & worker, bool
|
||||
|
||||
SubstitutionGoal::~SubstitutionGoal()
|
||||
{
|
||||
if (pid != -1) worker.childTerminated(pid);
|
||||
if (substituter) worker.childTerminated(substituter->pid);
|
||||
}
|
||||
|
||||
|
||||
@ -2848,9 +2851,9 @@ void SubstitutionGoal::timedOut()
|
||||
{
|
||||
if (settings.printBuildTrace)
|
||||
printMsg(lvlError, format("@ substituter-failed %1% timeout") % storePath);
|
||||
if (pid != -1) {
|
||||
pid_t savedPid = pid;
|
||||
pid.kill();
|
||||
if (substituter) {
|
||||
pid_t savedPid = substituter->pid;
|
||||
substituter.reset();
|
||||
worker.childTerminated(savedPid);
|
||||
}
|
||||
amDone(ecFailed);
|
||||
@ -2977,44 +2980,29 @@ void SubstitutionGoal::tryToRun()
|
||||
|
||||
printMsg(lvlInfo, format("fetching path `%1%'...") % storePath);
|
||||
|
||||
outPipe.create();
|
||||
logPipe.create();
|
||||
|
||||
destPath = repair ? storePath + ".tmp" : storePath;
|
||||
|
||||
/* Remove the (stale) output path if it exists. */
|
||||
if (pathExists(destPath))
|
||||
deletePath(destPath);
|
||||
|
||||
worker.store.setSubstituterEnv();
|
||||
if (!worker.substituter) {
|
||||
const Strings args = { "substitute", "--substitute" };
|
||||
const std::map<string, string> env = { { "_NIX_OPTIONS", settings.pack() } };
|
||||
worker.substituter = std::make_shared<Agent>(settings.guixProgram, args, env);
|
||||
}
|
||||
|
||||
/* Fill in the arguments. */
|
||||
Strings args;
|
||||
args.push_back("guix");
|
||||
args.push_back("substitute");
|
||||
args.push_back("--substitute");
|
||||
args.push_back(storePath);
|
||||
args.push_back(destPath);
|
||||
/* Borrow the worker's substituter. */
|
||||
if (!substituter) substituter.swap(worker.substituter);
|
||||
|
||||
/* Fork the substitute program. */
|
||||
pid = startProcess([&]() {
|
||||
/* Send the request to the substituter. */
|
||||
writeLine(substituter->toAgent.writeSide,
|
||||
(format("substitute %1% %2%") % storePath % destPath).str());
|
||||
|
||||
commonChildInit(logPipe);
|
||||
|
||||
if (dup2(outPipe.writeSide, STDOUT_FILENO) == -1)
|
||||
throw SysError("cannot dup output pipe into stdout");
|
||||
|
||||
execv(settings.guixProgram.c_str(), stringsToCharPtrs(args).data());
|
||||
|
||||
throw SysError(format("executing `%1% substitute'") % settings.guixProgram);
|
||||
});
|
||||
|
||||
pid.setSeparatePG(true);
|
||||
pid.setKillSignal(SIGTERM);
|
||||
outPipe.writeSide.close();
|
||||
logPipe.writeSide.close();
|
||||
worker.childStarted(shared_from_this(),
|
||||
pid, singleton<set<int> >(logPipe.readSide), true, true);
|
||||
set<int> fds;
|
||||
fds.insert(substituter->fromAgent.readSide);
|
||||
fds.insert(substituter->builderOut.readSide);
|
||||
worker.childStarted(shared_from_this(), substituter->pid, fds, true, true);
|
||||
|
||||
state = &SubstitutionGoal::finished;
|
||||
|
||||
@ -3029,54 +3017,51 @@ void SubstitutionGoal::finished()
|
||||
{
|
||||
trace("substitute finished");
|
||||
|
||||
/* Since we got an EOF on the logger pipe, the substitute is
|
||||
presumed to have terminated. */
|
||||
pid_t savedPid = pid;
|
||||
int status = pid.wait(true);
|
||||
/* Remove the 'guix substitute' process from the list of children. */
|
||||
worker.childTerminated(substituter->pid);
|
||||
|
||||
/* So the child is gone now. */
|
||||
worker.childTerminated(savedPid);
|
||||
|
||||
/* Close the read side of the logger pipe. */
|
||||
logPipe.readSide.close();
|
||||
|
||||
/* Get the hash info from stdout. */
|
||||
string dummy = readLine(outPipe.readSide);
|
||||
string expectedHashStr = statusOk(status) ? readLine(outPipe.readSide) : "";
|
||||
outPipe.readSide.close();
|
||||
/* If max-jobs > 1, the worker might have created a new 'substitute'
|
||||
process in the meantime. If that is the case, terminate ours;
|
||||
otherwise, give it back to the worker. */
|
||||
if (worker.substituter) {
|
||||
substituter.reset ();
|
||||
} else {
|
||||
worker.substituter.swap(substituter);
|
||||
}
|
||||
|
||||
/* Check the exit status and the build result. */
|
||||
HashResult hash;
|
||||
try {
|
||||
|
||||
if (!statusOk(status))
|
||||
throw SubstError(format("fetching path `%1%' %2%")
|
||||
% storePath % statusToString(status));
|
||||
if (status != "success")
|
||||
throw SubstError(format("fetching path `%1%' (status: '%2%')")
|
||||
% storePath % status);
|
||||
|
||||
if (!pathExists(destPath))
|
||||
throw SubstError(format("substitute did not produce path `%1%'") % destPath);
|
||||
|
||||
if (expectedHashStr == "")
|
||||
throw SubstError(format("substituter did not communicate hash for `%1'") % storePath);
|
||||
|
||||
hash = hashPath(htSHA256, destPath);
|
||||
|
||||
/* Verify the expected hash we got from the substituer. */
|
||||
if (expectedHashStr != "") {
|
||||
size_t n = expectedHashStr.find(':');
|
||||
if (n == string::npos)
|
||||
throw Error(format("bad hash from substituter: %1%") % expectedHashStr);
|
||||
HashType hashType = parseHashType(string(expectedHashStr, 0, n));
|
||||
if (hashType == htUnknown)
|
||||
throw Error(format("unknown hash algorithm in `%1%'") % expectedHashStr);
|
||||
Hash expectedHash = parseHash16or32(hashType, string(expectedHashStr, n + 1));
|
||||
Hash actualHash = hashType == htSHA256 ? hash.first : hashPath(hashType, destPath).first;
|
||||
if (expectedHash != actualHash) {
|
||||
if (settings.printBuildTrace)
|
||||
printMsg(lvlError, format("@ hash-mismatch %1% %2% %3% %4%")
|
||||
% storePath % "sha256"
|
||||
% printHash16or32(expectedHash)
|
||||
% printHash16or32(actualHash));
|
||||
throw SubstError(format("hash mismatch for substituted item `%1%'") % storePath);
|
||||
}
|
||||
}
|
||||
size_t n = expectedHashStr.find(':');
|
||||
if (n == string::npos)
|
||||
throw Error(format("bad hash from substituter: %1%") % expectedHashStr);
|
||||
HashType hashType = parseHashType(string(expectedHashStr, 0, n));
|
||||
if (hashType == htUnknown)
|
||||
throw Error(format("unknown hash algorithm in `%1%'") % expectedHashStr);
|
||||
Hash expectedHash = parseHash16or32(hashType, string(expectedHashStr, n + 1));
|
||||
Hash actualHash = hashType == htSHA256 ? hash.first : hashPath(hashType, destPath).first;
|
||||
if (expectedHash != actualHash) {
|
||||
if (settings.printBuildTrace)
|
||||
printMsg(lvlError, format("@ hash-mismatch %1% %2% %3% %4%")
|
||||
% storePath % "sha256"
|
||||
% printHash16or32(expectedHash)
|
||||
% printHash16or32(actualHash));
|
||||
throw SubstError(format("hash mismatch for substituted item `%1%'") % storePath);
|
||||
}
|
||||
|
||||
} catch (SubstError & e) {
|
||||
|
||||
@ -3122,16 +3107,40 @@ void SubstitutionGoal::finished()
|
||||
|
||||
void SubstitutionGoal::handleChildOutput(int fd, const string & data)
|
||||
{
|
||||
assert(fd == logPipe.readSide);
|
||||
if (verbosity >= settings.buildVerbosity) writeToStderr(data);
|
||||
/* Don't write substitution output to a log file for now. We
|
||||
probably should, though. */
|
||||
if (verbosity >= settings.buildVerbosity
|
||||
&& fd == substituter->builderOut.readSide) {
|
||||
writeToStderr(data);
|
||||
/* Don't write substitution output to a log file for now. We
|
||||
probably should, though. */
|
||||
}
|
||||
|
||||
if (fd == substituter->fromAgent.readSide) {
|
||||
/* DATA may consist of several lines. Process them one by one. */
|
||||
string input = data;
|
||||
while (!input.empty()) {
|
||||
/* Process up to the first newline. */
|
||||
size_t end = input.find_first_of("\n");
|
||||
string trimmed = (end != string::npos) ? input.substr(0, end) : input;
|
||||
|
||||
/* Update the goal's state accordingly. */
|
||||
if (expectedHashStr == "") {
|
||||
expectedHashStr = trimmed;
|
||||
} else if (status == "") {
|
||||
status = trimmed;
|
||||
worker.wakeUp(shared_from_this());
|
||||
} else {
|
||||
printMsg(lvlError, format("unexpected substituter message '%1%'") % input);
|
||||
}
|
||||
|
||||
input = (end != string::npos) ? input.substr(end + 1) : "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SubstitutionGoal::handleEOF(int fd)
|
||||
{
|
||||
if (fd == logPipe.readSide) worker.wakeUp(shared_from_this());
|
||||
worker.wakeUp(shared_from_this());
|
||||
}
|
||||
|
||||
|
||||
|
@ -57,7 +57,6 @@ void checkStoreNotSymlink()
|
||||
|
||||
|
||||
LocalStore::LocalStore(bool reserveSpace)
|
||||
: didSetSubstituterEnv(false)
|
||||
{
|
||||
schemaPath = settings.nixDBPath + "/schema";
|
||||
|
||||
@ -182,21 +181,6 @@ LocalStore::LocalStore(bool reserveSpace)
|
||||
|
||||
LocalStore::~LocalStore()
|
||||
{
|
||||
try {
|
||||
if (runningSubstituter) {
|
||||
RunningSubstituter &i = *runningSubstituter;
|
||||
if (!i.disabled) {
|
||||
i.to.close();
|
||||
i.from.close();
|
||||
i.error.close();
|
||||
if (i.pid != -1)
|
||||
i.pid.wait(true);
|
||||
}
|
||||
}
|
||||
} catch (...) {
|
||||
ignoreException();
|
||||
}
|
||||
|
||||
try {
|
||||
if (fdTempRoots != -1) {
|
||||
fdTempRoots.close();
|
||||
@ -796,96 +780,31 @@ Path LocalStore::queryPathFromHashPart(const string & hashPart)
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void LocalStore::setSubstituterEnv()
|
||||
{
|
||||
if (didSetSubstituterEnv) return;
|
||||
|
||||
/* Pass configuration options (including those overridden with
|
||||
--option) to substituters. */
|
||||
setenv("_NIX_OPTIONS", settings.pack().c_str(), 1);
|
||||
|
||||
didSetSubstituterEnv = true;
|
||||
}
|
||||
|
||||
|
||||
void LocalStore::startSubstituter(RunningSubstituter & run)
|
||||
{
|
||||
if (run.disabled || run.pid != -1) return;
|
||||
|
||||
debug(format("starting substituter program `%1% substitute'")
|
||||
% settings.guixProgram);
|
||||
|
||||
Pipe toPipe, fromPipe, errorPipe;
|
||||
|
||||
toPipe.create();
|
||||
fromPipe.create();
|
||||
errorPipe.create();
|
||||
|
||||
setSubstituterEnv();
|
||||
|
||||
run.pid = startProcess([&]() {
|
||||
if (dup2(toPipe.readSide, STDIN_FILENO) == -1)
|
||||
throw SysError("dupping stdin");
|
||||
if (dup2(fromPipe.writeSide, STDOUT_FILENO) == -1)
|
||||
throw SysError("dupping stdout");
|
||||
if (dup2(errorPipe.writeSide, STDERR_FILENO) == -1)
|
||||
throw SysError("dupping stderr");
|
||||
execl(settings.guixProgram.c_str(), "guix", "substitute", "--query", NULL);
|
||||
throw SysError(format("executing `%1%'") % settings.guixProgram);
|
||||
});
|
||||
|
||||
run.to = toPipe.writeSide.borrow();
|
||||
run.from = run.fromBuf.fd = fromPipe.readSide.borrow();
|
||||
run.error = errorPipe.readSide.borrow();
|
||||
|
||||
toPipe.readSide.close();
|
||||
fromPipe.writeSide.close();
|
||||
errorPipe.writeSide.close();
|
||||
|
||||
/* The substituter may exit right away if it's disabled in any way
|
||||
(e.g. copy-from-other-stores.pl will exit if no other stores
|
||||
are configured). */
|
||||
try {
|
||||
getLineFromSubstituter(run);
|
||||
} catch (EndOfFile & e) {
|
||||
run.to.close();
|
||||
run.from.close();
|
||||
run.error.close();
|
||||
run.disabled = true;
|
||||
if (run.pid.wait(true) != 0) throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Read a line from the substituter's stdout, while also processing
|
||||
its stderr. */
|
||||
string LocalStore::getLineFromSubstituter(RunningSubstituter & run)
|
||||
string LocalStore::getLineFromSubstituter(Agent & run)
|
||||
{
|
||||
string res, err;
|
||||
|
||||
/* We might have stdout data left over from the last time. */
|
||||
if (run.fromBuf.hasData()) goto haveData;
|
||||
|
||||
while (1) {
|
||||
checkInterrupt();
|
||||
|
||||
fd_set fds;
|
||||
FD_ZERO(&fds);
|
||||
FD_SET(run.from, &fds);
|
||||
FD_SET(run.error, &fds);
|
||||
FD_SET(run.fromAgent.readSide, &fds);
|
||||
FD_SET(run.builderOut.readSide, &fds);
|
||||
|
||||
/* Wait for data to appear on the substituter's stdout or
|
||||
stderr. */
|
||||
if (select(run.from > run.error ? run.from + 1 : run.error + 1, &fds, 0, 0, 0) == -1) {
|
||||
if (select(std::max(run.fromAgent.readSide, run.builderOut.readSide) + 1, &fds, 0, 0, 0) == -1) {
|
||||
if (errno == EINTR) continue;
|
||||
throw SysError("waiting for input from the substituter");
|
||||
}
|
||||
|
||||
/* Completely drain stderr before dealing with stdout. */
|
||||
if (FD_ISSET(run.error, &fds)) {
|
||||
if (FD_ISSET(run.builderOut.readSide, &fds)) {
|
||||
char buf[4096];
|
||||
ssize_t n = read(run.error, (unsigned char *) buf, sizeof(buf));
|
||||
ssize_t n = read(run.builderOut.readSide, (unsigned char *) buf, sizeof(buf));
|
||||
if (n == -1) {
|
||||
if (errno == EINTR) continue;
|
||||
throw SysError("reading from substituter's stderr");
|
||||
@ -903,23 +822,20 @@ string LocalStore::getLineFromSubstituter(RunningSubstituter & run)
|
||||
}
|
||||
|
||||
/* Read from stdout until we get a newline or the buffer is empty. */
|
||||
else if (run.fromBuf.hasData() || FD_ISSET(run.from, &fds)) {
|
||||
haveData:
|
||||
do {
|
||||
unsigned char c;
|
||||
run.fromBuf(&c, 1);
|
||||
if (c == '\n') {
|
||||
if (!err.empty()) printMsg(lvlError, "substitute: " + err);
|
||||
return res;
|
||||
}
|
||||
res += c;
|
||||
} while (run.fromBuf.hasData());
|
||||
else if (FD_ISSET(run.fromAgent.readSide, &fds)) {
|
||||
unsigned char c;
|
||||
readFull(run.fromAgent.readSide, (unsigned char *) &c, 1);
|
||||
if (c == '\n') {
|
||||
if (!err.empty()) printMsg(lvlError, "substitute: " + err);
|
||||
return res;
|
||||
}
|
||||
res += c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<class T> T LocalStore::getIntLineFromSubstituter(RunningSubstituter & run)
|
||||
template<class T> T LocalStore::getIntLineFromSubstituter(Agent & run)
|
||||
{
|
||||
string s = getLineFromSubstituter(run);
|
||||
T res;
|
||||
@ -934,51 +850,47 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet & paths)
|
||||
|
||||
if (!settings.useSubstitutes || paths.empty()) return res;
|
||||
|
||||
if (!runningSubstituter) {
|
||||
std::unique_ptr<RunningSubstituter>fresh(new RunningSubstituter);
|
||||
runningSubstituter.swap(fresh);
|
||||
}
|
||||
Agent & run = *substituter();
|
||||
|
||||
RunningSubstituter & run = *runningSubstituter;
|
||||
startSubstituter(run);
|
||||
|
||||
if (!run.disabled) {
|
||||
string s = "have ";
|
||||
foreach (PathSet::const_iterator, j, paths)
|
||||
if (res.find(*j) == res.end()) { s += *j; s += " "; }
|
||||
writeLine(run.to, s);
|
||||
while (true) {
|
||||
/* FIXME: we only read stderr when an error occurs, so
|
||||
substituters should only write (short) messages to
|
||||
stderr when they fail. I.e. they shouldn't write debug
|
||||
output. */
|
||||
Path path = getLineFromSubstituter(run);
|
||||
if (path == "") break;
|
||||
res.insert(path);
|
||||
}
|
||||
string s = "have ";
|
||||
foreach (PathSet::const_iterator, j, paths)
|
||||
if (res.find(*j) == res.end()) { s += *j; s += " "; }
|
||||
writeLine(run.toAgent.writeSide, s);
|
||||
while (true) {
|
||||
/* FIXME: we only read stderr when an error occurs, so
|
||||
substituters should only write (short) messages to
|
||||
stderr when they fail. I.e. they shouldn't write debug
|
||||
output. */
|
||||
Path path = getLineFromSubstituter(run);
|
||||
if (path == "") break;
|
||||
res.insert(path);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
std::shared_ptr<Agent> LocalStore::substituter()
|
||||
{
|
||||
if (!runningSubstituter) {
|
||||
const Strings args = { "substitute", "--query" };
|
||||
const std::map<string, string> env = { { "_NIX_OPTIONS", settings.pack() } };
|
||||
runningSubstituter = std::make_shared<Agent>(settings.guixProgram, args, env);
|
||||
}
|
||||
|
||||
return runningSubstituter;
|
||||
}
|
||||
|
||||
void LocalStore::querySubstitutablePathInfos(PathSet & paths, SubstitutablePathInfos & infos)
|
||||
{
|
||||
if (!settings.useSubstitutes) return;
|
||||
|
||||
if (!runningSubstituter) {
|
||||
std::unique_ptr<RunningSubstituter>fresh(new RunningSubstituter);
|
||||
runningSubstituter.swap(fresh);
|
||||
}
|
||||
|
||||
RunningSubstituter & run = *runningSubstituter;
|
||||
startSubstituter(run);
|
||||
if (run.disabled) return;
|
||||
Agent & run = *substituter();
|
||||
|
||||
string s = "info ";
|
||||
foreach (PathSet::const_iterator, i, paths)
|
||||
if (infos.find(*i) == infos.end()) { s += *i; s += " "; }
|
||||
writeLine(run.to, s);
|
||||
writeLine(run.toAgent.writeSide, s);
|
||||
|
||||
while (true) {
|
||||
Path path = getLineFromSubstituter(run);
|
||||
|
@ -38,21 +38,14 @@ struct OptimiseStats
|
||||
};
|
||||
|
||||
|
||||
struct RunningSubstituter
|
||||
{
|
||||
Pid pid;
|
||||
AutoCloseFD to, from, error;
|
||||
FdSource fromBuf;
|
||||
bool disabled;
|
||||
RunningSubstituter() : disabled(false) { };
|
||||
};
|
||||
|
||||
|
||||
class LocalStore : public StoreAPI
|
||||
{
|
||||
private:
|
||||
/* The currently running substituter or empty. */
|
||||
std::unique_ptr<RunningSubstituter> runningSubstituter;
|
||||
std::shared_ptr<Agent> runningSubstituter;
|
||||
|
||||
/* Ensure the substituter is running and return it. */
|
||||
std::shared_ptr<Agent> substituter();
|
||||
|
||||
Path linksDir;
|
||||
|
||||
@ -178,8 +171,6 @@ public:
|
||||
|
||||
void markContentsGood(const Path & path);
|
||||
|
||||
void setSubstituterEnv();
|
||||
|
||||
void createUser(const std::string & userName, uid_t userId);
|
||||
|
||||
private:
|
||||
@ -213,8 +204,6 @@ private:
|
||||
/* Cache for pathContentsGood(). */
|
||||
std::map<Path, bool> pathContentsGoodCache;
|
||||
|
||||
bool didSetSubstituterEnv;
|
||||
|
||||
/* The file to which we write our temporary roots. */
|
||||
Path fnTempRoots;
|
||||
AutoCloseFD fdTempRoots;
|
||||
@ -262,11 +251,9 @@ private:
|
||||
|
||||
void removeUnusedLinks(const GCState & state);
|
||||
|
||||
void startSubstituter(RunningSubstituter & runningSubstituter);
|
||||
string getLineFromSubstituter(Agent & run);
|
||||
|
||||
string getLineFromSubstituter(RunningSubstituter & run);
|
||||
|
||||
template<class T> T getIntLineFromSubstituter(RunningSubstituter & run);
|
||||
template<class T> T getIntLineFromSubstituter(Agent & run);
|
||||
|
||||
Path createTempDirInStore();
|
||||
|
||||
|
@ -1173,7 +1173,7 @@ void commonChildInit(Pipe & logPipe)
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
Agent::Agent(const string &command, const Strings &args)
|
||||
Agent::Agent(const string &command, const Strings &args, const std::map<string, string> &env)
|
||||
{
|
||||
debug(format("starting agent '%1%'") % command);
|
||||
|
||||
@ -1191,6 +1191,10 @@ Agent::Agent(const string &command, const Strings &args)
|
||||
|
||||
commonChildInit(fromAgent);
|
||||
|
||||
for (auto pair: env) {
|
||||
setenv(pair.first.c_str(), pair.second.c_str(), 1);
|
||||
}
|
||||
|
||||
if (chdir("/") == -1) throw SysError("changing into `/");
|
||||
|
||||
/* Dup the communication pipes. */
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <map>
|
||||
#include <functional>
|
||||
|
||||
#include <cstdio>
|
||||
@ -281,8 +282,10 @@ struct Agent
|
||||
/* The process ID of the agent. */
|
||||
Pid pid;
|
||||
|
||||
/* The command and arguments passed to the agent. */
|
||||
Agent(const string &command, const Strings &args);
|
||||
/* The command and arguments passed to the agent along with a list of
|
||||
environment variable name/value pairs. */
|
||||
Agent(const string &command, const Strings &args,
|
||||
const std::map<string, string> &env = std::map<string, string>());
|
||||
|
||||
~Agent();
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user