diff options
Diffstat (limited to 'gnu')
52 files changed, 872 insertions, 339 deletions
diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm index c43ce85b60..b90149565f 100644 --- a/gnu/build/accounts.scm +++ b/gnu/build/accounts.scm @@ -19,6 +19,7 @@ (define-module (gnu build accounts) #:use-module (guix records) #:use-module (guix combinators) + #:use-module ((guix build syscalls) #:select (fdatasync)) #:use-module (gnu system accounts) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) @@ -51,6 +52,7 @@ group-entry-gid group-entry-members + %password-lock-file write-group write-passwd write-shadow @@ -224,6 +226,19 @@ each field." (serialization list->comma-separated comma-separated->list) (default '()))) +(define %password-lock-file + ;; The password database lock file used by libc's 'lckpwdf'. Users should + ;; grab this lock with 'with-file-lock' when they access the databases. + "/etc/.pwd.lock") + +(define-syntax-rule (catch-ENOSYS exp) + (catch 'system-error + (lambda () exp) + (lambda args + (if (= ENOSYS (system-error-errno args)) + #f + (apply throw args))))) + (define (database-writer file mode entry->string) (lambda* (entries #:optional (file-or-port file)) "Write ENTRIES to FILE-OR-PORT. When FILE-OR-PORT is a file name, write @@ -243,9 +258,16 @@ to it atomically and set the appropriate permissions." (lambda () (chmod port mode) (write-entries port) + + ;; XXX: When booting with the statically-linked Guile, + ;; 'fdatasync' is unavailable. + (catch-ENOSYS (fdatasync port)) + + (close-port port) (rename-file template file-or-port)) (lambda () - (close-port port) + (unless (port-closed? port) + (close-port port)) (when (file-exists? template) (delete-file template)))))))) diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index cfdf17df0f..c6c7e7fd3b 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -22,6 +22,7 @@ #:use-module (gnu build accounts) #:use-module (gnu build linux-boot) #:use-module (guix build utils) + #:use-module ((guix build syscalls) #:select (with-file-lock)) #:use-module (ice-9 ftw) #:use-module (ice-9 match) #:use-module (ice-9 vlist) @@ -129,22 +130,26 @@ group records) are all available." ;; Allow home directories to be created under /var/lib. (mkdir-p "/var/lib") - (let-values (((groups passwd shadow) - (user+group-databases users groups))) - (write-group groups) - (write-passwd passwd) - (write-shadow shadow) - - ;; Home directories of non-system accounts are created by - ;; 'activate-user-home'. - (for-each make-home-directory system-accounts) - - ;; Turn shared home directories, such as /var/empty, into root-owned, - ;; read-only places. - (for-each (lambda (directory) - (chown directory 0 0) - (chmod directory #o555)) - (duplicates (map user-account-home-directory system-accounts))))) + ;; Take same lock as libc's 'lckpwdf' (but without a timeout) while we read + ;; and write the databases. This ensures there's no race condition with + ;; other tools that might be accessing it at the same time. + (with-file-lock %password-lock-file + (let-values (((groups passwd shadow) + (user+group-databases users groups))) + (write-group groups) + (write-passwd passwd) + (write-shadow shadow))) + + ;; Home directories of non-system accounts are created by + ;; 'activate-user-home'. + (for-each make-home-directory system-accounts) + + ;; Turn shared home directories, such as /var/empty, into root-owned, + ;; read-only places. + (for-each (lambda (directory) + (chown directory 0 0) + (chmod directory #o555)) + (duplicates (map user-account-home-directory system-accounts)))) (define (activate-user-home users) "Create and populate the home directory of USERS, a list of tuples, unless diff --git a/gnu/build/locale.scm b/gnu/build/locale.scm new file mode 100644 index 0000000000..412759a320 --- /dev/null +++ b/gnu/build/locale.scm @@ -0,0 +1,95 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu build locale) + #:use-module (guix build utils) + #:use-module (srfi srfi-1) + #:use-module (ice-9 rdelim) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:export (build-locale + normalize-codeset + locale->name+codeset + read-supported-locales)) + +(define locale-rx + ;; Regexp matching a locale line in 'localedata/SUPPORTED'. + (make-regexp + "^[[:space:]]*([[:graph:]]+)/([[:graph:]]+)[[:space:]]*\\\\$")) + +(define (read-supported-locales port) + "Read the 'localedata/SUPPORTED' file from PORT. That file is actually a +makefile snippet, with one locale per line, and a header that can be +discarded." + (let loop ((locales '())) + (define line + (read-line port)) + + (cond ((eof-object? line) + (reverse locales)) + ((string-prefix? "#" (string-trim line)) ;comment + (loop locales)) + ((string-contains line "=") ;makefile variable assignment + (loop locales)) + (else + (match (regexp-exec locale-rx line) + (#f + (loop locales)) + (m + (loop (alist-cons (match:substring m 1) + (match:substring m 2) + locales)))))))) + +(define (normalize-codeset codeset) + "Compute the \"normalized\" variant of CODESET." + ;; info "(libc) Using gettextized software", for the algorithm used to + ;; compute the normalized codeset. + (letrec-syntax ((-> (syntax-rules () + ((_ proc value) + (proc value)) + ((_ proc rest ...) + (proc (-> rest ...)))))) + (-> (lambda (str) + (if (string-every char-set:digit str) + (string-append "iso" str) + str)) + string-downcase + (lambda (str) + (string-filter char-set:letter+digit str)) + codeset))) + +(define* (build-locale locale + #:key + (localedef "localedef") + (directory ".") + (codeset "UTF-8") + (name (string-append locale "." codeset))) + "Compute locale data for LOCALE and CODESET--e.g., \"en_US\" and +\"UTF-8\"--with LOCALEDEF, and store it in DIRECTORY under NAME." + (format #t "building locale '~a'...~%" name) + (invoke localedef "--no-archive" "--prefix" directory + "-i" locale "-f" codeset + (string-append directory "/" name))) + +(define (locale->name+codeset locale) + "Split a locale name such as \"aa_ER@saaho.UTF-8\" into two values: the +language/territory/modifier part, and the codeset." + (match (string-rindex locale #\.) + (#f (values locale #f)) + (dot (values (string-take locale dot) + (string-drop locale (+ dot 1)))))) diff --git a/gnu/installer/locale.scm b/gnu/installer/locale.scm index 2ee5eecd96..13f3a1e881 100644 --- a/gnu/installer/locale.scm +++ b/gnu/installer/locale.scm @@ -19,6 +19,7 @@ (define-module (gnu installer locale) #:use-module (gnu installer utils) + #:use-module ((gnu build locale) #:select (normalize-codeset)) #:use-module (guix records) #:use-module (json) #:use-module (srfi srfi-1) @@ -71,24 +72,6 @@ optionally, CODESET." (codeset . ,(or codeset (match:substring matches 5))) (modifier . ,(match:substring matches 7))))) -(define (normalize-codeset codeset) - "Compute the \"normalized\" variant of CODESET." - ;; info "(libc) Using gettextized software", for the algorithm used to - ;; compute the normalized codeset. - (letrec-syntax ((-> (syntax-rules () - ((_ proc value) - (proc value)) - ((_ proc rest ...) - (proc (-> rest ...)))))) - (-> (lambda (str) - (if (string-every char-set:digit str) - (string-append "iso" str) - str)) - string-downcase - (lambda (str) - (string-filter char-set:letter+digit str)) - codeset))) - (define (locale->locale-string locale) "Reverse operation of locale-string->locale." (let ((language (locale-language locale)) diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm index 0a938db103..40d85817b6 100644 --- a/gnu/installer/newt/network.scm +++ b/gnu/installer/newt/network.scm @@ -62,7 +62,7 @@ Internet and return the selected technology. For now, only technologies with (G_ "Continue") (G_ "Exit") (G_ "The install process requires Internet access but no \ -network device were found. Do you want to continue anyway?")) +network devices were found. Do you want to continue anyway?")) ((1) (raise (condition (&installer-step-break)))) diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm index d1dc516568..dbac79196d 100644 --- a/gnu/installer/services.scm +++ b/gnu/installer/services.scm @@ -75,10 +75,13 @@ (packages '((specification->package "awesome")))) (desktop-environment (name "i3") - (packages '((specification->package "i3-wm")))) + (packages (map (lambda (package) + `(specification->package ,package)) + '("i3-wm" "i3status" "dmenu" "st")))) (desktop-environment (name "ratpoison") - (packages '((specification->package "ratpoison")))) + (packages '((specification->package "ratpoison") + (specification->package "xterm")))) ;; Networking. (system-service diff --git a/gnu/local.mk b/gnu/local.mk index 0fb6a22953..474f5163f9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -501,6 +501,7 @@ GNU_SYSTEM_MODULES = \ %D%/services.scm \ %D%/services/admin.scm \ %D%/services/audio.scm \ + %D%/services/auditd.scm \ %D%/services/avahi.scm \ %D%/services/base.scm \ %D%/services/certbot.scm \ @@ -586,6 +587,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/networking.scm \ %D%/tests/rsync.scm \ %D%/tests/security-token.scm \ + %D%/tests/singularity.scm \ %D%/tests/ssh.scm \ %D%/tests/version-control.scm \ %D%/tests/virtualization.scm \ @@ -637,6 +639,7 @@ dist_installer_DATA = \ # Modules that do not need to be compiled. MODULES_NOT_COMPILED += \ + %D%/build/locale.scm \ %D%/build/shepherd.scm \ %D%/build/svg.scm @@ -659,7 +662,6 @@ dist_patch_DATA = \ %D%/packages/patches/aegisub-icu59-include-unistr.patch \ %D%/packages/patches/aegisub-boost68.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ - %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \ %D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 75380be594..d85bd6e324 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -115,14 +115,14 @@ (define-public aide (package (name "aide") - (version "0.16.1") + (version "0.16.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/aide/aide/releases/download/v" version "/aide-" version ".tar.gz")) (sha256 - (base32 "1dqhc0c24wa4zid06pfy61k357yvzh28ij86bk9jf6hcqzn7qaqg")))) + (base32 "15xp47sz7kk1ciffw3f5xw2jg2mb2lqrbr3q6p4bkbz5dap9iy8p")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) @@ -1734,13 +1734,13 @@ of supported upstream metrics systems simultaneously.") (define-public ansible (package (name "ansible") - (version "2.7.10") + (version "2.8.0") (source (origin (method url-fetch) (uri (pypi-uri "ansible" version)) (sha256 - (base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944")))) + (base32 "1bpk5r5x6vdgn839n74yv2chd2ja10yfrhav0fzwa38mi5yxsd3j")))) (build-system python-build-system) (native-inputs `(("python-bcrypt" ,python-bcrypt) @@ -2124,16 +2124,16 @@ results (ndiff), and a packet generation and response analysis tool (nping).") (define-public dstat (package (name "dstat") - (version "0.7.3") + (version "0.7.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/dagwieers/dstat.git") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name "dstat" version)) (sha256 - (base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5")))) + (base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no make check @@ -2160,7 +2160,7 @@ throughput (in the same interval).") (define-public thefuck (package (name "thefuck") - (version "3.28") + (version "3.29") (source (origin (method git-fetch) @@ -2169,7 +2169,7 @@ throughput (in the same interval).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc")) + (base32 "1qhxwjjgrzpqrqjv7l2847ywpln76lyd6j8bl9gz2r6kl0fx2fqs")) (patches (search-patches "thefuck-test-environ.patch")))) (build-system python-build-system) (arguments @@ -2849,7 +2849,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.0.33-1") + (version "3.0.34-1") (source (origin (method git-fetch) @@ -2858,7 +2858,7 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c")))) + (base32 "0x2s40lwsan2pk292nspjgyw00f9f5fdfmwfvl50924pxhyxn2fh")))) (build-system trivial-build-system) (inputs `(("bash" ,bash-minimal) diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index b46382c035..08bf4eb1de 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -264,7 +264,7 @@ waveform until they line up with the proper sounds.") (define-public pencil2d (package (name "pencil2d") - (version "0.6.3") + (version "0.6.4") (source (origin (method git-fetch) (uri (git-reference @@ -273,7 +273,7 @@ waveform until they line up with the proper sounds.") (file-name (git-file-name name version)) (sha256 (base32 - "097xwvhw7vl9pgknhb40zs6adf7mb1xxfc73h4kiqgp6z59prjl3")))) + "0zi8x0w8n817zds2lyw9l8j33c03kiybkrcyy3s5fg66mchmrwnr")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 1bbe57a4ef..cbc9baeeb3 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -32,7 +32,8 @@ #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages compression) - #:use-module (gnu packages perl)) + #:use-module (gnu packages perl) + #:use-module (ice-9 match)) (define-public aspell (package @@ -102,7 +103,14 @@ dictionaries, including personal ones.") (define* (aspell-dictionary dict-name full-name #:key version sha256 (prefix "aspell6-")) (package - (name (string-append "aspell-dict-" dict-name)) + (name (string-append + "aspell-dict-" + ;; Downcase and replace underscore in package names + ;; to follow Guix naming conventions. + (string-map (match-lambda + (#\_ #\-) + (chr chr)) + (string-downcase dict-name)))) (version version) (source (origin (method url-fetch) @@ -281,7 +289,7 @@ dictionaries, including personal ones.") "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc"))) (define-public aspell-dict-pt-br - (aspell-dictionary "pt-br" "Brazilian Portuguese" + (aspell-dictionary "pt_BR" "Brazilian Portuguese" #:version "20090702-0" #:prefix "aspell6-" #:sha256 @@ -289,7 +297,7 @@ dictionaries, including personal ones.") "1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p"))) (define-public aspell-dict-pt-pt - (aspell-dictionary "pt-pt" "Portuguese" + (aspell-dictionary "pt_PT" "Portuguese" #:version "20070510-0" #:prefix "aspell6-" #:sha256 diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 4a8548c25b..f3f592c58a 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2120,14 +2120,14 @@ different audio devices such as ALSA or PulseAudio.") (define-public qjackctl (package (name "qjackctl") - (version "0.5.7") + (version "0.5.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95")))) + "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no check target diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a941a8f8eb..15f35009a9 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org> @@ -1050,12 +1050,47 @@ to the @code{share/locale} sub-directory of this package.") (let ((args `(#:tests? #f #:strip-binaries? #f ,@(package-arguments glibc)))) (substitute-keyword-arguments args + ((#:modules modules '((guix build utils) + (guix build gnu-build-system))) + `((srfi srfi-11) + (gnu build locale) + ,@modules)) + ((#:imported-modules modules '()) + `((gnu build locale) + ,@%gnu-build-system-modules)) ((#:phases phases) `(modify-phases ,phases (replace 'build (lambda _ (invoke "make" "localedata/install-locales" "-j" (number->string (parallel-job-count))))) + (add-after 'build 'symlink-normalized-codesets + (lambda* (#:key outputs #:allow-other-keys) + ;; The above phase does not install locales with names using + ;; the "normalized codeset." Thus, create symlinks like: + ;; en_US.utf8 -> en_US.UTF-8 + (define (locale-directory? file stat) + (and (file-is-directory? file) + (string-index (basename file) #\_) + (string-rindex (basename file) #\.))) + + (let* ((out (assoc-ref outputs "out")) + (locales (find-files out locale-directory? + #:directories? #t))) + (for-each (lambda (directory) + (let*-values (((base) + (basename directory)) + ((name codeset) + (locale->name+codeset base)) + ((normalized) + (normalize-codeset codeset))) + (unless (string=? codeset normalized) + (symlink base + (string-append (dirname directory) + "/" name "." + normalized))))) + locales) + #t))) (delete 'install) (delete 'move-static-libs))) ((#:configure-flags flags) diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 805cf3256c..970df735aa 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Dave Love <fx@gnu.org> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> ;;; @@ -38,14 +38,14 @@ (define-public fio (package (name "fio") - (version "3.13") + (version "3.14") (source (origin (method url-fetch) (uri (string-append "http://brick.kernel.dk/snaps/" "fio-" version ".tar.bz2")) (sha256 (base32 - "0ddj7zm04jqlna3w61qyp4qvwnv0r2lc1hzpwrgbvv4fq581w7d2")))) + "047y53nyhnmnxcrsfbsf0gcpxw7bli3n19ycscpxy9974j0fck0v")))) (build-system gnu-build-system) (arguments '(#:test-target "test" diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 697322639d..f4644d33bd 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr> -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> @@ -242,7 +242,7 @@ other lower-level build files.") (define-public osc (package (name "osc") - (version "0.165.0") + (version "0.165.1") (source (origin (method git-fetch) @@ -251,8 +251,7 @@ other lower-level build files.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "0l6iw8a040l60ixxdms9rxajm38vqfdwgij2bm7ahgv1akza64jk")))) + (base32 "16p4z34ziy4z2w7mfpclk13x1w2p69wivkdwp0224x18r2fwj67v")))) (build-system python-build-system) (arguments `(#:phases @@ -269,7 +268,7 @@ other lower-level build files.") (inputs `(("python-m2crypto" ,python-m2crypto) ("python-pycurl" ,python-pycurl) - ("rpm" ,rpm))) ; for python-rpm + ("rpm" ,rpm))) ; for python-rpm (home-page "https://github.com/openSUSE/osc") (synopsis "Open Build Service command line tool") (description "@command{osc} is a command line interface to the Open Build diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 20a2e5aabf..cc6257ba35 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -108,7 +108,7 @@ any small or embedded system.") (define-public toybox (package (name "toybox") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri (string-append @@ -116,7 +116,7 @@ any small or embedded system.") version ".tar.gz")) (sha256 (base32 - "0mirj977zxsxnfaiqndwgsn9calgg312d817fi1hkfbd8kcyrk73")))) + "1czxzvyggm157z8wgxbk8k0n675p1gig9xvrcijsplh9p1i1xi0s")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index ec80dc92ec..024025fe52 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> @@ -128,7 +128,16 @@ in compression.") `(#:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source - (lambda _ (chdir "contrib/minizip") #t))))) + (lambda _ (chdir "contrib/minizip") #t)) + (add-after 'install 'remove-crypt-h + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove <minizip/crypt.h> because it interferes with libc's + ;; <crypt.h> given that 'minizip.pc' says "-I…/include/minizip". + ;; Fedora does the same: + ;; <https://src.fedoraproject.org/rpms/zlib/c/4d2785ec3116947872f6f32dc4104e6d36d8a7a4?branch=master>. + (let ((out (assoc-ref outputs "out"))) + (delete-file (string-append out "/include/minizip/crypt.h")) + #t)))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 2b24b75808..fd69c44c22 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl> ;;; ;;; This file is part of GNU Guix. @@ -43,7 +43,7 @@ (define-public coq (package (name "coq") - (version "8.9.0") + (version "8.9.1") (source (origin (method git-fetch) @@ -52,7 +52,7 @@ (commit (string-append "V" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01ad7az6f95w16xya7979lk32agy22lf4bqgqf5qpnarpkpxhbw8")))) + (base32 "1p4z967s18wkblayv12ygqsrqlyk5ax1pz40yf4kag8pva6gblhk")))) (native-search-paths (list (search-path-specification (variable "COQPATH") diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 9c060c70da..9e95bacd65 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -108,17 +108,19 @@ operating system functions.") (package (name "dashel") (version "1.3.3") - (home-page "https://github.com/aseba-community/dashel") - (source (origin - (method url-fetch) - (uri (string-append home-page "/archive/" version ".tar.gz")) - (sha256 - (base32 - "1ckzac1rsw3cxmpdpwcqv46jyp7risk5ybq6jjiizbqn7labf6dw")) - (file-name (string-append name "-" version ".tar.gz")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aseba-community/dashel.git") + (commit version))) + (sha256 + (base32 "0anks2l2i2qp0wlzqck1qgpq15a3l6dg8lw2h8s4nsj7f61lffwy")) + (file-name (git-file-name name version)))) (build-system cmake-build-system) - (arguments '(#:tests? #f)) ;no tests + (arguments '(#:tests? #f)) ; no tests (native-inputs `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/aseba-community/dashel") (synopsis "Data stream helper encapsulation library") (description "Dashel is a data stream helper encapsulation C++ library. It provides a @@ -130,22 +132,23 @@ combination of these streams.") (define-public xsimd (package (name "xsimd") - (version "4.1.2") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/QuantStack/xsimd/archive/" - version ".tar.gz")) - (sha256 - (base32 - "0x05l4xpqr9b66sm6lkf48n6x7999ks921x6k2hzkkg6mh3gqd46")) - (file-name (string-append name "-" version ".tar.gz")))) - (home-page "https://github.com/QuantStack/xsimd") + (version "7.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/QuantStack/xsimd.git") + (commit version))) + (sha256 + (base32 "1ny2qin1j4h35mljivh8z52kwdyjxf4yxlzb8j52ji91v2ccc88j")) + (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments - `(#:test-target "xtest")) + `(#:configure-flags (list "-DBUILD_TESTS=ON") + #:test-target "xtest")) (native-inputs `(("googletest" ,googletest))) + (home-page "https://github.com/QuantStack/xsimd") (synopsis "C++ wrappers for SIMD intrinsics and math implementations") (description "xsimd provides a unified means for using SIMD features for library authors. Namely, it enables manipulation of batches of numbers with diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index 4fd1ac2e2f..dabb1f421e 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -124,14 +124,14 @@ in between these sequences may be different in both content and length.") (define-public liburcu (package (name "liburcu") - (version "0.11.0") + (version "0.11.1") (source (origin (method url-fetch) (uri (string-append "https://www.lttng.org/files/urcu/" "userspace-rcu-" version ".tar.bz2")) (sha256 (base32 - "1rxk5vbkbmqlsnjnvkjz0pkx2076mqnq6jzblpmz8rk29x66kx8s")))) + "0l1kxgzch4m8fxiz2hc8fwg56hrvzzspp7n0svnl7i7iycdrgfcj")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ; for tests diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e5b11e5422..7db46e81c5 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11931,7 +11931,7 @@ Emacs minor mode to escape sequences in code.") (define-public emacs-dashboard (package (name "emacs-dashboard") - (version "1.2.4") + (version "1.5.0") (source (origin (method git-fetch) @@ -11940,11 +11940,22 @@ Emacs minor mode to escape sequences in code.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr")))) + (base32 "0ihpcagwgc9qy70lf2y3dvx2bm5h9lnqh4sx6643cr8pp06ysbvq")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-page-break-lines" ,emacs-page-break-lines))) - (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$"))) + (arguments + '(#:include '("\\.el$" "\\.txt$" "\\.png$") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-dashboard-widgets + ;; This phase fixes compilation error. + (lambda _ + (chmod "dashboard-widgets.el" #o666) + (emacs-substitute-variables "dashboard-widgets.el" + ("dashboard-init-info" + '(format "Loaded in %s" (emacs-init-time)))) + #t))))) (home-page "https://github.com/rakanalh/emacs-dashboard") (synopsis "Startup screen extracted from Spacemacs") (description "This package provides an extensible Emacs dashboard, with @@ -15796,3 +15807,26 @@ verb commands which would are normally destructive (such as deletion) are provided. Those alternative commands are and bound by default to their corresponding Evil keys.") (license license:expat)))) + +(define-public emacs-xterm-color + (let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6") + (version "1.8") + (revision "1")) + (package + (name "emacs-xterm-color") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atomontage/xterm-color.git") + (commit commit))) + (sha256 + (base32 + "02kpajb993yshhjhsizpfcbrcndyzkf4dqfipifhxxng50dhp95i")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (home-page "https://github.com/atomontage/xterm-color") + (synopsis "ANSI & xterm-256 color text property translator for Emacs") + (description "@code{xterm-color.el} is an ANSI control sequence to +text-property translator.") + (license license:bsd-2)))) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 98e7b44cc7..83a9a8bab6 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1191,7 +1191,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.209") + (version "0.210") (source (origin (method git-fetch) @@ -1201,7 +1201,7 @@ play them on systems for which they were never designed!") (file-name (git-file-name name version)) (sha256 (base32 - "08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh")) + "08c62mc8aajzh44q36qvmrcq404hdzh3i8wwdfnvn0c4w8dbf486")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. @@ -1350,6 +1350,7 @@ play them on systems for which they were never designed!") ("fontconfig" ,fontconfig) ("glm" ,glm) ("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 + ("libxi" ,libxi) ("libxinerama" ,libxinerama) ("lua" ,lua) ("portaudio" ,portaudio) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 11fcf0b7b0..8bec452265 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 ng0 <ng0@n0.is> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de> ;;; ;;; This file is part of GNU Guix. @@ -184,7 +184,7 @@ removable devices or support for multimedia.") (define-public terminology (package (name "terminology") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri @@ -192,7 +192,7 @@ removable devices or support for multimedia.") "terminology/terminology-" version ".tar.xz")) (sha256 (base32 - "0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd")) + "0mm9v5a94369is3kaarnr3a28wy42wslzi1mcisaidlcldgv7f6p")) (modules '((guix build utils))) ;; Remove the bundled fonts. (snippet diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index e1a1e8ab6f..5b95bcb704 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -345,7 +345,7 @@ do so.") (define-public electrum (package (name "electrum") - (version "3.3.5") + (version "3.3.6") (source (origin (method url-fetch) @@ -353,7 +353,7 @@ do so.") version "/Electrum-" version ".tar.gz")) (sha256 - (base32 "1csj0n96zlajnrs39wsazfj5lmy7v7n77cdz56lr8nkmchh6k9z1")) + (base32 "0am5ki3z0yvhrz16vp2jjy5fkxxqph0mj9qqpbw3kpql65shykwz")) (modules '((guix build utils))) (snippet '(begin @@ -742,14 +742,14 @@ Ledger Blue/Nano S.") (define-public python-trezor (package (name "python-trezor") - (version "0.11.2") + (version "0.11.3") (source (origin (method url-fetch) (uri (pypi-uri "trezor" version)) (sha256 (base32 - "1f0zfki12mnhidkfxpx2lpq1xim8f35i2d64bx9lf4m26xxv9x56")))) + "0211m027vlvyqy83kwbjjjxalb04xgf1klv0h0y0f0yhj07516n7")))) (build-system python-build-system) (arguments `(#:phases @@ -770,12 +770,13 @@ Ledger Blue/Nano S.") ("python-requests" ,python-requests) ("python-typing-extensions" ,python-typing-extensions))) (native-inputs - `(("protobuf" ,protobuf) ; Tests - ("python-black" ,python-black) ; Tests - ("python-protobuf" ,python-protobuf) ; Tests - ("python-isort" ,python-isort) ; Tests - ("python-pyqt" ,python-pyqt) ; Tests - ("python-pytest" ,python-pytest))) ; Tests + ;; For tests. + `(("protobuf" ,protobuf) + ("python-black" ,python-black) + ("python-protobuf" ,python-protobuf) + ("python-isort" ,python-isort) + ("python-pyqt" ,python-pyqt) + ("python-pytest" ,python-pytest))) (home-page "https://github.com/trezor/python-trezor") (synopsis "Python library for communicating with TREZOR Hardware Wallet") (description "@code{trezor} is a Python library for communicating with diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 3a801e5c94..0ac0b7b207 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -616,15 +616,17 @@ languages, plus Greek and Cyrillic.") (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "12.0.01") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://gnu/unifont/unifont-" version "/unifont-" - version ".tar.gz")) - (sha256 - (base32 - "059j82z6z4wqyy3261ns0zg2b2vh2wvxxfbsa9hra9xasism49vb")))) + (version "12.1.02") + (source + (origin + (method url-fetch) + (uri (list + (string-append "http://unifoundry.com/pub/unifont/unifont-" + version "/unifont-" version ".tar.gz") + (string-append "mirror://gnu/unifont/unifont-" + version "/unifont-" version ".tar.gz"))) + (sha256 + (base32 "12wdxnlyz5gl5d7h6pazcz8d7h81fwkng1xrayxsgrzh6bqdq4p8")))) (build-system gnu-build-system) (outputs '("out" ; TrueType version "pcf" ; PCF (bitmap) version diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 83854ef9c6..7b661d39ac 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -301,14 +301,14 @@ Includes the actual FTDI connector.") (define-public gtkwave (package (name "gtkwave") - (version "3.3.100") + (version "3.3.101") (source (origin (method url-fetch) (uri (string-append "http://gtkwave.sourceforge.net/" "gtkwave-" version ".tar.gz")) (sha256 (base32 - "1z60i5nh8dz8j9ii63fwaw7k0p3x0scp91478cxmdv4xhp4njlxa")))) + "1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz")))) (build-system gnu-build-system) (native-inputs `(("gperf" ,gperf) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index e6b713465c..63ccd20470 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -435,7 +435,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.2.3") + (version "1.2.4") (source (origin (method git-fetch) (uri (git-reference @@ -444,7 +444,7 @@ support.") (file-name (git-file-name name version)) (sha256 (base32 - "1nfyigfkl10n9r82p1qxhpr09jn2kwalh9n5r209bcaj8dxspph8")))) + "04v738h298pvcwb70mwd1r2yj7578f6gkfzs0165j9fqy7avwm18")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) @@ -465,7 +465,7 @@ support.") (let ((out (assoc-ref outputs "out"))) (invoke "qmake" (string-append "PREFIX=" out)))))))) - (home-page "http://www.mapeditor.org/") + (home-page "https://www.mapeditor.org/") (synopsis "Tile map editor") (description "Tiled is a general purpose tile map editor. It is meant to be used for @@ -684,19 +684,17 @@ etc.") (define-public allegro (package (name "allegro") - (version "5.2.4.0") + (version "5.2.5.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/liballeg/allegro5/releases" "/download/" version "/allegro-" version ".tar.gz")) - (patches (search-patches - "allegro-mesa-18.2.5-and-later.patch")) (sha256 (base32 - "1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l")))) + "06dpkfnac8w3pq36834nn2iij3ajz6prladqd0w92lq39aiqv5jr")))) (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; there are no tests + (arguments `(#:tests? #f)) ; there are no tests (inputs ;; FIXME: Add the following optional inputs: xinput2, opensl, dumb `(("flac" ,flac) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4fdc9b01e6..7a433a0bfd 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -40,6 +40,7 @@ ;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -7336,3 +7337,51 @@ Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING the World and demonstrating that he is even more evil than his brother Vlad.") ;; Drascula uses a BSD-like license. (license (license:non-copyleft "file:///readme.txt")))) + +(define-public gnurobots + (package + (name "gnurobots") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnurobots/gnurobots-" + version ".tar.gz")) + (sha256 + (base32 + "07gi3lsmbzzsjambgixj6xy79lh22km84z7bnzgwzxdy806lyvwb")))) + (build-system gnu-build-system) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+-2) + ("vte" ,vte/gtk+-2) + ("readline" ,readline) + ("guile" ,guile-1.8))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + `(#:make-flags + (list + ;; Do not abort build on "deprecated-declarations" warnings. + "CFLAGS=-Wno-error=deprecated-declarations" + ;; Find readline headers in sub-directory. + (string-append "READLINE_CFLAGS=-I" + (assoc-ref %build-inputs "readline") + "/include/readline/")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (install-file "doc/Robots-HOWTO" + (string-append (assoc-ref outputs "out") + "/share/doc/gnurobots-" + ,version)) + #t))))) + (home-page "https://www.gnu.org/software/gnurobots/") + (synopsis "Program a little robot and watch it explore a world") + (description + "GNU Robots is a game in which you program a robot to explore a world +full of enemies that can hurt it, obstacles and food to be eaten. The goal of +the game is to stay alive and collect prizes. The robot program conveniently +may be written in a plain text file in the Scheme programming language.") + (license license:gpl3+))) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 7d6d62acda..ef80af42ea 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -176,14 +176,14 @@ color, font attributes (weight, posture), or underlining.") (define-public po4a (package (name "po4a") - (version "0.55") + (version "0.56") (source (origin (method url-fetch) (uri (string-append "https://github.com/mquinson/po4a/releases/download/v" version "/po4a-" version ".tar.gz")) (sha256 (base32 - "1qss4q5df3nsydsbggb7gg50bn0kdxq5wn8riqm9zwkiq6a4bifg")))) + "0kyhww0yw4q0m4vj8vil2wsf6sn4hidh8mqz2gjrq7gpdf83cmnr")))) (build-system perl-build-system) (arguments `(#:phases diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 700d0bbf09..c190049212 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -49,7 +49,7 @@ (define-public babl (package (name "babl") - (version "0.1.62") + (version "0.1.64") (source (origin (method url-fetch) (uri (list (string-append "https://download.gimp.org/pub/babl/" @@ -63,7 +63,7 @@ "/babl-" version ".tar.bz2"))) (sha256 (base32 - "047msfzj8v4sfl61a2xhd69r9rh2pjq4lzpk3j10ijyv9qbry9yw")))) + "1gsqs5spgla86y9g11riryvw7015asik7y22maainl83nhq4sxxv")))) (build-system gnu-build-system) (home-page "http://gegl.org/babl/") (synopsis "Image pixel format conversion library") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 43b8934fb2..c77baad1f2 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3941,26 +3941,15 @@ which can read a large number of file formats.") (define-public rhythmbox (package (name "rhythmbox") - (version "3.4.2") + (version "3.4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) - (patches - (list - ;; fmradio: Fix build with GStreamer master - (origin - (method url-fetch) - (uri (string-append - "https://gitlab.gnome.org/GNOME/rhythmbox/commit/" - "b182c6b9e1d09e601bac0b703cc5f8b159ebbc3a.patch")) - (sha256 - (base32 - "06n87xgf927djmv1vshal84nqx7g8nwgljza3g2vydhy7g2n1csq"))))) (sha256 (base32 - "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2")))) + "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 4ce5d6fdb1..6b7103562f 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -118,7 +119,7 @@ requests, and the library is intended for implementing Ajax APIs.") (define-public ghc-http-types (package (name "ghc-http-types") - (version "0.12.1") + (version "0.12.3") (source (origin (method url-fetch) @@ -126,7 +127,7 @@ requests, and the library is intended for implementing Ajax APIs.") "http-types-" version ".tar.gz")) (sha256 (base32 - "1wv9k6nlvkdsxwlr7gaynphvzmvi5211gvwq96mbcxgk51a739rz")))) + "05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf")))) (build-system haskell-build-system) (native-inputs `(("ghc-doctest" ,ghc-doctest) @@ -136,7 +137,6 @@ requests, and the library is intended for implementing Ajax APIs.") ("hspec-discover" ,hspec-discover))) (inputs `(("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-blaze-builder" ,ghc-blaze-builder) ("ghc-text" ,ghc-text))) (home-page "https://github.com/aristidb/http-types") (synopsis "Generic HTTP types for Haskell") @@ -550,7 +550,7 @@ transfers.") (define-public ghc-warp (package (name "ghc-warp") - (version "3.2.23") + (version "3.2.27") (source (origin (method url-fetch) @@ -558,8 +558,7 @@ transfers.") "warp-" version "/" "warp-" version ".tar.gz")) (sha256 - (base32 - "12v9qhi4hyp0sb90yddsax16jj7x47nmqwn53sv7b5nszcxgzam0")))) + (base32 "0p2w88q0zd55ms20qylipbi0qzbf324i9r8b9qqxyds5yc1anq76")))) (build-system haskell-build-system) (inputs `(("ghc-async" ,ghc-async) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 06e255fdcf..97b4fd9a55 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1805,7 +1805,7 @@ version 1.3).") (define-public ghc-streaming-commons (package (name "ghc-streaming-commons") - (version "0.2.1.0") + (version "0.2.1.1") (source (origin (method url-fetch) @@ -1814,7 +1814,7 @@ version 1.3).") version ".tar.gz")) (sha256 (base32 - "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq")))) + "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52")))) (build-system haskell-build-system) (inputs `(("ghc-async" ,ghc-async) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 82b44a4900..a5bfb28a88 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017 nee <nee-git@hidamari.blue> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -429,3 +430,50 @@ imaging. It supports several HDR and LDR image formats, and it can: a comic and manga reader. It supports a variety of container formats including CBZ, CB7, CBT, LHA.") (license license:gpl2+))) + +(define-public qview + (package + (name "qview") + (version "2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jurplel/qView.git") + (commit version))) + (sha256 + (base32 + "1s29hz44rb5dwzq8d4i4bfg77dr0v3ywpvidpa6xzg7hnnv3mhi5")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "qmake"))) + ;; Installation process hard-codes "/usr/bin", possibly + ;; prefixed. + (add-after 'configure 'fix-install-directory + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("\\$\\(INSTALL_ROOT\\)/usr") out)) + #t))) + ;; Don't phone home or show "Checking for updates..." in the + ;; About menu. + (add-before 'build 'disable-auto-update + (lambda _ + (substitute* "src/qvaboutdialog.cpp" + (("ui->updateLabel->setText\\(updateText\\);") "") + (("requestUpdates\\(\\);") "")) + #t))))) + (inputs + `(("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) + ("qtimageformats" ,qtimageformats))) + (home-page "https://interversehq.com/qview/") + (synopsis "Convenient and minimal image viewer") + (description "qView is a Qt image viewer designed with visually +minimalism and usability in mind. Its features include animated GIF +controls, file history, rotation/mirroring, and multithreaded +preloading.") + (license license:gpl3+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6368359969..5401b1ad97 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2559,7 +2559,7 @@ compliance.") (define-public wireless-regdb (package (name "wireless-regdb") - (version "2017.03.07") + (version "2019.06.03") (source (origin (method url-fetch) (uri (string-append @@ -2567,7 +2567,7 @@ compliance.") "wireless-regdb-" version ".tar.xz")) (sha256 (base32 - "1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip")) + "1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd")) ;; We're building 'regulatory.bin' by ourselves. (snippet '(begin @@ -2575,13 +2575,25 @@ compliance.") #t)))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'gzip-determinism - (lambda _ - (substitute* "Makefile" - (("gzip") "gzip --no-name")) - #t)) - (delete 'configure)) + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'gzip-determinism + (lambda _ + (substitute* "Makefile" + (("gzip") "gzip --no-name")) + #t)) + (add-after 'unpack 'omit-signature + (lambda _ + (substitute* "Makefile" + ;; Signing requires a REGDB_PUBCERT and REGDB_PRIVKEY which we + ;; don't provide (see below). Disable it. + ((" regulatory\\.db\\.p7s") "") + ;; regulatory.db is built as a dependency of regulatory.db.p7s, + ;; but ‘make install’ depends only on the latter while installing + ;; both (and failing). Depend on it explicitly. + (("^install: " all) (string-append all "regulatory.db "))) + #t)) + (delete 'configure)) ; no configure script ;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which ;; is computed and can be equal to 'maintainer-clean'; when that @@ -2589,19 +2601,22 @@ compliance.") ;; just built. Thus, build things sequentially. #:parallel-build? #f - #:tests? #f ;no tests - #:make-flags (let ((out (assoc-ref %outputs "out"))) - (list (string-append "PREFIX=" out) - (string-append "LSB_ID=Guix") - (string-append "DISTRO_PUBKEY=/dev/null") - (string-append "DISTRO_PRIVKEY=/dev/null") - (string-append "REGDB_PUBKEY=/dev/null") - - ;; Leave that empty so that db2bin.py doesn't try - ;; to sign 'regulatory.bin'. This allows us to - ;; avoid managing a key pair for the whole distro. - (string-append "REGDB_PRIVKEY="))))) - (native-inputs `(("python" ,python-2))) + #:tests? #f ; no tests + #:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "PREFIX=" out) + (string-append "FIRMWARE_PATH=$(PREFIX)/lib/firmware") + + ;; Leave this empty so that db2bin.py doesn't try to sign + ;; ‘regulatory.bin’. This allows us to avoid managing a key + ;; pair for the whole distribution. + (string-append "REGDB_PRIVKEY=") + ;; Don't generate a public key for the same reason. These are + ;; used as Makefile targets and can't be the empty string. + (string-append "REGDB_PUBCERT=/dev/null") + (string-append "REGDB_PUBKEY=/dev/null"))))) + (native-inputs + `(("python" ,python-wrapper))) (home-page "https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb") (synopsis "Wireless regulatory database") @@ -2884,12 +2899,16 @@ thanks to the use of namespaces.") (substitute* "bin/singularity.in" (("^PATH=.*" all) (string-append "#" all "\n"))) + + (substitute* (find-files "libexec/cli" "\\.exec$") + (("\\$SINGULARITY_libexecdir/singularity/bin/([a-z]+)-suid" + _ program) + (string-append "/run/setuid-programs/singularity-" + program "-helper"))) #t)))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list "--disable-suid" - "--localstatedir=/var") + `(#:configure-flags '("--localstatedir=/var") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-reference-to-squashfs-tools diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 4edc62ed1d..35a2c3048d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -847,14 +847,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.28.4") + (version "0.29") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1jjnhs4xs4gksvg0a9qn68rxrj41im5bh58snka2pkj20nxwmcds")))) + "0rg4jp0wlsham76rx9fmlpmcbv3n9vsd81vrzqvh6jrwlnmjds88")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 8ca297b71e..1c0a4f3982 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1315,16 +1315,16 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (define-public jalv-select (package (name "jalv-select") - (version "0.8") + (version "1.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/brummer10/jalv_select.git") - (commit (string-append "V" version)))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0gqh768sbvn9ffyx1vqg9i57py9x9v4l65bk6wjsvgga4d7m83k1")))) + "15yanq1wra0hyh6x72ji7pk562iddg476g3vksj495x91zhnl6vm")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -1337,8 +1337,6 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (substitute* "jalv.select.cpp" (("echo \\$PATH.*tr ':'.*xargs ls") (string-append "ls -1 " (assoc-ref inputs "jalv") "/bin"))) - (substitute* "jalv.select.h" - (("gtkmm.h") "gtkmm-2.4/gtkmm.h")) #t)) (add-before 'reset-gzip-timestamps 'make-manpages-writable (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 338f98030a..bd66ab04aa 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -697,7 +697,8 @@ written in Objective Caml.") (lambda* (#:key outputs #:allow-other-keys) (format #t "~a~%" (find-files "." ".*.so")) (let ((stubdir (string-append (assoc-ref outputs "out") - "/lib/ocaml/site-lib"))) + "/lib/ocaml/site-lib/stublibs"))) + (delete-file stubdir) (mkdir-p stubdir) (install-file "src/dllnums.so" stubdir)) #t))))) @@ -1626,7 +1627,13 @@ spans without being subject to operating system calendar time adjustments.") "/lib/ocaml/site-lib/cmdliner")) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + (add-before 'build 'fix-source-file-order + (lambda _ + (substitute* "build.ml" + (("Sys.readdir dir") + "let a = Sys.readdir dir in Array.sort String.compare a; a")) + #t))))) (home-page "http://erratique.ch/software/cmdliner") (synopsis "Declarative definition of command line interfaces for OCaml") (description "Cmdliner is a module for the declarative definition of command @@ -2290,6 +2297,12 @@ many additional enhancements, including: `(#:phases (modify-phases %standard-phases (delete 'check) ; tests are run by the build phase + (add-before 'build 'fix-nondeterminism + (lambda _ + (substitute* "setup.ml" + (("Sys.readdir dirname") + "let a = Sys.readdir dirname in Array.sort String.compare a; a")) + #t)) (replace 'build (lambda* (#:key inputs outputs #:allow-other-keys) (let ((files diff --git a/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch deleted file mode 100644 index fa273a5dfa..0000000000 --- a/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch +++ /dev/null @@ -1,41 +0,0 @@ -Fixes compilation with Mesa >= 18.2.5. - -Taken from upstream: - -https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47 - -diff --git a/include/allegro5/allegro_opengl.h b/include/allegro5/allegro_opengl.h -index 0f86a6768..652dd024e 100644 ---- a/include/allegro5/allegro_opengl.h -+++ b/include/allegro5/allegro_opengl.h -@@ -103,10 +103,14 @@ - - /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ - #define __glext_h_ -+#define __gl_glext_h_ - #define __glxext_h_ -+#define __glx_glxext_h_ - #include <GL/gl.h> - #undef __glext_h_ -+#undef __gl_glext_h_ - #undef __glxext_h_ -+#undef __glx_glxext_h_ - - #endif /* ALLEGRO_MACOSX */ - -diff --git a/include/allegro5/opengl/GLext/glx_ext_defs.h b/include/allegro5/opengl/GLext/glx_ext_defs.h -index 49c502091..fba8aea5d 100644 ---- a/include/allegro5/opengl/GLext/glx_ext_defs.h -+++ b/include/allegro5/opengl/GLext/glx_ext_defs.h -@@ -1,7 +1,9 @@ - /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ - #define __glxext_h_ -+#define __glx_glxext_h_ - #include <GL/glx.h> - #undef __glxext_h_ -+#undef __glx_glxext_h_ - - #ifndef GLX_VERSION_1_3 - #define _ALLEGRO_GLX_VERSION_1_3 --- -2.20.0 diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 3512c5ac46..49152dc3fd 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -802,7 +802,18 @@ is commonly written.") version ".tar.gz")) (sha256 (base32 - "00m3lif64zyxd41cnk208kc81nl6qz659676qgiaqgwrw0brzrid")))) + "00m3lif64zyxd41cnk208kc81nl6qz659676qgiaqgwrw0brzrid")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "Makefile.in" + (("^moddir = (.*)/guile/(.*)" _ before after) + (string-append "moddir = " before "/guile/site/" + after)) + (("^ccachedir = (.*)/ccache/(.*)" _ before after) + (string-append "ccachedir = " before + "/site-ccache/" after))) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm index 185d441919..5a37480f67 100644 --- a/gnu/packages/slang.scm +++ b/gnu/packages/slang.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,14 +87,14 @@ slsh, which is part of the S-Lang distribution.") (define-public newt (package (name "newt") - (version "0.52.20") + (version "0.52.21") (source (origin (method url-fetch) - (uri (string-append "https://pagure.io/releases/" - name "/" name "-" version ".tar.gz")) + (uri (string-append "https://pagure.io/releases/newt/" + "newt-" version ".tar.gz")) (sha256 (base32 - "1g3dpfnvaw7vljbr7nzq1rl88d6r8cmrvvng9inphgzwxxmvlrld")))) + "0cdvbancr7y4nrj8257y5n45hmhizr8isynagy4fpsnpammv8pi6")))) (build-system gnu-build-system) (outputs '("out" "python")) (inputs diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 503433be10..aa7d34acc1 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -55,14 +55,14 @@ (define-public ceph (package (name "ceph") - (version "13.2.5") + (version "13.2.6") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "0jbs6l763clbqnq2s5jksn44yf71rhcnk85cw64fqvmv0r4ch71n")) + "13f5qs7jpxprplk4irwlx90mc9gvm48fvd3q471xcqc3n6z1qywz")) (patches (search-patches "ceph-skip-unittest_blockdev.patch" "ceph-skip-collect-sys-info-test.patch" diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index c1e136915b..730cb421de 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -140,7 +140,7 @@ windows.") (define-public tmux-xpanes (package (name "tmux-xpanes") - (version "4.1.0") + (version "4.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -149,7 +149,7 @@ windows.") (file-name (git-file-name name version)) (sha256 (base32 - "11yz6rh2ckd1z8q80n8giv2gcz2i22fgf3pnfxq96qrzflb0d96a")))) + "13q02vdk229chgbn547wwv29cj4njvz02lmw840g8qmwh73qb2pi")))) (build-system trivial-build-system) (inputs `(("bash" ,bash))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index d42b34a23c..c8773adc7b 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -146,14 +146,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git-source' input to cgit ;; needs to be updated as well. - (version "2.21.0") + (version "2.22.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0a0d0b07rmvs985zpndxxy0vzr0vq53kq5kyd68iv6gf8gkirjwc")))) + "17zj6jwx3s6bybd290f1mj5iym1r64560rmnf0p63x4akxclp7hm")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -166,7 +166,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0lgcynqbjmfsvhfk14jvqyvb1xiyqgkgznb707vha38wjcjdqs1g")))) + "0fpfqw0h4g4v478fscic8z714i0ls5w7946vzhmq31lf7nizsb2f")))) ;; For subtree documentation. ("asciidoc" ,asciidoc) ("docbook-xsl" ,docbook-xsl) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 512ac2e117..d1fdd12177 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -671,14 +671,14 @@ SMPTE 314M.") (define-public libmatroska (package (name "libmatroska") - (version "1.5.0") + (version "1.5.2") (source (origin (method url-fetch) (uri (string-append "https://dl.matroska.org/downloads/" "libmatroska/libmatroska-" version ".tar.xz")) (sha256 - (base32 "07md2gvy3x92ym2k449740mdji6mhknlajkndnhi507s4wcdrvzh")))) + (base32 "0qn9lfs0877wbv581yxw2gywxywxpvwslc5q07q4f7bqpyzxxiha")))) (build-system cmake-build-system) (inputs `(("libebml" ,libebml))) @@ -1013,7 +1013,7 @@ videoformats depend on the configuration flags of ffmpeg.") (define-public vlc (package (name "vlc") - (version "3.0.6") + (version "3.0.7") (source (origin (method url-fetch) (uri (string-append @@ -1022,7 +1022,7 @@ videoformats depend on the configuration flags of ffmpeg.") "/vlc-" version ".tar.xz")) (sha256 (base32 - "1lvyyahv6g9zv7m5g5qinyrwmw47zdsd5ysimb862j7kw15nvh8q")))) + "05irswyg9acflxzy4vfyvgi643r72vsvagv118zawjqg1wagxdaw")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) @@ -2192,14 +2192,14 @@ tools, XML authoring components, and an extensible plug-in based API.") (define-public v4l-utils (package (name "v4l-utils") - (version "1.12.5") + (version "1.16.6") (source (origin (method url-fetch) (uri (string-append "https://linuxtv.org/downloads/v4l-utils" "/v4l-utils-" version ".tar.bz2")) (sha256 (base32 - "03g2b4rivrilimcp57mwrlsa3qvrxmk4sza08mygwmqbvcnic606")))) + "1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -2858,7 +2858,7 @@ many codecs and formats supported by libmediainfo.") (define-public livemedia-utils (package (name "livemedia-utils") - (version "2019.03.06") + (version "2019.05.29") (source (origin (method url-fetch) (uri (string-append @@ -2866,10 +2866,10 @@ many codecs and formats supported by libmediainfo.") version ".tar.gz")) (sha256 (base32 - "1gasdl95yjabv811knkmy5laj21a54z1jdfq36jdj984k1nw5l0b")))) + "08i63jr8ihn1xiq5z5n3yls3yz6li5sg0s454l56p5bcvbrw81my")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no tests + '(#:tests? #f ; no tests #:make-flags (list "CC=gcc" (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib") diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 2e5605657e..6b151f0a31 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -271,7 +271,7 @@ API.") (define-public shaderc (package (name "shaderc") - (version "2018.0") + (version "2019.0") (source (origin (method git-fetch) @@ -281,7 +281,7 @@ API.") (file-name (git-file-name name version)) (sha256 (base32 - "0qigmj0riw43pgjn5f6kpvk72fajssz1lc2aiqib5qvmj9rqq3hl")))) + "1l5mmyxhzsbp0a6y2d86i8jmf46c6bjgjkdgkr5l8hmhflmm7gi2")))) (build-system meson-build-system) (arguments `(#:tests? #f ; FIXME: Tests fail. diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 01c30c8198..f0589e98f1 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -1140,7 +1140,7 @@ functionality to display information about the most commonly used services.") (define-public wlroots (package (name "wlroots") - (version "0.5.0") + (version "0.6.0") (source (origin (method git-fetch) @@ -1149,7 +1149,7 @@ functionality to display information about the most commonly used services.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1phiidyddzgaxy4gbqwmykxn0y8za6y5mp66l9dpd9i6fml153yq")))) + (base32 "1rdcmll5b8w242n6yfjpsaprq280ck2jmbz46dxndhignxgda7k4")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dlogind-provider=elogind") @@ -1185,7 +1185,7 @@ modules for building a Wayland compositor.") (define-public sway (package (name "sway") - (version "1.0") + (version "1.1.1") (source (origin (method git-fetch) @@ -1194,7 +1194,7 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx")))) + (base32 "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776")))) (build-system meson-build-system) (arguments `(#:phases @@ -1231,7 +1231,7 @@ modules for building a Wayland compositor.") (define-public swayidle (package (name "swayidle") - (version "1.2") + (version "1.3") (source (origin (method git-fetch) @@ -1240,7 +1240,7 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0b65flajwn2i6k2kdxxgw25w7ikzzmm595f4j5x1wac1rb0yah9w")))) + (base32 "04agcbhc473jkk7npb40i94ny8naykxzpjcw2lvl05kxv65y5d9v")))) (build-system meson-build-system) (inputs `(("wayland" ,wayland))) (native-inputs `(("pkg-config" ,pkg-config) @@ -1254,7 +1254,7 @@ modules for building a Wayland compositor.") (define-public swaylock (package (name "swaylock") - (version "1.3") + (version "1.4") (source (origin (method git-fetch) @@ -1263,7 +1263,7 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "093nv1y9wyg48rfxhd36qdljjry57v1vkzrlc38mkf6zvsq8j7wb")))) + (base32 "1ii9ql1mxkk2z69dv6bg1x22nl3a46iww764wqjiv78x08xpk982")))) (build-system meson-build-system) (inputs `(("cairo" ,cairo) ("gdk-pixbuf" ,gdk-pixbuf) @@ -1279,3 +1279,29 @@ modules for building a Wayland compositor.") (synopsis "Screen locking utility for Wayland compositors") (description "Swaylock is a screen locking utility for Wayland compositors.") (license license:expat))) ; MIT license + +(define-public swaybg + (package + (name "swaybg") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/swaywm/swaybg.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lmqz5bmig90gq2m7lwf02d2g7z4hzf8fhqz78c8vk92c6p4xwbc")))) + (build-system meson-build-system) + (inputs `(("cairo" ,cairo) + ("gdk-pixbuf" ,gdk-pixbuf) + ("wayland" ,wayland))) + (native-inputs `(("git" ,git) + ("pkg-config" ,pkg-config) + ("scdoc" ,scdoc) + ("wayland-protocols" ,wayland-protocols))) + (home-page "https://github.com/swaywm/sway") + (synopsis "Screen wallpaper utility for Wayland compositors") + (description "Swaybg is a wallpaper utility for Wayland compositors.") + (license license:expat))) ; MIT license diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index cbf2f65da4..400dca9290 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -85,14 +85,14 @@ things the parser might find in the XML document (like start tags).") (define-public libebml (package (name "libebml") - (version "1.3.7") + (version "1.3.9") (source (origin (method url-fetch) (uri (string-append "https://dl.matroska.org/downloads/libebml/" "libebml-" version ".tar.xz")) (sha256 - (base32 "1x79b35dj5d2x7xf7ql83w2cr0v5n2vsd08q6y6grmw4yn3lq973")))) + (base32 "0j65r6i7s2k67c8f9wa653mqpxmfhdl67kjxrc1n5910ig6wddn6")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -1080,7 +1080,7 @@ C++ programming language.") (define-public tinyxml2 (package (name "tinyxml2") - (version "4.0.1") + (version "7.0.1") (source (origin (method git-fetch) @@ -1089,10 +1089,8 @@ C++ programming language.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1a0skfi8rzk53qcxbv88qlvhlqzvsvg4hm20dnx4zw7vrn6anr9y")))) + (base32 "1sf6sch1kawrna2f9dc8f4xl836acqcddkghzdib0s7dl48m9r7m")))) (build-system cmake-build-system) - (arguments - `(#:tests? #f)) ; no tests (synopsis "Small XML parser for C++") (description "TinyXML2 is a small and simple XML parsing library for the C++ programming language.") diff --git a/gnu/services/auditd.scm b/gnu/services/auditd.scm new file mode 100644 index 0000000000..8a9292015f --- /dev/null +++ b/gnu/services/auditd.scm @@ -0,0 +1,54 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services auditd) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services base) + #:use-module (gnu services shepherd) + #:use-module (gnu packages admin) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (guix packages) + #:export (auditd-configuration + auditd-service-type)) + +; /etc/audit/audit.rules + +(define-configuration auditd-configuration + (audit + (package audit) + "Audit package.")) + +(define (auditd-shepherd-service config) + (let* ((audit (auditd-configuration-audit config))) + (list (shepherd-service + (documentation "Auditd allows you to audit file system accesses.") + (provision '(auditd)) + (start #~(make-forkexec-constructor + (list (string-append #$audit "/sbin/auditd")))) + (stop #~(make-kill-destructor)))))) + +(define auditd-service-type + (service-type (name 'auditd) + (description "Allows auditing file system accesses.") + (extensions + (list + (service-extension shepherd-root-service-type + auditd-shepherd-service))) + (default-value (auditd-configuration)))) diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm index 94a04c8996..04f9127346 100644 --- a/gnu/services/docker.scm +++ b/gnu/services/docker.scm @@ -24,12 +24,14 @@ #:use-module (gnu services shepherd) #:use-module (gnu system shadow) #:use-module (gnu packages docker) + #:use-module (gnu packages linux) ;singularity #:use-module (guix records) #:use-module (guix gexp) #:use-module (guix packages) #:export (docker-configuration - docker-service-type)) + docker-service-type + singularity-service-type)) ;;; We're not using serialize-configuration, but we must define this because ;;; the define-configuration macro validates it exists. @@ -120,3 +122,60 @@ bundles in Docker containers.") (service-extension account-service-type (const %docker-accounts)))) (default-value (docker-configuration)))) + + +;;; +;;; Singularity. +;;; + +(define %singularity-activation + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (define %mount-directory + "/var/singularity/mnt/") + + ;; Create the directories that Singularity 2.6 expects to find. Make + ;; them #o755 like the 'install-data-hook' rule in 'Makefile.am' of + ;; Singularity 2.6.1. + (for-each (lambda (directory) + (let ((directory (string-append %mount-directory + directory))) + (mkdir-p directory) + (chmod directory #o755))) + '("container" "final" "overlay" "session")) + (chmod %mount-directory #o755)))) + +(define (singularity-setuid-programs singularity) + "Return the setuid-root programs that SINGULARITY needs." + (define helpers + ;; The helpers, under a meaningful name. + (computed-file "singularity-setuid-helpers" + #~(begin + (mkdir #$output) + (for-each (lambda (program) + (symlink (string-append #$singularity + "/libexec/singularity" + "/bin/" + program "-suid") + (string-append #$output + "/singularity-" + program + "-helper"))) + '("action" "mount" "start"))))) + + (list (file-append helpers "/singularity-action-helper") + (file-append helpers "/singularity-mount-helper") + (file-append helpers "/singularity-start-helper"))) + +(define singularity-service-type + (service-type (name 'singularity) + (description + "Install the Singularity application bundle tool.") + (extensions + (list (service-extension setuid-program-service-type + singularity-setuid-programs) + (service-extension activation-service-type + (const %singularity-activation)))) + (default-value singularity))) diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm index 533a45e149..8466d5b07d 100644 --- a/gnu/system/locale.scm +++ b/gnu/system/locale.scm @@ -85,20 +85,6 @@ or #f on failure." (_ #f))) -(define* (localedef-command locale - #:key (libc (canonical-package glibc))) - "Return a gexp that runs 'localedef' from LIBC to build LOCALE." - #~(begin - (format #t "building locale '~a'...~%" - #$(locale-definition-name locale)) - (zero? (system* (string-append #+libc "/bin/localedef") - "--no-archive" "--prefix" #$output - "-i" #$(locale-definition-source locale) - "-f" #$(locale-definition-charset locale) - (string-append #$output "/" #$(version-major+minor - (package-version libc)) - "/" #$(locale-definition-name locale)))))) - (define* (single-locale-directory locales #:key (libc (canonical-package glibc))) "Return a directory containing all of LOCALES for LIBC compiled. @@ -110,17 +96,29 @@ of LIBC." (version-major+minor (package-version libc))) (define build - #~(begin - (mkdir #$output) - - (mkdir (string-append #$output "/" #$version)) - - ;; 'localedef' executes 'gzip' to access compressed locale sources. - (setenv "PATH" (string-append #$gzip "/bin")) - - (exit - (and #$@(map (cut localedef-command <> #:libc libc) - locales))))) + (with-imported-modules (source-module-closure + '((gnu build locale))) + #~(begin + (use-modules (gnu build locale)) + + (mkdir #$output) + (mkdir (string-append #$output "/" #$version)) + + ;; 'localedef' executes 'gzip' to access compressed locale sources. + (setenv "PATH" + (string-append #$gzip "/bin:" #$libc "/bin")) + + (setvbuf (current-output-port) 'line) + (setvbuf (current-error-port) 'line) + (for-each (lambda (locale codeset name) + (build-locale locale + #:codeset codeset + #:name name + #:directory + (string-append #$output "/" #$version))) + '#$(map locale-definition-source locales) + '#$(map locale-definition-charset locales) + '#$(map locale-definition-name locales))))) (computed-file (string-append "locale-" version) build)) @@ -216,45 +214,16 @@ pairs such as (\"oc_FR.UTF-8\" . \"UTF-8\"). Each pair corresponds to a locale supported by GLIBC." (define build (with-imported-modules (source-module-closure - '((guix build gnu-build-system))) + '((guix build gnu-build-system) + (gnu build locale))) #~(begin (use-modules (guix build gnu-build-system) - (srfi srfi-1) - (ice-9 rdelim) - (ice-9 match) - (ice-9 regex) + (gnu build locale) (ice-9 pretty-print)) (define unpack (assq-ref %standard-phases 'unpack)) - (define locale-rx - ;; Regexp matching a locale line in 'localedata/SUPPORTED'. - (make-regexp - "^[[:space:]]*([[:graph:]]+)/([[:graph:]]+)[[:space:]]*\\\\$")) - - (define (read-supported-locales port) - ;; Read the 'localedata/SUPPORTED' file from PORT. That file is - ;; actually a makefile snippet, with one locale per line, and a - ;; header that can be discarded. - (let loop ((locales '())) - (define line - (read-line port)) - - (cond ((eof-object? line) - (reverse locales)) - ((string-prefix? "#" (string-trim line)) ;comment - (loop locales)) - ((string-contains line "=") ;makefile variable assignment - (loop locales)) - (else - (match (regexp-exec locale-rx line) - (#f - (loop locales)) - (m - (loop (alist-cons (match:substring m 1) - (match:substring m 2) - locales)))))))) (setenv "PATH" (string-append #+(file-append tar "/bin") ":" diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm index 3cd3a27884..f2674cdbe8 100644 --- a/gnu/tests/docker.scm +++ b/gnu/tests/docker.scm @@ -101,7 +101,7 @@ inside %DOCKER-OS." marionette)) (test-equal "Load docker image and run it" - "hello world" + '("hello world" "hi!") (marionette-eval `(begin (define slurp @@ -117,12 +117,16 @@ inside %DOCKER-OS." (repository&tag (string-drop raw-line (string-length "Loaded image: "))) - (response (slurp - ,(string-append #$docker-cli "/bin/docker") - "run" "--entrypoint" "bin/Guile" - repository&tag - "/aa.scm"))) - response)) + (response1 (slurp + ,(string-append #$docker-cli "/bin/docker") + "run" "--entrypoint" "bin/Guile" + repository&tag + "/aa.scm")) + (response2 (slurp ;default entry point + ,(string-append #$docker-cli "/bin/docker") + "run" repository&tag + "-c" "(display \"hi!\")"))) + (list response1 response2))) marionette)) (test-end) @@ -161,6 +165,7 @@ standard output device and then enters a new line.") (tarball (docker-image "docker-pack" profile #:symlinks '(("/bin/Guile" -> "bin/guile") ("aa.scm" -> "a.scm")) + #:entry-point "bin/guile" #:localstatedir? #t))) (run-docker-test tarball))) diff --git a/gnu/tests/singularity.scm b/gnu/tests/singularity.scm new file mode 100644 index 0000000000..668043a0bc --- /dev/null +++ b/gnu/tests/singularity.scm @@ -0,0 +1,137 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests singularity) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system vm) + #:use-module (gnu system shadow) + #:use-module (gnu services) + #:use-module (gnu services docker) + #:use-module (gnu packages bash) + #:use-module (gnu packages guile) + #:use-module (gnu packages linux) ;singularity + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix grafts) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix profiles) + #:use-module (guix scripts pack) + #:export (%test-singularity)) + +(define %singularity-os + (simple-operating-system + (service singularity-service-type) + (simple-service 'guest-account + account-service-type + (list (user-account (name "guest") (uid 1000) (group "guest")) + (user-group (name "guest") (id 1000)))))) + +(define (run-singularity-test image) + "Load IMAGE, a Squashfs image, as a Singularity image and run it inside +%SINGULARITY-OS." + (define os + (marionette-operating-system %singularity-os)) + + (define singularity-exec + #~(begin + (use-modules (ice-9 popen) (rnrs io ports)) + + (let* ((pipe (open-pipe* OPEN_READ + #$(file-append singularity + "/bin/singularity") + "exec" #$image "/bin/guile" + "-c" "(display \"hello, world\")")) + (str (get-string-all pipe)) + (status (close-pipe pipe))) + (and (zero? status) + (string=? str "hello, world"))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette)) + + (define marionette + (make-marionette (list #$(virtual-machine os)))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "singularity") + + (test-assert "singularity exec /bin/guile (as root)" + (marionette-eval '#$singularity-exec + marionette)) + + (test-equal "singularity exec /bin/guile (unprivileged)" + 0 + (marionette-eval + `(begin + (use-modules (ice-9 match)) + + (match (primitive-fork) + (0 + (dynamic-wind + (const #f) + (lambda () + (setgid 1000) + (setuid 1000) + (execl #$(program-file "singularity-exec-test" + #~(exit #$singularity-exec)) + "test")) + (lambda () + (primitive-exit 127)))) + (pid + (cdr (waitpid pid))))) + marionette)) + + (test-equal "singularity run" ;test the entry point + 42 + (marionette-eval + `(status:exit-val + (system* #$(file-append singularity "/bin/singularity") + "run" #$image "-c" "(exit 42)")) + marionette)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "singularity-test" test)) + +(define (build-tarball&run-singularity-test) + (mlet* %store-monad + ((_ (set-grafting #f)) + (guile (set-guile-for-build (default-guile))) + ;; 'singularity exec' insists on having /bin/sh in the image. + (profile (profile-derivation (packages->manifest + (list bash-minimal guile-2.2)) + #:hooks '() + #:locales? #f)) + (tarball (squashfs-image "singularity-pack" profile + #:entry-point "bin/guile" + #:symlinks '(("/bin" -> "bin"))))) + (run-singularity-test tarball))) + +(define %test-singularity + (system-test + (name "singularity") + (description "Test Singularity container of Guix.") + (value (build-tarball&run-singularity-test)))) |