diff options
author | Marius Bakke <mbakke@fastmail.com> | 2020-04-08 13:00:50 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-04-08 13:00:50 +0200 |
commit | 27783023993f9272ce422868d14529159c4a5218 (patch) | |
tree | 9013b08aa39e497b1fd8e01a05254278d83f0ff7 | |
parent | be1e842ad78ac6c52fc7790f4a3ffd716673c111 (diff) | |
parent | ba6f2bda18ed19fa486a9c3e2c3baea6c66c6867 (diff) | |
download | guix-27783023993f9272ce422868d14529159c4a5218.tar.gz |
Merge branch 'master' into core-updates
Conflicts: etc/news.scm gnu/local.mk gnu/packages/check.scm gnu/packages/cross-base.scm gnu/packages/gimp.scm gnu/packages/java.scm gnu/packages/mail.scm gnu/packages/sdl.scm gnu/packages/texinfo.scm gnu/packages/tls.scm gnu/packages/version-control.scm
172 files changed, 12139 insertions, 1669 deletions
diff --git a/.gitignore b/.gitignore index de058dda5e..fd2cf56098 100644 --- a/.gitignore +++ b/.gitignore @@ -138,6 +138,7 @@ /test-env /test-tmp /tests/*.trs +/tests/services/*.trs GPATH GRTAGS GTAGS diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index b6a69a46e9..e2495919d5 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -408,7 +408,11 @@ files." (major ((store-lift nix-server-major-version))) (minor ((store-lift nix-server-minor-version)))) (mbegin %store-monad - (show-what-to-build* (list build)) + ;; Before 'with-build-handler' was implemented and used, we had to + ;; explicitly call 'show-what-to-build*'. + (munless (module-defined? (resolve-module '(guix store)) + 'with-build-handler) + (show-what-to-build* (list build))) (built-derivations (list build)) ;; Use the port beneath the current store as the stdin of BUILD. This diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi index 477b7e3dff..58a5ba1c80 100644 --- a/doc/guix-cookbook.texi +++ b/doc/guix-cookbook.texi @@ -11,6 +11,7 @@ Copyright @copyright{} 2019 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* +Copyright @copyright{} 2020 Oleg Pykhalov@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -1319,7 +1320,8 @@ chapter is to demonstrate some advanced configuration concepts. reference. @menu -* Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System. +* Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System. +* Customizing a Window Manager:: Handle customization of a Window manager on Guix System. @end menu @node Customizing the Kernel @@ -1562,6 +1564,56 @@ likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd. +@node Customizing a Window Manager +@section Customizing a Window Manager +@cindex wm + +@node StumpWM +@subsection StumpWM +@cindex stumpwm + +You could install StumpWM with a Guix system by adding +@code{stumpwm-checkout} and optionally @code{`(,stumpwm-checkout "lib")} +packages to a system configuration file, e.g. @file{/etc/config.scm}. + +An example configuration can look like this: + +@lisp +(use-modules (gnu)) +(use-package-modules wm) + +(operating-system + ;; … + (packages (append (list sbcl stumpwm-checkout `(,stumpwm-checkout "lib")) + %base-packages))) +@end lisp + +@cindex stumpwm fonts +By default StumpWM uses X11 fonts, which could be small or pixelated on +your system. You could fix this by installing StumpWM contrib Lisp +module @code{sbcl-stumpwm-ttf-fonts}, adding it to Guix system packages: + +@lisp +(use-modules (gnu)) +(use-package-modules fonts wm) + +(operating-system + ;; … + (packages (append (list sbcl stumpwm-checkout `(,stumpwm-checkout "lib")) + sbcl-stumpwm-ttf-fonts font-dejavu %base-packages))) +@end lisp + +Then you need to add the following code to a StumpWM configuration file +@file{~/.stumpwm.d/init.lisp}: + +@lisp +(require :ttf-fonts) +(setf xft:*font-dirs* '("/run/current-system/profile/share/fonts/")) +(setf clx-truetype:+font-cache-filename+ (concat (getenv "HOME") "/.fonts/font-cache.sexp")) +(xft:cache-fonts) +(set-font (make-instance 'xft:font :family "DejaVu Sans Mono" :subfamily "Book" :size 11)) +@end lisp + @c ********************************************************************* @node Advanced package management @chapter Advanced package management diff --git a/doc/guix.texi b/doc/guix.texi index 8cb85fe62c..7169e03516 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -76,6 +76,7 @@ Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -1684,6 +1685,17 @@ to display fonts, you have to install fonts with Guix as well. Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}. +@cindex @code{fc-cache} +@cindex font cache +Once you have installed or removed fonts, or when you notice an +application that does not find fonts, you may need to install Fontconfig +and to force an update of its font cache by running: + +@example +guix install fontconfig +fc-cache -rv +@end example + To display text written in Chinese languages, Japanese, or Korean in graphical applications, consider installing @code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}. The former @@ -1717,13 +1729,6 @@ xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir) After that, you can run @code{xlsfonts} (from @code{xlsfonts} package) to make sure your TrueType fonts are listed there. -@cindex @code{fc-cache} -@cindex font cache -After installing fonts you may have to refresh the font cache to use -them in applications. The same applies when applications installed via -Guix do not seem to find fonts. To force rebuilding of the font cache -run @code{fc-cache -rv}. The @code{fc-cache} command is provided by -the @code{fontconfig} package. @subsection X.509 Certificates @@ -11915,6 +11920,9 @@ about. Here are a few example: ;; The Catalan layout. (keyboard-layout "es" "cat") +;; Arabic layout with "Alt-Shift" to switch to US layout. +(keyboard-layout "ar,us" #:options '("grp:alt_shift_toggle")) + ;; The Latin American Spanish layout. In addition, the ;; "Caps Lock" key is used as an additional "Ctrl" key, ;; and the "Menu" key is used as a "Compose" key to enter @@ -12771,9 +12779,24 @@ List of extra command-line options for @command{guix-daemon}. File where @command{guix-daemon}'s standard output and standard error are written. +@cindex HTTP proxy, for @code{guix-daemon} +@cindex proxy, for @code{guix-daemon} HTTP access @item @code{http-proxy} (default: @code{#f}) -The HTTP proxy used for downloading fixed-output derivations and -substitutes. +The URL of the HTTP and HTTPS proxy used for downloading fixed-output +derivations and substitutes. + +It is also possible to change the daemon's proxy at run time through the +@code{set-http-proxy} action, which restarts it: + +@example +herd set-http-proxy guix-daemon http://localhost:8118 +@end example + +To clear the proxy settings, run: + +@example +herd set-http-proxy guix-daemon +@end example @item @code{tmpdir} (default: @code{#f}) A directory path where the @command{guix-daemon} will perform builds. @@ -13178,17 +13201,27 @@ their contents in separate files, possibly compressed. The @code{(gnu services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual}). -The example below defines an operating system that provides log rotation -with the default settings, for commonly encountered log files. +This service is part of @code{%base-services}, and thus enabled by +default, with the default settings, for commonly encountered log files. +The example below shows how to extend it with an additional +@dfn{rotation}, should you need to do that (usually, services that +produce log files already take care of that): @lisp (use-modules (guix) (gnu)) -(use-service-modules admin mcron) -(use-package-modules base idutils) +(use-service-modules admin) + +(define my-log-files + ;; Log files that I want to rotate. + '("/var/log/something.log" "/var/log/another.log")) (operating-system ;; @dots{} - (services (cons (service rottlog-service-type) + (services (cons (simple-service 'rotate-my-stuff + rottlog-service-type + (list (log-rotation + (frequency 'daily) + (files my-log-files)))) %base-services))) @end lisp @@ -20682,6 +20715,30 @@ but it also fetches and indexes mail retrieved from Debbugs. This is the service type for Mumi. @end defvr +@deftp {Data Type} mumi-configuration +Data type representing the Mumi service configuration. This type has the +following fields: + +@table @asis +@item @code{mumi} (default: @code{mumi}) +The Mumi package to use. + +@item @code{mailer?} (default: @code{#true}) +Whether to enable or disable the mailer component. + +@item @code{mumi-configuration-sender} +The email address used as the sender for comments. + +@item @code{mumi-configuration-smtp} +A URI to configure the SMTP settings for Mailutils. This could be +something like @code{sendmail:///path/to/bin/msmtp} or any other URI +supported by Mailutils. @xref{SMTP Mailboxes, SMTP Mailboxes,, +mailutils, GNU@tie{}Mailutils}. + +@end table +@end deftp + + @subsubheading FastCGI @cindex fastcgi @cindex fcgiwrap @@ -25383,6 +25440,42 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The kernel module loader service allows one to load loadable kernel +modules at boot. This is especially useful for modules that don't +autoload and need to be manually loaded, as it's the case with +@code{ddcci}. + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading loadable kernel modules at boot with +@command{modprobe}. Its value must be a list of strings representing +module names. For example loading the drivers provided by +@code{ddcci-driver-linux}, in debugging mode by passing some module +parameters, can be done as follow: + +@lisp +(use-modules (gnu) (gnu services)) +(use-package-modules linux) +(use-service-modules linux) + +(define ddcci-config + (plain-file "ddcci.conf" + "options ddcci dyndbg delay=120")) + +(operating-system + ... + (services (cons* (service kernel-module-loader-service-type + '("ddcci" "ddcci_backlight")) + (simple-service 'ddcci-config etc-service-type + (list `("modprobe.d/ddcci.conf" + ,ddcci-config))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end deffn @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/etc/news.scm b/etc/news.scm index 8c6f5f8a03..ba15f12ce6 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -10,6 +10,14 @@ (channel-news (version 0) + (entry (commit "0468455e7d279c89ea3ad1b51935efb2b785ec47") + (title (en "Rottlog service added to @code{%base-services}")) + (body (en "An instance of @code{rottlog-service-type}, the system +service responsible for log rotation, has been added to @code{%base-services}. +If your operating system configuration for Guix System is explicitly adding +@code{rottlog-service-type} to the services, you should now remove it. See +the ``Log Rotation'' section of the manual for more information."))) + (entry (commit "b6bee63bed4f013064c0d902e7c8b83ed7514ade") (title (en "@code{guile} package now refers to version 3.0")) (body (en "The @code{guile} package has been upgraded to version 3.0 diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm index 67b92c3921..91471bd03b 100644 --- a/etc/release-manifest.scm +++ b/etc/release-manifest.scm @@ -23,6 +23,7 @@ (guix packages) (guix profiles) ((gnu ci) #:select (%cross-targets)) + (guix utils) (srfi srfi-1) (srfi srfi-26)) @@ -61,11 +62,17 @@ TARGET." (define %packages-to-cross-build ;; Packages that must be cross-buildable from x86_64-linux. - (cons (@ (gnu packages gcc) gcc) - (map specification->package - '("coreutils" "grep" "sed" "findutils" "diffutils" "patch" - "gawk" "gettext" "gzip" "xz" - "hello" "guile@2.2" "zlib")))) + ;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463> + ;; is fixed. + (append (list (@ (gnu packages guile) guile-2.2/fixed)) + (map specification->package + '("coreutils" "grep" "sed" "findutils" "diffutils" "patch" + "gawk" "gettext" "gzip" "xz" + "hello" "zlib")))) + +(define %packages-to-cross-build-for-mingw + ;; Many things don't build for MinGW. Restrict to what's known to work. + (map specification->package '("hello"))) (define %cross-bootstrap-targets ;; Cross-compilation triplets for which 'bootstrap-tarballs' must be @@ -91,8 +98,12 @@ TARGET." (append-map (lambda (target) (map (cut package->manifest-entry* <> "x86_64-linux" #:target target) - %packages-to-cross-build)) - %cross-targets))) + (if (target-mingw? target) + %packages-to-cross-build-for-mingw + %packages-to-cross-build))) + ;; XXX: Important bits like libsigsegv and libffi don't support + ;; RISCV at the moment, so don't require RISCV support. + (delete "riscv64-linux-gnu" %cross-targets)))) (define %cross-bootstrap-manifest (manifest diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 0b723e824f..3f61b4a963 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -241,7 +241,11 @@ the 'share/X11/xkb/symbols/' directory of 'xkeyboard-config'." "-i" #+(keyboard-layout->console-keymap layout) "-o" #$output)))) - (computed-file (string-append "grub-keymap." (keyboard-layout-name layout)) + (computed-file (string-append "grub-keymap." + (string-map (match-lambda + (#\, #\-) + (chr chr)) + (keyboard-layout-name layout))) builder)) (define (grub-setup-io config) diff --git a/gnu/ci.scm b/gnu/ci.scm index cd418363fb..af58450a94 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -132,7 +132,6 @@ SYSTEM." (define %cross-targets '("mips64el-linux-gnu" - "mips64el-linux-gnuabi64" "arm-linux-gnueabihf" "aarch64-linux-gnu" "powerpc-linux-gnu" diff --git a/gnu/installer.scm b/gnu/installer.scm index 625b7a9ca4..1060611672 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -113,8 +113,10 @@ version of this file." (setlocale LC_ALL locale)) ;; Restart the documentation viewer so it displays the manual in - ;; language that corresponds to LOCALE. - (with-error-to-port (%make-void-port "w") + ;; language that corresponds to LOCALE. Make sure that nothing is + ;; printed on the console. + (parameterize ((shepherd-message-port + (%make-void-port "w"))) (lambda () (stop-service 'term-tty2) (start-service 'term-tty2 (list locale))))))) @@ -172,7 +174,7 @@ been performed at build time." (kmscon-update-keymap (default-keyboard-model) layout variant)))) -(define* (compute-keymap-step) +(define* (compute-keymap-step context) "Return a gexp that runs the keymap-page of INSTALLER and install the selected keymap." #~(lambda (current-installer) @@ -184,7 +186,7 @@ selected keymap." "/share/X11/xkb/rules/base.xml"))) (lambda (models layouts) ((installer-keymap-page current-installer) - layouts))))) + layouts '#$context))))) (#$apply-keymap result) result))) @@ -193,10 +195,15 @@ selected keymap." #:locales-name "locales" #:iso639-languages-name "iso639-languages" #:iso3166-territories-name "iso3166-territories")) - (keymap-step (compute-keymap-step)) (timezone-data #~(string-append #$tzdata "/share/zoneinfo/zone.tab"))) #~(lambda (current-installer) + ((installer-parameters-menu current-installer) + (lambda () + ((installer-parameters-page current-installer) + (lambda _ + (#$(compute-keymap-step 'param) + current-installer))))) (list ;; Ask the user to choose a locale among those supported by ;; the glibc. Install the selected locale right away, so that @@ -238,7 +245,8 @@ selected keymap." (id 'keymap) (description (G_ "Keyboard mapping selection")) (compute (lambda _ - (#$keymap-step current-installer))) + (#$(compute-keymap-step 'default) + current-installer))) (configuration-formatter keyboard-layout->configuration)) ;; Ask the user to input a hostname for the system. @@ -271,7 +279,7 @@ selected keymap." (description (G_ "Services")) (compute (lambda _ ((installer-services-page current-installer)))) - (configuration-formatter system-services->configuration)) + (configuration-formatter system-services->configuration)) ;; Run a partitioning tool allowing the user to modify ;; partition tables, partitions and their mount points. @@ -284,7 +292,7 @@ selected keymap." ((installer-partition-page current-installer)))) (configuration-formatter user-partitions->configuration)) - (installer-step + (installer-step (id 'final) (description (G_ "Configuration file")) (compute @@ -295,8 +303,8 @@ selected keymap." (define guile-newt ;; Guile-Newt with 'form-watch-fd'. ;; TODO: Remove once a new release is out. - (let ((commit "b3c885d42cfac327d3531c9d064939514ce6bf12") - (revision "1")) + (let ((commit "c3cdeb0b53ac71aedabee669f57d44563c662446") + (revision "2")) (package (inherit (@ (gnu packages guile-xyz) guile-newt)) (name "guile-newt") @@ -309,7 +317,7 @@ selected keymap." (file-name (git-file-name name version)) (sha256 (base32 - "02p0bi6c05699idgx6gfkljhqgi8zf09clhzx81i8wa064s70r1y"))))))) + "1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09"))))))) (define (installer-program) "Return a file-like object that runs the given INSTALLER." diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 6c44b4acf6..a24a152984 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ #:use-module (gnu installer utils) #:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt final) + #:use-module (gnu installer newt parameters) #:use-module (gnu installer newt hostname) #:use-module (gnu installer newt keymap) #:use-module (gnu installer newt locale) @@ -44,7 +45,9 @@ (define (init) (newt-init) (clear-screen) - (set-screen-size!)) + (set-screen-size!) + (push-help-line + (format #f (G_ "Press <F1> for installation parameters.")))) (define (exit) (newt-finish) @@ -91,8 +94,8 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (menu-page steps) (run-menu-page steps)) -(define* (keymap-page layouts) - (run-keymap-page layouts)) +(define* (keymap-page layouts context) + (run-keymap-page layouts #:context context)) (define (network-page) (run-network-page)) @@ -109,6 +112,12 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (services-page) (run-services-page)) +(define (parameters-menu menu-proc) + (newt-set-help-callback menu-proc)) + +(define (parameters-page keyboard-layout-selection) + (run-parameters-page keyboard-layout-selection)) + (define newt-installer (installer (name 'newt) @@ -125,4 +134,6 @@ problem. The backtrace is displayed below. Please report it by email to \ (user-page user-page) (partition-page partition-page) (services-page services-page) - (welcome-page welcome-page))) + (welcome-page welcome-page) + (parameters-menu parameters-menu) + (parameters-page parameters-page))) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 2908ba7f0e..8625afaa03 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -33,20 +33,32 @@ #:export (run-keymap-page keyboard-layout->configuration)) -(define (run-layout-page layouts layout->text) +(define (run-layout-page layouts layout->text context) (let ((title (G_ "Layout"))) (run-listbox-selection-page #:title title - #:info-text (G_ "Please choose your keyboard layout.") + #:info-text + (case context + ((param) (G_ "Please choose your keyboard layout. \ +It will only be used during the installation process.")) + (else (G_ "Please choose your keyboard layout. \ +It will be used during the install process, and for the installed system. \ +You can switch to different layout at any time from the parameters menu."))) #:listbox-items layouts #:listbox-item->text layout->text #:sort-listbox-items? #f - #:button-text (G_ "Exit") + #:button-text + (case context + ((param) (G_ "Continue")) + (else (G_ "Exit"))) #:button-callback-procedure - (lambda _ - (raise - (condition - (&installer-step-abort))))))) + (case context + ((param) (const #t)) + (else + (lambda _ + (raise + (condition + (&installer-step-abort))))))))) (define (run-variant-page variants variant->text) (let ((title (G_ "Variant"))) @@ -100,7 +112,7 @@ variants)) (cut append <> <>))) -(define* (run-keymap-page layouts) +(define* (run-keymap-page layouts #:key (context #f)) "Run a page asking the user to select a keyboard layout and variant. LAYOUTS is a list of supported X11-KEYMAP-LAYOUT. Return a list of two elements, the names of the selected keyboard layout and variant." @@ -114,7 +126,8 @@ names of the selected keyboard layout and variant." (sort-layouts layouts) (lambda (layout) (gettext (x11-keymap-layout-description layout) - "xkeyboard-config")))))) + "xkeyboard-config")) + context)))) ;; Propose the user to select a variant among those supported by the ;; previously selected layout. (installer-step diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm index 9031c7d4ba..1d6b9979b4 100644 --- a/gnu/installer/newt/page.scm +++ b/gnu/installer/newt/page.scm @@ -231,7 +231,7 @@ input box, such as FLAG-PASSWORD." (add-component-callback input-visible-cb - (lambda (component) + (lambda () (set-entry-flags input-entry FLAG-PASSWORD FLAG-ROLE-TOGGLE))) @@ -486,7 +486,7 @@ the current listbox item has to be selected by key." ;; do nothing. (add-component-callback listbox - (lambda (component) + (lambda () (let* ((current-key (current-listbox-entry listbox)) (listbox-keys (map car keys)) (last-key (last-listbox-key)) diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm new file mode 100644 index 0000000000..95112b5780 --- /dev/null +++ b/gnu/installer/newt/parameters.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu installer newt parameters) + #:use-module (gnu installer proxy) + #:use-module (gnu installer steps) + #:use-module (gnu installer newt page) + #:use-module (guix i18n) + #:use-module (ice-9 match) + #:use-module (newt) + #:export (run-parameters-page)) + +(define (run-proxy-page) + (define proxy + (run-input-page (G_ "Please enter the HTTP proxy URL. If you enter an \ +empty string, proxy usage will be disabled.") + (G_ "HTTP proxy configuration") + #:allow-empty-input? #t)) + (if (string=? proxy "") + (clear-http-proxy) + (set-http-proxy proxy))) + +(define (run-parameters-page keyboard-layout-selection) + "Run a parameters page allowing to change the keyboard layout" + (let* ((items + (list + (cons (G_ "Change keyboard layout") keyboard-layout-selection) + (cons (G_ "Configure HTTP proxy") run-proxy-page))) + (result + (run-listbox-selection-page + #:info-text (G_ "Please choose one of the following parameters or \ +press ‘Back’ to go back to the installation process.") + #:title (G_ "Installation parameters") + #:listbox-items items + #:listbox-item->text car + #:sort-listbox-items? #f + #:listbox-height 6 + #:button-text (G_ "Back")))) + (match result + ((_ . proc) + (proc)) + (_ #f)))) diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm index ad711d665a..58bb86bf96 100644 --- a/gnu/installer/newt/user.scm +++ b/gnu/installer/newt/user.scm @@ -89,7 +89,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (add-component-callback entry-name - (lambda (component) + (lambda () (set-entry-text entry-home-directory (string-append "/home/" (entry-value entry-name))) @@ -99,7 +99,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (add-component-callback password-visible-cb - (lambda (component) + (lambda () (set-entry-flags entry-password FLAG-PASSWORD FLAG-ROLE-TOGGLE))) diff --git a/gnu/installer/proxy.scm b/gnu/installer/proxy.scm new file mode 100644 index 0000000000..befaf3ab0a --- /dev/null +++ b/gnu/installer/proxy.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu installer proxy) + #:use-module (gnu services herd) + #:export (set-http-proxy + clear-http-proxy)) + +(define-syntax-rule (with-silent-shepherd exp ...) + (parameterize ((shepherd-message-port + (%make-void-port "w"))) + exp ...)) + +(define (set-http-proxy proxy) + (with-silent-shepherd + (with-shepherd-action 'guix-daemon + ('set-http-proxy proxy) + result + result))) + +(define (clear-http-proxy) + (with-silent-shepherd + (with-shepherd-action 'guix-daemon + ('set-http-proxy) + result + result))) + +;; Local Variables: +;; eval: (put 'with-silent-shepherd 'scheme-indent-function 0) +;; End: diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index edf73b6215..7bc22e90e0 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +37,9 @@ installer-user-page installer-partition-page installer-services-page - installer-welcome-page)) + installer-welcome-page + installer-parameters-menu + installer-parameters-page)) ;;; @@ -61,7 +63,7 @@ (exit-error installer-exit-error) ;; procedure void -> void (final-page installer-final-page) - ;; procedure (layouts) -> (list layout variant) + ;; procedure (layouts context) -> (list layout variant) (keymap-page installer-keymap-page) ;; procedure: (#:key supported-locales iso639-languages iso3166-territories) ;; -> glibc-locale @@ -81,4 +83,8 @@ ;; procedure void -> void (services-page installer-services-page) ;; procedure (logo) -> void - (welcome-page installer-welcome-page)) + (welcome-page installer-welcome-page) + ;; procedure (menu-proc) -> void + (parameters-menu installer-parameters-menu) + ;; procedure (keyboard-layout-selection) -> void + (parameters-page installer-parameters-page)) diff --git a/gnu/local.mk b/gnu/local.mk index f5ca0e3d8d..2197ae5775 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -28,6 +28,8 @@ # Copyright © 2019 Amin Bandali <bandali@gnu.org> # Copyright © 2020 Brendan Tildesley <mail@brendan.scot> # Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +# Copyright © 2020 R Veera Kumar <vkor@vkten.in> +# Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz # # This file is part of GNU Guix. # @@ -319,6 +321,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/libusb.scm \ %D%/packages/libunwind.scm \ %D%/packages/lighting.scm \ + %D%/packages/linphone.scm \ %D%/packages/linux.scm \ %D%/packages/lirc.scm \ %D%/packages/lisp.scm \ @@ -343,6 +346,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/marst.scm \ %D%/packages/mate.scm \ %D%/packages/maths.scm \ + %D%/packages/matrix.scm \ %D%/packages/maven.scm \ %D%/packages/mc.scm \ %D%/packages/mcrypt.scm \ @@ -658,6 +662,7 @@ INSTALLER_MODULES = \ %D%/installer/locale.scm \ %D%/installer/newt.scm \ %D%/installer/parted.scm \ + %D%/installer/proxy.scm \ %D%/installer/record.scm \ %D%/installer/services.scm \ %D%/installer/steps.scm \ @@ -668,6 +673,7 @@ INSTALLER_MODULES = \ \ %D%/installer/newt/ethernet.scm \ %D%/installer/newt/final.scm \ + %D%/installer/newt/parameters.scm \ %D%/installer/newt/hostname.scm \ %D%/installer/newt/keymap.scm \ %D%/installer/newt/locale.scm \ @@ -761,6 +767,7 @@ dist_patch_DATA = \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bc-fix-cross-compilation.patch \ + %D%/packages/patches/beancount-disable-googleapis-fonts.patch \ %D%/packages/patches/beets-werkzeug-compat.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/benchmark-unbundle-googletest.patch \ @@ -768,10 +775,13 @@ dist_patch_DATA = \ %D%/packages/patches/bidiv-update-fribidi.patch \ %D%/packages/patches/binutils-boot-2.20.1a.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ + %D%/packages/patches/binutils-mingw-w64-specify-timestamp.patch \ + %D%/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/bluez-CVE-2020-0556.patch \ %D%/packages/patches/byobu-writable-status.patch \ + %D%/packages/patches/calibre-msgpack-compat.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-bs4.patch \ %D%/packages/patches/calibre-remove-test-sqlite.patch \ @@ -1035,7 +1045,6 @@ dist_patch_DATA = \ %D%/packages/patches/hdf-eos5-remove-gctp.patch \ %D%/packages/patches/hdf-eos5-fix-szip.patch \ %D%/packages/patches/hdf-eos5-fortrantests.patch \ - %D%/packages/patches/higan-remove-march-native-flag.patch \ %D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hurd-cross.patch \ %D%/packages/patches/hplip-remove-imageprocessor.patch \ @@ -1070,6 +1079,7 @@ dist_patch_DATA = \ %D%/packages/patches/jfsutils-add-sysmacros.patch \ %D%/packages/patches/jfsutils-include-systypes.patch \ %D%/packages/patches/jsoncpp-fix-inverted-case.patch \ + %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch \ %D%/packages/patches/libvirt-create-machine-cgroup.patch \ @@ -1201,12 +1211,15 @@ dist_patch_DATA = \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/libmemcached-build-with-gcc7.patch \ + %D%/packages/patches/mediastreamer2-srtp2.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/mescc-tools-boot.patch \ %D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mingw-w64-6.0.0-gcc.patch \ + %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \ + %D%/packages/patches/mingw-w64-reproducible-gendef.patch \ %D%/packages/patches/minisat-friend-declaration.patch \ %D%/packages/patches/minisat-install.patch \ %D%/packages/patches/mit-krb5-hurd.patch \ @@ -1282,6 +1295,7 @@ dist_patch_DATA = \ %D%/packages/patches/p7zip-CVE-2016-9296.patch \ %D%/packages/patches/p7zip-CVE-2017-17969.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \ + %D%/packages/patches/pam-krb5-CVE-2020-10595.patch \ %D%/packages/patches/pam-mount-luks2-support.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/pciutils-hurd-configure.patch \ @@ -1351,6 +1365,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3.8-fix-tests.patch \ %D%/packages/patches/python-CVE-2018-14647.patch \ + %D%/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch \ %D%/packages/patches/python-alembic-exceptions-cause.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-cairocffi-dlopen-path.patch \ @@ -1404,7 +1419,6 @@ dist_patch_DATA = \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ - %D%/packages/patches/reprotest-support-guix.patch \ %D%/packages/patches/ri-li-modernize_cpp.patch \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ @@ -1429,7 +1443,6 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-integer-declarations.patch \ %D%/packages/patches/screen-hurd-path-max.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ - %D%/packages/patches/sdl2-mesa-compat.patch \ %D%/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ @@ -1544,6 +1557,10 @@ dist_patch_DATA = \ %D%/packages/patches/xmoto-utf8.patch \ %D%/packages/patches/xmoto-remove-glext.patch \ %D%/packages/patches/xmoto-reproducible.patch \ + %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ + %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ + %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ + %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \ %D%/packages/patches/xsane-fix-memory-leak.patch \ %D%/packages/patches/xsane-fix-pdf-floats.patch \ %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 4e1f9afc7e..e4f9808231 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1291,9 +1292,10 @@ system administrator.") ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. #:tests? #f)) + (native-inputs + `(("groff" ,groff))) (inputs - `(("groff" ,groff) - ("linux-pam" ,linux-pam) + `(("linux-pam" ,linux-pam) ("zlib" ,zlib) ("coreutils" ,coreutils))) (home-page "https://www.sudo.ws/") @@ -2647,6 +2649,7 @@ shortcut syntax and completion options.") (uri (string-append "https://archives.eyrie.org/software/kerberos/" "pam-krb5-" version ".tar.xz")) + (patches (search-patches "pam-krb5-CVE-2020-10595.patch")) (sha256 (base32 "1qjp8i1s9bz7g6kiqrkzzkxn5pfspa4sy53b6z40fqmdf9przdfb")))) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 4ff766eef1..81f644a37a 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -228,7 +228,7 @@ the real span of the lattice.") (define-public pari-gp (package (name "pari-gp") - (version "2.11.2") + (version "2.11.3") (source (origin (method url-fetch) (uri (string-append @@ -236,7 +236,7 @@ the real span of the lattice.") version ".tar.gz")) (sha256 (base32 - "0fck8ssmirl8fy7s4mspgrxjs5sag76xbshqlqzkcl3kqyrk4raa")))) + "1jd65h2psrmba2dx7rkf5qidf9ka0cwbsg20pd18k45ggr30l467")))) (build-system gnu-build-system) (native-inputs `(("texlive" ,(texlive-union @@ -270,7 +270,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.11pl2") + (version "0.0.11pl3") (source (origin (method url-fetch) (uri (string-append @@ -278,7 +278,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g")))) + "0yymbrgyjw500hqgmkj5m4nmscd7c9rs9w2c96lxgrcyab8krhrm")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (inputs `(("pari-gp" ,pari-gp))) diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 9ebfe834bf..c775603445 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -259,7 +259,7 @@ runtime") (define-public rgbds (package (name "rgbds") - (version "0.3.10") + (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -268,7 +268,7 @@ runtime") (file-name (git-file-name name version)) (sha256 (base32 - "0752fbffxgxyf3jw2iij88l05dqhppgcxy7dvk82hp4wdg4cflpq")))) + "15680964nlsa83nqgxk7knxajn98lddz2hg6jnn8ffmnms5wdam7")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 2ac41e17a0..076a03e5a9 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -3,6 +3,8 @@ ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 by Amar Singh <nly@disroot.org> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> +;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,22 +27,28 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) - #:use-module (gnu packages image) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) - #:use-module (gnu packages version-control) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages xiph) - #:use-module (gnu packages pretty-print) - #:use-module (gnu packages algebra) - #:use-module (gnu packages lua) - #:use-module (gnu packages perl) #:use-module (gnu packages gl) - #:use-module (gnu packages qt) - #:use-module (gnu packages gtk) + #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages lua) #:use-module (gnu packages maths) + #:use-module (gnu packages netpbm) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages qt) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xiph) + #:use-module (gnu packages xorg) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (srfi srfi-1)) @@ -289,3 +297,95 @@ Mechanics, Astrometry and Astrodynamics library.") (license (list license:lgpl2.0+ license:gpl2+)))) ; examples/transforms.c & lntest/*.c +(define-public xplanet + (package + (name "xplanet") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri + (string-append + "mirror://sourceforge/xplanet/xplanet/" + version "/xplanet-" version ".tar.gz")) + (sha256 + (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023")) + (patches + (search-patches + "xplanet-1.3.1-cxx11-eof.patch" + "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch" + "xplanet-1.3.1-libimage_gif.c.patch" + "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libx11" ,libx11) + ("libxscrnsaver" ,libxscrnsaver) + ("libice" ,libice) + ("freetype" ,freetype) + ("pango" ,pango) + ("giflib" ,giflib) + ("libjpeg", libjpeg-turbo) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("netpbm" ,netpbm) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + (let ((netpbm (assoc-ref %build-inputs "netpbm"))) + (append (list + ;; Give correct path for pnm.h header to configure script + (string-append "CPPFLAGS=-I" netpbm "/include/netpbm") + ;; no nasa jpl cspice support + "--without-cspice" ))))) + (home-page "http://xplanet.sourceforge.net/") + (synopsis "Planetary body renderer") + (description + "Xplanet renders an image of a planet into an X window or file. +All of the major planets and most satellites can be drawn and different map +projections are also supported, including azimuthal, hemisphere, Lambert, +Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.") + (license license:gpl2+))) + +(define-public gpredict + (package + (name "gpredict") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/csete/gpredict/releases" + "/download/v" version + "/gpredict-" version ".tar.bz2")) + (sha256 + (base32 "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7")))) + (build-system gnu-build-system) + (native-inputs + `(("intltool" ,intltool) + ("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("glib" ,glib) + ("goocanvas" ,goocanvas) + ("gtk+" ,gtk+))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Remove reference to non-existent file. + (substitute* "po/POTFILES.in" + (("src/gtk-sat-tree\\.c") + "")) + #t))))) + (synopsis "Satellite tracking and orbit prediction application") + (description + "Gpredict is a real-time satellite tracking and orbit prediction +application. It can track a large number of satellites and display their +position and other data in lists, tables, maps, and polar plots (radar view). +Gpredict can also predict the time of future passes for a satellite, and +provide you with detailed information about each pass.") + (home-page "http://gpredict.oz9aec.net/index.php") + (license license:gpl2+))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 0913bb4fd3..c7f55bb07e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 okapi <okapi@firemail.cc> -;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> @@ -28,6 +28,7 @@ ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages telephony) + #:use-module (gnu packages linphone) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages vim) ;xxd @@ -119,6 +121,45 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26)) +(define-public vo-amrwbenc + (package + (name "vo-amrwbenc") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://sourceforge.net/projects/opencore-amr/files/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0klx3nkidc6b8aawchpk19n3xlrzgnc046w4gd0rdqphw28v6ljn")))) + (build-system gnu-build-system) + (synopsis "Adaptive Multi Rate Codec") + (description "VO-AMR is a library of VisualOn implementation of +Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec.") + (home-page "https://sourceforge.net/projects/opencore-amr/") + (license license:asl2.0))) + +(define-public opencore-amr + (package + (name "opencore-amr") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri + (string-append "https://sourceforge.net/projects/opencore-amr/files/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0hfk9khz3by0119h3jdwgdfd7jgkdbzxnmh1wssvylgnsnwnq01c")))) + (build-system gnu-build-system) + (synopsis "Adaptive Multi Rate Codec") + (description "OpenCore-AMR is a library of OpenCORE Framework +implementation of Adaptive Multi Rate Narrowband and Wideband +(AMR-NB and AMR-WB) speech codec.") + (home-page "https://sourceforge.net/projects/opencore-amr/") + (license license:asl2.0))) + (define-public alsa-modular-synth (package (name "alsa-modular-synth") @@ -153,10 +194,10 @@ ("jack" ,jack-1) ("ladspa" ,ladspa) ("liblo" ,liblo) - ("qtbase" ,qtbase) - ("qttools" ,qttools))) + ("qtbase" ,qtbase))) (native-inputs `(("pkg-config" ,pkg-config) + ("qttools" ,qttools) ("gcc" ,gcc-5))) (home-page "http://alsamodular.sourceforge.net/") (synopsis "Realtime modular synthesizer and effect processor") @@ -3335,7 +3376,7 @@ code, used in @code{libtoxcore}.") (define-public gsm (package (name "gsm") - (version "1.0.18") + (version "1.0.19") (source (origin (method url-fetch) @@ -3344,18 +3385,24 @@ code, used in @code{libtoxcore}.") "-" version ".tar.gz")) (sha256 (base32 - "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4")))) + "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9")))) (build-system gnu-build-system) (arguments `(#:test-target "tst" + #:make-flags (list (string-append "INSTALL_ROOT=" %output)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'add-fpic-ccflag + (lambda _ + ;; The -fPIC compiler option is needed when building + ;; mediastreamer. + (substitute* "Makefile" + (("^CCFLAGS.*" all) + (string-append all "CCFLAGS += -fPIC\n"))) + #t)) (add-before 'install 'pre-install (lambda _ (let ((out (assoc-ref %outputs "out"))) - (substitute* "Makefile" - (("INSTALL_ROOT\t=") - (string-append "INSTALL_ROOT\t=\t" out))) (mkdir-p (string-append out "/inc")) (mkdir-p (string-append out "/man")) (mkdir-p (string-append out "/man/man1")) @@ -3874,7 +3921,7 @@ stream to one or more IceCast and/or ShoutCast servers.") (define-public redkite (package (name "redkite") - (version "0.6.2") + (version "0.8.0") (source (origin (method git-fetch) @@ -3884,7 +3931,7 @@ stream to one or more IceCast and/or ShoutCast servers.") (file-name (git-file-name name version)) (sha256 (base32 - "1i874izajbdhlfacwwj84qrsxf7g4y6nblzxalrkzaap9sa7d1r6")))) + "1747w1kg8y9jbl11xi018d85dm38xk7843pz26sh0k5fdv87a10q")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no tests included diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 28522e7c13..2fbfdba2d8 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1958,14 +1958,14 @@ experiments.") (define-public r-genomicinteractions (package (name "r-genomicinteractions") - (version "1.20.1") + (version "1.20.2") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicInteractions" version)) (sha256 (base32 - "140bp7c8p079xh5wwxmrq3a73pm6mdc9czq5w2gzjml7dgrca38a")))) + "0mqb899wah5n7bp2lajhwy2zpqqhi18plza3i3m51rfl9n62smph")))) (properties `((upstream-name . "GenomicInteractions"))) (build-system r-build-system) @@ -1986,6 +1986,8 @@ experiments.") ("r-rtracklayer" ,r-rtracklayer) ("r-s4vectors" ,r-s4vectors) ("r-stringr" ,r-stringr))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/ComputationalRegulatoryGenomicsICL/GenomicInteractions/") (synopsis "R package for handling genomic interaction data") (description @@ -4077,14 +4079,14 @@ footprints.") (define-public r-gofuncr (package (name "r-gofuncr") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (bioconductor-uri "GOfuncR" version)) (sha256 (base32 - "0hmi13pz923fm95asys615rih63b1i2nvynfczr1zcsc9fzn4h35")))) + "1wk7ja6f5il8jx8v05ijzcs9pijp3b953h566ya66xp7dz5jg9rb")))) (properties `((upstream-name . "GOfuncR"))) (build-system r-build-system) (propagated-inputs @@ -4095,6 +4097,8 @@ footprints.") ("r-mapplots" ,r-mapplots) ("r-rcpp" ,r-rcpp) ("r-vioplot" ,r-vioplot))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/GOfuncR/") (synopsis "Gene ontology enrichment using FUNC") (description @@ -5829,14 +5833,14 @@ sequential way to mimic the manual gating strategy.") (define-public r-cytoml (package (name "r-cytoml") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "CytoML" version)) (sha256 (base32 - "0m8x18wkvis85cawv7j07pk59w76wnzy93ia99gd24j82z4h97p1")))) + "0wgi8rwb4spxzd5xvs5amfr5g82ny2nad57j3nmhnhnj1cpirjxz")))) (properties `((upstream-name . "CytoML"))) (build-system r-build-system) (inputs @@ -5866,6 +5870,8 @@ sequential way to mimic the manual gating strategy.") ("r-runit" ,r-runit) ("r-xml" ,r-xml) ("r-yaml" ,r-yaml))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/RGLab/CytoML") (synopsis "GatingML interface for cross platform cytometry data sharing") (description @@ -5906,14 +5912,14 @@ self-organizing map clustering and minimal spanning trees.") (define-public r-mixomics (package (name "r-mixomics") - (version "6.10.8") + (version "6.10.9") (source (origin (method url-fetch) (uri (bioconductor-uri "mixOmics" version)) (sha256 (base32 - "0307vhx9ck24rxqbvq15815ssxcc226sl2la060n204b51wi9jaa")))) + "0b457yg8mwqlrn5l344w8qcj8v2ghlj1wdx1ysxbncqvqx7nvgig")))) (properties `((upstream-name . "mixOmics"))) (build-system r-build-system) (propagated-inputs @@ -5930,6 +5936,8 @@ self-organizing map clustering and minimal spanning trees.") ("r-rcolorbrewer" ,r-rcolorbrewer) ("r-reshape2" ,r-reshape2) ("r-tidyr" ,r-tidyr))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "http://www.mixOmics.org") (synopsis "Multivariate methods for exploration of biological datasets") (description @@ -7490,14 +7498,14 @@ accessing web references for elements/sets are also available in BiocSet.") (define-public r-biocworkflowtools (package (name "r-biocworkflowtools") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocWorkflowTools" version)) (sha256 (base32 - "1v4bhnpdkmllm7aghms9b7369hkrgz7mn69wbrqg1x42pgkf30ad")))) + "0z28s572wg9qxv52dmixxz1xf1z3fyp2j7kzk0k32fp628918wr6")))) (properties `((upstream-name . "BiocWorkflowTools"))) (build-system r-build-system) @@ -7511,6 +7519,8 @@ accessing web references for elements/sets are also available in BiocSet.") ("r-rstudioapi" ,r-rstudioapi) ("r-stringr" ,r-stringr) ("r-usethis" ,r-usethis))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/BiocWorkflowTools/") (synopsis "Tools to aid the development of Bioconductor Workflow packages") (description diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 11d123b605..f1f6a3eb6d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -7580,13 +7581,13 @@ ID and species. It is used by functions in the GenomeInfoDb package.") (define-public r-genomeinfodb (package (name "r-genomeinfodb") - (version "1.22.0") + (version "1.22.1") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomeInfoDb" version)) (sha256 (base32 - "07zljs2mfi8rf31g903f43v2f7767xbnflfrx9qjnmgf7bm039x0")))) + "0phadr67yb4l25x41a9wg4pjy1wbxlk14jhidhz6g5n4z6x45qbm")))) (properties `((upstream-name . "GenomeInfoDb"))) (build-system r-build-system) @@ -7596,6 +7597,8 @@ ID and species. It is used by functions in the GenomeInfoDb package.") ("r-iranges" ,r-iranges) ("r-rcurl" ,r-rcurl) ("r-s4vectors" ,r-s4vectors))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/GenomeInfoDb") (synopsis "Utilities for manipulating chromosome identifiers") (description @@ -7808,13 +7811,13 @@ annotation data packages using SQLite data storage.") (define-public r-biomart (package (name "r-biomart") - (version "2.42.0") + (version "2.42.1") (source (origin (method url-fetch) (uri (bioconductor-uri "biomaRt" version)) (sha256 (base32 - "0difh4dsccjzhpfkvajy2adh98ym9164gd6clnsnic6qr6sk86ss")))) + "0676s8aq9xj2pdrfk28kf5j69fmssn900k4vxrp11ghwjr8z24h7")))) (properties `((upstream-name . "biomaRt"))) (build-system r-build-system) @@ -7827,6 +7830,8 @@ annotation data packages using SQLite data storage.") ("r-rappdirs" ,r-rappdirs) ("r-stringr" ,r-stringr) ("r-xml" ,r-xml))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/biomaRt") (synopsis "Interface to BioMart databases") (description @@ -13549,17 +13554,27 @@ allowing the insertion of arbitrary types into the tree.") (define-public python-intervaltree (package (name "python-intervaltree") - (version "2.1.0") + (version "3.0.2") (source (origin (method url-fetch) (uri (pypi-uri "intervaltree" version)) (sha256 (base32 - "02w191m9zxkcjqr1kv2slxvhymwhj3jnsyy3a28b837pi15q19dc")))) + "0wz234g6irlm4hivs2qzmnywk0ss06ckagwh15nflkyb3p462kyb")))) (build-system python-build-system) - ;; FIXME: error when collecting tests - (arguments '(#:tests? #f)) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; pytest seems to have a check to make sure the user is testing + ;; their checked-out code and not an installed, potentially + ;; out-of-date copy. This is harmless here, since we just installed + ;; the package, so we disable the check to avoid skipping tests + ;; entirely. + (add-before 'check 'import-mismatch-error-workaround + (lambda _ + (setenv "PY_IGNORE_IMPORTMISMATCH" "1") + #t))))) (propagated-inputs `(("python-sortedcontainers" ,python-sortedcontainers))) (native-inputs diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 56f645739b..14f3815b52 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -94,10 +94,13 @@ (string-append gui "/bin/transmission-gtk")) - ;; Move the '.desktop' file as well. + ;; Move the '.desktop' and icon files as well. (mkdir (string-append gui "/share")) - (rename-file (string-append out "/share/applications") - (string-append gui "/share/applications"))) + (for-each + (lambda (dir) + (rename-file (string-append out "/share/" dir) + (string-append gui "/share/" dir))) + '("applications" "icons" "pixmaps"))) #t))))) (inputs `(("inotify-tools" ,inotify-tools) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index de8d089333..cdc98d9b76 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -466,7 +466,7 @@ capacity is user-selectable.") ("flex" ,flex) ("python" ,python-2) ("xmlto" ,xmlto) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("docbook-xml" ,docbook-xml) ("docbook-xsl" ,docbook-xsl) ("zip" ,zip))) diff --git a/gnu/packages/cedille.scm b/gnu/packages/cedille.scm index d9cf66c501..d3dd576323 100644 --- a/gnu/packages/cedille.scm +++ b/gnu/packages/cedille.scm @@ -51,17 +51,24 @@ (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-cedille-path-el + (add-after 'unpack 'patch-cedille-paths (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "cedille-mode.el" (("/usr/share/emacs/site-lisp/cedille-mode") - (string-append out "/share/emacs/site-lisp"))) + (string-append + out "/share/emacs/site-lisp/cedille"))) + (substitute* "cedille-mode/cedille-mode-info.el" + (("\\(concat cedille-path-el \"cedille-info-main.info\"\\)") + (string-append + "\"" out "/share/info/cedille-info-main.info.gz\""))) #t))) - (add-after 'unpack 'copy-cedille-mode + (add-after 'patch-cedille-paths 'copy-cedille-mode (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (lisp (string-append out "/share/emacs/site-lisp"))) + (lisp + (string-append + out "/share/emacs/site-lisp/cedille/"))) (mkdir-p (string-append lisp "cedille-mode")) (copy-recursively "cedille-mode" @@ -104,6 +111,8 @@ (install-file "cedille" (string-append out "/bin")) (install-file "core/cedille-core" (string-append out "/bin")) + (install-file "docs/info/cedille-info-main.info" + (string-append out "/share/info")) #t)))))) (home-page "https://cedille.github.io/") (synopsis diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index c84a682e75..b7267e14ec 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1075,6 +1076,31 @@ result back.") timeout has been exceeded.") (license license:expat))) +(define-public python-pytest-forked + (package + (name "python-pytest-forked") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-forked" version)) + (sha256 + (base32 + "000i4q7my2fq4l49n8idx2c812dql97qv6qpm2vhrrn9v6g6j18q")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytest" ,python-pytest))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page + "https://github.com/pytest-dev/pytest-forked") + (synopsis + "Run tests in isolated forked subprocesses") + (description + "Pytest plugin which will run each test in a subprocess and will report if +a test crashed the process.") + (license license:expat))) + (define-public python-scripttest (package (name "python-scripttest") @@ -2590,3 +2616,25 @@ system. The code under test requires no modification to work with pyfakefs.") (arguments `(#:python ,python-2 #:tests? #f))))) + +(define-public python-aiounittest + (package + (name "python-aiounittest") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiounittest" version)) + (sha256 + (base32 + "1q4bhmi80smaa1lknvdna0sx3915naczlfna1fp435nf6cjyrjl1")))) + (build-system python-build-system) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page + "https://github.com/kwarunek/aiounittest") + (synopsis "Test asyncio code more easily") + (description "Aiounittest is a library that helps write tests using +asynchronous code in Python (asyncio).") + (license license:expat))) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 611f99c5a3..fb8a813b7a 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -247,7 +247,7 @@ from forcing GEXP-PROMISE." #:system system #:guile-for-build guile))) -(define %chromium-version "80.0.3987.149") +(define %chromium-version "80.0.3987.163") (define %ungoogled-revision "516e2d990a50a4bbeb8c583e56333c2935e2af95") (define %debian-revision "debian/80.0.3987.116-1") (define package-revision "0") @@ -263,7 +263,7 @@ from forcing GEXP-PROMISE." %chromium-version ".tar.xz")) (sha256 (base32 - "07icl3hgg1wjkmz88lbpjf6ll4xyi64spki1nmsy6899jgkxvgjh")))) + "0ikk4cgz3jgjhyncsvlqvlc03y7jywjpa6v34fwsjxs88flyzpdn")))) (define %ungoogled-origin (origin diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index f883c2f690..13243578b1 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -132,15 +132,17 @@ It is developed using Objective Caml and Camlp5.") (define-public proof-general (package (name "proof-general") - (version "4.2") + (version "4.4") (source (origin - (method url-fetch) - (uri (string-append - "http://proofgeneral.inf.ed.ac.uk/releases/" - "ProofGeneral-" version ".tgz")) + (method git-fetch) + (uri (git-reference + (url (string-append + "https://github.com/ProofGeneral/PG")) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "09qb0myq66fw17v4ziz401ilsb5xlxz1nl2wsp69d0vrfy0bcrrm")))) + "0bdfk91wf71z80mdfnl8hpinripndcjgdkz854zil6521r84nqk8")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) @@ -175,10 +177,6 @@ It is developed using Objective Caml and Camlp5.") (emacs (assoc-ref inputs "host-emacs"))) (define (coq-prog name) (string-append coq "/bin/" name)) - (emacs-substitute-variables "coq/coq.el" - ("coq-prog-name" (coq-prog "coqtop")) - ("coq-compiler" (coq-prog "coqc")) - ("coq-dependency-analyzer" (coq-prog "coqdep"))) (substitute* "Makefile" (("/sbin/install-info") "install-info")) (substitute* "bin/proofgeneral" @@ -198,7 +196,7 @@ It is developed using Objective Caml and Camlp5.") (substitute* "Makefile" ((" [^ ]*\\.pdf") "")) (apply invoke "make" "install-doc" make-flags)))))) - (home-page "http://proofgeneral.inf.ed.ac.uk/") + (home-page "https://proofgeneral.github.io/ ") (synopsis "Generic front-end for proof assistants based on Emacs") (description "Proof General is a major mode to turn Emacs into an interactive proof diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9d71502017..2bf94eb8da 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -19,6 +19,8 @@ ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> ;;; Copyright © 2020 Todor Kondić <tk.code@protonmail.com> +;;; Copyright © 2020 Danjela Lura <danielaluraa@gmail.com> +;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -100,6 +102,31 @@ the system clipboards.") (license license:gpl3))) +(define-public r-oenb + (package + (name "r-oenb") + (version "0.0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "oenb" version)) + (sha256 + (base32 + "1x1jlqp6r27c4gb7wafzpmh5rq6yq61a2d395r5lsmv2g5jb4biz")))) + (properties `((upstream-name . "oenb"))) + (build-system r-build-system) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-xml" ,r-xml))) + (native-inputs `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/franzmohr/oenb") + (synopsis "Tools for the OeNB Data Web Service") + (description + "Tools to access data from the data web service of the +@acronym{OeNB, Oesterreichische Nationalbank}, +@url{https://www.oenb.at/en/Statistics/User-Defined-Tables/webservice.html}.") + (license license:gpl2+))) + (define-public r-scales (package (name "r-scales") @@ -425,14 +452,14 @@ such as copy/paste from an R session.") (define-public r-callr (package (name "r-callr") - (version "3.4.2") + (version "3.4.3") (source (origin (method url-fetch) (uri (cran-uri "callr" version)) (sha256 (base32 - "0bdlp0labwyfl36jqslj2g7zmw7zwr58v9gam435kiblhjimb8fc")))) + "1dc20gdawy9mhnc452qlshv2p4krs6c2gymvpv365mn141zjgdq1")))) (build-system r-build-system) (propagated-inputs `(("r-r6" ,r-r6) @@ -3645,14 +3672,14 @@ modeling for empirical income distributions.") (define-public r-vcd (package (name "r-vcd") - (version "1.4-6") + (version "1.4-7") (source (origin (method url-fetch) (uri (cran-uri "vcd" version)) (sha256 (base32 - "0rjz49py5l6wnaimw6k8rcyzlvs8cyz5g2xwqj2qis92ly0l103z")))) + "16aj688nhlcvdxzfsqh4s375v8f8vl8997dl8h1xg29b42nv52gc")))) (build-system r-build-system) (propagated-inputs `(("r-colorspace" ,r-colorspace) @@ -4160,14 +4187,14 @@ terminals.") (define-public r-tinytex (package (name "r-tinytex") - (version "0.20") + (version "0.21") (source (origin (method url-fetch) (uri (cran-uri "tinytex" version)) (sha256 (base32 - "0n8v8inpsc99r0snvqbjhqlc6nm9hxjsw120hrxc2mw03pa5fvkg")))) + "088zzc2v0izbcs45p19v547pi78vkr08ibpvvi1g9bkbya4x3mq9")))) (build-system r-build-system) (propagated-inputs `(("r-xfun" ,r-xfun))) @@ -4435,14 +4462,14 @@ Fisher's method), and Sidak correction.") (define-public r-quantmod (package (name "r-quantmod") - (version "0.4-16") + (version "0.4.17") (source (origin (method url-fetch) (uri (cran-uri "quantmod" version)) (sha256 (base32 - "12l5br8abr1yagxqjnjvqzp79sqsv5vx56cxs37gk73r474f4vc2")))) + "1ss441rwlr88kz212m0wgx0hwgwi41rhy1jncg2lgqzqfvr5dzqa")))) (build-system r-build-system) (propagated-inputs `(("r-curl" ,r-curl) @@ -4801,14 +4828,14 @@ functions to enforce symmetric scales or add tags to facetted plots.") (define-public r-heatmaply (package (name "r-heatmaply") - (version "1.0.0") + (version "1.1.0") (source (origin (method url-fetch) (uri (cran-uri "heatmaply" version)) (sha256 (base32 - "0576gml3bcl7r1biigzj1rag2xzz422knbw7arc8d2gsakjj757g")))) + "133q8ir45vhfxs2lnd96k97g21ihg2arfhp349kmk339pk32fcxz")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -5776,14 +5803,14 @@ obtain a better initial configuration in non-metric MDS.") (define-public r-reticulate (package (name "r-reticulate") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (cran-uri "reticulate" version)) (sha256 (base32 - "0icb9zl9zlx75njv7y1dr450k0yw2n3q2jkr4nicnphdyfn69gkn")))) + "03dmnx9jhxx6vfbv2i5n6sln38kb9zkshz982pg3l9i4jjf3xns7")))) (build-system r-build-system) (inputs `(("python" ,python))) (propagated-inputs @@ -5791,6 +5818,8 @@ obtain a better initial configuration in non-metric MDS.") ("r-jsonlite" ,r-jsonlite) ("r-matrix" ,r-matrix) ("r-rcpp" ,r-rcpp))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/rstudio/reticulate") (synopsis "R interface to Python") (description @@ -6013,14 +6042,14 @@ structured in groups, etc. and hierarchical cluster analysis.") (define-public r-factoextra (package (name "r-factoextra") - (version "1.0.6") + (version "1.0.7") (source (origin (method url-fetch) (uri (cran-uri "factoextra" version)) (sha256 (base32 - "0bpsbcmp6jpa9qk53dhfzghrz98dh0h0n68brl7rjz724yjbvhn8")))) + "1allvdjhd3pq8xz30b1cymwcik5iaahghrjrlnn54cwkfhfg0kv2")))) (build-system r-build-system) (propagated-inputs `(("r-abind" ,r-abind) @@ -7176,13 +7205,13 @@ and coverage methods to tune the choice of threshold.") (define-public r-ggstance (package (name "r-ggstance") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "ggstance" version)) (sha256 - (base32 "0kdksay61hyb6612b07r84chh7a9aibjyclk3qcypvr9aang8hkh")))) + (base32 "0aqz3dn02cgij018a4sglqwrwr9dzzj12l8xr1064q7hfd4f64m1")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -8545,14 +8574,14 @@ ROPE percentage and pd).") (define-public r-performance (package (name "r-performance") - (version "0.4.4") + (version "0.4.5") (source (origin (method url-fetch) (uri (cran-uri "performance" version)) (sha256 (base32 - "18h9y66cpsb3k6xnaya87vnpv2s3chf4bzsc4ym3n5sxhh41j7la")))) + "0j6wmnwhfdd3v1a17qmg491q50579knjzscmyr4yk3xr0jbsbg8x")))) (build-system r-build-system) (propagated-inputs `(("r-bayestestr" ,r-bayestestr) @@ -8716,19 +8745,18 @@ back to file after modifications.") (define-public r-fs (package (name "r-fs") - (version "1.3.2") + (version "1.4.0") (source (origin (method url-fetch) (uri (cran-uri "fs" version)) (sha256 (base32 - "1w30bflx4d7a6f3dn96bf7s7v6aqpvz2yzzxal6qz9jyhb16bxaz")))) + "1ishdxrxy88w1lrn657a573wdra5v7xf1yfa1c4kss07rlynwrj7")))) (build-system r-build-system) - (propagated-inputs - `(("r-rcpp" ,r-rcpp))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("r-knitr" ,r-knitr))) (home-page "https://fs.r-lib.org") (synopsis "Cross-platform file system operations based on libuv") (description @@ -9121,14 +9149,14 @@ analysing multivariate abundance data in community ecology.") (define-public r-afex (package (name "r-afex") - (version "0.26-0") + (version "0.27-2") (source (origin (method url-fetch) (uri (cran-uri "afex" version)) (sha256 (base32 - "0h3p1svgk1ap3lj08fi8nzdb3710h99bv150krf1x8wci1a0r1if")))) + "0qsmcddy4449qjj3ajmqvdiqdkhkswmz5dqf150wxwq897p3bvf2")))) (build-system r-build-system) (propagated-inputs `(("r-car" ,r-car) @@ -9136,6 +9164,8 @@ analysing multivariate abundance data in community ecology.") ("r-lmertest" ,r-lmertest) ("r-pbkrtest" ,r-pbkrtest) ("r-reshape2" ,r-reshape2))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://afex.singmann.science/") (synopsis "Analysis of factorial experiments") (description @@ -9866,13 +9896,13 @@ maps.") (define-public r-tidytree (package (name "r-tidytree") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (cran-uri "tidytree" version)) (sha256 - (base32 "0dx9jn19mfykn20camsmq1amlgg0w6z5hn5rdqygs1fk1l5aazad")))) + (base32 "05b53dap0f784kl6s1wgck6m7brwmy6ifqp7v5l06s1spfspagl6")))) (build-system r-build-system) (propagated-inputs `(("r-ape" ,r-ape) @@ -11570,13 +11600,13 @@ regression coefficients can be conducted via jackknifing.") (define-public r-huge (package (name "r-huge") - (version "1.3.4") + (version "1.3.4.1") (source (origin (method url-fetch) (uri (cran-uri "huge" version)) (sha256 - (base32 "07n3j1va2z4v30rj22cww72khgzbz2xsp0yc0qswlrwyxi4my5i3")))) + (base32 "11m80dnaxqw5v006q6kvhndl2y5ih5553fcqg4jcaljd8sp9xvvq")))) (build-system r-build-system) (propagated-inputs `(("r-igraph" ,r-igraph) @@ -12712,14 +12742,14 @@ R, enabling interactive analysis and visualization of genome-scale data.") (define-public r-rematch2 (package (name "r-rematch2") - (version "2.1.0") + (version "2.1.1") (source (origin (method url-fetch) (uri (cran-uri "rematch2" version)) (sha256 (base32 - "00cznm6rk33b53w7zybkz7549bnydc66znpi5mb0xd24pmqp0rvq")))) + "13siaa8s2ji9q6hykhb2r34ag76335ypmbqr90xaqilbir0klhnh")))) (build-system r-build-system) (propagated-inputs `(("r-tibble" ,r-tibble))) @@ -19351,14 +19381,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.") (define-public r-forecast (package (name "r-forecast") - (version "8.11") + (version "8.12") (source (origin (method url-fetch) (uri (cran-uri "forecast" version)) (sha256 (base32 - "0ayidhnk9cxav2qi83jrvqlg2jh4zlf4lki4xw48gdqsmjvih9x1")))) + "1ycj5z4wd5a16nlcjy07dqm8jkih240xa02cn4wvysnnhkapyq7b")))) (properties `((upstream-name . "forecast"))) (build-system r-build-system) (propagated-inputs @@ -19503,14 +19533,14 @@ processing} (NLP) library @code{spaCy}, from @url{http://spacy.io}.") (define-public r-snowballc (package (name "r-snowballc") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) (uri (cran-uri "SnowballC" version)) (sha256 (base32 - "0b7pqdavf5jbf8si4ybnii5fff39p3b1rb5rym05j8s48hs7sqb1")))) + "1wwm71mp4b2mjb5985x782p6xj519dfrpd40qli7lmig6afyw3xi")))) (properties `((upstream-name . "SnowballC"))) (build-system r-build-system) (home-page "https://r-forge.r-project.org/projects/r-temis/") @@ -21027,3 +21057,26 @@ where tcltk is present are supported.") with R, controlling a remote R session (the server) from a local one (the client).") (license license:bsd-2))) + +(define-public r-asd + (package + (name "r-asd") + (version "2.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "asd" version)) + (sha256 + (base32 + "0p3r4qjam3sl3rpcilb0pgx4xx3ly71xqnvkv31vzjs885lgxz4l")))) + (properties `((upstream-name . "asd"))) + (build-system r-build-system) + (propagated-inputs + `(("r-mvtnorm" ,r-mvtnorm))) + (home-page "https://cran.r-project.org/web/packages/asd") + (synopsis "Simulations for Adaptive Seamless Designs") + (description + "This package provdes means to run simulations for adaptive seamless +designs with and without early outcomes for treatment selection and +subpopulation type designs.") + (license license:gpl3))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 64c170df73..a42661e3f8 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1476,7 +1476,7 @@ UTF-8.") (define-public rust-bumpalo-3 (package (name "rust-bumpalo") - (version "3.2.0") + (version "3.2.1") (source (origin (method url-fetch) @@ -1485,7 +1485,7 @@ UTF-8.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hpp4wfcn04gnl1ji4a80b85xwknsci81xqyllq174gq9z0rsd8z")))) + "11silgpsnfv6ir7j2nh7a69564f92vq20k9ha7zcbynpiav9vbhj")))) (build-system cargo-build-system) (arguments `(#:tests? #f ; cargo_readme_up_to_date test fails diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 6c971d0eb1..58e3f774df 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -74,12 +74,6 @@ `(cons ,(string-append "--target=" target) ,flags)))))) -(define (package-with-patch original patch) - "Return package ORIGINAL with PATCH applied." - (package (inherit original) - (source (origin (inherit (package-source original)) - (patches (list patch)))))) - (define* (cross-binutils target #:optional (binutils binutils)) "Return a cross-Binutils for TARGET using BINUTILS." (let ((binutils (package (inherit binutils) @@ -101,11 +95,17 @@ `(cons "--with-sysroot=/" ,flags))))))) ;; For Xtensa, apply Qualcomm's patch. - (cross (if (string-prefix? "xtensa-" target) - (package-with-patch binutils - (search-patch - "ath9k-htc-firmware-binutils.patch")) - binutils) + (cross (cond ((string-prefix? "xtensa-" target) + (package-with-patches binutils + (search-patches + "ath9k-htc-firmware-binutils.patch"))) + ((target-mingw? target) + (package-with-extra-patches + binutils + (search-patches + "binutils-mingw-w64-specify-timestamp.patch" + "binutils-mingw-w64-reproducible-import-libraries.patch"))) + (else binutils)) target))) (define (cross-gcc-arguments target xgcc libc) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 4ed181021f..b969b8f081 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -41,6 +41,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2205,6 +2206,41 @@ can autogenerate peewee models using @code{pwiz}, a model generator.") (define-public python2-peewee (package-with-python2 python-peewee)) +(define-public python-tortoise-orm + (package + (name "python-tortoise-orm") + (version "0.16.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tortoise-orm" version)) + (sha256 + (base32 + "01hbvfyxs2qd1mjc96aipwsdxxhydw8ww686r4gsf87bl6f98dvz")))) + (build-system python-build-system) + ;; Disable tests for now. They pull in a lot of dependencies. + (arguments `(#:tests? #f)) + (native-inputs + `(("python-ciso8601" ,python-ciso8601) + ("python-asynctest" ,python-asynctest) + ("python-nose2" ,python-nose2))) + (propagated-inputs + `(("python-aiosqlite" ,python-aiosqlite) + ("python-pypika" ,python-pypika) + ("python-typing-extensions" + ,python-typing-extensions))) + (home-page + "https://github.com/tortoise/tortoise-orm") + (synopsis + "Easy async ORM for python, built with relations in mind") + (description + "Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper) +inspired by Django. Tortoise ORM was build with relations in mind and +admiration for the excellent and popular Django ORM. It’s engraved in its +design that you are working not with just tables, you work with relational +data.") + (license license:asl2.0))) + (define-public sqlcipher (package (name "sqlcipher") @@ -2716,6 +2752,29 @@ translate the complete SQLite API into Python.") (define-public python2-apsw (package-with-python2 python-apsw)) +(define-public python-aiosqlite + (package + (name "python-aiosqlite") + (version "0.11.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiosqlite" version)) + (sha256 + (base32 + "1f3zdldp9zgrw6qz5fsp3wa5zw73cjf139pj4vf24ryv895320jg")))) + (build-system python-build-system) + (native-inputs + `(("python-aiounittest" ,python-aiounittest))) + (home-page "https://github.com/jreese/aiosqlite") + (synopsis + "Asyncio bridge for sqlite3") + (description + "The package aiosqlite replicates the standard sqlite3 module, but with +async versions of all the standard connection and cursor methods, and context +managers for automatically closing connections.") + (license license:expat))) + (define-public python2-neo4j-driver (package (name "python2-neo4j-driver") @@ -3024,6 +3083,27 @@ transforms idiomatic python function calls to well-formed SQL queries.") (define-public python2-sql (package-with-python2 python-sql)) +(define-public python-pypika + (package + (name "python-pypika") + (version "0.36.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyPika" version)) + (sha256 + (base32 + "0qzn5vygirg52dlizm6ayzdc5llq8p2krrx0kymr236lrz89wqp8")))) + (build-system python-build-system) + (native-inputs + `(("python-parameterized" ,python-parameterized))) + (home-page "https://github.com/kayak/pypika") + (synopsis "SQL query builder API for Python") + (description + "PyPika is a python SQL query builder that exposes the full richness of +the SQL language using a syntax that reflects the resulting query.") + (license license:asl2.0))) + (define-public mongo-tools (package (name "mongo-tools") diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 75dd94d868..4a264427c2 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,11 +120,11 @@ program to exhibit a bug.") (sha256 (base32 "0qx0zq8jxzx2as2zf0740g7kvgq163ayn3041di4vwk77490y76v")))) (build-system gnu-build-system) + (native-inputs `(("flex" ,flex))) (inputs `(("astyle" ,astyle) ("llvm" ,llvm) ("clang" ,clang) - ("flex" ,flex) ("indent" ,indent) ("perl" ,perl) ("exporter-lite" ,perl-exporter-lite) diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm index f6ab56887c..44a7a21b6b 100644 --- a/gnu/packages/dico.scm +++ b/gnu/packages/dico.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,13 +64,13 @@ (lambda _ ;; Test '71: append + dooffs + env' fails if $V is not 2. (invoke "make" "check" "V=2")))))) + (native-inputs `(("groff" ,groff))) (inputs `(("m4" ,m4) ;used at run time ("pcre" ,pcre) ("python" ,python-2) ("guile" ,guile-2.2) ("gsasl" ,gsasl) - ("groff" ,groff) ("readline" ,readline) ("zlib" ,zlib) ("wordnet" ,wordnet) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 0e452d6df8..b835fb4510 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -68,7 +68,7 @@ #:use-module (ice-9 match)) (define-public diffoscope - (let ((version "137")) + (let ((version "138")) (package (name "diffoscope") (version version) @@ -80,7 +80,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "11llnh2h2mx3xygj4482ld1rnjnhszk4828pmcbi75kanxfrqzq6")))) + "1lsxwyqaaxmin8h06l0352f0kh0l9brbqfn0zv8hmb64bp5r20nr")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -228,7 +228,7 @@ install.") (define-public reprotest (package (name "reprotest") - (version "0.7.13") + (version "0.7.14") (source (origin (method git-fetch) @@ -236,10 +236,9 @@ install.") (url "https://salsa.debian.org/reproducible-builds/reprotest.git") (commit version))) (file-name (git-file-name name version)) - (patches (search-patches "reprotest-support-guix.patch")) (sha256 (base32 - "0jj9sqxbdpypnc0y8md352wwzh1by6nyhmx5fwqnvrbznrng332f")))) + "12d07xq5zx5dfbsgakm6zcn7hgf0h9f5kvfjqkiyak4ix5aa6xkf")))) (inputs `(("python-debian" ,python-debian) ("python-distro" ,python-distro) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 0a9283a526..07ea1c93cd 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Pkill -9 <pkill9@runbox.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -370,12 +371,12 @@ and can dramatically shorten the lifespan of the drive if left unchecked.") ("parted" ,parted) ("glib" ,glib) ("gtkmm" ,gtkmm) - ("libxml2" ,libxml2) - ("yelp-tools" ,yelp-tools))) + ("libxml2" ,libxml2))) (native-inputs `(("intltool" ,intltool) ("itstool" ,itstool) ("lvm2" ,lvm2) ; for tests + ("yelp-tools" ,yelp-tools) ("pkg-config" ,pkg-config))) (home-page "https://gparted.org/") (synopsis "Partition editor to graphically manage disk partitions") diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 69dee2b856..c95ca3f9d7 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -503,6 +503,7 @@ built-in registry server of Docker.") (replace 'configure (lambda _ (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) + (setenv "VERSION" (string-append ,%docker-version "-ce")) ;; Automatically use bundled dependencies. ;; TODO: Unbundle - see file "vendor.conf". (setenv "AUTO_GOPATH" "1") @@ -540,7 +541,9 @@ built-in registry server of Docker.") (let* ((out (assoc-ref outputs "out")) (out-bin (string-append out "/bin"))) (install-file "bundles/dynbinary-daemon/dockerd" out-bin) - (install-file "bundles/dynbinary-daemon/dockerd-dev" out-bin) + (install-file (string-append "bundles/dynbinary-daemon/dockerd-" + (getenv "VERSION")) + out-bin) #t)))))) (inputs `(("btrfs-progs" ,btrfs-progs) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 22b6c4ba12..48879df1bd 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -104,6 +104,7 @@ (delete-file "resources/calibre-portable.sh") #t)) (patches (search-patches "calibre-no-updates-dialog.patch" + "calibre-msgpack-compat.patch" "calibre-remove-test-bs4.patch" ; TODO: fix test. "calibre-remove-test-sqlite.patch" ; TODO: fix test. "calibre-remove-test-unrar.patch")))) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index feea43b500..58999d6611 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -65,6 +65,8 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc> +;;; Copyright © 2020 John Soo <jsoo1@asu.edu> +;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,6 +214,32 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.") (license license:bsd-3))) +(define-public emacs-ac-geiser + (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05") + (revision "0")) + (package + (name "emacs-ac-geiser") + (version (git-version "0.1" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/xiaohanyu/ac-geiser.git") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("geiser" ,emacs-geiser) + ("auto-complete" ,emacs-auto-complete))) + (synopsis "Auto-complete backend for geiser") + (description + "This package provides an auto-complete source for Scheme projects +using geiser.") + (license license:bsd-3) + (home-page "https://github.com/xiaohanyu/ac-geiser")))) + (define-public emacs-paredit (package (name "emacs-paredit") @@ -1484,6 +1512,65 @@ always indented. It reindents after every change, making it more reliable than @code{electric-indent-mode}.") (license license:gpl2+))) +(define-public emacs-ctrlf + (package + (name "emacs-ctrlf") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raxod502/ctrlf.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z")))) + (build-system emacs-build-system) + (home-page "https://github.com/raxod502/ctrlf/") + (synopsis "Single-buffer text search in Emacs") + (description "CTRLF (pronounced @emph{control F}) is an intuitive and +efficient solution for single-buffer text search in Emacs, replacing packages +such as Isearch, Swiper, and helm-swoop. It takes inspiration from the +widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as +web browsers, but follows the flow and keybindings of Isearch.") + (license license:expat))) + +(define-public emacs-dhall-mode + ;; There is no proper release. The base version is extracted from the + ;; "Version" keyword in the main file. + (let ((revision "0") + (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2")) + (package + (name "emacs-dhall-mode") + (version (git-version "0.1.3" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/psibi/dhall-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-reformatter" ,emacs-reformatter))) + (home-page "https://github.com/psibi/dhall-mode") + (synopsis "Major mode for working with Dhall configuration language") + (description + "Dhall-mode provides an Emacs Major mode for working with the Dhall +configuration language. It features: + +@itemize +@item Syntax highlighting +@item Multiline support for String +@item Basic indendation, commenting +@item Automatic formatting on save using dhall-format. +@item Error highlighting. +@end itemize") + (license license:gpl3+)))) + (define-public emacs-link-hint ;; Last release was in 2015. (let ((commit "d74a483652486260c052941fedeadddb1ea71f88") @@ -1704,6 +1791,25 @@ searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") Emacs buffer.") (license license:gpl3+))) +(define-public emacs-caps-lock + (package + (name "emacs-caps-lock") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "caps-lock-" version ".el")) + (sha256 + (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/caps-lock.html") + (synopsis "Caps Lock as a minor mode") + (description + "This package provides a minor mode to emulate the behavior of a Caps +Lock key.") + (license license:gpl3+))) + (define-public emacs-chronometrist (package (name "emacs-chronometrist") @@ -1768,6 +1874,50 @@ Using emacs-direnv means that programs started from Emacs will use the environment set through Direnv.") (license license:gpl3+))) +(define-public emacs-elf-mode + (package + (name "emacs-elf-mode") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/abo-abo/elf-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k")))) + (build-system emacs-build-system) + (home-page "https://github.com/abo-abo/elf-mode") + (synopsis "Show symbol list when opening a binary file in Emacs") + (description "This Emacs package provides a command showing the symbols +that the binary uses instead of the actual binary contents.") + (license license:gpl3+))) + +(define-public emacs-form-feed + (package + (name "emacs-form-feed") + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wasamasa/form-feed.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2")))) + (build-system emacs-build-system) + (home-page "https://github.com/wasamasa/form-feed") + (synopsis "Display ^L glyphs as horizontal lines") + (description + "This package provides a minor mode @code{form-feed-mode} to display page +delimiters which usually appear as ^L glyphs on a single line as horizontal +lines spanning the entire window. The minor mode is suitable for inclusion +into mode hooks and is intended to be used that way.") + (license license:gpl3+))) + (define-public emacs-ggtags (package (name "emacs-ggtags") @@ -1874,53 +2024,76 @@ Maps directly inside Emacs.") (license license:gpl3+))) (define-public emacs-graphviz-dot-mode - (let ((commit "1574c504d9810f34a85e2ff49b6f7648c2be5f27") - (revision "1")) - (package - (name "emacs-graphviz-dot-mode") - (version (string-append "0.4.1-" revision "." - (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ppareit/graphviz-dot-mode.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03l6zkkxhbcxj5i13hzjv6ypmzaw70zqqagh7ix1kdn33kpp37jj")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda* (#:key inputs #:allow-other-keys) - (with-directory-excursion "texinfo" - (substitute* "Makefile" - (("\\/usr\\/bin\\/gzip") - (string-append (assoc-ref inputs "gzip") "/bin/gzip"))) - (invoke "make" - "clean" - "info" - (string-append "TEXINFODIR=" - (assoc-ref inputs "texinfo") - "/bin"))))) - (add-after 'install 'install-info - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info (string-append out "/share/info"))) - (install-file "texinfo/graphviz-dot-mode.info.gz" info) - #t)))))) - (native-inputs - `(("texinfo" ,texinfo) - ("gzip" ,gzip))) - (home-page "http://ppareit.github.com/graphviz-dot-mode") - (synopsis "Major mode for editing Graphviz Dot files") - (description - "This Emacs packages helps you to create @file{.dot} or @file{.gv} -files using the dot syntax, and use Graphviz to convert these files to -diagrams.") - (license license:gpl2+)))) + (package + (name "emacs-graphviz-dot-mode") + (version "0.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ppareit/graphviz-dot-mode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-info + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "texinfo" + (substitute* "Makefile" + (("\\/usr\\/bin\\/gzip") + (string-append (assoc-ref inputs "gzip") "/bin/gzip"))) + (invoke "make" + "clean" + "info" + (string-append "TEXINFODIR=" + (assoc-ref inputs "texinfo") + "/bin"))))) + (add-after 'install 'install-info + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info (string-append out "/share/info"))) + (install-file "texinfo/graphviz-dot-mode.info.gz" info) + #t)))))) + (native-inputs + `(("gzip" ,gzip) + ("texinfo" ,texinfo))) + (propagated-inputs + `(("emacs-company" ,emacs-company))) + (home-page "http://ppareit.github.com/graphviz-dot-mode") + (synopsis "Major mode for editing Graphviz DOT files") + (description + "This Emacs package helps you to create @file{.dot} or @file{.gv} files +using the DOT syntax, and use Graphviz to convert these files to diagrams.") + (license license:gpl2+))) + +(define-public emacs-imenu-list + (package + (name "emacs-imenu-list") + (version "0.8") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/bmag/imenu-list") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx")))) + (build-system emacs-build-system) + (home-page "https://github.com/bmag/imenu-list") + (synopsis + "Automatically tracks the current buffer's imenu entries") + (description + "This Emacs minor mode creates an automatically updated buffer called +@code{*Ilist*} that is populated with the current buffer's imenu entries. +This buffer is typically shown as a sidebar (Emacs vertically splits the +window).") + (license license:gpl3+))) (define-public emacs-mmm-mode (package @@ -3286,6 +3459,30 @@ the speedbar window.") "This package provides a macro that writes your namespaces for you.") (license license:gpl3+)))) +(define-public emacs-evil-leader + (package + (name "emacs-evil-leader") + (version "0.4.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/cofi/evil-leader") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5")))) + (inputs + `(("emacs-evil" ,emacs-evil))) + (build-system emacs-build-system) + (home-page "https://github.com/cofi/evil-leader") + (synopsis "Implement <leader> feature from Vim") + (description + "Evil Leader provides the @code{<leader>} feature from Vim that provides +an easy way to bind keys under a configurable prefix key.") + (license license:gpl3+))) + (define-public emacs-evil-textobj-syntax (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3") (version "0") @@ -3396,10 +3593,36 @@ It also provides an easy way to find synonyms and antonyms for a given word (to avoid repetitions for example).") (license license:gpl3+))) +(define-public emacs-flycheck-rust + (package + (name "emacs-flycheck-rust") + (version "1.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/flycheck/flycheck-rust") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-flycheck" ,emacs-flycheck) + ("emacs-let-alist" ,emacs-let-alist))) + (build-system emacs-build-system) + (home-page "https://github.com/flycheck/flycheck-rust") + (synopsis "Rust/Cargo support for Flycheck") + (description + "This Flycheck extension configures Flycheck automatically for +the current Cargo project.") + (license license:gpl3+))) + (define-public emacs-elisp-demos (package (name "emacs-elisp-demos") - (version "2019.12.01") + (version "2020.02.19") (source (origin (method git-fetch) @@ -3409,7 +3632,7 @@ word (to avoid repetitions for example).") (file-name (git-file-name name version)) (sha256 (base32 - "097d8xhvq0770z96wlhiv4gz98cq89pwx5fa42zpfh4p85qj4q9z")))) + "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "\\.org$") @@ -3878,6 +4101,43 @@ completion candidate when using the Company text completion framework.") @code{company-math}.") (license license:gpl3+)))) +(define-public emacs-company-coq + (package + (name "emacs-company-coq") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/cpitclaudel/company-coq") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b")))) + (inputs + `(("emacs-company" ,emacs-company) + ("emacs-company-math" ,emacs-company-math) + ("emacs-dash" ,emacs-dash) + ("emacs-yasnippet" ,emacs-yasnippet))) + (build-system emacs-build-system) + (home-page "https://github.com/cpitclaudel/company-coq") + (synopsis "Emacs extensions for Proof General's Coq mode") + (description "This package includes a collection of Company mode backends +for Proof-General's Coq mode, and many useful extensions to Proof-General. It +features: + +@itemize +@item Prettification of operators, types, and subscripts, +@item Auto-completion, +@item Insertion of cases, +@item Fully explicit intros, +@item Outlines, code folding, and jumping to definition, +@item Help with errors, +@item and more. +@end itemize") + (license license:gpl3+))) + (define-public emacs-company-math (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9") (revision "1")) @@ -4655,7 +4915,7 @@ number.") (define-public emacs-org-superstar (package (name "emacs-org-superstar") - (version "1.0.0") + (version "1.1.0") (source (origin (method git-fetch) @@ -4664,7 +4924,7 @@ number.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0q6180qwjpha10zsiw0ni6lanyjwlj8141a6qivfcs8nwczz7nvz")))) + (base32 "14aafqw8rnbmiy3kcw1a58vjxdyamrbmlldnlw018wgk0qqv0xpx")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-org" ,emacs-org))) @@ -5109,33 +5369,55 @@ them easier to distinguish from other, less important buffers.") (license license:expat))) (define-public emacs-prescient - ;; XXX: emacs-ivy introduced a commit that disables sorting for counsel-M-x - ;; by default, so we use a non-release version ahead by one commit - (let ((commit "95056580ed743da92b05aaf86f943ee05600c28d") - (revision "1")) - (package - (name "emacs-prescient") - (version (git-version "3.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/raxod502/prescient.el/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06qxs8p66jr4gg9m1gd27v5may32f3n28la56cv4f4prinqyyfj7")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-company" ,emacs-company) - ("emacs-ivy" ,emacs-ivy))) - (home-page "https://github.com/raxod502/prescient.el/") - (synopsis "Library that sorts and filters lists of candidates") - (description - "This package provides a library for sorting and filtering, as well as -extensions for @code{ivy-mode} and @code{company-mode} that make use of the -library.") - (license license:gpl3+)))) + (package + (name "emacs-prescient") + (version "4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raxod502/prescient.el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-company" ,emacs-company) + ("emacs-ivy" ,emacs-ivy) + ("emacs-selectrum" ,emacs-selectrum))) + (home-page "https://github.com/raxod502/prescient.el/") + (synopsis "Emacs library for sorting and filtering candidates") + (description + "Prescient is a library for sorting and filtering, as well as extensions +for Ivy and Company that make use of the library.") + (license license:expat))) + +(define-public emacs-selectrum + (package + (name "emacs-selectrum") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raxod502/selectrum.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm")))) + (build-system emacs-build-system) + (home-page "https://github.com/raxod502/selectrum/") + (synopsis "Incremental narrowing in Emacs") + (description "Selectrum is a solution for incremental narrowing in +Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based +on choosing the right abstractions and prioritizing consistency and +predictability over special-cased improvements for particular cases. +As such, Selectrum follows existing Emacs conventions where they exist +and are reasonable, and it declines to implement features which have +marginal benefit compared to the additional complexity of a new +interface.") + (license license:expat))) (define-public emacs-smartparens (package @@ -6670,6 +6952,35 @@ functions to assist in reviewing changes on files.") environments (virtualenv) inside Emacs.") (license license:gpl3+))) +(define-public emacs-highlight-indent-guides + (let ((version "0.8.5") ; from package metadata + (revision "0") + (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c")) + (package + (name "emacs-highlight-indent-guides") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DarthFennec/highlight-indent-guides.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2")))) + (build-system emacs-build-system) + (home-page + "https://github.com/DarthFennec/highlight-indent-guides") + (synopsis "Minor mode to highlight indentation") + (description + "This package provides a minor mode to highlight indentation levels via +font-lock. Indent widths are dynamically discovered, which means this +correctly highlights in any mode, regardless of indent width, even in +languages with non-uniform indentation such as Haskell. This mode works +properly around hard tabs and mixed indentation and behaves well in large +buffers.") + (license license:expat)))) + (define-public emacs-highlight-indentation ;; Last release version is from 2015. (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f") @@ -7429,8 +7740,8 @@ sly-quickload command that prompts the user for a package to install. ") (license license:gpl3+)))) (define-public emacs-sly-asdf - (let ((commit "ad248056ded3099b0528b6111ba335e835d9e5a7") - (revision "3")) + (let ((commit "32ce14994e8faee9321605cec36d156b02996c46") + (revision "4")) (package (name "emacs-sly-asdf") (version (git-version "0.1.0" revision commit)) @@ -7444,7 +7755,7 @@ sly-quickload command that prompts the user for a package to install. ") (file-name (git-file-name name version)) (sha256 (base32 - "0lip0spmglny3y612pxn3rfnpdaj12c9f7ya7bprryg2gvcdippa")))) + "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-sly" ,emacs-sly) @@ -7774,6 +8085,30 @@ a popup window for previewing candidates.") arguments, such as arguments separated by commas and semicolons.") (license license:expat)))) +(define-public emacs-evil-escape + (package + (name "emacs-evil-escape") + (version "3.14") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/syl20bnr/evil-escape") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i")))) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (build-system emacs-build-system) + (home-page "https://github.com/syl20bnr/evil-escape") + (synopsis "Escape from insert state and everything else in Emacs") + (description + "Evil escape provides a customizable key sequence to escape from insert +state and everything else in Emacs.") + (license license:gpl3+))) + (define-public emacs-evil-exchange (let ((commit "47691537815150715e64e6f6ec79be7746c96120") (version "0.41") @@ -13542,6 +13877,45 @@ within Emacs.") grouping buffers by their projectile root directory.") (license license:gpl3+)))) +(define-public emacs-elm-mode + (package + (name "emacs-elm-mode") + (version "0.21.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jcollard/elm-mode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-reformatter" ,emacs-reformatter) + ("emacs-s" ,emacs-s))) + (build-system emacs-build-system) + (home-page "https://github.com/jcollard/elm-mode") + (synopsis "Emacs major mode for editing Elm source code") + (description + "This package provides a major mode for editing Elm source code, and +working with common core and third-party Elm tools. Its features are: + +@itemize +@item Syntax highlighting +@item Intelligent indentation +@item Integration with elm-make +@item Integration with elm-repl +@item Integration with elm-reactor +@item Integration with elm-package +@item Integration with elm-oracle +@item Integration with elm-format +@item Integration with elm-test +@end itemize") + (license license:gpl3+))) + (define-public emacs-helm-mode-manager (package (name "emacs-helm-mode-manager") @@ -13657,18 +14031,18 @@ throw a shell history.") (version "1.0") (source (origin - (method url-fetch) - (uri - (string-append "https://github.com/steckerhalter/discover-my-major" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://framagit.org/steckerhalter/discover-my-major.git/") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl")))) + "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-makey" ,emacs-makey))) - (home-page "https://github.com/steckerhalter/discover-my-major") + (home-page "https://framagit.org/steckerhalter/discover-my-major/") (synopsis "Discover key bindings for the current Emacs major mode") (description "This package provides allows to discover key bindings and their meaning for the current Emacs major-mode.") @@ -14540,10 +14914,11 @@ bookmarks and history.") (license license:gpl3+))) (define-public emacs-stumpwm-mode - (let ((commit "5328f85fbf6a8b08c758c17b9435368bf7a68f39")) + (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91") + (revision "2")) (package (name "emacs-stumpwm-mode") - (version (git-version "0.0.1" "1" commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -14552,7 +14927,7 @@ bookmarks and history.") (file-name (git-file-name name version)) (sha256 (base32 - "00kf4k8bqadi5s667wb96sn549v2kvw01zwszjrg7nhd805m1ng6")))) + "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn")))) (build-system emacs-build-system) (arguments `(#:phases @@ -16229,6 +16604,49 @@ and 'text viewing modes' respectively.") files. It focuses on highlighting the document to improve readability.") (license license:gpl2+))) +(define-public emacs-racer + (package + (name "emacs-racer") + (version "1.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/racer-rust/emacs-racer") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6")))) + (arguments + `(#:tests? #t + #:test-command '("make" "test") + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-makefile + (lambda _ + (substitute* "Makefile" + (("\\$\\{CASK\\} exec ") "")) + #t))))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-pos-tip" ,emacs-pos-tip) + ("emacs-rust-mode" ,emacs-rust-mode) + ("emacs-s" ,emacs-s))) + (build-system emacs-build-system) + (home-page "https://github.com/racer-rust/emacs-racer") + (synopsis "Racer support for Emacs") + (description + "This is the official Emacs package for Racer. It supports code +completion of variables, functions and modules. It can also jump to +definition of functions and types, and show a help buffer based on the +docstring of the thing at point.") + (license license:expat))) + (define-public emacs-rust-mode (package (name "emacs-rust-mode") @@ -16652,7 +17070,7 @@ files are easily readable and they work nicely with version control systems.") (define-public emacs-all-the-icons (package (name "emacs-all-the-icons") - (version "3.2.0") + (version "4.0.1") (source (origin (method git-fetch) @@ -16661,8 +17079,7 @@ files are easily readable and they work nicely with version control systems.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn")))) + (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "^data/" "^fonts/") @@ -16675,10 +17092,11 @@ files are easily readable and they work nicely with version control systems.") ("memoize" ,emacs-memoize))) (home-page "https://github.com/domtronn/all-the-icons.el") (synopsis "Collect icon fonts and propertize them within Emacs") - (description "All-the-icons is a utility package to collect various icon -fonts and propertize them within Emacs. Icon fonts allow you to propertize -and format icons the same way you would normal text. This enables things such -as better scaling of and anti aliasing of the icons.") + (description + "All-the-icons is a utility package to collect various icon fonts and +propertize them within Emacs. Icon fonts allow you to propertize and format +icons the same way you would normal text. This enables things such as better +scaling of and anti aliasing of the icons.") ;; Package is released under Expat license. Elisp files are licensed ;; under GPL3+. Fonts come with various licenses: Expat for ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for @@ -17089,23 +17507,39 @@ other frame parameters.") (license license:gpl3+))) (define-public emacs-arduino-mode - (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet + (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b") + (revision "1")) ;no release yet (package (name "emacs-arduino-mode") - (version (git-version "0" "0" commit)) + (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/bookest/arduino-mode.git") + (url "https://github.com/stardiviner/arduino-mode.git") (commit commit))) (sha256 (base32 - "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c")) + "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx")) (file-name (git-file-name name version)))) (build-system emacs-build-system) + (inputs + `(("spinner" ,emacs-spinner) + ("flycheck" ,emacs-flycheck))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Emacs complains that "defmethod" and "defgeneric" are obsolete + ;; macros when compiling. Substitute them with the recommended + ;; macros "cl-defmethod" and "cl-defgeneric", respectively. + (add-after 'unpack 'fix-obsolete + (lambda _ + (substitute* "ede-arduino.el" + (("defmethod") "cl-defmethod") + (("defgeneric") "cl-defgeneric")) + #t))))) (synopsis "Emacs major mode for editing Arduino sketches") (description "Emacs major mode for editing Arduino sketches.") - (home-page "https://github.com/bookest/arduino-mode") + (home-page "https://github.com/stardiviner/arduino-mode") (license license:gpl3+)))) (define-public emacs-annalist @@ -18455,6 +18889,31 @@ unescaping of quotes.") @code{end-of-defun} functions for Vimscript files.") (license license:gpl3+)))) +(define-public emacs-flycheck-elm + (let ((revision "0") + (commit "1b60050efd4729bfba548f3e5adbcb58436667cb")) + (package + (name "emacs-flycheck-elm") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/bsermons/flycheck-elm") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-flycheck" ,emacs-flycheck) + ("emacs-let-alist" ,emacs-let-alist))) + (home-page "https://github.com/bsermons/flycheck-elm") + (synopsis "Flycheck support for the Elm language") + (description "Flycheck Elm adds Flycheck support for Elm language.") + (license license:gpl3+)))) + (define-public emacs-flycheck-haskell (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278") (revision "2")) @@ -19598,6 +20057,32 @@ corresponding Evil keys.") commands in @code{evil-mode}.") (license license:gpl3+)))) +(define-public emacs-evil-tmux-navigator + (package + (name "emacs-evil-tmux-navigator") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keith/evil-tmux-navigator") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx")))) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (build-system emacs-build-system) + (home-page "https://github.com/keith/evil-tmux-navigator") + (synopsis + "Navigate seamlessly between emacs windows and tmux panes") + (description + "This package lets you use C-h, C-j, C-k and C-l to navigate between +Emacs windows and tmux panes.") + (license license:expat))) + (define-public emacs-xterm-color (package (name "emacs-xterm-color") @@ -20272,32 +20757,51 @@ Emacs that integrate with major modes like Org-mode.") (home-page "https://github.com/hlissner/emacs-doom-themes") (license license:expat)))) -(define-public emacs-modus-themes +(define-public emacs-modus-operandi-theme (package - (name "emacs-modus-themes") - (version "0.6.0") + (name "emacs-modus-operandi-theme") + (version "0.7.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/protesilaos/modus-themes.git") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "modus-operandi-theme-" version ".el")) (sha256 - (base32 "15z6qq0b0npp7hscmh04i3mi10bynzdy52fv2b160nji264zvcwa")))) + (base32 "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2")))) (build-system emacs-build-system) (home-page "https://gitlab.com/protesilaos/modus-themes") - (synopsis "Emacs themes designed for colour-contrast accessibility") + (synopsis "Accessible light theme (WCAG AAA)") (description - "This is a set of accessible themes for GNU Emacs. The contrast ratio -between foreground and background values should always be >= 7:1, which -conforms with the WCAG AAA accessibility standard. + "Modus operandi is the light version of the Modus accessible themes for +GNU Emacs. The contrast ratio between foreground and background values should +always be greater than 7:1, which conforms with the WCAG AAA accessibility +standard. This is the highest standard of its kind.") + (license license:gpl3+))) -The Modus themes project consists of two standalone items, one where dark text -is cast on a light backdrop (Modus Operandi) and another where light text is -displayed against a dark background (Modus Vivendi).") +(define-public emacs-modus-vivendi-theme + (package + (name "emacs-modus-vivendi-theme") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "modus-vivendi-theme-" version ".el")) + (sha256 + (base32 "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/protesilaos/modus-themes") + (synopsis "Accessible dark theme (WCAG AAA)") + (description + "Modus vivendi is the dark version of the Modus accessible themes for GNU +Emacs. The contrast ratio between foreground and background values should +always be greater than 7:1, which conforms with the WCAG AAA accessibility +standard. This is the highest standard of its kind.") (license license:gpl3+))) +(define-public emacs-modus-themes + (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme)) + (define-public emacs-punpun-theme (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65") (revision "0")) @@ -20323,8 +20827,8 @@ color. Designed for 256-color terminals. Comes in light and dark!") (license license:gpl3+)))) (define-public emacs-spacemacs-theme - (let ((commit "e088bff4f190495615c29de93079aaa823e2300c") - (revision "0")) + (let ((commit "f79c40fb241e204539fde97200abae91e828e585") + (revision "1")) (package (name "emacs-spacemacs-theme") (version (git-version "0" revision commit)) ;no release yet @@ -20336,7 +20840,7 @@ color. Designed for 256-color terminals. Comes in light and dark!") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "09p5pzy3ibrl8dxmg10v8j16wxdn1fkdqpbi8l9pgfib2azmnvnc")))) + (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n")))) (build-system emacs-build-system) (home-page "https://github.com/nashamri/spacemacs-theme") (synopsis @@ -21757,3 +22261,40 @@ enables modal editing and composition of commands, too. It combines ideas of other Editors like Vim or Kakoune and tries to align them with regular Emacs conventions.") (license license:gpl3+))) + +(define-public emacs-haskell-snippets + ;; The commit below is 5 commits ahead of release, and includes a build fix. + (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a")) + (package + (name "emacs-haskell-snippets") + (version (git-version "0.1.0" "0" commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/haskell/haskell-snippets") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-snippets + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (snippets + (string-append + out "/share/emacs/site-lisp/snippets/haskell-mode"))) + (mkdir-p snippets) + (copy-recursively "snippets/haskell-mode" snippets) + #t)))))) + (propagated-inputs + `(("emacs-yasnippet" ,emacs-yasnippet))) + (home-page "https://github.com/haskell/haskell-snippets") + (synopsis "Official collection of YASnippet Haskell snippets for Emacs") + (description "Haskell-Snippets is a collection of YASnippet Haskell +snippets for Emacs.") + (license license:expat)))) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 2fcb176ae4..58d6c73ee2 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -197,7 +197,7 @@ "-DX11_FOUND=1"))) (native-inputs `(("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext))) + ("gettext" ,gettext-minimal))) (inputs `(("alsa-lib" ,alsa-lib) ("ao" ,ao) @@ -311,28 +311,19 @@ and a game metadata scraper.") (home-page "https://emulationstation.org") (license license:expat)))) -;; Note: higan v107 has been released, but as explained by the dialog that -;; appears after starting the new version, it's an experimental release. The -;; author recommends v106 for general use. -;; -;; When updating to v107 (or probably beyond), sdl will have to be replaced -;; with sdl2, and libxrandr will need to be added to inputs. The patch -;; `higan-remove-march-native-flag.patch' will not be necessary, since the flag -;; is now being added only for `platform=local', which is not the default. (define-public higan (package (name "higan") - (version "106") + (version "110") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/byuu/higan/") - (commit (string-append "v" version)))) + (url "https://github.com/higan-emu/higan.git") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1mxivf8124vz4hl0b0xa1yqv0z9m3i12v9psmbpqkprrbq0wbgn1")) - (patches (search-patches "higan-remove-march-native-flag.patch")))) + (base32 "11rvm53c3p2f6zk8xbyv2j51xp8zmqnch7zravhj3fk590qrjrr2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -342,11 +333,12 @@ and a game metadata scraper.") ("eudev" ,eudev) ("gtk+" ,gtk+-2) ("gtksourceview-2" ,gtksourceview-2) + ("libxrandr" ,libxrandr) ("libxv" ,libxv) ("mesa" ,mesa) ("openal" ,openal) ("pulseaudio" ,pulseaudio) - ("sdl" ,sdl))) + ("sdl2" ,sdl2))) (arguments '(#:phases (let ((build-phase (assoc-ref %standard-phases 'build)) @@ -405,18 +397,19 @@ and a game metadata scraper.") (string-append "prefix=" (assoc-ref %outputs "out"))) ;; There is no test suite. #:tests? #f)) - (home-page "https://byuu.org/higan") - (synopsis "Nintendo multi-system emulator") + (home-page "https://github.com/higan-emu/higan/") + (synopsis "Multi-system emulator") (description - "higan (formerly bsnes) is an emulator for multiple Nintendo video game -consoles, including the Nintendo Entertainment System (NES/Famicom), Super -Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy -Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems -Super Game Boy, BS-X Satellaview, and Sufami Turbo.") - ;; As noted in these files among more: - ;; - icarus/icarus.cpp - ;; - higan/emulator/emulator.hpp - (license license:gpl3))) + "higan is a multi-system emulator with an uncompromising focus on +accuracy and code readability. + +It currently emulates the following systems: Famicom, Famicom Disk System, +Super Famicom, Super Game Boy, Game Boy, Game Boy Color, Game Boy Advance, +Game Boy Player, SG-1000, SC-3000, Master System, Game Gear, Mega Drive, Mega +CD, PC Engine, SuperGrafx, MSX, MSX2, ColecoVision, Neo Geo Pocket, Neo Geo +Pocket Color, WonderSwan, WonderSwan Color, SwanCrystal, Pocket Challenge +V2.") + (license license:gpl3+))) (define-public mgba (package @@ -1281,7 +1274,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.219") + (version "0.220") (source (origin (method git-fetch) @@ -1290,7 +1283,7 @@ play them on systems for which they were never designed!") (commit (apply string-append "mame" (string-split version #\.))))) (file-name (git-file-name name version)) (sha256 - (base32 "0s3nhkfa5c17ar1lzgvm20ndqain9llgqkab0ji5ycv2c85f06fl")) + (base32 "0x3yr195zi7xjr21p1c2l8c0vhg0a0af0mpz4i1w7q7r9krvcvz4")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 5854249bb1..6a5f12db6d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com> ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -227,13 +228,13 @@ plans and designs.") ("glib" ,glib) ("gtk" ,gtk+-2) ("guile" ,guile-2.0) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("m4" ,m4) ("pcb" ,pcb) ("python" ,python-2))) ; for xorn (native-inputs `(("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) ("perl" ,perl))) ; for tests (home-page "http://geda-project.org/") (synopsis "Schematic capture, netlister, symbols, symbol checker, and utils") @@ -266,8 +267,9 @@ utilities.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) + ("desktop-file-utils" ,desktop-file-utils) ("libtool" ,libtool) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("texinfo" ,texinfo) ("groff" ,groff) ("which" ,which) @@ -276,7 +278,6 @@ utilities.") `(("glib" ,glib) ("gtk" ,gtk+-2) ("guile" ,guile-2.2) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("m4" ,m4) ("pcb" ,pcb))) @@ -385,13 +386,13 @@ features."))) ("gd" ,gd) ("gtk" ,gtk+-2) ("gtkglext" ,gtkglext) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("bison" ,bison) + ("desktop-file-utils" ,desktop-file-utils) ("flex" ,flex) ;; For tests ("imagemagick" ,imagemagick) @@ -675,11 +676,11 @@ ready for production.") (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (inputs `(("cairo" ,cairo) - ("gtk" ,gtk+-2) - ("desktop-file-utils" ,desktop-file-utils))) + ("gtk" ,gtk+-2))) (home-page "http://gerbv.geda-project.org/") (synopsis "Gerber file viewer") (description @@ -856,7 +857,7 @@ language.") (native-inputs `(("boost" ,boost) ("desktop-file-utils" ,desktop-file-utils) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("kicad-i18l" ,kicad-i18l) ("pkg-config" ,pkg-config) ("swig" ,swig) @@ -903,7 +904,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") (delete 'build) (delete 'check)))) (native-inputs - `(("gettext" ,gnu-gettext))) + `(("gettext" ,gettext-minimal))) (home-page "https://kicad-pcb.org/") (synopsis "KiCad GUI translations") (description "This package contains the po files that are used for the GUI diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 7bf8f4fc6e..ea1fcbe9d4 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org> ;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net> +;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,6 +40,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system emacs) #:use-module (guix build-system python) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system go) @@ -1398,3 +1400,65 @@ entity management.") electronic cash system. This package provides a command line client and a Qt GUI.") (license license:expat))) + +(define-public beancount + (package + (name "beancount") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "beancount" version)) + (sha256 + (base32 + "0pcfl2rx2ng06i4f9izdpnlnb1k0rdzsckbzzn4cn4ixfzyssm0m")) + (patches (search-patches "beancount-disable-googleapis-fonts.patch")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; Says test is missing, not sure why + #:phases + (modify-phases %standard-phases + ;; Not importing the googleapis package for now + (add-after 'unpack 'ignore-googleapis + (lambda _ + (substitute* "setup.py" + (("'google-api-python-client',") "")) + #t))))) + (inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-bottle" ,python-bottle) + ("python-chardet" ,python-chardet) + ("python-dateutil" ,python-dateutil) + ("python-lxml" ,python-lxml) + ("python-magic" ,python-magic) + ("python-ply" ,python-ply) + ("python-requests" ,python-requests))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "http://furius.ca/beancount") + (synopsis "Command-line double-entry accounting tool") + (description + "Beancount is a double-entry bookkeeping computer language that lets you +define financial transaction records in a text file, read them in memory, +generate a variety of reports from them, and provides a web interface.") + (license license:gpl2))) + +;; The beancount source ships with elisp in a subdirectory +(define-public emacs-beancount + (package + (inherit beancount) + (name "emacs-beancount") + (build-system emacs-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (add-before 'install 'chdir-emacs + (lambda _ + (chdir "editors/emacs") + #t))))) + (inputs '()) + (native-inputs '()) + (synopsis "Emacs mode for beancount") + (description + "Emacs-beancount is an Emacs mode for the Beancount accounting tool."))) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 527f2cbbd6..dbc0c4f9d6 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2020 Damien Cassou <damien@cassou.me> ;;; Copyright © 2020 Amin Bandali <bandali@gnu.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 John Soo <jsoo1@asu.edu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -559,17 +560,16 @@ fonts.") (define-public font-rachana (package (name "font-rachana") - (version "7.0") + (version "7.0.3") (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.com/smc/rachana/repository/archive.tar.gz?ref=Version" - version)) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/smc/fonts/rachana") + (commit (string-append "Version" version)))) (sha256 - (base32 - "0jc091gshna6p1dd6lf507jxkgk6rsja835fc9dm71mcplq53bm1")))) + (base32 "0r100pvk56y1s38nbv24d78s8nd7dkblgasbn8s887dzj6dps23d")) + (file-name (git-file-name name version)))) (build-system font-build-system) (home-page "https://smc.org.in") (synopsis "Malayalam font") @@ -650,7 +650,7 @@ for use at smaller text sizes"))) (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "12.1.04") + (version "13.0.01") (source (origin (method url-fetch) @@ -660,7 +660,7 @@ for use at smaller text sizes"))) (string-append "mirror://gnu/unifont/unifont-" version "/unifont-" version ".tar.gz"))) (sha256 - (base32 "1h5dyhg4j8sh4qpbwnsn34igb8mfapz5b3nf4k71hq1c5z3j0mcv")))) + (base32 "1svzm3xahb2m8r79ha9gb1z3zlckykx9d87cghswj7dxn9868j4b")))) (build-system gnu-build-system) (outputs '("out" ; TrueType version "pcf" ; PCF (bitmap) version @@ -703,7 +703,7 @@ for use at smaller text sizes"))) "GNU Unifont is a bitmap font covering essentially all of Unicode's Basic Multilingual Plane. The package also includes utilities to ease adding new glyphs to the font.") - (home-page "http://unifoundry.com/unifont.html") + (home-page "http://unifoundry.com/unifont/index.html") (properties '((upstream-name . "unifont"))) (license license:gpl2+))) @@ -1178,6 +1178,50 @@ programming. Iosevka is completely generated from its source code.") (sha256 (base32 "1rkmgi08kknc1fg54zpa6w92m3b3v7pc8cpwygz22kgd2h0mdrr8")))))) +(define-public font-iosevka-term + (package + (inherit font-iosevka) + (name "font-iosevka-term") + (version (package-version font-iosevka)) + (source + (origin + (method url-fetch/zipbomb) + (uri (string-append "https://github.com/be5invis/Iosevka" + "/releases/download/v" version + "/02-iosevka-term-" version ".zip")) + (sha256 + (base32 + "1mxlb3qf64nykjd0x4gjfvib3k5kyv9ssv9iyzxxgk2z80bydz00")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files "." ".*")) + #t))))))) + +(define-public font-iosevka-term-slab + (package + (inherit font-iosevka) + (name "font-iosevka-term-slab") + (version (package-version font-iosevka)) + (source + (origin + (method url-fetch/zipbomb) + (uri (string-append "https://github.com/be5invis/Iosevka" + "/releases/download/v" version + "/06-iosevka-term-slab-" version ".zip")) + (sha256 + (base32 + "1gc16hih157qy6vpa8f88psq0fnksiigi3msqazc75zsm3z4kzqj")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files "." ".*")) + #t))))))) + (define-public font-go (let ((commit "f03a046406d4d7fbfd4ed29f554da8f6114049fc") (revision "1")) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 06d1b3c11c..7b22dfc052 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -48,6 +48,9 @@ ;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx> ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> +;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> +;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -172,6 +175,7 @@ #:use-module (gnu packages xml) #:use-module (gnu packages messaging) #:use-module (gnu packages networking) + #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) @@ -1093,6 +1097,46 @@ destroying an ancient book using a special wand.") ;; license. The whole package is released under GPLv3+. (license license:gpl3+))) +(define-public gnome-chess + (package + (name "gnome-chess") + (version "3.36.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1a9fgi749gy1f60vbcyrqqkab9vqs42hji70q73k1xx8rv0agmg0")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")) + #t))))) + (inputs + `(("gtk+" ,gtk+) + ("librsvg" ,librsvg))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") ; for desktop-file-validate and appstream-util + ("itstool" ,itstool) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) + (home-page "https://wiki.gnome.org/Apps/Chess") + (synopsis "Chess board for GNOME") + (description "GNOME Chess provides a 2D board for playing chess games +against human or computer players. It supports loading and saving games in +Portable Game Notation. To play against a computer, install a chess engine +such as chess or stockfish.") + (license license:gpl3+))) + (define-public gnubg (package (name "gnubg") @@ -1250,10 +1294,11 @@ watch your CPU playing while enjoying a cup of tea!") (string-join (string-split version #\.) "") "-src.tgz")) (sha256 (base32 "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng")))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex))) (inputs `(("ncurses" ,ncurses) - ("bison" ,bison) - ("flex" ,flex) ("less" ,less))) (build-system gnu-build-system) (arguments @@ -6634,7 +6679,7 @@ GameController.") #t))))) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib" ,glib "bin") ;for glib-compile-resources ("itstool" ,itstool) ("libxml2" ,libxml2) ;for xmllint @@ -7139,7 +7184,7 @@ where the player draws runes in real time to effect the desired spell.") `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) - ("gnu-gettext" ,gnu-gettext) + ("gnu-gettext" ,gettext-minimal) ("libtool" ,libtool) ("which" ,which))) (synopsis "2d action platformer game") @@ -10291,3 +10336,119 @@ to conquer opponents by defeating them in war (with troops or machines), capturing their buildings with spies, or offering opponents money for their kingdom.") (license license:gpl2+))) + +(define-public neverball + ;; Git version is 6-years younger than latest release. + (let ((commit "760a25d32a5fb0661b99426d4ddcb9ac9f3d1644") + (revision "1")) + (package + (name "neverball") + (version (git-version "1.6.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Neverball/neverball.git") + (commit commit))) + (sha256 + (base32 + "0bwh67df3lyf33bv710y25l3frjdd34j9b7gsjadwxviz6r1vpj5")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + ;; Octocat seems to be non-free. Oddly, Debian doesn't strip it. + (delete-file-recursively "data/ball/octocat") + #t)))) + (build-system copy-build-system) + (arguments + `(#:install-plan + '(("neverball" "bin/") + ("neverputt" "bin/") + ("mapc" "bin/") + ("data" "share/games/neverball/") + ("locale" "share/") + ("dist/" "share/games/neverball" #:include ("neverball_replay.png" + "neverlogos.svg" + "svg readme.txt")) + ("dist/" "share/applications" #:include ("neverball.desktop" + "neverputt.desktop")) + ("dist/neverball_16.png" + "/share/icons/hicolor/16x16/apps/neverball.png") + ("dist/neverball_24.png" + "/share/icons/hicolor/24x24/apps/neverball.png") + ("dist/neverball_32.png" + "/share/icons/hicolor/32x32/apps/neverball.png") + ("dist/neverball_48.png" + "/share/icons/hicolor/48x48/apps/neverball.png") + ("dist/neverball_64.png" + "/share/icons/hicolor/64x64/apps/neverball.png") + ("dist/neverball_128.png" + "/share/icons/hicolor/128x128/apps/neverball.png") + ("dist/neverball_256.png" + "/share/icons/hicolor/256x256/apps/neverball.png") + ("dist/neverball_512.png" + "/share/icons/hicolor/512x512/apps/neverball.png") + ("dist/neverputt_16.png" + "/share/icons/hicolor/16x16/apps/neverputt.png") + ("dist/neverputt_24.png" + "/share/icons/hicolor/24x24/apps/neverputt.png") + ("dist/neverputt_32.png" + "/share/icons/hicolor/32x32/apps/neverputt.png") + ("dist/neverputt_48.png" + "/share/icons/hicolor/48x48/apps/neverputt.png") + ("dist/neverputt_64.png" + "/share/icons/hicolor/64x64/apps/neverputt.png") + ("dist/neverputt_128.png" + "/share/icons/hicolor/128x128/apps/neverputt.png") + ("dist/neverputt_256.png" + "/share/icons/hicolor/256x256/apps/neverputt.png") + ("dist/neverputt_512.png" + "/share/icons/hicolor/512x512/apps/neverputt.png") + ("dist/" "share/man/man1" #:include ("mapc.1")) + ("dist/" "share/man/man6" #:include ("neverball.6" "neverputt.6")) + ("doc/" "share/doc/neverball") + ("README.md" "share/doc/neverball/")) + #:phases + (modify-phases %standard-phases + (add-before 'install 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (sdl (assoc-ref inputs "sdl"))) + (invoke "make" "-j" (number->string (parallel-job-count)) + "--environment-overrides" + "CC=gcc" "BUILD=release" + (string-append "DATADIR=" + out + "/share/games/neverball/data") + (string-append "LOCALEDIR=" out "/share/locale") + (string-append "SDL_CPPFLAGS=-I" + sdl + "/include/SDL2/"))) + #t)) + (add-after 'install 'fix-some-broken-fonts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/neverball") + `("LANG" = ("en_US.utf8"))) + (wrap-program (string-append out "/bin/neverputt") + `("LANG" = ("en_US.utf8")))) + #t))))) + (native-inputs + `(("gettext" ,gettext-minimal))) ;for msgfmt + (inputs + `(("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libvorbis" ,libvorbis) + ("physfs" ,physfs) + ("sdl" ,(sdl-union (list sdl2 sdl2-ttf))))) + (home-page "https://neverball.org/") + (synopsis "3D floor-tilting game") + (description + "In the grand tradition of Marble Madness and Super Monkey Ball, +Neverball has you guide a rolling ball through dangerous territory. Balance +on narrow bridges, navigate mazes, ride moving platforms, and dodge pushers +and shovers to get to the goal. Race against the clock to collect coins to +earn extra balls. Also included is Neverputt, which is a 3D miniature golf +game.") ;thanks to Debian for description + (license license:gpl2+)))) diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm index fdf686f9d7..27f55a398a 100644 --- a/gnu/packages/genimage.scm +++ b/gnu/packages/genimage.scm @@ -41,7 +41,7 @@ (define-public genimage (package (name "genimage") - (version "10") + (version "11") (source (origin (method git-fetch) (uri (git-reference @@ -50,7 +50,7 @@ (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0had00p2why2l1fl14mq7nbhmmfbd3na4qnnpg36akdy05g67jbn")))) + "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54")))) (build-system gnu-build-system) (arguments `(#:phases @@ -149,6 +149,7 @@ (substitute* '("test/ext2test.dump" "test/ext3test.dump" "test/ext4test.dump" + "test/ext2test-percent.dump" "test/mke2fs.dump") (("root") "unknown")) #t)) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index cf0b31aa43..aa6d25a51b 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -1925,6 +1925,22 @@ growing set of geoscientific methods.") (add-after 'wrap-python 'wrap-qt (lambda* (#:key outputs #:allow-other-keys) (wrap-qt-program (assoc-ref outputs "out") "qgis") + #t)) + (add-after 'wrap-qt 'wrap-gis + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (saga (string-append (assoc-ref inputs "saga") "/bin")) + (grass-version ,(package-version grass)) + (grass-majorminor (string-join + (list-head + (string-split grass-version #\.) 2) + "")) + (grass (string-append (assoc-ref inputs "grass") + "/grass" grass-majorminor))) + (wrap-program (string-append out "/bin/qgis") + `("PATH" ":" prefix (,saga)) + `("QGIS_PREFIX_PATH" = (,out)) + `("GISBASE" = (,grass)))) #t))))) (inputs `(("exiv2" ,exiv2) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 9995d445ab..5966906954 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -152,10 +152,16 @@ buffers.") (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html") + ;; Prevent the build system from running 'gtk-update-icon-cache' ;; which is not needed during the build because Guix runs it at ;; profile creation time. "ac_cv_path_GTK_UPDATE_ICON_CACHE=true" + + ;; Disable automatic network request on startup to check for + ;; version updates. + "--disable-check-update" + ;; ./configure requests not to annoy upstream with packaging bugs. "--with-bug-report-url=https://bugs.gnu.org/guix") #:phases diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index fc3d853a7a..8d01c12cb9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -49,6 +49,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 raingloom <raingloom@riseup.net> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -249,6 +250,49 @@ Desktop. It is designed to be as simple as possible and has some unique features to enable users to create their discs easily and quickly.") (license license:gpl2+))) +(define-public mm-common + (package + (name "mm-common") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "util/mm-common-prepare.in" + (("ln") (string-append (assoc-ref inputs "coreutils") + "/bin/ln")) + (("cp") (string-append (assoc-ref inputs "coreutils") + "/bin/cp")) + (("sed") (string-append (assoc-ref inputs "sed") + "/bin/sed")) + (("cat") (string-append (assoc-ref inputs "coreutils") + "/bin/cat"))) + #t))))) + (native-inputs + `(("coreutils" ,coreutils) + ("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("sed" ,sed))) + (inputs + `(("python" ,python))) + (synopsis "Module of GNOME C++ bindings") + (description "The mm-common module provides the build infrastructure +and utilities shared among the GNOME C++ binding libraries. Release +archives of mm-common include the Doxygen tag file for the GNU C++ +Library reference documentation.") + (home-page "https://gitlab.gnome.org/GNOME/mm-common") + (license license:gpl2+))) + (define-public phodav (package (name "phodav") @@ -334,7 +378,7 @@ in the GNOME desktop.") (define-public gnome-online-miners (package (name "gnome-online-miners") - (version "3.30.0") + (version "3.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -342,7 +386,7 @@ in the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c")))) + "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -536,7 +580,18 @@ extraction, and lookup for applications on the desktop.") (arguments '(#:configure-flags '(;; Enable camera support for user selfie. "-Dcheese=auto" - "-Dsystemd=false"))) + "-Dsystemd=false") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-gkbd-file-name + (lambda* (#:key inputs #:allow-other-keys) + ;; Allow the "Preview" button in the keyboard layout + ;; selection dialog to display the layout. + (let ((libgnomekbd (assoc-ref inputs "libgnomekbd"))) + (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c" + (("\"gkbd-keyboard-display") + (string-append "\"" libgnomekbd + "/bin/gkbd-keyboard-display"))) + #t)))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -565,7 +620,8 @@ extraction, and lookup for applications on the desktop.") ("pwquality" ,libpwquality) ("rest" ,rest) ("upower" ,upower) - ("webkitgtk" ,webkitgtk))) + ("webkitgtk" ,webkitgtk) + ("libgnomekbd" ,libgnomekbd))) (synopsis "Initial setup wizard for GNOME desktop") (description "This package provides a set-up wizard when a user logs into GNOME for the first time. It typically provides a @@ -5037,7 +5093,7 @@ supports image conversion, rotation, and slideshows.") (synopsis "Extensions for the Eye of GNOME image viewer") (native-inputs `(("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext))) + ("gettext" ,gettext-minimal))) (inputs `(("eog" ,eog) ("glib" ,glib) @@ -6042,7 +6098,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.32.1") + (version "3.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6050,7 +6106,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8")))) + "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw")))) (outputs '("out" "lib")) (build-system glib-or-gtk-build-system) (arguments @@ -7608,7 +7664,7 @@ software that do not provide their own configuration interface.") (let* ((out (assoc-ref %outputs "out")) (apps (string-append out "/share/applications"))) (mkdir-p apps) - (call-with-output-file (string-append apps "/defaults.list") + (call-with-output-file (string-append apps "/gnome-mimeapps.list") (lambda (port) (format port "[Default Applications]\n") (format port "inode/directory=org.gnome.Nautilus.desktop\n") @@ -7680,6 +7736,17 @@ associations for GNOME.") ("gjs" ,gjs) ("gnome-desktop" ,gnome-desktop) ("libgweather" ,libgweather))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'fix-desktop-file + ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason. + ;; See https://issues.guix.gnu.org/issue/39324. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (applications (string-append out "/share/applications"))) + (substitute* (string-append applications "/org.gnome.Weather.desktop") + (("Exec=.*") "Exec=gnome-weather\n")))))))) (synopsis "Weather monitoring for GNOME desktop") (description "GNOME Weather is a small application that allows you to monitor the current weather conditions for your city, or anywhere in the @@ -8849,10 +8916,15 @@ views can be printed as PDF or PostScript files, or exported to HTML.") (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a")))) (build-system meson-build-system) (arguments - `(#:imported-modules ((guix build python-build-system) - ,@%meson-build-system-modules) + `(#:imported-modules + (,@%meson-build-system-modules + (guix build python-build-system)) + #:modules + ((guix build meson-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build utils)) #:glib-or-gtk? #t - #:tests? #f ; no test suite + #:tests? #f ; no test suite #:phases (modify-phases %standard-phases (add-after 'install 'wrap-program @@ -8863,9 +8935,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.") `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) #t)) (add-after 'install 'wrap-python - (@@ (guix build python-build-system) wrap)) - (add-after 'install 'wrap-glib-or-gtk - (@@ (guix build glib-or-gtk-build-system) wrap-all-programs))))) + (assoc-ref python:%standard-phases 'wrap))))) (native-inputs `(("intltool" ,intltool) ("itstool" ,itstool) @@ -9121,7 +9191,7 @@ configurable file renaming. ") ("libxscrnsaver" ,libxscrnsaver))) (native-inputs `(("boost" ,boost) ("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("autoconf" ,autoconf) ("autoconf-archive" , autoconf-archive) ("automake" ,automake) @@ -9818,7 +9888,7 @@ join_paths\\('build-aux', 'post_install.py'\\)\\)") `(("appstream-glib" ,appstream-glib) ("cmake-minimal" ,cmake-minimal) ("desktop-file-utils" ,desktop-file-utils) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("itstool" ,itstool) @@ -9904,3 +9974,33 @@ to.") environment. Its main purpose is the manual transcription of spoken audio files.") (license license:gpl3+)))) + +(define-public jsonrpc-glib + (package + (name "jsonrpc-glib") + (version "3.34.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni")))) + (build-system meson-build-system) + (inputs + `(("json-glib" ,json-glib) + ("glib" ,glib))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. + ("gobject-introspection" ,gobject-introspection) + ("vala" ,vala))) + (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib") + (synopsis "JSON-RPC library for GLib") + (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based +peers in either a synchronous or asynchronous fashion. It also allows +communicating using the GVariant serialization format instead of JSON when +both peers support it. You might want that when communicating on a single +host to avoid parser overhead and memory-allocator fragmentation.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 1961e6bb89..d7ea498907 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -180,13 +180,13 @@ authentication and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.67.0") + (version "7.69.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnu/gnunet/" name "-" version ".tar.Z")) + (uri (string-append "mirror://gnu/gnunet/gnurl-" version ".tar.gz")) (sha256 (base32 - "0ssjz2npr2zjvcpfz9qbaj92xc9ayg8wx4hyl132snl94qr2v670")))) + "0x8m26y3klndis6a28j8i0b7ab04d38q3rmlvgaqa65bjhlfdrp0")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.8 MiB of man3 pages diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 2db4697a6d..3992b0ccc8 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -554,8 +554,8 @@ from forcing GEXP-PROMISE." #:system system #:guile-for-build guile))) -(define %icecat-version "68.6.0-guix0-preview1") -(define %icecat-build-id "20200309000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "68.7.0-guix0-preview1") +(define %icecat-build-id "20200406000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -577,11 +577,11 @@ from forcing GEXP-PROMISE." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "17qwfq9hwra8jarawy8k2sqfa6hdhwa9qk84ndr6gjvmxcy22a14")))) + "0w3mad0r4khcd7hfmm3xix9x6mp5yp8g8kyh18vanfnjqdls0gmd")))) - (upstream-icecat-base-version "68.6.0") ; maybe older than base-version + (upstream-icecat-base-version "68.7.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "9dcb24d885eae5973eb2245b532b158c685d707a") + (gnuzilla-commit "d185c5a67506311e19440fd4b824a822ce840369") (gnuzilla-source (origin (method git-fetch) @@ -593,7 +593,7 @@ from forcing GEXP-PROMISE." (string-take gnuzilla-commit 8))) (sha256 (base32 - "1y3jmh055vmx44gsjgwxvwv3zcyvz8pc5mhgrwkzm0ybbwpp2pqi")))) + "09skws692qv5kbhj8bvy3prj7v0iyfz68xjck4vbfxkahldfppqx")))) (makeicecat-patch (local-file (search-patch "icecat-makeicecat.patch")))) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a7470eaa72..6fc5181d6c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -221,7 +221,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.4) (name "go") - (version "1.13.8") + (version "1.13.9") (source (origin (method url-fetch) @@ -229,7 +229,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "0d7cxffk72568h46srzswrxd0bsdip7amgkf499wzn6l6d3g0fxi")))) + "07gksk9194wa90xyd6yhagxfv7syvsx29bh8ypc4mg700vc1kfrl")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) @@ -2186,6 +2186,34 @@ Reference algorithm has been slightly hacked as to support the streaming mode required by Go's standard Hash interface.") (license license:bsd-3))) +(define-public go-github-com-calmh-murmur3 + (let ((commit "74e9af8f47ac56901c490d45546ca167b60c7066") + (revision "0")) + (package + (name "go-github-com-calmh-murmur3") + (version (git-version "1.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/murmur3.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0k8345ivx228qdbkl8bisd2wxwsinkb44ghba6r09538fr3fbr5w")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/calmh/murmur3")) + (home-page "https://github.com/calmh/murmur3") + (synopsis "Native MurmurHash3 Go implementation") + (description "Native Go implementation of Austin Appleby's third +MurmurHash revision (aka MurmurHash3). + +Reference algorithm has been slightly hacked as to support the streaming mode +required by Go's standard Hash interface.") + (license license:bsd-3)))) + (define-public go-github-com-multiformats-go-multihash (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6") (revision "0")) @@ -3463,9 +3491,19 @@ efficient space usage.") "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/willf/bloom")) + '(#:import-path "github.com/willf/bloom" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-import-path + (lambda _ + ;; See 'go.mod' in the source distribution of Syncthing 1.4.1 for + ;; more information. + ;; <https://github.com/spaolacci/murmur3/issues/29> + (substitute* "src/github.com/willf/bloom/bloom.go" + (("spaolacci") "calmh")) + #t))))) (propagated-inputs - `(("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3) + `(("go-github-com-calmh-murmur3" ,go-github-com-calmh-murmur3) ("go-github-com-willf-bitset" ,go-github-com-willf-bitset))) (synopsis "Bloom filters in Go") (description "This package provides a Go implementation of bloom filters, diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index cd2e09e966..4a4b18f3e1 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -86,10 +87,10 @@ (inputs `(("expat" ,expat) ("zlib" ,zlib) - ("qtbase" ,qtbase) - ("qttools" ,qttools))) + ("qtbase" ,qtbase))) (native-inputs `(("which" ,which) + ("qttools" ,qttools) ("libxml2" ,libxml2))) ;'xmllint' needed for the KML tests (home-page "https://www.gpsbabel.org/") (synopsis "Convert and exchange data with GPS and map programs") @@ -220,14 +221,14 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.") (define-public gpsd (package (name "gpsd") - (version "3.19") + (version "3.20") (source (origin (method url-fetch) (uri (string-append "https://download-mirror.savannah.gnu.org" "/releases/gpsd/gpsd-" version ".tar.gz")) (sha256 - (base32 "0faz2mvk82hi7ispxxih07lhpyz5dazs4gcknym9piiabga29p97")))) + (base32 "0l2yz0yw9sil82lh2l4swkkldgmhzhv588n5lcavib4f0q2phahp")))) (build-system scons-build-system) (native-inputs `(("bc" ,bc) @@ -235,6 +236,7 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.") (inputs `(("bluez" ,bluez) ("dbus" ,dbus) + ("gtk+" ,gtk+) ("libcap" ,libcap) ("libusb" ,libusb) ("ncurses" ,ncurses) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 80ec7b0a31..7f56d26804 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> +;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -274,50 +275,55 @@ exception-handling library.") (define-public ogre (package (name "ogre") - (version "1.10.11") + (version "1.12.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/OGRECave/ogre.git") - (commit (string-append "v" version)))) + (url "https://github.com/OGRECave/ogre.git") + (commit (string-append "v" version)) + (recursive? #t))) ;for Dear ImGui submodule (file-name (git-file-name name version)) (sha256 - (base32 - "072rzw9mxymbiypgkrbkk9h10rgly6gczik4dlmssk6xkpqckaqr")))) + (base32 "1sx0jsw4kmb4ycf62bgx3ygwv8k1cgjx52y47d7dk07z6gk6wpyj")))) (build-system cmake-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Tests/CMakeLists.txt" - (("URL(.*)$") - (string-append "URL " (assoc-ref inputs "googletest-source")))) + ;; CMakeLists.txt forces CMAKE_INSTALL_RPATH value. As + ;; a consequence, we cannot suggest ours in configure flags. Fix + ;; it. + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("set\\(CMAKE_INSTALL_RPATH .*") "")) #t))) #:configure-flags - (list "-DOGRE_BUILD_TESTS=TRUE" - (string-append "-DCMAKE_INSTALL_RPATH=" - (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib/OGRE:" - (assoc-ref %build-inputs "googletest") "/lib") - "-DOGRE_INSTALL_DOCS=TRUE" - "-DOGRE_INSTALL_SAMPLES=TRUE" - "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE"))) + (let* ((out (assoc-ref %outputs "out")) + (runpath + (string-join (list (string-append out "/lib") + (string-append out "/lib/OGRE")) + ";"))) + (list (string-append "-DCMAKE_INSTALL_RPATH=" runpath) + "-DOGRE_BUILD_DEPENDENCIES=OFF" + "-DOGRE_BUILD_TESTS=TRUE" + "-DOGRE_INSTALL_DOCS=TRUE" + "-DOGRE_INSTALL_SAMPLES=TRUE" + "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE")))) (native-inputs `(("boost" ,boost) ("doxygen" ,doxygen) - ("googletest-source" ,(package-source googletest)) + ("googletest" ,googletest-1.8) ("pkg-config" ,pkg-config))) (inputs `(("font-dejavu" ,font-dejavu) ("freeimage" ,freeimage) ("freetype" ,freetype) ("glu" ,glu) - ("googletest" ,googletest) - ("sdl2" ,sdl2) ("libxaw" ,libxaw) ("libxrandr" ,libxrandr) + ("pugixml" ,pugixml) + ("sdl2" ,sdl2) ("tinyxml" ,tinyxml) ("zziplib" ,zziplib))) (synopsis "Scene-oriented, flexible 3D engine written in C++") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index d20d460e1b..39f87e63d5 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1972,3 +1973,49 @@ anchor windows to a corner or edge of the output, or stretch them across the entire output. It supports all Layer Shell features including popups and popovers.") (license license:expat))) + +(define-public goocanvas + (package + (name "goocanvas") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/goocanvas/" + (version-major+minor version) + "/goocanvas-" version ".tar.xz")) + (sha256 + (base32 "141fm7mbqib0011zmkv3g8vxcjwa7hypmq71ahdyhnj2sjvy4a67")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib-bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc) + ("pkg-config" ,pkg-config) + ("python" ,python))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("python-pygobject" ,python-pygobject))) + (arguments + `(#:configure-flags '("--disable-rebuilds" + "--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "configure" + (("\\(gi._overridesdir\\)") + (string-append "((gi._overridesdir).replace(\\\"" + (assoc-ref inputs "python-pygobject") + "\\\", \\\"" + (assoc-ref outputs "out") + "\\\"))"))) + #t))))) + (synopsis "Canvas widget for GTK+") + (description "GooCanvas is a canvas widget for GTK+ that uses the cairo 2D +library for drawing.") + (home-page "https://wiki.gnome.org/GooCanvas") + (license license:lgpl2.0))) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index f0f976c3d2..f5aa4c11b4 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2590,7 +2590,7 @@ list of components. This module takes care of that for you.") (setenv "DISPLAY" ":1") #t))))) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-compile-resources ("libtool" ,libtool) ("pkg-config" ,pkg-config) @@ -2670,7 +2670,7 @@ more expressive and flexible than the traditional @code{format} procedure.") ("automake" ,automake) ("bzip2" ,bzip2) ("guile" ,guile-2.2) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("perl" ,perl) ("pkg-config" ,pkg-config) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index d957b3ee7b..a665c05568 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> @@ -419,40 +419,50 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its (define-deprecated-guile3.0-package guile3.0-readline) (define-public guile-for-guile-emacs - (package (inherit guile-2.2) - (name "guile-for-guile-emacs") - (version "20150510.d8d9a8d") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.hcoop.net/git/bpt/guile.git") - (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))) - (arguments - `(;; Tests aren't passing for now. - ;; Obviously we should re-enable this! - #:tests? #f - ,@(package-arguments guile-2.2))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("flex" ,flex) - ("texinfo" ,texinfo) - ("gettext" ,gettext-minimal) - ,@(package-native-inputs guile-2.2))) - ;; Same as in guile-2.0 - (native-search-paths - (list (search-path-specification - (variable "GUILE_LOAD_PATH") - (files '("share/guile/site/2.0"))) - (search-path-specification - (variable "GUILE_LOAD_COMPILED_PATH") - (files '("lib/guile/2.0/site-ccache" - "share/guile/site/2.0"))))))) + (let ((commit "15ca78482ac0dd2e3eb36dcb31765d8652d7106d") + (revision "1")) + (package (inherit guile-2.2) + (name "guile-for-guile-emacs") + (version (git-version "2.1.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/guile.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l7ik4q4zk7vq4m3gnwizc0b64b1mdr31hxqlzxs94xaf2lvi7s2")))) + (arguments + (substitute-keyword-arguments (package-arguments guile-2.2) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (replace 'bootstrap + (lambda _ + ;; Disable broken tests. + ;; TODO: Fix them! + (substitute* "test-suite/tests/gc.test" + (("\\(pass-if \"after-gc-hook gets called\"" m) + (string-append "#;" m))) + (substitute* "test-suite/tests/version.test" + (("\\(pass-if \"version reporting works\"" m) + (string-append "#;" m))) + ;; Warning: Unwind-only `out-of-memory' exception; skipping pre-unwind handler. + ;; FAIL: test-out-of-memory + (substitute* "test-suite/standalone/Makefile.am" + (("(check_SCRIPTS|TESTS) \\+= test-out-of-memory") "")) + + (patch-shebang "build-aux/git-version-gen") + (invoke "sh" "autogen.sh") + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("flex" ,flex) + ("texinfo" ,texinfo) + ("gettext" ,gettext-minimal) + ,@(package-native-inputs guile-2.2)))))) ;;; diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 6ab962100e..c6821daf00 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -341,14 +341,14 @@ to @code{cabal repl}).") (define-public git-annex (package (name "git-annex") - (version "8.20200309") + (version "8.20200330") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "1yjb01jh5rccqg44nqh4iyxmbpkcpm6m82lnw7s0s2vizj8891p5")))) + (base32 "0xy0ld7kr4cfdl4g4yzvrzl5r60dcj33cxm28a4qz6nqm2yhd4sv")))) (build-system haskell-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index b2a53b5f41..f94d4fa5a7 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> -;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -263,17 +263,22 @@ Hurd-minimal package which are needed for both glibc and GCC.") (inherit gnumach-headers) (name "gnumach") (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'install 'produce-image - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (boot (string-append out "/boot"))) - (invoke "make" "gnumach.gz") - (install-file "gnumach.gz" boot) - #t)))))) + (substitute-keyword-arguments (package-arguments gnumach-headers) + ((#:phases phases '%standard-phases) + `(modify-phases %standard-phases + (add-after 'install 'produce-image + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (boot (string-append out "/boot"))) + (invoke "make" "gnumach.gz") + (install-file "gnumach.gz" boot) + #t))))))) (native-inputs `(("mig" ,mig) - ("perl" ,perl))) + ("perl" ,perl) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo-4))) (supported-systems (cons "i686-linux" %hurd-systems)) (synopsis "Microkernel of the GNU system") (description diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index cdaf8e86e2..801dc70149 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2018 Lprndn <guix@lprndn.info> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -798,11 +799,11 @@ combine the information contained in both.") ("vtk" ,vtk-6) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) - ("qttools" ,qttools) ("vxl" ,vxl-1) ("zlib" ,zlib))) (native-inputs `(("googletest" ,googletest) + ("qttools" ,qttools) ("pkg-config" ,pkg-config) ("c3d-src" ,(let* ((commit "f521358db26e00002c911cc47bf463b043942ad3") diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 5587bad675..5b037012d9 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; ;;; This file is part of GNU Guix. ;;; @@ -595,3 +596,60 @@ with tiling window managers. Features include: @end itemize\n") (home-page "https://github.com/eXeC64/imv") (license license:expat))) + +(define-public qiv + (package + (name "qiv") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://spiegl.de/qiv/download/qiv-" + version ".tgz")) + (sha256 + (base32 "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ;; That is required for testing. + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("imlib2" ,imlib2) + ("glib" ,glib) + ("gtk+" ,gtk+-2) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg-turbo) + ("libtiff" ,libtiff) + ("libexif" ,libexif) + ("libx11" ,libx11) + ("libxext" ,libxext))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'install 'patch-file-start-xserver + (lambda* (#:key inputs #:allow-other-keys) + ;; patch the file so that qiv runs and exits by itself + (substitute* "Makefile" + (("./qiv -f ./intro.jpg") "./qiv -f -C -s ./intro.jpg") + ;; Fail the build when test fails. + (("echo \"-- Test Failed --\"") + "(echo \"-- Test Failed --\" ; false)")) + ;; There must be a running X server and make install doesn't start one. + ;; Therefore we must do it. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t))) + #:tests? #f ; there is no check target + #:make-flags + (list + (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + (home-page "http://spiegl.de/qiv/") + (synopsis "Graphical image viewer for X") + (description + "Quick Image Viewer is a small and fast GDK/Imlib2 image viewer. +Features include zoom, maxpect, scale down, fullscreen, slideshow, delete, +brightness/contrast/gamma correction, pan with keyboard and mouse, flip, +rotate left/right, jump/forward/backward images, filename filter and use it +to set X desktop background.") + (license license:gpl2))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 9974208229..0ae88ea1a4 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages assembly) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages cmake) @@ -1629,7 +1631,7 @@ medical image data, e.g. magnetic resonance image (MRI) and functional MRI (build-system scons-build-system) (native-inputs `(("boost" ,boost) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs `(("expat" ,expat) @@ -1970,7 +1972,7 @@ This package can be used to create @code{favicon.ico} files for web sites.") (define-public libavif (package (name "libavif") - (version "0.5.6") + (version "0.6.3") (source (origin (method git-fetch) (uri (git-reference @@ -1979,7 +1981,7 @@ This package can be used to create @code{favicon.ico} files for web sites.") (file-name (git-file-name name version)) (sha256 (base32 - "15g76j9vb88q1v3azscph8im8714zdl70bni0al4ww9v80vhqpkd")))) + "0fn2mcpvzw6h9sv8h0icbz10i8ihzzf5d5mx3fc4pvhicyz4syq8")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON" @@ -2009,3 +2011,56 @@ AOM, including with alpha.") (home-page "https://github.com/AOMediaCodec/libavif") (license (list license:bsd-2 ; libavif itself license:expat)))) ; cJSON in the test suite + +(define-public mtpaint + (let ((commit "03b1b0938067b88d86d9f1b1088730f1934d411e") + (revision "1")) + (package + (name "mtpaint") + ;; The author neither releases tarballs nor uses git version tags. + ;; Instead, author puts version in git commit title. + (version (git-version "3.49.25" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wjaguar/mtPaint/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0izm2wvj26566fd8mqvypr7bmv7jnq8qhp4760m7z2wrc4y8pjn1")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("imlib2" ,imlib2) + ("libtiff" ,libtiff) + ("libpng" ,libpng) + ("libungif", libungif) + ("libjpeg", libjpeg-turbo) + ("libwebp" ,libwebp) + ("openjpeg" ,openjpeg) + ("lcms" ,lcms) + ("zlib", zlib) + ("glib" ,glib) + ;; support for gtk3 is in testing stage + ("gtk+" ,gtk+-2))) + (arguments + `(#:configure-flags + (list + ;; internationalized version + "intl" + ;; install man page + "man") + ;; no check target + #:tests? #f)) + (home-page "http://mtpaint.sourceforge.net/") + (synopsis "Create pixel art and manipulate digital images") + (description + "Mtpaint is a graphic editing program which uses the GTK+ toolkit. +It can create and edit indexed palette or 24bit RGB images, offers basic +painting and palette manipulation tools. It also handles JPEG, JPEG2000, +GIF, TIFF, WEBP, BMP, PNG, XPM formats.") + (license license:gpl3+)))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1d910e17d1..c52140ba9e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -12,6 +12,8 @@ ;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,6 +108,44 @@ ;; build framework. We then build the more recent JDKs Icedtea 2.x and ;; Icedtea 3.x. +(define-public libantlr3c + (package + (name "libantlr3c") + (version "3.4") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.antlr3.org/download/C/" + name "-" version ".tar.gz")) + (sha256 + (base32 "0lpbnb4dq4azmsvlhp6khq1gy42kyqyjv8gww74g5lm2y6blm4fa")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--enable-debuginfo" "--disable-static") + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key build target native-inputs inputs outputs + (configure-flags '()) out-of-source? system + #:allow-other-keys) + (let ((configure (assoc-ref %standard-phases 'configure)) + (enable-64bit? (member system '("aarch64-linux" + "x86_64-linux" + "mips64el-linux")))) + (configure #:build build #:target target + #:native-inputs native-inputs + #:inputs inputs #:outputs outputs + #:configure-flags `(,(if enable-64bit? + "--enable-64bit" + '()) + ,@configure-flags) + #:out-of-source? out-of-source?))))))) + (synopsis "ANTLR C Library") + (description "LIBANTLR3C provides run-time C libraries for ANTLR3 (ANother +Tool for Language Recognition v3).") + (home-page "https://www.antlr3.org/") + (license license:bsd-3))) + (define jikes (package (name "jikes") @@ -7167,7 +7207,7 @@ tree walking, and translation.") (inputs `(("junit" ,java-junit))))) -(define antlr3-3.3 +(define-public antlr3-3.3 (package (inherit antlr3) (name "antlr3") diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 65a5e42beb..6dd53b9283 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages elf) #:use-module (gnu packages gcc) #:use-module (gnu packages llvm) @@ -41,29 +43,30 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages textutils) + #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages wget) #:use-module (ice-9 match)) (define libuv-julia - (let ((commit "26dbe5672c33fc885462c509fe2a9b36f35866fd") - (revision "6")) - ;; When upgrading Julia, also upgrade this. - ;; Get the commit from https://github.com/JuliaLang/julia/blob/v1.1.1/deps/libuv.version + (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1") + (revision "1")) + ;; When upgrading Julia, also upgrade this. Get the commit from + ;; https://github.com/JuliaLang/julia/blob/v1.3.1/deps/libuv.version (package (inherit libuv) (name "libuv-julia") - (version (string-append "1.9.0-" revision "." (string-take commit 8))) + (version (git-version "2.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/JuliaLang/libuv.git") - (commit commit))) + (url "https://github.com/JuliaLang/libuv.git") + (commit commit))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "17pn2xmqaramilx897s9grs966i5246gi6sric5alch4g9j4685n")))) + "0dn3v6fdp1z382pqg3nhjzk60l61ky9b65mfgaj29fv2da95rwjs")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments libuv) @@ -72,93 +75,115 @@ (delete 'autogen))))) (home-page "https://github.com/JuliaLang/libuv")))) -(define (llvm-patch-url version name) +(define libunwind-julia + ;; The Julia projects requires their patched version. + ;; Get from https://github.com/JuliaLang/julia/tree/master/deps/patches + (package + (inherit libunwind) + (name "libunwind-julia") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/libunwind/libunwind-" + version ".tar.gz")) + (sha256 + (base32 + "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3")) + (patches + (list + (julia-patch "libunwind-prefer-extbl" + "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1") + (julia-patch "libunwind-static-arm" + "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq"))))) + (home-page "https://github.com/JuliaLang/tree/master/deps/"))) + +(define (julia-patch-url version name) (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version - "/deps/patches/" name)) + "/deps/patches/" name)) -(define (llvm-patch name sha) - (let ((version "1.1.1")) +(define (julia-patch name sha) + (let ((version "1.3.1")) (origin (method url-fetch) - (uri (llvm-patch-url version name)) - (sha256 (base32 sha)) - (file-name name)))) + (uri (julia-patch-url version name)) + (sha256 (base32 sha)) + (file-name name)))) (define llvm-julia (package (inherit llvm-6) (name "llvm-julia") (source (origin - (method url-fetch) - (uri "http://releases.llvm.org/6.0.1/llvm-6.0.1.src.tar.xz") - (sha256 - (base32 - "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn")) + (inherit (package-source llvm-6)) ;; Those patches are inside the Julia source repo. ;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm) ;; but they are required to build Julia. ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628 (patches - (list - (llvm-patch "llvm-6.0-D44650.patch" - "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb") - (llvm-patch "llvm-6.0-DISABLE_ABI_CHECKS.patch" - "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg") - (llvm-patch "llvm-6.0-NVPTX-addrspaces.patch" - "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc") - (llvm-patch "llvm-6.0.0_D27296-libssp.patch" - "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh") - (llvm-patch "llvm-D27629-AArch64-large_model_6.0.1.patch" - "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z") - (llvm-patch "llvm-D34078-vectorize-fdiv.patch" - "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay") - (llvm-patch "llvm-D42262-jumpthreading-not-i1.patch" - "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq") - (llvm-patch "llvm-D44892-Perf-integration.patch" - "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05") - (llvm-patch "llvm-D46460.patch" - "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb") - (llvm-patch "llvm-D49832-SCEVPred.patch" - "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn") - (llvm-patch "llvm-D50010-VNCoercion-ni.patch" - "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp") - (llvm-patch "llvm-D50167-scev-umin.patch" - "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v") - (llvm-patch "llvm-OProfile-line-num.patch" - "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7") - (llvm-patch "llvm-PPC-addrspaces.patch" - "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p") - (llvm-patch "llvm-rL323946-LSRTy.patch" - "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns") - (llvm-patch "llvm-rL326967-aligned-load.patch" - "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4") - (llvm-patch "llvm-rL327898.patch" - "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq"))))) + (map (match-lambda + ((name hash) + (julia-patch name hash))) + (list + '("llvm-6.0-D44650" + "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb") + '("llvm-6.0-DISABLE_ABI_CHECKS" + "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg") + '("llvm-6.0-NVPTX-addrspaces" + "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc") + '("llvm-6.0.0_D27296-libssp" + "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh") + '("llvm-D27629-AArch64-large_model_6.0.1" + "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z") + '("llvm-D34078-vectorize-fdiv" + "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay") + '("llvm-D42262-jumpthreading-not-i1" + "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq") + '("llvm-D44892-Perf-integration" + "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05") + '("llvm-D46460" + "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb") + '("llvm-D49832-SCEVPred" + "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn") + '("llvm-D50010-VNCoercion-ni" + "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp") + '("llvm-D50167-scev-umin" + "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v") + '("llvm-OProfile-line-num" + "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7") + '("llvm-PPC-addrspaces" + "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p") + '("llvm-rL323946-LSRTy" + "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns") + '("llvm-rL326967-aligned-load" + "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4") + '("llvm-rL327898" + "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))) (arguments (substitute-keyword-arguments (package-arguments llvm-6) ((#:configure-flags flags) `(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so - "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_BUILD_TYPE=Release" - ;; Build a native compiler and the NVPTX backend (NVIDIA) since - ;; Julia insists on it, nothing more. This reduces build times and - ;; disk usage. - ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target)) - "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX" + ;; Build a native compiler and the NVPTX backend (NVIDIA) since + ;; Julia insists on it, nothing more. This reduces build times and + ;; disk usage. + ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target)) + "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX" - "-DLLVM_INSTALL_UTILS=ON" - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" - "-DLLVM_ENABLE_DUMP=ON" - "-DLLVM_LINK_LLVM_DYLIB=ON")))))) + "-DLLVM_INSTALL_UTILS=ON" + "-DLLVM_BUILD_TESTS=ON" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_ENABLE_RTTI=ON" + ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" + "-DLLVM_ENABLE_DUMP=ON" + "-DLLVM_LINK_LLVM_DYLIB=ON")))))) (define-public julia (package (name "julia") - (version "1.1.1") + (version "1.3.1") (source (origin (method url-fetch) (uri (string-append @@ -166,7 +191,9 @@ version "/julia-" version ".tar.gz")) (sha256 (base32 - "0hk983mywimclgnjc41zmlppm5kfdz2aj85ky07p49ilcqxi998f")))) + "1nwkmr9j55g1zkxdchnid1h022s0is52vx23niksshgvh793g41x")) + (patches + (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -188,32 +215,27 @@ (add-after 'unpack 'prepare-deps (lambda* (#:key inputs #:allow-other-keys) (mkdir "deps/srccache") - (copy-file (assoc-ref inputs "dsfmt") - "deps/srccache/dsfmt-2.2.3.tar.gz") + ;; no USE_SYSTEM_{OBJCONV/LIBWHICH} option (copy-file (assoc-ref inputs "objconv") "deps/srccache/objconv.zip") - (copy-file (assoc-ref inputs "suitesparse") - "deps/srccache/SuiteSparse-4.4.5.tar.gz") - (copy-file (string-append (assoc-ref inputs "virtualenv") - "/bin/virtualenv") - "julia-env") (copy-file (assoc-ref inputs "libwhich") (string-append "deps/srccache/libwhich-" "81e9723c0273d78493dc8c8ed570f68d9ce7e89e" ".tar.gz")) - (copy-file (assoc-ref inputs "rmath") - "deps/srccache/Rmath-julia-0.1.tar.gz") - ;; needed by libwhich - (setenv "LD_LIBRARY_PATH" - (string-join (map (lambda (pkg) + ;; needed by libwhich + (setenv "LD_LIBRARY_PATH" + (string-join (map (lambda (pkg) (string-append (assoc-ref inputs pkg) "/lib")) - '("arpack-ng" "fftw" "gmp" "lapack" - "libgit2" "mpfr" "openblas" "openlibm" - "openspecfun" "pcre2")) + '("arpack-ng" "curl" "dsfmt" + "gmp" "lapack" + "libssh2" "libgit2" + "mbedtls" "mpfr" + "openblas" "openlibm" "pcre2" + "suitesparse")) ":")) - #t)) + #t)) ;; FIXME: Building the documentation requires Julia packages that ;; would be downloaded from the Internet. We should build them in a ;; separate build phase. @@ -229,172 +251,152 @@ ;; Some tests require a home directory to be set. (lambda _ (setenv "HOME" "/tmp") #t)) (add-after 'unpack 'hardcode-soname-map - ;; ./src/runtime_ccall.cpp creates a map from library names to paths - ;; using the output of "/sbin/ldconfig -p". Since ldconfig is not - ;; used in Guix, we patch runtime_ccall.cpp to contain a static map. - (lambda* (#:key inputs #:allow-other-keys) - (use-modules (ice-9 match)) - (substitute* "src/runtime_ccall.cpp" - ;; Patch out invocations of '/sbin/ldconfig' to avoid getting - ;; error messages about missing '/sbin/ldconfig' on Guix System. - (("popen\\(.*ldconfig.*\\);") - "NULL;\n") - - ;; Populate 'sonameMap'. - (("jl_read_sonames.*;") - (string-join - (map (match-lambda - ((input libname soname) - (string-append - "sonameMap[\"" libname "\"] = " - "\"" (assoc-ref inputs input) "/lib/" soname "\";"))) - '(("libc" "libc" "libc.so.6") - ("pcre2" "libpcre2-8" "libpcre2-8.so") - ("mpfr" "libmpfr" "libmpfr.so") - ("openblas" "libblas" "libopenblas.so") - ("arpack-ng" "libarpack" "libarpack.so") - ("lapack" "liblapack" "liblapack.so") - ("libgit2" "libgit2" "libgit2.so") - ("gmp" "libgmp" "libgmp.so") - ("openspecfun" "libopenspecfun" "libopenspecfun.so") - ("fftw" "libfftw3" "libfftw3_threads.so") - ("fftwf" "libfftw3f" "libfftw3f_threads.so")))))) - (substitute* "base/math.jl" - (("const libm = Base.libm_name") - (string-append "const libm = \"" - (assoc-ref inputs "openlibm") - "/lib/libopenlibm.so" - "\"")) - (("const openspecfun = \"libopenspecfun\"") - (string-append "const openspecfun = \"" - (assoc-ref inputs "openspecfun") - "/lib/libopenspecfun.so" - "\""))) - #t)) + ;; ./src/runtime_ccall.cpp creates a map from library names to paths + ;; using the output of "/sbin/ldconfig -p". Since ldconfig is not + ;; used in Guix, we patch runtime_ccall.cpp to contain a static map. + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "base/math.jl" + (("const libm = Base.libm_name") + (string-append "const libm = \"" + (assoc-ref inputs "openlibm") + "/lib/libopenlibm.so" + "\""))) + #t)) (add-before 'build 'fix-include-and-link-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; LIBUTF8PROC is a linker flag, not a build target. It is - ;; included in the LIBFILES_* variable which is used as a - ;; collection of build targets and a list of libraries to link - ;; against. - (substitute* "src/flisp/Makefile" - (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)") - "$(BUILDDIR)/$(EXENAME): $(OBJS) $(LLT_release)") - (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug: \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)") - "$(BUILDDIR)/$(EXENAME)-debug: $(DOBJS) $(LLT_debug)")) + (lambda* (#:key inputs #:allow-other-keys) + ;; LIBUTF8PROC is a linker flag, not a build target. It is + ;; included in the LIBFILES_* variable which is used as a + ;; collection of build targets and a list of libraries to link + ;; against. + (substitute* "src/flisp/Makefile" + (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)\\$\\(EXE\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)") + "$(BUILDDIR)/$(EXENAME)$(EXE): $(OBJS) $(LLT_release)") + (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug$(EXE): \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)") + "$(BUILDDIR)/$(EXENAME)-debug\\$\\(EXE\\): $(DOBJS) $(LLT_debug)")) - ;; The REPL must be linked with libuv. - (substitute* "ui/Makefile" - (("JLDFLAGS \\+= ") - (string-append "JLDFLAGS += " - (assoc-ref %build-inputs "libuv") - "/lib/libuv.so "))) + ;; The REPL must be linked with libuv. + (substitute* "ui/Makefile" + (("JLDFLAGS \\+= ") + (string-append "JLDFLAGS += " + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so "))) - (substitute* "base/Makefile" - (("\\$\\(build_includedir\\)/uv/errno.h") - (string-append (assoc-ref inputs "libuv") - "/include/uv/errno.h"))) - #t)) + (substitute* "base/Makefile" + (("\\$\\(build_includedir\\)/uv/errno.h") + (string-append (assoc-ref inputs "libuv") + "/include/uv/errno.h"))) + #t)) (add-before 'build 'replace-default-shell - (lambda _ - (substitute* "base/client.jl" - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'unpack 'hardcode-paths (lambda _ - (substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl" - (("`which") (string-append "`" (which "which"))) - (("`wget") (string-append "`" (which "wget")))) + (substitute* "base/client.jl" + (("/bin/sh") (which "sh"))) + #t)) + (add-before 'build 'fix-precompile + (lambda _ + (substitute* "base/loading.jl" + (("something(Base.active_project(), \"\")") "\"\"")) #t)) (add-before 'check 'disable-broken-tests (lambda _ - (define (touch file-name) - (call-with-output-file file-name (const #t))) - ;; FIXME: All git tests works except this one. But *THIS* "fix" - ;; is not working, so right now I'm disabling all libgit2.jl tests - ;; (substitute* "stdlib/LibGit2/test/libgit2.jl" - ;; (("!LibGit2.use_http_path(cfg, github_cred)") "true") - ;; (("LibGit2.use_http_path(cfg, mygit_cred)") "true")) - (map (lambda (test) - (delete-file test) - (touch test)) - '("stdlib/Sockets/test/runtests.jl" - "stdlib/Distributed/test/runtests.jl" - ;; FIXME: see above - "stdlib/LibGit2/test/libgit2.jl")) - (substitute* "test/choosetests.jl" - ;; These tests fail, probably because some of the input - ;; binaries have been stripped and thus backtraces don't look - ;; as expected. - (("\"backtrace\",") "") - (("\"cmdlineargs\",") "")) - #t))) + (substitute* "test/choosetests.jl" + (("tests = testnames") + ;; Those failings are not deterministic. They depends on the + ;; running order. I think it depends on the number of + ;; runners, disabling it for now + ;; https://github.com/JuliaLang/julia/issues/34330 + "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\", + \"stress\",\"precompile\", + \"client\",\"stacktraces\"]), + testnames)")) + ;; When HOME is not set, julia calls uv_os_homedir, which in + ;; turns call getpwuid_r. Add the HOME env variable to the + ;; external julia call to fix this + (substitute* "test/cmdlineargs.jl" + (("\"JULIA_PROJECT\"") "\"HOME\"=>\"/tmp\", \"JULIA_PROJECT\"")) + ;; Marking the test as broken as it's a known bug: + ;; https://github.com/JuliaLang/julia/issues/32377 + (substitute* "stdlib/REPL/test/replcompletions.jl" + (("@test count") "@test_broken count")) + #t)) + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (program "julia")) + (with-directory-excursion bin + (wrap-program program + `("JULIA_LOAD_PATH" ":" prefix + ("" "$JULIA_LOAD_PATH"))) + (wrap-program program + `("JULIA_DEPOT_PATH" ":" prefix + ("" "$JULIA_DEPOT_PATH")))) + #t)))) #:make-flags (list - (string-append "prefix=" (assoc-ref %outputs "out")) - (string-append "PREFIX=" (assoc-ref %outputs "out")) - - ;; Passing the MARCH flag is necessary to build binary substitutes for - ;; the supported architectures. - ,(match (or (%current-target-system) - (%current-system)) - ("x86_64-linux" "MARCH=x86-64") - ("i686-linux" "MARCH=pentium4") - ("aarch64-linux" "MARCH=armv8-a") - ;; Prevent errors when querying this package on unsupported - ;; platforms, e.g. when running "guix package --search=" - (_ "MARCH=UNSUPPORTED")) - - "CONFIG_SHELL=bash" ;needed to build bundled libraries - "USE_SYSTEM_DSFMT=0" ;not packaged for Guix and upstream has no - ;build system for a shared library. - "USE_SYSTEM_LAPACK=1" - "USE_SYSTEM_BLAS=1" - "USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1 - "LIBBLAS=-lopenblas" - "LIBBLASNAME=libopenblas" + (string-append "prefix=" (assoc-ref %outputs "out")) + (string-append "PREFIX=" (assoc-ref %outputs "out")) - "USE_SYSTEM_FFTW=1" - "LIBFFTWNAME=libfftw3" - "LIBFFTWFNAME=libfftw3f" + ;; Passing the MARCH flag is necessary to build binary substitutes for + ;; the supported architectures. + ,(match (or (%current-target-system) + (%current-system)) + ("x86_64-linux" "MARCH=x86-64") + ("i686-linux" "MARCH=pentium4") + ("aarch64-linux" "MARCH=armv8-a") + ;; Prevent errors when querying this package on unsupported + ;; platforms, e.g. when running "guix package --search=" + (_ "MARCH=UNSUPPORTED")) - ;; TODO: Suitesparse does not install shared libraries, so we cannot - ;; use the suitesparse package. - ;; "USE_SYSTEM_SUITESPARSE=1" - ;; (string-append "SUITESPARSE_INC=-I " - ;; (assoc-ref %build-inputs "suitesparse") - ;; "/include") + "CONFIG_SHELL=bash" ;needed to build bundled libraries + ;; list of "USE_SYSTEM_*" is here: + ;; https://github.com/JuliaLang/julia/blob/v1.3.1/Make.inc + "USE_SYSTEM_DSFMT=1" + "USE_SYSTEM_P7ZIP=1" + "USE_SYSTEM_LAPACK=1" + "USE_SYSTEM_BLAS=1" + "USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1 + "LIBBLAS=-lopenblas" + "LIBBLASNAME=libopenblas" - "USE_GPL_LIBS=1" ;proudly - "USE_SYSTEM_UTF8PROC=1" - (string-append "UTF8PROC_INC=" - (assoc-ref %build-inputs "utf8proc") - "/include") - "USE_SYSTEM_LLVM=1" - "LLVM_VER=6.0.1" + "USE_SYSTEM_SUITESPARSE=1" + (string-append "SUITESPARSE_INC=-I " + (assoc-ref %build-inputs "suitesparse") + "/include") + "USE_GPL_LIBS=1" ;proudly + "USE_SYSTEM_UTF8PROC=1" + (string-append "UTF8PROC_INC=" + (assoc-ref %build-inputs "utf8proc") + "/include") + "USE_SYSTEM_LLVM=1" + "LLVM_VER=6.0.1" - "USE_LLVM_SHLIB=1" - "USE_SYSTEM_LIBUNWIND=1" - "USE_SYSTEM_LIBUV=1" - (string-append "LIBUV=" - (assoc-ref %build-inputs "libuv") - "/lib/libuv.so") - (string-append "LIBUV_INC=" - (assoc-ref %build-inputs "libuv") - "/include") - "USE_SYSTEM_PATCHELF=1" - "USE_SYSTEM_PCRE=1" - "USE_SYSTEM_OPENLIBM=1" + "USE_LLVM_SHLIB=1" + "USE_SYSTEM_LIBUNWIND=1" + "USE_SYSTEM_LIBUV=1" + (string-append "LIBUV=" + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so") + (string-append "LIBUV_INC=" + (assoc-ref %build-inputs "libuv") + "/include") + "USE_SYSTEM_PATCHELF=1" + "USE_SYSTEM_PCRE=1" + "USE_SYSTEM_OPENLIBM=1" - "USE_SYSTEM_GMP=1" - "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_ARPACK=1" - "USE_SYSTEM_LIBGIT2=1" - "USE_SYSTEM_ZLIB=1" - "USE_SYSTEM_OPENSPECFUN=1"))) + "USE_SYSTEM_GMP=1" + "USE_SYSTEM_MPFR=1" + "USE_SYSTEM_ARPACK=1" + "USE_SYSTEM_LIBGIT2=1" + (string-append "LIBUV=" + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so") + (string-append "LIBUV_INC=" + (assoc-ref %build-inputs "libuv") + "/include") + "USE_SYSTEM_ZLIB=1"))) (inputs `(("llvm" ,llvm-julia) - + ("p7zip" ,p7zip) ;; The bundled version is 3.3.0 so stick to that version. With other ;; versions, we get test failures in 'linalg/arnoldi' as described in ;; <https://bugs.gnu.org/30282>. @@ -403,12 +405,12 @@ ("coreutils" ,coreutils) ;for bindings to "mkdir" and the like ("lapack" ,lapack) ("openblas" ,openblas) ;Julia does not build with Atlas - ("libunwind" ,libunwind) + ("libunwind" ,libunwind-julia) ("openlibm" ,openlibm) - ("openspecfun" ,openspecfun) + ("mbedtls" ,mbedtls-apache) + ("curl" ,curl) ("libgit2" ,libgit2) - ("fftw" ,fftw) - ("fftwf" ,fftwf) + ("libssh2" ,libssh2) ("fortran" ,gfortran) ("libuv" ,libuv-julia) ("pcre2" ,pcre2) @@ -418,31 +420,9 @@ ("which" ,which) ("zlib" ,zlib) ("gmp" ,gmp) - ("virtualenv" ,python2-virtualenv) - ;; FIXME: The following inputs are downloaded from upstream to allow us - ;; to use the lightweight Julia release tarball. Ideally, these inputs - ;; would eventually be replaced with proper Guix packages. - - ;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib - ;; Find dependency versions here: - ;; https://raw.githubusercontent.com/JuliaLang/julia/77a2c1e245c85812dc1c7687540beedecc52758f/deps/Versions.make - ("rmath" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaLang/Rmath-julia") - (commit "v0.1"))) - (file-name "rmath-julia-0.1-checkout") - (sha256 - (base32 - "1zkpy0cg5zivq40zbhbdgj9128fqzs2j94wkwih8nc6xaj3gp9p6")))) - ("suitesparse" - ,(origin - (method url-fetch) - (uri "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.5.tar.gz") - (sha256 - (base32 - "1jcbxb8jx5wlcixzf6n5dca2rcfx6mlcms1k2rl5gp67ay3bix43")))) + ("suitesparse" ,suitesparse) + ;; Find dependencies versions here: + ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make ("objconv" ,(origin (method url-fetch) @@ -453,29 +433,21 @@ (base32 "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs")))) ("libwhich" - ,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e")) + ,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e")) (origin ;; Note: We use a /tarball URL, but that's because Julia's build ;; system checks the hash of that tarball; thus we can't use ;; 'git-fetch'. - (method url-fetch) - (uri (string-append - "https://api.github.com/repos/vtjnash/libwhich/tarball/" - commit)) + (method url-fetch) + (uri (string-append + "https://api.github.com/repos/vtjnash/libwhich/tarball/" + commit)) (file-name (string-append "libwhich-" (string-take commit 7) ".tar.gz")) - (sha256 - (base32 - "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b"))))) - ("dsfmt" - ,(origin - (method url-fetch) - (uri (string-append - "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/" - "SFMT/dSFMT-src-2.2.3.tar.gz")) - (sha256 - (base32 - "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42")))))) + (sha256 + (base32 + "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b"))))) + ("dsfmt" ,dsfmt))) (native-inputs `(("openssl" ,openssl) ("perl" ,perl) @@ -483,9 +455,12 @@ ("pkg-config" ,pkg-config) ("python" ,python-2))) (native-search-paths - (list (search-path-specification - (variable "JULIA_LOAD_PATH") - (files (list "share/julia/packages/"))))) + (list (search-path-specification + (variable "JULIA_LOAD_PATH") + (files (list "share/julia/packages/"))) + (search-path-specification + (variable "JULIA_DEPOT_PATH") + (files (list "share/julia/"))))) ;; Julia is not officially released for ARM and MIPS. ;; See https://github.com/JuliaLang/julia/issues/10639 (supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux")) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 5815fde8f0..e220b2c24d 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -957,10 +958,10 @@ to flat and hierarchical lists.") "11kpq34j37c1gsvj5nxhkc31bw8gw2n7nkqsfx87jw9f4v2vhmr9")))) (build-system qt-build-system) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules))) - (inputs - `(("qtbase" ,qtbase) + `(("extra-cmake-modules" ,extra-cmake-modules) ("qttools" ,qttools))) + (inputs + `(("qtbase" ,qtbase))) (home-page "https://community.kde.org/Frameworks") (synopsis "Data plotting library") (description "KPlotWidget is a QWidget-derived class that provides a virtual @@ -2448,7 +2449,8 @@ with su and ssh respectively.") "1s3bmn1ck7xvc7a6gv7ywv9161hdahiiw20aq88s4qkm2s5wyy6v")))) (build-system cmake-build-system) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules))) + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) (inputs `(("kconfig" ,kconfig) ("kcoreaddons" ,kcoreaddons) @@ -2458,7 +2460,6 @@ with su and ssh respectively.") ("kservice" ,kservice) ("kwallet" ,kwallet) ("qtbase" ,qtbase) - ("qttools" ,qttools) ("qtwebkit" ,qtwebkit))) (home-page "https://community.kde.org/Frameworks") (synopsis "KDE Integration for QtWebKit") @@ -2558,6 +2559,7 @@ window does not need focus for them to be activated.") (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools) ("shared-mime-info" ,shared-mime-info))) (inputs `(("karchive" ,karchive) @@ -2570,8 +2572,7 @@ window does not need focus for them to be activated.") ("kitemviews" ,kitemviews) ("kwidgetsaddons" ,kwidgetsaddons) ("qtbase" ,qtbase) - ("qtsvg" ,qtsvg) - ("qttools" ,qttools))) + ("qtsvg" ,qtsvg))) (arguments `(#:phases (modify-phases %standard-phases @@ -2686,6 +2687,7 @@ consumption.") ("solid" ,solid))) (native-inputs `(("dbus" ,dbus) + ("qttools" ,qttools) ("extra-cmake-modules" ,extra-cmake-modules))) (inputs `(;; TODO: LibACL , <ftp://oss.sgi.com/projects/xfs/cmd_tars> @@ -2708,7 +2710,6 @@ consumption.") ("libxslt" ,libxslt) ("qtbase" ,qtbase) ("qtscript" ,qtscript) - ("qttools" ,qttools) ("qtx11extras" ,qtx11extras) ("sonnet" ,sonnet))) (arguments @@ -3241,7 +3242,8 @@ the passwords on KDE work spaces.") `(("kconfig" ,kconfig) ("kconfigwidgets" ,kconfigwidgets))) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules))) + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) (inputs `(("attica" ,attica) ("kauth" ,kauth) @@ -3255,7 +3257,6 @@ the passwords on KDE work spaces.") ("kwidgetsaddons" ,kwidgetsaddons) ("kwindowsystem" ,kwindowsystem) ("qtbase" ,qtbase) - ("qttools" ,qttools) ("sonnet" ,sonnet))) (arguments `(#:tests? #f ; FIXME: 1/5 tests fail. diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm index 12aa9fe53a..666959ea15 100644 --- a/gnu/packages/kde-internet.scm +++ b/gnu/packages/kde-internet.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages serialization) #:use-module (gnu packages ssh) #:use-module (gnu packages telephony) + #:use-module (gnu packages linphone) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm new file mode 100644 index 0000000000..50d75a4a95 --- /dev/null +++ b/gnu/packages/linphone.scm @@ -0,0 +1,594 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages linphone) + #:use-module (gnu packages) + #:use-module (gnu packages admin) + #:use-module (gnu packages audio) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnome-xyz) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages java) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages telephony) + #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages xiph) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu)) + +(define-public bcunit + (package + (name "bcunit") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0ylchj8w98ic2fkqpxc6yk4s6s0h0ql2zsz5n49jd7126m4h8dqk")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications Unit Testing Framework") + (description "BCUnit is a fork of the defunct project CUnit, +with several fixes and patches applied. It is an unit testing +framework for writing, administering, and running unit tests in C.") + (home-page "https://gitlab.linphone.org/BC/public/bcunit") + (license license:lgpl2.0+))) + +(define-public bctoolbox + (package + (name "bctoolbox") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bcunit" ,bcunit) + ("mbedtls" ,mbedtls-apache))) + (synopsis "Belledonne Communications Tool Box") + (description "BcToolBox is an utilities library used by Belledonne +Communications softwares like belle-sip, mediastreamer2 and linphone.") + (home-page "https://gitlab.linphone.org/BC/public/bctoolbox") + (license license:gpl2+))) + +(define-public belr + (package + (name "belr") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1fwv2cg3qy9vdc7dimcda7nqcqc1h2cdd7ikhk7ng7q4ys8m96c1")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bctoolbox" ,bctoolbox))) + (synopsis "Belledonne Communications Language Recognition Library") + (description "Belr is Belledonne Communications' language recognition library, +written in C++11. It parses text inputs formatted according to a language +defined by an ABNF grammar, such as the protocols standardized at IETF.") + (home-page "https://gitlab.linphone.org/BC/public/belr") + (license license:gpl3+))) + +(define-public belcard + (package + (name "belcard") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0iiyrll1shnbb0561pkvdqcmx9b2cdr76xpsbaqdirc3s4xzcl0k")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bctoolbox" ,bctoolbox) + ("belr" ,belr))) + (synopsis "Belledonne Communications VCard Library") + (description "Belcard is a C++ library to manipulate VCard standard format.") + (home-page "https://gitlab.linphone.org/BC/public/belcard") + (license license:gpl3+))) + +(define-public bcmatroska2 + (package + (name "bcmatroska2") + (version "0.23") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1a0vlk4fhh189pfzrwbc3xbc5vyx6cnxy642d1h40045jz9y4h15")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications Media Container") + (description "BcMatroska is a free and open standard multi-media +container format. It can hold an unlimited number of video, audio, +picture, or subtitle tracks in one file. ") + (home-page "https://gitlab.linphone.org/BC/public/bcmatroska2") + (license + (list + ;; That license applies for Core C and LibEBML2. + ;; https://www.matroska.org/node/47 + license:bsd-4 + ;; That license applies for LibMatroska2. + ;; https://www.matroska.org/node/47 + license:lgpl2.1+)))) + +(define-public bcg729 + (package + (name "bcg729") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "01y34ky7ykjgfnf8a9f59hg61fqfjiprfrzshdz06w0lz4gvy3qs")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications G729 Codec") + (description "BcG729 is an implementation of both encoder and decoder of +the ITU G729 speech codec. The library written in C 99 is fully portable and +can be executed on many platforms including both ARM and x86 processors. It +supports concurrent channels encoding and decoding for multi call application +such as conferencing.") + (home-page "https://gitlab.linphone.org/BC/public/belcard") + (license license:gpl2+))) + +(define-public ortp + (package + (name "ortp") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen))) + (inputs + `(("bctoolbox" ,bctoolbox))) + (synopsis "Belledonne Communications RTP Library") + (description "oRTP is a C library implementing the RTP protocol. It +implements the RFC 3550 standard.") + (home-page "https://gitlab.linphone.org/BC/public/ortp") + (license license:gpl2+))) + +(define-public bzrtp + (package + (name "bzrtp") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "12y0kkh90pixaaxfyx26ca2brhy6nw57fsypp6vh8jk1illv0j5z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("sqlite3" ,sqlite) + ("xml2" ,libxml2))) + (synopsis "Belledonne Communications ZRTP Library") + (description "BZRTP is an implementation of ZRTP keys exchange +protocol, written in C. It is fully portable and can be executed on many +platforms including both ARM and x86.") + (home-page "https://gitlab.linphone.org/BC/public/bzrtp") + (license license:gpl2+))) + +(define-public belle-sip + (package + (name "belle-sip") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0s55kggmgxap54dkw5856bgk4xg7yvbzialpxnjm0zhpic3hff1z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; Requires network access + #:configure-flags + (list + "-DENABLE_STATIC=NO") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "src/CMakeLists.txt" + ;; ANTLR would use multithreaded DFA generation + ;; otherwise--which would not be reproducible. + (("-Xmultithreaded ") "")) + #t))))) + (inputs + `(("antlr3" ,antlr3-3.3) + ("antlr3c" ,libantlr3c) + ("bctoolbox" ,bctoolbox) + ("java" ,icedtea) + ("zlib" ,zlib))) + (synopsis "Belledonne Communications SIP Library") + (description "Belle-sip is a modern library implementing SIP transport, +transaction and dialog layers. It is written in C, with an object-oriented +API. It also comprises a simple HTTP/HTTPS client implementation.") + (home-page "https://gitlab.linphone.org/BC/public/belle-sip") + (license license:gpl2+))) + +(define-public mediastreamer2 + (package + (name "mediastreamer2") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" + "mediastreamer/mediastreamer-" version ".tar.gz")) + (sha256 + (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")) + (patches (search-patches "mediastreamer2-srtp2.patch")))) + (outputs '("out" "doc" "tester")) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_STRICT=NO" ; Would otherwise treat warnings as err + "-DENABLE_BV16=NO" ; Not available + "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"" + "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"") + #:phases + (modify-phases %standard-phases + (add-after 'install 'separate-outputs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (tester (assoc-ref outputs "tester")) + (tester-name (string-append ,name "_tester"))) + ;; Copy the tester executable. + (mkdir-p (string-append tester "/bin")) + (rename-file (string-append out "/bin/" tester-name) + (string-append tester "/bin/" tester-name)) + ;; Copy the tester data files. + (copy-recursively (string-append out "/share/" tester-name) + (string-append tester "/share/" tester-name)) + (delete-file-recursively (string-append out "/share/" + tester-name)) + ;; Copy the HTML documentation. + (copy-recursively (string-append out "/share/doc/" + ,name "-" ,version "/html") + (string-append doc "/share/doc/" + ,name "-" ,version "/html")) + (delete-file-recursively (string-append out "/share/doc/" + ,name "-" ,version + "/html")) + #t)))))) + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("python" ,python))) + (inputs + `(("alsa" ,alsa-lib) + ("bcg729" ,bcg729) + ("bcmatroska2" ,bcmatroska2) + ("bctoolbox" ,bctoolbox) + ("ffmpeg" ,ffmpeg) + ("glew" ,glew) + ("glu" ,glu) + ("glx" ,mesa-utils) + ("gsm" ,gsm) + ("opengl" ,mesa) + ("opus" ,opus) + ("ortp" ,ortp) + ("pcap" ,libpcap) + ("portaudio" ,portaudio) + ("pulseaudio" ,pulseaudio) + ("spandsp" ,spandsp) + ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("srtp" ,libsrtp) + ("theora" ,libtheora) + ("turbojpeg" ,libjpeg-turbo) + ("v4l" ,v4l-utils) + ("vpx" ,libvpx) + ("x11" ,libx11) + ("xv" ,libxv) + ("zrtp", bzrtp))) + (synopsis "Belledonne Communications Streaming Engine") + (description "Mediastreamer2 is a powerful and lightweight +streaming engine for telephony applications. This media processing +and streaming toolkit is responsible for receiving and sending all +multimedia streams in Linphone, including media capture, encoding and +decoding, and rendering.") + (home-page "https://gitlab.linphone.org/BC/public/mediastreamer2") + (license license:gpl2+))) + +(define-public liblinphone + (package + (name "liblinphone") + (version "3.12.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/linphone" + "/linphone-" version ".tar.gz")) + (sha256 + (base32 "0phhkx55xdyg28d4wn8l8q4yvsmdgzmjiw584d4s190sq1azm91x")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (string-append (assoc-ref %build-inputs "gtk2") + "/lib/gtk-2.0/include")) + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (string-append (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_GTK_UI=YES") ; For Legacy UI + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "gtk/main.c" + (("#include \"liblinphone_gitversion.h\"") + "")) + #t))))) + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("gettext" ,gettext-minimal) + ("iconv" ,libiconv) + ("python" ,python) + ("xml2" ,libxml2) + ("zlib" ,zlib))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("belcard" ,belcard) + ("bellesip" ,belle-sip) + ("bzrtp", bzrtp) + ("glib" ,glib) + ("gtk2" ,gtk+-2) + ("mediastreamer2" ,mediastreamer2) + ("notify" ,libnotify) + ("ortp" ,ortp) + ("pystache" ,python-pystache) + ("six" ,python-six) + ("sqlite" ,sqlite) + ("udev" ,eudev))) + (propagated-inputs + `(("murrine" ,murrine))) ; Required for GTK UI + (synopsis "Belledonne Communications Softphone Library") + (description "Liblinphone is a high-level SIP library integrating +all calling and instant messaging features into an unified +easy-to-use API. It is the cross-platform VoIP library on which the +Linphone application is based on, and that anyone can use to add audio +and video calls or instant messaging capabilities to an application.") + (home-page "https://gitlab.linphone.org/BC/public/liblinphone") + (license license:gpl2+))) + +(define-public msopenh264 + (package + (name "msopenh264") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0rdxgazm52560g52pp6mp3mwx6j1z3h2zyizzfycp8y8zi92fqm8")) + (patches + (list + ;; For support for OpenH264 version >= 2. + (origin + (method url-fetch) + (uri + (string-append "https://gitlab.linphone.org/BC/public/msopenh264/commit/" + "493d147d28c9a0f788ba4e50b47a1ce7b18bf326.diff")) + (file-name "msopenh264-openh264.patch") + (sha256 + (base32 "0mmd7nz5n9ian4rcwn200nldmy5j0dpdrna7r32rqnaw82bx3kdb"))))))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("openh264" ,openh264) + ("ortp" ,ortp))) + (synopsis "Media Streamer H.264 Codec") + (description "MsOpenH264 is an H.264 encoder/decoder plugin for +mediastreamer2 based on the openh264 library.") + (home-page "https://gitlab.linphone.org/BC/public/msopenh264") + (license license:gpl2+))) + +(define-public mssilk + (package + (name "mssilk") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "07ip0vd29d1n98lnqs5wpimcsmpm65yl7g5vk4hbqghcbsjw94lj")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp))) + (synopsis "Media Streamer SILK Codec") + (description "MSSILK is a plugin of MediaStreamer, adding support for +AMR codec. It is based on the Skype's SILK implementation.") + (home-page "https://gitlab.linphone.org/BC/public/mssilk") + (license license:gpl2+))) + +(define-public mswebrtc + (package + (name "mswebrtc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1wj28hl9myhshqmn64xg0jf07aw75gmnilb5rff6rcbdxim87mqr")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp))) + (synopsis "Media Streamer WebRTC Codec") + (description "MSWebRTC is a plugin of MediaStreamer, adding support for +WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.") + (home-page "https://gitlab.linphone.org/BC/public/mswebrtc") + (license license:gpl2+))) + +(define-public msamr + (package + (name "msamr") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "16c9f3z4wnj73k7y8gb0fgpr4axsm7b5zrbjvy8vsgz9gyg3agm5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_WIDEBAND=YES"))) + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("opencoreamr" ,opencore-amr) + ("ortp" ,ortp) + ("voamrwbenc" ,vo-amrwbenc))) + (synopsis "Media Streamer AMR Codec") + (description "MSAMR is a plugin of MediaStreamer, adding support for +AMR codec. It is based on the opencore-amr implementation.") + (home-page "https://gitlab.linphone.org/BC/public/msamr") + (license license:gpl3+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6c7eb5be12..fa47789d5c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -192,6 +192,12 @@ defconfig. Return the appropriate make target if applicable, otherwise return "deblob-check")) (sha256 deblob-check-hash)))) +(define deblob-scripts-5.6 + (linux-libre-deblob-scripts + "5.6" + (base32 "09hxrr4xzllq5lmipfb6if30318lksrk9py1axc36m9ynql4w0rc") + (base32 "09qz5d31g5zwicsnncjnjij193hk0g6kg0ss9jyzh6lp3wilcm71"))) + (define deblob-scripts-5.4 (linux-libre-deblob-scripts "5.4.28" @@ -362,42 +368,51 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.4-version "5.4.28") + +(define-public linux-libre-5.6-version "5.6.2") +(define-public linux-libre-5.6-pristine-source + (let ((version linux-libre-5.6-version) + (hash (base32 "1fdmcx5fk9wq9yx6vvnw76nvdysbvm83cik1dj1d67lw6bc92k9d"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-5.6))) + +(define-public linux-libre-5.4-version "5.4.30") (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "197p7rjmbs229ncj1y8s80f7n4bm8g9w0jrv1109m3rl8q9wqqy8"))) + (hash (base32 "1vwx6j87pkfyq68chng1hy0c85hpc2byabiv1pcikrmw07vpip8i"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.113") +(define-public linux-libre-4.19-version "4.19.114") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1rf0jz7r1f4rb4k0g3glssfa1hm2ka6vlbwjlkmsx1bybxnmg85m"))) + (hash (base32 "03hz6vg5bg728ilbm4z997pf52cgxzsxb03vz5cs55gwdbfa0h0y"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.174") +(define-public linux-libre-4.14-version "4.14.175") (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "12ai2lc2ny38s93d0m5ngrv030vwv1h2hhzp0fs6fhjxasikq8jc"))) + (hash (base32 "0b12w0d21sk261jr4p1pm32v0r20a5c2j1p5hasdqw80sb2hli6b"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.217") +(define-public linux-libre-4.9-version "4.9.218") (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "06b8av9f9pk2yp95nzv4322k0d5wsg40sxd9kfim1xzb093abckg"))) + (hash (base32 "1ka98c8sbfipzll6ss9fcsn26lh4cy60372yfw27pif4brhnwfnz"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.217") +(define-public linux-libre-4.4-version "4.4.218") (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "0vsjchywznmjn01flgvm9vsja5zqni319rfwgy997afcbz0c9spx"))) + (hash (base32 "0qzhcy8i111jbpnkpzq7hqf9nkwq4s7smi820hfvnmd2ky7cns7a"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -430,6 +445,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (patches (append (origin-patches source) patches)))) +(define-public linux-libre-5.6-source + (source-with-patches linux-libre-5.6-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-patch + ;; Pinebook Pro patch from linux-next, + ;; can be dropped for linux-libre 5.7 + (search-patch + "linux-libre-support-for-Pinebook-Pro.patch")))) + (define-public linux-libre-5.4-source (source-with-patches linux-libre-5.4-pristine-source (list %boot-logo-patch @@ -529,6 +553,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (description "Headers of the Linux-Libre kernel.") (license license:gpl2))) +(define-public linux-libre-headers-5.6 + (make-linux-libre-headers* linux-libre-5.6-version + linux-libre-5.6-source)) + (define-public linux-libre-headers-5.4 (make-linux-libre-headers* linux-libre-5.4-version linux-libre-5.4-source)) @@ -823,7 +851,24 @@ It has been modified to remove all non-free binary blobs.") linux-libre-source '("armhf-linux") #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + #:extra-version "arm-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) + +(define-public linux-libre-arm-generic-5.6 + (make-linux-libre* linux-libre-5.6-version + linux-libre-5.6-source + '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) (define-public linux-libre-arm-veyron (deprecated-package "linux-libre-arm-veyron" linux-libre-arm-generic)) @@ -868,7 +913,24 @@ It has been modified to remove all non-free binary blobs.") linux-libre-source '("aarch64-linux") #:defconfig "defconfig" - #:extra-version "arm64-generic")) + #:extra-version "arm64-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) + +(define-public linux-libre-arm64-generic-5.6 + (make-linux-libre* linux-libre-5.6-version + linux-libre-5.6-source + '("aarch64-linux") + #:defconfig "defconfig" + #:extra-version "arm64-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) (define-public linux-libre-riscv64-generic (make-linux-libre* linux-libre-version @@ -4432,6 +4494,40 @@ repair and easy administration.") from the btrfs-progs package. It is meant to be used in initrds.") (license (package-license btrfs-progs)))) +(define-public cramfs-tools + (package + (name "cramfs-tools") + (home-page "https://github.com/npitre/cramfs-tools") + (version "2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 "183rfqqyzx52q0vxicdgf0p984idh3rqkvzfb93gjvyzfhc15c0p")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "mkcramfs" (string-append out "/sbin")) + (install-file "cramfsck" (string-append out "/sbin"))) + #t))))) + (inputs + `(("zlib" ,zlib))) + (synopsis "Tools to manage Cramfs file systems") + (description "Cramfs is a Linux file system designed to be simple, small, +and to compress things well. It is used on a number of embedded systems and +small devices. This version has additional features such as uncompressed +blocks and random block placement.") + (license license:gpl2+))) + (define-public compsize (package (name "compsize") @@ -4571,7 +4667,7 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (define-public thinkfan (package (name "thinkfan") - (version "1.0.2") + (version "1.1") (source (origin (method git-fetch) @@ -4580,7 +4676,7 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "107vw0962hrwva3wra9n3hxlbfzg82ldc10qssv3dspja88g8psr")))) + (base32 "1fxd1w3z65glw6y04myn7ihgswkx6sqnkky159mik4n96pfrsvr5")))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -5699,13 +5795,13 @@ used by nftables.") (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-man-doc"))) ; FIXME: Needs docbook2x. - (inputs `(("bison" ,bison) - ("flex" ,flex) - ("gmp" ,gmp) + (inputs `(("gmp" ,gmp) ("libmnl" ,libmnl) ("libnftnl" ,libnftnl) ("readline" ,readline))) - (native-inputs `(("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config) + ("bison" ,bison) + ("flex" ,flex))) (home-page "https://www.nftables.org") (synopsis "Userspace utility for Linux packet filtering") (description "nftables is the project that aims to replace the existing @@ -5919,9 +6015,11 @@ the MTP device as a file system.") (base32 "1javw97yw0qvjmj14js8vw6nsfyf2xc0kfiyq5f2hsp0553w2cdq")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-silent-rules"))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("expat" ,expat) ("libcap" ,libcap) ("check" ,check) - ("groff" ,groff) ; for tests + (native-inputs `(("groff" ,groff) ; for tests + ("pkg-config" ,pkg-config))) + (inputs `(("check" ,check) + ("expat" ,expat) + ("libcap" ,libcap) ("libselinux" ,libselinux))) (synopsis "Utility to show process environment") (description "Procenv is a command-line tool that displays as much detail about @@ -6587,10 +6685,10 @@ of Linux application development.") (("/usr/bin/dbus-daemon") (which "dbus-daemon"))) #t))))) (inputs - `(("dbus" ,dbus) - ("libtool" ,libtool))) + `(("dbus" ,dbus))) (native-inputs `(("autoconf" ,autoconf) + ("libtool" ,libtool) ("pkgconfig" ,pkg-config) ("automake" ,automake))) (home-page "https://01.org/ell") diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 4c59cfa872..e404c57f63 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net> ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech> +;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -619,6 +620,43 @@ from other CLXes around the net.") (define-public ecl-clx (sbcl-package->ecl-package sbcl-clx)) +(define-public sbcl-clx-truetype + (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8") + (revision "1")) + (package + (name "sbcl-clx-truetype") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/l04m33/clx-truetype") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "package.lisp" + ((":export") ":export\n :+font-cache-filename+")) + #t)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("clx" ,sbcl-clx) + ("zpb-ttf" ,sbcl-zpb-ttf) + ("cl-vectors" ,sbcl-cl-vectors) + ("cl-paths-ttf" ,sbcl-cl-paths-ttf) + ("cl-fad" ,sbcl-cl-fad) + ("cl-store" ,sbcl-cl-store) + ("trivial-features" ,sbcl-trivial-features))) + (home-page "https://github.com/l04m33/clx-truetype") + (synopsis "Antialiased TrueType font rendering using CLX and XRender") + (description "CLX-TrueType is pure common lisp solution for +antialiased TrueType font rendering using CLX and XRender extension.") + (license license:expat)))) + (define-public sbcl-cl-ppcre-unicode (package (inherit sbcl-cl-ppcre) (name "sbcl-cl-ppcre-unicode") @@ -6643,8 +6681,8 @@ which implements a set of utilities.") (sbcl-package->ecl-package sbcl-metatilities-base)) (define-public sbcl-cl-containers - (let ((commit "b2980bac9ac87ad32b63b722ce520fa26cb36ee6") - (revision "2")) + (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7") + (revision "3")) (package (name "sbcl-cl-containers") (version (git-version "0.12.1" revision commit)) @@ -6657,7 +6695,7 @@ which implements a set of utilities.") (file-name (git-file-name name version)) (sha256 (base32 - "19hmlax19hq0xjaqr8za90vwf06ymxw1m29sj053a309k3hm84gx")))) + "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y")))) (build-system asdf-build-system/sbcl) (native-inputs `(("lift" ,sbcl-lift))) @@ -7204,8 +7242,8 @@ implementation specific equivalent.") (sbcl-package->ecl-package sbcl-trivial-macroexpand-all)) (define-public sbcl-serapeum - (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe") - (revision "0")) + (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169") + (revision "1")) (package (name "sbcl-serapeum") (version (git-version "0.0.0" revision commit)) @@ -7219,7 +7257,7 @@ implementation specific equivalent.") (file-name (git-file-name name version)) (sha256 (base32 - "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw")))) + "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index a65eb19e0c..709ea88ae0 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -365,14 +365,14 @@ an interpreter, a compiler, a debugger, and much more.") (define-public sbcl (package (name "sbcl") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" version "-source.tar.bz2")) (sha256 - (base32 "07pyzdjnhcpqwvr3rrk4i18maqdywbq1qj93fnpx1h4b7dp08r28")))) + (base32 "001gckyw8hl842nk7nwf5kcspzkc1g8dycpwylzh5chl6893ym5m")))) (build-system gnu-build-system) (outputs '("out" "doc")) (native-inputs @@ -687,6 +687,53 @@ interface.") (license (list license:lgpl2.1 license:clarified-artistic)))) ;TRIVIAL-LDAP package +(define-public ccl-1.12 + ;; This is a development snapshot. The last stable version is from November + ;; 2017 and does not support package-local-nicknames, which prevents CCL + ;; from compiling some third-party packages. + ;; The main drawback of 1.12 is that ARM is not supported for now. + (package + (inherit ccl) + (version "1.12-dev.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Clozure/ccl/") + (commit (string-append "v" version)))) + (file-name (git-file-name "ccl" version)) + (sha256 + (base32 + "1za5j4ll4hk1vi1i7v1bmqhaqbsgc16izn46qmry7dnbig0rdqm0")))) + ;; CCL consists of a "lisp kernel" and "heap image". + ;; See comment in `ccl' package. + (inputs + `(("ccl-bootstrap" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/Clozure/ccl/releases/download/v" version "/" + (match (%current-system) + ((or "i686-linux" "x86_64-linux") "linuxx86") + ;; Prevent errors when querying this package on unsupported + ;; platforms, e.g. when running "guix package --search=" + (_ "UNSUPPORTED")) + ".tar.gz")) + (sha256 + (base32 + (match (%current-system) + ((or "i686-linux" "x86_64-linux") + "1pqiybxxv4wx5zlp1i60nim3njaczwl5321bdwq6frjsl3s95xmb") + (_ "")))))))) + (arguments + (substitute-keyword-arguments (package-arguments ccl) + ((#:phases phases) + `(modify-phases ,phases + (replace 'unpack (assoc-ref %standard-phases 'unpack)) + (add-after 'unpack 'unpack-image + (lambda* (#:key inputs #:allow-other-keys) + (invoke "tar" "xzvf" (assoc-ref inputs "ccl-bootstrap")))))))) + (supported-systems '("i686-linux" "x86_64-linux")))) + (define-public lush2 (package (name "lush2") @@ -798,7 +845,7 @@ enough to play the original mainframe Zork all the way through.") (define-public txr (package (name "txr") - (version "233") + (version "234") (source (origin (method git-fetch) @@ -809,7 +856,7 @@ enough to play the original mainframe Zork all the way through.") (patches (search-patches "txr-shell.patch")) (sha256 (base32 - "14dwjgx9lbfajk3q539m3v3b9j047q83ldnqb4cagbs8ampvhfbv")))) + "0c9qsj4xwc24c9g02mr5n97m4d87d4n0pcc2c2n58l2vg5dnzba0")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("cc=gcc") diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index dac2ef6d24..f5dc027e03 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -264,11 +264,11 @@ with freedesktop.org standard.") (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) ("intltool" ,intltool))) (inputs `(("bash" ,bash) ("gtk+" ,gtk+) ("eudev" ,eudev) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("ffmpegthumbnailer" ,ffmpegthumbnailer) ("jmtpfs" ,jmtpfs) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 139f737b6a..2acc6ecec0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -29,6 +29,8 @@ ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,6 +83,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages flex) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages kerberos) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libevent) @@ -218,11 +221,11 @@ #:parallel-tests? #f)) (native-inputs - `(("perl" ,perl))) ;for 'gylwrap' - (inputs - `(("dejagnu" ,dejagnu) - ("m4" ,m4) + `(("perl" ,perl) ;for 'gylwrap' ("texinfo" ,texinfo) + ("dejagnu" ,dejagnu))) + (inputs + `(("m4" ,m4) ("guile" ,guile-3.0) ("gsasl" ,gsasl) ("gnutls" ,gnutls) @@ -525,7 +528,7 @@ It adds a large amount of new and improved features to mutt.") (define-public gmime (package (name "gmime") - (version "3.2.6") + (version "3.2.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -533,7 +536,7 @@ It adds a large amount of new and improved features to mutt.") "/gmime-" version ".tar.xz")) (sha256 (base32 - "05s7qjrxbj010q016pmdqdq73gz8vl4hv29kwaign0j8gi61kzxb")))) + "0i3xfc84qn1z99i70q68kbnp9rmgqrnprqb418ba52s6g9j9dsia")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1076,6 +1079,38 @@ and search library.") (define-public python2-notmuch (package-with-python2 python-notmuch)) +(define-public muchsync + (package + (name "muchsync") + (version "5") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.muchsync.org/src/" + "muchsync-" version ".tar.gz")) + (sha256 + (base32 "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb")))) + (build-system gnu-build-system) + (native-inputs + `(("ghc-pandoc" ,ghc-pandoc) + ("pkg-config" ,pkg-config))) + (inputs + `(("libcrypto" ,openssl) + ("notmuch" ,notmuch) + ("sqlite" ,sqlite) + ("xapian" ,xapian))) + (home-page "http://www.muchsync.org/") + (synopsis "Synchronize notmuch mail across machines") + (description + "Muchsync brings Notmuch to all of your computers by synchronizing your +mail messages and Notmuch tags across machines. The protocol is heavily +pipelined to work efficiently over high-latency networks such as mobile +broadband. Muchsync supports arbitrary pairwise synchronization among +replicas. A version-vector-based algorithm allows it to exchange only the +minimum information necessary to bring replicas up to date regardless of which +pairs have previously synchronized.") + (license gpl2+))) + (define-public getmail (package (name "getmail") @@ -2965,8 +3000,8 @@ replacement for the @code{urlview} program.") (license gpl2+))) (define-public mumi - (let ((commit "6653e2d525b945fcd671dbfbf7b42cc588a1cf4b") - (revision "7")) + (let ((commit "c85015dac8110bd7a4c37375b9eb05ebeadedf74") + (revision "15")) (package (name "mumi") (version (git-version "0.0.0" revision commit)) @@ -2978,7 +3013,7 @@ replacement for the @code{urlview} program.") (file-name (git-file-name name version)) (sha256 (base32 - "0h1q61yl01hm7wygv1bv47ncg7l7gcw7aq8ny61g3hr1acsqysjf")))) + "05nma73kqnva6ci92aq8jb3718ry5dz3sd64ibpxn5w77z5kpwr7")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -3009,11 +3044,15 @@ replacement for the @code{urlview} program.") (inputs `(("guile-debbugs" ,guile-debbugs) ("guile-email" ,guile-email) + ("guile-gcrypt" ,guile-gcrypt) ("guile-json" ,guile-json-3) + ("guile-redis" ,guile-redis) ("guile-sqlite3" ,guile-sqlite3) ("guile-syntax-highlight" ,guile-syntax-highlight) + ("guile-webutils" ,guile-webutils) ("gnutls" ,gnutls) ;needed to talk to https://debbugs.gnu.org ("guile" ,guile-2.2) + ("mailutils" ,mailutils) ("mumimu" ,mumimu))) ;'mumimu' executable recorded in (mumi config) (native-inputs `(("autoconf" ,autoconf) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 13604af08f..3f8354e7b4 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -137,10 +138,10 @@ a flexible and convenient way.") (srfi srfi-1)))) (native-inputs `(("pkg-config" ,pkg-config) + ("flex" ,flex) ("groff" ,groff))) ;needed at build time (troff, grops, soelim, etc.) (inputs - `(("flex" ,flex) - ("gdbm" ,gdbm) + `(("gdbm" ,gdbm) ("groff-minimal" ,groff-minimal) ("less" ,less) ("libpipeline" ,libpipeline) @@ -230,7 +231,7 @@ automatically.") (define-public scdoc (package (name "scdoc") - (version "1.9.4") + (version "1.10.1") (source (origin (method url-fetch) @@ -239,7 +240,7 @@ automatically.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00zc3rzj97gscby31djlqyczvqpyhrl66i44czwzmmn7rc5j03m1")))) + "13x7g1r56bshvfmlvapvz35ywnbgsh337kywb5kcv8nc6b3j3q40")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm index 54d4c539ec..9f86ee5649 100644 --- a/gnu/packages/mastodon.scm +++ b/gnu/packages/mastodon.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -29,19 +29,18 @@ (define-public toot (package (name "toot") - (version "0.24.0") + (version "0.25.2") (source (origin (method url-fetch) (uri (pypi-uri "toot" version)) (sha256 - (base32 "0w83b6ydaggrand9285wfrjrm1qry8fjl4as0iihma630ky6y2w3")))) + (base32 "16akld7zfr52rqrbgf6hmsca9qsrfdbbbd9bji8d26zggxmqq4vq")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check + (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) (invoke "py.test")))))) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 5c9da6d72b..d913836825 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -3,8 +3,9 @@ ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 ng0 <ng0@n0.is> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> +;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,7 +95,7 @@ MATE applications.") (define-public mate-power-manager (package (name "mate-power-manager") - (version "1.22.0") + (version "1.24.1") (source (origin (method url-fetch) @@ -102,14 +103,14 @@ MATE applications.") name "-" version ".tar.xz")) (sha256 (base32 - "03c09h41qfz83wmjfvwzkq4xqc54aswmki4h034qcxbgfnyfmk1i")))) + "13ar40x5hs4d4h81q8qsy0agbx5wnarry3mbhws54zydcxd7j20a")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) ("yelp-tools" ,yelp-tools) + ("gettext" ,gettext-minimal) ("glib" ,glib "bin") ; glib-gettextize - ("libtool" ,libtool))) + ("polkit" ,polkit))) ; for ITS rules (inputs `(("gtk+" ,gtk+) ("glib" ,glib) @@ -133,7 +134,7 @@ actions.") (define-public mate-icon-theme (package (name "mate-icon-theme") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -141,7 +142,7 @@ actions.") name "-" version ".tar.xz")) (sha256 (base32 - "090vfxpn1b1wwvkilv1j3cx4swdm4z0s7xyvhvqhdzj58zsf2000")))) + "0a2lz61ivwwcdznmwlmgjr6ipr9sdl5g2czbagnpxkwz8f3m77na")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -194,14 +195,14 @@ from Mint-X-F and Faenza-Fresh icon packs.") (define-public mate-themes (package (name "mate-themes") - (version "3.22.20") + (version "3.22.21") (source (origin (method url-fetch) (uri (string-append "mirror://mate/themes/" (version-major+minor version) "/mate-themes-" version ".tar.xz")) (sha256 - (base32 "0c3dhf8p9nc2maky4g9xr04iil9wwbdkmhpzynlc6lfg4ksqq2bx")))) + (base32 "051g2vq817g84yrqzf7hjcqr4xrghnw1rprjd6jf5mhhzmwcas6n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -221,7 +222,7 @@ themes for both gtk+-2 and gtk+-3.") (define-public mate-desktop (package (name "mate-desktop") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -229,7 +230,7 @@ themes for both gtk+-2 and gtk+-3.") name "-" version ".tar.xz")) (sha256 (base32 - "09gn840p6qds21kxab4pidjd53g76s76i7178fdibrz462mda217")))) + "0l4bbj6nz315s5ndq5sw1jcgi3s1whk59bj12c4mbpsvmlb33adg")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -255,7 +256,7 @@ desktop and the mate-about program.") (define-public libmateweather (package (name "libmateweather") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -263,7 +264,7 @@ desktop and the mate-about program.") name "-" version ".tar.xz")) (sha256 (base32 - "1ribgcwl4ncfbcf9bkcbxrgc7yzajdnxg12837psngymkqswlp6a")))) + "094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -301,14 +302,14 @@ the MATE desktop environment.") (define-public mate-terminal (package (name "mate-terminal") - (version "1.23.0") + (version "1.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://mate/" (version-major+minor version) "/" "mate-terminal-" version ".tar.xz")) (sha256 - (base32 "1jkw8i2j45p80i7wmm0j0gkbd44nr2qj8bf79jrh5z8kn01b1ibd")))) + (base32 "0nc23nmbkya2fgf7j65z85dcibwi5akkr8nscqrvk039ckirhk97")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -340,7 +341,7 @@ configurations (profiles).") (define-public mate-session-manager (package (name "mate-session-manager") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -348,31 +349,13 @@ configurations (profiles).") name "-" version ".tar.xz")) (sha256 (base32 - "1kpfmgay01gm74paaxccs3lim4jfb4hsm7i85jfdypr51985pwyj")))) + "01scj5d1xlri9b2id8gm9kfni9nzhdjdf7rag7fvcxwqp7baz3h3")))) (build-system glib-or-gtk-build-system) (arguments - `(#:configure-flags (list "--enable-elogind" + `(#:configure-flags (list "--with-elogind" "--disable-schemas-compile") #:phases (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda* (#:key outputs #:allow-other-keys) - ;; Use elogind instead of systemd. - (substitute* "configure" - (("libsystemd-login") - "libelogind") - (("systemd") "elogind")) - (substitute* "mate-session/gsm-systemd.c" - (("#include <systemd/sd-login.h>") - "#include <elogind/sd-login.h>")) - ;; Remove uses of the systemd journal. - (substitute* "mate-session/main.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - (substitute* "mate-session/gsm-manager.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - (substitute* "mate-session/gsm-autostart-app.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - #t)) (add-after 'install 'update-xsession-dot-desktop (lambda* (#:key outputs #:allow-other-keys) ;; Record the absolute file name of 'mate-session' in the @@ -389,6 +372,7 @@ configurations (profiles).") (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) + ("libxcomposite" ,libxcomposite) ("xtrans" ,xtrans) ("gobject-introspection" ,gobject-introspection))) (inputs @@ -407,7 +391,7 @@ configuration program to choose applications starting on login.") (define-public mate-settings-daemon (package (name "mate-settings-daemon") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -415,7 +399,7 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "0yr5v6b9hdk20j29smbw1k4fkyg82i5vlflmgly0vi5whgc74gym")))) + "1hc5a36wqpjv9i2lgrn1h12s8y910xab3phx5vzbzq47kj6m3gw9")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -449,7 +433,7 @@ configuration program to choose applications starting on login.") (define-public libmatemixer (package (name "libmatemixer") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -457,7 +441,7 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "1v0gpr55gj4mj8hzxbhgzrmhaxvs2inxhsmirvjw39sc7iplvrh9")))) + "08vkdp2kzy27xwscwp2jj5nz0yblrka2482l6cx3wl4dnk0rpznm")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -478,7 +462,7 @@ sound systems.") (define-public libmatekbd (package (name "libmatekbd") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -486,7 +470,7 @@ sound systems.") name "-" version ".tar.xz")) (sha256 (base32 - "1dsr7618c92mhwabwhgxqsfp7gnf9zrz2z790jc5g085dxhg13y8")))) + "1sq7gwr9q3hq4q0vx32qqa68qcqf5by9mqyxnq6lwgaq8ydq16ab")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -509,7 +493,7 @@ MATE desktop environment.") (define-public mate-menus (package (name "mate-menus") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -517,7 +501,7 @@ MATE desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "1lkakbf2f1815c146z4xp5f0h4lim6jzr02681wbvzalc6k97v5c")))) + "1vv4j38h7mrbfrsj99k25z6y7b5dg30fzd2qnhk7pl8ca8s1jhrd")))) (build-system gnu-build-system) (arguments `(#:phases @@ -550,7 +534,7 @@ assorted menu related utility programs.") (define-public mate-applets (package (name "mate-applets") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -558,7 +542,7 @@ assorted menu related utility programs.") name "-" version ".tar.xz")) (sha256 (base32 - "0f5ym6z7awi0kw6i1sdkj2qly88sl692j5r1zhklihyz1z9a6j0h")))) + "0nm3amb3v458mxv1mbz9y8f4230gldmydmkkm7vqxsrxbccynkxq")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -623,7 +607,7 @@ Interactive Weather Information Network (IWIN). (define-public mate-media (package (name "mate-media") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -631,7 +615,7 @@ Interactive Weather Information Network (IWIN). name "-" version ".tar.xz")) (sha256 (base32 - "0jrxbz00vjas0yp3ixvyzfsdby2ac3p3bds9yd7q1437mmhf71mj")))) + "1d5dx79yfqghjaxrdrdh053nfnvkbx8p3ma7j87s7rsvy5irs963")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -659,7 +643,7 @@ mate-volume-control, a MATE volume control application and applet.") (define-public mate-panel (package (name "mate-panel") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -667,7 +651,7 @@ mate-volume-control, a MATE volume control application and applet.") name "-" version ".tar.xz")) (sha256 (base32 - "17l4ryy71bkszr6shm9dm31zcsd7m0digi1mmvdlib5hqzvc7li7")))) + "1hrh10pqk8mva1ix2nmsp3cbbn81cgqy0b9lqhsl0b5p0s40i7in")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags @@ -834,7 +818,7 @@ infamous 'Wanda the Fish'.") (define-public caja (package (name "caja") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -842,7 +826,7 @@ infamous 'Wanda the Fish'.") name "-" version ".tar.xz")) (sha256 (base32 - "14x9n9q7vip5zp4mdgccj1p1dm4xn429g0bjw2v8iz7zmjb7vcgl")))) + "1cnfy481hcwjv3ia3kw0d4h7ga8cng0pqm3z349v4qcmfdapmqc0")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-update-mimedb") @@ -892,7 +876,7 @@ icons on the MATE desktop. It works on local and remote file systems.") (define-public caja-extensions (package (name "caja-extensions") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -900,7 +884,7 @@ icons on the MATE desktop. It works on local and remote file systems.") name "-" version ".tar.xz")) (sha256 (base32 - "1h866jmdd3qpjzi7wjj11krwiaadnlf21844g1zqfb4jgrzj773p")))) + "175v5c05nrdliya23rbqma49alldq67dklmvpq18nq71sfry4pp6")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--enable-sendto" @@ -920,6 +904,7 @@ icons on the MATE desktop. It works on local and remote file systems.") ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gtk-doc" ,gtk-doc) + ("libxml2" ,libxml2) ("pkg-config" ,pkg-config))) (inputs `(("attr" ,attr) @@ -946,7 +931,7 @@ icons on the MATE desktop. It works on local and remote file systems.") (define-public mate-control-center (package (name "mate-control-center") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -954,8 +939,21 @@ icons on the MATE desktop. It works on local and remote file systems.") name "-" version ".tar.xz")) (sha256 (base32 - "06wpfsxsiv7w3dl7p395r5vcxqbjlllydqbnvbr6yn0lrac15i71")))) + "192plsh83m2qz7jgakns2yvhqbj53v7i54iwb0z26i2awy0j9rcd")))) (build-system glib-or-gtk-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'build 'fix-polkit-action + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure the polkit file refers to the right + ;; executable. + (let ((out (assoc-ref outputs "out"))) + (substitute* + '("capplets/display/org.mate.randr.policy.in" + "capplets/display/org.mate.randr.policy") + (("/usr/sbin") + (string-append out "/sbin"))) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) @@ -991,6 +989,7 @@ icons on the MATE desktop. It works on local and remote file systems.") ("mate-menus" ,mate-menus) ("mate-settings-daemon" ,mate-settings-daemon) ("pango" ,pango) + ("polkit" ,polkit) ("startup-notification" ,startup-notification))) (propagated-inputs `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc @@ -1005,7 +1004,7 @@ of various aspects of your desktop.") (define-public marco (package (name "marco") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1013,7 +1012,7 @@ of various aspects of your desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1i1pi1z9mrb6564mxcwb93jqpdppfv58c2viwmicsixis62hv5wx")))) + "0hcbyv8czymhwz5q9rwig7kkhlhik6y080bls736f3wsbqnnirc2")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1055,7 +1054,7 @@ for use with MATE or as a standalone window manager.") (define-public mate-user-guide (package (name "mate-user-guide") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1063,7 +1062,7 @@ for use with MATE or as a standalone window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "0ckn7h7l0qdgdx440dwx1h8i601s22sxlf5a7179hfirk9016j0z")))) + "0ddxya84iydvy85dbqls0wmz2rph87wri3rsdhv4rkbhh5g4sd7f")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1094,7 +1093,7 @@ sessions, panels, menus, file management, and preferences.") (define-public mate-calc (package (name "mate-calc") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1102,7 +1101,7 @@ sessions, panels, menus, file management, and preferences.") name "-" version ".tar.xz")) (sha256 (base32 - "1njk6v7z3969ikvcrabr1lw5f5572vb14w064zm3mydj8cc5inlr")))) + "0f7hc1gg41kcwcyvsqqg79qylrp0qqymris8qizk2x3cfvvg7261")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1125,7 +1124,7 @@ sessions, panels, menus, file management, and preferences.") (define-public mate-backgrounds (package (name "mate-backgrounds") - (version "1.22.0") + (version "1.24.1") (source (origin (method url-fetch) @@ -1133,7 +1132,7 @@ sessions, panels, menus, file management, and preferences.") name "-" version ".tar.xz")) (sha256 (base32 - "1j9ch04qi2q4mdcvb92w667ra9hpfdf2bfpi1dpw0nbph7r6qvj9")))) + "0b9yx68p9l867bqsl9z2g4wrs8p396ls673jgaliys5snmk8n8dn")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool))) @@ -1147,7 +1146,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public mate-netbook (package (name "mate-netbook") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1155,7 +1154,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "17p1wv9bcr3kvlahnxmxj786vka86nysi90x5xci6ilwyjlaxh0l")))) + "1bmk9gq5gcqkvfppa7i1hqfph8sajc3xs189s4ha97g0ifwd98a8")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1188,7 +1187,7 @@ Re-decorates windows on un-maximise. (define-public mate-screensaver (package (name "mate-screensaver") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1196,7 +1195,7 @@ Re-decorates windows on un-maximise. name "-" version ".tar.xz")) (sha256 (base32 - "17fxyccsc410wbyxmds1sm7gjqbj6z46x5cjk1791hfzf0sh82sy")))) + "0gpw6x9d0b77f14vjl7ghq5dya1mwcnvmgigg00manfwlksr5zby")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags @@ -1259,7 +1258,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public mate-utils (package (name "mate-utils") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1267,7 +1266,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0kz95hicjksgkwaj83fdp2rnaygfgjbj0jsnwy4n0lj5q90j7r28")))) + "1b16n1628gcsym5mph6lr9x5xm4rgkxsa8xwr2wlx8g2gw2775i1")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1291,6 +1290,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("libxext" ,libxext) ("mate-panel" ,mate-panel) ("pango" ,pango) + ("udisks" ,udisks) ("zlib" ,zlib))) (home-page "https://mate-desktop.org/") (synopsis "Utilities for the MATE Desktop") @@ -1311,7 +1311,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public eom (package (name "eom") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1319,7 +1319,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "093vbip848bp9y603yasbrg1bcp68m64hma7zhi5m37x2r103r6l")))) + "0zzximp2534bky0vac219alafblw6m0lis0gncq92017s6c1mb77")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1361,7 +1361,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public engrampa (package (name "engrampa") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1369,7 +1369,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "16yjplfl2sqa7n6404hjn0vwkh0xkdch73q7n5czynihmh3azc7p")))) + "13cak3qgrzqj74x9jq1sf155793v2bqqz4mk4i04g9f9xn3g85fl")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--disable-schemas-compile" @@ -1414,7 +1414,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public pluma (package (name "pluma") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1422,7 +1422,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "07rr5asdjr9slmaijp4m8v9vxscihvm36mfrwlp3lv12kry42a05")))) + "1vmndhlhy3qkf3xs5kkv0xhbv5ar25pqz0kp17hc4qhgjzycfr0r")))) (build-system glib-or-gtk-build-system) (arguments `(; Tests can not succeed. @@ -1453,7 +1453,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("libice" ,libice) ("packagekit" ,packagekit) ("pango" ,pango) - ("python-2" ,python-2) + ("python" ,python) ("scrollkeeper" ,scrollkeeper))) (home-page "https://mate-desktop.org/") (synopsis "Text Editor for MATE") @@ -1464,7 +1464,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public mate-system-monitor (package (name "mate-system-monitor") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1472,7 +1472,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0rs0n5ivmvi355fp3ymcp1jj2sz9viw31475aw7zh7s1l7dn969x")))) + "1cb36lrsn4fhsryl2kl4yq0qhp1p4r7k21w3fc2ywjga8fdxx6y5")))) (build-system glib-or-gtk-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1504,7 +1504,7 @@ MATE Desktop to monitor your system resources and usage.") (define-public mate-polkit (package (name "mate-polkit") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1512,7 +1512,7 @@ MATE Desktop to monitor your system resources and usage.") name "-" version ".tar.xz")) (sha256 (base32 - "02r8n71xflhvw2hsf6g4svdahzyg3r4n6xamasyzqfhyn0mqmjy0")))) + "1450bqzlnvwy3xa98lj102j2cf7piqbxcd1cy2zp41rdl8ri3gvn")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1551,6 +1551,7 @@ used to bring up authentication dialogs.") (union-build (assoc-ref %outputs "out") directories) #t))))) + (native-inputs `(("desktop-file-utils" ,desktop-file-utils))) (inputs ;; TODO: Add more packages `(("at-spi2-core" ,at-spi2-core) @@ -1558,7 +1559,6 @@ used to bring up authentication dialogs.") ("caja" ,caja) ("dbus" ,dbus) ("dconf" ,dconf) - ("desktop-file-utils" ,desktop-file-utils) ("engrampa" ,engrampa) ("eom" ,eom) ("font-cantarell" ,font-cantarell) @@ -1596,6 +1596,10 @@ used to bring up authentication dialogs.") ("shared-mime-info" ,shared-mime-info) ("yelp" ,yelp) ("zenity" ,zenity))) + ;; FIXME: Propagating glib:bin fixes http://issues.guix.gnu.org/issue/38135 + ;; The proper fix is in core-updates. So we can remove this after next merge. + (propagated-inputs + `(("glib:bin" ,glib "bin"))) (synopsis "The MATE desktop environment") (home-page "https://mate-desktop.org/") (description diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 07a19d4927..4d902d8935 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -35,6 +35,9 @@ ;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +65,7 @@ #:use-module (guix utils) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix build-system cmake) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix build-system ruby) @@ -79,6 +83,7 @@ #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) + #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) @@ -86,8 +91,10 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages java) #:use-module (gnu packages less) @@ -375,6 +382,81 @@ semiconductors.") (license license:gpl3+) (home-page "https://www.gnu.org/software/dionysus/"))) +(define-public dsfmt + (package + (name "dsfmt") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/" + "dSFMT-src-" version ".tar.gz")) + (sha256 + (base32 + "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42")) + (modules '((guix build utils))) + ;; Don't distribute html documentation with bundled jquery. + (snippet + '(begin + (delete-file-recursively "html") #t)) + ;; Add patches borrowed from Julia. + (patches + (list + (origin + (method url-fetch) + (uri (string-append + "https://raw.githubusercontent.com/JuliaLang/julia/" + "v1.3.0/deps/patches/dSFMT.c.patch")) + (sha256 (base32 + "09mhv11bms8jsmkmdqvlcgljwhzw3b6n9nncpi2b6dla9798hw2y")) + (file-name "dSFMT.c.patch")) + (origin + (method url-fetch) + (uri (string-append + "https://raw.githubusercontent.com/JuliaLang/julia/" + "v1.3.0/deps/patches/dSFMT.h.patch")) + (sha256 (base32 + "1py5rd0yxic335lzka23f6x2dhncrpizpyrk57gi2f28c0p98y5n")) + (file-name "dSFMT.h.patch")))))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'build + ;; Upstream Makefile does not build a shared library. Borrow from Julia + ;; https://github.com/JuliaLang/julia/blob/v1.3.0/deps/dsfmt.mk + (lambda _ + (invoke + "gcc" "-DNDEBUG" "-DDSFMT_MEXP=19937" + "-fPIC" "-DDSFMT_DO_NOT_USE_OLD_NAMES" + "-O3" "-finline-functions" "-fomit-frame-pointer" + "-fno-strict-aliasing" "--param" "max-inline-insns-single=1800" + "-Wmissing-prototypes" "-Wall" "-std=c99" "-shared" "dSFMT.c" + "-o" "libdSFMT.so"))) + (replace 'install ; no "install" target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (inc (string-append out "/include")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (install-file "libdSFMT.so" lib) + (install-file "dSFMT.h" inc) + (install-file "LICENSE.txt" doc) + #t)))))) + (synopsis "Double precision SIMD-oriented Fast Mersenne Twister") + (description + "The dSMFT package speeds up Fast Mersenne Twister generation by avoiding +the expensive conversion of integer to double (floating point). dSFMT directly +generates double precision floating point pseudorandom numbers which have the +IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) +format. dSFMT is only available on the CPUs which use IEEE 754 format double +precision floating point numbers.") + (home-page "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/") + (license license:bsd-3))) + (define-public gsl (package (name "gsl") @@ -2653,8 +2735,9 @@ implemented in ANSI C, and MPI for communications.") "scotch-integer-declarations.patch")))) (build-system gnu-build-system) (inputs - `(("zlib" ,zlib) - ("flex" ,flex) + `(("zlib" ,zlib))) + (native-inputs + `(("flex" ,flex) ("bison" ,bison))) (outputs '("out" "metis")) (arguments @@ -5353,3 +5436,112 @@ researchers and developers alike to get started on SAT.") (home-page "http://minisat.se/MiniSat.html") (license license:expat)))) + +(define-public libqalculate + (package + (name "libqalculate") + (version "3.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Qalculate/libqalculate/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) + ("intltool" ,intltool) + ("automake" ,automake) + ("autoconf" ,autoconf) + ("libtool" ,libtool) + ("doxygen" ,doxygen) + ("file" ,file))) + (inputs + `(("gmp" ,gmp) + ("mpfr" ,mpfr) + ("libxml2" ,libxml2) + ("curl" ,curl) + ("icu4c" ,icu4c) + ("gnuplot" ,gnuplot) + ("readline" ,readline) + ("libiconv" ,libiconv))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'setenv + ;; Prevent the autogen.sh script to carry out the configure + ;; script, which has not yet been patched to replace /bin/sh. + (lambda _ + (setenv "NOCONFIGURE" "TRUE") + #t))))) + (home-page "https://qalculate.github.io/") + (synopsis "Multi-purpose cli desktop calculator and library") + (description + "Libqalculate is a multi-purpose cli desktop calculator and library. +It provides basic and advanced functionality. Features include customizable +functions, unit calculations, and conversions, physical constants, symbolic +calculations (including integrals and equations), arbitrary precision, +uncertainity propagation, interval arithmetic, plotting and a user-friendly +cli.") + (license license:gpl2+))) + +(define-public qalculate-gtk + (package + (name "qalculate-gtk") + (version "3.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Qalculate/qalculate-gtk/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nsg6dzg5r7rzqr671nvrf1c50rjwpz7bxv5f20i4s7agizgv840")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("automake" ,automake) + ("autoconf" ,autoconf) + ("libtool" ,libtool) + ("file" ,file))) + (inputs + `(("gmp" ,gmp) + ("mpfr" ,mpfr) + ("libqalculate" ,libqalculate) + ("libxml2" ,libxml2) + ("glib" ,glib) + ("gtk+" ,gtk+))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'setenv + ;; Prevent the autogen.sh script to carry out the configure + ;; script, which has not yet been patched to replace /bin/sh. + (lambda _ + (setenv "NOCONFIGURE" "TRUE") + #t)) + (add-before 'check 'add-pot-file + ;; the file contains translations and are currently not in use + ;; left out on purpose so add it to POTFILES.skip + (lambda _ + (with-output-to-file "po/POTFILES.skip" + (lambda _ + (format #t "data/shortcuts.ui~%") + #t)) + #t))))) + (home-page "https://qalculate.github.io/") + (synopsis "Multi-purpose graphical desktop calculator") + (description + "Qalculate-gtk is the GTK frontend for libqalculate. It is a +multi-purpose GUI desktop calculator. It provides basic and advanced +functionality. Features include customizable functions, unit calculations, +and conversions, physical constants, symbolic calculations (including +integrals and equations), arbitrary precision, uncertainity propagation, +interval arithmetic, plotting.") + (license license:gpl2+))) diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm new file mode 100644 index 0000000000..0aba774a91 --- /dev/null +++ b/gnu/packages/matrix.scm @@ -0,0 +1,121 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages matrix) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages check) + #:use-module (gnu packages databases) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages xml) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix packages)) + +(define-public python-matrix-synapse-ldap3 + (package + (name "python-matrix-synapse-ldap3") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "matrix-synapse-ldap3" version)) + (sha256 + (base32 + "01bms89sl16nyh9f141idsz4mnhxvjrc3gj721wxh1fhikps0djx")))) + (build-system python-build-system) + (arguments + ;; tests require synapse, creating a circular dependency. + '(#:tests? #f)) + (propagated-inputs + `(("python-twisted" ,python-twisted) + ("python-ldap3" ,python-ldap3) + ("python-service-identity" ,python-service-identity))) + (home-page "https://github.com/matrix-org/matrix-synapse-ldap3") + (synopsis "LDAP3 auth provider for Synapse") + (description + "This package allows Synapse to use LDAP as a password provider. +This lets users log in to Synapse with their username and password from +an LDAP server.") + (license license:asl2.0))) + +(define-public synapse + (package + (name "synapse") + (version "1.11.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "matrix-synapse" version)) + (sha256 + (base32 + "0cqbwcz0fi4w413s1kcxvf696qi4n46n1k4ggnygqri5yq26qlfy")))) + (build-system python-build-system) + ;; TODO I think there are custom tests + (propagated-inputs + `(("python-simplejson" ,python-simplejson) ; not attested but required + ;; requirements (synapse/python_dependencies.py) + ("python-jsonschema" ,python-jsonschema) + ("python-frozendict" ,python-frozendict) + ("python-unpaddedbase64" ,python-unpaddedbase64) + ("python-canonicaljson" ,python-canonicaljson) + ("python-signedjson" ,python-signedjson) + ("python-pynacl" ,python-pynacl) + ("python-idna" ,python-idna) + ("python-service-identity" ,python-service-identity) + ("python-twisted" ,python-twisted) + ("python-treq" ,python-treq) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pyyaml" ,python-pyyaml) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-daemonize" ,python-daemonize) + ("python-bcrypt" ,python-bcrypt) + ("python-pillow" ,python-pillow) + ("python-sortedcontainers" ,python-sortedcontainers) + ("python-pymacaroons" ,python-pymacaroons) + ("python-msgpack" ,python-msgpack) + ("python-phonenumbers" ,python-phonenumbers) + ("python-six" ,python-six) + ("python-prometheus-client" ,python-prometheus-client) + ("python-attrs" ,python-attrs) + ("python-netaddr" ,python-netaddr) + ("python-jinja2" ,python-jinja2) + ("python-bleach" ,python-bleach) + ("python-typing-extensions" ,python-typing-extensions) + ;; conditional requirements (synapse/python_dependencies.py) + ("python-matrix-synapse-ldap3" ,python-matrix-synapse-ldap3) + ("python-psycopg2" ,python-psycopg2) + ("python-jinja2" ,python-jinja2) + ("python-txacme" ,python-txacme) + ("python-pysaml2" ,python-pysaml2) + ("python-lxml" ,python-lxml) + ;; sentry-sdk, jaeger-client, and opentracing could be included, but + ;; all are monitoring aids and not essential. + ("python-pyjwt" ,python-pyjwt))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-parameterized" ,python-parameterized))) + (home-page "https://github.com/matrix-org/synapse") + (synopsis "Matrix reference homeserver") + (description "Synapse is a reference \"homeserver\" implementation of +Matrix from the core development team at matrix.org, written in +Python/Twisted. It is intended to showcase the concept of Matrix and let +folks see the spec in the context of a codebase and let you run your own +homeserver and generally help bootstrap the ecosystem.") + (license license:asl2.0))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index ccb2be7c41..e37585c21c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -307,7 +308,7 @@ access to servers running the Discord protocol.") (("if 'DESTDIR' not in os.environ:") "if False:")) #t))))) - (synopsis "Graphical IRC Client") + (synopsis "Graphical IRC client") (description "HexChat lets you connect to multiple IRC networks at once. The main window shows the list of currently connected networks and their channels, the @@ -2030,13 +2031,13 @@ messaging that aren’t available to clients that connect over XMPP.") (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) ("which" ,which))) (inputs `(("pidgin" ,pidgin) ("libgcrypt" ,libgcrypt) ("libwebp" ,libwebp) ("glib" ,glib) - ("gettext" ,gnu-gettext) ("gtk+" ,gtk+-2) ("zlib" ,zlib))) (arguments diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm index d0785c5067..b37f6c69bd 100644 --- a/gnu/packages/mingw.scm +++ b/gnu/packages/mingw.scm @@ -53,7 +53,10 @@ specified, recurse and return a mingw-w64 with support for winpthreads." "mingw-w64-release/mingw-w64-v" version ".tar.bz2")) (sha256 (base32 "0a5njsa2zw2ssdz10jkb10mhrf3cb8qp9avs89zqmw4n6pzxy85a")) - (patches (search-patches "mingw-w64-6.0.0-gcc.patch")))) + (patches + (search-patches "mingw-w64-6.0.0-gcc.patch" + "mingw-w64-dlltool-temp-prefix.patch" + "mingw-w64-reproducible-gendef.patch")))) (native-inputs `(("xgcc-core" ,(if xgcc xgcc (cross-gcc triplet))) ("xbinutils" ,(if xbinutils xbinutils (cross-binutils triplet))) ,@(if with-winpthreads? diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index ec0684168e..b39c50779a 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -135,7 +135,7 @@ bind processes, and much more.") ;; Note: 2.0 isn't the default yet, see above. (package (inherit hwloc-1) - (version "2.1.0") + (version "2.2.0") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -143,7 +143,7 @@ bind processes, and much more.") "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "0qh8s7pphz0m5cwb7liqmc17xzfs23xhz5wn24r6ikvjyx99fhhr")))) + "0li27a3lnmb77qxpijj0kpblz32wmqd3b386sypq8ar7vy9vhw5f")))) ;; libnuma is no longer needed. (inputs (alist-delete "numactl" (package-inputs hwloc-1))) @@ -158,6 +158,14 @@ bind processes, and much more.") (substitute* "tests/hwloc/linux-libnuma.c" (("numa_available\\(\\)") "-1")) + #t)) + (add-before 'check 'skip-test-that-fails-on-qemu + (lambda _ + ;; Skip test that fails on emulated hardware due to QEMU bug: + ;; <https://bugs.gnu.org/40342>. + (substitute* "tests/hwloc/hwloc_get_last_cpu_location.c" + (("hwloc_topology_init" all) + (string-append "exit (77);\n" all))) #t)))))))) (define-deprecated hwloc-2.0 hwloc-2) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 773a582091..783cceec48 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2019 raingloom <raingloom@protonmail.com> ;;; Copyright © 2019 David Wilson <david@daviwil.com> ;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -380,22 +381,28 @@ many input formats and provides a customisable Vi-style user interface.") (define-public denemo (package (name "denemo") - (version "2.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/denemo/denemo-" - version ".tar.gz")) - (sha256 - (base32 - "0hggf8c4xcrjcxd5m00r788r7jg7g8ff54w2idfaqpj5j2ix3299")))) + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/denemo/" + "denemo-" version ".tar.gz")) + (sha256 + (base32 "1blkcl3slbsq9jlhwcf2m9v9g38a0sjfhh9advgi2qr1gxri08by")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check - ;; Denemo's documentation says to use this command to run its - ;; testsuite. - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) + ;; Tests require to write $HOME. + (setenv "HOME" (getcwd)) + ;; Replace hard-coded diff file name. + (substitute* "tests/integration.c" + (("/usr/bin/diff") + (string-append (assoc-ref inputs "diffutils") "/bin/diff"))) + ;; Denemo's documentation says to use this command to run its + ;; test suite. (invoke "make" "-C" "tests" "check"))) (add-before 'build 'set-lilypond ;; This phase sets the default path for lilypond to its current @@ -408,24 +415,12 @@ many input formats and provides a customisable Vi-style user interface.") (string-append "g_string_new (\"" lilypond "\");")))) - #t)) - (add-after 'install 'correct-filename - ;; "graft-derivation/shallow" from the (guix grafts) module runs in - ;; the C locale, expecting file names to be ASCII encoded. This - ;; phase renames a filename with a Unicode character in it to meet - ;; the aforementioned condition. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (chdir (string-append - out - "/share/denemo/templates/instruments/woodwind")) - (rename-file "Clarinet in B♭.denemo" - "Clarinet in Bb.denemo")) #t))))) (native-inputs - `(("intltool" ,intltool) + `(("diffutils" ,diffutils) ("glib:bin" ,glib "bin") ; for gtester ("gtk-doc" ,gtk-doc) + ("intltool" ,intltool) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs @@ -504,16 +499,16 @@ settings (aliasing, linear interpolation and cubic interpolation).") (define-public hydrogen (package (name "hydrogen") - (version "1.0.0-beta1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hydrogen-music/hydrogen.git") - (commit version))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0nv83l70j5bjz2wd6n3a8cq3bmgrvdvg6g2hjhc1g5h6xnbqsh9x")))) + (version "1.0.0-beta2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hydrogen-music/hydrogen.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a")))) (build-system cmake-build-system) (arguments `(#:test-target "tests" @@ -528,16 +523,18 @@ settings (aliasing, linear interpolation and cubic interpolation).") #t))))) (native-inputs `(("cppunit" ,cppunit) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) (inputs `(("alsa-lib" ,alsa-lib) ("jack" ,jack-1) - ;; ("ladspa" ,ladspa) ; cannot find during configure + ;; ("ladspa" ,ladspa) ; require LADSPA_PATH to be set ("lash" ,lash) ("libarchive" ,libarchive) + ("liblo" ,liblo) ("libsndfile" ,libsndfile) - ("libtar" ,libtar) ("lrdf" ,lrdf) + ("pulseaudio" ,pulseaudio) ("qtbase" ,qtbase) ("qtxmlpatterns" ,qtxmlpatterns) ("zlib" ,zlib))) @@ -908,21 +905,20 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro (define-public lilypond (package (name "lilypond") - (version "2.19.80") - (source (origin - (method url-fetch) - (uri (string-append - "http://download.linuxaudio.org/lilypond/sources/v" - (version-major+minor version) "/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "0lql4q946gna2pl1g409mmmsvn2qvnq2z5cihrkfhk7plcqdny9n")))) + (version "2.20.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://lilypond.org/download/sources/" + "v" (version-major+minor version) "/" + "lilypond-" version ".tar.gz")) + (sha256 + (base32 "0qd6pd4siss016ffmcyw5qc6pr2wihnvrgd4kh1x725w7wr02nar")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; out-test/collated-files.html fails + `(#:tests? #f ;out-test/collated-files.html fails #:out-of-source? #t - #:make-flags '("conf=www") ;to generate images for info manuals + #:make-flags '("conf=www") ;to generate images for info manuals #:configure-flags (list "CONFIGURATION=www" (string-append "--with-texgyre-dir=" @@ -940,25 +936,25 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro (("TEX_FIKPARM=.*") "TEX_FIKPARM=found\n")) #t)) (add-after 'unpack 'fix-path-references - (lambda _ - (substitute* "scm/backend-library.scm" - (("\\(search-executable '\\(\"gs\"\\)\\)") - (string-append "\"" (which "gs") "\"")) - (("\"/bin/sh\"") - (string-append "\"" (which "sh") "\""))) - #t)) + (lambda _ + (substitute* "scm/backend-library.scm" + (("\\(search-executable '\\(\"gs\"\\)\\)") + (string-append "\"" (which "gs") "\"")) + (("\"/bin/sh\"") + (string-append "\"" (which "sh") "\""))) + #t)) (add-before 'configure 'prepare-configuration - (lambda _ - (substitute* "configure" - (("SHELL=/bin/sh") "SHELL=sh") - ;; When checking the fontforge version do not consider the - ;; version string that's part of the directory. - (("head -n") "tail -n") - ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge. - (("20110222") "19700101")) - (setenv "out" "www") - (setenv "conf" "www") - #t)) + (lambda _ + (substitute* "configure" + (("SHELL=/bin/sh") "SHELL=sh") + ;; When checking the fontforge version do not consider the + ;; version string that's part of the directory. + (("head -n") "tail -n") + ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge. + (("20110222") "19700101")) + (setenv "out" "www") + (setenv "conf" "www") + #t)) (add-after 'install 'install-info (lambda _ (invoke "make" @@ -982,13 +978,13 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro ("dblatex" ,dblatex) ("gettext" ,gettext-minimal) ("imagemagick" ,imagemagick) - ("netpbm" ,netpbm) ;for pngtopnm + ("netpbm" ,netpbm) ;for pngtopnm ("texlive" ,(texlive-union (list texlive-metapost texlive-generic-epsf texlive-latex-lh texlive-latex-cyrillic))) ("texinfo" ,texinfo) - ("texi2html" ,texi2html) + ("texi2html" ,texi2html-1.82) ("rsync" ,rsync) ("pkg-config" ,pkg-config) ("zip" ,zip))) @@ -1427,10 +1423,10 @@ users to select LV2 plugins and run them with jalv.") ("alsa-lib" ,alsa-lib) ("non-session-manager" ,non-session-manager) ("liblo" ,liblo) - ("qtbase" ,qtbase) - ("qttools" ,qttools))) + ("qtbase" ,qtbase))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("qttools" ,qttools))) (home-page "https://synthv1.sourceforge.io") (synopsis "Polyphonic subtractive synthesizer") (description @@ -2037,25 +2033,26 @@ using a system-independent interface.") (define-public frescobaldi (package (name "frescobaldi") - (version "3.0.0") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/wbsoft/frescobaldi/releases/download/v" - version "/frescobaldi-" version ".tar.gz")) - (sha256 - (base32 - "15cqhbjbjikr7ljgiq56bz2gxrr38j8p0f78p2vhyzydaviy9a2z")))) + (version "3.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/wbsoft/frescobaldi/releases/download/v" + version "/frescobaldi-" version ".tar.gz")) + (sha256 + (base32 "0kfwvgygx2ds01w8g7vzykfrajglmr2brchk9d67ahzijpgvfkj5")))) (build-system python-build-system) - (arguments `(#:tests? #f)) ; no tests included + (arguments + `(#:tests? #f)) ;no tests included (inputs `(("lilypond" ,lilypond) + ("poppler" ,poppler) ("portmidi" ,portmidi) - ("python-pyqt" ,python-pyqt) ("python-ly" ,python-ly) - ("python-pyportmidi" ,python-pyportmidi) - ("poppler" ,poppler) ("python-poppler-qt5" ,python-poppler-qt5) + ("python-pyportmidi" ,python-pyportmidi) + ("python-pyqt" ,python-pyqt) ("python-sip" ,python-sip))) (home-page "http://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") @@ -2142,11 +2139,11 @@ backends, including ALSA, OSS, Network and FluidSynth.") `(("drumstick" ,drumstick) ("qtbase" ,qtbase) ("qtsvg" ,qtsvg) - ("qttools" ,qttools) ("qtx11extras" ,qtx11extras))) (native-inputs `(("libxslt" ,libxslt) ;for xsltproc ("docbook-xsl" ,docbook-xsl) + ("qttools" ,qttools) ("pkg-config" ,pkg-config))) (home-page "http://vmpk.sourceforge.net") (synopsis "Virtual MIDI piano keyboard") @@ -4096,15 +4093,14 @@ specification and header.") (define-public rosegarden (package (name "rosegarden") - (version "18.12") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/rosegarden/rosegarden/" - version "/rosegarden-" version ".tar.bz2")) - (sha256 - (base32 - "15i9fm0vkn3wsgahaxqi1j5zs0wc0j3wdwml0x49084gk2p328vb")))) + (version "19.12") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/rosegarden/rosegarden/" + version "/rosegarden-" version ".tar.bz2")) + (sha256 + (base32 "1qcaxc6hdzva7kwxxhgl95437fagjbxzv4mihsgpr7y9qk08ppw1")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") @@ -4146,9 +4142,9 @@ specification and header.") (("COMMAND [$][{]QT_RCC_EXECUTABLE[}]") "COMMAND ${QT_RCC_EXECUTABLE} --format-version 1") ;; Extraneous. - ;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") - ; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") - ) + ;;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") + ;; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") + ) ;; Make hashtable traversal order predicable. (setenv "QT_RCC_TEST" "1") ; important #t)) @@ -4666,7 +4662,7 @@ discard bad quality ones. ("qtmultimedia" ,qtmultimedia) ("qtsvg" ,qtsvg))) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("hicolor-icon-theme" ,hicolor-icon-theme) ("itstool" ,itstool) ("qttools" ,qttools))) @@ -4970,7 +4966,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.") (define-public geonkick (package (name "geonkick") - (version "1.9.0") + (version "1.10.0") (source (origin (method git-fetch) @@ -4980,7 +4976,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.") (file-name (git-file-name name version)) (sha256 (base32 - "17mwxnmxszdm2wjbigciwh8qx0487q9qhf4sl92y6nqdb0dlghnl")))) + "1a59wnm4035kjhs66hihlkiv45p3ffb2yaj1awvyyi5f0lds5zvh")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no tests included @@ -5161,7 +5157,7 @@ and as an LV2 plugin.") (define-public zrythm (package (name "zrythm") - (version "0.7.573") + (version "0.8.200") (source (origin (method url-fetch) @@ -5169,7 +5165,7 @@ and as an LV2 plugin.") version ".tar.xz")) (sha256 (base32 - "075gq478xbzz5ql4fsrgfzhgxi7z26k6034lhlkmm0klfcb8j9mg")))) + "13ivxbrd44qnhyh46dcr94dvqxg8cn4bbd8xm77ljw0p9b4ks4zs")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -5194,6 +5190,7 @@ and as an LV2 plugin.") ("gettext" ,gettext-minimal) ("glibc" ,glibc) ("gtk+" ,gtk+) + ("guile" ,guile-2.2) ("libcyaml" ,libcyaml) ("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile) @@ -5383,3 +5380,45 @@ filtered, pitch shifted and ultimately disintegrated. This is an unofficial port of the Regrader plugin created by Igorski. It is available as an LV2 plugin and a standalone JACK application.") (license license:expat))) + +(define-public tap-lv2 + (let ((commit "cab6e0dfb2ce20e4ad34b067d1281ec0b193598a") + (revision "1")) + (package + (name "tap-lv2") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moddevices/tap-lv2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0q480djfqd9g8mzrggc4vl7yclrhdjqx563ghs8mvi2qq8liycw3")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags + (list "CC=gcc") + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure + (replace 'install + (lambda _ + (invoke "make" + (string-append "INSTALL_PATH=" + (assoc-ref %outputs "out") + "/lib/lv2") + "install")))))) + (inputs + `(("lv2", lv2))) + (native-inputs + `(("pkg-config", pkg-config))) + (synopsis "Audio plugin collection") + (description "TAP (Tom's Audio Processing) plugins is a collection of + audio effect plugins originally released as LADSPA plugins. This package + offers an LV2 version ported by moddevices.") + (home-page "http://tap-plugins.sourceforge.net/") + (license license:gpl2)))) diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm index aac6f13379..96025661ca 100644 --- a/gnu/packages/netpbm.scm +++ b/gnu/packages/netpbm.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -114,7 +114,10 @@ ("pkg-config" ,pkg-config) ("python" ,python-wrapper))) (arguments - `(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 match)) + #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) @@ -145,7 +148,7 @@ (add-before 'check 'setup-check (lambda _ ;; install temporarily into /tmp/netpbm - (system* "make" "package") + (invoke "make" "package") ;; remove test requiring X (substitute* "test/all-in-place.test" (("pamx") "")) ;; do not worry about non-existing file @@ -168,19 +171,21 @@ (replace 'install (lambda* (#:key outputs make-flags #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (apply system* "make" "package" + (apply invoke "make" "package" (string-append "pkgdir=" out) make-flags) - ;; copy static library - (copy-file (string-append out "/link/libnetpbm.a") - (string-append out "/lib/libnetpbm.a")) - ;; remove superfluous folders and files - (system* "rm" "-r" (string-append out "/link")) - (system* "rm" "-r" (string-append out "/misc")) + ;; Remove superfluous files. (with-directory-excursion out - (for-each delete-file - '("config_template" "pkginfo" "README" - "VERSION"))) - #t)))))) + (for-each delete-file-recursively + '("config_template" "pkginfo" "README" "VERSION" + "link/" "misc/")) + ;; Install the required ‘libnetpbm.so’ link. + ;; See <https://issues.guix.gnu.org/issue/40376>. + (with-directory-excursion "lib" + (symlink + (match (find-files "." "^libnetpbm\\.so\\.[^.]*\\.[^.]*$") + ((head _ ...) head)) + "libnetpbm.so")) + #t))))))) (synopsis "Toolkit for manipulation of images") (description "Netpbm is a toolkit for the manipulation of graphic images, including diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 7561103888..f9657e4aa3 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2692,13 +2692,13 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ") (build-system gnu-build-system) (inputs `(("dbus" ,dbus) - ("libtool" ,libtool) ("ell" ,ell) ("readline" ,readline))) (native-inputs `(("asciidoc" ,asciidoc) ("autoconf" ,autoconf) ("automake" ,automake) + ("libtool" ,libtool) ("pkgconfig" ,pkg-config) ("python" ,python) ("openssl" ,openssl))) diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm index ecf092125a..45ed181b03 100644 --- a/gnu/packages/nfs.scm +++ b/gnu/packages/nfs.scm @@ -27,6 +27,7 @@ #:use-module (gnu packages kerberos) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages sqlite) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -115,7 +116,8 @@ ("lvm2" ,lvm2) ("util-linux" ,util-linux "lib") ("mit-krb5" ,mit-krb5) - ("libtirpc" ,libtirpc))) + ("libtirpc" ,libtirpc) + ("python-wrapper" ,python-wrapper))) ;for the Python based tools (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.kernel.org/pub/linux/utils/nfs-utils/") diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 84790cf112..dfcdb58de4 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -24,18 +24,18 @@ (define-module (gnu packages ntp) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) - #:use-module (gnu packages autotools) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) - #:use-module (gnu packages libevent) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix packages) #:use-module (guix utils) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix build-system gnu) #:use-module (srfi srfi-1)) (define-public ntp diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 5181d6156b..84efe2c1de 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -706,7 +706,8 @@ Emacs.") (define-public ocaml-menhir (package (name "ocaml-menhir") - (version "20181113") + ;; More recent versions can be built after we have dune >= 2.0 + (version "20190626") (source (origin (method git-fetch) @@ -715,7 +716,7 @@ Emacs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1iqdf64ayq4s3d9jkwhs3s8wqc2s48b292hp0kcjsskfhcvwg0kr")))) + (base32 "0v8av4pw6rykzb7wx54xhbsx0jhh8xyb4x0k4yrxi0w5ylkck6mb")))) (build-system ocaml-build-system) (inputs `(("ocaml" ,ocaml))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a27c7691b0..ee3e017326 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1100,7 +1100,7 @@ the boot loader configuration.") (assoc-ref %build-inputs "bubblewrap") "/bin/bwrap")))) (native-inputs `(("bison" ,bison) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-mkenums + gdbus-codegen ("gobject-introspection" ,gobject-introspection) ("libcap" ,libcap) diff --git a/gnu/packages/patches/beancount-disable-googleapis-fonts.patch b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch new file mode 100644 index 0000000000..d0fa47b59c --- /dev/null +++ b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch @@ -0,0 +1,25 @@ +https://sources.debian.org/data/main/b/beancount/2.2.0-3/debian/patches/0001-Remove-fonts.googleapis.com-links-for-the-bean-web-t.patch + +From: Nicolas Dandrimont <nicolas@dandrimont.eu> +Date: Tue, 1 May 2018 04:49:55 +0200 +Subject: Remove fonts.googleapis.com links for the bean-web template + +--- + beancount/web/web.html | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/beancount/web/web.html b/beancount/web/web.html +index 3995ce2..ec9e707 100644 +--- a/beancount/web/web.html ++++ b/beancount/web/web.html +@@ -3,10 +3,6 @@ + <head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> + +- <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:400italic,700italic,700,400" rel="stylesheet" type="text/css" /> +- <link href="https://fonts.googleapis.com/css?family=Roboto:400italic,700italic,700,400" rel="stylesheet" type="text/css" /> +- <link href='https://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css' /> +- + <link href="/resources/web.css" rel="stylesheet" type="text/css" /> + <title>{{title}}: {{pagetitle}}</title> + \ No newline at end of file diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch new file mode 100644 index 0000000000..3e48b87935 --- /dev/null +++ b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch @@ -0,0 +1,22 @@ +This following patch was originally found at the debian mingw-w64 team's +binutils repo located here: +https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show da63f6b:debian/patches/reproducible-import-libraries.patch + +Description: Make DLL import libraries reproducible +Author: Benjamin Moody <benjamin.moody@gmail.com> +Bug-Debian: https://bugs.debian.org/915055 + +--- a/ld/pe-dll.c ++++ b/ld/pe-dll.c +@@ -2844,6 +2844,7 @@ + + bfd_set_format (outarch, bfd_archive); + outarch->has_armap = 1; ++ outarch->flags |= BFD_DETERMINISTIC_OUTPUT; + + /* Work out a reasonable size of things to put onto one line. */ + ar_head = make_head (outarch); diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch new file mode 100644 index 0000000000..b785043b62 --- /dev/null +++ b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch @@ -0,0 +1,137 @@ +This following patch was originally found at the debian mingw-w64 team's +binutils repo located here: +https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show da63f6b:debian/patches/specify-timestamp.patch + +Description: Allow the PE timestamp to be specified +Author: Stephen Kitt <skitt@debian.org> + +--- a/bfd/peXXigen.c ++++ b/bfd/peXXigen.c +@@ -70,6 +70,9 @@ + #include <wctype.h> + #endif + ++#include <errno.h> ++#include <limits.h> ++ + /* NOTE: it's strange to be including an architecture specific header + in what's supposed to be general (to PE/PEI) code. However, that's + where the definitions are, and they don't vary per architecture +@@ -879,10 +882,38 @@ + + /* Use a real timestamp by default, unless the no-insert-timestamp + option was chosen. */ +- if ((pe_data (abfd)->insert_timestamp)) +- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat); +- else ++ if (pe_data (abfd)->insert_timestamp) { ++ time_t now; ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ ++ now = time(NULL); ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ } else if (endptr == source_date_epoch) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ } else if (*endptr != '\0') { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ } else if (epoch > ULONG_MAX) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", ++ ULONG_MAX, epoch); ++ } else { ++ now = epoch; ++ } ++ } ++ H_PUT_32 (abfd, now, filehdr_out->f_timdat); ++ } else { + H_PUT_32 (abfd, 0, filehdr_out->f_timdat); ++ } + + PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, + filehdr_out->f_symptr); +--- a/ld/pe-dll.c ++++ b/ld/pe-dll.c +@@ -26,6 +26,8 @@ + #include "filenames.h" + #include "safe-ctype.h" + ++#include <errno.h> ++#include <limits.h> + #include <time.h> + + #include "ld.h" +@@ -1202,8 +1204,36 @@ + + memset (edata_d, 0, edata_sz); + +- if (pe_data (abfd)->insert_timestamp) +- H_PUT_32 (abfd, time (0), edata_d + 4); ++ if (pe_data (abfd)->insert_timestamp) { ++ time_t now; ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ ++ now = time(NULL); ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ } else if (endptr == source_date_epoch) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ } else if (*endptr != '\0') { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ } else if (epoch > ULONG_MAX) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", ++ ULONG_MAX, epoch); ++ } else { ++ now = epoch; ++ } ++ } ++ H_PUT_32 (abfd, now, edata_d + 4); ++ } + + if (pe_def_file->version_major != -1) + { +--- a/ld/emultempl/pe.em ++++ b/ld/emultempl/pe.em +@@ -303,7 +303,7 @@ + OPTION_USE_NUL_PREFIXED_IMPORT_TABLES}, + {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE}, + {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE}, +- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, ++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, + {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, + #ifdef DLL_SUPPORT + /* getopt allows abbreviations, so we do this to stop it +--- a/ld/emultempl/pep.em ++++ b/ld/emultempl/pep.em +@@ -321,7 +321,7 @@ + {"no-bind", no_argument, NULL, OPTION_NO_BIND}, + {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER}, + {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE}, +- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, ++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, + {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, + {"build-id", optional_argument, NULL, OPTION_BUILD_ID}, + {NULL, no_argument, NULL, 0} diff --git a/gnu/packages/patches/calibre-msgpack-compat.patch b/gnu/packages/patches/calibre-msgpack-compat.patch new file mode 100644 index 0000000000..9920103bea --- /dev/null +++ b/gnu/packages/patches/calibre-msgpack-compat.patch @@ -0,0 +1,18 @@ +Fix deserialization with msgpack 1.0. + +Patch copied from upstream source repository: +https://github.com/kovidgoyal/calibre/commit/0ff41ac64994ec11b7859fc004c94d08769e3af3 + +diff --git a/src/calibre/utils/serialize.py b/src/calibre/utils/serialize.py +index f5d560c468..c35ae53849 100644 +--- a/src/calibre/utils/serialize.py ++++ b/src/calibre/utils/serialize.py +@@ -110,7 +110,7 @@ def msgpack_decoder(code, data): + def msgpack_loads(dump, use_list=True): + # use_list controls whether msgpack arrays are unpacked as lists or tuples + import msgpack +- return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list) ++ return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list, strict_map_key=False) + + + def json_loads(data): diff --git a/gnu/packages/patches/higan-remove-march-native-flag.patch b/gnu/packages/patches/higan-remove-march-native-flag.patch deleted file mode 100644 index 30d4cdd061..0000000000 --- a/gnu/packages/patches/higan-remove-march-native-flag.patch +++ /dev/null @@ -1,12 +0,0 @@ -Remove -march=native from build flags. - ---- a/higan/GNUmakefile -+++ b/higan/GNUmakefile -@@ -26,7 +26,6 @@ - flags += -fopenmp - link += -fopenmp - ifeq ($(binary),application) -- flags += -march=native - link += -Wl,-export-dynamic - link += -lX11 -lXext - else ifeq ($(binary),library) diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch index a90d7fdee8..c2c59ec855 100644 --- a/gnu/packages/patches/icecat-makeicecat.patch +++ b/gnu/packages/patches/icecat-makeicecat.patch @@ -25,7 +25,7 @@ index 8be2362..48716f2 100755 -wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc -gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 -gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc --echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +-echo -n ad3ea069c3d23aab360ad04ff4d0f5e556d3538f7dd4eae0690c4e9241537570 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - - -echo Extracting Firefox tarball -tar -xf firefox-${FFVERSION}esr.source.tar.xz @@ -37,7 +37,7 @@ index 8be2362..48716f2 100755 +# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc +# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 +# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc -+# echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - ++# echo -n ad3ea069c3d23aab360ad04ff4d0f5e556d3538f7dd4eae0690c4e9241537570 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +# +# echo Extracting Firefox tarball +# tar -xf firefox-${FFVERSION}esr.source.tar.xz diff --git a/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch new file mode 100644 index 0000000000..32dfd7b856 --- /dev/null +++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch @@ -0,0 +1,28 @@ +--- /dev/null ++++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch +@@ -0,0 +1,22 @@ ++Fix one of upstream non-determinism, tracked here: ++ ++https://github.com/JuliaLang/julia/issues/34115 ++https://github.com/JuliaLang/julia/issues/25900 ++ ++ ++Patch by Nicoló Balzarotti <nicolo@nixo.xyz>. ++ ++--- a/base/loading.jl +++++ b/base/loading.jl ++@@ -807,7 +807,10 @@ ++ path = normpath(joinpath(dirname(prev), _path)) ++ end ++ if _track_dependencies[] ++- push!(_require_dependencies, (mod, path, mtime(path))) +++ push!(_require_dependencies, +++ (mod, path, +++ haskey(ENV, "SOURCE_DATE_EPOCH") ? +++ parse(Float64, ENV["SOURCE_DATE_EPOCH"]) : mtime(path))) ++ end ++ return path, prev ++ end +-- +2.26.0 + diff --git a/gnu/packages/patches/mediastreamer2-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch new file mode 100644 index 0000000000..f6d494facb --- /dev/null +++ b/gnu/packages/patches/mediastreamer2-srtp2.patch @@ -0,0 +1,155 @@ +From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001 +From: Danmei Chen <danmei.chen@belledonne-communications.com> +Date: Fri, 19 Jan 2018 10:04:07 +0100 +Subject: [PATCH] add compability with srtp2 + +--- + cmake/FindSRTP.cmake | 24 ++++++++++++++++++++---- + src/CMakeLists.txt | 1 + + src/crypto/ms_srtp.c | 10 ++-------- + src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 64 insertions(+), 12 deletions(-) + create mode 100644 src/utils/srtp_prefix.h + +diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake +index 988b846a..f720ce7e 100644 +--- a/cmake/FindSRTP.cmake ++++ b/cmake/FindSRTP.cmake +@@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS + ) + + find_path(SRTP_INCLUDE_DIRS +- NAMES srtp/srtp.h ++ NAMES srtp2/srtp.h + HINTS _SRTP_ROOT_PATHS + PATH_SUFFIXES include + ) + + if(SRTP_INCLUDE_DIRS) + set(HAVE_SRTP_SRTP_H 1) +-endif() +- +-find_library(SRTP_LIBRARIES ++ set(SRTP_VERSION 2) ++ find_library(SRTP_LIBRARIES ++ NAMES srtp2 ++ HINTS ${_SRTP_ROOT_PATHS} ++ PATH_SUFFIXES bin lib ++ ) ++else() ++ find_path(SRTP_INCLUDE_DIRS ++ NAMES srtp/srtp.h ++ HINTS _SRTP_ROOT_PATHS ++ PATH_SUFFIXES include ++ ) ++ if(SRTP_INCLUDE_DIRS) ++ set(HAVE_SRTP_SRTP_H 1) ++ set(SRTP_VERSION 1) ++ endif() ++ find_library(SRTP_LIBRARIES + NAMES srtp + HINTS ${_SRTP_ROOT_PATHS} + PATH_SUFFIXES bin lib + ) ++endif() ++ + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SRTP +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index da429764..c46faa62 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C + utils/pcap_sender.c + utils/pcap_sender.h + utils/stream_regulator.c ++ utils/srtp_prefix.h + voip/audioconference.c + voip/audiostream.c + voip/bandwidthcontroller.c +diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c +index 5a510c99..67810316 100644 +--- a/src/crypto/ms_srtp.c ++++ b/src/crypto/ms_srtp.c +@@ -25,6 +25,7 @@ + #include "mediastreamer2/ms_srtp.h" + #include "mediastreamer2/mediastream.h" + ++ + #ifdef HAVE_SRTP + + /*srtp defines all this stuff*/ +@@ -34,13 +35,7 @@ + #undef PACKAGE_TARNAME + #undef PACKAGE_VERSION + +-#if defined(MS2_WINDOWS_PHONE) +-// Windows phone doesn't use make install +-#include <srtp.h> +-#else +-#include <srtp/srtp.h> +-#endif +- ++#include "srtp_prefix.h" + + #include "ortp/b64.h" + +@@ -352,7 +347,6 @@ int ms_srtp_init(void) + srtp_init_done++; + }else{ + ms_fatal("Couldn't initialize SRTP library: %d.", st); +- err_reporting_init("mediastreamer2"); + } + }else srtp_init_done++; + return (int)st; +diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h +new file mode 100644 +index 00000000..68bde496 +--- /dev/null ++++ b/src/utils/srtp_prefix.h +@@ -0,0 +1,41 @@ ++/* ++ mediastreamer2 library - modular sound and video processing and streaming ++ Copyright (C) 2006-2014 Belledonne Communications, Grenoble ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++*/ ++#ifndef __SRTP2_H__ ++#define __SRTP2_H__ ++ ++#if defined(MS2_WINDOWS_PHONE) ++// Windows phone doesn't use make install ++#include <srtp.h> ++#elif SRTP_VERSION==1 ++#include <srtp/srtp.h> ++#else ++#include <srtp2/srtp.h> ++#define err_status_t srtp_err_status_t ++#define err_status_ok srtp_err_status_ok ++#define crypto_policy_t srtp_crypto_policy_t ++#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80 ++#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32 ++#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth ++#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80 ++#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80 ++#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32 ++#define ssrc_t srtp_ssrc_t ++#endif ++ ++#endif +-- +2.21.0 + diff --git a/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch new file mode 100644 index 0000000000..432cafc162 --- /dev/null +++ b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch @@ -0,0 +1,26 @@ +This following patch was originally found at the debian mingw-w64 team's +mingw-w64 repo located here: +https://salsa.debian.org/mingw-w64-team/mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show 4974e2c:debian/patches/dlltool-temp-prefix.patch + +Description: Specify dlltool's temp prefix +Author: Stephen Kitt <steve@sk2.org> + +By default dlltool uses its pid for the object files it generates. +Enforcing its temp prefix allows the files it generates to be +reproducible. + +--- a/mingw-w64-crt/Makefile.am ++++ b/mingw-w64-crt/Makefile.am +@@ -36,7 +36,7 @@ + DTDEF32=$(GENLIB) $(DLLTOOLFLAGS32) $(AM_DLLTOOLFLAGS) + DTDEF64=$(GENLIB) $(DLLTOOLFLAGS64) $(AM_DLLTOOLFLAGS) + else +- AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@ ++ AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@ --temp-prefix $$(basename $@ .a) + DLLTOOLFLAGSARM32=-m arm + DLLTOOLFLAGSARM64=-m arm64 + DLLTOOLFLAGS32=--as-flags=--32 -m i386 diff --git a/gnu/packages/patches/mingw-w64-reproducible-gendef.patch b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch new file mode 100644 index 0000000000..ee676af7a0 --- /dev/null +++ b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch @@ -0,0 +1,23 @@ +This following patch was originally found at the debian mingw-w64 team's +mingw-w64 repo located here: +https://salsa.debian.org/mingw-w64-team/mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show 4974e2c:debian/patches/reproducible-gendef.patch + +Description: Drop __DATE__ from gendef +Author: Stephen Kitt <skitt@debian.org> + +This allows gendef to be built reproducibly. + +--- a/mingw-w64-tools/gendef/src/gendef.c ++++ b/mingw-w64-tools/gendef/src/gendef.c +@@ -196,7 +196,6 @@ + " By default, the output files are named after their DLL counterparts\n" + " gendef MYDLL.DLL Produces MYDLL.def\n" + " gendef - MYDLL.DLL Prints the exports to stdout\n"); +- fprintf (stderr, "\nBuilt on %s\n", __DATE__); + fprintf (stderr, "\nReport bugs to <mingw-w64-public@lists.sourceforge.net>\n"); + exit (0); + } diff --git a/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch b/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch new file mode 100644 index 0000000000..4ca061230f --- /dev/null +++ b/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch @@ -0,0 +1,42 @@ +Fix CVE-2020-10595: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10595 + +Patch copied from upstream advisory: + +https://seclists.org/oss-sec/2020/q1/128 + +diff --git a/prompting.c b/prompting.c +index e985d95..d81054f 100644 +--- a/prompting.c ++++ b/prompting.c +@@ -314,26 +314,27 @@ pamk5_prompter_krb5(krb5_context context UNUSED, void *data, const char *name, + /* + * Reuse pam_prompts as a starting index and copy the data into the reply + * area of the krb5_prompt structs. + */ + pam_prompts = 0; + if (name != NULL && !args->silent) + pam_prompts++; + if (banner != NULL && !args->silent) + pam_prompts++; + for (i = 0; i < num_prompts; i++, pam_prompts++) { +- size_t len; ++ size_t len, allowed; + + if (resp[pam_prompts].resp == NULL) + goto cleanup; + len = strlen(resp[pam_prompts].resp); +- if (len > prompts[i].reply->length) ++ allowed = prompts[i].reply->length; ++ if (allowed == 0 || len > allowed - 1) + goto cleanup; + + /* + * The trailing nul is not included in length, but other applications + * expect it to be there. Therefore, we copy one more byte than the + * actual length of the password, but set length to just the length of + * the password. + */ + memcpy(prompts[i].reply->data, resp[pam_prompts].resp, len + 1); + prompts[i].reply->length = (unsigned int) len; diff --git a/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch new file mode 100644 index 0000000000..6cdddefd50 --- /dev/null +++ b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch @@ -0,0 +1,34 @@ +Do not fail test on runtime warning like: RuntimeWarning: coroutine 'noop2' was +never awaited. This could be related to +https://github.com/aio-libs/aiohttp/commit/60f01cca36b9f9d8d35dd351384eaae2f8fd0d4b, +which does not fix this issue though. + +--- a/aiohttp/pytest_plugin.py 2019-10-09 18:52:31.000000000 +0200 ++++ b/aiohttp/pytest_plugin.py 2020-03-05 08:35:48.230396025 +0100 +@@ -120,15 +120,6 @@ + """ + with warnings.catch_warnings(record=True) as _warnings: + yield +- rw = ['{w.filename}:{w.lineno}:{w.message}'.format(w=w) +- for w in _warnings # type: ignore +- if w.category == RuntimeWarning] +- if rw: +- raise RuntimeError('{} Runtime Warning{},\n{}'.format( +- len(rw), +- '' if len(rw) == 1 else 's', +- '\n'.join(rw) +- )) + + + @contextlib.contextmanager +--- a/tests/test_pytest_plugin.py 2020-03-05 09:26:58.502284893 +0100 ++++ a/tests/test_pytest_plugin.py 2020-03-05 09:27:06.074284619 +0100 +@@ -170,7 +170,7 @@ + expected_outcomes = ( + {'failed': 0, 'passed': 2} + if IS_PYPY and bool(os.environ.get('PYTHONASYNCIODEBUG')) +- else {'failed': 1, 'passed': 1} ++ else {'failed': 0, 'passed': 2} + ) + """Under PyPy "coroutine 'foobar' was never awaited" does not happen.""" + result.assert_outcomes(**expected_outcomes) diff --git a/gnu/packages/patches/reprotest-support-guix.patch b/gnu/packages/patches/reprotest-support-guix.patch deleted file mode 100644 index 621c4e3359..0000000000 --- a/gnu/packages/patches/reprotest-support-guix.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 31bd4fe777cbff3ebca74115e5735a8b8f584fa7 Mon Sep 17 00:00:00 2001 -From: Vagrant Cascadian <vagrant@reproducible-builds.org> -Date: Thu, 6 Feb 2020 23:17:58 -0800 -Subject: [PATCH] Add support for GNU Guix. - ---- - reprotest/lib/adt_testbed.py | 2 ++ - reprotest/lib/system_interface/guix.py | 39 ++++++++++++++++++++++++++ - 2 files changed, 41 insertions(+) - create mode 100644 reprotest/lib/system_interface/guix.py - -diff --git a/reprotest/lib/adt_testbed.py b/reprotest/lib/adt_testbed.py -index ef704d6..60bf763 100644 ---- a/reprotest/lib/adt_testbed.py -+++ b/reprotest/lib/adt_testbed.py -@@ -40,6 +40,7 @@ import urllib.parse - from reprotest.lib.system_interface.debian import DebianInterface - from reprotest.lib.system_interface.arch import ArchInterface - from reprotest.lib.system_interface.fedora import FedoraInterface -+from reprotest.lib.system_interface.guix import GuixInterface - from reprotest.lib import adtlog - from reprotest.lib import VirtSubproc - -@@ -47,6 +48,7 @@ SYSTEM_INTERFACES = { - 'debian': DebianInterface, - 'arch': ArchInterface, - 'fedora': FedoraInterface, -+ 'guix': GuixInterface, - } - - timeouts = { -diff --git a/reprotest/lib/system_interface/guix.py b/reprotest/lib/system_interface/guix.py -new file mode 100644 -index 0000000..2b06104 ---- /dev/null -+++ b/reprotest/lib/system_interface/guix.py -@@ -0,0 +1,39 @@ -+# adt_testbed.py is part of autopkgtest -+# autopkgtest is a tool for testing Debian binary packages. The -+# system_interface module is an addition for reprotest to make -+# this module distro-agnostic -+# -+# autopkgtest is Copyright (C) 2006-2015 Canonical Ltd. -+# the system_interface module is Copyright (C) 2017 Santiago Torres-Arias -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+# -+# See the file CREDITS for a full list of credits information (often -+# installed as /usr/share/doc/autopkgtest/CREDITS). -+import subprocess -+ -+from . import SystemInterface -+ -+class GuixInterface(SystemInterface): -+ """ -+ SystemInterface implementation for GNU Guix hosts. Contains commands that -+ are specific to the GNU Guix toolchain. -+ """ -+ -+ def get_arch(self): -+ return ['uname', '-m'] -+ -+ def can_query_packages(self): -+ return False --- -2.20.1 - diff --git a/gnu/packages/patches/sdl2-mesa-compat.patch b/gnu/packages/patches/sdl2-mesa-compat.patch deleted file mode 100644 index 8182e582e7..0000000000 --- a/gnu/packages/patches/sdl2-mesa-compat.patch +++ /dev/null @@ -1,21 +0,0 @@ -Do not include GLES header when OpenGL headers are already included. - -Taken from upstream: -https://hg.libsdl.org/SDL/rev/369b01006eb2 - -diff -r 4cbaffd0083b -r 369b01006eb2 src/video/SDL_video.c ---- a/src/video/SDL_video.c Fri Oct 11 06:18:24 2019 +0200 -+++ b/src/video/SDL_video.c Sat Oct 12 18:47:56 2019 +0200 -@@ -37,9 +37,9 @@ - #include "SDL_opengl.h" - #endif /* SDL_VIDEO_OPENGL */ - --#if SDL_VIDEO_OPENGL_ES -+#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL - #include "SDL_opengles.h" --#endif /* SDL_VIDEO_OPENGL_ES */ -+#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */ - - /* GL and GLES2 headers conflict on Linux 32 bits */ - #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL - diff --git a/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch new file mode 100644 index 0000000000..b4d5850f75 --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch @@ -0,0 +1,154 @@ +Author: Eric Bavier Date: 2020-01-13 +Url: https://notabug.org/bavier/guix-bavier/raw/master/bavier/patches/ ++xplanet-cxx11-eof.patch + +diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp +index 2ee06c0..4fdb343 100644 +--- a/src/libannotate/addArcs.cpp ++++ b/src/libannotate/addArcs.cpp +@@ -258,7 +258,7 @@ addArcs(PlanetProperties *planetProperties, Planet *planet, + { + ifstream inFile(arcFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + readArcFile(line, planet, view, projection, + planetProperties, annotationMap); + +@@ -292,7 +292,7 @@ addArcs(View *view, multimap<double, Annotation *> &annotationMap) + { + ifstream inFile(arcFile.c_str()); + char *line = new char[256]; +- while (inFile.getline (line, 256, '\n') != NULL) ++ while (!inFile.getline (line, 256, '\n').eof()) + readArcFile(line, NULL, view, NULL, NULL, annotationMap); + + inFile.close(); +diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp +index dde51c1..b641e6a 100644 +--- a/src/libannotate/addMarkers.cpp ++++ b/src/libannotate/addMarkers.cpp +@@ -429,7 +429,7 @@ addMarkers(PlanetProperties *planetProperties, Planet *planet, + { + ifstream inFile(markerFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + { + unsigned char color[3]; + memcpy(color, planetProperties->MarkerColor(), 3); +@@ -475,7 +475,7 @@ addMarkers(View *view, const int width, const int height, + { + ifstream inFile(markerFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + { + unsigned char color[3]; + memcpy(color, options->Color(), 3); +diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp +index 2634339..6d9d378 100644 +--- a/src/libannotate/addSatellites.cpp ++++ b/src/libannotate/addSatellites.cpp +@@ -488,10 +488,10 @@ loadSatelliteVector(PlanetProperties *planetProperties) + { + ifstream inFile(tleFile.c_str()); + char lines[3][80]; +- while (inFile.getline(lines[0], 80) != NULL) ++ while (!inFile.getline(lines[0], 80).eof()) + { +- if ((inFile.getline(lines[1], 80) == NULL) +- || (inFile.getline(lines[2], 80) == NULL)) ++ if ((inFile.getline(lines[1], 80).eof()) ++ || (inFile.getline(lines[2], 80).eof())) + { + ostringstream errStr; + errStr << "Malformed TLE file (" << tleFile << ")?\n"; +@@ -542,7 +542,7 @@ addSatellites(PlanetProperties *planetProperties, Planet *planet, + { + ifstream inFile(satFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + readSatelliteFile(line, planet, view, projection, + planetProperties, annotationMap); + +diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp +index 67b752c..eeadf6e 100644 +--- a/src/libannotate/addSpiceObjects.cpp ++++ b/src/libannotate/addSpiceObjects.cpp +@@ -524,7 +524,7 @@ processSpiceKernels(const bool load) + { + ifstream inFile(kernelFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int ii = 0; + while (isDelimiter(line[ii])) +@@ -576,7 +576,7 @@ addSpiceObjects(map<double, Planet *> &planetsFromSunMap, + { + ifstream inFile(spiceFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + readSpiceFile(line, planetsFromSunMap, view, projection, + annotationMap); + inFile.close(); +diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp +index d885173..1be8ece 100644 +--- a/src/libmultiple/RayleighScattering.cpp ++++ b/src/libmultiple/RayleighScattering.cpp +@@ -369,7 +369,7 @@ RayleighScattering::readConfigFile(string configFile) + + diskTemplate_.clear(); + limbTemplate_.clear(); +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int i = 0; + while (isDelimiter(line[i])) +@@ -439,7 +439,7 @@ RayleighScattering::readBlock(ifstream &inFile, + values.clear(); + + char line[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int i = 0; + while (isDelimiter(line[i])) +@@ -470,7 +470,7 @@ RayleighScattering::readValue(ifstream &inFile, + double &value) + { + char line[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int i = 0; + while (isDelimiter(line[i])) +diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp +index ff07c49..aabdfed 100644 +--- a/src/libmultiple/drawStars.cpp ++++ b/src/libmultiple/drawStars.cpp +@@ -41,7 +41,7 @@ drawStars(DisplayBase *display, View *view) + ifstream inFile(starMap.c_str()); + + char line[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + if (line[0] == '#') continue; + +diff --git a/src/readConfig.cpp b/src/readConfig.cpp +index cc1964f..4650527 100644 +--- a/src/readConfig.cpp ++++ b/src/readConfig.cpp +@@ -550,7 +550,7 @@ readConfigFile(string configFile, PlanetProperties *planetProperties[]) + + ifstream inFile(configFile.c_str()); + char *line = new char[256]; +- while (inFile.getline(line, 256, '\n') != NULL) ++ while (!inFile.getline(line, 256, '\n').eof()) + readConfig(line, planetProperties); + + // This condition will only be true if [default] is the only diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch new file mode 100644 index 0000000000..bf52b0ca27 --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch @@ -0,0 +1,16 @@ +Origin: $NetBSD: patch-src_libdisplay_DisplayOutput.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $ + +Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1 + +diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp +--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp 2013-02-17 01:07:47.000000000 +0530 ++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp 2020-03-28 22:08:44.432499170 +0530 +@@ -51,7 +51,7 @@ + string outputFilename = options->OutputBase(); + int startIndex = options->OutputStartIndex(); + int stopIndex = options->NumTimes() + startIndex - 1; +- if (stopIndex > 1) ++ if (stopIndex > 0) + { + const int digits = (int) (log10((double) stopIndex) + 1); + char buffer[64]; diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch new file mode 100644 index 0000000000..58efc906dc --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch @@ -0,0 +1,54 @@ +Origin: $NetBSD: patch-src_libimage_gif.c,v 1.4 2019/11/16 17:36:28 ng0 Exp $ + +Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1 + +diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c +--- xplanet-1.3.1/src/libimage/gif.c 2013-02-17 01:07:47.000000000 +0530 ++++ xplanet-1.3.1.new/src/libimage/gif.c 2020-03-28 22:15:24.444309199 +0530 +@@ -21,7 +21,7 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +- ++#include <stdbool.h> + #include <gif_lib.h> + + /* +@@ -178,8 +178,12 @@ + *BufferP++ = ColorMapEntry->Blue; + } + } +- ++ ++#if GIFLIB_MAJOR >= 5 ++ if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) { ++#else + if (DGifCloseFile(GifFile) == GIF_ERROR) { ++#endif + return(0); + } + +@@ -493,7 +497,11 @@ + static void QuitGifError(GifFileType *GifFile) + { + fprintf(stderr, "Error writing GIF file\n"); ++#if GIFLIB_MAJOR >= 5 ++ if (GifFile != NULL) EGifCloseFile(GifFile, NULL); ++#else + if (GifFile != NULL) EGifCloseFile(GifFile); ++#endif + } + + int +@@ -589,7 +597,11 @@ + Ptr += width; + } + ++#if GIFLIB_MAJOR >= 5 ++ if (EGifCloseFile(GifFile, NULL) == GIF_ERROR) ++#else + if (EGifCloseFile(GifFile) == GIF_ERROR) ++#endif + + { + QuitGifError(GifFile); diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch new file mode 100644 index 0000000000..a47623fa00 --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch @@ -0,0 +1,15 @@ +$NetBSD: patch-src_xpUtil-Add2017LeapSecond.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $ + +Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1 + +diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp +--- xplanet-1.3.1/src/xpUtil.cpp 2016-03-12 08:36:47.000000000 +0530 ++++ xplanet-1.3.1.new/src/xpUtil.cpp 2020-03-28 22:19:10.629891166 +0530 +@@ -434,6 +434,7 @@ + if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34 + if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35 + if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36 ++ if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37 + + const double J2000 = toJulian(2000, 1, 1, 12, 0, 0); + const double m = m0 + m1 * (jd - J2000) * 86400; diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index e01ebe72ec..0c46a62bf7 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -111,7 +111,7 @@ listing the files modified by a patch.") (base32 "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri")))) (build-system gnu-build-system) (native-inputs - `(("gettext" ,gnu-gettext))) + `(("gettext" ,gettext-minimal))) (inputs `(("perl" ,perl) ("less" ,less) ("file" ,file) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 590945caff..1d1b73f897 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -62,7 +62,8 @@ #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) - #:use-module (gnu packages textutils)) + #:use-module (gnu packages textutils) + #:use-module (gnu packages web)) ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -354,6 +355,37 @@ of general interest as follows: @end itemize") (license (package-license perl)))) +(define-public perl-authen-dechpwd + (package + (name "perl-authen-dechpwd") + (version "2.007") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-" + version ".tar.gz")) + (sha256 + (base32 + "0xzind7zr2prjq3zbs2j18snfpshd4xrd7igv4kp67xl0axr6fpl")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-data-integer" ,perl-data-integer) + ("perl-digest-crc" ,perl-digest-crc) + ("perl-scalar-string" ,perl-scalar-string))) + (home-page "https://metacpan.org/release/Authen-DecHpwd") + (synopsis "DEC VMS password hashing") + (description "@code{Authen::DecHpwd} implements the +SYS$HASH_PASSWORD password hashing function from VMS (also known as +LGI$HPWD) and some associated VMS username and password handling +functions. The password hashing function is implemented in XS with a +pure Perl backup version for systems that cannot handle XS.") + (license gpl2+))) + (define-public perl-autovivification (package (name "perl-autovivification") @@ -1297,6 +1329,34 @@ that original method. @code{around} is run in place of the original method, with a hook to easily call that original method.") (license (package-license perl)))) +(define-public perl-class-mix + (package + (name "perl-class-mix") + (version "0.006") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-" + version ".tar.gz")) + (sha256 + (base32 + "02vwzzqn1s24g525arbrjh9s9j0y1inp3wbr972gh51ri51zciw7")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-params-classify" ,perl-params-classify))) + (home-page "https://metacpan.org/release/Class-Mix") + (synopsis "Dynamic class mixing") + (description "The @code{mix_class} function provided by this +module dynamically generates anonymous classes with specified +inheritance. This is useful where an incomplete class requires use of +a mixin in order to become instantiable.") + (license perl-license))) + (define-public perl-class-singleton (package (name "perl-class-singleton") @@ -1789,6 +1849,40 @@ CPAN::Meta object are present.") versa.") (license (package-license perl)))) +(define-public perl-crypt-eksblowfish + (package + (name "perl-crypt-eksblowfish") + (version "0.009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-" + version ".tar.gz")) + (sha256 + (base32 + "0k01aw3qb2s4m1w4dqsc9cycyry1zg3wabdym4vp4421b1ni5irw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-class-mix" ,perl-class-mix))) + (home-page "https://metacpan.org/release/Crypt-Eksblowfish") + (synopsis "The Eksblowfish block cipher") + (description "Eksblowfish is a variant of the Blowfish cipher, +modified to make the key setup very expensive. This doesn't make it +significantly cryptographically stronger but is intended to hinder +brute-force attacks. Eksblowfish is a parameterised (family-keyed) +cipher. It takes a cost parameter that controls how expensive the key +scheduling is. It also takes a family key, known as the \"salt\". +Cost and salt parameters together define a cipher family. Within each +family, the key determines the encryption function. This distribution +also includes an implementation of @code{bcrypt}, the Unix crypt() +password hashing algorithm based on Eksblowfish.") + (license perl-license))) + (define-public perl-crypt-randpasswd (package (name "perl-crypt-randpasswd") @@ -1813,6 +1907,36 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated Password Generator\".") (license (package-license perl)))) +(define-public perl-crypt-rijndael + (package + (name "perl-crypt-rijndael") + (version "1.14") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-" + version ".tar.gz")) + (sha256 + (base32 + "03l5nwq97a8q9na4dpd4m3r7vrwpranx225vw8xm40w7zvgw6lb4")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/Crypt-Rijndael") + (synopsis "Crypt::CBC compliant Rijndael encryption module") + (description "This module implements the Rijndael cipher which has +been selected as the Advanced Encryption Standard. The keysize for +Rijndael is 32 bytes. The blocksize is 16 bytes (128 bits). The +supported encryption modes are: + +@itemize +@item @code{MODE_CBC}---Cipher Block Chaining +@item @code{MODE_CFB}---Cipher feedback +@item @code{MODE_CTR}---Counter mode +@item @code{MODE_ECB}---Electronic cookbook mode +@item @code{MODE_OFB}---Output feedback +@end itemize") + (license gpl3))) + (define-public perl-crypt-rc4 (package (name "perl-crypt-rc4") @@ -1947,6 +2071,71 @@ input.") they are copies of each other.") (license (package-license perl)))) +(define-public perl-data-entropy + (package + (name "perl-data-entropy") + (version "0.007") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-" + version ".tar.gz")) + (sha256 + (base32 + "1r176jjzir2zg5kidx85f7vzi6jsw7ci9vd4kvbr9183lfhw8496")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-crypt-rijndael" ,perl-crypt-rijndael) + ("perl-data-float" ,perl-data-float) + ("perl-http-lite" ,perl-http-lite) + ("perl-params-classify" ,perl-params-classify))) + (home-page "https://metacpan.org/release/Data-Entropy") + (synopsis "Entropy (randomness) management") + (description "@code{Data::Entropy} provides modules relating to +the generation and use of entropy. The Data::Entropy::Source class +manages the entropy coming from a particular source. This class acts +as a layer over a raw entropy source, which may be a normal I/O handle +or a special-purpose class. The Data::Entropy::RawSource::* classes +provide fundamental sources of entropy. The sources specially +supported are an OS-supplied entropy collector, downloads from servers +on the Internet, and cryptographic fake entropy. The +Data::Entropy::Algorithms module contains a collection of fundamental +algorithms that use entropy. There are random number generators and +functions to shuffle arrays.") + (license perl-license))) + +(define-public perl-data-integer + (package + (name "perl-data-integer") + (version "0.006") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-" + version ".tar.gz")) + (sha256 + (base32 + "0m53zxhx9sn49yqh7azlpyy9m65g54v8cd2ha98y77337gg7xdv3")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/Data-Integer") + (synopsis "Details of the native integer data type") + (description "This module is about the native integer numerical +data type. A native integer is one of the types of datum that can +appear in the numeric part of a Perl scalar. This module supplies +constants describing the native integer type. Both signed and +unsigned representations are handled.") + (license perl-license))) + (define-public perl-data-uniqid (package (name "perl-data-uniqid") @@ -2027,6 +2216,34 @@ statement. It handles self-referential structures correctly.") indentation and newlines plus sub deparsing.") (license (package-license perl)))) +(define-public perl-data-float + (package + (name "perl-data-float") + (version "0.013") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-" + version ".tar.gz")) + (sha256 + (base32 + "12ji4yf3nc965rqqgfhr96w7irpm6n1g15nivfxvhc49hlym5cg2")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/Data-Float") + (synopsis "Details of the floating point data type") + (description "@code{Data::Float} is about the native floating +point numerical data type. A floating point number is one of the +types of datum that can appear in the numeric part of a Perl scalar. +This module supplies constants describing the native floating point +type, classification functions and functions to manipulate floating +point values at a low level.") + (license perl-license))) + (define-public perl-data-optlist (package (name "perl-data-optlist") @@ -2815,6 +3032,39 @@ format of RSS 1.0. It can be used to parse these formats in order to create the appropriate objects.") (license (package-license perl)))) +(define-public perl-devel-callchecker + (package + (name "perl-devel-callchecker") + (version "0.008") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Devel-CallChecker-" + version ".tar.gz")) + (sha256 + (base32 + "1p0ij2k2i81zhl7064h9ghld1w5xy2zsbghkpdzm2hjryl5lwn2x")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check) + ("perl-dynaloader-functions" ,perl-dynaloader-functions))) + (home-page "https://metacpan.org/release/Devel-CallChecker") + (synopsis "Custom op checking attached to subroutines") + (description "This module makes some new features of the Perl +5.14.0 C API available to XS modules running on older versions of +Perl. The features are centred around the function +@code{cv_set_call_checker}, which allows XS code to attach a magical +annotation to a Perl subroutine, resulting in resolvable calls to that +subroutine being mutated at compile time by arbitrary C code. This +module makes @code{cv_set_call_checker} and several supporting +functions available.") + (license perl-license))) + (define-public perl-devel-caller (package (name "perl-devel-caller") @@ -3123,6 +3373,27 @@ each stack frame.") (description "Devel::Symdump provides access to the perl symbol table.") (license (package-license perl)))) +(define-public perl-digest-crc + (package + (name "perl-digest-crc") + (version "0.22") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-" + version ".2.tar.gz")) + (sha256 + (base32 + "1jvqcyrbi11cj3vlfc9sq2g6rv9caizyjkjqsksvmxn6zgvm0aqi")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/Digest-CRC") + (synopsis "Generic CRC functions") + (description "The @code{Digest::CRC} module calculates CRC sums of +all sorts. It contains wrapper functions with the correct parameters +for CRC-CCITT, CRC-16 and CRC-32.") + (license public-domain))) + (define-public perl-digest-hmac (package (name "perl-digest-hmac") @@ -3212,6 +3483,32 @@ SHA-1 message digest algorithm for use by Perl programs.") modules separately and deal with them after the module is done installing.") (license (package-license perl)))) +(define-public perl-dynaloader-functions + (package + (name "perl-dynaloader-functions") + (version "0.003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/DynaLoader-Functions-" + version ".tar.gz")) + (sha256 + (base32 + "10x13q920j9kid7vmbj6fiaz153042dy4mwdmpzrdrxw2ir39ciy")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/DynaLoader-Functions") + (synopsis "Deconstructed dynamic C library loading") + (description "This module provides a function-based interface to +dynamic loading as used by Perl. Some details of dynamic loading are +very platform-dependent, so correct use of these functions requires +the programmer to be mindfulof the space of platform variations.") + (license perl-license))) + (define-public perl-encode-detect (package (name "perl-encode-detect") @@ -7251,6 +7548,40 @@ operations that can be done in parallel where the number of processes to be forked off should be limited.") (license (package-license perl)))) +(define-public perl-params-classify + (package + (name "perl-params-classify") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-" + version ".tar.gz")) + (sha256 + (base32 + "052r198xyrsv8wz21gijdigz2cgnidsa37nvyfzdiz4rv1fc33ir")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-devel-callchecker" ,perl-devel-callchecker))) + (home-page "https://metacpan.org/release/Params-Classify") + (synopsis "Argument type classification") + (description "This module provides various type-testing functions. +These are intended for functions that care what type of data they are +operating on. There are two flavours of function. Functions of the +first flavour provide type classification only. Functions of the +second flavour also check that an argument is of an expected type. +The type enforcement functions handle only the simplest requirements +for arguments of the types handled by the classification functions. +Enforcement of more complex types may be built using the +classification functions, or it may be more convenient to use a module +designed for the more complex job, such as @code{Params::Validate}") + (license perl-license))) + (define-public perl-params-util (package (name "perl-params-util") @@ -7752,6 +8083,37 @@ and @code{deserialize_regexp}.") safely on things that may not be objects.") (license (package-license perl)))) +(define-public perl-scalar-string + (package + (name "perl-scalar-string") + (version "0.003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-" + version ".tar.gz")) + (sha256 + (base32 + "0llbsqk7rsg9p7l1f4yk6iv7wij91gvavprsqhnb04w7nz4ifjpm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/Scalar-String") + (synopsis "String aspects of scalars") + (description "@code{Scalar::String} is about the string part of +plain Perl scalars. A scalar has a string value, which is notionally +a sequence of Unicode codepoints but may be internally encoded in +either ISO-8859-1 or UTF-8. In places, more so in older versions of +Perl, the internal encoding shows through. To fully understand Perl +strings it is necessary to understand these implementation details. +This module provides functions to classify a string by encoding and to +encode a string in a desired way. The module is implemented in XS, +with a pure Perl backup version for systems that cannot handle XS.") + (license perl-license))) + (define-public perl-scope-guard (package (name "perl-scope-guard") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 31cf75df96..a2a882f2a7 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -483,6 +484,10 @@ photographic equipment.") (string-append (assoc-ref inputs "ilmbase") "/include/OpenEXR:" (or (getenv "CPATH") ""))) #t))))) + (native-inputs + `(("intltool" ,intltool) + ("perl" ,perl) + ("pkg-config" ,pkg-config))) (inputs `(("libxslt" ,libxslt) ("libxml2" ,libxml2) @@ -502,9 +507,6 @@ photographic equipment.") ("ilmbase" ,ilmbase) ("libsoup" ,libsoup) ("python-jsonschema" ,python-jsonschema) - ("intltool" ,intltool) - ("perl" ,perl) - ("pkg-config" ,pkg-config) ("libwebp" ,libwebp) ("lensfun" ,lensfun) ("librsvg" ,librsvg) @@ -534,7 +536,7 @@ and enhance them.") "1l925qslp98gg7yzmgps10h6dq0nb60wbfk345anlxsv0g2ifizr")))) (build-system cmake-build-system) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs `(("boost" ,boost) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 18e557611e..f7655c3535 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,11 +72,11 @@ (build-system gnu-build-system) (inputs `(("psutils" ,psutils) - ("groff" ,groff) ("gv" ,gv) ("imagemagick" ,imagemagick))) (native-inputs `(("gperf" ,gperf) + ("groff" ,groff) ("perl" ,perl))) (arguments '(#:phases diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 70a5b1e452..22b9ea8df5 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,26 +38,39 @@ (define-public python-coveralls (package (name "python-coveralls") - (version "1.6.0") + (version "1.11.1") + (home-page "https://github.com/coveralls-clients/coveralls-python") (source (origin - (method url-fetch) - (uri (pypi-uri "coveralls" version)) + ;; The PyPI release lacks tests, so we pull from git instead. + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1dswhd2q2412wrldi97hdwlsymj9pm79v7pvjx53z5wh2d33w8bg")))) + "1zr1lqdjcfwj6wcx2449mzzjq8bbhwnqcm5vdif5s8hlz35bjxkp")))) (build-system python-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-git-test + (lambda _ + ;; Remove test that requires 'git' and the full checkout. + (delete-file "tests/git_test.py") + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (invoke "pytest" "-vv") + (format #t "test suite not run~%")) + #t))))) (propagated-inputs `(("python-coverage" ,python-coverage) ("python-docopt" ,python-docopt) ("python-pyyaml" ,python-pyyaml) - ("python-requests" ,python-requests) - ("python-sh" ,python-sh) - ("python-urllib3" ,python-urllib3))) + ("python-requests" ,python-requests))) (native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest))) - (home-page "https://github.com/coveralls-clients/coveralls-python") (synopsis "Show coverage stats online via coveralls.io") (description "Coveralls.io is a service for publishing code coverage statistics online. diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 26e2fe04ec..3686432a1d 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -90,10 +90,23 @@ (uri (pypi-uri "aiohttp" version)) (sha256 (base32 - "09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5")))) + "09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5")) + (patches (search-patches "python-aiohttp-3.6.2-no-warning-fail.patch")))) + (build-system python-build-system) (arguments - `(#:tests? #f)) ;missing pytest-timeout + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; disable brotli tests, because we’re not providing that optional library + (substitute* "tests/test_http_parser.py" + ((" async def test_feed_eof_no_err_brotli") + " @pytest.mark.xfail\n async def test_feed_eof_no_err_brotli")) + ;; make sure the timestamp of this file is > 1990, because a few + ;; tests like test_static_file_if_modified_since_past_date depend on it + (invoke "touch" "-d" "2020-01-01" "tests/data.unknown_mime_type") + #t))))) (propagated-inputs `(("python-aiodns" ,python-aiodns) ("python-async-timeout" ,python-async-timeout) @@ -102,6 +115,15 @@ ("python-idna-ssl" ,python-idna-ssl) ("python-multidict" ,python-multidict) ("python-yarl" ,python-yarl))) + (native-inputs + `(("python-pytest-runner" ,python-pytest-runner) + ("python-pytest-xdit" ,python-pytest-xdist) + ("python-pytest-timeout" ,python-pytest-timeout) + ("python-pytest-forked" ,python-pytest-forked) + ("python-pytest-mock" ,python-pytest-mock) + ("gunicorn" ,gunicorn-bootstrap) + ("python-freezegun" ,python-freezegun) + ("python-async-generator" ,python-async-generator))) (home-page "https://github.com/aio-libs/aiohttp/") (synopsis "Async HTTP client/server framework (asyncio)") (description "@code{aiohttp} is an asynchronous HTTP client/server @@ -3390,14 +3412,14 @@ hard or impossible to fix in cssselect.") (define-public gunicorn (package (name "gunicorn") - (version "20.0.0") + (version "20.0.4") (source (origin (method url-fetch) (uri (pypi-uri "gunicorn" version)) (sha256 (base32 - "0l1zm8a0vz8ws3lkn8q9a0f93ipdzyvlf2zlwdj5xyadh6jdwsgg")))) + "09n6fc019bgrvph1s5h1lwhn2avcsprw6ncd203qhra3i8mvn10r")))) (outputs '("out" "doc")) (build-system python-build-system) (arguments @@ -3413,11 +3435,6 @@ hard or impossible to fix in cssselect.") (lambda _ (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH"))) - ;; Remove test modules failing due to libc not found due to - ;; section '.dynamic' not found in libc.so - (delete-file "tests/test_arbiter.py") - (delete-file "tests/test_config.py") - (delete-file "tests/test_sock.py") (invoke "pytest"))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) @@ -3452,6 +3469,16 @@ various web frameworks, simply implemented, light on server resources, and fairly speedy.") (license license:expat))) +;; break cyclic dependency for python-aiohttp, which depends on gunicorn for +;; its tests +(define-public gunicorn-bootstrap + (package + (inherit gunicorn) + (name "gunicorn") + (arguments `(#:tests? #f)) + (properties '((hidden? . #t))) + (native-inputs `()))) + (define-public python-translation-finder (package (name "python-translation-finder") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index a917001dc0..9703301da0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -75,6 +75,7 @@ ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> +;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1108,6 +1109,207 @@ helpers.") (define-public python2-humanfriendly (package-with-python2 python-humanfriendly)) +(define-public python-textparser + (package + (name "python-textparser") + (version "0.23.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "textparser" version)) + (sha256 + (base32 + "0w5lyhrsvzs5a9q1l3sjgxgljrvd3ybf796w93kc39wayzvd02gh")))) + (build-system python-build-system) + (home-page "https://github.com/eerimoq/textparser") + (synopsis "Fast text parser for Python") + (description "This library provides a text parser written in the Python +language. It aims to be fast.") + (license license:expat))) + +(define-public python-aenum + (package + (name "python-aenum") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aenum" version)) + (sha256 + (base32 + "1s3008rklv4n1kvmq6xdbdfyrpl0gf1rhqasmd27s5kwyjmlqcx4")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (format #t "current working dir ~s~%" (getcwd)) + (setenv "PYTHONPATH" + (string-append ".:" (getenv "PYTHONPATH"))) + ;; We must run the test suite module directly, as it + ;; fails to define the 'tempdir' variable in scope for + ;; the tests otherwise + ;; (see:https://bitbucket.org/stoneleaf/aenum/\ + ;; issues/32/running-tests-with-python-setuppy-test). + (invoke "python3" "aenum/test.py") + ;; This one fails with "NameError: name + ;; 'test_pickle_dump_load' is not defined" (see: + ;; https://bitbucket.org/stoneleaf/aenum/issues/33 + ;; /error-running-the-test_v3py-test-suite). + ;; (invoke "python3" "aenum/test_v3.py") + #t))))) + (home-page "https://bitbucket.org/stoneleaf/aenum") + (synopsis "Advanced enumerations, namedtuples and constants for Python") + (description "The aenum library includes an @code{Enum} base class, a +metaclass-based @code{NamedTuple} implementation and a @code{NamedConstant} +class.") + (license license:bsd-3))) + +(define-public python-can + (package + (name "python-can") + (version "3.3.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-can" version)) + (sha256 + (base32 + "0bkbxi45sckzir6s0j3h01pkfn4vkz3ymih2zjp7zw77wz0vbvsz")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-broken-tests + ;; The tests try to run two scripts it expects should be + ;; in PATH, but they aren't at this time (see: + ;; https://github.com/hardbyte/python-can/issues/805). + (lambda _ + (substitute* "test/test_scripts.py" + (("\"can_logger\\.py --help\"") "") + (("\"can_player\\.py --help\"") "")) + #t))))) + (propagated-inputs + `(("python-aenum" ,python-aenum) + ("python-wrapt" ,python-wrapt))) + (native-inputs + `(("python-codecov" ,python-codecov) + ("python-future" ,python-future) + ("python-hypothesis" ,python-hypothesis) + ("python-mock" ,python-mock) + ("python-pyserial" ,python-pyserial) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner) + ("python-pytest-timeout" ,python-pytest-timeout))) + (home-page "https://github.com/hardbyte/python-can") + (synopsis "Controller Area Network (CAN) interface module for Python") + (description "This package defines the @code{can} module, which provides +controller area network (CAN) support for Python developers; providing common +abstractions to different hardware devices, and a suite of utilities for +sending and receiving messages on a CAN bus.") + (license license:gpl3+))) + +(define-public python-diskcache + (package + (name "python-diskcache") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "diskcache" version)) + (sha256 + (base32 + "1q2wz5sj16zgyy1zpq516qgbnfwsavk1pl2qks0f4r62z5cmmvmw")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;test suite not included in the release + (home-page "http://www.grantjenks.com/docs/diskcache/") + (synopsis "Disk and file backed cache library") + (description "DiskCache is a disk and file backed persistent cache.") + (license license:asl2.0))) + +(define-public python-bitstruct + (package + (name "python-bitstruct") + (version "8.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bitstruct" version)) + (sha256 + (base32 + "1fpc1qh1vss05ap29xvhjp200fm0q4pvgcjl0qpryh7ay6xgr5vx")))) + (build-system python-build-system) + (home-page "https://github.com/eerimoq/bitstruct") + (synopsis "Python values to and C bit field structs converter") + (description "This module performs conversions between Python values and C +bit field structs represented as Python byte strings. It is intended to have +a similar interface as the @code{struct} module from Python, but working on +bits instead of primitive data types like @code{char}, @code{int}, etc.") + (license license:expat))) + +(define-public python-cantools + (package + (name "python-cantools") + (version "33.1.1") + (source + (origin + ;; We take the sources from the Git repository as the documentation is + ;; not included with the PyPI archive. + (method git-fetch) + (uri (git-reference + (url "https://github.com/eerimoq/cantools.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aad137yd8b4jkfvlv812qsxmxcgra7g1p4wbxfsjy1cbf8fbq9q")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + ;; See: https://github.com/eerimoq/cantools/issues/190. + (substitute* "README.rst" + (("https://github.com/eerimoq/cantools/raw/master\ +/docs/monitor.png") + "monitor.png")) + (with-directory-excursion "docs" + (invoke "make" "man" "info")))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info (string-append out "/share/info")) + (man1 (string-append out "/share/man/man1"))) + (format #t "CWD: ~s~%" (getcwd)) + (install-file "docs/_build/texinfo/cantools.info" info) + (install-file "docs/_build/man/cantools.1" man1) + #t)))))) + (native-inputs + `(("sphinx" ,python-sphinx) + ("texinfo" ,texinfo))) + (propagated-inputs + `(("python-bitstruct" ,python-bitstruct) + ("python-can" ,python-can) + ("python-diskcache" ,python-diskcache) + ("python-textparser" ,python-textparser))) + (home-page "https://github.com/eerimoq/cantools") + (synopsis "Tools for the Controller Area Network (CAN) bus protocol") + (description "This package includes Controller Area Network (CAN) related +tools that can be used to: +@itemize +@item parse DBC, KCD, SYM, ARXML 4 and CDD files +@item encode and decode CAN messages +@item multiplex simple and extended signals +@item diagnose DID encoding and decoding +@item dump the CAN decoder output +@item test CAN nodes +@item generate C source code +@item monitor the CAN bus +@end itemize") + (license license:expat))) + (define-public python-capturer (package (name "python-capturer") @@ -2594,14 +2796,14 @@ environments and back.") (define-public python-pyyaml (package (name "python-pyyaml") - (version "5.3") + (version "5.3.1") (source (origin (method url-fetch) (uri (pypi-uri "PyYAML" version)) (sha256 (base32 - "058nd4p8f25wwzy2aiwh18wcrdm6663cqbfdkgjp8y9cp7ampx79")))) + "0pb4zvkfxfijkpgd1b86xjsqql97ssf1knbd1v53wkg1qm9cgsmq")))) (build-system python-build-system) (inputs `(("libyaml" ,libyaml))) @@ -5714,6 +5916,112 @@ away.") (define-public python2-ipython-genutils (package-with-python2 python-ipython-genutils)) +(define-public python-ipyparallel + (package + (name "python-ipyparallel") + (version "6.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ipyparallel" version)) + (sha256 + (base32 + "0rf0dbpxf5z82bw8lsjj45r3wdd4wc74anz4wiiaf2rbjqlb1ivn")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; RuntimeError: IO Loop failed to start + #:phases + (modify-phases %standard-phases + (add-before 'check 'prepare-for-tests + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-decorator" ,python-decorator) + ("python-ipykernel" ,python-ipykernel) + ("python-ipython" ,python-ipython) + ("python-ipython-genutils" ,python-ipython-genutils) + ("python-jupyter-client" ,python-jupyter-client) + ("python-pyzmq" ,python-pyzmq) + ("python-tornado" ,python-tornado) + ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-ipython" ,python-ipython) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-testpath" ,python-testpath))) + (home-page "https://ipython.org/") + (synopsis "Interactive Parallel Computing with IPython") + (description + "@code{ipyparallel} is a Python package and collection of CLI scripts for +controlling clusters for Jupyter. @code{ipyparallel} contains the following +CLI scripts: +@enumerate +@item ipcluster - start/stop a cluster +@item ipcontroller - start a scheduler +@item ipengine - start an engine +@end enumerate") + (license license:bsd-3))) + +(define-public python2-ipyparallel + (let ((ipyparallel (package-with-python2 python-ipyparallel))) + (package + (inherit ipyparallel) + (propagated-inputs + `(("python2-futures" ,python2-futures) + ,@(package-propagated-inputs ipyparallel)))))) + +(define-public python-ipython-cluster-helper + (package + (name "python-ipython-cluster-helper") + (version "0.6.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ipython-cluster-helper" version)) + (sha256 + (base32 + "1l6mlwxlkxpbvawfwk6qffich7ahg9hq2bxfissgz6144p3k4arj")) + (modules '((guix build utils))) + (snippet + '(begin (substitute* "requirements.txt" + (("ipython.*") "ipython\n")) + #t)))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; Test suite can't find IPython. + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (if tests? + (begin + (setenv "HOME" (getcwd)) + (add-installed-pythonpath inputs outputs) + (invoke "python" "example/example.py" "--local")) + #t)))))) + (propagated-inputs + `(("python-ipyparallel" ,python-ipyparallel) + ("python-ipython" ,python-ipython) + ("python-netifaces" ,python-netifaces) + ("python-pyzmq" ,python-pyzmq) + ("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (home-page "https://github.com/roryk/ipython-cluster-helper") + (synopsis + "Simplify IPython cluster start up and use for multiple schedulers") + (description + "@code{ipython-cluster-helper} creates a throwaway parallel IPython +profile, launches a cluster and returns a view. On program exit it shuts the +cluster down and deletes the throwaway profile.") + (license license:expat))) + +(define-public python2-ipython-cluster-helper + (package-with-python2 python-ipython-cluster-helper)) + (define-public python-traitlets (package (name "python-traitlets") @@ -7862,14 +8170,14 @@ primary use case is APIs defined before keyword-only parameters existed.") (define-public python-pyasn1 (package (name "python-pyasn1") - (version "0.4.3") + (version "0.4.8") (source (origin (method url-fetch) (uri (pypi-uri "pyasn1" version)) (sha256 (base32 - "1z5h38anjzzrxpraa9iq9llffyx2zs8gx0q6dc1g029miwnn50gv")))) + "1fnhbi3rmk47l9851gbik0flfr64vs5j0hbqx24cafjap6gprxxf")))) (build-system python-build-system) (home-page "http://pyasn1.sourceforge.net/") (synopsis "ASN.1 types and codecs") @@ -18831,3 +19139,419 @@ HTML-containing files.") usable as a configuration language. This Python package implements parsing and dumping of JSON5 data structures.") (license license:asl2.0))) + +(define-public python-frozendict + (package + (name "python-frozendict") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "frozendict" version)) + (sha256 + (base32 "0ibf1wipidz57giy53dh7mh68f2hz38x8f4wdq88mvxj5pr7jhbp")))) + (build-system python-build-system) + (home-page "https://github.com/slezica/python-frozendict") + (synopsis "Simple immutable mapping for Python") + (description + "@dfn{frozendict} is an immutable wrapper around dictionaries that +implements the complete mapping interface. It can be used as a drop-in +replacement for dictionaries where immutability is desired.") + (license license:expat))) + +(define-public python-unpaddedbase64 + (package + (name "python-unpaddedbase64") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/matrix-org/python-unpaddedbase64.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd")))) + (build-system python-build-system) + (home-page "https://pypi.org/project/unpaddedbase64/") + (synopsis "Encode and decode Base64 without “=” padding") + (description + "RFC 4648 specifies that Base64 should be padded to a multiple of 4 bytes +using “=” characters. However this conveys no benefit so many protocols +choose to use Base64 without the “=” padding.") + (license license:asl2.0))) + +(define-public python-canonicaljson + (package + (name "python-canonicaljson") + (version "1.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "canonicaljson" version)) + (sha256 + (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-frozendict" ,python-frozendict) + ("python-simplejson" ,python-simplejson))) + (home-page "https://github.com/matrix-org/python-canonicaljson") + (synopsis "Canonical JSON") + (description + "Deterministically encode JSON. + +@itemize +@item Encodes objects and arrays as RFC 7159 JSON. +@item Sorts object keys so that you get the same result each time. +@item Has no insignificant whitespace to make the output as small as possible. +@item Escapes only the characters that must be escaped, U+0000 to + U+0019 / U+0022 / U+0056, to keep the output as small as possible. +@item Uses the shortest escape sequence for each escaped character. +@item Encodes the JSON as UTF-8. +@item Can encode frozendict immutable dictionaries. +@end itemize") + (license license:asl2.0))) + +(define-public python-signedjson + (package + (name "python-signedjson") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "signedjson" version)) + (sha256 + (base32 "0280f8zyycsmd7iy65bs438flm7m8ffs1kcxfbvhi8hbazkqc19m")))) + (build-system python-build-system) + (propagated-inputs + `(("python-canonicaljson" ,python-canonicaljson) + ("python-importlib-metadata" ,python-importlib-metadata) + ("python-pynacl" ,python-pynacl) + ("python-typing-extensions" ,python-typing-extensions) + ("python-unpaddedbase64" ,python-unpaddedbase64))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page "https://github.com/matrix-org/python-signedjson") + (synopsis "Sign JSON objects with ED25519 signatures") + (description + "Sign JSON objects with ED25519 signatures. + +@itemize +@item More than one entity can sign the same object. +@item Each entity can sign the object with more than one key making it easier to +rotate keys +@item ED25519 can be replaced with a different algorithm. +@item Unprotected data can be added to the object under the @dfn{\"unsigned\"} +key. +@end itemize") + (license license:asl2.0))) + +(define-public python-daemonize + (package + (name "python-daemonize") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "daemonize" version)) + (sha256 + (base32 "1hwbl3gf9fdds9sc14zgjyjisjvxidrvqc11xlbb0b6jz17nw0nx")))) + (build-system python-build-system) + (home-page "https://github.com/thesharp/daemonize") + (synopsis "Library for writing system daemons in Python") + (description "Daemonize is a library for writing system daemons in Python.") + (license license:expat))) + +(define-public python-pymacaroons + (package + (name "python-pymacaroons") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pymacaroons" version)) + (sha256 + (base32 "1f0357a6g1h96sk6wy030xmc1p4rd80a999qvxd28v7nlm1blsqy")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-pynacl" ,python-pynacl))) + (home-page "https://github.com/ecordell/pymacaroons") + (synopsis "Python Macaroon Library") + (description + "Macaroons, like cookies, are a form of bearer credential. Unlike opaque +tokens, macaroons embed caveats that define specific authorization +requirements for the target service, the service that issued the root macaroon +and which is capable of verifying the integrity of macaroons it receives. + +Macaroons allow for delegation and attenuation of authorization. They are +simple and fast to verify, and decouple authorization policy from the +enforcement of that policy.") + (license license:expat))) + +(define-public python-prometheus-client + (package + (name "python-prometheus-client") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "prometheus_client" version)) + (sha256 + (base32 "1ni2yv4ixwz32nz39ckia76lvggi7m19y5f702w5qczbnfi29kbi")))) + (build-system python-build-system) + (arguments + ;; TODO: No tests in the PyPI distribution. + `(#:tests? #f)) + (propagated-inputs + `(("python-twisted" ,python-twisted))) + (home-page "https://github.com/prometheus/client_python") + (synopsis "Prometheus instrumentation library") + (description + "This is the official Python client for the Prometheus monitoring server.") + (license license:asl2.0))) + +(define-public python-ldap3 + (package + (name "python-ldap3") + (version "2.7") + (home-page "https://github.com/cannatag/ldap3") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xw9fkqld21xsvdpaqir8ccc2l805xnn9gxahsnl70xzp3mwl0xv")))) + (build-system python-build-system) + (arguments + '(#:tests? #f ;TODO: Tests need a real LDAP server to run + #:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "nosetests" "-s" "test")) + #t))))) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-gssapi" ,python-gssapi) + ("python-pyasn1" ,python-pyasn1))) + (synopsis "Python LDAP client") + (description + "LDAP3 is a strictly RFC 4510 conforming LDAP V3 pure Python client +library.") + (license license:lgpl3+))) + +(define-public python-boltons + (package + (name "python-boltons") + (version "20.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "boltons" version)) + (sha256 + (base32 + "0lrr40qqj3ch8xarvyzbnbjs79pz5aywklllq53l347h1b8xnkg4")))) + (build-system python-build-system) + (home-page "https://github.com/mahmoud/boltons") + (synopsis "Extensions to the Python standard library") + (description + "Boltons is a set of over 230 pure-Python utilities in the same spirit +as — and yet conspicuously missing from — the standard library, including: + +@itemize +@item Atomic file saving, bolted on with fileutils +@item A highly-optimized OrderedMultiDict, in dictutils +@item Two types of PriorityQueue, in queueutils +@item Chunked and windowed iteration, in iterutils +@item Recursive data structure iteration and merging, with iterutils.remap +@item Exponential backoff functionality, including jitter, through +iterutils.backoff +@item A full-featured TracebackInfo type, for representing stack traces, in +tbutils +@end itemize") + (license license:bsd-3))) + +(define-public python-eliot + (package + (name "python-eliot") + (version "1.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "eliot" version)) + (sha256 + (base32 "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-journald-support + (lambda _ + (for-each delete-file + '("eliot/tests/test_journald.py" + "eliot/journald.py")) + #t)) + (add-after 'remove-journald-support 'remove-eliot-prettyprint-tests + ;; remove command-line tool's tests. TODO eliot-prettyprint should + ;; be installed and these tests should pass. + (lambda _ + (delete-file "eliot/tests/test_prettyprint.py") + #t))))) + (propagated-inputs + `(("python-boltons" ,python-boltons) + ("python-pyrsistent" ,python-pyrsistent) + ("python-six" ,python-six) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-black" ,python-black) + ("python-coverage" ,python-coverage) + ("python-dask" ,python-dask) + ("python-flake8" ,python-flake8) + ("python-hypothesis" ,python-hypothesis) + ("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx) + ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) + ("python-testtools" ,python-testtools) + ("python-twine" ,python-twine) + ("python-twisted" ,python-twisted))) + (home-page "https://github.com/itamarst/eliot/") + (synopsis "Eliot: the logging system that tells you why it happened") + (description + "@dfn{eliot} is a Python logging system that outputs causal chains of +actions: actions can spawn other actions, and eventually they either succeed +or fail. The resulting logs tell you the story of what your software did: what +happened, and what caused it.") + (license license:asl2.0))) + +(define-public python-pem + (package + (name "python-pem") + (version "20.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pem" version)) + (sha256 + (base32 + "1xh88ss279fprxnzd10dczmqwjhppbyvljm33zrg2mgybwd66qr7")))) + (build-system python-build-system) + (native-inputs + `(("python-certifi" ,python-certifi) + ("python-coverage" ,python-coverage) + ("python-pretend" ,python-pretend) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pytest" ,python-pytest) + ("python-sphinx" ,python-sphinx) + ("python-twisted" ,python-twisted))) + (home-page "https://pem.readthedocs.io/") + (synopsis "Easy PEM file parsing in Python") + (description + "This package provides a Python module for parsing and splitting PEM files.") + (license license:expat))) + +(define-public python-txsni + ;; We need a few commits on top of 0.1.9 for compatibility with newer + ;; Python and OpenSSL. + (let ((commit "5014c141a7acef63e20fcf6c36fa07f0cd754ce1") + (revision "0")) + (package + (name "python-txsni") + (version (git-version "0.1.9" revision commit)) + (home-page "https://github.com/glyph/txsni") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0imfxx4yjj1lbq0n5ad45al3wvv4qv96sivnc1r51i66mxi658z8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl) + ("python-service-identity" ,python-service-identity) + ("python-twisted" ,python-twisted))) + (synopsis "Run TLS servers with Twisted") + (description + "This package provides an easy-to-use SNI endpoint for use +with the Twisted web framework.") + (license license:expat)))) + +(define-public python-txacme + (package + (name "python-txacme") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "txacme" version)) + (sha256 + (base32 "1cplx4llq7i508w6fgwjdv9di7rsz9k9irfmzdfbiz6q6a0ykf1d")))) + (build-system python-build-system) + (propagated-inputs + `(("python-acme" ,python-acme) + ("python-attrs" ,python-attrs) + ("python-eliot" ,python-eliot) + ("python-josepy" ,python-josepy) + ("python-pem" ,python-pem) + ("python-treq" ,python-treq) + ("python-twisted" ,python-twisted) + ("python-txsni" ,python-txsni))) + (native-inputs + `(("python-fixtures" ,python-fixtures) + ("python-hypothesis" ,python-hypothesis) + ("python-mock" ,python-mock) + ("python-service-identity" + ,python-service-identity) + ("python-testrepository" ,python-testrepository) + ("python-testscenarios" ,python-testscenarios) + ("python-testtools" ,python-testtools))) + (home-page "https://github.com/twisted/txacme") + (synopsis "Twisted implexmentation of the ACME protocol") + (description + "ACME is Automatic Certificate Management Environment, a protocol that +allows clients and certificate authorities to automate verification and +certificate issuance. The ACME protocol is used by the free Let's Encrypt +Certificate Authority. + +txacme is an implementation of the protocol for Twisted, the event-driven +networking engine for Python.") + (license license:expat))) + +(define-public python-pysaml2 + (package + (name "python-pysaml2") + (version "5.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pysaml2" version)) + (sha256 + (base32 + "1h8cmxh9cvxhrdfmkh92wg6zpxmhi2fixq1cy4hxismmaar7bsny")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-dateutil" ,python-dateutil) + ("python-defusedxml" ,python-defusedxml) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pytz" ,python-pytz) + ("python-requests" ,python-requests) + ("python-six" ,python-six))) + (home-page "https://idpy.org") + (synopsis "Python implementation of SAML Version 2 Standard") + (description + "PySAML2 is a pure python implementation of SAML Version 2 Standard. +It contains all necessary pieces for building a SAML2 service provider or +an identity provider. The distribution contains examples of both. + +This package was originally written to work in a WSGI environment, but +there are extensions that allow you to use it with other frameworks.") + (license license:asl2.0))) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 608cb400c5..6f634f78cc 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -115,28 +115,36 @@ joystick, and graphics hardware.") (define-public sdl2 (package (inherit sdl) (name "sdl2") - (version "2.0.10") + (version "2.0.12") (source (origin (method url-fetch) (uri (string-append "https://libsdl.org/release/SDL2-" version ".tar.gz")) - (patches (search-patches "sdl2-mesa-compat.patch")) (sha256 (base32 - "0mqxp6w5jhbq6y1j690g9r3gpzwjxh4czaglw8x05l7hl49nqrdl")))) + "0qy8wbqvfkb5ps8kxgaaf2zzpkjqbsw712hlp74znbn0jpv6i4il")))) (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) `(append '("--disable-wayland-shared" "--enable-video-kmsdrm" "--disable-kmsdrm-shared") - ,flags)))) + ,flags)) + ((#:make-flags flags ''()) + `(cons* + ;; SDL dlopens libudev, so make sure it is in rpath. This overrides + ;; the LDFLAG set in sdl’s configure-flags, which isn’t necessary + ;; as sdl2 includes Mesa by default. + (string-append "LDFLAGS=-Wl,-rpath," + (assoc-ref %build-inputs "eudev") "/lib") + ,flags)))) (inputs ;; SDL2 needs to be built with ibus support otherwise some systems ;; experience a bug where input events are doubled. ;; ;; For more information, see: https://dev.solus-project.com/T1721 (append `(("dbus" ,dbus) + ("eudev" ,eudev) ; for discovering input devices ("fcitx" ,fcitx) ; helps with CJK input ("glib" ,glib) ("ibus" ,ibus) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index 800aa0505e..c5cbb758da 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -117,7 +117,7 @@ readers and is needed to communicate with such devices through the (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("pkg-config" ,pkg-config) ("perl" ,perl))) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 8ee6fbfdc4..c9c1eaa8d9 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -226,12 +226,20 @@ stable and well documented interface.") "08xwnpw9cnaix1n1i7gvpq5hrfrqc2z1snjhjapfam506hrc77g4")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; No test suite. - #:make-flags - (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) ; No ./configure script. + `(#:tests? #f ; no test suite + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'respect-LDFLAGS + (lambda _ + (substitute* "Makefile" + ((" -o sonic " match) + (string-append " $(LDFLAGS)" match))) + #t)) + (delete 'configure)))) ; no ./configure script (synopsis "Speed up or slow down speech") (description "Sonic implements a simple algorithm for speeding up or slowing down speech. However, it's optimized for speed ups of over 2X, unlike previous diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 905f0b11ca..8be3fbfd89 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,14 +82,14 @@ fundamental object types for C.") (define-public sssd (package (name "sssd") - (version "1.16.4") + (version "1.16.5") (source (origin (method url-fetch) - (uri (string-append "http://releases.pagure.org/SSSD/sssd/" + (uri (string-append "https://releases.pagure.org/SSSD/sssd/" "sssd-" version ".tar.gz")) (sha256 (base32 - "0ngr7cgimyjc6flqkm7psxagp1m4jlzpqkn28pliifbmdg6i5ckb")))) + "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1ffce54913..1c372554f7 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -548,13 +548,13 @@ estimation) corresponding to the book: Wand, M.P. and Jones, M.C. (1995) (define-public r-lattice (package (name "r-lattice") - (version "0.20-40") + (version "0.20-41") (source (origin (method url-fetch) (uri (cran-uri "lattice" version)) (sha256 (base32 - "1w53sfzdy9zsifv44dqf9pl46fk14lnx3fha1k1p660h51lyv56m")))) + "1dapkmh4jlb9sxfrpvapvlfhczl4s8p3r20bn47gcgdk1izmbjjl")))) (build-system r-build-system) (home-page "http://lattice.r-forge.r-project.org/") (synopsis "High-level data visualization system") @@ -1624,22 +1624,28 @@ like tidy evaluation.") (define-public r-tibble (package (name "r-tibble") - (version "2.1.3") + (version "3.0.0") (source (origin (method url-fetch) (uri (cran-uri "tibble" version)) (sha256 (base32 - "06jfayiip8j8ibdhw3fvxn4n8aqbqhwanrszpzlsf92xdfgfm34s")))) + "0s84h8ls5qwixbs1n5safr3xqmg3p0llzdrd9sp4vs2572mwzqzi")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) ("r-crayon" ,r-crayon) + ("r-ellipsis" ,r-ellipsis) ("r-fansi" ,r-fansi) + ("r-lifecycle" ,r-lifecycle) + ("r-magrittr" ,r-magrittr) ("r-pkgconfig" ,r-pkgconfig) ("r-pillar" ,r-pillar) - ("r-rlang" ,r-rlang))) + ("r-rlang" ,r-rlang) + ("r-vctrs" ,r-vctrs))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/hadley/tibble") (synopsis "Simple data frames") (description @@ -1983,14 +1989,14 @@ and environmental data in the framework of Euclidean exploratory methods.") (define-public r-xml2 (package (name "r-xml2") - (version "1.2.5") + (version "1.3.0") (source (origin (method url-fetch) (uri (cran-uri "xml2" version)) (sha256 (base32 - "0mp61gg8s3zfq10g10vjk0mrcx6d5gm81n4ji8an2my11g61yq94")))) + "138v9374xwc7flw8fz8qp8q3w4fch2jviij0g10dg92xn9dsyani")))) (build-system r-build-system) (inputs `(("libxml2" ,libxml2) @@ -1998,8 +2004,6 @@ and environmental data in the framework of Euclidean exploratory methods.") (native-inputs `(("pkg-config" ,pkg-config) ("r-knitr" ,r-knitr))) - (propagated-inputs - `(("r-rcpp" ,r-rcpp))) (home-page "https://github.com/hadley/xml2") (synopsis "Parse XML with R") (description @@ -3060,18 +3064,20 @@ data.") (define-public r-foreach (package (name "r-foreach") - (version "1.4.8") + (version "1.5.0") (source (origin (method url-fetch) (uri (cran-uri "foreach" version)) (sha256 (base32 - "1xwf5l2fw62w80ji3dvgcc6m9m4s6zygkhi84ypb0gv0ppjffg5c")))) + "0584nv49x8d8m1cak5drb54sxs3y594gd521kjsdwk4c849sgy8s")))) (build-system r-build-system) (propagated-inputs `(("r-codetools" ,r-codetools) ("r-iterators" ,r-iterators))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://cran.r-project.org/web/packages/foreach") (synopsis "Foreach looping construct for R") (description @@ -4114,14 +4120,14 @@ Zurich, including many that are related to graphics.") (define-public r-gtools (package (name "r-gtools") - (version "3.8.1") + (version "3.8.2") (source (origin (method url-fetch) (uri (cran-uri "gtools" version)) (sha256 (base32 - "0f5syk1qq6cjq6hwymvkiyhzwa389z94722v881ipbfqkd2q8505")))) + "1pnwy412wvhhvnnx8qg6s9hrgcnsfhnfcpf2560ipipk845acfsh")))) (build-system r-build-system) (arguments `(#:phases @@ -5076,13 +5082,13 @@ using modular prediction and response module classes.") (define-public r-quantreg (package (name "r-quantreg") - (version "5.54") + (version "5.55") (source (origin (method url-fetch) (uri (cran-uri "quantreg" version)) (sha256 - (base32 "19nh79qrkb75q348nk148l8wqjwnq5jgq29wpzqym5cfv1kjqfvh")))) + (base32 "1zjc8p95kb0ypxa6nxp0lkdq8armkjmmhf8484m25n5f14a59qfb")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -5302,18 +5308,19 @@ first and second order derivatives.") (define-public r-sn (package (name "r-sn") - (version "1.5-5") + (version "1.6-1") (source (origin (method url-fetch) (uri (cran-uri "sn" version)) (sha256 (base32 - "0ymyyc0di1g2b11wzljiih05z3rxck48wn74bygg3fiby973z49f")))) + "0snri2k8qslb7478c5jz4a5xxmmb1ipmp8x1jizi8mhj2cjic1w0")))) (build-system r-build-system) (propagated-inputs `(("r-mnormt" ,r-mnormt) - ("r-numderiv" ,r-numderiv))) + ("r-numderiv" ,r-numderiv) + ("r-quantreg" ,r-quantreg))) (home-page "http://azzalini.stat.unipd.it/SN") (synopsis "The skew-normal and skew-t distributions") (description diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 77f0aa326d..14aee33524 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -30,7 +30,7 @@ (define-public syncthing (package (name "syncthing") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -38,7 +38,7 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "1p9y943kd09pxmsaahbdml2mn2qlwbx23hvbsm1sqbbm8ma9ai8c")) + "0p1855n29rin2y8bjvmr7gkm18xd2j7js15l8nqcmyd33d60568z")) (modules '((guix build utils))) ;; Delete bundled ("vendored") free software source code. (snippet '(begin diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 6c0997da86..5bc3d19a92 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -130,3 +130,42 @@ file system, and many more features.") "RTV provides a text-based interface to view and interact with Reddit.") (license (list license:expat license:gpl3+)))) ; rtv/packages/praw + +(define-public tuir + (package + (name "tuir") + (version "1.28.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tuir" version)) + (sha256 + (base32 + "1gpyjrl7jdfjq30m32nzh59ajv91gq19l93jjri2wsv5yrf90hdr")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "pytest")))))) + (inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-decorator" ,python-decorator) + ("python-kitchen" ,python-kitchen) + ("python-requests" ,python-requests) + ("python-six" ,python-six))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-coveralls" ,python-coveralls) + ("python-mock" ,python-mock) + ("python-pylint" ,python-pylint) + ("python-pytest" ,python-pytest) + ("python-vcrpy" ,python-vcrpy))) + (home-page "https://gitlab.com/ajak/tuir") + (synopsis "Terminal viewer for Reddit (Terminal UI for Reddit)") + (description + "Tuir provides a simple terminal viewer for Reddit (Terminal UI for Reddit).") + (license (list license:expat + license:gpl3+)))) ; tuir/packages/praw diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index fd8ec3f7a9..5e43061b3e 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -16,6 +16,9 @@ ;;; Copyright © 2019 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +37,9 @@ (define-module (gnu packages telephony) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages aidc) + #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages audio) @@ -43,6 +48,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) + #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages file) #:use-module (gnu packages protobuf) @@ -52,10 +58,12 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages netpbm) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -83,6 +91,97 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system qt)) +(define-public spandsp + (package + (name "spandsp") + (version "0.0.6") + (source + (origin + (method url-fetch) + (uri + ;; The original upstream has been down since the end of March 2020. + (string-append "https://web.archive.org/web/20180626203108/" + "https://www.soft-switch.org/downloads/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc")))) + (build-system gnu-build-system) + (outputs '("out" "doc" "static")) ;doc contains HTML documentation + (arguments + `(#:configure-flags '("--enable-doc=yes" "--enable-tests=yes") + #:parallel-build? #f ;non-deterministic build failures may occur otherwise + #:parallel-tests? #f ;fails removing the same the files twice otherwise + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-configure.ac + (lambda _ + ;; spandsp looks at hard coded locations of the FHS to + ;; find libxml2. + (substitute* "configure.ac" + (("AC_MSG_CHECKING\\(for libxml/xmlmemory\\.h.*" all) + (string-append all + "PKG_CHECK_MODULES(XML2, libxml-2.0)\n" + "CPPFLAGS+=\" $XML2_CFLAGS\"\n"))) + ;; Force a regeneration of the autotools build system. + (delete-file "autogen.sh") + (delete-file "configure") + #t)) + (add-after 'unpack 'do-not-install-data-files + ;; The .tiff images produced for tests are not + ;; reproducible and it is not desirable to have those + ;; distributed. + (lambda _ + (substitute* '("test-data/itu/fax/Makefile.am" + "test-data/etsi/fax/Makefile.am") + (("nobase_data_DATA") + "noinst_DATA")) + #t)) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/" ,name "-" ,version))) + (copy-recursively "doc/t38_manual" doc) + #t))) + (add-after 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (mkdir-p (string-append static "/lib")) + (with-directory-excursion out + (for-each (lambda (file) + (rename-file file + (string-append static "/" + file))) + (find-files "lib" "\\.a$"))) + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ;; For the tests + ("fftw" ,fftw) + ("libpcap" ,libpcap) + ("libsndfile" ,libsndfile) + ("libtiff" ,libtiff) + ("netpbm" ,netpbm) + ("sox" ,sox) + ;; For the documentation + ("docbook-xml" ,docbook-xml-4.3) + ("docbook-xsl" ,docbook-xsl) + ("doxygen" ,doxygen) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt))) + (synopsis "DSP library for telephony") + (description "SpanDSP is a library of DSP functions for telephony, in the +8000 sample per second world of E1s, T1s, and higher order PCM channels. It +contains low level functions, such as basic filters. It also contains higher +level functions, such as cadenced supervisory tone detection, and a complete +software FAX machine.") + (home-page "https://web.archive.org/web/20180626203108/\ +https://www.soft-switch.org/index.html") + (license (list license:lgpl2.1+ ;for the library + license:gpl2+)))) ;for the test suites and support programs + (define-public commoncpp (package (name "commoncpp") @@ -282,52 +381,6 @@ supporting cryptographic kernel.") (home-page "https://github.com/cisco/libsrtp") (license license:bsd-3))) -(define-public bctoolbox - (package - (name "bctoolbox") - (version "0.2.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/linphone/bctoolbox/bctoolbox-" - version ".tar.gz")) - (sha256 - (base32 - "14ivv6bh6qywys6yyb34scy9w78d636xl1f7cyxm3gwx2qv71lx5")))) - (build-system gnu-build-system) - (arguments '(#:make-flags '("CFLAGS=-fPIC"))) - (native-inputs - `(("cunit" ,cunit))) - (inputs - `(("mbedtls" ,mbedtls-apache))) - (home-page "https://www.linphone.org") - (synopsis "Utilities library for linphone software") - (description "BCtoolbox is a utilities library used by Belledonne -Communications software like linphone.") - (license license:gpl2+))) - -(define-public ortp - (package - (name "ortp") - (version "0.27.0") - (source (origin - (method url-fetch) - (uri (string-append "https://download.savannah.nongnu.org/" - "releases/linphone/ortp/sources/ortp-" - version ".tar.gz")) - (sha256 - (base32 - "1by0dqdqrj5avzcvjws30g8v5sa61wj12x00sxw0kn1smcrshqgb")))) - (build-system gnu-build-system) - (inputs - `(("bctoolbox" ,bctoolbox))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "https://linphone.org/") - (synopsis "Implementation of the Real-time transport protocol") - (description "oRTP is a library implementing the Real-time transport -protocol (RFC 3550).") - (license license:lgpl2.1+))) - (define-public libiax2 (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201")) ;; This is the commit used by the Ring Project. @@ -916,11 +969,11 @@ This package provides a library common to all Jami clients.") ("libnotify" ,libnotify) ("clutter" ,clutter) ("clutter-gtk" ,clutter-gtk) - ("gettext" ,gnu-gettext) ("libcanberra" ,libcanberra) ("webkitgtk" ,webkitgtk))) (native-inputs `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("doxygen" ,doxygen))) (propagated-inputs diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index dd90ab2b72..3f210cd6e8 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -5987,8 +5988,8 @@ other things it comes with full Unicode support.") "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no `check' target - (inputs `(("texinfo" ,texinfo) - ("python" ,python-2) ; incompatible with Python 3 (print syntax) + (native-inputs `(("texinfo" ,texinfo))) + (inputs `(("python" ,python-2) ; incompatible with Python 3 (print syntax) ("which" ,which))) (home-page "https://launchpad.net/rubber") (synopsis "Wrapper for LaTeX and friends") diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index acb607a7da..7457d99653 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -228,6 +229,18 @@ Texi2HTML.") ;; Files in /lib under lgpl2.1+ and x11 (license gpl2+))) +(define-public texi2html-1.82 + (package + (inherit texi2html) + (version "1.82") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/texi2html/" + "texi2html-" version ".tar.bz2")) + (sha256 + (base32 "1wdli2szkgm3l0vx8rf6lylw0b0m47dlz9iy004n928nqkzix76n")))))) + (define-public pinfo (package (name "pinfo") @@ -264,7 +277,7 @@ Texi2HTML.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("texinfo" ,texinfo))) (home-page "https://github.com/baszoetekouw/pinfo") diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 41a0802cde..a0599764cf 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,6 +37,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) @@ -236,6 +238,34 @@ datetime module, available in Python 2.3+.") (define-public python2-parsedatetime (package-with-python2 python-parsedatetime)) +(define-public python-ciso8601 + (package + (name "python-ciso8601") + (version "2.1.3") + (source + (origin + (method git-fetch) + ;; The PyPi distribution doesn't include the tests. + (uri (git-reference + (url "https://github.com/closeio/ciso8601.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g1aiyc1ayh0rnibyy416m5mmck38ksgdm3jsy0z3rxgmgb24951")))) + (build-system python-build-system) + ;; Pytz should only be required for Python 2, but the test suite fails + ;; without it. + (native-inputs + `(("python-pytz" ,python-pytz))) + (home-page "https://github.com/closeio/ciso8601") + (synopsis + "Fast ISO8601 date time parser") + (description + "The package ciso8601 converts ISO 8601 or RFC 3339 date time strings into +Python datetime objects.") + (license expat))) + (define-public python-tzlocal (package (name "python-tzlocal") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 812057c6ed..a73b4977a0 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -165,6 +165,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") + (replacement gnutls-3.6.13) (version "3.6.12") (source (origin (method url-fetch) @@ -250,10 +251,23 @@ required structures.") (properties '((ftp-server . "ftp.gnutls.org") (ftp-directory . "/gcrypt/gnutls"))))) -(define-public gnutls/guile-2.0 - ;; GnuTLS for Guile 2.0. +(define gnutls-3.6.13 (package (inherit gnutls) + (version "3.6.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gnutls/v" + (version-major+minor version) + "/gnutls-3.6.13.tar.xz")) + (patches (search-patches "gnutls-skip-trust-store-test.patch")) + (sha256 + (base32 + "0f1gnm0756qms5cpx6yn6xb8d3imc2gkqmygf12n9x6r8zs1s11j")))))) + +(define-public gnutls/guile-2.0 + ;; GnuTLS for Guile 2.0. + (package/inherit gnutls (name "guile2.0-gnutls") (inputs `(("guile" ,guile-2.0) ,@(alist-delete "guile" (package-inputs gnutls)))))) @@ -263,8 +277,7 @@ required structures.") ;; Authentication of Named Entities. This is required for GNS functionality ;; by GNUnet and gnURL. This is done in an extra package definition ;; to have the choice between GnuTLS with Dane and without Dane. - (package - (inherit gnutls) + (package/inherit gnutls (name "gnutls-dane") (inputs `(("unbound" ,unbound) ,@(package-inputs gnutls))))) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 61e52ba22c..6c6da2379a 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -141,8 +142,9 @@ rejects UDP traffic from the application you're using.") (inputs `(("w3m" ,w3m) ("pcre" ,pcre) - ("zlib" ,zlib) - ("autoconf" ,autoconf) + ("zlib" ,zlib))) + (native-inputs + `(("autoconf" ,autoconf) ("automake" ,automake))) (home-page "https://www.privoxy.org") (synopsis "Web proxy with advanced filtering capabilities for enhancing privacy") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 75de83ab60..d2d2b23f02 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -621,37 +621,26 @@ on @command{git}, and use any regular Git hosting service.") (define-public libgit2 (package (name "libgit2") - (version "0.99.0") + (version "1.0.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libgit2/libgit2.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/libgit2/libgit2/" + "releases/download/v" version + "/libgit2-" version ".tar.gz")) (sha256 (base32 - "0qxzv49ip378g1n7hrbifb9c6pys2kj1hnxcafmbb94gj3pgd9kg")) + "1d09ni0v3vammk8zqmmwks92fh3wwnsxpyrh4s5wwdb3gxma27va")) (patches (search-patches "libgit2-mtime-0.patch")) - - ;; Remove bundled software. Keep "http-parser" because it - ;; contains patches that are not available in the system version. (snippet '(begin - (with-directory-excursion "deps" - (for-each (lambda (dir) - (delete-file-recursively dir)) - (lset-difference equal? - (scandir ".") - '("." ".." "http-parser")))) - #t)) - (modules '((guix build utils) - (srfi srfi-1) - (ice-9 ftw))))) + (delete-file-recursively "deps") #t)) + (modules '((guix build utils))))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments `(#:configure-flags (list "-DUSE_NTLMCLIENT=OFF" ;TODO: package this "-DREGEX_BACKEND=pcre2" + "-DUSE_HTTP_PARSER=system" ,@(if (%current-target-system) `((string-append "-DPKG_CONFIG_EXECUTABLE=" @@ -660,14 +649,6 @@ on @command{git}, and use any regular Git hosting service.") '())) #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-pcre2-reference - (lambda _ - ;; Use PCRE2 with 8-bit character support, as there is no "libpcre2.pc". - ;; See <https://github.com/libgit2/libgit2/issues/5438>. - (substitute* "src/CMakeLists.txt" - (("\"libpcre2\"") - "\"libpcre2-8\"")) - #t)) (add-after 'unpack 'fix-hardcoded-paths (lambda _ (substitute* "tests/repo/init.c" @@ -676,10 +657,6 @@ on @command{git}, and use any regular Git hosting service.") (("/bin/cp") (which "cp")) (("/bin/rm") (which "rm"))) #t)) - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) ;; Run checks more verbosely, unless we are cross-compiling. (replace 'check (lambda* (#:key (tests? #t) #:allow-other-keys) @@ -688,7 +665,8 @@ on @command{git}, and use any regular Git hosting service.") ;; Tests may be disabled if cross-compiling. (format #t "Test suite not run.~%"))))))) (inputs - `(("libssh2" ,libssh2))) + `(("libssh2" ,libssh2) + ("http-parser" ,http-parser))) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python))) @@ -697,7 +675,7 @@ on @command{git}, and use any regular Git hosting service.") `(("openssl" ,openssl) ("pcre2" ,pcre2) ("zlib" ,zlib))) - (home-page "https://libgit2.github.com/") + (home-page "https://libgit2.org/") (synopsis "Library providing Git core methods") (description "Libgit2 is a portable, pure C implementation of the Git core methods @@ -2159,21 +2137,16 @@ by rclone usable with git-annex.") (define-public fossil (package (name "fossil") - (version "2.8") + (version "2.10") (source (origin (method url-fetch) - ;; Older downloads are moved to another URL. - (uri (list - (string-append - "https://www.fossil-scm.org/index.html/uv/download/" - "fossil-src-" version ".tar.gz") - (string-append + (uri (string-append "https://www.fossil-scm.org/index.html/uv/" - "fossil-src-" version ".tar.gz"))) + "fossil-src-" version ".tar.gz")) (sha256 (base32 - "0pbinf8d2kj1j7niblhzjd2l2khg6r2pn2xvig6gavz27p3vwcka")) + "041bs4fgk52fw58p7s084pxk9d9vs5v2f2pjbznqawz75inpg8yq")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 23533dfdbf..cbdc5fb78a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system meson) @@ -1538,7 +1540,7 @@ projects while introducing many more.") (define-public mpv-mpris (package (name "mpv-mpris") - (version "0.2") + (version "0.4") (source (origin (method git-fetch) @@ -1548,19 +1550,17 @@ projects while introducing many more.") (file-name (git-file-name name version)) (sha256 (base32 - "06hq3j1jjlaaz9ss5l7illxz8vm5bng86jl24kawglwkqayhdnjx")))) - (build-system gnu-build-system) + "1fr3jvja8s2gdpx8qyk9r17977flms3qpm8zci62nd9r5wjdvr5i")))) + (build-system copy-build-system) (arguments - '(#:tests? #f ; no tests - #:make-flags '("CC=gcc") + '(#:install-plan + '(("mpris.so" "lib/")) #:phases (modify-phases %standard-phases - (delete 'configure) ; no configure script - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (install-file "mpris.so" (string-append out "/lib"))) - #t))))) + (add-before 'install 'build + (lambda _ + (setenv "CC" (which "gcc")) + (invoke "make")))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -3278,7 +3278,6 @@ programmers to access a standard API to open and decompress media files.") #t))))) (inputs `(("boost" ,boost) - ("desktop-file-utils" ,desktop-file-utils) ("ffms2" ,ffms2) ("fftw" ,fftw) ("hunspell" ,hunspell) @@ -3291,6 +3290,7 @@ programmers to access a standard API to open and decompress media files.") ("wxwidgets-gtk2" ,wxwidgets-gtk2))) (native-inputs `(("intltool" ,intltool) + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (home-page "http://www.aegisub.org/") (synopsis "Subtitle engine") @@ -3656,7 +3656,7 @@ API. It includes bindings for Python, Ruby, and other languages.") (define-public openshot (package (name "openshot") - (version "2.4.4") + (version "2.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -3665,10 +3665,11 @@ API. It includes bindings for Python, Ruby, and other languages.") (file-name (git-file-name name version)) (sha256 (base32 - "0mg63v36h7l8kv2sgf6x8c1n3ygddkqqwlciz7ccxpbm4x1idqba")) + "0qc5i0ay6j2wab1whl41sjb71cj02pg6y79drf7asrprq8b2rmfq")) (modules '((guix build utils))) (snippet '(begin + ;; TODO: Unbundle jquery and others from src/timeline/media (delete-file-recursively "src/images/fonts") #t)))) (build-system python-build-system) (inputs @@ -3681,14 +3682,17 @@ API. It includes bindings for Python, Ruby, and other languages.") ("python-requests" ,python-requests) ("qtsvg" ,qtsvg))) (arguments - `(#:tests? #f ;no tests - #:modules ((guix build python-build-system) + `(#:modules ((guix build python-build-system) (guix build qt-utils) (guix build utils)) #:imported-modules (,@%python-build-system-modules (guix build qt-utils)) #:phases (modify-phases %standard-phases (delete 'build) ;install phase does all the work + (replace 'check + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + (invoke "python" "src/tests/query_tests.py"))) (add-after 'unpack 'patch-font-location (lambda* (#:key inputs #:allow-other-keys) (let ((font (assoc-ref inputs "font-ubuntu"))) @@ -3707,7 +3711,7 @@ API. It includes bindings for Python, Ruby, and other languages.") (let ((out (assoc-ref outputs "out"))) (wrap-qt-program out "openshot-qt")) #t))))) - (home-page "https://openshot.org") + (home-page "https://www.openshot.org/") (synopsis "Video editor") (description "OpenShot takes your videos, photos, and music files and helps you create the film you have always dreamed of. Easily add sub-titles, diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 75e8f0bb2e..1d70de2ffa 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -851,7 +851,7 @@ through its msgpack-rpc API.") (define-public vim-asyncrun (package (name "vim-asyncrun") - (version "2.6.5") + (version "2.7.1") (source (origin (method git-fetch) (uri (git-reference @@ -860,7 +860,7 @@ through its msgpack-rpc API.") (file-name (git-file-name name version)) (sha256 (base32 - "1n0yzv8psskhx8h4g7dz64h2llm9mnljhvl4hrnsjx6znkni8vwp")))) + "0f7slvz28772qsbrb8xfwrkprfm90wc9i36xhn797lacxcxgwqpw")))) (build-system copy-build-system) (arguments '(#:install-plan diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index d46b29ec13..889c744050 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -453,61 +453,47 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers ;; 3-clause BSD license. (license license:bsd-3))) -(define-public wireguard +(define-public wireguard-linux-compat (package - (name "wireguard") - (version "0.0.20191219") + (name "wireguard-linux-compat") + (version "1.0.20200401") (source (origin (method url-fetch) - (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/" - "WireGuard-" version ".tar.xz")) + (uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/" + "snapshot/wireguard-linux-compat-" version + ".tar.xz")) (sha256 (base32 - "1rxhhf18vnlbxpaxib6y55gbvr5h9dcvl8sn2l5slzz97066zfjs")))) + "0ymprz3h4b92wlcqm5k5vmcgap8pjv202bgkdx0axmp12n1lmyvx")))) (build-system gnu-build-system) - (outputs '("out" ; The WireGuard userspace tools - "kernel-patch")) ; A patch to build Linux with WireGuard support (arguments - `(#:tests? #f ; No tests available. - #:make-flags - (list "CC=gcc" - "--directory=src/tools" - "WITH_BASHCOMPLETION=yes" - ;; Build and install the helper script wg-quick(8). - "WITH_WGQUICK=yes" - (string-append "PREFIX=" (assoc-ref %outputs "out")) - (string-append "SYSCONFDIR=" (assoc-ref %outputs "out") "/etc")) + `(#:tests? #f ; No test suite #:modules ((guix build gnu-build-system) (guix build utils) (ice-9 popen) (ice-9 textual-ports)) #:phases (modify-phases %standard-phases - ;; There is no ./configure script. - (delete 'configure) - ;; Until WireGuard is added to the upstream Linux kernel, it is - ;; distributed as a kernel patch generated by this script. - (add-after 'patch-source-shebangs 'make-patch + (delete 'configure) ; No ./configure script + (replace 'build (lambda* (#:key outputs #:allow-other-keys) - (let* ((output (string-append (assoc-ref outputs "kernel-patch") - "/wireguard.patch")) - (patch-builder "./contrib/kernel-tree/create-patch.sh") + (let* ((patch-builder "./kernel-tree-scripts/create-patch.sh") (port (open-input-pipe patch-builder)) (str (get-string-all port))) (close-pipe port) - (mkdir-p (dirname output)) - (call-with-output-file output + (call-with-output-file "wireguard.patch" (lambda (port) (format port "~a" str)))) - #t))))) - (inputs - `(("libmnl" ,libmnl))) - (home-page "https://www.wireguard.com/") - (synopsis "Tools for configuring WireGuard") - (description "This package provides the userspace tools for setting and -retrieving configuration of WireGuard network tunnel interfaces, and a patch -that can be applied to a Linux kernel source tree in order to build it with -WireGuard support.") + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file "wireguard.patch" + (assoc-ref %outputs "out")) + #t))))) + (home-page "https://git.zx2c4.com/wireguard-linux-compat/") + (synopsis "WireGuard kernel module for Linux 3.10 through 5.5") + (description "This is an out-of-tree Linux kernel patch adding WireGuard to +kernel versions 3.10 through 5.5. WireGuard was added to Linux 5.6.") (license license:gpl2))) (define-public wireguard-tools @@ -556,6 +542,9 @@ public keys and can roam across IP addresses.") (list license:lgpl2.1+ ; src/netlink.h & contrib/embeddable-wg-library license:gpl2)))) ; everything else +(define-public wireguard + (deprecated-package "wireguard" wireguard-tools)) + (define-public xl2tpd (package (name "xl2tpd") diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index d3b4e5cc33..6a2c219aac 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -345,7 +345,7 @@ shader compilation.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2b1585c8e3..e6883b7365 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -43,6 +43,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -153,14 +154,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.41") + (version "2.4.43") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "0h7a31yxwyh7h521frnmlppl0h7sh9icc3ka6vlmlcg5iwllhg8k")))) + "0hqgw47r3p3521ygkkqs8s30s5crm683081avj6330gwncm6b5x4")))) (build-system gnu-build-system) (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (inputs `(("apr" ,apr) @@ -3258,6 +3259,35 @@ IO::Socket::INET, so you can perform socket operations directly on it too.") used by the HTTP protocol (and then some more).") (home-page "https://metacpan.org/release/HTTP-Date"))) +(define-public perl-http-lite + (package + (name "perl-http-lite") + (version "2.44") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-" + version ".tar.gz")) + (sha256 + (base32 + "0z77nflj8zdcfg70kc93glq5kmd6qxn2nf7h70x4xhfg25wkvr1q")))) + (build-system perl-build-system) + (native-inputs `(("perl-cgi" ,perl-cgi))) + (home-page "https://metacpan.org/release/HTTP-Lite") + (synopsis "Lightweight HTTP implementation") + (description "@code{HTTP::Lite} is a stand-alone lightweight +HTTP/1.1 implementation for perl. It is intended for use in +situations where it is desirable to install the minimal number of +modules to achieve HTTP support. @code{HTTP::Lite} is ideal for +CGI (or mod_perl) programs or for bundling for redistribution with +larger packages where only HTTP GET and POST functionality are +necessary. @code{HTTP::Lite} is compliant with the Host header, +necessary for name based virtual hosting, and supports proxies. +Additionally, @code{HTTP::Lite} supports a callback to allow +processing of request data as it arrives.") + (license license:perl-license))) + (define-public perl-http-message (package (name "perl-http-message") @@ -5792,6 +5822,20 @@ into your tests. It automatically starts up a HTTP server in a separate thread (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) + (patches + ;; When parsing URLs, treat an empty port (eg + ;; `http://hostname:/`) as if it were unspecified. This patch is + ;; applied to Fedora's http-parser and to libgit2's bundled version. + (list + (origin + (method url-fetch) + (uri (string-append + "https://src.fedoraproject.org/rpms/http-parser/raw/" + "e89b4c4e2874c19079a5a1a2d2ccc61b551aa289/" + "f/0001-url-treat-empty-port-as-default.patch")) + (sha256 + (base32 + "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g"))))) (sha256 (base32 "189zi61vczqgmqjd2myjcjbbi5icrk7ccs0kn6nj8hxqiv5j3811")))) @@ -6101,12 +6145,12 @@ file links.") `(#:configure-flags (list "--with-ssl=openssl") #:tests? #f)) ;No tests included (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs `(("expat" ,expat) - ("openssl" ,openssl))) + ("openssl" ,openssl-1.0))) (home-page "http://www.webdav.org/cadaver/") (synopsis "Command-line WebDAV client") (description diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 5d28cac38a..82f11d13fa 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> ;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net> @@ -61,8 +61,10 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -97,6 +99,7 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages readline) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages suckless) @@ -1658,9 +1661,77 @@ productive, customizable lisp based systems.") (delete 'cleanup) (delete 'create-symlinks))))))) +(define-public stumpish + (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91") + (revision "1")) + (package + (name "stumpish") + (version (git-version "0.0.1" revision commit)) ;no upstream release + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stumpwm/stumpwm-contrib.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn")))) + (inputs + `(("bash" ,bash) + ("rlwrap" ,rlwrap))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (copy-recursively (assoc-ref %build-inputs "source") ".") + (chdir "util/stumpish") + (substitute* "stumpish" + (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap") + "/bin/rlwrap")) + (("/bin/sh") (string-append (assoc-ref %build-inputs "bash") + "/bin/bash"))) + (install-file "stumpish" (string-append %output "/bin"))))) + (home-page "https://github.com/stumpwm/stumpwm-contrib") + (synopsis "StumpWM interactive shell") + (description "This package provides a StumpWM interactive shell.") + (license (list license:gpl2+ license:gpl3+ license:bsd-2))))) + (define-public sbcl-stumpwm+slynk (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk)) +(define-public sbcl-stumpwm-ttf-fonts + (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91") + (revision "1")) + (package + (name "sbcl-ttf-fonts") + (version (git-version "0.0.1" revision commit)) ;no upstream release + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stumpwm/stumpwm-contrib.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn")))) + (inputs + `(("stumpwm" ,stumpwm "lib") + ("clx-truetype" ,sbcl-clx-truetype))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "util/ttf-fonts")))))) + (home-page "https://github.com/stumpwm/stumpwm-contrib") + (synopsis "Implementation of TTF font rendering for Lisp") + (description "This package provides a Lisp implementation of TTF font +rendering.") + (license (list license:gpl2+ license:gpl3+ license:bsd-2))))) + (define-public lemonbar (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4") (revision "1")) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 937595cb9d..9275e3cd38 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Damien Cassou <damien@cassou.me> +;;; Copyright © 2020 John Soo <jsoo1@asu.edu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2021,6 +2022,42 @@ can optionally use some appearance settings from XSettings, tint2 and GTK.") (home-page "https://jgmenu.github.io/") (license license:gpl2))) +(define-public xwallpaper + (package + (name "xwallpaper") + (version "0.6.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stoeckmann/xwallpaper") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "175fzifvia58vah2x7509drvfn3xfv5d9szgh9x1w1a1w8rcs2hx")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("libjpeg-turbo" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libxpm" ,libxpm) + ("pixman" ,pixman) + ("xcb-util" ,xcb-util) + ("xcb-util-image" ,xcb-util-image))) + (home-page "https://github.com/stoeckmann/xwallpaper") + (synopsis "Wallpaper setting utility for X") + (description + "The xwallpaper utility allows you to set image files as your X +wallpaper. JPEG, PNG, and XPM file formats are supported. + +The wallpaper is also advertised to programs which support semi-transparent +backgrounds.") + (license license:isc))) + (define-public xwrits (package (name "xwrits") @@ -2171,17 +2208,17 @@ tools to complement clipnotify.") (license license:public-domain))) (define-public clipmenu - (let ((commit "a495bcc7a4ab125182a661c5808364f66938a87c") + (let ((commit "bcbe7b144598db4a103f14e8408c4b7327d6d5e1") (revision "1")) (package (name "clipmenu") - (version (string-append "5.6.0-" + (version (string-append "6.0.1-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/cdown/clipnotify.git") + (url "https://github.com/cdown/clipmenu.git") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 5b9aa49827..87c2ae7718 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -11,6 +11,8 @@ ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2019 L p R n d n <guix@lprndn.info> ;;; Copyright © 2019 Ingo Ruhnke <grumbel@gmail.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -92,15 +94,15 @@ (define-public libxfce4util (package (name "libxfce4util") - (version "4.14.0") + (version "4.15.0") (source (origin (method url-fetch) - (uri (string-append "http://archive.xfce.org/xfce/" + (uri (string-append "https://archive.xfce.org/src/xfce/libxfce4util/" (version-major+minor version) - "/src/" name "-" version ".tar.bz2")) + "/" name "-" version ".tar.bz2")) (sha256 (base32 - "093338faqqsrlc8dkmzr7qv411ysxczg1wlg7s3gvhrfk6vpkb9j")))) + "1lq9i30jdci4if2daxdcqni0x5jvpnaflgp19za9sks3gm4jma5v")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -926,10 +928,10 @@ inhibit interface which allows applications to prevent automatic sleep.") (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (inputs - `(("desktop-file-utils" ,desktop-file-utils) - ("gtk+" ,gtk+) + `(("gtk+" ,gtk+) ("libexif" ,libexif) ("libxfce4ui" ,libxfce4ui) ("librsvg" ,librsvg) @@ -1706,10 +1708,10 @@ interfaces of your choice in the panel.") (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (inputs - `(("desktop-file-utils" ,desktop-file-utils) - ("gtk+-2" ,gtk+-2) + `(("gtk+-2" ,gtk+-2) ("exo" ,exo) ("libxfce4ui" ,libxfce4ui) ("xfce4-panel" ,xfce4-panel))) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index edb690b5ff..794dad517e 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -285,10 +286,10 @@ meaning that audio is compressed in FLAC without any loss in quality.") "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) + ("bison" ,bison) ("pkg-config" ,pkg-config))) ;; FIXME: Add optional input liboggz - (inputs `(("bison" ,bison) - ("libogg" ,libogg) + (inputs `(("libogg" ,libogg) ("libpng" ,libpng) ("python" ,python-wrapper) ("zlib" ,zlib))) diff --git a/gnu/services.scm b/gnu/services.scm index e7a3a95e43..832d6984d8 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -322,7 +322,8 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)." "Return as a monadic value the derivation of the 'system' directory containing the given entries." (mlet %store-monad ((entries mentries) - (extensions (sequence %store-monad mextensions))) + (extensions (mapm/accumulate-builds identity + mextensions))) (lower-object (file-union "system" (append entries (concatenate extensions)))))) @@ -579,6 +580,10 @@ ACTIVATION-SCRIPT-TYPE." #~(begin (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules") + ;; FIXME: Remove this crutch when the patch #40422, + ;; updating to kmod 27 is merged. + (setenv "MODPROBE_OPTIONS" + "-C /etc/modprobe.d") (apply execl #$modprobe (cons #$modprobe (cdr (command-line)))))))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 194dd3b344..08ab5970dc 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1436,10 +1436,17 @@ Service Switch}, for an example." (documentation "Run the syslog daemon (syslogd).") (provision '(syslogd)) (requirement '(user-processes)) - (start #~(make-forkexec-constructor - (list #$(syslog-configuration-syslogd config) - "--rcfile" #$(syslog-configuration-config-file config)) - #:pid-file "/var/run/syslog.pid")) + (start #~(let ((spawn (make-forkexec-constructor + (list #$(syslog-configuration-syslogd config) + "--rcfile" + #$(syslog-configuration-config-file config)) + #:pid-file "/var/run/syslog.pid"))) + (lambda () + ;; Set the umask such that file permissions are #o640. + (let ((mask (umask #o137)) + (pid (spawn))) + (umask mask) + pid)))) (stop #~(make-kill-destructor)))))) ;; Snippet adapted from the GNU inetutils manual. @@ -1633,6 +1640,30 @@ archive' public keys, with GUIX." (define %default-guix-configuration (guix-configuration)) +(define shepherd-set-http-proxy-action + ;; Shepherd action to change the HTTP(S) proxy. + (shepherd-action + (name 'set-http-proxy) + (documentation + "Change the HTTP(S) proxy used by 'guix-daemon' and restart it.") + (procedure #~(lambda* (_ #:optional proxy) + (let ((environment (environ))) + ;; A bit of a hack: communicate PROXY to the 'start' + ;; method via environment variables. + (if proxy + (begin + (format #t "changing HTTP/HTTPS \ +proxy of 'guix-daemon' to ~s...~%" + proxy) + (setenv "http_proxy" proxy)) + (begin + (format #t "clearing HTTP/HTTPS \ +proxy of 'guix-daemon'...~%") + (unsetenv "http_proxy"))) + (action 'guix-daemon 'restart) + (environ environment) + #t))))) + (define (guix-shepherd-service config) "Return a <shepherd-service> for the Guix daemon service with CONFIG." (match-record config <guix-configuration> @@ -1644,47 +1675,58 @@ archive' public keys, with GUIX." (documentation "Run the Guix daemon.") (provision '(guix-daemon)) (requirement '(user-processes)) + (actions (list shepherd-set-http-proxy-action)) (modules '((srfi srfi-1))) (start - #~(make-forkexec-constructor - (cons* #$(file-append guix "/bin/guix-daemon") - "--build-users-group" #$build-group - "--max-silent-time" #$(number->string max-silent-time) - "--timeout" #$(number->string timeout) - "--log-compression" #$(symbol->string log-compression) - #$@(if use-substitutes? - '() - '("--no-substitutes")) - "--substitute-urls" #$(string-join substitute-urls) - #$@extra-options - - ;; Add CHROOT-DIRECTORIES and all their dependencies (if - ;; these are store items) to the chroot. - (append-map (lambda (file) - (append-map (lambda (directory) - (list "--chroot-directory" - directory)) - (call-with-input-file file - read))) - '#$(map references-file chroot-directories))) - - #:environment-variables - (list #$@(if http-proxy - (list (string-append "http_proxy=" http-proxy)) - '()) - #$@(if tmpdir - (list (string-append "TMPDIR=" tmpdir)) - '()) - - ;; Make sure we run in a UTF-8 locale so that 'guix - ;; offload' correctly restores nars that contain UTF-8 - ;; file names such as 'nss-certs'. See - ;; <https://bugs.gnu.org/32942>. - (string-append "GUIX_LOCPATH=" - #$glibc-utf8-locales "/lib/locale") - "LC_ALL=en_US.utf8") - - #:log-file #$log-file)) + #~(lambda _ + (define proxy + ;; HTTP/HTTPS proxy. The 'http_proxy' variable is set by + ;; the 'set-http-proxy' action. + (or (getenv "http_proxy") #$http-proxy)) + + (fork+exec-command + (cons* #$(file-append guix "/bin/guix-daemon") + "--build-users-group" #$build-group + "--max-silent-time" #$(number->string max-silent-time) + "--timeout" #$(number->string timeout) + "--log-compression" #$(symbol->string log-compression) + #$@(if use-substitutes? + '() + '("--no-substitutes")) + "--substitute-urls" #$(string-join substitute-urls) + #$@extra-options + + ;; Add CHROOT-DIRECTORIES and all their dependencies + ;; (if these are store items) to the chroot. + (append-map (lambda (file) + (append-map (lambda (directory) + (list "--chroot-directory" + directory)) + (call-with-input-file file + read))) + '#$(map references-file + chroot-directories))) + + #:environment-variables + (append (list #$@(if tmpdir + (list (string-append "TMPDIR=" tmpdir)) + '()) + + ;; Make sure we run in a UTF-8 locale so that + ;; 'guix offload' correctly restores nars that + ;; contain UTF-8 file names such as + ;; 'nss-certs'. See + ;; <https://bugs.gnu.org/32942>. + (string-append "GUIX_LOCPATH=" + #$glibc-utf8-locales + "/lib/locale") + "LC_ALL=en_US.utf8") + (if proxy + (list (string-append "http_proxy=" proxy) + (string-append "https_proxy=" proxy)) + '())) + + #:log-file #$log-file))) (stop #~(make-kill-destructor)))))) (define (guix-accounts config) @@ -2444,6 +2486,8 @@ to handle." (service guix-service-type) (service nscd-service-type) + (service rottlog-service-type) + ;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is ;; used, so enable them by default. The FUSE and ALSA rules are ;; less critical, but handy. diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 16ee4d3537..7300ff5f4a 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -932,15 +932,23 @@ and extends polkit with the actions from @code{gnome-settings-daemon}." mate-desktop-configuration? (mate-package mate-package (default mate))) +(define (mate-polkit-extension config) + "Return the list of packages for CONFIG's MATE package that extend polkit." + (let ((mate (mate-package config))) + (map (lambda (input) + ((package-direct-input-selector input) mate)) + '("mate-system-monitor" ;kill, renice processes + "mate-settings-daemon" ;date/time settings + "mate-power-manager" ;modify brightness + "mate-control-center" ;RandR, display properties FIXME + "mate-applets")))) ;CPU frequency scaling + (define mate-desktop-service-type (service-type (name 'mate-desktop) (extensions (list (service-extension polkit-service-type - (compose list - (package-direct-input-selector - "mate-settings-daemon") - mate-package)) + mate-polkit-extension) (service-extension profile-service-type (compose list mate-package)))) diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..781a61973c 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages linux) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (earlyoom-configuration earlyoom-configuration? @@ -37,7 +40,9 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-service-type)) ;;; @@ -123,3 +128,53 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + + +;;; +;;; Kernel module loader. +;;; + +(define kernel-module-loader-shepherd-service + (match-lambda + ((and (? list? kernel-modules) ((? string?) ...)) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (requirement '(file-systems)) + (respawn? #f) + (one-shot? #t) + (modules `((srfi srfi-1) + (srfi srfi-34) + (srfi srfi-35) + (rnrs io ports) + ,@%default-modules)) + (start + #~(lambda _ + (cond + ((null? '#$kernel-modules) #t) + ((file-exists? "/proc/sys/kernel/modprobe") + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-line))) + (guard (c ((message-condition? c) + (format (current-error-port) "~a~%" + (condition-message c)) + #f)) + (every (lambda (module) + (invoke/quiet modprobe "--" module)) + '#$kernel-modules)))) + (else + (format (current-error-port) "error: ~a~%" + "Kernel is missing loadable module support.") + #f))))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend append) + (default-value '()))) diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm index 0a735315b4..e1259cc2df 100644 --- a/gnu/services/telephony.scm +++ b/gnu/services/telephony.scm @@ -182,7 +182,9 @@ "welcometext=" welcome-text "\n" "port=" (number->string port) "\n" (if server-password (list "serverpassword=" server-password "\n") '()) - (if max-user-bandwidth (list "bandwidth=" (number->string max-user-bandwidth)) '()) + (if max-user-bandwidth (list "bandwidth=" + (number->string max-user-bandwidth) "\n") + '()) "users=" (number->string max-users) "\n" "uname=" user "\n" "database=" database-file "\n" diff --git a/gnu/services/web.scm b/gnu/services/web.scm index fa5c34d5af..9ae84ddbc4 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -262,6 +262,14 @@ patchwork-virtualhost patchwork-service-type + <mumi-configuration> + mumi-configuration + mumi-configuration? + mumi-configuration-mumi + mumi-configuration-mailer? + mumi-configuration-sender + mumi-configuration-smtp + mumi-service-type)) ;;; Commentary: @@ -1678,6 +1686,14 @@ WSGIPassAuthorization On ;;; Mumi. ;;; +(define-record-type* <mumi-configuration> + mumi-configuration make-mumi-configuration + mumi-configuration? + (mumi mumi-configuration-mumi (default mumi)) + (mailer? mumi-configuration-mailer? (default #t)) + (sender mumi-configuration-sender (default #f)) + (smtp mumi-configuration-smtp (default #f))) + (define %mumi-activation (with-imported-modules '((guix build utils)) #~(begin @@ -1702,25 +1718,43 @@ WSGIPassAuthorization On (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) -(define (mumi-shepherd-services mumi) - (list (shepherd-service - (provision '(mumi)) - (documentation "Mumi bug-tracking web interface.") - (requirement '(networking)) - (start #~(make-forkexec-constructor - '(#$(file-append mumi "/bin/mumi")) - #:user "mumi" #:group "mumi" - #:log-file "/var/log/mumi.log")) - (stop #~(make-kill-destructor))) - (shepherd-service - (provision '(mumi-worker)) - (documentation "Mumi bug-tracking web interface.") - (requirement '(networking)) - (start #~(make-forkexec-constructor - '(#$(file-append mumi "/bin/mumi") "--worker") - #:user "mumi" #:group "mumi" - #:log-file "/var/log/mumi.worker.log")) - (stop #~(make-kill-destructor))))) +(define (mumi-shepherd-services config) + (match config + (($ <mumi-configuration> mumi mailer? sender smtp) + (list (shepherd-service + (provision '(mumi)) + (documentation "Mumi bug-tracking web interface.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + `(#$(file-append mumi "/bin/mumi") "web" + ,@(if #$mailer? '() '("--disable-mailer"))) + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.log")) + (stop #~(make-kill-destructor))) + (shepherd-service + (provision '(mumi-worker)) + (documentation "Mumi bug-tracking web interface database worker.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + '(#$(file-append mumi "/bin/mumi") "worker") + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.worker.log")) + (stop #~(make-kill-destructor))) + (shepherd-service + (provision '(mumi-mailer)) + (documentation "Mumi bug-tracking web interface mailer.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + `(#$(file-append mumi "/bin/mumi") "mailer" + ,@(if #$sender + (list (string-append "--sender=" #$sender)) + '()) + ,@(if #$smtp + (list (string-append "--smtp=" #$smtp)) + '())) + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.mailer.log")) + (stop #~(make-kill-destructor))))))) (define mumi-service-type (service-type @@ -1734,4 +1768,5 @@ WSGIPassAuthorization On mumi-shepherd-services))) (description "Run Mumi, a Web interface to the Debbugs bug-tracking server.") - (default-value mumi))) + (default-value + (mumi-configuration)))) diff --git a/gnu/system.scm b/gnu/system.scm index 3975082f5e..319663cb48 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -477,13 +477,19 @@ OS." value of the SYSTEM-SERVICE-TYPE service." (let ((locale (operating-system-locale-directory os))) (mlet* %store-monad ((kernel -> (operating-system-kernel os)) + (kernel-modules (package-file kernel "lib/modules")) (modules -> (operating-system-kernel-loadable-modules os)) + (has-modules? -> + (or (not (null? modules)) + (file-exists? kernel-modules))) (kernel (profile-derivation (packages->manifest (cons kernel modules)) - #:hooks (list linux-module-database))) + #:hooks (if has-modules? + (list linux-module-database) + '()))) (initrd -> (operating-system-initrd-file os)) (params (operating-system-boot-parameters-file os))) (return `(("kernel" ,kernel) diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index 45d9bf447f..20b122fe51 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -5,6 +5,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) (use-package-modules bootloaders certs ratpoison suckless wm) +(use-package-modules bootloaders certs ratpoison suckless wm xorg) (operating-system (host-name "antelope") @@ -43,6 +44,8 @@ (packages (append (list ;; window managers ratpoison i3-wm i3status dmenu + ;; terminal emulator + xterm ;; for HTTPS access nss-certs) %base-packages)) diff --git a/gnu/system/keyboard.scm b/gnu/system/keyboard.scm index cd3ab37b27..5bd13a44be 100644 --- a/gnu/system/keyboard.scm +++ b/gnu/system/keyboard.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,5 +94,8 @@ Layout information is taken from the XKEYBOARD-CONFIG package." #$(keyboard-layout-name layout)))))) (computed-file (string-append "console-keymap." - (keyboard-layout-name layout)) + (string-map (match-lambda + (#\, #\-) + (chr chr)) + (keyboard-layout-name layout))) build)) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 46efdfddab..42480e823c 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -215,6 +216,10 @@ for a colorful Guile experience.\\n\\n\"))))\n")) ((target source) (copy-recursively source target))) '#$skeletons) + ;; Make nanorc respect XDG_CONFIG_HOME. + (when (file-exists? ".nanorc") + (mkdir-p ".config/nano") + (rename-file ".nanorc" ".config/nano/nanorc")) #t)))) (define (assert-valid-users/groups users groups) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 37b83dc7ec..086d2a133f 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -195,6 +195,14 @@ info --version") (pk 'services services) '(root #$@(operating-system-shepherd-service-names os))))) + (test-equal "/var/log/messages is not world-readable" + #o640 ;<https://bugs.gnu.org/40405> + (begin + (wait-for-file "/var/log/messages" marionette + #:read 'get-u8) + (marionette-eval '(stat:perms (lstat "/var/log/messages")) + marionette))) + (test-assert "homes" (let ((homes '#$(map user-account-home-directory @@ -451,6 +459,21 @@ info --version") (marionette-eval '(readlink "/var/guix/gcroots/profiles") marionette)) + (test-equal "guix-daemon set-http-proxy action" + '(#t) ;one value, #t + (marionette-eval '(with-shepherd-action 'guix-daemon + ('set-http-proxy "http://localhost:8118") + result + result) + marionette)) + + (test-equal "guix-daemon set-http-proxy action, clear" + '(#t) ;one value, #t + (marionette-eval '(with-shepherd-action 'guix-daemon + ('set-http-proxy) + result + result) + marionette)) (test-assert "screendump" (begin diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..788bdc848a 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,8 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +40,40 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file - "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + "verify-kernel-modules-loaded.scm" + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen) + (srfi srfi-1) + (srfi srfi-13)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (lines (string-split (read-string port) #\newline)) + (separators (char-set #\space #\tab)) + (modules (map (lambda (line) + (string-take line + (or (string-index line separators) + 0))) + lines)) + (status (close-pipe port))) + (and (= status 0) + (and-map (lambda (module) + (member module modules string=?)) + '#$modules)))))) (define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." + "Run a test of an OS having MODULE-PACKAGES, and verify that MODULE-NAMES +are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (service kernel-module-loader-service-type module-names) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +93,8 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation "loadable-kernel-modules" + (test (modules-loaded?-program os module-names)))) (define %test-loadable-kernel-modules-0 (system-test diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm index 247a687d80..31fc493b09 100644 --- a/guix/build/bournish.scm +++ b/guix/build/bournish.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; @@ -83,7 +83,21 @@ TERMINAL-WIDTH. Use COLUMN-GAP spaces between two subsequent columns." (newline) (loop (map 1+ indexes))))) -(define ls-command-implementation +(define-syntax define-command-runtime + (syntax-rules () + "Define run-time support of a Bournish command. This macro ensures that +the implementation is not subject to inlining, which would prevent compiled +code from referring to it via '@@'." + ((_ (command . args) body ...) + (define-command-runtime command (lambda args body ...))) + ((_ command exp) + (begin + (define command exp) + + ;; Prevent inlining of COMMAND. + (set! command command))))) + +(define-command-runtime ls-command-implementation ;; Run-time support procedure. (case-lambda (() @@ -173,13 +187,13 @@ TERMINAL-WIDTH. Use COLUMN-GAP spaces between two subsequent columns." (call-with-input-file file lines+chars))) (format #t "~a ~a~%" chars file))) -(define (wc-command-implementation . files) +(define-command-runtime (wc-command-implementation . files) (for-each wc-print (filter file-exists?* files))) -(define (wc-l-command-implementation . files) +(define-command-runtime (wc-l-command-implementation . files) (for-each wc-l-print (filter file-exists?* files))) -(define (wc-c-command-implementation . files) +(define-command-runtime (wc-c-command-implementation . files) (for-each wc-c-print (filter file-exists?* files))) (define (wc-command . args) diff --git a/guix/build/compile.scm b/guix/build/compile.scm index 4b6472784c..3ce0ecede5 100644 --- a/guix/build/compile.scm +++ b/guix/build/compile.scm @@ -184,36 +184,35 @@ files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"." ;; Exit as soon as something goes wrong. (exit-on-exception file - (with-target host - (lambda () - (let ((relative (relative-file source-directory file))) - (compile-file file - #:output-file (string-append build-directory "/" - (scm->go relative)) - #:opts (append warning-options - (optimization-options relative)))))))) + (let ((relative (relative-file source-directory file))) + (compile-file file + #:output-file (string-append build-directory "/" + (scm->go relative)) + #:opts (append warning-options + (optimization-options relative)))))) (with-augmented-search-path %load-path source-directory (with-augmented-search-path %load-compiled-path build-directory (with-fluids ((*current-warning-prefix* "")) - - ;; FIXME: To work around <https://bugs.gnu.org/15602>, we first load all - ;; of FILES. - (load-files source-directory files - #:report-load report-load - #:debug-port debug-port) - - ;; Make sure compilation related modules are loaded before starting to - ;; compile files in parallel. - (compile #f) - - ;; XXX: Don't use too many workers to work around the insane memory - ;; requirements of the compiler in Guile 2.2.2: - ;; <https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00033.html>. - (n-par-for-each (min workers 8) build files) - - (unless (zero? total) - (report-compilation #f total total)))))) + (with-target host + (lambda () + ;; FIXME: To work around <https://bugs.gnu.org/15602>, we first + ;; load all of FILES. + (load-files source-directory files + #:report-load report-load + #:debug-port debug-port) + + ;; Make sure compilation related modules are loaded before + ;; starting to compile files in parallel. + (compile #f) + + ;; XXX: Don't use too many workers to work around the insane + ;; memory requirements of the compiler in Guile 2.2.2: + ;; <https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00033.html>. + (n-par-for-each (min workers 8) build files) + + (unless (zero? total) + (report-compilation #f total total)))))))) (eval-when (eval load) (when (and (string=? "2" (major-version)) diff --git a/guix/channels.scm b/guix/channels.scm index f0261dc2da..785b97722e 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -349,6 +349,15 @@ to '%package-module-path'." (((predicate . guile) rest ...) (if (predicate source) (guile) (loop rest)))))) +(define (with-trivial-build-handler mvalue) + "Run MVALUE, a monadic value, with a \"trivial\" build handler installed +that unconditionally resumes the continuation." + (lambda (store) + (with-build-handler (lambda (continue . _) + (continue #t)) + (values (run-with-store store mvalue) + store)))) + (define* (build-from-source name source #:key core verbose? commit (dependencies '())) @@ -381,8 +390,14 @@ package modules under SOURCE using CORE, an instance of Guix." (mbegin %store-monad (mwhen guile (set-guile-for-build guile)) - (build source #:verbose? verbose? #:version commit - #:pull-version %pull-version))) + + ;; BUILD is usually quite costly. Install a "trivial" build handler + ;; so we don't bounce an outer build-accumulator handler that could + ;; cause us to redo half of the BUILD computation several times just + ;; to realize it gives the same result. + (with-trivial-build-handler + (build source #:verbose? verbose? #:version commit + #:pull-version %pull-version)))) ;; Build a set of modules that extend Guix using the standard method. (standard-module-derivation name source core dependencies))) diff --git a/guix/ci.scm b/guix/ci.scm index 9e21996023..8fd05668f2 100644 --- a/guix/ci.scm +++ b/guix/ci.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -68,7 +68,7 @@ (define-json-mapping <evaluation> make-evaluation evaluation? json->evaluation (id evaluation-id) ;integer - (spec evaluation-spec) ;string + (spec evaluation-spec "specification") ;string (complete? evaluation-complete? "in-progress" (match-lambda (0 #t) diff --git a/guix/gexp.scm b/guix/gexp.scm index 1f1993a89f..2dea793685 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -730,7 +730,7 @@ names and file names suitable for the #:allowed-references argument to #:target target))) (return (derivation->output-path drv)))))) - (mapm %store-monad lower lst))) + (mapm/accumulate-builds lower lst))) (define default-guile-derivation ;; Here we break the abstraction by talking to the higher-level layer. diff --git a/guix/git.scm b/guix/git.scm index b1ce3ea451..5fffd429bd 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -182,11 +182,10 @@ OID (roughly the commit hash) corresponding to REF." (('tag . tag) (let ((oid (reference-name->oid repository (string-append "refs/tags/" tag)))) - ;; Get the commit that the tag at OID refers to. This is not - ;; strictly needed, but it's more consistent to always return the - ;; OID of a commit. - (object-lookup repository - (tag-target-id (tag-lookup repository oid)))))))) + ;; OID may point to a "tag" object, but it can also point directly + ;; to a "commit" object, as surprising as it may seem. Return that + ;; object, whatever that is. + (object-lookup repository oid)))))) (reset repository obj RESET_HARD) (object-id obj)) diff --git a/guix/grafts.scm b/guix/grafts.scm index 5173a77e58..69d6fe4469 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -152,43 +152,23 @@ are not recursively applied to dependencies of DRV." #:properties properties))))) -(define (non-self-references references drv outputs) +(define (non-self-references store drv outputs) "Return the list of references of the OUTPUTS of DRV, excluding self -references. Call REFERENCES to get the list of references." - (let ((refs (append-map (compose references - (cut derivation->output-path drv <>)) - outputs)) - (self (match (derivation->output-paths drv) - (((names . items) ...) - items)))) - (remove (cut member <> self) refs))) - -(define (references-oracle store input) - "Return a one-argument procedure that, when passed the output file names of -INPUT, a derivation input, or their dependencies, returns the list of -references of that item. Build INPUT if it's not available." +references." (define (references* items) ;; Return the references of ITEMS. (guard (c ((store-protocol-error? c) ;; ITEMS are not in store so build INPUT first. - (and (build-derivations store (list input)) - (map (cut references/cached store <>) items)))) - (map (cut references/cached store <>) items))) + (and (build-derivations store (list drv)) + (append-map (cut references/cached store <>) items)))) + (append-map (cut references/cached store <>) items))) - (let loop ((items (derivation-input-output-paths input)) - (result vlist-null)) - (match items - (() - (lambda (item) - (match (vhash-assoc item result) - ((_ . refs) refs) - (#f #f)))) - (_ - (let* ((refs (references* items)) - (result (fold vhash-cons result items refs))) - (loop (remove (cut vhash-assoc <> result) - (delete-duplicates (concatenate refs) string=?)) - result)))))) + (let ((refs (references* (map (cut derivation->output-path drv <>) + outputs))) + (self (match (derivation->output-paths drv) + (((names . items) ...) + items)))) + (remove (cut member <> self) refs))) (define-syntax-rule (with-cache key exp ...) "Cache the value of monadic expression EXP under KEY." @@ -231,15 +211,12 @@ of DRV." (set-insert drv visited))))))))) (define* (cumulative-grafts store drv grafts - references #:key (outputs (derivation-output-names drv)) (guile (%guile-for-build)) (system (%current-system))) "Augment GRAFTS with additional grafts resulting from the application of -GRAFTS to the dependencies of DRV; REFERENCES must be a one-argument procedure -that returns the list of references of the store item it is given. Return the -resulting list of grafts. +GRAFTS to the dependencies of DRV. Return the resulting list of grafts. This is a monadic procedure in %STATE-MONAD where the state is a vhash mapping derivations to the corresponding set of grafts." @@ -262,7 +239,7 @@ derivations to the corresponding set of grafts." ;; If GRAFTS already contains a graft from DRV, do not override it. (if (find (cut graft-origin? drv <>) grafts) (state-return grafts) - (cumulative-grafts store drv grafts references + (cumulative-grafts store drv grafts #:outputs (list output) #:guile guile #:system system))) @@ -270,7 +247,7 @@ derivations to the corresponding set of grafts." (state-return grafts)))) (with-cache (cons (derivation-file-name drv) outputs) - (match (non-self-references references drv outputs) + (match (non-self-references store drv outputs) (() ;no dependencies (return grafts)) (deps ;one or more dependencies @@ -307,15 +284,8 @@ derivations to the corresponding set of grafts." "Apply GRAFTS to the OUTPUTS of DRV and all their dependencies, recursively. That is, if GRAFTS apply only indirectly to DRV, graft the dependencies of DRV, and graft DRV itself to refer to those grafted dependencies." - - ;; First, pre-compute the dependency tree of the outputs of DRV. Do this - ;; upfront to have as much parallelism as possible when querying substitute - ;; info or when building DRV. - (define references - (references-oracle store (derivation-input drv outputs))) - (match (run-with-state - (cumulative-grafts store drv grafts references + (cumulative-grafts store drv grafts #:outputs outputs #:guile guile #:system system) vlist-null) ;the initial cache diff --git a/guix/lint.scm b/guix/lint.scm index 2be3cc3ee3..72582cfffb 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -308,6 +308,7 @@ of a package, and INPUT-NAMES, a list of package specifications such as "intltool" "itstool" "libtool" + "m4" "qttools" "yasm" "nasm" "fasm" "python-coverage" "python2-coverage" diff --git a/guix/packages.scm b/guix/packages.scm index 567240f54e..58078c75c0 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -111,6 +111,8 @@ package-output package-grafts package-patched-vulnerabilities + package-with-patches + package-with-extra-patches package/inherit transitive-input-references @@ -656,6 +658,18 @@ specifies modules in scope when evaluating SNIPPET." #:properties `((type . origin) (patches . ,(length patches))))))) +(define (package-with-patches original patches) + "Return package ORIGINAL with PATCHES applied." + (package (inherit original) + (source (origin (inherit (package-source original)) + (patches patches))))) + +(define (package-with-extra-patches original patches) + "Return package ORIGINAL with all PATCHES appended to its list of patches." + (package-with-patches original + (append (origin-patches (package-source original)) + patches))) + (define (transitive-inputs inputs) "Return the closure of INPUTS when considering the 'propagated-inputs' edges. Omit duplicate inputs, except for those already present in INPUTS diff --git a/guix/profiles.scm b/guix/profiles.scm index 9150886081..7bcf4e3172 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -87,6 +87,9 @@ manifest-entry-search-paths manifest-entry-parent manifest-entry-properties + lower-manifest-entry + + manifest-entry=? manifest-pattern manifest-pattern? @@ -216,6 +219,33 @@ (output manifest-pattern-output ; string | #f (default "out"))) +(define (list=? = lst1 lst2) + "Return true if LST1 and LST2 have the same length and their elements are +pairwise equal per =." + (match lst1 + (() + (null? lst2)) + ((head1 . tail1) + (match lst2 + ((head2 . tail2) + (and (= head1 head2) (list=? = tail1 tail2))) + (() + #f))))) + +(define (manifest-entry=? entry1 entry2) + "Return true if ENTRY1 is equivalent to ENTRY2, ignoring their 'properties' +field." + (match entry1 + (($ <manifest-entry> name1 version1 output1 item1 dependencies1 paths1) + (match entry2 + (($ <manifest-entry> name2 version2 output2 item2 dependencies2 paths2) + (and (string=? name1 name2) + (string=? version1 version2) + (string=? output1 output2) + (equal? item1 item2) ;XXX: could be <package> vs. store item + (equal? paths1 paths2) + (list=? manifest-entry=? dependencies1 dependencies2))))))) + (define (manifest-transitive-entries manifest) "Return the entries of MANIFEST along with their propagated inputs, recursively." @@ -263,16 +293,24 @@ procedure takes two arguments: the entry name and output." (define* (lower-manifest-entry entry system #:key target) "Lower ENTRY for SYSTEM and TARGET such that its 'item' field is a store file name." + (define (recurse entry) + (mapm/accumulate-builds (lambda (entry) + (lower-manifest-entry entry system + #:target target)) + (manifest-entry-dependencies entry))) + (let ((item (manifest-entry-item entry))) (if (string? item) (with-monad %store-monad (return entry)) (mlet %store-monad ((drv (lower-object item system #:target target)) + (dependencies (recurse entry)) (output -> (manifest-entry-output entry))) (return (manifest-entry (inherit entry) - (item (derivation->output-path drv output)))))))) + (item (derivation->output-path drv output)) + (dependencies dependencies))))))) (define* (check-for-collisions manifest system #:key target) "Check whether the entries of MANIFEST conflict with one another; raise a @@ -1382,26 +1420,38 @@ the entries in MANIFEST." #~(begin (use-modules (guix man-db) (guix build utils) + (ice-9 threads) (srfi srfi-1) (srfi srfi-19)) + (define (print-string msg) + (display msg) + (force-output)) + + (define-syntax-rule (print fmt args ...) + ;; Build up the string and display it at once. + (print-string (format #f fmt args ...))) + + (define (compute-entry directory count total) + (print "\r[~3d/~3d] building list of man-db entries..." + count total) + (let ((man (string-append directory "/share/man"))) + (if (directory-exists? man) + (mandb-entries man) + '()))) + (define (compute-entries) ;; This is the most expensive part (I/O and CPU, due to ;; decompression), so report progress as we traverse INPUTS. - (let* ((inputs '#$(manifest-inputs manifest)) - (total (length inputs))) - (append-map (lambda (directory count) - (format #t "\r[~3d/~3d] building list of \ -man-db entries..." - count total) - (force-output) - (let ((man (string-append directory - "/share/man"))) - (if (directory-exists? man) - (mandb-entries man) - '()))) - inputs - (iota total 1)))) + ;; Cap at 4 threads because we don't see any speedup beyond that + ;; on an SSD laptop. + (let* ((inputs '#$(manifest-inputs manifest)) + (total (length inputs)) + (threads (min (parallel-job-count) 4))) + (concatenate + (n-par-map threads compute-entry inputs + (iota total 1) + (make-list total total))))) (define man-directory (string-append #$output "/share/man")) diff --git a/guix/records.scm b/guix/records.scm index 4bda5426a3..3d54a51956 100644 --- a/guix/records.scm +++ b/guix/records.scm @@ -24,6 +24,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 rdelim) + #:autoload (system base target) (target-most-positive-fixnum) #:export (define-record-type* this-record @@ -360,7 +361,9 @@ inherited." (((field get properties ...) ...) (string-hash (object->string (syntax->datum #'((field properties ...) ...))) - most-positive-fixnum)))) + (cond-expand + (guile-3 (target-most-positive-fixnum)) + (else most-positive-fixnum)))))) (syntax-case s () ((_ type syntactic-ctor ctor pred diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index a4b38735a7..4f72304e57 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1128,4 +1128,5 @@ to your package list."))) gc-root)) (return (format #t "~a~%" (derivation->output-path drv)))))) + #:target target #:system (assoc-ref opts 'system))))))))) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 304084796a..b2b734aadd 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -197,6 +197,10 @@ non-zero relevance score." (define (transaction-upgrade-entry store entry transaction) "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a <manifest-entry>." + (define (lower-manifest-entry* entry) + (run-with-store store + (lower-manifest-entry entry (%current-system)))) + (define (supersede old new) (info (G_ "package '~a' has been superseded by '~a'~%") (manifest-entry-name old) (package-name new)) @@ -209,40 +213,44 @@ non-zero relevance score." (output (manifest-entry-output old))) transaction))) - (match (if (manifest-transaction-removal-candidate? entry transaction) - 'dismiss - entry) - ('dismiss - transaction) - (($ <manifest-entry> name version output (? string? path)) - (match (find-best-packages-by-name name #f) - ((pkg . rest) - (let ((candidate-version (package-version pkg))) - (match (package-superseded pkg) - ((? package? new) - (supersede entry new)) - (#f - (case (version-compare candidate-version version) - ((>) - (manifest-transaction-install-entry - (package->manifest-entry* pkg output) - transaction)) - ((<) - transaction) - ((=) - (let ((candidate-path (derivation->output-path - (package-derivation store pkg)))) - ;; XXX: When there are propagated inputs, assume we need to - ;; upgrade the whole entry. - (if (and (string=? path candidate-path) - (null? (package-propagated-inputs pkg))) - transaction - (manifest-transaction-install-entry - (package->manifest-entry* pkg output) - transaction))))))))) - (() - (warning (G_ "package '~a' no longer exists~%") name) - transaction))))) + (define (upgrade entry) + (match entry + (($ <manifest-entry> name version output (? string? path)) + (match (find-best-packages-by-name name #f) + ((pkg . rest) + (let ((candidate-version (package-version pkg))) + (match (package-superseded pkg) + ((? package? new) + (supersede entry new)) + (#f + (case (version-compare candidate-version version) + ((>) + (manifest-transaction-install-entry + (package->manifest-entry* pkg output) + transaction)) + ((<) + transaction) + ((=) + (let* ((new (package->manifest-entry* pkg output))) + ;; Here we want to determine whether the NEW actually + ;; differs from ENTRY, but we need to intercept + ;; 'build-things' calls because they would prevent us from + ;; displaying the list of packages to install/upgrade + ;; upfront. Thus, if lowering NEW triggers a build (due + ;; to grafts), assume NEW differs from ENTRY. + (if (with-build-handler (const #f) + (manifest-entry=? (lower-manifest-entry* new) + entry)) + transaction + (manifest-transaction-install-entry + new transaction))))))))) + (() + (warning (G_ "package '~a' no longer exists~%") name) + transaction))))) + + (if (manifest-transaction-removal-candidate? entry transaction) + transaction + (upgrade entry))) ;;; diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index a178761203..2664c66a30 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -258,7 +258,7 @@ expression in %STORE-MONAD." (lambda () (guard (c ((shepherd-error? c) (values (report-shepherd-error c) store))) - (values (run-with-store store (begin mbody ...)) + (values (run-with-store store (mbegin %store-monad mbody ...)) store))) (lambda (key proc format-string format-args errno . rest) (warning (G_ "while talking to shepherd: ~a~%") @@ -290,22 +290,6 @@ on service '~a':~%") ((not error) ;not an error #t))) -(define (call-with-service-upgrade-info new-services mproc) - "Call MPROC, a monadic procedure in %STORE-MONAD, passing it the list of -names of services to load (upgrade), and the list of names of services to -unload." - (match (current-services) - ((services ...) - (let-values (((to-unload to-restart) - (shepherd-service-upgrade services new-services))) - (mproc to-restart - (map (compose first live-service-provision) - to-unload)))) - (#f - (with-monad %store-monad - (warning (G_ "failed to obtain list of shepherd services~%")) - (return #f))))) - (define-syntax-rule (unless-file-not-found exp) (catch 'system-error (lambda () @@ -825,10 +809,10 @@ static checks." ;; For 'init' and 'reconfigure', always build BOOTCFG, even if ;; --no-bootloader is passed, because we then use it as a GC root. ;; See <http://bugs.gnu.org/21068>. - (drvs (mapm %store-monad lower-object - (if (memq action '(init reconfigure)) - (list sys bootcfg) - (list sys)))) + (drvs (mapm/accumulate-builds lower-object + (if (memq action '(init reconfigure)) + (list sys bootcfg) + (list sys)))) (% (if derivations-only? (return (for-each (compose println derivation-file-name) drvs)) @@ -853,7 +837,10 @@ static checks." (info (G_ "bootloader successfully installed on '~a'~%") (bootloader-configuration-target bootloader)))) (with-shepherd-error-handling - (upgrade-shepherd-services local-eval os)))) + (upgrade-shepherd-services local-eval os) + (return (format #t (G_ "\ +To complete the upgrade, run 'herd restart SERVICE' to stop, +upgrade, and restart each service that was not automatically restarted.\n")))))) ((init) (newline) (format #t (G_ "initializing operating system under '~a'...~%") @@ -1294,7 +1281,6 @@ argument list and OPTS is the option alist." (process-command command args opts)))))) ;;; Local Variables: -;;; eval: (put 'call-with-service-upgrade-info 'scheme-indent-function 1) ;;; eval: (put 'with-store* 'scheme-indent-function 1) ;;; End: diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm index 77a72307b4..7885c33457 100644 --- a/guix/scripts/system/reconfigure.scm +++ b/guix/scripts/system/reconfigure.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> @@ -33,6 +33,7 @@ #:use-module (guix modules) #:use-module (guix monads) #:use-module (guix store) + #:use-module ((guix self) #:select (make-config.scm)) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) @@ -60,6 +61,14 @@ ;;; Profile creation. ;;; +(define not-config? + ;; Select (guix …) and (gnu …) modules, except (guix config). + (match-lambda + (('guix 'config) #f) + (('guix rest ...) #t) + (('gnu rest ...) #t) + (_ #f))) + (define* (switch-system-program os #:optional profile) "Return an executable store item that, upon being evaluated, will create a new generation of PROFILE pointing to the directory of OS, switch to it @@ -67,9 +76,11 @@ atomically, and run OS's activation script." (program-file "switch-to-system.scm" (with-extensions (list guile-gcrypt) - (with-imported-modules (source-module-closure '((guix config) - (guix profiles) - (guix utils))) + (with-imported-modules `(,@(source-module-closure + '((guix profiles) + (guix utils)) + #:select? not-config?) + ((guix config) => ,(make-config.scm))) #~(begin (use-modules (guix config) (guix profiles) @@ -89,7 +100,8 @@ atomically, and run OS's activation script." "Using EVAL, a monadic procedure taking a single G-Expression as an argument, create a new generation of PROFILE pointing to the directory of OS, switch to it atomically, and run OS's activation script." - (eval #~(primitive-load #$(switch-system-program os profile)))) + (eval #~(parameterize ((current-warning-port (%make-void-port "w"))) + (primitive-load #$(switch-system-program os profile))))) ;;; @@ -165,10 +177,11 @@ services as defined by OS." (map live-service-canonical-name live-services))) (service-files (map shepherd-service-file target-services))) - (eval #~(primitive-load #$(upgrade-services-program service-files - to-start - to-unload - to-restart))))))) + (eval #~(parameterize ((current-warning-port (%make-void-port "w"))) + (primitive-load #$(upgrade-services-program service-files + to-start + to-unload + to-restart)))))))) ;;; @@ -184,10 +197,13 @@ BOOTLOADER-PACKAGE." (program-file "install-bootloader.scm" (with-extensions (list guile-gcrypt) - (with-imported-modules (source-module-closure '((gnu build bootloader) - (gnu build install) - (guix store) - (guix utils))) + (with-imported-modules `(,@(source-module-closure + '((gnu build bootloader) + (gnu build install) + (guix store) + (guix utils)) + #:select? not-config?) + ((guix config) => ,(make-config.scm))) #~(begin (use-modules (gnu build bootloader) (gnu build install) @@ -195,8 +211,10 @@ BOOTLOADER-PACKAGE." (guix store) (guix utils) (ice-9 binary-ports) + (ice-9 match) (srfi srfi-34) (srfi srfi-35)) + (let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg")) (new-gc-root (string-append gc-root ".new"))) ;; #$bootcfg has dependencies. @@ -218,7 +236,11 @@ BOOTLOADER-PACKAGE." (#$installer #$bootloader-package #$device #$target)) (lambda args (delete-file new-gc-root) - (apply throw args)))) + (match args + (('%exception exception) ;Guile 3 SRFI-34 or similar + (raise-exception exception)) + ((key . args) + (apply throw key args)))))) ;; We are sure that the installation of the bootloader ;; succeeded, so we can replace the old GC root by the new ;; GC root now. @@ -237,9 +259,10 @@ additional configurations specified by MENU-ENTRIES can be selected." (package (bootloader-package bootloader)) (device (bootloader-configuration-target configuration)) (bootcfg-file (bootloader-configuration-file bootloader))) - (eval #~(primitive-load #$(install-bootloader-program installer - package - bootcfg - bootcfg-file - device - target))))) + (eval #~(parameterize ((current-warning-port (%make-void-port "w"))) + (primitive-load #$(install-bootloader-program installer + package + bootcfg + bootcfg-file + device + target)))))) diff --git a/guix/store.scm b/guix/store.scm index 12f66d0e71..6c7c07fd2d 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -624,14 +624,25 @@ connection. Use with care." (define (call-with-store proc) "Call PROC with an open store connection." (let ((store (open-connection))) - (dynamic-wind - (const #f) - (lambda () - (parameterize ((current-store-protocol-version - (store-connection-version store))) - (proc store))) - (lambda () - (false-if-exception (close-connection store)))))) + (define (thunk) + (parameterize ((current-store-protocol-version + (store-connection-version store))) + (let ((result (proc store))) + (close-connection store) + result))) + + (cond-expand + (guile-3 + (with-exception-handler (lambda (exception) + (close-connection store) + (raise-exception exception)) + thunk)) + (else ;Guile 2.2 + (catch #t + thunk + (lambda (key . args) + (close-connection store) + (apply throw key args))))))) (define-syntax-rule (with-store store exp ...) "Bind STORE to an open connection to the store and evaluate EXPs; diff --git a/guix/ui.scm b/guix/ui.scm index 1e24fe5dca..1ccc80a000 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1164,7 +1164,7 @@ separator between subsequent columns." names outputs) (map (lambda (old new) (if (string=? old new) - (G_ "(dependencies changed)") + (G_ "(dependencies or package changed)") (string-append old " " → " " new))) old-version new-version)) #:initial-indent 3)) diff --git a/po/guix/LINGUAS b/po/guix/LINGUAS index c3f7c4f0e8..935d03a4b9 100644 --- a/po/guix/LINGUAS +++ b/po/guix/LINGUAS @@ -13,5 +13,6 @@ pl pt_BR sr sv +ta vi zh_CN diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 9c492997cf..62b3cbf4e4 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -16,6 +16,7 @@ gnu/installer/locale.scm gnu/installer/newt.scm gnu/installer/newt/ethernet.scm gnu/installer/newt/final.scm +gnu/installer/newt/parameters.scm gnu/installer/newt/hostname.scm gnu/installer/newt/keymap.scm gnu/installer/newt/locale.scm @@ -30,6 +31,7 @@ gnu/installer/newt/utils.scm gnu/installer/newt/welcome.scm gnu/installer/newt/wifi.scm gnu/installer/parted.scm +gnu/installer/proxy.scm gnu/installer/record.scm gnu/installer/services.scm gnu/installer/steps.scm diff --git a/po/guix/ta.po b/po/guix/ta.po new file mode 100644 index 0000000000..9683ae0789 --- /dev/null +++ b/po/guix/ta.po @@ -0,0 +1,4957 @@ +# Tamil messages for GNU Guix +# Copyright (C) 2020 the authors of Guix (msgids) +# This file is distributed under the same license as the guix package. +# List of contributors follow: +# Arun Isaac <arunisaac@systemreboot.net>, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: guix 1.1.0-pre1\n" +"Report-Msgid-Bugs-To: ludo@gnu.org\n" +"POT-Creation-Date: 2020-02-12 00:13+0100\n" +"PO-Revision-Date: 2020-04-02 17:22+0530\n" +"Last-Translator: Arun Isaac <arunisaac@systemreboot.net>\n" +"Language-Team: Tamil <tamil@systemreboot.net>\n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: gnu.scm:83 +#, scheme-format +msgid "module ~a not found" +msgstr "~a நிரல்கூறு கிடைக்கவில்லை" + +#: gnu.scm:101 +msgid "" +"You may use @command{guix package --show=foo | grep location} to search\n" +"for the location of package @code{foo}.\n" +"If you get the line @code{location: gnu/packages/bar.scm:174:2},\n" +"add @code{bar} to the @code{use-package-modules} form." +msgstr "" +"@code{foo} மென்பொருள் தொகுப்பின் இருப்பிடத்திற்குத் தேட\n" +"@command{guix package --show=foo | grep location} என்ற கட்டளையைப் பயன்படுத்தலாம்.\n" +"@code{location: gnu/packages/bar.scm:174:2} எனக் கிடைத்தால்,\n" +"@code{bar} யை @code{use-package-modules} யில் சேர்க்க." + +#: gnu.scm:109 +#, scheme-format +msgid "Try adding @code{(use-package-modules ~a)}." +msgstr "@code{(use-package-modules ~a)} சேர்த்துப் பார்க்க." + +#: gnu.scm:124 +#, scheme-format +msgid "" +"You may use @command{guix system search ~a} to search for a service\n" +"matching @code{~a}.\n" +"If you get the line @code{location: gnu/services/foo.scm:188:2},\n" +"add @code{foo} to the @code{use-service-modules} form." +msgstr "" +"@code{~*~a} க்குப் பொருந்தும் பணிக்குத் தேட @command{guix system search ~2:*~a} என்ற கட்டளையைப் பயன்படுத்தலாம்.\n" +"@code{location: gnu/services/foo.scm:188:2} எனக் கிடைத்தால்,\n" +"@code{foo} யை @code{use-service-modules} யில் சேர்க்க." + +#: gnu.scm:133 +#, scheme-format +msgid "Try adding @code{(use-service-modules ~a)}." +msgstr "@code{(use-service-modules ~a)} சேர்த்துப் பார்க்க." + +#: gnu/packages.scm:96 +#, scheme-format +msgid "~a: patch not found" +msgstr "~a: திருத்தம் கிடைக்கவில்லை" + +#: gnu/packages.scm:460 gnu/packages.scm:501 +#, scheme-format +msgid "ambiguous package specification `~a'~%" +msgstr "தெளிவற்ற மென்பொருள் தொகுப்பு குறிப்பு `~a'~%" + +#: gnu/packages.scm:461 gnu/packages.scm:502 +#, scheme-format +msgid "choosing ~a@~a from ~a~%" +msgstr "~a@~a யிலிருந்து ~a~% யைத் தேர்ந்தெடுக்கப்பட்டது" + +#: gnu/packages.scm:466 guix/scripts/package.scm:211 +#, scheme-format +msgid "package '~a' has been superseded by '~a'~%" +msgstr "'~a' மென்பொருள் தொகுப்பு '~a' ஆல் மாற்றாக்கப்பட்டது~%" + +#: gnu/packages.scm:473 gnu/packages.scm:490 +#, scheme-format +msgid "~A: package not found for version ~a~%" +msgstr "~A: பதிப்பு ~a க்கு மென்பொருள் தொகுப்பு கிடைக்கவில்லை" + +#: gnu/packages.scm:474 gnu/packages.scm:491 +#, scheme-format +msgid "~A: unknown package~%" +msgstr "~A: அறியப்படா மென்பொருள் தொகுப்பு~%" + +#: gnu/packages.scm:530 +#, scheme-format +msgid "package `~a' lacks output `~a'~%" +msgstr "`~a' மென்பொருள் தொகுப்பிற்கு `~a' என்ற வெளியீடில்லை~%" + +#: gnu/services.scm:242 +#, scheme-format +msgid "~a: no value specified for service of type '~a'" +msgstr "" + +#: gnu/services.scm:340 +msgid "" +"Build the operating system top-level directory, which in\n" +"turn refers to everything the operating system needs: its kernel, initrd,\n" +"system profile, boot script, and so on." +msgstr "" + +#: gnu/services.scm:370 +msgid "" +"Produce the operating system's boot script, which is spawned\n" +"by the initrd once the root file system is mounted." +msgstr "" + +#: gnu/services.scm:451 +msgid "" +"Store provenance information about the system in the system\n" +"itself: the channels used when building the system, and its configuration\n" +"file, when available." +msgstr "" + +#: gnu/services.scm:509 +msgid "" +"Delete files from @file{/tmp}, @file{/var/run}, and other\n" +"temporary locations at boot time." +msgstr "" + +#: gnu/services.scm:563 +msgid "" +"Run @dfn{activation} code at boot time and upon\n" +"@command{guix system reconfigure} completion." +msgstr "" + +#: gnu/services.scm:614 +msgid "" +"Add special files to the root file system---e.g.,\n" +"@file{/usr/bin/env}." +msgstr "" + +#: gnu/services.scm:650 +msgid "Populate the @file{/etc} directory." +msgstr "@file{/etc} அடைவின் உள்ளடக்கத்தை அமை." + +#: gnu/services.scm:667 +msgid "" +"Populate @file{/run/setuid-programs} with the specified\n" +"executables, making them setuid-root." +msgstr "" + +#: gnu/services.scm:687 +msgid "" +"This is the @dfn{system profile}, available as\n" +"@file{/run/current-system/profile}. It contains packages that the sysadmin\n" +"wants to be globally available to all the system users." +msgstr "" + +#: gnu/services.scm:707 +msgid "" +"Make ``firmware'' files loadable by the operating system\n" +"kernel. Firmware may then be uploaded to some of the machine's devices, such\n" +"as Wifi cards." +msgstr "" + +#: gnu/services.scm:738 +msgid "" +"Register garbage-collector roots---i.e., store items that\n" +"will not be reclaimed by the garbage collector." +msgstr "" + +#: gnu/services.scm:764 +#, scheme-format +msgid "no target of type '~a' for service '~a'" +msgstr "" + +#: gnu/services.scm:790 gnu/services.scm:909 +#, scheme-format +msgid "more than one target service of type '~a'" +msgstr "ஒன்றிற்கு மேலான '~a' வகைப் பணி" + +#: gnu/services.scm:899 +#, scheme-format +msgid "service of type '~a' not found" +msgstr "'~a' வகைப் பணி கிடைக்கவில்லை" + +#: gnu/system.scm:347 +#, scheme-format +msgid "unrecognized boot parameters at '~a'~%" +msgstr "" + +#: gnu/system.scm:772 +#, scheme-format +msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" +msgstr "'~a' கோப்பிற்கு வரியுருத்தொடரைப் பயன்படுத்துவது வழக்கொழிந்தது; அதற்குப் பதிலாக 'plain-file' யைப் பயன்படுத்துக~%" + +#: gnu/system.scm:788 +#, scheme-format +msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" +msgstr "" + +#: gnu/system.scm:938 +#, scheme-format +msgid "~a: invalid locale name" +msgstr "" + +#: gnu/services/shepherd.scm:194 +#, scheme-format +msgid "service '~a' provided more than once" +msgstr "'~a' பணி ஒரு முறைக்கு மேலாக வழங்கப்பட்டிருக்கிறது" + +#: gnu/services/shepherd.scm:209 +#, scheme-format +msgid "service '~a' requires '~a', which is not provided by any service" +msgstr "'~a' பணிக்கு எந்த பணியினாலும் வழங்கப்படாத '~a' தேவை" + +#: gnu/system/mapped-devices.scm:136 +#, scheme-format +msgid "you may need these modules in the initrd for ~a:~{ ~a~}" +msgstr "" + +#: gnu/system/mapped-devices.scm:140 +#, scheme-format +msgid "" +"Try adding them to the\n" +"@code{initrd-modules} field of your @code{operating-system} declaration, along\n" +"these lines:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" +"\n" +"If you think this diagnostic is inaccurate, use the @option{--skip-checks}\n" +"option of @command{guix system}.\n" +msgstr "" + +#: gnu/system/mapped-devices.scm:219 +#, scheme-format +msgid "no LUKS partition with UUID '~a'" +msgstr "" + +#: gnu/system/shadow.scm:236 +#, scheme-format +msgid "supplementary group '~a' of user '~a' is undeclared" +msgstr "" + +#: gnu/system/shadow.scm:246 +#, scheme-format +msgid "primary group '~a' of user '~a' is undeclared" +msgstr "" + +#: guix/import/opam.scm:141 +#, scheme-format +msgid "Package not found in opam repository: ~a~%" +msgstr "" + +#: guix/import/opam.scm:357 +msgid "Updater for OPAM packages" +msgstr "" + +#: gnu/installer.scm:194 +msgid "Locale" +msgstr "" + +#: gnu/installer.scm:210 gnu/installer/newt/timezone.scm:58 +msgid "Timezone" +msgstr "நேரவலயம்" + +#: gnu/installer.scm:226 +msgid "Keyboard mapping selection" +msgstr "" + +#: gnu/installer.scm:234 gnu/installer/newt/hostname.scm:26 +msgid "Hostname" +msgstr "" + +#: gnu/installer.scm:243 +msgid "Network selection" +msgstr "" + +#: gnu/installer.scm:250 gnu/installer/newt/user.scm:67 +#: gnu/installer/newt/user.scm:203 +msgid "User creation" +msgstr "பயனர் ஆக்கம்" + +#: gnu/installer.scm:258 +msgid "Services" +msgstr "பணிகள்" + +#: gnu/installer.scm:269 +msgid "Partitioning" +msgstr "" + +#: gnu/installer.scm:276 gnu/installer/newt/final.scm:51 +msgid "Configuration file" +msgstr "அமைவடிவக்கோப்பு" + +#: gnu/installer/connman.scm:196 +msgid "Could not determine the state of connman." +msgstr "" + +#: gnu/installer/connman.scm:322 +msgid "Unable to find expected regexp." +msgstr "" + +#: gnu/installer/newt.scm:60 +#, scheme-format +msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>." +msgstr "" + +#: gnu/installer/newt.scm:63 +msgid "Unexpected problem" +msgstr "" + +#: gnu/installer/newt/ethernet.scm:66 +msgid "No ethernet service available, please try again." +msgstr "" + +#: gnu/installer/newt/ethernet.scm:67 +msgid "No service" +msgstr "" + +#: gnu/installer/newt/ethernet.scm:76 +msgid "Please select an ethernet network." +msgstr "" + +#: gnu/installer/newt/ethernet.scm:77 +msgid "Ethernet connection" +msgstr "" + +#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:44 +#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63 +#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:177 +#: gnu/installer/newt/page.scm:510 gnu/installer/newt/page.scm:580 +#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84 +#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127 +#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645 +#: gnu/installer/newt/partition.scm:685 gnu/installer/newt/partition.scm:736 +#: gnu/installer/newt/partition.scm:747 gnu/installer/newt/services.scm:85 +#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:202 +#: gnu/installer/newt/wifi.scm:205 +msgid "Exit" +msgstr "வெளியேறு" + +#: gnu/installer/newt/final.scm:44 +#, scheme-format +msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below. This file will be available as '~a' on the installed system. The new system will be created from this file once you've pressed OK. This will take a few minutes." +msgstr "" + +#: gnu/installer/newt/final.scm:66 +msgid "Installation complete" +msgstr "நிறுவல் முடிந்தது" + +#: gnu/installer/newt/final.scm:67 gnu/installer/newt/welcome.scm:115 +msgid "Reboot" +msgstr "" + +#: gnu/installer/newt/final.scm:68 +msgid "Congratulations! Installation is now complete. You may remove the device containing the installation image and press the button to reboot." +msgstr "" + +#: gnu/installer/newt/final.scm:77 +msgid "Installation failed" +msgstr "நிறுவல் தோல்வியுற்றது" + +#: gnu/installer/newt/final.scm:78 +msgid "Restart installer" +msgstr "" + +#: gnu/installer/newt/final.scm:79 +msgid "Retry system install" +msgstr "" + +#: gnu/installer/newt/final.scm:80 +msgid "The final system installation step failed. You can retry the last step, or restart the installer." +msgstr "" + +#: gnu/installer/newt/hostname.scm:25 +msgid "Please enter the system hostname." +msgstr "" + +#: gnu/installer/newt/keymap.scm:37 +msgid "Layout" +msgstr "" + +#: gnu/installer/newt/keymap.scm:40 +msgid "Please choose your keyboard layout." +msgstr "" + +#: gnu/installer/newt/keymap.scm:52 +msgid "Variant" +msgstr "" + +#: gnu/installer/newt/keymap.scm:55 +msgid "Please choose a variant for your keyboard layout." +msgstr "" + +#: gnu/installer/newt/keymap.scm:59 gnu/installer/newt/locale.scm:63 +#: gnu/installer/newt/locale.scm:78 gnu/installer/newt/locale.scm:94 +#: gnu/installer/newt/partition.scm:581 gnu/installer/newt/timezone.scm:64 +msgid "Back" +msgstr "பின்" + +#: gnu/installer/newt/locale.scm:36 +msgid "Locale language" +msgstr "" + +#: gnu/installer/newt/locale.scm:37 +msgid "Choose the language to use for the installation process and for the installed system." +msgstr "" + +#: gnu/installer/newt/locale.scm:57 +msgid "Locale location" +msgstr "" + +#: gnu/installer/newt/locale.scm:60 +msgid "Choose a territory for this language." +msgstr "" + +#: gnu/installer/newt/locale.scm:71 +msgid "Locale codeset" +msgstr "" + +#: gnu/installer/newt/locale.scm:74 +msgid "Choose the locale encoding." +msgstr "" + +#: gnu/installer/newt/locale.scm:86 +msgid "Locale modifier" +msgstr "" + +#: gnu/installer/newt/locale.scm:89 +msgid "Choose your locale's modifier. The most frequent modifier is euro. It indicates that you want to use Euro as the currency symbol." +msgstr "" + +#: gnu/installer/newt/locale.scm:190 +msgid "No location" +msgstr "" + +#: gnu/installer/newt/locale.scm:217 +msgid "No modifier" +msgstr "" + +#: gnu/installer/newt/menu.scm:35 +msgid "Choose where you want to resume the install. You can also abort the installation by pressing the Abort button." +msgstr "" + +#: gnu/installer/newt/menu.scm:37 +msgid "Installation menu" +msgstr "" + +#: gnu/installer/newt/menu.scm:41 +msgid "Abort" +msgstr "நிறுத்து" + +#: gnu/installer/newt/network.scm:61 gnu/installer/newt/network.scm:80 +msgid "Internet access" +msgstr "" + +#: gnu/installer/newt/network.scm:62 gnu/installer/newt/page.scm:176 +msgid "Continue" +msgstr "தொடர்" + +#: gnu/installer/newt/network.scm:64 +msgid "The install process requires Internet access but no network devices were found. Do you want to continue anyway?" +msgstr "" + +#: gnu/installer/newt/network.scm:78 +msgid "The install process requires Internet access. Please select a network device." +msgstr "" + +#: gnu/installer/newt/network.scm:103 +msgid "Powering technology" +msgstr "" + +#: gnu/installer/newt/network.scm:104 +#, scheme-format +msgid "Waiting for technology ~a to be powered." +msgstr "" + +#: gnu/installer/newt/network.scm:124 +msgid "Checking connectivity" +msgstr "" + +#: gnu/installer/newt/network.scm:125 +msgid "Waiting for Internet access establishment..." +msgstr "" + +#: gnu/installer/newt/network.scm:135 +msgid "The selected network does not provide access to the Internet, please try again." +msgstr "" + +#: gnu/installer/newt/network.scm:137 gnu/installer/newt/wifi.scm:108 +msgid "Connection error" +msgstr "" + +#: gnu/installer/newt/page.scm:72 +#, scheme-format +msgid "Connecting to ~a, please wait." +msgstr "" + +#: gnu/installer/newt/page.scm:73 +msgid "Connection in progress" +msgstr "" + +#: gnu/installer/newt/page.scm:92 gnu/installer/newt/user.scm:59 +msgid "Show" +msgstr "காட்டு" + +#: gnu/installer/newt/page.scm:99 gnu/installer/newt/page.scm:509 +#: gnu/installer/newt/page.scm:579 gnu/installer/newt/partition.scm:444 +#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644 +#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:65 +#: gnu/installer/newt/user.scm:201 +msgid "OK" +msgstr "சரி" + +#: gnu/installer/newt/page.scm:125 +msgid "Please enter a non empty input." +msgstr "" + +#: gnu/installer/newt/page.scm:126 gnu/installer/newt/user.scm:121 +msgid "Empty input" +msgstr "" + +#: gnu/installer/newt/page.scm:582 +msgid "Edit" +msgstr "திருத்து" + +#: gnu/installer/newt/partition.scm:46 +msgid "Everything is one partition" +msgstr "எல்லாம் ஒரே வகிர்வில்" + +#: gnu/installer/newt/partition.scm:47 +msgid "Separate /home partition" +msgstr "தனி /home வகிர்வு" + +#: gnu/installer/newt/partition.scm:49 +msgid "Please select a partitioning scheme." +msgstr "வகிர்வுத் திட்டத்தைத் தேர்ந்தெடுக்க." + +#: gnu/installer/newt/partition.scm:50 +msgid "Partition scheme" +msgstr "வகிர்வுத் திட்டம்" + +#: gnu/installer/newt/partition.scm:62 +msgid "We are about to format your hard disk. All its data will be lost. Do you wish to continue?" +msgstr "" + +#: gnu/installer/newt/partition.scm:64 +msgid "Format disk?" +msgstr "" + +#: gnu/installer/newt/partition.scm:67 +msgid "Partition formatting is in progress, please wait." +msgstr "" + +#: gnu/installer/newt/partition.scm:68 +msgid "Preparing partitions" +msgstr "" + +#: gnu/installer/newt/partition.scm:79 +msgid "Please select a disk." +msgstr "வட்டைத் தேர்ந்தெடுக்க." + +#: gnu/installer/newt/partition.scm:80 +msgid "Disk" +msgstr "வட்டு" + +#: gnu/installer/newt/partition.scm:92 +msgid "Select a new partition table type. Be careful, all data on the disk will be lost." +msgstr "" + +#: gnu/installer/newt/partition.scm:94 +msgid "Partition table" +msgstr "" + +#: gnu/installer/newt/partition.scm:111 +msgid "Please select a partition type." +msgstr "வகிர்வு வகையைத் தேர்ந்தெடுக்க." + +#: gnu/installer/newt/partition.scm:112 +msgid "Partition type" +msgstr "வகிர்வு வகை" + +#: gnu/installer/newt/partition.scm:122 +msgid "Please select the file-system type for this partition." +msgstr "இவ்வகிர்வுக்கு கோப்பமைப்பைத் தேர்ந்தெடுக்க." + +#: gnu/installer/newt/partition.scm:123 +msgid "File-system type" +msgstr "கோப்பமைப்பு" + +#: gnu/installer/newt/partition.scm:136 +msgid "Primary partitions count exceeded." +msgstr "" + +#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142 +#: gnu/installer/newt/partition.scm:147 +msgid "Creation error" +msgstr "" + +#: gnu/installer/newt/partition.scm:141 +msgid "Extended partition creation error." +msgstr "" + +#: gnu/installer/newt/partition.scm:146 +msgid "Logical partition creation error." +msgstr "" + +#: gnu/installer/newt/partition.scm:160 +#, scheme-format +msgid "Please enter the password for the encryption of partition ~a (label: ~a)." +msgstr "" + +#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92 +msgid "Password required" +msgstr "கடவுச்சொல் தேவை" + +#: gnu/installer/newt/partition.scm:167 +#, scheme-format +msgid "Please confirm the password for the encryption of partition ~a (label: ~a)." +msgstr "" + +#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:158 +msgid "Password confirmation required" +msgstr "" + +#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:166 +msgid "Password mismatch, please try again." +msgstr "" + +#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:167 +msgid "Password error" +msgstr "" + +#: gnu/installer/newt/partition.scm:268 +msgid "Please enter the partition gpt name." +msgstr "" + +#: gnu/installer/newt/partition.scm:269 +msgid "Partition name" +msgstr "வகிர்வு பெயர்" + +#: gnu/installer/newt/partition.scm:299 +msgid "Please enter the encrypted label" +msgstr "" + +#: gnu/installer/newt/partition.scm:300 +msgid "Encryption label" +msgstr "" + +#: gnu/installer/newt/partition.scm:317 +#, scheme-format +msgid "Please enter the size of the partition. The maximum size is ~a." +msgstr "" + +#: gnu/installer/newt/partition.scm:319 +msgid "Partition size" +msgstr "வகிர்வளவு" + +#: gnu/installer/newt/partition.scm:337 +msgid "The percentage can not be superior to 100." +msgstr "விழுக்காடு 100 க்கு மேல் இருக்க முடியாது." + +#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343 +#: gnu/installer/newt/partition.scm:348 +msgid "Size error" +msgstr "" + +#: gnu/installer/newt/partition.scm:342 +msgid "The requested size is incorrectly formatted, or too large." +msgstr "" + +#: gnu/installer/newt/partition.scm:347 +msgid "The request size is superior to the maximum size." +msgstr "" + +#: gnu/installer/newt/partition.scm:367 +msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point." +msgstr "" + +#: gnu/installer/newt/partition.scm:369 +msgid "Mounting point" +msgstr "" + +#: gnu/installer/newt/partition.scm:433 +#, scheme-format +msgid "Creating ~a partition starting at ~a of ~a." +msgstr "" + +#: gnu/installer/newt/partition.scm:435 +#, scheme-format +msgid "You are currently editing partition ~a." +msgstr "" + +#: gnu/installer/newt/partition.scm:438 +msgid "Partition creation" +msgstr "" + +#: gnu/installer/newt/partition.scm:439 +msgid "Partition edit" +msgstr "" + +#: gnu/installer/newt/partition.scm:620 +#, scheme-format +msgid "Are you sure you want to delete everything on disk ~a?" +msgstr "" + +#: gnu/installer/newt/partition.scm:622 +msgid "Delete disk" +msgstr "" + +#: gnu/installer/newt/partition.scm:636 +msgid "You cannot delete a free space area." +msgstr "" + +#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643 +msgid "Delete partition" +msgstr "" + +#: gnu/installer/newt/partition.scm:641 +#, scheme-format +msgid "Are you sure you want to delete partition ~a?" +msgstr "" + +#: gnu/installer/newt/partition.scm:658 +msgid "" +"You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n" +"\n" +"At least one partition must have its mounting point set to '/'." +msgstr "" + +#: gnu/installer/newt/partition.scm:664 +#, scheme-format +msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%" +msgstr "" + +#: gnu/installer/newt/partition.scm:674 +msgid "Guided partitioning" +msgstr "" + +#: gnu/installer/newt/partition.scm:675 +msgid "Manual partitioning" +msgstr "" + +#: gnu/installer/newt/partition.scm:694 +msgid "No root mount point found." +msgstr "" + +#: gnu/installer/newt/partition.scm:695 +msgid "Missing mount point" +msgstr "" + +#: gnu/installer/newt/partition.scm:726 +msgid "Guided - using the entire disk" +msgstr "" + +#: gnu/installer/newt/partition.scm:727 +msgid "Guided - using the entire disk with encryption" +msgstr "" + +#: gnu/installer/newt/partition.scm:728 +msgid "Manual" +msgstr "" + +#: gnu/installer/newt/partition.scm:730 +msgid "Please select a partitioning method." +msgstr "வகிர்வமைத்தல் முறையைத் தேர்ந்தெடுக்க." + +#: gnu/installer/newt/partition.scm:731 +msgid "Partitioning method" +msgstr "வகிர்வமைத்தல் முறை" + +#: gnu/installer/newt/services.scm:36 +msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen." +msgstr "" + +#: gnu/installer/newt/services.scm:39 +msgid "Desktop environment" +msgstr "" + +#: gnu/installer/newt/services.scm:56 +msgid "You can now select networking services to run on your system." +msgstr "" + +#: gnu/installer/newt/services.scm:58 +msgid "Network service" +msgstr "" + +#: gnu/installer/newt/services.scm:71 +msgid "Network management" +msgstr "" + +#: gnu/installer/newt/services.scm:74 +msgid "" +"Choose the method to manage network connections.\n" +"\n" +"We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP client may be enough for a server." +msgstr "" + +#: gnu/installer/newt/timezone.scm:59 +msgid "Please select a timezone." +msgstr "" + +#: gnu/installer/newt/user.scm:44 +msgid "Name" +msgstr "பெயர்" + +#: gnu/installer/newt/user.scm:46 +msgid "Real name" +msgstr "முழுப் பெயர்" + +#: gnu/installer/newt/user.scm:48 +msgid "Home directory" +msgstr "மனை அடைவு" + +#: gnu/installer/newt/user.scm:50 +msgid "Password" +msgstr "கடவுச்சொல்" + +#: gnu/installer/newt/user.scm:120 +msgid "Empty inputs are not allowed." +msgstr "" + +#: gnu/installer/newt/user.scm:157 +msgid "Please confirm the password." +msgstr "கடவுச்சொல்லை உறுதி செய்க." + +#. TRANSLATORS: Leave "root" untranslated: it refers to the name of the +#. system administrator account. +#: gnu/installer/newt/user.scm:174 +msgid "Please choose a password for the system administrator (\"root\")." +msgstr "மேலாண்மையர் (root) கடவுச்சொல்லைத் தேர்ந்தெடுக்க." + +#: gnu/installer/newt/user.scm:176 +msgid "System administrator password" +msgstr "மேலாண்மையர் கடவுச்சொல்" + +#: gnu/installer/newt/user.scm:189 +msgid "Please add at least one user to system using the 'Add' button." +msgstr "" + +#: gnu/installer/newt/user.scm:192 +msgid "Add" +msgstr "சேர்" + +#: gnu/installer/newt/user.scm:193 +msgid "Delete" +msgstr "நீக்கு" + +#: gnu/installer/newt/user.scm:252 +msgid "Please create at least one user." +msgstr "" + +#: gnu/installer/newt/user.scm:253 +msgid "No user" +msgstr "" + +#: gnu/installer/newt/welcome.scm:95 +msgid "GNU Guix install" +msgstr "GNU Guix நிறுவல்" + +#: gnu/installer/newt/welcome.scm:96 +msgid "" +"Welcome to GNU Guix system installer!\n" +"\n" +"You will be guided through a graphical installation program.\n" +"\n" +"If you are familiar with GNU/Linux and you want tight control over the installation process, you can instead choose manual installation. Documentation is accessible at any time by pressing Ctrl-Alt-F2." +msgstr "" + +#: gnu/installer/newt/welcome.scm:105 +msgid "Graphical install using a terminal based interface" +msgstr "" + +#: gnu/installer/newt/welcome.scm:108 +msgid "Install using the shell based process" +msgstr "" + +#: gnu/installer/newt/wifi.scm:82 +msgid "Unable to find a wifi technology" +msgstr "" + +#: gnu/installer/newt/wifi.scm:86 +msgid "Scanning wifi for available networks, please wait." +msgstr "" + +#: gnu/installer/newt/wifi.scm:87 +msgid "Scan in progress" +msgstr "" + +#: gnu/installer/newt/wifi.scm:91 +msgid "Please enter the wifi password." +msgstr "" + +#: gnu/installer/newt/wifi.scm:98 +#, scheme-format +msgid "The password you entered for ~a is incorrect." +msgstr "" + +#: gnu/installer/newt/wifi.scm:100 +msgid "Wrong password" +msgstr "" + +#: gnu/installer/newt/wifi.scm:106 +#, scheme-format +msgid "An error occurred while trying to connect to ~a, please retry." +msgstr "" + +#: gnu/installer/newt/wifi.scm:200 +msgid "Please select a wifi network." +msgstr "" + +#: gnu/installer/newt/wifi.scm:206 +msgid "Scan" +msgstr "" + +#: gnu/installer/newt/wifi.scm:211 +msgid "No wifi detected" +msgstr "" + +#: gnu/installer/newt/wifi.scm:226 +msgid "Wifi" +msgstr "" + +#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432 +msgid "Free space" +msgstr "வெற்றிடம்" + +#: gnu/installer/parted.scm:1345 +#, scheme-format +msgid "Device ~a is still in use." +msgstr "" + +#: gnu/installer/services.scm:88 +msgid "OpenSSH secure shell daemon (sshd)" +msgstr "" + +#: gnu/installer/services.scm:92 +msgid "Tor anonymous network router" +msgstr "" + +#: gnu/installer/services.scm:96 +msgid "Mozilla NSS certificates, for HTTPS access" +msgstr "" + +#: gnu/installer/services.scm:103 +msgid "NetworkManager network connection manager" +msgstr "" + +#: gnu/installer/services.scm:108 +msgid "Connman network connection manager" +msgstr "" + +#: gnu/installer/services.scm:113 +msgid "DHCP client (dynamic IP address assignment)" +msgstr "" + +#: gnu/installer/timezone.scm:110 +#, scheme-format +msgid "Unable to locate path: ~a." +msgstr "" + +#: gnu/installer/utils.scm:64 +#, scheme-format +msgid "Press Enter to continue.~%" +msgstr "" + +#: gnu/installer/utils.scm:86 +#, scheme-format +msgid "Command failed with exit code ~a.~%" +msgstr "" + +#: gnu/machine/ssh.scm:106 +#, scheme-format +msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%" +msgstr "" + +#: gnu/machine/ssh.scm:169 +#, scheme-format +msgid "device '~a' not found: ~a" +msgstr "" + +#: gnu/machine/ssh.scm:187 +#, scheme-format +msgid "no file system with label '~a'" +msgstr "" + +#: gnu/machine/ssh.scm:210 +#, scheme-format +msgid "no file system with UUID '~a'" +msgstr "" + +#: gnu/machine/ssh.scm:267 +#, scheme-format +msgid "~a missing modules ~{ ~a~}~%" +msgstr "" + +#: gnu/machine/ssh.scm:283 +#, scheme-format +msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%" +msgstr "" + +#: gnu/machine/ssh.scm:383 +#, scheme-format +msgid "no signing key '~a'. have you run 'guix archive --generate-key?'" +msgstr "" + +#: gnu/machine/ssh.scm:434 +msgid "could not roll-back machine" +msgstr "" + +#: gnu/machine/ssh.scm:466 +msgid "" +"Provisioning for machines that are accessible over SSH\n" +"and have a known host-name. This entails little more than maintaining an SSH\n" +"connection to the host." +msgstr "" + +#: gnu/machine/ssh.scm:478 +#, scheme-format +msgid "" +"unsupported machine configuration '~a'\n" +"for environment of type '~a'" +msgstr "" + +#: gnu/packages/bootstrap.scm:137 +#, scheme-format +msgid "could not find bootstrap binary '~a' for system '~a'" +msgstr "" + +#: gnu/packages/bootstrap.scm:436 +msgid "Raw build system with direct store access" +msgstr "" + +#: gnu/packages/bootstrap.scm:444 +msgid "Pre-built Guile for bootstrapping purposes." +msgstr "" + +#: guix/build/utils.scm:713 +#, scheme-format +msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{ ~a~%~}" +msgstr "" + +#: guix/scripts.scm:61 +#, scheme-format +msgid "invalid argument: ~a~%" +msgstr "ஏற்கத்தகாச் செயலுருபு: ~a~%" + +#: guix/scripts.scm:89 guix/scripts/download.scm:150 +#: guix/scripts/search.scm:69 guix/scripts/show.scm:69 +#: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84 +#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87 +#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230 +#, scheme-format +msgid "~A: unrecognized option~%" +msgstr "~A: அறியப்படாச் செயல்மாற்றி~%" + +#: guix/scripts.scm:172 +#, scheme-format +msgid "Your Guix installation is ~a day old.\n" +msgid_plural "Your Guix installation is ~a days old.\n" +msgstr[0] "உங்கள் Guix நிலையம் ~a நாள் பழமையானது.\n" +msgstr[1] "உங்கள் Guix நிலையம் ~a நாட்களுக்கு மேல் பழமையானது.\n" + +#: guix/scripts.scm:178 +#, scheme-format +msgid "" +"Consider running 'guix pull' followed by\n" +"'~a' to get up-to-date packages and security updates.\n" +msgstr "" + +#: guix/scripts.scm:202 +#, scheme-format +msgid "only ~,1f% of free space available on ~a~%" +msgstr "~*~a யில் ~2:*~,1f% வெற்றிடம் தான் உள்ளது~%" + +#: guix/scripts.scm:204 +msgid "" +"Consider deleting old profile\n" +"generations and collecting garbage, along these lines:\n" +"\n" +"@example\n" +"guix gc --delete-generations=1m\n" +"@end example\n" +msgstr "" + +#: guix/scripts/build.scm:86 +#, scheme-format +msgid "cannot access build log at '~a':~%" +msgstr "'~a' கட்டுக்குறிப்பை அணுக இயலவில்லை:~%" + +#: guix/scripts/build.scm:140 +#, scheme-format +msgid "failed to create GC root `~a': ~a~%" +msgstr "" + +#: guix/scripts/build.scm:245 guix/scripts/build.scm:310 +#, scheme-format +msgid "invalid replacement specification: ~s~%" +msgstr "" + +#: guix/scripts/build.scm:292 +#, scheme-format +msgid "the source of ~a is not a Git reference~%" +msgstr "" + +#: guix/scripts/build.scm:380 +#, scheme-format +msgid "~a: invalid Git URL replacement specification~%" +msgstr "" + +#: guix/scripts/build.scm:425 +msgid "" +"\n" +" --with-source=SOURCE\n" +" use SOURCE when building the corresponding package" +msgstr "" + +#: guix/scripts/build.scm:428 +msgid "" +"\n" +" --with-input=PACKAGE=REPLACEMENT\n" +" replace dependency PACKAGE by REPLACEMENT" +msgstr "" + +#: guix/scripts/build.scm:431 +msgid "" +"\n" +" --with-graft=PACKAGE=REPLACEMENT\n" +" graft REPLACEMENT on packages that refer to PACKAGE" +msgstr "" + +#: guix/scripts/build.scm:434 +msgid "" +"\n" +" --with-branch=PACKAGE=BRANCH\n" +" build PACKAGE from the latest commit of BRANCH" +msgstr "" + +#: guix/scripts/build.scm:437 +msgid "" +"\n" +" --with-commit=PACKAGE=COMMIT\n" +" build PACKAGE from COMMIT" +msgstr "" + +#: guix/scripts/build.scm:440 +msgid "" +"\n" +" --with-git-url=PACKAGE=URL\n" +" build PACKAGE from the repository at URL" +msgstr "" + +#: guix/scripts/build.scm:471 +#, scheme-format +msgid "transformation '~a' had no effect on ~a~%" +msgstr "'~a' உருமாற்றம் ~a மீது எத்தாக்கமும் கொள்ளவில்லை~%" + +#: guix/scripts/build.scm:489 guix/scripts/search.scm:41 +#: guix/scripts/show.scm:41 guix/scripts/lint.scm:98 guix/scripts/edit.scm:48 +#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509 +msgid "" +"\n" +" -L, --load-path=DIR prepend DIR to the package module search path" +msgstr "" + +#: guix/scripts/build.scm:491 +msgid "" +"\n" +" -K, --keep-failed keep build tree of failed builds" +msgstr "" + +#: guix/scripts/build.scm:493 +msgid "" +"\n" +" -k, --keep-going keep going when some of the derivations fail" +msgstr "" +"\n" +"\n" +" -k, --keep-going சில வருவிகள் தோல்வியுற்றாலும் தொடர்க" + +#: guix/scripts/build.scm:495 +msgid "" +"\n" +" -n, --dry-run do not build the derivations" +msgstr "" +"\n" +"\n" +" -n, --dry-run வருவிகளைக் கட்டாதே" + +#: guix/scripts/build.scm:497 +msgid "" +"\n" +" --fallback fall back to building when the substituter fails" +msgstr "" + +#: guix/scripts/build.scm:499 +msgid "" +"\n" +" --no-substitutes build instead of resorting to pre-built substitutes" +msgstr "" + +#: guix/scripts/build.scm:501 guix/scripts/size.scm:235 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" fetch substitute from URLS if they are authorized" +msgstr "" + +#: guix/scripts/build.scm:504 +msgid "" +"\n" +" --no-grafts do not graft packages" +msgstr "" + +#: guix/scripts/build.scm:506 +msgid "" +"\n" +" --no-offload do not attempt to offload builds" +msgstr "" + +#: guix/scripts/build.scm:508 +msgid "" +"\n" +" --max-silent-time=SECONDS\n" +" mark the build as failed after SECONDS of silence" +msgstr "" + +#: guix/scripts/build.scm:511 +msgid "" +"\n" +" --timeout=SECONDS mark the build as failed after SECONDS of activity" +msgstr "" + +#: guix/scripts/build.scm:513 +msgid "" +"\n" +" --rounds=N build N times in a row to detect non-determinism" +msgstr "" + +#: guix/scripts/build.scm:515 +msgid "" +"\n" +" -c, --cores=N allow the use of up to N CPU cores for the build" +msgstr "" + +#: guix/scripts/build.scm:517 +msgid "" +"\n" +" -M, --max-jobs=N allow at most N build jobs" +msgstr "" +"\n" +"\n" +" -M, --max-jobs=N அதிகபட்சமாக N கட்டுப்பணிகளை அனுமதி" + +#: guix/scripts/build.scm:519 +msgid "" +"\n" +" --debug=LEVEL produce debugging output at LEVEL" +msgstr "" + +#: guix/scripts/build.scm:536 +msgid "'--keep-failed' ignored since you are talking to a remote daemon\n" +msgstr "" + +#: guix/scripts/build.scm:617 +#, scheme-format +msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%" +msgstr "'--no-build-hook' வழக்கொழிந்தது; அதற்குப் பதிலாக '--no-offload' யைப் பயன்படுத்துக~%" + +#: guix/scripts/build.scm:647 guix/scripts/build.scm:654 +#, scheme-format +msgid "not a number: '~a' option argument: ~a~%" +msgstr "எண்ணல்ல: '~a' செயல்மாற்றி செயலுருபு: ~a~%" + +#: guix/scripts/build.scm:675 +msgid "" +"Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" +"Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" +msgstr "" +"பயன்பாடு: guix build [<செயல்மாற்றி>]... <மென்பொருள் தொகுப்போ வருவியோ>...\n" +"<மென்பொருள் தொகுப்பையோ வருவியையோக்> கட்டமைத்து அதன் வெளியீட்டுப் பாதையைக் கொடு.\n" + +#: guix/scripts/build.scm:677 +msgid "" +"\n" +" -e, --expression=EXPR build the package or derivation EXPR evaluates to" +msgstr "" + +#: guix/scripts/build.scm:679 +msgid "" +"\n" +" -f, --file=FILE build the package or derivation that the code within\n" +" FILE evaluates to" +msgstr "" + +#: guix/scripts/build.scm:682 +msgid "" +"\n" +" -S, --source build the packages' source derivations" +msgstr "" + +#: guix/scripts/build.scm:684 +msgid "" +"\n" +" --sources[=TYPE] build source derivations; TYPE may optionally be one\n" +" of \"package\", \"all\" (default), or \"transitive\"" +msgstr "" + +#: guix/scripts/build.scm:687 guix/scripts/pull.scm:114 +#: guix/scripts/pack.scm:908 +msgid "" +"\n" +" -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#: guix/scripts/build.scm:689 guix/scripts/system.scm:985 +#: guix/scripts/pack.scm:910 +msgid "" +"\n" +" --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" +msgstr "" + +#: guix/scripts/build.scm:691 +msgid "" +"\n" +" -d, --derivations return the derivation paths of the given packages" +msgstr "" + +#: guix/scripts/build.scm:693 +msgid "" +"\n" +" --check rebuild items to check for non-determinism issues" +msgstr "" + +#: guix/scripts/build.scm:695 +msgid "" +"\n" +" --repair repair the specified items" +msgstr "" + +#: guix/scripts/build.scm:697 guix/scripts/pack.scm:928 +msgid "" +"\n" +" -r, --root=FILE make FILE a symlink to the result, and register it\n" +" as a garbage collector root" +msgstr "" + +#: guix/scripts/build.scm:700 guix/scripts/package.scm:371 +#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36 +#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112 +#: guix/scripts/system.scm:987 guix/scripts/copy.scm:120 +#: guix/scripts/pack.scm:933 guix/scripts/deploy.scm:56 +msgid "" +"\n" +" -v, --verbosity=LEVEL use the given verbosity LEVEL" +msgstr "" + +#: guix/scripts/build.scm:702 +msgid "" +"\n" +" -q, --quiet do not show the build log" +msgstr "" +"\n" +"\n" +" -q, --quiet கட்டுக்குறிப்பைக் காட்டாதே" + +#: guix/scripts/build.scm:704 +msgid "" +"\n" +" --log-file return the log file names for the given derivations" +msgstr "" + +#: guix/scripts/build.scm:711 guix/scripts/download.scm:98 +#: guix/scripts/package.scm:389 guix/scripts/install.scm:43 +#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43 +#: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88 +#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94 +#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120 +#: guix/scripts/substitute.scm:862 guix/scripts/system.scm:990 +#: guix/scripts/lint.scm:101 guix/scripts/publish.scm:98 +#: guix/scripts/edit.scm:51 guix/scripts/size.scm:249 +#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423 +#: guix/scripts/copy.scm:125 guix/scripts/pack.scm:938 +#: guix/scripts/weather.scm:273 guix/scripts/describe.scm:76 +#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:51 +#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +"\n" +" -h, --help இவ்வுதவிச் செய்தியைக் காட்டி வெளியேறு" + +#: guix/scripts/build.scm:713 guix/scripts/download.scm:100 +#: guix/scripts/package.scm:391 guix/scripts/install.scm:45 +#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45 +#: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90 +#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96 +#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122 +#: guix/scripts/substitute.scm:864 guix/scripts/system.scm:992 +#: guix/scripts/lint.scm:105 guix/scripts/publish.scm:100 +#: guix/scripts/edit.scm:53 guix/scripts/size.scm:251 +#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425 +#: guix/scripts/copy.scm:127 guix/scripts/pack.scm:940 +#: guix/scripts/weather.scm:275 guix/scripts/describe.scm:78 +#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:53 +#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +"\n" +" -V, --version பதிப்பு விவரத்தைக் காட்டி வெளியேறு" + +#: guix/scripts/build.scm:740 +#, scheme-format +msgid "" +"invalid argument: '~a' option argument: ~a, ~\n" +"must be one of 'package', 'all', or 'transitive'~%" +msgstr "" + +#: guix/scripts/build.scm:798 +#, scheme-format +msgid "~s: not something we can build~%" +msgstr "~s: கட்ட இயன்றதல்ல~%" + +#: guix/scripts/build.scm:875 +#, scheme-format +msgid "package '~a' has no source~%" +msgstr "'~a' மென்பொருள் தொகுப்பிற்கு மூலமில்லை~%" + +#: guix/scripts/build.scm:921 +#, scheme-format +msgid "no build log for '~a'~%" +msgstr "'~a' க்குக் கட்டுக்குறிப்பில்லை~%" + +#: guix/discovery.scm:96 +#, scheme-format +msgid "cannot access `~a': ~a~%" +msgstr "`~a' அணுக இயலவில்லை: ~a~%" + +#: guix/lint.scm:177 +msgid "description should not be empty" +msgstr "விளக்கம் வெறுமையாகயிருக்கக் கூடாது" + +#: guix/lint.scm:188 +msgid "Texinfo markup in description is invalid" +msgstr "விளக்கவுரையிலுள்ள Texinfo குறிகள் ஏற்கத்தகாதவை" + +#: guix/lint.scm:198 +#, scheme-format +msgid "" +"description should not contain ~\n" +"trademark sign '~a' at ~d" +msgstr "" + +#. TRANSLATORS: '@code' is Texinfo markup and must be kept +#. as is. +#: guix/lint.scm:211 +msgid "use @code or similar ornament instead of quotes" +msgstr "" + +#: guix/lint.scm:223 +msgid "description should start with an upper-case letter or digit" +msgstr "விளக்கவுரை முகப்பெழுத்துக் கொண்டோ எண் கொண்டோ துவங்க வேண்டும்" + +#: guix/lint.scm:241 +#, scheme-format +msgid "" +"sentences in description should be followed ~\n" +"by two spaces; possible infraction~p at ~{~a~^, ~}" +msgstr "" + +#: guix/lint.scm:262 +#, scheme-format +msgid "invalid description: ~s" +msgstr "ஏற்கத்தகா விளக்கம்: ~s" + +#: guix/lint.scm:329 +#, scheme-format +msgid "'~a' should probably be a native input" +msgstr "" + +#: guix/lint.scm:344 +#, scheme-format +msgid "'~a' should probably not be an input at all" +msgstr "" + +#: guix/lint.scm:365 +msgid "no period allowed at the end of the synopsis" +msgstr "பொழிப்புரையின் ஈற்றில் முற்றுப்புள்ளி இருக்கக் கூடாது" + +#: guix/lint.scm:379 +msgid "no article allowed at the beginning of the synopsis" +msgstr "" + +#: guix/lint.scm:388 +msgid "synopsis should be less than 80 characters long" +msgstr "பொழிப்புரை 80 வரியுருக்களுக்குக் குறைவாகயிருக்க வேண்டும்" + +#: guix/lint.scm:397 +msgid "synopsis should start with an upper-case letter or digit" +msgstr "பொழிப்புரை முகப்பெழுத்துடனோ எண்ணுடனோ தொடங்க வேண்டும்" + +#: guix/lint.scm:405 +msgid "synopsis should not start with the package name" +msgstr "பொழிப்புரை மென்பொருள் தொகுப்பின் பெயருடன் தொடங்கக்கூடாது" + +#: guix/lint.scm:419 +msgid "Texinfo markup in synopsis is invalid" +msgstr "பொழிப்புரையிலுள்ள Texinfo குறிகள் ஏற்கத்தகாதவை" + +#: guix/lint.scm:434 +msgid "synopsis should not be empty" +msgstr "பொழிப்புரை வெறுமையாகயிருக்கக் கூடாது" + +#: guix/lint.scm:444 +#, scheme-format +msgid "invalid synopsis: ~s" +msgstr "ஏற்கத்தகா பொழிப்புரை: ~s" + +#: guix/lint.scm:562 +#, scheme-format +msgid "URI ~a returned suspiciously small file (~a bytes)" +msgstr "" + +#: guix/lint.scm:571 +#, scheme-format +msgid "permanent redirect from ~a to ~a" +msgstr "" + +#: guix/lint.scm:577 +#, scheme-format +msgid "invalid permanent redirect from ~a" +msgstr "" + +#: guix/lint.scm:583 guix/lint.scm:593 +#, scheme-format +msgid "URI ~a not reachable: ~a (~s)" +msgstr "" + +#: guix/lint.scm:599 +#, scheme-format +msgid "URI ~a domain not found: ~a" +msgstr "" + +#: guix/lint.scm:605 +#, scheme-format +msgid "URI ~a unreachable: ~a" +msgstr "" + +#: guix/lint.scm:613 +#, scheme-format +msgid "TLS certificate error: ~a" +msgstr "" + +#: guix/lint.scm:640 +msgid "invalid value for home page" +msgstr "" + +#: guix/lint.scm:645 +#, scheme-format +msgid "invalid home page URL: ~s" +msgstr "ஏற்கத்தகா வலைத்தள முகவரி: ~s" + +#: guix/lint.scm:678 +msgid "file names of patches should start with the package name" +msgstr "திருத்தக்கோப்புகளின் பெயர் அதன் மென்பொருள் தொகுப்புப் பெயருடன் தொடங்க வேண்டும்" + +#: guix/lint.scm:694 +#, scheme-format +msgid "~a: file name is too long" +msgstr "" + +#: guix/lint.scm:736 +#, scheme-format +msgid "proposed synopsis: ~s~%" +msgstr "முன்மொழியப்படும் பொழிப்புரை: ~s~%" + +#: guix/lint.scm:750 +#, scheme-format +msgid "proposed description:~% \"~a\"~%" +msgstr "முன்மொழியப்படும் விளக்கம்:~% \"~a\"~%" + +#: guix/lint.scm:797 +msgid "all the source URIs are unreachable:" +msgstr "" + +#: guix/lint.scm:821 +msgid "the source file name should contain the package name" +msgstr "மூலத்தின் கோப்புப் பெயர் மென்பொருள் தொகுப்பு பெயரை உள்ளடக்க வேண்டும்" + +#: guix/lint.scm:833 +msgid "the source URI should not be an autogenerated tarball" +msgstr "" + +#: guix/lint.scm:857 +#, scheme-format +msgid "URL should be 'mirror://~a/~a'" +msgstr "" + +#: guix/lint.scm:902 +#, scheme-format +msgid "URL should be '~a'" +msgstr "முகவரி '~a' ஆக இருக்க வேண்டும்" + +#: guix/lint.scm:924 guix/lint.scm:935 +#, scheme-format +msgid "failed to create ~a derivation: ~a" +msgstr "" + +#: guix/lint.scm:929 guix/lint.scm:952 +#, scheme-format +msgid "failed to create ~a derivation: ~s" +msgstr "" + +#: guix/lint.scm:966 +msgid "invalid license field" +msgstr "ஏற்கத்தகா உரிமப்புலம்" + +#: guix/lint.scm:973 +#, scheme-format +msgid "~a: HTTP GET error for ~a: ~a (~s)~%" +msgstr "~a: ~a க்கு HTTP GET பிழை: ~a (~s)~%" + +#: guix/lint.scm:983 +#, scheme-format +msgid "~a: host lookup failure: ~a~%" +msgstr "" + +#: guix/lint.scm:988 +#, scheme-format +msgid "~a: TLS certificate error: ~a" +msgstr "" + +#: guix/lint.scm:999 guix/ui.scm:792 +#, scheme-format +msgid "~a: ~a~%" +msgstr "~a: ~a~%" + +#: guix/lint.scm:1013 +msgid "while retrieving CVE vulnerabilities" +msgstr "" + +#: guix/lint.scm:1056 +#, scheme-format +msgid "probably vulnerable to ~a" +msgstr "ஒருவேளை ~a க்கு ஊறுபடத்தக்கது" + +#: guix/lint.scm:1063 +#, scheme-format +msgid "while retrieving upstream info for '~a'" +msgstr "" + +#: guix/lint.scm:1072 +#, scheme-format +msgid "can be upgraded to ~a" +msgstr "~a பதிப்புக்கு திறமுயர்த்த இயலும்" + +#: guix/lint.scm:1090 +msgid "Software Heritage rate limit reached; try again later" +msgstr "" + +#: guix/lint.scm:1094 +#, scheme-format +msgid "'~a' returned ~a" +msgstr "" + +#. TRANSLATORS: "Software Heritage" is a proper noun +#. that must remain untranslated. See +#. <https://www.softwareheritage.org>. +#: guix/lint.scm:1133 +msgid "scheduled Software Heritage archival" +msgstr "" + +#: guix/lint.scm:1139 +msgid "archival rate limit exceeded; try again later" +msgstr "" + +#: guix/lint.scm:1151 +msgid "source not archived on Software Heritage" +msgstr "" + +#: guix/lint.scm:1164 +msgid "while connecting to Software Heritage" +msgstr "" + +#: guix/lint.scm:1179 +#, scheme-format +msgid "tabulation on line ~a, column ~a" +msgstr "" + +#: guix/lint.scm:1191 +#, scheme-format +msgid "trailing white space on line ~a" +msgstr "" + +#: guix/lint.scm:1205 +#, scheme-format +msgid "line ~a is way too long (~a characters)" +msgstr "" + +#: guix/lint.scm:1219 +msgid "parentheses feel lonely, move to the previous or next line" +msgstr "அடைப்புக்குறிகள் தனிமையாக கிடக்கின்றன; முந்தைய வரிக்கோ அடுத்த வரிக்கோ அதை நகர்த்துக" + +#: guix/lint.scm:1300 +msgid "Validate package descriptions" +msgstr "மென்பொருள் தொகுப்பு விளக்கங்களைச் சரி பார்" + +#: guix/lint.scm:1304 +msgid "Identify inputs that should be native inputs" +msgstr "" + +#: guix/lint.scm:1308 +msgid "Identify inputs that shouldn't be inputs at all" +msgstr "" + +#. TRANSLATORS: <license> is the name of a data type and must not be +#. translated. +#: guix/lint.scm:1314 +msgid "Make sure the 'license' field is a <license> or a list thereof" +msgstr "" + +#: guix/lint.scm:1319 +msgid "Suggest 'mirror://' URLs" +msgstr "" + +#: guix/lint.scm:1323 +msgid "Validate file names of sources" +msgstr "மூலங்களின் கோப்புப் பெயர்களைச் சரி பார்" + +#: guix/lint.scm:1327 +msgid "Check for autogenerated tarballs" +msgstr "" + +#: guix/lint.scm:1331 +msgid "Report failure to compile a package to a derivation" +msgstr "" + +#: guix/lint.scm:1335 +msgid "Validate file names and availability of patches" +msgstr "" + +#: guix/lint.scm:1339 +msgid "Look for formatting issues in the source" +msgstr "மூலத்தில் வடிவூட்டுப் பிழைகளுக்குத் தேடு" + +#: guix/lint.scm:1346 +msgid "Validate package synopses" +msgstr "மென்பொருள் தொகுப்பு பொழிப்புரைகளைச் சரி பார்" + +#: guix/lint.scm:1350 +msgid "Validate synopsis & description of GNU packages" +msgstr "GNU மென்பொருள் தொகுப்புகளின் பொழிப்புரைகளையும் விளக்கங்களையும் சரி பார்" + +#: guix/lint.scm:1354 +msgid "Validate home-page URLs" +msgstr "வலைத்தள முகவரிகளைச் சரி பார்" + +#: guix/lint.scm:1358 +msgid "Validate source URLs" +msgstr "மூல முகவரிகளைச் சரி பார்" + +#: guix/lint.scm:1362 +msgid "Suggest GitHub URLs" +msgstr "" + +#: guix/lint.scm:1366 +msgid "Check the Common Vulnerabilities and Exposures (CVE) database" +msgstr "" + +#: guix/lint.scm:1371 +msgid "Check the package for new upstream releases" +msgstr "இம்மென்பொருள் தொகுப்பிற்கு புதிய மேல்நோக்கு பதிப்புகள் இருக்கிறதாவென்று பார்" + +#: guix/lint.scm:1375 +msgid "Ensure source code archival on Software Heritage" +msgstr "" + +#: guix/scripts/download.scm:84 +msgid "" +"Usage: guix download [OPTION] URL\n" +"Download the file at URL to the store or to the given file, and print its\n" +"file name and the hash of its contents.\n" +"\n" +"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n" +"('hex' and 'hexadecimal' can be used as well).\n" +msgstr "" + +#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55 +msgid "" +"\n" +" -f, --format=FMT write the hash in the given format" +msgstr "" + +#: guix/scripts/download.scm:92 +msgid "" +"\n" +" --no-check-certificate\n" +" do not validate the certificate of HTTPS servers " +msgstr "" + +#: guix/scripts/download.scm:95 +msgid "" +"\n" +" -o, --output=FILE download to FILE" +msgstr "" + +#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83 +#, scheme-format +msgid "unsupported hash format: ~a~%" +msgstr "" + +#: guix/scripts/download.scm:153 guix/scripts/package.scm:936 +#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022 +#, scheme-format +msgid "~A: extraneous argument~%" +msgstr "" + +#: guix/scripts/download.scm:161 +#, scheme-format +msgid "no download URI was specified~%" +msgstr "" + +#: guix/scripts/download.scm:166 +#, scheme-format +msgid "~a: failed to parse URI~%" +msgstr "" + +#: guix/scripts/download.scm:176 +#, scheme-format +msgid "~a: download failed~%" +msgstr "~a: பதிவிறக்கம் தோல்வியுற்றது~%" + +#: guix/scripts/package.scm:120 +#, scheme-format +msgid "not removing generation ~a, which is current~%" +msgstr "" + +#: guix/scripts/package.scm:127 +#, scheme-format +msgid "no matching generation~%" +msgstr "" + +#: guix/scripts/package.scm:154 +#, scheme-format +msgid "nothing to be done~%" +msgstr "செய்வதற்கொன்றுமில்லை~%" + +#: guix/scripts/package.scm:168 +#, scheme-format +msgid "~a package in profile~%" +msgid_plural "~a packages in profile~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/scripts/package.scm:254 +#, scheme-format +msgid "package '~a' no longer exists~%" +msgstr "" + +#: guix/scripts/package.scm:298 +#, scheme-format +msgid "" +"Consider setting the necessary environment\n" +"variables by running:\n" +"\n" +"@example\n" +"GUIX_PROFILE=\"~a\"\n" +". \"$GUIX_PROFILE/etc/profile\"\n" +"@end example\n" +"\n" +"Alternately, see @command{guix package --search-paths -p ~s}." +msgstr "" + +#: guix/scripts/package.scm:326 +msgid "" +"Usage: guix package [OPTION]...\n" +"Install, remove, or upgrade packages in a single transaction.\n" +msgstr "" +"பயன்பாடு: guix package [<செயல்மாற்றி>]...\n" +"மென்பொருள் தொகுப்புகளை ஒரே மாற்றமாக நிறுவு, நீக்கு அல்லது திறமுயர்த்து.\n" + +#: guix/scripts/package.scm:328 +msgid "" +"\n" +" -i, --install PACKAGE ...\n" +" install PACKAGEs" +msgstr "" + +#: guix/scripts/package.scm:331 +msgid "" +"\n" +" -e, --install-from-expression=EXP\n" +" install the package EXP evaluates to" +msgstr "" + +#: guix/scripts/package.scm:334 +msgid "" +"\n" +" -f, --install-from-file=FILE\n" +" install the package that the code within FILE\n" +" evaluates to" +msgstr "" + +#: guix/scripts/package.scm:338 +msgid "" +"\n" +" -r, --remove PACKAGE ...\n" +" remove PACKAGEs" +msgstr "" + +#: guix/scripts/package.scm:341 +msgid "" +"\n" +" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:343 +msgid "" +"\n" +" -m, --manifest=FILE create a new profile generation with the manifest\n" +" from FILE" +msgstr "" + +#: guix/scripts/package.scm:346 +msgid "" +"\n" +" --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102 +msgid "" +"\n" +" --roll-back roll back to the previous generation" +msgstr "" + +#: guix/scripts/package.scm:350 +msgid "" +"\n" +" --search-paths[=KIND]\n" +" display needed environment variable definitions" +msgstr "" + +#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99 +msgid "" +"\n" +" -l, --list-generations[=PATTERN]\n" +" list generations matching PATTERN" +msgstr "" + +#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104 +msgid "" +"\n" +" -d, --delete-generations[=PATTERN]\n" +" delete generations matching PATTERN" +msgstr "" + +#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107 +msgid "" +"\n" +" -S, --switch-generation=PATTERN\n" +" switch to a generation matching PATTERN" +msgstr "" + +#: guix/scripts/package.scm:362 guix/scripts/install.scm:33 +#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34 +msgid "" +"\n" +" -p, --profile=PROFILE use PROFILE instead of the user's default profile" +msgstr "" + +#: guix/scripts/package.scm:364 +msgid "" +"\n" +" --list-profiles list the user's profiles" +msgstr "" + +#: guix/scripts/package.scm:367 +msgid "" +"\n" +" --allow-collisions do not treat collisions in the profile as an error" +msgstr "" + +#: guix/scripts/package.scm:369 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the profile" +msgstr "" + +#: guix/scripts/package.scm:374 +msgid "" +"\n" +" -s, --search=REGEXP search in synopsis and description using REGEXP" +msgstr "" + +#: guix/scripts/package.scm:376 +msgid "" +"\n" +" -I, --list-installed[=REGEXP]\n" +" list installed packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:379 +msgid "" +"\n" +" -A, --list-available[=REGEXP]\n" +" list available packages matching REGEXP" +msgstr "" + +#: guix/scripts/package.scm:382 +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +"\n" +" --show=தொகுப்பு மென்பொருள் <தொகுப்பு> பற்றின விவரங்களைக் காட்டு" + +#: guix/scripts/package.scm:434 +#, scheme-format +msgid "upgrade regexp '~a' looks like a command-line option~%" +msgstr "" + +#: guix/scripts/package.scm:437 +#, scheme-format +msgid "is this intended?~%" +msgstr "இதைத் தான் கருதினீரா?" + +#: guix/scripts/package.scm:487 +#, scheme-format +msgid "~a: unsupported kind of search path~%" +msgstr "" + +#: guix/scripts/package.scm:620 +#, scheme-format +msgid "cannot install non-package object: ~s~%" +msgstr "" + +#: guix/scripts/package.scm:792 +#, scheme-format +msgid "~a~@[@~a~]: package not found~%" +msgstr "~a~@[@~a~]: மென்பொருள் தொகுப்பு கிடைக்கவில்லை" + +#: guix/scripts/package.scm:826 guix/scripts/pull.scm:693 +#, scheme-format +msgid "cannot switch to generation '~a'~%" +msgstr "" + +#: guix/scripts/install.scm:30 +msgid "" +"Usage: guix install [OPTION] PACKAGES...\n" +"Install the given PACKAGES.\n" +"This is an alias for 'guix package -i'.\n" +msgstr "" + +#: guix/scripts/remove.scm:30 +msgid "" +"Usage: guix remove [OPTION] PACKAGES...\n" +"Remove the given PACKAGES.\n" +"This is an alias for 'guix package -r'.\n" +msgstr "" + +#: guix/scripts/upgrade.scm:31 +msgid "" +"Usage: guix upgrade [OPTION] [REGEXP]\n" +"Upgrade packages that match REGEXP.\n" +"This is an alias for 'guix package -u'.\n" +msgstr "" + +#: guix/scripts/search.scm:31 +msgid "" +"Usage: guix search [OPTION] REGEXPS...\n" +"Search for packages matching REGEXPS." +msgstr "" + +#: guix/scripts/search.scm:33 +msgid "" +"\n" +"This is an alias for 'guix package -s'.\n" +msgstr "" + +#: guix/scripts/search.scm:74 +#, scheme-format +msgid "missing arguments: no regular expressions to search for~%" +msgstr "" + +#: guix/scripts/show.scm:31 +msgid "" +"Usage: guix show [OPTION] PACKAGE...\n" +"Show details about PACKAGE." +msgstr "" +"பயன்பாடு: guix show [<செயல்மாற்றி>] <மென்பொருள் தொகுப்பு>...\n" +"<மென்பொருள் தொகுப்பு> பற்றின விவரத்தைக் காட்டு." + +#: guix/scripts/show.scm:33 +msgid "" +"\n" +"This is an alias for 'guix package --show='.\n" +msgstr "" + +#: guix/scripts/show.scm:74 +#, scheme-format +msgid "missing arguments: no package to show~%" +msgstr "" + +#: guix/scripts/gc.scm:47 +msgid "" +"Usage: guix gc [OPTION]... PATHS...\n" +"Invoke the garbage collector.\n" +msgstr "" +"பயன்பாடு: guix gc [<செயல்மாற்றி>]... <பாதைகள்>...\n" +"குப்பைத்திரட்டியைச் செயல்படுத்து.\n" + +#: guix/scripts/gc.scm:49 +msgid "" +"\n" +" -C, --collect-garbage[=MIN]\n" +" collect at least MIN bytes of garbage" +msgstr "" +"\n" +" -C, --collect-garbage[=குறைந்தபட்சம்]\n" +" <குறைந்தபட்சம்> குப்பை எண்ணுன்மிகளையாவது திரட்டு" + +#: guix/scripts/gc.scm:52 +msgid "" +"\n" +" -F, --free-space=FREE attempt to reach FREE available space in the store" +msgstr "" +"\n" +"\n" +" -F, --free-space=இடம் கிடங்கில் <இடம்> வெற்றிடம் எய்த முயல்" + +#: guix/scripts/gc.scm:54 +msgid "" +"\n" +" -d, --delete-generations[=PATTERN]\n" +" delete profile generations matching PATTERN" +msgstr "" + +#: guix/scripts/gc.scm:57 +msgid "" +"\n" +" -D, --delete attempt to delete PATHS" +msgstr "" +"\n" +"\n" +" -D, --delete <பாதைகள்>யை அழிக்க முயல்" + +#: guix/scripts/gc.scm:59 +msgid "" +"\n" +" --list-roots list the user's garbage collector roots" +msgstr "" + +#: guix/scripts/gc.scm:61 +msgid "" +"\n" +" --list-busy list store items used by running processes" +msgstr "" + +#: guix/scripts/gc.scm:63 +msgid "" +"\n" +" --optimize optimize the store by deduplicating identical files" +msgstr "" + +#: guix/scripts/gc.scm:65 +msgid "" +"\n" +" --list-dead list dead paths" +msgstr "" + +#: guix/scripts/gc.scm:67 +msgid "" +"\n" +" --list-live list live paths" +msgstr "" + +#: guix/scripts/gc.scm:70 +msgid "" +"\n" +" --references list the references of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:72 +msgid "" +"\n" +" -R, --requisites list the requisites of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:74 +msgid "" +"\n" +" --referrers list the referrers of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:76 +msgid "" +"\n" +" --derivers list the derivers of PATHS" +msgstr "" + +#: guix/scripts/gc.scm:79 +msgid "" +"\n" +" --verify[=OPTS] verify the integrity of the store; OPTS is a\n" +" comma-separated combination of 'repair' and\n" +" 'contents'" +msgstr "" + +#: guix/scripts/gc.scm:83 +msgid "" +"\n" +" --list-failures list cached build failures" +msgstr "" + +#: guix/scripts/gc.scm:85 +msgid "" +"\n" +" --clear-failures remove PATHS from the set of cached failures" +msgstr "" + +#: guix/scripts/gc.scm:99 +#, scheme-format +msgid "~a: invalid '--verify' option~%" +msgstr "~a: ஏற்கத்தகா '--verify' செயல்மாற்றி~%" + +#: guix/scripts/gc.scm:142 +#, scheme-format +msgid "invalid amount of storage: ~a~%" +msgstr "" + +#: guix/scripts/gc.scm:156 +#, scheme-format +msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%" +msgstr "" + +#: guix/scripts/gc.scm:163 +#, scheme-format +msgid "~s does not denote a duration~%" +msgstr "~s காலயளவைக் குறிப்பதில்லை~%" + +#: guix/scripts/gc.scm:249 +msgid "already ~h MiBs available on ~a, nothing to do~%" +msgstr "" + +#: guix/scripts/gc.scm:252 +msgid "freeing ~h MiBs~%" +msgstr "~h எண்ணுன்மிகள் விடுவிக்கப்படுகின்றன~%" + +#: guix/scripts/gc.scm:291 +#, scheme-format +msgid "extraneous arguments: ~{~a ~}~%" +msgstr "" + +#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318 +msgid "freed ~h MiBs~%" +msgstr "~h எண்ணுன்மிகள் விடுவிக்கப்பட்டன~%" + +#: guix/scripts/hash.scm:48 +msgid "" +"Usage: guix hash [OPTION] FILE\n" +"Return the cryptographic hash of FILE.\n" +"\n" +"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n" +"and 'hexadecimal' can be used as well).\n" +msgstr "" + +#: guix/scripts/hash.scm:53 +msgid "" +"\n" +" -x, --exclude-vcs exclude version control directories" +msgstr "" + +#: guix/scripts/hash.scm:57 +msgid "" +"\n" +" -r, --recursive compute the hash on FILE recursively" +msgstr "" + +#: guix/scripts/hash.scm:151 guix/ui.scm:389 guix/ui.scm:414 guix/ui.scm:741 +#: guix/ui.scm:763 guix/ui.scm:769 guix/ui.scm:786 guix/ui.scm:839 +#, scheme-format +msgid "~a~%" +msgstr "~a~%" + +#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1204 +#: guix/scripts/system.scm:1220 guix/scripts/system.scm:1227 +#: guix/scripts/system.scm:1233 +#, scheme-format +msgid "wrong number of arguments~%" +msgstr "" + +#: guix/scripts/import.scm:88 +msgid "" +"Usage: guix import IMPORTER ARGS ...\n" +"Run IMPORTER with ARGS.\n" +msgstr "" + +#: guix/scripts/import.scm:91 +msgid "IMPORTER must be one of the importers listed below:\n" +msgstr "" + +#: guix/scripts/import.scm:105 +#, scheme-format +msgid "guix import: missing importer name~%" +msgstr "" + +#: guix/scripts/import.scm:126 +#, scheme-format +msgid "'~a' import failed~%" +msgstr "" + +#: guix/scripts/import.scm:127 +#, scheme-format +msgid "~a: invalid importer~%" +msgstr "" + +#: guix/scripts/import/cran.scm:43 +msgid "" +"Usage: guix import cran PACKAGE-NAME\n" +"Import and convert the CRAN package for PACKAGE-NAME.\n" +msgstr "" + +#: guix/scripts/import/cran.scm:45 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" + +#: guix/scripts/import/cran.scm:49 +msgid "" +"\n" +" -r, --recursive import packages recursively" +msgstr "" + +#: guix/scripts/import/cran.scm:106 +#, scheme-format +msgid "failed to download description for package '~a'~%" +msgstr "" + +#: guix/scripts/import/cran.scm:110 guix/scripts/import/elpa.scm:110 +#, scheme-format +msgid "too few arguments~%" +msgstr "" + +#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:112 +#, scheme-format +msgid "too many arguments~%" +msgstr "அளவிற்கதிகமான செயலுருபுகள்" + +#: guix/scripts/import/elpa.scm:43 +msgid "" +"Usage: guix import elpa PACKAGE-NAME\n" +"Import the latest package named PACKAGE-NAME from an ELPA repository.\n" +msgstr "" + +#: guix/scripts/import/elpa.scm:45 +msgid "" +"\n" +" -a, --archive=ARCHIVE specify the archive repository" +msgstr "" + +#: guix/scripts/import/elpa.scm:47 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +"\n" +" -h, --help இவ்வுதவிச் செய்தியைக் காட்டி வெளியேறு" + +#: guix/scripts/import/elpa.scm:49 +msgid "" +"\n" +" -r, --recursive generate package expressions for all Emacs packages that are not yet in Guix" +msgstr "" + +#: guix/scripts/import/elpa.scm:51 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +"\n" +" -V, --version பதிப்பு விவரத்தைக் காட்டி வெளியேறு" + +#: guix/scripts/import/elpa.scm:107 +#, scheme-format +msgid "failed to download package '~a'~%" +msgstr "'~a' மென்பொருள் தொகுப்பின் பதிவிறக்கம் தோல்வியுற்றது~%" + +#: guix/scripts/pull.scm:87 +msgid "" +"Usage: guix pull [OPTION]...\n" +"Download and deploy the latest version of Guix.\n" +msgstr "" +"பயன்பாடு: guix pull [<செயல்மாற்றி>]...\n" +"Guix யின் அண்மைய பதிப்பைப் பதிவிறக்கி நிறுவு.\n" + +#: guix/scripts/pull.scm:89 +msgid "" +"\n" +" -C, --channels=FILE deploy the channels defined in FILE" +msgstr "" + +#: guix/scripts/pull.scm:91 +msgid "" +"\n" +" --url=URL download from the Git repository at URL" +msgstr "" + +#: guix/scripts/pull.scm:93 +msgid "" +"\n" +" --commit=COMMIT download the specified COMMIT" +msgstr "" + +#: guix/scripts/pull.scm:95 +msgid "" +"\n" +" --branch=BRANCH download the tip of the specified BRANCH" +msgstr "" + +#: guix/scripts/pull.scm:97 +msgid "" +"\n" +" -N, --news display news compared to the previous generation" +msgstr "" + +#: guix/scripts/pull.scm:110 +#, scheme-format +msgid "" +"\n" +" -p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current" +msgstr "" + +#: guix/scripts/pull.scm:116 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the new Guix" +msgstr "" + +#: guix/scripts/pull.scm:217 +msgid "New in this revision:\n" +msgstr "இப்பதிப்பில் புதியவை:\n" + +#. TRANSLATORS: This describes a "channel"; the first placeholder is +#. the channel name (e.g., "guix") and the second placeholder is its +#. URL. +#: guix/scripts/pull.scm:226 +#, scheme-format +msgid " ~a at ~a~%" +msgstr "" + +#: guix/scripts/pull.scm:264 +#, scheme-format +msgid " commit ~a~%" +msgstr "" + +#: guix/scripts/pull.scm:301 +#, scheme-format +msgid "News for channel '~a'~%" +msgstr "" + +#: guix/scripts/pull.scm:327 +#, scheme-format +msgid " ~a new channel:~%" +msgid_plural " ~a new channels:~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/scripts/pull.scm:337 +#, scheme-format +msgid " ~a channel removed:~%" +msgid_plural " ~a channels removed:~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/scripts/pull.scm:416 +msgid "Run @command{guix pull --news} to read all the news." +msgstr "எல்லாச் செய்திகளையும் படிக்க @command{guix pull --news} கட்டளையைக் கொடுக்க." + +#: guix/scripts/pull.scm:424 +#, scheme-format +msgid "" +"After setting @code{PATH}, run\n" +"@command{hash guix} to make sure your shell refers to @file{~a}." +msgstr "" + +#: guix/scripts/pull.scm:449 +#, scheme-format +msgid "Git error ~a~%" +msgstr "Git பிழை ~a~%" + +#: guix/scripts/pull.scm:451 guix/git.scm:364 +#, scheme-format +msgid "Git error: ~a~%" +msgstr "Git பிழை: ~a~%" + +#: guix/scripts/pull.scm:476 +#, scheme-format +msgid "Migrating profile generations to '~a'...~%" +msgstr "" + +#: guix/scripts/pull.scm:518 +#, scheme-format +msgid "while creating symlink '~a': ~a~%" +msgstr "" + +#: guix/scripts/pull.scm:620 +msgid " ~h new package: ~a~%" +msgid_plural " ~h new packages: ~a~%" +msgstr[0] " ~h புதிய மென்பொருள் தொகுப்பு: ~a~%" +msgstr[1] " ~h புதிய மென்பொருள் தொகுப்புகள்: ~a~%" + +#: guix/scripts/pull.scm:628 +msgid " ~h package upgraded: ~a~%" +msgid_plural " ~h packages upgraded: ~a~%" +msgstr[0] " ~h மென்பொருள் தொகுப்பு திறமுயர்த்தப்பட்டது: ~a~%" +msgstr[1] " ~h மென்பொருள் தொகுப்புகள் திறமுயர்த்தப்பட்டன: ~a~%" + +#: guix/scripts/pull.scm:717 +#, scheme-format +msgid "'~a' did not return a list of channels~%" +msgstr "" + +#: guix/scripts/pull.scm:733 +#, scheme-format +msgid "" +"The 'GUIX_PULL_URL' environment variable is deprecated.\n" +"Use '~/.config/guix/channels.scm' instead." +msgstr "" + +#: guix/scripts/pull.scm:782 +#, scheme-format +msgid "Building from this channel:~%" +msgid_plural "Building from these channels:~%" +msgstr[0] "இவ்வலைத்தடம் கட்டமைக்கப்படுகிறது:~%" +msgstr[1] "இவ்வலைத்தடங்கள் கட்டமைக்கப்படுகின்றன:~%" + +#: guix/scripts/substitute.scm:124 +#, scheme-format +msgid "authentication and authorization of substitutes disabled!~%" +msgstr "" + +#: guix/scripts/substitute.scm:210 +#, scheme-format +msgid "download from '~a' failed: ~a, ~s~%" +msgstr "'~a' யிலிருந்து பதிவிறக்கம் தோல்வியுற்றது: ~a, ~s~%" + +#: guix/scripts/substitute.scm:223 +#, scheme-format +msgid "while fetching ~a: server is somewhat slow~%" +msgstr "" + +#: guix/scripts/substitute.scm:225 +#, scheme-format +msgid "try `--no-substitutes' if the problem persists~%" +msgstr "" + +#: guix/scripts/substitute.scm:235 +#, scheme-format +msgid "unsupported substitute URI scheme: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:274 +#, scheme-format +msgid "signature version must be a number: ~s~%" +msgstr "" + +#: guix/scripts/substitute.scm:278 +#, scheme-format +msgid "unsupported signature version: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:286 +#, scheme-format +msgid "signature is not a valid s-expression: ~s~%" +msgstr "" + +#: guix/scripts/substitute.scm:290 +#, scheme-format +msgid "invalid format of the signature field: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:418 +#, scheme-format +msgid "'~a' does not name a store item~%" +msgstr "" + +#: guix/scripts/substitute.scm:603 +#, scheme-format +msgid "~a: host not found: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:609 +#, scheme-format +msgid "~a: connection failed: ~a~%" +msgstr "~a: இணைப்பு தோல்வியுற்றது: ~a~%" + +#: guix/scripts/substitute.scm:625 +#, scheme-format +msgid "updating substitutes from '~a'... ~5,1f%" +msgstr "" + +#: guix/scripts/substitute.scm:696 +#, scheme-format +msgid "~s: unsupported server URI scheme~%" +msgstr "" + +#: guix/scripts/substitute.scm:836 +#, scheme-format +msgid "host name lookup error: ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:841 +#, scheme-format +msgid "TLS error in procedure '~a': ~a~%" +msgstr "" + +#: guix/scripts/substitute.scm:852 +msgid "" +"Usage: guix substitute [OPTION]...\n" +"Internal tool to substitute a pre-built binary to a local build.\n" +msgstr "" + +#: guix/scripts/substitute.scm:854 +msgid "" +"\n" +" --query report on the availability of substitutes for the\n" +" store file names passed on the standard input" +msgstr "" + +#: guix/scripts/substitute.scm:857 +msgid "" +"\n" +" --substitute STORE-FILE DESTINATION\n" +" download STORE-FILE and store it as a Nar in file\n" +" DESTINATION" +msgstr "" + +#: guix/scripts/substitute.scm:978 +#, scheme-format +msgid "no valid substitute for '~a'~%" +msgstr "" + +#: guix/scripts/substitute.scm:988 +#, scheme-format +msgid "Downloading ~a...~%" +msgstr "" + +#: guix/scripts/substitute.scm:1048 +msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" +msgstr "" + +#: guix/scripts/substitute.scm:1102 +#, scheme-format +msgid "~a: invalid URI~%" +msgstr "~a: ஏற்கத்தகா முகவரி~%" + +#: guix/scripts/substitute.scm:1173 +#, scheme-format +msgid "~a: unrecognized options~%" +msgstr "~a: அறியப்படா செயல்மாற்றிகள்~%" + +#: guix/scripts/authenticate.scm:59 +#, scheme-format +msgid "cannot find public key for secret key '~a'~%" +msgstr "" + +#: guix/scripts/authenticate.scm:79 +#, scheme-format +msgid "error: invalid signature: ~a~%" +msgstr "பிழை: ஏற்கத்தகா கையெழுத்து: ~a~%" + +#: guix/scripts/authenticate.scm:81 +#, scheme-format +msgid "error: unauthorized public key: ~a~%" +msgstr "" + +#: guix/scripts/authenticate.scm:83 +#, scheme-format +msgid "error: corrupt signature data: ~a~%" +msgstr "" + +#: guix/scripts/authenticate.scm:121 +msgid "" +"Usage: guix authenticate OPTION...\n" +"Sign or verify the signature on the given file. This tool is meant to\n" +"be used internally by 'guix-daemon'.\n" +msgstr "" + +#: guix/scripts/authenticate.scm:127 +msgid "wrong arguments" +msgstr "" + +#: guix/scripts/system.scm:154 +#, scheme-format +msgid "failed to register '~a' under '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:169 +#, scheme-format +msgid "copying to '~a'..." +msgstr "" + +#: guix/scripts/system.scm:196 +#, scheme-format +msgid "initializing the current root file system~%" +msgstr "" + +#: guix/scripts/system.scm:210 +#, scheme-format +msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" +msgstr "" + +#: guix/scripts/system.scm:240 guix/scripts/system.scm:757 +#: guix/scripts/system.scm:862 +#, scheme-format +msgid "bootloader successfully installed on '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:263 +#, scheme-format +msgid "while talking to shepherd: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:270 +#, scheme-format +msgid "service '~a' could not be found~%" +msgstr "'~a' பணி கிடைக்கவில்லை~%" + +#: guix/scripts/system.scm:273 +#, scheme-format +msgid "service '~a' does not have an action '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:277 +#, scheme-format +msgid "exception caught while executing '~a' on service '~a':~%" +msgstr "" + +#: guix/scripts/system.scm:285 +#, scheme-format +msgid "something went wrong: ~s~%" +msgstr "" + +#: guix/scripts/system.scm:288 +#, scheme-format +msgid "shepherd error~%" +msgstr "shepherd பிழை~%" + +#: guix/scripts/system.scm:305 +#, scheme-format +msgid "failed to obtain list of shepherd services~%" +msgstr "" + +#: guix/scripts/system.scm:368 +#, scheme-format +msgid "cannot switch to system generation '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:438 +msgid "the DAG of services" +msgstr "" + +#: guix/scripts/system.scm:451 +msgid "the dependency graph of shepherd services" +msgstr "" + +#: guix/scripts/system.scm:477 +#, scheme-format +msgid " repository URL: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:479 +#, scheme-format +msgid " branch: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:480 +#, scheme-format +msgid " commit: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:502 +#, scheme-format +msgid " file name: ~a~%" +msgstr " கோப்புப் பெயர்: ~a~%" + +#: guix/scripts/system.scm:503 +#, scheme-format +msgid " canonical file name: ~a~%" +msgstr " ஒழுங்குமுறைப்பட்ட கோப்புப் பெயர்: ~a~%" + +#. TRANSLATORS: Please preserve the two-space indentation. +#: guix/scripts/system.scm:505 +#, scheme-format +msgid " label: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:506 +#, scheme-format +msgid " bootloader: ~a~%" +msgstr " தொடக்க ஏற்றி: ~a~%" + +#. TRANSLATORS: The '~[', '~;', and '~]' sequences in this string must +#. be preserved. They denote conditionals, such that the result will +#. look like: +#. root device: UUID: 12345-678 +#. or: +#. root device: label: "my-root" +#. or just: +#. root device: /dev/sda3 +#: guix/scripts/system.scm:516 +#, scheme-format +msgid " root device: ~[UUID: ~a~;label: ~s~;~a~]~%" +msgstr "" + +#: guix/scripts/system.scm:527 +#, scheme-format +msgid " kernel: ~a~%" +msgstr "" + +#. TRANSLATORS: Here "channel" is the same terminology as used in +#. "guix describe" and "guix pull --channels". +#: guix/scripts/system.scm:537 +#, scheme-format +msgid " channels:~%" +msgstr "" + +#: guix/scripts/system.scm:540 +#, scheme-format +msgid " configuration file: ~a~%" +msgstr "" + +#: guix/scripts/system.scm:612 +#, scheme-format +msgid "~a: error: device '~a' not found: ~a~%" +msgstr "~a: பிழை: '~a' கருவி கிடைக்கவில்லை: ~a~%" + +#: guix/scripts/system.scm:616 +#, scheme-format +msgid "" +"If '~a' is a file system\n" +"label, write @code{(file-system-label ~s)} in your @code{device} field." +msgstr "" + +#: guix/scripts/system.scm:624 +#, scheme-format +msgid "~a: error: file system with label '~a' not found~%" +msgstr "" + +#: guix/scripts/system.scm:629 +#, scheme-format +msgid "~a: error: file system with UUID '~a' not found~%" +msgstr "" + +#: guix/scripts/system.scm:734 +#, scheme-format +msgid "~a not found: 'guix pull' was never run~%" +msgstr "" + +#: guix/scripts/system.scm:735 +#, scheme-format +msgid "Consider running 'guix pull' before 'reconfigure'.~%" +msgstr "" + +#: guix/scripts/system.scm:736 +#, scheme-format +msgid "Failing to do that may downgrade your system!~%" +msgstr "" + +#: guix/scripts/system.scm:855 +#, scheme-format +msgid "activating system...~%" +msgstr "" + +#: guix/scripts/system.scm:868 +#, scheme-format +msgid "initializing operating system under '~a'...~%" +msgstr "" + +#: guix/scripts/system.scm:912 +msgid "" +"Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" +"Build the operating system declared in FILE according to ACTION.\n" +"Some ACTIONS support additional ARGS.\n" +msgstr "" +"பயன்பாடு: guix system [<செயல்மாற்றி> ...] <செயல்> [<செயலுருபு ...>] [<கோப்பு>]\n" +"<கோப்பில்> குறிப்பிட்ட இயங்குதளத்தைச் <செயலின்படி> அமை.\n" +"சிலச் <செயல்கள்> கூடுதல் செயலுருபுகளை ஏற்கும்.\n" + +#: guix/scripts/system.scm:916 guix/scripts/container.scm:29 +msgid "The valid values for ACTION are:\n" +msgstr "ஏற்கத்தகுச் <செயல்கள்>:\n" + +#: guix/scripts/system.scm:918 +msgid " search search for existing service types\n" +msgstr "" + +#: guix/scripts/system.scm:920 +msgid " reconfigure switch to a new operating system configuration\n" +msgstr "" + +#: guix/scripts/system.scm:922 +msgid " roll-back switch to the previous operating system configuration\n" +msgstr "" + +#: guix/scripts/system.scm:924 +msgid " describe describe the current system\n" +msgstr "" + +#: guix/scripts/system.scm:926 +msgid " list-generations list the system generations\n" +msgstr "" + +#: guix/scripts/system.scm:928 +msgid " switch-generation switch to an existing operating system configuration\n" +msgstr "" + +#: guix/scripts/system.scm:930 +msgid " delete-generations delete old system generations\n" +msgstr "" + +#: guix/scripts/system.scm:932 +msgid " build build the operating system without installing anything\n" +msgstr "" + +#: guix/scripts/system.scm:934 +msgid " container build a container that shares the host's store\n" +msgstr "" + +#: guix/scripts/system.scm:936 +msgid " vm build a virtual machine image that shares the host's store\n" +msgstr "" + +#: guix/scripts/system.scm:938 +msgid " vm-image build a freestanding virtual machine image\n" +msgstr "" + +#: guix/scripts/system.scm:940 +msgid " disk-image build a disk image, suitable for a USB stick\n" +msgstr "" + +#: guix/scripts/system.scm:942 +msgid " docker-image build a Docker image\n" +msgstr "" + +#: guix/scripts/system.scm:944 +msgid " init initialize a root file system to run GNU\n" +msgstr "" + +#: guix/scripts/system.scm:946 +msgid " extension-graph emit the service extension graph in Dot format\n" +msgstr "" + +#: guix/scripts/system.scm:948 +msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" +msgstr "" + +#: guix/scripts/system.scm:952 +msgid "" +"\n" +" -d, --derivation return the derivation of the given system" +msgstr "" + +#: guix/scripts/system.scm:954 +msgid "" +"\n" +" -e, --expression=EXPR consider the operating-system EXPR evaluates to\n" +" instead of reading FILE, when applicable" +msgstr "" + +#: guix/scripts/system.scm:957 +msgid "" +"\n" +" --on-error=STRATEGY\n" +" apply STRATEGY (one of nothing-special, backtrace,\n" +" or debug) when an error occurs while reading FILE" +msgstr "" + +#: guix/scripts/system.scm:961 +msgid "" +"\n" +" --file-system-type=TYPE\n" +" for 'disk-image', produce a root file system of TYPE\n" +" (one of 'ext4', 'iso9660')" +msgstr "" + +#: guix/scripts/system.scm:965 +msgid "" +"\n" +" --image-size=SIZE for 'vm-image', produce an image of SIZE" +msgstr "" + +#: guix/scripts/system.scm:967 +msgid "" +"\n" +" --no-bootloader for 'init', do not install a bootloader" +msgstr "" + +#: guix/scripts/system.scm:969 guix/scripts/pack.scm:921 +msgid "" +"\n" +" --save-provenance save provenance information" +msgstr "" + +#: guix/scripts/system.scm:971 +msgid "" +"\n" +" --share=SPEC for 'vm', share host file system according to SPEC" +msgstr "" + +#: guix/scripts/system.scm:973 +msgid "" +"\n" +" --expose=SPEC for 'vm', expose host file system according to SPEC" +msgstr "" + +#: guix/scripts/system.scm:975 +msgid "" +"\n" +" -N, --network for 'container', allow containers to access the network" +msgstr "" + +#: guix/scripts/system.scm:977 +msgid "" +"\n" +" -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',\n" +" and 'build', make FILE a symlink to the result, and\n" +" register it as a garbage collector root" +msgstr "" + +#: guix/scripts/system.scm:981 +msgid "" +"\n" +" --full-boot for 'vm', make a full boot sequence" +msgstr "" + +#: guix/scripts/system.scm:983 +msgid "" +"\n" +" --skip-checks skip file system and initrd module safety checks" +msgstr "" + +#: guix/scripts/system.scm:1100 +#, scheme-format +msgid "'~a' does not return an operating system~%" +msgstr "" + +#: guix/scripts/system.scm:1123 +#, scheme-format +msgid "both file and expression cannot be specified~%" +msgstr "" + +#: guix/scripts/system.scm:1130 +#, scheme-format +msgid "no configuration specified~%" +msgstr "" + +#: guix/scripts/system.scm:1209 +#, scheme-format +msgid "no system generation, nothing to describe~%" +msgstr "" + +#: guix/scripts/system.scm:1253 +#, scheme-format +msgid "~a: unknown action~%" +msgstr "~a: அறியப்படாச் செயல்~%" + +#: guix/scripts/system.scm:1269 +#, scheme-format +msgid "wrong number of arguments for action '~a'~%" +msgstr "" + +#: guix/scripts/system.scm:1274 +#, scheme-format +msgid "guix system: missing command name~%" +msgstr "" + +#: guix/scripts/system.scm:1276 +#, scheme-format +msgid "Try 'guix system --help' for more information.~%" +msgstr "" + +#: guix/scripts/system/search.scm:92 guix/ui.scm:1332 guix/ui.scm:1350 +msgid "unknown" +msgstr "" + +#: guix/scripts/lint.scm:51 +#, scheme-format +msgid "~a@~a: ~a~%" +msgstr "~a@~a: ~a~%" + +#: guix/scripts/lint.scm:74 +#, scheme-format +msgid "Available checkers:~%" +msgstr "" + +#: guix/scripts/lint.scm:92 +msgid "" +"Usage: guix lint [OPTION]... [PACKAGE]...\n" +"Run a set of checkers on the specified package; if none is specified,\n" +"run the checkers on all packages.\n" +msgstr "" + +#: guix/scripts/lint.scm:95 +msgid "" +"\n" +" -c, --checkers=CHECKER1,CHECKER2...\n" +" only run the specified checkers" +msgstr "" + +#: guix/scripts/lint.scm:103 +msgid "" +"\n" +" -l, --list-checkers display the list of available lint checkers" +msgstr "" + +#: guix/scripts/lint.scm:122 +#, scheme-format +msgid "~a: invalid checker~%" +msgstr "" + +#: guix/scripts/publish.scm:72 +#, scheme-format +msgid "" +"Usage: guix publish [OPTION]...\n" +"Publish ~a over HTTP.\n" +msgstr "" +"பயன்பாடு: guix publish [<செயல்மாற்றி>]...\n" +"~a யை HTTP மூலம் வெளியிடு.\n" + +#: guix/scripts/publish.scm:74 +msgid "" +"\n" +" -p, --port=PORT listen on PORT" +msgstr "" + +#: guix/scripts/publish.scm:76 +msgid "" +"\n" +" --listen=HOST listen on the network interface for HOST" +msgstr "" + +#: guix/scripts/publish.scm:78 +msgid "" +"\n" +" -u, --user=USER change privileges to USER as soon as possible" +msgstr "" + +#: guix/scripts/publish.scm:80 +msgid "" +"\n" +" -C, --compression[=METHOD:LEVEL]\n" +" compress archives with METHOD at LEVEL" +msgstr "" + +#: guix/scripts/publish.scm:83 +msgid "" +"\n" +" -c, --cache=DIRECTORY cache published items to DIRECTORY" +msgstr "" + +#: guix/scripts/publish.scm:85 +msgid "" +"\n" +" --workers=N use N workers to bake items" +msgstr "" + +#: guix/scripts/publish.scm:87 +msgid "" +"\n" +" --ttl=TTL announce narinfos can be cached for TTL seconds" +msgstr "" + +#: guix/scripts/publish.scm:89 +msgid "" +"\n" +" --nar-path=PATH use PATH as the prefix for nar URLs" +msgstr "" + +#: guix/scripts/publish.scm:91 +msgid "" +"\n" +" --public-key=FILE use FILE as the public key for signatures" +msgstr "" + +#: guix/scripts/publish.scm:93 +msgid "" +"\n" +" --private-key=FILE use FILE as the private key for signatures" +msgstr "" + +#: guix/scripts/publish.scm:95 +msgid "" +"\n" +" -r, --repl[=PORT] spawn REPL server on PORT" +msgstr "" + +#: guix/scripts/publish.scm:111 +#, scheme-format +msgid "lookup of host '~a' failed: ~a~%" +msgstr "" + +#: guix/scripts/publish.scm:159 +#, scheme-format +msgid "lookup of host '~a' returned nothing" +msgstr "" + +#: guix/scripts/publish.scm:182 +#, scheme-format +msgid "~a: unsupported compression type~%" +msgstr "" + +#: guix/scripts/publish.scm:196 +#, scheme-format +msgid "~a: invalid duration~%" +msgstr "~a: ஏற்கத்தகா காலயளவு~%" + +#: guix/scripts/publish.scm:1008 +#, scheme-format +msgid "user '~a' not found: ~a~%" +msgstr "பயனர் '~a' இல்லை: ~a~%" + +#: guix/scripts/publish.scm:1059 +#, scheme-format +msgid "server running as root; consider using the '--user' option!~%" +msgstr "" + +#: guix/scripts/publish.scm:1064 +#, scheme-format +msgid "publishing ~a on ~a, port ~d~%" +msgstr "" + +#: guix/scripts/publish.scm:1070 +#, scheme-format +msgid "using '~a' compression method, level ~a~%" +msgstr "" + +#: guix/scripts/edit.scm:45 +msgid "" +"Usage: guix edit PACKAGE...\n" +"Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n" +msgstr "" +"பயன்பாடு: guix edit <மென்பொருள் தொகுப்புகள்>...\n" +"<மென்பொருள் தொகுப்புகளின்> வரையறையைத் திருத்த $VISUAL அல்லது $EDITOR யைத் துவக்கு...\n" + +#: guix/scripts/edit.scm:69 +#, scheme-format +msgid "file '~a' not found in search path ~s~%" +msgstr "'~a' கோப்பு தேடு பாதை ~s யில் கிடைக்கவில்லை~%" + +#: guix/scripts/edit.scm:104 +#, scheme-format +msgid "failed to launch '~a': ~a~%" +msgstr "" + +#: guix/scripts/size.scm:71 +#, scheme-format +msgid "no available substitute information for '~a'~%" +msgstr "" + +#: guix/scripts/size.scm:93 +msgid "store item" +msgstr "கிடங்குருப்படி" + +#: guix/scripts/size.scm:93 +msgid "total" +msgstr "மொத்தம்" + +#: guix/scripts/size.scm:93 +msgid "self" +msgstr "தனது" + +#: guix/scripts/size.scm:101 +#, scheme-format +msgid "total: ~,1f MiB~%" +msgstr "மொத்தம்: ~,1f MiB~%" + +#. TRANSLATORS: This is the title of a graph, meaning that the graph +#. represents a profile of the store (the "store" being the place where +#. packages are stored.) +#: guix/scripts/size.scm:224 +msgid "store profile" +msgstr "" + +#: guix/scripts/size.scm:233 +msgid "" +"Usage: guix size [OPTION]... PACKAGE\n" +"Report the size of PACKAGE and its dependencies.\n" +msgstr "" +"பயன்பாடு: guix size [<செயல்மாற்றி>]... <மென்பொருள் தொகுப்பு>\n" +"<மென்பொருள் தொகுப்பின்> கோப்பளவையும் அதைச் சார்ந்திருக்கும் தொகுப்புகளின் கோப்பளவையும் அறிவி.\n" + +#: guix/scripts/size.scm:238 +msgid "" +"\n" +" -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#. TRANSLATORS: "closure" and "self" must not be translated. +#: guix/scripts/size.scm:241 +msgid "" +"\n" +" --sort=KEY sort according to KEY--\"closure\" or \"self\"" +msgstr "" + +#: guix/scripts/size.scm:243 +msgid "" +"\n" +" -m, --map-file=FILE write to FILE a graphical map of disk usage" +msgstr "" + +#: guix/scripts/size.scm:277 +#, scheme-format +msgid "~a: invalid sorting key~%" +msgstr "" + +#: guix/scripts/size.scm:315 +msgid "missing store item argument\n" +msgstr "" + +#: guix/scripts/graph.scm:94 +#, scheme-format +msgid "~a: invalid argument (package name expected)" +msgstr "" + +#: guix/scripts/graph.scm:105 +msgid "the DAG of packages, excluding implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:141 +msgid "the reverse DAG of packages" +msgstr "" + +#: guix/scripts/graph.scm:191 +msgid "the DAG of packages, including implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:201 +msgid "the DAG of packages and origins, including implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:231 +msgid "same as 'bag', but without the bootstrap nodes" +msgstr "" + +#: guix/scripts/graph.scm:248 +msgid "the reverse DAG of packages, including implicit inputs" +msgstr "" + +#: guix/scripts/graph.scm:287 +msgid "the DAG of derivations" +msgstr "" + +#: guix/scripts/graph.scm:299 +msgid "unsupported argument for derivation graph" +msgstr "" + +#: guix/scripts/graph.scm:325 +msgid "unsupported argument for this type of graph" +msgstr "" + +#: guix/scripts/graph.scm:338 +#, scheme-format +msgid "references for '~a' are not known~%" +msgstr "" + +#: guix/scripts/graph.scm:345 +msgid "the DAG of run-time dependencies (store references)" +msgstr "" + +#: guix/scripts/graph.scm:361 +msgid "the DAG of referrers in the store" +msgstr "" + +#: guix/scripts/graph.scm:391 +msgid "the graph of package modules" +msgstr "" + +#: guix/scripts/graph.scm:420 +#, scheme-format +msgid "~a: unknown node type~%" +msgstr "" + +#: guix/scripts/graph.scm:427 +#, scheme-format +msgid "~a: unknown backend~%" +msgstr "~a: அறியப்படா பின்நிலை~%" + +#: guix/scripts/graph.scm:431 +msgid "The available node types are:\n" +msgstr "" + +#: guix/scripts/graph.scm:441 +msgid "The available backend types are:\n" +msgstr "" + +#. TRANSLATORS: Here 'dot' is the name of a program; it must not be +#. translated. +#: guix/scripts/graph.scm:494 +msgid "" +"Usage: guix graph PACKAGE...\n" +"Emit a representation of the dependency graph of PACKAGE...\n" +msgstr "" + +#: guix/scripts/graph.scm:496 +msgid "" +"\n" +" -b, --backend=TYPE produce a graph with the given backend TYPE" +msgstr "" + +#: guix/scripts/graph.scm:498 +msgid "" +"\n" +" --list-backends list the available graph backends" +msgstr "" + +#: guix/scripts/graph.scm:500 +msgid "" +"\n" +" -t, --type=TYPE represent nodes of the given TYPE" +msgstr "" + +#: guix/scripts/graph.scm:502 +msgid "" +"\n" +" --list-types list the available graph types" +msgstr "" + +#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:906 +msgid "" +"\n" +" -e, --expression=EXPR consider the package EXPR evaluates to" +msgstr "" + +#: guix/scripts/graph.scm:506 +msgid "" +"\n" +" -s, --system=SYSTEM consider the graph for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#: guix/scripts/challenge.scm:301 +#, scheme-format +msgid " differing file:~%" +msgid_plural " differing files:~%" +msgstr[0] " வேறுபடும் கோப்பு:~$" +msgstr[1] " வேறுபடும் கோப்புகள்:~%" + +#: guix/scripts/challenge.scm:370 +#, scheme-format +msgid " local hash: ~a~%" +msgstr "" + +#: guix/scripts/challenge.scm:371 +#, scheme-format +msgid " no local build for '~a'~%" +msgstr "" + +#: guix/scripts/challenge.scm:373 +#, scheme-format +msgid " ~50a: ~a~%" +msgstr "" + +#: guix/scripts/challenge.scm:381 +#, scheme-format +msgid "~a contents differ:~%" +msgstr "" + +#: guix/scripts/challenge.scm:385 +#, scheme-format +msgid "could not challenge '~a': no local build~%" +msgstr "" + +#: guix/scripts/challenge.scm:387 +#, scheme-format +msgid "could not challenge '~a': no substitutes~%" +msgstr "" + +#: guix/scripts/challenge.scm:390 +#, scheme-format +msgid "~a contents match:~%" +msgstr "" + +#: guix/scripts/challenge.scm:399 +msgid "~h store items were analyzed:~%" +msgstr "" + +#: guix/scripts/challenge.scm:400 +msgid " - ~h (~,1f%) were identical~%" +msgstr "" + +#: guix/scripts/challenge.scm:402 +msgid " - ~h (~,1f%) differed~%" +msgstr "" + +#: guix/scripts/challenge.scm:404 +msgid " - ~h (~,1f%) were inconclusive~%" +msgstr "" + +#: guix/scripts/challenge.scm:413 +msgid "" +"Usage: guix challenge [PACKAGE...]\n" +"Challenge the substitutes for PACKAGE... provided by one or more servers.\n" +msgstr "" +"பயன்பாடு: guix challenge [<மென்பொருள் தொகுப்பு>...]\n" +"ஒரு வழங்கியோ பல வழங்கிகளோ வழங்கிய <மென்பொருள் தொகுப்புகளின்> பதிலீடுகளைத் தேர்.\n" + +#: guix/scripts/challenge.scm:415 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" compare build results with those at URLS" +msgstr "" + +#: guix/scripts/challenge.scm:418 +msgid "" +"\n" +" -v, --verbose show details about successful comparisons" +msgstr "" + +#: guix/scripts/challenge.scm:420 +msgid "" +"\n" +" --diff=MODE show differences according to MODE" +msgstr "" + +#: guix/scripts/challenge.scm:449 +#, scheme-format +msgid "~a: unknown diff mode~%" +msgstr "" + +#: guix/scripts/copy.scm:60 +#, scheme-format +msgid "~a: invalid TCP port number~%" +msgstr "" + +#: guix/scripts/copy.scm:62 +#, scheme-format +msgid "~a: invalid SSH specification~%" +msgstr "" + +#: guix/scripts/copy.scm:114 +msgid "" +"Usage: guix copy [OPTION]... ITEMS...\n" +"Copy ITEMS to or from the specified host over SSH.\n" +msgstr "" + +#: guix/scripts/copy.scm:116 +msgid "" +"\n" +" --to=HOST send ITEMS to HOST" +msgstr "" + +#: guix/scripts/copy.scm:118 +msgid "" +"\n" +" --from=HOST receive ITEMS from HOST" +msgstr "" + +#: guix/scripts/copy.scm:182 +#, scheme-format +msgid "use '--to' or '--from'~%" +msgstr "" + +#: guix/scripts/pack.scm:98 +#, scheme-format +msgid "~a: compressor not found~%" +msgstr "" + +#: guix/scripts/pack.scm:283 +#, scheme-format +msgid "entry point not supported in the '~a' format~%" +msgstr "" + +#: guix/scripts/pack.scm:644 +#, scheme-format +msgid "" +"cross-compilation not implemented here;\n" +"please email '~a'~%" +msgstr "" + +#: guix/scripts/pack.scm:787 +msgid "The supported formats for 'guix pack' are:" +msgstr "" + +#: guix/scripts/pack.scm:789 +msgid "" +"\n" +" tarball Self-contained tarball, ready to run on another machine" +msgstr "" + +#: guix/scripts/pack.scm:791 +msgid "" +"\n" +" squashfs Squashfs image suitable for Singularity" +msgstr "" + +#: guix/scripts/pack.scm:793 +msgid "" +"\n" +" docker Tarball ready for 'docker load'" +msgstr "" + +#: guix/scripts/pack.scm:862 +#, scheme-format +msgid "~a: invalid symlink specification~%" +msgstr "" + +#: guix/scripts/pack.scm:876 +#, scheme-format +msgid "~a: unsupported profile name~%" +msgstr "" + +#: guix/scripts/pack.scm:894 +msgid "" +"Usage: guix pack [OPTION]... PACKAGE...\n" +"Create a bundle of PACKAGE.\n" +msgstr "" + +#: guix/scripts/pack.scm:900 +msgid "" +"\n" +" -f, --format=FORMAT build a pack in the given FORMAT" +msgstr "" + +#: guix/scripts/pack.scm:902 +msgid "" +"\n" +" --list-formats list the formats available" +msgstr "" + +#: guix/scripts/pack.scm:904 +msgid "" +"\n" +" -R, --relocatable produce relocatable executables" +msgstr "" + +#: guix/scripts/pack.scm:912 +msgid "" +"\n" +" -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" +msgstr "" + +#: guix/scripts/pack.scm:914 +msgid "" +"\n" +" -S, --symlink=SPEC create symlinks to the profile according to SPEC" +msgstr "" + +#: guix/scripts/pack.scm:916 +msgid "" +"\n" +" -m, --manifest=FILE create a pack with the manifest from FILE" +msgstr "" + +#: guix/scripts/pack.scm:918 +msgid "" +"\n" +" --entry-point=PROGRAM\n" +" use PROGRAM as the entry point of the pack" +msgstr "" + +#: guix/scripts/pack.scm:923 +msgid "" +"\n" +" --localstatedir include /var/guix in the resulting pack" +msgstr "" + +#: guix/scripts/pack.scm:925 +msgid "" +"\n" +" --profile-name=NAME\n" +" populate /var/guix/profiles/.../NAME" +msgstr "" + +#: guix/scripts/pack.scm:931 +msgid "" +"\n" +" -d, --derivation return the derivation of the pack" +msgstr "" + +#: guix/scripts/pack.scm:935 +msgid "" +"\n" +" --bootstrap use the bootstrap binaries to build the pack" +msgstr "" + +#: guix/scripts/pack.scm:986 +#, scheme-format +msgid "could not determine provenance of package ~a~%" +msgstr "" + +#: guix/scripts/pack.scm:995 +#, scheme-format +msgid "both a manifest and a package list were given~%" +msgstr "" + +#: guix/scripts/pack.scm:1049 +#, scheme-format +msgid "~a: unknown pack format~%" +msgstr "" + +#: guix/scripts/pack.scm:1059 +#, scheme-format +msgid "no packages specified; building an empty pack~%" +msgstr "" + +#: guix/scripts/pack.scm:1063 +#, scheme-format +msgid "Singularity requires you to provide a shell~%" +msgstr "" + +#: guix/scripts/pack.scm:1064 +msgid "Add @code{bash} or @code{bash-minimal} to your package list." +msgstr "" + +#: guix/scripts/weather.scm:80 +msgid "computing ~h package derivations for ~a...~%" +msgstr "" + +#: guix/scripts/weather.scm:169 +msgid "looking for ~h store items on ~a...~%" +msgstr "" + +#: guix/scripts/weather.scm:184 +msgid " ~2,1f% substitutes available (~h out of ~h)~%" +msgstr "" + +#: guix/scripts/weather.scm:190 +#, scheme-format +msgid " unknown substitute sizes~%" +msgstr "" + +#: guix/scripts/weather.scm:193 +msgid " ~,1h MiB of nars (compressed)~%" +msgstr "" + +#: guix/scripts/weather.scm:194 +msgid " at least ~,1h MiB of nars (compressed)~%" +msgstr "" + +#: guix/scripts/weather.scm:196 +msgid " ~,1h MiB on disk (uncompressed)~%" +msgstr "" + +#: guix/scripts/weather.scm:198 +msgid " ~,3h seconds per request (~,1h seconds in total)~%" +msgstr "" + +#: guix/scripts/weather.scm:200 +msgid " ~,1h requests per second~%" +msgstr "" + +#: guix/scripts/weather.scm:206 +#, scheme-format +msgid " (continuous integration information unavailable)~%" +msgstr "" + +#: guix/scripts/weather.scm:209 +#, scheme-format +msgid " '~a' returned ~a (~s)~%" +msgstr "" + +#: guix/scripts/weather.scm:226 +msgid " ~,1f% (~h out of ~h) of the missing items are queued~%" +msgstr "" + +#: guix/scripts/weather.scm:232 +msgid " at least ~h queued builds~%" +msgstr "" + +#: guix/scripts/weather.scm:233 +msgid " ~h queued builds~%" +msgstr "" + +#: guix/scripts/weather.scm:236 +#, scheme-format +msgid " ~a: ~a (~0,1f%)~%" +msgstr "" + +#: guix/scripts/weather.scm:242 +#, scheme-format +msgid " build rate: ~1,2f builds per hour~%" +msgstr "" + +#: guix/scripts/weather.scm:246 +#, scheme-format +msgid " ~a: ~,2f builds per hour~%" +msgstr "" + +#: guix/scripts/weather.scm:258 +msgid "" +"Usage: guix weather [OPTIONS] [PACKAGES ...]\n" +"Report the availability of substitutes.\n" +msgstr "" + +#: guix/scripts/weather.scm:260 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" check for available substitutes at URLS" +msgstr "" + +#: guix/scripts/weather.scm:263 +msgid "" +"\n" +" -m, --manifest=MANIFEST\n" +" look up substitutes for packages specified in MANIFEST" +msgstr "" + +#: guix/scripts/weather.scm:266 +msgid "" +"\n" +" -c, --coverage[=COUNT]\n" +" show substitute coverage for packages with at least\n" +" COUNT dependents" +msgstr "" + +#: guix/scripts/weather.scm:270 +msgid "" +"\n" +" -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\"" +msgstr "" + +#: guix/scripts/weather.scm:294 +#, scheme-format +msgid "~a: invalid URL~%" +msgstr "" + +#: guix/scripts/weather.scm:423 +#, scheme-format +msgid "The following ~a package is missing from '~a' for '~a':~%" +msgid_plural "The following ~a packages are missing from '~a' for '~a':~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/scripts/weather.scm:429 +#, scheme-format +msgid "~a package is missing from '~a' for '~a':~%" +msgid_plural "~a packages are missing from '~a' for '~a', among which:~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/scripts/describe.scm:50 +#, scheme-format +msgid "~a: unsupported output format~%" +msgstr "" + +#: guix/scripts/describe.scm:69 +msgid "" +"Usage: guix describe [OPTION]...\n" +"Display information about the channels currently in use.\n" +msgstr "" + +#: guix/scripts/describe.scm:71 +msgid "" +"\n" +" -f, --format=FORMAT display information in the given FORMAT" +msgstr "" + +#: guix/scripts/describe.scm:73 +msgid "" +"\n" +" -p, --profile=PROFILE display information about PROFILE" +msgstr "" + +#: guix/scripts/describe.scm:92 +#, scheme-format +msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%" +msgstr "" + +#: guix/scripts/describe.scm:95 +#, scheme-format +msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%" +msgstr "" + +#: guix/scripts/describe.scm:122 +#, scheme-format +msgid "failed to determine origin~%" +msgstr "" + +#: guix/scripts/describe.scm:123 +#, scheme-format +msgid "" +"Perhaps this\n" +"@command{guix} command was not obtained with @command{guix pull}? Its version\n" +"string is ~a.~%" +msgstr "" + +#: guix/scripts/describe.scm:133 +#, scheme-format +msgid "Git checkout:~%" +msgstr "" + +#: guix/scripts/describe.scm:134 +#, scheme-format +msgid " repository: ~a~%" +msgstr "" + +#: guix/scripts/describe.scm:135 +#, scheme-format +msgid " branch: ~a~%" +msgstr "" + +#: guix/scripts/describe.scm:136 +#, scheme-format +msgid " commit: ~a~%" +msgstr "" + +#: guix/scripts/describe.scm:198 +#, scheme-format +msgid " repository URL: ~a~%" +msgstr "" + +#: guix/scripts/describe.scm:200 +#, scheme-format +msgid " branch: ~a~%" +msgstr "" + +#: guix/scripts/describe.scm:201 +#, scheme-format +msgid " commit: ~a~%" +msgstr "" + +#: guix/scripts/processes.scm:211 +msgid "" +"Usage: guix processes\n" +"List the current Guix sessions and their processes." +msgstr "" + +#: guix/scripts/deploy.scm:47 +msgid "" +"Usage: guix deploy [OPTION] FILE...\n" +"Perform the deployment specified by FILE.\n" +msgstr "" + +#: guix/scripts/deploy.scm:112 +#, scheme-format +msgid "deploying to ~a...~%" +msgstr "" + +#: guix/scripts/deploy.scm:116 +#, scheme-format +msgid "failed to deploy ~a: ~a~%" +msgstr "" + +#: guix/scripts/deploy.scm:121 +#, scheme-format +msgid "rolling back ~a...~%" +msgstr "" + +#: guix/gnu-maintenance.scm:647 +msgid "Updater for GNU packages" +msgstr "" + +#: guix/gnu-maintenance.scm:656 +msgid "Updater for GNU packages only available via FTP" +msgstr "" + +#: guix/gnu-maintenance.scm:665 +msgid "Updater for X.org packages" +msgstr "" + +#: guix/gnu-maintenance.scm:672 +msgid "Updater for packages hosted on kernel.org" +msgstr "" + +#: guix/scripts/container.scm:26 +msgid "" +"Usage: guix container ACTION ARGS...\n" +"Build and manipulate Linux containers.\n" +msgstr "" + +#: guix/scripts/container.scm:31 +msgid " exec execute a command inside of an existing container\n" +msgstr "" + +#: guix/scripts/container.scm:54 +#, scheme-format +msgid "guix container: missing action~%" +msgstr "" + +#: guix/scripts/container.scm:64 +#, scheme-format +msgid "guix container: invalid action~%" +msgstr "" + +#: guix/scripts/container/exec.scm:40 +msgid "" +"Usage: guix container exec PID COMMAND [ARGS...]\n" +"Execute COMMAND within the container process PID.\n" +msgstr "" + +#: guix/scripts/container/exec.scm:69 +#, scheme-format +msgid "~a: extraneous argument~%" +msgstr "" + +#: guix/scripts/container/exec.scm:87 +#, scheme-format +msgid "no pid specified~%" +msgstr "" + +#: guix/scripts/container/exec.scm:90 +#, scheme-format +msgid "no command specified~%" +msgstr "" + +#: guix/scripts/container/exec.scm:93 +#, scheme-format +msgid "no such process ~d~%" +msgstr "" + +#: guix/scripts/container/exec.scm:105 +#, scheme-format +msgid "exec failed with status ~d~%" +msgstr "" + +#: guix/upstream.scm:328 +#, scheme-format +msgid "signature verification failed for '~a' (key: ~a)~%" +msgstr "" + +#: guix/upstream.scm:332 +#, scheme-format +msgid "missing public key ~a for '~a'~%" +msgstr "" + +#: guix/upstream.scm:408 +#, scheme-format +msgid "cannot download for this method: ~s" +msgstr "" + +#: guix/upstream.scm:471 +#, scheme-format +msgid "~a: could not locate source file" +msgstr "" + +#: guix/upstream.scm:476 +#, scheme-format +msgid "~a: ~a: no `version' field in source; skipping~%" +msgstr "" + +#: guix/ui.scm:154 +#, scheme-format +msgid "error: ~a: unbound variable" +msgstr "பிழை: ~a: பிணைக்கப்படா மாறி" + +#: guix/ui.scm:254 +msgid "entering debugger; type ',bt' for a backtrace\n" +msgstr "" + +#: guix/ui.scm:311 +msgid "hint: " +msgstr "சிறுகுறிப்பு: " + +#: guix/ui.scm:328 +msgid "Did you forget a @code{use-modules} form?" +msgstr "@code{use-modules} யை மறந்தீரோ?" + +#: guix/ui.scm:330 +#, scheme-format +msgid "Did you forget @code{(use-modules ~a)}?" +msgstr "@code{(use-modules ~a)} யை மறந்தீரோ?" + +#: guix/ui.scm:340 +#, scheme-format +msgid "" +"File @file{~a} should probably start with:\n" +"\n" +"@example\n" +"(define-module ~a)\n" +"@end example" +msgstr "" + +#: guix/ui.scm:354 +#, scheme-format +msgid "module name ~a does not match file name '~a'~%" +msgstr "" + +#: guix/ui.scm:358 +#, scheme-format +msgid "~a: file is empty~%" +msgstr "~a: கோப்பில் ஒன்றுமில்லை~%" + +#: guix/ui.scm:369 guix/ui.scm:411 guix/ui.scm:419 +#, scheme-format +msgid "failed to load '~a': ~a~%" +msgstr "" + +#: guix/ui.scm:376 +#, scheme-format +msgid "~amissing closing parenthesis~%" +msgstr "" + +#: guix/ui.scm:381 +#, scheme-format +msgid "~s: ~a~%" +msgstr "~s: ~a~%" + +#: guix/ui.scm:391 guix/ui.scm:842 +#, scheme-format +msgid "exception thrown: ~s~%" +msgstr "" + +#: guix/ui.scm:395 guix/ui.scm:425 +#, scheme-format +msgid "failed to load '~a':~%" +msgstr "" + +#: guix/ui.scm:422 +#, scheme-format +msgid "failed to load '~a': exception thrown: ~s~%" +msgstr "" + +#: guix/ui.scm:470 +msgid "" +"Consider installing the @code{glibc-utf8-locales} or\n" +"@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n" +"lines:\n" +"\n" +"@example\n" +"guix package -i glibc-utf8-locales\n" +"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n" +"@end example\n" +"\n" +"See the \"Application Setup\" section in the manual, for more info.\n" +msgstr "" + +#. TRANSLATORS: Translate "(C)" to the copyright symbol +#. (C-in-a-circle), if this symbol is available in the user's +#. locale. Otherwise, do not translate "(C)"; leave it as-is. */ +#: guix/ui.scm:508 +msgid "(C)" +msgstr "" + +#: guix/ui.scm:509 +msgid "the Guix authors\n" +msgstr "Guix நிரலாசிரியர்\n" + +#: guix/ui.scm:510 +msgid "" +"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The placeholder indicates the bug-reporting address for this +#. package. Please add another line saying "Report translation bugs to +#. ...\n" with the address for translation bugs (typically your translation +#. team's web or email address). +#: guix/ui.scm:522 +#, scheme-format +msgid "" +"\n" +"Report bugs to: ~a." +msgstr "" +"\n" +"வழுக்களை ~a யிடம் அறிவிக்க.\n" +"தமிழாக்க வழுக்களை tamil@systemreboot.net யிடம் அறிவிக்க." + +#: guix/ui.scm:524 +#, scheme-format +msgid "" +"\n" +"~a home page: <~a>" +msgstr "" +"\n" +"\n" +"~a வலைத்தளம்: <~a>" + +#: guix/ui.scm:526 +msgid "" +"\n" +"General help using GNU software: <http://www.gnu.org/gethelp/>" +msgstr "" +"\n" +"\n" +"GNU மென்பொருள் பயன்பாட்டு உதவிக்கு: <http://www.gnu.org/gethelp/>" + +#: guix/ui.scm:581 +#, scheme-format +msgid "'~a' is not a valid regular expression: ~a~%" +msgstr "" + +#: guix/ui.scm:587 +#, scheme-format +msgid "~a: invalid number~%" +msgstr "~a: ஏற்கத்தகா எண்~%" + +#: guix/ui.scm:604 +#, scheme-format +msgid "invalid number: ~a~%" +msgstr "ஏற்கத்தகா எண்: ~a~%" + +#: guix/ui.scm:627 +#, scheme-format +msgid "unknown unit: ~a~%" +msgstr "" + +#: guix/ui.scm:642 +#, scheme-format +msgid "" +"You cannot have two different versions\n" +"or variants of @code{~a} in the same profile." +msgstr "" + +#: guix/ui.scm:645 +#, scheme-format +msgid "" +"Try upgrading both @code{~a} and @code{~a},\n" +"or remove one of them from the profile." +msgstr "" + +#: guix/ui.scm:664 +#, scheme-format +msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" +msgstr "~a:~a:~a: `~a' மென்பொருள் தொகுப்பிற்கு ஓர் ஏற்கத்தகா உள்ளீடுள்ளது: ~s~%" + +#: guix/ui.scm:671 +#, scheme-format +msgid "~a: ~a: build system `~a' does not support cross builds~%" +msgstr "" + +#: guix/ui.scm:677 +#, scheme-format +msgid "~s: invalid G-expression input~%" +msgstr "" + +#: guix/ui.scm:680 +#, scheme-format +msgid "profile '~a' does not exist~%" +msgstr "" + +#: guix/ui.scm:683 +#, scheme-format +msgid "generation ~a of profile '~a' does not exist~%" +msgstr "" + +#: guix/ui.scm:688 +#, scheme-format +msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%" +msgstr "" + +#: guix/ui.scm:700 +#, scheme-format +msgid " ... propagated from ~a@~a~%" +msgstr "" + +#: guix/ui.scm:710 +#, scheme-format +msgid "profile contains conflicting entries for ~a~a~%" +msgstr "" + +#: guix/ui.scm:713 +#, scheme-format +msgid " first entry: ~a@~a~a ~a~%" +msgstr " முதல் உள்ளடக்கம்: ~a@~a~a ~a~%" + +#: guix/ui.scm:719 +#, scheme-format +msgid " second entry: ~a@~a~a ~a~%" +msgstr " இரண்டாம் உள்ளடக்கம்: ~a@~a~a ~a~%" + +#: guix/ui.scm:731 +#, scheme-format +msgid "corrupt input while restoring '~a' from ~s~%" +msgstr "" + +#: guix/ui.scm:733 +#, scheme-format +msgid "corrupt input while restoring archive from ~s~%" +msgstr "" + +#: guix/ui.scm:736 +#, scheme-format +msgid "failed to connect to `~a': ~a~%" +msgstr "" + +#: guix/ui.scm:744 +#, scheme-format +msgid "reference to invalid output '~a' of derivation '~a'~%" +msgstr "" + +#: guix/ui.scm:748 +#, scheme-format +msgid "file '~a' could not be found in these directories:~{ ~a~}~%" +msgstr "'~a' கோப்பு இவ்வடைவுகளில் கிடைக்கவில்லை:~{~a~}~%" + +#: guix/ui.scm:753 +#, scheme-format +msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%" +msgstr "" + +#: guix/ui.scm:827 +#, scheme-format +msgid "failed to read expression ~s: ~s~%" +msgstr "" + +#: guix/ui.scm:833 +#, scheme-format +msgid "failed to evaluate expression '~a':~%" +msgstr "" + +#: guix/ui.scm:836 +#, scheme-format +msgid "syntax error: ~a~%" +msgstr "" + +#: guix/ui.scm:854 +#, scheme-format +msgid "expression ~s does not evaluate to a package~%" +msgstr "" + +#: guix/ui.scm:881 +msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%" +msgstr "" + +#: guix/ui.scm:977 +#, scheme-format +msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:985 +msgid "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]" +msgstr "" + +#: guix/ui.scm:991 +#, scheme-format +msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:998 +#, scheme-format +msgid "~:[The following graft would be made:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following grafts would be made:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1003 +#, scheme-format +msgid "~:[The following profile hook would be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following profile hooks would be built:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1009 +#, scheme-format +msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[பின்வரும் வருவி கட்டப்படும்:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[பின்வரும் வருவிகள் கட்டப்படும்:~%~{ ~a~%~}~;~]" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:1017 +msgid "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[~,1h MB பதிவிறக்கப்படும்:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1023 +#, scheme-format +msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1030 +#, scheme-format +msgid "~:[The following graft will be made:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following grafts will be made:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[பின்வரும் ஒட்டு செய்யப்படும்:~%~{ ~a~%~}~;~]" +msgstr[1] "~:[பின்வரும் ஒட்டுகள் செய்யப்படும்:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:1035 +#, scheme-format +msgid "~:[The following profile hook will be built:~%~{ ~a~%~}~;~]" +msgid_plural "~:[The following profile hooks will be built:~%~{ ~a~%~}~;~]" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1094 +#, scheme-format +msgid "The following package would be removed:~%~{~a~%~}~%" +msgid_plural "The following packages would be removed:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1099 +#, scheme-format +msgid "The following package will be removed:~%~{~a~%~}~%" +msgid_plural "The following packages will be removed:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1112 +#, scheme-format +msgid "The following package would be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1117 +#, scheme-format +msgid "The following package will be downgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/ui.scm:1130 +#, scheme-format +msgid "The following package would be upgraded:~%~{~a~%~}~%" +msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" +msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு திறமுயர்த்தப்பட்டிருக்கும்:~%~{~a~%~}~%" +msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் திறமுயர்த்தப்பட்டிருக்கும்:~%~{~a~%~}~%" + +#: guix/ui.scm:1135 +#, scheme-format +msgid "The following package will be upgraded:~%~{~a~%~}~%" +msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" +msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு திறமுயர்த்தப்படும்:~%~{~a~%~}~%" +msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் திறமுயர்த்தப்படும்:~%~{~a~%~}~%" + +#: guix/ui.scm:1146 +#, scheme-format +msgid "The following package would be installed:~%~{~a~%~}~%" +msgid_plural "The following packages would be installed:~%~{~a~%~}~%" +msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு நிறுவப்பட்டிருக்கும்:~%~{~a~%~}~%" +msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் நிறுவப்பட்டிருக்கும்:~%~{~a~%~}~%" + +#: guix/ui.scm:1151 +#, scheme-format +msgid "The following package will be installed:~%~{~a~%~}~%" +msgid_plural "The following packages will be installed:~%~{~a~%~}~%" +msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு நிறுவப்படும்:~%~{~a~%~}~%" +msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் நிறுவப்படும்:~%~{~a~%~}~%" + +#: guix/ui.scm:1480 +#, scheme-format +msgid "Run @code{~a ... | less} to view all the results." +msgstr "" + +#: guix/ui.scm:1630 +#, scheme-format +msgid "invalid syntax: ~a~%" +msgstr "" + +#: guix/ui.scm:1640 +#, scheme-format +msgid "Generation ~a\t~a" +msgstr "" + +#. TRANSLATORS: This is a format-string for date->string. +#. Please choose a format that corresponds to the +#. usual way of presenting dates in your locale. +#. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html +#. for details. +#: guix/ui.scm:1650 +#, scheme-format +msgid "~b ~d ~Y ~T" +msgstr "" + +#. TRANSLATORS: The word "current" here is an adjective for +#. "Generation", as in "current generation". Use the appropriate +#. gender where applicable. +#: guix/ui.scm:1656 +#, scheme-format +msgid "~a\t(current)~%" +msgstr "" + +#: guix/ui.scm:1690 +#, scheme-format +msgid "cannot lock profile ~a: ~a~%" +msgstr "" + +#: guix/ui.scm:1692 +#, scheme-format +msgid "profile ~a is locked by another process~%" +msgstr "" + +#: guix/ui.scm:1719 +#, scheme-format +msgid "switched from generation ~a to ~a~%" +msgstr "" + +#: guix/ui.scm:1735 +#, scheme-format +msgid "deleting ~a~%" +msgstr "" + +#: guix/ui.scm:1766 +#, scheme-format +msgid "Try `guix --help' for more information.~%" +msgstr "" + +#: guix/ui.scm:1794 +msgid "" +"Usage: guix COMMAND ARGS...\n" +"Run COMMAND with ARGS.\n" +msgstr "" +"பயன்பாடு: guix <கட்டளை> <செயலுருபுகள்>...\n" +"<கட்டளையைச்> <செயலுருபுகளுடன்> இயக்குக.\n" + +#: guix/ui.scm:1797 +msgid "COMMAND must be one of the sub-commands listed below:\n" +msgstr "<கட்டளை> கீழ் பட்டியலிடப்பட்டுள்ள சார் கட்டளைகளுளொன்றாக இருக்க வேண்டும்:\n" + +#: guix/ui.scm:1813 +#, scheme-format +msgid "guix: ~a: command not found~%" +msgstr "" + +#: guix/ui.scm:1843 +#, scheme-format +msgid "guix: missing command name~%" +msgstr "" + +#: guix/ui.scm:1851 +#, scheme-format +msgid "guix: unrecognized option '~a'~%" +msgstr "guix: அறியப்படாச் செயல்மாற்றி '~a'~%" + +#. TRANSLATORS: The word "phase" here denotes a "build phase"; +#. "~a" is a placeholder for the untranslated name of the current +#. build phase--e.g., 'configure' or 'build'. +#: guix/status.scm:358 +#, scheme-format +msgid "'~a' phase" +msgstr "'~a' கட்டம்" + +#: guix/status.scm:378 +msgid "building directory of Info manuals..." +msgstr "Info கையேடுகளின் அடைவு அமைக்கப்படுகிறது..." + +#: guix/status.scm:380 +msgid "building GHC package cache..." +msgstr "" + +#: guix/status.scm:382 +msgid "building CA certificate bundle..." +msgstr "CA சான்றிதழ் பொதி அமைக்கப்படுகிறது..." + +#: guix/status.scm:384 +msgid "generating GLib schema cache..." +msgstr "" + +#: guix/status.scm:386 +msgid "creating GTK+ icon theme cache..." +msgstr "GTK+ சின்னத்தோற்றப் பதுக்ககம்..." + +#: guix/status.scm:388 +msgid "building cache files for GTK+ input methods..." +msgstr "GTK+ உள்ளீட்டு முறைகளுக்குப் பதுக்ககக் கோப்புகள் அமைக்கப்படுகின்றன..." + +#: guix/status.scm:390 +msgid "building XDG desktop file cache..." +msgstr "XDG desktop கோப்புகளின் பதுக்ககம் அமைக்கப்படுகிறது..." + +#: guix/status.scm:392 +msgid "building XDG MIME database..." +msgstr "XDG MIME தரவுத்தளம் அமைக்கப்படுகிறது..." + +#: guix/status.scm:394 +msgid "building fonts directory..." +msgstr "எழுத்துருக்களின் அடைவு அமைக்கப்படுகிறது..." + +#: guix/status.scm:396 +msgid "building TeX Live configuration..." +msgstr "" + +#: guix/status.scm:398 +msgid "building database for manual pages..." +msgstr "கையேட்டுப் பக்கங்களின் தரவுத்தளம் அமைக்கப்படுகிறது..." + +#: guix/status.scm:400 +msgid "building package cache..." +msgstr "மென்பொருள் தொகுப்புப் பதுக்ககம் அமைக்கப்படுகிறது..." + +#: guix/status.scm:475 +#, scheme-format +msgid "applying ~a graft for ~a..." +msgid_plural "applying ~a grafts for ~a..." +msgstr[0] "~*~a க்கு ~2:*~a ஒட்டு இடப்படுகிறது..." +msgstr[1] "~*~a க்கு ~2:*~a ஒட்டுகள் இடப்படுகின்றன..." + +#: guix/status.scm:484 +#, scheme-format +msgid "running profile hook of type '~a'..." +msgstr "" + +#: guix/status.scm:487 +#, scheme-format +msgid "building ~a..." +msgstr "~a கட்டப்படுகிறது..." + +#: guix/status.scm:492 +#, scheme-format +msgid "successfully built ~a" +msgstr "~a வெற்றிகரமாகக் கட்டப்பட்டது" + +#: guix/status.scm:498 +#, scheme-format +msgid "The following build is still in progress:~%~{ ~a~%~}~%" +msgid_plural "The following builds are still in progress:~%~{ ~a~%~}~%" +msgstr[0] "" +msgstr[1] "" + +#: guix/status.scm:504 +#, scheme-format +msgid "build of ~a failed" +msgstr "~a கட்டுமானம் தோல்வியுற்றது" + +#: guix/status.scm:508 +#, scheme-format +msgid "Could not find build log for '~a'." +msgstr "'~a' க்குக் கட்டுக்குறிப்பு கிடைக்கவில்லை." + +#: guix/status.scm:511 +#, scheme-format +msgid "View build log at '~a'." +msgstr "கட்டுமானக் குறிப்பேடு '~a' யைக் காண்க." + +#: guix/status.scm:516 +#, scheme-format +msgid "substituting ~a..." +msgstr "~a பதிலிடப்படுகிறது..." + +#: guix/status.scm:520 +#, scheme-format +msgid "downloading from ~a..." +msgstr "~a பதிவிறக்கப்படுகிறது..." + +#: guix/status.scm:545 +#, scheme-format +msgid "substitution of ~a complete" +msgstr "" + +#: guix/status.scm:548 +#, scheme-format +msgid "substitution of ~a failed" +msgstr "" + +#. TRANSLATORS: The final string looks like "sha256 hash mismatch for +#. /gnu/store/…-sth:", where "sha256" is the hash algorithm. +#: guix/status.scm:553 +#, scheme-format +msgid "~a hash mismatch for ~a:" +msgstr "" + +#: guix/status.scm:555 +#, scheme-format +msgid "" +" expected hash: ~a\n" +" actual hash: ~a~%" +msgstr "" + +#: guix/status.scm:560 +#, scheme-format +msgid "offloading build of ~a to '~a'" +msgstr "" + +#: guix/http-client.scm:120 +#, scheme-format +msgid "following redirection to `~a'...~%" +msgstr "`~a' க்கு வழி மாறுகிறது...~%" + +#: guix/http-client.scm:132 +#, scheme-format +msgid "~a: HTTP download failed: ~a (~s)" +msgstr "~a: HTTP பதிவிறக்கம் தோல்வியுற்றது: ~a (~s)" + +#: guix/nar.scm:147 +msgid "signature is not a valid s-expression" +msgstr "" + +#: guix/nar.scm:156 +msgid "invalid signature" +msgstr "ஏற்கத்தகாக் கையெழுத்து" + +#: guix/nar.scm:160 +msgid "invalid hash" +msgstr "" + +#: guix/nar.scm:168 +msgid "unauthorized public key" +msgstr "" + +#: guix/nar.scm:173 +msgid "corrupt signature data" +msgstr "" + +#: guix/nar.scm:193 +msgid "corrupt file set archive" +msgstr "" + +#: guix/nar.scm:203 +#, scheme-format +msgid "importing file or directory '~a'...~%" +msgstr "'~a' கோப்போ அடைவோ இறக்குமதி செய்யப்படுகிறது...~%" + +#: guix/nar.scm:214 +#, scheme-format +msgid "found valid signature for '~a'~%" +msgstr "'~a' க்கு ஏற்கத்தகு கையெழுத்து கிடைத்தது~%" + +#: guix/nar.scm:221 +msgid "imported file lacks a signature" +msgstr "இறக்குமதி செய்யப்பட்ட கோப்பிற்குக் கையெழுத்தில்லை" + +#: guix/nar.scm:260 +msgid "invalid inter-file archive mark" +msgstr "" + +#: guix/channels.scm:168 +msgid "unsupported '.guix-channel' version" +msgstr "" + +#: guix/channels.scm:174 +msgid "invalid '.guix-channel' file" +msgstr "ஏற்கத்தகா '.guix-channel' கோப்பு" + +#: guix/channels.scm:224 +#, scheme-format +msgid "Updating channel '~a' from Git repository at '~a'...~%" +msgstr "'~a' அலைத்தடம் '~a' Git களஞ்சியத்திலிருந்து புதுப்பிக்கப்படுகிறது...~%" + +#: guix/channels.scm:460 +msgid "'guix' channel is lacking" +msgstr "" + +#: guix/channels.scm:462 +msgid "" +"Make sure your list of channels\n" +"contains one channel named @code{guix} providing the core of Guix." +msgstr "" + +#: guix/channels.scm:664 +msgid "invalid channel news entry" +msgstr "ஏற்கத்தகா அலைத்தடச் செய்திப் பதிவு" + +#: guix/channels.scm:682 +msgid "syntactically invalid channel news file" +msgstr "" + +#: guix/channels.scm:685 +msgid "invalid channel news file" +msgstr "ஏற்கத்தகா அலைத்தடச் செய்திக் கோப்பு" + +#: guix/profiles.scm:515 +msgid "unsupported manifest format" +msgstr "" + +#: guix/profiles.scm:1767 +#, scheme-format +msgid "while creating directory `~a': ~a" +msgstr "`~a' அடைவை உருவாக்கும்பொழுது: ~a" + +#: guix/profiles.scm:1772 +#, scheme-format +msgid "Please create the @file{~a} directory, with you as the owner." +msgstr "" + +#: guix/profiles.scm:1781 +#, scheme-format +msgid "directory `~a' is not owned by you" +msgstr "" + +#: guix/profiles.scm:1785 +#, scheme-format +msgid "Please change the owner of @file{~a} to user ~s." +msgstr "" + +#: guix/git.scm:170 +msgid "long Git object ID is required" +msgstr "" + +#: guix/git.scm:229 +#, scheme-format +msgid "updating submodule '~a'...~%" +msgstr "" + +#: guix/git.scm:242 +#, scheme-format +msgid "Support for submodules is missing; please upgrade Guile-Git.~%" +msgstr "" + +#: guix/git.scm:441 +#, scheme-format +msgid "cannot fetch commit ~a from ~a: ~a" +msgstr "" + +#: guix/git.scm:444 +#, scheme-format +msgid "cannot fetch branch '~a' from ~a: ~a" +msgstr "" + +#: guix/git.scm:447 +#, scheme-format +msgid "Git failure while fetching ~a: ~a" +msgstr "" + +#: guix/deprecation.scm:37 +#, scheme-format +msgid "'~a' is deprecated, use '~a' instead~%" +msgstr "'~a' வழக்கொழிந்தது, அதற்குப் பதிலாக '~a' யைப் பயன்படுத்துக~%" + +#: guix/deprecation.scm:39 +#, scheme-format +msgid "'~a' is deprecated~%" +msgstr "'~a' வழக்கொழிந்தது~%" + +#. TRANSLATORS: 'derivation' must not be translated; it refers to the +#. 'derivation' procedure. +#: guix/derivations.scm:743 +#, scheme-format +msgid "in '~a': deprecated 'derivation' calling convention used~%" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:66 +msgid "guix-daemon -- perform derivation builds and store accesses" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:68 +msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:95 +msgid "SYSTEM" +msgstr "அமைப்பு" + +#: nix/nix-daemon/guix-daemon.cc:96 +msgid "assume SYSTEM as the current system type" +msgstr "<அமைப்பு>யை தற்போதைய அமைப்பு வகையாகக் கருது" + +#: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100 +msgid "N" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:98 +msgid "use N CPU cores to build each derivation; 0 means as many as available" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:101 +msgid "allow at most N build jobs" +msgstr "அதிகபட்சமாக N கட்டுப்பணிகளை அனுமதி" + +#: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104 +msgid "SECONDS" +msgstr "நொடிகள்" + +#: nix/nix-daemon/guix-daemon.cc:103 +msgid "mark builds as failed after SECONDS of activity" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:105 +msgid "mark builds as failed after SECONDS of silence" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:107 +msgid "disable chroot builds" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:108 +msgid "DIR" +msgstr "அடைவு" + +#: nix/nix-daemon/guix-daemon.cc:109 +msgid "add DIR to the build chroot" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:110 +msgid "GROUP" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:111 +msgid "perform builds as a user of GROUP" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:113 +msgid "do not use substitutes" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:114 +msgid "URLS" +msgstr "முகவரிகள்" + +#: nix/nix-daemon/guix-daemon.cc:115 +msgid "use URLS as the default list of substitute providers" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:117 nix/nix-daemon/guix-daemon.cc:120 +msgid "do not attempt to offload builds" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:122 +msgid "cache build failures" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:124 +msgid "build each derivation N times in a row" +msgstr "ஓவ்வொரு வருவியையும் N முறை கட்டு" + +#: nix/nix-daemon/guix-daemon.cc:126 +msgid "do not keep build logs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:129 +msgid "disable compression of the build logs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:131 +msgid "use the specified compression type for build logs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:136 +msgid "disable automatic file \"deduplication\" in the store" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:146 +msgid "impersonate Linux 2.6" +msgstr "Linux 2.6 போல் நடி" + +#: nix/nix-daemon/guix-daemon.cc:150 +msgid "tell whether the GC must keep outputs of live derivations" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:153 +msgid "tell whether the GC must keep derivations corresponding to live outputs" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:156 +msgid "SOCKET" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:157 +msgid "listen for connections on SOCKET" +msgstr "" + +#: nix/nix-daemon/guix-daemon.cc:159 +msgid "produce debugging output" +msgstr "" diff --git a/tests/guix-build-branch.sh b/tests/guix-build-branch.sh index 2556a0cdb9..c5b07e07c6 100644 --- a/tests/guix-build-branch.sh +++ b/tests/guix-build-branch.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -54,7 +54,7 @@ test "$v0_1_0_drv" != "$orig_drv" v0_1_0_drv="`guix build guix --with-commit=guile-gcrypt=v0.1.0 -d`" guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-0.1.0 -guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-9e3eacd +guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-8fe64e8 # this is the tag ID test "$v0_1_0_drv" != "$latest_drv" test "$v0_1_0_drv" != "$orig_drv" diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index 7a0f3400c3..14e3cda361 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -1,6 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> -# Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -105,8 +105,8 @@ guix pack -R --dry-run --bootstrap -S /mybin=bin guile-bootstrap # Make sure package transformation options are honored. mkdir -p "$test_directory" -drv1="`guix pack -n guile 2>&1 | grep pack.*\.drv`" -drv2="`guix pack -n --with-source=guile=$test_directory guile 2>&1 | grep pack.*\.drv`" +drv1="`guix pack --no-grafts -n guile 2>&1 | grep pack.*\.drv`" +drv2="`guix pack --no-grafts -n --with-source=guile=$test_directory guile 2>&1 | grep pack.*\.drv`" test -n "$drv1" test "$drv1" != "$drv2" @@ -117,6 +117,6 @@ EOF cat > "$test_directory/manifest2.scm" <<EOF (specifications->manifest '("emacs")) EOF -drv="`guix pack -nd -m "$test_directory/manifest1.scm" -m "$test_directory/manifest2.scm"`" -guix gc -R "$drv" | grep `guix build guile -nd` -guix gc -R "$drv" | grep `guix build emacs -nd` +drv="`guix pack --no-grafts -d -m "$test_directory/manifest1.scm" -m "$test_directory/manifest2.scm"`" +guix gc -R "$drv" | grep `guix build guile -d --no-grafts` +guix gc -R "$drv" | grep `guix build emacs -d --no-grafts` diff --git a/tests/packages.scm b/tests/packages.scm index 1ff35ec9c4..7a8b5e4a2d 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -109,6 +109,41 @@ (manifest-transaction))))) (manifest-transaction-null? tx))) +(test-assert "transaction-upgrade-entry, zero upgrades, equivalent package" + (let* ((old (dummy-package "foo" (version "1"))) + (drv (package-derivation %store old)) + (tx (mock ((gnu packages) find-best-packages-by-name + (const (list old))) + (transaction-upgrade-entry + %store + (manifest-entry + (inherit (package->manifest-entry old)) + (item (derivation->output-path drv))) + (manifest-transaction))))) + (manifest-transaction-null? tx))) + +(test-assert "transaction-upgrade-entry, zero upgrades, propagated inputs" + ;; Properly detect equivalent packages even when they have propagated + ;; inputs. See <https://bugs.gnu.org/35872>. + (let* ((dep (dummy-package "dep" (version "2"))) + (old (dummy-package "foo" (version "1") + (propagated-inputs `(("dep" ,dep))))) + (drv (package-derivation %store old)) + (tx (mock ((gnu packages) find-best-packages-by-name + (const (list old))) + (transaction-upgrade-entry + %store + (manifest-entry + (inherit (package->manifest-entry old)) + (item (derivation->output-path drv)) + (dependencies + (list (manifest-entry + (inherit (package->manifest-entry dep)) + (item (derivation->output-path + (package-derivation %store dep))))))) + (manifest-transaction))))) + (manifest-transaction-null? tx))) + (test-assert "transaction-upgrade-entry, one upgrade" (let* ((old (dummy-package "foo" (version "1"))) (new (dummy-package "foo" (version "2"))) @@ -148,6 +183,30 @@ (string=? (manifest-pattern-version pattern) "1") (string=? (manifest-pattern-output pattern) "out"))))))) +(test-assert "transaction-upgrade-entry, grafts" + ;; Ensure that, when grafts are enabled, 'transaction-upgrade-entry' doesn't + ;; try to build stuff. + (with-build-handler (const 'failed!) + (parameterize ((%graft? #t)) + (let* ((old (dummy-package "foo" (version "1"))) + (bar (dummy-package "bar" (version "0") + (replacement old))) + (new (dummy-package "foo" (version "1") + (inputs `(("bar" ,bar))))) + (tx (mock ((gnu packages) find-best-packages-by-name + (const (list new))) + (transaction-upgrade-entry + %store + (manifest-entry + (inherit (package->manifest-entry old)) + (item (string-append (%store-prefix) "/" + (make-string 32 #\e) "-foo-1"))) + (manifest-transaction))))) + (and (match (manifest-transaction-install tx) + ((($ <manifest-entry> "foo" "1" "out" item)) + (eq? item new))) + (null? (manifest-transaction-remove tx))))))) + (test-assert "package-field-location" (let () (define (goto port line column) diff --git a/tests/store.scm b/tests/store.scm index 0458a34746..0e80ccc239 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -412,6 +412,33 @@ (build-derivations %store (list d2)) 'fail))) +(test-equal "with-build-handler + with-store" + 'success + ;; Check that STORE remains valid when the build handler invokes CONTINUE, + ;; even though 'with-build-handler' is outside the dynamic extent of + ;; 'with-store'. + (with-build-handler (lambda (continue store things mode) + (match things + ((drv) + (and (string-suffix? "thingie.drv" drv) + (not (port-closed? + (store-connection-socket store))) + (continue #t))))) + (with-store store + (let* ((b (add-text-to-store store "build" "echo $foo > $out" '())) + (s (add-to-store store "bash" #t "sha256" + (search-bootstrap-binary "bash" + (%current-system)))) + (d (derivation store "thingie" + s `("-e" ,b) + #:env-vars `(("foo" . ,(random-text))) + #:sources (list b s)))) + (build-derivations store (list d)) + + ;; Here STORE's socket should still be open. + (and (valid-path? store (derivation->output-path d)) + 'success))))) + (test-assert "map/accumulate-builds" (let* ((b (add-text-to-store %store "build" "echo $foo > $out" '())) (s (add-to-store %store "bash" #t "sha256" |