Merge branch 'master' into ungrafting

This commit is contained in:
Marius Bakke 2020-12-13 01:10:06 +01:00
commit a7737f0ead
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
105 changed files with 4900 additions and 1920 deletions

View File

@ -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

View File

@ -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.])

View File

@ -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/'])

View File

@ -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.

View File

@ -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

View File

@ -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")

View File

@ -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)

View File

@ -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)

View 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)))

View File

@ -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

View File

@ -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

View File

@ -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)

View 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:

View File

@ -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 ...))

View File

@ -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 \

View File

@ -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

View File

@ -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")

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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")

View File

@ -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)

View File

@ -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

View File

@ -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")

View File

@ -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+)))

View File

@ -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
View 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)))

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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.

View File

@ -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")

View File

@ -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+)))

View File

@ -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")

View File

@ -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.")

View File

@ -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

View File

@ -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

View File

@ -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.")

View File

@ -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.")

View File

@ -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")

View File

@ -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)

View File

@ -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))

View File

@ -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)

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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

View 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;
}
}

View 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"])

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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"

View File

@ -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)

View File

@ -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+)))

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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)))

View File

@ -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")

View File

@ -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+)))

View File

@ -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")

View File

@ -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"

View File

@ -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))

View 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

View File

@ -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

View File

@ -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))

View File

@ -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")))

View File

@ -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)

View File

@ -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"))))

View File

@ -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/"

View File

@ -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)

View File

@ -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)))

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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))))))))

View File

@ -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))))

View File

@ -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))

View File

@ -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

View File

@ -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.

View File

@ -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)

View File

@ -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.)])],

View File

@ -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());
}

View File

@ -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);

View File

@ -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();

View File

@ -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. */

View File

@ -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