diff options
124 files changed, 4794 insertions, 1554 deletions
diff --git a/Makefile.am b/Makefile.am index eefce7a3cae..b5e7a01dce9 100644 --- a/Makefile.am +++ b/Makefile.am | |||
| @@ -221,6 +221,7 @@ MODULES = \ | |||
| 221 | guix/import/gnu.scm \ | 221 | guix/import/gnu.scm \ |
| 222 | guix/import/hackage.scm \ | 222 | guix/import/hackage.scm \ |
| 223 | guix/import/json.scm \ | 223 | guix/import/json.scm \ |
| 224 | guix/import/kde.scm \ | ||
| 224 | guix/import/launchpad.scm \ | 225 | guix/import/launchpad.scm \ |
| 225 | guix/import/opam.scm \ | 226 | guix/import/opam.scm \ |
| 226 | guix/import/print.scm \ | 227 | guix/import/print.scm \ |
| @@ -402,6 +403,7 @@ SCM_TESTS = \ | |||
| 402 | tests/modules.scm \ | 403 | tests/modules.scm \ |
| 403 | tests/monads.scm \ | 404 | tests/monads.scm \ |
| 404 | tests/nar.scm \ | 405 | tests/nar.scm \ |
| 406 | tests/networking.scm \ | ||
| 405 | tests/opam.scm \ | 407 | tests/opam.scm \ |
| 406 | tests/packages.scm \ | 408 | tests/packages.scm \ |
| 407 | tests/pack.scm \ | 409 | tests/pack.scm \ |
diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in index 3efab69e7d8..e0aa7fe8685 100644 --- a/build-aux/pre-inst-env.in +++ b/build-aux/pre-inst-env.in | |||
| @@ -42,17 +42,9 @@ export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH | |||
| 42 | PATH="$abs_top_builddir/scripts:$abs_top_builddir:$PATH" | 42 | PATH="$abs_top_builddir/scripts:$abs_top_builddir:$PATH" |
| 43 | export PATH | 43 | export PATH |
| 44 | 44 | ||
| 45 | # Daemon helpers. | 45 | # The daemon invokes 'guix'; tell it which one to use. |
| 46 | 46 | GUIX="$abs_top_builddir/scripts/guix" | |
| 47 | NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots" | 47 | export GUIX |
| 48 | NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'authenticate', etc. | ||
| 49 | |||
| 50 | export NIX_ROOT_FINDER NIX_LIBEXEC_DIR | ||
| 51 | |||
| 52 | NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload" | ||
| 53 | @BUILD_DAEMON_OFFLOAD_TRUE@export NIX_BUILD_HOOK | ||
| 54 | @BUILD_DAEMON_OFFLOAD_FALSE@# No offloading support. | ||
| 55 | @BUILD_DAEMON_OFFLOAD_FALSE@unset NIX_BUILD_HOOK | ||
| 56 | 48 | ||
| 57 | # The following variables need only be defined when compiling Guix | 49 | # The following variables need only be defined when compiling Guix |
| 58 | # modules, but we define them to be on the safe side in case of | 50 | # modules, but we define them to be on the safe side in case of |
diff --git a/config-daemon.ac b/config-daemon.ac index f1ad10acff7..bf94815966d 100644 --- a/config-daemon.ac +++ b/config-daemon.ac | |||
| @@ -148,17 +148,6 @@ if test "x$guix_build_daemon" = "xyes"; then | |||
| 148 | AC_SUBST([GUIX_TEST_ROOT]) | 148 | AC_SUBST([GUIX_TEST_ROOT]) |
| 149 | 149 | ||
| 150 | GUIX_CHECK_LOCALSTATEDIR | 150 | GUIX_CHECK_LOCALSTATEDIR |
| 151 | |||
| 152 | AC_CONFIG_FILES([nix/scripts/list-runtime-roots], | ||
| 153 | [chmod +x nix/scripts/list-runtime-roots]) | ||
| 154 | AC_CONFIG_FILES([nix/scripts/download], | ||
| 155 | [chmod +x nix/scripts/download]) | ||
| 156 | AC_CONFIG_FILES([nix/scripts/substitute], | ||
| 157 | [chmod +x nix/scripts/substitute]) | ||
| 158 | AC_CONFIG_FILES([nix/scripts/authenticate], | ||
| 159 | [chmod +x nix/scripts/authenticate]) | ||
| 160 | AC_CONFIG_FILES([nix/scripts/offload], | ||
| 161 | [chmod +x nix/scripts/offload]) | ||
| 162 | fi | 151 | fi |
| 163 | 152 | ||
| 164 | AM_CONDITIONAL([HAVE_LIBBZ2], [test "x$HAVE_LIBBZ2" = "xyes"]) | 153 | AM_CONDITIONAL([HAVE_LIBBZ2], [test "x$HAVE_LIBBZ2" = "xyes"]) |
diff --git a/doc/build.scm b/doc/build.scm index c99bd505fd0..5bc95d25172 100644 --- a/doc/build.scm +++ b/doc/build.scm | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | (guix gexp) | 29 | (guix gexp) |
| 30 | (guix git) | 30 | (guix git) |
| 31 | (guix git-download) | 31 | (guix git-download) |
| 32 | (guix utils) | ||
| 32 | (git) | 33 | (git) |
| 33 | (gnu packages base) | 34 | (gnu packages base) |
| 34 | (gnu packages gawk) | 35 | (gnu packages gawk) |
| @@ -165,6 +166,35 @@ as well as images, OS examples, and translations." | |||
| 165 | ;; Options passed to 'makeinfo --html'. | 166 | ;; Options passed to 'makeinfo --html'. |
| 166 | '("--css-ref=https://www.gnu.org/software/gnulib/manual.css")) | 167 | '("--css-ref=https://www.gnu.org/software/gnulib/manual.css")) |
| 167 | 168 | ||
| 169 | (define guile-lib/htmlprag-fixed | ||
| 170 | ;; Guile-Lib with a hotfix for (htmlprag). | ||
| 171 | (package | ||
| 172 | (inherit guile-lib) | ||
| 173 | (source (origin | ||
| 174 | (inherit (package-source guile-lib)) | ||
| 175 | (modules '(( guix build utils))) | ||
| 176 | (snippet | ||
| 177 | '(begin | ||
| 178 | ;; When parsing | ||
| 179 | ;; "<body><blockquote><p>foo</p>\n</blockquote></body>", | ||
| 180 | ;; 'html->shtml' would mistakenly close 'blockquote' right | ||
| 181 | ;; before <p>. This patch removes 'p' from the | ||
| 182 | ;; 'parent-constraints' alist to fix that. | ||
| 183 | (substitute* "src/htmlprag.scm" | ||
| 184 | (("^[[:blank:]]*\\(p[[:blank:]]+\\. \\(body td th\\)\\).*") | ||
| 185 | "")) | ||
| 186 | #t)))) | ||
| 187 | (arguments | ||
| 188 | (substitute-keyword-arguments (package-arguments guile-lib) | ||
| 189 | ((#:phases phases '%standard-phases) | ||
| 190 | `(modify-phases ,phases | ||
| 191 | (add-before 'check 'skip-known-failure | ||
| 192 | (lambda _ | ||
| 193 | ;; XXX: The above change causes one test failure among | ||
| 194 | ;; the htmlprag tests. | ||
| 195 | (setenv "XFAIL_TESTS" "htmlprag.scm") | ||
| 196 | #t)))))))) | ||
| 197 | |||
| 168 | (define* (syntax-highlighted-html input | 198 | (define* (syntax-highlighted-html input |
| 169 | #:key | 199 | #:key |
| 170 | (name "highlighted-syntax") | 200 | (name "highlighted-syntax") |
| @@ -174,7 +204,7 @@ as well as images, OS examples, and translations." | |||
| 174 | to (1) add them a link to SYNTAX-CSS-URL, and (2) highlight the syntax of all | 204 | to (1) add them a link to SYNTAX-CSS-URL, and (2) highlight the syntax of all |
| 175 | its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')." | 205 | its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')." |
| 176 | (define build | 206 | (define build |
| 177 | (with-extensions (list guile-lib guile-syntax-highlight) | 207 | (with-extensions (list guile-lib/htmlprag-fixed guile-syntax-highlight) |
| 178 | (with-imported-modules '((guix build utils)) | 208 | (with-imported-modules '((guix build utils)) |
| 179 | #~(begin | 209 | #~(begin |
| 180 | (use-modules (htmlprag) | 210 | (use-modules (htmlprag) |
diff --git a/doc/contributing.texi b/doc/contributing.texi index 59917193f1a..655c8283e59 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi | |||
| @@ -376,7 +376,7 @@ package and does not contain any version number. | |||
| 376 | 376 | ||
| 377 | For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows: | 377 | For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows: |
| 378 | 378 | ||
| 379 | @example | 379 | @lisp |
| 380 | (define-public gtk+ | 380 | (define-public gtk+ |
| 381 | (package | 381 | (package |
| 382 | (name "gtk+") | 382 | (name "gtk+") |
| @@ -387,15 +387,15 @@ For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows | |||
| 387 | (name "gtk+") | 387 | (name "gtk+") |
| 388 | (version "2.24.20") | 388 | (version "2.24.20") |
| 389 | ...)) | 389 | ...)) |
| 390 | @end example | 390 | @end lisp |
| 391 | If we also wanted GTK+ 3.8.2, this would be packaged as | 391 | If we also wanted GTK+ 3.8.2, this would be packaged as |
| 392 | @example | 392 | @lisp |
| 393 | (define-public gtk+-3.8 | 393 | (define-public gtk+-3.8 |
| 394 | (package | 394 | (package |
| 395 | (name "gtk+") | 395 | (name "gtk+") |
| 396 | (version "3.8.2") | 396 | (version "3.8.2") |
| 397 | ...)) | 397 | ...)) |
| 398 | @end example | 398 | @end lisp |
| 399 | 399 | ||
| 400 | @c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>, | 400 | @c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>, |
| 401 | @c for a discussion of what follows. | 401 | @c for a discussion of what follows. |
| @@ -432,7 +432,7 @@ kernel.) It is best to use the full commit identifiers in | |||
| 432 | @code{origin}s, though, to avoid ambiguities. A typical package | 432 | @code{origin}s, though, to avoid ambiguities. A typical package |
| 433 | definition may look like this: | 433 | definition may look like this: |
| 434 | 434 | ||
| 435 | @example | 435 | @lisp |
| 436 | (define my-package | 436 | (define my-package |
| 437 | (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") | 437 | (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") |
| 438 | (revision "1")) ;Guix package revision | 438 | (revision "1")) ;Guix package revision |
| @@ -447,7 +447,7 @@ definition may look like this: | |||
| 447 | (file-name (git-file-name name version)))) | 447 | (file-name (git-file-name name version)))) |
| 448 | ;; @dots{} | 448 | ;; @dots{} |
| 449 | ))) | 449 | ))) |
| 450 | @end example | 450 | @end lisp |
| 451 | 451 | ||
| 452 | @node Synopses and Descriptions | 452 | @node Synopses and Descriptions |
| 453 | @subsection Synopses and Descriptions | 453 | @subsection Synopses and Descriptions |
| @@ -825,12 +825,12 @@ recommend using the @code{qemu-binfmt-service-type} to emulate them. In | |||
| 825 | order to enable it, add the following service to the list of services in | 825 | order to enable it, add the following service to the list of services in |
| 826 | your @code{operating-system} configuration: | 826 | your @code{operating-system} configuration: |
| 827 | 827 | ||
| 828 | @example | 828 | @lisp |
| 829 | (service qemu-binfmt-service-type | 829 | (service qemu-binfmt-service-type |
| 830 | (qemu-binfmt-configuration | 830 | (qemu-binfmt-configuration |
| 831 | (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el")) | 831 | (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el")) |
| 832 | (guix-support? #t))) | 832 | (guix-support? #t))) |
| 833 | @end example | 833 | @end lisp |
| 834 | 834 | ||
| 835 | Then reconfigure your system. | 835 | Then reconfigure your system. |
| 836 | 836 | ||
diff --git a/doc/guix.texi b/doc/guix.texi index da84f79490a..aff9aed06bc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi | |||
| @@ -48,7 +48,7 @@ Copyright @copyright{} 2017 humanitiesNerd@* | |||
| 48 | Copyright @copyright{} 2017 Christopher Allan Webber@* | 48 | Copyright @copyright{} 2017 Christopher Allan Webber@* |
| 49 | Copyright @copyright{} 2017, 2018 Marius Bakke@* | 49 | Copyright @copyright{} 2017, 2018 Marius Bakke@* |
| 50 | Copyright @copyright{} 2017 Hartmut Goebel@* | 50 | Copyright @copyright{} 2017 Hartmut Goebel@* |
| 51 | Copyright @copyright{} 2017 Maxim Cournoyer@* | 51 | Copyright @copyright{} 2017, 2019 Maxim Cournoyer@* |
| 52 | Copyright @copyright{} 2017, 2018, 2019 Tobias Geerinckx-Rice@* | 52 | Copyright @copyright{} 2017, 2018, 2019 Tobias Geerinckx-Rice@* |
| 53 | Copyright @copyright{} 2017 George Clemmer@* | 53 | Copyright @copyright{} 2017 George Clemmer@* |
| 54 | Copyright @copyright{} 2017 Andy Wingo@* | 54 | Copyright @copyright{} 2017 Andy Wingo@* |
| @@ -1035,7 +1035,7 @@ build are copied back to the initial machine. | |||
| 1035 | 1035 | ||
| 1036 | The @file{/etc/guix/machines.scm} file typically looks like this: | 1036 | The @file{/etc/guix/machines.scm} file typically looks like this: |
| 1037 | 1037 | ||
| 1038 | @example | 1038 | @lisp |
| 1039 | (list (build-machine | 1039 | (list (build-machine |
| 1040 | (name "eightysix.example.org") | 1040 | (name "eightysix.example.org") |
| 1041 | (system "x86_64-linux") | 1041 | (system "x86_64-linux") |
| @@ -1051,7 +1051,7 @@ The @file{/etc/guix/machines.scm} file typically looks like this: | |||
| 1051 | (private-key | 1051 | (private-key |
| 1052 | (string-append (getenv "HOME") | 1052 | (string-append (getenv "HOME") |
| 1053 | "/.ssh/identity-for-guix")))) | 1053 | "/.ssh/identity-for-guix")))) |
| 1054 | @end example | 1054 | @end lisp |
| 1055 | 1055 | ||
| 1056 | @noindent | 1056 | @noindent |
| 1057 | In the example above we specify a list of two build machines, one for | 1057 | In the example above we specify a list of two build machines, one for |
| @@ -1724,8 +1724,8 @@ to make sure your TrueType fonts are listed there. | |||
| 1724 | After installing fonts you may have to refresh the font cache to use | 1724 | After installing fonts you may have to refresh the font cache to use |
| 1725 | them in applications. The same applies when applications installed via | 1725 | them in applications. The same applies when applications installed via |
| 1726 | Guix do not seem to find fonts. To force rebuilding of the font cache | 1726 | Guix do not seem to find fonts. To force rebuilding of the font cache |
| 1727 | run @code{fc-cache -f}. The @code{fc-cache} command is provided by the | 1727 | run @code{fc-cache -rv}. The @code{fc-cache} command is provided by |
| 1728 | @code{fontconfig} package. | 1728 | the @code{fontconfig} package. |
| 1729 | 1729 | ||
| 1730 | @subsection X.509 Certificates | 1730 | @subsection X.509 Certificates |
| 1731 | 1731 | ||
| @@ -2756,9 +2756,9 @@ Install the package that the code within @var{file} evaluates to. | |||
| 2756 | As an example, @var{file} might contain a definition like this | 2756 | As an example, @var{file} might contain a definition like this |
| 2757 | (@pxref{Defining Packages}): | 2757 | (@pxref{Defining Packages}): |
| 2758 | 2758 | ||
| 2759 | @example | 2759 | @lisp |
| 2760 | @verbatiminclude package-hello.scm | 2760 | @verbatiminclude package-hello.scm |
| 2761 | @end example | 2761 | @end lisp |
| 2762 | 2762 | ||
| 2763 | Developers may find it useful to include such a @file{guix.scm} file | 2763 | Developers may find it useful to include such a @file{guix.scm} file |
| 2764 | in the root of their project source tree that can be used to test | 2764 | in the root of their project source tree that can be used to test |
| @@ -2814,7 +2814,7 @@ so on. | |||
| 2814 | of packages: | 2814 | of packages: |
| 2815 | 2815 | ||
| 2816 | @findex packages->manifest | 2816 | @findex packages->manifest |
| 2817 | @example | 2817 | @lisp |
| 2818 | (use-package-modules guile emacs) | 2818 | (use-package-modules guile emacs) |
| 2819 | 2819 | ||
| 2820 | (packages->manifest | 2820 | (packages->manifest |
| @@ -2822,7 +2822,7 @@ of packages: | |||
| 2822 | guile-2.0 | 2822 | guile-2.0 |
| 2823 | ;; Use a specific package output. | 2823 | ;; Use a specific package output. |
| 2824 | (list guile-2.0 "debug"))) | 2824 | (list guile-2.0 "debug"))) |
| 2825 | @end example | 2825 | @end lisp |
| 2826 | 2826 | ||
| 2827 | @findex specifications->manifest | 2827 | @findex specifications->manifest |
| 2828 | In this example we have to know which modules define the @code{emacs} | 2828 | In this example we have to know which modules define the @code{emacs} |
| @@ -2832,10 +2832,10 @@ instead provide regular package specifications and let | |||
| 2832 | @code{specifications->manifest} look up the corresponding package | 2832 | @code{specifications->manifest} look up the corresponding package |
| 2833 | objects, like this: | 2833 | objects, like this: |
| 2834 | 2834 | ||
| 2835 | @example | 2835 | @lisp |
| 2836 | (specifications->manifest | 2836 | (specifications->manifest |
| 2837 | '("emacs" "guile@@2.2" "guile@@2.2:debug")) | 2837 | '("emacs" "guile@@2.2" "guile@@2.2:debug")) |
| 2838 | @end example | 2838 | @end lisp |
| 2839 | 2839 | ||
| 2840 | @item --roll-back | 2840 | @item --roll-back |
| 2841 | @cindex rolling back | 2841 | @cindex rolling back |
| @@ -3496,6 +3496,10 @@ This prints nothing unless the daemon was started with | |||
| 3496 | List the GC roots owned by the user; when run as root, list @emph{all} the GC | 3496 | List the GC roots owned by the user; when run as root, list @emph{all} the GC |
| 3497 | roots. | 3497 | roots. |
| 3498 | 3498 | ||
| 3499 | @item --list-busy | ||
| 3500 | List store items in use by currently running processes. These store | ||
| 3501 | items are effectively considered GC roots: they cannot be deleted. | ||
| 3502 | |||
| 3499 | @item --clear-failures | 3503 | @item --clear-failures |
| 3500 | Remove the specified store items from the failed-build cache. | 3504 | Remove the specified store items from the failed-build cache. |
| 3501 | 3505 | ||
| @@ -3620,7 +3624,7 @@ version. New @command{guix} sub-commands added by the update also | |||
| 3620 | become available. | 3624 | become available. |
| 3621 | 3625 | ||
| 3622 | Any user can update their Guix copy using @command{guix pull}, and the | 3626 | Any user can update their Guix copy using @command{guix pull}, and the |
| 3623 | effect is limited to the user who run @command{guix pull}. For | 3627 | effect is limited to the user who ran @command{guix pull}. For |
| 3624 | instance, when user @code{root} runs @command{guix pull}, this has no | 3628 | instance, when user @code{root} runs @command{guix pull}, this has no |
| 3625 | effect on the version of Guix that user @code{alice} sees, and vice | 3629 | effect on the version of Guix that user @code{alice} sees, and vice |
| 3626 | versa. | 3630 | versa. |
| @@ -4548,9 +4552,9 @@ within @var{file} evaluates to. | |||
| 4548 | As an example, @var{file} might contain a definition like this | 4552 | As an example, @var{file} might contain a definition like this |
| 4549 | (@pxref{Defining Packages}): | 4553 | (@pxref{Defining Packages}): |
| 4550 | 4554 | ||
| 4551 | @example | 4555 | @lisp |
| 4552 | @verbatiminclude environment-gdb.scm | 4556 | @verbatiminclude environment-gdb.scm |
| 4553 | @end example | 4557 | @end lisp |
| 4554 | 4558 | ||
| 4555 | @item --manifest=@var{file} | 4559 | @item --manifest=@var{file} |
| 4556 | @itemx -m @var{file} | 4560 | @itemx -m @var{file} |
| @@ -5124,7 +5128,7 @@ The high-level interface to package definitions is implemented in the | |||
| 5124 | example, the package definition, or @dfn{recipe}, for the GNU Hello | 5128 | example, the package definition, or @dfn{recipe}, for the GNU Hello |
| 5125 | package looks like this: | 5129 | package looks like this: |
| 5126 | 5130 | ||
| 5127 | @example | 5131 | @lisp |
| 5128 | (define-module (gnu packages hello) | 5132 | (define-module (gnu packages hello) |
| 5129 | #:use-module (guix packages) | 5133 | #:use-module (guix packages) |
| 5130 | #:use-module (guix download) | 5134 | #:use-module (guix download) |
| @@ -5150,7 +5154,7 @@ package looks like this: | |||
| 5150 | (description "Guess what GNU Hello prints!") | 5154 | (description "Guess what GNU Hello prints!") |
| 5151 | (home-page "https://www.gnu.org/software/hello/") | 5155 | (home-page "https://www.gnu.org/software/hello/") |
| 5152 | (license gpl3+))) | 5156 | (license gpl3+))) |
| 5153 | @end example | 5157 | @end lisp |
| 5154 | 5158 | ||
| 5155 | @noindent | 5159 | @noindent |
| 5156 | Without being a Scheme expert, the reader may have guessed the meaning | 5160 | Without being a Scheme expert, the reader may have guessed the meaning |
| @@ -5331,7 +5335,7 @@ the name of a package and returns its new name after rewrite. | |||
| 5331 | @noindent | 5335 | @noindent |
| 5332 | Consider this example: | 5336 | Consider this example: |
| 5333 | 5337 | ||
| 5334 | @example | 5338 | @lisp |
| 5335 | (define libressl-instead-of-openssl | 5339 | (define libressl-instead-of-openssl |
| 5336 | ;; This is a procedure to replace OPENSSL by LIBRESSL, | 5340 | ;; This is a procedure to replace OPENSSL by LIBRESSL, |
| 5337 | ;; recursively. | 5341 | ;; recursively. |
| @@ -5339,7 +5343,7 @@ Consider this example: | |||
| 5339 | 5343 | ||
| 5340 | (define git-with-libressl | 5344 | (define git-with-libressl |
| 5341 | (libressl-instead-of-openssl git)) | 5345 | (libressl-instead-of-openssl git)) |
| 5342 | @end example | 5346 | @end lisp |
| 5343 | 5347 | ||
| 5344 | @noindent | 5348 | @noindent |
| 5345 | Here we first define a rewriting procedure that replaces @var{openssl} | 5349 | Here we first define a rewriting procedure that replaces @var{openssl} |
| @@ -5361,11 +5365,11 @@ replacement for that package. | |||
| 5361 | 5365 | ||
| 5362 | The example above could be rewritten this way: | 5366 | The example above could be rewritten this way: |
| 5363 | 5367 | ||
| 5364 | @example | 5368 | @lisp |
| 5365 | (define libressl-instead-of-openssl | 5369 | (define libressl-instead-of-openssl |
| 5366 | ;; Replace all the packages called "openssl" with LibreSSL. | 5370 | ;; Replace all the packages called "openssl" with LibreSSL. |
| 5367 | (package-input-rewriting/spec `(("openssl" . ,(const libressl))))) | 5371 | (package-input-rewriting/spec `(("openssl" . ,(const libressl))))) |
| 5368 | @end example | 5372 | @end lisp |
| 5369 | 5373 | ||
| 5370 | The key difference here is that, this time, packages are matched by spec and | 5374 | The key difference here is that, this time, packages are matched by spec and |
| 5371 | not by identity. In other words, any package in the graph that is called | 5375 | not by identity. In other words, any package in the graph that is called |
| @@ -5431,11 +5435,11 @@ defaults to @code{"out"} (@pxref{Packages with Multiple Outputs}, for | |||
| 5431 | more on package outputs). For example, the list below specifies three | 5435 | more on package outputs). For example, the list below specifies three |
| 5432 | inputs: | 5436 | inputs: |
| 5433 | 5437 | ||
| 5434 | @example | 5438 | @lisp |
| 5435 | `(("libffi" ,libffi) | 5439 | `(("libffi" ,libffi) |
| 5436 | ("libunistring" ,libunistring) | 5440 | ("libunistring" ,libunistring) |
| 5437 | ("glib:bin" ,glib "bin")) ;the "bin" output of Glib | 5441 | ("glib:bin" ,glib "bin")) ;the "bin" output of Glib |
| 5438 | @end example | 5442 | @end lisp |
| 5439 | 5443 | ||
| 5440 | @cindex cross compilation, package dependencies | 5444 | @cindex cross compilation, package dependencies |
| 5441 | The distinction between @code{native-inputs} and @code{inputs} is | 5445 | The distinction between @code{native-inputs} and @code{inputs} is |
| @@ -5516,7 +5520,7 @@ identifier resolves to the package being defined. | |||
| 5516 | The example below shows how to add a package as a native input of itself when | 5520 | The example below shows how to add a package as a native input of itself when |
| 5517 | cross-compiling: | 5521 | cross-compiling: |
| 5518 | 5522 | ||
| 5519 | @example | 5523 | @lisp |
| 5520 | (package | 5524 | (package |
| 5521 | (name "guile") | 5525 | (name "guile") |
| 5522 | ;; ... | 5526 | ;; ... |
| @@ -5526,7 +5530,7 @@ cross-compiling: | |||
| 5526 | (native-inputs (if (%current-target-system) | 5530 | (native-inputs (if (%current-target-system) |
| 5527 | `(("self" ,this-package)) | 5531 | `(("self" ,this-package)) |
| 5528 | '()))) | 5532 | '()))) |
| 5529 | @end example | 5533 | @end lisp |
| 5530 | 5534 | ||
| 5531 | It is an error to refer to @code{this-package} outside a package definition. | 5535 | It is an error to refer to @code{this-package} outside a package definition. |
| 5532 | @end deffn | 5536 | @end deffn |
| @@ -5563,11 +5567,11 @@ clone the Git version control repository, and check out the revision | |||
| 5563 | specified in the @code{uri} field as a @code{git-reference} object; a | 5567 | specified in the @code{uri} field as a @code{git-reference} object; a |
| 5564 | @code{git-reference} looks like this: | 5568 | @code{git-reference} looks like this: |
| 5565 | 5569 | ||
| 5566 | @example | 5570 | @lisp |
| 5567 | (git-reference | 5571 | (git-reference |
| 5568 | (url "https://git.savannah.gnu.org/git/hello.git") | 5572 | (url "https://git.savannah.gnu.org/git/hello.git") |
| 5569 | (commit "v2.10")) | 5573 | (commit "v2.10")) |
| 5570 | @end example | 5574 | @end lisp |
| 5571 | @end table | 5575 | @end table |
| 5572 | 5576 | ||
| 5573 | @item @code{sha256} | 5577 | @item @code{sha256} |
| @@ -6779,7 +6783,7 @@ in a monad---values that carry this additional context---are called | |||
| 6779 | 6783 | ||
| 6780 | Consider this ``normal'' procedure: | 6784 | Consider this ``normal'' procedure: |
| 6781 | 6785 | ||
| 6782 | @example | 6786 | @lisp |
| 6783 | (define (sh-symlink store) | 6787 | (define (sh-symlink store) |
| 6784 | ;; Return a derivation that symlinks the 'bash' executable. | 6788 | ;; Return a derivation that symlinks the 'bash' executable. |
| 6785 | (let* ((drv (package-derivation store bash)) | 6789 | (let* ((drv (package-derivation store bash)) |
| @@ -6787,19 +6791,19 @@ Consider this ``normal'' procedure: | |||
| 6787 | (sh (string-append out "/bin/bash"))) | 6791 | (sh (string-append out "/bin/bash"))) |
| 6788 | (build-expression->derivation store "sh" | 6792 | (build-expression->derivation store "sh" |
| 6789 | `(symlink ,sh %output)))) | 6793 | `(symlink ,sh %output)))) |
| 6790 | @end example | 6794 | @end lisp |
| 6791 | 6795 | ||
| 6792 | Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten | 6796 | Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten |
| 6793 | as a monadic function: | 6797 | as a monadic function: |
| 6794 | 6798 | ||
| 6795 | @example | 6799 | @lisp |
| 6796 | (define (sh-symlink) | 6800 | (define (sh-symlink) |
| 6797 | ;; Same, but return a monadic value. | 6801 | ;; Same, but return a monadic value. |
| 6798 | (mlet %store-monad ((drv (package->derivation bash))) | 6802 | (mlet %store-monad ((drv (package->derivation bash))) |
| 6799 | (gexp->derivation "sh" | 6803 | (gexp->derivation "sh" |
| 6800 | #~(symlink (string-append #$drv "/bin/bash") | 6804 | #~(symlink (string-append #$drv "/bin/bash") |
| 6801 | #$output)))) | 6805 | #$output)))) |
| 6802 | @end example | 6806 | @end lisp |
| 6803 | 6807 | ||
| 6804 | There are several things to note in the second version: the @code{store} | 6808 | There are several things to note in the second version: the @code{store} |
| 6805 | parameter is now implicit and is ``threaded'' in the calls to the | 6809 | parameter is now implicit and is ``threaded'' in the calls to the |
| @@ -6811,12 +6815,12 @@ As it turns out, the call to @code{package->derivation} can even be | |||
| 6811 | omitted since it will take place implicitly, as we will see later | 6815 | omitted since it will take place implicitly, as we will see later |
| 6812 | (@pxref{G-Expressions}): | 6816 | (@pxref{G-Expressions}): |
| 6813 | 6817 | ||
| 6814 | @example | 6818 | @lisp |
| 6815 | (define (sh-symlink) | 6819 | (define (sh-symlink) |
| 6816 | (gexp->derivation "sh" | 6820 | (gexp->derivation "sh" |
| 6817 | #~(symlink (string-append #$bash "/bin/bash") | 6821 | #~(symlink (string-append #$bash "/bin/bash") |
| 6818 | #$output))) | 6822 | #$output))) |
| 6819 | @end example | 6823 | @end lisp |
| 6820 | 6824 | ||
| 6821 | @c See | 6825 | @c See |
| 6822 | @c <https://syntaxexclamation.wordpress.com/2014/06/26/escaping-continuations/> | 6826 | @c <https://syntaxexclamation.wordpress.com/2014/06/26/escaping-continuations/> |
| @@ -6826,10 +6830,10 @@ said, ``you exit a monad like you exit a building on fire: by running''. | |||
| 6826 | So, to exit the monad and get the desired effect, one must use | 6830 | So, to exit the monad and get the desired effect, one must use |
| 6827 | @code{run-with-store}: | 6831 | @code{run-with-store}: |
| 6828 | 6832 | ||
| 6829 | @example | 6833 | @lisp |
| 6830 | (run-with-store (open-connection) (sh-symlink)) | 6834 | (run-with-store (open-connection) (sh-symlink)) |
| 6831 | @result{} /gnu/store/...-sh-symlink | 6835 | @result{} /gnu/store/...-sh-symlink |
| 6832 | @end example | 6836 | @end lisp |
| 6833 | 6837 | ||
| 6834 | Note that the @code{(guix monad-repl)} module extends the Guile REPL with | 6838 | Note that the @code{(guix monad-repl)} module extends the Guile REPL with |
| 6835 | new ``meta-commands'' to make it easier to deal with monadic procedures: | 6839 | new ``meta-commands'' to make it easier to deal with monadic procedures: |
| @@ -6878,7 +6882,7 @@ Guile. Thus we use this somewhat cryptic symbol inherited from the | |||
| 6878 | Haskell language.}. There can be one @var{mproc} or several of them, as | 6882 | Haskell language.}. There can be one @var{mproc} or several of them, as |
| 6879 | in this example: | 6883 | in this example: |
| 6880 | 6884 | ||
| 6881 | @example | 6885 | @lisp |
| 6882 | (run-with-state | 6886 | (run-with-state |
| 6883 | (with-monad %state-monad | 6887 | (with-monad %state-monad |
| 6884 | (>>= (return 1) | 6888 | (>>= (return 1) |
| @@ -6888,7 +6892,7 @@ in this example: | |||
| 6888 | 6892 | ||
| 6889 | @result{} 4 | 6893 | @result{} 4 |
| 6890 | @result{} some-state | 6894 | @result{} some-state |
| 6891 | @end example | 6895 | @end lisp |
| 6892 | @end deffn | 6896 | @end deffn |
| 6893 | 6897 | ||
| 6894 | @deffn {Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @ | 6898 | @deffn {Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @ |
| @@ -6947,7 +6951,7 @@ Consider the example below. The @code{square} procedure returns a value | |||
| 6947 | in the state monad. It returns the square of its argument, but also | 6951 | in the state monad. It returns the square of its argument, but also |
| 6948 | increments the current state value: | 6952 | increments the current state value: |
| 6949 | 6953 | ||
| 6950 | @example | 6954 | @lisp |
| 6951 | (define (square x) | 6955 | (define (square x) |
| 6952 | (mlet %state-monad ((count (current-state))) | 6956 | (mlet %state-monad ((count (current-state))) |
| 6953 | (mbegin %state-monad | 6957 | (mbegin %state-monad |
| @@ -6957,7 +6961,7 @@ increments the current state value: | |||
| 6957 | (run-with-state (sequence %state-monad (map square (iota 3))) 0) | 6961 | (run-with-state (sequence %state-monad (map square (iota 3))) 0) |
| 6958 | @result{} (0 1 4) | 6962 | @result{} (0 1 4) |
| 6959 | @result{} 3 | 6963 | @result{} 3 |
| 6960 | @end example | 6964 | @end lisp |
| 6961 | 6965 | ||
| 6962 | When ``run'' through @var{%state-monad}, we obtain that additional state | 6966 | When ``run'' through @var{%state-monad}, we obtain that additional state |
| 6963 | value, which is the number of @code{square} calls. | 6967 | value, which is the number of @code{square} calls. |
| @@ -7032,14 +7036,14 @@ entries for which @var{select?} does not return true. | |||
| 7032 | 7036 | ||
| 7033 | The example below adds a file to the store, under two different names: | 7037 | The example below adds a file to the store, under two different names: |
| 7034 | 7038 | ||
| 7035 | @example | 7039 | @lisp |
| 7036 | (run-with-store (open-connection) | 7040 | (run-with-store (open-connection) |
| 7037 | (mlet %store-monad ((a (interned-file "README")) | 7041 | (mlet %store-monad ((a (interned-file "README")) |
| 7038 | (b (interned-file "README" "LEGU-MIN"))) | 7042 | (b (interned-file "README" "LEGU-MIN"))) |
| 7039 | (return (list a b)))) | 7043 | (return (list a b)))) |
| 7040 | 7044 | ||
| 7041 | @result{} ("/gnu/store/rwm@dots{}-README" "/gnu/store/44i@dots{}-LEGU-MIN") | 7045 | @result{} ("/gnu/store/rwm@dots{}-README" "/gnu/store/44i@dots{}-LEGU-MIN") |
| 7042 | @end example | 7046 | @end lisp |
| 7043 | 7047 | ||
| 7044 | @end deffn | 7048 | @end deffn |
| 7045 | 7049 | ||
| @@ -7133,22 +7137,22 @@ below.) | |||
| 7133 | 7137 | ||
| 7134 | To illustrate the idea, here is an example of a gexp: | 7138 | To illustrate the idea, here is an example of a gexp: |
| 7135 | 7139 | ||
| 7136 | @example | 7140 | @lisp |
| 7137 | (define build-exp | 7141 | (define build-exp |
| 7138 | #~(begin | 7142 | #~(begin |
| 7139 | (mkdir #$output) | 7143 | (mkdir #$output) |
| 7140 | (chdir #$output) | 7144 | (chdir #$output) |
| 7141 | (symlink (string-append #$coreutils "/bin/ls") | 7145 | (symlink (string-append #$coreutils "/bin/ls") |
| 7142 | "list-files"))) | 7146 | "list-files"))) |
| 7143 | @end example | 7147 | @end lisp |
| 7144 | 7148 | ||
| 7145 | This gexp can be passed to @code{gexp->derivation}; we obtain a | 7149 | This gexp can be passed to @code{gexp->derivation}; we obtain a |
| 7146 | derivation that builds a directory containing exactly one symlink to | 7150 | derivation that builds a directory containing exactly one symlink to |
| 7147 | @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}: | 7151 | @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}: |
| 7148 | 7152 | ||
| 7149 | @example | 7153 | @lisp |
| 7150 | (gexp->derivation "the-thing" build-exp) | 7154 | (gexp->derivation "the-thing" build-exp) |
| 7151 | @end example | 7155 | @end lisp |
| 7152 | 7156 | ||
| 7153 | As one would expect, the @code{"/gnu/store/@dots{}-coreutils-8.22"} string is | 7157 | As one would expect, the @code{"/gnu/store/@dots{}-coreutils-8.22"} string is |
| 7154 | substituted to the reference to the @var{coreutils} package in the | 7158 | substituted to the reference to the @var{coreutils} package in the |
| @@ -7164,7 +7168,7 @@ host---versus references to cross builds of a package. To that end, the | |||
| 7164 | @code{#+} plays the same role as @code{#$}, but is a reference to a | 7168 | @code{#+} plays the same role as @code{#$}, but is a reference to a |
| 7165 | native package build: | 7169 | native package build: |
| 7166 | 7170 | ||
| 7167 | @example | 7171 | @lisp |
| 7168 | (gexp->derivation "vi" | 7172 | (gexp->derivation "vi" |
| 7169 | #~(begin | 7173 | #~(begin |
| 7170 | (mkdir #$output) | 7174 | (mkdir #$output) |
| @@ -7173,7 +7177,7 @@ native package build: | |||
| 7173 | (string-append #$emacs "/bin/emacs") | 7177 | (string-append #$emacs "/bin/emacs") |
| 7174 | (string-append #$output "/bin/vi"))) | 7178 | (string-append #$output "/bin/vi"))) |
| 7175 | #:target "mips64el-linux-gnu") | 7179 | #:target "mips64el-linux-gnu") |
| 7176 | @end example | 7180 | @end lisp |
| 7177 | 7181 | ||
| 7178 | @noindent | 7182 | @noindent |
| 7179 | In the example above, the native build of @var{coreutils} is used, so | 7183 | In the example above, the native build of @var{coreutils} is used, so |
| @@ -7187,7 +7191,7 @@ able to use certain Guile modules from the ``host environment'' in the | |||
| 7187 | gexp, so those modules should be imported in the ``build environment''. | 7191 | gexp, so those modules should be imported in the ``build environment''. |
| 7188 | The @code{with-imported-modules} form allows you to express that: | 7192 | The @code{with-imported-modules} form allows you to express that: |
| 7189 | 7193 | ||
| 7190 | @example | 7194 | @lisp |
| 7191 | (let ((build (with-imported-modules '((guix build utils)) | 7195 | (let ((build (with-imported-modules '((guix build utils)) |
| 7192 | #~(begin | 7196 | #~(begin |
| 7193 | (use-modules (guix build utils)) | 7197 | (use-modules (guix build utils)) |
| @@ -7197,7 +7201,7 @@ The @code{with-imported-modules} form allows you to express that: | |||
| 7197 | #$build | 7201 | #$build |
| 7198 | (display "success!\n") | 7202 | (display "success!\n") |
| 7199 | #t))) | 7203 | #t))) |
| 7200 | @end example | 7204 | @end lisp |
| 7201 | 7205 | ||
| 7202 | @noindent | 7206 | @noindent |
| 7203 | In this example, the @code{(guix build utils)} module is automatically | 7207 | In this example, the @code{(guix build utils)} module is automatically |
| @@ -7213,7 +7217,7 @@ because of missing dependent modules. The @code{source-module-closure} | |||
| 7213 | procedure computes the closure of a module by looking at its source file | 7217 | procedure computes the closure of a module by looking at its source file |
| 7214 | headers, which comes in handy in this case: | 7218 | headers, which comes in handy in this case: |
| 7215 | 7219 | ||
| 7216 | @example | 7220 | @lisp |
| 7217 | (use-modules (guix modules)) ;for 'source-module-closure' | 7221 | (use-modules (guix modules)) ;for 'source-module-closure' |
| 7218 | 7222 | ||
| 7219 | (with-imported-modules (source-module-closure | 7223 | (with-imported-modules (source-module-closure |
| @@ -7224,7 +7228,7 @@ headers, which comes in handy in this case: | |||
| 7224 | (use-modules (guix build utils) | 7228 | (use-modules (guix build utils) |
| 7225 | (gnu build vm)) | 7229 | (gnu build vm)) |
| 7226 | @dots{}))) | 7230 | @dots{}))) |
| 7227 | @end example | 7231 | @end lisp |
| 7228 | 7232 | ||
| 7229 | @cindex extensions, for gexps | 7233 | @cindex extensions, for gexps |
| 7230 | @findex with-extensions | 7234 | @findex with-extensions |
| @@ -7233,7 +7237,7 @@ modules, but also ``extensions'' such as Guile bindings to C libraries | |||
| 7233 | or other ``full-blown'' packages. Say you need the @code{guile-json} | 7237 | or other ``full-blown'' packages. Say you need the @code{guile-json} |
| 7234 | package available on the build side, here's how you would do it: | 7238 | package available on the build side, here's how you would do it: |
| 7235 | 7239 | ||
| 7236 | @example | 7240 | @lisp |
| 7237 | (use-modules (gnu packages guile)) ;for 'guile-json' | 7241 | (use-modules (gnu packages guile)) ;for 'guile-json' |
| 7238 | 7242 | ||
| 7239 | (with-extensions (list guile-json) | 7243 | (with-extensions (list guile-json) |
| @@ -7241,7 +7245,7 @@ package available on the build side, here's how you would do it: | |||
| 7241 | #~(begin | 7245 | #~(begin |
| 7242 | (use-modules (json)) | 7246 | (use-modules (json)) |
| 7243 | @dots{}))) | 7247 | @dots{}))) |
| 7244 | @end example | 7248 | @end lisp |
| 7245 | 7249 | ||
| 7246 | The syntactic form to construct gexps is summarized below. | 7250 | The syntactic form to construct gexps is summarized below. |
| 7247 | 7251 | ||
| @@ -7310,12 +7314,12 @@ Each item in @var{modules} can be the name of a module, such as | |||
| 7310 | @code{(guix build utils)}, or it can be a module name, followed by an | 7314 | @code{(guix build utils)}, or it can be a module name, followed by an |
| 7311 | arrow, followed by a file-like object: | 7315 | arrow, followed by a file-like object: |
| 7312 | 7316 | ||
| 7313 | @example | 7317 | @lisp |
| 7314 | `((guix build utils) | 7318 | `((guix build utils) |
| 7315 | (guix gcrypt) | 7319 | (guix gcrypt) |
| 7316 | ((guix config) => ,(scheme-file "config.scm" | 7320 | ((guix config) => ,(scheme-file "config.scm" |
| 7317 | #~(define-module @dots{})))) | 7321 | #~(define-module @dots{})))) |
| 7318 | @end example | 7322 | @end lisp |
| 7319 | 7323 | ||
| 7320 | @noindent | 7324 | @noindent |
| 7321 | In the example above, the first two modules are taken from the search | 7325 | In the example above, the first two modules are taken from the search |
| @@ -7414,10 +7418,10 @@ The @code{local-file}, @code{plain-file}, @code{computed-file}, | |||
| 7414 | @dfn{file-like objects}. That is, when unquoted in a G-expression, | 7418 | @dfn{file-like objects}. That is, when unquoted in a G-expression, |
| 7415 | these objects lead to a file in the store. Consider this G-expression: | 7419 | these objects lead to a file in the store. Consider this G-expression: |
| 7416 | 7420 | ||
| 7417 | @example | 7421 | @lisp |
| 7418 | #~(system* #$(file-append glibc "/sbin/nscd") "-f" | 7422 | #~(system* #$(file-append glibc "/sbin/nscd") "-f" |
| 7419 | #$(local-file "/tmp/my-nscd.conf")) | 7423 | #$(local-file "/tmp/my-nscd.conf")) |
| 7420 | @end example | 7424 | @end lisp |
| 7421 | 7425 | ||
| 7422 | The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it | 7426 | The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it |
| 7423 | to the store. Once expanded, for instance @i{via} | 7427 | to the store. Once expanded, for instance @i{via} |
| @@ -7473,13 +7477,13 @@ Look up @var{exp}'s modules in @var{module-path}. | |||
| 7473 | The example below builds a script that simply invokes the @command{ls} | 7477 | The example below builds a script that simply invokes the @command{ls} |
| 7474 | command: | 7478 | command: |
| 7475 | 7479 | ||
| 7476 | @example | 7480 | @lisp |
| 7477 | (use-modules (guix gexp) (gnu packages base)) | 7481 | (use-modules (guix gexp) (gnu packages base)) |
| 7478 | 7482 | ||
| 7479 | (gexp->script "list-files" | 7483 | (gexp->script "list-files" |
| 7480 | #~(execl #$(file-append coreutils "/bin/ls") | 7484 | #~(execl #$(file-append coreutils "/bin/ls") |
| 7481 | "ls")) | 7485 | "ls")) |
| 7482 | @end example | 7486 | @end lisp |
| 7483 | 7487 | ||
| 7484 | When ``running'' it through the store (@pxref{The Store Monad, | 7488 | When ``running'' it through the store (@pxref{The Store Monad, |
| 7485 | @code{run-with-store}}), we obtain a derivation that produces an | 7489 | @code{run-with-store}}), we obtain a derivation that produces an |
| @@ -7537,14 +7541,14 @@ to create will reference items from the store. This is typically the | |||
| 7537 | case when building a configuration file that embeds store file names, | 7541 | case when building a configuration file that embeds store file names, |
| 7538 | like this: | 7542 | like this: |
| 7539 | 7543 | ||
| 7540 | @example | 7544 | @lisp |
| 7541 | (define (profile.sh) | 7545 | (define (profile.sh) |
| 7542 | ;; Return the name of a shell script in the store that | 7546 | ;; Return the name of a shell script in the store that |
| 7543 | ;; initializes the 'PATH' environment variable. | 7547 | ;; initializes the 'PATH' environment variable. |
| 7544 | (text-file* "profile.sh" | 7548 | (text-file* "profile.sh" |
| 7545 | "export PATH=" coreutils "/bin:" | 7549 | "export PATH=" coreutils "/bin:" |
| 7546 | grep "/bin:" sed "/bin\n")) | 7550 | grep "/bin:" sed "/bin\n")) |
| 7547 | @end example | 7551 | @end lisp |
| 7548 | 7552 | ||
| 7549 | In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file | 7553 | In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file |
| 7550 | will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby | 7554 | will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby |
| @@ -7556,10 +7560,10 @@ Return an object representing store file @var{name} containing | |||
| 7556 | @var{text}. @var{text} is a sequence of strings and file-like objects, | 7560 | @var{text}. @var{text} is a sequence of strings and file-like objects, |
| 7557 | as in: | 7561 | as in: |
| 7558 | 7562 | ||
| 7559 | @example | 7563 | @lisp |
| 7560 | (mixed-text-file "profile" | 7564 | (mixed-text-file "profile" |
| 7561 | "export PATH=" coreutils "/bin:" grep "/bin") | 7565 | "export PATH=" coreutils "/bin:" grep "/bin") |
| 7562 | @end example | 7566 | @end lisp |
| 7563 | 7567 | ||
| 7564 | This is the declarative counterpart of @code{text-file*}. | 7568 | This is the declarative counterpart of @code{text-file*}. |
| 7565 | @end deffn | 7569 | @end deffn |
| @@ -7570,13 +7574,13 @@ Each item in @var{files} must be a two-element list where the first element is t | |||
| 7570 | file name to use in the new directory, and the second element is a gexp | 7574 | file name to use in the new directory, and the second element is a gexp |
| 7571 | denoting the target file. Here's an example: | 7575 | denoting the target file. Here's an example: |
| 7572 | 7576 | ||
| 7573 | @example | 7577 | @lisp |
| 7574 | (file-union "etc" | 7578 | (file-union "etc" |
| 7575 | `(("hosts" ,(plain-file "hosts" | 7579 | `(("hosts" ,(plain-file "hosts" |
| 7576 | "127.0.0.1 localhost")) | 7580 | "127.0.0.1 localhost")) |
| 7577 | ("bashrc" ,(plain-file "bashrc" | 7581 | ("bashrc" ,(plain-file "bashrc" |
| 7578 | "alias ls='ls --color=auto'")))) | 7582 | "alias ls='ls --color=auto'")))) |
| 7579 | @end example | 7583 | @end lisp |
| 7580 | 7584 | ||
| 7581 | This yields an @code{etc} directory containing these two files. | 7585 | This yields an @code{etc} directory containing these two files. |
| 7582 | @end deffn | 7586 | @end deffn |
| @@ -7585,9 +7589,9 @@ This yields an @code{etc} directory containing these two files. | |||
| 7585 | Return a directory that is the union of @var{things}, where @var{things} is a list of | 7589 | Return a directory that is the union of @var{things}, where @var{things} is a list of |
| 7586 | file-like objects denoting directories. For example: | 7590 | file-like objects denoting directories. For example: |
| 7587 | 7591 | ||
| 7588 | @example | 7592 | @lisp |
| 7589 | (directory-union "guile+emacs" (list guile emacs)) | 7593 | (directory-union "guile+emacs" (list guile emacs)) |
| 7590 | @end example | 7594 | @end lisp |
| 7591 | 7595 | ||
| 7592 | yields a directory that is the union of the @code{guile} and @code{emacs} packages. | 7596 | yields a directory that is the union of the @code{guile} and @code{emacs} packages. |
| 7593 | @end deffn | 7597 | @end deffn |
| @@ -7599,19 +7603,19 @@ and @var{suffix}, where @var{obj} is a lowerable object and each | |||
| 7599 | 7603 | ||
| 7600 | As an example, consider this gexp: | 7604 | As an example, consider this gexp: |
| 7601 | 7605 | ||
| 7602 | @example | 7606 | @lisp |
| 7603 | (gexp->script "run-uname" | 7607 | (gexp->script "run-uname" |
| 7604 | #~(system* #$(file-append coreutils | 7608 | #~(system* #$(file-append coreutils |
| 7605 | "/bin/uname"))) | 7609 | "/bin/uname"))) |
| 7606 | @end example | 7610 | @end lisp |
| 7607 | 7611 | ||
| 7608 | The same effect could be achieved with: | 7612 | The same effect could be achieved with: |
| 7609 | 7613 | ||
| 7610 | @example | 7614 | @lisp |
| 7611 | (gexp->script "run-uname" | 7615 | (gexp->script "run-uname" |
| 7612 | #~(system* (string-append #$coreutils | 7616 | #~(system* (string-append #$coreutils |
| 7613 | "/bin/uname"))) | 7617 | "/bin/uname"))) |
| 7614 | @end example | 7618 | @end lisp |
| 7615 | 7619 | ||
| 7616 | There is one difference though: in the @code{file-append} case, the | 7620 | There is one difference though: in the @code{file-append} case, the |
| 7617 | resulting script contains the absolute file name as a string, whereas in | 7621 | resulting script contains the absolute file name as a string, whereas in |
| @@ -8099,9 +8103,9 @@ Build the package, derivation, or other file-like object that the code within | |||
| 8099 | As an example, @var{file} might contain a package definition like this | 8103 | As an example, @var{file} might contain a package definition like this |
| 8100 | (@pxref{Defining Packages}): | 8104 | (@pxref{Defining Packages}): |
| 8101 | 8105 | ||
| 8102 | @example | 8106 | @lisp |
| 8103 | @verbatiminclude package-hello.scm | 8107 | @verbatiminclude package-hello.scm |
| 8104 | @end example | 8108 | @end lisp |
| 8105 | 8109 | ||
| 8106 | @item --expression=@var{expr} | 8110 | @item --expression=@var{expr} |
| 8107 | @itemx -e @var{expr} | 8111 | @itemx -e @var{expr} |
| @@ -8908,7 +8912,17 @@ in Guix. | |||
| 8908 | @item crate | 8912 | @item crate |
| 8909 | @cindex crate | 8913 | @cindex crate |
| 8910 | Import metadata from the crates.io Rust package repository | 8914 | Import metadata from the crates.io Rust package repository |
| 8911 | @uref{https://crates.io, crates.io}. | 8915 | @uref{https://crates.io, crates.io}, as in this example: |
| 8916 | |||
| 8917 | @example | ||
| 8918 | guix import crate blake2-rfc | ||
| 8919 | @end example | ||
| 8920 | |||
| 8921 | The crate importer also allows you to specify a version string: | ||
| 8922 | |||
| 8923 | @example | ||
| 8924 | guix import crate constant-time-eq@@0.1.0 | ||
| 8925 | @end example | ||
| 8912 | 8926 | ||
| 8913 | @item opam | 8927 | @item opam |
| 8914 | @cindex OPAM | 8928 | @cindex OPAM |
| @@ -8974,13 +8988,13 @@ and @command{guix refresh} needs a little help. Most updaters honor the | |||
| 8974 | @code{upstream-name} property in package definitions, which can be used | 8988 | @code{upstream-name} property in package definitions, which can be used |
| 8975 | to that effect: | 8989 | to that effect: |
| 8976 | 8990 | ||
| 8977 | @example | 8991 | @lisp |
| 8978 | (define-public network-manager | 8992 | (define-public network-manager |
| 8979 | (package | 8993 | (package |
| 8980 | (name "network-manager") | 8994 | (name "network-manager") |
| 8981 | ;; @dots{} | 8995 | ;; @dots{} |
| 8982 | (properties '((upstream-name . "NetworkManager"))))) | 8996 | (properties '((upstream-name . "NetworkManager"))))) |
| 8983 | @end example | 8997 | @end lisp |
| 8984 | 8998 | ||
| 8985 | When passed @code{--update}, it modifies distribution source files to | 8999 | When passed @code{--update}, it modifies distribution source files to |
| 8986 | update the version numbers and source tarball hashes of those package | 9000 | update the version numbers and source tarball hashes of those package |
| @@ -9323,14 +9337,14 @@ Package developers can specify in package recipes the | |||
| 9323 | name and version of the package when they differ from the name or version | 9337 | name and version of the package when they differ from the name or version |
| 9324 | that Guix uses, as in this example: | 9338 | that Guix uses, as in this example: |
| 9325 | 9339 | ||
| 9326 | @example | 9340 | @lisp |
| 9327 | (package | 9341 | (package |
| 9328 | (name "grub") | 9342 | (name "grub") |
| 9329 | ;; @dots{} | 9343 | ;; @dots{} |
| 9330 | ;; CPE calls this package "grub2". | 9344 | ;; CPE calls this package "grub2". |
| 9331 | (properties '((cpe-name . "grub2") | 9345 | (properties '((cpe-name . "grub2") |
| 9332 | (cpe-version . "2.3"))) | 9346 | (cpe-version . "2.3"))) |
| 9333 | @end example | 9347 | @end lisp |
| 9334 | 9348 | ||
| 9335 | @c See <https://www.openwall.com/lists/oss-security/2017/03/15/3>. | 9349 | @c See <https://www.openwall.com/lists/oss-security/2017/03/15/3>. |
| 9336 | Some entries in the CVE database do not specify which version of a | 9350 | Some entries in the CVE database do not specify which version of a |
| @@ -9338,7 +9352,7 @@ package they apply to, and would thus ``stick around'' forever. Package | |||
| 9338 | developers who found CVE alerts and verified they can be ignored can | 9352 | developers who found CVE alerts and verified they can be ignored can |
| 9339 | declare them as in this example: | 9353 | declare them as in this example: |
| 9340 | 9354 | ||
| 9341 | @example | 9355 | @lisp |
| 9342 | (package | 9356 | (package |
| 9343 | (name "t1lib") | 9357 | (name "t1lib") |
| 9344 | ;; @dots{} | 9358 | ;; @dots{} |
| @@ -9347,7 +9361,7 @@ declare them as in this example: | |||
| 9347 | "CVE-2011-1553" | 9361 | "CVE-2011-1553" |
| 9348 | "CVE-2011-1554" | 9362 | "CVE-2011-1554" |
| 9349 | "CVE-2011-5244"))))) | 9363 | "CVE-2011-5244"))))) |
| 9350 | @end example | 9364 | @end lisp |
| 9351 | 9365 | ||
| 9352 | @item formatting | 9366 | @item formatting |
| 9353 | Warn about obvious source code formatting issues: trailing white space, | 9367 | Warn about obvious source code formatting issues: trailing white space, |
| @@ -10447,11 +10461,11 @@ mode, as in the example above. However, more recent machines rely instead on | |||
| 10447 | the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot. In that case, | 10461 | the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot. In that case, |
| 10448 | the @code{bootloader} field should contain something along these lines: | 10462 | the @code{bootloader} field should contain something along these lines: |
| 10449 | 10463 | ||
| 10450 | @example | 10464 | @lisp |
| 10451 | (bootloader-configuration | 10465 | (bootloader-configuration |
| 10452 | (bootloader grub-efi-bootloader) | 10466 | (bootloader grub-efi-bootloader) |
| 10453 | (target "/boot/efi")) | 10467 | (target "/boot/efi")) |
| 10454 | @end example | 10468 | @end lisp |
| 10455 | 10469 | ||
| 10456 | @xref{Bootloader Configuration}, for more information on the available | 10470 | @xref{Bootloader Configuration}, for more information on the available |
| 10457 | configuration options. | 10471 | configuration options. |
| @@ -10588,11 +10602,11 @@ Partitioning,,, guile, GNU Guile Reference Manual}). For instance, the | |||
| 10588 | following expression returns a list that contains all the services in | 10602 | following expression returns a list that contains all the services in |
| 10589 | @code{%desktop-services} minus the Avahi service: | 10603 | @code{%desktop-services} minus the Avahi service: |
| 10590 | 10604 | ||
| 10591 | @example | 10605 | @lisp |
| 10592 | (remove (lambda (service) | 10606 | (remove (lambda (service) |
| 10593 | (eq? (service-kind service) avahi-service-type)) | 10607 | (eq? (service-kind service) avahi-service-type)) |
| 10594 | %desktop-services) | 10608 | %desktop-services) |
| 10595 | @end example | 10609 | @end lisp |
| 10596 | 10610 | ||
| 10597 | @unnumberedsubsec Instantiating the System | 10611 | @unnumberedsubsec Instantiating the System |
| 10598 | 10612 | ||
| @@ -10753,12 +10767,12 @@ the home directory of newly-created user accounts. | |||
| 10753 | 10767 | ||
| 10754 | For instance, a valid value may look like this: | 10768 | For instance, a valid value may look like this: |
| 10755 | 10769 | ||
| 10756 | @example | 10770 | @lisp |
| 10757 | `((".bashrc" ,(plain-file "bashrc" "echo Hello\n")) | 10771 | `((".bashrc" ,(plain-file "bashrc" "echo Hello\n")) |
| 10758 | (".guile" ,(plain-file "guile" | 10772 | (".guile" ,(plain-file "guile" |
| 10759 | "(use-modules (ice-9 readline)) | 10773 | "(use-modules (ice-9 readline)) |
| 10760 | (activate-readline)"))) | 10774 | (activate-readline)"))) |
| 10761 | @end example | 10775 | @end lisp |
| 10762 | 10776 | ||
| 10763 | @item @code{issue} (default: @code{%default-issue}) | 10777 | @item @code{issue} (default: @code{%default-issue}) |
| 10764 | A string denoting the contents of the @file{/etc/issue} file, which is | 10778 | A string denoting the contents of the @file{/etc/issue} file, which is |
| @@ -10836,14 +10850,14 @@ this identifier resolves to the operating system being defined. | |||
| 10836 | The example below shows how to refer to the operating system being defined in | 10850 | The example below shows how to refer to the operating system being defined in |
| 10837 | the definition of the @code{label} field: | 10851 | the definition of the @code{label} field: |
| 10838 | 10852 | ||
| 10839 | @example | 10853 | @lisp |
| 10840 | (use-modules (gnu) (guix)) | 10854 | (use-modules (gnu) (guix)) |
| 10841 | 10855 | ||
| 10842 | (operating-system | 10856 | (operating-system |
| 10843 | ;; ... | 10857 | ;; ... |
| 10844 | (label (package-full-name | 10858 | (label (package-full-name |
| 10845 | (operating-system-kernel this-operating-system)))) | 10859 | (operating-system-kernel this-operating-system)))) |
| 10846 | @end example | 10860 | @end lisp |
| 10847 | 10861 | ||
| 10848 | It is an error to refer to @code{this-operating-system} outside an operating | 10862 | It is an error to refer to @code{this-operating-system} outside an operating |
| 10849 | system definition. | 10863 | system definition. |
| @@ -10859,12 +10873,12 @@ The list of file systems to be mounted is specified in the | |||
| 10859 | (@pxref{Using the Configuration System}). Each file system is declared | 10873 | (@pxref{Using the Configuration System}). Each file system is declared |
| 10860 | using the @code{file-system} form, like this: | 10874 | using the @code{file-system} form, like this: |
| 10861 | 10875 | ||
| 10862 | @example | 10876 | @lisp |
| 10863 | (file-system | 10877 | (file-system |
| 10864 | (mount-point "/home") | 10878 | (mount-point "/home") |
| 10865 | (device "/dev/sda3") | 10879 | (device "/dev/sda3") |
| 10866 | (type "ext4")) | 10880 | (type "ext4")) |
| 10867 | @end example | 10881 | @end lisp |
| 10868 | 10882 | ||
| 10869 | As usual, some of the fields are mandatory---those shown in the example | 10883 | As usual, some of the fields are mandatory---those shown in the example |
| 10870 | above---while others can be omitted. These are described below. | 10884 | above---while others can be omitted. These are described below. |
| @@ -10898,12 +10912,12 @@ procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are | |||
| 10898 | plain strings. Here's an example of a file system referred to by its | 10912 | plain strings. Here's an example of a file system referred to by its |
| 10899 | label, as shown by the @command{e2label} command: | 10913 | label, as shown by the @command{e2label} command: |
| 10900 | 10914 | ||
| 10901 | @example | 10915 | @lisp |
| 10902 | (file-system | 10916 | (file-system |
| 10903 | (mount-point "/home") | 10917 | (mount-point "/home") |
| 10904 | (type "ext4") | 10918 | (type "ext4") |
| 10905 | (device (file-system-label "my-home"))) | 10919 | (device (file-system-label "my-home"))) |
| 10906 | @end example | 10920 | @end lisp |
| 10907 | 10921 | ||
| 10908 | @findex uuid | 10922 | @findex uuid |
| 10909 | UUIDs are converted from their string representation (as shown by the | 10923 | UUIDs are converted from their string representation (as shown by the |
| @@ -10914,12 +10928,12 @@ form of UUID used by the ext2 family of file systems and others, but it | |||
| 10914 | is different from ``UUIDs'' found in FAT file systems, for instance.}, | 10928 | is different from ``UUIDs'' found in FAT file systems, for instance.}, |
| 10915 | like this: | 10929 | like this: |
| 10916 | 10930 | ||
| 10917 | @example | 10931 | @lisp |
| 10918 | (file-system | 10932 | (file-system |
| 10919 | (mount-point "/home") | 10933 | (mount-point "/home") |
| 10920 | (type "ext4") | 10934 | (type "ext4") |
| 10921 | (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) | 10935 | (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) |
| 10922 | @end example | 10936 | @end lisp |
| 10923 | 10937 | ||
| 10924 | When the source of a file system is a mapped device (@pxref{Mapped | 10938 | When the source of a file system is a mapped device (@pxref{Mapped |
| 10925 | Devices}), its @code{device} field @emph{must} refer to the mapped | 10939 | Devices}), its @code{device} field @emph{must} refer to the mapped |
| @@ -11094,12 +11108,12 @@ The @file{/dev/mapper/home} | |||
| 11094 | device can then be used as the @code{device} of a @code{file-system} | 11108 | device can then be used as the @code{device} of a @code{file-system} |
| 11095 | declaration (@pxref{File Systems}). | 11109 | declaration (@pxref{File Systems}). |
| 11096 | 11110 | ||
| 11097 | @example | 11111 | @lisp |
| 11098 | (mapped-device | 11112 | (mapped-device |
| 11099 | (source "/dev/sda3") | 11113 | (source "/dev/sda3") |
| 11100 | (target "home") | 11114 | (target "home") |
| 11101 | (type luks-device-mapping)) | 11115 | (type luks-device-mapping)) |
| 11102 | @end example | 11116 | @end lisp |
| 11103 | 11117 | ||
| 11104 | Alternatively, to become independent of device numbering, one may obtain | 11118 | Alternatively, to become independent of device numbering, one may obtain |
| 11105 | the LUKS UUID (@dfn{unique identifier}) of the source device by a | 11119 | the LUKS UUID (@dfn{unique identifier}) of the source device by a |
| @@ -11111,12 +11125,12 @@ cryptsetup luksUUID /dev/sda3 | |||
| 11111 | 11125 | ||
| 11112 | and use it as follows: | 11126 | and use it as follows: |
| 11113 | 11127 | ||
| 11114 | @example | 11128 | @lisp |
| 11115 | (mapped-device | 11129 | (mapped-device |
| 11116 | (source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44")) | 11130 | (source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44")) |
| 11117 | (target "home") | 11131 | (target "home") |
| 11118 | (type luks-device-mapping)) | 11132 | (type luks-device-mapping)) |
| 11119 | @end example | 11133 | @end lisp |
| 11120 | 11134 | ||
| 11121 | @cindex swap encryption | 11135 | @cindex swap encryption |
| 11122 | It is also desirable to encrypt swap space, since swap space may contain | 11136 | It is also desirable to encrypt swap space, since swap space may contain |
| @@ -11128,12 +11142,12 @@ swap file is encrypted because the entire device is encrypted. | |||
| 11128 | A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} | 11142 | A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} |
| 11129 | may be declared as follows: | 11143 | may be declared as follows: |
| 11130 | 11144 | ||
| 11131 | @example | 11145 | @lisp |
| 11132 | (mapped-device | 11146 | (mapped-device |
| 11133 | (source (list "/dev/sda1" "/dev/sdb1")) | 11147 | (source (list "/dev/sda1" "/dev/sdb1")) |
| 11134 | (target "/dev/md0") | 11148 | (target "/dev/md0") |
| 11135 | (type raid-device-mapping)) | 11149 | (type raid-device-mapping)) |
| 11136 | @end example | 11150 | @end lisp |
| 11137 | 11151 | ||
| 11138 | The @file{/dev/md0} device can then be used as the @code{device} of a | 11152 | The @file{/dev/md0} device can then be used as the @code{device} of a |
| 11139 | @code{file-system} declaration (@pxref{File Systems}). | 11153 | @code{file-system} declaration (@pxref{File Systems}). |
| @@ -11152,7 +11166,7 @@ User accounts and groups are entirely managed through the | |||
| 11152 | @code{operating-system} declaration. They are specified with the | 11166 | @code{operating-system} declaration. They are specified with the |
| 11153 | @code{user-account} and @code{user-group} forms: | 11167 | @code{user-account} and @code{user-group} forms: |
| 11154 | 11168 | ||
| 11155 | @example | 11169 | @lisp |
| 11156 | (user-account | 11170 | (user-account |
| 11157 | (name "alice") | 11171 | (name "alice") |
| 11158 | (group "users") | 11172 | (group "users") |
| @@ -11162,7 +11176,7 @@ User accounts and groups are entirely managed through the | |||
| 11162 | "cdrom")) ;the good ol' CD-ROM | 11176 | "cdrom")) ;the good ol' CD-ROM |
| 11163 | (comment "Bob's sister") | 11177 | (comment "Bob's sister") |
| 11164 | (home-directory "/home/alice")) | 11178 | (home-directory "/home/alice")) |
| 11165 | @end example | 11179 | @end lisp |
| 11166 | 11180 | ||
| 11167 | When booting or upon completion of @command{guix system reconfigure}, | 11181 | When booting or upon completion of @command{guix system reconfigure}, |
| 11168 | the system ensures that only the user accounts and groups specified in | 11182 | the system ensures that only the user accounts and groups specified in |
| @@ -11226,14 +11240,14 @@ If you @emph{do} want to set an initial password for an account, then | |||
| 11226 | this field must contain the encrypted password, as a string. You can use the | 11240 | this field must contain the encrypted password, as a string. You can use the |
| 11227 | @code{crypt} procedure for this purpose: | 11241 | @code{crypt} procedure for this purpose: |
| 11228 | 11242 | ||
| 11229 | @example | 11243 | @lisp |
| 11230 | (user-account | 11244 | (user-account |
| 11231 | (name "charlie") | 11245 | (name "charlie") |
| 11232 | (group "users") | 11246 | (group "users") |
| 11233 | 11247 | ||
| 11234 | ;; Specify a SHA-512-hashed initial password. | 11248 | ;; Specify a SHA-512-hashed initial password. |
| 11235 | (password (crypt "InitialPassword!" "$6$abc"))) | 11249 | (password (crypt "InitialPassword!" "$6$abc"))) |
| 11236 | @end example | 11250 | @end lisp |
| 11237 | 11251 | ||
| 11238 | @quotation Note | 11252 | @quotation Note |
| 11239 | The hash of this initial password will be available in a file in | 11253 | The hash of this initial password will be available in a file in |
| @@ -11251,9 +11265,9 @@ Guile Reference Manual}, for information on Guile's @code{crypt} procedure. | |||
| 11251 | @cindex groups | 11265 | @cindex groups |
| 11252 | User group declarations are even simpler: | 11266 | User group declarations are even simpler: |
| 11253 | 11267 | ||
| 11254 | @example | 11268 | @lisp |
| 11255 | (user-group (name "students")) | 11269 | (user-group (name "students")) |
| 11256 | @end example | 11270 | @end lisp |
| 11257 | 11271 | ||
| 11258 | @deftp {Data Type} user-group | 11272 | @deftp {Data Type} user-group |
| 11259 | This type is for, well, user groups. There are just a few fields: | 11273 | This type is for, well, user groups. There are just a few fields: |
| @@ -11340,7 +11354,7 @@ optional variant name, an optional keyboard model name, and a possibly empty | |||
| 11340 | list of additional options. In most cases the layout name is all you care | 11354 | list of additional options. In most cases the layout name is all you care |
| 11341 | about. Here are a few example: | 11355 | about. Here are a few example: |
| 11342 | 11356 | ||
| 11343 | @example | 11357 | @lisp |
| 11344 | ;; The German QWERTZ layout. Here we assume a standard | 11358 | ;; The German QWERTZ layout. Here we assume a standard |
| 11345 | ;; "pc105" keyboard model. | 11359 | ;; "pc105" keyboard model. |
| 11346 | (keyboard-layout "de") | 11360 | (keyboard-layout "de") |
| @@ -11365,7 +11379,7 @@ about. Here are a few example: | |||
| 11365 | ;; dead keys to enter accented characters. This is for an | 11379 | ;; dead keys to enter accented characters. This is for an |
| 11366 | ;; Apple MacBook keyboard. | 11380 | ;; Apple MacBook keyboard. |
| 11367 | (keyboard-layout "us" "intl" #:model "macbook78") | 11381 | (keyboard-layout "us" "intl" #:model "macbook78") |
| 11368 | @end example | 11382 | @end lisp |
| 11369 | 11383 | ||
| 11370 | See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package | 11384 | See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package |
| 11371 | for a complete list of supported layouts, variants, and models. | 11385 | for a complete list of supported layouts, variants, and models. |
| @@ -11455,20 +11469,20 @@ used locales, but not all the available locales, in order to save space. | |||
| 11455 | For instance, to add the North Frisian locale for Germany, the value of | 11469 | For instance, to add the North Frisian locale for Germany, the value of |
| 11456 | that field may be: | 11470 | that field may be: |
| 11457 | 11471 | ||
| 11458 | @example | 11472 | @lisp |
| 11459 | (cons (locale-definition | 11473 | (cons (locale-definition |
| 11460 | (name "fy_DE.utf8") (source "fy_DE")) | 11474 | (name "fy_DE.utf8") (source "fy_DE")) |
| 11461 | %default-locale-definitions) | 11475 | %default-locale-definitions) |
| 11462 | @end example | 11476 | @end lisp |
| 11463 | 11477 | ||
| 11464 | Likewise, to save space, one might want @code{locale-definitions} to | 11478 | Likewise, to save space, one might want @code{locale-definitions} to |
| 11465 | list only the locales that are actually used, as in: | 11479 | list only the locales that are actually used, as in: |
| 11466 | 11480 | ||
| 11467 | @example | 11481 | @lisp |
| 11468 | (list (locale-definition | 11482 | (list (locale-definition |
| 11469 | (name "ja_JP.eucjp") (source "ja_JP") | 11483 | (name "ja_JP.eucjp") (source "ja_JP") |
| 11470 | (charset "EUC-JP"))) | 11484 | (charset "EUC-JP"))) |
| 11471 | @end example | 11485 | @end lisp |
| 11472 | 11486 | ||
| 11473 | @vindex LOCPATH | 11487 | @vindex LOCPATH |
| 11474 | The compiled locale definitions are available at | 11488 | The compiled locale definitions are available at |
| @@ -11554,13 +11568,13 @@ it---this is especially crucial on a multi-user system. To do that, the | |||
| 11554 | administrator can specify several libc packages in the | 11568 | administrator can specify several libc packages in the |
| 11555 | @code{locale-libcs} field of @code{operating-system}: | 11569 | @code{locale-libcs} field of @code{operating-system}: |
| 11556 | 11570 | ||
| 11557 | @example | 11571 | @lisp |
| 11558 | (use-package-modules base) | 11572 | (use-package-modules base) |
| 11559 | 11573 | ||
| 11560 | (operating-system | 11574 | (operating-system |
| 11561 | ;; @dots{} | 11575 | ;; @dots{} |
| 11562 | (locale-libcs (list glibc-2.21 (canonical-package glibc)))) | 11576 | (locale-libcs (list glibc-2.21 (canonical-package glibc)))) |
| 11563 | @end example | 11577 | @end lisp |
| 11564 | 11578 | ||
| 11565 | This example would lead to a system containing locale definitions for | 11579 | This example would lead to a system containing locale definitions for |
| 11566 | both libc 2.21 and the current version of libc in | 11580 | both libc 2.21 and the current version of libc in |
| @@ -11665,11 +11679,11 @@ This is the default value of the @code{services} field of | |||
| 11665 | system, you will want to append services to @code{%base-services}, like | 11679 | system, you will want to append services to @code{%base-services}, like |
| 11666 | this: | 11680 | this: |
| 11667 | 11681 | ||
| 11668 | @example | 11682 | @lisp |
| 11669 | (append (list (service avahi-service-type) | 11683 | (append (list (service avahi-service-type) |
| 11670 | (service openssh-service-type)) | 11684 | (service openssh-service-type)) |
| 11671 | %base-services) | 11685 | %base-services) |
| 11672 | @end example | 11686 | @end lisp |
| 11673 | @end defvr | 11687 | @end defvr |
| 11674 | 11688 | ||
| 11675 | @defvr {Scheme Variable} special-files-service-type | 11689 | @defvr {Scheme Variable} special-files-service-type |
| @@ -11682,19 +11696,19 @@ and the second element is its target. By default it is: | |||
| 11682 | 11696 | ||
| 11683 | @cindex @file{/bin/sh} | 11697 | @cindex @file{/bin/sh} |
| 11684 | @cindex @file{sh}, in @file{/bin} | 11698 | @cindex @file{sh}, in @file{/bin} |
| 11685 | @example | 11699 | @lisp |
| 11686 | `(("/bin/sh" ,(file-append @var{bash} "/bin/sh"))) | 11700 | `(("/bin/sh" ,(file-append bash "/bin/sh"))) |
| 11687 | @end example | 11701 | @end lisp |
| 11688 | 11702 | ||
| 11689 | @cindex @file{/usr/bin/env} | 11703 | @cindex @file{/usr/bin/env} |
| 11690 | @cindex @file{env}, in @file{/usr/bin} | 11704 | @cindex @file{env}, in @file{/usr/bin} |
| 11691 | If you want to add, say, @code{/usr/bin/env} to your system, you can | 11705 | If you want to add, say, @code{/usr/bin/env} to your system, you can |
| 11692 | change it to: | 11706 | change it to: |
| 11693 | 11707 | ||
| 11694 | @example | 11708 | @lisp |
| 11695 | `(("/bin/sh" ,(file-append @var{bash} "/bin/sh")) | 11709 | `(("/bin/sh" ,(file-append bash "/bin/sh")) |
| 11696 | ("/usr/bin/env" ,(file-append @var{coreutils} "/bin/env"))) | 11710 | ("/usr/bin/env" ,(file-append coreutils "/bin/env"))) |
| 11697 | @end example | 11711 | @end lisp |
| 11698 | 11712 | ||
| 11699 | Since this is part of @code{%base-services}, you can use | 11713 | Since this is part of @code{%base-services}, you can use |
| 11700 | @code{modify-services} to customize the set of special files | 11714 | @code{modify-services} to customize the set of special files |
| @@ -11710,10 +11724,10 @@ For example, adding the following lines to the @code{services} field of | |||
| 11710 | your operating system declaration leads to a @file{/usr/bin/env} | 11724 | your operating system declaration leads to a @file{/usr/bin/env} |
| 11711 | symlink: | 11725 | symlink: |
| 11712 | 11726 | ||
| 11713 | @example | 11727 | @lisp |
| 11714 | (extra-special-file "/usr/bin/env" | 11728 | (extra-special-file "/usr/bin/env" |
| 11715 | (file-append coreutils "/bin/env")) | 11729 | (file-append coreutils "/bin/env")) |
| 11716 | @end example | 11730 | @end lisp |
| 11717 | @end deffn | 11731 | @end deffn |
| 11718 | 11732 | ||
| 11719 | @deffn {Scheme Procedure} host-name-service @var{name} | 11733 | @deffn {Scheme Procedure} host-name-service @var{name} |
| @@ -12212,14 +12226,14 @@ In the following example, a rule for a USB device is defined to be | |||
| 12212 | stored in the file @file{90-usb-thing.rules}. The rule runs a script | 12226 | stored in the file @file{90-usb-thing.rules}. The rule runs a script |
| 12213 | upon detecting a USB device with a given product identifier. | 12227 | upon detecting a USB device with a given product identifier. |
| 12214 | 12228 | ||
| 12215 | @example | 12229 | @lisp |
| 12216 | (define %example-udev-rule | 12230 | (define %example-udev-rule |
| 12217 | (udev-rule | 12231 | (udev-rule |
| 12218 | "90-usb-thing.rules" | 12232 | "90-usb-thing.rules" |
| 12219 | (string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", " | 12233 | (string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", " |
| 12220 | "ATTR@{product@}==\"Example\", " | 12234 | "ATTR@{product@}==\"Example\", " |
| 12221 | "RUN+=\"/path/to/script\""))) | 12235 | "RUN+=\"/path/to/script\""))) |
| 12222 | @end example | 12236 | @end lisp |
| 12223 | 12237 | ||
| 12224 | The @command{herd rules udev} command, as root, returns the name of the | 12238 | The @command{herd rules udev} command, as root, returns the name of the |
| 12225 | directory containing all the active udev rules. | 12239 | directory containing all the active udev rules. |
| @@ -12227,7 +12241,7 @@ directory containing all the active udev rules. | |||
| 12227 | 12241 | ||
| 12228 | Here we show how the default @var{udev-service} can be extended with it. | 12242 | Here we show how the default @var{udev-service} can be extended with it. |
| 12229 | 12243 | ||
| 12230 | @example | 12244 | @lisp |
| 12231 | (operating-system | 12245 | (operating-system |
| 12232 | ;; @dots{} | 12246 | ;; @dots{} |
| 12233 | (services | 12247 | (services |
| @@ -12236,7 +12250,7 @@ Here we show how the default @var{udev-service} can be extended with it. | |||
| 12236 | (udev-configuration (inherit config) | 12250 | (udev-configuration (inherit config) |
| 12237 | (rules (append (udev-configuration-rules config) | 12251 | (rules (append (udev-configuration-rules config) |
| 12238 | (list %example-udev-rule)))))))) | 12252 | (list %example-udev-rule)))))))) |
| 12239 | @end example | 12253 | @end lisp |
| 12240 | 12254 | ||
| 12241 | @deffn {Scheme Procedure} file->udev-rule [@var{file-name} @var{file}] | 12255 | @deffn {Scheme Procedure} file->udev-rule [@var{file-name} @var{file}] |
| 12242 | Return a udev file named @var{file-name} containing the rules defined | 12256 | Return a udev file named @var{file-name} containing the rules defined |
| @@ -12244,7 +12258,7 @@ within @var{file}, a file-like object. | |||
| 12244 | 12258 | ||
| 12245 | The following example showcases how we can use an existing rule file. | 12259 | The following example showcases how we can use an existing rule file. |
| 12246 | 12260 | ||
| 12247 | @example | 12261 | @lisp |
| 12248 | (use-modules (guix download) ;for url-fetch | 12262 | (use-modules (guix download) ;for url-fetch |
| 12249 | (guix packages) ;for origin | 12263 | (guix packages) ;for origin |
| 12250 | ;; @dots{}) | 12264 | ;; @dots{}) |
| @@ -12259,7 +12273,7 @@ The following example showcases how we can use an existing rule file. | |||
| 12259 | "android-udev-rules/" version "/51-android.rules")) | 12273 | "android-udev-rules/" version "/51-android.rules")) |
| 12260 | (sha256 | 12274 | (sha256 |
| 12261 | (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003")))))) | 12275 | (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003")))))) |
| 12262 | @end example | 12276 | @end lisp |
| 12263 | @end deffn | 12277 | @end deffn |
| 12264 | 12278 | ||
| 12265 | Additionally, Guix package definitions can be included in @var{rules} in | 12279 | Additionally, Guix package definitions can be included in @var{rules} in |
| @@ -12278,7 +12292,7 @@ create such a group, we must define it both as part of the | |||
| 12278 | @var{supplementary-groups} of our @var{user-account} declaration, as | 12292 | @var{supplementary-groups} of our @var{user-account} declaration, as |
| 12279 | well as in the @var{groups} field of the @var{operating-system} record. | 12293 | well as in the @var{groups} field of the @var{operating-system} record. |
| 12280 | 12294 | ||
| 12281 | @example | 12295 | @lisp |
| 12282 | (use-modules (gnu packages android) ;for android-udev-rules | 12296 | (use-modules (gnu packages android) ;for android-udev-rules |
| 12283 | (gnu system shadow) ;for user-group | 12297 | (gnu system shadow) ;for user-group |
| 12284 | ;; @dots{}) | 12298 | ;; @dots{}) |
| @@ -12304,7 +12318,7 @@ well as in the @var{groups} field of the @var{operating-system} record. | |||
| 12304 | (udev-configuration (inherit config) | 12318 | (udev-configuration (inherit config) |
| 12305 | (rules (cons android-udev-rules | 12319 | (rules (cons android-udev-rules |
| 12306 | (udev-configuration-rules config)))))))) | 12320 | (udev-configuration-rules config)))))))) |
| 12307 | @end example | 12321 | @end lisp |
| 12308 | 12322 | ||
| 12309 | @defvr {Scheme Variable} urandom-seed-service-type | 12323 | @defvr {Scheme Variable} urandom-seed-service-type |
| 12310 | Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} | 12324 | Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} |
| @@ -12378,9 +12392,9 @@ This is a list of compression method/level tuple used when compressing | |||
| 12378 | substitutes. For example, to compress all substitutes with @emph{both} lzip | 12392 | substitutes. For example, to compress all substitutes with @emph{both} lzip |
| 12379 | at level 7 and gzip at level 9, write: | 12393 | at level 7 and gzip at level 9, write: |
| 12380 | 12394 | ||
| 12381 | @example | 12395 | @lisp |
| 12382 | '(("lzip" 7) ("gzip" 9)) | 12396 | '(("lzip" 7) ("gzip" 9)) |
| 12383 | @end example | 12397 | @end lisp |
| 12384 | 12398 | ||
| 12385 | Level 9 achieves the best compression ratio at the expense of increased CPU | 12399 | Level 9 achieves the best compression ratio at the expense of increased CPU |
| 12386 | usage, whereas level 1 achieves fast compression. | 12400 | usage, whereas level 1 achieves fast compression. |
| @@ -12435,12 +12449,12 @@ Return a service that installs a configuration file for the | |||
| 12435 | The following limits definition sets two hard and soft limits for all | 12449 | The following limits definition sets two hard and soft limits for all |
| 12436 | login sessions of users in the @code{realtime} group: | 12450 | login sessions of users in the @code{realtime} group: |
| 12437 | 12451 | ||
| 12438 | @example | 12452 | @lisp |
| 12439 | (pam-limits-service | 12453 | (pam-limits-service |
| 12440 | (list | 12454 | (list |
| 12441 | (pam-limits-entry "@@realtime" 'both 'rtprio 99) | 12455 | (pam-limits-entry "@@realtime" 'both 'rtprio 99) |
| 12442 | (pam-limits-entry "@@realtime" 'both 'memlock 'unlimited))) | 12456 | (pam-limits-entry "@@realtime" 'both 'memlock 'unlimited))) |
| 12443 | @end example | 12457 | @end lisp |
| 12444 | 12458 | ||
| 12445 | The first entry increases the maximum realtime priority for | 12459 | The first entry increases the maximum realtime priority for |
| 12446 | non-privileged processes; the second entry lifts any restriction of the | 12460 | non-privileged processes; the second entry lifts any restriction of the |
| @@ -12647,7 +12661,7 @@ Taking an example from the Rottlog manual (@pxref{Period Related File | |||
| 12647 | Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be | 12661 | Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be |
| 12648 | defined like this: | 12662 | defined like this: |
| 12649 | 12663 | ||
| 12650 | @example | 12664 | @lisp |
| 12651 | (log-rotation | 12665 | (log-rotation |
| 12652 | (frequency 'daily) | 12666 | (frequency 'daily) |
| 12653 | (files '("/var/log/apache/*")) | 12667 | (files '("/var/log/apache/*")) |
| @@ -12655,7 +12669,7 @@ defined like this: | |||
| 12655 | "rotate 6" | 12669 | "rotate 6" |
| 12656 | "notifempty" | 12670 | "notifempty" |
| 12657 | "nocompress"))) | 12671 | "nocompress"))) |
| 12658 | @end example | 12672 | @end lisp |
| 12659 | 12673 | ||
| 12660 | The list of fields is as follows: | 12674 | The list of fields is as follows: |
| 12661 | 12675 | ||
| @@ -12704,12 +12718,12 @@ This type defines a service that runs a DHCP daemon. To create a | |||
| 12704 | service of this type, you must supply a @code{<dhcpd-configuration>}. | 12718 | service of this type, you must supply a @code{<dhcpd-configuration>}. |
| 12705 | For example: | 12719 | For example: |
| 12706 | 12720 | ||
| 12707 | @example | 12721 | @lisp |
| 12708 | (service dhcpd-service-type | 12722 | (service dhcpd-service-type |
| 12709 | (dhcpd-configuration | 12723 | (dhcpd-configuration |
| 12710 | (config-file (local-file "my-dhcpd.conf")) | 12724 | (config-file (local-file "my-dhcpd.conf")) |
| 12711 | (interfaces '("enp0s25")))) | 12725 | (interfaces '("enp0s25")))) |
| 12712 | @end example | 12726 | @end lisp |
| 12713 | @end deffn | 12727 | @end deffn |
| 12714 | 12728 | ||
| 12715 | @deftp {Data Type} dhcpd-configuration | 12729 | @deftp {Data Type} dhcpd-configuration |
| @@ -12765,11 +12779,11 @@ to handle. | |||
| 12765 | 12779 | ||
| 12766 | For example: | 12780 | For example: |
| 12767 | 12781 | ||
| 12768 | @example | 12782 | @lisp |
| 12769 | (static-networking-service "eno1" "192.168.1.82" | 12783 | (static-networking-service "eno1" "192.168.1.82" |
| 12770 | #:gateway "192.168.1.2" | 12784 | #:gateway "192.168.1.2" |
| 12771 | #:name-servers '("192.168.1.2")) | 12785 | #:name-servers '("192.168.1.2")) |
| 12772 | @end example | 12786 | @end lisp |
| 12773 | @end deffn | 12787 | @end deffn |
| 12774 | 12788 | ||
| 12775 | @cindex wicd | 12789 | @cindex wicd |
| @@ -12924,11 +12938,11 @@ a network connection manager. | |||
| 12924 | Its value must be an | 12938 | Its value must be an |
| 12925 | @code{connman-configuration} record as in this example: | 12939 | @code{connman-configuration} record as in this example: |
| 12926 | 12940 | ||
| 12927 | @example | 12941 | @lisp |
| 12928 | (service connman-service-type | 12942 | (service connman-service-type |
| 12929 | (connman-configuration | 12943 | (connman-configuration |
| 12930 | (disable-vpn? #t))) | 12944 | (disable-vpn? #t))) |
| 12931 | @end example | 12945 | @end lisp |
| 12932 | 12946 | ||
| 12933 | See below for details about @code{connman-configuration}. | 12947 | See below for details about @code{connman-configuration}. |
| 12934 | @end deffn | 12948 | @end deffn |
| @@ -13028,6 +13042,7 @@ objects}). | |||
| 13028 | @end deftp | 13042 | @end deftp |
| 13029 | 13043 | ||
| 13030 | @cindex NTP (Network Time Protocol), service | 13044 | @cindex NTP (Network Time Protocol), service |
| 13045 | @cindex ntpd, service for the Network Time Protocol daemon | ||
| 13031 | @cindex real time clock | 13046 | @cindex real time clock |
| 13032 | @defvr {Scheme Variable} ntp-service-type | 13047 | @defvr {Scheme Variable} ntp-service-type |
| 13033 | This is the type of the service running the @uref{http://www.ntp.org, | 13048 | This is the type of the service running the @uref{http://www.ntp.org, |
| @@ -13043,10 +13058,11 @@ This is the data type for the NTP service configuration. | |||
| 13043 | 13058 | ||
| 13044 | @table @asis | 13059 | @table @asis |
| 13045 | @item @code{servers} (default: @code{%ntp-servers}) | 13060 | @item @code{servers} (default: @code{%ntp-servers}) |
| 13046 | This is the list of servers (host names) with which @command{ntpd} will be | 13061 | This is the list of servers (@code{<ntp-server>} records) with which |
| 13047 | synchronized. | 13062 | @command{ntpd} will be synchronized. See the @code{ntp-server} data type |
| 13063 | definition below. | ||
| 13048 | 13064 | ||
| 13049 | @item @code{allow-large-adjustment?} (default: @code{#f}) | 13065 | @item @code{allow-large-adjustment?} (default: @code{#t}) |
| 13050 | This determines whether @command{ntpd} is allowed to make an initial | 13066 | This determines whether @command{ntpd} is allowed to make an initial |
| 13051 | adjustment of more than 1,000 seconds. | 13067 | adjustment of more than 1,000 seconds. |
| 13052 | 13068 | ||
| @@ -13060,13 +13076,39 @@ List of host names used as the default NTP servers. These are servers of the | |||
| 13060 | @uref{https://www.ntppool.org/en/, NTP Pool Project}. | 13076 | @uref{https://www.ntppool.org/en/, NTP Pool Project}. |
| 13061 | @end defvr | 13077 | @end defvr |
| 13062 | 13078 | ||
| 13079 | @deftp {Data Type} ntp-server | ||
| 13080 | The data type representing the configuration of a NTP server. | ||
| 13081 | |||
| 13082 | @table @asis | ||
| 13083 | @item @code{type} (default: @code{'server}) | ||
| 13084 | The type of the NTP server, given as a symbol. One of @code{'pool}, | ||
| 13085 | @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}. | ||
| 13086 | |||
| 13087 | @item @code{address} | ||
| 13088 | The address of the server, as a string. | ||
| 13089 | |||
| 13090 | @item @code{options} | ||
| 13091 | NTPD options to use with that specific server, given as a list of option names | ||
| 13092 | and/or of option names and values tuples. The following example define a server | ||
| 13093 | to use with the options @option{iburst} and @option{prefer}, as well as | ||
| 13094 | @option{version} 3 and a @option{maxpoll} time of 16 seconds. | ||
| 13095 | |||
| 13096 | @example | ||
| 13097 | (ntp-server | ||
| 13098 | (type 'server) | ||
| 13099 | (address "some.ntp.server.org") | ||
| 13100 | (options `(iburst (version 3) (maxpoll 16) prefer)))) | ||
| 13101 | @end example | ||
| 13102 | @end table | ||
| 13103 | @end deftp | ||
| 13104 | |||
| 13063 | @cindex OpenNTPD | 13105 | @cindex OpenNTPD |
| 13064 | @deffn {Scheme Procedure} openntpd-service-type | 13106 | @deffn {Scheme Procedure} openntpd-service-type |
| 13065 | Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as implemented | 13107 | Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as implemented |
| 13066 | by @uref{http://www.openntpd.org, OpenNTPD}. The daemon will keep the system | 13108 | by @uref{http://www.openntpd.org, OpenNTPD}. The daemon will keep the system |
| 13067 | clock synchronized with that of the given servers. | 13109 | clock synchronized with that of the given servers. |
| 13068 | 13110 | ||
| 13069 | @example | 13111 | @lisp |
| 13070 | (service | 13112 | (service |
| 13071 | openntpd-service-type | 13113 | openntpd-service-type |
| 13072 | (openntpd-configuration | 13114 | (openntpd-configuration |
| @@ -13076,9 +13118,14 @@ clock synchronized with that of the given servers. | |||
| 13076 | (constraints-from '("https://www.google.com/")) | 13118 | (constraints-from '("https://www.google.com/")) |
| 13077 | (allow-large-adjustment? #t))) | 13119 | (allow-large-adjustment? #t))) |
| 13078 | 13120 | ||
| 13079 | @end example | 13121 | @end lisp |
| 13080 | @end deffn | 13122 | @end deffn |
| 13081 | 13123 | ||
| 13124 | @defvr {Scheme Variable} %openntpd-servers | ||
| 13125 | This variable is a list of the server addresses defined in | ||
| 13126 | @var{%ntp-servers}. | ||
| 13127 | @end defvr | ||
| 13128 | |||
| 13082 | @deftp {Data Type} openntpd-configuration | 13129 | @deftp {Data Type} openntpd-configuration |
| 13083 | @table @asis | 13130 | @table @asis |
| 13084 | @item @code{openntpd} (default: @code{(file-append openntpd "/sbin/ntpd")}) | 13131 | @item @code{openntpd} (default: @code{(file-append openntpd "/sbin/ntpd")}) |
| @@ -13092,9 +13139,9 @@ Specify a list of timedelta sensor devices ntpd should use. @code{ntpd} | |||
| 13092 | will listen to each sensor that actually exists and ignore non-existent ones. | 13139 | will listen to each sensor that actually exists and ignore non-existent ones. |
| 13093 | See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more | 13140 | See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more |
| 13094 | information. | 13141 | information. |
| 13095 | @item @code{server} (default: @var{%ntp-servers}) | 13142 | @item @code{server} (default: @code{'()}) |
| 13096 | Specify a list of IP addresses or hostnames of NTP servers to synchronize to. | 13143 | Specify a list of IP addresses or hostnames of NTP servers to synchronize to. |
| 13097 | @item @code{servers} (default: @code{'()}) | 13144 | @item @code{servers} (default: @var{%openntp-servers}) |
| 13098 | Specify a list of IP addresses or hostnames of NTP pools to synchronize to. | 13145 | Specify a list of IP addresses or hostnames of NTP pools to synchronize to. |
| 13099 | @item @code{constraint-from} (default: @code{'()}) | 13146 | @item @code{constraint-from} (default: @code{'()}) |
| 13100 | @code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS. | 13147 | @code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS. |
| @@ -13126,7 +13173,7 @@ built-in @command{echo} service, as well as an smtp service which | |||
| 13126 | forwards smtp traffic over ssh to a server @code{smtp-server} behind a | 13173 | forwards smtp traffic over ssh to a server @code{smtp-server} behind a |
| 13127 | gateway @code{hostname}: | 13174 | gateway @code{hostname}: |
| 13128 | 13175 | ||
| 13129 | @example | 13176 | @lisp |
| 13130 | (service | 13177 | (service |
| 13131 | inetd-service-type | 13178 | inetd-service-type |
| 13132 | (inetd-configuration | 13179 | (inetd-configuration |
| @@ -13148,7 +13195,7 @@ gateway @code{hostname}: | |||
| 13148 | (arguments | 13195 | (arguments |
| 13149 | '("ssh" "-qT" "-i" "/path/to/ssh_key" | 13196 | '("ssh" "-qT" "-i" "/path/to/ssh_key" |
| 13150 | "-W" "smtp-server:25" "user@@hostname"))))) | 13197 | "-W" "smtp-server:25" "user@@hostname"))))) |
| 13151 | @end example | 13198 | @end lisp |
| 13152 | 13199 | ||
| 13153 | See below for more details about @code{inetd-configuration}. | 13200 | See below for more details about @code{inetd-configuration}. |
| 13154 | @end deffn | 13201 | @end deffn |
| @@ -13284,9 +13331,9 @@ This is the service type for the @uref{https://rsync.samba.org, rsync} daemon, | |||
| 13284 | The value for this service type is a | 13331 | The value for this service type is a |
| 13285 | @command{rsync-configuration} record as in this example: | 13332 | @command{rsync-configuration} record as in this example: |
| 13286 | 13333 | ||
| 13287 | @example | 13334 | @lisp |
| 13288 | (service rsync-service-type) | 13335 | (service rsync-service-type) |
| 13289 | @end example | 13336 | @end lisp |
| 13290 | 13337 | ||
| 13291 | See below for details about @code{rsync-configuration}. | 13338 | See below for details about @code{rsync-configuration}. |
| 13292 | @end deffn | 13339 | @end deffn |
| @@ -13390,7 +13437,7 @@ This is the type for the @uref{http://www.openssh.org, OpenSSH} secure | |||
| 13390 | shell daemon, @command{sshd}. Its value must be an | 13437 | shell daemon, @command{sshd}. Its value must be an |
| 13391 | @code{openssh-configuration} record as in this example: | 13438 | @code{openssh-configuration} record as in this example: |
| 13392 | 13439 | ||
| 13393 | @example | 13440 | @lisp |
| 13394 | (service openssh-service-type | 13441 | (service openssh-service-type |
| 13395 | (openssh-configuration | 13442 | (openssh-configuration |
| 13396 | (x11-forwarding? #t) | 13443 | (x11-forwarding? #t) |
| @@ -13398,18 +13445,18 @@ shell daemon, @command{sshd}. Its value must be an | |||
| 13398 | (authorized-keys | 13445 | (authorized-keys |
| 13399 | `(("alice" ,(local-file "alice.pub")) | 13446 | `(("alice" ,(local-file "alice.pub")) |
| 13400 | ("bob" ,(local-file "bob.pub")))))) | 13447 | ("bob" ,(local-file "bob.pub")))))) |
| 13401 | @end example | 13448 | @end lisp |
| 13402 | 13449 | ||
| 13403 | See below for details about @code{openssh-configuration}. | 13450 | See below for details about @code{openssh-configuration}. |
| 13404 | 13451 | ||
| 13405 | This service can be extended with extra authorized keys, as in this | 13452 | This service can be extended with extra authorized keys, as in this |
| 13406 | example: | 13453 | example: |
| 13407 | 13454 | ||
| 13408 | @example | 13455 | @lisp |
| 13409 | (service-extension openssh-service-type | 13456 | (service-extension openssh-service-type |
| 13410 | (const `(("charlie" | 13457 | (const `(("charlie" |
| 13411 | ,(local-file "charlie.pub"))))) | 13458 | ,(local-file "charlie.pub"))))) |
| 13412 | @end example | 13459 | @end lisp |
| 13413 | @end deffn | 13460 | @end deffn |
| 13414 | 13461 | ||
| 13415 | @deftp {Data Type} openssh-configuration | 13462 | @deftp {Data Type} openssh-configuration |
| @@ -13486,12 +13533,12 @@ subsystem request. | |||
| 13486 | 13533 | ||
| 13487 | The command @command{internal-sftp} implements an in-process SFTP | 13534 | The command @command{internal-sftp} implements an in-process SFTP |
| 13488 | server. Alternately, one can specify the @command{sftp-server} command: | 13535 | server. Alternately, one can specify the @command{sftp-server} command: |
| 13489 | @example | 13536 | @lisp |
| 13490 | (service openssh-service-type | 13537 | (service openssh-service-type |
| 13491 | (openssh-configuration | 13538 | (openssh-configuration |
| 13492 | (subsystems | 13539 | (subsystems |
| 13493 | `(("sftp" ,(file-append openssh "/libexec/sftp-server")))))) | 13540 | `(("sftp" ,(file-append openssh "/libexec/sftp-server")))))) |
| 13494 | @end example | 13541 | @end lisp |
| 13495 | 13542 | ||
| 13496 | @item @code{accepted-environment} (default: @code{'()}) | 13543 | @item @code{accepted-environment} (default: @code{'()}) |
| 13497 | List of strings describing which environment variables may be exported. | 13544 | List of strings describing which environment variables may be exported. |
| @@ -13504,11 +13551,11 @@ It is set by terminal emulators, which support colors. You can use it in | |||
| 13504 | your shell's ressource file to enable colors for the prompt and commands | 13551 | your shell's ressource file to enable colors for the prompt and commands |
| 13505 | if this variable is set. | 13552 | if this variable is set. |
| 13506 | 13553 | ||
| 13507 | @example | 13554 | @lisp |
| 13508 | (service openssh-service-type | 13555 | (service openssh-service-type |
| 13509 | (openssh-configuration | 13556 | (openssh-configuration |
| 13510 | (accepted-environment '("COLORTERM")))) | 13557 | (accepted-environment '("COLORTERM")))) |
| 13511 | @end example | 13558 | @end lisp |
| 13512 | 13559 | ||
| 13513 | @item @code{authorized-keys} (default: @code{'()}) | 13560 | @item @code{authorized-keys} (default: @code{'()}) |
| 13514 | @cindex authorized keys, SSH | 13561 | @cindex authorized keys, SSH |
| @@ -13517,13 +13564,13 @@ This is the list of authorized keys. Each element of the list is a user | |||
| 13517 | name followed by one or more file-like objects that represent SSH public | 13564 | name followed by one or more file-like objects that represent SSH public |
| 13518 | keys. For example: | 13565 | keys. For example: |
| 13519 | 13566 | ||
| 13520 | @example | 13567 | @lisp |
| 13521 | (openssh-configuration | 13568 | (openssh-configuration |
| 13522 | (authorized-keys | 13569 | (authorized-keys |
| 13523 | `(("rekado" ,(local-file "rekado.pub")) | 13570 | `(("rekado" ,(local-file "rekado.pub")) |
| 13524 | ("chris" ,(local-file "chris.pub")) | 13571 | ("chris" ,(local-file "chris.pub")) |
| 13525 | ("root" ,(local-file "rekado.pub") ,(local-file "chris.pub"))))) | 13572 | ("root" ,(local-file "rekado.pub") ,(local-file "chris.pub"))))) |
| 13526 | @end example | 13573 | @end lisp |
| 13527 | 13574 | ||
| 13528 | @noindent | 13575 | @noindent |
| 13529 | registers the specified public keys for user accounts @code{rekado}, | 13576 | registers the specified public keys for user accounts @code{rekado}, |
| @@ -13546,12 +13593,12 @@ is especially useful for elaborate configurations that cannot be expressed | |||
| 13546 | otherwise. This configuration, for example, would generally disable root | 13593 | otherwise. This configuration, for example, would generally disable root |
| 13547 | logins, but permit them from one specific IP address: | 13594 | logins, but permit them from one specific IP address: |
| 13548 | 13595 | ||
| 13549 | @example | 13596 | @lisp |
| 13550 | (openssh-configuration | 13597 | (openssh-configuration |
| 13551 | (extra-content "\ | 13598 | (extra-content "\ |
| 13552 | Match Address 192.168.0.1 | 13599 | Match Address 192.168.0.1 |
| 13553 | PermitRootLogin yes")) | 13600 | PermitRootLogin yes")) |
| 13554 | @end example | 13601 | @end lisp |
| 13555 | 13602 | ||
| 13556 | @end table | 13603 | @end table |
| 13557 | @end deftp | 13604 | @end deftp |
| @@ -13564,10 +13611,10 @@ object. | |||
| 13564 | For example, to specify a Dropbear service listening on port 1234, add | 13611 | For example, to specify a Dropbear service listening on port 1234, add |
| 13565 | this call to the operating system's @code{services} field: | 13612 | this call to the operating system's @code{services} field: |
| 13566 | 13613 | ||
| 13567 | @example | 13614 | @lisp |
| 13568 | (dropbear-service (dropbear-configuration | 13615 | (dropbear-service (dropbear-configuration |
| 13569 | (port-number 1234))) | 13616 | (port-number 1234))) |
| 13570 | @end example | 13617 | @end lisp |
| 13571 | @end deffn | 13618 | @end deffn |
| 13572 | 13619 | ||
| 13573 | @deftp {Data Type} dropbear-configuration | 13620 | @deftp {Data Type} dropbear-configuration |
| @@ -13608,7 +13655,7 @@ This variable is typically used in the @code{hosts-file} field of an | |||
| 13608 | @code{operating-system} declaration (@pxref{operating-system Reference, | 13655 | @code{operating-system} declaration (@pxref{operating-system Reference, |
| 13609 | @file{/etc/hosts}}): | 13656 | @file{/etc/hosts}}): |
| 13610 | 13657 | ||
| 13611 | @example | 13658 | @lisp |
| 13612 | (use-modules (gnu) (guix)) | 13659 | (use-modules (gnu) (guix)) |
| 13613 | 13660 | ||
| 13614 | (operating-system | 13661 | (operating-system |
| @@ -13620,7 +13667,7 @@ This variable is typically used in the @code{hosts-file} field of an | |||
| 13620 | (plain-file "hosts" | 13667 | (plain-file "hosts" |
| 13621 | (string-append (local-host-aliases host-name) | 13668 | (string-append (local-host-aliases host-name) |
| 13622 | %facebook-host-aliases)))) | 13669 | %facebook-host-aliases)))) |
| 13623 | @end example | 13670 | @end lisp |
| 13624 | 13671 | ||
| 13625 | This mechanism can prevent programs running locally, such as Web | 13672 | This mechanism can prevent programs running locally, such as Web |
| 13626 | browsers, from accessing Facebook. | 13673 | browsers, from accessing Facebook. |
| @@ -14054,9 +14101,9 @@ system, add a @code{cups-service} to the operating system definition: | |||
| 14054 | The service type for the CUPS print server. Its value should be a valid | 14101 | The service type for the CUPS print server. Its value should be a valid |
| 14055 | CUPS configuration (see below). To use the default settings, simply | 14102 | CUPS configuration (see below). To use the default settings, simply |
| 14056 | write: | 14103 | write: |
| 14057 | @example | 14104 | @lisp |
| 14058 | (service cups-service-type) | 14105 | (service cups-service-type) |
| 14059 | @end example | 14106 | @end lisp |
| 14060 | @end deffn | 14107 | @end deffn |
| 14061 | 14108 | ||
| 14062 | The CUPS configuration controls the basic things about your CUPS | 14109 | The CUPS configuration controls the basic things about your CUPS |
| @@ -14072,13 +14119,13 @@ support for Epson printers @i{via} the @code{escpr} package and for HP | |||
| 14072 | printers @i{via} the @code{hplip-minimal} package. You can do that directly, | 14119 | printers @i{via} the @code{hplip-minimal} package. You can do that directly, |
| 14073 | like this (you need to use the @code{(gnu packages cups)} module): | 14120 | like this (you need to use the @code{(gnu packages cups)} module): |
| 14074 | 14121 | ||
| 14075 | @example | 14122 | @lisp |
| 14076 | (service cups-service-type | 14123 | (service cups-service-type |
| 14077 | (cups-configuration | 14124 | (cups-configuration |
| 14078 | (web-interface? #t) | 14125 | (web-interface? #t) |
| 14079 | (extensions | 14126 | (extensions |
| 14080 | (list cups-filters escpr hplip-minimal)))) | 14127 | (list cups-filters escpr hplip-minimal)))) |
| 14081 | @end example | 14128 | @end lisp |
| 14082 | 14129 | ||
| 14083 | Note: If you wish to use the Qt5 based GUI which comes with the hplip | 14130 | Note: If you wish to use the Qt5 based GUI which comes with the hplip |
| 14084 | package then it is suggested that you install the @code{hplip} package, | 14131 | package then it is suggested that you install the @code{hplip} package, |
| @@ -14886,12 +14933,12 @@ For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in | |||
| 14886 | strings of the same name, you could instantiate a CUPS service like | 14933 | strings of the same name, you could instantiate a CUPS service like |
| 14887 | this: | 14934 | this: |
| 14888 | 14935 | ||
| 14889 | @example | 14936 | @lisp |
| 14890 | (service cups-service-type | 14937 | (service cups-service-type |
| 14891 | (opaque-cups-configuration | 14938 | (opaque-cups-configuration |
| 14892 | (cupsd.conf cupsd.conf) | 14939 | (cupsd.conf cupsd.conf) |
| 14893 | (cups-files.conf cups-files.conf))) | 14940 | (cups-files.conf cups-files.conf))) |
| 14894 | @end example | 14941 | @end lisp |
| 14895 | 14942 | ||
| 14896 | 14943 | ||
| 14897 | @node Desktop Services | 14944 | @node Desktop Services |
| @@ -15034,7 +15081,7 @@ them by default. To add GNOME, Xfce or MATE, just @code{cons} them onto | |||
| 15034 | @code{%desktop-services} in the @code{services} field of your | 15081 | @code{%desktop-services} in the @code{services} field of your |
| 15035 | @code{operating-system}: | 15082 | @code{operating-system}: |
| 15036 | 15083 | ||
| 15037 | @example | 15084 | @lisp |
| 15038 | (use-modules (gnu)) | 15085 | (use-modules (gnu)) |
| 15039 | (use-service-modules desktop) | 15086 | (use-service-modules desktop) |
| 15040 | (operating-system | 15087 | (operating-system |
| @@ -15044,7 +15091,7 @@ them by default. To add GNOME, Xfce or MATE, just @code{cons} them onto | |||
| 15044 | (service xfce-desktop-service) | 15091 | (service xfce-desktop-service) |
| 15045 | %desktop-services)) | 15092 | %desktop-services)) |
| 15046 | ...) | 15093 | ...) |
| 15047 | @end example | 15094 | @end lisp |
| 15048 | 15095 | ||
| 15049 | These desktop environments will then be available as options in the | 15096 | These desktop environments will then be available as options in the |
| 15050 | graphical login window. | 15097 | graphical login window. |
| @@ -15313,9 +15360,9 @@ Architecture} (ALSA) system, which generates the @file{/etc/asound.conf} | |||
| 15313 | configuration file. The value for this type is a @command{alsa-configuration} | 15360 | configuration file. The value for this type is a @command{alsa-configuration} |
| 15314 | record as in this example: | 15361 | record as in this example: |
| 15315 | 15362 | ||
| 15316 | @example | 15363 | @lisp |
| 15317 | (service alsa-service-type) | 15364 | (service alsa-service-type) |
| 15318 | @end example | 15365 | @end lisp |
| 15319 | 15366 | ||
| 15320 | See below for details about @code{alsa-configuration}. | 15367 | See below for details about @code{alsa-configuration}. |
| 15321 | @end deffn | 15368 | @end deffn |
| @@ -15401,7 +15448,7 @@ to create a geographic database using the @code{postgis} extension, a user can | |||
| 15401 | configure the postgresql-service as in this example: | 15448 | configure the postgresql-service as in this example: |
| 15402 | 15449 | ||
| 15403 | @cindex postgis | 15450 | @cindex postgis |
| 15404 | @example | 15451 | @lisp |
| 15405 | (use-package-modules databases geo) | 15452 | (use-package-modules databases geo) |
| 15406 | 15453 | ||
| 15407 | (operating-system | 15454 | (operating-system |
| @@ -15413,7 +15460,7 @@ configure the postgresql-service as in this example: | |||
| 15413 | (cons* | 15460 | (cons* |
| 15414 | (postgresql-service #:extension-packages (list postgis)) | 15461 | (postgresql-service #:extension-packages (list postgis)) |
| 15415 | %base-services))) | 15462 | %base-services))) |
| 15416 | @end example | 15463 | @end lisp |
| 15417 | 15464 | ||
| 15418 | Then the extension becomes visible and you can initialise an empty geographic | 15465 | Then the extension becomes visible and you can initialise an empty geographic |
| 15419 | database in this way: | 15466 | database in this way: |
| @@ -15461,9 +15508,9 @@ Memcached} service, which provides a distributed in memory cache. The | |||
| 15461 | value for the service type is a @code{memcached-configuration} object. | 15508 | value for the service type is a @code{memcached-configuration} object. |
| 15462 | @end defvr | 15509 | @end defvr |
| 15463 | 15510 | ||
| 15464 | @example | 15511 | @lisp |
| 15465 | (service memcached-service-type) | 15512 | (service memcached-service-type) |
| 15466 | @end example | 15513 | @end lisp |
| 15467 | 15514 | ||
| 15468 | @deftp {Data Type} memcached-configuration | 15515 | @deftp {Data Type} memcached-configuration |
| 15469 | Data type representing the configuration of memcached. | 15516 | Data type representing the configuration of memcached. |
| @@ -15492,9 +15539,9 @@ This is the service type for @uref{https://www.mongodb.com/, MongoDB}. | |||
| 15492 | The value for the service type is a @code{mongodb-configuration} object. | 15539 | The value for the service type is a @code{mongodb-configuration} object. |
| 15493 | @end defvr | 15540 | @end defvr |
| 15494 | 15541 | ||
| 15495 | @example | 15542 | @lisp |
| 15496 | (service mongodb-service-type) | 15543 | (service mongodb-service-type) |
| 15497 | @end example | 15544 | @end lisp |
| 15498 | 15545 | ||
| 15499 | @deftp {Data Type} mongodb-configuration | 15546 | @deftp {Data Type} mongodb-configuration |
| 15500 | Data type representing the configuration of mongodb. | 15547 | Data type representing the configuration of mongodb. |
| @@ -15565,11 +15612,11 @@ administrator to specify these parameters via a uniform Scheme interface. | |||
| 15565 | For example, to specify that mail is located at @code{maildir~/.mail}, | 15612 | For example, to specify that mail is located at @code{maildir~/.mail}, |
| 15566 | one would instantiate the Dovecot service like this: | 15613 | one would instantiate the Dovecot service like this: |
| 15567 | 15614 | ||
| 15568 | @example | 15615 | @lisp |
| 15569 | (dovecot-service #:config | 15616 | (dovecot-service #:config |
| 15570 | (dovecot-configuration | 15617 | (dovecot-configuration |
| 15571 | (mail-location "maildir:~/.mail"))) | 15618 | (mail-location "maildir:~/.mail"))) |
| 15572 | @end example | 15619 | @end lisp |
| 15573 | 15620 | ||
| 15574 | The available configuration parameters follow. Each parameter | 15621 | The available configuration parameters follow. Each parameter |
| 15575 | definition is preceded by its type; for example, @samp{string-list foo} | 15622 | definition is preceded by its type; for example, @samp{string-list foo} |
| @@ -16905,11 +16952,11 @@ The contents of the @code{dovecot.conf}, as a string. | |||
| 16905 | For example, if your @code{dovecot.conf} is just the empty string, you | 16952 | For example, if your @code{dovecot.conf} is just the empty string, you |
| 16906 | could instantiate a dovecot service like this: | 16953 | could instantiate a dovecot service like this: |
| 16907 | 16954 | ||
| 16908 | @example | 16955 | @lisp |
| 16909 | (dovecot-service #:config | 16956 | (dovecot-service #:config |
| 16910 | (opaque-dovecot-configuration | 16957 | (opaque-dovecot-configuration |
| 16911 | (string ""))) | 16958 | (string ""))) |
| 16912 | @end example | 16959 | @end lisp |
| 16913 | 16960 | ||
| 16914 | @subsubheading OpenSMTPD Service | 16961 | @subsubheading OpenSMTPD Service |
| 16915 | 16962 | ||
| @@ -16918,11 +16965,11 @@ This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} | |||
| 16918 | service, whose value should be an @code{opensmtpd-configuration} object | 16965 | service, whose value should be an @code{opensmtpd-configuration} object |
| 16919 | as in this example: | 16966 | as in this example: |
| 16920 | 16967 | ||
| 16921 | @example | 16968 | @lisp |
| 16922 | (service opensmtpd-service-type | 16969 | (service opensmtpd-service-type |
| 16923 | (opensmtpd-configuration | 16970 | (opensmtpd-configuration |
| 16924 | (config-file (local-file "./my-smtpd.conf")))) | 16971 | (config-file (local-file "./my-smtpd.conf")))) |
| 16925 | @end example | 16972 | @end lisp |
| 16926 | @end deffn | 16973 | @end deffn |
| 16927 | 16974 | ||
| 16928 | @deftp {Data Type} opensmtpd-configuration | 16975 | @deftp {Data Type} opensmtpd-configuration |
| @@ -16952,11 +16999,11 @@ This is the type of the @uref{https://exim.org, Exim} mail transfer | |||
| 16952 | agent (MTA), whose value should be an @code{exim-configuration} object | 16999 | agent (MTA), whose value should be an @code{exim-configuration} object |
| 16953 | as in this example: | 17000 | as in this example: |
| 16954 | 17001 | ||
| 16955 | @example | 17002 | @lisp |
| 16956 | (service exim-service-type | 17003 | (service exim-service-type |
| 16957 | (exim-configuration | 17004 | (exim-configuration |
| 16958 | (config-file (local-file "./my-exim.conf")))) | 17005 | (config-file (local-file "./my-exim.conf")))) |
| 16959 | @end example | 17006 | @end lisp |
| 16960 | @end deffn | 17007 | @end deffn |
| 16961 | 17008 | ||
| 16962 | In order to use an @code{exim-service-type} service you must also have a | 17009 | In order to use an @code{exim-service-type} service you must also have a |
| @@ -17280,11 +17327,11 @@ Defaults to @samp{()}. | |||
| 17280 | This is the type of the service which provides @code{/etc/aliases}, | 17327 | This is the type of the service which provides @code{/etc/aliases}, |
| 17281 | specifying how to deliver mail to users on this system. | 17328 | specifying how to deliver mail to users on this system. |
| 17282 | 17329 | ||
| 17283 | @example | 17330 | @lisp |
| 17284 | (service mail-aliases-service-type | 17331 | (service mail-aliases-service-type |
| 17285 | '(("postmaster" "bob") | 17332 | '(("postmaster" "bob") |
| 17286 | ("bob" "bob@@example.com" "bob@@example2.com"))) | 17333 | ("bob" "bob@@example.com" "bob@@example2.com"))) |
| 17287 | @end example | 17334 | @end lisp |
| 17288 | @end deffn | 17335 | @end deffn |
| 17289 | 17336 | ||
| 17290 | The configuration for a @code{mail-aliases-service-type} service is an | 17337 | The configuration for a @code{mail-aliases-service-type} service is an |
| @@ -17307,11 +17354,11 @@ This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,, | |||
| 17307 | mailutils, GNU Mailutils Manual}), whose value should be an | 17354 | mailutils, GNU Mailutils Manual}), whose value should be an |
| 17308 | @code{imap4d-configuration} object as in this example: | 17355 | @code{imap4d-configuration} object as in this example: |
| 17309 | 17356 | ||
| 17310 | @example | 17357 | @lisp |
| 17311 | (service imap4d-service-type | 17358 | (service imap4d-service-type |
| 17312 | (imap4d-configuration | 17359 | (imap4d-configuration |
| 17313 | (config-file (local-file "imap4d.conf")))) | 17360 | (config-file (local-file "imap4d.conf")))) |
| 17314 | @end example | 17361 | @end lisp |
| 17315 | @end deffn | 17362 | @end deffn |
| 17316 | 17363 | ||
| 17317 | @deftp {Data Type} imap4d-configuration | 17364 | @deftp {Data Type} imap4d-configuration |
| @@ -17345,7 +17392,7 @@ This is the type for the @uref{https://prosody.im, Prosody XMPP | |||
| 17345 | communication server}. Its value must be a @code{prosody-configuration} | 17392 | communication server}. Its value must be a @code{prosody-configuration} |
| 17346 | record as in this example: | 17393 | record as in this example: |
| 17347 | 17394 | ||
| 17348 | @example | 17395 | @lisp |
| 17349 | (service prosody-service-type | 17396 | (service prosody-service-type |
| 17350 | (prosody-configuration | 17397 | (prosody-configuration |
| 17351 | (modules-enabled (cons "groups" "mam" %default-modules-enabled)) | 17398 | (modules-enabled (cons "groups" "mam" %default-modules-enabled)) |
| @@ -17359,7 +17406,7 @@ record as in this example: | |||
| 17359 | (list | 17406 | (list |
| 17360 | (virtualhost-configuration | 17407 | (virtualhost-configuration |
| 17361 | (domain "example.net")))))) | 17408 | (domain "example.net")))))) |
| 17362 | @end example | 17409 | @end lisp |
| 17363 | 17410 | ||
| 17364 | See below for details about @code{prosody-configuration}. | 17411 | See below for details about @code{prosody-configuration}. |
| 17365 | 17412 | ||
| @@ -17747,11 +17794,11 @@ The contents of the @code{prosody.cfg.lua} to use. | |||
| 17747 | For example, if your @code{prosody.cfg.lua} is just the empty | 17794 | For example, if your @code{prosody.cfg.lua} is just the empty |
| 17748 | string, you could instantiate a prosody service like this: | 17795 | string, you could instantiate a prosody service like this: |
| 17749 | 17796 | ||
| 17750 | @example | 17797 | @lisp |
| 17751 | (service prosody-service-type | 17798 | (service prosody-service-type |
| 17752 | (opaque-prosody-configuration | 17799 | (opaque-prosody-configuration |
| 17753 | (prosody.cfg.lua ""))) | 17800 | (prosody.cfg.lua ""))) |
| 17754 | @end example | 17801 | @end lisp |
| 17755 | 17802 | ||
| 17756 | @c end of Prosody auto-generated documentation | 17803 | @c end of Prosody auto-generated documentation |
| 17757 | 17804 | ||
| @@ -17770,9 +17817,9 @@ below). | |||
| 17770 | To have BitlBee listen on port 6667 on localhost, add this line to your | 17817 | To have BitlBee listen on port 6667 on localhost, add this line to your |
| 17771 | services: | 17818 | services: |
| 17772 | 17819 | ||
| 17773 | @example | 17820 | @lisp |
| 17774 | (service bitlbee-service-type) | 17821 | (service bitlbee-service-type) |
| 17775 | @end example | 17822 | @end lisp |
| 17776 | @end defvr | 17823 | @end defvr |
| 17777 | 17824 | ||
| 17778 | @deftp {Data Type} bitlbee-configuration | 17825 | @deftp {Data Type} bitlbee-configuration |
| @@ -17844,7 +17891,7 @@ the server of the @uref{https://mumble.info, Mumble} voice-over-IP | |||
| 17844 | The service type for the Murmur server. An example configuration can | 17891 | The service type for the Murmur server. An example configuration can |
| 17845 | look like this: | 17892 | look like this: |
| 17846 | 17893 | ||
| 17847 | @example | 17894 | @lisp |
| 17848 | (service murmur-service-type | 17895 | (service murmur-service-type |
| 17849 | (murmur-configuration | 17896 | (murmur-configuration |
| 17850 | (welcome-text | 17897 | (welcome-text |
| @@ -17852,7 +17899,7 @@ look like this: | |||
| 17852 | (cert-required? #t) ;disallow text password logins | 17899 | (cert-required? #t) ;disallow text password logins |
| 17853 | (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem") | 17900 | (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem") |
| 17854 | (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem"))) | 17901 | (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem"))) |
| 17855 | @end example | 17902 | @end lisp |
| 17856 | 17903 | ||
| 17857 | After reconfiguring your system, you can manually set the murmur @code{SuperUser} | 17904 | After reconfiguring your system, you can manually set the murmur @code{SuperUser} |
| 17858 | password with the command that is printed during the activation phase. | 17905 | password with the command that is printed during the activation phase. |
| @@ -17966,14 +18013,14 @@ Should logged ips be obfuscated to protect the privacy of users. | |||
| 17966 | @item @code{ssl-cert} (default: @code{#f}) | 18013 | @item @code{ssl-cert} (default: @code{#f}) |
| 17967 | File name of the SSL/TLS certificate used for encrypted connections. | 18014 | File name of the SSL/TLS certificate used for encrypted connections. |
| 17968 | 18015 | ||
| 17969 | @example | 18016 | @lisp |
| 17970 | (ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem") | 18017 | (ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem") |
| 17971 | @end example | 18018 | @end lisp |
| 17972 | @item @code{ssl-key} (default: @code{#f}) | 18019 | @item @code{ssl-key} (default: @code{#f}) |
| 17973 | Filepath to the ssl private key used for encrypted connections. | 18020 | Filepath to the ssl private key used for encrypted connections. |
| 17974 | @example | 18021 | @lisp |
| 17975 | (ssl-key "/etc/letsencrypt/live/example.com/privkey.pem") | 18022 | (ssl-key "/etc/letsencrypt/live/example.com/privkey.pem") |
| 17976 | @end example | 18023 | @end lisp |
| 17977 | 18024 | ||
| 17978 | @item @code{ssl-dh-params} (default: @code{#f}) | 18025 | @item @code{ssl-dh-params} (default: @code{#f}) |
| 17979 | File name of a PEM-encoded file with Diffie-Hellman parameters | 18026 | File name of a PEM-encoded file with Diffie-Hellman parameters |
| @@ -18047,20 +18094,20 @@ viewing and searching log files. | |||
| 18047 | The following example will configure the service with default values. | 18094 | The following example will configure the service with default values. |
| 18048 | By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080}). | 18095 | By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080}). |
| 18049 | 18096 | ||
| 18050 | @example | 18097 | @lisp |
| 18051 | (service tailon-service-type) | 18098 | (service tailon-service-type) |
| 18052 | @end example | 18099 | @end lisp |
| 18053 | 18100 | ||
| 18054 | The following example customises more of the Tailon configuration, | 18101 | The following example customises more of the Tailon configuration, |
| 18055 | adding @command{sed} to the list of allowed commands. | 18102 | adding @command{sed} to the list of allowed commands. |
| 18056 | 18103 | ||
| 18057 | @example | 18104 | @lisp |
| 18058 | (service tailon-service-type | 18105 | (service tailon-service-type |
| 18059 | (tailon-configuration | 18106 | (tailon-configuration |
| 18060 | (config-file | 18107 | (config-file |
| 18061 | (tailon-configuration-file | 18108 | (tailon-configuration-file |
| 18062 | (allowed-commands '("tail" "grep" "awk" "sed")))))) | 18109 | (allowed-commands '("tail" "grep" "awk" "sed")))))) |
| 18063 | @end example | 18110 | @end lisp |
| 18064 | 18111 | ||
| 18065 | 18112 | ||
| 18066 | @deftp {Data Type} tailon-configuration | 18113 | @deftp {Data Type} tailon-configuration |
| @@ -18076,11 +18123,11 @@ The configuration file to use for Tailon. This can be set to a | |||
| 18076 | For example, to instead use a local file, the @code{local-file} function | 18123 | For example, to instead use a local file, the @code{local-file} function |
| 18077 | can be used: | 18124 | can be used: |
| 18078 | 18125 | ||
| 18079 | @example | 18126 | @lisp |
| 18080 | (service tailon-service-type | 18127 | (service tailon-service-type |
| 18081 | (tailon-configuration | 18128 | (tailon-configuration |
| 18082 | (config-file (local-file "./my-tailon.conf")))) | 18129 | (config-file (local-file "./my-tailon.conf")))) |
| 18083 | @end example | 18130 | @end lisp |
| 18084 | 18131 | ||
| 18085 | @item @code{package} (default: @code{tailon}) | 18132 | @item @code{package} (default: @code{tailon}) |
| 18086 | The tailon package to use. | 18133 | The tailon package to use. |
| @@ -18136,12 +18183,12 @@ restricted to the credentials provided here. To configure users, use a | |||
| 18136 | list of pairs, where the first element of the pair is the username, and | 18183 | list of pairs, where the first element of the pair is the username, and |
| 18137 | the 2nd element of the pair is the password. | 18184 | the 2nd element of the pair is the password. |
| 18138 | 18185 | ||
| 18139 | @example | 18186 | @lisp |
| 18140 | (tailon-configuration-file | 18187 | (tailon-configuration-file |
| 18141 | (http-auth "basic") | 18188 | (http-auth "basic") |
| 18142 | (users '(("user1" . "password1") | 18189 | (users '(("user1" . "password1") |
| 18143 | ("user2" . "password2")))) | 18190 | ("user2" . "password2")))) |
| 18144 | @end example | 18191 | @end lisp |
| 18145 | 18192 | ||
| 18146 | @end table | 18193 | @end table |
| 18147 | @end deftp | 18194 | @end deftp |
| @@ -18158,11 +18205,11 @@ This is the service type for the | |||
| 18158 | service, its value must be a @code{darkstat-configuration} record as in | 18205 | service, its value must be a @code{darkstat-configuration} record as in |
| 18159 | this example: | 18206 | this example: |
| 18160 | 18207 | ||
| 18161 | @example | 18208 | @lisp |
| 18162 | (service darkstat-service-type | 18209 | (service darkstat-service-type |
| 18163 | (darkstat-configuration | 18210 | (darkstat-configuration |
| 18164 | (interface "eno1"))) | 18211 | (interface "eno1"))) |
| 18165 | @end example | 18212 | @end lisp |
| 18166 | @end defvar | 18213 | @end defvar |
| 18167 | 18214 | ||
| 18168 | @deftp {Data Type} darkstat-configuration | 18215 | @deftp {Data Type} darkstat-configuration |
| @@ -18202,11 +18249,11 @@ This is the service type for the | |||
| 18202 | service, its value must be a @code{prometheus-node-exporter-configuration} | 18249 | service, its value must be a @code{prometheus-node-exporter-configuration} |
| 18203 | record as in this example: | 18250 | record as in this example: |
| 18204 | 18251 | ||
| 18205 | @example | 18252 | @lisp |
| 18206 | (service prometheus-node-exporter-service-type | 18253 | (service prometheus-node-exporter-service-type |
| 18207 | (prometheus-node-exporter-configuration | 18254 | (prometheus-node-exporter-configuration |
| 18208 | (web-listen-address ":9100"))) | 18255 | (web-listen-address ":9100"))) |
| 18209 | @end example | 18256 | @end lisp |
| 18210 | @end defvar | 18257 | @end defvar |
| 18211 | 18258 | ||
| 18212 | @deftp {Data Type} prometheus-node-exporter-configuration | 18259 | @deftp {Data Type} prometheus-node-exporter-configuration |
| @@ -18682,7 +18729,7 @@ Here is a simple operating system declaration with a default configuration of | |||
| 18682 | the @code{nslcd-service-type} and a Name Service Switch configuration that | 18729 | the @code{nslcd-service-type} and a Name Service Switch configuration that |
| 18683 | consults the @code{ldap} name service last: | 18730 | consults the @code{ldap} name service last: |
| 18684 | 18731 | ||
| 18685 | @example | 18732 | @lisp |
| 18686 | (use-service-modules authentication) | 18733 | (use-service-modules authentication) |
| 18687 | (use-modules (gnu system nss)) | 18734 | (use-modules (gnu system nss)) |
| 18688 | ... | 18735 | ... |
| @@ -18704,7 +18751,7 @@ consults the @code{ldap} name service last: | |||
| 18704 | (group services) | 18751 | (group services) |
| 18705 | (netgroup services) | 18752 | (netgroup services) |
| 18706 | (gshadow services))))) | 18753 | (gshadow services))))) |
| 18707 | @end example | 18754 | @end lisp |
| 18708 | 18755 | ||
| 18709 | @c %start of generated documentation for nslcd-configuration | 18756 | @c %start of generated documentation for nslcd-configuration |
| 18710 | 18757 | ||
| @@ -19163,19 +19210,19 @@ Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server | |||
| 19163 | 19210 | ||
| 19164 | A simple example configuration is given below. | 19211 | A simple example configuration is given below. |
| 19165 | 19212 | ||
| 19166 | @example | 19213 | @lisp |
| 19167 | (service httpd-service-type | 19214 | (service httpd-service-type |
| 19168 | (httpd-configuration | 19215 | (httpd-configuration |
| 19169 | (config | 19216 | (config |
| 19170 | (httpd-config-file | 19217 | (httpd-config-file |
| 19171 | (server-name "www.example.com") | 19218 | (server-name "www.example.com") |
| 19172 | (document-root "/srv/http/www.example.com"))))) | 19219 | (document-root "/srv/http/www.example.com"))))) |
| 19173 | @end example | 19220 | @end lisp |
| 19174 | 19221 | ||
| 19175 | Other services can also extend the @code{httpd-service-type} to add to | 19222 | Other services can also extend the @code{httpd-service-type} to add to |
| 19176 | the configuration. | 19223 | the configuration. |
| 19177 | 19224 | ||
| 19178 | @example | 19225 | @lisp |
| 19179 | (simple-service 'my-extra-server httpd-service-type | 19226 | (simple-service 'my-extra-server httpd-service-type |
| 19180 | (list | 19227 | (list |
| 19181 | (httpd-virtualhost | 19228 | (httpd-virtualhost |
| @@ -19183,7 +19230,7 @@ the configuration. | |||
| 19183 | (list (string-append | 19230 | (list (string-append |
| 19184 | "ServerName "www.example.com | 19231 | "ServerName "www.example.com |
| 19185 | DocumentRoot \"/srv/http/www.example.com\""))))) | 19232 | DocumentRoot \"/srv/http/www.example.com\""))))) |
| 19186 | @end example | 19233 | @end lisp |
| 19187 | @end deffn | 19234 | @end deffn |
| 19188 | 19235 | ||
| 19189 | The details for the @code{httpd-configuration}, @code{httpd-module}, | 19236 | The details for the @code{httpd-configuration}, @code{httpd-module}, |
| @@ -19240,7 +19287,7 @@ additional configuration. | |||
| 19240 | For example, in order to handle requests for PHP files, you can use Apache’s | 19287 | For example, in order to handle requests for PHP files, you can use Apache’s |
| 19241 | @code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}: | 19288 | @code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}: |
| 19242 | 19289 | ||
| 19243 | @example | 19290 | @lisp |
| 19244 | (service httpd-service-type | 19291 | (service httpd-service-type |
| 19245 | (httpd-configuration | 19292 | (httpd-configuration |
| 19246 | (config | 19293 | (config |
| @@ -19261,7 +19308,7 @@ For example, in order to handle requests for PHP files, you can use Apache’s | |||
| 19261 | (php-fpm-configuration | 19308 | (php-fpm-configuration |
| 19262 | (socket "/var/run/php-fpm.sock") | 19309 | (socket "/var/run/php-fpm.sock") |
| 19263 | (socket-group "httpd"))) | 19310 | (socket-group "httpd"))) |
| 19264 | @end example | 19311 | @end lisp |
| 19265 | 19312 | ||
| 19266 | @item @code{server-root} (default: @code{httpd}) | 19313 | @item @code{server-root} (default: @code{httpd}) |
| 19267 | The @code{ServerRoot} in the configuration file, defaults to the httpd | 19314 | The @code{ServerRoot} in the configuration file, defaults to the httpd |
| @@ -19315,7 +19362,7 @@ This data type represents a virtualhost configuration block for the httpd servic | |||
| 19315 | 19362 | ||
| 19316 | These should be added to the extra-config for the httpd-service. | 19363 | These should be added to the extra-config for the httpd-service. |
| 19317 | 19364 | ||
| 19318 | @example | 19365 | @lisp |
| 19319 | (simple-service 'my-extra-server httpd-service-type | 19366 | (simple-service 'my-extra-server httpd-service-type |
| 19320 | (list | 19367 | (list |
| 19321 | (httpd-virtualhost | 19368 | (httpd-virtualhost |
| @@ -19323,7 +19370,7 @@ These should be added to the extra-config for the httpd-service. | |||
| 19323 | (list (string-append | 19370 | (list (string-append |
| 19324 | "ServerName "www.example.com | 19371 | "ServerName "www.example.com |
| 19325 | DocumentRoot \"/srv/http/www.example.com\""))))) | 19372 | DocumentRoot \"/srv/http/www.example.com\""))))) |
| 19326 | @end example | 19373 | @end lisp |
| 19327 | 19374 | ||
| 19328 | @table @asis | 19375 | @table @asis |
| 19329 | @item @code{addresses-and-ports} | 19376 | @item @code{addresses-and-ports} |
| @@ -19344,25 +19391,25 @@ value for this service type is a @code{<nginx-configuration>} record. | |||
| 19344 | 19391 | ||
| 19345 | A simple example configuration is given below. | 19392 | A simple example configuration is given below. |
| 19346 | 19393 | ||
| 19347 | @example | 19394 | @lisp |
| 19348 | (service nginx-service-type | 19395 | (service nginx-service-type |
| 19349 | (nginx-configuration | 19396 | (nginx-configuration |
| 19350 | (server-blocks | 19397 | (server-blocks |
| 19351 | (list (nginx-server-configuration | 19398 | (list (nginx-server-configuration |
| 19352 | (server-name '("www.example.com")) | 19399 | (server-name '("www.example.com")) |
| 19353 | (root "/srv/http/www.example.com")))))) | 19400 | (root "/srv/http/www.example.com")))))) |
| 19354 | @end example | 19401 | @end lisp |
| 19355 | 19402 | ||
| 19356 | In addition to adding server blocks to the service configuration | 19403 | In addition to adding server blocks to the service configuration |
| 19357 | directly, this service can be extended by other services to add server | 19404 | directly, this service can be extended by other services to add server |
| 19358 | blocks, as in this example: | 19405 | blocks, as in this example: |
| 19359 | 19406 | ||
| 19360 | @example | 19407 | @lisp |
| 19361 | (simple-service 'my-extra-server nginx-service-type | 19408 | (simple-service 'my-extra-server nginx-service-type |
| 19362 | (list (nginx-server-configuration | 19409 | (list (nginx-server-configuration |
| 19363 | (root "/srv/http/extra-website") | 19410 | (root "/srv/http/extra-website") |
| 19364 | (try-files (list "$uri" "$uri/index.html"))))) | 19411 | (try-files (list "$uri" "$uri/index.html"))))) |
| 19365 | @end example | 19412 | @end lisp |
| 19366 | @end deffn | 19413 | @end deffn |
| 19367 | 19414 | ||
| 19368 | At startup, @command{nginx} has not yet read its configuration file, so | 19415 | At startup, @command{nginx} has not yet read its configuration file, so |
| @@ -19398,14 +19445,14 @@ file, the elements should be of type | |||
| 19398 | The following example would setup NGinx to serve @code{www.example.com} | 19445 | The following example would setup NGinx to serve @code{www.example.com} |
| 19399 | from the @code{/srv/http/www.example.com} directory, without using | 19446 | from the @code{/srv/http/www.example.com} directory, without using |
| 19400 | HTTPS. | 19447 | HTTPS. |
| 19401 | @example | 19448 | @lisp |
| 19402 | (service nginx-service-type | 19449 | (service nginx-service-type |
| 19403 | (nginx-configuration | 19450 | (nginx-configuration |
| 19404 | (server-blocks | 19451 | (server-blocks |
| 19405 | (list (nginx-server-configuration | 19452 | (list (nginx-server-configuration |
| 19406 | (server-name '("www.example.com")) | 19453 | (server-name '("www.example.com")) |
| 19407 | (root "/srv/http/www.example.com")))))) | 19454 | (root "/srv/http/www.example.com")))))) |
| 19408 | @end example | 19455 | @end lisp |
| 19409 | 19456 | ||
| 19410 | @item @code{upstream-blocks} (default: @code{'()}) | 19457 | @item @code{upstream-blocks} (default: @code{'()}) |
| 19411 | A list of @dfn{upstream blocks} to create in the generated configuration | 19458 | A list of @dfn{upstream blocks} to create in the generated configuration |
| @@ -19419,7 +19466,7 @@ creates a server configuration with one location configuration, that | |||
| 19419 | will proxy requests to a upstream configuration, which will handle | 19466 | will proxy requests to a upstream configuration, which will handle |
| 19420 | requests with two servers. | 19467 | requests with two servers. |
| 19421 | 19468 | ||
| 19422 | @example | 19469 | @lisp |
| 19423 | (service | 19470 | (service |
| 19424 | nginx-service-type | 19471 | nginx-service-type |
| 19425 | (nginx-configuration | 19472 | (nginx-configuration |
| @@ -19437,7 +19484,7 @@ requests with two servers. | |||
| 19437 | (name "server-proxy") | 19484 | (name "server-proxy") |
| 19438 | (servers (list "server1.example.com" | 19485 | (servers (list "server1.example.com" |
| 19439 | "server2.example.com"))))))) | 19486 | "server2.example.com"))))))) |
| 19440 | @end example | 19487 | @end lisp |
| 19441 | 19488 | ||
| 19442 | @item @code{file} (default: @code{#f}) | 19489 | @item @code{file} (default: @code{#f}) |
| 19443 | If a configuration @var{file} is provided, this will be used, rather than | 19490 | If a configuration @var{file} is provided, this will be used, rather than |
| @@ -19475,9 +19522,9 @@ path for a UNIX-domain socket on which the server will accept requests. | |||
| 19475 | Both address and port, or only address or only port can be specified. | 19522 | Both address and port, or only address or only port can be specified. |
| 19476 | An address may also be a hostname, for example: | 19523 | An address may also be a hostname, for example: |
| 19477 | 19524 | ||
| 19478 | @example | 19525 | @lisp |
| 19479 | '("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000") | 19526 | '("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000") |
| 19480 | @end example | 19527 | @end lisp |
| 19481 | 19528 | ||
| 19482 | @item @code{server-name} (default: @code{(list 'default)}) | 19529 | @item @code{server-name} (default: @code{(list 'default)}) |
| 19483 | A list of server names this server represents. @code{'default} represents the | 19530 | A list of server names this server represents. @code{'default} represents the |
| @@ -19615,7 +19662,7 @@ VCL syntax. | |||
| 19615 | For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you | 19662 | For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you |
| 19616 | can do something along these lines: | 19663 | can do something along these lines: |
| 19617 | 19664 | ||
| 19618 | @example | 19665 | @lisp |
| 19619 | (define %gnu-mirror | 19666 | (define %gnu-mirror |
| 19620 | (plain-file | 19667 | (plain-file |
| 19621 | "gnu.vcl" | 19668 | "gnu.vcl" |
| @@ -19629,7 +19676,7 @@ backend gnu @{ .host = "www.gnu.org"; @}")) | |||
| 19629 | (listen '(":80")) | 19676 | (listen '(":80")) |
| 19630 | (vcl %gnu-mirror))) | 19677 | (vcl %gnu-mirror))) |
| 19631 | %base-services))) | 19678 | %base-services))) |
| 19632 | @end example | 19679 | @end lisp |
| 19633 | 19680 | ||
| 19634 | The configuration of an already running Varnish instance can be inspected | 19681 | The configuration of an already running Varnish instance can be inspected |
| 19635 | and changed using the @command{varnishadm} program. | 19682 | and changed using the @command{varnishadm} program. |
| @@ -19665,7 +19712,7 @@ Service type for Patchwork. | |||
| 19665 | The following example is an example of a minimal service for Patchwork, for | 19712 | The following example is an example of a minimal service for Patchwork, for |
| 19666 | the @code{patchwork.example.com} domain. | 19713 | the @code{patchwork.example.com} domain. |
| 19667 | 19714 | ||
| 19668 | @example | 19715 | @lisp |
| 19669 | (service patchwork-service-type | 19716 | (service patchwork-service-type |
| 19670 | (patchwork-configuration | 19717 | (patchwork-configuration |
| 19671 | (domain "patchwork.example.com") | 19718 | (domain "patchwork.example.com") |
| @@ -19685,7 +19732,7 @@ the @code{patchwork.example.com} domain. | |||
| 19685 | (extra-parameters | 19732 | (extra-parameters |
| 19686 | '((mailboxes . ("Patches")))))))) | 19733 | '((mailboxes . ("Patches")))))))) |
| 19687 | 19734 | ||
| 19688 | @end example | 19735 | @end lisp |
| 19689 | 19736 | ||
| 19690 | There are three records for configuring the Patchwork service. The | 19737 | There are three records for configuring the Patchwork service. The |
| 19691 | @code{<patchwork-configuration>} relates to the configuration for Patchwork | 19738 | @code{<patchwork-configuration>} relates to the configuration for Patchwork |
| @@ -20004,7 +20051,7 @@ A helper function to quickly add php to an @code{nginx-server-configuration}. | |||
| 20004 | @end deffn | 20051 | @end deffn |
| 20005 | 20052 | ||
| 20006 | A simple services setup for nginx with php can look like this: | 20053 | A simple services setup for nginx with php can look like this: |
| 20007 | @example | 20054 | @lisp |
| 20008 | (services (cons* (service dhcp-client-service-type) | 20055 | (services (cons* (service dhcp-client-service-type) |
| 20009 | (service php-fpm-service-type) | 20056 | (service php-fpm-service-type) |
| 20010 | (service nginx-service-type | 20057 | (service nginx-service-type |
| @@ -20017,7 +20064,7 @@ A simple services setup for nginx with php can look like this: | |||
| 20017 | (ssl-certificate #f) | 20064 | (ssl-certificate #f) |
| 20018 | (ssl-certificate-key #f))) | 20065 | (ssl-certificate-key #f))) |
| 20019 | %base-services)) | 20066 | %base-services)) |
| 20020 | @end example | 20067 | @end lisp |
| 20021 | 20068 | ||
| 20022 | @cindex cat-avatar-generator | 20069 | @cindex cat-avatar-generator |
| 20023 | The cat avatar generator is a simple service to demonstrate the use of php-fpm | 20070 | The cat avatar generator is a simple service to demonstrate the use of php-fpm |
| @@ -20035,14 +20082,14 @@ be able to use @code{cache-dir} as its cache directory. | |||
| 20035 | @end deffn | 20082 | @end deffn |
| 20036 | 20083 | ||
| 20037 | A simple setup for cat-avatar-generator can look like this: | 20084 | A simple setup for cat-avatar-generator can look like this: |
| 20038 | @example | 20085 | @lisp |
| 20039 | (services (cons* (cat-avatar-generator-service | 20086 | (services (cons* (cat-avatar-generator-service |
| 20040 | #:configuration | 20087 | #:configuration |
| 20041 | (nginx-server-configuration | 20088 | (nginx-server-configuration |
| 20042 | (server-name '("example.com")))) | 20089 | (server-name '("example.com")))) |
| 20043 | ... | 20090 | ... |
| 20044 | %base-services)) | 20091 | %base-services)) |
| 20045 | @end example | 20092 | @end lisp |
| 20046 | 20093 | ||
| 20047 | @subsubheading Hpcguix-web | 20094 | @subsubheading Hpcguix-web |
| 20048 | 20095 | ||
| @@ -20099,7 +20146,7 @@ The hpcguix-web package to use. | |||
| 20099 | 20146 | ||
| 20100 | A typical hpcguix-web service declaration looks like this: | 20147 | A typical hpcguix-web service declaration looks like this: |
| 20101 | 20148 | ||
| 20102 | @example | 20149 | @lisp |
| 20103 | (service hpcguix-web-service-type | 20150 | (service hpcguix-web-service-type |
| 20104 | (hpcguix-web-configuration | 20151 | (hpcguix-web-configuration |
| 20105 | (specs | 20152 | (specs |
| @@ -20107,7 +20154,7 @@ A typical hpcguix-web service declaration looks like this: | |||
| 20107 | (hpcweb-configuration | 20154 | (hpcweb-configuration |
| 20108 | (title-prefix "Guix-HPC - ") | 20155 | (title-prefix "Guix-HPC - ") |
| 20109 | (menu '(("/about" "ABOUT")))))))) | 20156 | (menu '(("/about" "ABOUT")))))))) |
| 20110 | @end example | 20157 | @end lisp |
| 20111 | 20158 | ||
| 20112 | @quotation Note | 20159 | @quotation Note |
| 20113 | The hpcguix-web service periodically updates the package list it publishes by | 20160 | The hpcguix-web service periodically updates the package list it publishes by |
| @@ -20167,7 +20214,7 @@ can be found there: | |||
| 20167 | A service type for the @code{certbot} Let's Encrypt client. Its value | 20214 | A service type for the @code{certbot} Let's Encrypt client. Its value |
| 20168 | must be a @code{certbot-configuration} record as in this example: | 20215 | must be a @code{certbot-configuration} record as in this example: |
| 20169 | 20216 | ||
| 20170 | @example | 20217 | @lisp |
| 20171 | (define %nginx-deploy-hook | 20218 | (define %nginx-deploy-hook |
| 20172 | (program-file | 20219 | (program-file |
| 20173 | "nginx-deploy-hook" | 20220 | "nginx-deploy-hook" |
| @@ -20184,7 +20231,7 @@ must be a @code{certbot-configuration} record as in this example: | |||
| 20184 | (deploy-hook %nginx-deploy-hook)) | 20231 | (deploy-hook %nginx-deploy-hook)) |
| 20185 | (certificate-configuration | 20232 | (certificate-configuration |
| 20186 | (domains '("bar.example.net"))))))) | 20233 | (domains '("bar.example.net"))))))) |
| 20187 | @end example | 20234 | @end lisp |
| 20188 | 20235 | ||
| 20189 | See below for details about @code{certbot-configuration}. | 20236 | See below for details about @code{certbot-configuration}. |
| 20190 | @end defvr | 20237 | @end defvr |
| @@ -20255,7 +20302,9 @@ all domains will be Subject Alternative Names on the certificate. | |||
| 20255 | The challenge type that has to be run by certbot. If @code{#f} is specified, | 20302 | The challenge type that has to be run by certbot. If @code{#f} is specified, |
| 20256 | default to the HTTP challenge. If a value is specified, defaults to the | 20303 | default to the HTTP challenge. If a value is specified, defaults to the |
| 20257 | manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and | 20304 | manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and |
| 20258 | the documentation at @url{https://certbot.eff.org/docs/using.html#hooks}). | 20305 | the documentation at @url{https://certbot.eff.org/docs/using.html#hooks}), |
| 20306 | and gives Let's Encrypt permission to log the public IP address of the | ||
| 20307 | requesting machine. | ||
| 20259 | 20308 | ||
| 20260 | @item @code{authentication-hook} (default: @code{#f}) | 20309 | @item @code{authentication-hook} (default: @code{#f}) |
| 20261 | Command to be run in a shell once for each certificate challenge to be | 20310 | Command to be run in a shell once for each certificate challenge to be |
| @@ -20766,12 +20815,12 @@ The list of knot-zone-configuration used by this configuration. | |||
| 20766 | This is the type of the dnsmasq service, whose value should be an | 20815 | This is the type of the dnsmasq service, whose value should be an |
| 20767 | @code{dnsmasq-configuration} object as in this example: | 20816 | @code{dnsmasq-configuration} object as in this example: |
| 20768 | 20817 | ||
| 20769 | @example | 20818 | @lisp |
| 20770 | (service dnsmasq-service-type | 20819 | (service dnsmasq-service-type |
| 20771 | (dnsmasq-configuration | 20820 | (dnsmasq-configuration |
| 20772 | (no-resolv? #t) | 20821 | (no-resolv? #t) |
| 20773 | (servers '("192.168.1.1")))) | 20822 | (servers '("192.168.1.1")))) |
| 20774 | @end example | 20823 | @end lisp |
| 20775 | @end deffn | 20824 | @end deffn |
| 20776 | 20825 | ||
| 20777 | @deftp {Data Type} dnsmasq-configuration | 20826 | @deftp {Data Type} dnsmasq-configuration |
| @@ -20824,9 +20873,9 @@ care of automatically updating DNS entries for service providers such as | |||
| 20824 | The following example show instantiates the service with its default | 20873 | The following example show instantiates the service with its default |
| 20825 | configuration: | 20874 | configuration: |
| 20826 | 20875 | ||
| 20827 | @example | 20876 | @lisp |
| 20828 | (service ddclient-service-type) | 20877 | (service ddclient-service-type) |
| 20829 | @end example | 20878 | @end lisp |
| 20830 | 20879 | ||
| 20831 | Note that ddclient needs to access credentials that are stored in a | 20880 | Note that ddclient needs to access credentials that are stored in a |
| 20832 | @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see | 20881 | @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see |
| @@ -21416,7 +21465,7 @@ and builds the packages from a manifest. Some of the packages are defined in | |||
| 21416 | the @code{"custom-packages"} input, which is the equivalent of | 21465 | the @code{"custom-packages"} input, which is the equivalent of |
| 21417 | @code{GUIX_PACKAGE_PATH}. | 21466 | @code{GUIX_PACKAGE_PATH}. |
| 21418 | 21467 | ||
| 21419 | @example | 21468 | @lisp |
| 21420 | (define %cuirass-specs | 21469 | (define %cuirass-specs |
| 21421 | #~(list | 21470 | #~(list |
| 21422 | '((#:name . "my-manifest") | 21471 | '((#:name . "my-manifest") |
| @@ -21447,7 +21496,7 @@ the @code{"custom-packages"} input, which is the equivalent of | |||
| 21447 | (service cuirass-service-type | 21496 | (service cuirass-service-type |
| 21448 | (cuirass-configuration | 21497 | (cuirass-configuration |
| 21449 | (specifications %cuirass-specs))) | 21498 | (specifications %cuirass-specs))) |
| 21450 | @end example | 21499 | @end lisp |
| 21451 | 21500 | ||
| 21452 | While information related to build jobs is located directly in the | 21501 | While information related to build jobs is located directly in the |
| 21453 | specifications, global settings for the @command{cuirass} process are | 21502 | specifications, global settings for the @command{cuirass} process are |
| @@ -21535,9 +21584,9 @@ source is detected. More information can be found at | |||
| 21535 | The service type for the TLP tool. Its value should be a valid | 21584 | The service type for the TLP tool. Its value should be a valid |
| 21536 | TLP configuration (see below). To use the default settings, simply | 21585 | TLP configuration (see below). To use the default settings, simply |
| 21537 | write: | 21586 | write: |
| 21538 | @example | 21587 | @lisp |
| 21539 | (service tlp-service-type) | 21588 | (service tlp-service-type) |
| 21540 | @end example | 21589 | @end lisp |
| 21541 | @end deffn | 21590 | @end deffn |
| 21542 | 21591 | ||
| 21543 | By default TLP does not need much configuration but most TLP parameters | 21592 | By default TLP does not need much configuration but most TLP parameters |
| @@ -22065,12 +22114,12 @@ of clients. | |||
| 22065 | The following example shows how one might run @code{mpd} as user | 22114 | The following example shows how one might run @code{mpd} as user |
| 22066 | @code{"bob"} on port @code{6666}. It uses pulseaudio for output. | 22115 | @code{"bob"} on port @code{6666}. It uses pulseaudio for output. |
| 22067 | 22116 | ||
| 22068 | @example | 22117 | @lisp |
| 22069 | (service mpd-service-type | 22118 | (service mpd-service-type |
| 22070 | (mpd-configuration | 22119 | (mpd-configuration |
| 22071 | (user "bob") | 22120 | (user "bob") |
| 22072 | (port "6666"))) | 22121 | (port "6666"))) |
| 22073 | @end example | 22122 | @end lisp |
| 22074 | 22123 | ||
| 22075 | @defvr {Scheme Variable} mpd-service-type | 22124 | @defvr {Scheme Variable} mpd-service-type |
| 22076 | The service type for @command{mpd} | 22125 | The service type for @command{mpd} |
| @@ -22124,12 +22173,12 @@ and performs required management tasks for virtualized guests. | |||
| 22124 | This is the type of the @uref{https://libvirt.org, libvirt daemon}. | 22173 | This is the type of the @uref{https://libvirt.org, libvirt daemon}. |
| 22125 | Its value must be a @code{libvirt-configuration}. | 22174 | Its value must be a @code{libvirt-configuration}. |
| 22126 | 22175 | ||
| 22127 | @example | 22176 | @lisp |
| 22128 | (service libvirt-service-type | 22177 | (service libvirt-service-type |
| 22129 | (libvirt-configuration | 22178 | (libvirt-configuration |
| 22130 | (unix-sock-group "libvirt") | 22179 | (unix-sock-group "libvirt") |
| 22131 | (tls-port "16555"))) | 22180 | (tls-port "16555"))) |
| 22132 | @end example | 22181 | @end lisp |
| 22133 | @end deffn | 22182 | @end deffn |
| 22134 | 22183 | ||
| 22135 | @c Auto-generated with (generate-libvirt-documentation) | 22184 | @c Auto-generated with (generate-libvirt-documentation) |
| @@ -22690,11 +22739,11 @@ itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime. | |||
| 22690 | This is the type of the virtlog daemon. | 22739 | This is the type of the virtlog daemon. |
| 22691 | Its value must be a @code{virtlog-configuration}. | 22740 | Its value must be a @code{virtlog-configuration}. |
| 22692 | 22741 | ||
| 22693 | @example | 22742 | @lisp |
| 22694 | (service virtlog-service-type | 22743 | (service virtlog-service-type |
| 22695 | (virtlog-configuration | 22744 | (virtlog-configuration |
| 22696 | (max-clients 1000))) | 22745 | (max-clients 1000))) |
| 22697 | @end example | 22746 | @end lisp |
| 22698 | @end deffn | 22747 | @end deffn |
| 22699 | 22748 | ||
| 22700 | @deftypevr {@code{virtlog-configuration} parameter} integer log-level | 22749 | @deftypevr {@code{virtlog-configuration} parameter} integer log-level |
| @@ -22832,11 +22881,11 @@ Its value must be a @code{qemu-binfmt-configuration} object, which | |||
| 22832 | specifies the QEMU package to use as well as the architecture we want to | 22881 | specifies the QEMU package to use as well as the architecture we want to |
| 22833 | emulated: | 22882 | emulated: |
| 22834 | 22883 | ||
| 22835 | @example | 22884 | @lisp |
| 22836 | (service qemu-binfmt-service-type | 22885 | (service qemu-binfmt-service-type |
| 22837 | (qemu-binfmt-configuration | 22886 | (qemu-binfmt-configuration |
| 22838 | (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el")))) | 22887 | (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el")))) |
| 22839 | @end example | 22888 | @end lisp |
| 22840 | 22889 | ||
| 22841 | In this example, we enable transparent emulation for the ARM and aarch64 | 22890 | In this example, we enable transparent emulation for the ARM and aarch64 |
| 22842 | platforms. Running @code{herd stop qemu-binfmt} turns it off, and | 22891 | platforms. Running @code{herd stop qemu-binfmt} turns it off, and |
| @@ -22862,12 +22911,12 @@ that you can transparently build programs for another architecture. | |||
| 22862 | For example, let's suppose you're on an x86_64 machine and you have this | 22911 | For example, let's suppose you're on an x86_64 machine and you have this |
| 22863 | service: | 22912 | service: |
| 22864 | 22913 | ||
| 22865 | @example | 22914 | @lisp |
| 22866 | (service qemu-binfmt-service-type | 22915 | (service qemu-binfmt-service-type |
| 22867 | (qemu-binfmt-configuration | 22916 | (qemu-binfmt-configuration |
| 22868 | (platforms (lookup-qemu-platforms "arm")) | 22917 | (platforms (lookup-qemu-platforms "arm")) |
| 22869 | (guix-support? #t))) | 22918 | (guix-support? #t))) |
| 22870 | @end example | 22919 | @end lisp |
| 22871 | 22920 | ||
| 22872 | You can run: | 22921 | You can run: |
| 22873 | 22922 | ||
| @@ -23018,7 +23067,7 @@ Compute an @code{nginx-location-configuration} that corresponds to the | |||
| 23018 | given Git http configuration. An example nginx service definition to | 23067 | given Git http configuration. An example nginx service definition to |
| 23019 | serve the default @file{/srv/git} over HTTPS might be: | 23068 | serve the default @file{/srv/git} over HTTPS might be: |
| 23020 | 23069 | ||
| 23021 | @example | 23070 | @lisp |
| 23022 | (service nginx-service-type | 23071 | (service nginx-service-type |
| 23023 | (nginx-configuration | 23072 | (nginx-configuration |
| 23024 | (server-blocks | 23073 | (server-blocks |
| @@ -23034,7 +23083,7 @@ serve the default @file{/srv/git} over HTTPS might be: | |||
| 23034 | (list | 23083 | (list |
| 23035 | (git-http-nginx-location-configuration | 23084 | (git-http-nginx-location-configuration |
| 23036 | (git-http-configuration (uri-path "/")))))))))) | 23085 | (git-http-configuration (uri-path "/")))))))))) |
| 23037 | @end example | 23086 | @end lisp |
| 23038 | 23087 | ||
| 23039 | This example assumes that you are using Let's Encrypt to get your TLS | 23088 | This example assumes that you are using Let's Encrypt to get your TLS |
| 23040 | certificate. @xref{Certificate Services}. The default @code{certbot} | 23089 | certificate. @xref{Certificate Services}. The default @code{certbot} |
| @@ -23053,9 +23102,9 @@ repositories written in C. | |||
| 23053 | The following example will configure the service with default values. | 23102 | The following example will configure the service with default values. |
| 23054 | By default, Cgit can be accessed on port 80 (@code{http://localhost:80}). | 23103 | By default, Cgit can be accessed on port 80 (@code{http://localhost:80}). |
| 23055 | 23104 | ||
| 23056 | @example | 23105 | @lisp |
| 23057 | (service cgit-service-type) | 23106 | (service cgit-service-type) |
| 23058 | @end example | 23107 | @end lisp |
| 23059 | 23108 | ||
| 23060 | The @code{file-object} type designates either a file-like object | 23109 | The @code{file-object} type designates either a file-like object |
| 23061 | (@pxref{G-Expressions, file-like objects}) or a string. | 23110 | (@pxref{G-Expressions, file-like objects}) or a string. |
| @@ -23988,11 +24037,11 @@ The contents of the @code{cgitrc}, as a string. | |||
| 23988 | For example, if your @code{cgitrc} is just the empty string, you | 24037 | For example, if your @code{cgitrc} is just the empty string, you |
| 23989 | could instantiate a cgit service like this: | 24038 | could instantiate a cgit service like this: |
| 23990 | 24039 | ||
| 23991 | @example | 24040 | @lisp |
| 23992 | (service cgit-service-type | 24041 | (service cgit-service-type |
| 23993 | (opaque-cgit-configuration | 24042 | (opaque-cgit-configuration |
| 23994 | (cgitrc ""))) | 24043 | (cgitrc ""))) |
| 23995 | @end example | 24044 | @end lisp |
| 23996 | 24045 | ||
| 23997 | @subsubheading Gitolite Service | 24046 | @subsubheading Gitolite Service |
| 23998 | 24047 | ||
| @@ -24007,13 +24056,13 @@ configuration of the permissions for the users on the repositories. | |||
| 24007 | The following example will configure Gitolite using the default @code{git} | 24056 | The following example will configure Gitolite using the default @code{git} |
| 24008 | user, and the provided SSH public key. | 24057 | user, and the provided SSH public key. |
| 24009 | 24058 | ||
| 24010 | @example | 24059 | @lisp |
| 24011 | (service gitolite-service-type | 24060 | (service gitolite-service-type |
| 24012 | (gitolite-configuration | 24061 | (gitolite-configuration |
| 24013 | (admin-pubkey (plain-file | 24062 | (admin-pubkey (plain-file |
| 24014 | "yourname.pub" | 24063 | "yourname.pub" |
| 24015 | "ssh-rsa AAAA... guix@@example.com")))) | 24064 | "ssh-rsa AAAA... guix@@example.com")))) |
| 24016 | @end example | 24065 | @end lisp |
| 24017 | 24066 | ||
| 24018 | Gitolite is configured through a special admin repository which you can clone, | 24067 | Gitolite is configured through a special admin repository which you can clone, |
| 24019 | for example, if you setup Gitolite on @code{example.com}, you would run the | 24068 | for example, if you setup Gitolite on @code{example.com}, you would run the |
| @@ -24056,9 +24105,9 @@ within the gitolite-admin repository. | |||
| 24056 | 24105 | ||
| 24057 | To specify the SSH key as a string, use the @code{plain-file} function. | 24106 | To specify the SSH key as a string, use the @code{plain-file} function. |
| 24058 | 24107 | ||
| 24059 | @example | 24108 | @lisp |
| 24060 | (plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com") | 24109 | (plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com") |
| 24061 | @end example | 24110 | @end lisp |
| 24062 | 24111 | ||
| 24063 | @end table | 24112 | @end table |
| 24064 | @end deftp | 24113 | @end deftp |
| @@ -24103,9 +24152,9 @@ Service type for the wesnothd service. Its value must be a | |||
| 24103 | @code{wesnothd-configuration} object. To run wesnothd in the default | 24152 | @code{wesnothd-configuration} object. To run wesnothd in the default |
| 24104 | configuration, instantiate it as: | 24153 | configuration, instantiate it as: |
| 24105 | 24154 | ||
| 24106 | @example | 24155 | @lisp |
| 24107 | (service wesnothd-service-type) | 24156 | (service wesnothd-service-type) |
| 24108 | @end example | 24157 | @end lisp |
| 24109 | @end defvar | 24158 | @end defvar |
| 24110 | 24159 | ||
| 24111 | @deftp {Data Type} wesnothd-configuration | 24160 | @deftp {Data Type} wesnothd-configuration |
| @@ -24133,9 +24182,9 @@ read and identify fingerprints via a fingerprint sensor. | |||
| 24133 | The service type for @command{fprintd}, which provides the fingerprint | 24182 | The service type for @command{fprintd}, which provides the fingerprint |
| 24134 | reading capability. | 24183 | reading capability. |
| 24135 | 24184 | ||
| 24136 | @example | 24185 | @lisp |
| 24137 | (service fprintd-service-type) | 24186 | (service fprintd-service-type) |
| 24138 | @end example | 24187 | @end lisp |
| 24139 | @end defvr | 24188 | @end defvr |
| 24140 | 24189 | ||
| 24141 | @cindex sysctl | 24190 | @cindex sysctl |
| @@ -24149,11 +24198,11 @@ The service type for @command{sysctl}, which modifies kernel parameters | |||
| 24149 | under @file{/proc/sys/}. To enable IPv4 forwarding, it can be | 24198 | under @file{/proc/sys/}. To enable IPv4 forwarding, it can be |
| 24150 | instantiated as: | 24199 | instantiated as: |
| 24151 | 24200 | ||
| 24152 | @example | 24201 | @lisp |
| 24153 | (service sysctl-service-type | 24202 | (service sysctl-service-type |
| 24154 | (sysctl-configuration | 24203 | (sysctl-configuration |
| 24155 | (settings '(("net.ipv4.ip_forward" . "1"))))) | 24204 | (settings '(("net.ipv4.ip_forward" . "1"))))) |
| 24156 | @end example | 24205 | @end lisp |
| 24157 | @end defvr | 24206 | @end defvr |
| 24158 | 24207 | ||
| 24159 | @deftp {Data Type} sysctl-configuration | 24208 | @deftp {Data Type} sysctl-configuration |
| @@ -24182,9 +24231,9 @@ Service type for the @command{pcscd} service. Its value must be a | |||
| 24182 | @code{pcscd-configuration} object. To run pcscd in the default | 24231 | @code{pcscd-configuration} object. To run pcscd in the default |
| 24183 | configuration, instantiate it as: | 24232 | configuration, instantiate it as: |
| 24184 | 24233 | ||
| 24185 | @example | 24234 | @lisp |
| 24186 | (service pcscd-service-type) | 24235 | (service pcscd-service-type) |
| 24187 | @end example | 24236 | @end lisp |
| 24188 | @end defvr | 24237 | @end defvr |
| 24189 | 24238 | ||
| 24190 | @deftp {Data Type} pcscd-configuration | 24239 | @deftp {Data Type} pcscd-configuration |
| @@ -24339,7 +24388,7 @@ Dictionary of English using the @code{gcide} package. | |||
| 24339 | 24388 | ||
| 24340 | The following is an example @code{dicod-service} configuration. | 24389 | The following is an example @code{dicod-service} configuration. |
| 24341 | 24390 | ||
| 24342 | @example | 24391 | @lisp |
| 24343 | (dicod-service #:config | 24392 | (dicod-service #:config |
| 24344 | (dicod-configuration | 24393 | (dicod-configuration |
| 24345 | (handlers (list (dicod-handler | 24394 | (handlers (list (dicod-handler |
| @@ -24353,7 +24402,7 @@ The following is an example @code{dicod-service} configuration. | |||
| 24353 | (handler "wordnet") | 24402 | (handler "wordnet") |
| 24354 | (options '("database=wn"))) | 24403 | (options '("database=wn"))) |
| 24355 | %dicod-database:gcide)))) | 24404 | %dicod-database:gcide)))) |
| 24356 | @end example | 24405 | @end lisp |
| 24357 | 24406 | ||
| 24358 | @cindex Docker | 24407 | @cindex Docker |
| 24359 | @subsubheading Docker Service | 24408 | @subsubheading Docker Service |
| @@ -24453,7 +24502,7 @@ This is the type of the service that runs build daemon of the | |||
| 24453 | @url{https://nixos.org/nix/, Nix} package manager. Here is an example showing | 24502 | @url{https://nixos.org/nix/, Nix} package manager. Here is an example showing |
| 24454 | how to use it: | 24503 | how to use it: |
| 24455 | 24504 | ||
| 24456 | @example | 24505 | @lisp |
| 24457 | (use-modules (gnu)) | 24506 | (use-modules (gnu)) |
| 24458 | (use-service-modules nix) | 24507 | (use-service-modules nix) |
| 24459 | (use-package-modules package-management) | 24508 | (use-package-modules package-management) |
| @@ -24465,7 +24514,7 @@ how to use it: | |||
| 24465 | 24514 | ||
| 24466 | (services (append (list (service nix-service-type)) | 24515 | (services (append (list (service nix-service-type)) |
| 24467 | %base-services))) | 24516 | %base-services))) |
| 24468 | @end example | 24517 | @end lisp |
| 24469 | 24518 | ||
| 24470 | After @command{guix system reconfigure} configure Nix for your user: | 24519 | After @command{guix system reconfigure} configure Nix for your user: |
| 24471 | 24520 | ||
| @@ -24620,7 +24669,7 @@ As an example, the declaration below configures the NSS to use the | |||
| 24620 | back-end}, which supports host name lookups over multicast DNS (mDNS) | 24669 | back-end}, which supports host name lookups over multicast DNS (mDNS) |
| 24621 | for host names ending in @code{.local}: | 24670 | for host names ending in @code{.local}: |
| 24622 | 24671 | ||
| 24623 | @example | 24672 | @lisp |
| 24624 | (name-service-switch | 24673 | (name-service-switch |
| 24625 | (hosts (list %files ;first, check /etc/hosts | 24674 | (hosts (list %files ;first, check /etc/hosts |
| 24626 | 24675 | ||
| @@ -24642,7 +24691,7 @@ for host names ending in @code{.local}: | |||
| 24642 | ;; Finally, try with the "full" 'mdns'. | 24691 | ;; Finally, try with the "full" 'mdns'. |
| 24643 | (name-service | 24692 | (name-service |
| 24644 | (name "mdns"))))) | 24693 | (name "mdns"))))) |
| 24645 | @end example | 24694 | @end lisp |
| 24646 | 24695 | ||
| 24647 | Do not worry: the @code{%mdns-host-lookup-nss} variable (see below) | 24696 | Do not worry: the @code{%mdns-host-lookup-nss} variable (see below) |
| 24648 | contains this configuration, so you will not have to type it if all you | 24697 | contains this configuration, so you will not have to type it if all you |
| @@ -24723,10 +24772,10 @@ An action specified using the @code{lookup-specification} macro | |||
| 24723 | (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library | 24772 | (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library |
| 24724 | Reference Manual}). For example: | 24773 | Reference Manual}). For example: |
| 24725 | 24774 | ||
| 24726 | @example | 24775 | @lisp |
| 24727 | (lookup-specification (unavailable => continue) | 24776 | (lookup-specification (unavailable => continue) |
| 24728 | (success => return)) | 24777 | (success => return)) |
| 24729 | @end example | 24778 | @end lisp |
| 24730 | @end table | 24779 | @end table |
| 24731 | @end deftp | 24780 | @end deftp |
| 24732 | 24781 | ||
| @@ -24750,11 +24799,11 @@ most use cases. For example, assuming you need the @code{megaraid_sas} | |||
| 24750 | module in addition to the default modules to be able to access your root | 24799 | module in addition to the default modules to be able to access your root |
| 24751 | file system, you would write: | 24800 | file system, you would write: |
| 24752 | 24801 | ||
| 24753 | @example | 24802 | @lisp |
| 24754 | (operating-system | 24803 | (operating-system |
| 24755 | ;; @dots{} | 24804 | ;; @dots{} |
| 24756 | (initrd-modules (cons "megaraid_sas" %base-initrd-modules))) | 24805 | (initrd-modules (cons "megaraid_sas" %base-initrd-modules))) |
| 24757 | @end example | 24806 | @end lisp |
| 24758 | 24807 | ||
| 24759 | @defvr {Scheme Variable} %base-initrd-modules | 24808 | @defvr {Scheme Variable} %base-initrd-modules |
| 24760 | This is the list of kernel modules included in the initrd by default. | 24809 | This is the list of kernel modules included in the initrd by default. |
| @@ -24772,14 +24821,14 @@ For example, if you want to add a bunch of kernel modules to be loaded | |||
| 24772 | at boot time, you can define the @code{initrd} field of the operating | 24821 | at boot time, you can define the @code{initrd} field of the operating |
| 24773 | system declaration like this: | 24822 | system declaration like this: |
| 24774 | 24823 | ||
| 24775 | @example | 24824 | @lisp |
| 24776 | (initrd (lambda (file-systems . rest) | 24825 | (initrd (lambda (file-systems . rest) |
| 24777 | ;; Create a standard initrd but set up networking | 24826 | ;; Create a standard initrd but set up networking |
| 24778 | ;; with the parameters QEMU expects by default. | 24827 | ;; with the parameters QEMU expects by default. |
| 24779 | (apply base-initrd file-systems | 24828 | (apply base-initrd file-systems |
| 24780 | #:qemu-networking? #t | 24829 | #:qemu-networking? #t |
| 24781 | rest))) | 24830 | rest))) |
| 24782 | @end example | 24831 | @end lisp |
| 24783 | 24832 | ||
| 24784 | The @code{base-initrd} procedure also handles common use cases that | 24833 | The @code{base-initrd} procedure also handles common use cases that |
| 24785 | involves using the system as a QEMU guest, or as a ``live'' system with | 24834 | involves using the system as a QEMU guest, or as a ``live'' system with |
| @@ -25031,13 +25080,13 @@ Should you want to list additional boot menu entries @i{via} the | |||
| 25031 | boot another distro (hard to imagine!), you can define a menu entry | 25080 | boot another distro (hard to imagine!), you can define a menu entry |
| 25032 | along these lines: | 25081 | along these lines: |
| 25033 | 25082 | ||
| 25034 | @example | 25083 | @lisp |
| 25035 | (menu-entry | 25084 | (menu-entry |
| 25036 | (label "The Other Distro") | 25085 | (label "The Other Distro") |
| 25037 | (linux "/boot/old/vmlinux-2.6.32") | 25086 | (linux "/boot/old/vmlinux-2.6.32") |
| 25038 | (linux-arguments '("root=/dev/sda2")) | 25087 | (linux-arguments '("root=/dev/sda2")) |
| 25039 | (initrd "/boot/old/initrd")) | 25088 | (initrd "/boot/old/initrd")) |
| 25040 | @end example | 25089 | @end lisp |
| 25041 | 25090 | ||
| 25042 | Details below. | 25091 | Details below. |
| 25043 | 25092 | ||
| @@ -25052,9 +25101,9 @@ The label to show in the menu---e.g., @code{"GNU"}. | |||
| 25052 | @item @code{linux} | 25101 | @item @code{linux} |
| 25053 | The Linux kernel image to boot, for example: | 25102 | The Linux kernel image to boot, for example: |
| 25054 | 25103 | ||
| 25055 | @example | 25104 | @lisp |
| 25056 | (file-append linux-libre "/bzImage") | 25105 | (file-append linux-libre "/bzImage") |
| 25057 | @end example | 25106 | @end lisp |
| 25058 | 25107 | ||
| 25059 | For GRUB, it is also possible to specify a device explicitly in the | 25108 | For GRUB, it is also possible to specify a device explicitly in the |
| 25060 | file path using GRUB's device naming convention (@pxref{Naming | 25109 | file path using GRUB's device naming convention (@pxref{Naming |
| @@ -25590,7 +25639,7 @@ guix deploy @var{file} | |||
| 25590 | Such an invocation will deploy the machines that the code within @var{file} | 25639 | Such an invocation will deploy the machines that the code within @var{file} |
| 25591 | evaluates to. As an example, @var{file} might contain a definition like this: | 25640 | evaluates to. As an example, @var{file} might contain a definition like this: |
| 25592 | 25641 | ||
| 25593 | @example | 25642 | @lisp |
| 25594 | ;; This is a Guix deployment of a "bare bones" setup, with | 25643 | ;; This is a Guix deployment of a "bare bones" setup, with |
| 25595 | ;; no X11 display server, to a machine with an SSH daemon | 25644 | ;; no X11 display server, to a machine with an SSH daemon |
| 25596 | ;; listening on localhost:2222. A configuration such as this | 25645 | ;; listening on localhost:2222. A configuration such as this |
| @@ -25630,7 +25679,7 @@ evaluates to. As an example, @var{file} might contain a definition like this: | |||
| 25630 | (user "alice") | 25679 | (user "alice") |
| 25631 | (identity "./id_rsa") | 25680 | (identity "./id_rsa") |
| 25632 | (port 2222))))) | 25681 | (port 2222))))) |
| 25633 | @end example | 25682 | @end lisp |
| 25634 | 25683 | ||
| 25635 | The file should evaluate to a list of @var{machine} objects. This example, | 25684 | The file should evaluate to a list of @var{machine} objects. This example, |
| 25636 | upon being deployed, will create a new generation on the remote system | 25685 | upon being deployed, will create a new generation on the remote system |
| @@ -25919,7 +25968,7 @@ A @dfn{service type} is a node in the DAG described above. Let us start | |||
| 25919 | with a simple example, the service type for the Guix build daemon | 25968 | with a simple example, the service type for the Guix build daemon |
| 25920 | (@pxref{Invoking guix-daemon}): | 25969 | (@pxref{Invoking guix-daemon}): |
| 25921 | 25970 | ||
| 25922 | @example | 25971 | @lisp |
| 25923 | (define guix-service-type | 25972 | (define guix-service-type |
| 25924 | (service-type | 25973 | (service-type |
| 25925 | (name 'guix) | 25974 | (name 'guix) |
| @@ -25928,7 +25977,7 @@ with a simple example, the service type for the Guix build daemon | |||
| 25928 | (service-extension account-service-type guix-accounts) | 25977 | (service-extension account-service-type guix-accounts) |
| 25929 | (service-extension activation-service-type guix-activation))) | 25978 | (service-extension activation-service-type guix-activation))) |
| 25930 | (default-value (guix-configuration)))) | 25979 | (default-value (guix-configuration)))) |
| 25931 | @end example | 25980 | @end lisp |
| 25932 | 25981 | ||
| 25933 | @noindent | 25982 | @noindent |
| 25934 | It defines three things: | 25983 | It defines three things: |
| @@ -25972,12 +26021,12 @@ booted. | |||
| 25972 | 26021 | ||
| 25973 | A service of this type is instantiated like this: | 26022 | A service of this type is instantiated like this: |
| 25974 | 26023 | ||
| 25975 | @example | 26024 | @lisp |
| 25976 | (service guix-service-type | 26025 | (service guix-service-type |
| 25977 | (guix-configuration | 26026 | (guix-configuration |
| 25978 | (build-accounts 5) | 26027 | (build-accounts 5) |
| 25979 | (use-substitutes? #f))) | 26028 | (use-substitutes? #f))) |
| 25980 | @end example | 26029 | @end lisp |
| 25981 | 26030 | ||
| 25982 | The second argument to the @code{service} form is a value representing | 26031 | The second argument to the @code{service} form is a value representing |
| 25983 | the parameters of this specific service instance. | 26032 | the parameters of this specific service instance. |
| @@ -25986,9 +26035,9 @@ information about the @code{guix-configuration} data type. When the | |||
| 25986 | value is omitted, the default value specified by | 26035 | value is omitted, the default value specified by |
| 25987 | @code{guix-service-type} is used: | 26036 | @code{guix-service-type} is used: |
| 25988 | 26037 | ||
| 25989 | @example | 26038 | @lisp |
| 25990 | (service guix-service-type) | 26039 | (service guix-service-type) |
| 25991 | @end example | 26040 | @end lisp |
| 25992 | 26041 | ||
| 25993 | @code{guix-service-type} is quite simple because it extends other | 26042 | @code{guix-service-type} is quite simple because it extends other |
| 25994 | services but is not extensible itself. | 26043 | services but is not extensible itself. |
| @@ -25997,7 +26046,7 @@ services but is not extensible itself. | |||
| 25997 | 26046 | ||
| 25998 | The service type for an @emph{extensible} service looks like this: | 26047 | The service type for an @emph{extensible} service looks like this: |
| 25999 | 26048 | ||
| 26000 | @example | 26049 | @lisp |
| 26001 | (define udev-service-type | 26050 | (define udev-service-type |
| 26002 | (service-type (name 'udev) | 26051 | (service-type (name 'udev) |
| 26003 | (extensions | 26052 | (extensions |
| @@ -26011,7 +26060,7 @@ The service type for an @emph{extensible} service looks like this: | |||
| 26011 | (udev-configuration | 26060 | (udev-configuration |
| 26012 | (udev udev) ;the udev package to use | 26061 | (udev udev) ;the udev package to use |
| 26013 | (rules (append initial-rules rules))))))))) | 26062 | (rules (append initial-rules rules))))))))) |
| 26014 | @end example | 26063 | @end lisp |
| 26015 | 26064 | ||
| 26016 | This is the service type for the | 26065 | This is the service type for the |
| 26017 | @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device | 26066 | @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device |
| @@ -26068,17 +26117,17 @@ raised. | |||
| 26068 | 26117 | ||
| 26069 | For instance, this: | 26118 | For instance, this: |
| 26070 | 26119 | ||
| 26071 | @example | 26120 | @lisp |
| 26072 | (service openssh-service-type) | 26121 | (service openssh-service-type) |
| 26073 | @end example | 26122 | @end lisp |
| 26074 | 26123 | ||
| 26075 | @noindent | 26124 | @noindent |
| 26076 | is equivalent to this: | 26125 | is equivalent to this: |
| 26077 | 26126 | ||
| 26078 | @example | 26127 | @lisp |
| 26079 | (service openssh-service-type | 26128 | (service openssh-service-type |
| 26080 | (openssh-configuration)) | 26129 | (openssh-configuration)) |
| 26081 | @end example | 26130 | @end lisp |
| 26082 | 26131 | ||
| 26083 | In both cases the result is an instance of @code{openssh-service-type} | 26132 | In both cases the result is an instance of @code{openssh-service-type} |
| 26084 | with the default configuration. | 26133 | with the default configuration. |
| @@ -26099,7 +26148,7 @@ parameters. | |||
| 26099 | 26148 | ||
| 26100 | Here is an example of how a service is created and manipulated: | 26149 | Here is an example of how a service is created and manipulated: |
| 26101 | 26150 | ||
| 26102 | @example | 26151 | @lisp |
| 26103 | (define s | 26152 | (define s |
| 26104 | (service nginx-service-type | 26153 | (service nginx-service-type |
| 26105 | (nginx-configuration | 26154 | (nginx-configuration |
| @@ -26113,7 +26162,7 @@ Here is an example of how a service is created and manipulated: | |||
| 26113 | 26162 | ||
| 26114 | (eq? (service-kind s) nginx-service-type) | 26163 | (eq? (service-kind s) nginx-service-type) |
| 26115 | @result{} #t | 26164 | @result{} #t |
| 26116 | @end example | 26165 | @end lisp |
| 26117 | 26166 | ||
| 26118 | The @code{modify-services} form provides a handy way to change the | 26167 | The @code{modify-services} form provides a handy way to change the |
| 26119 | parameters of some of the services of a list such as | 26168 | parameters of some of the services of a list such as |
| @@ -26215,10 +26264,10 @@ service is an instance. | |||
| 26215 | For example, this extends mcron (@pxref{Scheduled Job Execution}) with | 26264 | For example, this extends mcron (@pxref{Scheduled Job Execution}) with |
| 26216 | an additional job: | 26265 | an additional job: |
| 26217 | 26266 | ||
| 26218 | @example | 26267 | @lisp |
| 26219 | (simple-service 'my-mcron-job mcron-service-type | 26268 | (simple-service 'my-mcron-job mcron-service-type |
| 26220 | #~(job '(next-hour (3)) "guix gc -F 2G")) | 26269 | #~(job '(next-hour (3)) "guix gc -F 2G")) |
| 26221 | @end example | 26270 | @end lisp |
| 26222 | @end deffn | 26271 | @end deffn |
| 26223 | 26272 | ||
| 26224 | At the core of the service abstraction lies the @code{fold-services} | 26273 | At the core of the service abstraction lies the @code{fold-services} |
| @@ -26253,9 +26302,9 @@ The type of the @file{/etc} service. This service is used to create | |||
| 26253 | files under @file{/etc} and can be extended by | 26302 | files under @file{/etc} and can be extended by |
| 26254 | passing it name/file tuples such as: | 26303 | passing it name/file tuples such as: |
| 26255 | 26304 | ||
| 26256 | @example | 26305 | @lisp |
| 26257 | (list `("issue" ,(plain-file "issue" "Welcome!\n"))) | 26306 | (list `("issue" ,(plain-file "issue" "Welcome!\n"))) |
| 26258 | @end example | 26307 | @end lisp |
| 26259 | 26308 | ||
| 26260 | In this example, the effect would be to add an @file{/etc/issue} file | 26309 | In this example, the effect would be to add an @file{/etc/issue} file |
| 26261 | pointing to the given file. | 26310 | pointing to the given file. |
| @@ -26391,7 +26440,7 @@ shepherd, The GNU Shepherd Manual}). | |||
| 26391 | The following example defines an action called @code{say-hello} that kindly | 26440 | The following example defines an action called @code{say-hello} that kindly |
| 26392 | greets the user: | 26441 | greets the user: |
| 26393 | 26442 | ||
| 26394 | @example | 26443 | @lisp |
| 26395 | (shepherd-action | 26444 | (shepherd-action |
| 26396 | (name 'say-hello) | 26445 | (name 'say-hello) |
| 26397 | (documentation "Say hi!") | 26446 | (documentation "Say hi!") |
| @@ -26399,7 +26448,7 @@ greets the user: | |||
| 26399 | (format #t "Hello, friend! arguments: ~s\n" | 26448 | (format #t "Hello, friend! arguments: ~s\n" |
| 26400 | args) | 26449 | args) |
| 26401 | #t))) | 26450 | #t))) |
| 26402 | @end example | 26451 | @end lisp |
| 26403 | 26452 | ||
| 26404 | Assuming this action is added to the @code{example} service, then you can do: | 26453 | Assuming this action is added to the @code{example} service, then you can do: |
| 26405 | 26454 | ||
| @@ -26606,13 +26655,13 @@ Bash, say @code{bash-fixed}, in the usual way (@pxref{Defining | |||
| 26606 | Packages}). Then, the original package definition is augmented with a | 26655 | Packages}). Then, the original package definition is augmented with a |
| 26607 | @code{replacement} field pointing to the package containing the bug fix: | 26656 | @code{replacement} field pointing to the package containing the bug fix: |
| 26608 | 26657 | ||
| 26609 | @example | 26658 | @lisp |
| 26610 | (define bash | 26659 | (define bash |
| 26611 | (package | 26660 | (package |
| 26612 | (name "bash") | 26661 | (name "bash") |
| 26613 | ;; @dots{} | 26662 | ;; @dots{} |
| 26614 | (replacement bash-fixed))) | 26663 | (replacement bash-fixed))) |
| 26615 | @end example | 26664 | @end lisp |
| 26616 | 26665 | ||
| 26617 | From there on, any package depending directly or indirectly on Bash---as | 26666 | From there on, any package depending directly or indirectly on Bash---as |
| 26618 | reported by @command{guix gc --requisites} (@pxref{Invoking guix | 26667 | reported by @command{guix gc --requisites} (@pxref{Invoking guix |
diff --git a/etc/guix-daemon.cil.in b/etc/guix-daemon.cil.in index c0c82d8fbbc..e0c91134981 100644 --- a/etc/guix-daemon.cil.in +++ b/etc/guix-daemon.cil.in | |||
| @@ -277,9 +277,5 @@ | |||
| 277 | file (system_u object_r guix_daemon_exec_t (low low))) | 277 | file (system_u object_r guix_daemon_exec_t (low low))) |
| 278 | (filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon" | 278 | (filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon" |
| 279 | file (system_u object_r guix_daemon_exec_t (low low))) | 279 | file (system_u object_r guix_daemon_exec_t (low low))) |
| 280 | (filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix-authenticate" | ||
| 281 | file (system_u object_r guix_daemon_exec_t (low low))) | ||
| 282 | (filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix/(.*)?" | ||
| 283 | any (system_u object_r guix_daemon_exec_t (low low))) | ||
| 284 | (filecon "@guix_localstatedir@/guix/daemon-socket/socket" | 280 | (filecon "@guix_localstatedir@/guix/daemon-socket/socket" |
| 285 | any (system_u object_r guix_daemon_socket_t (low low)))) | 281 | any (system_u object_r guix_daemon_socket_t (low low)))) |
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 6ccb9248614..87695c98fdd 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm | |||
| @@ -299,8 +299,10 @@ delete it when leaving the dynamic extent of this call." | |||
| 299 | (false-if-exception (delete-file-recursively tmp-dir)))))) | 299 | (false-if-exception (delete-file-recursively tmp-dir)))))) |
| 300 | 300 | ||
| 301 | (define* (call-with-container mounts thunk #:key (namespaces %namespaces) | 301 | (define* (call-with-container mounts thunk #:key (namespaces %namespaces) |
| 302 | (host-uids 1) (guest-uid 0) (guest-gid 0)) | 302 | (host-uids 1) (guest-uid 0) (guest-gid 0) |
| 303 | "Run THUNK in a new container process and return its exit status. | 303 | (process-spawned-hook (const #t))) |
| 304 | "Run THUNK in a new container process and return its exit status; call | ||
| 305 | PROCESS-SPAWNED-HOOK with the PID of the new process that has been spawned. | ||
| 304 | MOUNTS is a list of <file-system> objects that specify file systems to mount | 306 | MOUNTS is a list of <file-system> objects that specify file systems to mount |
| 305 | inside the container. NAMESPACES is a list of symbols corresponding to | 307 | inside the container. NAMESPACES is a list of symbols corresponding to |
| 306 | the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net. By | 308 | the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net. By |
| @@ -329,6 +331,7 @@ load path must be adjusted as needed." | |||
| 329 | (false-if-exception | 331 | (false-if-exception |
| 330 | (kill pid SIGKILL)))) | 332 | (kill pid SIGKILL)))) |
| 331 | 333 | ||
| 334 | (process-spawned-hook pid) | ||
| 332 | (match (waitpid pid) | 335 | (match (waitpid pid) |
| 333 | ((_ . status) status)))))) | 336 | ((_ . status) status)))))) |
| 334 | 337 | ||
diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm index cf68f2108b7..b32765ed5e4 100644 --- a/gnu/build/shepherd.scm +++ b/gnu/build/shepherd.scm | |||
| @@ -67,16 +67,10 @@ | |||
| 67 | (file-system-mapping | 67 | (file-system-mapping |
| 68 | (source "/etc/group") (target source)))) | 68 | (source "/etc/group") (target source)))) |
| 69 | 69 | ||
| 70 | (define nscd-socket | ||
| 71 | (file-system-mapping | ||
| 72 | (source "/var/run/nscd") (target source) | ||
| 73 | (writable? #t))) | ||
| 74 | |||
| 75 | (append (cons (tmpfs "/tmp") %container-file-systems) | 70 | (append (cons (tmpfs "/tmp") %container-file-systems) |
| 76 | (let ((mappings `(,@(if (memq 'net namespaces) | 71 | (let ((mappings `(,@(if (memq 'net namespaces) |
| 77 | '() | 72 | '() |
| 78 | (cons nscd-socket | 73 | %network-file-mappings) |
| 79 | %network-file-mappings)) | ||
| 80 | ,@(if (and (memq 'mnt namespaces) | 74 | ,@(if (and (memq 'mnt namespaces) |
| 81 | (not (memq 'user namespaces))) | 75 | (not (memq 'user namespaces))) |
| 82 | accounts | 76 | accounts |
diff --git a/gnu/local.mk b/gnu/local.mk index ce4510ae4a0..63d55c50184 100644 --- a/gnu/local.mk +++ b/gnu/local.mk | |||
| @@ -743,6 +743,7 @@ dist_patch_DATA = \ | |||
| 743 | %D%/packages/patches/clementine-use-openssl.patch \ | 743 | %D%/packages/patches/clementine-use-openssl.patch \ |
| 744 | %D%/packages/patches/clisp-remove-failing-test.patch \ | 744 | %D%/packages/patches/clisp-remove-failing-test.patch \ |
| 745 | %D%/packages/patches/clucene-pkgconfig.patch \ | 745 | %D%/packages/patches/clucene-pkgconfig.patch \ |
| 746 | %D%/packages/patches/cmake-curl-certificates.patch \ | ||
| 746 | %D%/packages/patches/coda-use-system-libs.patch \ | 747 | %D%/packages/patches/coda-use-system-libs.patch \ |
| 747 | %D%/packages/patches/combinatorial-blas-awpm.patch \ | 748 | %D%/packages/patches/combinatorial-blas-awpm.patch \ |
| 748 | %D%/packages/patches/combinatorial-blas-io-fix.patch \ | 749 | %D%/packages/patches/combinatorial-blas-io-fix.patch \ |
| @@ -1399,7 +1400,6 @@ dist_patch_DATA = \ | |||
| 1399 | %D%/packages/patches/wavpack-CVE-2018-6767.patch \ | 1400 | %D%/packages/patches/wavpack-CVE-2018-6767.patch \ |
| 1400 | %D%/packages/patches/wavpack-CVE-2018-7253.patch \ | 1401 | %D%/packages/patches/wavpack-CVE-2018-7253.patch \ |
| 1401 | %D%/packages/patches/wavpack-CVE-2018-7254.patch \ | 1402 | %D%/packages/patches/wavpack-CVE-2018-7254.patch \ |
| 1402 | %D%/packages/patches/weechat-python.patch \ | ||
| 1403 | %D%/packages/patches/wicd-bitrate-none-fix.patch \ | 1403 | %D%/packages/patches/wicd-bitrate-none-fix.patch \ |
| 1404 | %D%/packages/patches/wicd-get-selected-profile-fix.patch \ | 1404 | %D%/packages/patches/wicd-get-selected-profile-fix.patch \ |
| 1405 | %D%/packages/patches/wicd-urwid-1.3.patch \ | 1405 | %D%/packages/patches/wicd-urwid-1.3.patch \ |
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 3e75b73dcbd..2e072deed7b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm | |||
| @@ -2725,7 +2725,7 @@ tool for remote execution and deployment.") | |||
| 2725 | (define-public neofetch | 2725 | (define-public neofetch |
| 2726 | (package | 2726 | (package |
| 2727 | (name "neofetch") | 2727 | (name "neofetch") |
| 2728 | (version "6.0.0") | 2728 | (version "6.1.0") |
| 2729 | (source (origin | 2729 | (source (origin |
| 2730 | (method git-fetch) | 2730 | (method git-fetch) |
| 2731 | (uri (git-reference | 2731 | (uri (git-reference |
| @@ -2733,7 +2733,7 @@ tool for remote execution and deployment.") | |||
| 2733 | (commit version))) | 2733 | (commit version))) |
| 2734 | (sha256 | 2734 | (sha256 |
| 2735 | (base32 | 2735 | (base32 |
| 2736 | "0j0r40llyry1sgc6p9wd7jrpydps2lnj4rwajjp37697g2bik89i")))) | 2736 | "022xzn9jk18k2f4b6011d8jk5nbl84i3mw3inlz4q52p2hvk8fch")))) |
| 2737 | (build-system gnu-build-system) | 2737 | (build-system gnu-build-system) |
| 2738 | (arguments | 2738 | (arguments |
| 2739 | `(#:tests? #f ; there are no tests | 2739 | `(#:tests? #f ; there are no tests |
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index fb9e78bf928..02b4d4ca21d 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm | |||
| @@ -1435,7 +1435,7 @@ of M4RI from F_2 to F_{2^e}.") | |||
| 1435 | (define-public eclib | 1435 | (define-public eclib |
| 1436 | (package | 1436 | (package |
| 1437 | (name "eclib") | 1437 | (name "eclib") |
| 1438 | (version "20190226") | 1438 | (version "20190909") |
| 1439 | (source (origin | 1439 | (source (origin |
| 1440 | (method git-fetch) | 1440 | (method git-fetch) |
| 1441 | (uri (git-reference | 1441 | (uri (git-reference |
| @@ -1444,7 +1444,7 @@ of M4RI from F_2 to F_{2^e}.") | |||
| 1444 | (file-name (git-file-name name version)) | 1444 | (file-name (git-file-name name version)) |
| 1445 | (sha256 | 1445 | (sha256 |
| 1446 | (base32 | 1446 | (base32 |
| 1447 | "1910np1xzyjzszay24xn4b81qhpsvhp5aix9vdpknplni2mq8kwb")))) | 1447 | "1gw27lqc3f525n8qdcmr2nyn16y9g10z9f6dnmckyyxcdzvhq35n")))) |
| 1448 | (build-system gnu-build-system) | 1448 | (build-system gnu-build-system) |
| 1449 | (native-inputs | 1449 | (native-inputs |
| 1450 | `(("autoconf" ,autoconf) | 1450 | `(("autoconf" ,autoconf) |
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 2bd07cb01d3..e1d7412bfe9 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm | |||
| @@ -3195,24 +3195,28 @@ with support for HD extensions.") | |||
| 3195 | (define-public bs1770gain | 3195 | (define-public bs1770gain |
| 3196 | (package | 3196 | (package |
| 3197 | (name "bs1770gain") | 3197 | (name "bs1770gain") |
| 3198 | (version "0.5.2") | 3198 | (version "0.6.0") |
| 3199 | (source | 3199 | (source |
| 3200 | (origin | 3200 | (origin |
| 3201 | (method url-fetch) | 3201 | (method url-fetch) |
| 3202 | (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/" | 3202 | (uri (string-append "mirror://sourceforge/bs1770gain/bs1770gain/" |
| 3203 | version "/bs1770gain-" version ".tar.gz")) | 3203 | version "/bs1770gain-" version ".tar.gz")) |
| 3204 | (sha256 | 3204 | (sha256 |
| 3205 | (base32 | 3205 | (base32 "0nnqixvw3x7i22nsr54n4bgm35z9nh3d9qj5s75cfd3ajjsjndyh")) |
| 3206 | "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk")) | ||
| 3207 | (modules '((guix build utils))) | 3206 | (modules '((guix build utils))) |
| 3208 | (snippet | 3207 | (snippet |
| 3209 | '(begin | 3208 | '(begin |
| 3210 | ;; XXX | 3209 | ;; XXX |
| 3211 | (substitute* "bs1770gain/bs1770gain.c" | 3210 | (substitute* "libbg/bgx.c" |
| 3212 | (("\"N.*\"") "\"\"")) | 3211 | (("#define BS.* ") "#define BS ") |
| 3213 | (substitute* "configure" | 3212 | (("BS.*NO?.*N.*S.*E.*N.*SE?") "NO") |
| 3214 | (("URL=.*$") | 3213 | (("\"( #|N).*\"") "\"\"")) |
| 3215 | "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html\n")))))) | 3214 | (substitute* (list "config.h" |
| 3215 | "configure.ac" | ||
| 3216 | "configure") | ||
| 3217 | (("https?://bs1770gain[^/]*/") | ||
| 3218 | "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")) | ||
| 3219 | #t)))) | ||
| 3216 | (build-system gnu-build-system) | 3220 | (build-system gnu-build-system) |
| 3217 | (inputs `(("ffmpeg" ,ffmpeg) | 3221 | (inputs `(("ffmpeg" ,ffmpeg) |
| 3218 | ("sox" ,sox))) | 3222 | ("sox" ,sox))) |
diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm index 70f2a8c103e..d995ef7e85a 100644 --- a/gnu/packages/authentication.scm +++ b/gnu/packages/authentication.scm | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 2 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 3 | ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> | ||
| 3 | ;;; | 4 | ;;; |
| 4 | ;;; This file is part of GNU Guix. | 5 | ;;; This file is part of GNU Guix. |
| 5 | ;;; | 6 | ;;; |
| @@ -18,10 +19,14 @@ | |||
| 18 | 19 | ||
| 19 | (define-module (gnu packages authentication) | 20 | (define-module (gnu packages authentication) |
| 20 | #:use-module (gnu packages) | 21 | #:use-module (gnu packages) |
| 22 | #:use-module (gnu packages autotools) | ||
| 23 | #:use-module (gnu packages documentation) | ||
| 21 | #:use-module (gnu packages linux) | 24 | #:use-module (gnu packages linux) |
| 22 | #:use-module (gnu packages pkg-config) | 25 | #:use-module (gnu packages pkg-config) |
| 26 | #:use-module (gnu packages security-token) | ||
| 23 | #:use-module (guix build-system gnu) | 27 | #:use-module (guix build-system gnu) |
| 24 | #:use-module (guix download) | 28 | #:use-module (guix download) |
| 29 | #:use-module (guix git-download) | ||
| 25 | #:use-module ((guix licenses) #:prefix license:) | 30 | #:use-module ((guix licenses) #:prefix license:) |
| 26 | #:use-module (guix packages)) | 31 | #:use-module (guix packages)) |
| 27 | 32 | ||
| @@ -86,3 +91,39 @@ Supported technologies include the event-based @dfn{HOTP} algorithm (RFC4226) | |||
| 86 | and the time-based @dfn{TOTP} algorithm (RFC6238).") | 91 | and the time-based @dfn{TOTP} algorithm (RFC6238).") |
| 87 | (license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/) | 92 | (license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/) |
| 88 | license:gpl3+)))) ; the tools (everything else) | 93 | license:gpl3+)))) ; the tools (everything else) |
| 94 | |||
| 95 | (define-public yubico-pam | ||
| 96 | (let ((commit "b5bd00db81e0e0e0ecced65c684080bb56ddc35b") | ||
| 97 | (revision "0")) | ||
| 98 | (package | ||
| 99 | (name "yubico-pam") | ||
| 100 | (version (git-version "2.26" revision commit)) | ||
| 101 | (source (origin | ||
| 102 | (method git-fetch) | ||
| 103 | (uri (git-reference | ||
| 104 | (url "https://github.com/Yubico/yubico-pam.git") | ||
| 105 | (commit commit))) | ||
| 106 | (file-name (git-file-name name version)) | ||
| 107 | (sha256 | ||
| 108 | (base32 | ||
| 109 | "10dq8dqi3jldllj6p8r9hldx9sank9n82c44w8akxrs1vli6nj3m")))) | ||
| 110 | (build-system gnu-build-system) | ||
| 111 | (arguments | ||
| 112 | ;; The pam_test fails because ykclient fails to build a Curl handle. | ||
| 113 | '(#:make-flags '("TESTS=util_test"))) | ||
| 114 | (inputs | ||
| 115 | `(("linux-pam" ,linux-pam) | ||
| 116 | ("libyubikey" ,libyubikey) | ||
| 117 | ("ykclient" ,ykclient) | ||
| 118 | ("yubikey-personalization" ,yubikey-personalization))) | ||
| 119 | (native-inputs | ||
| 120 | `(("autoconf" ,autoconf) | ||
| 121 | ("automake" ,automake) | ||
| 122 | ("libtool" ,libtool) | ||
| 123 | ("asciidoc" ,asciidoc) | ||
| 124 | ("pkg-config" ,pkg-config))) | ||
| 125 | (home-page "https://developers.yubico.com/yubico-pam") | ||
| 126 | (synopsis "Yubico pluggable authentication module") | ||
| 127 | (description "The Yubico PAM module provides an easy way to integrate the | ||
| 128 | YubiKey into your existing user authentication infrastructure.") | ||
| 129 | (license license:bsd-2)))) | ||
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 37cd51d16c3..7ca6788dd8f 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm | |||
| @@ -50,21 +50,14 @@ | |||
| 50 | (version "1.4.0") | 50 | (version "1.4.0") |
| 51 | (source (origin | 51 | (source (origin |
| 52 | (method url-fetch) | 52 | (method url-fetch) |
| 53 | ;; We cannot use bioconductor-uri here because this tarball is | 53 | (uri (bioconductor-uri "BSgenome.Celegans.UCSC.ce6" |
| 54 | ;; located under "data/annotation/" instead of "bioc/". | 54 | version 'annotation)) |
| 55 | (uri (string-append "https://www.bioconductor.org/packages/" | ||
| 56 | "release/data/annotation/src/contrib/" | ||
| 57 | "BSgenome.Celegans.UCSC.ce6_" | ||
| 58 | version ".tar.gz")) | ||
| 59 | (sha256 | 55 | (sha256 |
| 60 | (base32 | 56 | (base32 |
| 61 | "0mqzb353xv2c3m3vkb315dkmnxkgczp7ndnknyhpgjlybyf715v9")))) | 57 | "0mqzb353xv2c3m3vkb315dkmnxkgczp7ndnknyhpgjlybyf715v9")))) |
| 62 | (properties | 58 | (properties |
| 63 | `((upstream-name . "BSgenome.Celegans.UCSC.ce6"))) | 59 | `((upstream-name . "BSgenome.Celegans.UCSC.ce6"))) |
| 64 | (build-system r-build-system) | 60 | (build-system r-build-system) |
| 65 | ;; As this package provides little more than a very large data file it | ||
| 66 | ;; doesn't make sense to build substitutes. | ||
| 67 | (arguments `(#:substitutable? #f)) | ||
| 68 | (propagated-inputs | 61 | (propagated-inputs |
| 69 | `(("r-bsgenome" ,r-bsgenome))) | 62 | `(("r-bsgenome" ,r-bsgenome))) |
| 70 | (home-page | 63 | (home-page |
| @@ -817,6 +810,28 @@ annotations.") | |||
| 817 | Disease Ontology.") | 810 | Disease Ontology.") |
| 818 | (license license:artistic2.0))) | 811 | (license license:artistic2.0))) |
| 819 | 812 | ||
| 813 | (define-public r-pfam-db | ||
| 814 | (package | ||
| 815 | (name "r-pfam-db") | ||
| 816 | (version "3.8.2") | ||
| 817 | (source | ||
| 818 | (origin | ||
| 819 | (method url-fetch) | ||
| 820 | (uri (bioconductor-uri "PFAM.db" version 'annotation)) | ||
| 821 | (sha256 | ||
| 822 | (base32 | ||
| 823 | "0rn1arzzcniy3yyc4yc44vn40g0cqss37dhwnvsgxpfayqq1k59s")))) | ||
| 824 | (properties `((upstream-name . "PFAM.db"))) | ||
| 825 | (build-system r-build-system) | ||
| 826 | (propagated-inputs | ||
| 827 | `(("r-annotationdbi" ,r-annotationdbi))) | ||
| 828 | (home-page "https://bioconductor.org/packages/PFAM.db") | ||
| 829 | (synopsis "Set of protein ID mappings for PFAM") | ||
| 830 | (description | ||
| 831 | "This package provides a set of protein ID mappings for PFAM, assembled | ||
| 832 | using data from public repositories.") | ||
| 833 | (license license:artistic2.0))) | ||
| 834 | |||
| 820 | 835 | ||
| 821 | ;;; Experiment data | 836 | ;;; Experiment data |
| 822 | 837 | ||
| @@ -942,6 +957,29 @@ jointly normalized data that are available here. The data are presented in | |||
| 942 | the form of an @code{exprSet} object.") | 957 | the form of an @code{exprSet} object.") |
| 943 | (license license:artistic2.0))) | 958 | (license license:artistic2.0))) |
| 944 | 959 | ||
| 960 | (define-public r-affydata | ||
| 961 | (package | ||
| 962 | (name "r-affydata") | ||
| 963 | (version "1.32.0") | ||
| 964 | (source | ||
| 965 | (origin | ||
| 966 | (method url-fetch) | ||
| 967 | (uri (bioconductor-uri "affydata" version 'experiment)) | ||
| 968 | (sha256 | ||
| 969 | (base32 | ||
| 970 | "1l9qhmjqgbrdl9cmd74rlnvmvr6mslbmckb83n0211whp2i0b7h5")))) | ||
| 971 | (properties `((upstream-name . "affydata"))) | ||
| 972 | (build-system r-build-system) | ||
| 973 | (propagated-inputs | ||
| 974 | `(("r-affy" ,r-affy))) | ||
| 975 | (home-page "https://bioconductor.org/packages/affydata/") | ||
| 976 | (synopsis "Affymetrix data for demonstration purposes") | ||
| 977 | (description | ||
| 978 | "This package provides example datasets that represent 'real world | ||
| 979 | examples' of Affymetrix data, unlike the artificial examples included in the | ||
| 980 | package @code{affy}.") | ||
| 981 | (license license:gpl2+))) | ||
| 982 | |||
| 945 | 983 | ||
| 946 | ;;; Packages | 984 | ;;; Packages |
| 947 | 985 | ||
| @@ -965,6 +1003,147 @@ the form of an @code{exprSet} object.") | |||
| 965 | packages.") | 1003 | packages.") |
| 966 | (license license:artistic2.0))) | 1004 | (license license:artistic2.0))) |
| 967 | 1005 | ||
| 1006 | (define-public r-affycomp | ||
| 1007 | (package | ||
| 1008 | (name "r-affycomp") | ||
| 1009 | (version "1.60.0") | ||
| 1010 | (source | ||
| 1011 | (origin | ||
| 1012 | (method url-fetch) | ||
| 1013 | (uri (bioconductor-uri "affycomp" version)) | ||
| 1014 | (sha256 | ||
| 1015 | (base32 | ||
| 1016 | "1nijqljg5r3qj1y6an0i58sby76hqacj3a3nvainxic4n5wlzh0n")))) | ||
| 1017 | (properties `((upstream-name . "affycomp"))) | ||
| 1018 | (build-system r-build-system) | ||
| 1019 | (propagated-inputs `(("r-biobase" ,r-biobase))) | ||
| 1020 | (home-page "https://bioconductor.org/packages/affycomp/") | ||
| 1021 | (synopsis "Graphics toolbox for assessment of Affymetrix expression measures") | ||
| 1022 | (description | ||
| 1023 | "The package contains functions that can be used to compare expression | ||
| 1024 | measures for Affymetrix Oligonucleotide Arrays.") | ||
| 1025 | (license license:gpl2+))) | ||
| 1026 | |||
| 1027 | (define-public r-affycompatible | ||
| 1028 | (package | ||
| 1029 | (name "r-affycompatible") | ||
| 1030 | (version "1.44.0") | ||
| 1031 | (source | ||
| 1032 | (origin | ||
| 1033 | (method url-fetch) | ||
| 1034 | (uri (bioconductor-uri "AffyCompatible" version)) | ||
| 1035 | (sha256 | ||
| 1036 | (base32 | ||
| 1037 | "1zi96qa6vkgwvvy5cn6c3p1kbfsaz74zsw2kjxarz5qs744f0xvs")))) | ||
| 1038 | (properties | ||
| 1039 | `((upstream-name . "AffyCompatible"))) | ||
| 1040 | (build-system r-build-system) | ||
| 1041 | (propagated-inputs | ||
| 1042 | `(("r-biostrings" ,r-biostrings) | ||
| 1043 | ("r-rcurl" ,r-rcurl) | ||
| 1044 | ("r-xml" ,r-xml))) | ||
| 1045 | (home-page "https://bioconductor.org/packages/AffyCompatible/") | ||
| 1046 | (synopsis "Work with Affymetrix GeneChip files") | ||
| 1047 | (description | ||
| 1048 | "This package provides an interface to Affymetrix chip annotation and | ||
| 1049 | sample attribute files. The package allows an easy way for users to download | ||
| 1050 | and manage local data bases of Affynmetrix NetAffx annotation files. It also | ||
| 1051 | provides access to @dfn{GeneChip Operating System} (GCOS) and @dfn{GeneChip | ||
| 1052 | Command Console} (AGCC)-compatible sample annotation files.") | ||
| 1053 | (license license:artistic2.0))) | ||
| 1054 | |||
| 1055 | (define-public r-affycontam | ||
| 1056 | (package | ||
| 1057 | (name "r-affycontam") | ||
| 1058 | (version "1.42.0") | ||
| 1059 | (source | ||
| 1060 | (origin | ||
| 1061 | (method url-fetch) | ||
| 1062 | (uri (bioconductor-uri "affyContam" version)) | ||
| 1063 | (sha256 | ||
| 1064 | (base32 | ||
| 1065 | "0nzk1cm26rhmym753wyhn35hqnz5lvavi3i5qfgdvhxgjy3m1jgp")))) | ||
| 1066 | (properties `((upstream-name . "affyContam"))) | ||
| 1067 | (build-system r-build-system) | ||
| 1068 | (propagated-inputs | ||
| 1069 | `(("r-affy" ,r-affy) | ||
| 1070 | ("r-affydata" ,r-affydata) | ||
| 1071 | ("r-biobase" ,r-biobase))) | ||
| 1072 | (home-page "https://bioconductor.org/packages/affyContam/") | ||
| 1073 | (synopsis "Structured corruption of Affymetrix CEL file data") | ||
| 1074 | (description | ||
| 1075 | "Microarray quality assessment is a major concern of microarray analysts. | ||
| 1076 | This package provides some simple approaches to in silico creation of quality | ||
| 1077 | problems in CEL-level data to help evaluate performance of quality metrics.") | ||
| 1078 | (license license:artistic2.0))) | ||
| 1079 | |||
| 1080 | (define-public r-affycoretools | ||
| 1081 | (package | ||
| 1082 | (name "r-affycoretools") | ||
| 1083 | (version "1.56.0") | ||
| 1084 | (source | ||
| 1085 | (origin | ||
| 1086 | (method url-fetch) | ||
| 1087 | (uri (bioconductor-uri "affycoretools" version)) | ||
| 1088 | (sha256 | ||
| 1089 | (base32 | ||
| 1090 | "17dxpzhwwdwnxkdpmyjwdnacg41hw60mlc71w4nzlvs28sfsy09s")))) | ||
| 1091 | (properties `((upstream-name . "affycoretools"))) | ||
| 1092 | (build-system r-build-system) | ||
| 1093 | (propagated-inputs | ||
| 1094 | `(("r-affy" ,r-affy) | ||
| 1095 | ("r-annotationdbi" ,r-annotationdbi) | ||
| 1096 | ("r-biobase" ,r-biobase) | ||
| 1097 | ("r-biocgenerics" ,r-biocgenerics) | ||
| 1098 | ("r-dbi" ,r-dbi) | ||
| 1099 | ("r-edger" ,r-edger) | ||
| 1100 | ("r-gcrma" ,r-gcrma) | ||
| 1101 | ("r-ggplot2" ,r-ggplot2) | ||
| 1102 | ("r-gostats" ,r-gostats) | ||
| 1103 | ("r-gplots" ,r-gplots) | ||
| 1104 | ("r-hwriter" ,r-hwriter) | ||
| 1105 | ("r-lattice" ,r-lattice) | ||
| 1106 | ("r-limma" ,r-limma) | ||
| 1107 | ("r-oligoclasses" ,r-oligoclasses) | ||
| 1108 | ("r-reportingtools" ,r-reportingtools) | ||
| 1109 | ("r-rsqlite" ,r-rsqlite) | ||
| 1110 | ("r-s4vectors" ,r-s4vectors) | ||
| 1111 | ("r-xtable" ,r-xtable))) | ||
| 1112 | (home-page "https://bioconductor.org/packages/affycoretools/") | ||
| 1113 | (synopsis "Functions for analyses with Affymetrix GeneChips") | ||
| 1114 | (description | ||
| 1115 | "This package provides various wrapper functions that have been written | ||
| 1116 | to streamline the more common analyses that a Biostatistician might see.") | ||
| 1117 | (license license:artistic2.0))) | ||
| 1118 | |||
| 1119 | (define-public r-affxparser | ||
| 1120 | (package | ||
| 1121 | (name "r-affxparser") | ||
| 1122 | (version "1.56.0") | ||
| 1123 | (source | ||
| 1124 | (origin | ||
| 1125 | (method url-fetch) | ||
| 1126 | (uri (bioconductor-uri "affxparser" version)) | ||
| 1127 | (sha256 | ||
| 1128 | (base32 | ||
| 1129 | "1jv7k9pn4c7szi3ma2f2xsd58pkrkvjpk5wra73r6kc607qgrv33")))) | ||
| 1130 | (properties `((upstream-name . "affxparser"))) | ||
| 1131 | (build-system r-build-system) | ||
| 1132 | (home-page "https://github.com/HenrikBengtsson/affxparser") | ||
| 1133 | (synopsis "Affymetrix File Parsing SDK") | ||
| 1134 | (description | ||
| 1135 | "This is a package for parsing Affymetrix files (CDF, CEL, CHP, BPMAP, | ||
| 1136 | BAR). It provides methods for fast and memory efficient parsing of Affymetrix | ||
| 1137 | files using the Affymetrix' Fusion SDK. Both ASCII- and binary-based files | ||
| 1138 | are supported. Currently, there are methods for reading @dfn{chip definition | ||
| 1139 | file} (CDF) and a @dfn{cell intensity file} (CEL). These files can be read | ||
| 1140 | either in full or in part. For example, probe signals from a few probesets | ||
| 1141 | can be extracted very quickly from a set of CEL files into a convenient list | ||
| 1142 | structure.") | ||
| 1143 | ;; The Fusion SDK contains files under GPLv2 and LGPLv2.1. The R code is | ||
| 1144 | ;; under LGPLv2+. | ||
| 1145 | (license (list license:lgpl2.0+ license:lgpl2.1 license:gpl2)))) | ||
| 1146 | |||
| 968 | (define-public r-annotate | 1147 | (define-public r-annotate |
| 969 | (package | 1148 | (package |
| 970 | (name "r-annotate") | 1149 | (name "r-annotate") |
| @@ -1013,14 +1192,14 @@ the Human Protein Atlas project.") | |||
| 1013 | (define-public r-regioner | 1192 | (define-public r-regioner |
| 1014 | (package | 1193 | (package |
| 1015 | (name "r-regioner") | 1194 | (name "r-regioner") |
| 1016 | (version "1.16.2") | 1195 | (version "1.16.4") |
| 1017 | (source | 1196 | (source |
| 1018 | (origin | 1197 | (origin |
| 1019 | (method url-fetch) | 1198 | (method url-fetch) |
| 1020 | (uri (bioconductor-uri "regioneR" version)) | 1199 | (uri (bioconductor-uri "regioneR" version)) |
| 1021 | (sha256 | 1200 | (sha256 |
| 1022 | (base32 | 1201 | (base32 |
| 1023 | "1b8ybx4wcxlqw9nvajawsf0lqaqn9v89rxcawg4g3dbzlfssfc5q")))) | 1202 | "0xzk057h6nkr3rvd412prxgnkpq625b90laj1kwb0i5q8j5ch760")))) |
| 1024 | (properties `((upstream-name . "regioneR"))) | 1203 | (properties `((upstream-name . "regioneR"))) |
| 1025 | (build-system r-build-system) | 1204 | (build-system r-build-system) |
| 1026 | (propagated-inputs | 1205 | (propagated-inputs |
| @@ -1039,6 +1218,54 @@ customizable permutation tests to assess the association between genomic | |||
| 1039 | region sets and other genomic features.") | 1218 | region sets and other genomic features.") |
| 1040 | (license license:artistic2.0))) | 1219 | (license license:artistic2.0))) |
| 1041 | 1220 | ||
| 1221 | (define-public r-reportingtools | ||
| 1222 | (package | ||
| 1223 | (name "r-reportingtools") | ||
| 1224 | (version "2.24.0") | ||
| 1225 | (source | ||
| 1226 | (origin | ||
| 1227 | (method url-fetch) | ||
| 1228 | (uri (bioconductor-uri "ReportingTools" version)) | ||
| 1229 | (sha256 | ||
| 1230 | (base32 | ||
| 1231 | "16ska7mlacka0xi8x2icy8v42vaxccb3a1x73szmfvcrwr592qsc")))) | ||
| 1232 | (properties | ||
| 1233 | `((upstream-name . "ReportingTools"))) | ||
| 1234 | (build-system r-build-system) | ||
| 1235 | (propagated-inputs | ||
| 1236 | `(("r-annotate" ,r-annotate) | ||
| 1237 | ("r-annotationdbi" ,r-annotationdbi) | ||
| 1238 | ("r-biobase" ,r-biobase) | ||
| 1239 | ("r-biocgenerics" ,r-biocgenerics) | ||
| 1240 | ("r-category" ,r-category) | ||
| 1241 | ("r-deseq2" ,r-deseq2) | ||
| 1242 | ("r-edger" ,r-edger) | ||
| 1243 | ("r-ggbio" ,r-ggbio) | ||
| 1244 | ("r-ggplot2" ,r-ggplot2) | ||
| 1245 | ("r-gostats" ,r-gostats) | ||
| 1246 | ("r-gseabase" ,r-gseabase) | ||
| 1247 | ("r-hwriter" ,r-hwriter) | ||
| 1248 | ("r-iranges" ,r-iranges) | ||
| 1249 | ("r-knitr" ,r-knitr) | ||
| 1250 | ("r-lattice" ,r-lattice) | ||
| 1251 | ("r-limma" ,r-limma) | ||
| 1252 | ("r-pfam-db" ,r-pfam-db) | ||
| 1253 | ("r-r-utils" ,r-r-utils) | ||
| 1254 | ("r-xml" ,r-xml))) | ||
| 1255 | (home-page "https://bioconductor.org/packages/ReportingTools/") | ||
| 1256 | (synopsis "Tools for making reports in various formats") | ||
| 1257 | (description | ||
| 1258 | "The ReportingTools package enables users to easily display reports of | ||
| 1259 | analysis results generated from sources such as microarray and sequencing | ||
| 1260 | data. The package allows users to create HTML pages that may be viewed on a | ||
| 1261 | web browser, or in other formats. Users can generate tables with sortable and | ||
| 1262 | filterable columns, make and display plots, and link table entries to other | ||
| 1263 | data sources such as NCBI or larger plots within the HTML page. Using the | ||
| 1264 | package, users can also produce a table of contents page to link various | ||
| 1265 | reports together for a particular project that can be viewed in a web | ||
| 1266 | browser.") | ||
| 1267 | (license license:artistic2.0))) | ||
| 1268 | |||
| 1042 | (define-public r-geneplotter | 1269 | (define-public r-geneplotter |
| 1043 | (package | 1270 | (package |
| 1044 | (name "r-geneplotter") | 1271 | (name "r-geneplotter") |
| @@ -1064,6 +1291,75 @@ region sets and other genomic features.") | |||
| 1064 | "This package provides functions for plotting genomic data.") | 1291 | "This package provides functions for plotting genomic data.") |
| 1065 | (license license:artistic2.0))) | 1292 | (license license:artistic2.0))) |
| 1066 | 1293 | ||
| 1294 | (define-public r-oligoclasses | ||
| 1295 | (package | ||
| 1296 | (name "r-oligoclasses") | ||
| 1297 | (version "1.46.0") | ||
| 1298 | (source | ||
| 1299 | (origin | ||
| 1300 | (method url-fetch) | ||
| 1301 | (uri (bioconductor-uri "oligoClasses" version)) | ||
| 1302 | (sha256 | ||
| 1303 | (base32 | ||
| 1304 | "0z86zrmn80kcy6fgb9i9zs82vhim73n8hlkqy7y8sbb2jwksdr72")))) | ||
| 1305 | (properties `((upstream-name . "oligoClasses"))) | ||
| 1306 | (build-system r-build-system) | ||
| 1307 | (propagated-inputs | ||
| 1308 | `(("r-affyio" ,r-affyio) | ||
| 1309 | ("r-biobase" ,r-biobase) | ||
| 1310 | ("r-biocgenerics" ,r-biocgenerics) | ||
| 1311 | ("r-biocmanager" ,r-biocmanager) | ||
| 1312 | ("r-biostrings" ,r-biostrings) | ||
| 1313 | ("r-dbi" ,r-dbi) | ||
| 1314 | ("r-ff" ,r-ff) | ||
| 1315 | ("r-foreach" ,r-foreach) | ||
| 1316 | ("r-genomicranges" ,r-genomicranges) | ||
| 1317 | ("r-iranges" ,r-iranges) | ||
| 1318 | ("r-rsqlite" ,r-rsqlite) | ||
| 1319 | ("r-s4vectors" ,r-s4vectors) | ||
| 1320 | ("r-summarizedexperiment" ,r-summarizedexperiment))) | ||
| 1321 | (home-page "https://bioconductor.org/packages/oligoClasses/") | ||
| 1322 | (synopsis "Classes for high-throughput arrays") | ||
| 1323 | (description | ||
| 1324 | "This package contains class definitions, validity checks, and | ||
| 1325 | initialization methods for classes used by the @code{oligo} and @code{crlmm} | ||
| 1326 | packages.") | ||
| 1327 | (license license:gpl2+))) | ||
| 1328 | |||
| 1329 | (define-public r-oligo | ||
| 1330 | (package | ||
| 1331 | (name "r-oligo") | ||
| 1332 | (version "1.48.0") | ||
| 1333 | (source | ||
| 1334 | (origin | ||
| 1335 | (method url-fetch) | ||
| 1336 | (uri (bioconductor-uri "oligo" version)) | ||
| 1337 | (sha256 | ||
| 1338 | (base32 | ||
| 1339 | "0qkyz65zvry0syibjkvkshwijccna18jy0hlib0n5x4c8x9zs5df")))) | ||
| 1340 | (properties `((upstream-name . "oligo"))) | ||
| 1341 | (build-system r-build-system) | ||
| 1342 | (inputs `(("zlib" ,zlib))) | ||
| 1343 | (propagated-inputs | ||
| 1344 | `(("r-affxparser" ,r-affxparser) | ||
| 1345 | ("r-affyio" ,r-affyio) | ||
| 1346 | ("r-biobase" ,r-biobase) | ||
| 1347 | ("r-biocgenerics" ,r-biocgenerics) | ||
| 1348 | ("r-biostrings" ,r-biostrings) | ||
| 1349 | ("r-dbi" ,r-dbi) | ||
| 1350 | ("r-ff" ,r-ff) | ||
| 1351 | ("r-oligoclasses" ,r-oligoclasses) | ||
| 1352 | ("r-preprocesscore" ,r-preprocesscore) | ||
| 1353 | ("r-rsqlite" ,r-rsqlite) | ||
| 1354 | ("r-zlibbioc" ,r-zlibbioc))) | ||
| 1355 | (home-page "https://bioconductor.org/packages/oligo/") | ||
| 1356 | (synopsis "Preprocessing tools for oligonucleotide arrays") | ||
| 1357 | (description | ||
| 1358 | "This package provides a package to analyze oligonucleotide | ||
| 1359 | arrays (expression/SNP/tiling/exon) at probe-level. It currently supports | ||
| 1360 | Affymetrix (CEL files) and NimbleGen arrays (XYS files).") | ||
| 1361 | (license license:lgpl2.0+))) | ||
| 1362 | |||
| 1067 | (define-public r-qvalue | 1363 | (define-public r-qvalue |
| 1068 | (package | 1364 | (package |
| 1069 | (name "r-qvalue") | 1365 | (name "r-qvalue") |
| @@ -3895,14 +4191,14 @@ analysis.") | |||
| 3895 | (define-public r-gtrellis | 4191 | (define-public r-gtrellis |
| 3896 | (package | 4192 | (package |
| 3897 | (name "r-gtrellis") | 4193 | (name "r-gtrellis") |
| 3898 | (version "1.16.0") | 4194 | (version "1.16.1") |
| 3899 | (source | 4195 | (source |
| 3900 | (origin | 4196 | (origin |
| 3901 | (method url-fetch) | 4197 | (method url-fetch) |
| 3902 | (uri (bioconductor-uri "gtrellis" version)) | 4198 | (uri (bioconductor-uri "gtrellis" version)) |
| 3903 | (sha256 | 4199 | (sha256 |
| 3904 | (base32 | 4200 | (base32 |
| 3905 | "00d5swg3brnx8ryzpg7hp3mg9hx3vz4yd1lv2chlp2pj2rhsir1y")))) | 4201 | "069hln9vflyxic24bxrlmdmz9h3jdd2qaqy898rgk5bn0gqwcjix")))) |
| 3906 | (build-system r-build-system) | 4202 | (build-system r-build-system) |
| 3907 | (propagated-inputs | 4203 | (propagated-inputs |
| 3908 | `(("r-circlize" ,r-circlize) | 4204 | `(("r-circlize" ,r-circlize) |
| @@ -4888,14 +5184,14 @@ annotations.") | |||
| 4888 | (define-public r-rsubread | 5184 | (define-public r-rsubread |
| 4889 | (package | 5185 | (package |
| 4890 | (name "r-rsubread") | 5186 | (name "r-rsubread") |
| 4891 | (version "1.34.6") | 5187 | (version "1.34.7") |
| 4892 | (source | 5188 | (source |
| 4893 | (origin | 5189 | (origin |
| 4894 | (method url-fetch) | 5190 | (method url-fetch) |
| 4895 | (uri (bioconductor-uri "Rsubread" version)) | 5191 | (uri (bioconductor-uri "Rsubread" version)) |
| 4896 | (sha256 | 5192 | (sha256 |
| 4897 | (base32 | 5193 | (base32 |
| 4898 | "0nnfh4hnrs5kd72m8c50cidbsxjz12szw2vynpmg8q0wpd99q550")))) | 5194 | "0z4ydk9296bp76ah5y6a7za5jyn4h238xngb789zragly902x83y")))) |
| 4899 | (properties `((upstream-name . "Rsubread"))) | 5195 | (properties `((upstream-name . "Rsubread"))) |
| 4900 | (build-system r-build-system) | 5196 | (build-system r-build-system) |
| 4901 | (inputs `(("zlib" ,zlib))) | 5197 | (inputs `(("zlib" ,zlib))) |
| @@ -5047,14 +5343,14 @@ self-organizing map clustering and minimal spanning trees.") | |||
| 5047 | (define-public r-mixomics | 5343 | (define-public r-mixomics |
| 5048 | (package | 5344 | (package |
| 5049 | (name "r-mixomics") | 5345 | (name "r-mixomics") |
| 5050 | (version "6.8.2") | 5346 | (version "6.8.4") |
| 5051 | (source | 5347 | (source |
| 5052 | (origin | 5348 | (origin |
| 5053 | (method url-fetch) | 5349 | (method url-fetch) |
| 5054 | (uri (bioconductor-uri "mixOmics" version)) | 5350 | (uri (bioconductor-uri "mixOmics" version)) |
| 5055 | (sha256 | 5351 | (sha256 |
| 5056 | (base32 | 5352 | (base32 |
| 5057 | "0issfrhsgc102sr33q9v6w6jrrd32plig7szd1nm0n4r3yn4y2fc")))) | 5353 | "0lw4c9lxcm83xrvl4y120i1z710qjbdqginhrw738azpr1f82hcg")))) |
| 5058 | (properties `((upstream-name . "mixOmics"))) | 5354 | (properties `((upstream-name . "mixOmics"))) |
| 5059 | (build-system r-build-system) | 5355 | (build-system r-build-system) |
| 5060 | (propagated-inputs | 5356 | (propagated-inputs |
| @@ -5466,3 +5762,288 @@ with multiple R processes supported by the package @code{parallel}.") | |||
| 5466 | "This package provides methods for working with Illumina arrays using the | 5762 | "This package provides methods for working with Illumina arrays using the |
| 5467 | @code{gdsfmt} package.") | 5763 | @code{gdsfmt} package.") |
| 5468 | (license license:gpl3))) | 5764 | (license license:gpl3))) |
| 5765 | |||
| 5766 | (define-public r-seqbias | ||
| 5767 | (package | ||
| 5768 | (name "r-seqbias") | ||
| 5769 | (version "1.32.0") | ||
| 5770 | (source | ||
| 5771 | (origin | ||
| 5772 | (method url-fetch) | ||
| 5773 | (uri (bioconductor-uri "seqbias" version)) | ||
| 5774 | (sha256 | ||
| 5775 | (base32 | ||
| 5776 | "1pk97jsq0rxijsdm5wnmlw79mhy19skdq1h3mmfbdjh560md47lw")))) | ||
| 5777 | (properties `((upstream-name . "seqbias"))) | ||
| 5778 | (build-system r-build-system) | ||
| 5779 | (propagated-inputs | ||
| 5780 | `(("r-biostrings" ,r-biostrings) | ||
| 5781 | ("r-genomicranges" ,r-genomicranges) | ||
| 5782 | ("r-rhtslib" ,r-rhtslib))) | ||
| 5783 | (inputs | ||
| 5784 | `(("zlib" ,zlib))) ; This comes from rhtslib. | ||
| 5785 | (home-page "https://bioconductor.org/packages/seqbias/") | ||
| 5786 | (synopsis "Estimation of per-position bias in high-throughput sequencing data") | ||
| 5787 | (description | ||
| 5788 | "This package implements a model of per-position sequencing bias in | ||
| 5789 | high-throughput sequencing data using a simple Bayesian network, the structure | ||
| 5790 | and parameters of which are trained on a set of aligned reads and a reference | ||
| 5791 | genome sequence.") | ||
| 5792 | (license license:lgpl3))) | ||
| 5793 | |||
| 5794 | (define-public r-reqon | ||
| 5795 | (package | ||
| 5796 | (name "r-reqon") | ||
| 5797 | (version "1.30.0") | ||
| 5798 | (source | ||
| 5799 | (origin | ||
| 5800 | (method url-fetch) | ||
| 5801 | (uri (bioconductor-uri "ReQON" version)) | ||
| 5802 | (sha256 | ||
| 5803 | (base32 | ||
| 5804 | "04bljr8vgb9z9800d9v8w7a4rvjkwq48zd8n5divq30zj9k2na7a")))) | ||
| 5805 | (properties `((upstream-name . "ReQON"))) | ||
| 5806 | (build-system r-build-system) | ||
| 5807 | (propagated-inputs | ||
| 5808 | `(("r-rjava" ,r-rjava) | ||
| 5809 | ("r-rsamtools" ,r-rsamtools) | ||
| 5810 | ("r-seqbias" ,r-seqbias))) | ||
| 5811 | (home-page "https://bioconductor.org/packages/ReQON/") | ||
| 5812 | (synopsis "Recalibrating quality of nucleotides") | ||
| 5813 | (description | ||
| 5814 | "This package provides an implementation of an algorithm for | ||
| 5815 | recalibrating the base quality scores for aligned sequencing data in BAM | ||
| 5816 | format.") | ||
| 5817 | (license license:gpl2))) | ||
| 5818 | |||
| 5819 | (define-public r-wavcluster | ||
| 5820 | (package | ||
| 5821 | (name "r-wavcluster") | ||
| 5822 | (version "2.18.0") | ||
| 5823 | (source | ||
| 5824 | (origin | ||
| 5825 | (method url-fetch) | ||
| 5826 | (uri (bioconductor-uri "wavClusteR" version)) | ||
| 5827 | (sha256 | ||
| 5828 | (base32 | ||
| 5829 | "02i53dskirzr9nls3dsmv7dqhvy3vikkpx7247zpy2qd9r5yvhy2")))) | ||
| 5830 | (properties `((upstream-name . "wavClusteR"))) | ||
| 5831 | (build-system r-build-system) | ||
| 5832 | (propagated-inputs | ||
| 5833 | `(("r-biocgenerics" ,r-biocgenerics) | ||
| 5834 | ("r-biostrings" ,r-biostrings) | ||
| 5835 | ("r-foreach" ,r-foreach) | ||
| 5836 | ("r-genomicfeatures" ,r-genomicfeatures) | ||
| 5837 | ("r-genomicranges" ,r-genomicranges) | ||
| 5838 | ("r-ggplot2" ,r-ggplot2) | ||
| 5839 | ("r-hmisc" ,r-hmisc) | ||
| 5840 | ("r-iranges" ,r-iranges) | ||
| 5841 | ("r-mclust" ,r-mclust) | ||
| 5842 | ("r-rsamtools" ,r-rsamtools) | ||
| 5843 | ("r-rtracklayer" ,r-rtracklayer) | ||
| 5844 | ("r-s4vectors" ,r-s4vectors) | ||
| 5845 | ("r-seqinr" ,r-seqinr) | ||
| 5846 | ("r-stringr" ,r-stringr) | ||
| 5847 | ("r-wmtsa" ,r-wmtsa))) | ||
| 5848 | (home-page "https://bioconductor.org/packages/wavClusteR/") | ||
| 5849 | (synopsis "Identification of RNA-protein interaction sites in PAR-CLIP data") | ||
| 5850 | (description | ||
| 5851 | "This package provides an integrated pipeline for the analysis of | ||
| 5852 | PAR-CLIP data. PAR-CLIP-induced transitions are first discriminated from | ||
| 5853 | sequencing errors, SNPs and additional non-experimental sources by a non- | ||
| 5854 | parametric mixture model. The protein binding sites (clusters) are then | ||
| 5855 | resolved at high resolution and cluster statistics are estimated using a | ||
| 5856 | rigorous Bayesian framework. Post-processing of the results, data export for | ||
| 5857 | UCSC genome browser visualization and motif search analysis are provided. In | ||
| 5858 | addition, the package allows to integrate RNA-Seq data to estimate the False | ||
| 5859 | Discovery Rate of cluster detection. Key functions support parallel multicore | ||
| 5860 | computing. While wavClusteR was designed for PAR-CLIP data analysis, it can | ||
| 5861 | be applied to the analysis of other NGS data obtained from experimental | ||
| 5862 | procedures that induce nucleotide substitutions (e.g. BisSeq).") | ||
| 5863 | (license license:gpl2))) | ||
| 5864 | |||
| 5865 | (define-public r-timeseriesexperiment | ||
| 5866 | (package | ||
| 5867 | (name "r-timeseriesexperiment") | ||
| 5868 | (version "1.2.0") | ||
| 5869 | (source | ||
| 5870 | (origin | ||
| 5871 | (method url-fetch) | ||
| 5872 | (uri (bioconductor-uri "TimeSeriesExperiment" version)) | ||
| 5873 | (sha256 | ||
| 5874 | (base32 | ||
| 5875 | "1j11g7a2p0yk38fx6wd6152l1xynghj01pfxihalw601jwf1bl0y")))) | ||
| 5876 | (properties | ||
| 5877 | `((upstream-name . "TimeSeriesExperiment"))) | ||
| 5878 | (build-system r-build-system) | ||
| 5879 | (propagated-inputs | ||
| 5880 | `(("r-deseq2" ,r-deseq2) | ||
| 5881 | ("r-dplyr" ,r-dplyr) | ||
| 5882 | ("r-dynamictreecut" ,r-dynamictreecut) | ||
| 5883 | ("r-edger" ,r-edger) | ||
| 5884 | ("r-ggplot2" ,r-ggplot2) | ||
| 5885 | ("r-hmisc" ,r-hmisc) | ||
| 5886 | ("r-limma" ,r-limma) | ||
| 5887 | ("r-magrittr" ,r-magrittr) | ||
| 5888 | ("r-proxy" ,r-proxy) | ||
| 5889 | ("r-s4vectors" ,r-s4vectors) | ||
| 5890 | ("r-summarizedexperiment" ,r-summarizedexperiment) | ||
| 5891 | ("r-tibble" ,r-tibble) | ||
| 5892 | ("r-tidyr" ,r-tidyr) | ||
| 5893 | ("r-vegan" ,r-vegan) | ||
| 5894 | ("r-viridis" ,r-viridis))) | ||
| 5895 | (home-page "https://github.com/nlhuong/TimeSeriesExperiment/") | ||
| 5896 | (synopsis "Analysis for short time-series data") | ||
| 5897 | (description | ||
| 5898 | "This package is a visualization and analysis toolbox for short time | ||
| 5899 | course data which includes dimensionality reduction, clustering, two-sample | ||
| 5900 | differential expression testing and gene ranking techniques. The package also | ||
| 5901 | provides methods for retrieving enriched pathways.") | ||
| 5902 | (license license:lgpl3+))) | ||
| 5903 | |||
| 5904 | (define-public r-variantfiltering | ||
| 5905 | (package | ||
| 5906 | (name "r-variantfiltering") | ||
| 5907 | (version "1.20.0") | ||
| 5908 | (source | ||
| 5909 | (origin | ||
| 5910 | (method url-fetch) | ||
| 5911 | (uri (bioconductor-uri "VariantFiltering" version)) | ||
| 5912 | (sha256 | ||
| 5913 | (base32 | ||
| 5914 | "0vpghxacqcbaxx2scb5gfhcmfpw1lkls7h6qnbwbnmjwy01q2p17")))) | ||
| 5915 | (properties | ||
| 5916 | `((upstream-name . "VariantFiltering"))) | ||
| 5917 | (build-system r-build-system) | ||
| 5918 | (propagated-inputs | ||
| 5919 | `(("r-annotationdbi" ,r-annotationdbi) | ||
| 5920 | ("r-biobase" ,r-biobase) | ||
| 5921 | ("r-biocgenerics" ,r-biocgenerics) | ||
| 5922 | ("r-biocparallel" ,r-biocparallel) | ||
| 5923 | ("r-biostrings" ,r-biostrings) | ||
| 5924 | ("r-bsgenome" ,r-bsgenome) | ||
| 5925 | ("r-dt" ,r-dt) | ||
| 5926 | ("r-genomeinfodb" ,r-genomeinfodb) | ||
| 5927 | ("r-genomicfeatures" ,r-genomicfeatures) | ||
| 5928 | ("r-genomicranges" ,r-genomicranges) | ||
| 5929 | ("r-genomicscores" ,r-genomicscores) | ||
| 5930 | ("r-graph" ,r-graph) | ||
| 5931 | ("r-gviz" ,r-gviz) | ||
| 5932 | ("r-iranges" ,r-iranges) | ||
| 5933 | ("r-rbgl" ,r-rbgl) | ||
| 5934 | ("r-rsamtools" ,r-rsamtools) | ||
| 5935 | ("r-s4vectors" ,r-s4vectors) | ||
| 5936 | ("r-shiny" ,r-shiny) | ||
| 5937 | ("r-shinyjs" ,r-shinyjs) | ||
| 5938 | ("r-shinythemes" ,r-shinythemes) | ||
| 5939 | ("r-shinytree" ,r-shinytree) | ||
| 5940 | ("r-summarizedexperiment" ,r-summarizedexperiment) | ||
| 5941 | ("r-variantannotation" ,r-variantannotation) | ||
| 5942 | ("r-xvector" ,r-xvector))) | ||
| 5943 | (home-page "https://github.com/rcastelo/VariantFiltering") | ||
| 5944 | (synopsis "Filtering of coding and non-coding genetic variants") | ||
| 5945 | (description | ||
| 5946 | "Filter genetic variants using different criteria such as inheritance | ||
| 5947 | model, amino acid change consequence, minor allele frequencies across human | ||
| 5948 | populations, splice site strength, conservation, etc.") | ||
| 5949 | (license license:artistic2.0))) | ||
| 5950 | |||
| 5951 | (define-public r-genomegraphs | ||
| 5952 | (package | ||
| 5953 | (name "r-genomegraphs") | ||
| 5954 | (version "1.44.0") | ||
| 5955 | (source | ||
| 5956 | (origin | ||
| 5957 | (method url-fetch) | ||
| 5958 | (uri (bioconductor-uri "GenomeGraphs" version)) | ||
| 5959 | (sha256 | ||
| 5960 | (base32 | ||
| 5961 | "026skcn2cqchlzaqsnk11gb8d8aq1rz7lrnx4mmsba234mh4j7kd")))) | ||
| 5962 | (properties `((upstream-name . "GenomeGraphs"))) | ||
| 5963 | (build-system r-build-system) | ||
| 5964 | (propagated-inputs | ||
| 5965 | `(("r-biomart" ,r-biomart))) | ||
| 5966 | (home-page "https://bioconductor.org/packages/GenomeGraphs/") | ||
| 5967 | (synopsis "Plotting genomic information from Ensembl") | ||
| 5968 | (description | ||
| 5969 | "Genomic data analyses requires integrated visualization of known genomic | ||
| 5970 | information and new experimental data. GenomeGraphs uses the biomaRt package | ||
| 5971 | to perform live annotation queries to Ensembl and translates this to e.g. | ||
| 5972 | gene/transcript structures in viewports of the grid graphics package. This | ||
| 5973 | results in genomic information plotted together with your data. Another | ||
| 5974 | strength of GenomeGraphs is to plot different data types such as array CGH, | ||
| 5975 | gene expression, sequencing and other data, together in one plot using the | ||
| 5976 | same genome coordinate system.") | ||
| 5977 | (license license:artistic2.0))) | ||
| 5978 | |||
| 5979 | (define-public r-wavetiling | ||
| 5980 | (package | ||
| 5981 | (name "r-wavetiling") | ||
| 5982 | (version "1.26.0") | ||
| 5983 | (source | ||
| 5984 | (origin | ||
| 5985 | (method url-fetch) | ||
| 5986 | (uri (bioconductor-uri "waveTiling" version)) | ||
| 5987 | (sha256 | ||
| 5988 | (base32 | ||
| 5989 | "0l0saa0myabpq2rl9dq70zff8jpxr3mkanxlj65hc41f0m5xllir")))) | ||
| 5990 | (properties `((upstream-name . "waveTiling"))) | ||
| 5991 | (build-system r-build-system) | ||
| 5992 | (propagated-inputs | ||
| 5993 | `(("r-affy" ,r-affy) | ||
| 5994 | ("r-biobase" ,r-biobase) | ||
| 5995 | ("r-biostrings" ,r-biostrings) | ||
| 5996 | ("r-genomegraphs" ,r-genomegraphs) | ||
| 5997 | ("r-genomicranges" ,r-genomicranges) | ||
| 5998 | ("r-iranges" ,r-iranges) | ||
| 5999 | ("r-oligo" ,r-oligo) | ||
| 6000 | ("r-oligoclasses" ,r-oligoclasses) | ||
| 6001 | ("r-preprocesscore" ,r-preprocesscore) | ||
| 6002 | ("r-waveslim" ,r-waveslim))) | ||
| 6003 | (home-page "https://r-forge.r-project.org/projects/wavetiling/") | ||
| 6004 | (synopsis "Wavelet-based models for tiling array transcriptome analysis") | ||
| 6005 | (description | ||
| 6006 | "This package is designed to conduct transcriptome analysis for tiling | ||
| 6007 | arrays based on fast wavelet-based functional models.") | ||
| 6008 | (license license:gpl2+))) | ||
| 6009 | |||
| 6010 | (define-public r-variancepartition | ||
| 6011 | (package | ||
| 6012 | (name "r-variancepartition") | ||
| 6013 | (version "1.14.0") | ||
| 6014 | (source | ||
| 6015 | (origin | ||
| 6016 | (method url-fetch) | ||
| 6017 | (uri (bioconductor-uri "variancePartition" version)) | ||
| 6018 | (sha256 | ||
| 6019 | (base32 | ||
| 6020 | "1ycapwb2mq57xibrzzjz9zwxqz4nwz9f3n5gskhlr5vcs7irkjd6")))) | ||
| 6021 | (properties | ||
| 6022 | `((upstream-name . "variancePartition"))) | ||
| 6023 | (build-system r-build-system) | ||
| 6024 | (propagated-inputs | ||
| 6025 | `(("r-biobase" ,r-biobase) | ||
| 6026 | ("r-colorramps" ,r-colorramps) | ||
| 6027 | ("r-doparallel" ,r-doparallel) | ||
| 6028 | ("r-foreach" ,r-foreach) | ||
| 6029 | ("r-ggplot2" ,r-ggplot2) | ||
| 6030 | ("r-gplots" ,r-gplots) | ||
| 6031 | ("r-iterators" ,r-iterators) | ||
| 6032 | ("r-limma" ,r-limma) | ||
| 6033 | ("r-lme4" ,r-lme4) | ||
| 6034 | ("r-lmertest" ,r-lmertest) | ||
| 6035 | ("r-mass" ,r-mass) | ||
| 6036 | ("r-pbkrtest" ,r-pbkrtest) | ||
| 6037 | ("r-progress" ,r-progress) | ||
| 6038 | ("r-reshape2" ,r-reshape2) | ||
| 6039 | ("r-scales" ,r-scales))) | ||
| 6040 | (home-page "https://bioconductor.org/packages/variancePartition/") | ||
| 6041 | (synopsis "Analyze variation in gene expression experiments") | ||
| 6042 | (description | ||
| 6043 | "This is a package providing tools to quantify and interpret multiple | ||
| 6044 | sources of biological and technical variation in gene expression experiments. | ||
| 6045 | It uses a linear mixed model to quantify variation in gene expression | ||
| 6046 | attributable to individual, tissue, time point, or technical variables. The | ||
| 6047 | package includes dream differential expression analysis for repeated | ||
| 6048 | measures.") | ||
| 6049 | (license license:gpl2+))) | ||
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index e158bd3af76..34289501fc7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm | |||
| @@ -7340,13 +7340,13 @@ checks on R packages that are to be submitted to the Bioconductor repository.") | |||
| 7340 | (define-public r-s4vectors | 7340 | (define-public r-s4vectors |
| 7341 | (package | 7341 | (package |
| 7342 | (name "r-s4vectors") | 7342 | (name "r-s4vectors") |
| 7343 | (version "0.22.0") | 7343 | (version "0.22.1") |
| 7344 | (source (origin | 7344 | (source (origin |
| 7345 | (method url-fetch) | 7345 | (method url-fetch) |
| 7346 | (uri (bioconductor-uri "S4Vectors" version)) | 7346 | (uri (bioconductor-uri "S4Vectors" version)) |
| 7347 | (sha256 | 7347 | (sha256 |
| 7348 | (base32 | 7348 | (base32 |
| 7349 | "1wkqmpy0d0fab9bjfc7i5wh2zng75pg9rn9c1z1lkki7fpwaw2jb")))) | 7349 | "0cpxqb18wd3pjd7bi8lry13sm5ffqahcvvxpk5pwm5xcj30cdlm9")))) |
| 7350 | (properties | 7350 | (properties |
| 7351 | `((upstream-name . "S4Vectors"))) | 7351 | `((upstream-name . "S4Vectors"))) |
| 7352 | (build-system r-build-system) | 7352 | (build-system r-build-system) |
| @@ -7447,13 +7447,13 @@ names in their natural, rather than lexicographic, order.") | |||
| 7447 | (define-public r-edger | 7447 | (define-public r-edger |
| 7448 | (package | 7448 | (package |
| 7449 | (name "r-edger") | 7449 | (name "r-edger") |
| 7450 | (version "3.26.7") | 7450 | (version "3.26.8") |
| 7451 | (source (origin | 7451 | (source (origin |
| 7452 | (method url-fetch) | 7452 | (method url-fetch) |
| 7453 | (uri (bioconductor-uri "edgeR" version)) | 7453 | (uri (bioconductor-uri "edgeR" version)) |
| 7454 | (sha256 | 7454 | (sha256 |
| 7455 | (base32 | 7455 | (base32 |
| 7456 | "1xbhb8aa1ygm5crkp1bmqs2x1601ppa2kgc2xlf2zh8jj8zqapg8")))) | 7456 | "1wwimzviy2vklp80faz7sbbp74qcw2csbmlfgvzj7b785vwarpwg")))) |
| 7457 | (properties `((upstream-name . "edgeR"))) | 7457 | (properties `((upstream-name . "edgeR"))) |
| 7458 | (build-system r-build-system) | 7458 | (build-system r-build-system) |
| 7459 | (propagated-inputs | 7459 | (propagated-inputs |
| @@ -7569,13 +7569,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.") | |||
| 7569 | (define-public r-genomicranges | 7569 | (define-public r-genomicranges |
| 7570 | (package | 7570 | (package |
| 7571 | (name "r-genomicranges") | 7571 | (name "r-genomicranges") |
| 7572 | (version "1.36.0") | 7572 | (version "1.36.1") |
| 7573 | (source (origin | 7573 | (source (origin |
| 7574 | (method url-fetch) | 7574 | (method url-fetch) |
| 7575 | (uri (bioconductor-uri "GenomicRanges" version)) | 7575 | (uri (bioconductor-uri "GenomicRanges" version)) |
| 7576 | (sha256 | 7576 | (sha256 |
| 7577 | (base32 | 7577 | (base32 |
| 7578 | "1285fr8qjd7d0ixpv7d5imi0n6wzc4k6yia1rkmig71qd2gg556k")))) | 7578 | "1yid84gn0052v52h84685lvk854grl1wl65psmlmxx9yyykgc0jn")))) |
| 7579 | (properties | 7579 | (properties |
| 7580 | `((upstream-name . "GenomicRanges"))) | 7580 | `((upstream-name . "GenomicRanges"))) |
| 7581 | (build-system r-build-system) | 7581 | (build-system r-build-system) |
| @@ -7872,13 +7872,13 @@ alignments.") | |||
| 7872 | (define-public r-rtracklayer | 7872 | (define-public r-rtracklayer |
| 7873 | (package | 7873 | (package |
| 7874 | (name "r-rtracklayer") | 7874 | (name "r-rtracklayer") |
| 7875 | (version "1.44.3") | 7875 | (version "1.44.4") |
| 7876 | (source (origin | 7876 | (source (origin |
| 7877 | (method url-fetch) | 7877 | (method url-fetch) |
| 7878 | (uri (bioconductor-uri "rtracklayer" version)) | 7878 | (uri (bioconductor-uri "rtracklayer" version)) |
| 7879 | (sha256 | 7879 | (sha256 |
| 7880 | (base32 | 7880 | (base32 |
| 7881 | "091zydz1zpz519ha0jkbvzrhxjvw5r2963qz9grmvl2jd8girvcg")))) | 7881 | "0dnifr58j2si2qbnvap2wslz3xgjv3h4l7a6v7nmmc57hq6kdbym")))) |
| 7882 | (build-system r-build-system) | 7882 | (build-system r-build-system) |
| 7883 | (arguments | 7883 | (arguments |
| 7884 | `(#:phases | 7884 | `(#:phases |
| @@ -9628,14 +9628,14 @@ Shiny-based display methods for Bioconductor objects.") | |||
| 9628 | (define-public r-annotationhub | 9628 | (define-public r-annotationhub |
| 9629 | (package | 9629 | (package |
| 9630 | (name "r-annotationhub") | 9630 | (name "r-annotationhub") |
| 9631 | (version "2.16.0") | 9631 | (version "2.16.1") |
| 9632 | (source | 9632 | (source |
| 9633 | (origin | 9633 | (origin |
| 9634 | (method url-fetch) | 9634 | (method url-fetch) |
| 9635 | (uri (bioconductor-uri "AnnotationHub" version)) | 9635 | (uri (bioconductor-uri "AnnotationHub" version)) |
| 9636 | (sha256 | 9636 | (sha256 |
| 9637 | (base32 | 9637 | (base32 |
| 9638 | "1rpzl4x5mrwxrrf1jzm4zni6li6x34fjfyybsdvplb0ixa48zhn4")))) | 9638 | "0c773cmhng907839f0bq161jky7362lxxny36ac55qxiz1giqi8j")))) |
| 9639 | (properties `((upstream-name . "AnnotationHub"))) | 9639 | (properties `((upstream-name . "AnnotationHub"))) |
| 9640 | (build-system r-build-system) | 9640 | (build-system r-build-system) |
| 9641 | (propagated-inputs | 9641 | (propagated-inputs |
| @@ -10023,14 +10023,14 @@ interval to data view, mismatch pileup, and several splicing summaries.") | |||
| 10023 | (define-public r-gprofiler | 10023 | (define-public r-gprofiler |
| 10024 | (package | 10024 | (package |
| 10025 | (name "r-gprofiler") | 10025 | (name "r-gprofiler") |
| 10026 | (version "0.6.7") | 10026 | (version "0.6.8") |
| 10027 | (source | 10027 | (source |
| 10028 | (origin | 10028 | (origin |
| 10029 | (method url-fetch) | 10029 | (method url-fetch) |
| 10030 | (uri (cran-uri "gProfileR" version)) | 10030 | (uri (cran-uri "gProfileR" version)) |
| 10031 | (sha256 | 10031 | (sha256 |
| 10032 | (base32 | 10032 | (base32 |
| 10033 | "12nwidbnqmnfy5dnqga26byslvdnkrpz2fi19qfcby6xx0wbndk7")))) | 10033 | "05d6y6b7vkkzp2qhs1cwlvp02djij1b28dbwxnrms08f8qi35iaj")))) |
| 10034 | (properties `((upstream-name . "gProfileR"))) | 10034 | (properties `((upstream-name . "gProfileR"))) |
| 10035 | (build-system r-build-system) | 10035 | (build-system r-build-system) |
| 10036 | (propagated-inputs | 10036 | (propagated-inputs |
| @@ -10448,14 +10448,14 @@ block processing.") | |||
| 10448 | (define-public r-rhdf5lib | 10448 | (define-public r-rhdf5lib |
| 10449 | (package | 10449 | (package |
| 10450 | (name "r-rhdf5lib") | 10450 | (name "r-rhdf5lib") |
| 10451 | (version "1.6.0") | 10451 | (version "1.6.1") |
| 10452 | (source | 10452 | (source |
| 10453 | (origin | 10453 | (origin |
| 10454 | (method url-fetch) | 10454 | (method url-fetch) |
| 10455 | (uri (bioconductor-uri "Rhdf5lib" version)) | 10455 | (uri (bioconductor-uri "Rhdf5lib" version)) |
| 10456 | (sha256 | 10456 | (sha256 |
| 10457 | (base32 | 10457 | (base32 |
| 10458 | "1lpmyxlwwcy92hyxqag321ssc5z6yw3a0ws9r058jwgzyjg7i2gm")) | 10458 | "0niz9dh66fcwbvqpkpsdlz9d06kwi3kfh45dhk3qz9g9qqyiakr1")) |
| 10459 | (modules '((guix build utils))) | 10459 | (modules '((guix build utils))) |
| 10460 | (snippet | 10460 | (snippet |
| 10461 | '(begin | 10461 | '(begin |
| @@ -10644,14 +10644,14 @@ variable and significantly correlated genes.") | |||
| 10644 | (define-public r-delayedmatrixstats | 10644 | (define-public r-delayedmatrixstats |
| 10645 | (package | 10645 | (package |
| 10646 | (name "r-delayedmatrixstats") | 10646 | (name "r-delayedmatrixstats") |
| 10647 | (version "1.6.0") | 10647 | (version "1.6.1") |
| 10648 | (source | 10648 | (source |
| 10649 | (origin | 10649 | (origin |
| 10650 | (method url-fetch) | 10650 | (method url-fetch) |
| 10651 | (uri (bioconductor-uri "DelayedMatrixStats" version)) | 10651 | (uri (bioconductor-uri "DelayedMatrixStats" version)) |
| 10652 | (sha256 | 10652 | (sha256 |
| 10653 | (base32 | 10653 | (base32 |
| 10654 | "0632ypndblrgzfk8k98rr8c6m2r0zwzf02pzvlrhcp9bj1pvqbrz")))) | 10654 | "1riyzfsq4bd513hidkw3cfkx3jywk3x87j89q70v459xsdfdc95b")))) |
| 10655 | (properties | 10655 | (properties |
| 10656 | `((upstream-name . "DelayedMatrixStats"))) | 10656 | `((upstream-name . "DelayedMatrixStats"))) |
| 10657 | (build-system r-build-system) | 10657 | (build-system r-build-system) |
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 67ea968e434..dab0bd39c3c 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm | |||
| @@ -2234,7 +2234,7 @@ provides a simple way to achieve this.") | |||
| 2234 | (define-public umockdev | 2234 | (define-public umockdev |
| 2235 | (package | 2235 | (package |
| 2236 | (name "umockdev") | 2236 | (name "umockdev") |
| 2237 | (version "0.12.1") | 2237 | (version "0.13.2") |
| 2238 | (source (origin | 2238 | (source (origin |
| 2239 | (method url-fetch) | 2239 | (method url-fetch) |
| 2240 | (uri (string-append "https://github.com/martinpitt/umockdev/" | 2240 | (uri (string-append "https://github.com/martinpitt/umockdev/" |
| @@ -2242,7 +2242,7 @@ provides a simple way to achieve this.") | |||
| 2242 | "umockdev-" version ".tar.xz")) | 2242 | "umockdev-" version ".tar.xz")) |
| 2243 | (sha256 | 2243 | (sha256 |
| 2244 | (base32 | 2244 | (base32 |
| 2245 | "1hx5jm9afng6hw9wyp524z8nwdp6w053pca0w2c0gqpgrmvjxvd2")))) | 2245 | "095v3abc321s584sga04y16lcmdzsdi88h24wcrm78v7vq484g74")))) |
| 2246 | (build-system gnu-build-system) | 2246 | (build-system gnu-build-system) |
| 2247 | (arguments | 2247 | (arguments |
| 2248 | `(#:phases | 2248 | `(#:phases |
| @@ -2255,10 +2255,12 @@ provides a simple way to achieve this.") | |||
| 2255 | #t))))) | 2255 | #t))))) |
| 2256 | (native-inputs | 2256 | (native-inputs |
| 2257 | `(("vala" ,vala) | 2257 | `(("vala" ,vala) |
| 2258 | ("python" ,python) ; for tests | ||
| 2259 | ("which" ,which) ; for tests | ||
| 2260 | ("gtk-doc" ,gtk-doc) | 2258 | ("gtk-doc" ,gtk-doc) |
| 2261 | ("pkg-config" ,pkg-config))) | 2259 | ("pkg-config" ,pkg-config) |
| 2260 | |||
| 2261 | ;; For tests. | ||
| 2262 | ("python" ,python) | ||
| 2263 | ("which" ,which))) | ||
| 2262 | (inputs | 2264 | (inputs |
| 2263 | `(("glib" ,glib) | 2265 | `(("glib" ,glib) |
| 2264 | ("eudev" ,eudev) | 2266 | ("eudev" ,eudev) |
diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm index 3608d67bed6..8b99a213562 100644 --- a/gnu/packages/cluster.scm +++ b/gnu/packages/cluster.scm | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> | 2 | ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> |
| 3 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 3 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 4 | ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw> | ||
| 4 | ;;; | 5 | ;;; |
| 5 | ;;; This file is part of GNU Guix. | 6 | ;;; This file is part of GNU Guix. |
| 6 | ;;; | 7 | ;;; |
| @@ -21,7 +22,10 @@ | |||
| 21 | #:use-module ((guix licenses) #:prefix license:) | 22 | #:use-module ((guix licenses) #:prefix license:) |
| 22 | #:use-module (guix build-system gnu) | 23 | #:use-module (guix build-system gnu) |
| 23 | #:use-module (guix download) | 24 | #:use-module (guix download) |
| 25 | #:use-module (guix git-download) | ||
| 24 | #:use-module (guix packages) | 26 | #:use-module (guix packages) |
| 27 | #:use-module (gnu packages autotools) | ||
| 28 | #:use-module (gnu packages gettext) | ||
| 25 | #:use-module (gnu packages linux) | 29 | #:use-module (gnu packages linux) |
| 26 | #:use-module (gnu packages pkg-config) | 30 | #:use-module (gnu packages pkg-config) |
| 27 | #:use-module (gnu packages sphinx) | 31 | #:use-module (gnu packages sphinx) |
| @@ -79,3 +83,34 @@ Server (@dfn{IPVS}) kernel module. High availability is achieved by the Virtual | |||
| 79 | Redundancy Routing Protocol (@dfn{VRRP}). Each Keepalived framework can be used | 83 | Redundancy Routing Protocol (@dfn{VRRP}). Each Keepalived framework can be used |
| 80 | independently or together to provide resilient infrastructures.") | 84 | independently or together to provide resilient infrastructures.") |
| 81 | (license license:gpl2+))) | 85 | (license license:gpl2+))) |
| 86 | |||
| 87 | (define-public libraft | ||
| 88 | (package | ||
| 89 | (name "libraft") | ||
| 90 | (version "0.9.5") | ||
| 91 | (home-page "https://github.com/canonical/raft") | ||
| 92 | (source (origin | ||
| 93 | (method git-fetch) | ||
| 94 | (uri (git-reference (url home-page) | ||
| 95 | (commit (string-append "v" version)))) | ||
| 96 | (file-name (git-file-name name version)) | ||
| 97 | (sha256 | ||
| 98 | (base32 | ||
| 99 | "1q49f5mmv6nr6dxhnp044xwc6jlczgh0nj0bl6718wiqh28411x0")))) | ||
| 100 | (arguments '(#:configure-flags '("--disable-uv"))) | ||
| 101 | ;; The uv plugin tests fail, if libuv (or the example) is enabled, | ||
| 102 | ;; because setting up the environment requires too much privileges. | ||
| 103 | (native-inputs | ||
| 104 | `(("autoconf" ,autoconf) | ||
| 105 | ("automake" ,automake) | ||
| 106 | ("gettext" ,gettext-minimal) | ||
| 107 | ("libtool" ,libtool) | ||
| 108 | ("pkg-config" ,pkg-config))) | ||
| 109 | (build-system gnu-build-system) | ||
| 110 | (synopsis "C implementation of the Raft consensus protocol") | ||
| 111 | (description "The library has modular design: its core part implements only | ||
| 112 | the core Raft algorithm logic, in a fully platform independent way. On top of | ||
| 113 | that, a pluggable interface defines the I/O implementation for networking | ||
| 114 | (send/receive RPC messages) and disk persistence (store log entries and | ||
| 115 | snapshots).") | ||
| 116 | (license license:asl2.0))) | ||
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 1d8d829ec52..64349be4442 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm | |||
| @@ -207,6 +207,18 @@ and workspaces that can be used in the compiler environment of your choice.") | |||
| 207 | (outputs '("out" "doc")) | 207 | (outputs '("out" "doc")) |
| 208 | (properties (alist-delete 'hidden? (package-properties cmake-minimal))))) | 208 | (properties (alist-delete 'hidden? (package-properties cmake-minimal))))) |
| 209 | 209 | ||
| 210 | (define-public cmake/fixed | ||
| 211 | ;; This is a variant of CMake that fixes X.509 certificate lookup: | ||
| 212 | ;; <https://issues.guix.gnu.org/issue/37371>. | ||
| 213 | (package | ||
| 214 | (inherit cmake) | ||
| 215 | (version (string-append (package-version cmake) "-1")) | ||
| 216 | (source (origin | ||
| 217 | (inherit (package-source cmake)) | ||
| 218 | (patches | ||
| 219 | (append (search-patches "cmake-curl-certificates.patch") | ||
| 220 | (origin-patches (package-source cmake)))))))) | ||
| 221 | |||
| 210 | (define-public emacs-cmake-mode | 222 | (define-public emacs-cmake-mode |
| 211 | (package | 223 | (package |
| 212 | (inherit cmake) | 224 | (inherit cmake) |
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 5bf37e39005..cb0be4aedd8 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> | 15 | ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> |
| 16 | ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net> | 16 | ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net> |
| 17 | ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com> | 17 | ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com> |
| 18 | ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> | ||
| 18 | ;;; | 19 | ;;; |
| 19 | ;;; This file is part of GNU Guix. | 20 | ;;; This file is part of GNU Guix. |
| 20 | ;;; | 21 | ;;; |
| @@ -447,13 +448,13 @@ into a pipeline of data manipulation and visualisation.") | |||
| 447 | (define-public r-httpuv | 448 | (define-public r-httpuv |
| 448 | (package | 449 | (package |
| 449 | (name "r-httpuv") | 450 | (name "r-httpuv") |
| 450 | (version "1.5.1") | 451 | (version "1.5.2") |
| 451 | (source (origin | 452 | (source (origin |
| 452 | (method url-fetch) | 453 | (method url-fetch) |
| 453 | (uri (cran-uri "httpuv" version)) | 454 | (uri (cran-uri "httpuv" version)) |
| 454 | (sha256 | 455 | (sha256 |
| 455 | (base32 | 456 | (base32 |
| 456 | "042piypg4c8sqrlcdl3dwajkafkbglsky3x7d0jpjv8s5wxnpfxm")))) | 457 | "13ax0hs2lc39ilznh1zarwqdzahcbhb8adilrfik3xg0fkljpcwk")))) |
| 457 | (build-system r-build-system) | 458 | (build-system r-build-system) |
| 458 | (propagated-inputs | 459 | (propagated-inputs |
| 459 | `(("r-bh" ,r-bh) | 460 | `(("r-bh" ,r-bh) |
| @@ -796,6 +797,84 @@ extensive prebuilt widgets make it possible to build beautiful, | |||
| 796 | responsive, and powerful applications with minimal effort.") | 797 | responsive, and powerful applications with minimal effort.") |
| 797 | (license license:artistic2.0))) | 798 | (license license:artistic2.0))) |
| 798 | 799 | ||
| 800 | ;; This package includes minified JavaScript files. When upgrading please | ||
| 801 | ;; check that there are no new minified JavaScript files. | ||
| 802 | (define-public r-shinytree | ||
| 803 | (package | ||
| 804 | (name "r-shinytree") | ||
| 805 | (version "0.2.7") | ||
| 806 | (source | ||
| 807 | (origin | ||
| 808 | (method url-fetch) | ||
| 809 | (uri (cran-uri "shinyTree" version)) | ||
| 810 | (sha256 | ||
| 811 | (base32 | ||
| 812 | "0jfx2capckv7hf2yx3fn8i4rcmhi222ah91jnmhg497x8wgz31s3")) | ||
| 813 | (modules '((guix build utils))) | ||
| 814 | (snippet | ||
| 815 | '(begin | ||
| 816 | ;; Delete minified JavaScript | ||
| 817 | (for-each delete-file | ||
| 818 | '("inst/www/jsTree-3.3.7/libs/require.js" | ||
| 819 | "inst/www/jsTree-3.3.7/libs/jquery.js" | ||
| 820 | "inst/www/jsTree-3.3.7/jstree.min.js")) | ||
| 821 | #t)))) | ||
| 822 | (properties `((upstream-name . "shinyTree"))) | ||
| 823 | (build-system r-build-system) | ||
| 824 | (arguments | ||
| 825 | `(#:modules ((guix build utils) | ||
| 826 | (guix build r-build-system) | ||
| 827 | (srfi srfi-1) | ||
| 828 | (ice-9 popen)) | ||
| 829 | #:phases | ||
| 830 | (modify-phases %standard-phases | ||
| 831 | (add-after 'unpack 'replace-minified-javascript | ||
| 832 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 833 | (with-directory-excursion "inst/www/jsTree-3.3.7/" | ||
| 834 | (symlink (string-append (assoc-ref inputs "js-requirejs") | ||
| 835 | "/share/javascript/require.min.js") | ||
| 836 | "libs/require.js") | ||
| 837 | (call-with-values | ||
| 838 | (lambda () | ||
| 839 | (unzip2 | ||
| 840 | `((,(assoc-ref inputs "js-jquery") | ||
| 841 | "libs/jquery.js") | ||
| 842 | ("jstree.js" | ||
| 843 | "jstree.min.js")))) | ||
| 844 | (lambda (sources targets) | ||
| 845 | (for-each (lambda (source target) | ||
| 846 | (format #t "Processing ~a --> ~a~%" | ||
| 847 | source target) | ||
| 848 | (let ((minified (open-pipe* OPEN_READ "uglify-js" source))) | ||
| 849 | (call-with-output-file target | ||
| 850 | (lambda (port) | ||
| 851 | (dump-port minified port))))) | ||
| 852 | sources targets)))) | ||
| 853 | #t))))) | ||
| 854 | (propagated-inputs | ||
| 855 | `(("r-htmlwidgets" ,r-htmlwidgets) | ||
| 856 | ("r-jsonlite" ,r-jsonlite) | ||
| 857 | ("r-promises" ,r-promises) | ||
| 858 | ("r-shiny" ,r-shiny) | ||
| 859 | ("r-stringr" ,r-stringr))) | ||
| 860 | (inputs | ||
| 861 | `(("js-requirejs" ,js-requirejs))) | ||
| 862 | (native-inputs | ||
| 863 | `(("uglify-js" ,uglify-js) | ||
| 864 | ("js-jquery" | ||
| 865 | ,(origin | ||
| 866 | (method url-fetch) | ||
| 867 | (uri "https://code.jquery.com/jquery-3.3.1.js") | ||
| 868 | (sha256 | ||
| 869 | (base32 | ||
| 870 | "1b8zxrp6xwzpw25apn8j4qws0f6sr7qr7h2va5h1mjyfqvn29anq")))))) | ||
| 871 | (home-page "https://cran.r-project.org/web/packages/shinyTree/") | ||
| 872 | (synopsis "jsTree bindings for Shiny") | ||
| 873 | (description | ||
| 874 | "This package exposes R bindings to jsTree, a JavaScript library that | ||
| 875 | supports interactive trees, to enable rich, editable trees in Shiny.") | ||
| 876 | (license license:expat))) | ||
| 877 | |||
| 799 | (define-public r-shinydashboard | 878 | (define-public r-shinydashboard |
| 800 | (package | 879 | (package |
| 801 | (name "r-shinydashboard") | 880 | (name "r-shinydashboard") |
| @@ -867,6 +946,31 @@ this gives the user direct access to the file system without the need to | |||
| 867 | well as file saving is available.") | 946 | well as file saving is available.") |
| 868 | (license license:gpl2+))) | 947 | (license license:gpl2+))) |
| 869 | 948 | ||
| 949 | (define-public r-shinythemes | ||
| 950 | (package | ||
| 951 | (name "r-shinythemes") | ||
| 952 | (version "1.1.2") | ||
| 953 | (source | ||
| 954 | (origin | ||
| 955 | (method url-fetch) | ||
| 956 | (uri (cran-uri "shinythemes" version)) | ||
| 957 | (sha256 | ||
| 958 | (base32 | ||
| 959 | "12miz44n2zxfswnia7p8dirxj3miw0aqn4pkx2111ikz67ax84rf")))) | ||
| 960 | (properties `((upstream-name . "shinythemes"))) | ||
| 961 | (build-system r-build-system) | ||
| 962 | (propagated-inputs `(("r-shiny" ,r-shiny))) | ||
| 963 | (home-page "http://rstudio.github.io/shinythemes/") | ||
| 964 | (synopsis "Themes for Shiny") | ||
| 965 | (description | ||
| 966 | "This package provides themes for use with Shiny. It includes several | ||
| 967 | Bootstrap themes, which are packaged for use with Shiny applications.") | ||
| 968 | ;; The package is released under version 3 of the GPL, but it includes | ||
| 969 | ;; source files that are covered by the Expat license. It also includes | ||
| 970 | ;; fonts under SIL or the ASL. | ||
| 971 | (license (list license:gpl3 license:expat | ||
| 972 | license:silofl1.1 license:asl2.0)))) | ||
| 973 | |||
| 870 | ;; The package sources include minified variants of d3.js and non-minified | 974 | ;; The package sources include minified variants of d3.js and non-minified |
| 871 | ;; source code of d3-jetpack. | 975 | ;; source code of d3-jetpack. |
| 872 | (define-public r-d3r | 976 | (define-public r-d3r |
| @@ -1059,14 +1163,14 @@ work well on small screens.") | |||
| 1059 | (define-public r-feather | 1163 | (define-public r-feather |
| 1060 | (package | 1164 | (package |
| 1061 | (name "r-feather") | 1165 | (name "r-feather") |
| 1062 | (version "0.3.3") | 1166 | (version "0.3.5") |
| 1063 | (source | 1167 | (source |
| 1064 | (origin | 1168 | (origin |
| 1065 | (method url-fetch) | 1169 | (method url-fetch) |
| 1066 | (uri (cran-uri "feather" version)) | 1170 | (uri (cran-uri "feather" version)) |
| 1067 | (sha256 | 1171 | (sha256 |
| 1068 | (base32 | 1172 | (base32 |
| 1069 | "0ls8lmygyjq60467s88h66d7fczjp1d3a2106rfq4dx9lyfvdfsa")))) | 1173 | "1gxd0h2m56sjjlzn4dry6s13nddxc4l5i11gsvavaf2dwbahdzsh")))) |
| 1070 | (build-system r-build-system) | 1174 | (build-system r-build-system) |
| 1071 | (propagated-inputs | 1175 | (propagated-inputs |
| 1072 | `(("r-hms" ,r-hms) | 1176 | `(("r-hms" ,r-hms) |
| @@ -1649,14 +1753,14 @@ validation and filtering on the values, making options invisible or private.") | |||
| 1649 | (define-public r-circlize | 1753 | (define-public r-circlize |
| 1650 | (package | 1754 | (package |
| 1651 | (name "r-circlize") | 1755 | (name "r-circlize") |
| 1652 | (version "0.4.7") | 1756 | (version "0.4.8") |
| 1653 | (source | 1757 | (source |
| 1654 | (origin | 1758 | (origin |
| 1655 | (method url-fetch) | 1759 | (method url-fetch) |
| 1656 | (uri (cran-uri "circlize" version)) | 1760 | (uri (cran-uri "circlize" version)) |
| 1657 | (sha256 | 1761 | (sha256 |
| 1658 | (base32 | 1762 | (base32 |
| 1659 | "07y1bchkslpz2wl43yg5j5h1nl9z0i425a07jdmfd5avrynd8p3m")))) | 1763 | "0jvr9hmxyhg0zx101iiqkrg8wfaj86kp62xpv42n2j9fkn5r1mi2")))) |
| 1660 | (build-system r-build-system) | 1764 | (build-system r-build-system) |
| 1661 | (propagated-inputs | 1765 | (propagated-inputs |
| 1662 | `(("r-colorspace" ,r-colorspace) | 1766 | `(("r-colorspace" ,r-colorspace) |
| @@ -2663,14 +2767,14 @@ Optimization problems by using the simplex algorithm.") | |||
| 2663 | (define-public r-geometry | 2767 | (define-public r-geometry |
| 2664 | (package | 2768 | (package |
| 2665 | (name "r-geometry") | 2769 | (name "r-geometry") |
| 2666 | (version "0.4.3") | 2770 | (version "0.4.4") |
| 2667 | (source | 2771 | (source |
| 2668 | (origin | 2772 | (origin |
| 2669 | (method url-fetch) | 2773 | (method url-fetch) |
| 2670 | (uri (cran-uri "geometry" version)) | 2774 | (uri (cran-uri "geometry" version)) |
| 2671 | (sha256 | 2775 | (sha256 |
| 2672 | (base32 | 2776 | (base32 |
| 2673 | "0z4491mhfmrlbb8lazjvq55alrprx7k0abg2d39fj0lsj84cls1r")))) | 2777 | "1mx5n5mw63nij4n6crs9165mlls4fnh1ipw5ch467rjsidgl0mg8")))) |
| 2674 | (build-system r-build-system) | 2778 | (build-system r-build-system) |
| 2675 | (propagated-inputs | 2779 | (propagated-inputs |
| 2676 | `(("r-magic" ,r-magic) | 2780 | `(("r-magic" ,r-magic) |
| @@ -5569,14 +5673,14 @@ and adds the annotation to the plot.") | |||
| 5569 | (define-public r-ggpubr | 5673 | (define-public r-ggpubr |
| 5570 | (package | 5674 | (package |
| 5571 | (name "r-ggpubr") | 5675 | (name "r-ggpubr") |
| 5572 | (version "0.2.2") | 5676 | (version "0.2.3") |
| 5573 | (source | 5677 | (source |
| 5574 | (origin | 5678 | (origin |
| 5575 | (method url-fetch) | 5679 | (method url-fetch) |
| 5576 | (uri (cran-uri "ggpubr" version)) | 5680 | (uri (cran-uri "ggpubr" version)) |
| 5577 | (sha256 | 5681 | (sha256 |
| 5578 | (base32 | 5682 | (base32 |
| 5579 | "0r5knv3707pmpngmj60zn761y3bh8lj89dhh1b80ss083xnxr4qw")))) | 5683 | "0i81mmz4qn9yzcgfa6dhkcrx4ddlflkm2c3b40isc8all43rm8rn")))) |
| 5580 | (build-system r-build-system) | 5684 | (build-system r-build-system) |
| 5581 | (propagated-inputs | 5685 | (propagated-inputs |
| 5582 | `(("r-cowplot" ,r-cowplot) | 5686 | `(("r-cowplot" ,r-cowplot) |
| @@ -6091,14 +6195,14 @@ other add-on packages.") | |||
| 6091 | (define-public r-insight | 6195 | (define-public r-insight |
| 6092 | (package | 6196 | (package |
| 6093 | (name "r-insight") | 6197 | (name "r-insight") |
| 6094 | (version "0.4.1") | 6198 | (version "0.5.0") |
| 6095 | (source | 6199 | (source |
| 6096 | (origin | 6200 | (origin |
| 6097 | (method url-fetch) | 6201 | (method url-fetch) |
| 6098 | (uri (cran-uri "insight" version)) | 6202 | (uri (cran-uri "insight" version)) |
| 6099 | (sha256 | 6203 | (sha256 |
| 6100 | (base32 | 6204 | (base32 |
| 6101 | "1lw1r3mb97z5p9z25jfzlhs0sbnwp6v8kzysf0am01x4m7l3iz82")))) | 6205 | "0lrh2l9n2zd9n3zzknsxz6nlasnrayx3bplxlz7m616g56gr5nfp")))) |
| 6102 | (build-system r-build-system) | 6206 | (build-system r-build-system) |
| 6103 | (home-page "https://easystats.github.io/insight/") | 6207 | (home-page "https://easystats.github.io/insight/") |
| 6104 | (synopsis "Easy access to model information for various model objects") | 6208 | (synopsis "Easy access to model information for various model objects") |
| @@ -6117,14 +6221,14 @@ information are missing.") | |||
| 6117 | (define-public r-sjlabelled | 6221 | (define-public r-sjlabelled |
| 6118 | (package | 6222 | (package |
| 6119 | (name "r-sjlabelled") | 6223 | (name "r-sjlabelled") |
| 6120 | (version "1.1.0") | 6224 | (version "1.1.1") |
| 6121 | (source | 6225 | (source |
| 6122 | (origin | 6226 | (origin |
| 6123 | (method url-fetch) | 6227 | (method url-fetch) |
| 6124 | (uri (cran-uri "sjlabelled" version)) | 6228 | (uri (cran-uri "sjlabelled" version)) |
| 6125 | (sha256 | 6229 | (sha256 |
| 6126 | (base32 | 6230 | (base32 |
| 6127 | "0rnmlwpp41h04dzfjd5ncvzjzs43slaimb4v2in1axznv3haafyc")))) | 6231 | "0c9wy0gsr2sbkrv2638xbi7qm0gl6jyr6sfricavhkm7l4hljjkz")))) |
| 6128 | (build-system r-build-system) | 6232 | (build-system r-build-system) |
| 6129 | (propagated-inputs | 6233 | (propagated-inputs |
| 6130 | `(("r-haven" ,r-haven) | 6234 | `(("r-haven" ,r-haven) |
| @@ -6873,13 +6977,13 @@ and coverage methods to tune the choice of threshold.") | |||
| 6873 | (define-public r-ggformula | 6977 | (define-public r-ggformula |
| 6874 | (package | 6978 | (package |
| 6875 | (name "r-ggformula") | 6979 | (name "r-ggformula") |
| 6876 | (version "0.9.1") | 6980 | (version "0.9.2") |
| 6877 | (source | 6981 | (source |
| 6878 | (origin | 6982 | (origin |
| 6879 | (method url-fetch) | 6983 | (method url-fetch) |
| 6880 | (uri (cran-uri "ggformula" version)) | 6984 | (uri (cran-uri "ggformula" version)) |
| 6881 | (sha256 | 6985 | (sha256 |
| 6882 | (base32 "01ngx8qh9lhmagng6abx2ky54zi3iyj5bpxlnw59slagwv7l6icx")))) | 6986 | (base32 "16ycabhnp78fsiv1dc63ccgh9gmpsy2683vbmq0fdzl6w3pd87sr")))) |
| 6883 | (build-system r-build-system) | 6987 | (build-system r-build-system) |
| 6884 | (propagated-inputs | 6988 | (propagated-inputs |
| 6885 | `(("r-ggplot2" ,r-ggplot2) | 6989 | `(("r-ggplot2" ,r-ggplot2) |
| @@ -7878,14 +7982,14 @@ Hothorn, Westfall, 2010, CRC Press).") | |||
| 7878 | (define-public r-emmeans | 7982 | (define-public r-emmeans |
| 7879 | (package | 7983 | (package |
| 7880 | (name "r-emmeans") | 7984 | (name "r-emmeans") |
| 7881 | (version "1.4") | 7985 | (version "1.4.1") |
| 7882 | (source | 7986 | (source |
| 7883 | (origin | 7987 | (origin |
| 7884 | (method url-fetch) | 7988 | (method url-fetch) |
| 7885 | (uri (cran-uri "emmeans" version)) | 7989 | (uri (cran-uri "emmeans" version)) |
| 7886 | (sha256 | 7990 | (sha256 |
| 7887 | (base32 | 7991 | (base32 |
| 7888 | "1ynf9hhbch83k63lwps69ijfch30fk5v0sc418ck264c5vih26dh")))) | 7992 | "1fpawaxnmj67md169a9mzrnnh2d0c973xydfg6hw865933jil9lq")))) |
| 7889 | (build-system r-build-system) | 7993 | (build-system r-build-system) |
| 7890 | (propagated-inputs | 7994 | (propagated-inputs |
| 7891 | `(("r-estimability" ,r-estimability) | 7995 | `(("r-estimability" ,r-estimability) |
| @@ -8036,14 +8140,14 @@ detection, parallelism through BLAS and parallel user templates.") | |||
| 8036 | (define-public r-sjstats | 8140 | (define-public r-sjstats |
| 8037 | (package | 8141 | (package |
| 8038 | (name "r-sjstats") | 8142 | (name "r-sjstats") |
| 8039 | (version "0.17.5") | 8143 | (version "0.17.6") |
| 8040 | (source | 8144 | (source |
| 8041 | (origin | 8145 | (origin |
| 8042 | (method url-fetch) | 8146 | (method url-fetch) |
| 8043 | (uri (cran-uri "sjstats" version)) | 8147 | (uri (cran-uri "sjstats" version)) |
| 8044 | (sha256 | 8148 | (sha256 |
| 8045 | (base32 | 8149 | (base32 |
| 8046 | "1x9ybvz84vgaabmqp4z6crbv5q6kqjg6msk1spbr11zx9dbj06ca")))) | 8150 | "11z1wfi0d74d1rld0320l3vmv6rl41wa0v9bjc44rk06yc90wld2")))) |
| 8047 | (build-system r-build-system) | 8151 | (build-system r-build-system) |
| 8048 | (propagated-inputs | 8152 | (propagated-inputs |
| 8049 | `(("r-bayestestr" ,r-bayestestr) | 8153 | `(("r-bayestestr" ,r-bayestestr) |
| @@ -8055,6 +8159,7 @@ detection, parallelism through BLAS and parallel user templates.") | |||
| 8055 | ("r-magrittr" ,r-magrittr) | 8159 | ("r-magrittr" ,r-magrittr) |
| 8056 | ("r-mass" ,r-mass) | 8160 | ("r-mass" ,r-mass) |
| 8057 | ("r-modelr" ,r-modelr) | 8161 | ("r-modelr" ,r-modelr) |
| 8162 | ("r-parameters" ,r-parameters) | ||
| 8058 | ("r-performance" ,r-performance) | 8163 | ("r-performance" ,r-performance) |
| 8059 | ("r-purrr" ,r-purrr) | 8164 | ("r-purrr" ,r-purrr) |
| 8060 | ("r-rlang" ,r-rlang) | 8165 | ("r-rlang" ,r-rlang) |
| @@ -8162,14 +8267,14 @@ effects models and Bayesian models.") | |||
| 8162 | (define-public r-ggeffects | 8267 | (define-public r-ggeffects |
| 8163 | (package | 8268 | (package |
| 8164 | (name "r-ggeffects") | 8269 | (name "r-ggeffects") |
| 8165 | (version "0.11.0") | 8270 | (version "0.12.0") |
| 8166 | (source | 8271 | (source |
| 8167 | (origin | 8272 | (origin |
| 8168 | (method url-fetch) | 8273 | (method url-fetch) |
| 8169 | (uri (cran-uri "ggeffects" version)) | 8274 | (uri (cran-uri "ggeffects" version)) |
| 8170 | (sha256 | 8275 | (sha256 |
| 8171 | (base32 | 8276 | (base32 |
| 8172 | "1b0lxa8bljdh6h4lk7pql1lrhjlvh7p5c8qlgb8ac6ay8hb79vmi")))) | 8277 | "0idfycjk05gyykfp9ibmhxfcjvd01ikh1dl0fb4nqw6znw3ar0xp")))) |
| 8173 | (build-system r-build-system) | 8278 | (build-system r-build-system) |
| 8174 | (propagated-inputs | 8279 | (propagated-inputs |
| 8175 | `(("r-dplyr" ,r-dplyr) | 8280 | `(("r-dplyr" ,r-dplyr) |
| @@ -8196,14 +8301,14 @@ results using @code{ggplot2}.") | |||
| 8196 | (define-public r-sjplot | 8301 | (define-public r-sjplot |
| 8197 | (package | 8302 | (package |
| 8198 | (name "r-sjplot") | 8303 | (name "r-sjplot") |
| 8199 | (version "2.7.0") | 8304 | (version "2.7.1") |
| 8200 | (source | 8305 | (source |
| 8201 | (origin | 8306 | (origin |
| 8202 | (method url-fetch) | 8307 | (method url-fetch) |
| 8203 | (uri (cran-uri "sjPlot" version)) | 8308 | (uri (cran-uri "sjPlot" version)) |
| 8204 | (sha256 | 8309 | (sha256 |
| 8205 | (base32 | 8310 | (base32 |
| 8206 | "1m0gy991fmxvqry91kkzdkdapyalhrwql25d0hg2a2naxgfw4zpk")))) | 8311 | "14shypabpahf68hd66rb1dpqhiyl3i0yx1yc85wamdvljh9fdymb")))) |
| 8207 | (properties `((upstream-name . "sjPlot"))) | 8312 | (properties `((upstream-name . "sjPlot"))) |
| 8208 | (build-system r-build-system) | 8313 | (build-system r-build-system) |
| 8209 | (propagated-inputs | 8314 | (propagated-inputs |
| @@ -9122,17 +9227,18 @@ Scientific.") | |||
| 9122 | (define-public r-activity | 9227 | (define-public r-activity |
| 9123 | (package | 9228 | (package |
| 9124 | (name "r-activity") | 9229 | (name "r-activity") |
| 9125 | (version "1.2") | 9230 | (version "1.3") |
| 9126 | (source | 9231 | (source |
| 9127 | (origin | 9232 | (origin |
| 9128 | (method url-fetch) | 9233 | (method url-fetch) |
| 9129 | (uri (cran-uri "activity" version)) | 9234 | (uri (cran-uri "activity" version)) |
| 9130 | (sha256 | 9235 | (sha256 |
| 9131 | (base32 | 9236 | (base32 |
| 9132 | "11w2bz6p9xbzdh6773dmbbh6rws0h5dj18p8m0ivzizgq932vdzs")))) | 9237 | "12imqj366dp6pam5gap6ji56p5wf1073xz5g4iikfxf5l8snxw92")))) |
| 9133 | (build-system r-build-system) | 9238 | (build-system r-build-system) |
| 9134 | (propagated-inputs | 9239 | (propagated-inputs |
| 9135 | `(("r-circular" ,r-circular) | 9240 | `(("r-circular" ,r-circular) |
| 9241 | ("r-insol" ,r-insol) | ||
| 9136 | ("r-pbapply" ,r-pbapply))) | 9242 | ("r-pbapply" ,r-pbapply))) |
| 9137 | (home-page "https://cran.r-project.org/web/packages/activity/") | 9243 | (home-page "https://cran.r-project.org/web/packages/activity/") |
| 9138 | (synopsis "Animal activity statistics") | 9244 | (synopsis "Animal activity statistics") |
| @@ -9444,14 +9550,14 @@ maps.") | |||
| 9444 | (define-public r-tidytree | 9550 | (define-public r-tidytree |
| 9445 | (package | 9551 | (package |
| 9446 | (name "r-tidytree") | 9552 | (name "r-tidytree") |
| 9447 | (version "0.2.6") | 9553 | (version "0.2.7") |
| 9448 | (source | 9554 | (source |
| 9449 | (origin | 9555 | (origin |
| 9450 | (method url-fetch) | 9556 | (method url-fetch) |
| 9451 | (uri (cran-uri "tidytree" version)) | 9557 | (uri (cran-uri "tidytree" version)) |
| 9452 | (sha256 | 9558 | (sha256 |
| 9453 | (base32 | 9559 | (base32 |
| 9454 | "13mhizbsawmfqjpnzb73yw6kn1f1wlz0vhyzj3g0rj6ry880rw89")))) | 9560 | "15ky7hj7w08jx94wm0yikckca0apwv3jy5svd77dpzgb2lr9ff9a")))) |
| 9455 | (build-system r-build-system) | 9561 | (build-system r-build-system) |
| 9456 | (propagated-inputs | 9562 | (propagated-inputs |
| 9457 | `(("r-ape" ,r-ape) | 9563 | `(("r-ape" ,r-ape) |
| @@ -10767,14 +10873,14 @@ This makes it a convenient and fast interface to C/C++ and Fortran code.") | |||
| 10767 | (define-public r-spam | 10873 | (define-public r-spam |
| 10768 | (package | 10874 | (package |
| 10769 | (name "r-spam") | 10875 | (name "r-spam") |
| 10770 | (version "2.2-2") | 10876 | (version "2.3-0") |
| 10771 | (source | 10877 | (source |
| 10772 | (origin | 10878 | (origin |
| 10773 | (method url-fetch) | 10879 | (method url-fetch) |
| 10774 | (uri (cran-uri "spam" version)) | 10880 | (uri (cran-uri "spam" version)) |
| 10775 | (sha256 | 10881 | (sha256 |
| 10776 | (base32 | 10882 | (base32 |
| 10777 | "024dgfnjfxvsiymbzrhadinamj6qy509f4sbd1zxql8ymkyxn7vi")))) | 10883 | "194n5mgvyms9ckjqixl3h33apii8h9kqspqg2si9k741k578qb3w")))) |
| 10778 | (build-system r-build-system) | 10884 | (build-system r-build-system) |
| 10779 | (propagated-inputs | 10885 | (propagated-inputs |
| 10780 | `(("r-dotcall64" ,r-dotcall64))) | 10886 | `(("r-dotcall64" ,r-dotcall64))) |
| @@ -11152,14 +11258,14 @@ regression coefficients can be conducted via jackknifing.") | |||
| 11152 | (define-public r-huge | 11258 | (define-public r-huge |
| 11153 | (package | 11259 | (package |
| 11154 | (name "r-huge") | 11260 | (name "r-huge") |
| 11155 | (version "1.3.2") | 11261 | (version "1.3.3") |
| 11156 | (source | 11262 | (source |
| 11157 | (origin | 11263 | (origin |
| 11158 | (method url-fetch) | 11264 | (method url-fetch) |
| 11159 | (uri (cran-uri "huge" version)) | 11265 | (uri (cran-uri "huge" version)) |
| 11160 | (sha256 | 11266 | (sha256 |
| 11161 | (base32 | 11267 | (base32 |
| 11162 | "1j93gvi1jyq3ld9jhdqhrpm2is54rk3ilmf3yw7fx6gva0y6hjqd")))) | 11268 | "18f8w4hdp9fdi2k5ip6fnrn5z47w4ybgxs2m6a7jdvd2v4wfdr69")))) |
| 11163 | (build-system r-build-system) | 11269 | (build-system r-build-system) |
| 11164 | (propagated-inputs | 11270 | (propagated-inputs |
| 11165 | `(("r-igraph" ,r-igraph) | 11271 | `(("r-igraph" ,r-igraph) |
| @@ -12590,14 +12696,14 @@ barplots or heatmaps.") | |||
| 12590 | (define-public r-seqinr | 12696 | (define-public r-seqinr |
| 12591 | (package | 12697 | (package |
| 12592 | (name "r-seqinr") | 12698 | (name "r-seqinr") |
| 12593 | (version "3.4-5") | 12699 | (version "3.6-1") |
| 12594 | (source | 12700 | (source |
| 12595 | (origin | 12701 | (origin |
| 12596 | (method url-fetch) | 12702 | (method url-fetch) |
| 12597 | (uri (cran-uri "seqinr" version)) | 12703 | (uri (cran-uri "seqinr" version)) |
| 12598 | (sha256 | 12704 | (sha256 |
| 12599 | (base32 | 12705 | (base32 |
| 12600 | "17zv0n5cji17izwmwg0jcbxbjl3w5rls91w15svcnlpxjms38ahn")))) | 12706 | "0j30za6kji6y3v09cvcydiacnp65pv6ig8aw7cydl47l5s9chky4")))) |
| 12601 | (build-system r-build-system) | 12707 | (build-system r-build-system) |
| 12602 | (propagated-inputs | 12708 | (propagated-inputs |
| 12603 | `(("r-ade4" ,r-ade4) | 12709 | `(("r-ade4" ,r-ade4) |
| @@ -13607,14 +13713,14 @@ the XKCD web comic.") | |||
| 13607 | (define-public r-msigdbr | 13713 | (define-public r-msigdbr |
| 13608 | (package | 13714 | (package |
| 13609 | (name "r-msigdbr") | 13715 | (name "r-msigdbr") |
| 13610 | (version "6.2.1") | 13716 | (version "7.0.1") |
| 13611 | (source | 13717 | (source |
| 13612 | (origin | 13718 | (origin |
| 13613 | (method url-fetch) | 13719 | (method url-fetch) |
| 13614 | (uri (cran-uri "msigdbr" version)) | 13720 | (uri (cran-uri "msigdbr" version)) |
| 13615 | (sha256 | 13721 | (sha256 |
| 13616 | (base32 | 13722 | (base32 |
| 13617 | "1264j1hs74kq7hyh68vfynadfi6mdpq46qm1hnwzkzzhmbzpb9cg")))) | 13723 | "19p8z617m3my8la7n1qgb1s2msf940r372im3q30qkbcx3qxg3sd")))) |
| 13618 | (build-system r-build-system) | 13724 | (build-system r-build-system) |
| 13619 | (propagated-inputs | 13725 | (propagated-inputs |
| 13620 | `(("r-dplyr" ,r-dplyr) | 13726 | `(("r-dplyr" ,r-dplyr) |
| @@ -13881,14 +13987,14 @@ databases, including ENA, PDB or ChEMBL are also accessible.") | |||
| 13881 | (define-public r-ggraph | 13987 | (define-public r-ggraph |
| 13882 | (package | 13988 | (package |
| 13883 | (name "r-ggraph") | 13989 | (name "r-ggraph") |
| 13884 | (version "1.0.2") | 13990 | (version "2.0.0") |
| 13885 | (source | 13991 | (source |
| 13886 | (origin | 13992 | (origin |
| 13887 | (method url-fetch) | 13993 | (method url-fetch) |
| 13888 | (uri (cran-uri "ggraph" version)) | 13994 | (uri (cran-uri "ggraph" version)) |
| 13889 | (sha256 | 13995 | (sha256 |
| 13890 | (base32 | 13996 | (base32 |
| 13891 | "0fpmp326mryd1k1qvacjadksrnhbla8h960i18lmrimzrag7692c")))) | 13997 | "0qj7w3af0pgmd9mil6y571jikfkln7b8csvzg6b08spwbglfy1s3")))) |
| 13892 | (build-system r-build-system) | 13998 | (build-system r-build-system) |
| 13893 | (propagated-inputs | 13999 | (propagated-inputs |
| 13894 | `(("r-digest" ,r-digest) | 14000 | `(("r-digest" ,r-digest) |
| @@ -13896,12 +14002,14 @@ databases, including ENA, PDB or ChEMBL are also accessible.") | |||
| 13896 | ("r-ggforce" ,r-ggforce) | 14002 | ("r-ggforce" ,r-ggforce) |
| 13897 | ("r-ggplot2" ,r-ggplot2) | 14003 | ("r-ggplot2" ,r-ggplot2) |
| 13898 | ("r-ggrepel" ,r-ggrepel) | 14004 | ("r-ggrepel" ,r-ggrepel) |
| 14005 | ("r-graphlayouts" ,r-graphlayouts) | ||
| 13899 | ("r-gtable" ,r-gtable) | 14006 | ("r-gtable" ,r-gtable) |
| 13900 | ("r-igraph" ,r-igraph) | 14007 | ("r-igraph" ,r-igraph) |
| 13901 | ("r-mass" ,r-mass) | 14008 | ("r-mass" ,r-mass) |
| 13902 | ("r-plyr" ,r-plyr) | ||
| 13903 | ("r-rcpp" ,r-rcpp) | 14009 | ("r-rcpp" ,r-rcpp) |
| 14010 | ("r-rlang" ,r-rlang) | ||
| 13904 | ("r-scales" ,r-scales) | 14011 | ("r-scales" ,r-scales) |
| 14012 | ("r-tidygraph" ,r-tidygraph) | ||
| 13905 | ("r-viridis" ,r-viridis))) | 14013 | ("r-viridis" ,r-viridis))) |
| 13906 | (home-page "https://cran.r-project.org/web/packages/ggraph/") | 14014 | (home-page "https://cran.r-project.org/web/packages/ggraph/") |
| 13907 | (synopsis "Implementation of grammar of graphics for graphs and networks") | 14015 | (synopsis "Implementation of grammar of graphics for graphs and networks") |
| @@ -15212,3 +15320,293 @@ single cell integration, described in Korsunsky et al | |||
| 15212 | @url{doi.org/10.1101/461954}. The package includes a standalone Harmony | 15320 | @url{doi.org/10.1101/461954}. The package includes a standalone Harmony |
| 15213 | function and interfaces to external frameworks.") | 15321 | function and interfaces to external frameworks.") |
| 15214 | (license license:gpl3)))) | 15322 | (license license:gpl3)))) |
| 15323 | |||
| 15324 | (define-public r-covr | ||
| 15325 | (package | ||
| 15326 | (name "r-covr") | ||
| 15327 | (version "3.3.1") | ||
| 15328 | (source | ||
| 15329 | (origin | ||
| 15330 | (method url-fetch) | ||
| 15331 | (uri (cran-uri "covr" version)) | ||
| 15332 | (sha256 | ||
| 15333 | (base32 | ||
| 15334 | "0fvd7v53w11x6kaw61hbml8n1j2ck9l2fv2wvqdsg689xic9rqcs")))) | ||
| 15335 | (properties `((upstream-name . "covr"))) | ||
| 15336 | (build-system r-build-system) | ||
| 15337 | (propagated-inputs | ||
| 15338 | `(("r-crayon" ,r-crayon) | ||
| 15339 | ("r-digest" ,r-digest) | ||
| 15340 | ("r-httr" ,r-httr) | ||
| 15341 | ("r-jsonlite" ,r-jsonlite) | ||
| 15342 | ("r-rex" ,r-rex) | ||
| 15343 | ("r-withr" ,r-withr) | ||
| 15344 | ("r-yaml" ,r-yaml))) | ||
| 15345 | (home-page "https://github.com/r-lib/covr") | ||
| 15346 | (synopsis "Test coverage for R packages") | ||
| 15347 | (description | ||
| 15348 | "Thisp package enables you to track and report code coverage for your | ||
| 15349 | package and (optionally) upload the results to a coverage service. Code | ||
| 15350 | coverage is a measure of the amount of code being exercised by a set of tests. | ||
| 15351 | It is an indirect measure of test quality and completeness. This package is | ||
| 15352 | compatible with any testing methodology or framework and tracks coverage of | ||
| 15353 | both R code and compiled C/C++/FORTRAN code.") | ||
| 15354 | (license license:gpl3))) | ||
| 15355 | |||
| 15356 | (define-public r-systemfonts | ||
| 15357 | (package | ||
| 15358 | (name "r-systemfonts") | ||
| 15359 | (version "0.1.1") | ||
| 15360 | (source | ||
| 15361 | (origin | ||
| 15362 | (method url-fetch) | ||
| 15363 | (uri (cran-uri "systemfonts" version)) | ||
| 15364 | (sha256 | ||
| 15365 | (base32 | ||
| 15366 | "0m0ljid683xcam2f14x7k2zv1yx4npac38a3gfv11vhxfbnpgp0z")))) | ||
| 15367 | (properties `((upstream-name . "systemfonts"))) | ||
| 15368 | (build-system r-build-system) | ||
| 15369 | (inputs | ||
| 15370 | `(("fontconfig" ,fontconfig) | ||
| 15371 | ("freetype" ,freetype) | ||
| 15372 | ("zlib" ,zlib))) | ||
| 15373 | (native-inputs | ||
| 15374 | `(("pkg-config" ,pkg-config))) | ||
| 15375 | (home-page "https://github.com/r-lib/systemfonts") | ||
| 15376 | (synopsis "System native font finding") | ||
| 15377 | (description | ||
| 15378 | "This package provides system native access to the font catalogue. As | ||
| 15379 | font handling varies between systems it is difficult to correctly locate | ||
| 15380 | installed fonts across different operating systems. The 'systemfonts' package | ||
| 15381 | provides bindings to the native libraries for finding font files that can then | ||
| 15382 | be used further by e.g. graphic devices.") | ||
| 15383 | (license license:expat))) | ||
| 15384 | |||
| 15385 | (define-public r-graphlayouts | ||
| 15386 | (package | ||
| 15387 | (name "r-graphlayouts") | ||
| 15388 | (version "0.5.0") | ||
| 15389 | (source | ||
| 15390 | (origin | ||
| 15391 | (method url-fetch) | ||
| 15392 | (uri (cran-uri "graphlayouts" version)) | ||
| 15393 | (sha256 | ||
| 15394 | (base32 | ||
| 15395 | "03dizbhhdhnzbj2i5zvqgs617kwcv4h2pha4f16adic0fph1rxl3")))) | ||
| 15396 | (properties `((upstream-name . "graphlayouts"))) | ||
| 15397 | (build-system r-build-system) | ||
| 15398 | (propagated-inputs | ||
| 15399 | `(("r-igraph" ,r-igraph) | ||
| 15400 | ("r-rcpp" ,r-rcpp) | ||
| 15401 | ("r-rcpparmadillo" ,r-rcpparmadillo))) | ||
| 15402 | (home-page "https://github.com/schochastics/graphlayouts") | ||
| 15403 | (synopsis "Additional layout algorithms for network visualizations") | ||
| 15404 | (description | ||
| 15405 | "This package provides several layout algorithms to visualize networks | ||
| 15406 | which are not part of the igraph library. Most are based on the concept of | ||
| 15407 | stress majorization by Gansner et al. (2004) | ||
| 15408 | <doi:10.1007/978-3-540-31843-9_25>. Some more specific algorithms allow to | ||
| 15409 | emphasize hidden group structures in networks or focus on specific nodes.") | ||
| 15410 | (license license:expat))) | ||
| 15411 | |||
| 15412 | (define-public r-tidygraph | ||
| 15413 | (package | ||
| 15414 | (name "r-tidygraph") | ||
| 15415 | (version "1.1.2") | ||
| 15416 | (source | ||
| 15417 | (origin | ||
| 15418 | (method url-fetch) | ||
| 15419 | (uri (cran-uri "tidygraph" version)) | ||
| 15420 | (sha256 | ||
| 15421 | (base32 | ||
| 15422 | "1zpsarm74afbc7p5dlyb0whc09670qdcddw1ckb25cfc9hfh0hjn")))) | ||
| 15423 | (properties `((upstream-name . "tidygraph"))) | ||
| 15424 | (build-system r-build-system) | ||
| 15425 | (propagated-inputs | ||
| 15426 | `(("r-dplyr" ,r-dplyr) | ||
| 15427 | ("r-igraph" ,r-igraph) | ||
| 15428 | ("r-magrittr" ,r-magrittr) | ||
| 15429 | ("r-pillar" ,r-pillar) | ||
| 15430 | ("r-r6" ,r-r6) | ||
| 15431 | ("r-rcpp" ,r-rcpp) | ||
| 15432 | ("r-rlang" ,r-rlang) | ||
| 15433 | ("r-tibble" ,r-tibble) | ||
| 15434 | ("r-tidyr" ,r-tidyr))) | ||
| 15435 | (home-page "https://github.com/thomasp85/tidygraph") | ||
| 15436 | (synopsis "Tidy API for graph manipulation") | ||
| 15437 | (description | ||
| 15438 | "This package provides a graph implementation that can be thought of as | ||
| 15439 | two tidy data frames describing node and edge data respectively. It provides | ||
| 15440 | an approach to manipulate these two virtual data frames using the API defined | ||
| 15441 | in the @code{dplyr} package, and it also provides tidy interfaces to a lot of | ||
| 15442 | common graph algorithms.") | ||
| 15443 | (license license:expat))) | ||
| 15444 | |||
| 15445 | (define-public r-soupx | ||
| 15446 | (let ((commit "a3354be76fb52fd795be6ddf163cf056c05c6cb8") | ||
| 15447 | (revision "1")) | ||
| 15448 | (package | ||
| 15449 | (name "r-soupx") | ||
| 15450 | (version (git-version "0.3.1" revision commit)) | ||
| 15451 | (source | ||
| 15452 | (origin | ||
| 15453 | (method git-fetch) | ||
| 15454 | (uri (git-reference | ||
| 15455 | (url "https://github.com/constantAmateur/SoupX") | ||
| 15456 | (commit commit))) | ||
| 15457 | (file-name (git-file-name name version)) | ||
| 15458 | (sha256 | ||
| 15459 | (base32 | ||
| 15460 | "1zmlyzrl0fz6l79gn2wswid670p88mm3y292is89sa5p3h7frr99")))) | ||
| 15461 | (properties `((upstream-name . "SoupX"))) | ||
| 15462 | (build-system r-build-system) | ||
| 15463 | (propagated-inputs | ||
| 15464 | `(("r-ggplot2" ,r-ggplot2) | ||
| 15465 | ("r-matrix" ,r-matrix) | ||
| 15466 | ("r-seurat" ,r-seurat))) | ||
| 15467 | (home-page "https://github.com/constantAmateur/SoupX") | ||
| 15468 | (synopsis "Single cell mRNA Soup eXterminator") | ||
| 15469 | (description | ||
| 15470 | "This package provides a package for quantifying, profiling and | ||
| 15471 | removing cell free mRNA contamination (the \"soup\") from droplet based single | ||
| 15472 | cell RNA-seq experiments.") | ||
| 15473 | (license license:gpl2)))) | ||
| 15474 | |||
| 15475 | (define-public r-assertr | ||
| 15476 | (package | ||
| 15477 | (name "r-assertr") | ||
| 15478 | (version "2.6") | ||
| 15479 | (source | ||
| 15480 | (origin | ||
| 15481 | (method url-fetch) | ||
| 15482 | (uri (cran-uri "assertr" version)) | ||
| 15483 | (sha256 | ||
| 15484 | (base32 | ||
| 15485 | "0g4ii6vhp0155a29ljhs64a09x0nzy5ybvwwchhk4mkcgsvnvfkj")))) | ||
| 15486 | (build-system r-build-system) | ||
| 15487 | (propagated-inputs | ||
| 15488 | `(("r-dplyr" ,r-dplyr) | ||
| 15489 | ("r-mass" ,r-mass) | ||
| 15490 | ("r-rlang" ,r-rlang))) | ||
| 15491 | (native-inputs | ||
| 15492 | `(("r-knitr" ,r-knitr))) ; needed for vignette | ||
| 15493 | (home-page "https://github.com/ropensci/assertr") | ||
| 15494 | (synopsis "Assertive programming for R analysis pipelines") | ||
| 15495 | (description | ||
| 15496 | "This package provides functionality to assert conditions that have to be | ||
| 15497 | met so that errors in data used in analysis pipelines can fail quickly. It is | ||
| 15498 | similar to @code{stopifnot()} but more powerful, friendly, and easier for use | ||
| 15499 | in pipelines.") | ||
| 15500 | (license license:expat))) | ||
| 15501 | |||
| 15502 | (define-public r-parameters | ||
| 15503 | (package | ||
| 15504 | (name "r-parameters") | ||
| 15505 | (version "0.1.0") | ||
| 15506 | (source | ||
| 15507 | (origin | ||
| 15508 | (method url-fetch) | ||
| 15509 | (uri (cran-uri "parameters" version)) | ||
| 15510 | (sha256 | ||
| 15511 | (base32 | ||
| 15512 | "12v301va1l3xydicbf0k04anxlmyjclbbjfg0riprryhkxwwk8g5")))) | ||
| 15513 | (properties `((upstream-name . "parameters"))) | ||
| 15514 | (build-system r-build-system) | ||
| 15515 | (propagated-inputs | ||
| 15516 | `(("r-bayestestr" ,r-bayestestr) | ||
| 15517 | ("r-insight" ,r-insight))) | ||
| 15518 | (home-page "https://cran.r-project.org/web/packages/parameters") | ||
| 15519 | (synopsis "Processing of model parameters") | ||
| 15520 | (description | ||
| 15521 | "This package provides utilities for processing the parameters of various | ||
| 15522 | statistical models. Beyond computing p values, CIs, and other indices for a | ||
| 15523 | wide variety of models, this package implements features like standardization | ||
| 15524 | or bootstrapping of parameters and models, feature reduction (feature | ||
| 15525 | extraction and variable selection) as well as conversion between indices of | ||
| 15526 | effect size.") | ||
| 15527 | (license license:gpl3))) | ||
| 15528 | |||
| 15529 | (define-public r-rgdal | ||
| 15530 | (package | ||
| 15531 | (name "r-rgdal") | ||
| 15532 | (version "1.4-4") | ||
| 15533 | (source | ||
| 15534 | (origin | ||
| 15535 | (method url-fetch) | ||
| 15536 | (uri (cran-uri "rgdal" version)) | ||
| 15537 | (sha256 | ||
| 15538 | (base32 | ||
| 15539 | "1my56hdc9x40ynxx1qwqwqxjvjxybmm00w4xg5gi8zgj19pffci5")))) | ||
| 15540 | (properties `((upstream-name . "rgdal"))) | ||
| 15541 | (build-system r-build-system) | ||
| 15542 | (inputs | ||
| 15543 | `(("gdal" ,gdal) | ||
| 15544 | ("proj.4" ,proj.4) | ||
| 15545 | ("zlib" ,zlib))) | ||
| 15546 | (propagated-inputs | ||
| 15547 | `(("r-sp" ,r-sp))) | ||
| 15548 | (native-inputs | ||
| 15549 | `(("pkg-config" ,pkg-config))) | ||
| 15550 | (home-page "http://rgdal.r-forge.r-project.org") | ||
| 15551 | (synopsis "Bindings for the Geospatial Data Abstraction Library") | ||
| 15552 | (description | ||
| 15553 | "This package provides bindings to the Geospatial Data Abstraction | ||
| 15554 | Library (GDAL) and access to projection/transformation operations from the | ||
| 15555 | PROJ.4 library.") | ||
| 15556 | (license license:gpl2+))) | ||
| 15557 | |||
| 15558 | (define-public r-insol | ||
| 15559 | (package | ||
| 15560 | (name "r-insol") | ||
| 15561 | (version "1.2") | ||
| 15562 | (source | ||
| 15563 | (origin | ||
| 15564 | (method url-fetch) | ||
| 15565 | (uri (cran-uri "insol" version)) | ||
| 15566 | (sha256 | ||
| 15567 | (base32 | ||
| 15568 | "14ikz05375pjn9hby7kwkhcnykjilbnkdy5i8lsl7c5qdbhmqcm5")))) | ||
| 15569 | (properties `((upstream-name . "insol"))) | ||
| 15570 | (build-system r-build-system) | ||
| 15571 | (propagated-inputs | ||
| 15572 | `(("r-raster" ,r-raster) | ||
| 15573 | ("r-rgdal" ,r-rgdal))) | ||
| 15574 | (native-inputs | ||
| 15575 | `(("gfortran" ,gfortran))) | ||
| 15576 | (home-page "https://meteoexploration.com/R/insol/index.html") | ||
| 15577 | (synopsis "Tools for calculating solar radiation") | ||
| 15578 | (description | ||
| 15579 | "This package provides functions to compute insolation on tilted | ||
| 15580 | surfaces, computes atmospheric transmittance and related parameters such as: | ||
| 15581 | Earth radius vector, declination, sunset and sunrise, daylength, equation of | ||
| 15582 | time, vector in the direction of the sun, vector normal to surface, and some | ||
| 15583 | atmospheric physics.") | ||
| 15584 | (license license:gpl2+))) | ||
| 15585 | |||
| 15586 | (define-public r-lifecycle | ||
| 15587 | (package | ||
| 15588 | (name "r-lifecycle") | ||
| 15589 | (version "0.1.0") | ||
| 15590 | (source | ||
| 15591 | (origin | ||
| 15592 | (method url-fetch) | ||
| 15593 | (uri (cran-uri "lifecycle" version)) | ||
| 15594 | (sha256 | ||
| 15595 | (base32 | ||
| 15596 | "11rk7hkw63rfrf4aqmb4xrb88kg95xh8hajpjvjfwjym2v02h74n")))) | ||
| 15597 | (properties `((upstream-name . "lifecycle"))) | ||
| 15598 | (build-system r-build-system) | ||
| 15599 | (propagated-inputs | ||
| 15600 | `(("r-glue" ,r-glue) | ||
| 15601 | ("r-rlang" ,r-rlang))) | ||
| 15602 | (home-page "https://github.com/r-lib/lifecycle") | ||
| 15603 | (synopsis "Manage the life cycle of your package functions") | ||
| 15604 | (description | ||
| 15605 | "Manage the life cycle of your exported functions with shared | ||
| 15606 | conventions, documentation badges, and non-invasive deprecation warnings. The | ||
| 15607 | lifecycle package defines four development stages (experimental, maturing, | ||
| 15608 | stable, and questioning) and three deprecation stages (soft-deprecated, | ||
| 15609 | deprecated, and defunct). It makes it easy to insert badges corresponding to | ||
| 15610 | these stages in your documentation. Usage of deprecated functions are | ||
| 15611 | signalled with increasing levels of non-invasive verbosity.") | ||
| 15612 | (license license:gpl3))) | ||
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index e138b93e9bc..906a8e66bf0 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm | |||
| @@ -2019,7 +2019,7 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}. | |||
| 2019 | (define-public rust-percent-encoding | 2019 | (define-public rust-percent-encoding |
| 2020 | (package | 2020 | (package |
| 2021 | (name "rust-percent-encoding") | 2021 | (name "rust-percent-encoding") |
| 2022 | (version "2.0.0") | 2022 | (version "2.1.0") |
| 2023 | (source | 2023 | (source |
| 2024 | (origin | 2024 | (origin |
| 2025 | (method url-fetch) | 2025 | (method url-fetch) |
| @@ -2027,7 +2027,7 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}. | |||
| 2027 | (file-name (string-append name "-" version ".tar.gz")) | 2027 | (file-name (string-append name "-" version ".tar.gz")) |
| 2028 | (sha256 | 2028 | (sha256 |
| 2029 | (base32 | 2029 | (base32 |
| 2030 | "0m6rkp3iy11la04p6z3492rns6n693pvmx585dvfmzzlzak2hkxs")))) | 2030 | "0bp3zrsk3kr47fbpipyczidbbx4g54lzxdm77ni1i3qws10mdzfl")))) |
| 2031 | (build-system cargo-build-system) | 2031 | (build-system cargo-build-system) |
| 2032 | (home-page "https://github.com/servo/rust-url/") | 2032 | (home-page "https://github.com/servo/rust-url/") |
| 2033 | (synopsis "Percent encoding and decoding") | 2033 | (synopsis "Percent encoding and decoding") |
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 4be1eee156f..152258a5226 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm | |||
| @@ -636,14 +636,14 @@ printer/driver specific, but spooler-independent PPD file.") | |||
| 636 | (define-public foo2zjs | 636 | (define-public foo2zjs |
| 637 | (package | 637 | (package |
| 638 | (name "foo2zjs") | 638 | (name "foo2zjs") |
| 639 | (version "20190517") | 639 | (version "20190909") |
| 640 | (source (origin | 640 | (source (origin |
| 641 | (method url-fetch) | 641 | (method url-fetch) |
| 642 | ;; XXX: This is an unversioned URL! | 642 | ;; XXX: This is an unversioned URL! |
| 643 | (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz") | 643 | (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz") |
| 644 | (sha256 | 644 | (sha256 |
| 645 | (base32 | 645 | (base32 |
| 646 | "13gzsd26nq4brx1xzpwmg1qnr4nk7ykgi94qr1hbjqfi561prki4")))) | 646 | "1nn84c045mbv6yzpjfggc6152bvgrmcxiyvgz9v2w3sws7ihshrm")))) |
| 647 | (build-system gnu-build-system) | 647 | (build-system gnu-build-system) |
| 648 | (arguments | 648 | (arguments |
| 649 | '(#:phases (modify-phases %standard-phases | 649 | '(#:phases (modify-phases %standard-phases |
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index ba22fecf201..37bd4aaf6b0 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm | |||
| @@ -218,7 +218,7 @@ It comes with a German-English dictionary with approximately 270,000 entries.") | |||
| 218 | (define-public grammalecte | 218 | (define-public grammalecte |
| 219 | (package | 219 | (package |
| 220 | (name "grammalecte") | 220 | (name "grammalecte") |
| 221 | (version "1.3.0") | 221 | (version "1.4.0") |
| 222 | (source | 222 | (source |
| 223 | (origin | 223 | (origin |
| 224 | (method url-fetch/zipbomb) | 224 | (method url-fetch/zipbomb) |
| @@ -226,10 +226,10 @@ It comes with a German-English dictionary with approximately 270,000 entries.") | |||
| 226 | "Grammalecte-fr-v" version ".zip")) | 226 | "Grammalecte-fr-v" version ".zip")) |
| 227 | (sha256 | 227 | (sha256 |
| 228 | (base32 | 228 | (base32 |
| 229 | "1knysfdd1rx4vc5cmmnry4jsza0cdjy26fv505m854yfmq6zrckd")))) | 229 | "0k30b9kcczsadjjgwja03rkm11cpcc1xi6w8l6k0qfbjfpkhsh66")))) |
| 230 | (build-system python-build-system) | 230 | (build-system python-build-system) |
| 231 | (home-page "https://grammalecte.net") | 231 | (home-page "https://grammalecte.net") |
| 232 | (synopsis "French spelling and grammar checker") | 232 | (synopsis "French spelling and grammar checker") |
| 233 | (description "Grammalecte is a grammar checker dedicated to the French | 233 | (description "Grammalecte is a grammar checker dedicated to the French |
| 234 | language, derived from Lightproof. | 234 | language, derived from Lightproof. |
| 235 | 235 | ||
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 1ca2b95c197..66e7e22f261 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> | 2 | ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> |
| 3 | ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> | 3 | ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> |
| 4 | ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> | 4 | ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> |
| 5 | ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> | 5 | ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> |
| 6 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | 6 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 7 | ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> | 7 | ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> |
| 8 | ;;; | 8 | ;;; |
| @@ -27,6 +27,7 @@ | |||
| 27 | #:use-module (gnu packages base) | 27 | #:use-module (gnu packages base) |
| 28 | #:use-module (gnu packages bash) | 28 | #:use-module (gnu packages bash) |
| 29 | #:use-module (gnu packages compression) | 29 | #:use-module (gnu packages compression) |
| 30 | #:use-module (gnu packages curl) | ||
| 30 | #:use-module (gnu packages databases) | 31 | #:use-module (gnu packages databases) |
| 31 | #:use-module (gnu packages fonts) | 32 | #:use-module (gnu packages fonts) |
| 32 | #:use-module (gnu packages freedesktop) | 33 | #:use-module (gnu packages freedesktop) |
| @@ -36,6 +37,7 @@ | |||
| 36 | #:use-module (gnu packages gnome) | 37 | #:use-module (gnu packages gnome) |
| 37 | #:use-module (gnu packages gtk) | 38 | #:use-module (gnu packages gtk) |
| 38 | #:use-module (gnu packages javascript) | 39 | #:use-module (gnu packages javascript) |
| 40 | #:use-module (gnu packages kde) | ||
| 39 | #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules | 41 | #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules |
| 40 | #:use-module (gnu packages perl) | 42 | #:use-module (gnu packages perl) |
| 41 | #:use-module (gnu packages pkg-config) | 43 | #:use-module (gnu packages pkg-config) |
| @@ -521,3 +523,101 @@ minutes. For simpler timetables, it may take a shorter time, under | |||
| 521 | difficult timetables, it may take a longer time, a matter of hours.") | 523 | difficult timetables, it may take a longer time, a matter of hours.") |
| 522 | (license license:agpl3+))) | 524 | (license license:agpl3+))) |
| 523 | 525 | ||
| 526 | (define-public klavaro | ||
| 527 | (package | ||
| 528 | (name "klavaro") | ||
| 529 | (version "3.09") | ||
| 530 | (source | ||
| 531 | (origin | ||
| 532 | (method url-fetch) | ||
| 533 | (uri (string-append "mirror://sourceforge/klavaro/klavaro-" | ||
| 534 | version ".tar.bz2")) | ||
| 535 | (sha256 | ||
| 536 | (base32 | ||
| 537 | "12gml7h45b1w9s318h0d5wxw92h7pgajn2kh57j0ak9saq0yb0wr")))) | ||
| 538 | (build-system gnu-build-system) | ||
| 539 | (native-inputs | ||
| 540 | `(("intltool" ,intltool) | ||
| 541 | ("pkg-config" ,pkg-config))) | ||
| 542 | (inputs | ||
| 543 | `(("cairo" ,cairo) | ||
| 544 | ("curl" ,curl) | ||
| 545 | ("gtk+" ,gtk+) | ||
| 546 | ("pango" ,pango))) | ||
| 547 | (home-page "https://klavaro.sourceforge.io/en/index.html") | ||
| 548 | (synopsis "Touch typing tutor") | ||
| 549 | (description | ||
| 550 | "Klavaro is a simple tutor to teach correct typing, almost independently of | ||
| 551 | language and very flexible regarding to new or unknown keyboard layouts.") | ||
| 552 | (license license:gpl3+))) | ||
| 553 | |||
| 554 | (define-public ktouch | ||
| 555 | (package | ||
| 556 | (name "ktouch") | ||
| 557 | (version "19.08.1") | ||
| 558 | (source | ||
| 559 | (origin | ||
| 560 | (method url-fetch) | ||
| 561 | (uri (string-append "mirror://kde/stable/applications/" | ||
| 562 | version "/src/ktouch-" version ".tar.xz")) | ||
| 563 | (sha256 | ||
| 564 | (base32 | ||
| 565 | "19rdk94pls75hdvx11hnfk3qpm6l28p9q45q5f04sknxagrfaznr")))) | ||
| 566 | (build-system cmake-build-system) | ||
| 567 | (arguments | ||
| 568 | `(#:modules ((guix build cmake-build-system) | ||
| 569 | (guix build qt-utils) | ||
| 570 | (guix build utils)) | ||
| 571 | #:imported-modules (,@%cmake-build-system-modules | ||
| 572 | (guix build qt-utils)) | ||
| 573 | #:phases | ||
| 574 | (modify-phases %standard-phases | ||
| 575 | (add-after 'configure 'patch-makefiles | ||
| 576 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 577 | (let ((qtdec (assoc-ref inputs "qtdeclarative"))) | ||
| 578 | (substitute* '("src/CMakeFiles/ktouch_autogen.dir/build.make" | ||
| 579 | "src/CMakeFiles/ktouch.dir/build.make") | ||
| 580 | (("/gnu/store/.*qmlcachegen") | ||
| 581 | (string-append qtdec "/bin/qmlcachegen")))) | ||
| 582 | #t)) | ||
| 583 | (add-after 'install 'wrap-executable | ||
| 584 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 585 | (let ((out (assoc-ref outputs "out"))) | ||
| 586 | (wrap-qt-program out "ktouch")) | ||
| 587 | #t))))) | ||
| 588 | (native-inputs | ||
| 589 | `(("extra-cmake-modules" ,extra-cmake-modules) | ||
| 590 | ("kdoctools" ,kdoctools) | ||
| 591 | ("pkg-config" ,pkg-config))) | ||
| 592 | (inputs | ||
| 593 | `(("kcmutils" ,kcmutils) | ||
| 594 | ("kcompletion" ,kcompletion) | ||
| 595 | ("kconfig" ,kconfig) | ||
| 596 | ("kconfigwidgets" ,kconfigwidgets) | ||
| 597 | ("kcoreaddons" ,kcoreaddons) | ||
| 598 | ("kdeclarative" ,kdeclarative) | ||
| 599 | ("ki18n" ,ki18n) | ||
| 600 | ("kiconthemes" ,kiconthemes) | ||
| 601 | ("kitemviews" ,kitemviews) | ||
| 602 | ("kqtquickcharts" ,kqtquickcharts) | ||
| 603 | ("ktextwidgets" ,ktextwidgets) | ||
| 604 | ("kwidgetsaddons" ,kwidgetsaddons) | ||
| 605 | ("kwindowsystem" ,kwindowsystem) | ||
| 606 | ("kxmlgui" ,kxmlgui) | ||
| 607 | ("libxcb" ,libxcb) | ||
| 608 | ("libxkbfile" ,libxkbfile) | ||
| 609 | ("qtbase" ,qtbase) | ||
| 610 | ("qtdeclarative" ,qtdeclarative) | ||
| 611 | ("qtgraphicaleffects" ,qtgraphicaleffects) | ||
| 612 | ("qtquickcontrols2" ,qtquickcontrols2) | ||
| 613 | ("qtx11extras" ,qtx11extras) | ||
| 614 | ("qtxmlpatterns" ,qtxmlpatterns))) | ||
| 615 | (home-page "https://edu.kde.org/ktouch/") | ||
| 616 | (synopsis "Touch typing tutor") | ||
| 617 | (description | ||
| 618 | "KTouch is an aid for learning how to type with speed and accuracy. It | ||
| 619 | provides a sample text to type and indicates which fingers should be used for | ||
| 620 | each key. A collection of lessons are included for a wide range of different | ||
| 621 | languages and keyboard layouts, and typing statistics are used to dynamically | ||
| 622 | adjust the level of difficulty.") | ||
| 623 | (license license:gpl2))) | ||
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e3c23ef945a..6b9027df8af 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm | |||
| @@ -49,7 +49,7 @@ | |||
| 49 | ;;; Copyright © 2019 LaFreniere, Joseph <joseph@lafreniere.xyz> | 49 | ;;; Copyright © 2019 LaFreniere, Joseph <joseph@lafreniere.xyz> |
| 50 | ;;; Copyright © 2019 Amar Singh <nly@disroot.org> | 50 | ;;; Copyright © 2019 Amar Singh <nly@disroot.org> |
| 51 | ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr> | 51 | ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr> |
| 52 | ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org> | 52 | ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> |
| 53 | ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk> | 53 | ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk> |
| 54 | ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org> | 54 | ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org> |
| 55 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> | 55 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> |
| @@ -2932,7 +2932,7 @@ snippets for yasnippet.") | |||
| 2932 | (define-public emacs-smart-mode-line | 2932 | (define-public emacs-smart-mode-line |
| 2933 | (package | 2933 | (package |
| 2934 | (name "emacs-smart-mode-line") | 2934 | (name "emacs-smart-mode-line") |
| 2935 | (version "2.12.0") | 2935 | (version "2.13") |
| 2936 | (source | 2936 | (source |
| 2937 | (origin | 2937 | (origin |
| 2938 | (method git-fetch) | 2938 | (method git-fetch) |
| @@ -2941,7 +2941,7 @@ snippets for yasnippet.") | |||
| 2941 | (commit version))) | 2941 | (commit version))) |
| 2942 | (file-name (git-file-name name version)) | 2942 | (file-name (git-file-name name version)) |
| 2943 | (sha256 | 2943 | (sha256 |
| 2944 | (base32 "1gs4ay9hdg8gmia4ir74qawk80pqwv99hp4yhy108kpfry5mrq6z")))) | 2944 | (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b")))) |
| 2945 | (build-system emacs-build-system) | 2945 | (build-system emacs-build-system) |
| 2946 | (propagated-inputs | 2946 | (propagated-inputs |
| 2947 | `(("emacs-rich-minority" ,emacs-rich-minority))) | 2947 | `(("emacs-rich-minority" ,emacs-rich-minority))) |
| @@ -3211,14 +3211,14 @@ source code using IPython.") | |||
| 3211 | (define-public emacs-debbugs | 3211 | (define-public emacs-debbugs |
| 3212 | (package | 3212 | (package |
| 3213 | (name "emacs-debbugs") | 3213 | (name "emacs-debbugs") |
| 3214 | (version "0.18") | 3214 | (version "0.19") |
| 3215 | (source (origin | 3215 | (source (origin |
| 3216 | (method url-fetch) | 3216 | (method url-fetch) |
| 3217 | (uri (string-append "https://elpa.gnu.org/packages/debbugs-" | 3217 | (uri (string-append "https://elpa.gnu.org/packages/debbugs-" |
| 3218 | version ".tar")) | 3218 | version ".tar")) |
| 3219 | (sha256 | 3219 | (sha256 |
| 3220 | (base32 | 3220 | (base32 |
| 3221 | "00kich80zdg7v3v613f9prqddkpwpm1nf9sj10f0n6wh15rzwv07")))) | 3221 | "0cpby8f088cqb5mpd756a2mb706x763k15cg2xdmmsxl415k3yw4")))) |
| 3222 | (build-system emacs-build-system) | 3222 | (build-system emacs-build-system) |
| 3223 | (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) | 3223 | (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) |
| 3224 | (propagated-inputs | 3224 | (propagated-inputs |
| @@ -6008,7 +6008,7 @@ indentation guides in Emacs: | |||
| 6008 | (define-public emacs-elpy | 6008 | (define-public emacs-elpy |
| 6009 | (package | 6009 | (package |
| 6010 | (name "emacs-elpy") | 6010 | (name "emacs-elpy") |
| 6011 | (version "1.28.0") | 6011 | (version "1.31.0") |
| 6012 | (source (origin | 6012 | (source (origin |
| 6013 | (method git-fetch) | 6013 | (method git-fetch) |
| 6014 | (uri (git-reference | 6014 | (uri (git-reference |
| @@ -6017,7 +6017,7 @@ indentation guides in Emacs: | |||
| 6017 | (file-name (git-file-name name version)) | 6017 | (file-name (git-file-name name version)) |
| 6018 | (sha256 | 6018 | (sha256 |
| 6019 | (base32 | 6019 | (base32 |
| 6020 | "073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis")))) | 6020 | "0bvmgqs3c80bhs9v5ymgadv7vk4iamha10y7rl09pixmjm4mzagk")))) |
| 6021 | (build-system emacs-build-system) | 6021 | (build-system emacs-build-system) |
| 6022 | (arguments | 6022 | (arguments |
| 6023 | `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) | 6023 | `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) |
| @@ -13189,16 +13189,17 @@ compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag}, | |||
| 13189 | (define-public emacs-interactive-align | 13189 | (define-public emacs-interactive-align |
| 13190 | (package | 13190 | (package |
| 13191 | (name "emacs-interactive-align") | 13191 | (name "emacs-interactive-align") |
| 13192 | (version "0.1.0") | 13192 | (version "0.4.2") |
| 13193 | (source | 13193 | (source |
| 13194 | (origin | 13194 | (origin |
| 13195 | (method url-fetch) | 13195 | (method git-fetch) |
| 13196 | (uri (string-append "https://github.com/mkcms/interactive-align/" | 13196 | (uri (git-reference |
| 13197 | "archive/" "v" version ".tar.gz")) | 13197 | (url "https://github.com/mkcms/interactive-align.git") |
| 13198 | (file-name (string-append name "-" version ".tar.gz")) | 13198 | (commit (string-append "v" version)))) |
| 13199 | (file-name (git-file-name name version)) | ||
| 13199 | (sha256 | 13200 | (sha256 |
| 13200 | (base32 | 13201 | (base32 |
| 13201 | "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m")))) | 13202 | "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc")))) |
| 13202 | (build-system emacs-build-system) | 13203 | (build-system emacs-build-system) |
| 13203 | (home-page "https://github.com/mkcms/interactive-align/") | 13204 | (home-page "https://github.com/mkcms/interactive-align/") |
| 13204 | (synopsis "Interactive align-regexp command in Emacs") | 13205 | (synopsis "Interactive align-regexp command in Emacs") |
| @@ -13668,7 +13669,7 @@ through the symbol: @command{this-fn}.") | |||
| 13668 | (define-public emacs-dumb-jump | 13669 | (define-public emacs-dumb-jump |
| 13669 | (package | 13670 | (package |
| 13670 | (name "emacs-dumb-jump") | 13671 | (name "emacs-dumb-jump") |
| 13671 | (version "0.5.2") | 13672 | (version "0.5.3") |
| 13672 | (source | 13673 | (source |
| 13673 | (origin | 13674 | (origin |
| 13674 | (method git-fetch) | 13675 | (method git-fetch) |
| @@ -13677,7 +13678,7 @@ through the symbol: @command{this-fn}.") | |||
| 13677 | (commit (string-append "v" version)))) | 13678 | (commit (string-append "v" version)))) |
| 13678 | (file-name (git-file-name name version)) | 13679 | (file-name (git-file-name name version)) |
| 13679 | (sha256 | 13680 | (sha256 |
| 13680 | (base32 "00ph85vp8sa3k99qrdxfz4l8zx121q9xf47vvspzg26bk9l4nwin")))) | 13681 | (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi")))) |
| 13681 | (build-system emacs-build-system) | 13682 | (build-system emacs-build-system) |
| 13682 | (arguments | 13683 | (arguments |
| 13683 | `(#:tests? #f ; FIXME: Tests freeze when run. | 13684 | `(#:tests? #f ; FIXME: Tests freeze when run. |
| @@ -14260,30 +14261,29 @@ on-line service.") | |||
| 14260 | (license license:gpl3+))) | 14261 | (license license:gpl3+))) |
| 14261 | 14262 | ||
| 14262 | (define-public emacs-helm-company | 14263 | (define-public emacs-helm-company |
| 14263 | (let ((commit "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f")) | 14264 | (package |
| 14264 | (package | 14265 | (name "emacs-helm-company") |
| 14265 | (name "emacs-helm-company") | 14266 | (version "0.2.5") |
| 14266 | (version (git-version "0.2.3" "1" commit)) | 14267 | (source |
| 14267 | (source | 14268 | (origin |
| 14268 | (origin | 14269 | (method git-fetch) |
| 14269 | (method git-fetch) | 14270 | (uri (git-reference |
| 14270 | (uri (git-reference | 14271 | (url "https://github.com/Sodel-the-Vociferous/helm-company") |
| 14271 | (url "https://github.com/Sodel-the-Vociferous/helm-company") | 14272 | (commit (string-append "v" version)))) |
| 14272 | (commit commit))) | 14273 | (file-name (git-file-name name version)) |
| 14273 | (file-name (git-file-name name version)) | 14274 | (sha256 |
| 14274 | (sha256 | 14275 | (base32 |
| 14275 | (base32 | 14276 | "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx")))) |
| 14276 | "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k")))) | 14277 | (build-system emacs-build-system) |
| 14277 | (build-system emacs-build-system) | 14278 | (propagated-inputs |
| 14278 | (propagated-inputs | 14279 | `(("emacs-helm" ,emacs-helm) |
| 14279 | `(("emacs-helm" ,emacs-helm) | 14280 | ("emacs-company" ,emacs-company))) |
| 14280 | ("emacs-company" ,emacs-company))) | 14281 | (home-page "https://github.com/Sodel-the-Vociferous/helm-company") |
| 14281 | (home-page "https://github.com/Sodel-the-Vociferous/helm-company") | 14282 | (synopsis "Helm interface for company-mode") |
| 14282 | (synopsis "Helm interface for company-mode") | 14283 | (description |
| 14283 | (description | 14284 | "This is a Helm interface to company-mode, a text completion |
| 14284 | "This is a Helm interface to company-mode, a text completion | ||
| 14285 | framework.") | 14285 | framework.") |
| 14286 | (license license:gpl3+)))) | 14286 | (license license:gpl3+))) |
| 14287 | 14287 | ||
| 14288 | (define-public emacs-helm-descbinds | 14288 | (define-public emacs-helm-descbinds |
| 14289 | (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e")) | 14289 | (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e")) |
| @@ -17804,17 +17804,17 @@ connections using TLS encryption.") | |||
| 17804 | (define-public emacs-zerodark-theme | 17804 | (define-public emacs-zerodark-theme |
| 17805 | (package | 17805 | (package |
| 17806 | (name "emacs-zerodark-theme") | 17806 | (name "emacs-zerodark-theme") |
| 17807 | (version "4.5") | 17807 | (version "4.6") |
| 17808 | (source | 17808 | (source |
| 17809 | (origin | 17809 | (origin |
| 17810 | (method git-fetch) | 17810 | (method git-fetch) |
| 17811 | (uri (git-reference | 17811 | (uri (git-reference |
| 17812 | (url "https://gitlab.petton.fr/nico/zerodark-theme.git") | 17812 | (url "https://github.com/NicolasPetton/zerodark-theme") |
| 17813 | (commit version))) | 17813 | (commit version))) |
| 17814 | (file-name (git-file-name name version)) | 17814 | (file-name (git-file-name name version)) |
| 17815 | (sha256 | 17815 | (sha256 |
| 17816 | (base32 | 17816 | (base32 |
| 17817 | "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m")))) | 17817 | "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6")))) |
| 17818 | (build-system emacs-build-system) | 17818 | (build-system emacs-build-system) |
| 17819 | (propagated-inputs | 17819 | (propagated-inputs |
| 17820 | `(("emacs-flycheck" ,emacs-flycheck) | 17820 | `(("emacs-flycheck" ,emacs-flycheck) |
| @@ -18171,3 +18171,91 @@ JIRA issue servers.") | |||
| 18171 | "This packages fontifies the ssh config keywords and creates | 18171 | "This packages fontifies the ssh config keywords and creates |
| 18172 | keybindings for skipping from host section to host section.") | 18172 | keybindings for skipping from host section to host section.") |
| 18173 | (license license:gpl3+)))) | 18173 | (license license:gpl3+)))) |
| 18174 | |||
| 18175 | (define-public emacs-tao-theme | ||
| 18176 | (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c") | ||
| 18177 | (revision "0")) | ||
| 18178 | (package | ||
| 18179 | (name "emacs-tao-theme") | ||
| 18180 | (version (git-version "0" revision commit)) | ||
| 18181 | (source | ||
| 18182 | (origin | ||
| 18183 | (method git-fetch) | ||
| 18184 | (uri (git-reference | ||
| 18185 | (url "https://github.com/11111000000/tao-theme-emacs.git") | ||
| 18186 | (commit commit))) | ||
| 18187 | (file-name (git-file-name name version)) | ||
| 18188 | (sha256 | ||
| 18189 | (base32 | ||
| 18190 | "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn")))) | ||
| 18191 | (build-system emacs-build-system) | ||
| 18192 | (home-page "https://github.com/11111000000/tao-theme-emacs") | ||
| 18193 | (synopsis "Parameterized uncolored color themes for Emacs") | ||
| 18194 | (description | ||
| 18195 | "This package provides two parameterized uncolored color themes for | ||
| 18196 | Emacs: @code{tao-yin} and @code{tao-yang}. The default | ||
| 18197 | @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}. | ||
| 18198 | |||
| 18199 | You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers; | ||
| 18200 | @code{tao-theme-scale-filter-fn}, for edge filter; and | ||
| 18201 | @code{tao-theme-use-height}.") | ||
| 18202 | (license license:gpl3+)))) | ||
| 18203 | |||
| 18204 | (define-public emacs-doom-themes | ||
| 18205 | (package | ||
| 18206 | (name "emacs-doom-themes") | ||
| 18207 | (version "2.1.6") | ||
| 18208 | (source (origin | ||
| 18209 | (method git-fetch) | ||
| 18210 | (uri (git-reference | ||
| 18211 | (url "https://github.com/hlissner/emacs-doom-themes.git") | ||
| 18212 | (commit (string-append "v" version)))) | ||
| 18213 | (file-name (git-file-name name version)) | ||
| 18214 | (sha256 | ||
| 18215 | (base32 "042pzcdhxi2z07jcscgjbaki9nrrm0cbgbbrnymd1r4q8ckkn8l9")))) | ||
| 18216 | (build-system emacs-build-system) | ||
| 18217 | (native-inputs | ||
| 18218 | `(("emacs-ert-runner" ,emacs-ert-runner))) | ||
| 18219 | (arguments | ||
| 18220 | `(#:tests? #t | ||
| 18221 | #:test-command '("ert-runner") | ||
| 18222 | #:phases | ||
| 18223 | (modify-phases %standard-phases | ||
| 18224 | (add-after 'unpack 'move-themes | ||
| 18225 | (lambda _ | ||
| 18226 | ;; Move the source files to the top level, which is in the | ||
| 18227 | ;; EMACSLOADPATH. | ||
| 18228 | (for-each (lambda (f) | ||
| 18229 | (rename-file f (basename f))) | ||
| 18230 | (find-files "./themes" ".*\\.el$")) | ||
| 18231 | #t))))) | ||
| 18232 | (synopsis "Wide collection of color themes for Emacs") | ||
| 18233 | (description "Emacs-doom-themes contains numerous popular color themes for | ||
| 18234 | Emacs that integrate with major modes like Org-mode.") | ||
| 18235 | (home-page "https://github.com/hlissner/emacs-doom-themes") | ||
| 18236 | (license license:expat))) | ||
| 18237 | |||
| 18238 | (define-public emacs-elixir-mode | ||
| 18239 | (package | ||
| 18240 | (name "emacs-elixir-mode") | ||
| 18241 | (version "2.3.1") | ||
| 18242 | (source | ||
| 18243 | (origin | ||
| 18244 | (method url-fetch) | ||
| 18245 | (uri (string-append | ||
| 18246 | "https://stable.melpa.org/packages/elixir-mode-" | ||
| 18247 | version | ||
| 18248 | ".tar")) | ||
| 18249 | (sha256 | ||
| 18250 | (base32 | ||
| 18251 | "091cizxg1aw8bkj58y048mj020ssapjflav633z9bl6gmi10dy4v")))) | ||
| 18252 | (build-system emacs-build-system) | ||
| 18253 | (propagated-inputs | ||
| 18254 | `(("emacs-pkg-info" ,emacs-pkg-info))) | ||
| 18255 | (home-page | ||
| 18256 | "https://github.com/elixir-editors/emacs-elixir") | ||
| 18257 | (synopsis "Major mode for editing Elixir files") | ||
| 18258 | (description | ||
| 18259 | "Elixir-Mode Provides font-locking, indentation and navigation support | ||
| 18260 | for the Elixir programming language.") | ||
| 18261 | (license license:gpl3+))) | ||
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 75a2e245f6e..449c6946120 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm | |||
| @@ -399,7 +399,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") | |||
| 399 | (define-public mgba | 399 | (define-public mgba |
| 400 | (package | 400 | (package |
| 401 | (name "mgba") | 401 | (name "mgba") |
| 402 | (version "0.7.2") | 402 | (version "0.7.3") |
| 403 | (source (origin | 403 | (source (origin |
| 404 | (method git-fetch) | 404 | (method git-fetch) |
| 405 | (uri (git-reference | 405 | (uri (git-reference |
| @@ -408,7 +408,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") | |||
| 408 | (file-name (git-file-name name version)) | 408 | (file-name (git-file-name name version)) |
| 409 | (sha256 | 409 | (sha256 |
| 410 | (base32 | 410 | (base32 |
| 411 | "0g0xa1mzvan0sl1p5c784j2g5mcw9kd2b7wiahy06gy0c1nmbcnp")) | 411 | "1wrmwh50rv8bd328r8cisrihq6h90kx2bfb0vmjfbsd3l1jvgrgm")) |
| 412 | (modules '((guix build utils))) | 412 | (modules '((guix build utils))) |
| 413 | (snippet | 413 | (snippet |
| 414 | ;; Make sure we don't use the bundled software. | 414 | ;; Make sure we don't use the bundled software. |
| @@ -1048,7 +1048,7 @@ emulation community. It provides highly accurate emulation.") | |||
| 1048 | (define-public retroarch | 1048 | (define-public retroarch |
| 1049 | (package | 1049 | (package |
| 1050 | (name "retroarch") | 1050 | (name "retroarch") |
| 1051 | (version "1.7.8") | 1051 | (version "1.7.8.4") |
| 1052 | (source | 1052 | (source |
| 1053 | (origin | 1053 | (origin |
| 1054 | (method git-fetch) | 1054 | (method git-fetch) |
| @@ -1057,7 +1057,7 @@ emulation community. It provides highly accurate emulation.") | |||
| 1057 | (commit (string-append "v" version)))) | 1057 | (commit (string-append "v" version)))) |
| 1058 | (file-name (git-file-name name version)) | 1058 | (file-name (git-file-name name version)) |
| 1059 | (sha256 | 1059 | (sha256 |
| 1060 | (base32 "0jwy5winrm87s6xa645fwa47x242r25m6i3rwf10x59448bd19r6")))) | 1060 | (base32 "1i3i23xwvmck8k2fpalr49np7xjzfg507243mybqrljawlnbxvph")))) |
| 1061 | (build-system gnu-build-system) | 1061 | (build-system gnu-build-system) |
| 1062 | (arguments | 1062 | (arguments |
| 1063 | `(#:tests? #f ; no tests | 1063 | `(#:tests? #f ; no tests |
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 7f5409c8356..c1c1b18ed36 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm | |||
| @@ -65,6 +65,7 @@ | |||
| 65 | #:use-module (gnu packages glib) | 65 | #:use-module (gnu packages glib) |
| 66 | #:use-module (gnu packages gnome) | 66 | #:use-module (gnu packages gnome) |
| 67 | #:use-module (gnu packages gperf) | 67 | #:use-module (gnu packages gperf) |
| 68 | #:use-module (gnu packages graphics) | ||
| 68 | #:use-module (gnu packages groff) | 69 | #:use-module (gnu packages groff) |
| 69 | #:use-module (gnu packages gtk) | 70 | #:use-module (gnu packages gtk) |
| 70 | #:use-module (gnu packages guile) | 71 | #:use-module (gnu packages guile) |
| @@ -89,6 +90,7 @@ | |||
| 89 | #:use-module (gnu packages tex) | 90 | #:use-module (gnu packages tex) |
| 90 | #:use-module (gnu packages version-control) | 91 | #:use-module (gnu packages version-control) |
| 91 | #:use-module (gnu packages wxwidgets) | 92 | #:use-module (gnu packages wxwidgets) |
| 93 | #:use-module (gnu packages xml) | ||
| 92 | #:use-module (gnu packages xorg)) | 94 | #:use-module (gnu packages xorg)) |
| 93 | 95 | ||
| 94 | (define-public librecad | 96 | (define-public librecad |
| @@ -2145,3 +2147,70 @@ well as conversion and validation tools for input and output data. The | |||
| 2145 | specification can be downloaded at @url{http://3mf.io/specification/}.") | 2147 | specification can be downloaded at @url{http://3mf.io/specification/}.") |
| 2146 | (home-page "https://3mf.io/") | 2148 | (home-page "https://3mf.io/") |
| 2147 | (license license:bsd-2))) | 2149 | (license license:bsd-2))) |
| 2150 | |||
| 2151 | (define-public openscad | ||
| 2152 | (package | ||
| 2153 | (name "openscad") | ||
| 2154 | (version "2019.05") | ||
| 2155 | (source | ||
| 2156 | (origin | ||
| 2157 | (method url-fetch) | ||
| 2158 | (uri (string-append "https://files.openscad.org/openscad-" version | ||
| 2159 | ".src.tar.gz")) | ||
| 2160 | (sha256 | ||
| 2161 | (base32 | ||
| 2162 | "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha")))) | ||
| 2163 | (build-system cmake-build-system) | ||
| 2164 | (inputs | ||
| 2165 | `(("boost" ,boost) | ||
| 2166 | ("cgal" ,cgal) | ||
| 2167 | ("double-conversion" ,double-conversion) | ||
| 2168 | ("eigen" ,eigen) | ||
| 2169 | ("fontconfig" ,fontconfig) | ||
| 2170 | ("glew" ,glew) | ||
| 2171 | ("gmp" ,gmp) | ||
| 2172 | ("harfbuzz" ,harfbuzz) | ||
| 2173 | ("lib3mf" ,lib3mf) | ||
| 2174 | ("libxml2" ,libxml2) | ||
| 2175 | ("libzip" ,libzip) | ||
| 2176 | ("mpfr" ,mpfr) | ||
| 2177 | ("opencsg" ,opencsg) | ||
| 2178 | ("qscintilla" ,qscintilla) | ||
| 2179 | ("qtbase" ,qtbase) | ||
| 2180 | ("qtmultimedia" ,qtmultimedia))) | ||
| 2181 | (native-inputs | ||
| 2182 | `(("bison" ,bison) | ||
| 2183 | ("flex" ,flex) | ||
| 2184 | ("gettext" ,gettext-minimal) | ||
| 2185 | ("pkg-config" ,pkg-config) | ||
| 2186 | ("which" ,which) | ||
| 2187 | ;; the following are only needed for tests | ||
| 2188 | ("imagemagick" ,imagemagick) | ||
| 2189 | ("ps" ,procps) | ||
| 2190 | ("python" ,python) | ||
| 2191 | ("xvfb" ,xorg-server))) | ||
| 2192 | (arguments | ||
| 2193 | `(#:phases | ||
| 2194 | (modify-phases %standard-phases | ||
| 2195 | (replace 'configure | ||
| 2196 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 2197 | (invoke "qmake" | ||
| 2198 | (string-append "PREFIX=" (assoc-ref outputs "out"))) | ||
| 2199 | #t)) | ||
| 2200 | (replace 'check | ||
| 2201 | (lambda _ | ||
| 2202 | (with-directory-excursion "tests" | ||
| 2203 | (invoke "cmake" ".") | ||
| 2204 | (invoke "make") | ||
| 2205 | (invoke "ctest")) | ||
| 2206 | ;; strip python test files since lib dir ends up in out/share | ||
| 2207 | (for-each delete-file | ||
| 2208 | (find-files "libraries/MCAD" ".*\\.py")) | ||
| 2209 | #t))))) | ||
| 2210 | (synopsis "Script-based 3D modeling application") | ||
| 2211 | (description | ||
| 2212 | "OpenSCAD is a 3D Computer-aided Design (CAD) application. Unlike an | ||
| 2213 | interactive modeler, OpenSCAD generates 3D models from a script, giving you | ||
| 2214 | full programmatic control over your models.") | ||
| 2215 | (home-page "https://www.openscad.org/") | ||
| 2216 | (license license:gpl2+))) | ||
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index e8c4e6bc9d0..3f5f7b12855 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm | |||
| @@ -476,16 +476,20 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch | |||
| 476 | ("git" ,git) | 476 | ("git" ,git) |
| 477 | ("graphviz" ,graphviz) | 477 | ("graphviz" ,graphviz) |
| 478 | ("pkg-config" ,pkg-config) | 478 | ("pkg-config" ,pkg-config) |
| 479 | ("protobuf" ,protobuf) | ||
| 480 | ("python" ,python) | ||
| 479 | ("qttools" ,qttools))) | 481 | ("qttools" ,qttools))) |
| 480 | (inputs | 482 | (inputs |
| 481 | `(("boost" ,boost) | 483 | `(("boost" ,boost) |
| 482 | ("cppzmq" ,cppzmq) | 484 | ("cppzmq" ,cppzmq) |
| 483 | ("expat" ,expat) | 485 | ("expat" ,expat) |
| 484 | ("hidapi" ,hidapi) | 486 | ("hidapi" ,hidapi) |
| 485 | ("libunwind" ,libunwind) | ||
| 486 | ("libsodium" ,libsodium) | 487 | ("libsodium" ,libsodium) |
| 488 | ("libunwind" ,libunwind) | ||
| 489 | ("libusb" ,libusb) | ||
| 487 | ("miniupnpc" ,miniupnpc) | 490 | ("miniupnpc" ,miniupnpc) |
| 488 | ("openssl" ,openssl) | 491 | ("openssl" ,openssl) |
| 492 | ("protobuf" ,protobuf) | ||
| 489 | ("rapidjson" ,rapidjson) | 493 | ("rapidjson" ,rapidjson) |
| 490 | ("readline" ,readline) | 494 | ("readline" ,readline) |
| 491 | ("unbound" ,unbound) | 495 | ("unbound" ,unbound) |
| @@ -493,9 +497,12 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch | |||
| 493 | ("zeromq" ,zeromq))) | 497 | ("zeromq" ,zeromq))) |
| 494 | (arguments | 498 | (arguments |
| 495 | `(#:out-of-source? #t | 499 | `(#:out-of-source? #t |
| 496 | #:configure-flags '("-DARCH=default" | 500 | #:configure-flags |
| 497 | "-DBUILD_TESTS=ON" | 501 | (list "-DARCH=default" |
| 498 | "-DBUILD_GUI_DEPS=ON") | 502 | "-DBUILD_TESTS=ON" |
| 503 | "-DBUILD_GUI_DEPS=ON" | ||
| 504 | (string-append "-DReadline_ROOT_DIR=" | ||
| 505 | (assoc-ref %build-inputs "readline"))) | ||
| 499 | #:phases | 506 | #:phases |
| 500 | (modify-phases %standard-phases | 507 | (modify-phases %standard-phases |
| 501 | ;; tests/core_tests need a valid HOME | 508 | ;; tests/core_tests need a valid HOME |
| @@ -534,7 +541,13 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch | |||
| 534 | ":"))) | 541 | ":"))) |
| 535 | (invoke "tests/unit_tests/unit_tests" | 542 | (invoke "tests/unit_tests/unit_tests" |
| 536 | (string-append "--gtest_filter=-" | 543 | (string-append "--gtest_filter=-" |
| 537 | excluded-unit-tests)))))))) | 544 | excluded-unit-tests))))) |
| 545 | (add-after 'install 'delete-dead-links | ||
| 546 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 547 | (let ((out (assoc-ref outputs "out"))) | ||
| 548 | (delete-file (string-append out "/lib/libprotobuf.so")) | ||
| 549 | (delete-file (string-append out "/lib/libusb-1.0.so")) | ||
| 550 | #t)))))) | ||
| 538 | (home-page "https://getmonero.org/") | 551 | (home-page "https://getmonero.org/") |
| 539 | (synopsis "Command-line interface to the Monero currency") | 552 | (synopsis "Command-line interface to the Monero currency") |
| 540 | (description | 553 | (description |
| @@ -545,7 +558,7 @@ the Monero command line client and daemon.") | |||
| 545 | (define-public monero-gui | 558 | (define-public monero-gui |
| 546 | (package | 559 | (package |
| 547 | (name "monero-gui") | 560 | (name "monero-gui") |
| 548 | (version "0.14.1.0") | 561 | (version "0.14.1.2") |
| 549 | (source | 562 | (source |
| 550 | (origin | 563 | (origin |
| 551 | (method git-fetch) | 564 | (method git-fetch) |
| @@ -555,7 +568,7 @@ the Monero command line client and daemon.") | |||
| 555 | (file-name (git-file-name name version)) | 568 | (file-name (git-file-name name version)) |
| 556 | (sha256 | 569 | (sha256 |
| 557 | (base32 | 570 | (base32 |
| 558 | "0ilx47771faygf97wilm64xnqxgxa3b43q0g9v014npk0qj8pc31")))) | 571 | "1rm043r6y2mzy8pclnzbjjfxgps8pkfa2b92p66k8y8rdmgq6m1k")))) |
| 559 | (build-system gnu-build-system) | 572 | (build-system gnu-build-system) |
| 560 | (native-inputs | 573 | (native-inputs |
| 561 | `(("pkg-config" ,pkg-config) | 574 | `(("pkg-config" ,pkg-config) |
| @@ -563,9 +576,11 @@ the Monero command line client and daemon.") | |||
| 563 | (inputs | 576 | (inputs |
| 564 | `(("boost" ,boost) | 577 | `(("boost" ,boost) |
| 565 | ("hidapi" ,hidapi) | 578 | ("hidapi" ,hidapi) |
| 566 | ("libunwind" ,libunwind) | ||
| 567 | ("libsodium" ,libsodium) | 579 | ("libsodium" ,libsodium) |
| 580 | ("libunwind" ,libunwind) | ||
| 581 | ("libusb" ,libusb) | ||
| 568 | ("openssl" ,openssl) | 582 | ("openssl" ,openssl) |
| 583 | ("protobuf" ,protobuf) | ||
| 569 | ("qtbase" ,qtbase) | 584 | ("qtbase" ,qtbase) |
| 570 | ("qtdeclarative" ,qtdeclarative) | 585 | ("qtdeclarative" ,qtdeclarative) |
| 571 | ("qtgraphicaleffects" ,qtgraphicaleffects) | 586 | ("qtgraphicaleffects" ,qtgraphicaleffects) |
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b1368cb72ed..8a302ba5bc8 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm | |||
| @@ -925,15 +925,15 @@ interfaces, based on the useradd, usermod and userdel commands.") | |||
| 925 | (define-public libmbim | 925 | (define-public libmbim |
| 926 | (package | 926 | (package |
| 927 | (name "libmbim") | 927 | (name "libmbim") |
| 928 | (version "1.18.2") | 928 | (version "1.20.0") |
| 929 | (source (origin | 929 | (source (origin |
| 930 | (method url-fetch) | 930 | (method url-fetch) |
| 931 | (uri (string-append | 931 | (uri (string-append |
| 932 | "https://www.freedesktop.org/software/" name "/" | 932 | "https://www.freedesktop.org/software/libmbim/" |
| 933 | name "-" version ".tar.xz")) | 933 | "libmbim-" version ".tar.xz")) |
| 934 | (sha256 | 934 | (sha256 |
| 935 | (base32 | 935 | (base32 |
| 936 | "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp")))) | 936 | "0rm8j4zh9gnb3yi324cnxy91gdimc1vg5gv1kxc2m5lymb3wdxrc")))) |
| 937 | (build-system gnu-build-system) | 937 | (build-system gnu-build-system) |
| 938 | (native-inputs | 938 | (native-inputs |
| 939 | `(("glib:bin" ,glib "bin") ; for glib-mkenums | 939 | `(("glib:bin" ,glib "bin") ; for glib-mkenums |
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 7eac935a696..bb4c1d26bb4 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm | |||
| @@ -314,6 +314,16 @@ provide connectivity for client applications written in any language.") | |||
| 314 | (base32 | 314 | (base32 |
| 315 | "1pmvvm3sgnpngfa7884mqhq3fwdjh9sr0ca07ypnidcg0y341w53")))) | 315 | "1pmvvm3sgnpngfa7884mqhq3fwdjh9sr0ca07ypnidcg0y341w53")))) |
| 316 | (build-system python-build-system) | 316 | (build-system python-build-system) |
| 317 | (arguments | ||
| 318 | `(#:phases | ||
| 319 | (modify-phases %standard-phases | ||
| 320 | (add-before 'build 'fix-pillow | ||
| 321 | (lambda _ | ||
| 322 | ;; pillow's version is not in PIL.Image.VERSION anymore | ||
| 323 | (substitute* "nml/version_info.py" | ||
| 324 | (("from PIL import Image") "import PIL") | ||
| 325 | (("Image.VERSION") "PIL.__version__")) | ||
| 326 | #t))))) | ||
| 317 | (propagated-inputs | 327 | (propagated-inputs |
| 318 | `(("python-pillow" ,python-pillow) | 328 | `(("python-pillow" ,python-pillow) |
| 319 | ("python-ply" ,python-ply))) | 329 | ("python-ply" ,python-ply))) |
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 26170f1cad0..d41d3e1f663 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm | |||
| @@ -2213,7 +2213,24 @@ also available.") | |||
| 2213 | (modify-phases %standard-phases | 2213 | (modify-phases %standard-phases |
| 2214 | (add-before | 2214 | (add-before |
| 2215 | 'configure 'link-libm | 2215 | 'configure 'link-libm |
| 2216 | (lambda _ (setenv "LIBS" "-lm")))))) | 2216 | (lambda _ (setenv "LIBS" "-lm"))) |
| 2217 | (add-after 'install 'create-desktop-entry | ||
| 2218 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 2219 | (let* ((out (assoc-ref outputs "out")) | ||
| 2220 | (apps (string-append out "/share/applications"))) | ||
| 2221 | (mkdir-p apps) | ||
| 2222 | (with-output-to-file | ||
| 2223 | (string-append apps "/gnujump.desktop") | ||
| 2224 | (lambda _ | ||
| 2225 | (format #t | ||
| 2226 | "[Desktop Entry]~@ | ||
| 2227 | Name=GNUjump~@ | ||
| 2228 | Comment=Jump up the tower to survive~@ | ||
| 2229 | Exec=~a/bin/gnujump~@ | ||
| 2230 | Terminal=false~@ | ||
| 2231 | Type=Application~@ | ||
| 2232 | Categories=Game;ArcadeGame~%" | ||
| 2233 | out))))))))) | ||
| 2217 | (inputs | 2234 | (inputs |
| 2218 | `(("glu" ,glu) | 2235 | `(("glu" ,glu) |
| 2219 | ("mesa" ,mesa) | 2236 | ("mesa" ,mesa) |
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a2a5f98b76c..520d04d75f8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm | |||
| @@ -39,6 +39,8 @@ | |||
| 39 | ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> | 39 | ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> |
| 40 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> | 40 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> |
| 41 | ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net> | 41 | ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net> |
| 42 | ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||
| 43 | ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> | ||
| 42 | ;;; | 44 | ;;; |
| 43 | ;;; This file is part of GNU Guix. | 45 | ;;; This file is part of GNU Guix. |
| 44 | ;;; | 46 | ;;; |
| @@ -65,6 +67,7 @@ | |||
| 65 | #:use-module (gnu packages base) | 67 | #:use-module (gnu packages base) |
| 66 | #:use-module (gnu packages bash) | 68 | #:use-module (gnu packages bash) |
| 67 | #:use-module (gnu packages bison) | 69 | #:use-module (gnu packages bison) |
| 70 | #:use-module (gnu packages boost) | ||
| 68 | #:use-module (gnu packages build-tools) | 71 | #:use-module (gnu packages build-tools) |
| 69 | #:use-module (gnu packages calendar) | 72 | #:use-module (gnu packages calendar) |
| 70 | #:use-module (gnu packages cdrom) | 73 | #:use-module (gnu packages cdrom) |
| @@ -2626,7 +2629,7 @@ library.") | |||
| 2626 | (method url-fetch) | 2629 | (method url-fetch) |
| 2627 | (uri (string-append "mirror://gnome/sources/glib-networking/" | 2630 | (uri (string-append "mirror://gnome/sources/glib-networking/" |
| 2628 | (version-major+minor version) "/" | 2631 | (version-major+minor version) "/" |
| 2629 | name "-" version ".tar.xz")) | 2632 | "glib-networking-" version ".tar.xz")) |
| 2630 | (sha256 | 2633 | (sha256 |
| 2631 | (base32 | 2634 | (base32 |
| 2632 | "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm")))) | 2635 | "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm")))) |
| @@ -2689,7 +2692,7 @@ libxml to ease remote use of the RESTful API.") | |||
| 2689 | (method url-fetch) | 2692 | (method url-fetch) |
| 2690 | (uri (string-append "mirror://gnome/sources/libsoup/" | 2693 | (uri (string-append "mirror://gnome/sources/libsoup/" |
| 2691 | (version-major+minor version) "/" | 2694 | (version-major+minor version) "/" |
| 2692 | name "-" version ".tar.xz")) | 2695 | "libsoup-" version ".tar.xz")) |
| 2693 | (sha256 | 2696 | (sha256 |
| 2694 | (base32 | 2697 | (base32 |
| 2695 | "0amfw1yvy1kjrg41rfh2vvrw5gkwnyckqbw1fab50hm6xc1acbmx")))) | 2698 | "0amfw1yvy1kjrg41rfh2vvrw5gkwnyckqbw1fab50hm6xc1acbmx")))) |
| @@ -2795,16 +2798,16 @@ and the GLib main loop, to integrate well with GNOME applications.") | |||
| 2795 | (define-public libsecret | 2798 | (define-public libsecret |
| 2796 | (package | 2799 | (package |
| 2797 | (name "libsecret") | 2800 | (name "libsecret") |
| 2798 | (version "0.18.8") | 2801 | (version "0.19.1") |
| 2799 | (source (origin | 2802 | (source (origin |
| 2800 | (method url-fetch) | 2803 | (method url-fetch) |
| 2801 | (uri (string-append | 2804 | (uri (string-append |
| 2802 | "mirror://gnome/sources/libsecret/" | 2805 | "mirror://gnome/sources/libsecret/" |
| 2803 | (version-major+minor version) "/" | 2806 | (version-major+minor version) "/" |
| 2804 | name "-" version ".tar.xz")) | 2807 | "libsecret-" version ".tar.xz")) |
| 2805 | (sha256 | 2808 | (sha256 |
| 2806 | (base32 | 2809 | (base32 |
| 2807 | "058x64689k55wxfkdp4svhnwvv8jmqm7z5mrynybl38f4sfqiyiv")))) | 2810 | "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5")))) |
| 2808 | (build-system gnu-build-system) | 2811 | (build-system gnu-build-system) |
| 2809 | (outputs '("out" "doc")) | 2812 | (outputs '("out" "doc")) |
| 2810 | (arguments | 2813 | (arguments |
| @@ -3353,7 +3356,7 @@ playlists in a variety of formats.") | |||
| 3353 | (define-public aisleriot | 3356 | (define-public aisleriot |
| 3354 | (package | 3357 | (package |
| 3355 | (name "aisleriot") | 3358 | (name "aisleriot") |
| 3356 | (version "3.22.8") | 3359 | (version "3.22.9") |
| 3357 | (source (origin | 3360 | (source (origin |
| 3358 | (method url-fetch) | 3361 | (method url-fetch) |
| 3359 | (uri (string-append "mirror://gnome/sources/aisleriot/" | 3362 | (uri (string-append "mirror://gnome/sources/aisleriot/" |
| @@ -3361,7 +3364,7 @@ playlists in a variety of formats.") | |||
| 3361 | "aisleriot-" version ".tar.xz")) | 3364 | "aisleriot-" version ".tar.xz")) |
| 3362 | (sha256 | 3365 | (sha256 |
| 3363 | (base32 | 3366 | (base32 |
| 3364 | "15pm39679ymxki07sb5nvhycz4z53zwbvascyp5wm4864bn98815")))) | 3367 | "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji")))) |
| 3365 | (build-system glib-or-gtk-build-system) | 3368 | (build-system glib-or-gtk-build-system) |
| 3366 | (arguments | 3369 | (arguments |
| 3367 | '(#:configure-flags | 3370 | '(#:configure-flags |
| @@ -4204,9 +4207,9 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") | |||
| 4204 | (version "1.40.1") | 4207 | (version "1.40.1") |
| 4205 | (source (origin | 4208 | (source (origin |
| 4206 | (method url-fetch) | 4209 | (method url-fetch) |
| 4207 | (uri (string-append "mirror://gnome/sources/" name "/" | 4210 | (uri (string-append "mirror://gnome/sources/gvfs/" |
| 4208 | (version-major+minor version) "/" | 4211 | (version-major+minor version) "/" |
| 4209 | name "-" version ".tar.xz")) | 4212 | "gvfs-" version ".tar.xz")) |
| 4210 | (sha256 | 4213 | (sha256 |
| 4211 | (base32 | 4214 | (base32 |
| 4212 | "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj")))) | 4215 | "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj")))) |
| @@ -5902,15 +5905,15 @@ providing graphical log-ins and managing local and remote displays.") | |||
| 5902 | (define-public libgtop | 5905 | (define-public libgtop |
| 5903 | (package | 5906 | (package |
| 5904 | (name "libgtop") | 5907 | (name "libgtop") |
| 5905 | (version "2.38.0") | 5908 | (version "2.40.0") |
| 5906 | (source (origin | 5909 | (source (origin |
| 5907 | (method url-fetch) | 5910 | (method url-fetch) |
| 5908 | (uri (string-append "mirror://gnome/sources/" name "/" | 5911 | (uri (string-append "mirror://gnome/sources/libgtop/" |
| 5909 | (version-major+minor version) "/" | 5912 | (version-major+minor version) "/" |
| 5910 | name "-" version ".tar.xz")) | 5913 | "libgtop-" version ".tar.xz")) |
| 5911 | (sha256 | 5914 | (sha256 |
| 5912 | (base32 | 5915 | (base32 |
| 5913 | "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g")))) | 5916 | "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq")))) |
| 5914 | (build-system gnu-build-system) | 5917 | (build-system gnu-build-system) |
| 5915 | (native-inputs | 5918 | (native-inputs |
| 5916 | `(("gobject-introspection" ,gobject-introspection) | 5919 | `(("gobject-introspection" ,gobject-introspection) |
| @@ -6295,9 +6298,9 @@ easy, safe, and automatic.") | |||
| 6295 | (version "2.0.4") | 6298 | (version "2.0.4") |
| 6296 | (source (origin | 6299 | (source (origin |
| 6297 | (method url-fetch) | 6300 | (method url-fetch) |
| 6298 | (uri (string-append "mirror://gnome/sources/" name "/" | 6301 | (uri (string-append "mirror://gnome/sources/tracker/" |
| 6299 | (version-major+minor version) "/" | 6302 | (version-major+minor version) "/" |
| 6300 | name "-" version ".tar.xz")) | 6303 | "tracker-" version ".tar.xz")) |
| 6301 | (sha256 | 6304 | (sha256 |
| 6302 | (base32 | 6305 | (base32 |
| 6303 | "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf")))) | 6306 | "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf")))) |
| @@ -7224,9 +7227,9 @@ compiled.") | |||
| 7224 | (source (origin | 7227 | (source (origin |
| 7225 | (method url-fetch) | 7228 | (method url-fetch) |
| 7226 | (uri (string-append | 7229 | (uri (string-append |
| 7227 | "mirror://gnome/sources/" name "/" | 7230 | "mirror://gnome/sources/gfbgraph/" |
| 7228 | (version-major+minor version) "/" | 7231 | (version-major+minor version) "/" |
| 7229 | name "-" version ".tar.xz")) | 7232 | "gfbgraph-" version ".tar.xz")) |
| 7230 | (sha256 | 7233 | (sha256 |
| 7231 | (base32 | 7234 | (base32 |
| 7232 | "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs")))) | 7235 | "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs")))) |
| @@ -7994,7 +7997,7 @@ configurable file renaming. ") | |||
| 7994 | (define-public workrave | 7997 | (define-public workrave |
| 7995 | (package | 7998 | (package |
| 7996 | (name "workrave") | 7999 | (name "workrave") |
| 7997 | (version "1.10.23") | 8000 | (version "1.10.34") |
| 7998 | (source | 8001 | (source |
| 7999 | (origin | 8002 | (origin |
| 8000 | (method git-fetch) | 8003 | (method git-fetch) |
| @@ -8005,20 +8008,20 @@ configurable file renaming. ") | |||
| 8005 | version))))) | 8008 | version))))) |
| 8006 | (file-name (git-file-name name version)) | 8009 | (file-name (git-file-name name version)) |
| 8007 | (sha256 | 8010 | (sha256 |
| 8008 | (base32 "1qhlwfhwk5agv4904d6bsf83k9k89q7bms6agg967vsca4905vcw")))) | 8011 | (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf")))) |
| 8009 | (build-system glib-or-gtk-build-system) | 8012 | (build-system glib-or-gtk-build-system) |
| 8010 | (propagated-inputs `(("glib" ,glib) | 8013 | (inputs `(("glib" ,glib) |
| 8011 | ("gtk+" ,gtk+) | 8014 | ("gtk+" ,gtk+) |
| 8012 | ("gdk-pixbuf" ,gdk-pixbuf) | 8015 | ("gdk-pixbuf" ,gdk-pixbuf) |
| 8013 | ("gtkmm" ,gtkmm) | 8016 | ("gtkmm" ,gtkmm) |
| 8014 | ("glibmm" ,glibmm) | 8017 | ("glibmm" ,glibmm) |
| 8015 | ("libx11" ,libx11) | 8018 | ("libx11" ,libx11) |
| 8016 | ("libxtst" ,libxtst) | 8019 | ("libxtst" ,libxtst) |
| 8017 | ("dconf" ,dconf) | 8020 | ("dconf" ,dconf) |
| 8018 | ("libice" ,libice))) | 8021 | ("libice" ,libice) |
| 8019 | (inputs `(("libsm" ,libsm) | 8022 | ("libsm" ,libsm) |
| 8020 | ("python-cheetah" ,python2-cheetah))) | 8023 | ("libxscrnsaver" ,libxscrnsaver))) |
| 8021 | (native-inputs `(("glib" ,glib "bin") | 8024 | (native-inputs `(("boost" ,boost) |
| 8022 | ("pkg-config" ,pkg-config) | 8025 | ("pkg-config" ,pkg-config) |
| 8023 | ("gettext" ,gnu-gettext) | 8026 | ("gettext" ,gnu-gettext) |
| 8024 | ("autoconf" ,autoconf) | 8027 | ("autoconf" ,autoconf) |
| @@ -8026,9 +8029,9 @@ configurable file renaming. ") | |||
| 8026 | ("automake" ,automake) | 8029 | ("automake" ,automake) |
| 8027 | ("libtool" ,libtool) | 8030 | ("libtool" ,libtool) |
| 8028 | ("intltool" ,intltool) | 8031 | ("intltool" ,intltool) |
| 8029 | ("libxscrnsaver" ,libxscrnsaver) | ||
| 8030 | ("gobject-introspection" ,gobject-introspection) | 8032 | ("gobject-introspection" ,gobject-introspection) |
| 8031 | ("python2" ,python-2))) | 8033 | ("python3" ,python-3) |
| 8034 | ("python-jinja2" ,python-jinja2))) | ||
| 8032 | (synopsis "Tool to help prevent repetitive strain injury (RSI)") | 8035 | (synopsis "Tool to help prevent repetitive strain injury (RSI)") |
| 8033 | (description | 8036 | (description |
| 8034 | "Workrave is a program that assists in the recovery and prevention of | 8037 | "Workrave is a program that assists in the recovery and prevention of |
| @@ -8147,7 +8150,7 @@ generic enough to work for everyone.") | |||
| 8147 | (add-after 'install 'glib-or-gtk-wrap | 8150 | (add-after 'install 'glib-or-gtk-wrap |
| 8148 | (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) | 8151 | (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) |
| 8149 | (native-inputs | 8152 | (native-inputs |
| 8150 | `(("glib" ,glib "bin") ; glib-mkenums | 8153 | `(("glib" ,glib "bin") ; glib-mkenums |
| 8151 | ("pkg-config" ,pkg-config) | 8154 | ("pkg-config" ,pkg-config) |
| 8152 | ("intltool" ,intltool) | 8155 | ("intltool" ,intltool) |
| 8153 | ("itstool" ,itstool))) | 8156 | ("itstool" ,itstool))) |
| @@ -8155,6 +8158,7 @@ generic enough to work for everyone.") | |||
| 8155 | `(("enchant" ,enchant) | 8158 | `(("enchant" ,enchant) |
| 8156 | ("evolution-data-server" ,evolution-data-server) ; must be the same version | 8159 | ("evolution-data-server" ,evolution-data-server) ; must be the same version |
| 8157 | ("gcr" ,gcr) | 8160 | ("gcr" ,gcr) |
| 8161 | ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) | ||
| 8158 | ("gnome-autoar" ,gnome-autoar) | 8162 | ("gnome-autoar" ,gnome-autoar) |
| 8159 | ("gnome-desktop" ,gnome-desktop) | 8163 | ("gnome-desktop" ,gnome-desktop) |
| 8160 | ("gtkspell3" ,gtkspell3) | 8164 | ("gtkspell3" ,gtkspell3) |
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 95a35368fa6..56db4121454 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm | |||
| @@ -442,7 +442,7 @@ gpgpme starting with version 1.7.") | |||
| 442 | (define-public guile-gcrypt | 442 | (define-public guile-gcrypt |
| 443 | (package | 443 | (package |
| 444 | (name "guile-gcrypt") | 444 | (name "guile-gcrypt") |
| 445 | (version "0.1.0") | 445 | (version "0.2.0") |
| 446 | (home-page "https://notabug.org/cwebber/guile-gcrypt") | 446 | (home-page "https://notabug.org/cwebber/guile-gcrypt") |
| 447 | (source (origin | 447 | (source (origin |
| 448 | (method git-fetch) | 448 | (method git-fetch) |
| @@ -451,7 +451,7 @@ gpgpme starting with version 1.7.") | |||
| 451 | (commit (string-append "v" version)))) | 451 | (commit (string-append "v" version)))) |
| 452 | (sha256 | 452 | (sha256 |
| 453 | (base32 | 453 | (base32 |
| 454 | "1lhgh3105yi0ggrjsjibv4wp1ipz8s17pa820hk2wln3rc04wpvf")) | 454 | "1mhc5m4xygkfj7x18f8apiqpfdn9mrql0am5sk13cf5xn8x1r63z")) |
| 455 | (file-name (string-append name "-" version "-checkout")))) | 455 | (file-name (string-append name "-" version "-checkout")))) |
| 456 | (build-system gnu-build-system) | 456 | (build-system gnu-build-system) |
| 457 | (native-inputs | 457 | (native-inputs |
| @@ -915,6 +915,34 @@ bytes (whether by hand, OCR, QR code, or the like) and paperkey can use | |||
| 915 | them to transform your existing public key into a secret key.") | 915 | them to transform your existing public key into a secret key.") |
| 916 | (license license:gpl2+))) | 916 | (license license:gpl2+))) |
| 917 | 917 | ||
| 918 | (define-public pgpdump | ||
| 919 | (package | ||
| 920 | (name "pgpdump") | ||
| 921 | (version "0.33") | ||
| 922 | (source | ||
| 923 | (origin | ||
| 924 | (method url-fetch) | ||
| 925 | (uri (string-append "https://www.mew.org/~kazu/proj/pgpdump/pgpdump-" | ||
| 926 | version ".tar.gz")) | ||
| 927 | (sha256 | ||
| 928 | (base32 "1j001jra2m89n6cys3n0hs574bipjdzfxhzpnd4jfyv95mqwl7n4")))) | ||
| 929 | (build-system gnu-build-system) | ||
| 930 | (arguments | ||
| 931 | `(#:tests? #f ; no make check | ||
| 932 | #:configure-flags (list "--prefix=/") | ||
| 933 | #:make-flags (list "CC=gcc" | ||
| 934 | (string-append "DESTDIR=" (assoc-ref %outputs "out"))))) | ||
| 935 | (inputs | ||
| 936 | `(("zlib" ,zlib))) | ||
| 937 | (home-page "https://www.mew.org/~kazu/proj/pgpdump/en/") | ||
| 938 | (synopsis "PGP packet visualizer") | ||
| 939 | (description "pgpdump displays the sequence of OpenPGP or PGP version 2 | ||
| 940 | packets from a file. | ||
| 941 | |||
| 942 | The output of this command is similar to GnuPG's list packets command, | ||
| 943 | however, pgpdump produces more detailed and easier to understand output.") | ||
| 944 | (license license:bsd-3))) | ||
| 945 | |||
| 918 | (define-public gpa | 946 | (define-public gpa |
| 919 | (package | 947 | (package |
| 920 | (name "gpa") | 948 | (name "gpa") |
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 8b06aaa0e96..bde8b44a305 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm | |||
| @@ -139,14 +139,14 @@ more.") | |||
| 139 | (define-public r-diffusionmap | 139 | (define-public r-diffusionmap |
| 140 | (package | 140 | (package |
| 141 | (name "r-diffusionmap") | 141 | (name "r-diffusionmap") |
| 142 | (version "1.1-0.1") | 142 | (version "1.2.0") |
| 143 | (source | 143 | (source |
| 144 | (origin | 144 | (origin |
| 145 | (method url-fetch) | 145 | (method url-fetch) |
| 146 | (uri (cran-uri "diffusionMap" version)) | 146 | (uri (cran-uri "diffusionMap" version)) |
| 147 | (sha256 | 147 | (sha256 |
| 148 | (base32 | 148 | (base32 |
| 149 | "11l4kbciawvli5nlsi4qaf8afmgk5xgqiqpdyhvaqri5mx0zhk5j")))) | 149 | "1rvk7069brlm1s9kqj4c31mwwr3mw4hmhay95cjjjfmw5xclff2j")))) |
| 150 | (properties `((upstream-name . "diffusionMap"))) | 150 | (properties `((upstream-name . "diffusionMap"))) |
| 151 | (build-system r-build-system) | 151 | (build-system r-build-system) |
| 152 | (propagated-inputs | 152 | (propagated-inputs |
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 33abdd79a28..b3518efc5f2 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> | 13 | ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> |
| 14 | ;;; Copyright © 2019 Mark H Weaver <mhw@netris.org> | 14 | ;;; Copyright © 2019 Mark H Weaver <mhw@netris.org> |
| 15 | ;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au> | 15 | ;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au> |
| 16 | ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com> | ||
| 16 | ;;; | 17 | ;;; |
| 17 | ;;; This file is part of GNU Guix. | 18 | ;;; This file is part of GNU Guix. |
| 18 | ;;; | 19 | ;;; |
| @@ -1019,3 +1020,43 @@ requirements.") | |||
| 1019 | performance subdivision surface (subdiv) evaluation on massively parallel CPU | 1020 | performance subdivision surface (subdiv) evaluation on massively parallel CPU |
| 1020 | and GPU architectures.") | 1021 | and GPU architectures.") |
| 1021 | (license license:asl2.0))) | 1022 | (license license:asl2.0))) |
| 1023 | |||
| 1024 | (define-public opencsg | ||
| 1025 | (let ((dot-to-dash (lambda (c) (if (char=? c #\.) #\- c)))) | ||
| 1026 | (package | ||
| 1027 | (name "opencsg") | ||
| 1028 | (version "1.4.2") | ||
| 1029 | (source | ||
| 1030 | (origin | ||
| 1031 | (method git-fetch) | ||
| 1032 | (uri (git-reference | ||
| 1033 | (url "https://github.com/floriankirsch/OpenCSG.git") | ||
| 1034 | (commit (string-append "opencsg-" | ||
| 1035 | (string-map dot-to-dash version) | ||
| 1036 | "-release")))) | ||
| 1037 | (file-name (git-file-name name version)) | ||
| 1038 | (sha256 | ||
| 1039 | (base32 | ||
| 1040 | "00m4vs6jn3scqczscc4591l1d6zg6anqp9v1ldf9ymf70rdyvm7m")))) | ||
| 1041 | (build-system gnu-build-system) | ||
| 1042 | (arguments | ||
| 1043 | `(#:phases | ||
| 1044 | (modify-phases %standard-phases | ||
| 1045 | (replace 'configure | ||
| 1046 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1047 | (substitute* "src/Makefile" | ||
| 1048 | (("/usr/local") (assoc-ref outputs "out"))) | ||
| 1049 | #t)) | ||
| 1050 | (add-before 'build 'skip-example | ||
| 1051 | (lambda _ (chdir "src") #t))))) | ||
| 1052 | (inputs | ||
| 1053 | `(("glew" ,glew) | ||
| 1054 | ("freeglut" ,freeglut))) | ||
| 1055 | (synopsis "Library for rendering Constructive Solid Geometry (CSG)") | ||
| 1056 | (description | ||
| 1057 | "OpenCSG is a library for rendering Constructive Solid Geometry (CSG) using | ||
| 1058 | OpenGL. CSG is an approach for modeling complex 3D-shapes using simpler ones. | ||
| 1059 | For example, two shapes can be combined by uniting them, by intersecting them, | ||
| 1060 | or by subtracting one shape from the other.") | ||
| 1061 | (home-page "http://www.opencsg.org/") | ||
| 1062 | (license license:gpl2)))) | ||
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index b765ef36e11..2f974ee63ba 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> | 5 | ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> |
| 6 | ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> | 6 | ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 7 | ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> | 7 | ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> |
| 8 | ;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il> | 8 | ;;; Copyright © 2016, 2019 Eraim Flashner <efraim@flashner.co.il> |
| 9 | ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> | 9 | ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> |
| 10 | ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> | 10 | ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> |
| 11 | ;;; Copyright © 2016 Amirouche <amirouche@hypermove.net> | 11 | ;;; Copyright © 2016 Amirouche <amirouche@hypermove.net> |
| @@ -48,7 +48,6 @@ | |||
| 48 | #:use-module (gnu packages compression) | 48 | #:use-module (gnu packages compression) |
| 49 | #:use-module (gnu packages databases) | 49 | #:use-module (gnu packages databases) |
| 50 | #:use-module (gnu packages disk) | 50 | #:use-module (gnu packages disk) |
| 51 | #:use-module (gnu packages ed) | ||
| 52 | #:use-module (gnu packages emacs) | 51 | #:use-module (gnu packages emacs) |
| 53 | #:use-module (gnu packages emacs-xyz) | 52 | #:use-module (gnu packages emacs-xyz) |
| 54 | #:use-module (gnu packages gawk) | 53 | #:use-module (gnu packages gawk) |
| @@ -1926,30 +1925,17 @@ is no support for parsing block and inline level HTML.") | |||
| 1926 | (define-public mcron | 1925 | (define-public mcron |
| 1927 | (package | 1926 | (package |
| 1928 | (name "mcron") | 1927 | (name "mcron") |
| 1929 | (version "1.1.1") | 1928 | (version "1.1.2") |
| 1930 | (source (origin | 1929 | (source (origin |
| 1931 | (method url-fetch) | 1930 | (method url-fetch) |
| 1932 | (uri (string-append "mirror://gnu/mcron/mcron-" | 1931 | (uri (string-append "mirror://gnu/mcron/mcron-" |
| 1933 | version ".tar.gz")) | 1932 | version ".tar.gz")) |
| 1934 | (sha256 | 1933 | (sha256 |
| 1935 | (base32 | 1934 | (base32 |
| 1936 | "1i9mcp6r6my61zfiydsm3n6my41mwvl7dfala4q29qx0zn1ynlm4")))) | 1935 | "069m3ri7nc8lgy3h9ka7gj3v3anqj69x9jw4l3cfq65nqkxsch4g")))) |
| 1937 | (build-system gnu-build-system) | 1936 | (build-system gnu-build-system) |
| 1938 | (arguments | 1937 | (arguments |
| 1939 | '(#:phases (modify-phases %standard-phases | 1938 | '(#:phases (modify-phases %standard-phases |
| 1940 | (add-before 'check 'set-timezone | ||
| 1941 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 1942 | ;; 'tests/job-specifier.scm' expects to be running in | ||
| 1943 | ;; UTC-2 or something. | ||
| 1944 | ;; FIXME: This issue is being investigated upstream, for | ||
| 1945 | ;; now we'll just skip the tests (see below): | ||
| 1946 | ;; <https://lists.gnu.org/archive/html/bug-mcron/2018-04/msg00005.html>. | ||
| 1947 | (let ((tzdata (assoc-ref inputs "tzdata"))) | ||
| 1948 | (setenv "TZDIR" | ||
| 1949 | (string-append tzdata | ||
| 1950 | "/share/zoneinfo")) | ||
| 1951 | (setenv "TZ" "UTC-2") | ||
| 1952 | #t))) | ||
| 1953 | (add-before 'check 'adjust-tests | 1939 | (add-before 'check 'adjust-tests |
| 1954 | (lambda _ | 1940 | (lambda _ |
| 1955 | (substitute* "tests/job-specifier.scm" | 1941 | (substitute* "tests/job-specifier.scm" |
| @@ -1966,9 +1952,13 @@ is no support for parsing block and inline level HTML.") | |||
| 1966 | (("\\(test-equal \"next-year\"" all) | 1952 | (("\\(test-equal \"next-year\"" all) |
| 1967 | (string-append "(test-skip 4)\n" all))) | 1953 | (string-append "(test-skip 4)\n" all))) |
| 1968 | #t))))) | 1954 | #t))))) |
| 1969 | (native-inputs `(("pkg-config" ,pkg-config) | 1955 | (native-inputs `(("autoconf" ,autoconf) |
| 1956 | ("automake" ,automake) | ||
| 1957 | ("help2man" ,help2man) | ||
| 1958 | ("pkg-config" ,pkg-config) | ||
| 1959 | ("texinfo" ,texinfo) | ||
| 1970 | ("tzdata" ,tzdata-for-tests))) | 1960 | ("tzdata" ,tzdata-for-tests))) |
| 1971 | (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.2))) | 1961 | (inputs `(("guile" ,guile-2.2))) |
| 1972 | (home-page "https://www.gnu.org/software/mcron/") | 1962 | (home-page "https://www.gnu.org/software/mcron/") |
| 1973 | (synopsis "Run jobs at scheduled times") | 1963 | (synopsis "Run jobs at scheduled times") |
| 1974 | (description | 1964 | (description |
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 475a6c5ef09..478b8faebe4 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm | |||
| @@ -405,8 +405,8 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its | |||
| 405 | (home-page "https://github.com/aconchillo/guile-json") | 405 | (home-page "https://github.com/aconchillo/guile-json") |
| 406 | (source (origin | 406 | (source (origin |
| 407 | (method url-fetch) | 407 | (method url-fetch) |
| 408 | (uri (string-append "https://download.savannah.nongnu.org/releases/" | 408 | (uri (string-append "mirror://savannah/guile-json/guile-json-" |
| 409 | name "/" name "-" version ".tar.gz")) | 409 | version ".tar.gz")) |
| 410 | (sha256 | 410 | (sha256 |
| 411 | (base32 | 411 | (base32 |
| 412 | "15gnb84d7hpazqhskkf3g9z4r6knw54wfj4ch5270kakz1lp70c9")))) | 412 | "15gnb84d7hpazqhskkf3g9z4r6knw54wfj4ch5270kakz1lp70c9")))) |
| @@ -444,14 +444,14 @@ specification. These are the main features: | |||
| 444 | (package | 444 | (package |
| 445 | (inherit guile-json) | 445 | (inherit guile-json) |
| 446 | (name "guile-json") | 446 | (name "guile-json") |
| 447 | (version "3.1.0") | 447 | (version "3.2.0") |
| 448 | (source (origin | 448 | (source (origin |
| 449 | (method url-fetch) | 449 | (method url-fetch) |
| 450 | (uri (string-append "https://download.savannah.nongnu.org/releases/" | 450 | (uri (string-append "mirror://savannah/guile-json/guile-json-" |
| 451 | name "/" name "-" version ".tar.gz")) | 451 | version ".tar.gz")) |
| 452 | (sha256 | 452 | (sha256 |
| 453 | (base32 | 453 | (base32 |
| 454 | "1yfqscz74i4vxylabd3s9l0wbdp8bg9qxnv1ixdm3b1l7zdx00z3")))))) | 454 | "14m6b6g2maw0mkvfm4x63rqb54vgbpn1gcqs715ijw4bikfzlqfz")))))) |
| 455 | 455 | ||
| 456 | ;; There are two guile-gdbm packages, one using the FFI and one with | 456 | ;; There are two guile-gdbm packages, one using the FFI and one with |
| 457 | ;; direct C bindings, hence the verbose name. | 457 | ;; direct C bindings, hence the verbose name. |
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 5cd6549c27d..e09285d63ad 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm | |||
| @@ -245,7 +245,7 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}. | |||
| 245 | (define-public git-annex | 245 | (define-public git-annex |
| 246 | (package | 246 | (package |
| 247 | (name "git-annex") | 247 | (name "git-annex") |
| 248 | (version "7.20190708") | 248 | (version "7.20190912") |
| 249 | (source | 249 | (source |
| 250 | (origin | 250 | (origin |
| 251 | (method url-fetch) | 251 | (method url-fetch) |
| @@ -253,7 +253,7 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}. | |||
| 253 | "git-annex/git-annex-" version ".tar.gz")) | 253 | "git-annex/git-annex-" version ".tar.gz")) |
| 254 | (sha256 | 254 | (sha256 |
| 255 | (base32 | 255 | (base32 |
| 256 | "18s563swrp8mx479995pdhhmn40y3xwlbm1z3w63qsnjqmj7zlij")))) | 256 | "1a3jvl5cx32v78s3015i10cx00jprm1391rpww4mzkk1vskzn9cv")))) |
| 257 | (build-system haskell-build-system) | 257 | (build-system haskell-build-system) |
| 258 | (arguments | 258 | (arguments |
| 259 | `(#:configure-flags | 259 | `(#:configure-flags |
| @@ -337,6 +337,7 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}. | |||
| 337 | ("ghc-http-conduit" ,ghc-http-conduit) | 337 | ("ghc-http-conduit" ,ghc-http-conduit) |
| 338 | ("ghc-http-types" ,ghc-http-types) | 338 | ("ghc-http-types" ,ghc-http-types) |
| 339 | ("ghc-ifelse" ,ghc-ifelse) | 339 | ("ghc-ifelse" ,ghc-ifelse) |
| 340 | ("ghc-magic" ,ghc-magic) | ||
| 340 | ("ghc-memory" ,ghc-memory) | 341 | ("ghc-memory" ,ghc-memory) |
| 341 | ("ghc-monad-control" ,ghc-monad-control) | 342 | ("ghc-monad-control" ,ghc-monad-control) |
| 342 | ("ghc-monad-logger" ,ghc-monad-logger) | 343 | ("ghc-monad-logger" ,ghc-monad-logger) |
| @@ -374,9 +375,16 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}. | |||
| 374 | checking the file contents into Git. It can store files in many places, | 375 | checking the file contents into Git. It can store files in many places, |
| 375 | such as local hard drives and cloud storage services. It can also be | 376 | such as local hard drives and cloud storage services. It can also be |
| 376 | used to keep a folder in sync between computers.") | 377 | used to keep a folder in sync between computers.") |
| 377 | ;; The web app is released under the AGPLv3+. | 378 | ;; The main author has released all his changes under AGPLv3+ as of March |
| 378 | (license (list license:gpl3+ | 379 | ;; 2019 (7.20190219-187-g40ecf58d4). These are also licensed under the |
| 379 | license:agpl3+)))) | 380 | ;; original GPLv3+ license, but going forward new changes will be under |
| 381 | ;; only AGPLv3+. The other licenses below cover code written by others. | ||
| 382 | ;; See git-annex's COPYRIGHT file for details on each file. | ||
| 383 | (license (list license:agpl3+ | ||
| 384 | license:gpl3+ | ||
| 385 | license:bsd-2 | ||
| 386 | license:expat | ||
| 387 | license:gpl2)))) | ||
| 380 | 388 | ||
| 381 | (define-public hlint | 389 | (define-public hlint |
| 382 | (package | 390 | (package |
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 940fbe8a6c5..4313b6059e1 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org> | 5 | ;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org> |
| 6 | ;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> | 6 | ;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> |
| 7 | ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> | 7 | ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> |
| 8 | ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> | 8 | ;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il> |
| 9 | ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> | 9 | ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 10 | ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> | 10 | ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> |
| 11 | ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> | 11 | ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> |
| @@ -20,6 +20,7 @@ | |||
| 20 | ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> | 20 | ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> |
| 21 | ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> | 21 | ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> |
| 22 | ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> | 22 | ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> |
| 23 | ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com> | ||
| 23 | ;;; | 24 | ;;; |
| 24 | ;;; This file is part of GNU Guix. | 25 | ;;; This file is part of GNU Guix. |
| 25 | ;;; | 26 | ;;; |
| @@ -463,7 +464,7 @@ complicated text/binary file formats.") | |||
| 463 | (inputs | 464 | (inputs |
| 464 | `(("ghc-scientific" ,ghc-scientific-bootstrap))) | 465 | `(("ghc-scientific" ,ghc-scientific-bootstrap))) |
| 465 | (native-inputs '()) | 466 | (native-inputs '()) |
| 466 | (properties '(hidden? #t)))) | 467 | (properties '((hidden? #t))))) |
| 467 | 468 | ||
| 468 | (define-public ghc-attoparsec-iso8601 | 469 | (define-public ghc-attoparsec-iso8601 |
| 469 | (package | 470 | (package |
| @@ -5201,7 +5202,7 @@ in migrated modules.") | |||
| 5201 | (name "ghc-integer-logarithms-bootstrap") | 5202 | (name "ghc-integer-logarithms-bootstrap") |
| 5202 | (arguments `(#:tests? #f)) | 5203 | (arguments `(#:tests? #f)) |
| 5203 | (native-inputs '()) | 5204 | (native-inputs '()) |
| 5204 | (properties '(hidden? #t)))) | 5205 | (properties '((hidden? #t))))) |
| 5205 | 5206 | ||
| 5206 | (define-public ghc-interpolate | 5207 | (define-public ghc-interpolate |
| 5207 | (package | 5208 | (package |
| @@ -5954,6 +5955,28 @@ monadic incremental interface is provided as well.") | |||
| 5954 | compression algorithm used in the @code{.xz} file format.") | 5955 | compression algorithm used in the @code{.xz} file format.") |
| 5955 | (license license:bsd-3))) | 5956 | (license license:bsd-3))) |
| 5956 | 5957 | ||
| 5958 | (define-public ghc-magic | ||
| 5959 | (package | ||
| 5960 | (name "ghc-magic") | ||
| 5961 | (version "1.1") | ||
| 5962 | (source | ||
| 5963 | (origin | ||
| 5964 | (method url-fetch) | ||
| 5965 | (uri (string-append | ||
| 5966 | "https://hackage.haskell.org/package/magic/magic-" | ||
| 5967 | version ".tar.gz")) | ||
| 5968 | (sha256 | ||
| 5969 | (base32 | ||
| 5970 | "10p0gjjjwr1dda7hahwrwn5njbfhl67arq3v3nf1jr3vymlkn75j")))) | ||
| 5971 | (build-system haskell-build-system) | ||
| 5972 | (home-page "http://hackage.haskell.org/package/magic") | ||
| 5973 | (synopsis "Interface to C file/magic library") | ||
| 5974 | (description | ||
| 5975 | "This package provides a full-featured binding to the C libmagic library. | ||
| 5976 | With it, you can determine the type of a file by examining its contents rather | ||
| 5977 | than its name.") | ||
| 5978 | (license license:bsd-3))) | ||
| 5979 | |||
| 5957 | (define-public ghc-markdown-unlit | 5980 | (define-public ghc-markdown-unlit |
| 5958 | (package | 5981 | (package |
| 5959 | (name "ghc-markdown-unlit") | 5982 | (name "ghc-markdown-unlit") |
| @@ -8667,7 +8690,7 @@ notation}.") | |||
| 8667 | ("ghc-hashable" ,ghc-hashable) | 8690 | ("ghc-hashable" ,ghc-hashable) |
| 8668 | ("ghc-primitive" ,ghc-primitive))) | 8691 | ("ghc-primitive" ,ghc-primitive))) |
| 8669 | (native-inputs '()) | 8692 | (native-inputs '()) |
| 8670 | (properties '(hidden? #t)))) | 8693 | (properties '((hidden? #t))))) |
| 8671 | 8694 | ||
| 8672 | (define-public ghc-sdl | 8695 | (define-public ghc-sdl |
| 8673 | (package | 8696 | (package |
| @@ -8951,7 +8974,7 @@ semigroup.") | |||
| 8951 | ("ghc-tagged" ,ghc-tagged) | 8974 | ("ghc-tagged" ,ghc-tagged) |
| 8952 | ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap) | 8975 | ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap) |
| 8953 | ("ghc-hashable" ,ghc-hashable-bootstrap))) | 8976 | ("ghc-hashable" ,ghc-hashable-bootstrap))) |
| 8954 | (properties '(hidden? #t)))) | 8977 | (properties '((hidden? #t))))) |
| 8955 | 8978 | ||
| 8956 | (define-public ghc-setenv | 8979 | (define-public ghc-setenv |
| 8957 | (package | 8980 | (package |
| @@ -10781,7 +10804,7 @@ and high speed.") | |||
| 10781 | (arguments `(#:tests? #f)) | 10804 | (arguments `(#:tests? #f)) |
| 10782 | (inputs | 10805 | (inputs |
| 10783 | `(("ghc-hashable" ,ghc-hashable-bootstrap))) | 10806 | `(("ghc-hashable" ,ghc-hashable-bootstrap))) |
| 10784 | (properties '(hidden? #t)))) | 10807 | (properties '((hidden? #t))))) |
| 10785 | 10808 | ||
| 10786 | (define-public ghc-unsafe | 10809 | (define-public ghc-unsafe |
| 10787 | (package | 10810 | (package |
| @@ -11322,7 +11345,7 @@ widths to the Char type.") | |||
| 11322 | `(("ghc-setlocale" ,ghc-setlocale) | 11345 | `(("ghc-setlocale" ,ghc-setlocale) |
| 11323 | ("ghc-utf8-string" ,ghc-utf8-string) | 11346 | ("ghc-utf8-string" ,ghc-utf8-string) |
| 11324 | ("ghc-attoparsec" ,ghc-attoparsec-bootstrap))) | 11347 | ("ghc-attoparsec" ,ghc-attoparsec-bootstrap))) |
| 11325 | (properties '(hidden? #t)))) | 11348 | (properties '((hidden? #t))))) |
| 11326 | 11349 | ||
| 11327 | (define-public ghc-weigh | 11350 | (define-public ghc-weigh |
| 11328 | (package | 11351 | (package |
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4d16cd656fd..d86daa52c59 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm | |||
| @@ -596,7 +596,13 @@ interactive environment for the functional language Haskell.") | |||
| 596 | (("^test\\('T8108'") "# guix skipped: test('T8108'")) | 596 | (("^test\\('T8108'") "# guix skipped: test('T8108'")) |
| 597 | (substitute* "libraries/unix/tests/libposix/all.T" | 597 | (substitute* "libraries/unix/tests/libposix/all.T" |
| 598 | (("^test\\('posix010'") "# guix skipped: test('posix010'")) | 598 | (("^test\\('posix010'") "# guix skipped: test('posix010'")) |
| 599 | #t)))))))) | 599 | #t)))))) |
| 600 | (native-search-paths (list (search-path-specification | ||
| 601 | (variable "GHC_PACKAGE_PATH") | ||
| 602 | (files (list | ||
| 603 | (string-append "lib/ghc-" version))) | ||
| 604 | (file-pattern ".*\\.conf\\.d$") | ||
| 605 | (file-type 'directory)))))) | ||
| 600 | 606 | ||
| 601 | (define-public ghc-8 ghc-8.4) | 607 | (define-public ghc-8 ghc-8.4) |
| 602 | 608 | ||
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 4463007c74f..7b6c8b3e0b8 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm | |||
| @@ -1428,6 +1428,40 @@ PNG, and performs PNG integrity checks and corrections.") | |||
| 1428 | (home-page "http://optipng.sourceforge.net/") | 1428 | (home-page "http://optipng.sourceforge.net/") |
| 1429 | (license license:zlib))) | 1429 | (license license:zlib))) |
| 1430 | 1430 | ||
| 1431 | (define-public pngsuite | ||
| 1432 | (package | ||
| 1433 | (name "pngsuite") | ||
| 1434 | (version "2017jul19") | ||
| 1435 | (source | ||
| 1436 | (origin | ||
| 1437 | (method url-fetch/tarbomb) | ||
| 1438 | (uri (string-append "http://www.schaik.com/pngsuite2011/PngSuite-" | ||
| 1439 | version ".tgz")) | ||
| 1440 | (sha256 | ||
| 1441 | (base32 | ||
| 1442 | "1j7xgd9iffcnpphhzz9ld9ybrjmx9brhq0803g0450ssr52b5502")))) | ||
| 1443 | (build-system gnu-build-system) | ||
| 1444 | (arguments | ||
| 1445 | '(#:tests? #f ; there is no test target | ||
| 1446 | #:license-file-regexp "PngSuite.LICENSE" | ||
| 1447 | #:phases | ||
| 1448 | (modify-phases %standard-phases | ||
| 1449 | (replace 'install | ||
| 1450 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1451 | (let ((out (assoc-ref outputs "out"))) | ||
| 1452 | (copy-recursively "." (string-append out "/")) | ||
| 1453 | #t))) | ||
| 1454 | (delete 'build) | ||
| 1455 | (delete 'configure)))) | ||
| 1456 | (home-page "http://www.schaik.com/pngsuite2011/pngsuite.html") | ||
| 1457 | (synopsis "Example PNGs for use in test suites") | ||
| 1458 | (description "Collection of graphics images created to test PNG | ||
| 1459 | applications like viewers, converters and editors. As far as that is | ||
| 1460 | possible, all formats supported by the PNG standard are represented.") | ||
| 1461 | (license (license:fsdg-compatible "file://PngSuite.LICENSE" "Permission to | ||
| 1462 | use, copy, modify and distribute these images for any purpose and without fee | ||
| 1463 | is hereby granted.")))) | ||
| 1464 | |||
| 1431 | (define-public libjpeg-turbo | 1465 | (define-public libjpeg-turbo |
| 1432 | (package | 1466 | (package |
| 1433 | (name "libjpeg-turbo") | 1467 | (name "libjpeg-turbo") |
| @@ -1755,3 +1789,42 @@ identical visual appearance.") | |||
| 1755 | to the standard output. It works well together with grim.") | 1789 | to the standard output. It works well together with grim.") |
| 1756 | ;; MIT license. | 1790 | ;; MIT license. |
| 1757 | (license license:expat))) | 1791 | (license license:expat))) |
| 1792 | |||
| 1793 | (define-public sng | ||
| 1794 | (package | ||
| 1795 | (name "sng") | ||
| 1796 | (version "1.1.0") | ||
| 1797 | (source | ||
| 1798 | (origin | ||
| 1799 | (method url-fetch) | ||
| 1800 | (uri (string-append "mirror://sourceforge/sng/sng-" | ||
| 1801 | version ".tar.gz")) | ||
| 1802 | (sha256 | ||
| 1803 | (base32 "06a6ydvx9xb3vxvrzdrg3hq0rjwwj9ibr7fyyxjxq6qx1j3mb70i")))) | ||
| 1804 | (build-system gnu-build-system) | ||
| 1805 | (arguments | ||
| 1806 | `(#:phases | ||
| 1807 | (modify-phases %standard-phases | ||
| 1808 | (add-before 'check 'link-pngsuite | ||
| 1809 | ;; tests expect pngsuite in source dir | ||
| 1810 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 1811 | (symlink (assoc-ref inputs "pngsuite") "pngsuite") | ||
| 1812 | #t))) | ||
| 1813 | #:configure-flags | ||
| 1814 | (list (string-append "--with-rgbtxt=" | ||
| 1815 | (assoc-ref %build-inputs "xorg-rgb") | ||
| 1816 | "/share/X11/rgb.txt")))) | ||
| 1817 | (inputs `(("xorg-rgb" ,xorg-rgb) | ||
| 1818 | ("libpng" ,libpng))) | ||
| 1819 | (native-inputs `(("pngsuite" ,pngsuite))) | ||
| 1820 | (home-page "http://sng.sourceforge.net") | ||
| 1821 | (synopsis "Markup language for representing PNG contents") | ||
| 1822 | (description "SNG (Scriptable Network Graphics) is a minilanguage designed | ||
| 1823 | specifically to represent the entire contents of a PNG (Portable Network | ||
| 1824 | Graphics) file in an editable form. Thus, SNGs representing elaborate | ||
| 1825 | graphics images and ancillary chunk data can be readily generated or modified | ||
| 1826 | using only text tools. | ||
| 1827 | |||
| 1828 | SNG is implemented by a compiler/decompiler called sng that | ||
| 1829 | losslessly translates between SNG and PNG.") | ||
| 1830 | (license license:zlib))) | ||
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 622f1253d8f..e3418c1fec3 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> | 5 | ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> |
| 6 | ;;; Copyright © 2016 ng0 <ng0@n0.is> | 6 | ;;; Copyright © 2016 ng0 <ng0@n0.is> |
| 7 | ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> | 7 | ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> |
| 8 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 8 | ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 9 | ;;; | 9 | ;;; |
| 10 | ;;; This file is part of GNU Guix. | 10 | ;;; This file is part of GNU Guix. |
| 11 | ;;; | 11 | ;;; |
| @@ -166,15 +166,14 @@ SILC and ICB protocols via plugins.") | |||
| 166 | (define-public weechat | 166 | (define-public weechat |
| 167 | (package | 167 | (package |
| 168 | (name "weechat") | 168 | (name "weechat") |
| 169 | (version "2.5") | 169 | (version "2.6") |
| 170 | (source (origin | 170 | (source (origin |
| 171 | (method url-fetch) | 171 | (method url-fetch) |
| 172 | (uri (string-append "https://weechat.org/files/src/weechat-" | 172 | (uri (string-append "https://weechat.org/files/src/weechat-" |
| 173 | version ".tar.xz")) | 173 | version ".tar.xz")) |
| 174 | (sha256 | 174 | (sha256 |
| 175 | (base32 | 175 | (base32 |
| 176 | "09sc5lf7z70x3iw87q4zh8rbyngsw89pwnzs5jk195zzqdspgj2j")) | 176 | "0j2iflnfvv31q2l9r67r8aj3ipggqfm2r2dpy7pvdpxgwwq337ps")))) |
| 177 | (patches (search-patches "weechat-python.patch")))) | ||
| 178 | (build-system cmake-build-system) | 177 | (build-system cmake-build-system) |
| 179 | (native-inputs | 178 | (native-inputs |
| 180 | `(("gettext" ,gettext-minimal) | 179 | `(("gettext" ,gettext-minimal) |
| @@ -187,9 +186,11 @@ SILC and ICB protocols via plugins.") | |||
| 187 | ("aspell" ,aspell) | 186 | ("aspell" ,aspell) |
| 188 | ("curl" ,curl) | 187 | ("curl" ,curl) |
| 189 | ("gnutls" ,gnutls) | 188 | ("gnutls" ,gnutls) |
| 189 | |||
| 190 | ;; Scripting language plug-ins. | ||
| 190 | ("guile" ,guile-2.0) | 191 | ("guile" ,guile-2.0) |
| 191 | ("lua" ,lua-5.1) | 192 | ("lua" ,lua-5.1) |
| 192 | ("python" ,python-2) | 193 | ("python" ,python) |
| 193 | ("perl" ,perl) | 194 | ("perl" ,perl) |
| 194 | ("tcl" ,tcl))) | 195 | ("tcl" ,tcl))) |
| 195 | (arguments | 196 | (arguments |
| @@ -214,14 +215,7 @@ SILC and ICB protocols via plugins.") | |||
| 214 | (substitute* "tests/scripts/test-scripts.cpp" | 215 | (substitute* "tests/scripts/test-scripts.cpp" |
| 215 | ((".*\\{ \"(javascript|php|ruby)\", " all) | 216 | ((".*\\{ \"(javascript|php|ruby)\", " all) |
| 216 | (string-append "// SKIP" all))) | 217 | (string-append "// SKIP" all))) |
| 217 | #t)) | 218 | #t))))) |
| 218 | (add-after 'install 'wrap | ||
| 219 | (lambda* (#:key inputs outputs #:allow-other-keys) | ||
| 220 | (let ((out (assoc-ref outputs "out")) | ||
| 221 | (py2 (assoc-ref inputs "python"))) | ||
| 222 | (wrap-program (string-append out "/bin/weechat") | ||
| 223 | `("PATH" ":" prefix (,(string-append py2 "/bin")))) | ||
| 224 | #t)))))) | ||
| 225 | (synopsis "Extensible chat client") | 219 | (synopsis "Extensible chat client") |
| 226 | (description "WeeChat (Wee Enhanced Environment for Chat) is an | 220 | (description "WeeChat (Wee Enhanced Environment for Chat) is an |
| 227 | @dfn{Internet Relay Chat} (IRC) client, which is designed to be light and fast. | 221 | @dfn{Internet Relay Chat} (IRC) client, which is designed to be light and fast. |
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index 9e1818dfaf5..2993eb66f69 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> | 2 | ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> |
| 3 | ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> | 3 | ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 4 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 4 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 5 | ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> | 5 | ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> |
| 6 | ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> | 6 | ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> |
| @@ -144,45 +144,20 @@ be able to view it naturally and easily."))) | |||
| 144 | (name "js-respond") | 144 | (name "js-respond") |
| 145 | (version "1.4.2") | 145 | (version "1.4.2") |
| 146 | (source (origin | 146 | (source (origin |
| 147 | (method url-fetch) | 147 | (method git-fetch) |
| 148 | (uri (string-append "https://github.com/scottjehl/Respond/" | 148 | (uri (git-reference |
| 149 | "archive/" version ".tar.gz")) | 149 | (url "https://github.com/scottjehl/Respond") |
| 150 | (file-name (string-append name "-" version ".tar.gz")) | 150 | (commit version))) |
| 151 | (file-name (git-file-name name version)) | ||
| 151 | (sha256 | 152 | (sha256 |
| 152 | (base32 | 153 | (base32 |
| 153 | "0ds1ya2a185jp93mdn07159c2x8zczwi960ykrawpp62bwk2n93d")))) | 154 | "00xid731rirc7sdy1gc8qal3v9g0agr2qx15hm4x97l1lcbylyn2")))) |
| 154 | (build-system trivial-build-system) | 155 | (build-system minify-build-system) |
| 155 | (arguments | 156 | (arguments |
| 156 | `(#:modules ((guix build utils)) | 157 | `(#:javascript-files '("src/matchmedia.addListener.js" |
| 157 | #:builder | 158 | "src/matchmedia.polyfill.js" |
| 158 | (begin | 159 | "src/respond.js"))) |
| 159 | (use-modules (guix build utils) | ||
| 160 | (ice-9 match) | ||
| 161 | (ice-9 popen) | ||
| 162 | (srfi srfi-26)) | ||
| 163 | (set-path-environment-variable | ||
| 164 | "PATH" '("bin") (map (match-lambda | ||
| 165 | ((_ . input) | ||
| 166 | input)) | ||
| 167 | %build-inputs)) | ||
| 168 | (let ((install-directory (string-append %output | ||
| 169 | "/share/javascript/respond/"))) | ||
| 170 | (invoke "tar" "xvf" | ||
| 171 | (assoc-ref %build-inputs "source") | ||
| 172 | "--strip" "1") | ||
| 173 | (mkdir-p install-directory) | ||
| 174 | (let* ((file "src/respond.js") | ||
| 175 | (installed (string-append install-directory "respond.min.js"))) | ||
| 176 | (let ((minified (open-pipe* OPEN_READ "uglify-js" file))) | ||
| 177 | (call-with-output-file installed | ||
| 178 | (cut dump-port minified <>))))) | ||
| 179 | #t))) | ||
| 180 | (home-page "https://github.com/scottjehl/Respond") | 160 | (home-page "https://github.com/scottjehl/Respond") |
| 181 | (native-inputs | ||
| 182 | `(("uglify-js" ,uglify-js) | ||
| 183 | ("source" ,source) | ||
| 184 | ("gzip" ,gzip) | ||
| 185 | ("tar" ,tar))) | ||
| 186 | (synopsis "Polyfill for min/max-width CSS3 Media Queries") | 161 | (synopsis "Polyfill for min/max-width CSS3 Media Queries") |
| 187 | (description "The goal of this script is to provide a fast and lightweight | 162 | (description "The goal of this script is to provide a fast and lightweight |
| 188 | script to enable responsive web designs in browsers that don't support CSS3 | 163 | script to enable responsive web designs in browsers that don't support CSS3 |
| @@ -194,13 +169,14 @@ Media Queries.") | |||
| 194 | (name "js-html5shiv") | 169 | (name "js-html5shiv") |
| 195 | (version "3.7.3") | 170 | (version "3.7.3") |
| 196 | (source (origin | 171 | (source (origin |
| 197 | (method url-fetch) | 172 | (method git-fetch) |
| 198 | (uri (string-append "https://github.com/aFarkas/html5shiv/" | 173 | (uri (git-reference |
| 199 | "archive/" version ".tar.gz")) | 174 | (url "https://github.com/aFarkas/html5shiv") |
| 200 | (file-name (string-append name "-" version ".tar.gz")) | 175 | (commit version))) |
| 176 | (file-name (git-file-name name version)) | ||
| 201 | (sha256 | 177 | (sha256 |
| 202 | (base32 | 178 | (base32 |
| 203 | "0inlbpxpqzdyi24lqagzf7l24zxg0y02xcpqs2h4npjscazzw7hg")))) | 179 | "0y1c5nyq0brl9fjdihhax33vks4s1ij9iv113879sg3zflmgqpd0")))) |
| 204 | (build-system minify-build-system) | 180 | (build-system minify-build-system) |
| 205 | (home-page "https://github.com/aFarkas/html5shiv") | 181 | (home-page "https://github.com/aFarkas/html5shiv") |
| 206 | (synopsis "Enable HTML5 sectioning elements in legacy browsers") | 182 | (synopsis "Enable HTML5 sectioning elements in legacy browsers") |
| @@ -264,13 +240,14 @@ provided by ES5. @code{JSONPath} is used to represent the links.") | |||
| 264 | (name "js-strftime") | 240 | (name "js-strftime") |
| 265 | (version "0.10.0") | 241 | (version "0.10.0") |
| 266 | (source (origin | 242 | (source (origin |
| 267 | (method url-fetch) | 243 | (method git-fetch) |
| 268 | (uri (string-append "https://github.com/samsonjs/strftime/" | 244 | (uri (git-reference |
| 269 | "archive/v" version ".tar.gz")) | 245 | (url"https://github.com/samsonjs/strftime") |
| 270 | (file-name (string-append name "-" version ".tar.gz")) | 246 | (commit (string-append "v" version)))) |
| 247 | (file-name (git-file-name name version)) | ||
| 271 | (sha256 | 248 | (sha256 |
| 272 | (base32 | 249 | (base32 |
| 273 | "1iya43w7y26y2dp9l4d40bhjc4scb5a9mng5ng5c8hsqr82f1375")))) | 250 | "131nmlivazwxyba25kh9lda99749fq4xsyin6lzfalaaydviby4p")))) |
| 274 | (build-system minify-build-system) | 251 | (build-system minify-build-system) |
| 275 | (arguments | 252 | (arguments |
| 276 | `(#:javascript-files '("strftime.js"))) | 253 | `(#:javascript-files '("strftime.js"))) |
| @@ -287,13 +264,14 @@ well as some other extensions from Ruby.") | |||
| 287 | (name "js-highlight") | 264 | (name "js-highlight") |
| 288 | (version "9.12.0") | 265 | (version "9.12.0") |
| 289 | (source (origin | 266 | (source (origin |
| 290 | (method url-fetch) | 267 | (method git-fetch) |
| 291 | (uri (string-append "https://github.com/isagalaev/highlight.js/" | 268 | (uri (git-reference |
| 292 | "archive/" version ".tar.gz")) | 269 | (url "https://github.com/isagalaev/highlight.js") |
| 293 | (file-name (string-append name "-" version ".tar.gz")) | 270 | (commit version))) |
| 271 | (file-name (git-file-name name version)) | ||
| 294 | (sha256 | 272 | (sha256 |
| 295 | (base32 | 273 | (base32 |
| 296 | "1jjn9mj7fwq4zpr6is438bscf03b3q8jkj0k5c3fc6pkmjnhw939")))) | 274 | "12qz22qjpd6svj58pwgcwg2x2rzhihfdrxg6lgj39nfpaln6dris")))) |
| 297 | (build-system minify-build-system) | 275 | (build-system minify-build-system) |
| 298 | (arguments | 276 | (arguments |
| 299 | `(#:javascript-files '("src/highlight.js"))) | 277 | `(#:javascript-files '("src/highlight.js"))) |
| @@ -329,18 +307,41 @@ Javascript library, adding sorting, paging and filtering abilities to plain | |||
| 329 | HTML tables with minimal effort.") | 307 | HTML tables with minimal effort.") |
| 330 | (license license:expat))) | 308 | (license license:expat))) |
| 331 | 309 | ||
| 310 | (define-public js-requirejs | ||
| 311 | (package | ||
| 312 | (name "js-requirejs") | ||
| 313 | (version "2.3.6") | ||
| 314 | (source (origin | ||
| 315 | (method git-fetch) | ||
| 316 | (uri (git-reference | ||
| 317 | (url "https://github.com/requirejs/requirejs.git") | ||
| 318 | (commit version))) | ||
| 319 | (file-name (git-file-name name version)) | ||
| 320 | (sha256 | ||
| 321 | (base32 | ||
| 322 | "0cvd5y2mb3h6yil3niqn3gjqrzixdsxcz4rvc2f0hg4kzp5y0w86")))) | ||
| 323 | (build-system minify-build-system) | ||
| 324 | (arguments `(#:javascript-files '("require.js"))) | ||
| 325 | (home-page "https://github.com/requirejs/requirejs/") | ||
| 326 | (synopsis "File and module loader for JavaScript") | ||
| 327 | (description "RequireJS loads plain JavaScript files as well as more | ||
| 328 | defined modules. It is optimized for in-browser use, including in a Web | ||
| 329 | Worker, but it can be used in other JavaScript environments.") | ||
| 330 | (license license:expat))) | ||
| 331 | |||
| 332 | (define-public js-selectize | 332 | (define-public js-selectize |
| 333 | (package | 333 | (package |
| 334 | (name "js-selectize") | 334 | (name "js-selectize") |
| 335 | (version "0.12.4") | 335 | (version "0.12.6") |
| 336 | (source (origin | 336 | (source (origin |
| 337 | (method url-fetch) | 337 | (method git-fetch) |
| 338 | (uri (string-append "https://github.com/selectize/selectize.js/" | 338 | (uri (git-reference |
| 339 | "archive/v" version ".tar.gz")) | 339 | (url "https://github.com/selectize/selectize.js") |
| 340 | (file-name (string-append name "-" version ".tar.gz")) | 340 | (commit (string-append "v" version)))) |
| 341 | (file-name (git-file-name name version)) | ||
| 341 | (sha256 | 342 | (sha256 |
| 342 | (base32 | 343 | (base32 |
| 343 | "0756p49aaz34mw2dx8k1gxf210mngfrri25vkba0j7wihd2af8gn")))) | 344 | "15gichl8wi6yxag2ps723nxrgyan15976dzsnvw9h9py8sbyyzjn")))) |
| 344 | (build-system minify-build-system) | 345 | (build-system minify-build-system) |
| 345 | (arguments `(#:javascript-files '("src/selectize.js"))) | 346 | (arguments `(#:javascript-files '("src/selectize.js"))) |
| 346 | (home-page "http://selectize.github.io/selectize.js/") | 347 | (home-page "http://selectize.github.io/selectize.js/") |
| @@ -353,15 +354,16 @@ navigation; it is useful for tagging, contact lists, etc.") | |||
| 353 | (define-public js-es5-shim | 354 | (define-public js-es5-shim |
| 354 | (package | 355 | (package |
| 355 | (name "js-es5-shim") | 356 | (name "js-es5-shim") |
| 356 | (version "4.5.9") | 357 | (version "4.5.13") |
| 357 | (source (origin | 358 | (source (origin |
| 358 | (method url-fetch) | 359 | (method git-fetch) |
| 359 | (uri (string-append "https://github.com/es-shims/es5-shim/" | 360 | (uri (git-reference |
| 360 | "archive/v" version ".tar.gz")) | 361 | (url "https://github.com/es-shims/es5-shim") |
| 361 | (file-name (string-append name "-" version ".tar.gz")) | 362 | (commit (string-append "v" version)))) |
| 363 | (file-name (git-file-name name version)) | ||
| 362 | (sha256 | 364 | (sha256 |
| 363 | (base32 | 365 | (base32 |
| 364 | "0yfndyijz0ykddzprpvfjb2453gzpn528klmwycwbqc1bqd3m1hl")))) | 366 | "142w384fbyllq4yggv173g82lw3wix4jqcg6hkhx1ymq89vvnpmh")))) |
| 365 | (build-system minify-build-system) | 367 | (build-system minify-build-system) |
| 366 | (arguments `(#:javascript-files | 368 | (arguments `(#:javascript-files |
| 367 | '("es5-sham.js" | 369 | '("es5-sham.js" |
| @@ -381,13 +383,14 @@ means that these shams cause many ES5 methods to silently fail.") | |||
| 381 | (name "js-filesaver") | 383 | (name "js-filesaver") |
| 382 | (version "1.3.8") | 384 | (version "1.3.8") |
| 383 | (source (origin | 385 | (source (origin |
| 384 | (method url-fetch) | 386 | (method git-fetch) |
| 385 | (uri (string-append "https://github.com/eligrey/FileSaver.js/" | 387 | (uri (git-reference |
| 386 | "archive/" version ".tar.gz")) | 388 | (url "https://github.com/eligrey/FileSaver.js") |
| 387 | (file-name (string-append name "-" version)) | 389 | (commit version))) |
| 390 | (file-name (git-file-name name version)) | ||
| 388 | (sha256 | 391 | (sha256 |
| 389 | (base32 | 392 | (base32 |
| 390 | "1rkhfqs5plaj628kzj7qgm5qahy4v7ihygifidqr6g6265mil97h")))) | 393 | "0gvqk0hnr8fig0n4da7vj7q6z31bcyv52916xz3rbmdj3pgpiv1d")))) |
| 391 | (build-system minify-build-system) | 394 | (build-system minify-build-system) |
| 392 | (arguments | 395 | (arguments |
| 393 | `(#:phases | 396 | `(#:phases |
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index d8c0649131a..2d72c39436a 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm | |||
| @@ -529,16 +529,16 @@ different notification systems.") | |||
| 529 | (define-public kdeconnect | 529 | (define-public kdeconnect |
| 530 | (package | 530 | (package |
| 531 | (name "kdeconnect") | 531 | (name "kdeconnect") |
| 532 | (version "1.3.3") | 532 | (version "1.3.5") |
| 533 | (source | 533 | (source |
| 534 | (origin | 534 | (origin |
| 535 | (method url-fetch) | 535 | (method url-fetch) |
| 536 | (uri (string-append "mirror://kde/stable/kdeconnect/" | 536 | (uri (string-append "mirror://kde/stable/kdeconnect/" |
| 537 | version "/src/kdeconnect-kde-" | 537 | version "/kdeconnect-kde-" |
| 538 | version ".tar.xz")) | 538 | version ".tar.xz")) |
| 539 | (sha256 | 539 | (sha256 |
| 540 | (base32 | 540 | (base32 |
| 541 | "1vac0mw1myrswr61adv7lgif0c4wzw5wnsj0sqxj6msp4l4pfgsg")))) | 541 | "02lr3xx5s2mgddac4n3lkgr7ppf1z5m6ajs90rjix0vs8a271kp5")))) |
| 542 | (build-system cmake-build-system) | 542 | (build-system cmake-build-system) |
| 543 | (arguments | 543 | (arguments |
| 544 | `(#:configure-flags '("-DBUILD_TESTING=ON") | 544 | `(#:configure-flags '("-DBUILD_TESTING=ON") |
| @@ -600,4 +600,30 @@ communicate with each other. Here's a few things KDE Connect can do: | |||
| 600 | @item Browse your phone from the desktop | 600 | @item Browse your phone from the desktop |
| 601 | @item Control the desktop's volume from the phone | 601 | @item Control the desktop's volume from the phone |
| 602 | @end enumerate") | 602 | @end enumerate") |
| 603 | (properties `((upstream-name . "kdeconnect-kde"))) | ||
| 603 | (license (list license:gpl2 license:gpl3)))) ; dual licensed | 604 | (license (list license:gpl2 license:gpl3)))) ; dual licensed |
| 605 | |||
| 606 | (define-public kqtquickcharts | ||
| 607 | (package | ||
| 608 | (name "kqtquickcharts") | ||
| 609 | (version "19.08.1") | ||
| 610 | (source | ||
| 611 | (origin | ||
| 612 | (method url-fetch) | ||
| 613 | (uri (string-append "mirror://kde/stable/applications/" | ||
| 614 | version "/src/kqtquickcharts-" version ".tar.xz")) | ||
| 615 | (sha256 | ||
| 616 | (base32 | ||
| 617 | "1j3rivvh4sa94lsd0hi4xfvcikl05zrqd7634wxyaxs718ais6dg")))) | ||
| 618 | (build-system cmake-build-system) | ||
| 619 | (native-inputs | ||
| 620 | `(("extra-cmake-modules" ,extra-cmake-modules))) | ||
| 621 | (inputs | ||
| 622 | `(("qtbase" ,qtbase) | ||
| 623 | ("qtdeclarative" ,qtdeclarative))) | ||
| 624 | (home-page "https://phabricator.kde.org/source/kqtquickcharts/") | ||
| 625 | (synopsis "Interactive charts for Qt Quick") | ||
| 626 | (description | ||
| 627 | "Kqtquickcharts is a QtQuick plugin to render beautiful and interactive | ||
| 628 | charts.") | ||
| 629 | (license license:lgpl2.1+))) | ||
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 73376feecbe..1ed2483615f 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> | 2 | ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> |
| 3 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 3 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 4 | ;;; Copyright © 2018 ng0 <ng0@n0.is> | 4 | ;;; Copyright © 2018 ng0 <ng0@n0.is> |
| 5 | ;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com> | ||
| 5 | ;;; | 6 | ;;; |
| 6 | ;;; This file is part of GNU Guix. | 7 | ;;; This file is part of GNU Guix. |
| 7 | ;;; | 8 | ;;; |
| @@ -20,13 +21,26 @@ | |||
| 20 | 21 | ||
| 21 | (define-module (gnu packages language) | 22 | (define-module (gnu packages language) |
| 22 | #:use-module (gnu packages) | 23 | #:use-module (gnu packages) |
| 24 | #:use-module (gnu packages glib) | ||
| 25 | #:use-module (gnu packages gtk) | ||
| 26 | #:use-module (gnu packages ocr) | ||
| 23 | #:use-module (gnu packages perl) | 27 | #:use-module (gnu packages perl) |
| 28 | #:use-module (gnu packages pkg-config) | ||
| 29 | #:use-module (gnu packages python) | ||
| 24 | #:use-module (gnu packages perl-check) | 30 | #:use-module (gnu packages perl-check) |
| 31 | #:use-module (gnu packages swig) | ||
| 25 | #:use-module (gnu packages web) | 32 | #:use-module (gnu packages web) |
| 33 | #:use-module (gnu packages xorg) | ||
| 26 | #:use-module (guix packages) | 34 | #:use-module (guix packages) |
| 35 | #:use-module (guix build-system gnu) | ||
| 27 | #:use-module (guix build-system perl) | 36 | #:use-module (guix build-system perl) |
| 28 | #:use-module ((guix licenses) #:select (gpl2 gpl3 perl-license)) | 37 | #:use-module (guix build-system python) |
| 29 | #:use-module (guix download)) | 38 | #:use-module ((guix licenses) |
| 39 | #:select | ||
| 40 | (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 perl-license zpl2.1)) | ||
| 41 | #:use-module (guix download) | ||
| 42 | #:use-module (guix git-download) | ||
| 43 | #:use-module (guix utils)) | ||
| 30 | 44 | ||
| 31 | (define-public perl-lingua-en-findnumber | 45 | (define-public perl-lingua-en-findnumber |
| 32 | (package | 46 | (package |
| @@ -406,3 +420,466 @@ string can be easily inferred by a human just by reading the identifier.") | |||
| 406 | (description "This module is a rather incomplete implementation of work | 420 | (description "This module is a rather incomplete implementation of work |
| 407 | done by Gudrun Putze-Meier.") | 421 | done by Gudrun Putze-Meier.") |
| 408 | (license perl-license))) | 422 | (license perl-license))) |
| 423 | |||
| 424 | (define* (tegaki-release-uri proj version | ||
| 425 | #:optional (ext "tar.gz")) | ||
| 426 | (string-append "https://github.com/tegaki/tegaki/releases/download" | ||
| 427 | "/v" version "/" proj "-" version "." ext)) | ||
| 428 | |||
| 429 | (define remove-pre-compiled-files | ||
| 430 | (lambda exts | ||
| 431 | "Return snippet for removing pre-compiled files matching one of the | ||
| 432 | extensions in EXTS." | ||
| 433 | `(begin (for-each delete-file | ||
| 434 | (find-files "." | ||
| 435 | (lambda (name _) | ||
| 436 | (any (cut string-suffix? <> name) | ||
| 437 | (map (cut string-append "." <>) | ||
| 438 | ',exts))))) | ||
| 439 | #t))) | ||
| 440 | |||
| 441 | ;;; modules required for the above snippet | ||
| 442 | (define remove-pre-compiled-files-modules | ||
| 443 | '((guix build utils) | ||
| 444 | (srfi srfi-1) | ||
| 445 | (srfi srfi-26))) | ||
| 446 | |||
| 447 | (define-public python2-tegaki-wagomu | ||
| 448 | (package | ||
| 449 | (name "python2-tegaki-wagomu") | ||
| 450 | (version "0.3.1") | ||
| 451 | (source | ||
| 452 | (origin | ||
| 453 | (method url-fetch) | ||
| 454 | (uri (tegaki-release-uri "tegaki-wagomu" version)) | ||
| 455 | (sha256 | ||
| 456 | (base32 | ||
| 457 | "1pzdiq4zy1nyylaj9i6v2h4h0r05klahskzpafpp367p4rysi1x9")) | ||
| 458 | (modules remove-pre-compiled-files-modules) | ||
| 459 | (snippet (remove-pre-compiled-files "pyc")))) | ||
| 460 | (build-system python-build-system) | ||
| 461 | (arguments | ||
| 462 | `(#:python ,python-2 ; only Python 2 is supported | ||
| 463 | #:phases | ||
| 464 | (modify-phases %standard-phases | ||
| 465 | (add-after 'unpack 'fix-recognizer | ||
| 466 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 467 | ;; fix missing module and function | ||
| 468 | (substitute* "tegakiwagomu.py" | ||
| 469 | (("import Results,") | ||
| 470 | "import ") | ||
| 471 | (("def _recognize") | ||
| 472 | "def recognize") | ||
| 473 | (("Results\\(candidates\\)") | ||
| 474 | "candidates")) | ||
| 475 | #t))))) | ||
| 476 | (inputs | ||
| 477 | `(("glib" ,glib))) | ||
| 478 | (native-inputs | ||
| 479 | `(("pkg-config" ,pkg-config) | ||
| 480 | ("swig" ,swig))) | ||
| 481 | (home-page "https://tegaki.github.io/") | ||
| 482 | (synopsis | ||
| 483 | "Chinese and Japanese Handwriting Recognition (Recognition engine)") | ||
| 484 | (description | ||
| 485 | "Tegaki is an ongoing project which aims to develop a free and open-source | ||
| 486 | modern implementation of handwriting recognition software, specifically | ||
| 487 | designed for Chinese (simplified and traditional) and Japanese, and that is | ||
| 488 | suitable for both the desktop and mobile devices.") | ||
| 489 | (license gpl2+))) ; all files | ||
| 490 | |||
| 491 | (define-public python2-tegaki-python | ||
| 492 | (package | ||
| 493 | (inherit python2-tegaki-wagomu) | ||
| 494 | (name "python2-tegaki-python") | ||
| 495 | (version "0.3.1") | ||
| 496 | (source | ||
| 497 | (origin | ||
| 498 | (method url-fetch) | ||
| 499 | (uri (tegaki-release-uri "tegaki-python" version)) | ||
| 500 | (sha256 | ||
| 501 | (base32 | ||
| 502 | "0x93k7pw9nh0ywd97pr8pm7jv3f94nw044i5k0zvzhdpsjqvak7p")) | ||
| 503 | (modules remove-pre-compiled-files-modules) | ||
| 504 | (snippet (remove-pre-compiled-files "pyc")))) | ||
| 505 | (arguments | ||
| 506 | (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu) | ||
| 507 | ((#:phases _) | ||
| 508 | `(modify-phases %standard-phases | ||
| 509 | (add-after 'unpack 'pre-configure | ||
| 510 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 511 | ;; Always convert string to unicode to avoid the following error | ||
| 512 | ;; when running "tegaki-build" in python2-tegaki-tools: | ||
| 513 | ;; | ||
| 514 | ;; sqlite3.ProgrammingError: You must not use 8-bit bytestrings | ||
| 515 | ;; unless you use a text_factory that can interpret 8-bit | ||
| 516 | ;; bytestrings (like text_factory = str). | ||
| 517 | ;; It is highly recommended that you instead just switch your | ||
| 518 | ;; application to Unicode strings. | ||
| 519 | (substitute* "tegaki/charcol.py" | ||
| 520 | (("sqlite3.OptimizedUnicode") | ||
| 521 | "lambda s: unicode(s, 'utf-8')")) | ||
| 522 | (substitute* "tegaki/engine.py" | ||
| 523 | (("/usr(/local)?") | ||
| 524 | (assoc-ref inputs "python2-tegaki-wagomu"))) | ||
| 525 | #t)))))) | ||
| 526 | ;; override inherited inputs | ||
| 527 | (inputs '()) | ||
| 528 | (native-inputs '()) | ||
| 529 | (propagated-inputs | ||
| 530 | `(("python2-tegaki-wagomu" ,python2-tegaki-wagomu) | ||
| 531 | ("python2-zinnia" ,python2-zinnia))) | ||
| 532 | (synopsis | ||
| 533 | "Chinese and Japanese Handwriting Recognition (Base python library)") | ||
| 534 | (license (list gpl2+ ; all files except... | ||
| 535 | bsd-3 ; dictutils.py | ||
| 536 | zpl2.1)))) ; minjson.py | ||
| 537 | |||
| 538 | (define-public python2-tegaki-pygtk | ||
| 539 | (package | ||
| 540 | (inherit python2-tegaki-wagomu) | ||
| 541 | (name "python2-tegaki-pygtk") | ||
| 542 | (version "0.3.1") | ||
| 543 | (source | ||
| 544 | (origin | ||
| 545 | (method url-fetch) | ||
| 546 | (uri (tegaki-release-uri "tegaki-pygtk" version)) | ||
| 547 | (sha256 | ||
| 548 | (base32 | ||
| 549 | "1cip0azxhjdj2dg2z85cp1z3lz4qwx3w1j7z4xmcm7npapmsaqs2")) | ||
| 550 | (modules remove-pre-compiled-files-modules) | ||
| 551 | (snippet (remove-pre-compiled-files "pyc")))) | ||
| 552 | (arguments | ||
| 553 | (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu) | ||
| 554 | ((#:phases _) | ||
| 555 | `(modify-phases %standard-phases | ||
| 556 | (add-after 'unpack 'fix-paths | ||
| 557 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 558 | (substitute* "tegakigtk/fakekey.py" | ||
| 559 | (("libX11.so.6" so) | ||
| 560 | (string-append (assoc-ref inputs "libx11") "/lib/" so)) | ||
| 561 | (("libXtst.so.6" so) | ||
| 562 | (string-append (assoc-ref inputs "libxtst") "/lib/" so))) | ||
| 563 | #t)))))) | ||
| 564 | (inputs ; required for sending key strokes | ||
| 565 | `(("libx11" ,libx11) | ||
| 566 | ("libxtst" ,libxtst))) | ||
| 567 | (native-inputs '()) ; override inherited inputs | ||
| 568 | (propagated-inputs | ||
| 569 | `(("python2-pygtk" ,python2-pygtk) | ||
| 570 | ("python2-tegaki-python" ,python2-tegaki-python))) | ||
| 571 | (synopsis "Chinese and Japanese Handwriting Recognition (Base UI library)") | ||
| 572 | (license gpl2+))) ; all files | ||
| 573 | |||
| 574 | (define-public python2-tegaki-tools | ||
| 575 | (package | ||
| 576 | (inherit python2-tegaki-wagomu) | ||
| 577 | (name "python2-tegaki-tools") | ||
| 578 | (version "0.3.1") | ||
| 579 | (source | ||
| 580 | (origin | ||
| 581 | (method url-fetch) | ||
| 582 | (uri (tegaki-release-uri "tegaki-tools" version)) | ||
| 583 | (sha256 | ||
| 584 | (base32 | ||
| 585 | "0xxv97ggh2jgldw3r7y59lv3fhz733r6l7mdn6nh4m0gvb0ja971")) | ||
| 586 | (modules remove-pre-compiled-files-modules) | ||
| 587 | (snippet (remove-pre-compiled-files "pyc")))) | ||
| 588 | (arguments | ||
| 589 | (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu) | ||
| 590 | ((#:phases _) '%standard-phases))) | ||
| 591 | (inputs | ||
| 592 | `(("python2-tegaki-pygtk" ,python2-tegaki-pygtk))) | ||
| 593 | ;; override inherited inputs | ||
| 594 | (native-inputs '()) | ||
| 595 | (propagated-inputs '()) | ||
| 596 | (synopsis "Chinese and Japanese Handwriting Recognition (Advanced tools)") | ||
| 597 | ;; Files in gifenc/ are licensed under gpl3+ while other files are licensed | ||
| 598 | ;; under gpl2+. Therefore, the combined work is licensed under gpl3+. | ||
| 599 | (license gpl3+))) | ||
| 600 | |||
| 601 | (define-public python2-tegaki-recognize | ||
| 602 | (let ((commit "eceec69fe651d0733c8c8752dae569d2283d0f3c") | ||
| 603 | (revision "1")) | ||
| 604 | (package | ||
| 605 | (inherit python2-tegaki-tools) | ||
| 606 | (name "python2-tegaki-recognize") | ||
| 607 | ;; version copied from <https://github.com/tegaki/tegaki/releases> | ||
| 608 | (version (git-version "0.3.1" revision commit)) | ||
| 609 | (source | ||
| 610 | (origin | ||
| 611 | ;; We use GIT-FETCH because 'tegaki-recognize.desktop.in' and | ||
| 612 | ;; 'tegaki-recognize.in' are missing in the tarball. | ||
| 613 | (method git-fetch) | ||
| 614 | (uri (git-reference | ||
| 615 | (url "https://github.com/tegaki/tegaki.git") | ||
| 616 | (commit commit))) | ||
| 617 | (sha256 | ||
| 618 | (base32 | ||
| 619 | "09mw2if9p885phbgah5f95q3fwy7s5b46qlmpxqyzfcnj6g7afr5")) | ||
| 620 | (file-name (git-file-name name version)) | ||
| 621 | (modules `((guix build utils) | ||
| 622 | (ice-9 ftw) | ||
| 623 | (srfi srfi-26) | ||
| 624 | ,@remove-pre-compiled-files-modules)) | ||
| 625 | (snippet | ||
| 626 | `(begin | ||
| 627 | ;; remove unnecessary files with potentially different license | ||
| 628 | (for-each delete-file-recursively | ||
| 629 | (scandir "." | ||
| 630 | (negate (cut member <> '("tegaki-recognize" | ||
| 631 | "." ".."))))) | ||
| 632 | ,(remove-pre-compiled-files "pyc") | ||
| 633 | #t)))) | ||
| 634 | (arguments | ||
| 635 | (substitute-keyword-arguments (package-arguments python2-tegaki-tools) | ||
| 636 | ((#:phases _) | ||
| 637 | `(modify-phases %standard-phases | ||
| 638 | (add-after 'unpack 'chdir | ||
| 639 | (lambda _ | ||
| 640 | (chdir "tegaki-recognize") | ||
| 641 | #t)) | ||
| 642 | ;; 'setup.py' script does not support one of the Python build | ||
| 643 | ;; system's default flags, "--single-version-externally-managed" | ||
| 644 | (replace 'install | ||
| 645 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 646 | (invoke "python" "setup.py" "install" | ||
| 647 | (string-append "--prefix=" (assoc-ref outputs "out")) | ||
| 648 | "--root=/") | ||
| 649 | #t)))))) | ||
| 650 | (synopsis "Chinese and Japanese Handwriting Recognition (Main program)") | ||
| 651 | (license gpl2+)))) ; all files | ||
| 652 | |||
| 653 | (define-public tegaki-zinnia-japanese | ||
| 654 | (package | ||
| 655 | (inherit python2-tegaki-wagomu) | ||
| 656 | (name "tegaki-zinnia-japanese") | ||
| 657 | (version "0.3") | ||
| 658 | (source | ||
| 659 | (origin | ||
| 660 | (method url-fetch) | ||
| 661 | (uri (tegaki-release-uri name version "zip")) | ||
| 662 | (sha256 | ||
| 663 | (base32 | ||
| 664 | "1nmg9acxhcqly9gwkyb9m0hpy76fll91ywk4b1q4xms0ajxip1h7")) | ||
| 665 | (modules remove-pre-compiled-files-modules) | ||
| 666 | (snippet (remove-pre-compiled-files "model")))) | ||
| 667 | (build-system gnu-build-system) | ||
| 668 | (arguments | ||
| 669 | `(#:tests? #f ; no tests | ||
| 670 | #:phases | ||
| 671 | (modify-phases %standard-phases | ||
| 672 | (replace 'configure | ||
| 673 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 674 | (substitute* "Makefile" | ||
| 675 | (("/usr/local") | ||
| 676 | (assoc-ref outputs "out"))) | ||
| 677 | #t))))) | ||
| 678 | ;; override inherited inputs | ||
| 679 | (inputs '()) | ||
| 680 | (native-inputs | ||
| 681 | `(("python2-tegaki-tools" ,python2-tegaki-tools))) | ||
| 682 | (propagated-inputs '()) | ||
| 683 | (native-search-paths | ||
| 684 | (list (search-path-specification | ||
| 685 | (variable "TEGAKI_MODEL_PATH") | ||
| 686 | (files '("share/tegaki/models"))))) | ||
| 687 | (synopsis "Chinese and Japanese Handwriting Recognition (Model)") | ||
| 688 | (license lgpl2.1))) ; all files | ||
| 689 | |||
| 690 | (define-public tegaki-zinnia-japanese-light | ||
| 691 | (package | ||
| 692 | (inherit tegaki-zinnia-japanese) | ||
| 693 | (name "tegaki-zinnia-japanese-light") | ||
| 694 | (version "0.3") | ||
| 695 | (source | ||
| 696 | (origin | ||
| 697 | (method url-fetch) | ||
| 698 | (uri (tegaki-release-uri name version "zip")) | ||
| 699 | (sha256 | ||
| 700 | (base32 | ||
| 701 | "0x0fs29ylqzxd6xvg51h7rigpbisd7q8v11df425ib2j792yfyf8")) | ||
| 702 | (modules remove-pre-compiled-files-modules) | ||
| 703 | (snippet (remove-pre-compiled-files "model")))) | ||
| 704 | (license lgpl2.1))) ; all files | ||
| 705 | |||
| 706 | (define-public tegaki-zinnia-japanese-kyoiku | ||
| 707 | (package | ||
| 708 | (inherit tegaki-zinnia-japanese) | ||
| 709 | (name "tegaki-zinnia-japanese-kyoiku") | ||
| 710 | (version "0.3") | ||
| 711 | (source | ||
| 712 | (origin | ||
| 713 | (method url-fetch) | ||
| 714 | (uri (tegaki-release-uri name version "zip")) | ||
| 715 | (sha256 | ||
| 716 | (base32 | ||
| 717 | "0am94bcpmbzplxdnwn9gk15sgaizvcfhmv13mk14jjvx3419cvvx")) | ||
| 718 | (modules remove-pre-compiled-files-modules) | ||
| 719 | (snippet (remove-pre-compiled-files "model")))) | ||
| 720 | (license lgpl2.1))) ; all files | ||
| 721 | |||
| 722 | (define-public tegaki-zinnia-japanese-joyo | ||
| 723 | (package | ||
| 724 | (inherit tegaki-zinnia-japanese) | ||
| 725 | (name "tegaki-zinnia-japanese-joyo") | ||
| 726 | (version "0.3") | ||
| 727 | (source | ||
| 728 | (origin | ||
| 729 | (method url-fetch) | ||
| 730 | (uri (tegaki-release-uri name version "zip")) | ||
| 731 | (sha256 | ||
| 732 | (base32 | ||
| 733 | "1v0j40lzdyiz01ayws0b8r7fsdy2mr32658382kz4wyk883wzx2z")) | ||
| 734 | (modules remove-pre-compiled-files-modules) | ||
| 735 | (snippet (remove-pre-compiled-files "model")))) | ||
| 736 | (license lgpl2.1))) ; all files | ||
| 737 | |||
| 738 | (define-public tegaki-zinnia-simplified-chinese | ||
| 739 | (package | ||
| 740 | (inherit tegaki-zinnia-japanese) | ||
| 741 | (name "tegaki-zinnia-simplified-chinese") | ||
| 742 | (version "0.3") | ||
| 743 | (source | ||
| 744 | (origin | ||
| 745 | (method url-fetch) | ||
| 746 | (uri (tegaki-release-uri name version "zip")) | ||
| 747 | (sha256 | ||
| 748 | (base32 | ||
| 749 | "18wq0jccv7lpnrfnzspyc110d6pj2v1i21xcx4fmgzz1lnln3fs5")) | ||
| 750 | (modules remove-pre-compiled-files-modules) | ||
| 751 | (snippet (remove-pre-compiled-files "model")))) | ||
| 752 | (license lgpl2.1))) ; all files | ||
| 753 | |||
| 754 | (define-public tegaki-zinnia-simplified-chinese-light | ||
| 755 | (package | ||
| 756 | (inherit tegaki-zinnia-japanese) | ||
| 757 | (name "tegaki-zinnia-simplified-chinese-light") | ||
| 758 | (version "0.3") | ||
| 759 | (source | ||
| 760 | (origin | ||
| 761 | (method url-fetch) | ||
| 762 | (uri (tegaki-release-uri name version "zip")) | ||
| 763 | (sha256 | ||
| 764 | (base32 | ||
| 765 | "0v24yf0w0p03lb7fyx128a75mwzad166bigvlbrzqnad789qg1sr")) | ||
| 766 | (modules remove-pre-compiled-files-modules) | ||
| 767 | (snippet (remove-pre-compiled-files "model")))) | ||
| 768 | (license lgpl2.1))) ; all files | ||
| 769 | |||
| 770 | (define-public tegaki-zinnia-traditional-chinese | ||
| 771 | (package | ||
| 772 | (inherit tegaki-zinnia-japanese) | ||
| 773 | (name "tegaki-zinnia-traditional-chinese") | ||
| 774 | (version "0.3") | ||
| 775 | (source | ||
| 776 | (origin | ||
| 777 | (method url-fetch) | ||
| 778 | (uri (tegaki-release-uri name version "zip")) | ||
| 779 | (sha256 | ||
| 780 | (base32 | ||
| 781 | "140nlp6hynrai2svs5670jjfw1za6ayflhyj2dl0bzsfgbk3447l")) | ||
| 782 | (modules remove-pre-compiled-files-modules) | ||
| 783 | (snippet (remove-pre-compiled-files "model")))) | ||
| 784 | (license lgpl2.1))) ; all files | ||
| 785 | |||
| 786 | (define-public tegaki-zinnia-traditional-chinese-light | ||
| 787 | (package | ||
| 788 | (inherit tegaki-zinnia-japanese) | ||
| 789 | (name "tegaki-zinnia-traditional-chinese-light") | ||
| 790 | (version "0.3") | ||
| 791 | (source | ||
| 792 | (origin | ||
| 793 | (method url-fetch) | ||
| 794 | (uri (tegaki-release-uri name version "zip")) | ||
| 795 | (sha256 | ||
| 796 | (base32 | ||
| 797 | "1m6yk6a57vs9wg5y50qciwi1ahhmklp2mgsjysbj4mnyzv6yhcr2")) | ||
| 798 | (modules remove-pre-compiled-files-modules) | ||
| 799 | (snippet (remove-pre-compiled-files "model")))) | ||
| 800 | (license lgpl2.1))) ; all files | ||
| 801 | |||
| 802 | (define-public tegaki-wagomu-japanese | ||
| 803 | (package | ||
| 804 | (inherit tegaki-zinnia-japanese) | ||
| 805 | (name "tegaki-wagomu-japanese") | ||
| 806 | (version "0.3") | ||
| 807 | (source | ||
| 808 | (origin | ||
| 809 | (method url-fetch) | ||
| 810 | (uri (tegaki-release-uri name version "zip")) | ||
| 811 | (sha256 | ||
| 812 | (base32 | ||
| 813 | "0flj5id8xwsn7csrrzqz9prdikswnwm2wms0as2vzdpxzph1az4k")) | ||
| 814 | (modules remove-pre-compiled-files-modules) | ||
| 815 | (snippet (remove-pre-compiled-files "model")))) | ||
| 816 | (license lgpl2.1))) ; all files | ||
| 817 | |||
| 818 | (define-public tegaki-wagomu-japanese-kyoiku | ||
| 819 | (package | ||
| 820 | (inherit tegaki-zinnia-japanese) | ||
| 821 | (name "tegaki-wagomu-japanese-kyoiku") | ||
| 822 | (version "0.3") | ||
| 823 | (source | ||
| 824 | (origin | ||
| 825 | (method url-fetch) | ||
| 826 | (uri (tegaki-release-uri name version "zip")) | ||
| 827 | (sha256 | ||
| 828 | (base32 | ||
| 829 | "0v8crfh8rdf6ndp16g52s5jlrrlwh73xp38zjn5i9dlacx8kfqg1")) | ||
| 830 | (modules remove-pre-compiled-files-modules) | ||
| 831 | (snippet (remove-pre-compiled-files "model")))) | ||
| 832 | (license lgpl2.1))) ; all files | ||
| 833 | |||
| 834 | (define-public tegaki-wagomu-japanese-joyo | ||
| 835 | (package | ||
| 836 | (inherit tegaki-zinnia-japanese) | ||
| 837 | (name "tegaki-wagomu-japanese-joyo") | ||
| 838 | (version "0.3") | ||
| 839 | (source | ||
| 840 | (origin | ||
| 841 | (method url-fetch) | ||
| 842 | (uri (tegaki-release-uri name version "zip")) | ||
| 843 | (sha256 | ||
| 844 | (base32 | ||
| 845 | "0wk8shpr963zp328g991qs6abpnacq4242003m687z2d6yp7nph2")) | ||
| 846 | (modules remove-pre-compiled-files-modules) | ||
| 847 | (snippet (remove-pre-compiled-files "model")))) | ||
| 848 | (license lgpl2.1))) ; all files | ||
| 849 | |||
| 850 | (define-public tegaki-wagomu-simplified-chinese | ||
| 851 | (package | ||
| 852 | (inherit tegaki-zinnia-japanese) | ||
| 853 | (name "tegaki-wagomu-simplified-chinese") | ||
| 854 | (version "0.3") | ||
| 855 | (source | ||
| 856 | (origin | ||
| 857 | (method url-fetch) | ||
| 858 | (uri (tegaki-release-uri name version "zip")) | ||
| 859 | (sha256 | ||
| 860 | (base32 | ||
| 861 | "0wqprynigqxqxv128i1smh81gxvmjj056d9qpznxa3n9f5ymlbj6")) | ||
| 862 | (modules remove-pre-compiled-files-modules) | ||
| 863 | (snippet (remove-pre-compiled-files "model")))) | ||
| 864 | (license lgpl2.1))) ; all files | ||
| 865 | |||
| 866 | ;;; Upstream does not provide the source for tegaki-wagomu-traditional-chinese. | ||
| 867 | ;;; Therefore, we use the source for tegaki-zinnia-traditional-chinese and | ||
| 868 | ;;; patch the Makefile accordingly. | ||
| 869 | (define-public tegaki-wagomu-traditional-chinese | ||
| 870 | (package | ||
| 871 | (inherit tegaki-zinnia-traditional-chinese) | ||
| 872 | (name "tegaki-wagomu-traditional-chinese") | ||
| 873 | (arguments | ||
| 874 | (substitute-keyword-arguments | ||
| 875 | (package-arguments tegaki-zinnia-traditional-chinese) | ||
| 876 | ((#:phases phases '%standard-phases) | ||
| 877 | `(modify-phases ,phases | ||
| 878 | (replace 'configure | ||
| 879 | (lambda args | ||
| 880 | (let ((configure (assq-ref ,phases 'configure))) | ||
| 881 | (apply configure args)) | ||
| 882 | (substitute* "Makefile" | ||
| 883 | (("zinnia") "wagomu")) | ||
| 884 | #t)))))) | ||
| 885 | (license lgpl2.1))) ; all files | ||
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a543df3fe8b..be187886874 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm | |||
| @@ -349,10 +349,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
| 349 | "linux-" version ".tar.xz")) | 349 | "linux-" version ".tar.xz")) |
| 350 | (sha256 hash))) | 350 | (sha256 hash))) |
| 351 | 351 | ||
| 352 | (define-public linux-libre-5.2-version "5.2.13") | 352 | (define-public linux-libre-5.2-version "5.2.15") |
| 353 | (define-public linux-libre-5.2-pristine-source | 353 | (define-public linux-libre-5.2-pristine-source |
| 354 | (let ((version linux-libre-5.2-version) | 354 | (let ((version linux-libre-5.2-version) |
| 355 | (hash (base32 "12hpph3iynr22mfwz7745lp01waf2kg579hr56d4pvhx4iahzdhp"))) | 355 | (hash (base32 "0jhc70r2rygm91qifjagg1jgbpjwyyq6m8g1n5iv81l1v84i0mpb"))) |
| 356 | (make-linux-libre-source version | 356 | (make-linux-libre-source version |
| 357 | (%upstream-linux-source version hash) | 357 | (%upstream-linux-source version hash) |
| 358 | deblob-scripts-5.2))) | 358 | deblob-scripts-5.2))) |
| @@ -3838,7 +3838,7 @@ and copy/paste text in the console and in xterm.") | |||
| 3838 | (define-public btrfs-progs | 3838 | (define-public btrfs-progs |
| 3839 | (package | 3839 | (package |
| 3840 | (name "btrfs-progs") | 3840 | (name "btrfs-progs") |
| 3841 | (version "5.2.1") | 3841 | (version "5.2.2") |
| 3842 | (source (origin | 3842 | (source (origin |
| 3843 | (method url-fetch) | 3843 | (method url-fetch) |
| 3844 | (uri (string-append "mirror://kernel.org/linux/kernel/" | 3844 | (uri (string-append "mirror://kernel.org/linux/kernel/" |
| @@ -3846,7 +3846,7 @@ and copy/paste text in the console and in xterm.") | |||
| 3846 | "btrfs-progs-v" version ".tar.xz")) | 3846 | "btrfs-progs-v" version ".tar.xz")) |
| 3847 | (sha256 | 3847 | (sha256 |
| 3848 | (base32 | 3848 | (base32 |
| 3849 | "0crjv3i20nyj2dagfw6q7byshscpn6j7wlqch3apkzzzk00lmb1n")))) | 3849 | "1imivxjppi8zl27gn472pwpk8bg5dijkbyi340by31vhy7dj24w2")))) |
| 3850 | (build-system gnu-build-system) | 3850 | (build-system gnu-build-system) |
| 3851 | (outputs '("out" | 3851 | (outputs '("out" |
| 3852 | "static")) ; static versions of the binaries in "out" | 3852 | "static")) ; static versions of the binaries in "out" |
| @@ -4455,18 +4455,18 @@ cpufreq sub-system is enabled or not.") | |||
| 4455 | (define-public haveged | 4455 | (define-public haveged |
| 4456 | (package | 4456 | (package |
| 4457 | (name "haveged") | 4457 | (name "haveged") |
| 4458 | (version "1.9.4") | 4458 | (version "1.9.6") |
| 4459 | (source | 4459 | (source |
| 4460 | (origin | 4460 | (origin |
| 4461 | (method git-fetch) | 4461 | (method git-fetch) |
| 4462 | (uri (git-reference | 4462 | (uri (git-reference |
| 4463 | (url "https://github.com/jirka-h/haveged.git") | 4463 | (url "https://github.com/jirka-h/haveged.git") |
| 4464 | (commit version))) | 4464 | (commit (string-append "v" version)))) |
| 4465 | (file-name (git-file-name name version)) | 4465 | (file-name (git-file-name name version)) |
| 4466 | (sha256 | 4466 | (sha256 |
| 4467 | (base32 "1hrwzjd4byq4fdrg8svww3d8x449k80jxxrjy9v6jvzhfv19rvxr")))) | 4467 | (base32 "11kr19n2f87izsj341lv5amhd1wc2ckfmqr9pq5fxix8pkbs94rh")))) |
| 4468 | (build-system gnu-build-system) | 4468 | (build-system gnu-build-system) |
| 4469 | (home-page "http://www.issihosts.com/haveged") | 4469 | (home-page "https://www.issihosts.com/haveged") |
| 4470 | (synopsis "Entropy source for the Linux random number generator") | 4470 | (synopsis "Entropy source for the Linux random number generator") |
| 4471 | (description | 4471 | (description |
| 4472 | "haveged generates an unpredictable stream of random numbers for use by | 4472 | "haveged generates an unpredictable stream of random numbers for use by |
| @@ -4475,10 +4475,10 @@ standard mechanisms for filling the entropy pool may not be sufficient for | |||
| 4475 | systems with high needs or limited user interaction, such as headless servers. | 4475 | systems with high needs or limited user interaction, such as headless servers. |
| 4476 | 4476 | ||
| 4477 | @command{haveged} runs as a privileged daemon, harvesting randomness from the | 4477 | @command{haveged} runs as a privileged daemon, harvesting randomness from the |
| 4478 | indirect effects of hardware events on hidden processor state using the HArdware | 4478 | indirect effects of hardware events on hidden processor state using the |
| 4479 | Volatile Entropy Gathering and Expansion (@dfn{HAVEGE}) algorithm. It tunes | 4479 | @acronym{HAVEGE, HArdware Volatile Entropy Gathering and Expansion} algorithm. |
| 4480 | itself to its environment and provides the same built-in test suite for the | 4480 | It tunes itself to its environment and provides the same built-in test suite |
| 4481 | output stream as used on certified hardware security devices. | 4481 | for the output stream as used on certified hardware security devices. |
| 4482 | 4482 | ||
| 4483 | The quality of the randomness produced by this algorithm has not been proven. | 4483 | The quality of the randomness produced by this algorithm has not been proven. |
| 4484 | It is recommended to run it together with another entropy source like rngd, and | 4484 | It is recommended to run it together with another entropy source like rngd, and |
| @@ -5140,14 +5140,14 @@ re-use code and to avoid re-inventing the wheel.") | |||
| 5140 | (define-public libnftnl | 5140 | (define-public libnftnl |
| 5141 | (package | 5141 | (package |
| 5142 | (name "libnftnl") | 5142 | (name "libnftnl") |
| 5143 | (version "1.1.3") | 5143 | (version "1.1.4") |
| 5144 | (source | 5144 | (source |
| 5145 | (origin | 5145 | (origin |
| 5146 | (method url-fetch) | 5146 | (method url-fetch) |
| 5147 | (uri (string-append "mirror://netfilter.org/libnftnl/" | 5147 | (uri (string-append "mirror://netfilter.org/libnftnl/" |
| 5148 | "libnftnl-" version ".tar.bz2")) | 5148 | "libnftnl-" version ".tar.bz2")) |
| 5149 | (sha256 | 5149 | (sha256 |
| 5150 | (base32 "03xszkcpqk3s1rqc6vh7g5j13kh3d3yjnvjhk5scds3an39rgp92")))) | 5150 | (base32 "087dfc2n4saf2k68hyi4byvgz5grwpw5kfjvmkpn3wmd8y1riiy8")))) |
| 5151 | (build-system gnu-build-system) | 5151 | (build-system gnu-build-system) |
| 5152 | (native-inputs | 5152 | (native-inputs |
| 5153 | `(("pkg-config" ,pkg-config))) | 5153 | `(("pkg-config" ,pkg-config))) |
| @@ -5164,7 +5164,7 @@ used by nftables.") | |||
| 5164 | (define-public nftables | 5164 | (define-public nftables |
| 5165 | (package | 5165 | (package |
| 5166 | (name "nftables") | 5166 | (name "nftables") |
| 5167 | (version "0.9.0") | 5167 | (version "0.9.2") |
| 5168 | (source | 5168 | (source |
| 5169 | (origin | 5169 | (origin |
| 5170 | (method url-fetch) | 5170 | (method url-fetch) |
| @@ -5172,7 +5172,7 @@ used by nftables.") | |||
| 5172 | "/files/nftables-" version ".tar.bz2")) | 5172 | "/files/nftables-" version ".tar.bz2")) |
| 5173 | (sha256 | 5173 | (sha256 |
| 5174 | (base32 | 5174 | (base32 |
| 5175 | "14bygs6vg2v448cw5r4pxqi8an29hw0m9vab8hpmgjmrzjsq30dd")))) | 5175 | "1x8kalbggjq44j4916i6vyv1rb20dlh1dcsf9xvzqsry2j063djw")))) |
| 5176 | (build-system gnu-build-system) | 5176 | (build-system gnu-build-system) |
| 5177 | (arguments `(#:configure-flags | 5177 | (arguments `(#:configure-flags |
| 5178 | '("--disable-man-doc"))) ; FIXME: Needs docbook2x. | 5178 | '("--disable-man-doc"))) ; FIXME: Needs docbook2x. |
| @@ -5874,15 +5874,15 @@ the superuser to make device nodes.") | |||
| 5874 | (define-public fakeroot | 5874 | (define-public fakeroot |
| 5875 | (package | 5875 | (package |
| 5876 | (name "fakeroot") | 5876 | (name "fakeroot") |
| 5877 | (version "1.23") | 5877 | (version "1.24") |
| 5878 | (source (origin | 5878 | (source (origin |
| 5879 | (method url-fetch) | 5879 | (method url-fetch) |
| 5880 | (uri (string-append "http://ftp.debian.org/debian/pool/main/f/" | 5880 | (uri (string-append "https://deb.debian.org/debian/pool/main/f/" |
| 5881 | "fakeroot/fakeroot_" version ".orig.tar.xz")) | 5881 | "fakeroot/fakeroot_" version ".orig.tar.gz")) |
| 5882 | (file-name (string-append name "-" version ".tar.gz")) | 5882 | (file-name (string-append name "-" version ".tar.gz")) |
| 5883 | (sha256 | 5883 | (sha256 |
| 5884 | (base32 | 5884 | (base32 |
| 5885 | "1xpl0s2yjyjwlf832b6kbkaa5921liybaar13k7n45ckd9lxd700")))) | 5885 | "1vb6f93hjyqnwx8dc8mm3dgma7axgqk8s7sdsjs8l2rpc0qmn11f")))) |
| 5886 | (build-system gnu-build-system) | 5886 | (build-system gnu-build-system) |
| 5887 | (arguments | 5887 | (arguments |
| 5888 | `(#:phases | 5888 | `(#:phases |
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 65fc1a58cd8..0c8ad1e2fa5 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm | |||
| @@ -6861,3 +6861,76 @@ extension-points via the concept of hooks.") | |||
| 6861 | 6861 | ||
| 6862 | (define-public ecl-cl-hooks | 6862 | (define-public ecl-cl-hooks |
| 6863 | (sbcl-package->ecl-package sbcl-cl-hooks)) | 6863 | (sbcl-package->ecl-package sbcl-cl-hooks)) |
| 6864 | |||
| 6865 | (define-public sbcl-s-sysdeps | ||
| 6866 | (let ((commit "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d") | ||
| 6867 | (revision "1")) | ||
| 6868 | (package | ||
| 6869 | (name "sbcl-s-sysdeps") | ||
| 6870 | (build-system asdf-build-system/sbcl) | ||
| 6871 | (version (git-version "1" revision commit)) | ||
| 6872 | (home-page "https://github.com/svenvc/s-sysdeps") | ||
| 6873 | (source | ||
| 6874 | (origin | ||
| 6875 | (method git-fetch) | ||
| 6876 | (uri (git-reference | ||
| 6877 | (url home-page) | ||
| 6878 | (commit commit))) | ||
| 6879 | (file-name (git-file-name name version)) | ||
| 6880 | (sha256 | ||
| 6881 | (base32 | ||
| 6882 | "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9")))) | ||
| 6883 | (synopsis "Common Lisp abstraction layer over platform dependent functionality") | ||
| 6884 | (description "@code{s-sysdeps} is an abstraction layer over platform | ||
| 6885 | dependent functionality. This simple package is used as a building block in a | ||
| 6886 | number of other open source projects. | ||
| 6887 | |||
| 6888 | @code{s-sysdeps} abstracts: | ||
| 6889 | |||
| 6890 | @itemize | ||
| 6891 | @item managing processes, | ||
| 6892 | @item implementing a standard TCP/IP server, | ||
| 6893 | @item opening a client TCP/IP socket stream, | ||
| 6894 | @item working with process locks. | ||
| 6895 | @end itemize\n") | ||
| 6896 | (license license:llgpl)))) | ||
| 6897 | |||
| 6898 | (define-public cl-s-sysdeps | ||
| 6899 | (sbcl-package->cl-source-package sbcl-s-sysdeps)) | ||
| 6900 | |||
| 6901 | (define-public ecl-s-sysdeps | ||
| 6902 | (sbcl-package->ecl-package sbcl-s-sysdeps)) | ||
| 6903 | |||
| 6904 | (define-public sbcl-cl-prevalence | ||
| 6905 | (let ((commit "c163c227ed85d430b82cb1e3502f72d4f88e3cfa") | ||
| 6906 | (revision "1")) | ||
| 6907 | (package | ||
| 6908 | (name "sbcl-cl-prevalence") | ||
| 6909 | (build-system asdf-build-system/sbcl) | ||
| 6910 | (version (git-version "5" revision commit)) | ||
| 6911 | (home-page "https://github.com/40ants/cl-prevalence") | ||
| 6912 | (source | ||
| 6913 | (origin | ||
| 6914 | (method git-fetch) | ||
| 6915 | (uri (git-reference | ||
| 6916 | (url home-page) | ||
| 6917 | (commit commit))) | ||
| 6918 | (file-name (git-file-name name version)) | ||
| 6919 | (sha256 | ||
| 6920 | (base32 | ||
| 6921 | "1i9zj1q2ahgwch56an21yzbgkynz0kab9fyxkq9mg8p3xrv38jjn")))) | ||
| 6922 | (inputs | ||
| 6923 | `(("s-sysdeps" ,sbcl-s-sysdeps) | ||
| 6924 | ("s-xml" ,sbcl-s-xml))) | ||
| 6925 | (synopsis "Implementation of object prevalence for Common Lisp") | ||
| 6926 | (description "This Common Lisp library implements object prevalence (see | ||
| 6927 | @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows | ||
| 6928 | for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary | ||
| 6929 | classes and cyclic data structures are supported.") | ||
| 6930 | (license license:llgpl)))) | ||
| 6931 | |||
| 6932 | (define-public cl-prevalence | ||
| 6933 | (sbcl-package->cl-source-package sbcl-cl-prevalence)) | ||
| 6934 | |||
| 6935 | (define-public ecl-cl-prevalence | ||
| 6936 | (sbcl-package->ecl-package sbcl-cl-prevalence)) | ||
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index ff62d3b362a..075decc61a4 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> | 4 | ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> |
| 5 | ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> | 5 | ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> |
| 6 | ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> | 6 | ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> |
| 7 | ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> | 7 | ;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 8 | ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> | 8 | ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> |
| 9 | ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org> | 9 | ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org> |
| 10 | ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org> | 10 | ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org> |
| @@ -39,6 +39,7 @@ | |||
| 39 | #:use-module (gnu packages tls) | 39 | #:use-module (gnu packages tls) |
| 40 | #:use-module (gnu packages xml) | 40 | #:use-module (gnu packages xml) |
| 41 | #:use-module (gnu packages glib) | 41 | #:use-module (gnu packages glib) |
| 42 | #:use-module (gnu packages libevent) | ||
| 42 | #:use-module (gnu packages libffi) | 43 | #:use-module (gnu packages libffi) |
| 43 | #:use-module (gnu packages pkg-config) | 44 | #:use-module (gnu packages pkg-config) |
| 44 | #:use-module (gnu packages xorg) | 45 | #:use-module (gnu packages xorg) |
| @@ -450,6 +451,69 @@ Grammars (PEGs).") | |||
| 450 | (define-public lua5.2-lpeg | 451 | (define-public lua5.2-lpeg |
| 451 | (make-lua-lpeg "lua5.2-lpeg" lua-5.2)) | 452 | (make-lua-lpeg "lua5.2-lpeg" lua-5.2)) |
| 452 | 453 | ||
| 454 | (define (make-lua-luv name lua) | ||
| 455 | (package | ||
| 456 | (name name) | ||
| 457 | (version "1.30.1-0") | ||
| 458 | (source (origin | ||
| 459 | ;; The release tarball includes the sources of libuv but does | ||
| 460 | ;; not include the pkg-config files. | ||
| 461 | (method git-fetch) | ||
| 462 | (uri (git-reference | ||
| 463 | (url "https://github.com/luvit/luv.git") | ||
| 464 | (commit version))) | ||
| 465 | (file-name (git-file-name name version)) | ||
| 466 | (sha256 | ||
| 467 | (base32 | ||
| 468 | "1lfzzyphpim28kw33k7zylcyxnf40ckhdg6hbqyzb5hszdf2hbka")))) | ||
| 469 | (build-system cmake-build-system) | ||
| 470 | (arguments | ||
| 471 | `(#:tests? #f ; there are none | ||
| 472 | #:configure-flags | ||
| 473 | '("-DWITH_LUA_ENGINE=Lua" | ||
| 474 | "-DWITH_SHARED_LIBUV=On" | ||
| 475 | "-DBUILD_MODULE=Off" | ||
| 476 | "-DBUILD_SHARED_LIBS=On" | ||
| 477 | "-DLUA_BUILD_TYPE=System") | ||
| 478 | #:phases | ||
| 479 | (modify-phases %standard-phases | ||
| 480 | (add-after 'unpack 'copy-lua-compat | ||
| 481 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 482 | (copy-recursively (assoc-ref inputs "lua-compat") | ||
| 483 | "lua-compat") | ||
| 484 | (setenv "CPATH" | ||
| 485 | (string-append (getcwd) "/lua-compat:" | ||
| 486 | (or (getenv "CPATH") ""))) | ||
| 487 | #t))))) | ||
| 488 | (inputs | ||
| 489 | `(("lua" ,lua) | ||
| 490 | ("libuv" ,libuv))) | ||
| 491 | (native-inputs | ||
| 492 | `(("lua-compat" | ||
| 493 | ,(origin | ||
| 494 | (method git-fetch) | ||
| 495 | (uri (git-reference | ||
| 496 | (url "https://github.com/keplerproject/lua-compat-5.3.git") | ||
| 497 | (commit "daebe77a2f498817713df37f0bb316db1d82222f"))) | ||
| 498 | (file-name "lua-compat-5.3-checkout") | ||
| 499 | (sha256 | ||
| 500 | (base32 | ||
| 501 | "02a14nvn7aggg1yikj9h3dcf8aqjbxlws1bfvqbpfxv9d5phnrpz")))))) | ||
| 502 | (home-page "https://github.com/luvit/luv/") | ||
| 503 | (synopsis "Libuv bindings for Lua") | ||
| 504 | (description | ||
| 505 | "This library makes libuv available to Lua scripts.") | ||
| 506 | (license license:asl2.0))) | ||
| 507 | |||
| 508 | (define-public lua-luv | ||
| 509 | (make-lua-luv "lua-luv" lua)) | ||
| 510 | |||
| 511 | (define-public lua5.1-luv | ||
| 512 | (make-lua-luv "lua5.1-luv" lua-5.1)) | ||
| 513 | |||
| 514 | (define-public lua5.2-luv | ||
| 515 | (make-lua-luv "lua5.2-luv" lua-5.2)) | ||
| 516 | |||
| 453 | ;; Lua 5.3 is not supported. | 517 | ;; Lua 5.3 is not supported. |
| 454 | (define (make-lua-bitop name lua) | 518 | (define (make-lua-bitop name lua) |
| 455 | (package | 519 | (package |
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index e72f5b82d9e..e5487d3ae42 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm | |||
| @@ -1177,7 +1177,8 @@ processes currently in existence, much like code{top} or code{ps}.") | |||
| 1177 | (base32 "0v1vvi8vf9y8nv8y0gzffaqji53s75ab5jypksih0ndcws8ryww4")))) | 1177 | (base32 "0v1vvi8vf9y8nv8y0gzffaqji53s75ab5jypksih0ndcws8ryww4")))) |
| 1178 | (build-system cmake-build-system) | 1178 | (build-system cmake-build-system) |
| 1179 | (inputs | 1179 | (inputs |
| 1180 | `(("qtbase" ,qtbase))) | 1180 | `(("qtbase" ,qtbase) |
| 1181 | ("utf8proc" ,utf8proc))) | ||
| 1181 | (native-inputs | 1182 | (native-inputs |
| 1182 | `(("lxqt-build-tools" ,lxqt-build-tools) | 1183 | `(("lxqt-build-tools" ,lxqt-build-tools) |
| 1183 | ("qttools" ,qttools))) | 1184 | ("qttools" ,qttools))) |
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 16d3af3831b..e44ec66cb54 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm | |||
| @@ -1726,11 +1726,16 @@ This is the certified version of the Open Cascade Technology (OCCT) library.") | |||
| 1726 | (version "2.16.0") | 1726 | (version "2.16.0") |
| 1727 | (source | 1727 | (source |
| 1728 | (origin | 1728 | (origin |
| 1729 | (method url-fetch) | 1729 | (method git-fetch) |
| 1730 | (uri (string-append "http://gmsh.info/src/gmsh-" | 1730 | (uri (git-reference |
| 1731 | version "-source.tgz")) | 1731 | (url "https://gitlab.onelab.info/gmsh/gmsh.git") |
| 1732 | (commit | ||
| 1733 | (string-append "gmsh_" | ||
| 1734 | (string-map (lambda (x) (if (eq? x #\.) #\_ x)) | ||
| 1735 | version))))) | ||
| 1736 | (file-name (git-file-name name version)) | ||
| 1732 | (sha256 | 1737 | (sha256 |
| 1733 | (base32 "1slf0bfkwrcgn6296wb4qhbk4ahz6i4wfb10hnim08x05vrylag8")) | 1738 | (base32 "08rq4jajwmlpivnm9yifz2jhaivnz065lnk0h2zv773nwl9wf162")) |
| 1734 | (modules '((guix build utils))) | 1739 | (modules '((guix build utils))) |
| 1735 | (snippet | 1740 | (snippet |
| 1736 | ;; Remove non-free METIS code | 1741 | ;; Remove non-free METIS code |
| @@ -1756,7 +1761,7 @@ This is the certified version of the Open Cascade Technology (OCCT) library.") | |||
| 1756 | `(#:configure-flags `("-DENABLE_METIS:BOOL=OFF" | 1761 | `(#:configure-flags `("-DENABLE_METIS:BOOL=OFF" |
| 1757 | "-DENABLE_BUILD_SHARED:BOOL=ON" | 1762 | "-DENABLE_BUILD_SHARED:BOOL=ON" |
| 1758 | "-DENABLE_BUILD_DYNAMIC:BOOL=ON"))) | 1763 | "-DENABLE_BUILD_DYNAMIC:BOOL=ON"))) |
| 1759 | (home-page "http://www.geuz.org/gmsh/") | 1764 | (home-page "http://gmsh.info/") |
| 1760 | (synopsis "3D finite element grid generator") | 1765 | (synopsis "3D finite element grid generator") |
| 1761 | (description "Gmsh is a 3D finite element grid generator with a built-in | 1766 | (description "Gmsh is a 3D finite element grid generator with a built-in |
| 1762 | CAD engine and post-processor. Its design goal is to provide a fast, light | 1767 | CAD engine and post-processor. Its design goal is to provide a fast, light |
| @@ -3100,6 +3105,10 @@ parts of it.") | |||
| 3100 | 3105 | ||
| 3101 | (define-public openblas | 3106 | (define-public openblas |
| 3102 | (package | 3107 | (package |
| 3108 | ;; TODO: Incorporate 'openblas/fixed-num-threads' changes on the next | ||
| 3109 | ;; rebuild cycle. | ||
| 3110 | (replacement openblas/fixed-num-threads) | ||
| 3111 | |||
| 3103 | (name "openblas") | 3112 | (name "openblas") |
| 3104 | (version "0.3.6") | 3113 | (version "0.3.6") |
| 3105 | (source | 3114 | (source |
| @@ -3170,7 +3179,7 @@ parts of it.") | |||
| 3170 | (license license:bsd-3))) | 3179 | (license license:bsd-3))) |
| 3171 | 3180 | ||
| 3172 | (define-public openblas-ilp64 | 3181 | (define-public openblas-ilp64 |
| 3173 | (package (inherit openblas) | 3182 | (package/inherit openblas |
| 3174 | (name "openblas-ilp64") | 3183 | (name "openblas-ilp64") |
| 3175 | (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux")) | 3184 | (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux")) |
| 3176 | (arguments | 3185 | (arguments |
| @@ -3181,6 +3190,24 @@ parts of it.") | |||
| 3181 | (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 version)") | 3190 | (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 version)") |
| 3182 | (license license:bsd-3))) | 3191 | (license license:bsd-3))) |
| 3183 | 3192 | ||
| 3193 | (define openblas/fixed-num-threads | ||
| 3194 | ;; TODO: Move that to 'openblas' proper on the next rebuild cycle. | ||
| 3195 | (package | ||
| 3196 | (inherit openblas) | ||
| 3197 | (version (match (string-split (package-version openblas) #\.) | ||
| 3198 | ((numbers ... (= string-length len)) | ||
| 3199 | (string-join (append numbers | ||
| 3200 | (list (make-string len #\a))) | ||
| 3201 | ".")))) | ||
| 3202 | (arguments | ||
| 3203 | (substitute-keyword-arguments (package-arguments openblas) | ||
| 3204 | ((#:make-flags flags ''()) | ||
| 3205 | ;; This is the maximum number of threads OpenBLAS will ever use (that | ||
| 3206 | ;; is, if $OPENBLAS_NUM_THREADS is greater than that, then NUM_THREADS | ||
| 3207 | ;; is used.) If we don't set it, the makefile sets it to the number | ||
| 3208 | ;; of cores of the build machine, which is obviously wrong. | ||
| 3209 | `(cons "NUM_THREADS=128" ,flags)))))) | ||
| 3210 | |||
| 3184 | (define* (make-blis implementation #:optional substitutable?) | 3211 | (define* (make-blis implementation #:optional substitutable?) |
| 3185 | "Return a BLIS package with the given IMPLEMENTATION (see config/ in the | 3212 | "Return a BLIS package with the given IMPLEMENTATION (see config/ in the |
| 3186 | source tree for a list of implementations.) | 3213 | source tree for a list of implementations.) |
| @@ -3837,8 +3864,8 @@ set.") | |||
| 3837 | `(("doc++" ,doc++) | 3864 | `(("doc++" ,doc++) |
| 3838 | ("netpbm" ,netpbm) | 3865 | ("netpbm" ,netpbm) |
| 3839 | ("perl" ,perl) ; needed to run 'ppmquant' during tests | 3866 | ("perl" ,perl) ; needed to run 'ppmquant' during tests |
| 3840 | ("texlive" ,(texlive-union (list texlive-generic-xypic | 3867 | ("texlive" ,(texlive-union (list texlive-xypic |
| 3841 | texlive-fonts-xypic | 3868 | texlive-cm |
| 3842 | texlive-latex-hyperref | 3869 | texlive-latex-hyperref |
| 3843 | texlive-bibtex))) | 3870 | texlive-bibtex))) |
| 3844 | ("ghostscript" ,ghostscript))) | 3871 | ("ghostscript" ,ghostscript))) |
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 7bdd122f2b8..e1cb736b82f 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2017,2018 Jan Nieuwenhuizen <janneke@gnu.org> | 2 | ;;; Copyright © 2017, 2018, 2019 Jan Nieuwenhuizen <janneke@gnu.org> |
| 3 | ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> | 3 | ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> |
| 4 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 4 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 5 | ;;; | 5 | ;;; |
| @@ -62,14 +62,14 @@ extensive examples, including parsers for the Javascript and C99 languages.") | |||
| 62 | (define-public nyacc | 62 | (define-public nyacc |
| 63 | (package | 63 | (package |
| 64 | (inherit nyacc-0.86) | 64 | (inherit nyacc-0.86) |
| 65 | (version "0.94.0") | 65 | (version "0.99.0") |
| 66 | (source (origin | 66 | (source (origin |
| 67 | (method url-fetch) | 67 | (method url-fetch) |
| 68 | (uri (string-append "mirror://savannah/nyacc/nyacc-" | 68 | (uri (string-append "mirror://savannah/nyacc/nyacc-" |
| 69 | version ".tar.gz")) | 69 | version ".tar.gz")) |
| 70 | (sha256 | 70 | (sha256 |
| 71 | (base32 | 71 | (base32 |
| 72 | "12qnzwm1n3j8z7hbr9hy2wka9a1aasm2rvnpnvdxkjcsbdzj8fn4")) | 72 | "0hl5qxx19i4x1r0839sxm19ziqq65g4hy97yik81cc2yb9yvgyv3")) |
| 73 | (modules '((guix build utils))) | 73 | (modules '((guix build utils))) |
| 74 | (snippet | 74 | (snippet |
| 75 | '(begin | 75 | '(begin |
| @@ -93,22 +93,19 @@ extensive examples, including parsers for the Javascript and C99 languages.") | |||
| 93 | (define-public mes | 93 | (define-public mes |
| 94 | (package | 94 | (package |
| 95 | (name "mes") | 95 | (name "mes") |
| 96 | (version "0.19") | 96 | (version "0.20") |
| 97 | (source (origin | 97 | (source (origin |
| 98 | (method url-fetch) | 98 | (method url-fetch) |
| 99 | (uri (string-append "mirror://gnu/mes/" | 99 | (uri (string-append "mirror://gnu/mes/" |
| 100 | "mes-" version ".tar.gz")) | 100 | "mes-" version ".tar.gz")) |
| 101 | (sha256 | 101 | (sha256 |
| 102 | (base32 | 102 | (base32 |
| 103 | "15h4yhaywdc0djpjlin2jz1kzahpqxfki0r0aav1qm9nxxmnp1l0")))) | 103 | "04pajp8v31na34ls4730ig5f6miiplhdvkmsb9ls1b8bbmw2vb4n")))) |
| 104 | (build-system gnu-build-system) | 104 | (build-system gnu-build-system) |
| 105 | (supported-systems '("i686-linux" "x86_64-linux")) | 105 | (supported-systems '("i686-linux" "x86_64-linux")) |
| 106 | (propagated-inputs | 106 | (propagated-inputs |
| 107 | `(("mescc-tools" ,mescc-tools) | 107 | `(("mescc-tools" ,mescc-tools) |
| 108 | 108 | ("nyacc" ,nyacc))) | |
| 109 | ;; XXX: MesCC appears to enter an infinite loop (?) while building | ||
| 110 | ;; crt1.o when we switch to nyacc 0.94. | ||
| 111 | ("nyacc" ,nyacc-0.86))) | ||
| 112 | (native-inputs | 109 | (native-inputs |
| 113 | `(("guile" ,guile-2.2) | 110 | `(("guile" ,guile-2.2) |
| 114 | ,@(let ((target-system (or (%current-target-system) | 111 | ,@(let ((target-system (or (%current-target-system) |
| @@ -168,3 +165,19 @@ linker, the blood-elf symbol table generator, the kaem shell, exec_enable and | |||
| 168 | get_machine.") | 165 | get_machine.") |
| 169 | (home-page "https://savannah.nongnu.org/projects/mescc-tools") | 166 | (home-page "https://savannah.nongnu.org/projects/mescc-tools") |
| 170 | (license gpl3+)))) | 167 | (license gpl3+)))) |
| 168 | |||
| 169 | (define-public mescc-tools-0.6.1 | ||
| 170 | (package | ||
| 171 | (inherit mescc-tools) | ||
| 172 | (name "mescc-tools") | ||
| 173 | (version "0.6.1") | ||
| 174 | (source (origin | ||
| 175 | (method url-fetch) | ||
| 176 | (uri (string-append | ||
| 177 | "http://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/" | ||
| 178 | name "-Release_" version | ||
| 179 | ".tar.gz")) | ||
| 180 | (file-name (string-append name "-" version ".tar.gz")) | ||
| 181 | (sha256 | ||
| 182 | (base32 | ||
| 183 | "06jpvq6xfjzn2al6b4rdwd3zv3h4cvilc4n9gqcnjr9cr6wjpw2n")))))) | ||
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index db6c42f6b11..2b30308861b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com> | 22 | ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com> |
| 23 | ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si> | 23 | ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si> |
| 24 | ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org> | 24 | ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org> |
| 25 | ;;; Copyright © 2019 raingloom <raingloom@protonmail.com> | ||
| 25 | ;;; | 26 | ;;; |
| 26 | ;;; This file is part of GNU Guix. | 27 | ;;; This file is part of GNU Guix. |
| 27 | ;;; | 28 | ;;; |
| @@ -2137,7 +2138,7 @@ capabilities, custom envelopes, effects, etc.") | |||
| 2137 | (define-public yoshimi | 2138 | (define-public yoshimi |
| 2138 | (package | 2139 | (package |
| 2139 | (name "yoshimi") | 2140 | (name "yoshimi") |
| 2140 | (version "1.6.0") | 2141 | (version "1.6.0.1") |
| 2141 | (source (origin | 2142 | (source (origin |
| 2142 | (method url-fetch) | 2143 | (method url-fetch) |
| 2143 | (uri (string-append "mirror://sourceforge/yoshimi/" | 2144 | (uri (string-append "mirror://sourceforge/yoshimi/" |
| @@ -2145,10 +2146,10 @@ capabilities, custom envelopes, effects, etc.") | |||
| 2145 | "/yoshimi-" version ".tar.bz2")) | 2146 | "/yoshimi-" version ".tar.bz2")) |
| 2146 | (sha256 | 2147 | (sha256 |
| 2147 | (base32 | 2148 | (base32 |
| 2148 | "0bcc5spnq73yp1fmm367d1mxcswqkmzs3cnpb4cxr513ir98sa50")))) | 2149 | "140f2k4akj39pny8c7i794q125415gyvmy4rday0il5ncp3glik4")))) |
| 2149 | (build-system cmake-build-system) | 2150 | (build-system cmake-build-system) |
| 2150 | (arguments | 2151 | (arguments |
| 2151 | `(#:tests? #f ; there are no tests | 2152 | `(#:tests? #f ; there are no tests |
| 2152 | #:configure-flags | 2153 | #:configure-flags |
| 2153 | (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR=" | 2154 | (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR=" |
| 2154 | (assoc-ref %outputs "out") "/share")) | 2155 | (assoc-ref %outputs "out") "/share")) |
| @@ -4521,3 +4522,65 @@ discard bad quality ones. | |||
| 4521 | controller.") | 4522 | controller.") |
| 4522 | (home-page "https://github.com/charlesfleche/lpd8editor") | 4523 | (home-page "https://github.com/charlesfleche/lpd8editor") |
| 4523 | (license license:expat))) | 4524 | (license license:expat))) |
| 4525 | |||
| 4526 | (define-public fmit | ||
| 4527 | (package | ||
| 4528 | (name "fmit") | ||
| 4529 | (version "1.2.6") | ||
| 4530 | (source (origin | ||
| 4531 | (method git-fetch) | ||
| 4532 | (uri (git-reference | ||
| 4533 | (url "https://github.com/gillesdegottex/fmit/") | ||
| 4534 | (commit (string-append "v" version)))) | ||
| 4535 | (file-name (git-file-name name version)) | ||
| 4536 | (sha256 | ||
| 4537 | (base32 | ||
| 4538 | "03nzkig5mw2rqwhwmg0qvc5cnk9bwh2wp13jh0mdrr935w0587mz")))) | ||
| 4539 | (build-system gnu-build-system) | ||
| 4540 | (arguments | ||
| 4541 | '(#:phases | ||
| 4542 | (modify-phases %standard-phases | ||
| 4543 | (delete 'configure) | ||
| 4544 | (add-before 'build 'qmake | ||
| 4545 | (lambda _ | ||
| 4546 | (let ((out (assoc-ref %outputs "out"))) | ||
| 4547 | (invoke "qmake" | ||
| 4548 | "fmit.pro" | ||
| 4549 | (string-append "PREFIX=" out) | ||
| 4550 | (string-append "PREFIXSHORTCUT=" out) | ||
| 4551 | "CONFIG+=acs_qt acs_alsa acs_jack acs_portaudio")))) | ||
| 4552 | (add-after 'install 'wrap-executable | ||
| 4553 | (lambda* (#:key inputs outputs #:allow-other-keys) | ||
| 4554 | (let ((out (assoc-ref outputs "out"))) | ||
| 4555 | (wrap-program (string-append out "/bin/fmit") | ||
| 4556 | `("QT_PLUGIN_PATH" ":" prefix | ||
| 4557 | ,(map (lambda (label) | ||
| 4558 | (string-append (assoc-ref inputs label) | ||
| 4559 | "/lib/qt5/plugins")) | ||
| 4560 | '("qtbase" "qtmultimedia" "qtsvg"))) | ||
| 4561 | `("QML2_IMPORT_PATH" ":" prefix | ||
| 4562 | ,(map (lambda (label) | ||
| 4563 | (string-append (assoc-ref inputs label) | ||
| 4564 | "/lib/qt5/qml")) | ||
| 4565 | '("qtmultimedia")))) | ||
| 4566 | #t)))))) | ||
| 4567 | (inputs | ||
| 4568 | `(("alsa-lib" ,alsa-lib) | ||
| 4569 | ("fftw" ,fftw) | ||
| 4570 | ("jack" ,jack-1) | ||
| 4571 | ("portaudio" ,portaudio) | ||
| 4572 | ("qtbase" ,qtbase) | ||
| 4573 | ("qtmultimedia" ,qtmultimedia) | ||
| 4574 | ("qtsvg" ,qtsvg))) | ||
| 4575 | (native-inputs | ||
| 4576 | `(("gettext" ,gnu-gettext) | ||
| 4577 | ("hicolor-icon-theme" ,hicolor-icon-theme) | ||
| 4578 | ("itstool" ,itstool) | ||
| 4579 | ("qttools" ,qttools))) | ||
| 4580 | (synopsis "Musical instrument tuner") | ||
| 4581 | (description "FMIT is a graphical utility for tuning musical instruments, | ||
| 4582 | with error and volume history, and advanced features.") | ||
| 4583 | (home-page "https://gillesdegottex.github.io/fmit/") | ||
| 4584 | ;; Most of the code is under GPL2+, but some abstract or helper classes | ||
| 4585 | ;; are under LGPL2.1. | ||
| 4586 | (license (list license:gpl2+ license:lgpl2.1)))) | ||
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ee7d65fc06b..bfa901a84e8 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm | |||
| @@ -284,7 +284,7 @@ transparently check connection attempts against an access control list.") | |||
| 284 | (base32 | 284 | (base32 |
| 285 | "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb")))) | 285 | "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb")))) |
| 286 | (build-system gnu-build-system) | 286 | (build-system gnu-build-system) |
| 287 | (home-page "http://zeromq.org") | 287 | (home-page "https://zeromq.org") |
| 288 | (synopsis "Library for message-based applications") | 288 | (synopsis "Library for message-based applications") |
| 289 | (description | 289 | (description |
| 290 | "The 0MQ lightweight messaging kernel is a library which extends the | 290 | "The 0MQ lightweight messaging kernel is a library which extends the |
| @@ -1968,14 +1968,14 @@ displays the results in real time.") | |||
| 1968 | (define-public strongswan | 1968 | (define-public strongswan |
| 1969 | (package | 1969 | (package |
| 1970 | (name "strongswan") | 1970 | (name "strongswan") |
| 1971 | (version "5.8.0") | 1971 | (version "5.8.1") |
| 1972 | (source | 1972 | (source |
| 1973 | (origin | 1973 | (origin |
| 1974 | (method url-fetch) | 1974 | (method url-fetch) |
| 1975 | (uri (string-append "https://download.strongswan.org/strongswan-" | 1975 | (uri (string-append "https://download.strongswan.org/strongswan-" |
| 1976 | version ".tar.bz2")) | 1976 | version ".tar.bz2")) |
| 1977 | (sha256 | 1977 | (sha256 |
| 1978 | (base32 "0cq9m86ydd2i0awxkv4a256f4926p2f9pzlisyskl9fngl6f3c8m")))) | 1978 | (base32 "034rd6kr1bmnvj8rg2kcxdjb0cgj3dn9310mmm94j1awxan71byr")))) |
| 1979 | (build-system gnu-build-system) | 1979 | (build-system gnu-build-system) |
| 1980 | (arguments | 1980 | (arguments |
| 1981 | `(#:phases | 1981 | `(#:phases |
| @@ -1998,7 +1998,7 @@ displays the results in real time.") | |||
| 1998 | #t))) | 1998 | #t))) |
| 1999 | #:configure-flags | 1999 | #:configure-flags |
| 2000 | (list | 2000 | (list |
| 2001 | ;; Disable bsd-4 licensed plugins | 2001 | ;; Disable bsd-4 licensed plugins. |
| 2002 | "--disable-des" | 2002 | "--disable-des" |
| 2003 | "--disable-blowfish"))) | 2003 | "--disable-blowfish"))) |
| 2004 | (inputs | 2004 | (inputs |
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 419b6d7321d..6942ecec2f1 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | ;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org> | 5 | ;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org> |
| 6 | ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> | 6 | ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> |
| 7 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | 7 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 8 | ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||
| 8 | ;;; | 9 | ;;; |
| 9 | ;;; This file is part of GNU Guix. | 10 | ;;; This file is part of GNU Guix. |
| 10 | ;;; | 11 | ;;; |
| @@ -108,8 +109,11 @@ computers over a network.") | |||
| 108 | "0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv")))) | 109 | "0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv")))) |
| 109 | (build-system gnu-build-system) | 110 | (build-system gnu-build-system) |
| 110 | (arguments | 111 | (arguments |
| 111 | '(#:configure-flags '("--with-privsep-user=ntpd" | 112 | '(#:configure-flags `( "--with-privsep-user=ntpd" |
| 112 | "--localstatedir=/var") | 113 | "--localstatedir=/var" |
| 114 | ,(string-append "--with-cacert=" | ||
| 115 | (assoc-ref %build-inputs "libressl") | ||
| 116 | "/etc/ssl/cert.pem")) | ||
| 113 | #:phases | 117 | #:phases |
| 114 | (modify-phases %standard-phases | 118 | (modify-phases %standard-phases |
| 115 | (add-after 'unpack 'modify-install-locations | 119 | (add-after 'unpack 'modify-install-locations |
diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm index 2808359ca2a..1266e7e419a 100644 --- a/gnu/packages/ocr.scm +++ b/gnu/packages/ocr.scm | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> | 2 | ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> |
| 3 | ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> | 3 | ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> |
| 4 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> | 4 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 5 | ;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com> | ||
| 5 | ;;; | 6 | ;;; |
| 6 | ;;; This file is part of GNU Guix. | 7 | ;;; This file is part of GNU Guix. |
| 7 | ;;; | 8 | ;;; |
| @@ -22,8 +23,11 @@ | |||
| 22 | #:use-module ((guix licenses) #:prefix license:) | 23 | #:use-module ((guix licenses) #:prefix license:) |
| 23 | #:use-module (guix packages) | 24 | #:use-module (guix packages) |
| 24 | #:use-module (guix download) | 25 | #:use-module (guix download) |
| 26 | #:use-module (guix git-download) | ||
| 25 | #:use-module (guix build-system gnu) | 27 | #:use-module (guix build-system gnu) |
| 28 | #:use-module (guix build-system python) | ||
| 26 | #:use-module (gnu packages compression) | 29 | #:use-module (gnu packages compression) |
| 30 | #:use-module (gnu packages python) | ||
| 27 | #:use-module (gnu packages image)) | 31 | #:use-module (gnu packages image)) |
| 28 | 32 | ||
| 29 | (define-public ocrad | 33 | (define-public ocrad |
| @@ -76,3 +80,74 @@ positional information and page layout analysis. Several image formats are | |||
| 76 | supported through the Leptonica library. It can also detect whether text is | 80 | supported through the Leptonica library. It can also detect whether text is |
| 77 | monospaced or proportional.") | 81 | monospaced or proportional.") |
| 78 | (license license:asl2.0))) | 82 | (license license:asl2.0))) |
| 83 | |||
| 84 | (define-public zinnia | ||
| 85 | (let* ((commit "581faa8f6f15e4a7b21964be3a5ec36265c80e5b") | ||
| 86 | (revision "1") | ||
| 87 | ;; version copied from 'configure.in' | ||
| 88 | (version (git-version "0.07" revision commit))) | ||
| 89 | (package | ||
| 90 | (name "zinnia") | ||
| 91 | (version version) | ||
| 92 | (source | ||
| 93 | (origin | ||
| 94 | (method git-fetch) | ||
| 95 | (uri (git-reference | ||
| 96 | (url "https://github.com/taku910/zinnia.git") | ||
| 97 | (commit commit))) | ||
| 98 | (sha256 | ||
| 99 | (base32 | ||
| 100 | "1izjy5qw6swg0rs2ym2i72zndb90mwrfbd1iv8xbpwckbm4899lg")) | ||
| 101 | (file-name (git-file-name name version)) | ||
| 102 | (modules '((guix build utils) | ||
| 103 | (ice-9 ftw) | ||
| 104 | (srfi srfi-26))) | ||
| 105 | (snippet ; remove unnecessary files with potentially different license | ||
| 106 | '(begin | ||
| 107 | (for-each delete-file-recursively | ||
| 108 | (scandir "." | ||
| 109 | (negate (cut member <> '("zinnia" | ||
| 110 | "." ".."))))) | ||
| 111 | #t)))) | ||
| 112 | (build-system gnu-build-system) | ||
| 113 | (arguments | ||
| 114 | `(#:phases | ||
| 115 | (modify-phases %standard-phases | ||
| 116 | (replace 'bootstrap | ||
| 117 | (lambda _ | ||
| 118 | (chdir "zinnia") | ||
| 119 | (for-each make-file-writable | ||
| 120 | '("config.log" "config.status")) | ||
| 121 | #t))))) | ||
| 122 | (home-page "https://taku910.github.io/zinnia/") | ||
| 123 | (synopsis "Online hand recognition system with machine learning") | ||
| 124 | (description | ||
| 125 | "Zinnia is a simple, customizable and portable online hand recognition | ||
| 126 | system based on Support Vector Machines. Zinnia simply receives user pen | ||
| 127 | strokes as a sequence of coordinate data and outputs n-best characters sorted | ||
| 128 | by SVM confidence. To keep portability, Zinnia doesn't have any rendering | ||
| 129 | functionality. In addition to recognition, Zinnia provides training module | ||
| 130 | that allows us to create any hand-written recognition systems with low-cost.") | ||
| 131 | (license (list license:bsd-3 ; all files except... | ||
| 132 | (license:non-copyleft ; some autotools related files | ||
| 133 | "file://zinnia/aclocal.m4") | ||
| 134 | license:x11 ; 'install-sh' | ||
| 135 | license:public-domain))))) ; 'install-sh' | ||
| 136 | |||
| 137 | ;;; python 2 bindings, license under the same terms as zinnia | ||
| 138 | (define-public python2-zinnia | ||
| 139 | (package | ||
| 140 | (inherit zinnia) | ||
| 141 | (name "python2-zinnia") | ||
| 142 | (build-system python-build-system) | ||
| 143 | (arguments | ||
| 144 | `(#:python ,python-2 ; CObject API is used, it was removed in Python 3.2 | ||
| 145 | #:tests? #f ; avoid circular dependency on tegaki-zinnia-japanese | ||
| 146 | #:phases | ||
| 147 | (modify-phases %standard-phases | ||
| 148 | (add-after 'unpack 'chdir | ||
| 149 | (lambda _ | ||
| 150 | (chdir "zinnia/python") | ||
| 151 | #t))))) | ||
| 152 | (inputs | ||
| 153 | `(("zinnia" ,zinnia))))) | ||
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 57589d852c5..d396f001ef1 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | (define-module (gnu packages package-management) | 31 | (define-module (gnu packages package-management) |
| 32 | #:use-module (gnu packages) | 32 | #:use-module (gnu packages) |
| 33 | #:use-module (gnu packages acl) | 33 | #:use-module (gnu packages acl) |
| 34 | #:use-module (gnu packages admin) | ||
| 34 | #:use-module (gnu packages attr) | 35 | #:use-module (gnu packages attr) |
| 35 | #:use-module (gnu packages avahi) | 36 | #:use-module (gnu packages avahi) |
| 36 | #:use-module (gnu packages autotools) | 37 | #:use-module (gnu packages autotools) |
| @@ -39,6 +40,7 @@ | |||
| 39 | #:use-module (gnu packages bdw-gc) | 40 | #:use-module (gnu packages bdw-gc) |
| 40 | #:use-module (gnu packages bison) | 41 | #:use-module (gnu packages bison) |
| 41 | #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin' | 42 | #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin' |
| 43 | #:use-module (gnu packages cdrom) | ||
| 42 | #:use-module (gnu packages check) | 44 | #:use-module (gnu packages check) |
| 43 | #:use-module (gnu packages compression) | 45 | #:use-module (gnu packages compression) |
| 44 | #:use-module (gnu packages cpio) | 46 | #:use-module (gnu packages cpio) |
| @@ -48,6 +50,7 @@ | |||
| 48 | #:use-module (gnu packages docbook) | 50 | #:use-module (gnu packages docbook) |
| 49 | #:use-module (gnu packages file) | 51 | #:use-module (gnu packages file) |
| 50 | #:use-module (gnu packages gettext) | 52 | #:use-module (gnu packages gettext) |
| 53 | #:use-module (gnu packages ghostscript) | ||
| 51 | #:use-module (gnu packages glib) | 54 | #:use-module (gnu packages glib) |
| 52 | #:use-module (gnu packages gnome) | 55 | #:use-module (gnu packages gnome) |
| 53 | #:use-module (gnu packages gnupg) | 56 | #:use-module (gnu packages gnupg) |
| @@ -55,11 +58,19 @@ | |||
| 55 | #:use-module (gnu packages gtk) | 58 | #:use-module (gnu packages gtk) |
| 56 | #:use-module (gnu packages guile) | 59 | #:use-module (gnu packages guile) |
| 57 | #:use-module (gnu packages guile-xyz) | 60 | #:use-module (gnu packages guile-xyz) |
| 61 | #:use-module (gnu packages haskell) | ||
| 62 | #:use-module (gnu packages image) | ||
| 63 | #:use-module (gnu packages imagemagick) | ||
| 64 | #:use-module (gnu packages java) | ||
| 58 | #:use-module (gnu packages linux) | 65 | #:use-module (gnu packages linux) |
| 59 | #:use-module (gnu packages lisp) | 66 | #:use-module (gnu packages lisp) |
| 67 | #:use-module (gnu packages llvm) | ||
| 60 | #:use-module (gnu packages man) | 68 | #:use-module (gnu packages man) |
| 69 | #:use-module (gnu packages mono) | ||
| 70 | #:use-module (gnu packages nettle) | ||
| 61 | #:use-module (gnu packages nss) | 71 | #:use-module (gnu packages nss) |
| 62 | #:use-module (gnu packages patchutils) | 72 | #:use-module (gnu packages patchutils) |
| 73 | #:use-module (gnu packages pdf) | ||
| 63 | #:use-module (gnu packages perl) | 74 | #:use-module (gnu packages perl) |
| 64 | #:use-module (gnu packages perl-check) | 75 | #:use-module (gnu packages perl-check) |
| 65 | #:use-module (gnu packages pkg-config) | 76 | #:use-module (gnu packages pkg-config) |
| @@ -71,8 +82,10 @@ | |||
| 71 | #:use-module (gnu packages sqlite) | 82 | #:use-module (gnu packages sqlite) |
| 72 | #:use-module (gnu packages ssh) | 83 | #:use-module (gnu packages ssh) |
| 73 | #:use-module (gnu packages texinfo) | 84 | #:use-module (gnu packages texinfo) |
| 85 | #:use-module (gnu packages textutils) | ||
| 74 | #:use-module (gnu packages time) | 86 | #:use-module (gnu packages time) |
| 75 | #:use-module (gnu packages tls) | 87 | #:use-module (gnu packages tls) |
| 88 | #:use-module (gnu packages video) | ||
| 76 | #:use-module (gnu packages vim) | 89 | #:use-module (gnu packages vim) |
| 77 | #:use-module (gnu packages virtualization) | 90 | #:use-module (gnu packages virtualization) |
| 78 | #:use-module (gnu packages web) | 91 | #:use-module (gnu packages web) |
| @@ -110,8 +123,8 @@ | |||
| 110 | ;; Note: the 'update-guix-package.scm' script expects this definition to | 123 | ;; Note: the 'update-guix-package.scm' script expects this definition to |
| 111 | ;; start precisely like this. | 124 | ;; start precisely like this. |
| 112 | (let ((version "1.0.1") | 125 | (let ((version "1.0.1") |
| 113 | (commit "c902458863d1d341ffd74970b75e69c2bb848183") | 126 | (commit "0ed97e69805253656df929a6ad678016aa81f08a") |
| 114 | (revision 4)) | 127 | (revision 6)) |
| 115 | (package | 128 | (package |
| 116 | (name "guix") | 129 | (name "guix") |
| 117 | 130 | ||
| @@ -127,7 +140,7 @@ | |||
| 127 | (commit commit))) | 140 | (commit commit))) |
| 128 | (sha256 | 141 | (sha256 |
| 129 | (base32 | 142 | (base32 |
| 130 | "0w93qjgy9n0qqyij12s7hm7fl4wb6h99bmfril4cqf4ynckpdvbb")) | 143 | "1h2qlbbdqi72jslx17gp2cak5494nbm8j44rz57lnplnfcn6iwaw")) |
| 131 | (file-name (string-append "guix-" version "-checkout")))) | 144 | (file-name (string-append "guix-" version "-checkout")))) |
| 132 | (build-system gnu-build-system) | 145 | (build-system gnu-build-system) |
| 133 | (arguments | 146 | (arguments |
| @@ -342,6 +355,19 @@ the Nix package manager.") | |||
| 342 | #f) | 355 | #f) |
| 343 | ((#:phases phases '%standard-phases) | 356 | ((#:phases phases '%standard-phases) |
| 344 | `(modify-phases ,phases | 357 | `(modify-phases ,phases |
| 358 | (add-after 'unpack 'change-default-guix | ||
| 359 | (lambda _ | ||
| 360 | ;; We need to tell 'guix-daemon' which 'guix' command to use. | ||
| 361 | ;; Here we use a questionable hack where we hard-code root's | ||
| 362 | ;; current guix, which could be wrong (XXX). Note that scripts | ||
| 363 | ;; like 'guix perform-download' do not run as root so we assume | ||
| 364 | ;; that they have access to /var/guix/profiles/per-user/root. | ||
| 365 | (substitute* "nix/libstore/globals.cc" | ||
| 366 | (("guixProgram = (.*)nixBinDir + \"/guix\"" _ before) | ||
| 367 | (string-append "guixProgram = " before | ||
| 368 | "/var/guix/profiles/per-user/root\ | ||
| 369 | /current-guix/bin/guix"))) | ||
| 370 | #t)) | ||
| 345 | (replace 'build | 371 | (replace 'build |
| 346 | (lambda _ | 372 | (lambda _ |
| 347 | (invoke "make" "nix/libstore/schema.sql.hh") | 373 | (invoke "make" "nix/libstore/schema.sql.hh") |
| @@ -351,19 +377,7 @@ the Nix package manager.") | |||
| 351 | (delete 'copy-bootstrap-guile) | 377 | (delete 'copy-bootstrap-guile) |
| 352 | (replace 'install | 378 | (replace 'install |
| 353 | (lambda* (#:key outputs #:allow-other-keys) | 379 | (lambda* (#:key outputs #:allow-other-keys) |
| 354 | (invoke "make" "install-binPROGRAMS" | 380 | (invoke "make" "install-binPROGRAMS"))) |
| 355 | "install-nodist_pkglibexecSCRIPTS") | ||
| 356 | |||
| 357 | ;; We need to tell 'guix-daemon' which 'guix' command to use. | ||
| 358 | ;; Here we use a questionable hack where we hard-code root's | ||
| 359 | ;; current guix, which could be wrong (XXX). Note that scripts | ||
| 360 | ;; like 'guix perform-download' do not run as root so we assume | ||
| 361 | ;; that they have access to /var/guix/profiles/per-user/root. | ||
| 362 | (let ((out (assoc-ref outputs "out"))) | ||
| 363 | (substitute* (find-files (string-append out "/libexec")) | ||
| 364 | (("exec \".*/bin/guix\"") | ||
| 365 | "exec \"${GUIX:-/var/guix/profiles/per-user/root/current-guix/bin/guix}\"")) | ||
| 366 | #t))) | ||
| 367 | (delete 'wrap-program))))))) | 381 | (delete 'wrap-program))))))) |
| 368 | 382 | ||
| 369 | (define-public guile2.0-guix | 383 | (define-public guile2.0-guix |
| @@ -544,7 +558,7 @@ transactions from C or Python.") | |||
| 544 | (license license:gpl2+))) | 558 | (license license:gpl2+))) |
| 545 | 559 | ||
| 546 | (define-public diffoscope | 560 | (define-public diffoscope |
| 547 | (let ((version "122")) | 561 | (let ((version "123")) |
| 548 | (package | 562 | (package |
| 549 | (name "diffoscope") | 563 | (name "diffoscope") |
| 550 | (version version) | 564 | (version version) |
| @@ -556,7 +570,7 @@ transactions from C or Python.") | |||
| 556 | (file-name (git-file-name name version)) | 570 | (file-name (git-file-name name version)) |
| 557 | (sha256 | 571 | (sha256 |
| 558 | (base32 | 572 | (base32 |
| 559 | "1pwddknk8qyv88ba63why8vbnlc14b47434lv4ijx49m7ya3zfvg")))) | 573 | "11bxms5rkhi0v4pxx29v4qgvhp3fmf0fkzci6gn5xcv4fl1zy4wj")))) |
| 560 | (build-system python-build-system) | 574 | (build-system python-build-system) |
| 561 | (arguments | 575 | (arguments |
| 562 | `(#:phases (modify-phases %standard-phases | 576 | `(#:phases (modify-phases %standard-phases |
| @@ -573,6 +587,13 @@ transactions from C or Python.") | |||
| 573 | (lambda _ | 587 | (lambda _ |
| 574 | (delete-file "tests/comparators/test_berkeley_db.py") | 588 | (delete-file "tests/comparators/test_berkeley_db.py") |
| 575 | #t)) | 589 | #t)) |
| 590 | ;; Test is dynamically generated and may have false | ||
| 591 | ;; negatives with different ocaml versions. Further | ||
| 592 | ;; background in: https://bugs.debian.org/939386 | ||
| 593 | (add-after 'unpack 'remove-ocaml-test | ||
| 594 | (lambda _ | ||
| 595 | (delete-file "tests/comparators/test_ocaml.py") | ||
| 596 | #t)) | ||
| 576 | (add-after 'unpack 'embed-tool-references | 597 | (add-after 'unpack 'embed-tool-references |
| 577 | (lambda* (#:key inputs #:allow-other-keys) | 598 | (lambda* (#:key inputs #:allow-other-keys) |
| 578 | (substitute* "diffoscope/comparators/utils/compare.py" | 599 | (substitute* "diffoscope/comparators/utils/compare.py" |
| @@ -592,10 +613,9 @@ transactions from C or Python.") | |||
| 592 | #t)) | 613 | #t)) |
| 593 | (add-before 'check 'writable-test-data | 614 | (add-before 'check 'writable-test-data |
| 594 | (lambda _ | 615 | (lambda _ |
| 595 | ;; tests/comparators/test_elf.py needs write access to | 616 | ;; tests may need needs write access to tests |
| 596 | ;; test data | 617 | ;; directory |
| 597 | (make-file-writable | 618 | (for-each make-file-writable (find-files "tests")) |
| 598 | "tests/data/ignore_readelf_errors_expected_diff") | ||
| 599 | #t)) | 619 | #t)) |
| 600 | (add-before 'check 'delete-failing-test | 620 | (add-before 'check 'delete-failing-test |
| 601 | (lambda _ | 621 | (lambda _ |
| @@ -612,7 +632,43 @@ transactions from C or Python.") | |||
| 612 | ("xxd" ,xxd))) | 632 | ("xxd" ,xxd))) |
| 613 | ;; Below are modules used for tests. | 633 | ;; Below are modules used for tests. |
| 614 | (native-inputs `(("python-pytest" ,python-pytest) | 634 | (native-inputs `(("python-pytest" ,python-pytest) |
| 615 | ("python-chardet" ,python-chardet))) | 635 | ("python-chardet" ,python-chardet) |
| 636 | ;; test suite skips tests when tool is missing | ||
| 637 | ("bdb" ,bdb) | ||
| 638 | ("binutils" ,binutils) | ||
| 639 | ("bzip2" ,bzip2) | ||
| 640 | ("cdrtools" ,cdrtools) | ||
| 641 | ("colord" ,colord) | ||
| 642 | ("cpio" ,cpio) | ||
| 643 | ("docx2txt" ,docx2txt) | ||
| 644 | ("e2fsprogs" ,e2fsprogs) | ||
| 645 | ("ffmpeg" ,ffmpeg) | ||
| 646 | ("gettext" ,gettext-minimal) | ||
| 647 | ("ghc" ,ghc) | ||
| 648 | ("ghostscript" ,ghostscript) | ||
| 649 | ("giflib:bin" ,giflib "bin") | ||
| 650 | ("gnumeric" ,gnumeric) | ||
| 651 | ("gnupg" ,gnupg) | ||
| 652 | ("imagemagick" ,imagemagick) | ||
| 653 | ("libarchive" ,libarchive) | ||
| 654 | ("llvm" ,llvm) | ||
| 655 | ("lz4" ,lz4) | ||
| 656 | ("mono" ,mono) | ||
| 657 | ("odt2txt" ,odt2txt) | ||
| 658 | ;; no unversioned openjdk available | ||
| 659 | ("openjdk:jdk" ,openjdk12 "jdk") | ||
| 660 | ("openssh" ,openssh) | ||
| 661 | ("pgpdump" ,pgpdump) | ||
| 662 | ("poppler" ,poppler) | ||
| 663 | ("rpm" ,rpm) | ||
| 664 | ("sng" ,sng) | ||
| 665 | ("sqlite" ,sqlite) | ||
| 666 | ("squashfs-tools" ,squashfs-tools) | ||
| 667 | ("tcpdump" ,tcpdump) | ||
| 668 | ("unzip" ,unzip) | ||
| 669 | ("xxd" ,xxd) | ||
| 670 | ("xz" ,xz) | ||
| 671 | ("zip" ,(@ (gnu packages compression) zip)))) | ||
| 616 | (home-page "https://diffoscope.org/") | 672 | (home-page "https://diffoscope.org/") |
| 617 | (synopsis "Compare files, archives, and directories in depth") | 673 | (synopsis "Compare files, archives, and directories in depth") |
| 618 | (description | 674 | (description |
diff --git a/gnu/packages/patches/cmake-curl-certificates.patch b/gnu/packages/patches/cmake-curl-certificates.patch new file mode 100644 index 00000000000..36252083f80 --- /dev/null +++ b/gnu/packages/patches/cmake-curl-certificates.patch | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | By default commands such as "ctest" would not look for certificates | ||
| 2 | at all: <https://issues.guix.gnu.org/issue/37371>. | ||
| 3 | |||
| 4 | This changes CMake such that commands honor SSL_CERT_FILE and SSL_CERT_DIR | ||
| 5 | as well as /etc/ssl/certs. | ||
| 6 | |||
| 7 | --- cmake-3.13.1/Source/cmCurl.cxx 2019-09-10 17:27:36.926907260 +0200 | ||
| 8 | +++ cmake-3.13.1/Source/cmCurl.cxx 2019-09-10 17:52:35.475903919 +0200 | ||
| 9 | @@ -4,11 +4,8 @@ | ||
| 10 | |||
| 11 | #include "cmThirdParty.h" | ||
| 12 | |||
| 13 | -#if !defined(CMAKE_USE_SYSTEM_CURL) && !defined(_WIN32) && \ | ||
| 14 | - !defined(__APPLE__) && !defined(CURL_CA_BUNDLE) && !defined(CURL_CA_PATH) | ||
| 15 | # define CMAKE_FIND_CAFILE | ||
| 16 | # include "cmSystemTools.h" | ||
| 17 | -#endif | ||
| 18 | |||
| 19 | // curl versions before 7.21.5 did not provide this error code | ||
| 20 | #if defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM < 0x071505 | ||
| 21 | @@ -29,6 +26,19 @@ std::string cmCurlSetCAInfo(::CURL* curl | ||
| 22 | ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, cafile); | ||
| 23 | check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); | ||
| 24 | } | ||
| 25 | + | ||
| 26 | + /* Honor the usual environment variables. */ | ||
| 27 | + else if (cmSystemTools::GetEnv("SSL_CERT_FILE", e)) { | ||
| 28 | + ::CURLcode res = | ||
| 29 | + ::curl_easy_setopt(curl, CURLOPT_CAINFO, e.c_str()); | ||
| 30 | + check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); | ||
| 31 | + } | ||
| 32 | + else if (cmSystemTools::GetEnv("SSL_CERT_DIR", e)) { | ||
| 33 | + ::CURLcode res = | ||
| 34 | + ::curl_easy_setopt(curl, CURLOPT_CAPATH, e.c_str()); | ||
| 35 | + check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | #ifdef CMAKE_FIND_CAFILE | ||
| 39 | # define CMAKE_CAFILE_FEDORA "/etc/pki/tls/certs/ca-bundle.crt" | ||
| 40 | else if (cmSystemTools::FileExists(CMAKE_CAFILE_FEDORA, true)) { | ||
diff --git a/gnu/packages/patches/tipp10-fix-compiling.patch b/gnu/packages/patches/tipp10-fix-compiling.patch index 4c206d4d837..3a34a98b224 100644 --- a/gnu/packages/patches/tipp10-fix-compiling.patch +++ b/gnu/packages/patches/tipp10-fix-compiling.patch | |||
| @@ -204,8 +204,7 @@ https://sources.debian.net/data/main/t/tipp10/2.1.0-2/debian/patches/0001-FixCom | |||
| 204 | Name=TIPP10 | 204 | Name=TIPP10 |
| 205 | Comment=Touch Typing Tutor | 205 | Comment=Touch Typing Tutor |
| 206 | Comment[de]=10-Finger-Schreibtrainer | 206 | Comment[de]=10-Finger-Schreibtrainer |
| 207 | -Exec=tipp10 | 207 | Exec=tipp10 |
| 208 | +Exec=/usr/bin/tipp10 | ||
| 209 | Icon=tipp10.png | 208 | Icon=tipp10.png |
| 210 | Terminal=false | 209 | Terminal=false |
| 211 | Type=Application | 210 | Type=Application |
diff --git a/gnu/packages/patches/weechat-python.patch b/gnu/packages/patches/weechat-python.patch deleted file mode 100644 index 8182636ecba..00000000000 --- a/gnu/packages/patches/weechat-python.patch +++ /dev/null | |||
| @@ -1,40 +0,0 @@ | |||
| 1 | Get Python LDFLAGS from 'pkg-config'. | ||
| 2 | |||
| 3 | The other approach is more complex and gets it wrong: it returns | ||
| 4 | "-L/path/to/python/lib/python-2.7.10/lib/python2.7/config -lpython -lwhatever"; | ||
| 5 | since that config/ sub-directory contains libpython2.7.a, we end up | ||
| 6 | statically linking Python in Weechat's python.so, which we do not want. | ||
| 7 | |||
| 8 | --- weechat-1.3/configure.ac 2015-08-16 08:27:07.000000000 +0200 | ||
| 9 | +++ weechat-1.3/configure.ac 2015-11-29 18:18:52.975197048 +0100 | ||
| 10 | @@ -535,29 +535,7 @@ if test "x$enable_python" = "xyes" ; the | ||
| 11 | if test -r "$PYTHON_INCLUDE/Python.h"; then | ||
| 12 | PYTHON_CFLAGS="-I$PYTHON_INCLUDE" | ||
| 13 | AC_MSG_RESULT(found) | ||
| 14 | - PYTHON_LIB=`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBPL'))"` | ||
| 15 | - PYTHON_LFLAGS="-lpython$PYTHON_VERSION "`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBS')+' '+distutils.sysconfig.get_config_var('SYSLIBS')+' '+distutils.sysconfig.get_config_var('LINKFORSHARED'))"` | ||
| 16 | - AC_MSG_CHECKING(for Python library) | ||
| 17 | - if test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.so"; then | ||
| 18 | - PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" | ||
| 19 | - AC_MSG_RESULT(found) | ||
| 20 | - elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.a"; then | ||
| 21 | - PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" | ||
| 22 | - AC_MSG_RESULT(found) | ||
| 23 | - elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.dll.a"; then | ||
| 24 | - PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" | ||
| 25 | - AC_MSG_RESULT(found) | ||
| 26 | - elif test -r "$PYTHON_SYSPREFIX/lib/libpython$PYTHON_VERSION.so"; then | ||
| 27 | - PYTHON_LFLAGS="-L$PYTHON_SYSPREFIX/lib/ $PYTHON_LFLAGS" | ||
| 28 | - AC_MSG_RESULT(found) | ||
| 29 | - else | ||
| 30 | - AC_MSG_WARN([ | ||
| 31 | -*** Python library couldn't be found on your system. | ||
| 32 | -*** Try to install it with your software package manager. | ||
| 33 | -*** WeeChat will be built without Python support.]) | ||
| 34 | - enable_python="no" | ||
| 35 | - not_found="$not_found python" | ||
| 36 | - fi | ||
| 37 | + PYTHON_LFLAGS=`pkg-config python2 --libs` | ||
| 38 | else | ||
| 39 | AC_MSG_WARN([ | ||
| 40 | *** Python header files couldn't be found on your system. | ||
diff --git a/gnu/packages/perl-compression.scm b/gnu/packages/perl-compression.scm index ea714922627..d09e68e294c 100644 --- a/gnu/packages/perl-compression.scm +++ b/gnu/packages/perl-compression.scm | |||
| @@ -133,7 +133,7 @@ type by using either Perl modules, or command-line tools on your system.") | |||
| 133 | (define-public perl-archive-zip | 133 | (define-public perl-archive-zip |
| 134 | (package | 134 | (package |
| 135 | (name "perl-archive-zip") | 135 | (name "perl-archive-zip") |
| 136 | (version "1.64") | 136 | (version "1.65") |
| 137 | (source | 137 | (source |
| 138 | (origin | 138 | (origin |
| 139 | (method url-fetch) | 139 | (method url-fetch) |
| @@ -141,8 +141,7 @@ type by using either Perl modules, or command-line tools on your system.") | |||
| 141 | "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-" | 141 | "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-" |
| 142 | version ".tar.gz")) | 142 | version ".tar.gz")) |
| 143 | (sha256 | 143 | (sha256 |
| 144 | (base32 | 144 | (base32 "116vcg8x7n92i7cn3bx0xck69mz9vjy0il9i8p7p7lk40kz7jcbl")))) |
| 145 | "0zfinh8nx3rxzscp57vq3w8hihpdb0zs67vvalykcf402kr88pyy")))) | ||
| 146 | (build-system perl-build-system) | 145 | (build-system perl-build-system) |
| 147 | (native-inputs | 146 | (native-inputs |
| 148 | ;; For tests. | 147 | ;; For tests. |
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 676dae54304..b8aaef9b77b 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> | 2 | ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> |
| 3 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> | 3 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 4 | ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> | 4 | ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> |
| 5 | ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||
| 5 | ;;; | 6 | ;;; |
| 6 | ;;; This file is part of GNU Guix. | 7 | ;;; This file is part of GNU Guix. |
| 7 | ;;; | 8 | ;;; |
| @@ -226,11 +227,27 @@ testing framework.") | |||
| 226 | (base32 | 227 | (base32 |
| 227 | "03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12")))) | 228 | "03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12")))) |
| 228 | (build-system python-build-system) | 229 | (build-system python-build-system) |
| 229 | (arguments '(#:tests? #f)) ; one test fails; can't find virtualenv | 230 | (arguments |
| 231 | `(#:phases | ||
| 232 | (modify-phases %standard-phases | ||
| 233 | ;; Reference the virtualenv executable directly, to avoid the need | ||
| 234 | ;; for PYTHONPATH, which gets cleared when instantiating a new | ||
| 235 | ;; virtualenv with pytest-virtualenv. | ||
| 236 | (add-after 'unpack 'patch-virtualenv-executable | ||
| 237 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 238 | (let* ((virtualenv (assoc-ref inputs "python-virtualenv")) | ||
| 239 | (virtualenv-bin (string-append virtualenv | ||
| 240 | "/bin/virtualenv"))) | ||
| 241 | (substitute* "pytest_virtualenv.py" | ||
| 242 | (("^DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE.*$") | ||
| 243 | (format #f "DEFAULT_VIRTUALENV_FIXTURE_EXECUTABLE = '~a'" | ||
| 244 | virtualenv-bin))) | ||
| 245 | #t)))))) | ||
| 230 | (propagated-inputs | 246 | (propagated-inputs |
| 231 | `(("python-virtualenv" ,python-virtualenv) | 247 | `(("python-pytest-shutil" ,python-pytest-shutil) |
| 232 | ("python-pytest-shutil" ,python-pytest-shutil) | ||
| 233 | ("python-pytest-fixture-config" ,python-pytest-fixture-config))) | 248 | ("python-pytest-fixture-config" ,python-pytest-fixture-config))) |
| 249 | (inputs | ||
| 250 | `(("python-virtualenv" ,python-virtualenv))) | ||
| 234 | (native-inputs | 251 | (native-inputs |
| 235 | `(("python-mock" ,python-mock) | 252 | `(("python-mock" ,python-mock) |
| 236 | ("python-pytest" ,python-pytest) | 253 | ("python-pytest" ,python-pytest) |
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 296879f5341..eef2079c196 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm | |||
| @@ -3004,38 +3004,44 @@ Language (TOML) configuration files.") | |||
| 3004 | Server (PLS).") | 3004 | Server (PLS).") |
| 3005 | (license license:expat))) | 3005 | (license license:expat))) |
| 3006 | 3006 | ||
| 3007 | ;; XXX: We must use a non-release version since the latest release version | ||
| 3008 | ;; requires python-jedi version < 0.15. | ||
| 3007 | (define-public python-language-server | 3009 | (define-public python-language-server |
| 3008 | (package | 3010 | (let ((commit "c3cab77a85b1de4af1aec1bafea6a7320d6baec5") |
| 3009 | (name "python-language-server") | 3011 | (revision "1")) |
| 3010 | (version "0.26.1") | 3012 | (package |
| 3011 | (source | 3013 | (name "python-language-server") |
| 3012 | (origin | 3014 | (version (git-version "0.28.3" revision commit)) |
| 3013 | (method url-fetch) | 3015 | (source |
| 3014 | (uri (pypi-uri "python-language-server" version)) | 3016 | (origin |
| 3015 | (sha256 | 3017 | (method git-fetch) |
| 3016 | (base32 | 3018 | (uri (git-reference |
| 3017 | "1vs9ckfmm534n1hq3m871916wsjvi5h4gyj6wlzg13ck6506lx0s")))) | 3019 | (url "https://github.com/palantir/python-language-server.git") |
| 3018 | (build-system python-build-system) | 3020 | (commit commit))) |
| 3019 | (propagated-inputs | 3021 | (sha256 |
| 3020 | `(("python-pluggy" ,python-pluggy) | 3022 | (base32 |
| 3021 | ("python-jsonrpc-server" ,python-jsonrpc-server) | 3023 | "1q0xdwgln09sh58j0ryygj92hfgdhwcs57zjvqihya23jr5v0bz4")))) |
| 3022 | ("python-jedi" ,python-jedi) | 3024 | (build-system python-build-system) |
| 3023 | ("python-yapf" ,python-yapf) | 3025 | (propagated-inputs |
| 3024 | ("python-pyflakes" ,python-pyflakes) | 3026 | `(("python-pluggy" ,python-pluggy) |
| 3025 | ("python-pydocstyle" ,python-pydocstyle) | 3027 | ("python-jsonrpc-server" ,python-jsonrpc-server) |
| 3026 | ("python-pycodestyle" ,python-pycodestyle) | 3028 | ("python-jedi" ,python-jedi) |
| 3027 | ("python-mccabe" ,python-mccabe) | 3029 | ("python-yapf" ,python-yapf) |
| 3028 | ("python-rope" ,python-rope) | 3030 | ("python-pyflakes" ,python-pyflakes) |
| 3029 | ("python-autopep8" ,python-autopep8) | 3031 | ("python-pydocstyle" ,python-pydocstyle) |
| 3030 | ("python-pylint" ,python-pylint))) | 3032 | ("python-pycodestyle" ,python-pycodestyle) |
| 3031 | (home-page "https://github.com/palantir/python-language-server") | 3033 | ("python-mccabe" ,python-mccabe) |
| 3032 | (synopsis "Python implementation of the Language Server Protocol") | 3034 | ("python-rope" ,python-rope) |
| 3033 | (description | 3035 | ("python-autopep8" ,python-autopep8) |
| 3034 | "The Python Language Server (pyls) is an implementation of the Python 3 | 3036 | ("python-pylint" ,python-pylint))) |
| 3037 | (home-page "https://github.com/palantir/python-language-server") | ||
| 3038 | (synopsis "Python implementation of the Language Server Protocol") | ||
| 3039 | (description | ||
| 3040 | "The Python Language Server (pyls) is an implementation of the Python 3 | ||
| 3035 | language specification for the Language Server Protocol (LSP). This tool is | 3041 | language specification for the Language Server Protocol (LSP). This tool is |
| 3036 | used in text editing environments to provide a complete and integrated | 3042 | used in text editing environments to provide a complete and integrated |
| 3037 | feature-set for programming Python effectively.") | 3043 | feature-set for programming Python effectively.") |
| 3038 | (license license:expat))) | 3044 | (license license:expat)))) |
| 3039 | 3045 | ||
| 3040 | (define-public python-black | 3046 | (define-public python-black |
| 3041 | (package | 3047 | (package |
| @@ -3848,14 +3854,14 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. | |||
| 3848 | (define-public python-matplotlib | 3854 | (define-public python-matplotlib |
| 3849 | (package | 3855 | (package |
| 3850 | (name "python-matplotlib") | 3856 | (name "python-matplotlib") |
| 3851 | (version "2.2.3") | 3857 | (version "3.1.1") |
| 3852 | (source | 3858 | (source |
| 3853 | (origin | 3859 | (origin |
| 3854 | (method url-fetch) | 3860 | (method url-fetch) |
| 3855 | (uri (pypi-uri "matplotlib" version)) | 3861 | (uri (pypi-uri "matplotlib" version)) |
| 3856 | (sha256 | 3862 | (sha256 |
| 3857 | (base32 | 3863 | (base32 |
| 3858 | "1rcc7x9ig3hpchkc4cwdvym3y451w74275fxr455zkfagrsvymbk")))) | 3864 | "14qc109dibp32xfd9lah54djc0rc76fhbsj9cwyb328lzqmd5sqz")))) |
| 3859 | (build-system python-build-system) | 3865 | (build-system python-build-system) |
| 3860 | (propagated-inputs ; the following packages are all needed at run time | 3866 | (propagated-inputs ; the following packages are all needed at run time |
| 3861 | `(("python-cycler" ,python-cycler) | 3867 | `(("python-cycler" ,python-cycler) |
| @@ -3872,7 +3878,7 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. | |||
| 3872 | ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of | 3878 | ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of |
| 3873 | ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context' | 3879 | ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context' |
| 3874 | ;; object. For this reason we need to import both libraries. | 3880 | ;; object. For this reason we need to import both libraries. |
| 3875 | ;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo | 3881 | ;; https://cairocffi.readthedocs.io/en/stable/cffi_api.html#converting-pycairo-wrappers-to-cairocffi |
| 3876 | ("python-pycairo" ,python-pycairo) | 3882 | ("python-pycairo" ,python-pycairo) |
| 3877 | ("python-cairocffi" ,python-cairocffi))) | 3883 | ("python-cairocffi" ,python-cairocffi))) |
| 3878 | (inputs | 3884 | (inputs |
| @@ -3887,11 +3893,59 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. | |||
| 3887 | ("tk" ,tk))) | 3893 | ("tk" ,tk))) |
| 3888 | (native-inputs | 3894 | (native-inputs |
| 3889 | `(("pkg-config" ,pkg-config) | 3895 | `(("pkg-config" ,pkg-config) |
| 3890 | ("python-nose" ,python-nose) | 3896 | ("python-pytest" ,python-pytest) |
| 3891 | ("python-mock" ,python-mock))) | 3897 | ("python-mock" ,python-mock) |
| 3898 | ("unzip" ,unzip) | ||
| 3899 | ("jquery-ui" | ||
| 3900 | ,(origin | ||
| 3901 | (method url-fetch) | ||
| 3902 | (uri "https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip") | ||
| 3903 | (sha256 | ||
| 3904 | (base32 | ||
| 3905 | "0kb21xf38diqgxcdi1z3s9ssq36pldvyqxy56hn6pcva6rs3c8zq")))))) | ||
| 3892 | (arguments | 3906 | (arguments |
| 3893 | `(#:phases | 3907 | `(#:phases |
| 3894 | (modify-phases %standard-phases | 3908 | (modify-phases %standard-phases |
| 3909 | ;; XXX We disable all image comparison tests because we're using a | ||
| 3910 | ;; newer version of FreeType than matplotlib expects. This leads to | ||
| 3911 | ;; minor differences throughout the tests. | ||
| 3912 | (add-after 'unpack 'fix-and-disable-failing-tests | ||
| 3913 | (lambda _ | ||
| 3914 | (substitute* (append (find-files "lib/matplotlib/tests/" | ||
| 3915 | "test_.*\\.py$") | ||
| 3916 | (find-files "lib/mpl_toolkits/tests" | ||
| 3917 | "test_.*\\.py$")) | ||
| 3918 | (("^from matplotlib" match) | ||
| 3919 | (string-append "import pytest\n" match)) | ||
| 3920 | (("( *)@image_comparison" match indent) | ||
| 3921 | (string-append indent | ||
| 3922 | "@pytest.mark.skip(reason=\"unknown minor image differences\")\n" | ||
| 3923 | match))) | ||
| 3924 | (substitute* "lib/matplotlib/tests/test_animation.py" | ||
| 3925 | (("/bin/sh") (which "sh"))) | ||
| 3926 | (for-each delete-file | ||
| 3927 | ;; test_normal_axes, test_get_tightbbox_polar | ||
| 3928 | '("lib/matplotlib/tests/test_axes.py" | ||
| 3929 | ;; test_outward_ticks | ||
| 3930 | "lib/matplotlib/tests/test_tightlayout.py" | ||
| 3931 | ;; Fontconfig returns no fonts. | ||
| 3932 | "lib/matplotlib/tests/test_font_manager.py")) | ||
| 3933 | #t)) | ||
| 3934 | (add-before 'install 'install-jquery-ui | ||
| 3935 | (lambda* (#:key outputs inputs #:allow-other-keys) | ||
| 3936 | (let ((dir (string-append (assoc-ref outputs "out") | ||
| 3937 | "/lib/python3.7/site-packages/matplotlib/backends/web_backend/"))) | ||
| 3938 | (mkdir-p dir) | ||
| 3939 | (invoke "unzip" | ||
| 3940 | (assoc-ref inputs "jquery-ui") | ||
| 3941 | "-d" dir)) | ||
| 3942 | #t)) | ||
| 3943 | (delete 'check) | ||
| 3944 | (add-after 'install 'check | ||
| 3945 | (lambda* (#:key outputs inputs #:allow-other-keys) | ||
| 3946 | (add-installed-pythonpath inputs outputs) | ||
| 3947 | (invoke "python" "tests.py" "-v" | ||
| 3948 | "-m" "not network"))) | ||
| 3895 | (add-before 'build 'configure-environment | 3949 | (add-before 'build 'configure-environment |
| 3896 | (lambda* (#:key outputs inputs #:allow-other-keys) | 3950 | (lambda* (#:key outputs inputs #:allow-other-keys) |
| 3897 | (let ((cairo (assoc-ref inputs "cairo"))) | 3951 | (let ((cairo (assoc-ref inputs "cairo"))) |
| @@ -3903,8 +3957,8 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. | |||
| 3903 | (lambda (port) | 3957 | (lambda (port) |
| 3904 | (format port "[directories]~% | 3958 | (format port "[directories]~% |
| 3905 | basedirlist = ~a,~a~% | 3959 | basedirlist = ~a,~a~% |
| 3906 | [rc_options]~% | 3960 | [packages]~% |
| 3907 | backend = TkAgg~%" | 3961 | tests = True~%" |
| 3908 | (assoc-ref inputs "tcl") | 3962 | (assoc-ref inputs "tcl") |
| 3909 | (assoc-ref inputs "tk"))))) | 3963 | (assoc-ref inputs "tk"))))) |
| 3910 | #t))))) | 3964 | #t))))) |
| @@ -3923,6 +3977,14 @@ toolkits.") | |||
| 3923 | (let ((matplotlib (package-with-python2 | 3977 | (let ((matplotlib (package-with-python2 |
| 3924 | (strip-python2-variant python-matplotlib)))) | 3978 | (strip-python2-variant python-matplotlib)))) |
| 3925 | (package (inherit matplotlib) | 3979 | (package (inherit matplotlib) |
| 3980 | (version "2.2.3") | ||
| 3981 | (source | ||
| 3982 | (origin | ||
| 3983 | (method url-fetch) | ||
| 3984 | (uri (pypi-uri "matplotlib" version)) | ||
| 3985 | (sha256 | ||
| 3986 | (base32 | ||
| 3987 | "1rcc7x9ig3hpchkc4cwdvym3y451w74275fxr455zkfagrsvymbk")))) | ||
| 3926 | ;; Make sure to use special packages for Python 2 instead | 3988 | ;; Make sure to use special packages for Python 2 instead |
| 3927 | ;; of those automatically rewritten by package-with-python2. | 3989 | ;; of those automatically rewritten by package-with-python2. |
| 3928 | (propagated-inputs | 3990 | (propagated-inputs |
| @@ -3946,6 +4008,7 @@ toolkits.") | |||
| 3946 | `(("python-matplotlib" ,python-matplotlib) | 4008 | `(("python-matplotlib" ,python-matplotlib) |
| 3947 | ("python-colorspacious" ,python-colorspacious) | 4009 | ("python-colorspacious" ,python-colorspacious) |
| 3948 | ("python-sphinx" ,python-sphinx) | 4010 | ("python-sphinx" ,python-sphinx) |
| 4011 | ("python-sphinx-copybutton" ,python-sphinx-copybutton) | ||
| 3949 | ("python-sphinx-gallery" ,python-sphinx-gallery) | 4012 | ("python-sphinx-gallery" ,python-sphinx-gallery) |
| 3950 | ("python-numpydoc" ,python-numpydoc) | 4013 | ("python-numpydoc" ,python-numpydoc) |
| 3951 | ("python-ipython" ,python-ipython) | 4014 | ("python-ipython" ,python-ipython) |
| @@ -3972,6 +4035,9 @@ toolkits.") | |||
| 3972 | `(#:tests? #f ; we're only generating documentation | 4035 | `(#:tests? #f ; we're only generating documentation |
| 3973 | #:phases | 4036 | #:phases |
| 3974 | (modify-phases %standard-phases | 4037 | (modify-phases %standard-phases |
| 4038 | ;; The tests in python-matplotlib are run after the install phase, so | ||
| 4039 | ;; we need to delete the extra phase here. | ||
| 4040 | (delete 'check) | ||
| 3975 | (replace 'build | 4041 | (replace 'build |
| 3976 | (lambda _ | 4042 | (lambda _ |
| 3977 | (chdir "doc") | 4043 | (chdir "doc") |
| @@ -4020,7 +4086,12 @@ toolkits.") | |||
| 4020 | (license (package-license python-matplotlib)))) | 4086 | (license (package-license python-matplotlib)))) |
| 4021 | 4087 | ||
| 4022 | (define-public python2-matplotlib-documentation | 4088 | (define-public python2-matplotlib-documentation |
| 4023 | (package-with-python2 python-matplotlib-documentation)) | 4089 | (let ((parent (package-with-python2 python-matplotlib-documentation))) |
| 4090 | (package | ||
| 4091 | (inherit parent) | ||
| 4092 | (native-inputs | ||
| 4093 | (alist-delete "python-sphinx-copybutton" | ||
| 4094 | (package-native-inputs parent)))))) | ||
| 4024 | 4095 | ||
| 4025 | (define-public python-matplotlib-venn | 4096 | (define-public python-matplotlib-venn |
| 4026 | (package | 4097 | (package |
| @@ -5014,7 +5085,8 @@ releases.") | |||
| 5014 | (outputs '("out" "doc")) | 5085 | (outputs '("out" "doc")) |
| 5015 | (build-system python-build-system) | 5086 | (build-system python-build-system) |
| 5016 | (propagated-inputs | 5087 | (propagated-inputs |
| 5017 | `(("python-appdirs" ,python-appdirs))) | 5088 | `(("python-appdirs" ,python-appdirs) |
| 5089 | ("python-importlib-metadata" ,python-importlib-metadata))) | ||
| 5018 | (native-inputs | 5090 | (native-inputs |
| 5019 | `(("python-setuptools-scm" ,python-setuptools-scm) | 5091 | `(("python-setuptools-scm" ,python-setuptools-scm) |
| 5020 | ("python-sphinx" ,python-sphinx) | 5092 | ("python-sphinx" ,python-sphinx) |
| @@ -5447,6 +5519,13 @@ computing.") | |||
| 5447 | (arguments | 5519 | (arguments |
| 5448 | `(#:phases | 5520 | `(#:phases |
| 5449 | (modify-phases %standard-phases | 5521 | (modify-phases %standard-phases |
| 5522 | (add-after 'unpack 'make-docs-reproducible | ||
| 5523 | (lambda _ | ||
| 5524 | (substitute* "IPython/sphinxext/ipython_directive.py" | ||
| 5525 | ((".*import datetime") "") | ||
| 5526 | ((".*datetime.datetime.now\\(\\)") "") | ||
| 5527 | (("%timeit") "# %timeit")) | ||
| 5528 | #t)) | ||
| 5450 | ;; Tests can only be run after the library has been installed and not | 5529 | ;; Tests can only be run after the library has been installed and not |
| 5451 | ;; within the source directory. | 5530 | ;; within the source directory. |
| 5452 | (delete 'check) | 5531 | (delete 'check) |
| @@ -7500,17 +7579,31 @@ serve the same purpose: provide Python bindings for libmagic."))) | |||
| 7500 | (package | 7579 | (package |
| 7501 | (name "python-debian") | 7580 | (name "python-debian") |
| 7502 | (home-page "https://salsa.debian.org/python-debian-team/python-debian") | 7581 | (home-page "https://salsa.debian.org/python-debian-team/python-debian") |
| 7503 | (version "0.1.28") | 7582 | (version "0.1.36") |
| 7504 | (source | 7583 | (source |
| 7505 | (origin | 7584 | (origin |
| 7506 | (method url-fetch) | 7585 | ;; Use git-fetch, as pypi doesn't include test suite. |
| 7507 | (uri (pypi-uri name version)) | 7586 | (method git-fetch) |
| 7587 | (uri (git-reference | ||
| 7588 | (url home-page) | ||
| 7589 | (commit version))) | ||
| 7590 | (file-name (git-file-name name version)) | ||
| 7508 | (sha256 | 7591 | (sha256 |
| 7509 | (base32 | 7592 | (base32 |
| 7510 | "0i15f0xzx679sd0ldq2sls9pnnps9fv6vhqvnv9dzf4qhma42i0y")))) | 7593 | "0qy6x28bj6yfikhjww932v5xq4mf5bm1iczl7acy4c7zm6mwhqfa")))) |
| 7511 | (build-system python-build-system) | 7594 | (build-system python-build-system) |
| 7595 | (arguments | ||
| 7596 | `(#:phases (modify-phases %standard-phases | ||
| 7597 | (add-after 'unpack 'remove-debian-specific-tests | ||
| 7598 | ;; python-apt, apt and dpkg are not yet available in guix, | ||
| 7599 | ;; and these tests heavily depend on them. | ||
| 7600 | (lambda _ | ||
| 7601 | (delete-file "lib/debian/tests/test_deb822.py") | ||
| 7602 | (delete-file "lib/debian/tests/test_debfile.py") | ||
| 7603 | #t))))) | ||
| 7512 | (propagated-inputs | 7604 | (propagated-inputs |
| 7513 | `(("python-six" ,python-six))) | 7605 | `(("python-six" ,python-six) |
| 7606 | ("python-chardet" ,python-chardet))) | ||
| 7514 | (synopsis "Debian package related modules") | 7607 | (synopsis "Debian package related modules") |
| 7515 | (description | 7608 | (description |
| 7516 | ;; XXX: Use @enumerate instead of @itemize to work around | 7609 | ;; XXX: Use @enumerate instead of @itemize to work around |
| @@ -10554,25 +10647,29 @@ characters, mouse support, and auto suggestions.") | |||
| 10554 | (define-public python-jedi | 10647 | (define-public python-jedi |
| 10555 | (package | 10648 | (package |
| 10556 | (name "python-jedi") | 10649 | (name "python-jedi") |
| 10557 | (version "0.13.3") | 10650 | (version "0.15.1") |
| 10558 | (source | 10651 | (source |
| 10559 | (origin | 10652 | (origin |
| 10560 | (method url-fetch) | 10653 | (method url-fetch) |
| 10561 | (uri (pypi-uri "jedi" version)) | 10654 | (uri (pypi-uri "jedi" version)) |
| 10562 | (sha256 | 10655 | (sha256 |
| 10563 | (base32 | 10656 | (base32 |
| 10564 | "0nsrjlb57njqppxmi8wjsb1dkad7qa7svx67jbkhixq66lz61c1b")))) | 10657 | "0bp4pxhsynaarbvzblsn5x32lzp29svy3sxfy8i6m5iwz9s9r1ds")))) |
| 10565 | (build-system python-build-system) | 10658 | (build-system python-build-system) |
| 10566 | (arguments | 10659 | (arguments |
| 10567 | `( ;; Many tests are failing with Python 3.7.x as of version 0.13.3 (see: | 10660 | `(#:phases |
| 10568 | ;; https://github.com/davidhalter/jedi/issues/1263) | ||
| 10569 | #:tests? #f | ||
| 10570 | #:phases | ||
| 10571 | (modify-phases %standard-phases | 10661 | (modify-phases %standard-phases |
| 10662 | (add-after 'unpack 'disable-file-completion-test | ||
| 10663 | ;; A single parameterized test currently fail (see: | ||
| 10664 | ;; https://github.com/davidhalter/jedi/issues/1395). Remove it. | ||
| 10665 | (lambda _ | ||
| 10666 | (substitute* "test/test_api/test_completion.py" | ||
| 10667 | ((".*'example.py', 'rb\"' \\+ join\\('\\.\\.'.*") "")) | ||
| 10668 | #t)) | ||
| 10572 | (replace 'check | 10669 | (replace 'check |
| 10573 | (lambda* (#:key tests? #:allow-other-keys) | 10670 | (lambda _ |
| 10574 | (when tests? | 10671 | (setenv "HOME" "/tmp") |
| 10575 | (invoke "py.test" "-vv"))))))) | 10672 | (invoke "python" "-m" "pytest")))))) |
| 10576 | (native-inputs | 10673 | (native-inputs |
| 10577 | `(("python-pytest" ,python-pytest) | 10674 | `(("python-pytest" ,python-pytest) |
| 10578 | ("python-docopt" ,python-docopt))) | 10675 | ("python-docopt" ,python-docopt))) |
| @@ -10590,11 +10687,7 @@ well.") | |||
| 10590 | (license license:expat))) | 10687 | (license license:expat))) |
| 10591 | 10688 | ||
| 10592 | (define-public python2-jedi | 10689 | (define-public python2-jedi |
| 10593 | (let ((base (package-with-python2 (strip-python2-variant python-jedi)))) | 10690 | (package-with-python2 python-jedi)) |
| 10594 | (package | ||
| 10595 | (inherit base) | ||
| 10596 | (arguments (substitute-keyword-arguments (package-arguments base) | ||
| 10597 | ((#:tests? _) #t)))))) | ||
| 10598 | 10691 | ||
| 10599 | (define-public ptpython | 10692 | (define-public ptpython |
| 10600 | (package | 10693 | (package |
| @@ -14729,17 +14822,21 @@ time-based (TOTP) passwords.") | |||
| 14729 | (define-public python-parso | 14822 | (define-public python-parso |
| 14730 | (package | 14823 | (package |
| 14731 | (name "python-parso") | 14824 | (name "python-parso") |
| 14732 | (version "0.3.1") | 14825 | (version "0.5.1") |
| 14733 | (source | 14826 | (source |
| 14734 | (origin | 14827 | (origin |
| 14735 | (method url-fetch) | 14828 | (method url-fetch) |
| 14736 | (uri (pypi-uri "parso" version)) | 14829 | (uri (pypi-uri "parso" version)) |
| 14737 | (sha256 | 14830 | (sha256 |
| 14738 | (base32 | 14831 | (base32 |
| 14739 | "18p89iwcm8mnf380f92g9w0bhx5km8wxp392vvjcq4y1ld1llw1m")))) | 14832 | "171a9ivhxwsd52h1cgsz40zgzpgzscn7yqb7sdjhy8m1lzj0wsv6")))) |
| 14740 | (native-inputs | 14833 | (native-inputs |
| 14741 | `(("python-pytest" ,python-pytest))) | 14834 | `(("python-pytest" ,python-pytest))) |
| 14742 | (build-system python-build-system) | 14835 | (build-system python-build-system) |
| 14836 | (arguments | ||
| 14837 | `(#:phases (modify-phases %standard-phases | ||
| 14838 | (replace 'check | ||
| 14839 | (lambda _ (invoke "pytest" "-vv")))))) | ||
| 14743 | (home-page "https://github.com/davidhalter/parso") | 14840 | (home-page "https://github.com/davidhalter/parso") |
| 14744 | (synopsis "Python Parser") | 14841 | (synopsis "Python Parser") |
| 14745 | (description "Parso is a Python parser that supports error recovery and | 14842 | (description "Parso is a Python parser that supports error recovery and |
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9fec18287ea..644c9d76667 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm | |||
| @@ -509,7 +509,7 @@ instead of @command{python3}."))) | |||
| 509 | (define-public micropython | 509 | (define-public micropython |
| 510 | (package | 510 | (package |
| 511 | (name "micropython") | 511 | (name "micropython") |
| 512 | (version "1.10") | 512 | (version "1.11") |
| 513 | (source | 513 | (source |
| 514 | (origin | 514 | (origin |
| 515 | (method url-fetch) | 515 | (method url-fetch) |
| @@ -518,7 +518,7 @@ instead of @command{python3}."))) | |||
| 518 | "/micropython-" version ".tar.gz")) | 518 | "/micropython-" version ".tar.gz")) |
| 519 | (sha256 | 519 | (sha256 |
| 520 | (base32 | 520 | (base32 |
| 521 | "1g1zjip3rkx6bp16qi1bag72wivnbh56fcsl3nffanrx4j5f4z90")) | 521 | "0px3xhw16rl0l7qifq7jw1gq92wzlnhd17dmszv9m2c3wbzs9p9f")) |
| 522 | (modules '((guix build utils))) | 522 | (modules '((guix build utils))) |
| 523 | (snippet | 523 | (snippet |
| 524 | '(begin | 524 | '(begin |
| @@ -532,7 +532,7 @@ instead of @command{python3}."))) | |||
| 532 | (arguments | 532 | (arguments |
| 533 | `(#:phases | 533 | `(#:phases |
| 534 | (modify-phases %standard-phases | 534 | (modify-phases %standard-phases |
| 535 | (add-before 'build 'preprare-build | 535 | (add-before 'build 'prepare-build |
| 536 | (lambda _ | 536 | (lambda _ |
| 537 | (chdir "ports/unix") | 537 | (chdir "ports/unix") |
| 538 | ;; see: https://github.com/micropython/micropython/pull/4246 | 538 | ;; see: https://github.com/micropython/micropython/pull/4246 |
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1f3fb29aba3..7d736c7c279 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> | 17 | ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> |
| 18 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> | 18 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> |
| 19 | ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> | 19 | ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> |
| 20 | ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> | ||
| 20 | ;;; | 21 | ;;; |
| 21 | ;;; This file is part of GNU Guix. | 22 | ;;; This file is part of GNU Guix. |
| 22 | ;;; | 23 | ;;; |
| @@ -670,6 +671,35 @@ RSpec tests.") | |||
| 670 | (home-page "https://github.com/dblock/rspec-rerun") | 671 | (home-page "https://github.com/dblock/rspec-rerun") |
| 671 | (license license:expat))) | 672 | (license license:expat))) |
| 672 | 673 | ||
| 674 | (define-public ruby-rspec-wait | ||
| 675 | (package | ||
| 676 | (name "ruby-rspec-wait") | ||
| 677 | (version "0.0.9") | ||
| 678 | (source | ||
| 679 | (origin | ||
| 680 | (method url-fetch) | ||
| 681 | (uri (rubygems-uri "rspec-wait" version)) | ||
| 682 | (sha256 | ||
| 683 | (base32 | ||
| 684 | "0gvj1bp5ccx001dyvcgk2j49s5sl6vs9fdaqqb08z3bd1554hsww")))) | ||
| 685 | (build-system ruby-build-system) | ||
| 686 | (arguments | ||
| 687 | '(#:phases | ||
| 688 | (modify-phases %standard-phases | ||
| 689 | (replace 'check | ||
| 690 | (lambda _ | ||
| 691 | (invoke "rake" "spec")))))) | ||
| 692 | (native-inputs | ||
| 693 | `(("bundler" ,bundler))) | ||
| 694 | (propagated-inputs | ||
| 695 | `(("ruby-rspec" ,ruby-rspec))) | ||
| 696 | (home-page "https://github.com/laserlemon/rspec-wait") | ||
| 697 | (synopsis "Wait for conditions in RSpec") | ||
| 698 | (description | ||
| 699 | "RSpec::Wait strives to make it easier to test asynchronous or slow | ||
| 700 | interactions.") | ||
| 701 | (license license:expat))) | ||
| 702 | |||
| 673 | (define-public ruby-rspec | 703 | (define-public ruby-rspec |
| 674 | (package | 704 | (package |
| 675 | (name "ruby-rspec") | 705 | (name "ruby-rspec") |
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index f7542ea759b..6630332692d 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> | 5 | ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> |
| 6 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 6 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 7 | ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> | 7 | ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> |
| 8 | ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> | ||
| 8 | ;;; | 9 | ;;; |
| 9 | ;;; This file is part of GNU Guix. | 10 | ;;; This file is part of GNU Guix. |
| 10 | ;;; | 11 | ;;; |
| @@ -22,21 +23,107 @@ | |||
| 22 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | 23 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 23 | 24 | ||
| 24 | (define-module (gnu packages shellutils) | 25 | (define-module (gnu packages shellutils) |
| 25 | #:use-module (gnu packages base) | ||
| 26 | #:use-module (gnu packages golang) | ||
| 27 | #:use-module (gnu packages python) | ||
| 28 | #:use-module ((guix licenses) #:prefix license:) | 26 | #:use-module ((guix licenses) #:prefix license:) |
| 27 | #:use-module (guix utils) | ||
| 29 | #:use-module (guix packages) | 28 | #:use-module (guix packages) |
| 30 | #:use-module (guix download) | 29 | #:use-module (guix download) |
| 31 | #:use-module (guix git-download) | 30 | #:use-module (guix git-download) |
| 31 | #:use-module (guix build-system gnu) | ||
| 32 | #:use-module (guix build-system go) | ||
| 33 | #:use-module (guix build-system python) | ||
| 32 | #:use-module (gnu packages autotools) | 34 | #:use-module (gnu packages autotools) |
| 35 | #:use-module (gnu packages base) | ||
| 36 | #:use-module (gnu packages golang) | ||
| 33 | #:use-module (gnu packages ncurses) | 37 | #:use-module (gnu packages ncurses) |
| 34 | #:use-module (gnu packages readline) | ||
| 35 | #:use-module (gnu packages pkg-config) | 38 | #:use-module (gnu packages pkg-config) |
| 36 | #:use-module (guix utils) | 39 | #:use-module (gnu packages python) |
| 37 | #:use-module (guix build-system gnu) | 40 | #:use-module (gnu packages readline) |
| 38 | #:use-module (guix build-system go) | 41 | #:use-module (gnu packages ruby) |
| 39 | #:use-module (guix build-system python)) | 42 | #:use-module (gnu packages shells) |
| 43 | #:use-module (gnu packages tmux)) | ||
| 44 | |||
| 45 | (define-public zsh-autosuggestions | ||
| 46 | (package | ||
| 47 | (name "zsh-autosuggestions") | ||
| 48 | (version "0.6.3") | ||
| 49 | (source (origin | ||
| 50 | (method git-fetch) | ||
| 51 | (uri (git-reference | ||
| 52 | (url "https://github.com/zsh-users/zsh-autosuggestions.git") | ||
| 53 | (commit (string-append "v" version)))) | ||
| 54 | (file-name (git-file-name name version)) | ||
| 55 | (sha256 | ||
| 56 | (base32 | ||
| 57 | "1h8h2mz9wpjpymgl2p7pc146c1jgb3dggpvzwm9ln3in336wl95c")))) | ||
| 58 | (build-system gnu-build-system) | ||
| 59 | (native-inputs | ||
| 60 | `(("ruby" ,ruby) | ||
| 61 | ("ruby-byebug" ,ruby-byebug) | ||
| 62 | ("ruby-pry" ,ruby-pry) | ||
| 63 | ("ruby-rspec" ,ruby-rspec) | ||
| 64 | ("ruby-rspec-wait" ,ruby-rspec-wait) | ||
| 65 | ("tmux" ,tmux) | ||
| 66 | ("zsh" ,zsh))) | ||
| 67 | (arguments | ||
| 68 | '(#:phases | ||
| 69 | (modify-phases %standard-phases | ||
| 70 | (delete 'configure) | ||
| 71 | (replace 'check ; Tests use ruby's bundler; instead execute rspec directly. | ||
| 72 | (lambda _ | ||
| 73 | (setenv "TMUX_TMPDIR" (getenv "TMPDIR")) | ||
| 74 | (setenv "SHELL" (which "zsh")) | ||
| 75 | (invoke "rspec"))) | ||
| 76 | (replace 'install | ||
| 77 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 78 | (let* ((out (assoc-ref outputs "out")) | ||
| 79 | (zsh-plugins | ||
| 80 | (string-append out "/share/zsh/plugins/zsh-autosuggestions"))) | ||
| 81 | (invoke "make" "all") | ||
| 82 | (install-file "zsh-autosuggestions.zsh" zsh-plugins) | ||
| 83 | #t)))))) | ||
| 84 | (home-page "https://github.com/zsh-users/zsh-autosuggestions") | ||
| 85 | (synopsis "Fish-like autosuggestions for zsh") | ||
| 86 | (description | ||
| 87 | "Fish-like fast/unobtrusive autosuggestions for zsh. It suggests commands | ||
| 88 | as you type.") | ||
| 89 | (license license:expat))) | ||
| 90 | |||
| 91 | (define-public sh-z | ||
| 92 | (package | ||
| 93 | (name "sh-z") | ||
| 94 | (version "1.11") | ||
| 95 | (source (origin | ||
| 96 | (method git-fetch) | ||
| 97 | (uri (git-reference | ||
| 98 | (url "https://github.com/rupa/z.git") | ||
| 99 | (commit (string-append "v" version)))) | ||
| 100 | (file-name (git-file-name name version)) | ||
| 101 | (sha256 | ||
| 102 | (base32 | ||
| 103 | "13zbgkj6y0qhvn5jpkrqbd4jjxjr789k228iwma5hjfh1nx7ghyb")))) | ||
| 104 | (build-system gnu-build-system) | ||
| 105 | (arguments | ||
| 106 | `(#:tests? #f ; No tests provided | ||
| 107 | #:phases | ||
| 108 | (modify-phases %standard-phases | ||
| 109 | (delete 'configure) | ||
| 110 | (delete 'build) | ||
| 111 | (replace 'install | ||
| 112 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 113 | (let* ((out (assoc-ref outputs "out")) | ||
| 114 | (man (string-append out "/share/man/man1")) | ||
| 115 | (bin (string-append out "/bin"))) | ||
| 116 | (install-file "z.sh" bin) | ||
| 117 | (chmod (string-append bin "/z.sh") #o755) | ||
| 118 | (install-file "z.1" man) | ||
| 119 | #t)))))) | ||
| 120 | (synopsis "Jump about directories") | ||
| 121 | (description | ||
| 122 | "Tracks your most used directories, based on ``frecency''. After a short | ||
| 123 | learning phase, z will take you to the most ``frecent'' directory that matches | ||
| 124 | all of the regexes given on the command line in order.") | ||
| 125 | (home-page "https://github.com/rupa/z") | ||
| 126 | (license license:expat))) | ||
| 40 | 127 | ||
| 41 | (define-public envstore | 128 | (define-public envstore |
| 42 | (package | 129 | (package |
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 5ec769388a3..9bd1e8d4214 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2014 David Thompson <davet@gnu.org> | 2 | ;;; Copyright © 2014 David Thompson <davet@gnu.org> |
| 3 | ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> | 3 | ;;; Copyright © 2015, 2017, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 4 | ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> | 4 | ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> |
| 5 | ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> | 5 | ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> |
| 6 | ;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> | 6 | ;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> |
| @@ -163,6 +163,25 @@ sources.") | |||
| 163 | Apple help books.") | 163 | Apple help books.") |
| 164 | (license license:bsd-2))) | 164 | (license license:bsd-2))) |
| 165 | 165 | ||
| 166 | (define-public python-sphinx-copybutton | ||
| 167 | (package | ||
| 168 | (name "python-sphinx-copybutton") | ||
| 169 | (version "0.2.5") | ||
| 170 | (source | ||
| 171 | (origin | ||
| 172 | (method url-fetch) | ||
| 173 | (uri (pypi-uri "sphinx-copybutton" version)) | ||
| 174 | (sha256 | ||
| 175 | (base32 | ||
| 176 | "1bk006nv5s9ym6v67cxd4d2wvd8wm6czqi21mqcs33risygksncl")))) | ||
| 177 | (build-system python-build-system) | ||
| 178 | (home-page "https://github.com/choldgraf/sphinx-copybutton") | ||
| 179 | (synopsis "Sphinx extension to add \"copy\" buttons to code blocks") | ||
| 180 | (description | ||
| 181 | "This package provides a small sphinx extension to add \"copy\" buttons | ||
| 182 | to code blocks.") | ||
| 183 | (license license:expat))) | ||
| 184 | |||
| 166 | (define-public python-sphinxcontrib-devhelp | 185 | (define-public python-sphinxcontrib-devhelp |
| 167 | (package | 186 | (package |
| 168 | (name "python-sphinxcontrib-devhelp") | 187 | (name "python-sphinxcontrib-devhelp") |
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 143df3e63e4..2ffe0a10d60 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | #:use-module (gnu packages curl) | 49 | #:use-module (gnu packages curl) |
| 50 | #:use-module (gnu packages emacs) | 50 | #:use-module (gnu packages emacs) |
| 51 | #:use-module (gnu packages emacs-xyz) | 51 | #:use-module (gnu packages emacs-xyz) |
| 52 | #:use-module (gnu packages fontutils) | ||
| 52 | #:use-module (gnu packages gcc) | 53 | #:use-module (gnu packages gcc) |
| 53 | #:use-module (gnu packages gtk) | 54 | #:use-module (gnu packages gtk) |
| 54 | #:use-module (gnu packages gettext) | 55 | #:use-module (gnu packages gettext) |
| @@ -1199,23 +1200,24 @@ agnes cluster diagrams.") | |||
| 1199 | (define-public r-gdtools | 1200 | (define-public r-gdtools |
| 1200 | (package | 1201 | (package |
| 1201 | (name "r-gdtools") | 1202 | (name "r-gdtools") |
| 1202 | (version "0.1.9") | 1203 | (version "0.2.0") |
| 1203 | (source | 1204 | (source |
| 1204 | (origin | 1205 | (origin |
| 1205 | (method url-fetch) | 1206 | (method url-fetch) |
| 1206 | (uri (cran-uri "gdtools" version)) | 1207 | (uri (cran-uri "gdtools" version)) |
| 1207 | (sha256 | 1208 | (sha256 |
| 1208 | (base32 | 1209 | (base32 |
| 1209 | "0w4fihf52q5qxxk0lg36x6yvjjl8vw66y60ncdjs5fvnxqn5z2vb")))) | 1210 | "1mvpkp8cj30fwd4bwlz96x3cff7yzfbfz7iswmf77zl0a6122inh")))) |
| 1210 | (build-system r-build-system) | 1211 | (build-system r-build-system) |
| 1211 | (native-inputs | 1212 | (native-inputs |
| 1212 | `(("pkg-config" ,pkg-config))) | 1213 | `(("pkg-config" ,pkg-config))) |
| 1213 | (inputs | 1214 | (inputs |
| 1214 | `(("cairo" ,cairo) | 1215 | `(("cairo" ,cairo) |
| 1216 | ("freetype2" ,freetype) | ||
| 1215 | ("zlib" ,zlib))) | 1217 | ("zlib" ,zlib))) |
| 1216 | (propagated-inputs | 1218 | (propagated-inputs |
| 1217 | `(("r-rcpp" ,r-rcpp) | 1219 | `(("r-rcpp" ,r-rcpp) |
| 1218 | ("r-withr" ,r-withr))) | 1220 | ("r-systemfonts" ,r-systemfonts))) |
| 1219 | (home-page "https://cran.r-project.org/web/packages/gdtools") | 1221 | (home-page "https://cran.r-project.org/web/packages/gdtools") |
| 1220 | (synopsis "Utilities for graphical rendering") | 1222 | (synopsis "Utilities for graphical rendering") |
| 1221 | (description | 1223 | (description |
| @@ -2436,18 +2438,24 @@ informative error messages when it's not available.") | |||
| 2436 | (define-public r-devtools | 2438 | (define-public r-devtools |
| 2437 | (package | 2439 | (package |
| 2438 | (name "r-devtools") | 2440 | (name "r-devtools") |
| 2439 | (version "2.1.0") | 2441 | (version "2.2.0") |
| 2440 | (source (origin | 2442 | (source (origin |
| 2441 | (method url-fetch) | 2443 | (method url-fetch) |
| 2442 | (uri (cran-uri "devtools" version)) | 2444 | (uri (cran-uri "devtools" version)) |
| 2443 | (sha256 | 2445 | (sha256 |
| 2444 | (base32 | 2446 | (base32 |
| 2445 | "0393v7nr22gr5g9afgrhq4ab3lwbqy6fd3shnmlhdpqam5357xy1")))) | 2447 | "05fag25mkqy13yja8x32aqr9c0ah9rbm8cfjcsmy1dv5h4j8cxa1")))) |
| 2446 | (build-system r-build-system) | 2448 | (build-system r-build-system) |
| 2447 | (propagated-inputs | 2449 | (propagated-inputs |
| 2448 | `(("r-callr" ,r-callr) | 2450 | `(("r-callr" ,r-callr) |
| 2449 | ("r-cli" ,r-cli) | 2451 | ("r-cli" ,r-cli) |
| 2452 | ("r-covr" ,r-covr) | ||
| 2453 | ("r-crayon" ,r-crayon) | ||
| 2454 | ("r-desc" ,r-desc) | ||
| 2450 | ("r-digest" ,r-digest) | 2455 | ("r-digest" ,r-digest) |
| 2456 | ("r-dt" ,r-dt) | ||
| 2457 | ("r-ellipsis" ,r-ellipsis) | ||
| 2458 | ("r-glue" ,r-glue) | ||
| 2451 | ("r-git2r" ,r-git2r) | 2459 | ("r-git2r" ,r-git2r) |
| 2452 | ("r-httr" ,r-httr) | 2460 | ("r-httr" ,r-httr) |
| 2453 | ("r-jsonlite" ,r-jsonlite) | 2461 | ("r-jsonlite" ,r-jsonlite) |
| @@ -2458,6 +2466,7 @@ informative error messages when it's not available.") | |||
| 2458 | ("r-roxygen2" ,r-roxygen2) | 2466 | ("r-roxygen2" ,r-roxygen2) |
| 2459 | ("r-remotes" ,r-remotes) | 2467 | ("r-remotes" ,r-remotes) |
| 2460 | ("r-rstudioapi" ,r-rstudioapi) | 2468 | ("r-rstudioapi" ,r-rstudioapi) |
| 2469 | ("r-rversions" ,r-rversions) | ||
| 2461 | ("r-sessioninfo" ,r-sessioninfo) | 2470 | ("r-sessioninfo" ,r-sessioninfo) |
| 2462 | ("r-testthat" ,r-testthat) | 2471 | ("r-testthat" ,r-testthat) |
| 2463 | ("r-usethis" ,r-usethis) | 2472 | ("r-usethis" ,r-usethis) |
| @@ -2598,13 +2607,13 @@ well as additional utilities such as panel and axis annotation functions.") | |||
| 2598 | (define-public r-rcpparmadillo | 2607 | (define-public r-rcpparmadillo |
| 2599 | (package | 2608 | (package |
| 2600 | (name "r-rcpparmadillo") | 2609 | (name "r-rcpparmadillo") |
| 2601 | (version "0.9.600.4.0") | 2610 | (version "0.9.700.2.0") |
| 2602 | (source (origin | 2611 | (source (origin |
| 2603 | (method url-fetch) | 2612 | (method url-fetch) |
| 2604 | (uri (cran-uri "RcppArmadillo" version)) | 2613 | (uri (cran-uri "RcppArmadillo" version)) |
| 2605 | (sha256 | 2614 | (sha256 |
| 2606 | (base32 | 2615 | (base32 |
| 2607 | "07jg2667xyhmp1fbcdi5nnhmkk81da76s9rlswfq4k2sjsmbfmr0")))) | 2616 | "0g25w32dnqrvhnri8x4yxqawxd8qhn7w3m8d29nxxy0gybx3y8x9")))) |
| 2608 | (properties `((upstream-name . "RcppArmadillo"))) | 2617 | (properties `((upstream-name . "RcppArmadillo"))) |
| 2609 | (build-system r-build-system) | 2618 | (build-system r-build-system) |
| 2610 | ;; All needed for vignettes | 2619 | ;; All needed for vignettes |
| @@ -3645,13 +3654,13 @@ t-probabilities, quantiles, random deviates and densities.") | |||
| 3645 | (define-public r-matrixstats | 3654 | (define-public r-matrixstats |
| 3646 | (package | 3655 | (package |
| 3647 | (name "r-matrixstats") | 3656 | (name "r-matrixstats") |
| 3648 | (version "0.54.0") | 3657 | (version "0.55.0") |
| 3649 | (source (origin | 3658 | (source (origin |
| 3650 | (method url-fetch) | 3659 | (method url-fetch) |
| 3651 | (uri (cran-uri "matrixStats" version)) | 3660 | (uri (cran-uri "matrixStats" version)) |
| 3652 | (sha256 | 3661 | (sha256 |
| 3653 | (base32 | 3662 | (base32 |
| 3654 | "0vx00ldsg2zvdrjn49jxczk2c9iaabgvzgpdka5j02ihh7hv83cg")))) | 3663 | "06fvx0rlaz80k0lkqq2n7v0309xpz7h7ss0m9kgyikp4xs8bvmhn")))) |
| 3655 | (properties `((upstream-name . "matrixStats"))) | 3664 | (properties `((upstream-name . "matrixStats"))) |
| 3656 | (build-system r-build-system) | 3665 | (build-system r-build-system) |
| 3657 | (native-inputs | 3666 | (native-inputs |
| @@ -3748,25 +3757,28 @@ selection.") | |||
| 3748 | (define-public r-tidyr | 3757 | (define-public r-tidyr |
| 3749 | (package | 3758 | (package |
| 3750 | (name "r-tidyr") | 3759 | (name "r-tidyr") |
| 3751 | (version "0.8.3") | 3760 | (version "1.0.0") |
| 3752 | (source | 3761 | (source |
| 3753 | (origin | 3762 | (origin |
| 3754 | (method url-fetch) | 3763 | (method url-fetch) |
| 3755 | (uri (cran-uri "tidyr" version)) | 3764 | (uri (cran-uri "tidyr" version)) |
| 3756 | (sha256 | 3765 | (sha256 |
| 3757 | (base32 | 3766 | (base32 |
| 3758 | "0dyc4b03wi65bk7j0ma0y188syh37h57wgxji82i0h8j6pn593x1")))) | 3767 | "1403j0xd93l0r7qj738ryd5zc79hbcghrzybib3c3hrnaq5s78cj")))) |
| 3759 | (build-system r-build-system) | 3768 | (build-system r-build-system) |
| 3760 | (propagated-inputs | 3769 | (propagated-inputs |
| 3761 | `(("r-dplyr" ,r-dplyr) | 3770 | `(("r-dplyr" ,r-dplyr) |
| 3771 | ("r-ellipsis" ,r-ellipsis) | ||
| 3762 | ("r-magrittr" ,r-magrittr) | 3772 | ("r-magrittr" ,r-magrittr) |
| 3763 | ("r-glue" ,r-glue) | 3773 | ("r-glue" ,r-glue) |
| 3774 | ("r-lifecycle" ,r-lifecycle) | ||
| 3764 | ("r-purrr" ,r-purrr) | 3775 | ("r-purrr" ,r-purrr) |
| 3765 | ("r-rlang" ,r-rlang) | 3776 | ("r-rlang" ,r-rlang) |
| 3766 | ("r-tidyselect" ,r-tidyselect) | 3777 | ("r-tidyselect" ,r-tidyselect) |
| 3767 | ("r-rcpp" ,r-rcpp) | 3778 | ("r-rcpp" ,r-rcpp) |
| 3768 | ("r-stringi" ,r-stringi) | 3779 | ("r-stringi" ,r-stringi) |
| 3769 | ("r-tibble" ,r-tibble))) | 3780 | ("r-tibble" ,r-tibble) |
| 3781 | ("r-vctrs" ,r-vctrs))) | ||
| 3770 | (home-page "https://github.com/hadley/tidyr") | 3782 | (home-page "https://github.com/hadley/tidyr") |
| 3771 | (synopsis "Tidy data with `spread()` and `gather()` functions") | 3783 | (synopsis "Tidy data with `spread()` and `gather()` functions") |
| 3772 | (description | 3784 | (description |
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 427bc445984..f0055cc0ccd 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm | |||
| @@ -724,3 +724,31 @@ as -1, to be used instead of U+FFFD. | |||
| 724 | It is a front end for ii-like chat programs. It uses @code{tail -f} to get the | 724 | It is a front end for ii-like chat programs. It uses @code{tail -f} to get the |
| 725 | chat output in the background.") | 725 | chat output in the background.") |
| 726 | (license license:isc)))) | 726 | (license license:isc)))) |
| 727 | |||
| 728 | (define-public scron | ||
| 729 | (package | ||
| 730 | (name "scron") | ||
| 731 | (version "0.4") | ||
| 732 | (source | ||
| 733 | (origin | ||
| 734 | (method url-fetch) | ||
| 735 | (uri (string-append "https://dl.2f30.org/releases/" | ||
| 736 | name "-" version ".tar.gz")) | ||
| 737 | (sha256 | ||
| 738 | (base32 | ||
| 739 | "066fwa55kqcgfrsqgxh94sqbkxfsr691360xg4ljxr4i75d25s2a")))) | ||
| 740 | (build-system gnu-build-system) | ||
| 741 | (arguments | ||
| 742 | `(#:tests? #f ; No tests | ||
| 743 | #:make-flags (list "CC=gcc" | ||
| 744 | (string-append "PREFIX=" %output)) | ||
| 745 | #:phases | ||
| 746 | (modify-phases %standard-phases | ||
| 747 | (delete 'configure)))) ; No configure script | ||
| 748 | (home-page "https://git.2f30.org/scron/") | ||
| 749 | (synopsis "Simple cron daemon") | ||
| 750 | (description | ||
| 751 | "Schedule commands to be run at specified dates and times. | ||
| 752 | Single daemon and configuration file. Log to stdout or syslog. No mail | ||
| 753 | support.") | ||
| 754 | (license license:expat))) | ||
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index e281f435549..0c840a1a1d4 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm | |||
| @@ -264,14 +264,14 @@ over the Internet in an HTTP and CDN friendly way; | |||
| 264 | (define-public rclone | 264 | (define-public rclone |
| 265 | (package | 265 | (package |
| 266 | (name "rclone") | 266 | (name "rclone") |
| 267 | (version "1.49.1") | 267 | (version "1.49.2") |
| 268 | (source | 268 | (source |
| 269 | (origin | 269 | (origin |
| 270 | (method url-fetch) | 270 | (method url-fetch) |
| 271 | (uri (string-append "https://github.com/rclone/rclone/releases/download/" | 271 | (uri (string-append "https://github.com/rclone/rclone/releases/download/" |
| 272 | "v" version "/rclone-v" version ".tar.gz")) | 272 | "v" version "/rclone-v" version ".tar.gz")) |
| 273 | (sha256 | 273 | (sha256 |
| 274 | (base32 "1d0qvj7fn5bx3zqlf6hzn1922nrmy4x341n760m1b6h9az32mc5x")))) | 274 | (base32 "1q8lf85hg2havb1xsal75r19ck166rh19lffpd3i43zgblc6gs8j")))) |
| 275 | ;; FIXME: Rclone bundles some libraries Guix already provides. Need to | 275 | ;; FIXME: Rclone bundles some libraries Guix already provides. Need to |
| 276 | ;; un-bundle them. | 276 | ;; un-bundle them. |
| 277 | (build-system go-build-system) | 277 | (build-system go-build-system) |
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index f0117eead3e..98ed77289a7 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | ;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> | 7 | ;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> |
| 8 | ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | 8 | ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 9 | ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> | 9 | ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> |
| 10 | ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> | 10 | ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 11 | ;;; Copyright © 2017 Petter <petter@mykolab.ch> | 11 | ;;; Copyright © 2017 Petter <petter@mykolab.ch> |
| 12 | ;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com> | 12 | ;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com> |
| 13 | ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> | 13 | ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> |
| @@ -460,7 +460,7 @@ should be thread-safe.") | |||
| 460 | (define-public libvterm | 460 | (define-public libvterm |
| 461 | (package | 461 | (package |
| 462 | (name "libvterm") | 462 | (name "libvterm") |
| 463 | (version "0+bzr681") | 463 | (version "0.1") |
| 464 | (source | 464 | (source |
| 465 | (origin | 465 | (origin |
| 466 | (method url-fetch) | 466 | (method url-fetch) |
| @@ -468,12 +468,13 @@ should be thread-safe.") | |||
| 468 | "libvterm-" version ".tar.gz")) | 468 | "libvterm-" version ".tar.gz")) |
| 469 | (sha256 | 469 | (sha256 |
| 470 | (base32 | 470 | (base32 |
| 471 | "1s56c8p1qz6frkcri0hg4qyydv2wcccj6n2xmz1dwcdqn38ldsmb")))) | 471 | "1pcxjhvdwhr2f3lyzf2rv1vp3l62bgkjm1ybhj82qf8yly7ca6g4")))) |
| 472 | (build-system gnu-build-system) | 472 | (build-system gnu-build-system) |
| 473 | (arguments | 473 | (arguments |
| 474 | `(#:make-flags | 474 | `(#:make-flags |
| 475 | (list "CC=gcc" | 475 | (list "CC=gcc" |
| 476 | (string-append "PREFIX=" (assoc-ref %outputs "out"))) | 476 | (string-append "PREFIX=" (assoc-ref %outputs "out"))) |
| 477 | #:tests? #f ; XXX: some tests fail in this release | ||
| 477 | #:test-target "test" | 478 | #:test-target "test" |
| 478 | #:phases | 479 | #:phases |
| 479 | (modify-phases %standard-phases | 480 | (modify-phases %standard-phases |
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 28459917c88..e67b0505f39 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm | |||
| @@ -6827,17 +6827,14 @@ titles.") | |||
| 6827 | "/fonts/afm/public/xypic/" | 6827 | "/fonts/afm/public/xypic/" |
| 6828 | "/fonts/tfm/public/xypic/" | 6828 | "/fonts/tfm/public/xypic/" |
| 6829 | "/fonts/type1/public/xypic/" | 6829 | "/fonts/type1/public/xypic/" |
| 6830 | 6830 | "/tex/generic/xypic/") | |
| 6831 | ;;"/tex/generic/xypic/" ; I guess these are generated | ||
| 6832 | ) | ||
| 6833 | (base32 | 6831 | (base32 |
| 6834 | "0sqkkvjzzsiazvh8803qqyrcv4is3m1qs9x9v2m35jjikbqc08y8")))) | 6832 | "09b51bbm189xh7039h5n8nmab5nn2bybhh26qjn08763m80zdhjg") |
| 6833 | #:trivial? #t))) | ||
| 6835 | (package | 6834 | (package |
| 6836 | (inherit template) | 6835 | (inherit template) |
| 6837 | (arguments | 6836 | (arguments |
| 6838 | (substitute-keyword-arguments (package-arguments template) | 6837 | (substitute-keyword-arguments (package-arguments template) |
| 6839 | ((#:tex-directory _ #t) | ||
| 6840 | "tex/generic/xypic") | ||
| 6841 | ((#:phases phases) | 6838 | ((#:phases phases) |
| 6842 | `(modify-phases ,phases | 6839 | `(modify-phases ,phases |
| 6843 | (delete 'reset-gzip-timestamps))))) | 6840 | (delete 'reset-gzip-timestamps))))) |
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 388f164428f..9ce01e66eae 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | ;;; Copyright © 2017,2019 Hartmut Goebel <h.goebel@crazy-compilers.com> | 13 | ;;; Copyright © 2017,2019 Hartmut Goebel <h.goebel@crazy-compilers.com> |
| 14 | ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> | 14 | ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> |
| 15 | ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> | 15 | ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> |
| 16 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 16 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 17 | ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> | 17 | ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> |
| 18 | ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> | 18 | ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> |
| 19 | ;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com> | 19 | ;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com> |
| @@ -89,23 +89,22 @@ to DOS format and vice versa.") | |||
| 89 | (define-public recode | 89 | (define-public recode |
| 90 | (package | 90 | (package |
| 91 | (name "recode") | 91 | (name "recode") |
| 92 | (version "3.7.1") | 92 | (version "3.7.5") |
| 93 | (source | 93 | (source |
| 94 | (origin | 94 | (origin |
| 95 | (method url-fetch) | 95 | (method url-fetch) |
| 96 | (uri (string-append "https://github.com/rrthomas/recode/releases/" | 96 | (uri (string-append "https://github.com/rrthomas/recode/releases/" |
| 97 | "download/v" version "/" name "-" version ".tar.gz")) | 97 | "download/v" version "/recode-" version ".tar.gz")) |
| 98 | (sha256 | 98 | (sha256 |
| 99 | (base32 | 99 | (base32 "1sl99dfx2b76paq86wv3a0lcy66f1hylf6iy04rzwxj7ccwpsk30")) |
| 100 | "0215hfj0rhlh0grg91qfx75pp6z09bpv8211qdxqihniw7y9a4fs")) | ||
| 101 | (modules '((guix build utils))) | 100 | (modules '((guix build utils))) |
| 102 | (snippet '(begin | 101 | (snippet '(begin |
| 103 | (delete-file "tests/Recode.c") | 102 | (delete-file "tests/Recode.c") |
| 104 | #t)))) | 103 | #t)))) |
| 105 | (build-system gnu-build-system) | 104 | (build-system gnu-build-system) |
| 106 | (native-inputs | 105 | (native-inputs |
| 107 | `(("python" ,python-2) | 106 | `(("python" ,python) |
| 108 | ("python2-cython" ,python2-cython))) | 107 | ("python-cython" ,python-cython))) |
| 109 | (home-page "https://github.com/rrthomas/recode") | 108 | (home-page "https://github.com/rrthomas/recode") |
| 110 | (synopsis "Text encoding converter") | 109 | (synopsis "Text encoding converter") |
| 111 | (description "The Recode library converts files between character sets and | 110 | (description "The Recode library converts files between character sets and |
| @@ -879,6 +878,44 @@ indentation. | |||
| 879 | (home-page "http://docx2txt.sourceforge.net") | 878 | (home-page "http://docx2txt.sourceforge.net") |
| 880 | (license license:gpl3+))) | 879 | (license license:gpl3+))) |
| 881 | 880 | ||
| 881 | (define-public odt2txt | ||
| 882 | (package | ||
| 883 | (name "odt2txt") | ||
| 884 | (version "0.5") | ||
| 885 | (source | ||
| 886 | (origin | ||
| 887 | (method git-fetch) | ||
| 888 | (uri (git-reference | ||
| 889 | (url "https://github.com/dstosberg/odt2txt/") | ||
| 890 | (commit (string-append "v" version)))) | ||
| 891 | (file-name (git-file-name name version)) | ||
| 892 | (sha256 | ||
| 893 | (base32 | ||
| 894 | "0im3kzvhxkjlx57w6h13mc9584c74ma1dyymgvpq2y61av3gc35v")))) | ||
| 895 | (build-system gnu-build-system) | ||
| 896 | (arguments | ||
| 897 | `(#:tests? #f ; no make check | ||
| 898 | #:make-flags (list "CC=gcc" | ||
| 899 | (string-append "DESTDIR=" (assoc-ref %outputs "out"))) | ||
| 900 | #:phases | ||
| 901 | (modify-phases %standard-phases | ||
| 902 | ;; no configure script | ||
| 903 | (delete 'configure)))) | ||
| 904 | (inputs | ||
| 905 | `(("zlib" ,zlib))) | ||
| 906 | (home-page "https://github.com/dstosberg/odt2txt/") | ||
| 907 | (synopsis "Converter from OpenDocument Text to plain text") | ||
| 908 | (description "odt2txt is a command-line tool which extracts the text out | ||
| 909 | of OpenDocument Texts, as produced by OpenOffice.org, KOffice, StarOffice and | ||
| 910 | others. | ||
| 911 | |||
| 912 | odt2txt can also extract text from some file formats similar to OpenDocument | ||
| 913 | Text, such as OpenOffice.org XML (*.sxw), which was used by OpenOffice.org | ||
| 914 | version 1.x and older StarOffice versions. To a lesser extent, odt2txt may be | ||
| 915 | useful to extract content from OpenDocument spreadsheets (*.ods) and | ||
| 916 | OpenDocument presentations (*.odp).") | ||
| 917 | (license license:gpl2))) | ||
| 918 | |||
| 882 | (define-public opencc | 919 | (define-public opencc |
| 883 | (package | 920 | (package |
| 884 | (name "opencc") | 921 | (name "opencc") |
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index d896908a124..6689375da64 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm | |||
| @@ -271,6 +271,7 @@ required structures.") | |||
| 271 | (package | 271 | (package |
| 272 | (name "openssl") | 272 | (name "openssl") |
| 273 | (version "1.1.1c") | 273 | (version "1.1.1c") |
| 274 | (replacement openssl-1.1.1d) | ||
| 274 | (source (origin | 275 | (source (origin |
| 275 | (method url-fetch) | 276 | (method url-fetch) |
| 276 | (uri (list (string-append "https://www.openssl.org/source/openssl-" | 277 | (uri (list (string-append "https://www.openssl.org/source/openssl-" |
| @@ -372,6 +373,24 @@ required structures.") | |||
| 372 | (license license:openssl) | 373 | (license license:openssl) |
| 373 | (home-page "https://www.openssl.org/"))) | 374 | (home-page "https://www.openssl.org/"))) |
| 374 | 375 | ||
| 376 | (define openssl-1.1.1d | ||
| 377 | (package/inherit | ||
| 378 | openssl | ||
| 379 | (version "1.1.1d") | ||
| 380 | (source (origin | ||
| 381 | (method url-fetch) | ||
| 382 | (uri (list (string-append "https://www.openssl.org/source/openssl-" | ||
| 383 | version ".tar.gz") | ||
| 384 | (string-append "ftp://ftp.openssl.org/source/" | ||
| 385 | "openssl-" version ".tar.gz") | ||
| 386 | (string-append "ftp://ftp.openssl.org/source/old/" | ||
| 387 | (string-trim-right version char-set:letter) | ||
| 388 | "/openssl-" version ".tar.gz"))) | ||
| 389 | (patches (search-patches "openssl-1.1-c-rehash-in.patch")) | ||
| 390 | (sha256 | ||
| 391 | (base32 | ||
| 392 | "1whinyw402z3b9xlb3qaxv4b9sk4w1bgh9k0y8df1z4x3yy92fhy")))))) | ||
| 393 | |||
| 375 | (define-public openssl-1.0 | 394 | (define-public openssl-1.0 |
| 376 | (package | 395 | (package |
| 377 | (inherit openssl) | 396 | (inherit openssl) |
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4fb2d76c337..b6c32fabdbb 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm | |||
| @@ -1492,7 +1492,7 @@ access to mpv's powerful playback capabilities.") | |||
| 1492 | (define-public youtube-dl | 1492 | (define-public youtube-dl |
| 1493 | (package | 1493 | (package |
| 1494 | (name "youtube-dl") | 1494 | (name "youtube-dl") |
| 1495 | (version "2019.08.13") | 1495 | (version "2019.09.12") |
| 1496 | (source (origin | 1496 | (source (origin |
| 1497 | (method url-fetch) | 1497 | (method url-fetch) |
| 1498 | (uri (string-append "https://github.com/rg3/youtube-dl/releases/" | 1498 | (uri (string-append "https://github.com/rg3/youtube-dl/releases/" |
| @@ -1500,7 +1500,7 @@ access to mpv's powerful playback capabilities.") | |||
| 1500 | version ".tar.gz")) | 1500 | version ".tar.gz")) |
| 1501 | (sha256 | 1501 | (sha256 |
| 1502 | (base32 | 1502 | (base32 |
| 1503 | "0b94hrhbqa7jhn91pxsbphg2ylwkpkknb2y4v4sczp7rjvgmjgdj")))) | 1503 | "0wmc0rl4l08hnz3agh69ld1pcmjs7czg0d2k7mnnlxhwlwi38w56")))) |
| 1504 | (build-system python-build-system) | 1504 | (build-system python-build-system) |
| 1505 | (arguments | 1505 | (arguments |
| 1506 | ;; The problem here is that the directory for the man page and completion | 1506 | ;; The problem here is that the directory for the man page and completion |
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 8ebdbb9a353..b1f47bd0105 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm | |||
| @@ -735,7 +735,7 @@ are detected, the user is notified."))) | |||
| 735 | (define-public neovim | 735 | (define-public neovim |
| 736 | (package | 736 | (package |
| 737 | (name "neovim") | 737 | (name "neovim") |
| 738 | (version "0.3.7") | 738 | (version "0.4.2") |
| 739 | (source | 739 | (source |
| 740 | (origin | 740 | (origin |
| 741 | (method git-fetch) | 741 | (method git-fetch) |
| @@ -745,7 +745,7 @@ are detected, the user is notified."))) | |||
| 745 | (file-name (git-file-name name version)) | 745 | (file-name (git-file-name name version)) |
| 746 | (sha256 | 746 | (sha256 |
| 747 | (base32 | 747 | (base32 |
| 748 | "1j6w5jvq5v7kf7diad91qs1acr427nidnk9s24yyrz0hwdd1c2lh")))) | 748 | "13w446plvgl219lhj29jyimhiqvs1y1byrz4qpdmxgyddmx9xqss")))) |
| 749 | (build-system cmake-build-system) | 749 | (build-system cmake-build-system) |
| 750 | (arguments | 750 | (arguments |
| 751 | `(#:modules ((srfi srfi-26) | 751 | `(#:modules ((srfi srfi-26) |
| @@ -754,13 +754,6 @@ are detected, the user is notified."))) | |||
| 754 | #:configure-flags '("-DPREFER_LUA:BOOL=YES") | 754 | #:configure-flags '("-DPREFER_LUA:BOOL=YES") |
| 755 | #:phases | 755 | #:phases |
| 756 | (modify-phases %standard-phases | 756 | (modify-phases %standard-phases |
| 757 | ;; TODO: remove 'patch-tic on update | ||
| 758 | ;; see: https://github.com/neovim/neovim/issues/9687 | ||
| 759 | (add-after 'unpack 'patch-tic | ||
| 760 | (lambda _ | ||
| 761 | (substitute* "src/nvim/tui/tui.c" | ||
| 762 | (("value != NULL") "value != NULL && value != (char *)-1")) | ||
| 763 | #t)) | ||
| 764 | (add-after 'unpack 'set-lua-paths | 757 | (add-after 'unpack 'set-lua-paths |
| 765 | (lambda* (#:key inputs #:allow-other-keys) | 758 | (lambda* (#:key inputs #:allow-other-keys) |
| 766 | (let* ((lua-version "5.1") | 759 | (let* ((lua-version "5.1") |
| @@ -774,6 +767,7 @@ are detected, the user is notified."))) | |||
| 774 | (string-append path "/?.lua;" path "/?/?.lua")))) | 767 | (string-append path "/?.lua;" path "/?/?.lua")))) |
| 775 | (lua-inputs (map (cute assoc-ref %build-inputs <>) | 768 | (lua-inputs (map (cute assoc-ref %build-inputs <>) |
| 776 | '("lua" | 769 | '("lua" |
| 770 | "lua-luv" | ||
| 777 | "lua-lpeg" | 771 | "lua-lpeg" |
| 778 | "lua-bitop" | 772 | "lua-bitop" |
| 779 | "lua-libmpack")))) | 773 | "lua-libmpack")))) |
| @@ -791,6 +785,7 @@ are detected, the user is notified."))) | |||
| 791 | ("jemalloc" ,jemalloc) | 785 | ("jemalloc" ,jemalloc) |
| 792 | ("libiconv" ,libiconv) | 786 | ("libiconv" ,libiconv) |
| 793 | ("lua" ,lua-5.1) | 787 | ("lua" ,lua-5.1) |
| 788 | ("lua-luv" ,lua5.1-luv) | ||
| 794 | ("lua-lpeg" ,lua5.1-lpeg) | 789 | ("lua-lpeg" ,lua5.1-lpeg) |
| 795 | ("lua-bitop" ,lua5.1-bitop) | 790 | ("lua-bitop" ,lua5.1-bitop) |
| 796 | ("lua-libmpack" ,lua5.1-libmpack))) | 791 | ("lua-libmpack" ,lua5.1-libmpack))) |
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 2e5b1ce16ed..e1ac2189be1 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm | |||
| @@ -411,7 +411,10 @@ manage system or application containers.") | |||
| 411 | (build-system gnu-build-system) | 411 | (build-system gnu-build-system) |
| 412 | (arguments | 412 | (arguments |
| 413 | `(#:configure-flags | 413 | `(#:configure-flags |
| 414 | (list "--with-polkit" | 414 | (list "--with-qemu" |
| 415 | "--with-qemu-user=nobody" | ||
| 416 | "--with-qemu-group=kvm" | ||
| 417 | "--with-polkit" | ||
| 415 | (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/" | 418 | (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/" |
| 416 | ,name "-" ,version) | 419 | ,name "-" ,version) |
| 417 | "--sysconfdir=/etc" | 420 | "--sysconfdir=/etc" |
| @@ -450,23 +453,13 @@ manage system or application containers.") | |||
| 450 | (apply invoke "make" "install" | 453 | (apply invoke "make" "install" |
| 451 | "sysconfdir=/tmp/etc" | 454 | "sysconfdir=/tmp/etc" |
| 452 | "localstatedir=/tmp/var" | 455 | "localstatedir=/tmp/var" |
| 453 | make-flags))) | 456 | make-flags)))))) |
| 454 | (add-after 'install 'wrap-libvirtd | ||
| 455 | (lambda* (#:key inputs outputs #:allow-other-keys) | ||
| 456 | (let ((out (assoc-ref outputs "out"))) | ||
| 457 | (wrap-program (string-append out "/sbin/libvirtd") | ||
| 458 | `("PATH" = (,(string-append (assoc-ref inputs "iproute") | ||
| 459 | "/sbin") | ||
| 460 | ,(string-append (assoc-ref inputs "qemu") | ||
| 461 | "/bin")))) | ||
| 462 | #t)))))) | ||
| 463 | (inputs | 457 | (inputs |
| 464 | `(("libxml2" ,libxml2) | 458 | `(("libxml2" ,libxml2) |
| 465 | ("eudev" ,eudev) | 459 | ("eudev" ,eudev) |
| 466 | ("libpciaccess" ,libpciaccess) | 460 | ("libpciaccess" ,libpciaccess) |
| 467 | ("gnutls" ,gnutls) | 461 | ("gnutls" ,gnutls) |
| 468 | ("dbus" ,dbus) | 462 | ("dbus" ,dbus) |
| 469 | ("qemu" ,qemu) | ||
| 470 | ("libpcap" ,libpcap) | 463 | ("libpcap" ,libpcap) |
| 471 | ("libnl" ,libnl) | 464 | ("libnl" ,libnl) |
| 472 | ("libtirpc" ,libtirpc) ;for <rpc/rpc.h> | 465 | ("libtirpc" ,libtirpc) ;for <rpc/rpc.h> |
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 3c6db64ad78..bc875b1c99d 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm | |||
| @@ -239,13 +239,13 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer | |||
| 239 | (define-public openconnect | 239 | (define-public openconnect |
| 240 | (package | 240 | (package |
| 241 | (name "openconnect") | 241 | (name "openconnect") |
| 242 | (version "8.04") | 242 | (version "8.05") |
| 243 | (source (origin | 243 | (source (origin |
| 244 | (method url-fetch) | 244 | (method url-fetch) |
| 245 | (uri (string-append "ftp://ftp.infradead.org/pub/openconnect/" | 245 | (uri (string-append "ftp://ftp.infradead.org/pub/openconnect/" |
| 246 | "openconnect-" version ".tar.gz")) | 246 | "openconnect-" version ".tar.gz")) |
| 247 | (sha256 | 247 | (sha256 |
| 248 | (base32 "07zqcl2ykdc4mgix9sbv4jgpg7cybifxfgrycvf99ckq7xp9r5wq")))) | 248 | (base32 "14i9q727c2zc9xhzp1a9hz3gzb5lwgsslbhircm84dnbs192jp1k")))) |
| 249 | (build-system gnu-build-system) | 249 | (build-system gnu-build-system) |
| 250 | (propagated-inputs | 250 | (propagated-inputs |
| 251 | `(("libxml2" ,libxml2) | 251 | `(("libxml2" ,libxml2) |
| @@ -452,14 +452,14 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers | |||
| 452 | (define-public wireguard | 452 | (define-public wireguard |
| 453 | (package | 453 | (package |
| 454 | (name "wireguard") | 454 | (name "wireguard") |
| 455 | (version "0.0.20190702") | 455 | (version "0.0.20190913") |
| 456 | (source (origin | 456 | (source (origin |
| 457 | (method url-fetch) | 457 | (method url-fetch) |
| 458 | (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/" | 458 | (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/" |
| 459 | "WireGuard-" version ".tar.xz")) | 459 | "WireGuard-" version ".tar.xz")) |
| 460 | (sha256 | 460 | (sha256 |
| 461 | (base32 | 461 | (base32 |
| 462 | "1b5s1ncwqxdgb0c6cd07x4ynnj6cpbiqp4bxqir7mm5bf6y124qs")))) | 462 | "06452jfibwar4sh7wf2k2k1a5qk5q703gxqqq5ymj6rdblc2fwwr")))) |
| 463 | (build-system gnu-build-system) | 463 | (build-system gnu-build-system) |
| 464 | (outputs '("out" ; The WireGuard userspace tools | 464 | (outputs '("out" ; The WireGuard userspace tools |
| 465 | "kernel-patch")) ; A patch to build Linux with WireGuard support | 465 | "kernel-patch")) ; A patch to build Linux with WireGuard support |
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 9111a93be5b..479ec9425d6 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> | 2 | ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> |
| 3 | ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | 3 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 4 | ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> | 4 | ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> |
| 5 | ;;; | 5 | ;;; |
| 6 | ;;; This file is part of GNU Guix. | 6 | ;;; This file is part of GNU Guix. |
| @@ -52,7 +52,7 @@ | |||
| 52 | (sha256 | 52 | (sha256 |
| 53 | (base32 | 53 | (base32 |
| 54 | "0m56smanfcczjfif4yfcqhjj4d4sc088kwg6dgia8fwdsjavdm4d")) | 54 | "0m56smanfcczjfif4yfcqhjj4d4sc088kwg6dgia8fwdsjavdm4d")) |
| 55 | (file-name (string-append name "-" version "-checkout")))) | 55 | (file-name (git-file-name name version)))) |
| 56 | (build-system cmake-build-system) | 56 | (build-system cmake-build-system) |
| 57 | (arguments | 57 | (arguments |
| 58 | `(#:tests? #f ;; No tests | 58 | `(#:tests? #f ;; No tests |
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 745b08f90bc..bfc0976f0ed 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm | |||
| @@ -93,14 +93,14 @@ older or slower computers and embedded systems.") | |||
| 93 | (define-public links | 93 | (define-public links |
| 94 | (package | 94 | (package |
| 95 | (name "links") | 95 | (name "links") |
| 96 | (version "2.19") | 96 | (version "2.20.1") |
| 97 | (source (origin | 97 | (source (origin |
| 98 | (method url-fetch) | 98 | (method url-fetch) |
| 99 | (uri (string-append "http://links.twibright.com/download/" | 99 | (uri (string-append "http://links.twibright.com/download/" |
| 100 | "links-" version ".tar.bz2")) | 100 | "links-" version ".tar.bz2")) |
| 101 | (sha256 | 101 | (sha256 |
| 102 | (base32 | 102 | (base32 |
| 103 | "02ls11c02p7xvsdjyb43rrzr850i1yly003r812z0w5vv5yqqxbh")))) | 103 | "0184g59cxxhg9dqg5gv66f30f1wg8sx957pp5rs7b8icnwnafa5v")))) |
| 104 | (build-system gnu-build-system) | 104 | (build-system gnu-build-system) |
| 105 | (arguments | 105 | (arguments |
| 106 | `(#:phases | 106 | `(#:phases |
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 591ae2cb748..f7730f39922 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm | |||
| @@ -6389,7 +6389,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") | |||
| 6389 | (method url-fetch) | 6389 | (method url-fetch) |
| 6390 | (uri (string-append "https://github.com/nghttp2/nghttp2/" | 6390 | (uri (string-append "https://github.com/nghttp2/nghttp2/" |
| 6391 | "releases/download/v" version "/" | 6391 | "releases/download/v" version "/" |
| 6392 | name "-" version ".tar.xz")) | 6392 | "nghttp2-" version ".tar.xz")) |
| 6393 | (sha256 | 6393 | (sha256 |
| 6394 | (base32 | 6394 | (base32 |
| 6395 | "0j0lk37k8k3f61r9nw647hg4b22z1753l36n3xrp9x01civ614b7")))) | 6395 | "0j0lk37k8k3f61r9nw647hg4b22z1753l36n3xrp9x01civ614b7")))) |
| @@ -6602,7 +6602,7 @@ Anonip can also be uses as a Python module in your own Python application.") | |||
| 6602 | (define-public poussetaches | 6602 | (define-public poussetaches |
| 6603 | (package | 6603 | (package |
| 6604 | (name "poussetaches") | 6604 | (name "poussetaches") |
| 6605 | (version "0.0.1") | 6605 | (version "0.0.2") |
| 6606 | (source | 6606 | (source |
| 6607 | (origin | 6607 | (origin |
| 6608 | (method git-fetch) | 6608 | (method git-fetch) |
| @@ -6612,7 +6612,7 @@ Anonip can also be uses as a Python module in your own Python application.") | |||
| 6612 | (file-name (git-file-name name version)) | 6612 | (file-name (git-file-name name version)) |
| 6613 | (sha256 | 6613 | (sha256 |
| 6614 | (base32 | 6614 | (base32 |
| 6615 | "07106kfcz3a39jvrv3mlqqxlihsmdhgkrjnqznyjsij9absgvdv6")))) | 6615 | "0kckcwvqklavd855np9aq5js6mg84isrlwchr504yigwma0sm7hm")))) |
| 6616 | (build-system go-build-system) | 6616 | (build-system go-build-system) |
| 6617 | (propagated-inputs | 6617 | (propagated-inputs |
| 6618 | `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron) | 6618 | `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron) |
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 76ceed5ff7c..1501ea27465 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm | |||
| @@ -21,15 +21,13 @@ | |||
| 21 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | 21 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 22 | 22 | ||
| 23 | (define-module (gnu packages wget) | 23 | (define-module (gnu packages wget) |
| 24 | #:use-module (guix licenses) | 24 | #:use-module ((guix licenses) #:prefix license:) |
| 25 | #:use-module (gnu packages) | 25 | #:use-module (gnu packages) |
| 26 | #:use-module (gnu packages autotools) | ||
| 27 | #:use-module (gnu packages base) | 26 | #:use-module (gnu packages base) |
| 28 | #:use-module (gnu packages compression) | 27 | #:use-module (gnu packages compression) |
| 29 | #:use-module (gnu packages documentation) | 28 | #:use-module (gnu packages documentation) |
| 30 | #:use-module (gnu packages flex) | ||
| 31 | #:use-module (gnu packages gettext) | ||
| 32 | #:use-module (gnu packages gnunet) | 29 | #:use-module (gnu packages gnunet) |
| 30 | #:use-module (gnu packages gnupg) | ||
| 33 | #:use-module (gnu packages libidn) | 31 | #:use-module (gnu packages libidn) |
| 34 | #:use-module (gnu packages pcre) | 32 | #:use-module (gnu packages pcre) |
| 35 | #:use-module (gnu packages perl) | 33 | #:use-module (gnu packages perl) |
| @@ -40,7 +38,6 @@ | |||
| 40 | #:use-module (gnu packages xdisorg) | 38 | #:use-module (gnu packages xdisorg) |
| 41 | #:use-module (guix packages) | 39 | #:use-module (guix packages) |
| 42 | #:use-module (guix download) | 40 | #:use-module (guix download) |
| 43 | #:use-module (guix git-download) | ||
| 44 | #:use-module (guix build-system gnu)) | 41 | #:use-module (guix build-system gnu)) |
| 45 | 42 | ||
| 46 | (define-public wget | 43 | (define-public wget |
| @@ -74,7 +71,7 @@ | |||
| 74 | HTTPS and FTP protocols. It can resume interrupted downloads, use file name | 71 | HTTPS and FTP protocols. It can resume interrupted downloads, use file name |
| 75 | wild cards, supports proxies and cookies, and it can convert absolute links | 72 | wild cards, supports proxies and cookies, and it can convert absolute links |
| 76 | in downloaded documents to relative links.") | 73 | in downloaded documents to relative links.") |
| 77 | (license gpl3+))) ; some files are under GPLv2+ | 74 | (license license:gpl3+))) ; some files are under GPLv2+ |
| 78 | 75 | ||
| 79 | (define-public wgetpaste | 76 | (define-public wgetpaste |
| 80 | (package | 77 | (package |
| @@ -136,68 +133,47 @@ in downloaded documents to relative links.") | |||
| 136 | (description | 133 | (description |
| 137 | "@code{wgetpaste} is an extremely simple command-line interface to various | 134 | "@code{wgetpaste} is an extremely simple command-line interface to various |
| 138 | online pastebin services.") | 135 | online pastebin services.") |
| 139 | (license public-domain))) | 136 | (license license:public-domain))) |
| 140 | 137 | ||
| 141 | (define-public wget2 | 138 | (define-public wget2 |
| 142 | (package | 139 | (package |
| 143 | (name "wget2") | 140 | (name "wget2") |
| 144 | (version "1.99.1") | 141 | (version "1.99.2") |
| 145 | (source | 142 | (source |
| 146 | (origin | 143 | (origin |
| 147 | (method git-fetch) | 144 | (method url-fetch) |
| 148 | (uri (git-reference | 145 | (uri (string-append "mirror://gnu/wget/wget2-" version ".tar.gz")) |
| 149 | (url "https://gitlab.com/gnuwget/wget2.git") | ||
| 150 | (commit (string-append name "-" version)) | ||
| 151 | (recursive? #t))) ;; Needed for 'gnulib' git submodule. | ||
| 152 | (file-name (string-append name "-" version "-checkout")) | ||
| 153 | (sha256 | 146 | (sha256 |
| 154 | (base32 | 147 | (base32 |
| 155 | "15wxsnjhc6bzk7f60i1djmsarh1w31gwi5h2gh9k19ncwypfj5dm")))) | 148 | "0qv55f4bablrlhc8bnic8g3mkk1kq44c4cphrk5jmv92z9aqzi6b")))) |
| 156 | (build-system gnu-build-system) | 149 | (build-system gnu-build-system) |
| 157 | (arguments | 150 | (arguments |
| 158 | `(#:phases | 151 | `(#:phases |
| 159 | (modify-phases %standard-phases | 152 | (modify-phases %standard-phases |
| 160 | (add-after 'unpack 'skip-network-test | 153 | (add-after 'unpack 'skip-network-tests |
| 161 | (lambda _ | 154 | (lambda _ |
| 162 | (substitute* "tests/Makefile.am" | 155 | (substitute* "tests/Makefile.in" |
| 163 | (("test-auth-digest\\$\\(EXEEXT)") "")) | 156 | (("test-gpg-verify-no-file\\$\\(EXEEXT)") "") |
| 164 | #t)) | 157 | (("test-gpg-valid\\$\\(EXEEXT)") "") |
| 165 | (replace 'bootstrap | 158 | (("test-gpg-styles\\$\\(EXEEXT)") "")) |
| 166 | (lambda _ | 159 | #t))) |
| 167 | ;; Make sure all the files are writable so that ./bootstrap | 160 | #:configure-flags '("--enable-static=no"))) |
| 168 | ;; can proceed. | ||
| 169 | (for-each (lambda (file) | ||
| 170 | (chmod file #o755)) | ||
| 171 | (find-files ".")) | ||
| 172 | (patch-shebang "./gnulib/gnulib-tool.py") | ||
| 173 | ;; Remove unnecessary inputs from bootstrap.conf | ||
| 174 | (substitute* "bootstrap.conf" | ||
| 175 | (("flex.*") "") | ||
| 176 | (("makeinfo.*") "") | ||
| 177 | (("lzip.*") "") | ||
| 178 | (("rsync.*") "")) | ||
| 179 | (invoke "sh" "./bootstrap" | ||
| 180 | "--gnulib-srcdir=gnulib" | ||
| 181 | "--no-git")))))) | ||
| 182 | (inputs | 161 | (inputs |
| 183 | `(("gnutls" ,gnutls/dane) | 162 | `(("bzip2" ,bzip2) |
| 163 | ("gnutls" ,gnutls/dane) | ||
| 164 | ("gpgme" ,gpgme) | ||
| 184 | ("libiconv" ,libiconv) | 165 | ("libiconv" ,libiconv) |
| 185 | ("libidn2" ,libidn2) | 166 | ("libidn2" ,libidn2) |
| 186 | ("libmicrohttpd" ,libmicrohttpd) | 167 | ("libmicrohttpd" ,libmicrohttpd) |
| 187 | ("libpsl" ,libpsl) | 168 | ("libpsl" ,libpsl) |
| 188 | ("pcre2" ,pcre2))) | 169 | ("pcre2" ,pcre2) |
| 170 | ("zlib" ,zlib))) | ||
| 189 | ;; TODO: Add libbrotlidec, libnghttp2. | 171 | ;; TODO: Add libbrotlidec, libnghttp2. |
| 190 | (native-inputs | 172 | (native-inputs |
| 191 | `(("autoconf" ,autoconf) | 173 | `(("pkg-config" ,pkg-config))) |
| 192 | ("automake" ,automake) | ||
| 193 | ("flex" ,flex) | ||
| 194 | ("gettext" ,gettext-minimal) | ||
| 195 | ("libtool" ,libtool) | ||
| 196 | ("pkg-config" ,pkg-config) | ||
| 197 | ("python" ,python-2))) | ||
| 198 | (home-page "https://gitlab.com/gnuwget/wget2") | 174 | (home-page "https://gitlab.com/gnuwget/wget2") |
| 199 | (synopsis "Successor of GNU Wget") | 175 | (synopsis "Successor of GNU Wget") |
| 200 | (description "GNU Wget2 is the successor of GNU Wget, a file and recursive | 176 | (description "GNU Wget2 is the successor of GNU Wget, a file and recursive |
| 201 | website downloader. Designed and written from scratch it wraps around libwget, | 177 | website downloader. Designed and written from scratch it wraps around libwget, |
| 202 | that provides the basic functions needed by a web client.") | 178 | that provides the basic functions needed by a web client.") |
| 203 | (license (list gpl3+ lgpl3+)))) | 179 | (license (list license:gpl3+ license:lgpl3+)))) |
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 3a5def50b1c..d1c27a65a7d 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm | |||
| @@ -318,7 +318,7 @@ integrate Windows applications into your desktop.") | |||
| 318 | (define-public wine-staging-patchset-data | 318 | (define-public wine-staging-patchset-data |
| 319 | (package | 319 | (package |
| 320 | (name "wine-staging-patchset-data") | 320 | (name "wine-staging-patchset-data") |
| 321 | (version "4.15") | 321 | (version "4.16") |
| 322 | (source | 322 | (source |
| 323 | (origin | 323 | (origin |
| 324 | (method git-fetch) | 324 | (method git-fetch) |
| @@ -328,7 +328,7 @@ integrate Windows applications into your desktop.") | |||
| 328 | (file-name (git-file-name name version)) | 328 | (file-name (git-file-name name version)) |
| 329 | (sha256 | 329 | (sha256 |
| 330 | (base32 | 330 | (base32 |
| 331 | "13g40h2ybcl6vab4zbl1ksqfqyly5hzxssza9dv8r5pmp8x54hgr")))) | 331 | "0zkvwl6rxr6xcqk4a3h43cak67w6bcyqqnajz6azif07ir3z1c61")))) |
| 332 | (build-system trivial-build-system) | 332 | (build-system trivial-build-system) |
| 333 | (native-inputs | 333 | (native-inputs |
| 334 | `(("bash" ,bash) | 334 | `(("bash" ,bash) |
| @@ -374,7 +374,7 @@ integrate Windows applications into your desktop.") | |||
| 374 | (file-name (string-append name "-" version ".tar.xz")) | 374 | (file-name (string-append name "-" version ".tar.xz")) |
| 375 | (sha256 | 375 | (sha256 |
| 376 | (base32 | 376 | (base32 |
| 377 | "0bfh4vd99zwj7f4108zvs80dfvmmnnsap7i6gmf21jgcly3paygq")))) | 377 | "17qxbddv23ibbayw1ai984m0dlq63cgplms2jhsc09incjhafywd")))) |
| 378 | (inputs `(("autoconf" ,autoconf) ; for autoreconf | 378 | (inputs `(("autoconf" ,autoconf) ; for autoreconf |
| 379 | ("faudio" ,faudio) | 379 | ("faudio" ,faudio) |
| 380 | ("ffmpeg" ,ffmpeg) | 380 | ("ffmpeg" ,ffmpeg) |
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index a4ae1c2ddab..275a7665317 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> | 21 | ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> |
| 22 | ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com> | 22 | ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com> |
| 23 | ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com> | 23 | ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com> |
| 24 | ;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com> | ||
| 24 | ;;; | 25 | ;;; |
| 25 | ;;; This file is part of GNU Guix. | 26 | ;;; This file is part of GNU Guix. |
| 26 | ;;; | 27 | ;;; |
| @@ -127,6 +128,86 @@ | |||
| 127 | the leaves of a full binary tree.") | 128 | the leaves of a full binary tree.") |
| 128 | (license license:bsd-2))) | 129 | (license license:bsd-2))) |
| 129 | 130 | ||
| 131 | (define-public herbstluftwm | ||
| 132 | (package | ||
| 133 | (name "herbstluftwm") | ||
| 134 | (version "0.7.2") | ||
| 135 | (source | ||
| 136 | (origin | ||
| 137 | (method url-fetch) | ||
| 138 | (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-" | ||
| 139 | version ".tar.gz")) | ||
| 140 | (sha256 | ||
| 141 | (base32 | ||
| 142 | "1kc18aj9j3nfz6fj4qxg9s3gg4jvn6kzi3ii24hfm0vqdpy17xnz")) | ||
| 143 | (file-name (string-append "herbstluftwm-" version ".tar.gz")))) | ||
| 144 | (build-system gnu-build-system) | ||
| 145 | (inputs | ||
| 146 | `(("dzen" ,dzen) | ||
| 147 | ("dmenu" ,dmenu) | ||
| 148 | ("glib" ,glib) | ||
| 149 | ("glibmm" ,glibmm) | ||
| 150 | ("xterm" ,xterm) | ||
| 151 | ("xsetroot" ,xsetroot) | ||
| 152 | ("libx11" ,libx11) | ||
| 153 | ("libxext" ,libxext) | ||
| 154 | ("libxinerama" ,libxinerama))) | ||
| 155 | (native-inputs | ||
| 156 | `(("pkg-config" ,pkg-config))) | ||
| 157 | (arguments | ||
| 158 | '(#:phases | ||
| 159 | (modify-phases %standard-phases | ||
| 160 | (delete 'configure) | ||
| 161 | (delete 'check) | ||
| 162 | (add-after 'install 'install-xsession | ||
| 163 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 164 | (let* ((out (assoc-ref outputs "out")) | ||
| 165 | (xsessions (string-append out "/share/xsessions"))) | ||
| 166 | (mkdir-p xsessions) | ||
| 167 | (call-with-output-file | ||
| 168 | (string-append xsessions "/herbstluftwm.desktop") | ||
| 169 | (lambda (port) | ||
| 170 | (format port "~ | ||
| 171 | [Desktop Entry]~@ | ||
| 172 | Name=herbstluftwm~@ | ||
| 173 | Comment=Manual tiling window manager~@ | ||
| 174 | Exec=~a/bin/herbstluftwm~@ | ||
| 175 | Type=XSession~%" out))) | ||
| 176 | #t)))) | ||
| 177 | #:tests? #f | ||
| 178 | #:make-flags | ||
| 179 | (let ((out (assoc-ref %outputs "out"))) | ||
| 180 | (list "CC=gcc" | ||
| 181 | (string-append "PREFIX=''") | ||
| 182 | (string-append "DESTDIR=" out) | ||
| 183 | (string-append "BASHCOMPLETIONDIR=" out | ||
| 184 | "/etc/bash_completion.d"))))) | ||
| 185 | (synopsis "Tiling window manager for X11") | ||
| 186 | (description "herbstluftwm is a manual tiling window manager for X11 using | ||
| 187 | Xlib and GLib. Its main features are: | ||
| 188 | |||
| 189 | @itemize | ||
| 190 | @item | ||
| 191 | The layout is based on splitting frames into subframes which can be split | ||
| 192 | again or can be filled with windows (similar to i3 or musca). | ||
| 193 | |||
| 194 | @item | ||
| 195 | Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. | ||
| 196 | Each tag contains an own layout. | ||
| 197 | |||
| 198 | @item | ||
| 199 | Exactly one tag is viewed on each monitor. The tags are monitor independent | ||
| 200 | (similar to Xmonad). | ||
| 201 | |||
| 202 | @item | ||
| 203 | It is configured at runtime via IPC calls from @command{herbstclient}. So the | ||
| 204 | configuration file is just a script which is run on startup (similar to wmii | ||
| 205 | or musca). | ||
| 206 | |||
| 207 | @end itemize") | ||
| 208 | (home-page "https://herbstluftwm.org") | ||
| 209 | (license license:bsd-2))) | ||
| 210 | |||
| 130 | (define-public i3status | 211 | (define-public i3status |
| 131 | (package | 212 | (package |
| 132 | (name "i3status") | 213 | (name "i3status") |
| @@ -270,42 +351,30 @@ Despite the name it should work with any X11 window manager.") | |||
| 270 | (license license:bsd-3))) | 351 | (license license:bsd-3))) |
| 271 | 352 | ||
| 272 | (define-public i3blocks | 353 | (define-public i3blocks |
| 273 | (let ((commit "ec050e79ad8489a6f8deb37d4c20ab10729c25c3") | 354 | (package |
| 274 | (revision "2")) | 355 | (name "i3blocks") |
| 275 | (package | 356 | (version "1.5") |
| 276 | (name "i3blocks") | 357 | (source (origin |
| 277 | (version (string-append "1.4-" revision "." | 358 | (method git-fetch) |
| 278 | (string-take commit 7))) | 359 | (uri (git-reference |
| 279 | (source (origin | 360 | (url "https://github.com/vivien/i3blocks.git") |
| 280 | (method git-fetch) | 361 | (commit version))) |
| 281 | (uri (git-reference | 362 | (sha256 |
| 282 | (url "https://github.com/vivien/i3blocks.git") | 363 | (base32 |
| 283 | (commit commit))) | 364 | "0v8mwnm8qzpv6xnqvrk43s4b9iyld4naqzbaxk4ldq1qkhai0wsv")) |
| 284 | (sha256 | 365 | (file-name (git-file-name name version)))) |
| 285 | (base32 | 366 | (build-system gnu-build-system) |
| 286 | "1fx4230lmqa5rpzph68dwnpcjfaaqv5gfkradcr85hd1z8d1qp1b")) | 367 | (native-inputs |
| 287 | (file-name (git-file-name name version)))) | 368 | `(("autoconf" ,autoconf) |
| 288 | (build-system gnu-build-system) | 369 | ("automake" ,automake) |
| 289 | (arguments | 370 | ("pkg-config" ,pkg-config))) |
| 290 | `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) | 371 | (home-page "https://github.com/vivien/i3blocks") |
| 291 | #:phases (modify-phases %standard-phases | 372 | (synopsis "Minimalist scheduler for status bar scripts") |
| 292 | (add-after 'install 'install-doc | 373 | (description "i3blocks executes your command lines and generates a |
| 293 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 294 | (let* ((out (assoc-ref outputs "out")) | ||
| 295 | (man1 (string-append out "/share/man/man1"))) | ||
| 296 | (install-file "docs/i3blocks.1" man1) | ||
| 297 | #t)))))) | ||
| 298 | (native-inputs | ||
| 299 | `(("autoconf" ,autoconf) | ||
| 300 | ("automake" ,automake) | ||
| 301 | ("pkg-config" ,pkg-config))) | ||
| 302 | (home-page "https://github.com/vivien/i3blocks") | ||
| 303 | (synopsis "Minimalist scheduler for status bar scripts") | ||
| 304 | (description "i3blocks executes your command lines and generates a | ||
| 305 | status line from their output. The generated line is meant to be displayed by | 374 | status line from their output. The generated line is meant to be displayed by |
| 306 | the i3 window manager through its i3bar component, as an alternative to | 375 | the i3 window manager through its i3bar component, as an alternative to |
| 307 | i3status.") | 376 | i3status.") |
| 308 | (license license:gpl3+)))) | 377 | (license license:gpl3+))) |
| 309 | 378 | ||
| 310 | (define-public perl-anyevent-i3 | 379 | (define-public perl-anyevent-i3 |
| 311 | (package | 380 | (package |
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 0487c24b680..c71285c7bd7 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | ;;; Copyright © 2017 ng0 <ng0@n0.is> | 9 | ;;; Copyright © 2017 ng0 <ng0@n0.is> |
| 10 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | 10 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
| 11 | ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> | 11 | ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> |
| 12 | ;;; Copyright © 2019 L p R n d n <guix@lprndn.info> | ||
| 12 | ;;; | 13 | ;;; |
| 13 | ;;; This file is part of GNU Guix. | 14 | ;;; This file is part of GNU Guix. |
| 14 | ;;; | 15 | ;;; |
| @@ -283,11 +284,14 @@ merging features essential for loading menus modified with menu editors.") | |||
| 283 | (inputs | 284 | (inputs |
| 284 | `(("dbus" ,dbus) | 285 | `(("dbus" ,dbus) |
| 285 | ("gdk-pixbuf" ,gdk-pixbuf) | 286 | ("gdk-pixbuf" ,gdk-pixbuf) |
| 287 | ("cairo" ,cairo) ;; Needed for pdf thumbnails (poppler-glibc.pc) | ||
| 286 | ("freetype" ,freetype) | 288 | ("freetype" ,freetype) |
| 287 | ("libjpeg" ,libjpeg) | 289 | ("libjpeg" ,libjpeg) |
| 288 | ("libgsf" ,libgsf) | 290 | ("libgsf" ,libgsf) |
| 289 | ("poppler" ,poppler) | 291 | ("poppler" ,poppler) |
| 290 | ("gstreamer" ,gstreamer))) | 292 | ;; FIXME Provide gstreamer and gstreamer-tag to get video thumbnails |
| 293 | ;; ("gstreamer" ,gstreamer) | ||
| 294 | )) | ||
| 291 | (home-page "https://www.xfce.org/") | 295 | (home-page "https://www.xfce.org/") |
| 292 | (synopsis "D-Bus service for applications to request thumbnails") | 296 | (synopsis "D-Bus service for applications to request thumbnails") |
| 293 | (description | 297 | (description |
| @@ -638,7 +642,7 @@ like appearance, display, keyboard and mouse settings.") | |||
| 638 | (define-public thunar | 642 | (define-public thunar |
| 639 | (package | 643 | (package |
| 640 | (name "thunar") | 644 | (name "thunar") |
| 641 | (version "1.8.7") | 645 | (version "1.8.9") |
| 642 | (source (origin | 646 | (source (origin |
| 643 | (method url-fetch) | 647 | (method url-fetch) |
| 644 | (uri (string-append "http://archive.xfce.org/src/xfce/" | 648 | (uri (string-append "http://archive.xfce.org/src/xfce/" |
| @@ -646,7 +650,7 @@ like appearance, display, keyboard and mouse settings.") | |||
| 646 | "Thunar-" version ".tar.bz2")) | 650 | "Thunar-" version ".tar.bz2")) |
| 647 | (sha256 | 651 | (sha256 |
| 648 | (base32 | 652 | (base32 |
| 649 | "0afkp528mwwa2m18m39mvw53qgaijyynrw9wwwiyxgjiczq3l0ry")))) | 653 | "1fah2d7v3a7fp28xa5wv896rap1iad9q9y04qchca09mq1x8wxbs")))) |
| 650 | (build-system gnu-build-system) | 654 | (build-system gnu-build-system) |
| 651 | (native-inputs | 655 | (native-inputs |
| 652 | `(("pkg-config" ,pkg-config) | 656 | `(("pkg-config" ,pkg-config) |
| @@ -670,7 +674,7 @@ fast.") | |||
| 670 | (define-public thunar-volman | 674 | (define-public thunar-volman |
| 671 | (package | 675 | (package |
| 672 | (name "thunar-volman") | 676 | (name "thunar-volman") |
| 673 | (version "0.9.3") | 677 | (version "0.9.5") |
| 674 | (source | 678 | (source |
| 675 | (origin | 679 | (origin |
| 676 | (method url-fetch) | 680 | (method url-fetch) |
| @@ -678,7 +682,7 @@ fast.") | |||
| 678 | (version-major+minor version) "/" | 682 | (version-major+minor version) "/" |
| 679 | "thunar-volman-" version ".tar.bz2")) | 683 | "thunar-volman-" version ".tar.bz2")) |
| 680 | (sha256 | 684 | (sha256 |
| 681 | (base32 "1sfmz40164rg77hclrkrgnbk8cb7f325qqi7lz2hh3wbvf8r0c19")))) | 685 | (base32 "0dqqkbhn43hhmhqyx1fnmawpvysdjzw6ln4ryf629wil6dlwd9vy")))) |
| 682 | (build-system gnu-build-system) | 686 | (build-system gnu-build-system) |
| 683 | (native-inputs | 687 | (native-inputs |
| 684 | `(("pkg-config" ,pkg-config) | 688 | `(("pkg-config" ,pkg-config) |
| @@ -907,7 +911,7 @@ inhibit interface which allows applications to prevent automatic sleep.") | |||
| 907 | (define-public ristretto | 911 | (define-public ristretto |
| 908 | (package | 912 | (package |
| 909 | (name "ristretto") | 913 | (name "ristretto") |
| 910 | (version "0.8.4") | 914 | (version "0.10.0") |
| 911 | (source (origin | 915 | (source (origin |
| 912 | (method url-fetch) | 916 | (method url-fetch) |
| 913 | (uri (string-append "http://archive.xfce.org/src/apps/ristretto/" | 917 | (uri (string-append "http://archive.xfce.org/src/apps/ristretto/" |
| @@ -915,14 +919,14 @@ inhibit interface which allows applications to prevent automatic sleep.") | |||
| 915 | "ristretto-" version ".tar.bz2")) | 919 | "ristretto-" version ".tar.bz2")) |
| 916 | (sha256 | 920 | (sha256 |
| 917 | (base32 | 921 | (base32 |
| 918 | "18nf01djwnbjc91bdlv3p0h6pwcq1kfnjgp6yaxhxv4kdi9f82rs")))) | 922 | "0sa75m1w6yvv4xvzrwqiif6vnqgi29hjrixrh87nxss58bbms8hn")))) |
| 919 | (build-system gnu-build-system) | 923 | (build-system gnu-build-system) |
| 920 | (native-inputs | 924 | (native-inputs |
| 921 | `(("intltool" ,intltool) | 925 | `(("intltool" ,intltool) |
| 922 | ("pkg-config" ,pkg-config))) | 926 | ("pkg-config" ,pkg-config))) |
| 923 | (inputs | 927 | (inputs |
| 924 | `(("desktop-file-utils" ,desktop-file-utils) | 928 | `(("desktop-file-utils" ,desktop-file-utils) |
| 925 | ("gtk+" ,gtk+-2) | 929 | ("gtk+" ,gtk+) |
| 926 | ("libexif" ,libexif) | 930 | ("libexif" ,libexif) |
| 927 | ("libxfce4ui" ,libxfce4ui) | 931 | ("libxfce4ui" ,libxfce4ui) |
| 928 | ("librsvg" ,librsvg) | 932 | ("librsvg" ,librsvg) |
| @@ -978,6 +982,14 @@ memory usage graphically, and it can display processes as a tree.") | |||
| 978 | (sha256 | 982 | (sha256 |
| 979 | (base32 | 983 | (base32 |
| 980 | "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w")))) | 984 | "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w")))) |
| 985 | (arguments | ||
| 986 | `(#:phases | ||
| 987 | (modify-phases %standard-phases | ||
| 988 | (add-after 'unpack 'fix-build-with-libical3 | ||
| 989 | (lambda* _ | ||
| 990 | (substitute* "src/ical-code.c" ;; .is_utc not available in libical3 | ||
| 991 | ((".*\\.is_utc.*$") "")) | ||
| 992 | #t))))) | ||
| 981 | (build-system gnu-build-system) | 993 | (build-system gnu-build-system) |
| 982 | (native-inputs | 994 | (native-inputs |
| 983 | `(("intltool" ,intltool) | 995 | `(("intltool" ,intltool) |
| @@ -1068,7 +1080,7 @@ of data to either CD/DVD/BD.") | |||
| 1068 | (define-public mousepad | 1080 | (define-public mousepad |
| 1069 | (package | 1081 | (package |
| 1070 | (name "mousepad") | 1082 | (name "mousepad") |
| 1071 | (version "0.4.1") | 1083 | (version "0.4.2") |
| 1072 | (source (origin | 1084 | (source (origin |
| 1073 | (method url-fetch) | 1085 | (method url-fetch) |
| 1074 | (uri (string-append "http://archive.xfce.org/src/apps/mousepad/" | 1086 | (uri (string-append "http://archive.xfce.org/src/apps/mousepad/" |
| @@ -1076,11 +1088,10 @@ of data to either CD/DVD/BD.") | |||
| 1076 | version ".tar.bz2")) | 1088 | version ".tar.bz2")) |
| 1077 | (sha256 | 1089 | (sha256 |
| 1078 | (base32 | 1090 | (base32 |
| 1079 | "12si6fvhp68wz4scr339c23jxqq5ywn5nf4w55jld5lxjadkg9rr")))) | 1091 | "1myy7954r1a30dk7inwy7kwki7zvfbnnsc3a8swk72vzrbgjmh44")))) |
| 1080 | (build-system gnu-build-system) | 1092 | (build-system gnu-build-system) |
| 1081 | (arguments | 1093 | (arguments |
| 1082 | '(#:configure-flags '("--enable-gtk3" | 1094 | '(#:configure-flags '(;; Use the GSettings keyfile backend rather than |
| 1083 | ;; Use the GSettings keyfile backend rather than | ||
| 1084 | ;; DConf. | 1095 | ;; DConf. |
| 1085 | "--enable-keyfile-settings") | 1096 | "--enable-keyfile-settings") |
| 1086 | #:phases | 1097 | #:phases |
| @@ -1100,7 +1111,8 @@ of data to either CD/DVD/BD.") | |||
| 1100 | ("pkg-config" ,pkg-config))) | 1111 | ("pkg-config" ,pkg-config))) |
| 1101 | (inputs | 1112 | (inputs |
| 1102 | `(("gtk+" ,gtk+) | 1113 | `(("gtk+" ,gtk+) |
| 1103 | ("gtksourceview" ,gtksourceview-3))) | 1114 | ("gtksourceview" ,gtksourceview-3) |
| 1115 | ("xfconf" ,xfconf))) | ||
| 1104 | (home-page "https://git.xfce.org/apps/mousepad/") | 1116 | (home-page "https://git.xfce.org/apps/mousepad/") |
| 1105 | (synopsis "Simple text editor for Xfce") | 1117 | (synopsis "Simple text editor for Xfce") |
| 1106 | (description | 1118 | (description |
diff --git a/gnu/services/base.scm b/gnu/services/base.scm index dcb7278f0f6..25716ef152f 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> | 8 | ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> |
| 9 | ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> | 9 | ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> |
| 10 | ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> | 10 | ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> |
| 11 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> | ||
| 11 | ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> | 12 | ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> |
| 12 | ;;; | 13 | ;;; |
| 13 | ;;; This file is part of GNU Guix. | 14 | ;;; This file is part of GNU Guix. |
| @@ -41,9 +42,9 @@ | |||
| 41 | #:use-module (gnu packages admin) | 42 | #:use-module (gnu packages admin) |
| 42 | #:use-module ((gnu packages linux) | 43 | #:use-module ((gnu packages linux) |
| 43 | #:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools)) | 44 | #:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools)) |
| 44 | #:use-module ((gnu packages base) | ||
| 45 | #:select (canonical-package glibc glibc-utf8-locales)) | ||
| 46 | #:use-module (gnu packages bash) | 45 | #:use-module (gnu packages bash) |
| 46 | #:use-module ((gnu packages base) | ||
| 47 | #:select (canonical-package coreutils glibc glibc-utf8-locales)) | ||
| 47 | #:use-module (gnu packages package-management) | 48 | #:use-module (gnu packages package-management) |
| 48 | #:use-module ((gnu packages gnupg) #:select (guile-gcrypt)) | 49 | #:use-module ((gnu packages gnupg) #:select (guile-gcrypt)) |
| 49 | #:use-module (gnu packages linux) | 50 | #:use-module (gnu packages linux) |
| @@ -2425,6 +2426,8 @@ to handle." | |||
| 2425 | 2426 | ||
| 2426 | (service special-files-service-type | 2427 | (service special-files-service-type |
| 2427 | `(("/bin/sh" ,(file-append (canonical-package bash) | 2428 | `(("/bin/sh" ,(file-append (canonical-package bash) |
| 2428 | "/bin/sh")))))) | 2429 | "/bin/sh")) |
| 2430 | ("/usr/bin/env" ,(file-append (canonical-package coreutils) | ||
| 2431 | "/bin/env")))))) | ||
| 2429 | 2432 | ||
| 2430 | ;;; base.scm ends here | 2433 | ;;; base.scm ends here |
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm index ae34ad17bb7..0d3be033838 100644 --- a/gnu/services/certbot.scm +++ b/gnu/services/certbot.scm | |||
| @@ -99,6 +99,7 @@ | |||
| 99 | "--manual" | 99 | "--manual" |
| 100 | (string-append "--preferred-challenges=" challenge) | 100 | (string-append "--preferred-challenges=" challenge) |
| 101 | "--cert-name" name | 101 | "--cert-name" name |
| 102 | "--manual-public-ip-logging-ok" | ||
| 102 | "-d" (string-join domains ",")) | 103 | "-d" (string-join domains ",")) |
| 103 | (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '()) | 104 | (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '()) |
| 104 | (if authentication-hook | 105 | (if authentication-hook |
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 376b4ccc4e2..c775242f998 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm | |||
| @@ -51,6 +51,7 @@ | |||
| 51 | #:use-module (guix records) | 51 | #:use-module (guix records) |
| 52 | #:use-module (guix modules) | 52 | #:use-module (guix modules) |
| 53 | #:use-module (guix deprecation) | 53 | #:use-module (guix deprecation) |
| 54 | #:use-module (rnrs enums) | ||
| 54 | #:use-module (srfi srfi-1) | 55 | #:use-module (srfi srfi-1) |
| 55 | #:use-module (srfi srfi-9) | 56 | #:use-module (srfi srfi-9) |
| 56 | #:use-module (srfi srfi-26) | 57 | #:use-module (srfi srfi-26) |
| @@ -72,13 +73,22 @@ | |||
| 72 | dhcpd-configuration-pid-file | 73 | dhcpd-configuration-pid-file |
| 73 | dhcpd-configuration-interfaces | 74 | dhcpd-configuration-interfaces |
| 74 | 75 | ||
| 75 | %ntp-servers | ||
| 76 | |||
| 77 | ntp-configuration | 76 | ntp-configuration |
| 78 | ntp-configuration? | 77 | ntp-configuration? |
| 78 | ntp-configuration-ntp | ||
| 79 | ntp-configuration-servers | ||
| 80 | ntp-allow-large-adjustment? | ||
| 81 | |||
| 82 | %ntp-servers | ||
| 83 | ntp-server | ||
| 84 | ntp-server-type | ||
| 85 | ntp-server-address | ||
| 86 | ntp-server-options | ||
| 87 | |||
| 79 | ntp-service | 88 | ntp-service |
| 80 | ntp-service-type | 89 | ntp-service-type |
| 81 | 90 | ||
| 91 | %openntpd-servers | ||
| 82 | openntpd-configuration | 92 | openntpd-configuration |
| 83 | openntpd-configuration? | 93 | openntpd-configuration? |
| 84 | openntpd-service-type | 94 | openntpd-service-type |
| @@ -292,30 +302,86 @@ Protocol (DHCP) client, on all the non-loopback network interfaces." | |||
| 292 | (list (service-extension shepherd-root-service-type dhcpd-shepherd-service) | 302 | (list (service-extension shepherd-root-service-type dhcpd-shepherd-service) |
| 293 | (service-extension activation-service-type dhcpd-activation))))) | 303 | (service-extension activation-service-type dhcpd-activation))))) |
| 294 | 304 | ||
| 295 | (define %ntp-servers | ||
| 296 | ;; Default set of NTP servers. These URLs are managed by the NTP Pool project. | ||
| 297 | ;; Within Guix, Leo Famulari <leo@famulari.name> is the administrative contact | ||
| 298 | ;; for this NTP pool "zone". | ||
| 299 | '("0.guix.pool.ntp.org" | ||
| 300 | "1.guix.pool.ntp.org" | ||
| 301 | "2.guix.pool.ntp.org" | ||
| 302 | "3.guix.pool.ntp.org")) | ||
| 303 | |||
| 304 | 305 | ||
| 305 | ;;; | 306 | ;;; |
| 306 | ;;; NTP. | 307 | ;;; NTP. |
| 307 | ;;; | 308 | ;;; |
| 308 | 309 | ||
| 309 | ;; TODO: Export. | 310 | (define ntp-server-types (make-enumeration |
| 311 | '(pool | ||
| 312 | server | ||
| 313 | peer | ||
| 314 | broadcast | ||
| 315 | manycastclient))) | ||
| 316 | |||
| 317 | (define-record-type* <ntp-server> | ||
| 318 | ntp-server make-ntp-server | ||
| 319 | ntp-server? | ||
| 320 | ;; The type can be one of the symbols of the NTP-SERVER-TYPE? enumeration. | ||
| 321 | (type ntp-server-type | ||
| 322 | (default 'server)) | ||
| 323 | (address ntp-server-address) ; a string | ||
| 324 | ;; The list of options can contain single option names or tuples in the form | ||
| 325 | ;; '(name value). | ||
| 326 | (options ntp-server-options | ||
| 327 | (default '()))) | ||
| 328 | |||
| 329 | (define (ntp-server->string ntp-server) | ||
| 330 | ;; Serialize the NTP server object as a string, ready to use in the NTP | ||
| 331 | ;; configuration file. | ||
| 332 | (define (flatten lst) | ||
| 333 | (reverse | ||
| 334 | (let loop ((x lst) | ||
| 335 | (res '())) | ||
| 336 | (if (list? x) | ||
| 337 | (fold loop res x) | ||
| 338 | (cons (format #f "~s" x) res))))) | ||
| 339 | |||
| 340 | (match ntp-server | ||
| 341 | (($ <ntp-server> type address options) | ||
| 342 | ;; XXX: It'd be neater if fields were validated at the syntax level (for | ||
| 343 | ;; static ones at least). Perhaps the Guix record type could support a | ||
| 344 | ;; predicate property on a field? | ||
| 345 | (unless (enum-set-member? type ntp-server-types) | ||
| 346 | (error "Invalid NTP server type" type)) | ||
| 347 | (string-join (cons* (symbol->string type) | ||
| 348 | address | ||
| 349 | (flatten options)))))) | ||
| 350 | |||
| 351 | (define %ntp-servers | ||
| 352 | ;; Default set of NTP servers. These URLs are managed by the NTP Pool project. | ||
| 353 | ;; Within Guix, Leo Famulari <leo@famulari.name> is the administrative contact | ||
| 354 | ;; for this NTP pool "zone". | ||
| 355 | (list | ||
| 356 | (ntp-server | ||
| 357 | (type 'pool) | ||
| 358 | (address "0.guix.pool.ntp.org") | ||
| 359 | (options '("iburst"))))) ;as recommended in the ntpd manual | ||
| 360 | |||
| 310 | (define-record-type* <ntp-configuration> | 361 | (define-record-type* <ntp-configuration> |
| 311 | ntp-configuration make-ntp-configuration | 362 | ntp-configuration make-ntp-configuration |
| 312 | ntp-configuration? | 363 | ntp-configuration? |
| 313 | (ntp ntp-configuration-ntp | 364 | (ntp ntp-configuration-ntp |
| 314 | (default ntp)) | 365 | (default ntp)) |
| 315 | (servers ntp-configuration-servers | 366 | (servers %ntp-configuration-servers ;list of <ntp-server> objects |
| 316 | (default %ntp-servers)) | 367 | (default %ntp-servers)) |
| 317 | (allow-large-adjustment? ntp-allow-large-adjustment? | 368 | (allow-large-adjustment? ntp-allow-large-adjustment? |
| 318 | (default #f))) | 369 | (default #t))) ;as recommended in the ntpd manual |
| 370 | |||
| 371 | (define (ntp-configuration-servers ntp-configuration) | ||
| 372 | ;; A wrapper to support the deprecated form of this field. | ||
| 373 | (let ((ntp-servers (%ntp-configuration-servers ntp-configuration))) | ||
| 374 | (match ntp-servers | ||
| 375 | (((? string?) (? string?) ...) | ||
| 376 | (format (current-error-port) "warning: Defining NTP servers as strings is \ | ||
| 377 | deprecated. Please use <ntp-server> records instead.\n") | ||
| 378 | (map (lambda (addr) | ||
| 379 | (ntp-server | ||
| 380 | (type 'server) | ||
| 381 | (address addr) | ||
| 382 | (options '()))) ntp-servers)) | ||
| 383 | ((($ <ntp-server>) ($ <ntp-server>) ...) | ||
| 384 | ntp-servers)))) | ||
| 319 | 385 | ||
| 320 | (define ntp-shepherd-service | 386 | (define ntp-shepherd-service |
| 321 | (match-lambda | 387 | (match-lambda |
| @@ -324,18 +390,21 @@ Protocol (DHCP) client, on all the non-loopback network interfaces." | |||
| 324 | ;; TODO: Add authentication support. | 390 | ;; TODO: Add authentication support. |
| 325 | (define config | 391 | (define config |
| 326 | (string-append "driftfile /var/run/ntpd/ntp.drift\n" | 392 | (string-append "driftfile /var/run/ntpd/ntp.drift\n" |
| 327 | (string-join (map (cut string-append "server " <>) | 393 | (string-join (map ntp-server->string servers) |
| 328 | servers) | ||
| 329 | "\n") | 394 | "\n") |
| 330 | " | 395 | " |
| 331 | # Disable status queries as a workaround for CVE-2013-5211: | 396 | # Disable status queries as a workaround for CVE-2013-5211: |
| 332 | # <http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using>. | 397 | # <http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using>. |
| 333 | restrict default kod nomodify notrap nopeer noquery | 398 | restrict default kod nomodify notrap nopeer noquery limited |
| 334 | restrict -6 default kod nomodify notrap nopeer noquery | 399 | restrict -6 default kod nomodify notrap nopeer noquery limited |
| 335 | 400 | ||
| 336 | # Yet, allow use of the local 'ntpq'. | 401 | # Yet, allow use of the local 'ntpq'. |
| 337 | restrict 127.0.0.1 | 402 | restrict 127.0.0.1 |
| 338 | restrict -6 ::1\n")) | 403 | restrict -6 ::1 |
| 404 | |||
| 405 | # This is required to use servers from a pool directive when using the 'nopeer' | ||
| 406 | # option by default, as documented in the 'ntp.conf' manual. | ||
| 407 | restrict source notrap nomodify noquery\n")) | ||
| 339 | 408 | ||
| 340 | (define ntpd.conf | 409 | (define ntpd.conf |
| 341 | (plain-file "ntpd.conf" config)) | 410 | (plain-file "ntpd.conf" config)) |
| @@ -409,6 +478,9 @@ make an initial adjustment of more than 1,000 seconds." | |||
| 409 | ;;; OpenNTPD. | 478 | ;;; OpenNTPD. |
| 410 | ;;; | 479 | ;;; |
| 411 | 480 | ||
| 481 | (define %openntpd-servers | ||
| 482 | (map ntp-server-address %ntp-servers)) | ||
| 483 | |||
| 412 | (define-record-type* <openntpd-configuration> | 484 | (define-record-type* <openntpd-configuration> |
| 413 | openntpd-configuration make-openntpd-configuration | 485 | openntpd-configuration make-openntpd-configuration |
| 414 | openntpd-configuration? | 486 | openntpd-configuration? |
| @@ -422,9 +494,9 @@ make an initial adjustment of more than 1,000 seconds." | |||
| 422 | (sensor openntpd-sensor | 494 | (sensor openntpd-sensor |
| 423 | (default '())) | 495 | (default '())) |
| 424 | (server openntpd-server | 496 | (server openntpd-server |
| 425 | (default %ntp-servers)) | ||
| 426 | (servers openntpd-servers | ||
| 427 | (default '())) | 497 | (default '())) |
| 498 | (servers openntpd-servers | ||
| 499 | (default %openntpd-servers)) | ||
| 428 | (constraint-from openntpd-constraint-from | 500 | (constraint-from openntpd-constraint-from |
| 429 | (default '())) | 501 | (default '())) |
| 430 | (constraints-from openntpd-constraints-from | 502 | (constraints-from openntpd-constraints-from |
| @@ -432,45 +504,58 @@ make an initial adjustment of more than 1,000 seconds." | |||
| 432 | (allow-large-adjustment? openntpd-allow-large-adjustment? | 504 | (allow-large-adjustment? openntpd-allow-large-adjustment? |
| 433 | (default #f))) ; upstream default | 505 | (default #f))) ; upstream default |
| 434 | 506 | ||
| 435 | (define (openntpd-shepherd-service config) | 507 | (define (openntpd-configuration->string config) |
| 508 | |||
| 509 | (define (quote-field? name) | ||
| 510 | (member name '("constraints from"))) | ||
| 511 | |||
| 436 | (match-record config <openntpd-configuration> | 512 | (match-record config <openntpd-configuration> |
| 437 | (openntpd listen-on query-from sensor server servers constraint-from | 513 | (listen-on query-from sensor server servers constraint-from |
| 438 | constraints-from allow-large-adjustment?) | 514 | constraints-from) |
| 439 | (let () | 515 | (string-append |
| 440 | (define config | 516 | (string-join |
| 441 | (string-join | 517 | (concatenate |
| 442 | (filter-map | 518 | (filter-map (lambda (field values) |
| 443 | (lambda (field value) | 519 | (match values |
| 444 | (string-join | 520 | (() #f) ;discard entry with filter-map |
| 445 | (map (cut string-append field <> "\n") | 521 | ((val ...) ;validate value type |
| 446 | value))) | 522 | (map (lambda (value) |
| 447 | '("listen on " "query from " "sensor " "server " "servers " | 523 | (if (quote-field? field) |
| 448 | "constraint from ") | 524 | (format #f "~a \"~a\"" field value) |
| 449 | (list listen-on query-from sensor server servers constraint-from)) | 525 | (format #f "~a ~a" field value))) |
| 450 | ;; The 'constraints from' field needs to be enclosed in double quotes. | 526 | values)))) |
| 451 | (string-join | 527 | ;; The entry names. |
| 452 | (map (cut string-append "constraints from \"" <> "\"\n") | 528 | '("listen on" "query from" "sensor" "server" "servers" |
| 453 | constraints-from)))) | 529 | "constraint from" "constraints from") |
| 454 | 530 | ;; The corresponding entry values. | |
| 455 | (define ntpd.conf | 531 | (list listen-on query-from sensor server servers |
| 456 | (plain-file "ntpd.conf" config)) | 532 | constraint-from constraints-from))) |
| 457 | 533 | "\n") | |
| 458 | (list (shepherd-service | 534 | "\n"))) ;add a trailing newline |
| 459 | (provision '(ntpd)) | 535 | |
| 460 | (documentation "Run the Network Time Protocol (NTP) daemon.") | 536 | (define (openntpd-shepherd-service config) |
| 461 | (requirement '(user-processes networking)) | 537 | (let ((openntpd (openntpd-configuration-openntpd config)) |
| 462 | (start #~(make-forkexec-constructor | 538 | (allow-large-adjustment? (openntpd-allow-large-adjustment? config))) |
| 463 | (list (string-append #$openntpd "/sbin/ntpd") | 539 | |
| 464 | "-f" #$ntpd.conf | 540 | (define ntpd.conf |
| 465 | "-d" ;; don't daemonize | 541 | (plain-file "ntpd.conf" (openntpd-configuration->string config))) |
| 466 | #$@(if allow-large-adjustment? | 542 | |
| 467 | '("-s") | 543 | (list (shepherd-service |
| 468 | '())) | 544 | (provision '(ntpd)) |
| 469 | ;; When ntpd is daemonized it repeatedly tries to respawn | 545 | (documentation "Run the Network Time Protocol (NTP) daemon.") |
| 470 | ;; while running, leading shepherd to disable it. To | 546 | (requirement '(user-processes networking)) |
| 471 | ;; prevent spamming stderr, redirect output to logfile. | 547 | (start #~(make-forkexec-constructor |
| 472 | #:log-file "/var/log/ntpd")) | 548 | (list (string-append #$openntpd "/sbin/ntpd") |
| 473 | (stop #~(make-kill-destructor))))))) | 549 | "-f" #$ntpd.conf |
| 550 | "-d" ;; don't daemonize | ||
| 551 | #$@(if allow-large-adjustment? | ||
| 552 | '("-s") | ||
| 553 | '())) | ||
| 554 | ;; When ntpd is daemonized it repeatedly tries to respawn | ||
| 555 | ;; while running, leading shepherd to disable it. To | ||
| 556 | ;; prevent spamming stderr, redirect output to logfile. | ||
| 557 | #:log-file "/var/log/ntpd")) | ||
| 558 | (stop #~(make-kill-destructor)))))) | ||
| 474 | 559 | ||
| 475 | (define (openntpd-service-activation config) | 560 | (define (openntpd-service-activation config) |
| 476 | "Return the activation gexp for CONFIG." | 561 | "Return the activation gexp for CONFIG." |
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 705ed84d067..3eecd2c0857 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm | |||
| @@ -432,7 +432,10 @@ potential infinite waits blocking libvirt.")) | |||
| 432 | (provision '(libvirtd)) | 432 | (provision '(libvirtd)) |
| 433 | (start #~(make-forkexec-constructor | 433 | (start #~(make-forkexec-constructor |
| 434 | (list (string-append #$libvirt "/sbin/libvirtd") | 434 | (list (string-append #$libvirt "/sbin/libvirtd") |
| 435 | "-f" #$config-file))) | 435 | "-f" #$config-file) |
| 436 | #:environment-variables | ||
| 437 | ;; For finding qemu binaries. | ||
| 438 | '("PATH=/run/current-system/profile/bin"))) | ||
| 436 | (stop #~(make-kill-destructor)))))) | 439 | (stop #~(make-kill-destructor)))))) |
| 437 | 440 | ||
| 438 | (define libvirt-service-type | 441 | (define libvirt-service-type |
| @@ -442,8 +445,10 @@ potential infinite waits blocking libvirt.")) | |||
| 442 | (service-extension polkit-service-type | 445 | (service-extension polkit-service-type |
| 443 | (compose list libvirt-configuration-libvirt)) | 446 | (compose list libvirt-configuration-libvirt)) |
| 444 | (service-extension profile-service-type | 447 | (service-extension profile-service-type |
| 445 | (compose list | 448 | (lambda (config) |
| 446 | libvirt-configuration-libvirt)) | 449 | (list |
| 450 | (libvirt-configuration-libvirt config) | ||
| 451 | qemu))) | ||
| 447 | (service-extension activation-service-type | 452 | (service-extension activation-service-type |
| 448 | %libvirt-activation) | 453 | %libvirt-activation) |
| 449 | (service-extension shepherd-root-service-type | 454 | (service-extension shepherd-root-service-type |
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index d11b36f25da..6cf6ccc53eb 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm | |||
| @@ -508,7 +508,7 @@ a bind mount." | |||
| 508 | ;; symlink to a file in a tmpfs which, for an unknown reason, | 508 | ;; symlink to a file in a tmpfs which, for an unknown reason, |
| 509 | ;; cannot be bind mounted read-only within the container. | 509 | ;; cannot be bind mounted read-only within the container. |
| 510 | (writable? (string=? file "/etc/resolv.conf")))) | 510 | (writable? (string=? file "/etc/resolv.conf")))) |
| 511 | %network-configuration-files)) | 511 | (cons "/var/run/nscd" %network-configuration-files))) |
| 512 | 512 | ||
| 513 | (define (file-system-type-predicate type) | 513 | (define (file-system-type-predicate type) |
| 514 | "Return a predicate that, when passed a file system, returns #t if that file | 514 | "Return a predicate that, when passed a file system, returns #t if that file |
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index 6273cee3d30..c6124cd223b 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | #:use-module (gnu build linux-container) | 30 | #:use-module (gnu build linux-container) |
| 31 | #:use-module (gnu services) | 31 | #:use-module (gnu services) |
| 32 | #:use-module (gnu services base) | 32 | #:use-module (gnu services base) |
| 33 | #:use-module (gnu services networking) | ||
| 33 | #:use-module (gnu services shepherd) | 34 | #:use-module (gnu services shepherd) |
| 34 | #:use-module (gnu system) | 35 | #:use-module (gnu system) |
| 35 | #:use-module (gnu system file-systems) | 36 | #:use-module (gnu system file-systems) |
| @@ -109,7 +110,11 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS." | |||
| 109 | ;; Remove nscd service if network is shared with the host. | 110 | ;; Remove nscd service if network is shared with the host. |
| 110 | (if shared-network? | 111 | (if shared-network? |
| 111 | (list nscd-service-type | 112 | (list nscd-service-type |
| 112 | static-networking-service-type) | 113 | static-networking-service-type |
| 114 | dhcp-client-service-type | ||
| 115 | network-manager-service-type | ||
| 116 | connman-service-type | ||
| 117 | wicd-service-type) | ||
| 113 | (list)))) | 118 | (list)))) |
| 114 | 119 | ||
| 115 | (operating-system | 120 | (operating-system |
| @@ -147,13 +152,6 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS." | |||
| 147 | "Return a derivation of a script that runs OS as a Linux container. | 152 | "Return a derivation of a script that runs OS as a Linux container. |
| 148 | MAPPINGS is a list of <file-system> objects that specify the files/directories | 153 | MAPPINGS is a list of <file-system> objects that specify the files/directories |
| 149 | that will be shared with the host system." | 154 | that will be shared with the host system." |
| 150 | (define nscd-run-directory "/var/run/nscd") | ||
| 151 | |||
| 152 | (define nscd-mapping | ||
| 153 | (file-system-mapping | ||
| 154 | (source nscd-run-directory) | ||
| 155 | (target nscd-run-directory))) | ||
| 156 | |||
| 157 | (define (mountable-file-system? file-system) | 155 | (define (mountable-file-system? file-system) |
| 158 | ;; Return #t if FILE-SYSTEM should be mounted in the container. | 156 | ;; Return #t if FILE-SYSTEM should be mounted in the container. |
| 159 | (and (not (string=? "/" (file-system-mount-point file-system))) | 157 | (and (not (string=? "/" (file-system-mount-point file-system))) |
| @@ -168,28 +166,42 @@ that will be shared with the host system." | |||
| 168 | os (cons %store-mapping mappings) | 166 | os (cons %store-mapping mappings) |
| 169 | #:shared-network? shared-network? | 167 | #:shared-network? shared-network? |
| 170 | #:extra-file-systems %container-file-systems)) | 168 | #:extra-file-systems %container-file-systems)) |
| 171 | (nscd-os (containerized-operating-system | 169 | (specs (os-file-system-specs os))) |
| 172 | os (cons* nscd-mapping %store-mapping mappings) | ||
| 173 | #:shared-network? shared-network? | ||
| 174 | #:extra-file-systems %container-file-systems)) | ||
| 175 | (specs (os-file-system-specs os)) | ||
| 176 | (nscd-specs (os-file-system-specs nscd-os))) | ||
| 177 | 170 | ||
| 178 | (define script | 171 | (define script |
| 179 | (with-imported-modules (source-module-closure | 172 | (with-imported-modules (source-module-closure |
| 180 | '((guix build utils) | 173 | '((guix build utils) |
| 181 | (gnu build linux-container))) | 174 | (gnu build linux-container) |
| 175 | (guix i18n) | ||
| 176 | (guix diagnostics))) | ||
| 182 | #~(begin | 177 | #~(begin |
| 183 | (use-modules (gnu build linux-container) | 178 | (use-modules (gnu build linux-container) |
| 184 | (gnu system file-systems) ;spec->file-system | 179 | (gnu system file-systems) ;spec->file-system |
| 185 | (guix build utils)) | 180 | (guix build utils) |
| 186 | 181 | (guix i18n) | |
| 187 | (call-with-container | 182 | (guix diagnostics) |
| 188 | (map spec->file-system | 183 | (srfi srfi-1)) |
| 189 | (if (and #$shared-network? | 184 | |
| 190 | (file-exists? #$nscd-run-directory)) | 185 | (define file-systems |
| 191 | '#$nscd-specs | 186 | (filter-map (lambda (spec) |
| 192 | '#$specs)) | 187 | (let* ((fs (spec->file-system spec)) |
| 188 | (flags (file-system-flags fs))) | ||
| 189 | (and (or (not (memq 'bind-mount flags)) | ||
| 190 | (file-exists? (file-system-device fs))) | ||
| 191 | fs))) | ||
| 192 | '#$specs)) | ||
| 193 | |||
| 194 | (define (explain pid) | ||
| 195 | ;; XXX: We can't quite call 'bindtextdomain' so there's actually | ||
| 196 | ;; no i18n. | ||
| 197 | (info (G_ "system container is running as PID ~a~%") pid) | ||
| 198 | ;; XXX: Should we recommend 'guix container exec'? It's more | ||
| 199 | ;; verbose and doesn't bring much. | ||
| 200 | (info (G_ "Run 'sudo nsenter -a -t ~a' to get a shell into it.~%") | ||
| 201 | pid) | ||
| 202 | (newline (guix-warning-port))) | ||
| 203 | |||
| 204 | (call-with-container file-systems | ||
| 193 | (lambda () | 205 | (lambda () |
| 194 | (setenv "HOME" "/root") | 206 | (setenv "HOME" "/root") |
| 195 | (setenv "TMPDIR" "/tmp") | 207 | (setenv "TMPDIR" "/tmp") |
| @@ -203,7 +215,8 @@ that will be shared with the host system." | |||
| 203 | #:host-uids 65536 | 215 | #:host-uids 65536 |
| 204 | #:namespaces (if #$shared-network? | 216 | #:namespaces (if #$shared-network? |
| 205 | (delq 'net %namespaces) | 217 | (delq 'net %namespaces) |
| 206 | %namespaces))))) | 218 | %namespaces) |
| 219 | #:process-spawned-hook explain)))) | ||
| 207 | 220 | ||
| 208 | (gexp->script "run-container" script))) | 221 | (gexp->script "run-container" script))) |
| 209 | 222 | ||
diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index f173b64c83e..4be5443083e 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm | |||
| @@ -99,7 +99,7 @@ Cargo.toml file present at its root." | |||
| 99 | (for-each | 99 | (for-each |
| 100 | (match-lambda | 100 | (match-lambda |
| 101 | ((name . path) | 101 | ((name . path) |
| 102 | (let* ((basepath (basename path)) | 102 | (let* ((basepath (strip-store-file-name path)) |
| 103 | (crate-dir (string-append vendor-dir "/" basepath))) | 103 | (crate-dir (string-append vendor-dir "/" basepath))) |
| 104 | (and (crate-src? path) | 104 | (and (crate-src? path) |
| 105 | ;; Gracefully handle duplicate inputs | 105 | ;; Gracefully handle duplicate inputs |
| @@ -168,9 +168,6 @@ directory = '" port) | |||
| 168 | (apply invoke `("cargo" "test" ,@cargo-test-flags)) | 168 | (apply invoke `("cargo" "test" ,@cargo-test-flags)) |
| 169 | #t)) | 169 | #t)) |
| 170 | 170 | ||
| 171 | (define (touch file-name) | ||
| 172 | (call-with-output-file file-name (const #t))) | ||
| 173 | |||
| 174 | (define* (install #:key inputs outputs skip-build? #:allow-other-keys) | 171 | (define* (install #:key inputs outputs skip-build? #:allow-other-keys) |
| 175 | "Install a given Cargo package." | 172 | "Install a given Cargo package." |
| 176 | (let* ((out (assoc-ref outputs "out"))) | 173 | (let* ((out (assoc-ref outputs "out"))) |
diff --git a/guix/docker.scm b/guix/docker.scm index 757bdeb4585..97ac6d982b4 100644 --- a/guix/docker.scm +++ b/guix/docker.scm | |||
| @@ -57,22 +57,36 @@ | |||
| 57 | (created . ,time) | 57 | (created . ,time) |
| 58 | (container_config . #nil))) | 58 | (container_config . #nil))) |
| 59 | 59 | ||
| 60 | (define (generate-tag path) | 60 | (define (canonicalize-repository-name name) |
| 61 | "Generate an image tag for the given PATH." | 61 | "\"Repository\" names are restricted to roughtl [a-z0-9_.-]. |
| 62 | (match (string-split (basename path) #\-) | 62 | Return a version of TAG that follows these rules." |
| 63 | ((hash name . rest) (string-append name ":" hash)))) | 63 | (define ascii-letters |
| 64 | (string->char-set "abcdefghijklmnopqrstuvwxyz")) | ||
| 64 | 65 | ||
| 65 | (define (manifest path id) | 66 | (define separators |
| 67 | (string->char-set "_-.")) | ||
| 68 | |||
| 69 | (define repo-char-set | ||
| 70 | (char-set-union char-set:digit ascii-letters separators)) | ||
| 71 | |||
| 72 | (string-map (lambda (chr) | ||
| 73 | (if (char-set-contains? repo-char-set chr) | ||
| 74 | chr | ||
| 75 | #\.)) | ||
| 76 | (string-trim (string-downcase name) separators))) | ||
| 77 | |||
| 78 | (define* (manifest path id #:optional (tag "guix")) | ||
| 66 | "Generate a simple image manifest." | 79 | "Generate a simple image manifest." |
| 67 | `#(((Config . "config.json") | 80 | (let ((tag (canonicalize-repository-name tag))) |
| 68 | (RepoTags . #(,(generate-tag path))) | 81 | `#(((Config . "config.json") |
| 69 | (Layers . #(,(string-append id "/layer.tar")))))) | 82 | (RepoTags . #(,(string-append tag ":latest"))) |
| 83 | (Layers . #(,(string-append id "/layer.tar"))))))) | ||
| 70 | 84 | ||
| 71 | ;; According to the specifications this is required for backwards | 85 | ;; According to the specifications this is required for backwards |
| 72 | ;; compatibility. It duplicates information provided by the manifest. | 86 | ;; compatibility. It duplicates information provided by the manifest. |
| 73 | (define (repositories path id) | 87 | (define* (repositories path id #:optional (tag "guix")) |
| 74 | "Generate a repositories file referencing PATH and the image ID." | 88 | "Generate a repositories file referencing PATH and the image ID." |
| 75 | `((,(generate-tag path) . ((latest . ,id))))) | 89 | `((,(canonicalize-repository-name tag) . ((latest . ,id))))) |
| 76 | 90 | ||
| 77 | ;; See https://github.com/opencontainers/image-spec/blob/master/config.md | 91 | ;; See https://github.com/opencontainers/image-spec/blob/master/config.md |
| 78 | (define* (config layer time arch #:key entry-point (environment '())) | 92 | (define* (config layer time arch #:key entry-point (environment '())) |
| @@ -112,6 +126,7 @@ | |||
| 112 | 126 | ||
| 113 | (define* (build-docker-image image paths prefix | 127 | (define* (build-docker-image image paths prefix |
| 114 | #:key | 128 | #:key |
| 129 | (repository "guix") | ||
| 115 | (extra-files '()) | 130 | (extra-files '()) |
| 116 | (transformations '()) | 131 | (transformations '()) |
| 117 | (system (utsname:machine (uname))) | 132 | (system (utsname:machine (uname))) |
| @@ -121,7 +136,9 @@ | |||
| 121 | compressor | 136 | compressor |
| 122 | (creation-time (current-time time-utc))) | 137 | (creation-time (current-time time-utc))) |
| 123 | "Write to IMAGE a Docker image archive containing the given PATHS. PREFIX | 138 | "Write to IMAGE a Docker image archive containing the given PATHS. PREFIX |
| 124 | must be a store path that is a prefix of any store paths in PATHS. | 139 | must be a store path that is a prefix of any store paths in PATHS. REPOSITORY |
| 140 | is a descriptive name that will show up in \"REPOSITORY\" column of the output | ||
| 141 | of \"docker images\". | ||
| 125 | 142 | ||
| 126 | When DATABASE is true, copy it to /var/guix/db in the image and create | 143 | When DATABASE is true, copy it to /var/guix/db in the image and create |
| 127 | /var/guix/gcroots and friends. | 144 | /var/guix/gcroots and friends. |
| @@ -243,10 +260,10 @@ SRFI-19 time-utc object, as the creation time in metadata." | |||
| 243 | #:entry-point entry-point)))) | 260 | #:entry-point entry-point)))) |
| 244 | (with-output-to-file "manifest.json" | 261 | (with-output-to-file "manifest.json" |
| 245 | (lambda () | 262 | (lambda () |
| 246 | (scm->json (manifest prefix id)))) | 263 | (scm->json (manifest prefix id repository)))) |
| 247 | (with-output-to-file "repositories" | 264 | (with-output-to-file "repositories" |
| 248 | (lambda () | 265 | (lambda () |
| 249 | (scm->json (repositories prefix id))))) | 266 | (scm->json (repositories prefix id repository))))) |
| 250 | 267 | ||
| 251 | (apply invoke "tar" "-cf" image "-C" directory | 268 | (apply invoke "tar" "-cf" image "-C" directory |
| 252 | `(,@%tar-determinism-options | 269 | `(,@%tar-determinism-options |
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index d63d44f6296..ef067704ad9 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm | |||
| @@ -62,7 +62,6 @@ | |||
| 62 | 62 | ||
| 63 | %gnu-updater | 63 | %gnu-updater |
| 64 | %gnu-ftp-updater | 64 | %gnu-ftp-updater |
| 65 | %kde-updater | ||
| 66 | %xorg-updater | 65 | %xorg-updater |
| 67 | %kernel.org-updater)) | 66 | %kernel.org-updater)) |
| 68 | 67 | ||
| @@ -230,12 +229,6 @@ network to check in GNU's database." | |||
| 230 | (or (assoc-ref (package-properties package) 'ftp-directory) | 229 | (or (assoc-ref (package-properties package) 'ftp-directory) |
| 231 | (string-append "/gnu/" name))))) | 230 | (string-append "/gnu/" name))))) |
| 232 | 231 | ||
| 233 | (define (sans-extension tarball) | ||
| 234 | "Return TARBALL without its .tar.* or .zip extension." | ||
| 235 | (let ((end (or (string-contains tarball ".tar") | ||
| 236 | (string-contains tarball ".zip")))) | ||
| 237 | (substring tarball 0 end))) | ||
| 238 | |||
| 239 | (define %tarball-rx | 232 | (define %tarball-rx |
| 240 | ;; The .zip extensions is notably used for freefont-ttf. | 233 | ;; The .zip extensions is notably used for freefont-ttf. |
| 241 | ;; The "-src" pattern is for "TeXmacs-1.0.7.9-src.tar.gz". | 234 | ;; The "-src" pattern is for "TeXmacs-1.0.7.9-src.tar.gz". |
| @@ -261,14 +254,15 @@ true." | |||
| 261 | (string-append project | 254 | (string-append project |
| 262 | "-src"))))))) | 255 | "-src"))))))) |
| 263 | (not (regexp-exec %alpha-tarball-rx file)) | 256 | (not (regexp-exec %alpha-tarball-rx file)) |
| 264 | (let ((s (sans-extension file))) | 257 | (let ((s (tarball-sans-extension file))) |
| 265 | (regexp-exec %package-name-rx s)))) | 258 | (regexp-exec %package-name-rx s)))) |
| 266 | 259 | ||
| 267 | (define (tarball->version tarball) | 260 | (define (tarball->version tarball) |
| 268 | "Return the version TARBALL corresponds to. TARBALL is a file name like | 261 | "Return the version TARBALL corresponds to. TARBALL is a file name like |
| 269 | \"coreutils-8.23.tar.xz\"." | 262 | \"coreutils-8.23.tar.xz\"." |
| 270 | (let-values (((name version) | 263 | (let-values (((name version) |
| 271 | (gnu-package-name->name+version (sans-extension tarball)))) | 264 | (gnu-package-name->name+version |
| 265 | (tarball-sans-extension tarball)))) | ||
| 272 | version)) | 266 | version)) |
| 273 | 267 | ||
| 274 | (define* (releases project | 268 | (define* (releases project |
| @@ -492,8 +486,9 @@ return the corresponding signature URL, or #f it signatures are unavailable." | |||
| 492 | (and (string=? url (basename url)) ;relative reference? | 486 | (and (string=? url (basename url)) ;relative reference? |
| 493 | (release-file? package url) | 487 | (release-file? package url) |
| 494 | (let-values (((name version) | 488 | (let-values (((name version) |
| 495 | (package-name->name+version (sans-extension url) | 489 | (package-name->name+version |
| 496 | #\-))) | 490 | (tarball-sans-extension url) |
| 491 | #\-))) | ||
| 497 | (upstream-source | 492 | (upstream-source |
| 498 | (package name) | 493 | (package name) |
| 499 | (version version) | 494 | (version version) |
| @@ -565,14 +560,16 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." | |||
| 565 | (release-file? name (basename file)))) | 560 | (release-file? name (basename file)))) |
| 566 | files))) | 561 | files))) |
| 567 | (match (sort relevant (lambda (file1 file2) | 562 | (match (sort relevant (lambda (file1 file2) |
| 568 | (version>? (sans-extension (basename file1)) | 563 | (version>? (tarball-sans-extension |
| 569 | (sans-extension (basename file2))))) | 564 | (basename file1)) |
| 565 | (tarball-sans-extension | ||
| 566 | (basename file2))))) | ||
| 570 | ((and tarballs (reference _ ...)) | 567 | ((and tarballs (reference _ ...)) |
| 571 | (let* ((version (tarball->version reference)) | 568 | (let* ((version (tarball->version reference)) |
| 572 | (tarballs (filter (lambda (file) | 569 | (tarballs (filter (lambda (file) |
| 573 | (string=? (sans-extension | 570 | (string=? (tarball-sans-extension |
| 574 | (basename file)) | 571 | (basename file)) |
| 575 | (sans-extension | 572 | (tarball-sans-extension |
| 576 | (basename reference)))) | 573 | (basename reference)))) |
| 577 | tarballs))) | 574 | tarballs))) |
| 578 | (upstream-source | 575 | (upstream-source |
| @@ -615,16 +612,6 @@ releases are on gnu.org." | |||
| 615 | (define gnu-hosted? | 612 | (define gnu-hosted? |
| 616 | (url-prefix-predicate "mirror://gnu/")) | 613 | (url-prefix-predicate "mirror://gnu/")) |
| 617 | 614 | ||
| 618 | (define (latest-kde-release package) | ||
| 619 | "Return the latest release of PACKAGE, the name of an KDE.org package." | ||
| 620 | (let ((uri (string->uri (origin-uri (package-source package))))) | ||
| 621 | (false-if-ftp-error | ||
| 622 | (latest-ftp-release | ||
| 623 | (package-upstream-name package) | ||
| 624 | #:server "ftp.mirrorservice.org" | ||
| 625 | #:directory (string-append "/sites/ftp.kde.org/pub/kde/" | ||
| 626 | (dirname (dirname (uri-path uri)))))))) | ||
| 627 | |||
| 628 | (define (latest-xorg-release package) | 615 | (define (latest-xorg-release package) |
| 629 | "Return the latest release of PACKAGE, the name of an X.org package." | 616 | "Return the latest release of PACKAGE, the name of an X.org package." |
| 630 | (let ((uri (string->uri (origin-uri (package-source package))))) | 617 | (let ((uri (string->uri (origin-uri (package-source package))))) |
| @@ -672,13 +659,6 @@ releases are on gnu.org." | |||
| 672 | (pure-gnu-package? package)))) | 659 | (pure-gnu-package? package)))) |
| 673 | (latest latest-release*))) | 660 | (latest latest-release*))) |
| 674 | 661 | ||
| 675 | (define %kde-updater | ||
| 676 | (upstream-updater | ||
| 677 | (name 'kde) | ||
| 678 | (description "Updater for KDE packages") | ||
| 679 | (pred (url-prefix-predicate "mirror://kde/")) | ||
| 680 | (latest latest-kde-release))) | ||
| 681 | |||
| 682 | (define %xorg-updater | 662 | (define %xorg-updater |
| 683 | (upstream-updater | 663 | (upstream-updater |
| 684 | (name 'xorg) | 664 | (name 'xorg) |
diff --git a/guix/import/cran.scm b/guix/import/cran.scm index 35caa3e463e..e47aff2b12b 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | cran-recursive-import | 49 | cran-recursive-import |
| 50 | %cran-updater | 50 | %cran-updater |
| 51 | %bioconductor-updater | 51 | %bioconductor-updater |
| 52 | %bioconductor-version | ||
| 52 | 53 | ||
| 53 | cran-package? | 54 | cran-package? |
| 54 | bioconductor-package? | 55 | bioconductor-package? |
diff --git a/guix/import/crate.scm b/guix/import/crate.scm index f6057dbf8bb..fd1974eae88 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2016 David Craven <david@craven.ch> | 2 | ;;; Copyright © 2016 David Craven <david@craven.ch> |
| 3 | ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> | 3 | ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> |
| 4 | ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> | ||
| 4 | ;;; | 5 | ;;; |
| 5 | ;;; This file is part of GNU Guix. | 6 | ;;; This file is part of GNU Guix. |
| 6 | ;;; | 7 | ;;; |
| @@ -181,9 +182,11 @@ and LICENSE." | |||
| 181 | ;; This regexp matches that. | 182 | ;; This regexp matches that. |
| 182 | (make-regexp "^(.*) OR (.*)$")) | 183 | (make-regexp "^(.*) OR (.*)$")) |
| 183 | 184 | ||
| 184 | (define (crate->guix-package crate-name) | 185 | (define* (crate->guix-package crate-name #:optional version) |
| 185 | "Fetch the metadata for CRATE-NAME from crates.io, and return the | 186 | "Fetch the metadata for CRATE-NAME from crates.io, and return the |
| 186 | `package' s-expression corresponding to that package, or #f on failure." | 187 | `package' s-expression corresponding to that package, or #f on failure. |
| 188 | When VERSION is specified, attempt to fetch that version; otherwise fetch the | ||
| 189 | latest version of CRATE-NAME." | ||
| 187 | (define (string->license string) | 190 | (define (string->license string) |
| 188 | (match (regexp-exec %dual-license-rx string) | 191 | (match (regexp-exec %dual-license-rx string) |
| 189 | (#f (list (spdx-string->license string))) | 192 | (#f (list (spdx-string->license string))) |
| @@ -196,12 +199,18 @@ and LICENSE." | |||
| 196 | (define crate | 199 | (define crate |
| 197 | (lookup-crate crate-name)) | 200 | (lookup-crate crate-name)) |
| 198 | 201 | ||
| 199 | (and crate | 202 | (define version-number |
| 200 | (let* ((version (find (lambda (version) | 203 | (or version |
| 201 | (string=? (crate-version-number version) | 204 | (crate-latest-version crate))) |
| 202 | (crate-latest-version crate))) | 205 | |
| 203 | (crate-versions crate))) | 206 | (define version* |
| 204 | (dependencies (crate-version-dependencies version)) | 207 | (find (lambda (version) |
| 208 | (string=? (crate-version-number version) | ||
| 209 | version-number)) | ||
| 210 | (crate-versions crate))) | ||
| 211 | |||
| 212 | (and crate version* | ||
| 213 | (let* ((dependencies (crate-version-dependencies version*)) | ||
| 205 | (dep-crates (filter normal-dependency? dependencies)) | 214 | (dep-crates (filter normal-dependency? dependencies)) |
| 206 | (dev-dep-crates (remove normal-dependency? dependencies)) | 215 | (dev-dep-crates (remove normal-dependency? dependencies)) |
| 207 | (cargo-inputs (sort (map crate-dependency-id dep-crates) | 216 | (cargo-inputs (sort (map crate-dependency-id dep-crates) |
| @@ -210,14 +219,14 @@ and LICENSE." | |||
| 210 | (sort (map crate-dependency-id dev-dep-crates) | 219 | (sort (map crate-dependency-id dev-dep-crates) |
| 211 | string-ci<?))) | 220 | string-ci<?))) |
| 212 | (make-crate-sexp #:name crate-name | 221 | (make-crate-sexp #:name crate-name |
| 213 | #:version (crate-version-number version) | 222 | #:version (crate-version-number version*) |
| 214 | #:cargo-inputs cargo-inputs | 223 | #:cargo-inputs cargo-inputs |
| 215 | #:cargo-development-inputs cargo-development-inputs | 224 | #:cargo-development-inputs cargo-development-inputs |
| 216 | #:home-page (or (crate-home-page crate) | 225 | #:home-page (or (crate-home-page crate) |
| 217 | (crate-repository crate)) | 226 | (crate-repository crate)) |
| 218 | #:synopsis (crate-description crate) | 227 | #:synopsis (crate-description crate) |
| 219 | #:description (crate-description crate) | 228 | #:description (crate-description crate) |
| 220 | #:license (and=> (crate-version-license version) | 229 | #:license (and=> (crate-version-license version*) |
| 221 | string->license))))) | 230 | string->license))))) |
| 222 | 231 | ||
| 223 | (define (guix-package->crate-name package) | 232 | (define (guix-package->crate-name package) |
diff --git a/guix/import/github.scm b/guix/import/github.scm index 55e1f72a422..55ea00a1116 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm | |||
| @@ -161,7 +161,7 @@ empty list." | |||
| 161 | url)) | 161 | url)) |
| 162 | 162 | ||
| 163 | (match (json-fetch (decorate release-url) #:headers headers) | 163 | (match (json-fetch (decorate release-url) #:headers headers) |
| 164 | (() | 164 | (#() |
| 165 | ;; We got the empty list, presumably because the user didn't use GitHub's | 165 | ;; We got the empty list, presumably because the user didn't use GitHub's |
| 166 | ;; "release" mechanism, but hopefully they did use Git tags. | 166 | ;; "release" mechanism, but hopefully they did use Git tags. |
| 167 | (json-fetch (decorate tag-url) #:headers headers)) | 167 | (json-fetch (decorate tag-url) #:headers headers)) |
diff --git a/guix/import/kde.scm b/guix/import/kde.scm new file mode 100644 index 00000000000..6873418d628 --- /dev/null +++ b/guix/import/kde.scm | |||
| @@ -0,0 +1,190 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | ||
| 2 | ;;; Copyright © 2016 David Craven <david@craven.ch> | ||
| 3 | ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> | ||
| 4 | ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> | ||
| 5 | ;;; | ||
| 6 | ;;; This file is part of GNU Guix. | ||
| 7 | ;;; | ||
| 8 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||
| 9 | ;;; under the terms of the GNU General Public License as published by | ||
| 10 | ;;; the Free Software Foundation; either version 3 of the License, or (at | ||
| 11 | ;;; your option) any later version. | ||
| 12 | ;;; | ||
| 13 | ;;; GNU Guix is distributed in the hope that it will be useful, but | ||
| 14 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | ;;; GNU General Public License for more details. | ||
| 17 | ;;; | ||
| 18 | ;;; You should have received a copy of the GNU General Public License | ||
| 19 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | ||
| 20 | |||
| 21 | (define-module (guix import kde) | ||
| 22 | #:use-module (guix http-client) | ||
| 23 | #:use-module (guix memoization) | ||
| 24 | #:use-module (guix gnu-maintenance) | ||
| 25 | #:use-module (guix packages) | ||
| 26 | #:use-module (guix upstream) | ||
| 27 | #:use-module (guix utils) | ||
| 28 | #:use-module (ice-9 match) | ||
| 29 | #:use-module (ice-9 rdelim) | ||
| 30 | #:use-module (ice-9 regex) | ||
| 31 | #:use-module (srfi srfi-11) | ||
| 32 | #:use-module (web uri) | ||
| 33 | |||
| 34 | #:export (%kde-updater)) | ||
| 35 | |||
| 36 | ;;; Commentary: | ||
| 37 | ;;; | ||
| 38 | ;;; This package provides not an actual importer but simply an updater for | ||
| 39 | ;;; KDE packages. It grabs available files from the 'ls-lR.bz2' file | ||
| 40 | ;;; available on download.kde.org. | ||
| 41 | ;;; | ||
| 42 | ;;; Code: | ||
| 43 | |||
| 44 | (define (tarball->version tarball) | ||
| 45 | "Return the version TARBALL corresponds to. TARBALL is a file name like | ||
| 46 | \"coreutils-8.23.tar.xz\"." | ||
| 47 | (let-values (((name version) | ||
| 48 | (gnu-package-name->name+version | ||
| 49 | (tarball-sans-extension tarball)))) | ||
| 50 | version)) | ||
| 51 | |||
| 52 | (define %kde-file-list-uri | ||
| 53 | ;; URI of the file list (ls -lR format) for download.kde.org. | ||
| 54 | (string->uri "https://download.kde.org/ls-lR.bz2")) | ||
| 55 | |||
| 56 | (define (download.kde.org-files) | ||
| 57 | ;;"Return the list of files available at download.kde.org." | ||
| 58 | |||
| 59 | (define (ls-lR-line->filename path line) | ||
| 60 | ;; Remove mode, blocks, user, group, size, date, time and one space, | ||
| 61 | ;; then prepend PATH | ||
| 62 | (regexp-substitute | ||
| 63 | #f (string-match "^(\\S+\\s+){6}\\S+\\s" line) path 'post)) | ||
| 64 | |||
| 65 | (define (canonicalize path) | ||
| 66 | (let* ((path (if (string-prefix? "/srv/archives/ftp/" path) | ||
| 67 | (string-drop path (string-length "/srv/archives/ftp")) | ||
| 68 | path)) | ||
| 69 | (path (if (string-suffix? ":" path) | ||
| 70 | (string-drop-right path 1) | ||
| 71 | path)) | ||
| 72 | (path (if (not (string-suffix? "/" path)) | ||
| 73 | (string-append path "/") | ||
| 74 | path))) | ||
| 75 | path)) | ||
| 76 | |||
| 77 | (define (write-cache input cache) | ||
| 78 | "Read bzipped ls-lR from INPUT, and write it as a list of file paths to | ||
| 79 | CACHE." | ||
| 80 | (call-with-decompressed-port 'bzip2 input | ||
| 81 | (lambda (input) | ||
| 82 | (let loop_dirs ((files '())) | ||
| 83 | ;; process a new directory block | ||
| 84 | (let ((path (read-line input))) | ||
| 85 | (if | ||
| 86 | (or (eof-object? path) (string= path "")) | ||
| 87 | (write (reverse files) cache) | ||
| 88 | (let loop_entries ((path (canonicalize path)) | ||
| 89 | (files files)) | ||
| 90 | ;; process entries within the directory block | ||
| 91 | (let ((line (read-line input))) | ||
| 92 | (cond | ||
| 93 | ((eof-object? line) | ||
| 94 | (write (reverse files) cache)) | ||
| 95 | ((string-prefix? "-" line) | ||
| 96 | ;; this is a file entry: prepend to FILES, then re-enter | ||
| 97 | ;; the loop for remaining entries | ||
| 98 | (loop_entries path | ||
| 99 | (cons (ls-lR-line->filename path line) files) | ||
| 100 | )) | ||
| 101 | ((not (string= line "")) | ||
| 102 | ;; this is a non-file entry: ignore it, just re-enter the | ||
| 103 | ;; loop for remaining entries | ||
| 104 | (loop_entries path files)) | ||
| 105 | ;; empty line: directory block end, re-enter the outer | ||
| 106 | ;; loop for the next block | ||
| 107 | (#t (loop_dirs files))))))))))) | ||
| 108 | |||
| 109 | (define (cache-miss uri) | ||
| 110 | (format (current-error-port) "fetching ~a...~%" (uri->string uri))) | ||
| 111 | |||
| 112 | (let* ((port (http-fetch/cached %kde-file-list-uri | ||
| 113 | #:ttl 3600 | ||
| 114 | #:write-cache write-cache | ||
| 115 | #:cache-miss cache-miss)) | ||
| 116 | (files (read port))) | ||
| 117 | (close-port port) | ||
| 118 | files)) | ||
| 119 | |||
| 120 | (define (uri->kde-path-pattern uri) | ||
| 121 | "Build a regexp from the package's URI suitable for matching the package | ||
| 122 | path version-agnostic. | ||
| 123 | |||
| 124 | Example: | ||
| 125 | Input: | ||
| 126 | mirror://kde//stable/frameworks/5.55/portingAids/kross-5.55.0.zip | ||
| 127 | Output: | ||
| 128 | //stable/frameworks/[^/]+/portingAids/ | ||
| 129 | " | ||
| 130 | |||
| 131 | (define version-regexp | ||
| 132 | ;; regexp for matching versions as used in the ld-lR file | ||
| 133 | (make-regexp | ||
| 134 | (string-join '("^([0-9]+\\.)+[0-9]+-?" ;; 5.12.90, 4.2.0-preview | ||
| 135 | "^[0-9]+$" ;; 20031002 | ||
| 136 | ".*-([0-9]+\\.)+[0-9]+$") ;; kdepim-4.6.1 | ||
| 137 | "|"))) | ||
| 138 | |||
| 139 | (define (version->pattern part) | ||
| 140 | ;; If a path element might be a version, replace it by a catch-all part | ||
| 141 | (if (regexp-exec version-regexp part) | ||
| 142 | "[^/]+" | ||
| 143 | part)) | ||
| 144 | |||
| 145 | (let* ((path (uri-path uri)) | ||
| 146 | (directory-parts (string-split (dirname path) #\/))) | ||
| 147 | (make-regexp | ||
| 148 | (string-append | ||
| 149 | (string-join (map version->pattern directory-parts) "/") | ||
| 150 | "/")))) | ||
| 151 | |||
| 152 | (define (latest-kde-release package) | ||
| 153 | "Return the latest release of PACKAGE, a KDE package, or #f if it could | ||
| 154 | not be determined." | ||
| 155 | (let* ((uri (string->uri (origin-uri (package-source package)))) | ||
| 156 | (path-rx (uri->kde-path-pattern uri)) | ||
| 157 | (name (package-upstream-name package)) | ||
| 158 | (files (download.kde.org-files)) | ||
| 159 | (relevant (filter (lambda (file) | ||
| 160 | (and (regexp-exec path-rx file) | ||
| 161 | (release-file? name (basename file)))) | ||
| 162 | files))) | ||
| 163 | (match (sort relevant (lambda (file1 file2) | ||
| 164 | (version>? (tarball-sans-extension | ||
| 165 | (basename file1)) | ||
| 166 | (tarball-sans-extension | ||
| 167 | (basename file2))))) | ||
| 168 | ((and tarballs (reference _ ...)) | ||
| 169 | (let* ((version (tarball->version reference)) | ||
| 170 | (tarballs (filter (lambda (file) | ||
| 171 | (string=? (tarball-sans-extension | ||
| 172 | (basename file)) | ||
| 173 | (tarball-sans-extension | ||
| 174 | (basename reference)))) | ||
| 175 | tarballs))) | ||
| 176 | (upstream-source | ||
| 177 | (package name) | ||
| 178 | (version version) | ||
| 179 | (urls (map (lambda (file) | ||
| 180 | (string-append "mirror://kde/" file)) | ||
| 181 | tarballs))))) | ||
| 182 | (() | ||
| 183 | #f)))) | ||
| 184 | |||
| 185 | (define %kde-updater | ||
| 186 | (upstream-updater | ||
| 187 | (name 'kde) | ||
| 188 | (description "Updater for KDE packages") | ||
| 189 | (pred (url-prefix-predicate "mirror://kde/")) | ||
| 190 | (latest latest-kde-release))) | ||
diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 252875eeabc..4694b6e7ef0 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm | |||
| @@ -212,10 +212,19 @@ with dashes." | |||
| 212 | (define (beautify-description description) | 212 | (define (beautify-description description) |
| 213 | "Improve the package DESCRIPTION by turning a beginning sentence fragment | 213 | "Improve the package DESCRIPTION by turning a beginning sentence fragment |
| 214 | into a proper sentence and by using two spaces between sentences." | 214 | into a proper sentence and by using two spaces between sentences." |
| 215 | (let ((cleaned (if (string-prefix? "A " description) | 215 | (let ((cleaned (cond |
| 216 | (string-append "This package provides a" | 216 | ((string-prefix? "A " description) |
| 217 | (substring description 1)) | 217 | (string-append "This package provides a" |
| 218 | description))) | 218 | (substring description 1))) |
| 219 | ((string-prefix? "Provides " description) | ||
| 220 | (string-append "This package provides" | ||
| 221 | (substring description | ||
| 222 | (string-length "Provides")))) | ||
| 223 | ((string-prefix? "Functions " description) | ||
| 224 | (string-append "This package provides functions" | ||
| 225 | (substring description | ||
| 226 | (string-length "Functions")))) | ||
| 227 | (else description)))) | ||
| 219 | ;; Use double spacing between sentences | 228 | ;; Use double spacing between sentences |
| 220 | (regexp-substitute/global #f "\\. \\b" | 229 | (regexp-substitute/global #f "\\. \\b" |
| 221 | cleaned 'pre ". " 'post))) | 230 | cleaned 'pre ". " 'post))) |
diff --git a/guix/packages.scm b/guix/packages.scm index 39ab28d8076..f2c94c7bc2a 100644 --- a/guix/packages.scm +++ b/guix/packages.scm | |||
| @@ -352,7 +352,7 @@ object." | |||
| 352 | 352 | ||
| 353 | (match (package-location package) | 353 | (match (package-location package) |
| 354 | (($ <location> file line column) | 354 | (($ <location> file line column) |
| 355 | (catch 'system | 355 | (catch 'system-error |
| 356 | (lambda () | 356 | (lambda () |
| 357 | ;; In general we want to keep relative file names for modules. | 357 | ;; In general we want to keep relative file names for modules. |
| 358 | (with-fluids ((%file-port-name-canonicalization 'relative)) | 358 | (with-fluids ((%file-port-name-canonicalization 'relative)) |
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index f7f7edda48f..cfe0a37c420 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm | |||
| @@ -463,6 +463,10 @@ host file systems to mount inside the container. If USER is not #f, each | |||
| 463 | target of USER-MAPPINGS will be re-written relative to '/home/USER', and USER | 463 | target of USER-MAPPINGS will be re-written relative to '/home/USER', and USER |
| 464 | will be used for the passwd entry. LINK-PROFILE? creates a symbolic link from | 464 | will be used for the passwd entry. LINK-PROFILE? creates a symbolic link from |
| 465 | ~/.guix-profile to the environment profile." | 465 | ~/.guix-profile to the environment profile." |
| 466 | (define (optional-mapping->fs mapping) | ||
| 467 | (and (file-exists? (file-system-mapping-source mapping)) | ||
| 468 | (file-system-mapping->bind-mount mapping))) | ||
| 469 | |||
| 466 | (mlet %store-monad ((reqs (inputs->requisites | 470 | (mlet %store-monad ((reqs (inputs->requisites |
| 467 | (list (direct-store-path bash) profile)))) | 471 | (list (direct-store-path bash) profile)))) |
| 468 | (return | 472 | (return |
| @@ -499,11 +503,6 @@ will be used for the passwd entry. LINK-PROFILE? creates a symbolic link from | |||
| 499 | (target cwd) | 503 | (target cwd) |
| 500 | (writable? #t))) | 504 | (writable? #t))) |
| 501 | '()))) | 505 | '()))) |
| 502 | ;; When in Rome, do as Nix build.cc does: Automagically | ||
| 503 | ;; map common network configuration files. | ||
| 504 | (if network? | ||
| 505 | %network-file-mappings | ||
| 506 | '()) | ||
| 507 | ;; Mappings for the union closure of all inputs. | 506 | ;; Mappings for the union closure of all inputs. |
| 508 | (map (lambda (dir) | 507 | (map (lambda (dir) |
| 509 | (file-system-mapping | 508 | (file-system-mapping |
| @@ -512,6 +511,10 @@ will be used for the passwd entry. LINK-PROFILE? creates a symbolic link from | |||
| 512 | (writable? #f))) | 511 | (writable? #f))) |
| 513 | reqs))) | 512 | reqs))) |
| 514 | (file-systems (append %container-file-systems | 513 | (file-systems (append %container-file-systems |
| 514 | (if network? | ||
| 515 | (filter-map optional-mapping->fs | ||
| 516 | %network-file-mappings) | ||
| 517 | '()) | ||
| 515 | (map file-system-mapping->bind-mount | 518 | (map file-system-mapping->bind-mount |
| 516 | mappings)))) | 519 | mappings)))) |
| 517 | (exit/status | 520 | (exit/status |
diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm index 31657326b60..3f20a2e1928 100644 --- a/guix/scripts/gc.scm +++ b/guix/scripts/gc.scm | |||
| @@ -57,6 +57,8 @@ Invoke the garbage collector.\n")) | |||
| 57 | (display (G_ " | 57 | (display (G_ " |
| 58 | --list-roots list the user's garbage collector roots")) | 58 | --list-roots list the user's garbage collector roots")) |
| 59 | (display (G_ " | 59 | (display (G_ " |
| 60 | --list-busy list store items used by running processes")) | ||
| 61 | (display (G_ " | ||
| 60 | --optimize optimize the store by deduplicating identical files")) | 62 | --optimize optimize the store by deduplicating identical files")) |
| 61 | (display (G_ " | 63 | (display (G_ " |
| 62 | --list-dead list dead paths")) | 64 | --list-dead list dead paths")) |
| @@ -174,6 +176,10 @@ is deprecated; use '-D'~%")) | |||
| 174 | (lambda (opt name arg result) | 176 | (lambda (opt name arg result) |
| 175 | (alist-cons 'action 'list-roots | 177 | (alist-cons 'action 'list-roots |
| 176 | (alist-delete 'action result)))) | 178 | (alist-delete 'action result)))) |
| 179 | (option '("list-busy") #f #f | ||
| 180 | (lambda (opt name arg result) | ||
| 181 | (alist-cons 'action 'list-busy | ||
| 182 | (alist-delete 'action result)))) | ||
| 177 | (option '("list-dead") #f #f | 183 | (option '("list-dead") #f #f |
| 178 | (lambda (opt name arg result) | 184 | (lambda (opt name arg result) |
| 179 | (alist-cons 'action 'list-dead | 185 | (alist-cons 'action 'list-dead |
| @@ -265,6 +271,12 @@ is deprecated; use '-D'~%")) | |||
| 265 | (newline)) | 271 | (newline)) |
| 266 | roots))) | 272 | roots))) |
| 267 | 273 | ||
| 274 | (define (list-busy) | ||
| 275 | ;; List store items used by running processes. | ||
| 276 | (for-each (lambda (item) | ||
| 277 | (display item) (newline)) | ||
| 278 | (busy-store-items))) | ||
| 279 | |||
| 268 | (with-error-handling | 280 | (with-error-handling |
| 269 | (let* ((opts (parse-options)) | 281 | (let* ((opts (parse-options)) |
| 270 | (store (open-connection)) | 282 | (store (open-connection)) |
| @@ -305,6 +317,9 @@ is deprecated; use '-D'~%")) | |||
| 305 | ((list-roots) | 317 | ((list-roots) |
| 306 | (assert-no-extra-arguments) | 318 | (assert-no-extra-arguments) |
| 307 | (list-roots)) | 319 | (list-roots)) |
| 320 | ((list-busy) | ||
| 321 | (assert-no-extra-arguments) | ||
| 322 | (list-busy)) | ||
| 308 | ((delete) | 323 | ((delete) |
| 309 | (delete-paths store (map direct-store-path paths))) | 324 | (delete-paths store (map direct-store-path paths))) |
| 310 | ((list-references) | 325 | ((list-references) |
diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm index cab9a4397bd..7ae86389114 100644 --- a/guix/scripts/import/crate.scm +++ b/guix/scripts/import/crate.scm | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | ;;; GNU Guix --- Functional package management for GNU | 2 | ;;; GNU Guix --- Functional package management for GNU |
| 3 | ;;; Copyright © 2014 David Thompson <davet@gnu.org> | 3 | ;;; Copyright © 2014 David Thompson <davet@gnu.org> |
| 4 | ;;; Copyright © 2016 David Craven <david@craven.ch> | 4 | ;;; Copyright © 2016 David Craven <david@craven.ch> |
| 5 | ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> | ||
| 5 | ;;; | 6 | ;;; |
| 6 | ;;; This file is part of GNU Guix. | 7 | ;;; This file is part of GNU Guix. |
| 7 | ;;; | 8 | ;;; |
| @@ -75,6 +76,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) | |||
| 75 | (alist-cons 'argument arg result)) | 76 | (alist-cons 'argument arg result)) |
| 76 | %default-options)) | 77 | %default-options)) |
| 77 | 78 | ||
| 79 | |||
| 78 | (let* ((opts (parse-options)) | 80 | (let* ((opts (parse-options)) |
| 79 | (args (filter-map (match-lambda | 81 | (args (filter-map (match-lambda |
| 80 | (('argument . value) | 82 | (('argument . value) |
| @@ -82,11 +84,16 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) | |||
| 82 | (_ #f)) | 84 | (_ #f)) |
| 83 | (reverse opts)))) | 85 | (reverse opts)))) |
| 84 | (match args | 86 | (match args |
| 85 | ((package-name) | 87 | ((spec) |
| 86 | (let ((sexp (crate->guix-package package-name))) | 88 | (define-values (name version) |
| 89 | (package-name->name+version spec)) | ||
| 90 | |||
| 91 | (let ((sexp (crate->guix-package name version))) | ||
| 87 | (unless sexp | 92 | (unless sexp |
| 88 | (leave (G_ "failed to download meta-data for package '~a'~%") | 93 | (leave (G_ "failed to download meta-data for package '~a'~%") |
| 89 | package-name)) | 94 | (if version |
| 95 | (string-append name "@" version) | ||
| 96 | name))) | ||
| 90 | sexp)) | 97 | sexp)) |
| 91 | (() | 98 | (() |
| 92 | (leave (G_ "too few arguments~%"))) | 99 | (leave (G_ "too few arguments~%"))) |
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index de5b3fc0ff3..920d6c01fe2 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm | |||
| @@ -516,6 +516,18 @@ the image." | |||
| 516 | `((directory "/tmp" ,(getuid) ,(getgid) #o1777) | 516 | `((directory "/tmp" ,(getuid) ,(getgid) #o1777) |
| 517 | ,@(append-map symlink->directives '#$symlinks))) | 517 | ,@(append-map symlink->directives '#$symlinks))) |
| 518 | 518 | ||
| 519 | (define tag | ||
| 520 | ;; Compute a meaningful "repository" name, which will show up in | ||
| 521 | ;; the output of "docker images". | ||
| 522 | (let ((manifest (profile-manifest #$profile))) | ||
| 523 | (let loop ((names (map manifest-entry-name | ||
| 524 | (manifest-entries manifest)))) | ||
| 525 | (define str (string-join names "-")) | ||
| 526 | (if (< (string-length str) 40) | ||
| 527 | str | ||
| 528 | (match names | ||
| 529 | ((_) str) | ||
| 530 | ((names ... _) (loop names))))))) ;drop one entry | ||
| 519 | 531 | ||
| 520 | (setenv "PATH" (string-append #$archiver "/bin")) | 532 | (setenv "PATH" (string-append #$archiver "/bin")) |
| 521 | 533 | ||
| @@ -524,6 +536,7 @@ the image." | |||
| 524 | (call-with-input-file "profile" | 536 | (call-with-input-file "profile" |
| 525 | read-reference-graph)) | 537 | read-reference-graph)) |
| 526 | #$profile | 538 | #$profile |
| 539 | #:repository tag | ||
| 527 | #:database #+database | 540 | #:database #+database |
| 528 | #:system (or #$target (utsname:machine (uname))) | 541 | #:system (or #$target (utsname:machine (uname))) |
| 529 | #:environment environment | 542 | #:environment environment |
| @@ -944,7 +957,8 @@ Create a bundle of PACKAGE.\n")) | |||
| 944 | (list (transform store package) output)) | 957 | (list (transform store package) output)) |
| 945 | ((? package? package) | 958 | ((? package? package) |
| 946 | (list (transform store package) "out"))) | 959 | (list (transform store package) "out"))) |
| 947 | (filter-map maybe-package-argument opts))) | 960 | (reverse |
| 961 | (filter-map maybe-package-argument opts)))) | ||
| 948 | (manifest-file (assoc-ref opts 'manifest))) | 962 | (manifest-file (assoc-ref opts 'manifest))) |
| 949 | (define properties | 963 | (define properties |
| 950 | (if (assoc-ref opts 'save-provenance?) | 964 | (if (assoc-ref opts 'save-provenance?) |
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 4591d0f3083..daf6fcf947d 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm | |||
| @@ -368,8 +368,16 @@ the latest known version of ~a (~a)~%") | |||
| 368 | (upstream-source-version source))))))) | 368 | (upstream-source-version source))))))) |
| 369 | (#f | 369 | (#f |
| 370 | (when warn? | 370 | (when warn? |
| 371 | (warn-no-updater package))))) | 371 | ;; Distinguish between "no updater" and "failing updater." |
| 372 | 372 | (match (lookup-updater package updaters) | |
| 373 | ((? upstream-updater? updater) | ||
| 374 | (warning (package-location package) | ||
| 375 | (G_ "'~a' updater failed to determine available \ | ||
| 376 | releases for ~a~%") | ||
| 377 | (upstream-updater-name updater) | ||
| 378 | (package-name package))) | ||
| 379 | (#f | ||
| 380 | (warn-no-updater package))))))) | ||
| 373 | 381 | ||
| 374 | 382 | ||
| 375 | ;;; | 383 | ;;; |
diff --git a/guix/store/roots.scm b/guix/store/roots.scm index 4f23ae34e84..58653507f86 100644 --- a/guix/store/roots.scm +++ b/guix/store/roots.scm | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> | 2 | ;;; Copyright © 2012, 2013, 2014, 2017, 2019 Ludovic Courtès <ludo@gnu.org> |
| 3 | ;;; | 3 | ;;; |
| 4 | ;;; This file is part of GNU Guix. | 4 | ;;; This file is part of GNU Guix. |
| 5 | ;;; | 5 | ;;; |
| @@ -26,9 +26,13 @@ | |||
| 26 | #:use-module (srfi srfi-26) | 26 | #:use-module (srfi srfi-26) |
| 27 | #:use-module (ice-9 match) | 27 | #:use-module (ice-9 match) |
| 28 | #:use-module (ice-9 regex) | 28 | #:use-module (ice-9 regex) |
| 29 | #:use-module (ice-9 rdelim) | ||
| 30 | #:use-module (ice-9 ftw) | ||
| 31 | #:use-module (rnrs io ports) | ||
| 29 | #:re-export (%gc-roots-directory) | 32 | #:re-export (%gc-roots-directory) |
| 30 | #:export (gc-roots | 33 | #:export (gc-roots |
| 31 | user-owned?)) | 34 | user-owned? |
| 35 | busy-store-items)) | ||
| 32 | 36 | ||
| 33 | ;;; Commentary: | 37 | ;;; Commentary: |
| 34 | ;;; | 38 | ;;; |
| @@ -118,3 +122,124 @@ are user-controlled symlinks stored anywhere on the file system." | |||
| 118 | 122 | ||
| 119 | (= (stat:uid stat) uid)) | 123 | (= (stat:uid stat) uid)) |
| 120 | (const #f))) | 124 | (const #f))) |
| 125 | |||
| 126 | |||
| 127 | ;;; | ||
| 128 | ;;; Listing "busy" store items: those referenced by currently running | ||
| 129 | ;;; processes. | ||
| 130 | ;;; | ||
| 131 | |||
| 132 | (define %proc-directory | ||
| 133 | ;; Mount point of Linuxish /proc file system. | ||
| 134 | "/proc") | ||
| 135 | |||
| 136 | (define (proc-file-roots dir file) | ||
| 137 | "Return a one-element list containing the file pointed to by DIR/FILE, | ||
| 138 | or the empty list." | ||
| 139 | (or (and=> (false-if-exception (readlink (string-append dir "/" file))) | ||
| 140 | list) | ||
| 141 | '())) | ||
| 142 | |||
| 143 | (define proc-exe-roots (cut proc-file-roots <> "exe")) | ||
| 144 | (define proc-cwd-roots (cut proc-file-roots <> "cwd")) | ||
| 145 | |||
| 146 | (define (proc-fd-roots dir) | ||
| 147 | "Return the list of store files referenced by DIR, which is a | ||
| 148 | /proc/XYZ directory." | ||
| 149 | (let ((dir (string-append dir "/fd"))) | ||
| 150 | (filter-map (lambda (file) | ||
| 151 | (let ((target (false-if-exception | ||
| 152 | (readlink (string-append dir "/" file))))) | ||
| 153 | (and target | ||
| 154 | (string-prefix? "/" target) | ||
| 155 | target))) | ||
| 156 | (or (scandir dir string->number) '())))) | ||
| 157 | |||
| 158 | (define (proc-maps-roots dir) | ||
| 159 | "Return the list of store files referenced by DIR, which is a | ||
| 160 | /proc/XYZ directory." | ||
| 161 | (define %file-mapping-line | ||
| 162 | (make-regexp "^.*[[:blank:]]+/([^ ]+)$")) | ||
| 163 | |||
| 164 | (call-with-input-file (string-append dir "/maps") | ||
| 165 | (lambda (maps) | ||
| 166 | (let loop ((line (read-line maps)) | ||
| 167 | (roots '())) | ||
| 168 | (cond ((eof-object? line) | ||
| 169 | roots) | ||
| 170 | ((regexp-exec %file-mapping-line line) | ||
| 171 | => | ||
| 172 | (lambda (match) | ||
| 173 | (let ((file (string-append "/" | ||
| 174 | (match:substring match 1)))) | ||
| 175 | (loop (read-line maps) | ||
| 176 | (cons file roots))))) | ||
| 177 | (else | ||
| 178 | (loop (read-line maps) roots))))))) | ||
| 179 | |||
| 180 | (define (proc-environ-roots dir) | ||
| 181 | "Return the list of store files referenced by DIR/environ, where DIR is a | ||
| 182 | /proc/XYZ directory." | ||
| 183 | (define split-on-nul | ||
| 184 | (cute string-tokenize <> | ||
| 185 | (char-set-complement (char-set #\nul)))) | ||
| 186 | |||
| 187 | (define (rhs-file-names str) | ||
| 188 | (let ((equal (string-index str #\=))) | ||
| 189 | (if equal | ||
| 190 | (let* ((str (substring str (+ 1 equal))) | ||
| 191 | (rx (string-append (regexp-quote %store-directory) | ||
| 192 | "/[0-9a-z]{32}-[a-zA-Z0-9\\._+-]+"))) | ||
| 193 | (map match:substring (list-matches rx str))) | ||
| 194 | '()))) | ||
| 195 | |||
| 196 | (define environ | ||
| 197 | (string-append dir "/environ")) | ||
| 198 | |||
| 199 | (append-map rhs-file-names | ||
| 200 | (split-on-nul | ||
| 201 | (call-with-input-file environ | ||
| 202 | get-string-all)))) | ||
| 203 | |||
| 204 | (define (referenced-files) | ||
| 205 | "Return the list of referenced store items." | ||
| 206 | (append-map (lambda (pid) | ||
| 207 | (let ((proc (string-append %proc-directory "/" pid))) | ||
| 208 | (catch 'system-error | ||
| 209 | (lambda () | ||
| 210 | (append (proc-exe-roots proc) | ||
| 211 | (proc-cwd-roots proc) | ||
| 212 | (proc-fd-roots proc) | ||
| 213 | (proc-maps-roots proc) | ||
| 214 | (proc-environ-roots proc))) | ||
| 215 | (lambda args | ||
| 216 | (let ((err (system-error-errno args))) | ||
| 217 | (if (or (= ENOENT err) ;TOCTTOU race | ||
| 218 | (= ESRCH err) ;ditto | ||
| 219 | (= EACCES err)) ;not running as root | ||
| 220 | '() | ||
| 221 | (apply throw args))))))) | ||
| 222 | (scandir %proc-directory string->number | ||
| 223 | (lambda (a b) | ||
| 224 | (< (string->number a) (string->number b)))))) | ||
| 225 | |||
| 226 | (define canonicalize-store-item | ||
| 227 | (let* ((store (string-append %store-directory "/")) | ||
| 228 | (prefix (string-length store))) | ||
| 229 | (lambda (file) | ||
| 230 | "Return #f if FILE is not a store item; otherwise, return the store file | ||
| 231 | name without any sub-directory components." | ||
| 232 | (and (string-prefix? store file) | ||
| 233 | (string-append store | ||
| 234 | (let ((base (string-drop file prefix))) | ||
| 235 | (match (string-index base #\/) | ||
| 236 | (#f base) | ||
| 237 | (slash (string-take base slash))))))))) | ||
| 238 | |||
| 239 | (define (busy-store-items) | ||
| 240 | "Return the list of store items used by the currently running processes. | ||
| 241 | |||
| 242 | This code should typically run as root; it allows the garbage collector to | ||
| 243 | determine which store items must not be deleted." | ||
| 244 | (delete-duplicates | ||
| 245 | (filter-map canonicalize-store-item (referenced-files)))) | ||
diff --git a/guix/upstream.scm b/guix/upstream.scm index d4f9c5bb451..aa47dab4b46 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm | |||
| @@ -245,18 +245,18 @@ correspond to the same version." | |||
| 245 | (define (lookup-updater package updaters) | 245 | (define (lookup-updater package updaters) |
| 246 | "Return an updater among UPDATERS that matches PACKAGE, or #f if none of | 246 | "Return an updater among UPDATERS that matches PACKAGE, or #f if none of |
| 247 | them matches." | 247 | them matches." |
| 248 | (any (match-lambda | 248 | (find (match-lambda |
| 249 | (($ <upstream-updater> name description pred latest) | 249 | (($ <upstream-updater> name description pred latest) |
| 250 | (and (pred package) latest))) | 250 | (pred package))) |
| 251 | updaters)) | 251 | updaters)) |
| 252 | 252 | ||
| 253 | (define (package-latest-release package updaters) | 253 | (define (package-latest-release package updaters) |
| 254 | "Return an upstream source to update PACKAGE, a <package> object, or #f if | 254 | "Return an upstream source to update PACKAGE, a <package> object, or #f if |
| 255 | none of UPDATERS matches PACKAGE. It is the caller's responsibility to ensure | 255 | none of UPDATERS matches PACKAGE. It is the caller's responsibility to ensure |
| 256 | that the returned source is newer than the current one." | 256 | that the returned source is newer than the current one." |
| 257 | (match (lookup-updater package updaters) | 257 | (match (lookup-updater package updaters) |
| 258 | ((? procedure? latest-release) | 258 | ((? upstream-updater? updater) |
| 259 | (latest-release package)) | 259 | ((upstream-updater-latest updater) package)) |
| 260 | (_ #f))) | 260 | (_ #f))) |
| 261 | 261 | ||
| 262 | (define (package-latest-release* package updaters) | 262 | (define (package-latest-release* package updaters) |
diff --git a/guix/utils.scm b/guix/utils.scm index f480c3291fb..1f99c5b3f55 100644 --- a/guix/utils.scm +++ b/guix/utils.scm | |||
| @@ -91,6 +91,7 @@ | |||
| 91 | arguments-from-environment-variable | 91 | arguments-from-environment-variable |
| 92 | file-extension | 92 | file-extension |
| 93 | file-sans-extension | 93 | file-sans-extension |
| 94 | tarball-sans-extension | ||
| 94 | compressed-file? | 95 | compressed-file? |
| 95 | switch-symlinks | 96 | switch-symlinks |
| 96 | call-with-temporary-output-file | 97 | call-with-temporary-output-file |
| @@ -578,6 +579,12 @@ minor version numbers from version-string." | |||
| 578 | (substring file 0 dot) | 579 | (substring file 0 dot) |
| 579 | file))) | 580 | file))) |
| 580 | 581 | ||
| 582 | (define (tarball-sans-extension tarball) | ||
| 583 | "Return TARBALL without its .tar.* or .zip extension." | ||
| 584 | (let ((end (or (string-contains tarball ".tar") | ||
| 585 | (string-contains tarball ".zip")))) | ||
| 586 | (substring tarball 0 end))) | ||
| 587 | |||
| 581 | (define (compressed-file? file) | 588 | (define (compressed-file? file) |
| 582 | "Return true if FILE denotes a compressed file." | 589 | "Return true if FILE denotes a compressed file." |
| 583 | (->bool (member (file-extension file) | 590 | (->bool (member (file-extension file) |
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index fe7bf79069c..ad53b814137 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc | |||
| @@ -614,9 +614,7 @@ HookInstance::HookInstance() | |||
| 614 | { | 614 | { |
| 615 | debug("starting build hook"); | 615 | debug("starting build hook"); |
| 616 | 616 | ||
| 617 | Path buildHook = getEnv("NIX_BUILD_HOOK"); | 617 | const Path &buildHook = settings.guixProgram; |
| 618 | if (string(buildHook, 0, 1) != "/") buildHook = settings.nixLibexecDir + "/nix/" + buildHook; | ||
| 619 | buildHook = canonPath(buildHook); | ||
| 620 | 618 | ||
| 621 | /* Create a pipe to get the output of the child. */ | 619 | /* Create a pipe to get the output of the child. */ |
| 622 | fromHook.create(); | 620 | fromHook.create(); |
| @@ -642,13 +640,14 @@ HookInstance::HookInstance() | |||
| 642 | if (dup2(builderOut.writeSide, 4) == -1) | 640 | if (dup2(builderOut.writeSide, 4) == -1) |
| 643 | throw SysError("dupping builder's stdout/stderr"); | 641 | throw SysError("dupping builder's stdout/stderr"); |
| 644 | 642 | ||
| 645 | execl(buildHook.c_str(), buildHook.c_str(), settings.thisSystem.c_str(), | 643 | execl(buildHook.c_str(), buildHook.c_str(), "offload", |
| 644 | settings.thisSystem.c_str(), | ||
| 646 | (format("%1%") % settings.maxSilentTime).str().c_str(), | 645 | (format("%1%") % settings.maxSilentTime).str().c_str(), |
| 647 | (format("%1%") % settings.printBuildTrace).str().c_str(), | 646 | (format("%1%") % settings.printBuildTrace).str().c_str(), |
| 648 | (format("%1%") % settings.buildTimeout).str().c_str(), | 647 | (format("%1%") % settings.buildTimeout).str().c_str(), |
| 649 | NULL); | 648 | NULL); |
| 650 | 649 | ||
| 651 | throw SysError(format("executing `%1%'") % buildHook); | 650 | throw SysError(format("executing `%1% offload'") % buildHook); |
| 652 | }); | 651 | }); |
| 653 | 652 | ||
| 654 | pid.setSeparatePG(true); | 653 | pid.setSeparatePG(true); |
| @@ -1581,7 +1580,7 @@ void DerivationGoal::buildDone() | |||
| 1581 | 1580 | ||
| 1582 | HookReply DerivationGoal::tryBuildHook() | 1581 | HookReply DerivationGoal::tryBuildHook() |
| 1583 | { | 1582 | { |
| 1584 | if (!settings.useBuildHook || getEnv("NIX_BUILD_HOOK") == "") return rpDecline; | 1583 | if (!settings.useBuildHook) return rpDecline; |
| 1585 | 1584 | ||
| 1586 | if (!worker.hook) | 1585 | if (!worker.hook) |
| 1587 | worker.hook = std::shared_ptr<HookInstance>(new HookInstance); | 1586 | worker.hook = std::shared_ptr<HookInstance>(new HookInstance); |
| @@ -2864,15 +2863,6 @@ private: | |||
| 2864 | /* The store path that should be realised through a substitute. */ | 2863 | /* The store path that should be realised through a substitute. */ |
| 2865 | Path storePath; | 2864 | Path storePath; |
| 2866 | 2865 | ||
| 2867 | /* The remaining substituters. */ | ||
| 2868 | Paths subs; | ||
| 2869 | |||
| 2870 | /* The current substituter. */ | ||
| 2871 | Path sub; | ||
| 2872 | |||
| 2873 | /* Whether any substituter can realise this path */ | ||
| 2874 | bool hasSubstitute; | ||
| 2875 | |||
| 2876 | /* Path info returned by the substituter's query info operation. */ | 2866 | /* Path info returned by the substituter's query info operation. */ |
| 2877 | SubstitutablePathInfo info; | 2867 | SubstitutablePathInfo info; |
| 2878 | 2868 | ||
| @@ -2898,6 +2888,8 @@ private: | |||
| 2898 | typedef void (SubstitutionGoal::*GoalState)(); | 2888 | typedef void (SubstitutionGoal::*GoalState)(); |
| 2899 | GoalState state; | 2889 | GoalState state; |
| 2900 | 2890 | ||
| 2891 | void tryNext(); | ||
| 2892 | |||
| 2901 | public: | 2893 | public: |
| 2902 | SubstitutionGoal(const Path & storePath, Worker & worker, bool repair = false); | 2894 | SubstitutionGoal(const Path & storePath, Worker & worker, bool repair = false); |
| 2903 | ~SubstitutionGoal(); | 2895 | ~SubstitutionGoal(); |
| @@ -2915,7 +2907,6 @@ public: | |||
| 2915 | 2907 | ||
| 2916 | /* The states. */ | 2908 | /* The states. */ |
| 2917 | void init(); | 2909 | void init(); |
| 2918 | void tryNext(); | ||
| 2919 | void gotInfo(); | 2910 | void gotInfo(); |
| 2920 | void referencesValid(); | 2911 | void referencesValid(); |
| 2921 | void tryToRun(); | 2912 | void tryToRun(); |
| @@ -2931,7 +2922,6 @@ public: | |||
| 2931 | 2922 | ||
| 2932 | SubstitutionGoal::SubstitutionGoal(const Path & storePath, Worker & worker, bool repair) | 2923 | SubstitutionGoal::SubstitutionGoal(const Path & storePath, Worker & worker, bool repair) |
| 2933 | : Goal(worker) | 2924 | : Goal(worker) |
| 2934 | , hasSubstitute(false) | ||
| 2935 | , repair(repair) | 2925 | , repair(repair) |
| 2936 | { | 2926 | { |
| 2937 | this->storePath = storePath; | 2927 | this->storePath = storePath; |
| @@ -2981,37 +2971,31 @@ void SubstitutionGoal::init() | |||
| 2981 | if (settings.readOnlyMode) | 2971 | if (settings.readOnlyMode) |
| 2982 | throw Error(format("cannot substitute path `%1%' - no write access to the store") % storePath); | 2972 | throw Error(format("cannot substitute path `%1%' - no write access to the store") % storePath); |
| 2983 | 2973 | ||
| 2984 | subs = settings.substituters; | ||
| 2985 | |||
| 2986 | tryNext(); | 2974 | tryNext(); |
| 2987 | } | 2975 | } |
| 2988 | 2976 | ||
| 2989 | 2977 | ||
| 2990 | void SubstitutionGoal::tryNext() | 2978 | void SubstitutionGoal::tryNext() |
| 2991 | { | 2979 | { |
| 2992 | trace("trying next substituter"); | 2980 | trace("trying substituter"); |
| 2993 | 2981 | ||
| 2994 | if (subs.size() == 0) { | 2982 | SubstitutablePathInfos infos; |
| 2983 | PathSet dummy(singleton<PathSet>(storePath)); | ||
| 2984 | worker.store.querySubstitutablePathInfos(dummy, infos); | ||
| 2985 | SubstitutablePathInfos::iterator k = infos.find(storePath); | ||
| 2986 | if (k == infos.end()) { | ||
| 2995 | /* None left. Terminate this goal and let someone else deal | 2987 | /* None left. Terminate this goal and let someone else deal |
| 2996 | with it. */ | 2988 | with it. */ |
| 2997 | debug(format("path `%1%' is required, but there is no substituter that can build it") % storePath); | 2989 | debug(format("path `%1%' is required, but there is no substituter that can build it") % storePath); |
| 2998 | /* Hack: don't indicate failure if there were no substituters. | 2990 | /* Hack: don't indicate failure if there were no substituters. |
| 2999 | In that case the calling derivation should just do a | 2991 | In that case the calling derivation should just do a |
| 3000 | build. */ | 2992 | build. */ |
| 3001 | amDone(hasSubstitute ? ecFailed : ecNoSubstituters); | 2993 | amDone(ecNoSubstituters); |
| 3002 | return; | 2994 | return; |
| 3003 | } | 2995 | } |
| 3004 | 2996 | ||
| 3005 | sub = subs.front(); | 2997 | /* Found a substitute. */ |
| 3006 | subs.pop_front(); | ||
| 3007 | |||
| 3008 | SubstitutablePathInfos infos; | ||
| 3009 | PathSet dummy(singleton<PathSet>(storePath)); | ||
| 3010 | worker.store.querySubstitutablePathInfos(sub, dummy, infos); | ||
| 3011 | SubstitutablePathInfos::iterator k = infos.find(storePath); | ||
| 3012 | if (k == infos.end()) { tryNext(); return; } | ||
| 3013 | info = k->second; | 2998 | info = k->second; |
| 3014 | hasSubstitute = true; | ||
| 3015 | 2999 | ||
| 3016 | /* To maintain the closure invariant, we first have to realise the | 3000 | /* To maintain the closure invariant, we first have to realise the |
| 3017 | paths referenced by this one. */ | 3001 | paths referenced by this one. */ |
| @@ -3099,7 +3083,8 @@ void SubstitutionGoal::tryToRun() | |||
| 3099 | 3083 | ||
| 3100 | /* Fill in the arguments. */ | 3084 | /* Fill in the arguments. */ |
| 3101 | Strings args; | 3085 | Strings args; |
| 3102 | args.push_back(baseNameOf(sub)); | 3086 | args.push_back("guix"); |
| 3087 | args.push_back("substitute"); | ||
| 3103 | args.push_back("--substitute"); | 3088 | args.push_back("--substitute"); |
| 3104 | args.push_back(storePath); | 3089 | args.push_back(storePath); |
| 3105 | args.push_back(destPath); | 3090 | args.push_back(destPath); |
| @@ -3112,9 +3097,9 @@ void SubstitutionGoal::tryToRun() | |||
| 3112 | if (dup2(outPipe.writeSide, STDOUT_FILENO) == -1) | 3097 | if (dup2(outPipe.writeSide, STDOUT_FILENO) == -1) |
| 3113 | throw SysError("cannot dup output pipe into stdout"); | 3098 | throw SysError("cannot dup output pipe into stdout"); |
| 3114 | 3099 | ||
| 3115 | execv(sub.c_str(), stringsToCharPtrs(args).data()); | 3100 | execv(settings.guixProgram.c_str(), stringsToCharPtrs(args).data()); |
| 3116 | 3101 | ||
| 3117 | throw SysError(format("executing `%1%'") % sub); | 3102 | throw SysError(format("executing `%1% substitute'") % settings.guixProgram); |
| 3118 | }); | 3103 | }); |
| 3119 | 3104 | ||
| 3120 | pid.setSeparatePG(true); | 3105 | pid.setSeparatePG(true); |
| @@ -3127,7 +3112,9 @@ void SubstitutionGoal::tryToRun() | |||
| 3127 | state = &SubstitutionGoal::finished; | 3112 | state = &SubstitutionGoal::finished; |
| 3128 | 3113 | ||
| 3129 | if (settings.printBuildTrace) | 3114 | if (settings.printBuildTrace) |
| 3130 | printMsg(lvlError, format("@ substituter-started %1% %2%") % storePath % sub); | 3115 | /* The second element in the message used to be the name of the |
| 3116 | substituter but we're left with only one. */ | ||
| 3117 | printMsg(lvlError, format("@ substituter-started %1% substitute") % storePath); | ||
| 3131 | } | 3118 | } |
| 3132 | 3119 | ||
| 3133 | 3120 | ||
| @@ -3193,9 +3180,7 @@ void SubstitutionGoal::finished() | |||
| 3193 | % storePath % status % e.msg()); | 3180 | % storePath % status % e.msg()); |
| 3194 | } | 3181 | } |
| 3195 | 3182 | ||
| 3196 | /* Try the next substitute. */ | 3183 | amDone(ecFailed); |
| 3197 | state = &SubstitutionGoal::tryNext; | ||
| 3198 | worker.wakeUp(shared_from_this()); | ||
| 3199 | return; | 3184 | return; |
| 3200 | } | 3185 | } |
| 3201 | 3186 | ||
diff --git a/nix/libstore/builtins.cc b/nix/libstore/builtins.cc index f7c7d424847..4111ac47609 100644 --- a/nix/libstore/builtins.cc +++ b/nix/libstore/builtins.cc | |||
| @@ -39,7 +39,7 @@ static void builtinDownload(const Derivation &drv, | |||
| 39 | 39 | ||
| 40 | const char *const argv[] = | 40 | const char *const argv[] = |
| 41 | { | 41 | { |
| 42 | "download", drvPath.c_str(), output.c_str(), NULL | 42 | "guix", "perform-download", drvPath.c_str(), output.c_str(), NULL |
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | /* Tell the script what the store file name is, so that | 45 | /* Tell the script what the store file name is, so that |
| @@ -50,7 +50,7 @@ static void builtinDownload(const Derivation &drv, | |||
| 50 | /* Tell it about options such as "print-extended-build-trace". */ | 50 | /* Tell it about options such as "print-extended-build-trace". */ |
| 51 | setenv("_NIX_OPTIONS", settings.pack().c_str(), 1); | 51 | setenv("_NIX_OPTIONS", settings.pack().c_str(), 1); |
| 52 | 52 | ||
| 53 | const string program = settings.nixLibexecDir + "/download"; | 53 | const string program = settings.guixProgram; |
| 54 | execv(program.c_str(), (char *const *) argv); | 54 | execv(program.c_str(), (char *const *) argv); |
| 55 | 55 | ||
| 56 | throw SysError(format("failed to run download program '%1%'") % program); | 56 | throw SysError(format("failed to run download program '%1%'") % program); |
diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 46171e116cc..c4669966686 100644 --- a/nix/libstore/gc.cc +++ b/nix/libstore/gc.cc | |||
| @@ -339,14 +339,11 @@ Roots LocalStore::findRoots() | |||
| 339 | 339 | ||
| 340 | static void addAdditionalRoots(StoreAPI & store, PathSet & roots) | 340 | static void addAdditionalRoots(StoreAPI & store, PathSet & roots) |
| 341 | { | 341 | { |
| 342 | Path rootFinder = getEnv("NIX_ROOT_FINDER", | 342 | debug(format("executing `%1% gc --list-busy' to find additional roots") |
| 343 | settings.nixLibexecDir + "/list-runtime-roots"); | 343 | % settings.guixProgram); |
| 344 | 344 | ||
| 345 | if (rootFinder.empty()) return; | 345 | const Strings args = { "gc", "--list-busy" }; |
| 346 | 346 | string result = runProgram(settings.guixProgram, false, args); | |
| 347 | debug(format("executing `%1%' to find additional roots") % rootFinder); | ||
| 348 | |||
| 349 | string result = runProgram(rootFinder); | ||
| 350 | 347 | ||
| 351 | StringSet paths = tokenizeString<StringSet>(result, "\n"); | 348 | StringSet paths = tokenizeString<StringSet>(result, "\n"); |
| 352 | 349 | ||
diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc index 6df20e7a52c..0cc001fbe4e 100644 --- a/nix/libstore/globals.cc +++ b/nix/libstore/globals.cc | |||
| @@ -70,9 +70,9 @@ void Settings::processEnvironment() | |||
| 70 | nixStateDir = canonPath(getEnv("GUIX_STATE_DIRECTORY", NIX_STATE_DIR)); | 70 | nixStateDir = canonPath(getEnv("GUIX_STATE_DIRECTORY", NIX_STATE_DIR)); |
| 71 | nixDBPath = getEnv("GUIX_DATABASE_DIRECTORY", nixStateDir + "/db"); | 71 | nixDBPath = getEnv("GUIX_DATABASE_DIRECTORY", nixStateDir + "/db"); |
| 72 | nixConfDir = canonPath(getEnv("GUIX_CONFIGURATION_DIRECTORY", GUIX_CONFIGURATION_DIRECTORY)); | 72 | nixConfDir = canonPath(getEnv("GUIX_CONFIGURATION_DIRECTORY", GUIX_CONFIGURATION_DIRECTORY)); |
| 73 | nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR)); | ||
| 74 | nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR)); | 73 | nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR)); |
| 75 | nixDaemonSocketFile = canonPath(nixStateDir + DEFAULT_SOCKET_PATH); | 74 | nixDaemonSocketFile = canonPath(nixStateDir + DEFAULT_SOCKET_PATH); |
| 75 | guixProgram = canonPath(getEnv("GUIX", nixBinDir + "/guix")); | ||
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | 78 | ||
diff --git a/nix/libstore/globals.hh b/nix/libstore/globals.hh index b073f724b67..27616a22834 100644 --- a/nix/libstore/globals.hh +++ b/nix/libstore/globals.hh | |||
| @@ -57,15 +57,15 @@ struct Settings { | |||
| 57 | /* The directory where configuration files are stored. */ | 57 | /* The directory where configuration files are stored. */ |
| 58 | Path nixConfDir; | 58 | Path nixConfDir; |
| 59 | 59 | ||
| 60 | /* The directory where internal helper programs are stored. */ | ||
| 61 | Path nixLibexecDir; | ||
| 62 | |||
| 63 | /* The directory where the main programs are stored. */ | 60 | /* The directory where the main programs are stored. */ |
| 64 | Path nixBinDir; | 61 | Path nixBinDir; |
| 65 | 62 | ||
| 66 | /* File name of the socket the daemon listens to. */ | 63 | /* File name of the socket the daemon listens to. */ |
| 67 | Path nixDaemonSocketFile; | 64 | Path nixDaemonSocketFile; |
| 68 | 65 | ||
| 66 | /* Absolute file name of the 'guix' program. */ | ||
| 67 | Path guixProgram; | ||
| 68 | |||
| 69 | /* Whether to keep temporary directories of failed builds. */ | 69 | /* Whether to keep temporary directories of failed builds. */ |
| 70 | bool keepFailed; | 70 | bool keepFailed; |
| 71 | 71 | ||
| @@ -112,11 +112,6 @@ struct Settings { | |||
| 112 | means infinity. */ | 112 | means infinity. */ |
| 113 | time_t buildTimeout; | 113 | time_t buildTimeout; |
| 114 | 114 | ||
| 115 | /* The substituters. There are programs that can somehow realise | ||
| 116 | a store path without building, e.g., by downloading it or | ||
| 117 | copying it from a CD. */ | ||
| 118 | Paths substituters; | ||
| 119 | |||
| 120 | /* Whether to use build hooks (for distributed builds). Sometimes | 115 | /* Whether to use build hooks (for distributed builds). Sometimes |
| 121 | users want to disable this from the command-line. */ | 116 | users want to disable this from the command-line. */ |
| 122 | bool useBuildHook; | 117 | bool useBuildHook; |
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc index 892d9300b15..3b08492c643 100644 --- a/nix/libstore/local-store.cc +++ b/nix/libstore/local-store.cc | |||
| @@ -184,13 +184,15 @@ LocalStore::LocalStore(bool reserveSpace) | |||
| 184 | LocalStore::~LocalStore() | 184 | LocalStore::~LocalStore() |
| 185 | { | 185 | { |
| 186 | try { | 186 | try { |
| 187 | foreach (RunningSubstituters::iterator, i, runningSubstituters) { | 187 | if (runningSubstituter) { |
| 188 | if (i->second.disabled) continue; | 188 | RunningSubstituter &i = *runningSubstituter; |
| 189 | i->second.to.close(); | 189 | if (!i.disabled) { |
| 190 | i->second.from.close(); | 190 | i.to.close(); |
| 191 | i->second.error.close(); | 191 | i.from.close(); |
| 192 | if (i->second.pid != -1) | 192 | i.error.close(); |
| 193 | i->second.pid.wait(true); | 193 | if (i.pid != -1) |
| 194 | i.pid.wait(true); | ||
| 195 | } | ||
| 194 | } | 196 | } |
| 195 | } catch (...) { | 197 | } catch (...) { |
| 196 | ignoreException(); | 198 | ignoreException(); |
| @@ -808,11 +810,12 @@ void LocalStore::setSubstituterEnv() | |||
| 808 | } | 810 | } |
| 809 | 811 | ||
| 810 | 812 | ||
| 811 | void LocalStore::startSubstituter(const Path & substituter, RunningSubstituter & run) | 813 | void LocalStore::startSubstituter(RunningSubstituter & run) |
| 812 | { | 814 | { |
| 813 | if (run.disabled || run.pid != -1) return; | 815 | if (run.disabled || run.pid != -1) return; |
| 814 | 816 | ||
| 815 | debug(format("starting substituter program `%1%'") % substituter); | 817 | debug(format("starting substituter program `%1% substitute'") |
| 818 | % settings.guixProgram); | ||
| 816 | 819 | ||
| 817 | Pipe toPipe, fromPipe, errorPipe; | 820 | Pipe toPipe, fromPipe, errorPipe; |
| 818 | 821 | ||
| @@ -829,11 +832,10 @@ void LocalStore::startSubstituter(const Path & substituter, RunningSubstituter & | |||
| 829 | throw SysError("dupping stdout"); | 832 | throw SysError("dupping stdout"); |
| 830 | if (dup2(errorPipe.writeSide, STDERR_FILENO) == -1) | 833 | if (dup2(errorPipe.writeSide, STDERR_FILENO) == -1) |
| 831 | throw SysError("dupping stderr"); | 834 | throw SysError("dupping stderr"); |
| 832 | execl(substituter.c_str(), substituter.c_str(), "--query", NULL); | 835 | execl(settings.guixProgram.c_str(), "guix", "substitute", "--query", NULL); |
| 833 | throw SysError(format("executing `%1%'") % substituter); | 836 | throw SysError(format("executing `%1%'") % settings.guixProgram); |
| 834 | }); | 837 | }); |
| 835 | 838 | ||
| 836 | run.program = baseNameOf(substituter); | ||
| 837 | run.to = toPipe.writeSide.borrow(); | 839 | run.to = toPipe.writeSide.borrow(); |
| 838 | run.from = run.fromBuf.fd = fromPipe.readSide.borrow(); | 840 | run.from = run.fromBuf.fd = fromPipe.readSide.borrow(); |
| 839 | run.error = errorPipe.readSide.borrow(); | 841 | run.error = errorPipe.readSide.borrow(); |
| @@ -889,13 +891,14 @@ string LocalStore::getLineFromSubstituter(RunningSubstituter & run) | |||
| 889 | if (errno == EINTR) continue; | 891 | if (errno == EINTR) continue; |
| 890 | throw SysError("reading from substituter's stderr"); | 892 | throw SysError("reading from substituter's stderr"); |
| 891 | } | 893 | } |
| 892 | if (n == 0) throw EndOfFile(format("substituter `%1%' died unexpectedly") % run.program); | 894 | if (n == 0) throw EndOfFile(format("`%1% substitute' died unexpectedly") |
| 895 | % settings.guixProgram); | ||
| 893 | err.append(buf, n); | 896 | err.append(buf, n); |
| 894 | string::size_type p; | 897 | string::size_type p; |
| 895 | while (((p = err.find('\n')) != string::npos) | 898 | while (((p = err.find('\n')) != string::npos) |
| 896 | || ((p = err.find('\r')) != string::npos)) { | 899 | || ((p = err.find('\r')) != string::npos)) { |
| 897 | string thing(err, 0, p + 1); | 900 | string thing(err, 0, p + 1); |
| 898 | writeToStderr(run.program + ": " + thing); | 901 | writeToStderr("substitute: " + thing); |
| 899 | err = string(err, p + 1); | 902 | err = string(err, p + 1); |
| 900 | } | 903 | } |
| 901 | } | 904 | } |
| @@ -907,7 +910,7 @@ string LocalStore::getLineFromSubstituter(RunningSubstituter & run) | |||
| 907 | unsigned char c; | 910 | unsigned char c; |
| 908 | run.fromBuf(&c, 1); | 911 | run.fromBuf(&c, 1); |
| 909 | if (c == '\n') { | 912 | if (c == '\n') { |
| 910 | if (!err.empty()) printMsg(lvlError, run.program + ": " + err); | 913 | if (!err.empty()) printMsg(lvlError, "substitute: " + err); |
| 911 | return res; | 914 | return res; |
| 912 | } | 915 | } |
| 913 | res += c; | 916 | res += c; |
| @@ -930,38 +933,47 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet & paths) | |||
| 930 | { | 933 | { |
| 931 | PathSet res; | 934 | PathSet res; |
| 932 | 935 | ||
| 933 | if (!settings.useSubstitutes) return res; | 936 | if (!settings.useSubstitutes || paths.empty()) return res; |
| 934 | 937 | ||
| 935 | foreach (Paths::iterator, i, settings.substituters) { | 938 | if (!runningSubstituter) { |
| 936 | if (res.size() == paths.size()) break; | 939 | std::unique_ptr<RunningSubstituter>fresh(new RunningSubstituter); |
| 937 | RunningSubstituter & run(runningSubstituters[*i]); | 940 | runningSubstituter.swap(fresh); |
| 938 | startSubstituter(*i, run); | 941 | } |
| 939 | if (run.disabled) continue; | 942 | |
| 940 | string s = "have "; | 943 | RunningSubstituter & run = *runningSubstituter; |
| 941 | foreach (PathSet::const_iterator, j, paths) | 944 | startSubstituter(run); |
| 942 | if (res.find(*j) == res.end()) { s += *j; s += " "; } | 945 | |
| 943 | writeLine(run.to, s); | 946 | if (!run.disabled) { |
| 944 | while (true) { | 947 | string s = "have "; |
| 945 | /* FIXME: we only read stderr when an error occurs, so | 948 | foreach (PathSet::const_iterator, j, paths) |
| 946 | substituters should only write (short) messages to | 949 | if (res.find(*j) == res.end()) { s += *j; s += " "; } |
| 947 | stderr when they fail. I.e. they shouldn't write debug | 950 | writeLine(run.to, s); |
| 948 | output. */ | 951 | while (true) { |
| 949 | Path path = getLineFromSubstituter(run); | 952 | /* FIXME: we only read stderr when an error occurs, so |
| 950 | if (path == "") break; | 953 | substituters should only write (short) messages to |
| 951 | res.insert(path); | 954 | stderr when they fail. I.e. they shouldn't write debug |
| 952 | } | 955 | output. */ |
| 956 | Path path = getLineFromSubstituter(run); | ||
| 957 | if (path == "") break; | ||
| 958 | res.insert(path); | ||
| 959 | } | ||
| 953 | } | 960 | } |
| 961 | |||
| 954 | return res; | 962 | return res; |
| 955 | } | 963 | } |
| 956 | 964 | ||
| 957 | 965 | ||
| 958 | void LocalStore::querySubstitutablePathInfos(const Path & substituter, | 966 | void LocalStore::querySubstitutablePathInfos(PathSet & paths, SubstitutablePathInfos & infos) |
| 959 | PathSet & paths, SubstitutablePathInfos & infos) | ||
| 960 | { | 967 | { |
| 961 | if (!settings.useSubstitutes) return; | 968 | if (!settings.useSubstitutes) return; |
| 962 | 969 | ||
| 963 | RunningSubstituter & run(runningSubstituters[substituter]); | 970 | if (!runningSubstituter) { |
| 964 | startSubstituter(substituter, run); | 971 | std::unique_ptr<RunningSubstituter>fresh(new RunningSubstituter); |
| 972 | runningSubstituter.swap(fresh); | ||
| 973 | } | ||
| 974 | |||
| 975 | RunningSubstituter & run = *runningSubstituter; | ||
| 976 | startSubstituter(run); | ||
| 965 | if (run.disabled) return; | 977 | if (run.disabled) return; |
| 966 | 978 | ||
| 967 | string s = "info "; | 979 | string s = "info "; |
| @@ -993,10 +1005,9 @@ void LocalStore::querySubstitutablePathInfos(const Path & substituter, | |||
| 993 | void LocalStore::querySubstitutablePathInfos(const PathSet & paths, | 1005 | void LocalStore::querySubstitutablePathInfos(const PathSet & paths, |
| 994 | SubstitutablePathInfos & infos) | 1006 | SubstitutablePathInfos & infos) |
| 995 | { | 1007 | { |
| 996 | PathSet todo = paths; | 1008 | if (!paths.empty()) { |
| 997 | foreach (Paths::iterator, i, settings.substituters) { | 1009 | PathSet todo = paths; |
| 998 | if (todo.empty()) break; | 1010 | querySubstitutablePathInfos(todo, infos); |
| 999 | querySubstitutablePathInfos(*i, todo, infos); | ||
| 1000 | } | 1011 | } |
| 1001 | } | 1012 | } |
| 1002 | 1013 | ||
| @@ -1224,8 +1235,9 @@ static void checkSecrecy(const Path & path) | |||
| 1224 | 1235 | ||
| 1225 | static std::string runAuthenticationProgram(const Strings & args) | 1236 | static std::string runAuthenticationProgram(const Strings & args) |
| 1226 | { | 1237 | { |
| 1227 | return runProgram(settings.nixLibexecDir + "/authenticate", | 1238 | Strings fullArgs = { "authenticate" }; |
| 1228 | false, args); | 1239 | fullArgs.insert(fullArgs.end(), args.begin(), args.end()); // append |
| 1240 | return runProgram(settings.guixProgram, false, fullArgs); | ||
| 1229 | } | 1241 | } |
| 1230 | 1242 | ||
| 1231 | void LocalStore::exportPath(const Path & path, bool sign, | 1243 | void LocalStore::exportPath(const Path & path, bool sign, |
diff --git a/nix/libstore/local-store.hh b/nix/libstore/local-store.hh index 4e6b4cfc1df..4113fafcb5d 100644 --- a/nix/libstore/local-store.hh +++ b/nix/libstore/local-store.hh | |||
| @@ -40,7 +40,6 @@ struct OptimiseStats | |||
| 40 | 40 | ||
| 41 | struct RunningSubstituter | 41 | struct RunningSubstituter |
| 42 | { | 42 | { |
| 43 | Path program; | ||
| 44 | Pid pid; | 43 | Pid pid; |
| 45 | AutoCloseFD to, from, error; | 44 | AutoCloseFD to, from, error; |
| 46 | FdSource fromBuf; | 45 | FdSource fromBuf; |
| @@ -52,8 +51,8 @@ struct RunningSubstituter | |||
| 52 | class LocalStore : public StoreAPI | 51 | class LocalStore : public StoreAPI |
| 53 | { | 52 | { |
| 54 | private: | 53 | private: |
| 55 | typedef std::map<Path, RunningSubstituter> RunningSubstituters; | 54 | /* The currently running substituter or empty. */ |
| 56 | RunningSubstituters runningSubstituters; | 55 | std::unique_ptr<RunningSubstituter> runningSubstituter; |
| 57 | 56 | ||
| 58 | Path linksDir; | 57 | Path linksDir; |
| 59 | 58 | ||
| @@ -93,8 +92,8 @@ public: | |||
| 93 | 92 | ||
| 94 | PathSet querySubstitutablePaths(const PathSet & paths); | 93 | PathSet querySubstitutablePaths(const PathSet & paths); |
| 95 | 94 | ||
| 96 | void querySubstitutablePathInfos(const Path & substituter, | 95 | void querySubstitutablePathInfos(PathSet & paths, |
| 97 | PathSet & paths, SubstitutablePathInfos & infos); | 96 | SubstitutablePathInfos & infos); |
| 98 | 97 | ||
| 99 | void querySubstitutablePathInfos(const PathSet & paths, | 98 | void querySubstitutablePathInfos(const PathSet & paths, |
| 100 | SubstitutablePathInfos & infos); | 99 | SubstitutablePathInfos & infos); |
| @@ -261,8 +260,7 @@ private: | |||
| 261 | 260 | ||
| 262 | void removeUnusedLinks(const GCState & state); | 261 | void removeUnusedLinks(const GCState & state); |
| 263 | 262 | ||
| 264 | void startSubstituter(const Path & substituter, | 263 | void startSubstituter(RunningSubstituter & runningSubstituter); |
| 265 | RunningSubstituter & runningSubstituter); | ||
| 266 | 264 | ||
| 267 | string getLineFromSubstituter(RunningSubstituter & run); | 265 | string getLineFromSubstituter(RunningSubstituter & run); |
| 268 | 266 | ||
diff --git a/nix/local.mk b/nix/local.mk index 6d7e60e9fb2..dc5a8398b2e 100644 --- a/nix/local.mk +++ b/nix/local.mk | |||
| @@ -110,7 +110,6 @@ libstore_a_CPPFLAGS = \ | |||
| 110 | -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \ | 110 | -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \ |
| 111 | -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \ | 111 | -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \ |
| 112 | -DGUIX_CONFIGURATION_DIRECTORY=\"$(sysconfdir)/guix\" \ | 112 | -DGUIX_CONFIGURATION_DIRECTORY=\"$(sysconfdir)/guix\" \ |
| 113 | -DNIX_LIBEXEC_DIR=\"$(libexecdir)/guix\" \ | ||
| 114 | -DNIX_BIN_DIR=\"$(bindir)\" \ | 113 | -DNIX_BIN_DIR=\"$(bindir)\" \ |
| 115 | -DDEFAULT_CHROOT_DIRS="\"\"" | 114 | -DDEFAULT_CHROOT_DIRS="\"\"" |
| 116 | 115 | ||
| @@ -154,21 +153,6 @@ noinst_HEADERS = \ | |||
| 154 | (lambda (in) \ | 153 | (lambda (in) \ |
| 155 | (write (get-string-all in) out)))))" | 154 | (write (get-string-all in) out)))))" |
| 156 | 155 | ||
| 157 | nodist_pkglibexec_SCRIPTS = \ | ||
| 158 | %D%/scripts/list-runtime-roots \ | ||
| 159 | %D%/scripts/substitute \ | ||
| 160 | %D%/scripts/download | ||
| 161 | |||
| 162 | if BUILD_DAEMON_OFFLOAD | ||
| 163 | |||
| 164 | nodist_pkglibexec_SCRIPTS += \ | ||
| 165 | %D%/scripts/offload | ||
| 166 | |||
| 167 | endif BUILD_DAEMON_OFFLOAD | ||
| 168 | |||
| 169 | nodist_pkglibexec_SCRIPTS += \ | ||
| 170 | %D%/scripts/authenticate | ||
| 171 | |||
| 172 | # The '.service' files for systemd. | 156 | # The '.service' files for systemd. |
| 173 | systemdservicedir = $(libdir)/systemd/system | 157 | systemdservicedir = $(libdir)/systemd/system |
| 174 | nodist_systemdservice_DATA = etc/guix-daemon.service etc/guix-publish.service | 158 | nodist_systemdservice_DATA = etc/guix-daemon.service etc/guix-publish.service |
diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index f47d1426128..6f9c404c8df 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc | |||
| @@ -466,23 +466,15 @@ main (int argc, char *argv[]) | |||
| 466 | { | 466 | { |
| 467 | settings.processEnvironment (); | 467 | settings.processEnvironment (); |
| 468 | 468 | ||
| 469 | /* Use our substituter by default. */ | 469 | /* Enable substitutes by default. */ |
| 470 | settings.substituters.clear (); | ||
| 471 | settings.set ("build-use-substitutes", "true"); | 470 | settings.set ("build-use-substitutes", "true"); |
| 472 | 471 | ||
| 473 | /* Use our substitute server by default. */ | 472 | /* Use our substitute server by default. */ |
| 474 | settings.set ("substitute-urls", GUIX_SUBSTITUTE_URLS); | 473 | settings.set ("substitute-urls", GUIX_SUBSTITUTE_URLS); |
| 475 | 474 | ||
| 476 | #ifdef HAVE_DAEMON_OFFLOAD_HOOK | 475 | #ifdef HAVE_DAEMON_OFFLOAD_HOOK |
| 477 | /* Use our build hook for distributed builds by default. */ | 476 | /* Use 'guix offload' for distributed builds by default. */ |
| 478 | settings.useBuildHook = true; | 477 | settings.useBuildHook = true; |
| 479 | if (getenv ("NIX_BUILD_HOOK") == NULL) | ||
| 480 | { | ||
| 481 | std::string build_hook; | ||
| 482 | |||
| 483 | build_hook = settings.nixLibexecDir + "/offload"; | ||
| 484 | setenv ("NIX_BUILD_HOOK", build_hook.c_str (), 1); | ||
| 485 | } | ||
| 486 | #else | 478 | #else |
| 487 | /* We are not installing any build hook, so disable it. */ | 479 | /* We are not installing any build hook, so disable it. */ |
| 488 | settings.useBuildHook = false; | 480 | settings.useBuildHook = false; |
| @@ -497,14 +489,6 @@ main (int argc, char *argv[]) | |||
| 497 | printMsg(lvlDebug, | 489 | printMsg(lvlDebug, |
| 498 | format ("build log compression: %1%") % settings.logCompression); | 490 | format ("build log compression: %1%") % settings.logCompression); |
| 499 | 491 | ||
| 500 | if (settings.useSubstitutes) | ||
| 501 | settings.substituters.push_back (settings.nixLibexecDir | ||
| 502 | + "/substitute"); | ||
| 503 | else | ||
| 504 | /* Clear the substituter list to make sure nothing ever gets | ||
| 505 | substituted, regardless of the client's settings. */ | ||
| 506 | settings.substituters.clear (); | ||
| 507 | |||
| 508 | if (geteuid () == 0 && settings.buildUsersGroup.empty ()) | 492 | if (geteuid () == 0 && settings.buildUsersGroup.empty ()) |
| 509 | fprintf (stderr, _("warning: daemon is running as root, so \ | 493 | fprintf (stderr, _("warning: daemon is running as root, so \ |
| 510 | using `--build-users-group' is highly recommended\n")); | 494 | using `--build-users-group' is highly recommended\n")); |
diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc index 56137701a10..1163a249d18 100644 --- a/nix/nix-daemon/nix-daemon.cc +++ b/nix/nix-daemon/nix-daemon.cc | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | #include "config.h" | ||
| 1 | #include "shared.hh" | 2 | #include "shared.hh" |
| 2 | #include "local-store.hh" | 3 | #include "local-store.hh" |
| 3 | #include "util.hh" | 4 | #include "util.hh" |
| @@ -580,8 +581,14 @@ static void performOp(bool trusted, unsigned int clientVersion, | |||
| 580 | settings.set("build-max-silent-time", std::to_string(readInt(from))); | 581 | settings.set("build-max-silent-time", std::to_string(readInt(from))); |
| 581 | } | 582 | } |
| 582 | 583 | ||
| 583 | if (GET_PROTOCOL_MINOR(clientVersion) >= 2) | 584 | if (GET_PROTOCOL_MINOR(clientVersion) >= 2) { |
| 585 | #ifdef HAVE_DAEMON_OFFLOAD_HOOK | ||
| 584 | settings.useBuildHook = readInt(from) != 0; | 586 | settings.useBuildHook = readInt(from) != 0; |
| 587 | #else | ||
| 588 | readInt(from); // ignore the user's setting | ||
| 589 | #endif | ||
| 590 | } | ||
| 591 | |||
| 585 | if (GET_PROTOCOL_MINOR(clientVersion) >= 4) { | 592 | if (GET_PROTOCOL_MINOR(clientVersion) >= 4) { |
| 586 | settings.buildVerbosity = (Verbosity) readInt(from); | 593 | settings.buildVerbosity = (Verbosity) readInt(from); |
| 587 | logType = (LogType) readInt(from); | 594 | logType = (LogType) readInt(from); |
| @@ -590,8 +597,12 @@ static void performOp(bool trusted, unsigned int clientVersion, | |||
| 590 | if (GET_PROTOCOL_MINOR(clientVersion) >= 6 | 597 | if (GET_PROTOCOL_MINOR(clientVersion) >= 6 |
| 591 | && GET_PROTOCOL_MINOR(clientVersion) < 0x61) | 598 | && GET_PROTOCOL_MINOR(clientVersion) < 0x61) |
| 592 | settings.set("build-cores", std::to_string(readInt(from))); | 599 | settings.set("build-cores", std::to_string(readInt(from))); |
| 593 | if (GET_PROTOCOL_MINOR(clientVersion) >= 10) | 600 | if (GET_PROTOCOL_MINOR(clientVersion) >= 10) { |
| 594 | settings.set("build-use-substitutes", readInt(from) ? "true" : "false"); | 601 | if (settings.useSubstitutes) |
| 602 | settings.set("build-use-substitutes", readInt(from) ? "true" : "false"); | ||
| 603 | else | ||
| 604 | readInt(from); // substitutes remain disabled | ||
| 605 | } | ||
| 595 | if (GET_PROTOCOL_MINOR(clientVersion) >= 12) { | 606 | if (GET_PROTOCOL_MINOR(clientVersion) >= 12) { |
| 596 | unsigned int n = readInt(from); | 607 | unsigned int n = readInt(from); |
| 597 | for (unsigned int i = 0; i < n; i++) { | 608 | for (unsigned int i = 0; i < n; i++) { |
diff --git a/nix/scripts/authenticate.in b/nix/scripts/authenticate.in deleted file mode 100644 index 5ce57915f02..00000000000 --- a/nix/scripts/authenticate.in +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | #!@SHELL@ | ||
| 2 | # A shorthand for "guix authenticate", for use by the daemon. | ||
| 3 | |||
| 4 | if test "x$GUIX_UNINSTALLED" = "x" | ||
| 5 | then | ||
| 6 | prefix="@prefix@" | ||
| 7 | exec_prefix="@exec_prefix@" | ||
| 8 | exec "@bindir@/guix" authenticate "$@" | ||
| 9 | else | ||
| 10 | exec guix authenticate "$@" | ||
| 11 | fi | ||
diff --git a/nix/scripts/download.in b/nix/scripts/download.in deleted file mode 100644 index 4d7088a9933..00000000000 --- a/nix/scripts/download.in +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | #!@SHELL@ | ||
| 2 | # A shorthand for "guix perform-download", for use by the daemon. | ||
| 3 | |||
| 4 | if test "x$GUIX_UNINSTALLED" = "x" | ||
| 5 | then | ||
| 6 | prefix="@prefix@" | ||
| 7 | exec_prefix="@exec_prefix@" | ||
| 8 | exec "@bindir@/guix" perform-download "$@" | ||
| 9 | else | ||
| 10 | exec guix perform-download "$@" | ||
| 11 | fi | ||
diff --git a/nix/scripts/list-runtime-roots.in b/nix/scripts/list-runtime-roots.in deleted file mode 100644 index 5f2660fb5e6..00000000000 --- a/nix/scripts/list-runtime-roots.in +++ /dev/null | |||
| @@ -1,147 +0,0 @@ | |||
| 1 | #!@GUILE@ -ds | ||
| 2 | !# | ||
| 3 | ;;; GNU Guix --- Functional package management for GNU | ||
| 4 | ;;; Copyright © 2012, 2013, 2014, 2017 Ludovic Courtès <ludo@gnu.org> | ||
| 5 | ;;; | ||
| 6 | ;;; This file is part of GNU Guix. | ||
| 7 | ;;; | ||
| 8 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||
| 9 | ;;; under the terms of the GNU General Public License as published by | ||
| 10 | ;;; the Free Software Foundation; either version 3 of the License, or (at | ||
| 11 | ;;; your option) any later version. | ||
| 12 | ;;; | ||
| 13 | ;;; GNU Guix is distributed in the hope that it will be useful, but | ||
| 14 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | ;;; GNU General Public License for more details. | ||
| 17 | ;;; | ||
| 18 | ;;; You should have received a copy of the GNU General Public License | ||
| 19 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | ||
| 20 | |||
| 21 | ;;; | ||
| 22 | ;;; List files being used at run time; these files are garbage collector | ||
| 23 | ;;; roots. This is equivalent to `find-runtime-roots.pl' in Nix. | ||
| 24 | ;;; | ||
| 25 | |||
| 26 | (use-modules (ice-9 ftw) | ||
| 27 | (ice-9 regex) | ||
| 28 | (ice-9 rdelim) | ||
| 29 | (ice-9 match) | ||
| 30 | (srfi srfi-1) | ||
| 31 | (srfi srfi-26) | ||
| 32 | (rnrs io ports)) | ||
| 33 | |||
| 34 | (define %proc-directory | ||
| 35 | ;; Mount point of Linuxish /proc file system. | ||
| 36 | "/proc") | ||
| 37 | |||
| 38 | (define %store-directory | ||
| 39 | (or (getenv "NIX_STORE_DIR") | ||
| 40 | "@storedir@")) | ||
| 41 | |||
| 42 | (define (proc-file-roots dir file) | ||
| 43 | "Return a one-element list containing the file pointed to by DIR/FILE, | ||
| 44 | or the empty list." | ||
| 45 | (or (and=> (false-if-exception (readlink (string-append dir "/" file))) | ||
| 46 | list) | ||
| 47 | '())) | ||
| 48 | |||
| 49 | (define proc-exe-roots (cut proc-file-roots <> "exe")) | ||
| 50 | (define proc-cwd-roots (cut proc-file-roots <> "cwd")) | ||
| 51 | |||
| 52 | (define (proc-fd-roots dir) | ||
| 53 | "Return the list of store files referenced by DIR, which is a | ||
| 54 | /proc/XYZ directory." | ||
| 55 | (let ((dir (string-append dir "/fd"))) | ||
| 56 | (filter-map (lambda (file) | ||
| 57 | (let ((target (false-if-exception | ||
| 58 | (readlink (string-append dir "/" file))))) | ||
| 59 | (and target | ||
| 60 | (string-prefix? "/" target) | ||
| 61 | target))) | ||
| 62 | (or (scandir dir string->number) '())))) | ||
| 63 | |||
| 64 | (define (proc-maps-roots dir) | ||
| 65 | "Return the list of store files referenced by DIR, which is a | ||
| 66 | /proc/XYZ directory." | ||
| 67 | (define %file-mapping-line | ||
| 68 | (make-regexp "^.*[[:blank:]]+/([^ ]+)$")) | ||
| 69 | |||
| 70 | (call-with-input-file (string-append dir "/maps") | ||
| 71 | (lambda (maps) | ||
| 72 | (let loop ((line (read-line maps)) | ||
| 73 | (roots '())) | ||
| 74 | (cond ((eof-object? line) | ||
| 75 | roots) | ||
| 76 | ((regexp-exec %file-mapping-line line) | ||
| 77 | => | ||
| 78 | (lambda (match) | ||
| 79 | (let ((file (string-append "/" | ||
| 80 | (match:substring match 1)))) | ||
| 81 | (loop (read-line maps) | ||
| 82 | (cons file roots))))) | ||
| 83 | (else | ||
| 84 | (loop (read-line maps) roots))))))) | ||
| 85 | |||
| 86 | (define (proc-environ-roots dir) | ||
| 87 | "Return the list of store files referenced by DIR/environ, where DIR is a | ||
| 88 | /proc/XYZ directory." | ||
| 89 | (define split-on-nul | ||
| 90 | (cute string-tokenize <> | ||
| 91 | (char-set-complement (char-set #\nul)))) | ||
| 92 | |||
| 93 | (define (rhs-file-names str) | ||
| 94 | (let ((equal (string-index str #\=))) | ||
| 95 | (if equal | ||
| 96 | (let* ((str (substring str (+ 1 equal))) | ||
| 97 | (rx (string-append (regexp-quote %store-directory) | ||
| 98 | "/[0-9a-z]{32}-[a-zA-Z0-9\\._+-]+"))) | ||
| 99 | (map match:substring (list-matches rx str))) | ||
| 100 | '()))) | ||
| 101 | |||
| 102 | (define environ | ||
| 103 | (string-append dir "/environ")) | ||
| 104 | |||
| 105 | (append-map rhs-file-names | ||
| 106 | (split-on-nul | ||
| 107 | (call-with-input-file environ | ||
| 108 | get-string-all)))) | ||
| 109 | |||
| 110 | (define (referenced-files) | ||
| 111 | "Return the list of referenced store items." | ||
| 112 | (append-map (lambda (pid) | ||
| 113 | (let ((proc (string-append %proc-directory "/" pid))) | ||
| 114 | (catch 'system-error | ||
| 115 | (lambda () | ||
| 116 | (append (proc-exe-roots proc) | ||
| 117 | (proc-cwd-roots proc) | ||
| 118 | (proc-fd-roots proc) | ||
| 119 | (proc-maps-roots proc) | ||
| 120 | (proc-environ-roots proc))) | ||
| 121 | (lambda args | ||
| 122 | (let ((err (system-error-errno args))) | ||
| 123 | (if (or (= ENOENT err) ;TOCTTOU race | ||
| 124 | (= ESRCH err) ;ditto | ||
| 125 | (= EACCES err)) ;not running as root | ||
| 126 | '() | ||
| 127 | (apply throw args))))))) | ||
| 128 | (scandir %proc-directory string->number | ||
| 129 | (lambda (a b) | ||
| 130 | (< (string->number a) (string->number b)))))) | ||
| 131 | |||
| 132 | (define canonicalize-store-item | ||
| 133 | (let* ((store (string-append %store-directory "/")) | ||
| 134 | (prefix (string-length store))) | ||
| 135 | (lambda (file) | ||
| 136 | "Return #f if FILE is not a store item; otherwise, return the store file | ||
| 137 | name without any sub-directory components." | ||
| 138 | (and (string-prefix? store file) | ||
| 139 | (string-append store | ||
| 140 | (let ((base (string-drop file prefix))) | ||
| 141 | (match (string-index base #\/) | ||
| 142 | (#f base) | ||
| 143 | (slash (string-take base slash))))))))) | ||
| 144 | |||
| 145 | (for-each (cut simple-format #t "~a~%" <>) | ||
| 146 | (delete-duplicates | ||
| 147 | (filter-map canonicalize-store-item (referenced-files)))) | ||
diff --git a/nix/scripts/offload.in b/nix/scripts/offload.in deleted file mode 100644 index 50faed31c0b..00000000000 --- a/nix/scripts/offload.in +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | #!@SHELL@ | ||
| 2 | # A shorthand for "guix offload", for use by the daemon. | ||
| 3 | |||
| 4 | if test "x$GUIX_UNINSTALLED" = "x" | ||
| 5 | then | ||
| 6 | prefix="@prefix@" | ||
| 7 | exec_prefix="@exec_prefix@" | ||
| 8 | exec "@bindir@/guix" offload "$@" | ||
| 9 | else | ||
| 10 | exec guix offload "$@" | ||
| 11 | fi | ||
diff --git a/nix/scripts/substitute.in b/nix/scripts/substitute.in deleted file mode 100644 index 5a2eeb7259a..00000000000 --- a/nix/scripts/substitute.in +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | #!@SHELL@ | ||
| 2 | # A shorthand for "guix substitute", for use by the daemon. | ||
| 3 | |||
| 4 | if test "x$GUIX_UNINSTALLED" = "x" | ||
| 5 | then | ||
| 6 | prefix="@prefix@" | ||
| 7 | exec_prefix="@exec_prefix@" | ||
| 8 | exec "@bindir@/guix" substitute "$@" | ||
| 9 | else | ||
| 10 | exec guix substitute "$@" | ||
| 11 | fi | ||
diff --git a/tests/networking.scm b/tests/networking.scm new file mode 100644 index 00000000000..439cca5ffc9 --- /dev/null +++ b/tests/networking.scm | |||
| @@ -0,0 +1,113 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | ||
| 2 | ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||
| 3 | ;;; | ||
| 4 | ;;; This file is part of GNU Guix. | ||
| 5 | ;;; | ||
| 6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||
| 7 | ;;; under the terms of the GNU General Public License as published by | ||
| 8 | ;;; the Free Software Foundation; either version 3 of the License, or (at | ||
| 9 | ;;; your option) any later version. | ||
| 10 | ;;; | ||
| 11 | ;;; GNU Guix is distributed in the hope that it will be useful, but | ||
| 12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | ;;; GNU General Public License for more details. | ||
| 15 | ;;; | ||
| 16 | ;;; You should have received a copy of the GNU General Public License | ||
| 17 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | ||
| 18 | |||
| 19 | (define-module (tests networking) | ||
| 20 | #:use-module (ice-9 regex) | ||
| 21 | #:use-module (gnu services networking) | ||
| 22 | #:use-module (srfi srfi-64)) | ||
| 23 | |||
| 24 | ;;; Tests for the (gnu services networking) module. | ||
| 25 | |||
| 26 | (test-begin "networking") | ||
| 27 | |||
| 28 | |||
| 29 | ;;; | ||
| 30 | ;;; NTP. | ||
| 31 | ;;; | ||
| 32 | |||
| 33 | (define ntp-server->string (@@ (gnu services networking) ntp-server->string)) | ||
| 34 | |||
| 35 | (define %ntp-server-sample | ||
| 36 | (ntp-server | ||
| 37 | (type 'server) | ||
| 38 | (address "some.ntp.server.org") | ||
| 39 | (options `(iburst (version 3) (maxpoll 16) prefer)))) | ||
| 40 | |||
| 41 | (test-equal "ntp-server->string" | ||
| 42 | (ntp-server->string %ntp-server-sample) | ||
| 43 | "server some.ntp.server.org iburst version 3 maxpoll 16 prefer") | ||
| 44 | |||
| 45 | (test-equal "ntp configuration servers deprecated form" | ||
| 46 | (ntp-configuration-servers | ||
| 47 | (ntp-configuration | ||
| 48 | (servers (list (ntp-server | ||
| 49 | (type 'server) | ||
| 50 | (address "example.pool.ntp.org") | ||
| 51 | (options '())))))) | ||
| 52 | (ntp-configuration-servers | ||
| 53 | (ntp-configuration | ||
| 54 | (servers (list "example.pool.ntp.org"))))) | ||
| 55 | |||
| 56 | |||
| 57 | ;;; | ||
| 58 | ;;; OpenNTPD | ||
| 59 | ;;; | ||
| 60 | |||
| 61 | (define openntpd-configuration->string (@@ (gnu services networking) | ||
| 62 | openntpd-configuration->string)) | ||
| 63 | |||
| 64 | (define %openntpd-conf-sample | ||
| 65 | (openntpd-configuration | ||
| 66 | (server '("0.guix.pool.ntp.org" "1.guix.pool.ntp.org")) | ||
| 67 | (listen-on '("127.0.0.1" "::1")) | ||
| 68 | (sensor '("udcf0 correction 70000")) | ||
| 69 | (constraint-from '("www.gnu.org")) | ||
| 70 | (constraints-from '("https://www.google.com/")) | ||
| 71 | (allow-large-adjustment? #t))) | ||
| 72 | |||
| 73 | (test-assert "openntpd configuration generation sanity check" | ||
| 74 | |||
| 75 | (begin | ||
| 76 | (define (string-match/newline pattern text) | ||
| 77 | (regexp-exec (make-regexp pattern regexp/newline) text)) | ||
| 78 | |||
| 79 | (define (match-count pattern text) | ||
| 80 | (fold-matches (make-regexp pattern regexp/newline) text 0 | ||
| 81 | (lambda (match count) | ||
| 82 | (1+ count)))) | ||
| 83 | |||
| 84 | (let ((config (openntpd-configuration->string %openntpd-conf-sample))) | ||
| 85 | (if (not | ||
| 86 | (and (string-match/newline "^listen on 127.0.0.1$" config) | ||
| 87 | (string-match/newline "^listen on ::1$" config) | ||
| 88 | (string-match/newline "^sensor udcf0 correction 70000$" config) | ||
| 89 | (string-match/newline "^constraint from www.gnu.org$" config) | ||
| 90 | (string-match/newline "^server 0.guix.pool.ntp.org$" config) | ||
| 91 | (string-match/newline | ||
| 92 | "^constraints from \"https://www.google.com/\"$" | ||
| 93 | config) | ||
| 94 | |||
| 95 | ;; Check for issue #3731 (see: | ||
| 96 | ;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=37318). | ||
| 97 | (= (match-count "^listen on " config) 2) | ||
| 98 | (= (match-count "^sensor " config) 1) | ||
| 99 | (= (match-count "^constraint from " config) 1) | ||
| 100 | (= (match-count "^server " config) 2) | ||
| 101 | (= (match-count "^constraints from " config) 1))) | ||
| 102 | (begin | ||
| 103 | (format #t "The configuration below failed \ | ||
| 104 | the sanity check:\n~a~%" config) | ||
| 105 | #f) | ||
| 106 | #t)))) | ||
| 107 | |||
| 108 | (test-equal "openntpd generated config string ends with a newline" | ||
| 109 | (let ((config (openntpd-configuration->string %openntpd-conf-sample))) | ||
| 110 | (string-take-right config 1)) | ||
| 111 | "\n") | ||
| 112 | |||
| 113 | (test-end "networking") | ||
diff --git a/tests/opam.scm b/tests/opam.scm index e8c0d151983..d3626fd0104 100644 --- a/tests/opam.scm +++ b/tests/opam.scm | |||
| @@ -99,7 +99,7 @@ url { | |||
| 99 | ('base32 | 99 | ('base32 |
| 100 | (? string? hash))))) | 100 | (? string? hash))))) |
| 101 | ('build-system 'ocaml-build-system) | 101 | ('build-system 'ocaml-build-system) |
| 102 | ('inputs | 102 | ('propagated-inputs |
| 103 | ('quasiquote | 103 | ('quasiquote |
| 104 | (("ocaml-zarith" ('unquote 'ocaml-zarith))))) | 104 | (("ocaml-zarith" ('unquote 'ocaml-zarith))))) |
| 105 | ('native-inputs | 105 | ('native-inputs |
