diff options
72 files changed, 2649 insertions, 1033 deletions
diff --git a/README b/README index e1d62763d0..348a7ada5f 100644 --- a/README +++ b/README @@ -24,7 +24,7 @@ GNU Guix currently depends on the following packages: - [[https://gnupg.org/][GNU libgcrypt]] - [[https://www.gnu.org/software/make/][GNU Make]] - [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled - - [[https://notabug.org/civodul/guile-sqlite3][Guile-SQLite3]] + - [[https://notabug.org/civodul/guile-sqlite3][Guile-SQLite3]], version 0.1.0 or later - [[https://gitlab.com/guile-git/guile-git][Guile-Git]] - [[http://www.zlib.net/][zlib]] - optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index e1b2c7fdc4..3ecdc931a5 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -265,8 +265,20 @@ person's version identifier." (loop (cdr spin)))) (match (command-line) - ((_ source system version) - (with-store store + ((_ source system version protocol-version) + ;; The current input port normally wraps a file + ;; descriptor connected to the daemon, or it is + ;; connected to /dev/null. In the former case, reuse + ;; the connection such that we inherit build options + ;; such as substitute URLs and so on; in the latter + ;; case, attempt to open a new connection. + (let* ((proto (string->number protocol-version)) + (store (if (integer? proto) + (port->connection (duplicate-port + (current-input-port) + "w+0") + #:version proto) + (open-connection)))) (call-with-new-thread (lambda () (spin system))) @@ -297,15 +309,28 @@ files." ;; SOURCE. (mlet %store-monad ((build (build-program source version guile-version #:pull-version pull-version)) - (system (if system (return system) (current-system)))) + (system (if system (return system) (current-system))) + (port ((store-lift nix-server-socket))) + (major ((store-lift nix-server-major-version))) + (minor ((store-lift nix-server-minor-version)))) (mbegin %store-monad (show-what-to-build* (list build)) (built-derivations (list build)) - (let* ((pipe (begin - (setenv "GUILE_WARN_DEPRECATED" "no") ;be quiet and drive - (open-pipe* OPEN_READ - (derivation->output-path build) - source system version))) + + ;; Use the port beneath the current store as the stdin of BUILD. This + ;; way, we know 'open-pipe*' will not close it on 'exec'. If PORT is + ;; not a file port (e.g., it's an SSH channel), then the subprocess's + ;; stdin will actually be /dev/null. + (let* ((pipe (with-input-from-port port + (lambda () + (setenv "GUILE_WARN_DEPRECATED" "no") ;be quiet and drive + (open-pipe* OPEN_READ + (derivation->output-path build) + source system version + (if (file-port? port) + (number->string + (logior major minor)) + "none"))))) (str (get-string-all pipe)) (status (close-pipe pipe))) (match str diff --git a/doc/guix.texi b/doc/guix.texi index da05a200a1..841bc2a34f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -249,7 +249,7 @@ Services * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service. -* Power management Services:: The TLP tool. +* Power Management Services:: Extending battery life. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. * Version Control Services:: Providing remote access to Git repositories. @@ -614,8 +614,8 @@ later, including 2.2.x; (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}); @item -@c FIXME: Specify a version number once a release has been made. -@uref{https://notabug.org/civodul/guile-sqlite3, Guile-SQLite3}; +@uref{https://notabug.org/civodul/guile-sqlite3, Guile-SQLite3}, version 0.1.0 +or later; @item @c FIXME: Specify a version number once a release has been made. @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August @@ -988,7 +988,7 @@ Port number of SSH server on the machine. @item @code{private-key} (default: @file{~root/.ssh/id_rsa}) The SSH private key file to use when connecting to the machine, in -OpenSSH format. +OpenSSH format. This key must not be protected with a passphrase. Note that the default value is the private key @emph{of the root account}. Make sure it exists if you use the default. @@ -8641,21 +8641,21 @@ create a file system on the relevant partition(s)@footnote{Currently GuixSD only supports ext4 and btrfs file systems. In particular, code that reads file system UUIDs and labels only works for these file system types.}. For the ESP, if you have one and assuming it is -@file{/dev/sda2}, run: +@file{/dev/sda1}, run: @example -mkfs.fat -F32 /dev/sda2 +mkfs.fat -F32 /dev/sda1 @end example Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}). This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands. So, assuming the target root -partition lives at @file{/dev/sda1}, a file system with the label +partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with: @example -mkfs.ext4 -L my-root /dev/sda1 +mkfs.ext4 -L my-root /dev/sda2 @end example @cindex encrypted disk @@ -8663,12 +8663,12 @@ If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.) Assuming you want to -store the root partition on @file{/dev/sda1}, the command sequence would +store the root partition on @file{/dev/sda2}, the command sequence would be along these lines: @example -cryptsetup luksFormat /dev/sda1 -cryptsetup open --type luks /dev/sda1 my-partition +cryptsetup luksFormat /dev/sda2 +cryptsetup open --type luks /dev/sda2 my-partition mkfs.ext4 -L my-root /dev/mapper/my-partition @end example @@ -8688,11 +8688,11 @@ by @code{guix system init} afterwards. Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}. Assuming you have one -swap partition on @file{/dev/sda2}, you would run: +swap partition on @file{/dev/sda3}, you would run: @example -mkswap /dev/sda2 -swapon /dev/sda2 +mkswap /dev/sda3 +swapon /dev/sda3 @end example Alternatively, you may use a swap file. For example, assuming that in @@ -9938,7 +9938,7 @@ declaration. * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service. -* Power management Services:: The TLP tool. +* Power Management Services:: Extending battery life. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. * Version Control Services:: Providing remote access to Git repositories. @@ -17583,10 +17583,13 @@ The Cuirass package to use. @end table @end deftp -@node Power management Services -@subsubsection Power management Services +@node Power Management Services +@subsubsection Power Management Services +@cindex tlp @cindex power management with TLP +@subsubheading TLP daemon + The @code{(gnu services pm)} module provides a Guix service definition for the Linux power management tool TLP. @@ -18087,6 +18090,9 @@ Defaults to @samp{#f}. @end deftypevr +@cindex thermald +@cindex CPU frequency scaling with thermald +@subsubheading Thermald daemon The @code{(gnu services pm)} module provides an interface to thermald, a CPU frequency scaling service which helps prevent overheating. diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index a131f3b506..06856dd58c 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -387,12 +387,18 @@ submenu \"GNU system, old configurations...\" {~%") ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the ;; system whose root is mounted at MOUNT-POINT. (let ((grub-install (string-append bootloader "/sbin/grub-install")) - (install-dir (string-append mount-point "/boot"))) + (install-dir (string-append mount-point "/boot")) + ;; When installing GuixSD, it's common to mount EFI-DIR below + ;; MOUNT-POINT rather than /boot/efi on the live image. + (target-esp (if (file-exists? (string-append mount-point efi-dir)) + (string-append mount-point efi-dir) + efi-dir))) ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or ;; root partition. (setenv "GRUB_ENABLE_CRYPTODISK" "y") (unless (zero? (system* grub-install "--boot-directory" install-dir - "--efi-directory" efi-dir)) + "--bootloader-id=GuixSD" + "--efi-directory" target-esp)) (error "failed to install GRUB (EFI)"))))) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 73d0191de7..abecc8c470 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -34,6 +34,7 @@ #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (ice-9 regex) + #:use-module (ice-9 popen) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) @@ -408,42 +409,67 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." register-closures? (closures '())) "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as GRUB configuration and OS-DRV as the stuff in it." - (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")) - (target-store (string-append "/tmp/root" (%store-directory)))) - (populate-root-file-system os-drv "/tmp/root") - - (mount (%store-directory) target-store "" MS_BIND) - - (when register-closures? - (display "registering closures...\n") - (for-each (lambda (closure) - (register-closure - "/tmp/root" - (string-append "/xchg/" closure) - ;; XXX: Using deduplication causes cross device link errors. - #:deduplicate? #f)) - closures)) - - (apply invoke - `(,grub-mkrescue "-o" ,target - ,(string-append "boot/grub/grub.cfg=" config-file) - ,(string-append "gnu/store=" os-drv "/..") - "etc=/tmp/root/etc" - "var=/tmp/root/var" - "run=/tmp/root/run" - ;; /mnt is used as part of the installation - ;; process, as the mount point for the target - ;; file system, so create it. - "mnt=/tmp/root/mnt" - "--" - "-volid" ,(string-upcase volume-id) - ,@(if volume-uuid - `("-volume_date" "uuid" - ,(string-filter (lambda (value) - (not (char=? #\- value))) - (iso9660-uuid->string - volume-uuid))) - `()))))) + (define grub-mkrescue + (string-append grub "/bin/grub-mkrescue")) + + (define target-store + (string-append "/tmp/root" (%store-directory))) + + (define items + ;; The store items to add to the image. + (delete-duplicates + (append-map (lambda (closure) + (map store-info-item + (call-with-input-file (string-append "/xchg/" closure) + read-reference-graph))) + closures))) + + (populate-root-file-system os-drv "/tmp/root") + (mount (%store-directory) target-store "" MS_BIND) + + (when register-closures? + (display "registering closures...\n") + (for-each (lambda (closure) + (register-closure + "/tmp/root" + (string-append "/xchg/" closure) + + ;; TARGET-STORE is a read-only bind-mount so we shouldn't try + ;; to modify it. + #:deduplicate? #f + #:reset-timestamps? #f)) + closures) + (register-bootcfg-root "/tmp/root" config-file)) + + (let ((pipe + (apply open-pipe* OPEN_WRITE + grub-mkrescue "-o" target + (string-append "boot/grub/grub.cfg=" config-file) + "etc=/tmp/root/etc" + "var=/tmp/root/var" + "run=/tmp/root/run" + ;; /mnt is used as part of the installation + ;; process, as the mount point for the target + ;; file system, so create it. + "mnt=/tmp/root/mnt" + "-path-list" "-" + "--" + "-volid" (string-upcase volume-id) + (if volume-uuid + `("-volume_date" "uuid" + ,(string-filter (lambda (value) + (not (char=? #\- value))) + (iso9660-uuid->string + volume-uuid))) + `())))) + ;; Pass lines like 'gnu/store/…-x=/gnu/store/…-x' corresponding to the + ;; '-path-list -' option. + (for-each (lambda (item) + (format pipe "~a=~a~%" + (string-drop item 1) item)) + items) + (unless (zero? (close-pipe pipe)) + (error "oh, my! grub-mkrescue failed" grub-mkrescue)))) (define* (initialize-hard-disk device #:key diff --git a/gnu/local.mk b/gnu/local.mk index 672c002eb6..d2490dd5b7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -582,6 +582,7 @@ dist_patch_DATA = \ %D%/packages/patches/azr3.patch \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ + %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/bind-CVE-2018-5738.patch \ %D%/packages/patches/binutils-aarch64-symbol-relocation.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ @@ -647,7 +648,6 @@ dist_patch_DATA = \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elogind-glibc-2.27.patch \ %D%/packages/patches/einstein-build.patch \ - %D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch \ %D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ @@ -706,6 +706,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcc-6-source-date-epoch-1.patch \ %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ + %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcr-disable-failing-tests.patch \ %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ @@ -795,6 +796,7 @@ dist_patch_DATA = \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ + %D%/packages/patches/icecat-bug-1413868-pt1.patch \ %D%/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch \ %D%/packages/patches/icecat-use-system-graphite2.patch \ %D%/packages/patches/icecat-use-system-harfbuzz.patch \ @@ -886,6 +888,8 @@ dist_patch_DATA = \ %D%/packages/patches/libtheora-config-guess.patch \ %D%/packages/patches/libtiff-CVE-2017-9935.patch \ %D%/packages/patches/libtiff-CVE-2017-18013.patch \ + %D%/packages/patches/libtiff-CVE-2018-8905.patch \ + %D%/packages/patches/libtiff-CVE-2018-10963.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ @@ -1083,6 +1087,7 @@ dist_patch_DATA = \ %D%/packages/patches/qemu-CVE-2018-11806.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \ + %D%/packages/patches/qtoctave-qt-5.11-fix.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quassel-qt-5.11.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6b8af60b1b..f00bcd89d7 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -140,13 +140,13 @@ usual file attributes can be checked for inconsistencies.") (define-public progress (package (name "progress") - (version "0.13.1") + (version "0.14") (source (origin (method url-fetch) (uri (string-append "https://github.com/Xfennec/" name "/archive/v" version ".tar.gz")) (sha256 - (base32 "199rk6608q9m6l0fbjm0xl2w1c5krf8245dqnksdp4rqp7l9ak06")) + (base32 "1wcanixfsi5k4i9h5vrnncgjdncalsdfqllrxibxwpgfnf20sji1")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (native-inputs @@ -865,7 +865,7 @@ over ssh connections.") (define-public rename (package (name "rename") - (version "0.20") + (version "0.35") (source (origin (method url-fetch) (uri (string-append @@ -873,7 +873,7 @@ over ssh connections.") version ".tar.gz")) (sha256 (base32 - "1cf6xx2hiy1xalp35fh8g73j67r0w0g66jpcbc6971x9jbm7bvjy")))) + "052iqmn7ya3w1nadpiyavmr3rx566r0lbflx94y8b5wx9q5c16rq")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) @@ -1651,7 +1651,7 @@ limits.") (define-public autojump (package (name "autojump") - (version "22.3.4") + (version "22.5.1") (source (origin (method url-fetch) @@ -1660,7 +1660,7 @@ limits.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "113rcpr37ngf2xs8da41qdarq5qmj0dwx8ggqy3lhlb0kvqq7g9z")))) + "17z9j9936x0nizwrzf664bngh60x5qbvrrf1s5qdzd0f2gdanpvn")))) (build-system gnu-build-system) (native-inputs ;for tests `(("python-mock" ,python-mock) @@ -1668,36 +1668,19 @@ limits.") (inputs `(("python" ,python-wrapper))) (arguments - `(#:phases (modify-phases %standard-phases - (delete 'configure) - (delete 'build) - (replace 'check - (lambda _ - (zero? - (system* "python" "tests/unit/autojump_utils_test.py")))) - (replace 'install - ;; The install.py script doesn't allow system installation - ;; into an arbitrary prefix, so do our own install. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (share (string-append out "/share/autojump")) - (py (string-append out "/lib/python" - ,(version-major+minor - (package-version python-wrapper)) - "/site-packages")) - (man (string-append out "/share/man/man1"))) - (install-file "bin/autojump" bin) - (for-each (λ (f) (install-file f py)) - (find-files "bin" "\\.py$")) - (for-each (λ (f) (install-file f share)) - (find-files "bin" "autojump\\..*$")) - (substitute* (string-append share "/autojump.sh") - (("/usr/local") out)) - (install-file "docs/autojump.1" man) - (wrap-program (string-append bin "/autojump") - `("PYTHONPATH" ":" prefix (,py))) - #t)))))) + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'check + (lambda _ + (invoke "python" "tests/unit/autojump_utils_test.py"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (setenv "SHELL" (which "bash")) + (invoke "python" "install.py" + (string-append "--destdir=" + (assoc-ref outputs "out")))))))) (home-page "https://github.com/wting/autojump") (synopsis "Shell extension for file system navigation") (description @@ -2649,7 +2632,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.0.12-1") + (version "3.0.13-1") (source (origin (method git-fetch) @@ -2658,7 +2641,7 @@ Python loading in HPC environments.") (commit version))) (sha256 (base32 - "1a2sjz90gzzvhp63x89hs0a424rkd13qrff2njqmjxp322zyp527")))) + "0732ligzmzwpwaxin4g8rbfj91ghyvf69lx2jyrahi4df0bfamh5")))) (build-system trivial-build-system) (inputs `(("bash" ,bash) diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index 22af707401..a10747ef38 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -226,10 +227,10 @@ contains the graphical user interface for synfig.") "\nLIBS +=" libsndfile "/lib/libsndfile.so\n" "win32 {")))) - (zero? (system* "qmake" - (string-append "DESTDIR=" - (assoc-ref outputs "out") - "/bin"))))) + (invoke "qmake" + (string-append "DESTDIR=" + (assoc-ref outputs "out") + "/bin")))) ;; Ensure that all required Qt plugins are found at runtime. (add-after 'install 'wrap-executable (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 5d45d07288..027a333d67 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> @@ -46,9 +46,10 @@ #:use-module (gnu packages xml) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) - #:use-module (gnu packages man) #:use-module (gnu packages m4) + #:use-module (gnu packages man) #:use-module (gnu packages mp3) + #:use-module (gnu packages music) #:use-module (gnu packages ncurses) #:use-module (gnu packages elf) #:use-module (gnu packages wxwidgets) @@ -57,6 +58,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages base) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-web) #:use-module (gnu packages python) #:use-module (gnu packages image) #:use-module (gnu packages photo) @@ -513,6 +515,9 @@ from an audio CD.") (parano (assoc-ref inputs "cdparanoia")) (which (assoc-ref inputs "which")) (discid (assoc-ref inputs "cd-discid")) + (perl-discid (assoc-ref inputs "perl-musicbrainz-discid")) + (perl-ws (assoc-ref inputs "perl-webservice-musicbrainz")) + (perl-mojo (assoc-ref inputs "perl-mojolicious")) (flac (assoc-ref inputs "flac")) (out (assoc-ref outputs "out"))) (define (wrap file) @@ -524,7 +529,14 @@ from an audio CD.") which "/bin:" vorbis "/bin:" discid "/bin:" - parano "/bin"))))) + parano "/bin"))) + `("PERL5LIB" ":" prefix + (,(string-append perl-discid + "/lib/perl5/site_perl:" + perl-ws + "/lib/perl5/site_perl:" + perl-mojo + "/lib/perl5/site_perl"))))) (for-each wrap (find-files (string-append out "/bin") @@ -538,6 +550,10 @@ from an audio CD.") ("vorbis-tools" ,vorbis-tools) ("flac" ,flac) + ("perl-musicbrainz-discid" ,perl-musicbrainz-discid) + ("perl-webservice-musicbrainz" ,perl-webservice-musicbrainz) + ("perl-mojolicious" ,perl-mojolicious) ;indirect dependency + ;; A couple of Python and Perl scripts are included. ("python" ,python) ("perl" ,perl))) diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm index 7cfd04f008..faaaa2419a 100644 --- a/gnu/packages/cluster.scm +++ b/gnu/packages/cluster.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +31,7 @@ (define-public keepalived (package (name "keepalived") - (version "2.0.1") + (version "2.0.4") (source (origin (method url-fetch) (uri (string-append @@ -38,18 +39,11 @@ version ".tar.gz")) (sha256 (base32 - "0hp8i56zkf0398bmpi32a85f05cv2fy9wizkdfbxk7gav4z6yx18")))) + "0qf46bfxv4w7qx7d73qq26pp72cvbyfjvna3hxn208vynvapalh0")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-configure - (lambda _ - ;; XXX: The 'configure' script doesn't handle '-L' flags in the - ;; output of 'pkg-config'. - (substitute* "configure" - (("PKG_CONFIG --libs") "PKG_CONFIG --libs-only-l")) - #t)) (add-after 'build 'build-info (lambda _ (invoke "make" "-C" "doc" "texinfo") @@ -77,11 +71,11 @@ ("libnfnetlink" ,libnfnetlink) ("libnl" ,libnl))) (home-page "http://www.keepalived.org/") - (synopsis "Loadbalancing and high-availability frameworks") + (synopsis "Load balancing and high-availability frameworks") (description "Keepalived provides frameworks for both load balancing and high availability. The load balancing framework relies on the Linux Virtual -Server (IPVS) kernel module. High availability is achieved by the Virtual -Redundancy Routing Protocol (VRRP). Each Keepalived framework can be used +Server (@dfn{IPVS}) kernel module. High availability is achieved by the Virtual +Redundancy Routing Protocol (@dfn{VRRP}). Each Keepalived framework can be used independently or together to provide resilient infrastructures.") (license license:gpl2+))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index a8c85fdb5e..dea2f09022 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> @@ -581,7 +581,7 @@ Objective@tie{}C, D, Java, Pawn, and Vala). Features: (define-public astyle (package (name "astyle") - (version "2.05") + (version "3.1") (source (origin (method url-fetch) @@ -589,7 +589,7 @@ Objective@tie{}C, D, Java, Pawn, and Vala). Features: version "/astyle_" version "_linux.tar.gz")) (sha256 (base32 - "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s")))) + "1ms54wcs7hg1bsywqwf2lhdfizgbk7qxc9ghasxk8i99jvwlrk6b")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no tests diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index e998e9981e..30a0ffcec9 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1069,4 +1069,7 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.") (define-public gcc-toolchain-7 (make-gcc-toolchain gcc-7)) +(define-public gcc-toolchain-8 + (make-gcc-toolchain gcc-8)) + ;;; commencement.scm ends here diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 57603bf57a..eeaeefd81f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -246,15 +246,17 @@ into a pipeline of data manipulation and visualisation.") (define-public r-haven (package (name "r-haven") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (cran-uri "haven" version)) (sha256 (base32 - "1fkcvsrnw8waqwggv0aydbvbi99x5kp9g78xfxj4w6s3xvdzcysz")))) + "0pp8xjf5lzqg1wr8cwxj4njx99vxwlflwjrd7jvyzwlfpwh7n1qa")))) (build-system r-build-system) + (inputs + `(("zlib" ,zlib))) (propagated-inputs `(("r-forcats" ,r-forcats) ("r-hms" ,r-hms) @@ -1577,14 +1579,14 @@ Delaunay triangulation and convex hull computation.") (define-public r-ddalpha (package (name "r-ddalpha") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) (uri (cran-uri "ddalpha" version)) (sha256 (base32 - "0g4iqhrz2gym05q40ih6srilyajw2l2mv46pchn65bc7hw4vkgrk")))) + "16cn0bhbaz9l9k4y79sv2d4f7pvs7dyka273y89igs5jvr99kfj1")))) (build-system r-build-system) (propagated-inputs `(("r-bh" ,r-bh) @@ -4287,14 +4289,14 @@ and adds the annotation to the plot.") (define-public r-ggpubr (package (name "r-ggpubr") - (version "0.1.6") + (version "0.1.7") (source (origin (method url-fetch) (uri (cran-uri "ggpubr" version)) (sha256 (base32 - "0mvw215bj887958p34f0dzlrb8mgyfcz9b5zvsschvbhamqinqna")))) + "110ny8p41kmbz0a5rl0mv9cqpjkx6yr3ybflp1r0fmcvhwv7cr3i")))) (build-system r-build-system) (propagated-inputs `(("r-cowplot" ,r-cowplot) diff --git a/gnu/packages/digest.scm b/gnu/packages/digest.scm index 5f14ab913b..d5533bc474 100644 --- a/gnu/packages/digest.scm +++ b/gnu/packages/digest.scm @@ -19,21 +19,21 @@ (define-module (gnu packages digest) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu)) (define-public xxhash (package (name "xxhash") - (version "0.6.4") + (version "0.6.5") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Cyan4973/xxHash/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Cyan4973/xxHash") + (commit (string-append "v" version)))) (sha256 - (base32 "08nv9h3jzg6y85ysy2dj3qvvfsdz0rwkk497a2366syz278wqw25")))) + (base32 "137hifc3f3cb4ib64rd6y83arc9hmbyncgrij2v8m94mx66g2aks")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -41,6 +41,8 @@ "XXH_FORCE_MEMORY_ACCESS=1" ; improved performance with GCC (string-append "prefix=" (assoc-ref %outputs "out"))) #:test-target "test" + ;; Parallel testing tries to run ‘xxhsum’ before it's been built. + #:parallel-tests? #f #:phases (modify-phases %standard-phases (delete 'configure)))) ; no configure script diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 55aa5511df..c4468c8175 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1641,15 +1641,14 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.4") + (version "0.4.1.1") (source (origin (method url-fetch) - (uri (string-append "https://github.com/alezost/guix.el" - "/releases/download/v" version - "/emacs-guix-" version ".tar.gz")) + (uri (string-append "https://emacs-guix.gitlab.io/website/" + "releases/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "1nn4b0gd895g0k4fynzrip7z8yb1r3qmvznq9v8a6q7sm84irmqq")))) + "0jbnrcazbks7h50rngpw5l40a6vn2794kb53cpva3yzdjmrc1955")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1700,7 +1699,7 @@ type, for example: packages, buffers, files, etc.") ("bui" ,emacs-bui) ("edit-indirect" ,emacs-edit-indirect) ("magit-popup" ,emacs-magit-popup))) - (home-page "https://alezost.github.io/guix.el/") + (home-page "https://emacs-guix.gitlab.io/website/") (synopsis "Emacs interface for GNU Guix") (description "Emacs-Guix provides a visual interface, tools and features for the GNU @@ -4437,7 +4436,7 @@ indentation command behavior very similar to that of python-mode.") (define-public emacs-web-mode (package (name "emacs-web-mode") - (version "14") + (version "16") (source (origin (method url-fetch) (uri (string-append "https://raw.githubusercontent.com/fxbois" @@ -4445,7 +4444,7 @@ indentation command behavior very similar to that of python-mode.") (file-name (string-append "web-mode-" version ".el")) (sha256 (base32 - "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5")))) + "1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw")))) (build-system emacs-build-system) (synopsis "Major mode for editing web templates") (description "Web-mode is an Emacs major mode for editing web templates @@ -7028,39 +7027,35 @@ Idris.") (license license:gpl3+))) (define-public emacs-browse-at-remote - (let ((commit "31dcf77d7c89a12f230e2b2332585db2c44530ef") - (revision "1")) - (package - (name "emacs-browse-at-remote") - (version (string-append "0.9.0-" revision "." - (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rmuslimov/browse-at-remote.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (patches - (search-patches "emacs-browse-at-remote-cgit-gnu.patch")) - (sha256 - (base32 - "017cb8lf7zbg0jmr7zxzd7d5kz2jy35cvw5vcpdmq1fdr3wqwkgj")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-f" ,emacs-f) - ("emacs-s" ,emacs-s))) - (native-inputs - `(("ert-runner" ,ert-runner))) - (arguments - `(#:tests? #t - #:test-command '("ert-runner"))) - (home-page "https://github.com/rmuslimov/browse-at-remote") - (synopsis "Open github/gitlab/bitbucket/stash page from Emacs") - (description - "This Emacs package allows you to open a target page on + (package + (name "emacs-browse-at-remote") + (version "0.10.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/rmuslimov/browse-at-remote/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-f" ,emacs-f) + ("emacs-s" ,emacs-s))) + (native-inputs + `(("ert-runner" ,ert-runner))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) + (home-page "https://github.com/rmuslimov/browse-at-remote") + (synopsis "Open github/gitlab/bitbucket/stash page from Emacs") + (description + "This Emacs package allows you to open a target page on github/gitlab (or bitbucket) by calling @code{browse-at-remote} command. It supports dired buffers and opens them in tree mode at destination.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-tiny (package diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 1687c9652f..f669213f4f 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1181,7 +1181,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.198") + (version "0.199") (source (origin (method git-fetch) @@ -1191,7 +1191,7 @@ play them on systems for which they were never designed!") (file-name (git-file-name name version)) (sha256 (base32 - "0kl7qll8d6xlx7bj5920ljs888a6nc1fj2kfw1fz0r8za3m7wiq9")) + "0rb2k6dxss36jjalbpvj2xsqdwqyqy89qab7jpv8ig1y08dpg36n")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 4fd33ae901..3c9d7d49c1 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> -;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,7 +144,7 @@ non-determinism in the build process.") (define-public glusterfs (package (name "glusterfs") - (version "3.10.7") + (version "3.10.12") (source (origin (method url-fetch) @@ -153,7 +153,7 @@ non-determinism in the build process.") "/glusterfs-" version ".tar.gz")) (sha256 (base32 - "02sn9s3jjva2i1l47y3in326n8jgp57rbykz5s8m87y4bzpw0ym1")) + "01ysvamvfv2l5pswa1rygpg8w0954h2wkh1ba97h3nx03m5n0prg")) (patches (search-patches "glusterfs-use-PATH-instead-of-hardcodes.patch")))) (build-system gnu-build-system) @@ -170,11 +170,12 @@ non-determinism in the build process.") ;; must be replaced. (install-file (string-append (assoc-ref inputs "automake") "/share/automake-" - ,(package-version automake) "/config.sub") + ,(version-major+minor (package-version automake)) "/config.sub") ".") #t)) ;; Fix flex error. This has already been fixed with upstream commit - ;; db3fe245a9e8812829eae7d143e49d0bfdfef9a7. + ;; db3fe245a9e8812829eae7d143e49d0bfdfef9a7, but is not available in + ;; current releases. (add-before 'configure 'fix-lex (lambda _ (substitute* "libglusterfs/src/Makefile.in" diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index f7dc2e7634..3123cdeb91 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -330,15 +330,16 @@ X11-system or any other graphical user interface.") (define-public teckit (package (name "teckit") - (version "2.5.7") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/silnrsi/teckit/releases/download/v" - version "/teckit-" version ".tar.gz")) - (sha256 - (base32 - "1pbp97vcpj6x4yixx6ww0vsi1rrr99fksxdjafs6gdargzd24cj4")))) + (version "2.5.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/silnrsi/teckit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jmsdmfz7bgq1n5qsqgpq1b1n77f1hll0czfw5wkxz4knzb14ndn")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index b428fa77f2..a715c958cd 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1062,16 +1062,16 @@ games.") (define-public godot (package (name "godot") - (version "3.0.2") + (version "3.0.4") (source (origin - (method url-fetch) - (uri - (string-append "https://github.com/godotengine/godot/archive/" - version "-stable.tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/godotengine/godot") + (commit (string-append version "-stable")))) + (file-name (git-file-name name version)) (sha256 (base32 - "0ldnk3j4w2kh454mzclmq8nk7zqrn758yrqq85i4kzljpkf93g0m")) + "0i4ssfb6igga9zwvsmahrnasx9cyqrsd6mlmssjgc482fy9q2kz4")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2ced2b51da..0796e48001 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -177,82 +177,70 @@ settings to tweak as well.") (license license:gpl2+))) (define-public cataclysm-dda - (package - (name "cataclysm-dda") - (version "0.C") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/CleverRaven/Cataclysm-DDA/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1xlajmgl9cviqyjpp5g5q4rbljy9gqc49v54bi8gpzr68s14gsb9")) - (modules '((guix build utils))) - (snippet - ;; Import cmath header for the std::pow function. - '(begin - (for-each (lambda (file) - (substitute* file - (("#include <math.h>") - "#include <cmath>"))) - (find-files "src")) - #t)))) - (build-system gnu-build-system) - (arguments - '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1") - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ - (substitute* "Makefile" - (("ncursesw5-config") "ncursesw6-config") - (("RELEASE_FLAGS = -Werror") "RELEASE_FLAGS =")) - #t)) - (add-after 'build 'build-tiles - (lambda* (#:key make-flags outputs #:allow-other-keys) - ;; Change prefix directory and enable tile graphics and sound. - (zero? - (apply system* "make" "TILES=1" "SOUND=1" - (string-append "PREFIX=" - (assoc-ref outputs "tiles")) - (cdr make-flags))))) - (add-after 'install 'install-tiles - (lambda* (#:key make-flags outputs #:allow-other-keys) - (zero? - (apply system* "make" "install" "TILES=1" "SOUND=1" - (string-append "PREFIX=" - (assoc-ref outputs "tiles")) - (cdr make-flags)))))) - ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native - ;; input in order to support tests. - #:tests? #f)) - (outputs '("out" - "tiles")) ; For tile graphics and sound support. - (native-inputs - `(("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config))) - (inputs - `(("freetype" ,freetype) - ("libogg" ,libogg) - ("libvorbis" ,libvorbis) - ("ncurses" ,ncurses) - ("sdl2" ,sdl2) - ("sdl2-image" ,sdl2-image) - ("sdl2-ttf" ,sdl2-ttf) - ("sdl2-mixer" ,sdl2-mixer))) - (home-page "http://en.cataclysmdda.com/") - (synopsis "Survival horror roguelike video game") - (description - "Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world. -Struggle to survive in a harsh, persistent, procedurally generated world. -Scavenge the remnants of a dead civilization for food, equipment, or, if you are -lucky, a vehicle with a full tank of gas to get you out of Dodge. Fight to -defeat or escape from a wide variety of powerful monstrosities, from zombies to -giant insects to killer robots and things far stranger and deadlier, and against -the others like yourself, that want what you have.") - (license license:cc-by-sa3.0))) + (let ((commit "ad3b0c3d521292d119f97a83390e7acfe9e9e7f7") + (revision "1")) + (package + (name "cataclysm-dda") + ;; This denotes the version released after the 0.C release. + ;; Revert to a normal version number if updating to stable version 0.D. + (version (git-version "0.C" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/CleverRaven/Cataclysm-DDA.git") + (commit commit))) + (sha256 + (base32 + "1kdgbl8zqd53f5yilm2c9nyq3w6585yxl5jvgxy65dlpzxcqqj7y")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'build 'build-tiles + (lambda* (#:key make-flags outputs #:allow-other-keys) + ;; Change prefix directory and enable tile graphics and sound. + (apply invoke "make" "TILES=1" "SOUND=1" + (string-append "PREFIX=" + (assoc-ref outputs "tiles")) + (cdr make-flags)))) + (add-after 'install 'install-tiles + (lambda* (#:key make-flags outputs #:allow-other-keys) + (apply invoke "make" "install" "TILES=1" "SOUND=1" + (string-append "PREFIX=" + (assoc-ref outputs "tiles")) + (cdr make-flags))))) + ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native + ;; input in order to support tests. + #:tests? #f)) + (outputs '("out" + "tiles")) ; For tile graphics and sound support. + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("freetype" ,freetype) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("ncurses" ,ncurses) + ("sdl2" ,sdl2) + ("sdl2-image" ,sdl2-image) + ("sdl2-ttf" ,sdl2-ttf) + ("sdl2-mixer" ,sdl2-mixer))) + (home-page "http://en.cataclysmdda.com/") + (synopsis "Survival horror roguelike video game") + (description + "Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic +world. Struggle to survive in a harsh, persistent, procedurally generated +world. Scavenge the remnants of a dead civilization for food, equipment, or, +if you are lucky, a vehicle with a full tank of gas to get you out of Dodge. +Fight to defeat or escape from a wide variety of powerful monstrosities, from +zombies to giant insects to killer robots and things far stranger and deadlier, +and against the others like yourself, that want what you have.") + (license license:cc-by-sa3.0)))) (define-public cowsay (package @@ -3678,46 +3666,43 @@ emerges from a sewer hole and pulls her below ground.") license:cc-by-sa3.0))))) (define-public cdogs-sdl - ;; XXX: Use version 0.6.7 when it's available. - (let ((commit "bab2031369b9ea2dbeb7eedbde10a43dd8ca83db") - (revision "1")) - (package - (name "cdogs-sdl") - (version (git-version "0.6.6" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cxong/cdogs-sdl.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "09sfqhrrffhvxbhigvrxfmai52w01w3f9kjmixjhqvqlkhn77c9n")))) - (build-system cmake-build-system) - (arguments - `(#:configure-flags - (list (string-append "-DCDOGS_DATA_DIR=" - (assoc-ref %outputs "out") - "/share/cdogs-sdl/")))) - (inputs - `(("mesa" ,mesa) - ("sdl2" ,sdl2) - ("sdl2-image" ,sdl2-image) - ("sdl2-mixer" ,sdl2-mixer))) - (home-page "https://cxong.github.io/cdogs-sdl/") - (synopsis "Classic overhead run-and-gun game") - (description "C-Dogs SDL is a classic overhead run-and-gun game, + (package + (name "cdogs-sdl") + (version "0.6.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cxong/cdogs-sdl.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1frafzsj3f83xkmn4llr7g728c82lcqi424ini1hv3gv5zjgpa15")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DCDOGS_DATA_DIR=" + (assoc-ref %outputs "out") + "/share/cdogs-sdl/")))) + (inputs + `(("mesa" ,mesa) + ("sdl2" ,sdl2) + ("sdl2-image" ,sdl2-image) + ("sdl2-mixer" ,sdl2-mixer))) + (home-page "https://cxong.github.io/cdogs-sdl/") + (synopsis "Classic overhead run-and-gun game") + (description "C-Dogs SDL is a classic overhead run-and-gun game, supporting up to 4 players in co-op and deathmatch modes. Customize your player, choose from many weapons, and blast, slide and slash your way through over 100 user-created campaigns.") - ;; GPLv2+ for code (includes files under BSD-2 and BSD-3), - ;; CC0/CC-BY/CC-BY-SA for assets. - (license (list license:gpl2+ - license:bsd-2 - license:bsd-3 - license:cc0 - license:cc-by3.0 - license:cc-by-sa3.0))))) + ;; GPLv2+ for code (includes files under BSD-2 and BSD-3), + ;; CC0/CC-BY/CC-BY-SA for assets. + (license (list license:gpl2+ + license:bsd-2 + license:bsd-3 + license:cc0 + license:cc-by3.0 + license:cc-by-sa3.0)))) (define-public kiki (package diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 130c212669..fdca3d2ffc 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -515,6 +516,20 @@ Go. It also includes runtime support libraries for these languages.") for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. It also includes runtime support libraries for these languages."))) +(define-public gcc-8 + (package + (inherit gcc-7) + (version "8.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.xz")) + (sha256 + (base32 + "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x")) + (patches (search-patches "gcc-8-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition ;; accordingly. diff --git a/gnu/packages/gnu-pw-mgr.scm b/gnu/packages/gnu-pw-mgr.scm index 6bb5fea84b..0d16bf5f0b 100644 --- a/gnu/packages/gnu-pw-mgr.scm +++ b/gnu/packages/gnu-pw-mgr.scm @@ -30,7 +30,7 @@ (define-public gnu-pw-mgr (package (name "gnu-pw-mgr") - (version "2.3.1") + (version "2.3.2") (source (origin (method url-fetch) @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "05vv6n5sqdswhzm21cqn8m2p6avblxl3cv7b39nqx8yxf58gi2xv")))) + "0x60g0syqpd107l8w4bl213imy2lspm4kz1j18yr1sh10rdxlgxd")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index c52d21d8e3..ba60d1372a 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -479,27 +479,43 @@ security standards.") (mozilla-patch "icecat-CVE-2018-5150-pt08.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam") (mozilla-patch "icecat-CVE-2018-5150-pt09.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd") (mozilla-patch "icecat-bug-1452619.patch" "2b75d55ccf0e" "1g87aybw6ggv6hyk385bplv0lx63n020gwyq0d6d4pqld48hsm1i") - (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9") + (mozilla-patch "icecat-CVE-2018-5156-pt1.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9") (mozilla-patch "icecat-CVE-2018-5150-pt10.patch" "3f2ec03c0405" "0w02952dlxd2gmwghck2nm4rjjmc5ylg62bw6m1rvi35kcr134lr") (mozilla-patch "icecat-CVE-2018-5183.patch" "f729bf78fb3a" "0xkj6jwxwdqkvb5c7wi16b8cm8qrnlrd3s9jnd46jg03iykrx56f") - (mozilla-patch "icecat-bug-1437842.patch" "eb896089db47" "10lppk4x2d3pim71a36ky1dmg08rs5ckfiljwvfnr1cw6934qxl4") - (mozilla-patch "icecat-bug-1458270.patch" "2374dca97bde" "0y1g55wvj44nzb1qfkl271jcf8s1ik8lcl1785z0zim4qzn7qkpa") - (mozilla-patch "icecat-bug-1452576.patch" "70b6298e0c9e" "0n5jfy6c421dkybk8m18vd61y95zz0r64g1p1zlya3fps5knfaqi") - (mozilla-patch "icecat-bug-1459206-pt1.patch" "4ef79fe9b3b7" "1c32z1ki1i6xj1nbb0xlxwqnmz48ikmy8dmp37rkjz8ssn04wgfg") - (mozilla-patch "icecat-bug-1459206-pt2.patch" "9ad16112044a" "0ayya67sx7avcb8bplfdxb92l9g4mjrb1s3hby283llhqv0ikg9b") - (mozilla-patch "icecat-bug-1459162.patch" "11d8a87fb6d6" "1rkmdk18llw0x1jakix75hlhy0hpsmlminnflagbzrzjli81gwm1") - (mozilla-patch "icecat-bug-1451297.patch" "407b10ad1273" "16qzsfirw045xag96f1qvpdlibm8lwdj9l1mlli4n1vz0db91v9q") - (mozilla-patch "icecat-bug-1462682.patch" "e76e2e481b17" "0hnx13msjy28n3bpa2c24kpzalam4bdk5gnp0f9k671l48rs9yb3") - (mozilla-patch "icecat-bug-1450688.patch" "2c75bfcd465c" "1pjinj8qypafqm2fk68s3hzcbzcijn09qzrpcxvzq6bl1yfc1xfd") - (mozilla-patch "icecat-bug-1456975.patch" "042f80f3befd" "0av918kin4bkrq7gnjz0h9w8kkq8rk9l93250lfl5kqrinza1gsk") - (mozilla-patch "icecat-bugs-1442722+1455071+1433642+1456604+1458320.patch" + (mozilla-patch "icecat-CVE-2018-5188-pt01.patch" "eb896089db47" "10lppk4x2d3pim71a36ky1dmg08rs5ckfiljwvfnr1cw6934qxl4") + (mozilla-patch "icecat-CVE-2018-5188-pt02.patch" "2374dca97bde" "0y1g55wvj44nzb1qfkl271jcf8s1ik8lcl1785z0zim4qzn7qkpa") + (mozilla-patch "icecat-CVE-2018-5188-pt03.patch" "70b6298e0c9e" "0n5jfy6c421dkybk8m18vd61y95zz0r64g1p1zlya3fps5knfaqi") + (mozilla-patch "icecat-CVE-2018-12365-pt1.patch" "4ef79fe9b3b7" "1c32z1ki1i6xj1nbb0xlxwqnmz48ikmy8dmp37rkjz8ssn04wgfg") + (mozilla-patch "icecat-CVE-2018-12365-pt2.patch" "9ad16112044a" "0ayya67sx7avcb8bplfdxb92l9g4mjrb1s3hby283llhqv0ikg9b") + (mozilla-patch "icecat-CVE-2018-12359.patch" "11d8a87fb6d6" "1rkmdk18llw0x1jakix75hlhy0hpsmlminnflagbzrzjli81gwm1") + (mozilla-patch "icecat-CVE-2018-5188-pt04.patch" "407b10ad1273" "16qzsfirw045xag96f1qvpdlibm8lwdj9l1mlli4n1vz0db91v9q") + (mozilla-patch "icecat-CVE-2018-6126.patch" "e76e2e481b17" "0hnx13msjy28n3bpa2c24kpzalam4bdk5gnp0f9k671l48rs9yb3") + (mozilla-patch "icecat-CVE-2018-5188-pt05.patch" "2c75bfcd465c" "1pjinj8qypafqm2fk68s3hzcbzcijn09qzrpcxvzq6bl1yfc1xfd") + (mozilla-patch "icecat-CVE-2018-5188-pt06.patch" "042f80f3befd" "0av918kin4bkrq7gnjz0h9w8kkq8rk9l93250lfl5kqrinza1gsk") + (mozilla-patch "icecat-CVE-2018-5188-pt07+bugs-1455071+1433642+1456604+1458320.patch" "bb0451c9c4a0" "1lhm1b2a7c6jwhzsg3c830hfhp17p8j9zbcmgchpb8c5jkc3vw0x") - (mozilla-patch "icecat-bug-1465108-pt1.patch" "8189b262e3b9" "13rh86ddwmj1bhv3ibbil3sv5xbqq1c9v1czgbsna5hxxkzc1y3b") - (mozilla-patch "icecat-bug-1465108-pt2.patch" "9f81ae3f6e1d" "05vfg8a8jrzd93n1wvncmvdmqgf9cgsl8ryxgjs3032gbbjkga7q") - (mozilla-patch "icecat-bug-1459693.patch" "face7a3dd5d7" "0jclw30mf693w8lrmvn0iankggj21nh4j3zh51q5363rj5xncdzx") - (mozilla-patch "icecat-bug-1464829.patch" "7afb58c046c8" "1r0569r76712x7x1sw6xr0x06ilv6iw3fncb0f8r8b9mp6wrpx34") - (mozilla-patch "icecat-bug-1452375-pt1.patch" "f1a745f8c42d" "11q73pb7a8f09xjzil4rhg5nr49zrnz1vb0prni0kqvrnppf5s40") - (mozilla-patch "icecat-bug-1452375-pt2.patch" "1f9a430881cc" "0f79rv7njliqxx33z07n60b50jg0a596d1km7ayz2hivbl2d0168"))) + (mozilla-patch "icecat-CVE-2018-5188-pt08.patch" "8189b262e3b9" "13rh86ddwmj1bhv3ibbil3sv5xbqq1c9v1czgbsna5hxxkzc1y3b") + (mozilla-patch "icecat-CVE-2018-5188-pt09.patch" "9f81ae3f6e1d" "05vfg8a8jrzd93n1wvncmvdmqgf9cgsl8ryxgjs3032gbbjkga7q") + (mozilla-patch "icecat-CVE-2018-12360.patch" "face7a3dd5d7" "0jclw30mf693w8lrmvn0iankggj21nh4j3zh51q5363rj5xncdzx") + (mozilla-patch "icecat-CVE-2018-5188-pt10.patch" "7afb58c046c8" "1r0569r76712x7x1sw6xr0x06ilv6iw3fncb0f8r8b9mp6wrpx34") + (mozilla-patch "icecat-CVE-2018-12362-pt1.patch" "f1a745f8c42d" "11q73pb7a8f09xjzil4rhg5nr49zrnz1vb0prni0kqvrnppf5s40") + (mozilla-patch "icecat-CVE-2018-12362-pt2.patch" "1f9a430881cc" "0f79rv7njliqxx33z07n60b50jg0a596d1km7ayz2hivbl2d0168") + (mozilla-patch "icecat-CVE-2018-5188-pt11.patch" "28f4fc0a5141" "1a8f9z6c80in8ccj82ysdrcr2lqypp29l4acs50kwncm0c0b01zl") + (mozilla-patch "icecat-CVE-2018-12363.patch" "ad5a53a1d2b1" "0rhl4r39ydb3lkfp5pkwvhhzqgfh33s9r7b7jccgkrx6f13xyq78") + (mozilla-patch "icecat-CVE-2018-5188-pt12.patch" "0ddfc03c0454" "1b0xw2kj9765lvpl8iwr3wwcz40bdfp3dp4y9f546a61qsi9q9d6") + (mozilla-patch "icecat-CVE-2018-5156-pt2.patch" "dbf36189a364" "1awbyhy0r79i03sns2p0m78f9hb6c7kp4hwia2khx4qszlsr4j95") + (mozilla-patch "icecat-CVE-2018-5188-pt13.patch" "32509dfde003" "0cc3c92dgf5qynk093prq610c9x815l2fa24ddrw9czdzbwblsdq") + (mozilla-patch "icecat-bug-1462912.patch" "f18535a212da" "0zkqz9il89f1s1yrp5c6hj6kysy2x02iy50vgwdj30lr56gkpzmk") + (mozilla-patch "icecat-CVE-2018-5188-pt14.patch" "e8e9e1ef79f2" "0dc8p6fsppq3bhbpmp41f8mjxbr31pvgpga0a73dqdaicq5ydgj4") + (search-patch "icecat-bug-1413868-pt1.patch") + (mozilla-patch "icecat-CVE-2018-5188-pt15.patch" "9d4d31b2630d" "1lcbmsyi09kp80h1jgxj5l45zl24xn22h1lq7drbyjxsn1kggq4g") + (mozilla-patch "icecat-CVE-2018-12366-pt1.patch" "edf2c7dff493" "06xmyk7nm54cm9m6qc59wz8cxxfa5r25mf2xzdzy74iq5hwa1ac8") + (mozilla-patch "icecat-CVE-2018-5188-pt16.patch" "05549a4d1b80" "10q68cllshmmhlrbirm9h4gyc3ffrcpsxihfpcbxh90nv2h16jci") + (mozilla-patch "icecat-CVE-2018-12364.patch" "67b2d8924841" "197riigbb6l30959pygr0zlv7vaims78dg1mh0pg33pa7cbna0ds") + (mozilla-patch "icecat-CVE-2018-12366-pt2.patch" "528d4d997bb3" "0f375i96a404dkn0fanmd9pgfj3wyrhjfc5dwslw2s44gwfjhljb") + (mozilla-patch "icecat-bug-1369771.patch" "fab16ad7f256" "0kd8qm04sjgfgfg8yw3ivcxazb1d7v430g86chw4n64qybsh9ka3") + (mozilla-patch "icecat-CVE-2018-5188-pt17.patch" "068e249d02b4" "1iy9by1mg5qhp8502h31m8zm99aq2hx0c5n3hadd5pk11lfnq6ll") + (mozilla-patch "icecat-bug-1413868-pt2.patch" "755067c14b06" "089dwqwzcdg1l6aimi0i65q4dgb2iny5h8yjx63h9zgv77n0700a"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 0555d831e3..cd639a4d39 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; @@ -147,7 +147,7 @@ between two other data points.") (define-public gama (package (name "gama") - (version "1.22") + (version "2.00") (source (origin (method url-fetch) @@ -155,7 +155,7 @@ between two other data points.") version ".tar.gz")) (sha256 (base32 - "01q3g2zi5d5r2l10hc8jwwz6w61dwkv7nyj9xd67vvq0gajw0a7r")))) + "1p51jlzr6qqqvzx0sq8j7fxqfij62c3pjcsb53vgx0jx0qdqyjba")))) (build-system gnu-build-system) (arguments '(#:parallel-tests? #f)) ; race condition (native-inputs diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index eea7e0f79a..ff52a48234 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -724,6 +724,74 @@ format is also supported.") ;; This was mthl's mcron development branch, and it became mcron 1.1. (deprecated-package "mcron2" mcron)) +(define-public guile-hall + (package + (name "guile-hall") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/a-sassmannshausen/guile-hall") + (commit "7d1094a12fe917209ce5b76c681cc8c862d4c65b"))) + (file-name "guile-hall-0.1.1-checkout") + (sha256 + (base32 + "03kb09cjca98hlbx9mj12mqinzsnnvp6ci6i975n88pjhaxigyp1")))) + (build-system gnu-build-system) + (arguments + `(#:modules + ((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + (modify-phases + %standard-phases + (add-after + 'install + 'hall-wrap-binaries + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (site (string-append out "/share/guile/site"))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" version)) + (compiled-modules + (string-append + out + "/lib/guile/" + version + "/site-ccache"))) + (for-each + (lambda (file) + (wrap-program + (string-append bin file) + `("GUILE_LOAD_PATH" ":" prefix (,modules)) + `("GUILE_LOAD_COMPILED_PATH" + ":" + prefix + (,compiled-modules)))) + ,(list 'list "hall")) + #t))))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs + `(("guile-config" ,guile-config))) + (synopsis "Guile project tooling") + (description + "Hall is a command-line application and a set of Guile libraries that +allow you to quickly create and publish Guile projects. It allows you to +transparently support the GNU build system, manage a project hierarchy & +provides tight coupling to Guix.") + (home-page + "https://gitlab.com/a-sassmannshausen/guile-hall") + (license license:gpl3+))) + (define-public guile-ics (package (name "guile-ics") @@ -767,14 +835,23 @@ The library is shipped with documentation in Info format and usage examples.") (define-public guile-lib (package (name "guile-lib") - (version "0.2.5.1") + (version "0.2.6") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-lib/guile-lib-" version ".tar.gz")) (sha256 (base32 - "19q420i3is3d4jmkdqs5y7ir7ipp4s795saflqgwf6617cx2zpj4")))) + "0n1lf5bsr5s9gqi07sdfkl1hpin6dzvkcj1xa63jd1w8aglwv8r1")) + (modules '((guix build utils))) + (snippet + '(begin + ;; 'pre-inst-env' sets an incorrect load path, missing the + ;; "/src" bit. Add it. + (substitute* "pre-inst-env.in" + (("abs_top_(builddir|srcdir)=([[:graph:]]+)" _ dir value) + (string-append "abs_top_" dir "=" value "/src"))) + #t)))) (build-system gnu-build-system) (arguments '(#:make-flags @@ -835,7 +912,8 @@ for Guile\".") "AC_SUBST([GUILE_EFFECTIVE_VERSION])\n"))) (substitute* '("Makefile.am" "json/Makefile.am") (("moddir[[:blank:]]*=.*/share/guile/site" all) - (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) + (string-append all "/@GUILE_EFFECTIVE_VERSION@"))) + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -1206,58 +1284,31 @@ Guile's foreign function interface.") (deprecated-package "guile2.2-gdbm-ffi" guile-gdbm-ffi)) (define-public guile-sqlite3 - (let ((commit "10c13a7e02ab1655c8a758e560cafc9d6eff26f4") - (revision "4")) - (package - (name "guile-sqlite3") - (version (git-version "0.0" revision commit)) - - ;; XXX: This used to be available read-only at - ;; <https://www.gitorious.org/guile-sqlite3/guile-sqlite3.git/> but it - ;; eventually disappeared, so we have our own copy here. - (home-page "https://notabug.org/civodul/guile-sqlite3.git") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (sha256 - (base32 - "0nhhswpd7nb2f0gfr55fzcc2xm3l2xx4rbljsd1clrm8fj2d7q9d")) - (file-name (string-append name "-" version "-checkout")) - (modules '((guix build utils))) - (snippet - ;; Upgrade 'Makefile.am' to the current way of doing things. - '(begin - (substitute* "Makefile.am" - (("TESTS_ENVIRONMENT") - "TEST_LOG_COMPILER")) - #t)))) - - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2) - ("sqlite" ,sqlite))) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vfi")))) - (add-before 'build 'set-sqlite3-file-name - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "sqlite3.scm" - (("\"libsqlite3\"") - (string-append "\"" (assoc-ref inputs "sqlite") - "/lib/libsqlite3\""))) - #t))))) - (synopsis "Access SQLite databases from Guile") - (description - "This package provides Guile bindings to the SQLite database system.") - (license license:gpl3+)))) + (package + (name "guile-sqlite3") + (version "0.1.0") + (home-page "https://notabug.org/civodul/guile-sqlite3.git") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "1nv8j7wk6b5n4p22szyi8lv8fs31rrzxhzz16gyj8r38c1fyp9qp")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2) + ("sqlite" ,sqlite))) + (synopsis "Access SQLite databases from Guile") + (description + "This package provides Guile bindings to the SQLite database system.") + (license license:gpl3+))) (define-public haunt (package @@ -1320,30 +1371,24 @@ interface for reading articles in any format.") (define-public guile-config (package (name "guile-config") - (version "0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/a-sassmannshausen/guile-config") - (commit "guile-config-0.2"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "07q86vqdwmm81wwxz1d1ah27hbhs6qbn8kiizrfpj0s4bf95w3r9")))) + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/a-sassmannshausen/guile-config") + (commit "ce12de3f438c6b2b59c43ee21bcd58251835fdf3"))) + (file-name "guile-config-0.3-checkout") + (sha256 (base32 "02zbpin0r9m2vxmr7mv68v3xdn247dcck56kbzjn0gj4c2rhih85")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-fi"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) - (inputs - `(("guile" ,guile-2.2))) - (synopsis "Guile application configuration parsing library") + (inputs `(("guile" ,guile-2.2))) + (synopsis + "Guile application configuration parsing library.") (description "Guile Config is a library providing a declarative approach to application configuration specification. The library provides clean @@ -1352,7 +1397,8 @@ configuration file creation; configuration file parsing; command-line parameter parsing using getopt-long; basic GNU command-line parameter generation (--help, --usage, --version); automatic output generation for the above command-line parameters.") - (home-page "https://github.com/a-sassmannshausen/guile-config") + (home-page + "https://gitlab.com/a-sassmannshausen/guile-config") (license license:gpl3+))) (define-public guile-redis diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 5abcdf9a2a..b2e67e52f9 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -60,7 +60,7 @@ (define-public feh (package (name "feh") - (version "2.26.3") + (version "2.27") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -68,7 +68,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "08aagymgajcvciagwy2zdxhicvdfnjmd2xyx9bqjy7l1n16ydwrz")))) + "0kn6cka9m76697i495npd60ad64jnfnzv5z6znzyr0vlxx2nhcmg")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index a2874be1a8..5ad6fe9487 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -394,6 +394,7 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") + (replacement libtiff/fixed) (version "4.0.9") (source (origin @@ -426,6 +427,17 @@ collection of tools for doing simple manipulations of TIFF images.") "See COPYRIGHT in the distribution.")) (home-page "http://www.simplesystems.org/libtiff/"))) +(define libtiff/fixed + (package + (inherit libtiff) + (source + (origin + (inherit (package-source libtiff)) + (patches + (append (origin-patches (package-source libtiff)) + (search-patches "libtiff-CVE-2018-8905.patch" + "libtiff-CVE-2018-10963.patch"))))))) + (define-public leptonica (package (name "leptonica") diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index e80da6d848..24e62142b9 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -47,14 +47,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.9-43") + (version "6.9.10-3") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "09vfxb1ljfma7mvkcqp17bs7adlrfh6kc6k9hifkhgxf51vr7hk6")))) + "0njq3vp0f3d5992jsah5nhbc5id2bnl7myhdw669k0vmc55mmlcj")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 747edc18d0..0f6a778360 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2683,7 +2683,16 @@ documentation tools.") "code.google.com/jarjar/jarjar-src-" version ".zip")) (sha256 (base32 - "1v8irhni9cndcw1l1wxqgry013s2kpj0qqn57lj2ji28xjq8ndjl")))) + "1v8irhni9cndcw1l1wxqgry013s2kpj0qqn57lj2ji28xjq8ndjl")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled thirds-party jar archives. + ;; TODO: unbundle maven-plugin-api. + (delete-file "lib/asm-4.0.jar") + (delete-file "lib/asm-commons-4.0.jar") + (delete-file "lib/junit-4.8.1.jar") + #t)))) (build-system ant-build-system) (arguments `(;; Tests require junit, which ultimately depends on this package. @@ -2691,6 +2700,26 @@ documentation tools.") #:build-target "jar" #:phases (modify-phases %standard-phases + (add-before 'build 'do-not-use-bundled-asm + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + (("<path id=\"path.build\">") + (string-append "<path id=\"path.build\"><fileset dir=\"" + (assoc-ref inputs "java-asm-bootstrap") + "/share/java\" includes=\"**/*.jar\"/>")) + (("<zipfileset src=\"lib/asm-4.0.jar\"/>") "") + (("lib/asm-commons-4.0.jar") + (string-append (assoc-ref inputs "java-asm-bootstrap") + "/share/java/asm-6.0.jar")) + (("<include name=\"org/objectweb/asm/commons/Remap\\*\\.class\"/>") + (string-append "<include name=\"org/objectweb/asm/" + "commons/Remap*.class\"/>" + "<include name=\"org/objectweb/asm/*.class\"/>" + "<include name=\"org/objectweb/asm/" + "signature/*.class\"/>" + "<include name=\"org/objectweb/asm/" + "commons/SignatureRemapper.class\"/>"))) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((target (string-append (assoc-ref outputs "out") @@ -2698,6 +2727,8 @@ documentation tools.") (install-file (string-append "dist/jarjar-" ,version ".jar") target)) #t))))) + (inputs + `(("java-asm-bootstrap" ,java-asm-bootstrap))) (native-inputs `(("unzip" ,unzip))) (home-page "https://code.google.com/archive/p/jarjar/") @@ -7111,7 +7142,8 @@ it manages project dependencies, gives diffs jars, and much more.") (name "java-aqute-libg-bootstrap") (arguments ;; Disable tests, at this stage of bootstrap we have no test frameworks. - `(#:tests? #f)) + (substitute-keyword-arguments (package-arguments java-aqute-libg) + ((#:tests? _ #f) #f))) (inputs `(("slf4j-bootstrap" ,java-slf4j-api-bootstrap) ,@(delete `("slf4j" ,java-slf4j-api) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 62c936c191..e4b8bbbbed 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -214,6 +215,49 @@ with usb4java.") implementing @code{javax.usb} (JSR-80).") (license expat))) +(define-public python-libusb1 + (package + (name "python-libusb1") + (version "1.6.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "libusb1" version)) + (sha256 + (base32 + "03b7xrz8vqg8w0za5r503jhcmbd1ls5610jcja1rqz833nf0v4wc")))) + (build-system python-build-system) + (arguments + `(#:modules ((srfi srfi-1) + (guix build utils) + (guix build python-build-system)) + #:phases + (modify-phases %standard-phases + (add-before 'install-license-files 'remove-incorrect-license + (lambda* (#:key out #:allow-other-keys) + ;; Was relicensed to LGPL 2.1+, but old COPYING file still left + ;; in source. Remove it so it does not get installed. + (delete-file "COPYING") + #t)) + (add-after 'unpack 'fix-libusb-reference + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "usb1/libusb1.py" + (("libusb_path = ctypes.util.find_library\\(base_name\\)") + (string-append + "libusb_path = \"" + (find (negate symbolic-link?) + (find-files (assoc-ref inputs "libusb") + "^libusb.*\\.so\\..*")) + "\""))) + #t))))) + (inputs `(("libusb" ,libusb))) + (home-page "https://github.com/vpelletier/python-libusb1") + (synopsis "Pure-python wrapper for libusb-1.0") + (description "Libusb is a library that gives applications easy access to +USB devices on various operating systems. This package provides a Python +wrapper for accessing libusb-1.0.") + (license lgpl2.1+))) + (define-public python-pyusb (package (name "python-pyusb") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a28aa5a2ea..5c1f679a36 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -402,8 +402,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.2") -(define %linux-libre-hash "0xkswi9vhbzi466pqvyli7glkvdyxhphn8yjg69kpw37rpw8ix5l") +(define %linux-libre-version "4.17.3") +(define %linux-libre-hash "06mjbs3i0xq1h1cgr6xldr6a8rxsy30mf86wp3n2ff6l5v78iw2q") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.51") -(define %linux-libre-4.14-hash "1ifczslgp3ng0948l5p0khcnfkv9i44mq0bzk1y8mwdhy4mik0b9") +(define %linux-libre-4.14-version "4.14.52") +(define %linux-libre-4.14-hash "0lx916iw33n32h1fca59r7mh6l2smyml6igvzhimcah62hqx4rk8") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version @@ -421,8 +421,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.109" - "1i27fmlr0b05n4qri2vxdbg0qddwk1clyaramwbl3w0w10k63qkc" + (make-linux-libre "4.9.110" + "0nzfna9w9a45y521d3dcxkdv66gn38n4pq814rdqazk74qb5macn" %intel-compatible-systems #:configuration-file kernel-config)) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 59e38bb88e..a86bdcb5ed 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -49,6 +49,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages ocaml) + #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -233,7 +234,7 @@ classification.") #t)) (add-after 'disable-broken-tests 'autogen (lambda _ - (zero? (system* "bash" "autogen.sh"))))))) + (invoke "bash" "autogen.sh")))))) (inputs `(("python" ,python-2) ; only Python 2 is supported ("libxml2" ,libxml2))) @@ -667,15 +668,18 @@ and a QP solver.") ;; No test target, so we build and run the unit tests here. (let ((test-dir (string-append "../dlib-" ,version "/dlib/test"))) (with-directory-excursion test-dir - (and (zero? (system* "make" "-j" (number->string (parallel-job-count)))) - (zero? (system* "./dtest" "--runall"))))))) + (invoke "make" "-j" (number->string (parallel-job-count))) + (invoke "./dtest" "--runall")) + #t))) (add-after 'install 'delete-static-library (lambda* (#:key outputs #:allow-other-keys) (delete-file (string-append (assoc-ref outputs "out") "/lib/libdlib.a")) #t))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ;; For tests. + ("libnsl" ,libnsl))) (inputs `(("giflib" ,giflib) ("lapack" ,lapack) @@ -726,7 +730,7 @@ computing environments.") (setenv "HOME" "/tmp") ;; Step out of the source directory just to be sure. (chdir "..") - (zero? (system* "nosetests" "-v" "sklearn"))))))) + (invoke "nosetests" "-v" "sklearn")))))) (inputs `(("openblas" ,openblas))) (native-inputs diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index bce411d0bd..e15e8497b7 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -137,10 +137,9 @@ convert it to structurally valid XHTML (or HTML).") (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (setenv "CC" "gcc") - (zero? (system* - "./configure.sh" + (invoke "./configure.sh" (string-append "--prefix=" (assoc-ref outputs "out")) - "--shared"))))))) + "--shared")))))) (synopsis "Markdown processing library, written in C") (description "Discount is a markdown implementation, written in C. It provides a diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7d70ac1fa6..8d7535a8dc 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1400,12 +1400,18 @@ script files.") (define-public qtoctave (package (inherit octave) (name "qtoctave") + (source (origin + (inherit (package-source octave)) + (patches (append (origin-patches (package-source octave)) + (search-patches + "qtoctave-qt-5.11-fix.patch"))))) (inputs `(("qscintilla" ,qscintilla) ("qt" ,qtbase) ,@(package-inputs octave))) (native-inputs `(("qttools" , qttools) ;for lrelease + ("texlive" ,texlive) ;for texi2dvi ,@(package-native-inputs octave))) (arguments (substitute-keyword-arguments (package-arguments octave) @@ -1598,7 +1604,7 @@ September 2004}") ,@configure-flags))) (format #t "build directory: ~s~%" (getcwd)) (format #t "configure flags: ~s~%" flags) - (zero? (apply system* "./configure" flags))))) + (apply invoke "./configure" flags)))) (add-after 'configure 'clean-local-references (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -1755,7 +1761,8 @@ savings are consistently > 5x.") ;; documentation is difficult. (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) - (for-each delete-file (find-files out "\\.html$"))))) + (for-each delete-file (find-files out "\\.html$")) + #t))) (add-after 'install 'clean-install ;; Clean up unnecessary build logs from installation. (lambda* (#:key outputs #:allow-other-keys) @@ -1766,7 +1773,8 @@ savings are consistently > 5x.") (delete-file f)))) '("configure.log" "make.log" "gmake.log" "test.log" "error.log" "RDict.db" - "uninstall.py")))))))) + "uninstall.py")) + #t)))))) (home-page "http://slepc.upv.es") (synopsis "Scalable library for eigenproblems") (description "SLEPc is a software library for the solution of large sparse @@ -1911,8 +1919,8 @@ IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)" ;; By default only the d-precision library is built. Make with "all" ;; target so that all precision libraries and examples are built. (lambda _ - (zero? (system* "make" "all" - (format #f "-j~a" (parallel-job-count)))))) + (invoke "make" "all" + (format #f "-j~a" (parallel-job-count))))) (replace 'check ;; Run the simple test drivers, which read test input from stdin: ;; from the "real" input for the single- and double-precision @@ -2231,11 +2239,11 @@ CDEFS = -DAdd_" ;; isn't used anyway.) (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) (with-directory-excursion "EXAMPLE" - (and - (zero? (system* "mpirun" "-n" "2" - "./pddrive" "-r" "1" "-c" "2" "g20.rua")) - (zero? (system* "mpirun" "-n" "2" - "./pzdrive" "-r" "1" "-c" "2" "cg20.cua")))))) + (invoke "mpirun" "-n" "2" + "./pddrive" "-r" "1" "-c" "2" "g20.rua") + (invoke "mpirun" "-n" "2" + "./pzdrive" "-r" "1" "-c" "2" "cg20.cua")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) ;; Library is placed in lib during the build phase. Copy over @@ -2283,7 +2291,7 @@ implemented in ANSI C, and MPI for communications.") (modify-phases %standard-phases (add-after 'unpack 'chdir-to-src - (lambda _ (chdir "src"))) + (lambda _ (chdir "src") #t)) (replace 'configure (lambda _ @@ -2320,7 +2328,8 @@ YACC = bison -pscotchyy -y -b y ;; XXX: Causes invalid frees in superlu-dist tests ;; "SCOTCH_PTHREAD" ;; "SCOTCH_PTHREAD_NUMBER=2" - "restrict=__restrict")))))) + "restrict=__restrict")))) + #t)) (add-after 'build 'build-esmumps (lambda _ @@ -2330,24 +2339,25 @@ YACC = bison -pscotchyy -y -b y ;; isn't used anyway.) (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) - (zero? (system* "make" - (format #f "-j~a" (parallel-job-count)) - "esmumps")))) + (invoke "make" + (format #f "-j~a" (parallel-job-count)) + "esmumps"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir out) - (zero? (system* "make" - (string-append "prefix=" out) - "install")) + (invoke "make" + (string-append "prefix=" out) + "install") ;; esmumps files are not installed with the above (for-each (lambda (f) (copy-file f (string-append out "/include/" f))) (find-files "../include" ".*esmumps.h$")) (for-each (lambda (f) (copy-file f (string-append out "/lib/" f))) - (find-files "../lib" "^lib.*esmumps.*")))))))) + (find-files "../lib" "^lib.*esmumps.*")) + #t)))))) (home-page "http://www.labri.fr/perso/pelegrin/scotch/") (synopsis "Programs and libraries for graph algorithms") (description "SCOTCH is a set of programs and libraries which implement diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 8183b2b827..52464e28d4 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -73,7 +73,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.15") + (version "0.16") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -81,7 +81,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") "/mes-" version ".tar.gz")) (sha256 (base32 - "0kj2ywgii1795gxj6k29zxa0848h2j0ihbwlgn55wdalswl165dq")))) + "0c4vz1qw767af5h615055hh8zjwwmwf5mwkb64l0l921zaa9hg2n")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs @@ -120,7 +120,7 @@ Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in (define-public mescc-tools (package (name "mescc-tools") - (version "0.4") + (version "0.5.1") (source (origin (method url-fetch) (uri (string-append @@ -130,7 +130,7 @@ Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1iwc8xqwzdaqckb4jkkisljrgn8ii4bl7dzk1l2kpv98hsyq9vi1")))) + "0rsxbjc3bg0jl3h7ai4hndxx2iyyk8bvwj9nd3xv2vgz3bmypnah")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (arguments diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 3c06fb0e64..57a04e1113 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -276,7 +276,7 @@ information about tracks being played to a scrobbler, such as Libre.FM.") '(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ (zero? (system* "python" "mpd_test.py"))))))) + (lambda _ (invoke "python" "mpd_test.py")))))) (native-inputs `(("python-mock" ,python-mock))) (home-page "https://github.com/Mic92/python-mpd2") (synopsis "Python MPD client library") diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 824b03dc0c..deb4f222b8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2018 nee <nee.git@hidamari.blue> ;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> +;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ #:use-module (guix build-system ant) #:use-module (guix build-system cmake) #:use-module (guix build-system meson) + #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system scons) #:use-module (guix build-system glib-or-gtk) @@ -104,6 +106,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) ;libsndfile @@ -3510,16 +3513,16 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (define-public musescore (package (name "musescore") - (version "2.2.1") + (version "2.3") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/musescore/MuseScore/archive/" - "v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/musescore/MuseScore.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1ml99ayzpdyd18cypcp0lbsbasfg3abw57i5fl7ph5739vikj6i6")) + "1y5x0a40x7ji4g4181adm95qxk2dfjiy5xb5wksps90ji9q2qlcs")) (modules '((guix build utils))) (snippet ;; Un-bundle OpenSSL and remove unused libraries. @@ -3540,8 +3543,8 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) "USE_SYSTEM_FREETYPE=ON" "DOWNLOAD_SOUNDFONT=OFF" - ;; The following is not supported since Qt 5.11. Can be - ;; removed in Musescore 2.2.2+. + ;; The following is not supported since Qt 5.11. May be removed in + ;; a future release. "BUILD_WEBKIT=OFF") ;; There are tests, but no simple target to run. The command ;; used to run them is: @@ -3554,14 +3557,6 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke #:tests? #f #:phases (modify-phases %standard-phases - ;; Fix Qt 5.11 upgrade. Should be fixed in 2.2.2+, see: - ;; <https://github.com/musescore/MuseScore/commit/d10e70415c8e52e2ba9d45de564467e42f66c102> - (add-after 'unpack 'patch-sources - (lambda _ - (substitute* "all.h" - (("#include <QRadioButton>") "#include <QRadioButton> -#include <QButtonGroup>")) - #t)) (delete 'configure)))) (inputs `(("alsa-lib" ,alsa-lib) @@ -4019,6 +4014,57 @@ mb_client, is a development library geared towards developers who wish to add MusicBrainz lookup capabilities to their applications.") (license license:lgpl2.1+))) +(define-public perl-musicbrainz-discid + (package + (name "perl-musicbrainz-discid") + (version "0.04") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NJ/NJH/MusicBrainz-DiscID-" + version ".tar.gz")) + (sha256 + (base32 + "1i4qk1qfcmxdibqkyfjrrjdq2zk42vjcz590qgiyc47fi9p6xx1j")))) + (build-system perl-build-system) + (native-inputs `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs `(("libdiscid" ,libdiscid))) + (home-page "https://metacpan.org/release/MusicBrainz-DiscID") + (synopsis "Perl interface to the MusicBrainz libdiscid library") + (description + "The @code{MusicBrainz::DiscID} module is a Perl interface to the +MusicBrainz libdiscid library, allowing you to manipulate digital audio +compact disc (CDDA) identifiers.") + (license license:gpl2))) + +(define-public perl-webservice-musicbrainz + (package + (name "perl-webservice-musicbrainz") + (version "1.0.4") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BF/BFAIST/WebService-MusicBrainz-" + version ".tar.gz")) + (sha256 + (base32 + "182z3xjajk6s7k5xm3kssjy3hqx2qbnq4f8864hma098ryy2ph3a")))) + (build-system perl-build-system) + (arguments + ;; Tests try to connect to http://musicbrainz.org. + '(#:tests? #f)) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (propagated-inputs + `(("perl-mojolicious" ,perl-mojolicious))) + (home-page "https://metacpan.org/release/WebService-MusicBrainz") + (synopsis "Web service API to the MusicBrainz database") + (description + "This module searches the MusicBrainz database through their web service +at @code{musicbrainz.org}.") + (license license:perl-license))) + (define-public clyrics (package (name "clyrics") diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index e9ae9fa466..8fc0a1eb97 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -163,8 +164,8 @@ minimalist than ntpd.") ;; date that is recorded in binaries. It must be a ;; "recent date" since it is used to detect bogus dates ;; received from servers. - (setenv "COMPILE_DATE" (number->string 1450563040)) - (zero? (system* "sh" "autogen.sh"))))))) + (setenv "COMPILE_DATE" (number->string 1530144000)) + (invoke "sh" "autogen.sh")))))) (inputs `(("openssl" ,openssl) ("libevent" ,libevent))) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm index b31fa09474..644cd95e93 100644 --- a/gnu/packages/opencl.scm +++ b/gnu/packages/opencl.scm @@ -21,9 +21,21 @@ #:use-module (guix build-system cmake) #:use-module (guix download) #:use-module (guix git-download) - #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) - #:use-module (gnu packages python)) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages gl) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages compression) + #:use-module (gnu packages libedit) + #:use-module (gnu packages llvm) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages ruby) + #:use-module (gnu packages video) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xorg)) ;; This file adds OpenCL implementation related packages. Due to the fact that ;; OpenCL devices are not available during build (store environment), tests are @@ -118,3 +130,161 @@ programming.") (description "This package provides the @dfn{host API} C++ headers for OpenCL.") (license license:expat))) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.12") + (source (origin + (method url-fetch) + (uri (string-append + "https://forge.imag.fr/frs/download.php/836/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1x2dr8p4dkfds56r38av360i3nv1y3326jmshxvjngaf6mlg6rbn")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "khronos-headers")))) + (native-inputs + `(("opencl-headers" ,opencl-headers) + ("ruby" ,ruby))) + (inputs + `(("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("DEBUG_OCL_ICD=1"))) + (native-search-paths + (list (search-path-specification + (variable "OPENCL_VENDOR_PATH") + (files '("etc/OpenCL/vendors"))))) + (search-paths native-search-paths) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL loader for Installable Client Drivers (ICDs)") + (description + "OpenCL implementations are provided as ICDs (Installable Client +Drivers). An OpenCL program can use several ICDs thanks to the use of an ICD +Loader as provided by this package.") + (license license:bsd-2))) + +(define-public clinfo + (package + (name "clinfo") + (version "2.2.18.04.06") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Oblomov/clinfo/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0v7cy01irwdgns6lzaprkmm0502pp5a24zhhffydxz1sgfjj2w7p")))) + (build-system gnu-build-system) + (native-inputs + `(("opencl-headers" ,opencl-headers))) + (inputs + `(("ocl-icd" ,ocl-icd))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (let ((cores (number->string (parallel-job-count)))) + (setenv "CC" "gcc") + (invoke "make" "-j" cores)))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "install" (string-append + "PREFIX=" + (assoc-ref outputs "out")))))) + #:tests? #f)) + (home-page "https://github.com/Oblomov/clinfo") + (synopsis "Print information about OpenCL platforms and devices") + ;; Only the implementation installed via Guix will be detected. + (description + "This package provides the @command{clinfo} command that enumerates all +possible (known) properties of the OpenCL platform and devices available on +the system.") + (license license:cc0))) + +(define-public beignet + (package + (name "beignet") + (version "1.3.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/intel/beignet/archive/Release_v" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "18r0lq3dkd4yn6bxa45s2lrr9cjbg70nr2nn6xablvgqwzw0jb0r")) + (patches (search-patches "beignet-correct-file-names.patch")) + (modules '((guix build utils))) + (snippet + ;; There's a suspicious .isa binary file under kernels/. + ;; Remove it. + '(for-each delete-file (find-files "." "\\.isa$"))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("python" ,python))) + (inputs `(("clang@3.7" ,clang-3.7) + ("clang-runtime@3.7" ,clang-runtime-3.7) + ("glu" ,glu) + ("llvm@3.7" ,llvm-3.7) + ("libdrm" ,libdrm) + ("libedit" ,libedit) + ("libpthread-stubs", libpthread-stubs) + ("libsm" ,libsm) + ("libva" ,libva) + ("libxfixes" ,libxfixes) + ("libxext" ,libxext) + ("mesa-utils" ,mesa-utils) + ("ncurses" ,ncurses) + ("ocl-icd" ,ocl-icd) + ("opencl-headers" ,opencl-headers) + ("xextproto" ,xextproto) + ("zlib" ,zlib))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DCLANG_LIBRARY_DIR=" + (assoc-ref %build-inputs "clang@3.7") "/lib") + "-DENABLE_GL_SHARING=ON" + "-DEXPERIMENTAL_DOUBLE=ON") + + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-headers + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (delete-file-recursively + (string-append out "/include")) + #t))) + (add-after 'remove-headers 'install-kernels + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (builddir (getcwd)) + (source-dir (string-append + builddir + "/../beignet-Release_v1.3.2/kernels"))) + (copy-recursively source-dir + (string-append out "/lib/beignet/kernels")) + #t)))) + ;; Beignet tries to find GPU when running tests, which is not available + ;; during build. + #:tests? #f)) + (home-page "https://wiki.freedesktop.org/www/Software/Beignet/") + (synopsis "OpenCL framework for Intel GPUs") + (description + "Beignet is an implementation of the OpenCL specification. This code +base contains the code to run OpenCL programs on Intel GPUs---IvyBridge, +Haswell, Skylake, Apollolake, etc. It defines and implements the OpenCL host +functions required to initialize the device, create the command queues, the +kernels and the programs, and run them on the GPU. The code also contains a +back-end for the LLVM compiler framework.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 6a55f62ee6..1c31230e58 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> -;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> @@ -41,6 +41,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages docbook) + #:use-module (gnu packages emacs) #:use-module (gnu packages file) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -433,20 +434,27 @@ sub-directory.") (define-public emacs-nix-mode (package - (inherit nix) (name "emacs-nix-mode") + (version "1.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/NixOS/nix-mode/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "06aqz0czznsj8835jqnk794sy2p6pa8kxfqwh0nl5d5vxivria6z")))) (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir-elisp - ;; Elisp directory is not in root of the source. - (lambda _ - (chdir "misc/emacs")))))) + (inputs + `(("emacs-company" ,emacs-company) + ("emacs-mmm-mode" ,emacs-mmm-mode))) + (home-page "https://github.com/NixOS/nix-mode") (synopsis "Emacs major mode for editing Nix expressions") (description "@code{nixos-mode} provides an Emacs major mode for editing Nix expressions. It supports syntax highlighting, indenting and refilling of -comments."))) +comments.") + (license license:lgpl2.1+))) (define-public stow (package diff --git a/gnu/packages/patches/beignet-correct-file-names.patch b/gnu/packages/patches/beignet-correct-file-names.patch new file mode 100644 index 0000000000..2c5d0bbaea --- /dev/null +++ b/gnu/packages/patches/beignet-correct-file-names.patch @@ -0,0 +1,32 @@ +Help CMake find Clang's libraries. +Have it install the ICD file in the right place. + +diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake +index 5457f248..e8e8f94a 100644 +--- a/CMake/FindLLVM.cmake ++++ b/CMake/FindLLVM.cmake +@@ -107,7 +107,7 @@ endif (LLVM_VERSION_NODOT VERSION_GREATER 34) + macro(add_one_lib name) + FIND_LIBRARY(CLANG_LIB + NAMES ${name} +- PATHS ${LLVM_LIBRARY_DIR} NO_DEFAULT_PATH) ++ PATHS ${CLANG_LIBRARY_DIR} NO_DEFAULT_PATH) + set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_LIB}) + unset(CLANG_LIB CACHE) + endmacro() +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c11acbb2..fb99e5c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -217,7 +217,7 @@ IF(OCLIcd_FOUND) + "intel-beignet.icd.in" + "${ICD_FILE_NAME}" + ) +- install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${ICD_FILE_NAME} DESTINATION /etc/OpenCL/vendors) ++ install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${ICD_FILE_NAME} DESTINATION etc/OpenCL/vendors COMPONENT config) + ELSE(OCLIcd_FOUND) + MESSAGE(STATUS "Looking for OCL ICD header file - not found") + MESSAGE(FATAL_ERROR "OCL ICD loader miss. If you really want to disable OCL ICD support, please run cmake with option -DOCLICD_COMPAT=0.") +-- +2.14.3 + diff --git a/gnu/packages/patches/emacs-browse-at-remote-cgit-gnu.patch b/gnu/packages/patches/emacs-browse-at-remote-cgit-gnu.patch deleted file mode 100644 index b90017fdb4..0000000000 --- a/gnu/packages/patches/emacs-browse-at-remote-cgit-gnu.patch +++ /dev/null @@ -1,59 +0,0 @@ -Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> - -This patch adds a support for Git repositories hosted on git.savannah.gnu.org. - -Upstream bug URL: - -https://github.com/rmuslimov/browse-at-remote/pull/46 - -From cd2ccdaef8b1d97337d790175f71cc3dbcfcff64 Mon Sep 17 00:00:00 2001 -From: Oleg Pykhalov <go.wigust@gmail.com> -Date: Fri, 26 Jan 2018 00:05:30 +0300 -Subject: [PATCH] Add support for repositories that are hosted on gnu cgit - ---- - browse-at-remote.el | 21 ++++++++++++++++++++- - 1 file changed, 20 insertions(+), 1 deletion(-) - -diff --git a/browse-at-remote.el b/browse-at-remote.el -index 66967b3..e210d18 100644 ---- a/browse-at-remote.el -+++ b/browse-at-remote.el -@@ -44,7 +44,8 @@ - (defcustom browse-at-remote-remote-type-domains - '(("bitbucket.org" ."bitbucket") - ("github.com" . "github") -- ("gitlab.com" . "gitlab")) -+ ("gitlab.com" . "gitlab") -+ ("git.savannah.gnu.org" . "gnu")) - "Alist of domain patterns to remote types." - - :type '(alist :key-type (string :tag "Domain") -@@ -199,6 +200,24 @@ If HEAD is detached, return nil." - (if (fboundp formatter) - formatter nil))) - -+(defun browse-at-remote-gnu-format-url (repo-url) -+ "Get a gnu formatted URL." -+ (replace-regexp-in-string -+ (concat "https://" (car (rassoc "gnu" browse-at-remote-remote-type-domains)) -+ "/\\(git\\).*\\'") -+ "cgit" repo-url nil nil 1)) -+ -+(defun browse-at-remote--format-region-url-as-gnu (repo-url location filename &optional linestart lineend) -+ "URL formatter for gnu." -+ (let ((repo-url (browse-at-remote-gnu-format-url repo-url))) -+ (cond -+ (linestart (format "%s.git/tree/%s?h=%s#n%d" repo-url filename location linestart)) -+ (t (format "%s.git/tree/%s?h=%s" repo-url filename location))))) -+ -+(defun browse-at-remote--format-commit-url-as-gnu (repo-url commithash) -+ "Commit URL formatted for gnu" -+ (format "%s.git/commit/?id=%s" (browse-at-remote-gnu-format-url repo-url) commithash)) -+ - (defun browse-at-remote--format-region-url-as-github (repo-url location filename &optional linestart lineend) - "URL formatted for github." - (cond --- -2.15.1 - diff --git a/gnu/packages/patches/gcc-8-strmov-store-file-names.patch b/gnu/packages/patches/gcc-8-strmov-store-file-names.patch new file mode 100644 index 0000000000..f8e6b951b2 --- /dev/null +++ b/gnu/packages/patches/gcc-8-strmov-store-file-names.patch @@ -0,0 +1,110 @@ +Make sure that statements such as: + + strcpy (dst, "/gnu/store/…"); + +or + + static const char str[] = "/gnu/store/…"; + … + strcpy (dst, str); + +do not result in chunked /gnu/store strings that are undetectable by +Guix's GC and its grafting code. See <https://bugs.gnu.org/24703> +and <https://bugs.gnu.org/30395>. + +--- gcc-5.3.0/gcc/builtins.c 2016-10-18 10:50:46.080616285 +0200 ++++ gcc-5.3.0/gcc/builtins.c 2016-11-09 15:26:43.693042737 +0100 +@@ -3012,6 +3012,58 @@ determine_block_size (tree len, rtx len_rtx, + GET_MODE_MASK (GET_MODE (len_rtx))); + } + ++extern void debug_tree (tree); ++ ++/* Return true if STR contains the string "/gnu/store". */ ++ ++bool ++store_reference_p (tree str) ++{ ++ if (getenv ("GUIX_GCC_DEBUG") != NULL) ++ debug_tree (str); ++ ++ if (TREE_CODE (str) == ADDR_EXPR) ++ str = TREE_OPERAND (str, 0); ++ ++ if (TREE_CODE (str) == VAR_DECL ++ && TREE_STATIC (str) ++ && TREE_READONLY (str)) ++ { ++ /* STR may be a 'static const' variable whose initial value ++ is a string constant. See <https://bugs.gnu.org/30395>. */ ++ str = DECL_INITIAL (str); ++ if (str == NULL_TREE) ++ return false; ++ } ++ ++ if (TREE_CODE (str) != STRING_CST) ++ return false; ++ ++ int len; ++ const char *store; ++ ++ store = getenv ("NIX_STORE") ? getenv ("NIX_STORE") : "/gnu/store"; ++ len = strlen (store); ++ ++ /* Size of the hash part of store file names, including leading slash and ++ trailing hyphen. */ ++ const int hash_len = 34; ++ ++ if (TREE_STRING_LENGTH (str) < len + hash_len) ++ return false; ++ ++ /* We cannot use 'strstr' because 'TREE_STRING_POINTER' returns a string ++ that is not necessarily NUL-terminated. */ ++ ++ for (int i = 0; i < TREE_STRING_LENGTH (str) - (len + hash_len); i++) ++ { ++ if (strncmp (TREE_STRING_POINTER (str) + i, store, len) == 0) ++ return true; ++ } ++ ++ return false; ++} ++ + /* Try to verify that the sizes and lengths of the arguments to a string + manipulation function given by EXP are within valid bounds and that + the operation does not lead to buffer overflow or read past the end. +@@ -3605,6 +3657,13 @@ expand_builtin_memory_copy_args (tree dest, tree src, tree len, + unsigned HOST_WIDE_INT max_size; + unsigned HOST_WIDE_INT probable_max_size; + ++ /* Do not emit block moves, which translate to the 'movabs' instruction on ++ x86_64, when SRC refers to store items. That way, store references ++ remain visible to the Guix GC and grafting code. See ++ <https://bugs.gnu.org/24703>. */ ++ if (store_reference_p (src)) ++ return NULL_RTX; ++ + /* If DEST is not a pointer type, call the normal function. */ + if (dest_align == 0) + return NULL_RTX; +--- gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:36:16.709442004 +0100 ++++ gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:46:43.838487065 +0100 +@@ -635,6 +635,8 @@ var_decl_component_p (tree var) + return SSA_VAR_P (inner); + } + ++extern bool store_reference_p (tree); ++ + /* If the SIZE argument representing the size of an object is in a range + of values of which exactly one is valid (and that is zero), return + true, otherwise false. */ +@@ -742,6 +744,9 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, + off0 = build_int_cst (build_pointer_type_for_mode (char_type_node, + ptr_mode, true), 0); + ++ if (store_reference_p (src)) ++ return false; ++ + /* If we can perform the copy efficiently with first doing all loads + and then all stores inline it that way. Currently efficiently + means that we can load all the memory into a single integer diff --git a/gnu/packages/patches/icecat-bug-1413868-pt1.patch b/gnu/packages/patches/icecat-bug-1413868-pt1.patch new file mode 100644 index 0000000000..18382dc33a --- /dev/null +++ b/gnu/packages/patches/icecat-bug-1413868-pt1.patch @@ -0,0 +1,663 @@ +Based on <https://hg.mozilla.org/releases/mozilla-esr52/rev/431fa5dd4016> +Adapted to apply cleanly to GNU IceCat. + +# HG changeset patch +# User Honza Bambas <honzab.moz@firemni.cz> +# Date 1528830658 14400 +# Node ID 431fa5dd4016bdab7e4bb0d3c4df85468fe337b0 +# Parent e8e9e1ef79f2a18c61ec1b87cfb214c8d4960f8e +Bug 1413868. r=valentin, a=RyanVM + +diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp +--- a/toolkit/xre/nsAppRunner.cpp ++++ b/toolkit/xre/nsAppRunner.cpp +@@ -4,16 +4,17 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #include "mozilla/dom/ContentParent.h" + #include "mozilla/dom/ContentChild.h" + #include "mozilla/ipc/GeckoChildProcessHost.h" + + #include "mozilla/ArrayUtils.h" + #include "mozilla/Attributes.h" ++#include "mozilla/FilePreferences.h" + #include "mozilla/ChaosMode.h" + #include "mozilla/IOInterposer.h" + #include "mozilla/Likely.h" + #include "mozilla/MemoryChecking.h" + #include "mozilla/Poison.h" + #include "mozilla/Preferences.h" + #include "mozilla/ScopeExit.h" + #include "mozilla/Services.h" +@@ -4304,16 +4305,20 @@ XREMain::XRE_mainRun() + // Need to write out the fact that the profile has been removed and potentially + // that the selected/default profile changed. + mProfileSvc->Flush(); + } + } + + mDirProvider.DoStartup(); + ++ // As FilePreferences need the profile directory, we must initialize right here. ++ mozilla::FilePreferences::InitDirectoriesWhitelist(); ++ mozilla::FilePreferences::InitPrefs(); ++ + OverrideDefaultLocaleIfNeeded(); + + #ifdef MOZ_CRASHREPORTER + nsCString userAgentLocale; + // Try a localized string first. This pref is always a localized string in + // IceCatMobile, and might be elsewhere, too. + if (NS_SUCCEEDED(Preferences::GetLocalizedCString("general.useragent.locale", &userAgentLocale))) { + CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("useragent_locale"), userAgentLocale); +diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp +--- a/toolkit/xre/nsEmbedFunctions.cpp ++++ b/toolkit/xre/nsEmbedFunctions.cpp +@@ -46,16 +46,17 @@ + #include "nsX11ErrorHandler.h" + #include "nsGDKErrorHandler.h" + #include "base/at_exit.h" + #include "base/command_line.h" + #include "base/message_loop.h" + #include "base/process_util.h" + #include "chrome/common/child_process.h" + ++#include "mozilla/FilePreferences.h" + #include "mozilla/ipc/BrowserProcessSubThread.h" + #include "mozilla/ipc/GeckoChildProcessHost.h" + #include "mozilla/ipc/IOThreadChild.h" + #include "mozilla/ipc/ProcessChild.h" + #include "ScopedXREEmbed.h" + + #include "mozilla/plugins/PluginProcessChild.h" + #include "mozilla/dom/ContentProcess.h" +@@ -680,16 +681,18 @@ XRE_InitChildProcess(int aArgc, + ::SetProcessShutdownParameters(0x280 - 1, SHUTDOWN_NORETRY); + #endif + + #if defined(MOZ_SANDBOX) && defined(XP_WIN) + // We need to do this after the process has been initialised, as + // InitLoggingIfRequired may need access to prefs. + mozilla::sandboxing::InitLoggingIfRequired(aChildData->ProvideLogFunction); + #endif ++ mozilla::FilePreferences::InitDirectoriesWhitelist(); ++ mozilla::FilePreferences::InitPrefs(); + + OverrideDefaultLocaleIfNeeded(); + + #if defined(MOZ_CRASHREPORTER) + #if defined(MOZ_CONTENT_SANDBOX) && !defined(MOZ_WIDGET_GONK) + AddContentSandboxLevelAnnotation(); + #endif + #endif +diff --git a/xpcom/io/FilePreferences.cpp b/xpcom/io/FilePreferences.cpp +new file mode 100644 +--- /dev/null ++++ b/xpcom/io/FilePreferences.cpp +@@ -0,0 +1,271 @@ ++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* vim: set ts=8 sts=2 et sw=2 tw=80: */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++* License, v. 2.0. If a copy of the MPL was not distributed with this ++* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++#include "FilePreferences.h" ++ ++#include "mozilla/Preferences.h" ++#include "nsAppDirectoryServiceDefs.h" ++#include "nsDirectoryServiceDefs.h" ++#include "nsDirectoryServiceUtils.h" ++ ++namespace mozilla { ++namespace FilePreferences { ++ ++static bool sBlockUNCPaths = false; ++typedef nsTArray<nsString> Paths; ++ ++static Paths& PathArray() ++{ ++ static Paths sPaths; ++ return sPaths; ++} ++ ++static void AllowDirectory(char const* directory) ++{ ++ nsCOMPtr<nsIFile> file; ++ NS_GetSpecialDirectory(directory, getter_AddRefs(file)); ++ if (!file) { ++ return; ++ } ++ ++ nsString path; ++ if (NS_FAILED(file->GetTarget(path))) { ++ return; ++ } ++ ++ // The whitelist makes sense only for UNC paths, because this code is used ++ // to block only UNC paths, hence, no need to add non-UNC directories here ++ // as those would never pass the check. ++ if (!StringBeginsWith(path, NS_LITERAL_STRING("\\\\"))) { ++ return; ++ } ++ ++ if (!PathArray().Contains(path)) { ++ PathArray().AppendElement(path); ++ } ++} ++ ++void InitPrefs() ++{ ++ sBlockUNCPaths = Preferences::GetBool("network.file.disable_unc_paths", false); ++} ++ ++void InitDirectoriesWhitelist() ++{ ++ // NS_GRE_DIR is the installation path where the binary resides. ++ AllowDirectory(NS_GRE_DIR); ++ // NS_APP_USER_PROFILE_50_DIR and NS_APP_USER_PROFILE_LOCAL_50_DIR are the two ++ // parts of the profile we store permanent and local-specific data. ++ AllowDirectory(NS_APP_USER_PROFILE_50_DIR); ++ AllowDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR); ++} ++ ++namespace { // anon ++ ++class Normalizer ++{ ++public: ++ Normalizer(const nsAString& aFilePath, const char16_t aSeparator); ++ bool Get(nsAString& aNormalizedFilePath); ++ ++private: ++ bool ConsumeItem(); ++ bool ConsumeSeparator(); ++ bool IsEOF() { return mFilePathCursor == mFilePathEnd; } ++ ++ bool ConsumeName(); ++ bool CheckParentDir(); ++ bool CheckCurrentDir(); ++ ++ nsString::const_char_iterator mFilePathCursor; ++ nsString::const_char_iterator mFilePathEnd; ++ ++ nsDependentSubstring mItem; ++ char16_t const mSeparator; ++ nsTArray<nsDependentSubstring> mStack; ++}; ++ ++Normalizer::Normalizer(const nsAString& aFilePath, const char16_t aSeparator) ++ : mFilePathCursor(aFilePath.BeginReading()) ++ , mFilePathEnd(aFilePath.EndReading()) ++ , mSeparator(aSeparator) ++{ ++} ++ ++bool Normalizer::ConsumeItem() ++{ ++ if (IsEOF()) { ++ return false; ++ } ++ ++ nsString::const_char_iterator nameBegin = mFilePathCursor; ++ while (mFilePathCursor != mFilePathEnd) { ++ if (*mFilePathCursor == mSeparator) { ++ break; // don't include the separator ++ } ++ ++mFilePathCursor; ++ } ++ ++ mItem.Rebind(nameBegin, mFilePathCursor); ++ return true; ++} ++ ++bool Normalizer::ConsumeSeparator() ++{ ++ if (IsEOF()) { ++ return false; ++ } ++ ++ if (*mFilePathCursor != mSeparator) { ++ return false; ++ } ++ ++ ++mFilePathCursor; ++ return true; ++} ++ ++bool Normalizer::Get(nsAString& aNormalizedFilePath) ++{ ++ aNormalizedFilePath.Truncate(); ++ ++ if (IsEOF()) { ++ return true; ++ } ++ if (ConsumeSeparator()) { ++ aNormalizedFilePath.Append(mSeparator); ++ } ++ ++ if (IsEOF()) { ++ return true; ++ } ++ if (ConsumeSeparator()) { ++ aNormalizedFilePath.Append(mSeparator); ++ } ++ ++ while (!IsEOF()) { ++ if (!ConsumeName()) { ++ return false; ++ } ++ } ++ ++ for (auto const& name : mStack) { ++ aNormalizedFilePath.Append(name); ++ } ++ ++ return true; ++} ++ ++bool Normalizer::ConsumeName() ++{ ++ if (!ConsumeItem()) { ++ return true; ++ } ++ ++ if (CheckCurrentDir()) { ++ return true; ++ } ++ ++ if (CheckParentDir()) { ++ if (!mStack.Length()) { ++ // This means there are more \.. than valid names ++ return false; ++ } ++ ++ mStack.RemoveElementAt(mStack.Length() - 1); ++ return true; ++ } ++ ++ if (mItem.IsEmpty()) { ++ // this means an empty name (a lone slash), which is illegal ++ return false; ++ } ++ ++ if (ConsumeSeparator()) { ++ mItem.Rebind(mItem.BeginReading(), mFilePathCursor); ++ } ++ mStack.AppendElement(mItem); ++ ++ return true; ++} ++ ++bool Normalizer::CheckCurrentDir() ++{ ++ if (mItem == NS_LITERAL_STRING(".")) { ++ ConsumeSeparator(); ++ // EOF is acceptable ++ return true; ++ } ++ ++ return false; ++} ++ ++bool Normalizer::CheckParentDir() ++{ ++ if (mItem == NS_LITERAL_STRING("..")) { ++ ConsumeSeparator(); ++ // EOF is acceptable ++ return true; ++ } ++ ++ return false; ++} ++ ++} // anon ++ ++bool IsBlockedUNCPath(const nsAString& aFilePath) ++{ ++ if (!sBlockUNCPaths) { ++ return false; ++ } ++ ++ if (!StringBeginsWith(aFilePath, NS_LITERAL_STRING("\\\\"))) { ++ return false; ++ } ++ ++ nsAutoString normalized; ++ if (!Normalizer(aFilePath, L'\\').Get(normalized)) { ++ // Broken paths are considered invalid and thus inaccessible ++ return true; ++ } ++ ++ for (const auto& allowedPrefix : PathArray()) { ++ if (StringBeginsWith(normalized, allowedPrefix)) { ++ if (normalized.Length() == allowedPrefix.Length()) { ++ return false; ++ } ++ if (normalized[allowedPrefix.Length()] == L'\\') { ++ return false; ++ } ++ ++ // When we are here, the path has a form "\\path\prefixevil" ++ // while we have an allowed prefix of "\\path\prefix". ++ // Note that we don't want to add a slash to the end of a prefix ++ // so that opening the directory (no slash at the end) still works. ++ break; ++ } ++ } ++ ++ return true; ++} ++ ++void testing::SetBlockUNCPaths(bool aBlock) ++{ ++ sBlockUNCPaths = aBlock; ++} ++ ++void testing::AddDirectoryToWhitelist(nsAString const & aPath) ++{ ++ PathArray().AppendElement(aPath); ++} ++ ++bool testing::NormalizePath(nsAString const & aPath, nsAString & aNormalized) ++{ ++ Normalizer normalizer(aPath, L'\\'); ++ return normalizer.Get(aNormalized); ++} ++ ++} // ::FilePreferences ++} // ::mozilla +diff --git a/xpcom/io/FilePreferences.h b/xpcom/io/FilePreferences.h +new file mode 100644 +--- /dev/null ++++ b/xpcom/io/FilePreferences.h +@@ -0,0 +1,25 @@ ++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* vim: set ts=8 sts=2 et sw=2 tw=80: */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++* License, v. 2.0. If a copy of the MPL was not distributed with this ++* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++#include "nsIObserver.h" ++ ++namespace mozilla { ++namespace FilePreferences { ++ ++void InitPrefs(); ++void InitDirectoriesWhitelist(); ++bool IsBlockedUNCPath(const nsAString& aFilePath); ++ ++namespace testing { ++ ++void SetBlockUNCPaths(bool aBlock); ++void AddDirectoryToWhitelist(nsAString const& aPath); ++bool NormalizePath(nsAString const & aPath, nsAString & aNormalized); ++ ++} ++ ++} // FilePreferences ++} // mozilla +diff --git a/xpcom/io/moz.build b/xpcom/io/moz.build +--- a/xpcom/io/moz.build ++++ b/xpcom/io/moz.build +@@ -79,24 +79,26 @@ EXPORTS += [ + 'nsUnicharInputStream.h', + 'nsWildCard.h', + 'SlicedInputStream.h', + 'SpecialSystemDirectory.h', + ] + + EXPORTS.mozilla += [ + 'Base64.h', ++ 'FilePreferences.h', + 'SnappyCompressOutputStream.h', + 'SnappyFrameUtils.h', + 'SnappyUncompressInputStream.h', + ] + + UNIFIED_SOURCES += [ + 'Base64.cpp', + 'crc32c.c', ++ 'FilePreferences.cpp', + 'nsAnonymousTemporaryFile.cpp', + 'nsAppFileLocationProvider.cpp', + 'nsBinaryStream.cpp', + 'nsDirectoryService.cpp', + 'nsEscape.cpp', + 'nsInputStreamTee.cpp', + 'nsIOUtil.cpp', + 'nsLinebreakConverter.cpp', +diff --git a/xpcom/io/nsLocalFileWin.cpp b/xpcom/io/nsLocalFileWin.cpp +--- a/xpcom/io/nsLocalFileWin.cpp ++++ b/xpcom/io/nsLocalFileWin.cpp +@@ -41,16 +41,17 @@ + #include <stdio.h> + #include <stdlib.h> + #include <mbstring.h> + + #include "nsXPIDLString.h" + #include "prproces.h" + #include "prlink.h" + ++#include "mozilla/FilePreferences.h" + #include "mozilla/Mutex.h" + #include "SpecialSystemDirectory.h" + + #include "nsTraceRefcnt.h" + #include "nsXPCOMCIDInternal.h" + #include "nsThreadUtils.h" + #include "nsXULAppAPI.h" + +@@ -1162,16 +1163,20 @@ nsLocalFile::InitWithPath(const nsAStrin + char16_t secondChar = *(++begin); + + // just do a sanity check. if it has any forward slashes, it is not a Native path + // on windows. Also, it must have a colon at after the first char. + if (FindCharInReadable(L'/', begin, end)) { + return NS_ERROR_FILE_UNRECOGNIZED_PATH; + } + ++ if (FilePreferences::IsBlockedUNCPath(aFilePath)) { ++ return NS_ERROR_FILE_ACCESS_DENIED; ++ } ++ + if (secondChar != L':' && (secondChar != L'\\' || firstChar != L'\\')) { + return NS_ERROR_FILE_UNRECOGNIZED_PATH; + } + + if (secondChar == L':') { + // Make sure we have a valid drive, later code assumes the drive letter + // is a single char a-z or A-Z. + if (PathGetDriveNumberW(aFilePath.Data()) == -1) { +@@ -1974,16 +1979,20 @@ nsLocalFile::CopySingleFile(nsIFile* aSo + bool path1Remote, path2Remote; + if (!IsRemoteFilePath(filePath.get(), path1Remote) || + !IsRemoteFilePath(destPath.get(), path2Remote) || + path1Remote || path2Remote) { + dwCopyFlags |= COPY_FILE_NO_BUFFERING; + } + } + ++ if (FilePreferences::IsBlockedUNCPath(destPath)) { ++ return NS_ERROR_FILE_ACCESS_DENIED; ++ } ++ + if (!move) { + copyOK = ::CopyFileExW(filePath.get(), destPath.get(), nullptr, + nullptr, nullptr, dwCopyFlags); + } else { + copyOK = ::MoveFileExW(filePath.get(), destPath.get(), + MOVEFILE_REPLACE_EXISTING); + + // Check if copying the source file to a different volume, +diff --git a/xpcom/tests/gtest/TestFilePreferencesWin.cpp b/xpcom/tests/gtest/TestFilePreferencesWin.cpp +new file mode 100644 +--- /dev/null ++++ b/xpcom/tests/gtest/TestFilePreferencesWin.cpp +@@ -0,0 +1,141 @@ ++#include "gtest/gtest.h" ++ ++#include "mozilla/FilePreferences.h" ++#include "nsIFile.h" ++#include "nsXPCOMCID.h" ++ ++TEST(FilePreferencesWin, Normalization) ++{ ++ nsAutoString normalized; ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("foo"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("foo")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\foo"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\foo")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("foo\\some"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("foo\\some")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\.\\foo"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\."), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\.\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\.\\."), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo\\bar")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo\\bar\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\."), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo\\bar\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\.\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo\\bar\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\..\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\.."), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\foo\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\..\\bar\\..\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\..\\bar"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\bar")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\..\\..\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\")); ++ ++ mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\.\\..\\.\\..\\"), normalized); ++ ASSERT_TRUE(normalized == NS_LITERAL_STRING("\\\\")); ++ ++ bool result; ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\.."), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\..\\"), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\.\\..\\"), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\\\bar"), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\foo\\bar\\..\\..\\..\\..\\"), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\\\"), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\.\\\\"), normalized); ++ ASSERT_FALSE(result); ++ ++ result = mozilla::FilePreferences::testing::NormalizePath( ++ NS_LITERAL_STRING("\\\\..\\\\"), normalized); ++ ASSERT_FALSE(result); ++} ++ ++TEST(FilePreferencesWin, AccessUNC) ++{ ++ nsCOMPtr<nsIFile> lf = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID); ++ ++ nsresult rv; ++ ++ mozilla::FilePreferences::testing::SetBlockUNCPaths(false); ++ ++ rv = lf->InitWithPath(NS_LITERAL_STRING("\\\\nice\\..\\evil\\share")); ++ ASSERT_EQ(rv, NS_OK); ++ ++ mozilla::FilePreferences::testing::SetBlockUNCPaths(true); ++ ++ rv = lf->InitWithPath(NS_LITERAL_STRING("\\\\nice\\..\\evil\\share")); ++ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED); ++ ++ mozilla::FilePreferences::testing::AddDirectoryToWhitelist(NS_LITERAL_STRING("\\\\nice")); ++ ++ rv = lf->InitWithPath(NS_LITERAL_STRING("\\\\nice\\share")); ++ ASSERT_EQ(rv, NS_OK); ++ ++ rv = lf->InitWithPath(NS_LITERAL_STRING("\\\\nice\\..\\evil\\share")); ++ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED); ++} +diff --git a/xpcom/tests/gtest/moz.build b/xpcom/tests/gtest/moz.build +--- a/xpcom/tests/gtest/moz.build ++++ b/xpcom/tests/gtest/moz.build +@@ -51,16 +51,21 @@ UNIFIED_SOURCES += [ + if CONFIG['MOZ_DEBUG'] and CONFIG['OS_ARCH'] not in ('WINNT') and CONFIG['OS_TARGET'] != 'Android': + # FIXME bug 523392: TestDeadlockDetector doesn't like Windows + # Bug 1054249: Doesn't work on Android + UNIFIED_SOURCES += [ + 'TestDeadlockDetector.cpp', + 'TestDeadlockDetectorScalability.cpp', + ] + ++if CONFIG['OS_TARGET'] == 'WINNT': ++ UNIFIED_SOURCES += [ ++ 'TestFilePreferencesWin.cpp', ++ ] ++ + if CONFIG['WRAP_STL_INCLUDES'] and not CONFIG['CLANG_CL']: + UNIFIED_SOURCES += [ + 'TestSTLWrappers.cpp', + ] + + # Compile TestAllocReplacement separately so Windows headers don't pollute + # the global namespace for other files. + SOURCES += [ + diff --git a/gnu/packages/patches/libtiff-CVE-2018-10963.patch b/gnu/packages/patches/libtiff-CVE-2018-10963.patch new file mode 100644 index 0000000000..d31c12399d --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2018-10963.patch @@ -0,0 +1,40 @@ +Fix CVE-2018-10963: + +http://bugzilla.maptools.org/show_bug.cgi?id=2795 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10963 + +Patch copied from upstream source repository: + +https://gitlab.com/libtiff/libtiff/commit/de144fd228e4be8aa484c3caf3d814b6fa88c6d9 + +From de144fd228e4be8aa484c3caf3d814b6fa88c6d9 Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Sat, 12 May 2018 14:24:15 +0200 +Subject: [PATCH] TIFFWriteDirectorySec: avoid assertion. Fixes + http://bugzilla.maptools.org/show_bug.cgi?id=2795. CVE-2018-10963 + +--- + libtiff/tif_dirwrite.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/libtiff/tif_dirwrite.c b/libtiff/tif_dirwrite.c +index 2430de6d..c15a28db 100644 +--- a/libtiff/tif_dirwrite.c ++++ b/libtiff/tif_dirwrite.c +@@ -695,8 +695,11 @@ TIFFWriteDirectorySec(TIFF* tif, int isimage, int imagedone, uint64* pdiroff) + } + break; + default: +- assert(0); /* we should never get here */ +- break; ++ TIFFErrorExt(tif->tif_clientdata,module, ++ "Cannot write tag %d (%s)", ++ TIFFFieldTag(o), ++ o->field_name ? o->field_name : "unknown"); ++ goto bad; + } + } + } +-- +2.17.0 + diff --git a/gnu/packages/patches/libtiff-CVE-2018-8905.patch b/gnu/packages/patches/libtiff-CVE-2018-8905.patch new file mode 100644 index 0000000000..f49815789e --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2018-8905.patch @@ -0,0 +1,61 @@ +Fix CVE-2018-8095: + +http://bugzilla.maptools.org/show_bug.cgi?id=2780 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8905 + +Patch copied from upstream source repository: + +https://gitlab.com/libtiff/libtiff/commit/58a898cb4459055bb488ca815c23b880c242a27d + +From 58a898cb4459055bb488ca815c23b880c242a27d Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Sat, 12 May 2018 15:32:31 +0200 +Subject: [PATCH] LZWDecodeCompat(): fix potential index-out-of-bounds write. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2780 / CVE-2018-8905 + +The fix consists in using the similar code LZWDecode() to validate we +don't write outside of the output buffer. +--- + libtiff/tif_lzw.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/libtiff/tif_lzw.c b/libtiff/tif_lzw.c +index 4ccb443c..94d85e38 100644 +--- a/libtiff/tif_lzw.c ++++ b/libtiff/tif_lzw.c +@@ -602,6 +602,7 @@ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s) + char *tp; + unsigned char *bp; + int code, nbits; ++ int len; + long nextbits, nextdata, nbitsmask; + code_t *codep, *free_entp, *maxcodep, *oldcodep; + +@@ -753,13 +754,18 @@ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s) + } while (--occ); + break; + } +- assert(occ >= codep->length); +- op += codep->length; +- occ -= codep->length; +- tp = op; ++ len = codep->length; ++ tp = op + len; + do { +- *--tp = codep->value; +- } while( (codep = codep->next) != NULL ); ++ int t; ++ --tp; ++ t = codep->value; ++ codep = codep->next; ++ *tp = (char)t; ++ } while (codep && tp > op); ++ assert(occ >= len); ++ op += len; ++ occ -= len; + } else { + *op++ = (char)code; + occ--; +-- +2.17.0 + diff --git a/gnu/packages/patches/qtoctave-qt-5.11-fix.patch b/gnu/packages/patches/qtoctave-qt-5.11-fix.patch new file mode 100644 index 0000000000..67317d1b36 --- /dev/null +++ b/gnu/packages/patches/qtoctave-qt-5.11-fix.patch @@ -0,0 +1,26 @@ +This patch comes from upstream: +https://hg.savannah.gnu.org/hgweb/octave/rev/cdaa884568b1. + +# HG changeset patch +# User Mike Miller <mtmiller@octave.org> +# Date 1527214835 25200 +# Node ID cdaa884568b159549bd373f04386ff62417f6df9 +# Parent 9e39a53b4e007d3f79f88b711ab9fa5f2f24fbc9 +add Qt include needed to build against Qt 5.11 (bug #53978) + +* settings-dialog.cc: Add missing include for <QButtonGroup> to fix build +failure with Qt 5.11. + +diff --git a/libgui/src/settings-dialog.cc b/libgui/src/settings-dialog.cc +--- a/libgui/src/settings-dialog.cc ++++ b/libgui/src/settings-dialog.cc +@@ -34,6 +34,8 @@ + #include "workspace-model.h" + #include "settings-dialog.h" + #include "ui-settings-dialog.h" ++ ++#include <QButtonGroup> + #include <QDir> + #include <QFileInfo> + #include <QFileDialog> + diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 99bc90efac..7bf1d60f7c 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -69,21 +69,31 @@ (define-public libraw (package (name "libraw") - (version "0.18.12") + (version "0.19.0") (source (origin (method url-fetch) (uri (string-append "https://www.libraw.org/data/LibRaw-" version ".tar.gz")) (sha256 (base32 - "1m2khr2cij8z6lawgbmdksjn14fpnjsy8ad4qahnpqapm1slsxap")))) + "0nfj7s7qmgfy1cl8s3ck7dxjvprfq5glfi6iidmvmy8r7gl52gz8")))) (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libjpeg" ,libjpeg-8))) ;for lossy DNGs and old Kodak cameras + (propagated-inputs + `(("lcms" ,lcms))) ;for color profiles (home-page "https://www.libraw.org") (synopsis "Raw image decoder") (description "LibRaw is a library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others).") - (license license:lgpl2.1+))) + ;; LibRaw is distributed under both LGPL2.1 and CDDL 1.0. From the README: + ;; "You may use one of these licensing modes and switch between them. If + ;; you modify LibRaw source and made your changes public, you should accept + ;; both two licensing modes for your changes/additions." + (license (list license:lgpl2.1 license:cddl1.0)))) (define-public libexif (package @@ -109,14 +119,14 @@ data as produced by digital cameras.") (define-public libgphoto2 (package (name "libgphoto2") - (version "2.5.17") + (version "2.5.18") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" version "/libgphoto2-" version ".tar.bz2")) (sha256 (base32 - "0mdmjb8a07g37bb5q69h11sixw0w6y5g3kbii9z97yhklgq68x21")))) + "1v57ayp17j88bj79nl7rf4iyajbxx00kgb4l5k3kbv50gjfvh5sv")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -184,7 +194,7 @@ MTP, and much more.") (define-public perl-image-exiftool (package (name "perl-image-exiftool") - (version "10.80") + (version "11.01") (source (origin (method url-fetch) (uri (string-append @@ -192,7 +202,7 @@ MTP, and much more.") version ".tar.gz")) (sha256 (base32 - "14rwr5wk2snqv4yva6fax1gfsdv88941n237m0wyzn3n0xh9dy5w")))) + "175w34n73mypdpbaqj2vgqsfp59yvfrn8k7zmx4cawnp895bypvh")))) (build-system perl-build-system) (arguments '(#:phases diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index e29eaea801..50e7d25c8b 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -173,6 +174,32 @@ John the Ripper).") (define-public python2-py-bcrypt (package-with-python2 python-py-bcrypt)) +(define-public python-pyblake2 + (package + (name "python-pyblake2") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyblake2" version)) + (sha256 + (base32 + "0gz9hgznv5zw4qjq43xa56y0yikimx30gffvibxzm0nv5sq7xk2w")))) + (build-system python-build-system) + (home-page "https://github.com/dchest/pyblake2") + (synopsis "BLAKE2 hash function for Python") + (description "BLAKE2 is a cryptographic hash function, which offers +stronger security while being as fast as MD5 or SHA-1, and comes in two +flavors: @code{BLAKE2b}, optimized for 64-bit platforms and produces digests +of any size between 1 and 64 bytes, and @code{BLAKE2s}, optimized for 8- to +32-bit platforms and produces digests of any size between 1 and 32 bytes. + +This package provides a Python interface for BLAKE2.") + ;; The COPYING file declares it as public domain, with the option to + ;; alternatively use and redistribute it under a variety of permissive + ;; licenses. cc0 is explicitly mentioned in setup.py and pyblake2module.c. + (license (list license:public-domain license:cc0)))) + (define-public python-paramiko (package (name "python-paramiko") @@ -403,14 +430,14 @@ message digests and key derivation functions.") (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "17.5.0") + (version "18.0.0") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "0wv78mwsdqbxqwdwllf4maqybhbj3vb8328ia04hnb558sxcy41c")))) + "1055rb456nvrjcij3sqj6c6l3kmh5cqqay0nsmx3pxq07d1g3234")))) (build-system python-build-system) (arguments '(#:phases diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 4e130fa164..2e98a95d4b 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1413,14 +1413,14 @@ file.") (define-public python-webtest (package (name "python-webtest") - (version "2.0.29") + (version "2.0.30") (source (origin (method url-fetch) (uri (pypi-uri "WebTest" version)) (sha256 (base32 - "0bcj1ica5lnmj5zbvk46x28kgphcsgh7sfnwjmn0cr94mhawrg6v")))) + "1mb7m4ndklv84mh0pdkhv73yrflcnra61yczj5g3bvwbqlygfsaw")))) (build-system python-build-system) (arguments `(;; Unfortunately we have to disable tests! diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5d19fb40d5..2bec752946 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1211,13 +1211,13 @@ human-friendly syntax.") (define-public python-pandas (package (name "python-pandas") - (version "0.22.0") + (version "0.23.1") (source (origin (method url-fetch) (uri (pypi-uri "pandas" version)) (sha256 - (base32 "0v0fi2i10kwnmlpsl6f1fgajcpx3q6766qf6xqi5kw3ivn8l1aa4")))) + (base32 "142nvwb01r2wv42y2cz40bx33hd8ffh6s6gynapg859fmzr2mdah")))) (build-system python-build-system) (arguments `(#:modules ((guix build utils) @@ -1237,7 +1237,8 @@ human-friendly syntax.") (for-each delete-file '("pandas/tests/io/conftest.py" "pandas/tests/io/json/test_compression.py" - "pandas/tests/io/test_excel.py")) + "pandas/tests/io/test_excel.py" + "pandas/tests/io/test_parquet.py")) (invoke "pytest" "-v" "pandas" "-k" (string-append "not network and not disabled" @@ -1249,7 +1250,9 @@ human-friendly syntax.") ("python-dateutil" ,python-dateutil))) (native-inputs `(("python-cython" ,python-cython) + ("python-beautifulsoup4" ,python-beautifulsoup4) ("python-lxml" ,python-lxml) + ("python-html5lib" ,python-html5lib) ("python-nose" ,python-nose) ("python-pytest" ,python-pytest))) (home-page "https://pandas.pydata.org") @@ -2680,14 +2683,14 @@ and several other projects.") (define-public python-rst.linker (package (name "python-rst.linker") - (version "1.9") + (version "1.10") (source (origin (method url-fetch) (uri (pypi-uri "rst.linker" version)) (sha256 (base32 - "16crgnai6020vdmnpwdimw1vm3jb74ysfyb3kmcidb0lgma5xq2d")))) + "0iqaacp7pj1s8avs4kc0qg0r7dscywaq37y6l9j14glqdikk0wdj")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) @@ -2911,7 +2914,7 @@ between language specification and implementation aspects.") (define-public python-numpy (package (name "python-numpy") - (version "1.14.3") + (version "1.14.5") (source (origin (method url-fetch) @@ -2920,7 +2923,7 @@ between language specification and implementation aspects.") version "/numpy-" version ".tar.gz")) (sha256 (base32 - "1yim2bxlycn4dhxmfxid6slplpmcb4ynhp411b37ahmsm2lwgkyg")))) + "0admjpkih63lm19zbbilq8ck4f6ny5kqi03dk3m6b2mnixsh4jhv")))) (build-system python-build-system) (inputs `(("openblas" ,openblas) @@ -10423,14 +10426,14 @@ network.") (define-public python-xopen (package (name "python-xopen") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (pypi-uri "xopen" version)) (sha256 (base32 - "0bzjmn3rl1cd3d2q39cjwnkhaspk2b0hfj3rl64pclm44ihg5fb6")) + "1a0wbil552wsmklwd89ssmgz3pjd86qa9i7jh8wqb9wslc8a2qjr")) (file-name (string-append name "-" version ".tar.gz")))) (build-system python-build-system) (home-page "https://github.com/marcelm/xopen/") @@ -10443,7 +10446,12 @@ possible on all supported Python versions.") (license license:expat))) (define-public python2-xopen - (package-with-python2 python-xopen)) + (let ((base (package-with-python2 + (strip-python2-variant python-xopen)))) + (package + (inherit base) + (propagated-inputs `(("python2-bz2file" ,python2-bz2file) + ,@(package-propagated-inputs base)))))) (define-public python2-cheetah (package @@ -13416,14 +13424,14 @@ time-based (TOTP) passwords.") (define-public python-parso (package (name "python-parso") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) (uri (pypi-uri "parso" version)) (sha256 (base32 - "0lamywk6dm5xshlkdvxxf5j6fa2k2zpi7xagf0bwidaay3vnpgb2")))) + "0zvh4rdhv2wkglkgh0h9kn9ndpsw5p639wcwv47jn1kfp504lq7h")))) (native-inputs `(("python-pytest" ,python-pytest))) (build-system python-build-system) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index 38a371d233..d5ed06f0df 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -29,7 +29,7 @@ (define-public re2 (package (name "re2") - (version "2018-04-01") + (version "2018-07-01") (home-page "https://github.com/google/re2") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04n9ngikvpikpshwcrl26sxgn8qbrymy3b5wlbsyfdhknx35951g")))) + "1zh7kzyv4h7960rdp31a3bq6y4qrdxyf6k86j67yzpkf2h8phg40")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index e10f00a83b..0ce46056f5 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -76,7 +76,7 @@ ;; The 6.7 tarball is missing ‘install.sh’. Create it. (add-after 'unpack 'autoreconf (lambda _ - (zero? (system* "autoreconf" "-i")))) + (invoke "autoreconf" "-i"))) (add-before 'configure 'set-root-sbin (lambda _ ; Don't try to install in "/sbin". (setenv "ROOTSBINDIR" @@ -150,14 +150,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.8.2") + (version "4.8.3") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "08mz29jmjxqvyyhm6pa388paagw1i2i21lc7pd2aprj9dllm5rb2")))) + "1vc21c0m7wky70hpyjhw6ph6zlzljsvivlgxy54znpaxc259lmp0")))) (build-system gnu-build-system) (arguments `(#:phases @@ -178,8 +178,7 @@ anywhere.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (libdir (string-append out "/lib"))) - (zero? (system* - "./configure" + (invoke "./configure" "--enable-fhs" ;; XXX: heimdal not packaged. "--bundled-libraries=com_err" @@ -188,7 +187,7 @@ anywhere.") ;; Install public and private libraries into ;; a single directory to avoid RPATH issues. (string-append "--libdir=" libdir) - (string-append "--with-privatelibdir=" libdir)))))) + (string-append "--with-privatelibdir=" libdir))))) (add-before 'install 'disable-etc-samba-directory-creation (lambda _ (substitute* "dynconfig/wscript" diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 0b15ea8376..4178a45a89 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -314,15 +314,14 @@ Scheme and C programs and between Scheme and Java programs.") (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - (string-append "--blflags=" - ;; user flags completely override useful - ;; default flags, so repeat them here. - "-copt \\$(CPICFLAGS) " - "-L \\$(BUILDLIBDIR) " - "-ldopt -Wl,-rpath," out "/lib"))))))))) + (invoke "./configure" + (string-append "--prefix=" out) + (string-append "--blflags=" + ;; user flags completely override useful + ;; default flags, so repeat them here. + "-copt \\$(CPICFLAGS) " + "-L \\$(BUILDLIBDIR) " + "-ldopt -Wl,-rpath," out "/lib")))))))) (inputs `(("avahi" ,avahi) ("bigloo" ,bigloo) ("libgc" ,libgc) @@ -661,7 +660,8 @@ threads.") "| mit-scheme"))) (with-directory-excursion "scmutils/scmutils" (and (zero? (system "mit-scheme < compile.scm")) - (zero? (system make-img))))))) + (zero? (system make-img)))) + #t))) (add-before 'install 'fix-directory-names ;; Correct directory names in the startup script. (lambda* (#:key inputs outputs #:allow-other-keys) @@ -685,8 +685,8 @@ threads.") ;; code. (lambda* (#:key inputs outputs #:allow-other-keys) (with-directory-excursion "scmutils/scmutils" - (zero? (apply system* "etags" - (find-files "." "\\.scm")))))) + (apply invoke "etags" (find-files "." "\\.scm"))) + #t)) (replace 'install ;; Copy files to the store. (lambda* (#:key outputs #:allow-other-keys) @@ -882,12 +882,13 @@ regular-expression notation.") (add-after 'install 'remove-bin-share (lambda* (#:key inputs outputs #:allow-other-keys) (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")))) + (string-append (assoc-ref outputs "out") "/bin")) + #t)) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) - (zero? (system* "./configure" - (string-append "--prefix=" - (assoc-ref outputs "out"))))))))) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")))))))) (native-inputs `(("unzip" ,unzip) ("texinfo" ,texinfo))) (home-page "http://people.csail.mit.edu/jaffer/SLIB.html") @@ -916,39 +917,34 @@ utility functions for all standard Scheme implementations.") (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) - (zero? (system* "./configure" - (string-append "--prefix=" - (assoc-ref outputs "out")))))) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out"))))) (add-before 'build 'pre-build (lambda* (#:key inputs #:allow-other-keys) (substitute* "Makefile" - (("ginstall-info") "install-info")))) + (("ginstall-info") "install-info")) + #t)) (replace 'build (lambda* (#:key inputs outputs #:allow-other-keys) (setenv "SCHEME_LIBRARY_PATH" (string-append (assoc-ref inputs "slib") "/lib/slib/")) - (and - (zero? (system* "make" "scmlit" "CC=gcc")) - (zero? (system* "make" "all"))))) + (invoke "make" "scmlit" "CC=gcc") + (invoke "make" "all"))) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((req - (string-append (assoc-ref outputs "out") - "/lib/scm/require.scm"))) - (and - (delete-file req) - (format (open req (logior O_WRONLY O_CREAT)) - "(define (library-vicinity) ~s)\n" - (string-append (assoc-ref inputs "slib") - "/lib/slib/")) + (let* ((out (assoc-ref outputs "out")) + (req (string-append out "/lib/scm/require.scm"))) + (delete-file req) + (format (open req (logior O_WRONLY O_CREAT)) + "(define (library-vicinity) ~s)\n" + (string-append (assoc-ref inputs "slib") + "/lib/slib/")) - ;; We must generate the slibcat file - (zero? (system* - (string-append - (assoc-ref outputs "out") - "/bin/scm") - "-br" "new-catalog"))))))))) + ;; We must generate the slibcat file. + (invoke (string-append out "/bin/scm") + "-br" "new-catalog"))))))) (inputs `(("slib" ,slib))) (native-inputs `(("unzip" ,unzip) ("texinfo" ,texinfo))) diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index c0c53a5291..9b36d83a80 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -132,14 +133,15 @@ such as ones for networking and GUI programming.") (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (with-directory-excursion "bld" - (zero? - (system* "../unix/cmake/configure" + (invoke "../unix/cmake/configure" (string-append "--prefix=" out) - "--without-quartz")))))) + "--without-quartz") + #t)))) (replace 'build (lambda _ (with-directory-excursion "bld" - (zero? (system* "make")))))))) + (invoke "make")) + #t))))) (synopsis "Smalltalk programming language and environment") (description "Squeak is a full-featured implementation of the Smalltalk programming language and environment based on (and largely compatible with) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 9853e842c2..8be3ce1a80 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1816,7 +1816,8 @@ and fast file reading.") (arguments `(#:phases (modify-phases %standard-phases - (replace 'check (lambda _ (zero? (system* "nosetests" "-v"))))))) + (replace 'check + (lambda _ (invoke "nosetests" "-v")))))) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index df1b963878..6e57aaba1b 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,17 +22,24 @@ (define-module (gnu packages sync) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) + #:use-module (gnu packages acl) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) + #:use-module (gnu packages rsync) + #:use-module (gnu packages selinux) #:use-module (gnu packages tls)) (define-public owncloud-client @@ -208,3 +216,46 @@ machines. Lsyncd is thus a light-weight live mirror solution that is comparatively easy to install not requiring new file systems or block devices and does not hamper local file system performance.") (license license:gpl2+))) + +(define-public casync + (package + (name "casync") + (version "2") + (home-page "https://github.com/systemd/casync/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "0znkp3fcksrykcsv06y2mjvf2lbwmin25snmvfa8i5qfm3f4rm88")) + (file-name (string-append name "-" version "-checkout")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx) + ("rsync" ,rsync))) ;for tests + (inputs + `(("xz" ,xz) ;for liblzma + ("zstd" ,zstd) + ("curl" ,curl) + ("acl" ,acl) + ("libselinux" ,libselinux) + ("fuse" ,fuse) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (synopsis "File synchronization and backup system") + (description + "casync is a @dfn{content-addressable data synchronizer} that can be used +as the basis of a backup system. It is: + +@itemize +@item A combination of the rsync algorithm and content-addressable storage; +@item An efficient way to store and retrieve multiple related versions of +large file systems or directory trees; +@item An efficient way to deliver and update OS, VM, IoT and container images +over the Internet in an HTTP and CDN friendly way; +@item An efficient backup system. +@end itemize\n") + (license license:lgpl2.1+))) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 201cd8099a..246d85901c 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -218,7 +218,7 @@ internet.") (define-public libsrtp (package (name "libsrtp") - (version "1.6.0") + (version "2.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/cisco/libsrtp/archive/v" @@ -226,31 +226,13 @@ internet.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ppdqsrx5ni54vmd4kdzzmvgmf5ixb04w0jw7idy8mad6l27jghs")))) + "02x5l5h2nq6f9gq1bmgz5v9jmnqaab51p8aldglng1z7pjbp9za4")))) (native-inputs `(("psmisc" ,psmisc) ;some tests require 'killall' ("procps" ,procps))) (build-system gnu-build-system) (arguments - '(#:test-target "runtest" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-mips-variable-in-testsuite - ;; This comes from https://github.com/cisco/libsrtp/pull/151 - (lambda _ - (substitute* "test/srtp_driver.c" - (("mips ") "mips_est ") - (("mips\\)") "mips_est)")) - #t)) - (add-after 'unpack 'patch-dictionary-location - ;; With the above changes, the rtpw_test.sh test finally runs, and fails. - (lambda _ - (substitute* "test/rtpw.c" - (("/usr/share/dict/words") - (string-append (assoc-ref %build-inputs "procps") - "/share/doc/procps-ng/FAQ")) - (("words.txt") "FAQ")) - #t))))) + '(#:test-target "runtest")) (synopsis "Secure RTP (SRTP) Reference Implementation") (description "This package provides an implementation of the Secure Real-time Transport diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 7971892082..86d6afef3e 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -579,9 +579,8 @@ collaboration using typical untrusted file hosts or services.") (add-after 'unpack 'unpack-git (lambda* (#:key inputs #:allow-other-keys) ;; Unpack the source of git into the 'git' directory. - (zero? (system* - "tar" "--strip-components=1" "-C" "git" "-xf" - (assoc-ref inputs "git:src"))))) + (invoke "tar" "--strip-components=1" "-C" "git" "-xf" + (assoc-ref inputs "git:src")))) (add-after 'unpack 'patch-absolute-file-names (lambda* (#:key inputs #:allow-other-keys) (define (quoted-file-name input path) @@ -612,21 +611,20 @@ collaboration using typical untrusted file hosts or services.") (delete 'configure) ; no configure script (add-after 'build 'build-man (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* `("make" ,@make-flags "doc-man"))))) + (apply invoke "make" "doc-man" make-flags))) (replace 'install (lambda* (#:key make-flags outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (and (zero? (apply system* - `("make" ,@make-flags - ,(string-append "prefix=" out) - ,(string-append - "CGIT_SCRIPT_PATH=" out "/share/cgit") - "install" "install-man"))) - ;; Move the platform-dependent 'cgit.cgi' into lib - ;; to get it stripped. - (rename-file (string-append out "/share/cgit/cgit.cgi") - (string-append out "/lib/cgit/cgit.cgi")) - #t)))) + (apply invoke + "make" "install" "install-man" + (string-append "prefix=" out) + (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit") + make-flags) + ;; Move the platform-dependent 'cgit.cgi' into lib to get it + ;; stripped. + (rename-file (string-append out "/share/cgit/cgit.cgi") + (string-append out "/lib/cgit/cgit.cgi")) + #t))) (add-after 'install 'wrap-python-scripts (lambda* (#:key outputs #:allow-other-keys) (for-each @@ -914,7 +912,7 @@ lot easier.") ;; two tests will fail -> disable them. TODO: fix the failing tests (delete-file "t/t3300-edit.sh") (delete-file "t/t7504-commit-msg-hook.sh") - (zero? (system* "make" "test"))))))) + (invoke "make" "test")))))) (home-page "http://procode.org/stgit/") (synopsis "Stacked Git") (description @@ -1467,7 +1465,8 @@ accessed and migrated on modern systems.") "libaegis/getpw_cache.cc") (find-files "test" "\\.sh")) (("/bin/sh") (which "sh"))) - (setenv "SH" (which "sh")))) + (setenv "SH" (which "sh")) + #t)) (replace 'check (lambda _ (let ((home (string-append (getcwd) "/my-new-home"))) @@ -1475,12 +1474,20 @@ accessed and migrated on modern systems.") (mkdir home) (setenv "HOME" home) - ;; This test assumes that flex has been symlinked to "lex". + ;; This test assumes that flex has been symlinked to "lex". (substitute* "test/00/t0011a.sh" (("type lex") "type flex")) + ;; XXX Disable tests that fail, for unknown reasons, ‘for now’. + (for-each + (lambda (test) (substitute* "Makefile" + (((string-append "test/" test "\\.ES ")) ""))) + (list "00/t0011a" + "00/t0049a" + "01/t0196a")) + ;; The author decided to call the check rule "sure". - (zero? (system* "make" "sure")))))))) + (invoke "make" "sure"))))))) (home-page "http://aegis.sourceforge.net") (synopsis "Project change supervisor") (description "Aegis is a project change supervisor, and performs some of @@ -1897,9 +1904,10 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}. (add-after 'build 'add-properties (lambda* (#:key jar-name #:allow-other-keys) (with-directory-excursion "src" - (zero? (apply system* "jar" "-uf" - (string-append "../build/jar/" jar-name) - (find-files "." "\\.properties$"))))))))) + (apply invoke "jar" "-uf" + (string-append "../build/jar/" jar-name) + (find-files "." "\\.properties$"))) + #t))))) (inputs `(("java-classpathx-servletapi" ,java-classpathx-servletapi) ("java-javaewah" ,java-javaewah) @@ -2034,7 +2042,7 @@ directory full of HOWTOs.") (define-public git-annex (package (name "git-annex") - (version "6.20180529") + (version "6.20180626") (source (origin (method url-fetch) @@ -2042,7 +2050,7 @@ directory full of HOWTOs.") "git-annex/git-annex-" version ".tar.gz")) (sha256 (base32 - "1rx0m4yrl3gl2ca8rbbv74fdlg4s2jnddzljhph7271a7bpyxsx5")))) + "0vq3x9p4h3m266pcm2r3m9p51pz5z9zskh7z5nk0adh33j30xf7q")))) (build-system haskell-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ce90d470f4..2b8f3e18d2 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2018 Roel Janssen <roel@gnu.org> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> +;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1610,7 +1611,7 @@ device without having to bother about the decryption.") (synopsis "SubRip to WebVTT subtitle converter") (description "srt2vtt converts SubRip formatted subtitles to WebVTT format for use with HTML5 video.") - (home-page "http://dthompson.us/pages/software/srt2vtt") + (home-page "https://dthompson.us/projects/srt2vtt.html") (license license:gpl3+))) (define-public avidemux @@ -2974,3 +2975,27 @@ format and some of its derived file formats, including MP4. It operates as a multiplexer and demultiplexer, and can mux video and audio in several formats using standalone executable files.") (license license:isc))) + +(define-public qtfaststart + (package + (name "qtfaststart") + (version "1.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "qtfaststart" version)) + (sha256 + (base32 + "0hcjfik8hhb1syqvyh5c6aillpvzal26nkjflcq1270z64aj6i5h")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; no test suite + (synopsis "Move QuickTime and MP4 metadata to the beginning of the file") + (description "qtfaststart enables streaming and pseudo-streaming of +QuickTime and MP4 files by moving metadata and offset information to the +beginning of the file. It can also print some useful information about the +structure of the file. This program is based on qt-faststart.c from the FFmpeg +project, which is released into the public domain, as well as ISO 14496-12:2005 +(the official spec for MP4), which can be obtained from the ISO or found +online.") + (home-page "https://github.com/danielgtaylor/qtfaststart") + (license license:expat))) diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index b36471c0eb..c83bfdd0c9 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -233,7 +233,8 @@ and the ICD.") "16p25ry2i4zrj00zihfpf210f8xd7g398ffbw25igvi9mbn4nbfd")))) (build-system meson-build-system) (arguments - `(#:phases + `(#:tests? #f ; FIXME: Tests fail. + #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 3507dd59f2..805903ad9e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -6113,6 +6114,7 @@ artifact."))) `(#:jar-name "eclipse-jetty-security.jar" #:source-dir "src/main/java" #:jdk ,icedtea-8 + #:test-exclude (list "**/ConstraintTest.*") ; This test fails #:phases (modify-phases %standard-phases (add-before 'configure 'chdir @@ -6139,11 +6141,6 @@ infrastructure"))) (inherit java-eclipse-jetty-security) (version (package-version java-eclipse-jetty-util-9.2)) (source (package-source java-eclipse-jetty-util-9.2)) - (arguments - `(#:test-exclude - ;; This test fails. - (list "**/ConstraintTest.*") - ,@(package-arguments java-eclipse-jetty-security))) (inputs `(("util" ,java-eclipse-jetty-util-9.2) ("http" ,java-eclipse-jetty-http-9.2) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index bd43e372cf..0fb1142b68 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -149,9 +150,9 @@ online pastebin services.") (find-files ".")) (substitute* "./gnulib/gnulib-tool.py" (("/usr/bin/python") (which "python3"))) - (zero? (system* "sh" "./bootstrap" + (invoke "sh" "./bootstrap" "--gnulib-srcdir=gnulib" - "--no-git"))))))) + "--no-git")))))) (inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("doxygen" ,doxygen) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 68d7c51ac1..91b37556a0 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -69,7 +69,7 @@ (define-public wine (package (name "wine") - (version "3.0.1") + (version "3.0.2") (source (origin (method url-fetch) (uri (string-append "https://dl.winehq.org/wine/source/" @@ -77,7 +77,7 @@ "/wine-" version ".tar.xz")) (sha256 (base32 - "1wr63n70pli83p3rmclr2j4lxzs4ll1cwlpdlaajfrf6v9yhvl5s")))) + "1zv3nk31s758ghp4795ym3w8l5868c2dllmjx9245qh9ahvp3mya")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index dc38b41494..2a8958d37f 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -265,25 +265,23 @@ between desktops, and change the number of desktops.") (define-public xeyes (package (name "xeyes") - (version "1.0.1") + (version "1.1.2") (source - (origin - (method url-fetch) - (uri (string-append - "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_" - version - ".orig.tar.gz")) - (sha256 - (base32 - "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9")))) + (origin + (method url-fetch) + (uri (string-append "https://www.x.org/releases/individual/app/" + name "-" version ".tar.bz2")) + (sha256 + (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p")))) (build-system gnu-build-system) (inputs `(("libxext" ,libxext) ("libxmu" ,libxmu) + ("libxrender" ,libxrender) ("libxt" ,libxt))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "http://xeyes.sourcearchive.com/") + (home-page "https://www.x.org/") ; no dedicated Xeyes page exists (synopsis "Follow-the-mouse X demo") (description "Xeyes is a demo program for x.org. It shows eyes following the mouse.") @@ -736,17 +734,16 @@ Guile will work for XBindKeys.") (define-public sxhkd (package (name "sxhkd") - (version "0.5.6") + (version "0.5.9") (source (origin - (file-name (string-append name "-" version ".tar.gz")) - (method url-fetch) - (uri (string-append - "https://github.com/baskerville/sxhkd/archive/" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/baskerville/sxhkd") + (commit version))) (sha256 (base32 - "15grmzpxz5fqlbfg2slj7gb7r6nzkvjmflmbkqx7mlby9pm6wdkj")))) + "0cw547x7vky55k3ksrmzmrra4zhslqcwq9xw0y4cmbvy4s1qf64v")))) (build-system gnu-build-system) (inputs `(("asciidoc" ,asciidoc) @@ -755,10 +752,14 @@ Guile will work for XBindKeys.") ("xcb-util-keysyms" ,xcb-util-keysyms) ("xcb-util-wm" ,xcb-util-wm))) (arguments - '(#:phases (modify-phases %standard-phases (delete 'configure)) + `(#:phases (modify-phases %standard-phases (delete 'configure)) #:tests? #f ; no check target - #:make-flags (list "CC=gcc" - (string-append "PREFIX=" %output)))) + #:make-flags + (list "CC=gcc" + (string-append "PREFIX=" %output) + ;; Keep the documentation where the build system installs LICENSE. + (string-append "DOCPREFIX=" %output + "/share/doc/" ,name "-" ,version)))) (home-page "https://github.com/baskerville/sxhkd") (synopsis "Simple X hotkey daemon") (description "sxhkd is a simple X hotkey daemon with a powerful and diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 134d601881..79eb64d13a 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -793,7 +793,7 @@ inhibit interface which allows applications to prevent automatic sleep.") (define-public ristretto (package (name "ristretto") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (string-append "http://archive.xfce.org/src/apps/ristretto/" @@ -801,7 +801,7 @@ inhibit interface which allows applications to prevent automatic sleep.") name "-" version ".tar.bz2")) (sha256 (base32 - "1f01d47kd85kjd1k4bzpcck4cb40qpjm5fzirzwdsxzwlrybgwzq")))) + "0r96r8r1qslr6cqvwldm99ha563adkw9v2zvaznxkpqn11v1374c")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index a647b7e582..4ce02b783c 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5928,7 +5928,7 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "2.3.1") + (version "2.3.2") (source (origin (method url-fetch) @@ -5936,7 +5936,7 @@ basic eye-candy effects.") version ".tar.xz")) (sha256 (base32 - "0wghjmrw77pkh6agc5rz7ynr6s8yyc68qvj9rnp0vlwa3x1fl3ry")))) + "02wpnlx43dwacaahpm8db5kbnjw2msm3ycq71gib0n2zamd71ni6")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("flac" ,flac) diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm index e4ed7227ff..6f37b767ff 100644 --- a/guix/scripts/gc.scm +++ b/guix/scripts/gc.scm @@ -199,10 +199,10 @@ Invoke the garbage collector.\n")) ;; Attempt to have at least SPACE bytes available in STORE. (let ((free (free-disk-space (%store-prefix)))) (if (> free space) - (info (G_ "already ~h bytes available on ~a, nothing to do~%") - free (%store-prefix)) + (info (G_ "already ~h MiBs available on ~a, nothing to do~%") + (/ free 1024. 1024.) (%store-prefix)) (let ((to-free (- space free))) - (info (G_ "freeing ~h bytes~%") to-free) + (info (G_ "freeing ~h MiBs~%") (/ to-free 1024. 1024.)) (collect-garbage store to-free))))) (with-error-handling @@ -234,10 +234,10 @@ Invoke the garbage collector.\n")) (ensure-free-space store free-space)) (min-freed (let-values (((paths freed) (collect-garbage store min-freed))) - (info (G_ "freed ~h bytes~%") freed))) + (info (G_ "freed ~h MiBs~%") (/ freed 1024. 1024.)))) (else (let-values (((paths freed) (collect-garbage store))) - (info (G_ "freed ~h bytes~%") freed)))))) + (info (G_ "freed ~h MiBs~%") (/ freed 1024. 1024.))))))) ((delete) (delete-paths store (map direct-store-path paths))) ((list-references) diff --git a/guix/self.scm b/guix/self.scm index 0ad8c34e2a..89c5428039 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -83,6 +83,7 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." ("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh)) ("guile-git" (ref '(gnu packages guile) 'guile-git)) ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3)) + ("gnutls" (ref '(gnu packages tls) 'gnutls)) ("libgcrypt" (ref '(gnu packages gnupg) 'libgcrypt)) ("zlib" (ref '(gnu packages compression) 'zlib)) ("gzip" (ref '(gnu packages compression) 'gzip)) @@ -92,6 +93,7 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." ("guile2.0-ssh" (ref '(gnu packages ssh) 'guile2.0-ssh)) ("guile2.0-git" (ref '(gnu packages guile) 'guile2.0-git)) ;; XXX: No "guile2.0-sqlite3". + ("guile2.0-gnutls" (ref '(gnu packages tls) 'gnutls/guile-2.0)) (_ #f)))) ;no such package @@ -459,11 +461,16 @@ assumed to be part of MODULES." "guile-sqlite3" "guile2.0-sqlite3")) + (define gnutls + (package-for-guile guile-version + "gnutls" "guile2.0-gnutls")) + (define dependencies (match (append-map (lambda (package) (cons (list "x" package) (package-transitive-propagated-inputs package))) - (list guile-git guile-json guile-ssh guile-sqlite3)) + (list gnutls guile-git guile-json + guile-ssh guile-sqlite3)) (((labels packages _ ...) ...) packages))) diff --git a/guix/store.scm b/guix/store.scm index 773d53e82b..3bf56573bf 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -65,6 +65,7 @@ build-mode open-connection + port->connection close-connection with-store set-build-options @@ -517,6 +518,23 @@ for this connection will be pinned. Return a server object." (or done? (process-stderr conn))) conn))))))))) +(define* (port->connection port + #:key (version %protocol-version)) + "Assimilate PORT, an input/output port, and return a connection to the +daemon, assuming the given protocol VERSION. + +Warning: this procedure assumes that the initial handshake with the daemon has +already taken place on PORT and that we're just continuing on this established +connection. Use with care." + (let-values (((output flush) + (buffering-output-port port (make-bytevector 8192)))) + (%make-nix-server port + (protocol-major version) + (protocol-minor version) + output flush + (make-hash-table 100) + (make-hash-table 100)))) + (define (write-buffered-output server) "Flush SERVER's output port." (force-output (nix-server-output-port server)) diff --git a/guix/ui.scm b/guix/ui.scm index 31830ee850..6996b7f1c4 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -421,8 +421,21 @@ report them in a user-friendly way." (lambda _ (setlocale LC_ALL "")) (lambda args - (warning (G_ "failed to install locale: ~a~%") - (strerror (system-error-errno args)))))) + (cond-expand + ;; Guile 2.2 already emits a warning, so let's not add a second one. + (guile-2.2 #t) + (else (warning (G_ "failed to install locale: ~a~%") + (strerror (system-error-errno args))))) + (display-hint (G_ "Consider installing the @code{glibc-utf8-locales} or +@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these +lines: + +@example +guix package -i glibc-utf8-locales +export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\" +@end example + +See the \"Application Setup\" section in the manual, for more info.\n"))))) (define (initialize-guix) "Perform the usual initialization for stand-alone Guix commands." @@ -1209,11 +1222,14 @@ field in the final score. A score of zero means that OBJ does not match any of REGEXPS. The higher the score, the more relevant OBJ is to REGEXPS." (define (score str) - (let ((counts (filter-map (lambda (regexp) - (match (regexp-exec regexp str) - (#f #f) - (m (match:count m)))) - regexps))) + (let ((counts (map (lambda (regexp) + (match (fold-matches regexp str '() cons) + (() 0) + ((m) (if (string=? (match:substring m) str) + 5 ;exact match + 1)) + (lst (length lst)))) + regexps))) ;; Compute a score that's proportional to the number of regexps matched ;; and to the number of matches for each regexp. (* (length counts) (reduce + 0 counts)))) diff --git a/po/guix/pt_BR.po b/po/guix/pt_BR.po index bb7d29c3cf..67f1d43b3f 100644 --- a/po/guix/pt_BR.po +++ b/po/guix/pt_BR.po @@ -5,10 +5,10 @@ # Rafael Fontenelle <rafaelff@gnome.org>, 2013, 2016, 2018. msgid "" msgstr "" -"Project-Id-Version: guix 0.15.0-pre1\n" +"Project-Id-Version: guix 0.15.0\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2018-04-27 19:13+0200\n" -"PO-Revision-Date: 2018-04-30 15:01-0200\n" +"POT-Creation-Date: 2018-06-22 14:08+0200\n" +"PO-Revision-Date: 2018-06-22 11:58-0200\n" "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n" "Language: pt_BR\n" @@ -79,7 +79,7 @@ msgstr "especificação ambígua de pacote \"~a\"~%" msgid "choosing ~a@~a from ~a~%" msgstr "escolhendo ~a@~a de ~a~%" -#: gnu/packages.scm:265 guix/scripts/package.scm:278 +#: gnu/packages.scm:265 guix/scripts/package.scm:238 #, scheme-format msgid "package '~a' has been superseded by '~a'~%" msgstr "pacote \"~a\" foi substituído por \"~a\"~%" @@ -104,57 +104,139 @@ msgstr "pacote \"~a\" carece de mensagem de saída \"~a\"~%" msgid "~a: no value specified for service of type '~a'" msgstr "~a: nenhum valor especificado para um serviço do tipo \"~a\"" -#: gnu/services.scm:643 +#: gnu/services.scm:336 +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 "" +"Constrói o diretório de nível superior do sistema operacional, que\n" +"se refere a tudo que o sistema operacional precisa: seu kernel, initrd,\n" +"perfil do sistema, script de inicialização e assim por diante." + +#: gnu/services.scm:366 +msgid "" +"Produce the operating system's boot script, which is spawned\n" +"by the initrd once the root file system is mounted." +msgstr "" +"Produz o script de inicialização do sistema operacional, que\n" +"é gerado pelo initrd quando o sistema de arquivos raiz é montado." + +#: gnu/services.scm:422 +msgid "" +"Delete files from @file{/tmp}, @file{/var/run}, and other\n" +"temporary locations at boot time." +msgstr "" +"Exclui arquivos a partir de @file{/tmp}, @file{/var/run}\n" +"e outros locais temporários no momento da inicialização." + +#: gnu/services.scm:476 +msgid "" +"Run @dfn{activation} code at boot time and upon\n" +"@command{guix system reconfigure} completion." +msgstr "" +"Executa o código @dfn{activation} na inicialização e\n" +"após conclusão com @command{guix system reconfigure}." + +#: gnu/services.scm:527 +msgid "" +"Add special files to the root file system---e.g.,\n" +"@file{/usr/bin/env}." +msgstr "" +"Adiciona arquivos especiais ao sistema de arquivos raiz,\n" +"por exemplo @file{/usr/bin/env}." + +#: gnu/services.scm:563 +msgid "Populate the @file{/etc} directory." +msgstr "Popula o diretório @file{/etc}." + +#: gnu/services.scm:580 +msgid "" +"Populate @file{/run/setuid-programs} with the specified\n" +"executables, making them setuid-root." +msgstr "" +"Preenche @file{/run/setuid-programs} com os executáveis\n" +"especificados, tornando-os setuid-root." + +#: gnu/services.scm:600 +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 "" +"Este é o @dfn{system profile}, disponível como\n" +"@file{/run/current-system/profile}. Ele contém pacotes que o sysadmin\n" +"quer que esteja globalmente disponível para todos os usuários do sistema." + +#: gnu/services.scm:620 +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 "" +"Faz arquivos ``firmware'' carregáveis pelo kernel do sistema\n" +"operacional. O firmware pode ser carregado em alguns dispositivos da máquina,\n" +"como como placas de rede Wi-Fi." + +#: gnu/services.scm:651 +msgid "" +"Register garbage-collector roots---i.e., store items that\n" +"will not be reclaimed by the garbage collector." +msgstr "" +"Registra raízes de coletor de lixo --- isto é, armazena\n" +"itens que não serão recuperados pelo coletor de lixo." + +#: gnu/services.scm:676 #, scheme-format msgid "no target of type '~a' for service '~a'" msgstr "nenhum alvo do tipo \"~a\" para o serviço \"~a\"" -#: gnu/services.scm:669 gnu/services.scm:762 +#: gnu/services.scm:702 gnu/services.scm:795 #, scheme-format msgid "more than one target service of type '~a'" msgstr "mais de um serviço alvo do tipo \"~a\"" -#: gnu/services.scm:752 +#: gnu/services.scm:785 #, scheme-format msgid "service of type '~a' not found" msgstr "serviço do tipo \"~a\" não localizado" -#: gnu/system.scm:311 +#: gnu/system.scm:320 #, scheme-format -msgid "unrecognized boot parameters for '~a'~%" -msgstr "parâmetros de inicialização não reconhecidos para \"~a\"~%" +msgid "unrecognized boot parameters at '~a'~%" +msgstr "parâmetros de inicialização não reconhecidos em \"~a\"~%" -#: gnu/system.scm:712 +#: gnu/system.scm:731 #, scheme-format msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" msgstr "usando um texto para arquivo \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%" -#: gnu/system.scm:728 +#: gnu/system.scm:747 #, scheme-format msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" msgstr "usando um valor monádico para \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%" -#: gnu/system.scm:875 +#: gnu/system.scm:892 #, scheme-format msgid "~a: invalid locale name" msgstr "~a: nome de localidade inválido" -#: gnu/services/shepherd.scm:177 +#: gnu/services/shepherd.scm:175 #, scheme-format msgid "service '~a' provided more than once" msgstr "serviço \"~a\" fornecido mais de uma vez" -#: gnu/services/shepherd.scm:192 +#: gnu/services/shepherd.scm:190 #, scheme-format msgid "service '~a' requires '~a', which is not provided by any service" msgstr "serviço \"~a\" requer \"~a\", o que não é fornecido por nenhum serviço" -#: gnu/system/mapped-devices.scm:136 +#: gnu/system/mapped-devices.scm:142 #, scheme-format msgid "you may need these modules in the initrd for ~a:~{ ~a~}" msgstr "você pode precisar desses módulos no initrd para ~a:~{ ~a~}" -#: gnu/system/mapped-devices.scm:140 +#: gnu/system/mapped-devices.scm:146 #, scheme-format msgid "" "Try adding them to the\n" @@ -179,17 +261,17 @@ msgstr "" " %base-initrd-modules)))\n" "@end example\n" -#: gnu/system/mapped-devices.scm:216 +#: gnu/system/mapped-devices.scm:222 #, scheme-format msgid "no LUKS partition with UUID '~a'" msgstr "nenhuma partição LUKS com UUID \"~a\"" -#: gnu/system/shadow.scm:242 +#: gnu/system/shadow.scm:245 #, scheme-format msgid "supplementary group '~a' of user '~a' is undeclared" msgstr "grupo suplementar \"~a\" do usuário \"~a\" não está declarado" -#: gnu/system/shadow.scm:252 +#: gnu/system/shadow.scm:255 #, scheme-format msgid "primary group '~a' of user '~a' is undeclared" msgstr "grupo primário \"~a\" do usuário \"~a\" não está declarado" @@ -200,7 +282,7 @@ msgid "invalid argument: ~a~%" msgstr "argumento inválido: ~a~%" #: guix/scripts.scm:84 guix/scripts/download.scm:135 -#: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77 +#: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:85 #: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81 #, scheme-format msgid "~A: unrecognized option~%" @@ -452,7 +534,7 @@ msgstr "" " --sources[=TIPO] compila derivações de fonte; como opção, TIPO pode\n" " um entre \"package\", \"all\" (padrão) ou \"transitive\"" -#: guix/scripts/build.scm:517 guix/scripts/pack.scm:357 +#: guix/scripts/build.scm:517 guix/scripts/pack.scm:646 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -460,7 +542,7 @@ msgstr "" "\n" " -s, --system=SISTEMA tenta compilar para SISTEMA (ex.: \"i686-linux\")" -#: guix/scripts/build.scm:519 guix/scripts/pack.scm:359 +#: guix/scripts/build.scm:519 guix/scripts/pack.scm:648 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -521,14 +603,14 @@ msgstr "" " derivações fornecidas" #: guix/scripts/build.scm:539 guix/scripts/download.scm:83 -#: guix/scripts/package.scm:435 guix/scripts/gc.scm:76 +#: guix/scripts/package.scm:395 guix/scripts/gc.scm:76 #: guix/scripts/hash.scm:59 guix/scripts/import.scm:92 -#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:111 -#: guix/scripts/substitute.scm:879 guix/scripts/system.scm:970 -#: guix/scripts/lint.scm:1122 guix/scripts/publish.scm:94 +#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120 +#: guix/scripts/substitute.scm:879 guix/scripts/system.scm:993 +#: guix/scripts/lint.scm:1107 guix/scripts/publish.scm:94 #: guix/scripts/edit.scm:44 guix/scripts/size.scm:243 #: guix/scripts/graph.scm:466 guix/scripts/challenge.scm:241 -#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:372 +#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:661 #: guix/scripts/weather.scm:258 guix/scripts/container.scm:33 #: guix/scripts/container/exec.scm:43 msgid "" @@ -539,14 +621,14 @@ msgstr "" " -h, --help exibe esta ajuda e sai" #: guix/scripts/build.scm:541 guix/scripts/download.scm:85 -#: guix/scripts/package.scm:437 guix/scripts/gc.scm:78 +#: guix/scripts/package.scm:397 guix/scripts/gc.scm:78 #: guix/scripts/hash.scm:61 guix/scripts/import.scm:94 -#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:113 -#: guix/scripts/substitute.scm:881 guix/scripts/system.scm:972 -#: guix/scripts/lint.scm:1126 guix/scripts/publish.scm:96 +#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:122 +#: guix/scripts/substitute.scm:881 guix/scripts/system.scm:995 +#: guix/scripts/lint.scm:1111 guix/scripts/publish.scm:96 #: guix/scripts/edit.scm:46 guix/scripts/size.scm:245 #: guix/scripts/graph.scm:468 guix/scripts/challenge.scm:243 -#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:374 +#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:663 #: guix/scripts/weather.scm:260 guix/scripts/container.scm:35 #: guix/scripts/container/exec.scm:45 msgid "" @@ -570,12 +652,12 @@ msgstr "" msgid "~s: not something we can build~%" msgstr "~s: não é algo que podemos compilar~%" -#: guix/scripts/build.scm:675 +#: guix/scripts/build.scm:679 #, scheme-format msgid "~a: warning: package '~a' has no source~%" msgstr "~a: aviso: pacote \"~a\" não possui fontes~%" -#: guix/scripts/build.scm:709 +#: guix/scripts/build.scm:713 #, scheme-format msgid "no build log for '~a'~%" msgstr "nenhum log de compilação para \"~a\"~%" @@ -632,7 +714,7 @@ msgstr "" msgid "unsupported hash format: ~a~%" msgstr "sem suporte ao formato de hash: ~a~%" -#: guix/scripts/download.scm:138 guix/scripts/package.scm:924 +#: guix/scripts/download.scm:138 guix/scripts/package.scm:884 #: guix/scripts/publish.scm:883 #, scheme-format msgid "~A: extraneous argument~%" @@ -653,71 +735,71 @@ msgstr "~a: falha ao analisar URI~%" msgid "~a: download failed~%" msgstr "~a: falha no download~%" -#: guix/scripts/package.scm:112 +#: guix/scripts/package.scm:72 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Tente \"info '(guix) Invoking guix package'\" para mais informações.~%" -#: guix/scripts/package.scm:134 +#: guix/scripts/package.scm:94 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "erro: ao criar diretório \"~a\": ~a~%" -#: guix/scripts/package.scm:138 +#: guix/scripts/package.scm:98 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Por favor, crie o diretório \"~a\", com você sendo o proprietário.~%" -#: guix/scripts/package.scm:145 +#: guix/scripts/package.scm:105 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "erro: diretório \"~a\" não tem você como proprietário~%" -#: guix/scripts/package.scm:148 +#: guix/scripts/package.scm:108 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Por favor, altere o proprietário d \"~a\" para o usuário ~s.~%" -#: guix/scripts/package.scm:183 +#: guix/scripts/package.scm:143 #, scheme-format msgid "not removing generation ~a, which is current~%" msgstr "não será removida a geração ~a, que é o atual~%" # geração, criação? -#: guix/scripts/package.scm:190 +#: guix/scripts/package.scm:150 #, scheme-format msgid "no matching generation~%" msgstr "nenhuma geração correspondente~%" -#: guix/scripts/package.scm:193 guix/scripts/package.scm:730 -#: guix/scripts/system.scm:573 +#: guix/scripts/package.scm:153 guix/scripts/package.scm:690 +#: guix/scripts/system.scm:593 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "sintaxe inválida: ~a~%" -#: guix/scripts/package.scm:222 +#: guix/scripts/package.scm:182 #, scheme-format msgid "nothing to be done~%" msgstr "nada para ser feito~%" -#: guix/scripts/package.scm:236 +#: guix/scripts/package.scm:196 #, scheme-format msgid "~a package in profile~%" msgid_plural "~a packages in profile~%" msgstr[0] "~a pacote no perfil~%" msgstr[1] "~a pacotes no perfil~%" -#: guix/scripts/package.scm:320 +#: guix/scripts/package.scm:280 #, scheme-format msgid "package '~a' no longer exists~%" msgstr "o pacote \"~a\" não existe mais~%" -#: guix/scripts/package.scm:358 +#: guix/scripts/package.scm:318 #, scheme-format msgid "The following environment variable definitions may be needed:~%" msgstr "As seguintes definições de variável de ambiente podem ser necessárias:~%" -#: guix/scripts/package.scm:374 +#: guix/scripts/package.scm:334 msgid "" "Usage: guix package [OPTION]...\n" "Install, remove, or upgrade packages in a single transaction.\n" @@ -725,7 +807,7 @@ msgstr "" "Uso: guix package [OPÇÃO]...\n" "Instala, remove ou atualiza pacotes em uma única transação.\n" -#: guix/scripts/package.scm:376 +#: guix/scripts/package.scm:336 msgid "" "\n" " -i, --install PACKAGE ...\n" @@ -735,7 +817,7 @@ msgstr "" " -i, --install PACOTE ...\n" " instala PACOTEs" -#: guix/scripts/package.scm:379 +#: guix/scripts/package.scm:339 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -745,7 +827,7 @@ msgstr "" " -e, --install-from-expression=EXP\n" " instala o pacote que EXPR corresponder" -#: guix/scripts/package.scm:382 +#: guix/scripts/package.scm:342 msgid "" "\n" " -f, --install-from-file=FILE\n" @@ -757,7 +839,7 @@ msgstr "" " instala o pacote cujo código dentro do ARQUIVO\n" " corresponder" -#: guix/scripts/package.scm:386 +#: guix/scripts/package.scm:346 msgid "" "\n" " -r, --remove PACKAGE ...\n" @@ -767,7 +849,7 @@ msgstr "" " -r, --remove PACOTE ...\n" " remove PACOTEs" -#: guix/scripts/package.scm:389 +#: guix/scripts/package.scm:349 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" @@ -776,7 +858,7 @@ msgstr "" " -u, --upgrade[=REGEXP] atualiza todos os pacotes instalados correspondendo\n" " à REGEXP" -#: guix/scripts/package.scm:391 +#: guix/scripts/package.scm:351 msgid "" "\n" " -m, --manifest=FILE create a new profile generation with the manifest\n" @@ -786,7 +868,7 @@ msgstr "" " -m, --manifest=ARQUIVO cria a geração de um novo perfil com o manifesto\n" " do ARQUIVO" -#: guix/scripts/package.scm:394 +#: guix/scripts/package.scm:354 msgid "" "\n" " --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" @@ -794,7 +876,7 @@ msgstr "" "\n" " --do-not-upgrade[=REGEXP] não atualiza pacotes correspondente a REGEXP" -#: guix/scripts/package.scm:396 +#: guix/scripts/package.scm:356 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -802,7 +884,7 @@ msgstr "" "\n" " --roll-back reverte para a geração anterior" -#: guix/scripts/package.scm:398 +#: guix/scripts/package.scm:358 msgid "" "\n" " --search-paths[=KIND]\n" @@ -812,7 +894,7 @@ msgstr "" " --search-paths[=TIPO]\n" " exibe definições necessárias de variável de ambiente" -#: guix/scripts/package.scm:401 +#: guix/scripts/package.scm:361 guix/scripts/pull.scm:113 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -822,7 +904,7 @@ msgstr "" " -l, --list-generations[=PADRÃO]\n" " lista criações correspondendo a PADRÃO" -#: guix/scripts/package.scm:404 +#: guix/scripts/package.scm:364 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" @@ -832,7 +914,7 @@ msgstr "" " -d, --delete-generations[=PADRÃO]\n" " exclui gerações correspondendo a PADRÃO" -#: guix/scripts/package.scm:407 +#: guix/scripts/package.scm:367 msgid "" "\n" " -S, --switch-generation=PATTERN\n" @@ -842,7 +924,7 @@ msgstr "" " -S, --switch-generations=PADRÃO\n" " alterna para a geração correspondendo a PADRÃO" -#: guix/scripts/package.scm:410 +#: guix/scripts/package.scm:370 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -850,7 +932,7 @@ msgstr "" "\n" " -p, --profile=PERFIL usa PERFIL em vez do perfil padrão do usuário" -#: guix/scripts/package.scm:413 +#: guix/scripts/package.scm:373 msgid "" "\n" " --allow-collisions do not treat collisions in the profile as an error" @@ -858,7 +940,7 @@ msgstr "" "\n" " --allow-collisions não trata colisões no perfil como um erro" -#: guix/scripts/package.scm:415 +#: guix/scripts/package.scm:375 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -866,7 +948,7 @@ msgstr "" "\n" " --bootstrap usa a inicialização do Guile para compilar o perfil" -#: guix/scripts/package.scm:417 guix/scripts/pull.scm:99 +#: guix/scripts/package.scm:377 guix/scripts/pull.scm:105 msgid "" "\n" " --verbose produce verbose output" @@ -874,7 +956,7 @@ msgstr "" "\n" " --verbose produz uma saída mais detalhada" -#: guix/scripts/package.scm:420 +#: guix/scripts/package.scm:380 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -882,7 +964,7 @@ msgstr "" "\n" " -s, --search=REGEXP pesquisa na sinopse e descrição usando REGEXP" -#: guix/scripts/package.scm:422 +#: guix/scripts/package.scm:382 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -892,7 +974,7 @@ msgstr "" " -I, --list-installed[=REGEXP]\n" " lista pacotes instalados correspondentes a REGEXP" -#: guix/scripts/package.scm:425 +#: guix/scripts/package.scm:385 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -902,7 +984,7 @@ msgstr "" " -A, --list-available[=REGEXP]\n" " lista pacotes disponíveis correspondentes a REGEXP" -#: guix/scripts/package.scm:428 +#: guix/scripts/package.scm:388 msgid "" "\n" " --show=PACKAGE show details about PACKAGE" @@ -910,33 +992,33 @@ msgstr "" "\n" " --show=PACOTE mostra detalhes sobre o PACOTE" -#: guix/scripts/package.scm:480 +#: guix/scripts/package.scm:440 #, scheme-format msgid "upgrade regexp '~a' looks like a command-line option~%" msgstr "a regexp de atualização \"~a\" se parece com uma opção de linha de comando~%" -#: guix/scripts/package.scm:483 +#: guix/scripts/package.scm:443 #, scheme-format msgid "is this intended?~%" msgstr "isso é intencional?~%" -#: guix/scripts/package.scm:528 +#: guix/scripts/package.scm:488 #, scheme-format msgid "~a: unsupported kind of search path~%" msgstr "~a: sem suporte ao tipo de caminho de pesquisa~%" # geração, criação? -#: guix/scripts/package.scm:829 +#: guix/scripts/package.scm:789 #, scheme-format msgid "cannot switch to generation '~a'~%" msgstr "não foi possível alternar para a geração \"~a\"~%" -#: guix/scripts/package.scm:846 +#: guix/scripts/package.scm:806 #, scheme-format msgid "would install new manifest from '~a' with ~d entries~%" msgstr "instalaria novo manifesto a partir de \"~a\" com entradas ~d~%" -#: guix/scripts/package.scm:848 +#: guix/scripts/package.scm:808 #, scheme-format msgid "installing new manifest from '~a' with ~d entries~%" msgstr "instalando novo manifesto a partir de \"~a\" com entradas ~d~%" @@ -1119,13 +1201,13 @@ msgstr "" "\n" " -r, --recursive computa o hash no AQUIVO recursivamente" -#: guix/scripts/hash.scm:150 guix/ui.scm:346 guix/ui.scm:656 guix/ui.scm:709 +#: guix/scripts/hash.scm:150 guix/ui.scm:365 guix/ui.scm:706 guix/ui.scm:759 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1138 -#: guix/scripts/system.scm:1147 guix/scripts/system.scm:1154 +#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1161 +#: guix/scripts/system.scm:1170 guix/scripts/system.scm:1177 #, scheme-format msgid "wrong number of arguments~%" msgstr "número errado de argumentos~%" @@ -1173,22 +1255,22 @@ msgstr "" "\n" " -a, --archive=PACOTE especifica o repositório de pacote" -#: guix/scripts/import/cran.scm:108 +#: guix/scripts/import/cran.scm:110 #, scheme-format msgid "failed to download description for package '~a'~%" msgstr "falha ao baixar descrição para o pacote \"~a\"~%" -#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:95 +#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:113 #, scheme-format msgid "too few arguments~%" msgstr "poucos argumentos~%" -#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:97 +#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:115 #, scheme-format msgid "too many arguments~%" msgstr "número excessivo de argumentos~%" -#: guix/scripts/import/elpa.scm:41 +#: guix/scripts/import/elpa.scm:44 msgid "" "Usage: guix import elpa PACKAGE-NAME\n" "Import the latest package named PACKAGE-NAME from an ELPA repository.\n" @@ -1196,7 +1278,7 @@ msgstr "" "Uso: guix import elpa NOME-PACOTE\n" "Importa o último pacote chamado NOME-PACOTE de um repositório ELPA.\n" -#: guix/scripts/import/elpa.scm:43 +#: guix/scripts/import/elpa.scm:46 msgid "" "\n" " -a, --archive=ARCHIVE specify the archive repository" @@ -1204,7 +1286,7 @@ msgstr "" "\n" " -a, --archive=PACOTE especifica o repositório de pacote" -#: guix/scripts/import/elpa.scm:45 +#: guix/scripts/import/elpa.scm:48 msgid "" "\n" " -h, --help display this help and exit" @@ -1212,7 +1294,15 @@ msgstr "" "\n" " -h, --help exibe esta ajuda e sai" -#: guix/scripts/import/elpa.scm:47 +#: guix/scripts/import/elpa.scm:50 +msgid "" +"\n" +" -r, --recursive generate package expressions for all Emacs packages that are not yet in Guix" +msgstr "" +"\n" +" -r, --recursive gera expressões de pacote para todos os pacotes do Emacs que ainda não estão no Guix" + +#: guix/scripts/import/elpa.scm:52 msgid "" "\n" " -V, --version display version information and exit" @@ -1220,12 +1310,12 @@ msgstr "" "\n" " -V, --version exibe informações da versão e sai" -#: guix/scripts/import/elpa.scm:92 +#: guix/scripts/import/elpa.scm:110 #, scheme-format msgid "failed to download package '~a'~%" msgstr "falha ao baixar localidade: \"~a\"~%" -#: guix/scripts/pull.scm:60 +#: guix/scripts/pull.scm:66 #, scheme-format msgid "" "Guile-Git is missing but it is now required by 'guix pull'.\n" @@ -1244,7 +1334,7 @@ msgstr "" " export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n" "\n" -#: guix/scripts/pull.scm:97 +#: guix/scripts/pull.scm:103 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" @@ -1252,7 +1342,7 @@ msgstr "" "Uso: guix pull [OPÇÃO]...\n" "Baixa e implanta a última versão do Guix.\n" -#: guix/scripts/pull.scm:101 +#: guix/scripts/pull.scm:107 msgid "" "\n" " --url=URL download from the Git repository at URL" @@ -1260,7 +1350,7 @@ msgstr "" "\n" " --url=URL baixa do repositório Git na URL" -#: guix/scripts/pull.scm:103 +#: guix/scripts/pull.scm:109 msgid "" "\n" " --commit=COMMIT download the specified COMMIT" @@ -1268,7 +1358,7 @@ msgstr "" "\n" " --commit=COMMIT baixa o COMMIT especificado" -#: guix/scripts/pull.scm:105 +#: guix/scripts/pull.scm:111 msgid "" "\n" " --branch=BRANCH download the tip of the specified BRANCH" @@ -1276,7 +1366,7 @@ msgstr "" "\n" " --branch=RAMO baixa a dica do RAMO especificado" -#: guix/scripts/pull.scm:107 +#: guix/scripts/pull.scm:116 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the new Guix" @@ -1284,46 +1374,47 @@ msgstr "" "\n" " --bootstrap usa inicialização do Guile para compilar o novo Guix" -#: guix/scripts/pull.scm:193 -msgid "Guix already up to date\n" -msgstr "Guix já está atualizado\n" - -#: guix/scripts/pull.scm:198 -#, scheme-format -msgid "updated ~a successfully deployed under `~a'~%" -msgstr "~a atualizado foi implantado com sucesso sob \"~a\"~%" - -#: guix/scripts/pull.scm:201 -#, scheme-format -msgid "failed to update Guix, check the build log~%" -msgstr "falha ao atualizar Guix; verifique o log de compilação~%" - -#: guix/scripts/pull.scm:217 +#: guix/scripts/pull.scm:263 #, scheme-format msgid "cannot enforce use of the Let's Encrypt certificates~%" msgstr "não foi possível forçar o uso de certificados Let's Encrypt~%" -#: guix/scripts/pull.scm:219 +#: guix/scripts/pull.scm:265 #, scheme-format msgid "please upgrade Guile-Git~%" msgstr "por favor, atualize o Guile-Git~%" -#: guix/scripts/pull.scm:227 +#: guix/scripts/pull.scm:273 #, scheme-format msgid "Git error ~a~%" msgstr "erro no Git ~a~%" -#: guix/scripts/pull.scm:229 +#: guix/scripts/pull.scm:275 #, scheme-format msgid "Git error: ~a~%" msgstr "erro no Git: ~a~%" -#: guix/scripts/pull.scm:263 +#: guix/scripts/pull.scm:302 +#, scheme-format +msgid " repository URL: ~a~%" +msgstr " URL do repositório: ~a~%" + +#: guix/scripts/pull.scm:304 +#, scheme-format +msgid " branch: ~a~%" +msgstr " ramo: ~a~%" + +#: guix/scripts/pull.scm:305 +#, scheme-format +msgid " commit: ~a~%" +msgstr " commit: ~a~%" + +#: guix/scripts/pull.scm:373 #, scheme-format msgid "Updating from Git repository at '~a'...~%" msgstr "Atualizando a partir do repositório Git \"~a\"...~%" -#: guix/scripts/pull.scm:272 +#: guix/scripts/pull.scm:383 #, scheme-format msgid "Building from Git commit ~a...~%" msgstr "Compilando a partir do commit Git ~a...~%" @@ -1410,8 +1501,8 @@ msgstr "\"~a\" não é o nome de um item do armazenamento~%" #: guix/scripts/substitute.scm:619 #, scheme-format -msgid "updating list of substitutes from '~a'... ~5,1f%" -msgstr "atualizando a lista de substitutos de \"~a\"... ~5,1f%" +msgid "updating substitutes from '~a'... ~5,1f%" +msgstr "atualizando substitutos de \"~a\"... ~5,1f%" #: guix/scripts/substitute.scm:683 #, scheme-format @@ -1523,172 +1614,179 @@ msgstr "" msgid "wrong arguments" msgstr "argumentos errados" -#: guix/scripts/system.scm:141 +#: guix/scripts/system.scm:143 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "falha ao registrar \"~a\" sob \"~a\"~%" -#: guix/scripts/system.scm:152 +#: guix/scripts/system.scm:154 #, scheme-format msgid "copying to '~a'..." msgstr "copiando para \"~a\"..." -#: guix/scripts/system.scm:187 +#: guix/scripts/system.scm:189 #, scheme-format msgid "failed to install bootloader ~a~%" msgstr "falha ao instalar carregador de inicialização ~a~%" -#: guix/scripts/system.scm:207 +#: guix/scripts/system.scm:209 #, scheme-format msgid "initializing the current root file system~%" msgstr "inicialização do sistema de arquivos raiz atual~%" -#: guix/scripts/system.scm:221 +#: guix/scripts/system.scm:223 #, scheme-format msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" msgstr "execução como não \"root\", então o dono de \"~a\" pode estar incorreto!~%" -#: guix/scripts/system.scm:266 +#: guix/scripts/system.scm:268 #, scheme-format msgid "while talking to shepherd: ~a~%" msgstr "enquanto falava com o shepherd: ~a~%" -#: guix/scripts/system.scm:273 +#: guix/scripts/system.scm:275 #, scheme-format msgid "service '~a' could not be found~%" msgstr "o serviço \"~a\" não pôde ser localizado~%" -#: guix/scripts/system.scm:276 +#: guix/scripts/system.scm:278 #, scheme-format msgid "service '~a' does not have an action '~a'~%" msgstr "o serviço \"~a\" não possui uma ação \"~a\"~%" -#: guix/scripts/system.scm:280 +#: guix/scripts/system.scm:282 #, scheme-format msgid "exception caught while executing '~a' on service '~a':~%" msgstr "exceção encontrada ao executar \"~a\" no serviço \"~a\":~%" -#: guix/scripts/system.scm:288 +#: guix/scripts/system.scm:290 #, scheme-format msgid "something went wrong: ~s~%" msgstr "algo deu errado: ~s~%" -#: guix/scripts/system.scm:291 +#: guix/scripts/system.scm:293 #, scheme-format msgid "shepherd error~%" msgstr "erro do shepherd~%" -#: guix/scripts/system.scm:308 +#: guix/scripts/system.scm:310 #, scheme-format msgid "failed to obtain list of shepherd services~%" msgstr "falha ao obter lista de serviços do shepherd~%" -#: guix/scripts/system.scm:328 +#: guix/scripts/system.scm:330 #, scheme-format msgid "unloading service '~a'...~%" msgstr "descarregando serviço \"~a\"...~%" -#: guix/scripts/system.scm:336 +#: guix/scripts/system.scm:338 #, scheme-format msgid "loading new services:~{ ~a~}...~%" msgstr "carregando novos serviços:~{ ~a~}...~%" -#: guix/scripts/system.scm:362 +#: guix/scripts/system.scm:364 #, scheme-format msgid "activating system...~%" msgstr "ativando sistema...~%" # geração, criação? -#: guix/scripts/system.scm:438 +#: guix/scripts/system.scm:442 #, scheme-format msgid "cannot switch to system generation '~a'~%" msgstr "não foi possível alternar para a geração do sistema \"~a\"~%" -#: guix/scripts/system.scm:509 +#: guix/scripts/system.scm:513 msgid "the DAG of services" msgstr "o DAG de serviços" -#: guix/scripts/system.scm:522 +#: guix/scripts/system.scm:526 msgid "the dependency graph of shepherd services" msgstr "o gráfico de dependência de serviços do shepherd" -#: guix/scripts/system.scm:546 +#: guix/scripts/system.scm:550 #, scheme-format msgid " file name: ~a~%" msgstr " nome de arquivo: ~a~%" -#: guix/scripts/system.scm:547 +#: guix/scripts/system.scm:551 #, scheme-format msgid " canonical file name: ~a~%" msgstr " nome de arquivo canônico: ~a~%" #. TRANSLATORS: Please preserve the two-space indentation. -#: guix/scripts/system.scm:549 +#: guix/scripts/system.scm:553 #, scheme-format msgid " label: ~a~%" msgstr " rótulo: ~a~%" -#: guix/scripts/system.scm:550 +#: guix/scripts/system.scm:554 #, scheme-format msgid " bootloader: ~a~%" msgstr " carregador de inicialização: ~a~%" -#: guix/scripts/system.scm:551 +#. 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:564 #, scheme-format -msgid " root device: ~a~%" -msgstr " dispositivo raiz: ~a~%" +msgid " root device: ~[UUID: ~a~;label: ~s~;~a~]~%" +msgstr " dispositivo raiz: ~[UUID: ~a~;rótulo: ~s~;~a~]~%" -#: guix/scripts/system.scm:555 +#: guix/scripts/system.scm:575 #, scheme-format msgid " kernel: ~a~%" msgstr " kernel: ~a~%" -#: guix/scripts/system.scm:626 +#: guix/scripts/system.scm:646 #, scheme-format msgid "~a: error: device '~a' not found: ~a~%" msgstr "~a: erro: dispositivo \"~a\" não localizado: ~a~%" -#: guix/scripts/system.scm:630 +#: guix/scripts/system.scm:650 #, scheme-format msgid "" "If '~a' is a file system\n" -"label, you need to add @code{(title 'label)} to your @code{file-system}\n" -"definition." +"label, write @code{(file-system-label ~s)} in your @code{device} field." msgstr "" "Se \"~a\" for um rótulo de sistema de arquivos,\n" -"você precisa adicionar @code{(title 'label)} à sua definição @code{file-system}" +"escreva @code{(file-system-label ~s)} em seu campo @code{device}." -#: guix/scripts/system.scm:637 +#: guix/scripts/system.scm:658 #, scheme-format msgid "~a: error: file system with label '~a' not found~%" msgstr "~a: erro: sistema de arquivos com rótulo \"~a\" não localizado~%" -#: guix/scripts/system.scm:643 +#: guix/scripts/system.scm:663 #, scheme-format msgid "~a: error: file system with UUID '~a' not found~%" msgstr "~a: erro: sistema de arquivos com UUID \"~a\" não localizado~%" -#: guix/scripts/system.scm:741 +#: guix/scripts/system.scm:764 #, scheme-format msgid "~a not found: 'guix pull' was never run~%" msgstr "~a não localizado: \"guix pull\" nunca foi executado~%" -#: guix/scripts/system.scm:742 +#: guix/scripts/system.scm:765 #, scheme-format msgid "Consider running 'guix pull' before 'reconfigure'.~%" msgstr "Considere executar \"guix pull\" antes de \"reconfigure\".~%" -#: guix/scripts/system.scm:743 +#: guix/scripts/system.scm:766 #, scheme-format msgid "Failing to do that may downgrade your system!~%" msgstr "Falhar em fazer isso pode fazer um downgrade de seu sistema!~%" -#: guix/scripts/system.scm:860 +#: guix/scripts/system.scm:883 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "inicializando sistema operacional sob \"~a\"...~%" -#: guix/scripts/system.scm:905 +#: guix/scripts/system.scm:928 msgid "" "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -1698,71 +1796,71 @@ msgstr "" "Compilação do sistema operacional declarado em ARQUIVO de acordo com AÇÃO.\n" "Algumas AÇÕES fornecem suporte adicional a ARGUMENTOS.\n" -#: guix/scripts/system.scm:909 guix/scripts/container.scm:28 +#: guix/scripts/system.scm:932 guix/scripts/container.scm:28 msgid "The valid values for ACTION are:\n" msgstr "Os valores válidos para AÇÃO são:\n" -#: guix/scripts/system.scm:911 +#: guix/scripts/system.scm:934 msgid " search search for existing service types\n" msgstr " search pesquisa por tipos de serviços existentes\n" -#: guix/scripts/system.scm:913 +#: guix/scripts/system.scm:936 msgid " reconfigure switch to a new operating system configuration\n" msgstr " reconfigure alterna para configuração de um novo sistema operacional\n" -#: guix/scripts/system.scm:915 +#: guix/scripts/system.scm:938 msgid " roll-back switch to the previous operating system configuration\n" msgstr " roll-back alterna para a configuração de sistema operacional anterior\n" -#: guix/scripts/system.scm:917 +#: guix/scripts/system.scm:940 msgid " switch-generation switch to an existing operating system configuration\n" msgstr " switch-generation alterna para uma configuração de sistema operacional existente\n" -#: guix/scripts/system.scm:919 +#: guix/scripts/system.scm:942 msgid " list-generations list the system generations\n" msgstr " list-generations lista as gerações do sistema\n" -#: guix/scripts/system.scm:921 +#: guix/scripts/system.scm:944 msgid " build build the operating system without installing anything\n" msgstr " build compila o sistema operacional sem instalador nada\n" -#: guix/scripts/system.scm:923 +#: guix/scripts/system.scm:946 msgid " container build a container that shares the host's store\n" msgstr "" " container compila um contêiner que compartilha o armazenamento\n" " da máquina\n" -#: guix/scripts/system.scm:925 +#: guix/scripts/system.scm:948 msgid " vm build a virtual machine image that shares the host's store\n" msgstr "" " vm compila uma imagem de máquina virtual que compartilha\n" " o armazenamento da máquina\n" -#: guix/scripts/system.scm:927 +#: guix/scripts/system.scm:950 msgid " vm-image build a freestanding virtual machine image\n" msgstr " vm-image compila uma imagem de máquina virtual independente\n" -#: guix/scripts/system.scm:929 +#: guix/scripts/system.scm:952 msgid " disk-image build a disk image, suitable for a USB stick\n" msgstr " disk-image compila uma imagem de disco, adequada para pendrive USB\n" -#: guix/scripts/system.scm:931 +#: guix/scripts/system.scm:954 msgid " docker-image build a Docker image\n" msgstr " docker-image compila uma imagem de Docker\n" -#: guix/scripts/system.scm:933 +#: guix/scripts/system.scm:956 msgid " init initialize a root file system to run GNU\n" msgstr " init inicializa um sistema de arquivos raiz para executar GNU\n" -#: guix/scripts/system.scm:935 +#: guix/scripts/system.scm:958 msgid " extension-graph emit the service extension graph in Dot format\n" msgstr " extension-graph emite o gráfico da extensão de serviço no formato Dot\n" -#: guix/scripts/system.scm:937 +#: guix/scripts/system.scm:960 msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" msgstr " shepherd-graph emite o gráfico de serviços do shepherd no formato Dot\n" -#: guix/scripts/system.scm:941 +#: guix/scripts/system.scm:964 msgid "" "\n" " -d, --derivation return the derivation of the given system" @@ -1770,7 +1868,7 @@ msgstr "" "\n" " -d, --derivation retorna a derivação do sistema dado" -#: guix/scripts/system.scm:943 +#: guix/scripts/system.scm:966 msgid "" "\n" " -e, --expression=EXPR consider the operating-system EXPR evaluates to\n" @@ -1780,7 +1878,7 @@ msgstr "" " -e, --expression=EXPR considera operating-sistem para o qual EXPR avalia\n" " em vez de ler ARQUIVO, quando aplicável" -#: guix/scripts/system.scm:946 +#: guix/scripts/system.scm:969 msgid "" "\n" " --on-error=STRATEGY\n" @@ -1790,7 +1888,7 @@ msgstr "" " --on-error=ESTRATÉGIA\n" " aplica ESTRATÉGIA ao ocorrer um erro ao ler ARQUIVO" -#: guix/scripts/system.scm:949 +#: guix/scripts/system.scm:972 msgid "" "\n" " --file-system-type=TYPE\n" @@ -1802,7 +1900,7 @@ msgstr "" " para \"disk-image\", produz um sistema de arquivos\n" " raiz do TIPO (um entre \"ext4\", \"iso9660\")" -#: guix/scripts/system.scm:953 +#: guix/scripts/system.scm:976 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -1810,7 +1908,7 @@ msgstr "" "\n" " --image-size=TAM para \"vm-image\", produz uma imagem de TAM" -#: guix/scripts/system.scm:955 +#: guix/scripts/system.scm:978 msgid "" "\n" " --no-bootloader for 'init', do not install a bootloader" @@ -1818,7 +1916,7 @@ msgstr "" "\n" " --no-bootloader para \"init\", não instala um carregador de inic." -#: guix/scripts/system.scm:957 +#: guix/scripts/system.scm:980 msgid "" "\n" " --share=SPEC for 'vm', share host file system according to SPEC" @@ -1827,7 +1925,7 @@ msgstr "" " --share=ESPEC para \"vm\", compartilha o sistema de arquivos do\n" " hospedeiro de acordo com ESPEC" -#: guix/scripts/system.scm:959 +#: guix/scripts/system.scm:982 msgid "" "\n" " -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',\n" @@ -1840,7 +1938,7 @@ msgstr "" " o resultado e o registra, como um coletor de lixo\n" " central" -#: guix/scripts/system.scm:963 +#: guix/scripts/system.scm:986 msgid "" "\n" " --expose=SPEC for 'vm', expose host file system according to SPEC" @@ -1849,7 +1947,7 @@ msgstr "" " --expose=ESPEC para \"vm\", expõe o sistema de arquivos do\n" " hospedeiro de acordo com ESPEC" -#: guix/scripts/system.scm:965 +#: guix/scripts/system.scm:988 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -1858,7 +1956,7 @@ msgstr "" " --full-boot para \"vm\", faz uma sequência completa de\n" " inicialização" -#: guix/scripts/system.scm:967 +#: guix/scripts/system.scm:990 msgid "" "\n" " --skip-checks skip file system and initrd module safety checks" @@ -1867,37 +1965,37 @@ msgstr "" " --skip-checks ignora verificações de segurança do sistema de\n" " arquivos e de módulo de initrd" -#: guix/scripts/system.scm:1066 +#: guix/scripts/system.scm:1089 #, scheme-format msgid "both file and expression cannot be specified~%" msgstr "não podem ser especificados arquivo e expressão~%" -#: guix/scripts/system.scm:1073 +#: guix/scripts/system.scm:1096 #, scheme-format msgid "no configuration specified~%" msgstr "nenhuma configuração especificada~%" -#: guix/scripts/system.scm:1173 +#: guix/scripts/system.scm:1196 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: ação desconhecida~%" -#: guix/scripts/system.scm:1189 +#: guix/scripts/system.scm:1212 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "número errado de argumentos para a ação \"~a\"~%" -#: guix/scripts/system.scm:1194 +#: guix/scripts/system.scm:1217 #, scheme-format msgid "guix system: missing command name~%" msgstr "guix system: faltando um nome de comando~%" -#: guix/scripts/system.scm:1196 +#: guix/scripts/system.scm:1219 #, scheme-format msgid "Try 'guix system --help' for more information.~%" msgstr "Tente \"guix system --help\" para mais informações.~%" -#: guix/scripts/system/search.scm:64 guix/ui.scm:1112 guix/ui.scm:1126 +#: guix/scripts/system/search.scm:88 guix/ui.scm:1162 guix/ui.scm:1176 msgid "unknown" msgstr "desconhecido" @@ -2080,123 +2178,123 @@ msgstr "falha ao criar a derivação: ~s~%" msgid "invalid license field" msgstr "campo de licença inválido" -#: guix/scripts/lint.scm:825 +#: guix/scripts/lint.scm:816 #, scheme-format msgid "~a: HTTP GET error for ~a: ~a (~s)~%" msgstr "~a: erro HTTP GET para ~a: ~a (~s)~%" -#: guix/scripts/lint.scm:835 +#: guix/scripts/lint.scm:826 #, scheme-format msgid "~a: host lookup failure: ~a~%" msgstr "~a: falha ao procurar o host: ~a~%" -#: guix/scripts/lint.scm:840 +#: guix/scripts/lint.scm:831 #, scheme-format msgid "~a: TLS certificate error: ~a" msgstr "~a: erro de certificado TLS: ~a" -#: guix/scripts/lint.scm:855 +#: guix/scripts/lint.scm:846 msgid "while retrieving CVE vulnerabilities" msgstr "ao obter vulnerabilidades CVE" -#: guix/scripts/lint.scm:898 +#: guix/scripts/lint.scm:883 #, scheme-format msgid "probably vulnerable to ~a" msgstr "provavelmente vulnerável a ~a" -#: guix/scripts/lint.scm:905 +#: guix/scripts/lint.scm:890 #, scheme-format msgid "while retrieving upstream info for '~a'" msgstr "ao obter informações do upstream para \"~a\"" -#: guix/scripts/lint.scm:913 +#: guix/scripts/lint.scm:898 #, scheme-format msgid "can be upgraded to ~a" msgstr "pode ser atualizado para ~a" -#: guix/scripts/lint.scm:928 +#: guix/scripts/lint.scm:913 #, scheme-format msgid "tabulation on line ~a, column ~a" msgstr "tabulação na linha ~a, coluna ~a" -#: guix/scripts/lint.scm:937 +#: guix/scripts/lint.scm:922 #, scheme-format msgid "trailing white space on line ~a" msgstr "espaço ao final da linha ~a" -#: guix/scripts/lint.scm:947 +#: guix/scripts/lint.scm:932 #, scheme-format msgid "line ~a is way too long (~a characters)" msgstr "a linha ~a está grande demais (~a caracteres)" -#: guix/scripts/lint.scm:958 +#: guix/scripts/lint.scm:943 #, scheme-format msgid "line ~a: parentheses feel lonely, move to the previous or next line" msgstr "linha ~a: parênteses está solitário, mova-o para a linha anterior ou a seguinte" -#: guix/scripts/lint.scm:1028 +#: guix/scripts/lint.scm:1013 msgid "Validate package descriptions" msgstr "Valida descrições dos pacotes" -#: guix/scripts/lint.scm:1032 +#: guix/scripts/lint.scm:1017 msgid "Validate synopsis & description of GNU packages" msgstr "Valida sinopse & descrição de pacotes GNU" -#: guix/scripts/lint.scm:1036 +#: guix/scripts/lint.scm:1021 msgid "Identify inputs that should be native inputs" msgstr "Identifica entradas que devem ser nativas" -#: guix/scripts/lint.scm:1040 -msgid "Identify inputs that should be inputs at all" -msgstr "Identifica entradas que devem ser entradas" +#: guix/scripts/lint.scm:1025 +msgid "Identify inputs that shouldn't be inputs at all" +msgstr "Identifica entradas que podem ser entradas" -#: guix/scripts/lint.scm:1044 +#: guix/scripts/lint.scm:1029 msgid "Validate file names and availability of patches" msgstr "Valida nomes de arquivos e disponibilidade de patches" -#: guix/scripts/lint.scm:1048 +#: guix/scripts/lint.scm:1033 msgid "Validate home-page URLs" msgstr "Valida URLs de site" #. TRANSLATORS: <license> is the name of a data type and must not be #. translated. -#: guix/scripts/lint.scm:1054 +#: guix/scripts/lint.scm:1039 msgid "Make sure the 'license' field is a <license> or a list thereof" msgstr "Certifica que o campo \"license\" é um <license> ou uma lista disto" -#: guix/scripts/lint.scm:1059 +#: guix/scripts/lint.scm:1044 msgid "Validate source URLs" msgstr "Valida URLs fonte" -#: guix/scripts/lint.scm:1063 +#: guix/scripts/lint.scm:1048 msgid "Suggest 'mirror://' URLs" msgstr "Sugere URLs \"mirror://\"" -#: guix/scripts/lint.scm:1067 +#: guix/scripts/lint.scm:1052 msgid "Validate file names of sources" msgstr "Valida nomes de arquivos dos fontes" -#: guix/scripts/lint.scm:1071 +#: guix/scripts/lint.scm:1056 msgid "Report failure to compile a package to a derivation" msgstr "Relata falha ao compilar um pacote para uma derivação" -#: guix/scripts/lint.scm:1075 +#: guix/scripts/lint.scm:1060 msgid "Validate package synopses" msgstr "Valida sinopses do pacotes" -#: guix/scripts/lint.scm:1079 +#: guix/scripts/lint.scm:1064 msgid "Check the Common Vulnerabilities and Exposures (CVE) database" msgstr "Verifica o banco de dados de Vulnerabilidades e Exposições Comuns (CVE)" -#: guix/scripts/lint.scm:1084 +#: guix/scripts/lint.scm:1069 msgid "Check the package for new upstream releases" msgstr "Verifica o pacote por novos lançamentos do upstream" -#: guix/scripts/lint.scm:1088 +#: guix/scripts/lint.scm:1073 msgid "Look for formatting issues in the source" msgstr "Procura por problemas de formatação no fonte" -#: guix/scripts/lint.scm:1116 +#: guix/scripts/lint.scm:1101 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" "Run a set of checkers on the specified package; if none is specified,\n" @@ -2206,7 +2304,7 @@ msgstr "" "Executa uma série de verificadores no pacote especificado; se nenhum\n" "for especificado, executa-os em todos pacote.\n" -#: guix/scripts/lint.scm:1119 +#: guix/scripts/lint.scm:1104 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" @@ -2216,7 +2314,7 @@ msgstr "" " -c, --checkers=CHECKER1,CHECKER2...\n" " executa apenas os verificadores especificados" -#: guix/scripts/lint.scm:1124 +#: guix/scripts/lint.scm:1109 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" @@ -2224,7 +2322,7 @@ msgstr "" "\n" " -l, --list-checkers exibe a lista de verificações lint disponíveis" -#: guix/scripts/lint.scm:1144 +#: guix/scripts/lint.scm:1129 #, scheme-format msgid "~a: invalid checker~%" msgstr "~a: verificador inválido~%" @@ -2572,7 +2670,7 @@ msgstr "" "\n" " --list-types lista os tipos de gráficos disponíveis" -#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:355 +#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:644 msgid "" "\n" " -e, --expression=EXPR consider the package EXPR evaluates to" @@ -2696,17 +2794,26 @@ msgstr "" msgid "use '--to' or '--from'~%" msgstr "use \"--to\" ou \"--from\"~%" -#: guix/scripts/pack.scm:85 +#: guix/scripts/pack.scm:89 #, scheme-format msgid "~a: compressor not found~%" msgstr "~a: compressor não encontrado~%" -#: guix/scripts/pack.scm:334 +#: guix/scripts/pack.scm:467 +#, scheme-format +msgid "" +"cross-compilation not implemented here;\n" +"please email '~a'~%" +msgstr "" +"compilação cruzada não implementada aqui;\n" +"por favor, envie um e-mail para '~a'~%" + +#: guix/scripts/pack.scm:621 #, scheme-format msgid "~a: invalid symlink specification~%" msgstr "~a: especificação de link simbólico inválida~%" -#: guix/scripts/pack.scm:347 +#: guix/scripts/pack.scm:634 msgid "" "Usage: guix pack [OPTION]... PACKAGE...\n" "Create a bundle of PACKAGE.\n" @@ -2714,7 +2821,7 @@ msgstr "" "Uso: guix pack [OPÇÃO]... PACOTE...\n" "Cria um pacote de PACOTE.\n" -#: guix/scripts/pack.scm:353 +#: guix/scripts/pack.scm:640 msgid "" "\n" " -f, --format=FORMAT build a pack in the given FORMAT" @@ -2722,7 +2829,15 @@ msgstr "" "\n" " -f, --format=FORMATO compila um pacote no FORMATO dado" -#: guix/scripts/pack.scm:361 +#: guix/scripts/pack.scm:642 +msgid "" +"\n" +" -R, --relocatable produce relocatable executables" +msgstr "" +"\n" +" -R, --relocatable produz executáveis relocados" + +#: guix/scripts/pack.scm:650 msgid "" "\n" " -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" @@ -2731,7 +2846,7 @@ msgstr "" " -C, --compression=FERRAMENTA\n" " comprime usando FERRAMENTA--ex. \"lzip\"" -#: guix/scripts/pack.scm:363 +#: guix/scripts/pack.scm:652 msgid "" "\n" " -S, --symlink=SPEC create symlinks to the profile according to SPEC" @@ -2739,7 +2854,7 @@ msgstr "" "\n" " -S, --symlink=ESPEC cria link simbólicos para o perfil conforme ESPEC" -#: guix/scripts/pack.scm:365 +#: guix/scripts/pack.scm:654 msgid "" "\n" " -m, --manifest=FILE create a pack with the manifest from FILE" @@ -2747,7 +2862,7 @@ msgstr "" "\n" " -m, --manifest=ARQUIVO cria um pacote com o manifesto do ARQUIVO" -#: guix/scripts/pack.scm:367 +#: guix/scripts/pack.scm:656 msgid "" "\n" " --localstatedir include /var/guix in the resulting pack" @@ -2755,7 +2870,7 @@ msgstr "" "\n" " --localstatedir inclui /var/guix no pacote resultante" -#: guix/scripts/pack.scm:369 +#: guix/scripts/pack.scm:658 msgid "" "\n" " --bootstrap use the bootstrap binaries to build the pack" @@ -2764,12 +2879,12 @@ msgstr "" " --bootstrap usa os executáveis de inicialização para compilar\n" " o pacote" -#: guix/scripts/pack.scm:405 +#: guix/scripts/pack.scm:700 #, scheme-format msgid "both a manifest and a package list were given~%" msgstr "foram especificados um manifesto e uma lista de pacote~%" -#: guix/scripts/pack.scm:429 +#: guix/scripts/pack.scm:743 #, scheme-format msgid "~a: unknown pack format" msgstr "~a: formato de pacote desconhecido" @@ -2985,65 +3100,65 @@ msgstr "~a: não foi possível localizar um arquivo fonte" msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: sem o campo \"version\" no fonte; ignorando~%" -#: guix/ui.scm:161 +#: guix/ui.scm:169 #, scheme-format -msgid "~a: unbound variable" -msgstr "~a: variável não vinculada" +msgid "error: ~a: unbound variable" +msgstr "erro: ~a: variável não vinculada" -#: guix/ui.scm:253 +#: guix/ui.scm:265 msgid "entering debugger; type ',bt' for a backtrace\n" msgstr "entrando no depurador; digite \",bt\" para o \"backtrace\"\n" -#: guix/ui.scm:302 +#: guix/ui.scm:314 #, scheme-format msgid "hint: ~a~%" msgstr "dica: ~a~%" -#: guix/ui.scm:314 guix/ui.scm:362 guix/ui.scm:369 +#: guix/ui.scm:330 +msgid "Did you forget a @code{use-modules} form?" +msgstr "Você se esqueceu de uma forma @code{use-modules}?" + +#: guix/ui.scm:332 +#, scheme-format +msgid "Did you forget @code{(use-modules ~a)}?" +msgstr "Você se esqueceu de @code{(use-modules ~a)}?" + +#: guix/ui.scm:341 guix/ui.scm:381 guix/ui.scm:388 #, scheme-format msgid "failed to load '~a': ~a~%" msgstr "falha ao carregar \"~a\": ~a~%" -#: guix/ui.scm:321 +#: guix/ui.scm:348 #, scheme-format msgid "~amissing closing parenthesis~%" msgstr "~afaltando parêntese de fechamento~%" -#: guix/ui.scm:326 guix/ui.scm:342 guix/ui.scm:642 +#: guix/ui.scm:353 guix/ui.scm:361 guix/ui.scm:692 #, scheme-format msgid "~a: error: ~a~%" msgstr "~a: erro: ~a~%" -#: guix/ui.scm:334 -msgid "Did you forget a @code{use-modules} form?" -msgstr "Você se esqueceu de uma forma @code{use-modules}?" - -#: guix/ui.scm:336 -#, scheme-format -msgid "Did you forget @code{(use-modules ~a)}?" -msgstr "Você se esqueceu de @code{(use-modules ~a)}?" - -#: guix/ui.scm:349 guix/ui.scm:712 +#: guix/ui.scm:368 guix/ui.scm:762 #, scheme-format msgid "exception thrown: ~s~%" msgstr "excepção lançada: ~s~%" -#: guix/ui.scm:353 guix/ui.scm:375 +#: guix/ui.scm:372 guix/ui.scm:394 #, scheme-format msgid "failed to load '~a':~%" msgstr "falha ao carregar \"~a\":~%" -#: guix/ui.scm:365 +#: guix/ui.scm:384 #, scheme-format msgid "~a: warning: ~a~%" msgstr "~a: aviso: ~a~%" -#: guix/ui.scm:372 +#: guix/ui.scm:391 #, scheme-format msgid "failed to load '~a': exception thrown: ~s~%" msgstr "falha ao carregar \"~a\": exceção lançada: ~s~%" -#: guix/ui.scm:384 +#: guix/ui.scm:424 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "falha ao instalar localidade: ~a~%" @@ -3051,15 +3166,15 @@ msgstr "falha ao instalar localidade: ~a~%" #. 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:414 +#: guix/ui.scm:454 msgid "(C)" msgstr "(C)" -#: guix/ui.scm:415 +#: guix/ui.scm:455 msgid "the Guix authors\n" msgstr "os autores do Guix\n" -#: guix/ui.scm:416 +#: guix/ui.scm:456 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" @@ -3073,7 +3188,7 @@ msgstr "" #. 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:428 +#: guix/ui.scm:468 #, scheme-format msgid "" "\n" @@ -3083,7 +3198,7 @@ msgstr "" "Relate erros para: ~a.\n" "Relate erros de tradução para: ldpbr-translation@lists.sourceforge.net." -#: guix/ui.scm:430 +#: guix/ui.scm:470 #, scheme-format msgid "" "\n" @@ -3092,7 +3207,7 @@ msgstr "" "\n" "Site do ~a: <~a>" -#: guix/ui.scm:432 +#: guix/ui.scm:472 msgid "" "\n" "General help using GNU software: <http://www.gnu.org/gethelp/>" @@ -3100,27 +3215,27 @@ msgstr "" "\n" "Ajuda em geral usando softwares GNU: <http://www.gnu.org/gethelp/>" -#: guix/ui.scm:477 +#: guix/ui.scm:517 #, scheme-format msgid "'~a' is not a valid regular expression: ~a~%" msgstr "\"~a\" não é uma expressão regular válida: ~a~%" -#: guix/ui.scm:483 +#: guix/ui.scm:523 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: número inválido~%" -#: guix/ui.scm:500 +#: guix/ui.scm:540 #, scheme-format msgid "invalid number: ~a~%" msgstr "número inválido: ~a~%" -#: guix/ui.scm:523 +#: guix/ui.scm:563 #, scheme-format msgid "unknown unit: ~a~%" msgstr "unidade desconhecida: ~a~%" -#: guix/ui.scm:538 +#: guix/ui.scm:578 #, scheme-format msgid "" "You cannot have two different versions\n" @@ -3129,7 +3244,7 @@ msgstr "" "Você não pode ter duas versões diferentes\n" "ou variantes de @code{~a} no mesmo perfil." -#: guix/ui.scm:541 +#: guix/ui.scm:581 #, scheme-format msgid "" "Try upgrading both @code{~a} and @code{~a},\n" @@ -3138,111 +3253,116 @@ msgstr "" "Tente atualizar ambos @code{~a} e @code{~a},\n" "ou remover um deles do perfil." -#: guix/ui.scm:560 +#: guix/ui.scm:600 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "~a:~a:~a: o pacote \"~a\" tem uma entrada inválida: ~s~%" -#: guix/ui.scm:567 +#: guix/ui.scm:607 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "~a: ~a: o sistema de compilação de \"~a\" não oferece suporte a compilações cruzadas~%" -#: guix/ui.scm:573 +#: guix/ui.scm:613 #, scheme-format msgid "~s: invalid G-expression input~%" msgstr "~s: entrada de expressão G inválida~%" -#: guix/ui.scm:576 +#: guix/ui.scm:616 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "o perfil \"~a\" não existe~%" -#: guix/ui.scm:579 +#: guix/ui.scm:619 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "a geração ~a do perfil \"~a\" não existe~%" -#: guix/ui.scm:588 +#: guix/ui.scm:628 #, scheme-format msgid " ... propagated from ~a@~a~%" msgstr " ... propagado de ~a@~a~%" -#: guix/ui.scm:598 +#: guix/ui.scm:638 #, scheme-format msgid "profile contains conflicting entries for ~a~a~%" msgstr "o perfil contém entradas conflitantes para ~a~a~%" -#: guix/ui.scm:601 +#: guix/ui.scm:641 #, scheme-format msgid " first entry: ~a@~a~a ~a~%" msgstr " primeira entrada: ~a@~a~a ~a~%" -#: guix/ui.scm:607 +#: guix/ui.scm:647 #, scheme-format msgid " second entry: ~a@~a~a ~a~%" msgstr " segunda entrada: ~a@~a~a ~a~%" -#: guix/ui.scm:619 +#: guix/ui.scm:659 #, scheme-format msgid "corrupt input while restoring '~a' from ~s~%" msgstr "entrada corrompida ao restaurar \"~a\" de ~s~%" -#: guix/ui.scm:621 +#: guix/ui.scm:661 #, scheme-format msgid "corrupt input while restoring archive from ~s~%" msgstr "entrada corrompida ao restaurar um pacote de ~s~%" -#: guix/ui.scm:624 +#: guix/ui.scm:664 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "falha ao conectar em \"~a\": ~a~%" -#: guix/ui.scm:629 +#: guix/ui.scm:669 #, scheme-format msgid "build failed: ~a~%" msgstr "compilação falhou: ~a~%" -#: guix/ui.scm:632 +#: guix/ui.scm:672 #, scheme-format msgid "reference to invalid output '~a' of derivation '~a'~%" msgstr "referência a uma saída inválida \"~a\" da derivação \"~a\"~%" -#: guix/ui.scm:636 +#: guix/ui.scm:676 #, scheme-format msgid "file '~a' could not be found in these directories:~{ ~a~}~%" msgstr "o arquivo \"~a\" não pôde ser localizado nesses diretórios:~{ ~a~}~%" -#: guix/ui.scm:662 +#: guix/ui.scm:681 +#, scheme-format +msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%" +msgstr "programa saiu~@[ com status de saída não zero ~a~]~@[ terminado por sinal ~a~]~@[ parado por sinal ~a~]: ~s~%" + +#: guix/ui.scm:712 #, scheme-format msgid "~a: ~a~%" msgstr "~a: ~a~%" -#: guix/ui.scm:697 +#: guix/ui.scm:747 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "falha ao ler a expressão ~s: ~s~%" -#: guix/ui.scm:703 +#: guix/ui.scm:753 #, scheme-format msgid "failed to evaluate expression '~a':~%" msgstr "falha ao avaliar a expressão \"~a\":~%" -#: guix/ui.scm:706 +#: guix/ui.scm:756 #, scheme-format msgid "syntax error: ~a~%" msgstr "erro de sintaxe: ~a~%" -#: guix/ui.scm:724 +#: guix/ui.scm:774 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "a expressão ~s não corresponde a um pacote~%" -#: guix/ui.scm:743 +#: guix/ui.scm:793 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%" msgstr "pelo menos ~,1h MB necessário, mas apenas ~,1h MB disponível em ~a~%" -#: guix/ui.scm:811 +#: guix/ui.scm:861 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" @@ -3251,18 +3371,18 @@ msgstr[1] "~:[As seguintes derivações seriam compiladas:~%~{ ~a~%~}~;~]" #. TRANSLATORS: "MB" is for "megabyte"; it should be #. translated to the corresponding abbreviation. -#: guix/ui.scm:819 +#: guix/ui.scm:869 msgid "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[~,1h MB seria baixado:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:824 +#: guix/ui.scm:874 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[O seguinte arquivo seria baixado:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Os seguintes arquivos seriam baixados:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:831 +#: guix/ui.scm:881 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" @@ -3271,107 +3391,117 @@ msgstr[1] "~:[As seguintes derivações serão compiladas:~%~{ ~a~%~}~;~]" #. TRANSLATORS: "MB" is for "megabyte"; it should be #. translated to the corresponding abbreviation. -#: guix/ui.scm:839 +#: guix/ui.scm:889 msgid "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[~,1h MB será baixado:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:844 +#: guix/ui.scm:894 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[O seguinte arquivo será baixado:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Os seguintes arquivos serão baixados:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:904 +#: guix/ui.scm:954 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote seria removido:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes seriam removidos:~%~{~a~%~}~%" -#: guix/ui.scm:909 +#: guix/ui.scm:959 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote será removido:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes serão removidos:~%~{~a~%~}~%" -#: guix/ui.scm:922 +#: guix/ui.scm:972 #, scheme-format msgid "The following package would be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote sofreria um downgrade:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes sofreriam um downgrade:~%~{~a~%~}~%" -#: guix/ui.scm:927 +#: guix/ui.scm:977 #, scheme-format msgid "The following package will be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote sofrerá um downgrade:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes sofrerão um downgrade:~%~{~a~%~}~%" -#: guix/ui.scm:940 +#: guix/ui.scm:990 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote seria atualizado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes seriam atualizados:~%~{~a~%~}~%" -#: guix/ui.scm:945 +#: guix/ui.scm:995 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote será atualizado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes serão atualizados:~%~{~a~%~}~%" -#: guix/ui.scm:956 +#: guix/ui.scm:1006 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote seria instalado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes seriam instalados:~%~{~a~%~}~%" -#: guix/ui.scm:961 +#: guix/ui.scm:1011 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote será instalado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes serão instalados:~%~{~a~%~}~%" -#: guix/ui.scm:978 +#: guix/ui.scm:1028 msgid "<unknown location>" msgstr "<local desconhecido>" -#: guix/ui.scm:1340 +#: guix/ui.scm:1390 #, scheme-format msgid "Generation ~a\t~a" msgstr "Geração ~a\t~a" +#. 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:1399 +#, scheme-format +msgid "~b ~d ~Y ~T" +msgstr "~d ~b ~Y ~T" + #. TRANSLATORS: The word "current" here is an adjective for #. "Generation", as in "current generation". Use the appropriate #. gender where applicable. -#: guix/ui.scm:1350 +#: guix/ui.scm:1405 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(atual)~%" # geração, criação? -#: guix/ui.scm:1393 +#: guix/ui.scm:1448 #, scheme-format msgid "switched from generation ~a to ~a~%" msgstr "trocado da geração ~a para ~a~%" -#: guix/ui.scm:1409 +#: guix/ui.scm:1464 #, scheme-format msgid "deleting ~a~%" msgstr "excluindo ~a~%" -#: guix/ui.scm:1440 +#: guix/ui.scm:1495 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Tente \"guix --help\" para mais informações.~%" -#: guix/ui.scm:1468 +#: guix/ui.scm:1523 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -3379,21 +3509,21 @@ msgstr "" "Uso: guix COMANDO ARGUMENTOS...\n" "Executa COMANDO com ARGUMENTOS.\n" -#: guix/ui.scm:1471 +#: guix/ui.scm:1526 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "COMANDO deve ser um dos subcomandos listados abaixo:\n" -#: guix/ui.scm:1491 +#: guix/ui.scm:1546 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: comando não encontrado~%" -#: guix/ui.scm:1521 +#: guix/ui.scm:1576 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: faltando um nome de comando~%" -#: guix/ui.scm:1529 +#: guix/ui.scm:1584 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: opção \"~a\" desconhecida~%" @@ -3408,45 +3538,45 @@ msgstr "seguindo redirecionamento para \"~a\"...~%" msgid "~a: HTTP download failed: ~a (~s)" msgstr "~a: download HTTP falhou: ~a (~s)" -#: guix/nar.scm:155 +#: guix/nar.scm:156 msgid "signature is not a valid s-expression" msgstr "a assinatura não é uma expressão-s válida" -#: guix/nar.scm:164 +#: guix/nar.scm:165 msgid "invalid signature" msgstr "assinatura inválida" -#: guix/nar.scm:168 +#: guix/nar.scm:169 msgid "invalid hash" msgstr "hash inválido" -#: guix/nar.scm:176 +#: guix/nar.scm:177 msgid "unauthorized public key" msgstr "chave pública não autorizada" -#: guix/nar.scm:181 +#: guix/nar.scm:182 msgid "corrupt signature data" msgstr "dados de assinatura corrompidos" -#: guix/nar.scm:201 +#: guix/nar.scm:202 msgid "corrupt file set archive" msgstr "pacote de conjunto de arquivos corrompido" -#: guix/nar.scm:211 +#: guix/nar.scm:212 #, scheme-format msgid "importing file or directory '~a'...~%" msgstr "importando arquivo ou diretório \"~a\"...~%" -#: guix/nar.scm:222 +#: guix/nar.scm:223 #, scheme-format msgid "found valid signature for '~a'~%" msgstr "localizada assinatura válida para \"~a\"~%" -#: guix/nar.scm:229 +#: guix/nar.scm:230 msgid "imported file lacks a signature" msgstr "arquivo importado carece de uma assinatura" -#: guix/nar.scm:268 +#: guix/nar.scm:269 msgid "invalid inter-file archive mark" msgstr "marca inválida de pacote interarquivo" @@ -3574,6 +3704,15 @@ msgstr "ouve conexões no SOQUETE" msgid "produce debugging output" msgstr "produz saída de depuração" +#~ msgid "Guix already up to date\n" +#~ msgstr "Guix já está atualizado\n" + +#~ msgid "updated ~a successfully deployed under `~a'~%" +#~ msgstr "~a atualizado foi implantado com sucesso sob \"~a\"~%" + +#~ msgid "failed to update Guix, check the build log~%" +#~ msgstr "falha ao atualizar Guix; verifique o log de compilação~%" + #~ msgid "Try adding @code{(use-modules ~a)}." #~ msgstr "Tente adicionar @code{(use-modules ~a)}." |