diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index 4259ea523c..e9f3e957d9 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -91,20 +91,45 @@ to 'make'." (match (command-line) ((_ . files) - (compile-files srcdir (getcwd) - (filter file-needs-compilation? files) - #:workers (parallel-job-count) - #:host host - #:report-load (lambda (file total completed) - (when file - (format #t "[~3d%] LOAD ~a~%" - (% (+ 1 completed) (* 2 total)) - file) - (force-output))) - #:report-compilation (lambda (file total completed) - (when file - (format #t "[~3d%] GUILEC ~a~%" - (% (+ total completed 1) - (* 2 total)) - (scm->go file)) - (force-output)))))) + (catch #t + (lambda () + (compile-files srcdir (getcwd) + (filter file-needs-compilation? files) + #:workers (parallel-job-count) + #:host host + #:report-load (lambda (file total completed) + (when file + (format #t "[~3d%] LOAD ~a~%" + (% (+ 1 completed) (* 2 total)) + file) + (force-output))) + #:report-compilation (lambda (file total completed) + (when file + (format #t "[~3d%] GUILEC ~a~%" + (% (+ total completed 1) + (* 2 total)) + (scm->go file)) + (force-output))))) + (lambda _ + (primitive-exit 1)) + (lambda args + ;; Try to report the error in an intelligible way. + (let* ((stack (make-stack #t)) + (frame (if (> (stack-length stack) 1) + (stack-ref stack 1) ;skip the 'throw' frame + (stack-ref stack 0))) + (ui (false-if-exception + (resolve-module '(guix ui)))) + (report (and ui + (false-if-exception + (module-ref ui 'report-load-error))))) + (if report + ;; In Guile <= 2.2.5, 'current-load-port' was not exported. + (let ((load-port ((module-ref (resolve-module '(ice-9 ports)) + 'current-load-port)))) + (report (or (and=> load-port port-filename) "?.scm") + args frame)) + (begin + (print-exception (current-error-port) frame + (car args) (cdr args)) + (display-backtrace stack (current-error-port))))))))) diff --git a/doc/guix.texi b/doc/guix.texi index 1d57546ac5..888be1521f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2430,13 +2430,14 @@ The resulting file will be much smaller than 50 GB (typically less than Boot the USB installation image in an VM: @example -qemu-system-x86_64 -m 1024 -smp 1 \ +qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \ -net user -net nic,model=virtio -boot menu=on \ -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \ -drive file=guixsd.img @end example -The ordering of the drives matters. +The ordering of the drives matters. @code{-enable-kvm} is optional, but +significantly improves performance, @pxref{Running Guix in a VM}. In the VM console, quickly press the @kbd{F12} key to enter the boot menu. Then press the @kbd{2} key and the @kbd{RET} key to validate your @@ -12735,10 +12736,35 @@ NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections. @item dnsmasq -NetworkManager will run @code{dnsmasq} as a local caching nameserver, -using a "split DNS" configuration if you are connected to a VPN, and +NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a +@dfn{conditional forwarding} configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver. +With this setting, you can share your network connection. For example when +you want to share your network connection to another laptop @i{via} an +Ethernet cable, you can open @command{nm-connection-editor} and configure the +Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers'' +and reestablish the connection (or reboot). + +You can also set up a @dfn{host-to-guest connection} to QEMU VMs +(@pxref{Installing Guix in a VM}). With a host-to-guest connection, you can +e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web +browser on your host system, or connect to the VM @i{via} SSH +(@pxref{Networking Services, @code{openssh-service-type}}). To set up a +host-to-guest connection, run this command once: + +@example +nmcli connection add type tun \ + connection.interface-name tap0 \ + tun.mode tap tun.owner $(id -u) \ + ipv4.method shared \ + ipv4.addresses 172.28.112.1/24 +@end example + +Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass +@option{-nic tap,ifname=tap0,script=no,downscript=no} to +@command{qemu-system-...}. + @item none NetworkManager will not modify @code{resolv.conf}. @end table diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm index b90149565f..5094456ab1 100644 --- a/gnu/build/accounts.scm +++ b/gnu/build/accounts.scm @@ -19,7 +19,6 @@ (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) @@ -231,14 +230,6 @@ each field." ;; 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 @@ -259,10 +250,7 @@ to it atomically and set the appropriate permissions." (chmod port mode) (write-entries port) - ;; XXX: When booting with the statically-linked Guile, - ;; 'fdatasync' is unavailable. - (catch-ENOSYS (fdatasync port)) - + (fsync port) (close-port port) (rename-file template file-or-port)) (lambda () diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 3d7b52f098..e86ac606c0 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -22,7 +22,6 @@ #:use-module (ice-9 match) #:use-module (ice-9 rdelim) #:use-module (srfi srfi-98) - #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix build syscalls) #:use-module (gnu system file-systems) ; @@ -279,6 +278,21 @@ that host UIDs (respectively GIDs) map to in the namespace." (_ ;unexpected termination #f))))))))) +;; FIXME: This is copied from (guix utils), which we cannot use because it +;; would pull (guix config) and all. +(define (call-with-temporary-directory proc) + "Call PROC with a name of a temporary directory; close the directory and +delete it when leaving the dynamic extent of this call." + (let* ((directory (or (getenv "TMPDIR") "/tmp")) + (template (string-append directory "/guix-directory.XXXXXX")) + (tmp-dir (mkdtemp! template))) + (dynamic-wind + (const #t) + (lambda () + (proc tmp-dir)) + (lambda () + (false-if-exception (delete-file-recursively tmp-dir)))))) + (define* (call-with-container mounts thunk #:key (namespaces %namespaces) (host-uids 1) (guest-uid 0) (guest-gid 0)) "Run THUNK in a new container process and return its exit status. diff --git a/gnu/local.mk b/gnu/local.mk index d375b8cd1d..f90d0cf402 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -20,6 +20,7 @@ # Copyright © 2018, 2019 Oleg Pykhalov # Copyright © 2018 Stefan Stefanović # Copyright © 2018 Maxim Cournoyer +# Copyright © 2019 Guillaume Le Vaillant # # This file is part of GNU Guix. # @@ -195,6 +196,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gcc.scm \ %D%/packages/gd.scm \ %D%/packages/gdb.scm \ + %D%/packages/genealogy.scm \ %D%/packages/genimage.scm \ %D%/packages/geo.scm \ %D%/packages/gettext.scm \ @@ -956,7 +958,6 @@ dist_patch_DATA = \ %D%/packages/patches/java-xerces-xjavac_taskdef.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ - %D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ %D%/packages/patches/localed-xorg-keyboard.patch \ %D%/packages/patches/kiki-level-selection-crash.patch \ @@ -978,9 +979,14 @@ dist_patch_DATA = \ %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \ %D%/packages/patches/kodi-skip-test-449.patch \ %D%/packages/patches/laby-make-install.patch \ + %D%/packages/patches/lcalc-default-parameters-1.patch \ + %D%/packages/patches/lcalc-default-parameters-2.patch \ + %D%/packages/patches/lcalc-lcommon-h.patch \ + %D%/packages/patches/lcalc-using-namespace-std.patch \ %D%/packages/patches/lcms-CVE-2018-16435.patch \ %D%/packages/patches/ldc-bootstrap-disable-tests.patch \ %D%/packages/patches/ldc-disable-phobos-tests.patch \ + %D%/packages/patches/leela-zero-gtest.patch \ %D%/packages/patches/liba52-enable-pic.patch \ %D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-set-soname.patch \ @@ -1040,6 +1046,7 @@ dist_patch_DATA = \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ %D%/packages/patches/llvm-for-extempore.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ + %D%/packages/patches/lrcalc-includes.patch \ %D%/packages/patches/lrzip-CVE-2017-8842.patch \ %D%/packages/patches/lua-CVE-2014-5461.patch \ %D%/packages/patches/lua-pkgconfig.patch \ @@ -1208,6 +1215,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-testtools.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \ + %D%/packages/patches/python-pyatspi-python-37.patch \ %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 2d7622d397..47e4f473b5 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -515,14 +515,18 @@ optionally contain a version number and an output name, as in these examples: guile@2.0.9:debug If SPEC does not specify a version number, return the preferred newest -version; if SPEC does not specify an output, return OUTPUT." +version; if SPEC does not specify an output, return OUTPUT. + +When OUTPUT is false and SPEC does not specify any output, return #f as the +output." (let-values (((name version sub-drv) (package-specification->name+version+output spec output))) (match (%find-package spec name version) (#f (values #f #f)) (package - (if (member sub-drv (package-outputs package)) + (if (or (and (not output) (not sub-drv)) + (member sub-drv (package-outputs package))) (values package sub-drv) (leave (G_ "package `~a' lacks output `~a'~%") (package-full-name package) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index c6ed4c6d4a..3d8c247f57 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2251,7 +2251,7 @@ produce uniform output across heterogeneous networks.") (define-public cbatticon (package (name "cbatticon") - (version "1.6.8") + (version "1.6.9") (source (origin (method git-fetch) @@ -2259,7 +2259,7 @@ produce uniform output across heterogeneous networks.") (url "https://github.com/valr/cbatticon.git") (commit version))) (sha256 - (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6")) + (base32 "0kw09d678sd3m18fmi4380sl4a2m5lkfmq0kps16cdmq7z80rvaf")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 561347ad98..95189401f7 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1333,47 +1333,6 @@ multiplication algorithm.") (license license:gpl2+) (home-page "https://bitbucket.org/malb/m4ri/"))) -(define-public ratpoints - (package - (name "ratpoints") - (version "2.1.3") - (source (origin - (method url-fetch) - (uri (string-append - "http://www.mathe2.uni-bayreuth.de/stoll/programs/" - "ratpoints-" version ".tar.gz")) - (sha256 - (base32 - "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4")) - (patches - ;; Taken from - ;; - (search-patches "ratpoints-sturm_and_rp_private.patch")))) - (build-system gnu-build-system) - (arguments - `(#:test-target "test" - #:make-flags - (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) ;no configure script - (add-before 'install 'create-install-directories - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p out) - (with-directory-excursion out - (for-each (lambda (d) (mkdir-p d)) - '("bin" "include" "lib")))) - #t))))) - (inputs - `(("gmp" ,gmp))) - (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/") - (synopsis "Find rational points on hyperelliptic curves") - (description "Ratpoints tries to find all rational points within -a given height bound on a hyperelliptic curve in a very efficient way, -by using an optimized quadratic sieve algorithm.") - (license license:gpl2+))) - (define-public symmetrica (package (name "symmetrica") @@ -1400,7 +1359,7 @@ by using an optimized quadratic sieve algorithm.") (add-after 'unpack 'fix-makefile (lambda _ (substitute* "makefile" - (("cc -c") "gcc -c")) + (("cc -c") "gcc -c -fPIC")) #t)) (add-after 'fix-makefile 'turn-off-banner (lambda _ @@ -1503,7 +1462,8 @@ John Cremona to compute his elliptic curve database.") (file-name (git-file-name name version)) (sha256 (base32 - "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss")))) + "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss")) + (patches (search-patches "lrcalc-includes.patch")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1547,6 +1507,7 @@ structure constants of Schubert polynomials.") (arguments `(#:configure-flags (list + "--enable-shared" (string-append "--with-gmp-include=" (assoc-ref %build-inputs "gmp") "/include") (string-append "--with-gmp-lib=" diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 8ab5377537..3c7ef447f3 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Efraim Flashner ;;; Copyright © 2019 Andreas Enge +;;; Copyright © 2019 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,6 +91,17 @@ use their packages mostly unmodified in our Android NDK build system.") (define-public android-googletest (package (inherit googletest) (name "android-googletest") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/googletest.git") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399")))) (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") #:phases diff --git a/gnu/packages/apl.scm b/gnu/packages/apl.scm index 88150dc4d0..badec04333 100644 --- a/gnu/packages/apl.scm +++ b/gnu/packages/apl.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017, 2019 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,25 +25,27 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages gettext) #:use-module (gnu packages maths) + #:use-module (gnu packages pcre) #:use-module (gnu packages readline) #:use-module (gnu packages sqlite)) (define-public apl (package (name "apl") - (version "1.7") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz")) (sha256 (base32 - "07xq8ddlmz8psvsmwr23gar108ri0lwmw0n6kpxcv8ypas1f5xlg")))) + "1jxvv2h3y1am1fw6r5sn3say1n0dj8shmscbybl0qhqdia2lqkql")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/apl/") (inputs `(("gettext" ,gettext-minimal) ("lapack" ,lapack) + ("pcre" ,pcre2) ("sqlite" ,sqlite) ("readline" ,readline))) (arguments diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 9ddb9e1d52..81c7481e0b 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Efraim Flashner +;;; Copyright © 2019 by Amar Singh ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,17 +23,27 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages autotools) #:use-module (gnu packages image) #:use-module (gnu packages compression) #:use-module (gnu packages gettext) + #:use-module (gnu packages version-control) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xiph) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages algebra) + #:use-module (gnu packages lua) #:use-module (gnu packages perl) #:use-module (gnu packages gl) #:use-module (gnu packages qt) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) #:use-module (gnu packages maths) #:use-module (guix build-system cmake) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (srfi srfi-1)) (define-public cfitsio (package @@ -133,15 +144,15 @@ programs for the manipulation and analysis of astronomical data.") (define-public stellarium (package (name "stellarium") - (version "0.19.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Stellarium/" name - "/releases/download/v" version - "/" name "-" version ".tar.gz")) - (sha256 - (base32 - "1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a")))) + (version "0.19.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Stellarium/stellarium" + "/releases/download/v" version + "/stellarium-" version ".tar.gz")) + (sha256 + (base32 "0s7v5iyhah258k83kvy2a91a3mdf34r150lcar4mmdsrrcmas98g")))) (build-system cmake-build-system) (inputs `(("qtbase" ,qtbase) @@ -151,9 +162,9 @@ programs for the manipulation and analysis of astronomical data.") ("qtserialport" ,qtserialport) ("zlib" ,zlib))) (native-inputs - `(("gettext" ,gettext-minimal) ; xgettext is used at compile time - ("perl" ,perl) ; For pod2man - ("qtbase" ,qtbase) ; Qt MOC is needed at compile time + `(("gettext" ,gettext-minimal) ; xgettext is used at compile time + ("perl" ,perl) ; For pod2man + ("qtbase" ,qtbase) ; Qt MOC is needed at compile time ("qttools" ,qttools))) (arguments `(#:test-target "test" @@ -176,3 +187,65 @@ programs for the manipulation and analysis of astronomical data.") can be used to control telescopes over a serial port for tracking celestial objects.") (license license:gpl2+))) + +(define-public celestia + (let ((commit "9dbdf29c4ac3d20afb2d9a80d3dff241ecf81dce")) + (package + (name "celestia") + (version (git-version "1.6.1" "815" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/celestiaproject/celestia") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00xibg87l1arzifakgj7s828x9pszcgx7x7ij88a561ig49ryh78")))) + (build-system cmake-build-system) + (native-inputs + `(("perl" ,perl) + ("libgit2" ,libgit2) + ("pkg-config" ,pkg-config) + ("libtool" ,libtool) + ("gettext" ,gettext-minimal))) + (inputs + `(("glu" ,glu) + ("glew" ,glew) + ("libtheora" ,libtheora) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ;; maybe required? + ("mesa" ,mesa) + ;; optional: fmtlib, Eigen3; + ("fmt" ,fmt) + ("eigen" ,eigen) + ;; glut: for glut interface + ("freeglut" ,freeglut))) + (propagated-inputs + `(("lua" ,lua))) + (arguments + `(#:configure-flags '("-DENABLE_GLUT=ON" "-DENABLE_QT=OFF") + #:tests? #f)) ;no tests + (home-page "https://celestia.space/") + (synopsis "Real-time 3D visualization of space") + (description + "This simulation program lets you explore our universe in three +dimensions. Celestia simulates many different types of celestial objects. +From planets and moons to star clusters and galaxies, you can visit every +object in the expandable database and view it from any point in space and +time. The position and movement of solar system objects is calculated +accurately in real time at any rate desired.") + (license license:gpl2+)))) + +(define-public celestia-gtk + (package + (inherit celestia) + (name "celestia-gtk") + (inputs + (append (alist-delete "freeglut" (package-inputs celestia)) + `(("gtk2" ,gtk+-2) + ("gtkglext" ,gtkglext)))) + (arguments + `(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF") + #:tests? #f)))) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 31c9a8b0cf..d3abeec6e6 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2017 Leo Famulari ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -274,13 +275,16 @@ without modification.") `(#:phases (modify-phases %standard-phases (add-after 'install 'remove-redundant-completions - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key + inputs native-inputs + outputs #:allow-other-keys) ;; Util-linux comes with a bunch of completion files for ;; its own commands which are more sophisticated and ;; up-to-date than those of bash-completion. Remove those ;; from bash-completion. (let* ((out (assoc-ref outputs "out")) - (util-linux (assoc-ref inputs "util-linux")) + (util-linux (assoc-ref (or native-inputs inputs) + "util-linux")) (completions (string-append out "/share/bash-completion" "/completions")) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index a1f7b2d2a8..92f2e4f3ab 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4745,3 +4745,27 @@ enhancers. The annotatr package provides an easy way to summarize and visualize the intersection of genomic sites/regions with genomic annotations.") (license license:gpl3))) + +(define-public r-rsubread + (package + (name "r-rsubread") + (version "1.34.2") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "Rsubread" version)) + (sha256 + (base32 + "0bsrw61wcav0q22c5m6gr0vn1f3c3ld8gxj730wcab6dj196z6q3")))) + (properties `((upstream-name . "Rsubread"))) + (build-system r-build-system) + (inputs `(("zlib" ,zlib))) + (home-page "https://bioconductor.org/packages/Rsubread/") + (synopsis "Subread sequence alignment and counting for R") + (description + "This package provides tools for alignment, quantification and analysis +of second and third generation sequencing data. It includes functionality for +read mapping, read counting, SNP calling, structural variant detection and +gene fusion discovery. It can be applied to all major sequencing techologies +and to both short and long sequence reads.") + (license license:gpl3))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f1a73bca7e..4f4d3d9839 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4168,7 +4168,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.") (define-public khmer (package (name "khmer") - (version "2.1.2") + (version "3.0.0a3") (source (origin (method git-fetch) @@ -4178,8 +4178,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.") (file-name (git-file-name name version)) (sha256 (base32 - "02x38d9jw2r58y8dmnj4hffy9wxv1yc1jwbvdbhby9dxndv94r9m")) - (patches (search-patches "khmer-use-libraries.patch")) + "01l4jczglkl7yfhgvzx8j0df7k54bk1r8sli9ll16i1mis0d8f37")) (modules '((guix build utils))) (snippet '(begin @@ -4192,6 +4191,12 @@ command, or queried for specific k-mers with @code{jellyfish query}.") ;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html (delete-file-recursively "third-party/zlib") (delete-file-recursively "third-party/bzip2") + (delete-file-recursively "third-party/seqan") + (substitute* "setup.cfg" + (("# libraries = z,bz2") + "libraries = z,bz2") + (("include:third-party/zlib:third-party/bzip2") + "include:")) #t)))) (build-system python-build-system) (arguments @@ -4208,6 +4213,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.") (inputs `(("zlib" ,zlib) ("bzip2" ,bzip2) + ("seqan" ,seqan-1) ("python-screed" ,python-screed) ("python-bz2file" ,python-bz2file))) (home-page "https://khmer.readthedocs.org/") diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm index 559688470e..c28f1f5554 100644 --- a/gnu/packages/calcurse.scm +++ b/gnu/packages/calcurse.scm @@ -30,14 +30,14 @@ (define-public calcurse (package (name "calcurse") - (version "4.4.0") + (version "4.5.0") (source (origin (method url-fetch) (uri (string-append "https://calcurse.org/files/calcurse-" version ".tar.gz")) (sha256 - (base32 "0vw2xi6a2lrhrb8n55zq9lv4mzxhby4xdf3hmi1vlfpyrpdwkjzd")))) + (base32 "1vjwcmp51h7dsvwn0qx93w9chp3wp970v7d9mjhk7jyamcbfywn3")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (native-inputs `(("tzdata" ,tzdata-for-tests))) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 284670af6b..2991916431 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -461,22 +461,19 @@ test coverage and has a web user interface that will refresh automatically.") (home-page "https://github.com/smartystreets/goconvey") (license license:expat))) -;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be -;; switched back to simply using (PACKAGE-SOURCE ...). (define-public googletest (package (name "googletest") - (version "1.8.0") + (version "1.8.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/google/googletest.git") - (commit (string-append "release-" version)))) + (url "https://github.com/google/googletest.git") + (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399")))) + (base32 "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index a1e40b9ba0..e357556956 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -755,6 +755,11 @@ from forcing GEXP-PROMISE." ("udev" ,eudev) ("valgrind" ,valgrind) ("vulkan-headers" ,vulkan-headers))) + + ;; Building Chromium with a single core takes around 6 hours on an x86_64 + ;; system. Give some leeway for slower or busy machines. + (properties '((timeout . 64800))) ;18 hours + (home-page "https://github.com/Eloston/ungoogled-chromium") (description "Ungoogled-Chromium is the Chromium web browser, with some functionality diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index f4966276a0..db27110645 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -35,6 +35,7 @@ ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Alex Griffin +;;; Copyright © 2019 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -272,14 +273,14 @@ mapping from string keys to string values.") (define-public memcached (package (name "memcached") - (version "1.5.14") + (version "1.5.16") (source (origin (method url-fetch) (uri (string-append "https://memcached.org/files/memcached-" version ".tar.gz")) (sha256 - (base32 "1agj198rm5kc64z8qxck65kdzvw30pdfxalygipnryw0lwlxynww")))) + (base32 "0nnccb697jhdn5gqrh3phibzs6xr4nf4ryv7nmyv5vf11n4jr8j5")))) (build-system gnu-build-system) (inputs `(("libevent" ,libevent) @@ -846,6 +847,19 @@ TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video.") (license (license:x11-style "file://COPYRIGHT")))) +(define-public postgresql-11 + (package + (inherit postgresql) + (name "postgresql") + (version "11.4") + (source (origin + (method url-fetch) + (uri (string-append "https://ftp.postgresql.org/pub/source/v" + version "/postgresql-" version ".tar.bz2")) + (sha256 + (base32 + "12ycjlqncijgmd5z078ybwda8ilas96lc7nxxmdq140mzpgjv002")))))) + (define-public postgresql-9.6 (package (inherit postgresql) @@ -2150,13 +2164,13 @@ etc., and an SQL engine for performing simple SQL queries.") (define-public python-lmdb (package (name "python-lmdb") - (version "0.94") + (version "0.95") (source (origin (method url-fetch) (uri (pypi-uri "lmdb" version)) (sha256 (base32 - "1zh38gvkqw1jm5105if6rr7ccbgyxr7k2rm5ygb9ab3bq82pyaww")) + "0nx9f193gzl33r1lbqhb96h1igya7pz8wmahr8m9x5zgc05hal91")) (modules '((guix build utils))) (snippet ;; Delete bundled lmdb source files. diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 778529436b..06f4430b2d 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -439,15 +439,16 @@ a card with a smaller capacity than stated.") (define-public python-parted (package (name "python-parted") - (version "3.11.1") + (version "3.11.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dcantrell/pyparted/archive/v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dcantrell/pyparted.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0r1nyjj40nacnfnv17x2mnsj6ga1qplyxyza82v2809dfhim2fwq")))) + (base32 "0r6916n3w4vldxrq30a3z2iagvxgly4vfmlidjm65vwqnyv17bvn")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 176aa90eab..34f56d8340 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -236,7 +236,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public emacs-with-editor (package (name "emacs-with-editor") - (version "2.8.0") + (version "2.8.3") (source (origin (method git-fetch) (uri (git-reference @@ -245,7 +245,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (file-name (git-file-name name version)) (sha256 (base32 - "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q")))) + "1z2h9casyw1b93ikq2mf9xixyvbl90zddf0s66lqfiyj2y376pq3")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) @@ -3151,7 +3151,7 @@ build jobs.") (define-public emacs-company (package (name "emacs-company") - (version "0.9.7") + (version "0.9.10") (source (origin (method git-fetch) @@ -3160,7 +3160,7 @@ build jobs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj")))) + (base32 "0shmv48bq9l5xm60dwx9lqyq6b39y3d7qjxdlah7dpipv5vhra42")))) (build-system emacs-build-system) (arguments `(#:phases @@ -4180,7 +4180,7 @@ them easier to distinguish from other, less important buffers.") (define-public emacs-prescient (package (name "emacs-prescient") - (version "2.2.2") + (version "3.1") (source (origin (method git-fetch) (uri (git-reference @@ -4189,7 +4189,7 @@ them easier to distinguish from other, less important buffers.") (file-name (git-file-name name version)) (sha256 (base32 - "1ncplx5p3cffyzg9ygzqqxj0vpvwrz9rp2n4z6c375a78fyydrk0")))) + "1cdjvlwlvxxazz7hlxgvdp0pznvj1gzqa2r6k4im0cpdrnnng6j6")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-company" ,emacs-company) @@ -4615,29 +4615,34 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled (license license:gpl3+)))) (define-public emacs-ivy-rich - (package - (name "emacs-ivy-rich") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Yevgnen/ivy-rich.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ayf3dwfhafcbqnckm65zy8nc1rv9ji939qfn53wbhxkrgqdicgz")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ivy" ,emacs-ivy))) - (home-page "https://github.com/Yevgnen/ivy-rich") - (synopsis "More friendly interface for @code{ivy}") - (description - "This package extends @code{ivy} by showing more information in the + ;; The latest release version has a small mistake that has since been fixed, + ;; so we use a more recent commit. + (let ((commit "f6bfa293c6df0b43cc411876b665816ec3f03d08") + (version "0.1.4") + (revision "1")) + (package + (name "emacs-ivy-rich") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Yevgnen/ivy-rich.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1s8nwwb1z6lkc58g02pi8w99qms948k8d02lw8k8cq47dw87i219")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ivy" ,emacs-ivy))) + (home-page "https://github.com/Yevgnen/ivy-rich") + (synopsis "More friendly interface for @code{ivy}") + (description + "This package extends @code{ivy} by showing more information in the minibuffer for each candidate. It adds columns showing buffer modes, file sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show icons as well.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-avy (package @@ -5105,15 +5110,16 @@ strings, and code folding.") (define-public emacs-nodejs-repl (package (name "emacs-nodejs-repl") - (version "0.2.0") + (version "0.2.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/abicky/nodejs-repl.el" - "/archive/" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/abicky/nodejs-repl.el") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz")) - (file-name (string-append name "-" version ".tar.gz")))) + "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z")))) (build-system emacs-build-system) (home-page "https://github.com/abicky/nodejs-repl.el") (synopsis "Node.js REPL inside Emacs") @@ -5133,14 +5139,14 @@ features: (name "emacs-typescript-mode") (version "0.3") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/ananthakumaran/typescript.el" - "/archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ananthakumaran/typescript.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj")) - (file-name (string-append name "-" version ".tar.gz")))) + "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh")))) (build-system emacs-build-system) (home-page "https://github.com/ananthakumaran/typescript.el") (synopsis "Emacs major mode for editing Typescript code") @@ -5160,13 +5166,14 @@ indentation and filling of comments and C preprocessor fontification.") (name "emacs-tide") (version "3.2.3") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ananthakumaran/tide" - "/archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ananthakumaran/tide") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1c600myr2yqbkmy9lify38lz0zzjdqk1733db5n7vsay16vn6fzi")) - (file-name (string-append name "-" version ".tar.gz")))) + "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) @@ -5761,14 +5768,14 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (name "emacs-wgrep") (version "2.3.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mhayashi1120/Emacs-wgrep/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-wgrep") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1cssqbg03fjb6xwf7idv1l3jjsh9r5r232ryi11czqlxfiv658bj")))) + "0pgyf9vfcahb495q01hi1mvkmv846w4rj6zyf52is8x7sjj7x44s")))) (build-system emacs-build-system) (home-page "https://github.com/mhayashi1120/Emacs-wgrep") (synopsis "Edit a grep buffer and apply those changes to the files") @@ -6760,7 +6767,7 @@ notifications.") (define-public emacs-alert (package (name "emacs-alert") - (version "1.2") + (version "1.3") (source (origin (method git-fetch) @@ -6769,7 +6776,7 @@ notifications.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26")))) + (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-gntp" ,emacs-gntp) @@ -6783,8 +6790,8 @@ customizable by the user.") (license license:gpl2+))) (define-public emacs-zones - (let ((commit "353fc38a6544eb59887bee045e373406f1d038a5") - (revision "1")) + (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe") + (revision "2")) (package (name "emacs-zones") (version (git-version "0" revision commit)) @@ -6797,7 +6804,7 @@ customizable by the user.") (file-name (git-file-name name version)) (sha256 (base32 - "0gwnw2giii2a14nlh62xp45f47cw6ikqphhzpmcw6c7mn9x5z2ar")) + "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl")) (patches (search-patches "emacs-zones-called-interactively.patch")))) @@ -7589,15 +7596,17 @@ and cangjie.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "0.4.2") + (version "0.5.0") (source (origin - (method url-fetch) - (uri (string-append - "https://elpa.gnu.org/packages/posframe-" version ".el")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/tumashu/posframe") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds")))) + "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info (arguments `(#:emacs ,emacs)) @@ -7878,6 +7887,37 @@ other operations.") on mouse-control.") (license license:gpl3+))) +(define-public emacs-gnugo + (package + (name "emacs-gnugo") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/gnugo-" + version ".tar")) + (sha256 + (base32 + "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1")))) + (build-system emacs-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'configure-default-gnugo-xpms-variable + (lambda _ + (substitute* "gnugo.el" + (("defvar gnugo-xpms nil") + "defvar gnugo-xpms #'gnugo-imgen-create-xpms")) + #t))))) + (propagated-inputs + `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode) + ("emacs-xpm" ,emacs-xpm))) + (home-page "https://elpa.gnu.org/packages/gnugo.html") + (synopsis "Emacs major mode for playing GNU Go") + (description "This package provides an Emacs based interface for GNU Go. +It has a graphical mode where the board and stones are drawn using XPM images +and supports the use of a mouse.") + (license license:gpl3+))) + (define-public emacs-gnuplot (package (name "emacs-gnuplot") @@ -7962,20 +8002,20 @@ pressed simultaneously or a single key quickly pressed twice.") (define-public emacs-evil-surround (package (name "emacs-evil-surround") - (version "1.0.0") + (version "1.0.4") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/timcharper/evil-surround.git") - (commit (string-append "v" version)))) + (url "https://github.com/emacs-evil/evil-surround") + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031")))) + (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) - (home-page "https://github.com/timcharper/evil-surround") + (home-page "https://github.com/emacs-evil/evil-surround") (synopsis "Easily modify surrounding parentheses and quotes") (description "@code{emacs-evil-surround} allows easy deletion, change and addition of surrounding pairs, such as parentheses and quotes, in evil mode.") @@ -8636,13 +8676,13 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and (version "1.3.3") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/leathekd/erc-hl-nicks" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/leathekd/erc-hl-nicks") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr")))) + (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f")))) (build-system emacs-build-system) (synopsis "Nickname highlighting for Emacs ERC") (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC @@ -8792,27 +8832,20 @@ an elisp expression.") (define-public emacs-emojify (package (name "emacs-emojify") - (version "0.4") + (version "1.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/iqbalansari/emacs-emojify/" - "releases/download/v" version "/emojify-" - version ".tar")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/iqbalansari/emacs-emojify") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n")))) + "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm")))) (build-system emacs-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-data - (lambda* (#:key outputs #:allow-other-keys) - (copy-recursively "data" - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/guix.d/" - "emojify-" ,version "/data")) - #t))))) + `(#:include (cons "^data/" %default-include))) (propagated-inputs `(("emacs-ht" ,emacs-ht))) (home-page "https://github.com/iqbalansari/emacs-emojify") @@ -8823,6 +8856,36 @@ well as Github-style emojis like @code{:smile:}. It provides a minor mode @code{emojify-mode} to enable the display of emojis in a buffer.") (license license:gpl3+))) +(define-public emacs-make-it-so + (let ((commit "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be") + (version "0.1.0") + (revision "1")) + (package + (name "emacs-make-it-so") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/make-it-so") + (commit commit))) + (sha256 + (base32 + "0833bzlscpnkvjnrg3g54yr246afbjwri8n5wxk8drnsq6acvd8z")))) + (build-system emacs-build-system) + (arguments + `(#:include (cons "^recipes/" %default-include))) + (propagated-inputs + `(("emacs-ivy" ,emacs-ivy))) + (home-page "https://github.com/abo-abo/make-it-so") + (synopsis "Transform files with Makefile recipes") + (description "This package provides an interface for selecting from +different conversion recipes, often including tools like @code{ffmpeg} or +@code{convert}. The conversion command need only be written once, and +subsequent invocations can be readily customized. Several recipes are +included by default, and more can be readily added.") + (license license:gpl3+)))) + (define-public emacs-websocket (package (name "emacs-websocket") @@ -9186,7 +9249,7 @@ Feautures: (define-public emacs-evil-matchit (package (name "emacs-evil-matchit") - (version "2.2.9") + (version "2.3.0") (source (origin (method git-fetch) @@ -9195,7 +9258,7 @@ Feautures: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c")))) + (base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) @@ -9646,6 +9709,27 @@ matches\" in the mode line in various search modes. This is an Emacs port of Anzu.zim.") (license license:gpl3+))) +(define-public emacs-ascii-art-to-unicode + (package + (name "emacs-ascii-art-to-unicode") + (version "1.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-" + version ".el")) + (sha256 + (base32 + "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html") + (synopsis "ASCII to Unicode art converter for Emacs") + (description "This Emacs package provides the commands @command{aa2u} and +@command{aa2u-rectangle}. Both of these commands can be used to convert +simple ASCII art line drawings to Unicode; the former works on the active +region of the buffer, while the latter works on rectangular selections.") + (license license:gpl3+))) + (define-public emacs-emmet-mode (package (name "emacs-emmet-mode") @@ -9758,12 +9842,13 @@ and can be consulted and modified.") (version "0.03") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/syohex/emacs-evil-anzu" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/syohex/emacs-evil-anzu") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns")))) + (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil) @@ -10106,29 +10191,153 @@ text-mode (i.e. Org-mode).") (license license:gpl3+)))) (define-public emacs-outshine - (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6")) - (package - (name "emacs-outshine") - (version (git-version "2.0" "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/outshine.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-outorg" ,emacs-outorg))) - (home-page "https://github.com/alphapapa/outshine") - (synopsis "Emacs outline with outshine") - (description "Outshine attempts to bring the look and feel of + (package + (name "emacs-outshine") + (version "3.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/outshine.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-outorg" ,emacs-outorg))) + (home-page "https://github.com/alphapapa/outshine") + (synopsis "Emacs outline with outshine") + (description "Outshine attempts to bring the look and feel of @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension of @code{outline-minor-mode} (@code{org-mode} itself derives from outline-mode), so there is no such thing like an outshine mode, only @code{outline-minor-mode} with outshine extensions loaded.") + (license license:gpl3+))) + +(define-public emacs-frecency + (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87") + (version "0.1-pre") + (revision "1")) + (package + (name "emacs-frecency") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/frecency.el") + (commit commit))) + (sha256 + (base32 + "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-a" ,emacs-a) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/alphapapa/frecency.el") + (synopsis "Sort items by frequency and recency of access") + (description "This package provides a way of sorting items via +a heuristic based on frequency and recency.") + (license license:gpl3+)))) + +(define-public emacs-org-recent-headings + (package + (name "emacs-org-recent-headings") + (version "0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-recent-headings.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-org" ,emacs-org) + ("emacs-dash" ,emacs-dash) + ("emacs-frecency" ,emacs-frecency))) + (home-page "https://github.com/alphapapa/org-recent-headings") + (synopsis "Navigate to recently used Org headings and lists") + (description "This package maintains a list of recently used Org headings, +as well as functions for navigating between these headings.") + (license license:gpl3+))) + +(define-public emacs-org-super-agenda + (package + (name "emacs-org-super-agenda") + (version "1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-super-agenda") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-org" ,emacs-org) + ("emacs-dash" ,emacs-dash) + ("emacs-ht" ,emacs-ht) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/alphapapa/org-super-agenda") + (synopsis "Supercharged Org agenda") + (description "This package allows items in the Org agenda to be grouped +into sections while preserving the structure imposed by any timestamps.") + (license license:gpl3+))) + +(define-public emacs-org-make-toc + (package + (name "emacs-org-make-toc") + (version "0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-make-toc") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-org" ,emacs-org) + ("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/alphapapa/org-make-toc") + (synopsis "Maintain a table of contents for an Org file") + (description "This package facilitates the creation and maintenance of +tables of contents.") + (license license:gpl3+))) + +(define-public emacs-org-ql + (let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9") + (version "0.1-pre") + (revision "1")) + (package + (name "emacs-org-ql") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-ql") + (commit commit))) + (sha256 + (base32 + "0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-s" ,emacs-s) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/alphapapa/org-ql") + (synopsis "Query language for Org buffers") + (description "This package provides a Lispy query language for Org +files, allowing for actions to be performed based on search criteria.") (license license:gpl3+)))) (define-public emacs-parsebib @@ -11206,10 +11415,10 @@ You should really read org-ref.org in this package for details.") ;; This project is unmaintained. Please use emacs-org-re-reveal instead. (define-public emacs-org-reveal - (let ((commit "1cdd088ec5fab631c564dca7f9f74fd3e9b7d4d4")) + (let ((commit "9210413202a360a559a51e8275faa42be68cf44b")) (package (name "emacs-org-reveal") - (version (git-version "0.1" "2" commit)) + (version (git-version "0.1" "3" commit)) (source (origin (method git-fetch) (uri (git-reference @@ -11218,7 +11427,7 @@ You should really read org-ref.org in this package for details.") (file-name (git-file-name name version)) (sha256 (base32 - "1vjxjadq2i74p96y9jxnqj1yb86fsgxzmn7bjgnb88ay6nvc1l72")))) + "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza")))) (build-system emacs-build-system) (home-page "https://github.com/yjwen/org-reveal") (synopsis "Org and Reveal.js powered HTML presentation tool") @@ -11382,7 +11591,7 @@ downloading manager for Emacs.") (define-public emacs-helpful (package (name "emacs-helpful") - (version "0.15") + (version "0.16") (source (origin (method git-fetch) @@ -11391,10 +11600,14 @@ downloading manager for Emacs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1rqnx7672175288yqaslw0d9vw04j6psw7mys8j9zcp2i72hlvkn")))) + (base32 "1pzlx3galyryd3hd84hnd7r5s6yl9sdrfhy1s6dgz40glw41wmpr")))) (build-system emacs-build-system) (propagated-inputs - `(("emacs-elisp-refs" ,emacs-elisp-refs))) + `(("emacs-elisp-refs" ,emacs-elisp-refs) + ("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("emacs-f" ,emacs-f) + ("emacs-shut-up" ,emacs-shut-up))) (home-page "https://github.com/Wilfred/helpful") (synopsis "More contextual information in Emacs help") (description "@code{helpful} is an alternative to the built-in Emacs help @@ -12780,10 +12993,30 @@ datastructures as needed, both for method parameters and return values, making using XML-RPC methods fairly transparent to the Lisp code.") (license license:gpl3+)))) +(define-public emacs-xpm + (package + (name "emacs-xpm") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/xpm-" + version ".tar")) + (sha256 + (base32 + "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/xpm.html") + (synopsis "XPM image editing mode for Emacs") + (description "This Emacs package makes editing XPM images easy (and maybe +fun). Editing is done directly on the (textual) image format, for maximal +cohesion with the Emacs Way.") + (license license:gpl3+))) + (define-public emacs-fish-completion (package (name "emacs-fish-completion") - (version "1.0") + (version "1.1") (source (origin (method url-fetch) @@ -12793,7 +13026,7 @@ using XML-RPC methods fairly transparent to the Lisp code.") version)) (sha256 (base32 - "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0")))) + "0bpvifv6c2a65nks6kvarw0hhm37fnyy74wikwf9qq1i20va0fpv")))) (build-system emacs-build-system) (inputs `(("fish" ,fish))) (arguments @@ -13593,7 +13826,7 @@ buffers – other modes on the TODO list). (define-public emacs-magit-todos (package (name "emacs-magit-todos") - (version "1.1.7") + (version "1.2") (source (origin (method git-fetch) @@ -13603,7 +13836,7 @@ buffers – other modes on the TODO list). (file-name (git-file-name name version)) (sha256 (base32 - "0qagdxpik64n4rw9scy451ws5sw00v64ri9g2dcw7b66bx2c6c6w")))) + "17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) @@ -14456,7 +14689,7 @@ to open SQLite databases.") (define-public emacs-nix-mode (package (name "emacs-nix-mode") - (version "1.2.2") + (version "1.4.1") (source (origin (method git-fetch) @@ -14465,10 +14698,11 @@ to open SQLite databases.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq")))) + (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7")))) (build-system emacs-build-system) (inputs `(("emacs-company" ,emacs-company) + ("emacs-json-mode" ,emacs-json-mode) ("emacs-mmm-mode" ,emacs-mmm-mode))) (home-page "https://github.com/NixOS/nix-mode") (synopsis "Emacs major mode for editing Nix expressions") @@ -14665,31 +14899,30 @@ recursively. The results are cached for speed.") (license license:gpl3+))) (define-public emacs-orgit - (let ((commit "2456436a7e64d26bcf455b3890a586acaa3e7f93")) - (package - (name "emacs-orgit") - (version (git-version "1.5.1" "2" commit)) - (home-page "https://github.com/magit/orgit") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1i52dq2ynddb1irgigr5mdwfbfd3bvm1f29jnzd7nlc0nk186nvh")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-magit" ,emacs-magit))) - (synopsis "Support for Org links to Magit buffers") - (description "This package defines several Org link types, which can be + (package + (name "emacs-orgit") + (version "1.5.3") + (home-page "https://github.com/magit/orgit") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-magit" ,emacs-magit))) + (synopsis "Support for Org links to Magit buffers") + (description "This package defines several Org link types, which can be used to link to certain Magit buffers. Use the command @command{org-store-link} while such a buffer is current to store a link. Later you can insert it into an Org buffer using the command @code{org-insert-link}.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-amx (package @@ -15616,7 +15849,7 @@ previewed by scrolling up and down within a @code{dired} buffer.") (define-public emacs-counsel-etags (package (name "emacs-counsel-etags") - (version "1.8.3") + (version "1.8.4") (source (origin (method git-fetch) @@ -15626,7 +15859,7 @@ previewed by scrolling up and down within a @code{dired} buffer.") (file-name (git-file-name name version)) (sha256 (base32 - "1d8nlrbsyza6q7yqm9248bxxsf49qf6hchg3zwv0l11acn3w8np5")))) + "14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy))) @@ -15636,6 +15869,32 @@ previewed by scrolling up and down within a @code{dired} buffer.") and searching through @code{Ctags} files.") (license license:gpl3+))) +(define-public emacs-org-download + (let ((commit "ac72bf8fce3e855da60687027b6b8601cf1de480") + (version "0.1.0") + (revision "1")) + (package + (name "emacs-org-download") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/org-download") + (commit commit))) + (sha256 + (base32 + "0ax5wd44765wnwabkam1g2r62gq8crx2qq733s2mg1z72cfvwxqb")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-org" ,emacs-org) + ("emacs-async" ,emacs-async))) + (home-page "https://github.com/abo-abo/org-download") + (synopsis "Facilitate moving images") + (description "This package provides utilities for managing image files +copied into @code{org-mode} buffers.") + (license license:gpl3+)))) + (define-public emacs-helm-dash (let ((commit "192b862185df661439a06de644791171e899348a") (version "1.3.0") diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index c32569dd1b..c1ae14bc42 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -233,7 +233,7 @@ turbo speed, networked multiplayer, and graphical enhancements.") (define-public dosbox (package (name "dosbox") - (version "0.74-2") + (version "0.74-3") (source (origin (method url-fetch) (uri (string-append "https://sourceforge.net/projects/dosbox" @@ -242,7 +242,7 @@ turbo speed, networked multiplayer, and graphical enhancements.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ksp1b5szi0vy4x55rm3j1y9wq5mlslpy8llpg87rpdyjlsk0xvh")))) + "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm index 0392a709e2..ce148b47a5 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc ;;; Copyright © 2018 Marius Bakke +;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ (define-public enchant (package (name "enchant") - (version "2.2.3") + (version "2.2.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/AbiWord/enchant/releases" @@ -40,7 +41,7 @@ version ".tar.gz")) (sha256 (base32 - "0v87p1ls0gym95qirijpclk650sjbkcjjl6ssk059zswcwaykn5b")))) + "1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static" diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 5b95bcb704..cd5d3b7d9a 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -399,7 +399,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") (package (inherit electrum) (name "electron-cash") - (version "4.0.1") + (version "4.0.7") (source (origin (method url-fetch) @@ -410,7 +410,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") ".tar.gz")) (sha256 (base32 - "16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48")) + "0xswmr68cm1c77lzisi3z812jzqczm9dfrshfhdq42zz5kaz4gnn")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b9527659db..4b37ffdf3c 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -631,7 +631,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public weston (package (name "weston") - (version "6.0.0") + (version "6.0.1") (source (origin (method url-fetch) (uri (string-append @@ -639,7 +639,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "weston-" version ".tar.xz")) (sha256 (base32 - "04p6hal5kalmdp5dxwh2h5qhkkb4dvbsk7l091zvvcq70slj6qsl")))) + "1d2m658ll8x7prlsfk71qgw89c7dz6y7d6nndfxwl49fmrd6sbxz")))) (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 63ccd20470..05a68b717a 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -153,15 +153,15 @@ is used in some video games and movies.") (define-public deutex (package (name "deutex") - (version "5.1.2") + (version "5.2.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/Doom-Utils/" name + (uri (string-append "https://github.com/Doom-Utils/deutex" "/releases/download/v" version "/" - name "-" version ".tar.xz")) + "deutex-" version ".tar.xz")) (sha256 (base32 - "1rj3w4xa0n4jixy4j7p6gbclylbgxvhdnji7xnkydrqii9rxnbp4")))) + "1d536d3i78k4ch8mjg7lqnamnyfpp2x5x7mzx5smqi9ad8lb6hqz")))) (build-system gnu-build-system) (native-inputs `(("asciidoc" ,asciidoc))) (home-page "https://github.com/Doom-Utils/deutex") @@ -1511,3 +1511,29 @@ added. The permanent goal is to create the open source Quake 3 distribution upon which people base their games, ports to new platforms, and other projects.") (license license:gpl2)))) + +(define-public openvr + (package + (name "openvr") + (version "1.4.18") + (home-page "https://github.com/ValveSoftware/openvr/") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0m92634j6g0f2xybbzklm79cnq20vidbk1jc62pnz12aabwixvyh")))) + (build-system cmake-build-system) + (arguments + ;; No tests. + '(#:tests? #f + #:configure-flags (list "-DBUILD_SHARED=1"))) + (synopsis "Virtual reality software development kit") + (description "OpenVR is an API and runtime that allows access to VR +hardware from multiple vendors without requiring that applications have +specific knowledge of the hardware they are targeting.") + (license license:bsd-3))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8e8c6c8058..a102dc962f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2019 Julien Lepiller ;;; Copyright © 2019 Jesse Gibbons ;;; Copyright © 2019 Dan Frumin +;;; Copyright © 2019 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. ;;; @@ -130,6 +131,7 @@ #:use-module (gnu packages netpbm) #:use-module (gnu packages networking) #:use-module (gnu packages ocaml) + #:use-module (gnu packages opencl) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) @@ -3542,7 +3544,7 @@ with the \"Stamp\" tool within Tux Paint.") (description "SuperTux is a free classic 2D jump'n run sidescroller game in a style similar to the original Super Mario games covered under the GNU GPL.") - (home-page "https://supertuxproject.org/") + (home-page "https://supertux.org/") (license license:gpl3+))) (define-public tintin++ @@ -7250,6 +7252,26 @@ the game avoids complex inventory management and character building, relying on items and player adaptability for character progression.") (license license:isc))) +(define-public harmonist-tk + (package + (inherit harmonist) + (name "harmonist-tk") + (arguments + (append + (package-arguments harmonist) + `(#:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "go" "install" "-v" "-x" "--tags" "tk" + "git.tuxfamily.org/harmonist/harmonist"))) + (replace 'check + (lambda _ + (invoke "go" "test" "--tags" "tk" + "git.tuxfamily.org/harmonist/harmonist"))))))) + (inputs + `(("go-github.com-nsf-gothic" ,go-github.com-nsf-gothic))))) + (define-public drascula (package (name "drascula") @@ -7556,3 +7578,52 @@ remake of that series or any other game.") ;; released under both gpl2 and cc-by-sa3.0. Bundled Gigi library is ;; released under lgpl2.1+. (license (list license:gpl2 license:cc-by-sa3.0 license:lgpl2.1+)))) + +(define-public leela-zero + (package + (name "leela-zero") + (version "0.17") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/leela-zero/leela-zero.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "17px5iny8mql5c01bymcli7zfssswkzvb2i8gnsmjcck6i2n8srl")) + (patches (search-patches "leela-zero-gtest.patch")))) + (build-system cmake-build-system) + (native-inputs + `(("googletest" ,googletest))) + (inputs + `(("boost" ,boost) + ("ocl-icd" ,ocl-icd) + ("openblas" ,openblas) + ("opencl-headers" ,opencl-headers) + ("qtbase" ,qtbase) + ("zlib" ,zlib))) + (arguments + '(#:configure-flags '("-DUSE_BLAS=YES") + #:phases (modify-phases %standard-phases + (add-before 'configure 'fix-tests + (lambda* (#:key outputs #:allow-other-keys) + (let ((home (getcwd))) + (setenv "HOME" home) + (substitute* "src/tests/gtests.cpp" + (("\\.\\./src/tests/0k\\.txt") + (string-append home "/src/tests/0k.txt")) + (("cfg_gtp_mode = true;") + "cfg_gtp_mode = true; cfg_cpu_only = true;"))) + #t)) + (replace 'check + (lambda _ + (invoke "./tests")))))) + (home-page "https://github.com/leela-zero/leela-zero") + (synopsis "Program playing the game of Go") + (description + "Leela-zero is a Go engine with no human-provided knowledge, modeled after +the AlphaGo Zero paper. The current best network weights file for the engine +can be downloaded from @url{https://zero.sjeng.org/best-network}.") + (license license:gpl3+))) diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm new file mode 100644 index 0000000000..2db3fdb918 --- /dev/null +++ b/gnu/packages/genealogy.scm @@ -0,0 +1,112 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Guillaume Le Vaillant +;;; +;;; 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 . + +(define-module (gnu packages genealogy) + #:use-module (guix build-system python) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (gnu packages fonts) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages geo) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages version-control)) + +(define-public gramps + (package + (name "gramps") + (version "5.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gramps-project/gramps.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7")))) + (build-system python-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("intltool" ,intltool))) + (inputs + `(("font-gnu-freefont-ttf" ,font-gnu-freefont-ttf) + ("geocode-glib" ,geocode-glib) + ("gexiv2" ,gexiv2) + ("ghostscript" ,ghostscript) + ("gobject-introspection" ,gobject-introspection) + ("gtk+" ,gtk+) + ("gtkspell3" ,gtkspell3) + ("graphviz" ,graphviz) + ("librsvg" ,librsvg) + ("osm-gps-map" ,osm-gps-map) + ("pango" ,pango) + ("python-bsddb3" ,python-bsddb3) + ("python-pillow" ,python-pillow) + ("python-pycairo" ,python-pycairo) + ("python-pygobject" ,python-pygobject) + ("python-pyicu" ,python-pyicu) + ("rcs" ,rcs) + ("sqlite" ,sqlite) + ("xdg-utils" ,xdg-utils))) + (arguments + `(#:imported-modules ((guix build glib-or-gtk-build-system) + ,@%python-build-system-modules) + #:modules ((ice-9 match) + (guix build python-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-before 'check 'set-home-for-tests + (lambda _ + (setenv "HOME" (getenv "TMPDIR")) + #t)) + (add-before 'wrap 'wrap-with-GI_TYPELIB_PATH + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (paths (map (match-lambda + ((output . directory) + (let ((girepodir (string-append + directory + "/lib/girepository-1.0"))) + (if (file-exists? girepodir) + girepodir + #f)))) + inputs))) + (wrap-program (string-append out "/bin/gramps") + `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths)))) + #t)) + (add-after 'wrap 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (home-page "https://gramps-project.org") + (synopsis "Genealogical research software") + (description + "Gramps is a free software project and community striving to produce +a genealogy program that is both intuitive for hobbyists and feature-complete +for professional genealogists.") + (license license:gpl2+))) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 2c511c7193..2ee74794d8 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -872,3 +872,36 @@ dropping features at lower levels.") OpenStreetMap project. They can be used to convert, filter and update OpenStreetMap data files.") (license license:agpl3))) + +(define-public osm-gps-map + (package + (name "osm-gps-map") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/nzjrs/osm-gps-map/releases/download/" + version "/osm-gps-map-" version ".tar.gz")) + (sha256 + (base32 + "11imsf4cz1dpxdjh178k2s29axmq86rkfg1pqmn7incyxmjzhbwg")))) + (build-system gnu-build-system) + (native-inputs + `(("gnome-common" ,gnome-common) + ("gtk-doc" ,gtk-doc) + ("pkg-config" ,pkg-config))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gobject-introspection" ,gobject-introspection) + ("gtk+" ,gtk+) + ("libsoup" ,libsoup))) + (home-page "https://nzjrs.github.io/osm-gps-map/") + (synopsis "GTK+ widget for displaying OpenStreetMap tiles") + (description + "This package provides a GTK+ widget (and Python bindings) that when +given GPS coordinates,draws a GPS track, and points of interest on a moving +map display. Downloads map data from a number of websites, including +@url{https://www.openstreetmap.org}.") + (license license:gpl2+))) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 96e7fc7165..99d2ec6cdb 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -399,6 +399,31 @@ device drivers allows Mesa to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs.") (license license:x11))) +(define-public mesa-opencl + (package + (inherit mesa) + (name "mesa-opencl") + (arguments + (substitute-keyword-arguments (package-arguments mesa) + ((#:configure-flags flags) + `(cons "-Dgallium-opencl=standalone" ,flags)))) + (inputs + `(("libclc" ,libclc) + ,@(package-inputs mesa))) + (native-inputs + `(("clang" ,clang) + ,@(package-native-inputs mesa))))) + +(define-public mesa-opencl-icd + (package + (inherit mesa-opencl) + (name "mesa-opencl-icd") + (arguments + (substitute-keyword-arguments (package-arguments mesa) + ((#:configure-flags flags) + `(cons "-Dgallium-opencl=icd" + ,(delete "-Dgallium-opencl=standalone" flags))))))) + (define-public mesa-headers (package (inherit mesa) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f8a6a774da..b7152a3aff 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7392,8 +7392,21 @@ kill/reinice processes.") "/pyatspi-" version ".tar.xz")) (sha256 (base32 - "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6")))) + "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6")) + ;; Patch from upstream, fixed in newer versions. + (patches (search-patches "python-pyatspi-python-37.patch")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'fix-atk-load + (lambda _ + (substitute* "pyatspi/__init__.py" + (("from gi.repository import Atspi") + "gi.require_version('Gtk', '3.0') +from gi.repository import Gtk +from gi.repository import Atspi")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index ab75925a9d..00608c2c8b 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -377,15 +377,13 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.13.0") + (version "1.13.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnupg/gpgme/gpgme-" version - ".tar.bz2")) + (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2")) (sha256 - (base32 - "0c6676g0yhfsmy32i1dgwh5cx0ja8vhcqf4k08zad177m53kxcnl")))) + (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4")))) (build-system gnu-build-system) (native-inputs `(("gnupg" ,gnupg))) @@ -669,17 +667,17 @@ PGP keysigning parties.") (define-public signing-party (package (name "signing-party") - (version "2.7") - (home-page "https://salsa.debian.org/debian/signing-party") + (version "2.10") + (home-page "https://salsa.debian.org/signing-party-team/signing-party") (source (origin (method git-fetch) (uri (git-reference (url home-page) - (commit (string-append "release-" version)))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1gx9017wag4bgc0h7kca9n3jwwdm7z77yv3viayhg62flbwkvbgb")))) + "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf-wrapper) @@ -691,7 +689,7 @@ PGP keysigning parties.") ("perl-net-idn-encode" ,perl-net-idn-encode) ("libmd" ,libmd))) (arguments - `(#:tests? #f + `(#:tests? #f ; no test suite #:phases (modify-phases %standard-phases (replace 'configure diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index c2356f2a44..a874878fea 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -426,7 +426,7 @@ from forcing GEXP-PROMISE." #:system system #:guile-for-build guile))) -(define %icecat-version "60.7.0-guix2") +(define %icecat-version "60.7.2-guix1") ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -448,7 +448,7 @@ from forcing GEXP-PROMISE." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "08x0nijh0ja5jza95a8y030ibk756bn7zlw3a3c4750yilfhqpqa")))) + "1hkaq8mavmn2wphfbrlq3v56jvmvfi2nyvrkjgr28rc01jkqx4ca")))) (upstream-icecat-base-version "60.7.0") ; maybe older than base-version (upstream-icecat-gnu-version "1") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 43888ab23f..e4d6af51c5 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages libffi) + #:use-module (gnu packages linux) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -1687,12 +1688,12 @@ input.") (origin (method url-fetch) (uri (string-append "https://alpha.gnu.org/gnu/ssw/" - name "-" version ".tar.gz")) + "spread-sheet-widget-" version ".tar.gz")) (sha256 (base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y")))) (build-system gnu-build-system) (native-inputs - `(("glib" ,glib "bin") ; for glib-genmarshal, etc. + `(("glib" ,glib "bin") ; for glib-genmarshal, etc. ("pkg-config" ,pkg-config))) ;; In 'Requires' of spread-sheet-widget.pc. (propagated-inputs @@ -1706,6 +1707,38 @@ viewing and manipulating 2 dimensional tabular data in a manner similar to many popular spread sheet programs.") (license license:gpl3+))) +(define-public volumeicon + (package + (name "volumeicon") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://nullwise.com/files/volumeicon/volumeicon-" + version ".tar.gz")) + (sha256 + (base32 "182xl2w8syv6ky2h2bc9imc6ap8pzh0p7rp63hh8nw0xm38c3f14")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--enable-notify"))) ; optional libnotify support + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("gtk+" ,gtk+) + ("libnotify" ,libnotify))) + (home-page "http://nullwise.com/volumeicon.html") + (synopsis "System tray volume applet") + (description + "Volume Icon is a volume indicator and control applet for @acronym{the +Advanced Linux Sound Architecture, ALSA}. It sits in the system tray, +independent of your desktop environment, and supports global key bindings.") + (license (list license:expat ; src/{bind.c,keybinder.h} + license:isc ; src/alsa_volume_mapping.c + license:gpl3)))) ; the rest & combined work + (define-public yad (package (name "yad") diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index c02606f919..a8352380f7 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2123,7 +2123,14 @@ chunks can be expressions as well as simple tokens.") (file-name (git-file-name name version)) (sha256 (base32 - "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522")))) + "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Install .go files in the right place. + (substitute* "Makefile.am" + (("/ccache") "/site-ccache")) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -2163,8 +2170,8 @@ serializing continuations or delimited continuations.") (license license:lgpl2.0+)))) (define-public python-on-guile - (let ((commit "058c596cd3886447da31171e1026d4d19f5f5313") - (revision "2")) + (let ((commit "00a51a23247f1edc4ae8eda72b30df5cd7d0015f") + (revision "3")) (package (name "python-on-guile") (version (git-version "0.1.0" revision commit)) @@ -2176,16 +2183,27 @@ serializing continuations or delimited continuations.") (file-name (git-file-name name version)) (sha256 (base32 - "0ppyh5kkhsph5kc091p2b5a3alnj3wnlx8jr5xpyhrsj0vx9cqph")))) + "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; not supported - #:make-flags - '("GUILE_AUTO_COMPILE=0") ; to prevent guild errors + #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings + #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir - (lambda _ (chdir "modules") #t))))) + (lambda _ (chdir "modules") #t)) + (add-after 'install 'wrap + (lambda* (#:key outputs #:allow-other-keys) + ;; Wrap the 'python' executable so it can find its + ;; dependencies. + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/python") + `("GUILE_LOAD_PATH" ":" prefix + (,(getenv "GUILE_LOAD_PATH"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,(getenv "GUILE_LOAD_COMPILED_PATH")))) + #t)))))) (inputs `(("guile" ,guile-2.2))) (propagated-inputs @@ -2384,3 +2402,37 @@ and minor modes, etc., and can also be used as a pure Guile library. It comes with a simple counter example using GLUT and browser examples in C using gtk+-3 and webkitgtk.") (license license:gpl3+)))) + +(define-public guile-jpeg + (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046") + (revision "0")) + (package + (name "guile-jpeg") + (version (git-version "0.0" revision commit)) + (home-page "https://gitlab.com/wingo/guile-jpeg") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit commit))) + (sha256 + (base32 + "05z9m408w3h6aqb5k3r3qa7khir0k10rxwvsrzhkcq1hr5vbmr4m")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + ;; Install .go files in the right place. + (substitute* "Makefile.am" + (("/ccache") "/site-ccache")) + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("guile" ,guile-2.2))) + (synopsis "JPEG file parsing library for Guile") + (description + "Guile-JPEG is a Scheme library to parse JPEG image files and to +perform geometrical transforms on JPEG images.") + (license license:gpl3+)))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 390b74c333..0e5631bbe3 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1006,27 +1006,19 @@ channels.") (define-public exiv2 (package (name "exiv2") - (version "0.26") - (source (origin - (method url-fetch) - (uri (list (string-append "https://www.exiv2.org/builds/exiv2-" - version "-trunk.tar.gz") - (string-append "https://www.exiv2.org/exiv2-" - version ".tar.gz") - (string-append "https://fossies.org/linux/misc/exiv2-" - version ".tar.gz"))) - (patches (search-patches "exiv2-CVE-2017-14860.patch" - "exiv2-CVE-2017-14859-14862-14864.patch")) - (sha256 - (base32 - "1yza317qxd8yshvqnay164imm0ks7cvij8y8j86p1gqi1153qpn7")))) - (build-system gnu-build-system) - (arguments '(#:tests? #f)) ; no `check' target + (version "0.27.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.exiv2.org/builds/exiv2-" version + "-Source.tar.gz")) + (sha256 + (base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; no test suite (propagated-inputs `(("expat" ,expat) ("zlib" ,zlib))) - (native-inputs - `(("intltool" ,intltool))) (home-page "https://www.exiv2.org/") (synopsis "Library and command-line utility to manage image metadata") (description diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2dad131c00..403c446a82 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2096,6 +2096,50 @@ new Date();")) "This package provides the Java development kit OpenJDK.") (license license:gpl2+))) +(define-public openjdk12 + (package + (inherit openjdk11) + (name "openjdk") + (version "12.33") + (source (origin + (method url-fetch) + (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2") + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2")) + (modules '((guix build utils))) + (snippet + `(begin + (for-each delete-file (find-files "." ".*.bin$")) + (for-each delete-file (find-files "." ".*.exe$")) + (for-each delete-file (find-files "." ".*.jar$")) + #t)))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("cups" ,cups) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("giflib" ,giflib) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxt" ,libxt) + ("libxtst" ,libxtst))) + (native-inputs + `(("autoconf" ,autoconf) + ("openjdk11" ,openjdk11) + ("openjdk11:jdk" ,openjdk11 "jdk") + ("pkg-config" ,pkg-config) + ("unzip" ,unzip) + ("which" ,which) + ("zip" ,zip))) + (home-page "https://openjdk.java.net/projects/jdk/12"))) + (define-public icedtea icedtea-8) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f0fa6bba92..f1fdcba311 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -421,8 +421,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." It has been modified to remove all non-free binary blobs.") (license license:gpl2))) -(define %linux-libre-version "5.1.11") -(define %linux-libre-hash "15hmqycsggqd9bwrf229b7f0pfznzs03kpzcwrd9j867pvgwyl8c") +(define %linux-libre-version "5.1.15") +(define %linux-libre-hash "1f0hhyjsm4bl7k7w88aifvhmqmjkvkvlpd2b69y7s6csr22fk6v4") (define %linux-libre-5.1-patches (list %boot-logo-patch @@ -439,8 +439,8 @@ It has been modified to remove all non-free binary blobs.") (make-linux-libre-headers %linux-libre-version %linux-libre-hash)) -(define %linux-libre-4.19-version "4.19.52") -(define %linux-libre-4.19-hash "1wsrgrskmvipm7j4kzir93p9dp3iy49522163ghfxx71b1b2v4dg") +(define %linux-libre-4.19-version "4.19.56") +(define %linux-libre-4.19-hash "1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx") (define %linux-libre-4.19-patches (list %boot-logo-patch @@ -457,8 +457,8 @@ It has been modified to remove all non-free binary blobs.") (make-linux-libre-headers %linux-libre-4.19-version %linux-libre-4.19-hash)) -(define %linux-libre-4.14-version "4.14.127") -(define %linux-libre-4.14-hash "0dkzgxfzzc6n3k2x8nzzx98c6y3fhsr695rm46ahvg7fdg3vgcmi") +(define %linux-libre-4.14-version "4.14.130") +(define %linux-libre-4.14-hash "1fk6ds0q2rykr6byvfass8f5a9k6qq9sk261wjcfp1gn8b9wmxws") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version @@ -471,14 +471,14 @@ It has been modified to remove all non-free binary blobs.") %linux-libre-4.14-hash)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.182" - "1615v8ywwdm204bimq2cf6qv0zas14yagpr8lk9a5zqxas4p4rns" + (make-linux-libre "4.9.183" + "1w3syih3fggwkpcl6zkmm9f6577r2jvack4br5ffccgcddkz52ia" '("x86_64-linux" "i686-linux") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.182" - "0ggs5pyjr7a9mldskfbsybzxlb3lmfbhxg5q2qpzxnh1c8wcn53h" + (make-linux-libre "4.4.183" + "1v21n5kwnv9n18gfp2dz9hsdkwmfwigalr82xsnwbzhs0x561bxx" '("x86_64-linux" "i686-linux") #:configuration-file kernel-config #:extra-options diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index dfc58d469f..58813c2d84 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -47,6 +47,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages bison) + #:use-module (gnu packages c) #:use-module (gnu packages compression) #:use-module (gnu packages ed) #:use-module (gnu packages flex) @@ -65,6 +66,8 @@ #:use-module (gnu packages linux) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages sqlite) @@ -5369,3 +5372,627 @@ command line, to data scanning and extracting scripts, to full application development in a wide-range of areas.") (home-page "https://nongnu.org/txr/") (license license:bsd-2))) + +(define-public sbcl-clunit + (let ((commit "6f6d72873f0e1207f037470105969384f8380628") + (revision "1")) + (package + (name "sbcl-clunit") + (version (git-version "0.2.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tgutu/clunit.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85")))) + (build-system asdf-build-system/sbcl) + (synopsis "CLUnit is a Common Lisp unit testing framework") + (description + "CLUnit is a Common Lisp unit testing framework. It is designed +to be easy to use so that you can quickly start testing. CLUnit +provides a rich set of features aimed at improving your unit testing +experience.") + (home-page "http://tgutu.github.io/clunit/") + ;; MIT License + (license license:expat)))) + +(define-public cl-clunit + (sbcl-package->cl-source-package sbcl-clunit)) + +(define-public ecl-clunit + (sbcl-package->ecl-package sbcl-clunit)) + +(define-public sbcl-py4cl + (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136") + (revision "1")) + (package + (name "sbcl-py4cl") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bendudson/py4cl.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r")) + (modules '((guix build utils))))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("sbcl-clunit" ,sbcl-clunit))) + (inputs + `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage))) + (propagated-inputs + ;; This package doesn't do anything without python available + `(("python" ,python) + ;; For multi-dimensional array support + ("python-numpy" ,python-numpy))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'replace-*base-directory*-var + (lambda* (#:key outputs #:allow-other-keys) + ;; In the ASD, the author makes an attempt to + ;; programatically determine the location of the + ;; source-code so lisp can call into "py4cl.py". We can + ;; hard-code this since we know where this file will + ;; reside. + (substitute* "src/callpython.lisp" + (("py4cl/config:\\*base-directory\\*") + (string-append + "\"" + (assoc-ref outputs "out") + "/share/common-lisp/sbcl-source/py4cl/" + "\"")))))))) + (synopsis "Call python from Common Lisp") + (description + "Py4CL is a bridge between Common Lisp and Python, which enables Common +Lisp to interact with Python code. It uses streams to communicate with a +separate python process, the approach taken by cl4py. This is different to +the CFFI approach used by burgled-batteries, but has the same goal.") + (home-page "https://github.com/bendudson/py4cl") + ;; MIT License + (license license:expat)))) + +(define-public cl-py4cl + (sbcl-package->cl-source-package sbcl-py4cl)) + +(define-public ecl-py4cl + (sbcl-package->ecl-package sbcl-py4cl)) + +(define-public sbcl-parse-declarations + (package + (name "sbcl-parse-declarations") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://beta.quicklisp.org/archive/parse-declarations/" + "2010-10-06/parse-declarations-20101006-darcs.tgz")) + (sha256 + (base32 + "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-file "parse-declarations-1.0.asd" + #:asd-system-name "parse-declarations-1.0")) + (home-page "https://common-lisp.net/project/parse-declarations/") + (synopsis "Parse, filter, and build declarations") + (description + "Parse-Declarations is a Common Lisp library to help writing +macros which establish bindings. To be semantically correct, such +macros must take user declarations into account, as these may affect +the bindings they establish. Yet the ANSI standard of Common Lisp does +not provide any operators to work with declarations in a convenient, +high-level way. This library provides such operators.") + ;; MIT License + (license license:expat))) + +(define-public cl-parse-declarations + (sbcl-package->cl-source-package sbcl-parse-declarations)) + +(define-public ecl-parse-declarations + (sbcl-package->ecl-package sbcl-parse-declarations)) + +(define-public sbcl-cl-quickcheck + (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f") + (revision "1")) + (package + (name "sbcl-cl-quickcheck") + (version (git-version "0.0.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mcandre/cl-quickcheck.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767")))) + (build-system asdf-build-system/sbcl) + (synopsis + "Common Lisp port of the QuickCheck unit test framework") + (description + "Common Lisp port of the QuickCheck unit test framework") + (home-page "https://github.com/mcandre/cl-quickcheck") + ;; MIT + (license license:expat)))) + +(define-public cl-cl-quickcheck + (sbcl-package->cl-source-package sbcl-cl-quickcheck)) + +(define-public ecl-cl-quickcheck + (sbcl-package->ecl-package sbcl-cl-quickcheck)) + +(define-public sbcl-burgled-batteries3 + (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e") + (revision "1")) + (package + (name "sbcl-burgled-batteries3") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/snmsts/burgled-batteries3.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-*cpython-include-dir*-var + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "grovel-include-dir.lisp" + (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)") + (string-append + "(defparameter *cpython-include-dir* \"" + (assoc-ref inputs "python") + "/include/python3.7m" + "\")"))) + (substitute* "ffi-interface.lisp" + (("\\*cpython-lib\\*") + (format #f "'(\"~a/lib/libpython3.so\")" + (assoc-ref inputs "python")))) + #t))))) + (native-inputs + `(("python" ,python) + ("sbcl-cl-fad" ,sbcl-cl-fad) + ("sbcl-lift" ,sbcl-lift) + ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck))) + (inputs + `(("sbcl-cffi" ,sbcl-cffi) + ("sbcl-cffi-grovel" ,sbcl-cffi-grovel) + ("sbcl-alexandria" , sbcl-alexandria) + ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations) + ("sbcl-trivial-garbage" ,sbcl-trivial-garbage))) + (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)") + (description + "This package provides a shim between Python3 (specifically, the +CPython implementation of Python) and Common Lisp.") + (home-page "https://github.com/snmsts/burgled-batteries3") + ;; MIT + (license license:expat)))) + +(define-public cl-burgled-batteries3 + (sbcl-package->cl-source-package sbcl-burgled-batteries3)) + +(define-public ecl-burgled-batteries3 + (sbcl-package->ecl-package sbcl-burgled-batteries3)) + +(define-public sbcl-metabang-bind + (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e") + (revision "1")) + (package + (name "sbcl-metabang-bind") + (version (git-version "0.8.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gwkkwg/metabang-bind.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("sbcl-lift" ,sbcl-lift))) + (synopsis "Macro that generalizes @code{multiple-value-bind} etc.") + (description + "Bind extends the idea of of let and destructing to provide a uniform +syntax for all your accessor needs. It combines @code{let}, +@code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure +editing, property or association-lists, and @code{multiple-value-bind} and a +whole lot more into a single form.") + (home-page "https://common-lisp.net/project/metabang-bind/") + ;; MIT License + (license license:expat)))) + +(define-public cl-metabang-bind + (sbcl-package->cl-source-package sbcl-metabang-bind)) + +(define-public ecl-metabang-bind + (sbcl-package->ecl-package sbcl-metabang-bind)) + +(define-public sbcl-fare-utils + (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724") + (revision "1")) + (package + (name "sbcl-fare-utils") + (version (git-version "1.0.0.5" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url + "https://gitlab.common-lisp.net/frideau/fare-utils.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:test-asd-file "test/fare-utils-test.asd")) + (native-inputs + `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil))) + (synopsis "Collection of utilities and data structures") + (description + "fare-utils is a small collection of utilities. It contains a lot of +basic everyday functions and macros.") + (home-page "https://gitlab.common-lisp.net/frideau/fare-utils") + ;; MIT License + (license license:expat)))) + +(define-public cl-fare-utils + (sbcl-package->cl-source-package sbcl-fare-utils)) + +(define-public ecl-fare-utils + (sbcl-package->ecl-package sbcl-fare-utils)) + +(define-public sbcl-idna + (package + (name "sbcl-idna") + (build-system asdf-build-system/sbcl) + (version "0.2.2") + (home-page "https://github.com/antifuchs/idna") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2")))) + (inputs + `(("split-sequence" ,sbcl-split-sequence))) + (synopsis "IDNA string encoding and decoding routines for Common Lisp") + (description "This Common Lisp library provides string encoding and +decoding routines for IDNA, the International Domain Names in Applications.") + (license license:expat))) + +(define-public cl-idna + (sbcl-package->cl-source-package sbcl-idna)) + +(define-public ecl-idna + (sbcl-package->ecl-package sbcl-idna)) + +(define-public sbcl-swap-bytes + (package + (name "sbcl-swap-bytes") + (build-system asdf-build-system/sbcl) + (version "1.1") + (home-page "https://github.com/sionescu/swap-bytes") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55")))) + (inputs + `(("trivial-features" ,sbcl-trivial-features))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (arguments + ;; TODO: Tests fail, why? + `(#:tests? #f)) + (synopsis "Efficient endianness conversion for Common Lisp") + (description "This Common Lisp library provides optimized byte-swapping +primitives. The library can change endianness of unsigned integers of length +1/2/4/8. Very useful in implementing various network protocols and file +formats.") + (license license:expat))) + +(define-public cl-swap-bytes + (sbcl-package->cl-source-package sbcl-swap-bytes)) + +(define-public ecl-swap-bytes + (sbcl-package->ecl-package sbcl-swap-bytes)) + +(define-public sbcl-iolib.asdf + ;; Latest release is from June 2017. + (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4") + (revision "1")) + (package + (name "sbcl-iolib.asdf") + (build-system asdf-build-system/sbcl) + (version "0.8.3") + (home-page "https://github.com/sionescu/iolib") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm")))) + (inputs + `(("alexandria" ,sbcl-alexandria))) + (arguments + '(#:asd-file "iolib.asdf.asd")) + (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library") + (description "IOlib is to be a better and more modern I/O library than +the standard Common Lisp library. It contains a socket library, a DNS +resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)} +and @code{kqueue(2)}), a pathname library and file-system utilities.") + (license license:expat)))) + +(define-public sbcl-iolib.conf + (package + (inherit sbcl-iolib.asdf) + (name "sbcl-iolib.conf") + (inputs + `(("iolib.asdf" ,sbcl-iolib.asdf))) + (arguments + '(#:asd-file "iolib.conf.asd")) + (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library"))) + +(define-public sbcl-iolib.common-lisp + (package + (inherit sbcl-iolib.asdf) + (name "sbcl-iolib.common-lisp") + (inputs + `(("iolib.asdf" ,sbcl-iolib.asdf) + ("iolib.conf" ,sbcl-iolib.conf))) + (arguments + '(#:asd-file "iolib.common-lisp.asd")) + (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library"))) + +(define-public sbcl-iolib.base + (package + (inherit sbcl-iolib.asdf) + (name "sbcl-iolib.base") + (inputs + `(("iolib.asdf" ,sbcl-iolib.asdf) + ("iolib.conf" ,sbcl-iolib.conf) + ("iolib.common-lisp" ,sbcl-iolib.common-lisp) + ("split-sequence" ,sbcl-split-sequence))) + (arguments + '(#:asd-file "iolib.base.asd")) + (synopsis "Base package for IOLib, a Common Lisp I/O library"))) + +(define-public sbcl-iolib.grovel + (package + (inherit sbcl-iolib.asdf) + (name "sbcl-iolib.grovel") + (inputs + `(("iolib.asdf" ,sbcl-iolib.asdf) + ("iolib.conf" ,sbcl-iolib.conf) + ("iolib.base", sbcl-iolib.base) + ("cffi", sbcl-cffi))) + (arguments + '(#:asd-file "iolib.grovel.asd" + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-header + (lambda* (#:key outputs #:allow-other-keys) + ;; This header is required by sbcl-iolib. + (install-file "src/grovel/grovel-common.h" + (string-append (assoc-ref outputs "out") + "/lib/sbcl")) + #t))))) + (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library"))) + +(define-public sbcl-iolib + (package + (inherit sbcl-iolib.asdf) + (name "sbcl-iolib") + (inputs + `(("iolib.asdf" ,sbcl-iolib.asdf) + ("iolib.conf" ,sbcl-iolib.conf) + ("iolib.grovel" ,sbcl-iolib.grovel) + ("iolib.base", sbcl-iolib.base) + ("bordeaux-threads", sbcl-bordeaux-threads) + ("idna", sbcl-idna) + ("swap-bytes", sbcl-swap-bytes) + ("libfixposix", libfixposix))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (arguments + '(#:asd-file "iolib.asd" + #:asd-system-name "iolib" + #:test-asd-file "iolib.tests.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/syscalls/ffi-functions-unix.lisp" + (("\\(:default \"libfixposix\"\\)") + (string-append + "(:default \"" + (assoc-ref inputs "libfixposix") "/lib/libfixposix\")"))) + ;; Socket tests need Internet access, disable them. + (substitute* "iolib.tests.asd" + (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)") + ""))))))) + (synopsis "Common Lisp I/O library"))) + +(define sbcl-iolib+multiplex + (package + (inherit sbcl-iolib) + (name "sbcl-iolib+multiplex") + (arguments + (substitute-keyword-arguments (package-arguments sbcl-iolib) + ((#:asd-system-name _) "iolib/multiplex"))))) + +(define sbcl-iolib+syscalls + (package + (inherit sbcl-iolib) + (name "sbcl-iolib+syscalls") + (arguments + (substitute-keyword-arguments (package-arguments sbcl-iolib) + ((#:asd-system-name _) "iolib/syscalls"))))) + +(define sbcl-iolib+streams + (package + (inherit sbcl-iolib) + (name "sbcl-iolib+streams") + (arguments + (substitute-keyword-arguments (package-arguments sbcl-iolib) + ((#:asd-system-name _) "iolib/streams"))))) + +(define sbcl-iolib+sockets + (package + (inherit sbcl-iolib) + (name "sbcl-iolib+sockets") + (arguments + (substitute-keyword-arguments (package-arguments sbcl-iolib) + ((#:asd-system-name _) "iolib/sockets"))))) + +(define-public sbcl-ieee-floats + (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d") + (revision "1")) + (package + (name "sbcl-ieee-floats") + (build-system asdf-build-system/sbcl) + (version (git-version "20170924" revision commit)) + (home-page "https://github.com/marijnh/ieee-floats/") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m")))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (synopsis "IEEE 754 binary representation for floats in Common Lisp") + (description "This is a Common Lisp library that allows to convert +floating point values to IEEE 754 binary representation.") + (license license:bsd-3)))) + +(define sbcl-closure-common + (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c") + (revision "1")) + (package + (name "sbcl-closure-common") + (build-system asdf-build-system/sbcl) + (version (git-version "20101006" revision commit)) + (home-page "https://github.com/sharplispers/closure-common") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n")))) + (inputs + `(("trivial-gray-streams" ,sbcl-trivial-gray-streams) + ("babel" ,sbcl-babel))) + (synopsis "Support Common Lisp library for CXML") + (description "Closure-common is an internal helper library. The name +Closure is a reference to the web browser it was originally written for.") + ;; TODO: License? + (license #f)))) + +(define-public sbcl-cl-reexport + (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b") + (revision "1")) + (package + (name "sbcl-cl-reexport") + (build-system asdf-build-system/sbcl) + (version (git-version "0.1" revision commit)) + (home-page "https://github.com/takagi/cl-reexport") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x")))) + (inputs + `(("alexandria" ,sbcl-alexandria))) + (arguments + ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online. + `(#:tests? #f)) + (synopsis "HTTP cookie manager for Common Lisp") + (description "cl-cookie is a Common Lisp library featuring parsing of +cookie headers, cookie creation, cookie jar creation and more.") + (license license:llgpl)))) + +(define-public sbcl-cl-cookie + (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546") + (revision "1")) + (package + (name "sbcl-cl-cookie") + (build-system asdf-build-system/sbcl) + (version (git-version "0.9.10" revision commit)) + (home-page "https://github.com/fukamachi/cl-cookie") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h")))) + (inputs + `(("proc-parse" ,sbcl-proc-parse) + ("alexandria" ,sbcl-alexandria) + ("quri" ,sbcl-quri) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("local-time" ,sbcl-local-time))) + (native-inputs + `(("prove-asdf" ,sbcl-prove-asdf) + ("prove" ,sbcl-prove))) + (arguments + ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test. + `(#:tests? #f)) + (synopsis "HTTP cookie manager for Common Lisp") + (description "cl-cookie is a Common Lisp library featuring parsing of +cookie headers, cookie creation, cookie jar creation and more.") + (license license:bsd-2)))) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 8cb05a6cad..732ffc0823 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -31,6 +31,7 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) @@ -273,7 +274,7 @@ code analysis tools.") version "/libcxx-" version ".src.tar.xz")) (sha256 (base32 - "1wdrxg365ig0kngx52pd0n820sncp24blb0zpalc579iidhh4002")))) + "1qlx3wlxrnc5cwc1fcfc2vhfsl7j4294hi8y5kxj8hy8wxsjd462")))) (build-system cmake-build-system) (native-inputs `(("clang" ,clang) @@ -285,6 +286,44 @@ code analysis tools.") use with Clang, targeting C++11, C++14 and above.") (license license:expat))) +(define-public libclc + (package + (name "libclc") + (version (package-version llvm)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/llvm/llvm-project.git") + (commit (string-append "llvmorg-" version)))) + (sha256 + (base32 + "052h16wjcnqginzp7ki4il2xmm25v9nyk0wcz7cg03gbryhl7aqa")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DLLVM_CLANG=" + (assoc-ref %build-inputs "clang") + "/bin/clang") + (string-append "-DPYTHON=" + (assoc-ref %build-inputs "python") + "/bin/python3")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "libclc") #t))))) + (native-inputs + `(("clang" ,clang) + ("llvm" ,llvm) + ("python" ,python))) + (home-page "https://libclc.llvm.org") + (synopsis "Libraries for the OpenCL programming language") + (description + "This package provides an implementation of the OpenCL library +requirements according to version 1.1 of the OpenCL specification.") + ;; Apache license 2.0 with LLVM exception + (license license:asl2.0))) + (define-public libomp (package (name "libomp") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index bf35d943ce..1694b7c6b1 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -351,14 +351,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "13zr2fpql33sdbsjsiaa952js5bvphc1x4lqsj36qyzdhj3l84na")) + "0311sip2q90aqaxn7h3cck1zl98b4vifqi8bp5fsizy4dr06bi81")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -1433,14 +1433,14 @@ hashing schemes plugin for @code{Dovecot}.") (define-public isync (package (name "isync") - (version "1.3.0") + (version "1.3.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/isync/isync/" version "/isync-" version ".tar.gz")) (sha256 (base32 - "173wd7x8y5sp94slzwlnb7zhgs32r57zl9xspl2rf4g3fqwmhpwd")))) + "1sphd30jplii58y2zmw365bckm6pszmapcy905zhjll1sm1ldjv8")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm index 028745f681..cd12f5a7fd 100644 --- a/gnu/packages/mastodon.scm +++ b/gnu/packages/mastodon.scm @@ -42,6 +42,12 @@ '(#:phases (modify-phases %standard-phases (delete 'check) + ;; see https://github.com/ihabunek/toot/issues/91 + (add-after 'unpack 'dont-install-Makefile + (lambda _ + (substitute* "setup.py" + (("data_files.*" all) "")) + #t)) (add-after 'install 'check (lambda* (#:key inputs outputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index c2a6aaf011..9e9fda0929 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 Fabian Harfert ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2017 ng0 -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Ludovic Courtès ;;; Copyright © 2019 Guy Fleury Iteriteka ;;; @@ -195,20 +195,19 @@ from Mint-X-F and Faenza-Fresh icon packs.") (define-public mate-themes (package (name "mate-themes") - (version "3.22.19") + (version "3.22.20") (source (origin (method url-fetch) (uri (string-append "mirror://mate/themes/" (version-major+minor version) "/mate-themes-" version ".tar.xz")) - (sha256 - (base32 - "1ycb8b8r0s8d1h1477135mynr53s5781gdb2ap8xlvj2g58492wq")))) + (sha256 + (base32 "0c3dhf8p9nc2maky4g9xr04iil9wwbdkmhpzynlc6lfg4ksqq2bx")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) - ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed + ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed ("gtk" ,gtk+-2))) (home-page "https://mate-desktop.org/") (synopsis diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d7ca43c5d7..c595103ac5 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -613,14 +613,14 @@ singular value problems.") (define-public gnuplot (package (name "gnuplot") - (version "5.2.6") + (version "5.2.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" version "/gnuplot-" version ".tar.gz")) (sha256 - (base32 "1vllgap08nhvdmc03idmkdnk9cfl2bp81hps50q1pqrr640qzp9m")))) + (base32 "1vglp4la40f5dpj0zdj63zprrkyjgzy068p35bz5dqxjyczm1zlp")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("cairo" ,cairo) diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm index 3d6185ca78..76bf77d1c8 100644 --- a/gnu/packages/mc.scm +++ b/gnu/packages/mc.scm @@ -37,14 +37,14 @@ (define-public mc (package (name "mc") - (version "4.8.22") + (version "4.8.23") (source (origin (method url-fetch) (uri (string-append "http://ftp.midnight-commander.org/mc-" version ".tar.xz")) (sha256 - (base32 "060kh3dmk8fmmsibn1l815qjazzfxzbhgqggrhncz604pbbnhy7f")))) + (base32 "077z7phzq3m1sxyz7li77lyzv4rjmmh3wp2vy86pnc4387kpqzyx")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 7d036ad473..503781a9eb 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) @@ -490,56 +491,43 @@ compromised.") (define-public znc (package (name "znc") - (version "1.7.3") + (version "1.7.4") (source (origin (method url-fetch) (uri (string-append "http://znc.in/releases/archive/znc-" version ".tar.gz")) (sha256 (base32 - "0g8i5hsl4kinpz1wp0a2zniidv3w2sd6awq8676fds516wcc6k0y")))) - ;; TODO: autotools support has been deprecated, and new features like i18n - ;; are only supported when building with cmake. - (build-system gnu-build-system) + "0wcvqkpin8w4i72alnn0nxnrc9ih543qs34hqpk9xmz6m0hjk8xi")))) + (build-system cmake-build-system) (arguments - `(#:phases + `(#:configure-flags + (list "-DWANT_CYRUS=ON" + "-DWANT_I18N=ON" + "-DWANT_PERL=ON" + "-DWANT_PYTHON=ON") + #:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-googletest + ;; Copy the googletest sources to where the CMake build expects them. (lambda* (#:key inputs #:allow-other-keys) - (mkdir-p "googletest") - (copy-recursively (assoc-ref inputs "googletest-source") - "googletest") - #t))) - #:configure-flags '("--enable-python" - "--enable-perl" - "--enable-cyrus" - "--with-gmock=googletest/googlemock" - "--with-gtest=googletest/googletest") - #:test-target "test")) + (let ((source (assoc-ref inputs "googletest-source")) + (target "third_party/googletest")) + (mkdir-p target) + (copy-recursively source target) + #t)))))) (native-inputs - `(("googletest-source" - ;; ZNC 1.7 needs a newer, unreleased googletest (a release is planned - ;; , so don't update - ;; the public GOOGLETEST to an unstable version). The commit is taken - ;; from ‘third_party/googletest’ in the ZNC git repository. - ,(let ((commit "9737e63c69e94ac5777caa0bc77c77d5206467f3")) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/google/googletest") - (commit commit))) - (file-name (git-file-name "googletest-for-znc" commit)) - (sha256 - (base32 - "0ya36n8d62zbxk6p22yffgx43mqhx2fz41gqqwbpdshjryf3wvxj"))))) - ("pkg-config" ,pkg-config) - ("perl" ,perl) - ("python" ,python))) + `(("boost" ,boost) + ("gettext" ,gettext-minimal) + ("googletest-source" ,(package-source googletest)) + ("pkg-config" ,pkg-config))) (inputs - `(("openssl" ,openssl) - ("zlib" ,zlib) + `(("cyrus-sasl" ,cyrus-sasl) ("icu4c" ,icu4c) - ("cyrus-sasl" ,cyrus-sasl))) + ("openssl" ,openssl) + ("perl" ,perl) + ("python" ,python) + ("zlib" ,zlib))) (home-page "https://znc.in") (synopsis "IRC network bouncer") (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 461296f66b..c9cd7b1382 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -339,14 +339,14 @@ only provides @code{MPI_THREAD_FUNNELED}."))) (define-public python-mpi4py (package (name "python-mpi4py") - (version "3.0.1") + (version "3.0.2") (source (origin (method url-fetch) (uri (pypi-uri "mpi4py" version)) (sha256 (base32 - "0ld8rjmsjr0dklvj2g1gr3ax32sdq0xjxyh0cspknc1i36waajb5")))) + "1q28xl36difma1wq0acq111cqxjya32kn3lxp6fbidz3wg8jkmpq")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 1c0a4f3982..ca9cbd3343 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2018 Ludovic Courtès ;;; Copyright © 2018 Björn Höfling ;;; Copyright © 2019 Gabriel Hondet +;;; Copyright © 2019 Timotej Lazar ;;; ;;; This file is part of GNU Guix. ;;; @@ -314,7 +315,7 @@ playing your music.") (define-public cmus (package (name "cmus") - (version "2.7.1") + (version "2.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -323,7 +324,7 @@ playing your music.") (file-name (git-file-name name version)) (sha256 (base32 - "0xd96py21bl869qlv1353zw7xsgq6v5s8szr0ldr63zj5fgc2ps5")))) + "1ydnvq13ay8b8mfmmgwi5qsgyf220yi1d01acbnxqn775dghmwar")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; cmus does not include tests @@ -1362,7 +1363,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.9.7") + (version "0.9.8") (source (origin (method url-fetch) (uri @@ -1370,12 +1371,10 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0i70wm430fvksi3g985farrkhgb7mwhi7j06dl66cdj1n12jzzk7")))) + "15kabmxp38wqvavs5hr1dqasjjf1j977kzqggxfmzyi3y5fan3hj")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; there are no tests - #:configure-flags - '("CXXFLAGS=-std=gnu++11"))) + `(#:tests? #f)) ; there are no tests (inputs `(("jack" ,jack-1) ("lv2" ,lv2) @@ -1396,7 +1395,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.9.7") + (version "0.9.8") (source (origin (method url-fetch) (uri @@ -1404,12 +1403,10 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "1361dqdasrc98q9hcjdwsjx6agfimwnay430887fryi3pslkyd81")))) + "010p8nwnmqgj5mw324psig3hxi1g2gylxrigd6sj6sgcpy3kdm23")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; there are no tests - #:configure-flags - '("CXXFLAGS=-std=gnu++11"))) + `(#:tests? #f)) ; there are no tests (inputs `(("jack" ,jack-1) ("lv2" ,lv2) @@ -1431,7 +1428,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.9.7") + (version "0.9.8") (source (origin (method url-fetch) (uri @@ -1439,12 +1436,10 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "1vgmcjccpgqqlmmwfg6m91nph81p2xaxydjx82n4l1yrr9lidn9h")))) + "138kd9szgn3b97s7crhsyj8pgwb0bn4l9knd4zliqjgj2f1bs9x0")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; there are no tests - #:configure-flags - '("CXXFLAGS=-std=gnu++11"))) + `(#:tests? #f)) ; there are no tests (inputs `(("jack" ,jack-1) ("lv2" ,lv2) @@ -1466,7 +1461,7 @@ effects.") (define-public padthv1 (package (name "padthv1") - (version "0.9.7") + (version "0.9.8") (source (origin (method url-fetch) (uri @@ -1474,12 +1469,10 @@ effects.") "/padthv1-" version ".tar.gz")) (sha256 (base32 - "1jd4bf6a1ipvg4yhb3xf3maqg68bx97ic9l57djmkirlrkh2a3wp")))) + "1k4p2ir12qjcs62knvw2s6qyvb46203yx22fnwp341cjk171cxji")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; there are no tests - #:configure-flags - '("CXXFLAGS=-std=gnu++11"))) + `(#:tests? #f)) ; there are no tests (inputs `(("jack" ,jack-1) ("lv2" ,lv2) @@ -2871,7 +2864,7 @@ for improved Amiga ProTracker 2/3 compatibility.") (define-public schismtracker (package (name "schismtracker") - (version "20181223") + (version "20190614") (source (origin (method git-fetch) (uri (git-reference @@ -2880,7 +2873,7 @@ for improved Amiga ProTracker 2/3 compatibility.") (file-name (git-file-name name version)) (sha256 (base32 - "18k5j10zq39y2q294avdmar87x93k57wqmq8bpz562hdqki2mz1l")) + "0cg0q5bkn8a06v03vmj69xyhi4xxpl729k4008q4hiakh9gy2x49")) (modules '((guix build utils))) (snippet ;; Remove use of __DATE__ and __TIME__ for reproducibility. @@ -2900,7 +2893,7 @@ for improved Amiga ProTracker 2/3 compatibility.") ("automake" ,automake) ("python" ,python))) (inputs - `(("alsa-lib" ,alsa-lib) ; for asound dependency + `(("alsa-lib" ,alsa-lib) ; for asound dependency ("libx11" ,libx11) ("libxext" ,libxext) ("sdl" ,sdl))) diff --git a/gnu/packages/patches/emacs-zones-called-interactively.patch b/gnu/packages/patches/emacs-zones-called-interactively.patch index b60f390a7e..eefcfdd12e 100644 --- a/gnu/packages/patches/emacs-zones-called-interactively.patch +++ b/gnu/packages/patches/emacs-zones-called-interactively.patch @@ -1,4 +1,4 @@ -From fb56fbb706804215ef9af0cc575db97c373046c6 Mon Sep 17 00:00:00 2001 +From 81603e53ebaae0f0b23c4c52c7dab83e808964ec Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 17 Mar 2019 01:32:04 +0100 Subject: [PATCH] This patch silences the byte-compiler. @@ -8,36 +8,36 @@ Subject: [PATCH] This patch silences the byte-compiler. 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zones.el b/zones.el -index 1bf94f0..94fa9a6 100644 +index ca88d48..594ea36 100644 --- a/zones.el +++ b/zones.el -@@ -1031,7 +1031,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. +@@ -1075,7 +1075,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. This is a destructive operation. The list structure of the variable value can be modified." - (zz-narrow-advice (interactive-p))) -+ (zz-narrow-advice (called-interactively-p))) ++ (zz-narrow-advice (called-interactively-p 'interactive))) (defadvice narrow-to-defun (after zz-add-zone--defun activate) "Push the defun limits to the current `zz-izones-var'. -@@ -1039,7 +1039,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. +@@ -1083,7 +1083,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. This is a destructive operation. The list structure of the variable value can be modified." - (zz-narrow-advice (interactive-p))) -+ (zz-narrow-advice (called-interactively-p))) ++ (zz-narrow-advice (called-interactively-p 'interactive))) ;; Call `zz-add-zone' if interactive or `zz-add-zone-anyway-p'. ;; -@@ -1049,7 +1049,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. +@@ -1093,7 +1093,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. This is a destructive operation. The list structure of the variable value can be modified." - (zz-narrow-advice (interactive-p))) -+ (zz-narrow-advice (called-interactively-p))) ++ (zz-narrow-advice (called-interactively-p 'interactive))) ;;(@* "General Commands") -- -2.21.0 +2.22.0 diff --git a/gnu/packages/patches/khmer-use-libraries.patch b/gnu/packages/patches/khmer-use-libraries.patch deleted file mode 100644 index 47d163a99a..0000000000 --- a/gnu/packages/patches/khmer-use-libraries.patch +++ /dev/null @@ -1,16 +0,0 @@ -Change setup.cfg so that the bundled zlib and bzip2 are not used. This cannot -currently be achieved using "--library z,bz2" as instructed in the setup.py. - -diff --git a/setup.cfg b/setup.cfg -index c054092..080992e 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -1,7 +1,7 @@ - [build_ext] - define = SEQAN_HAS_BZIP2,SEQAN_HAS_ZLIB - undef = NO_UNIQUE_RC --# libraries = z,bz2 -+libraries = z,bz2 - ## if using system libraries - include-dirs = lib:third-party/zlib:third-party/bzip2:third-party/seqan/core/include:third-party/smhasher - # include-dirs = lib diff --git a/gnu/packages/patches/lcalc-default-parameters-1.patch b/gnu/packages/patches/lcalc-default-parameters-1.patch new file mode 100644 index 0000000000..19b0776320 --- /dev/null +++ b/gnu/packages/patches/lcalc-default-parameters-1.patch @@ -0,0 +1,26 @@ +Patch taken from the Sage packaging system. + +diff -Naur lcalc-1.23-vanilla/include/Ldirichlet_series.h lcalc-1.23-fixed-gcc.4.9/include/Ldirichlet_series.h +--- lcalc-1.23-vanilla/include/Ldirichlet_series.h 2012-08-08 23:21:55.000000000 +0200 ++++ lcalc-1.23-fixed-gcc.4.9/include/Ldirichlet_series.h 2014-04-21 14:37:59.027464849 +0200 +@@ -43,7 +43,7 @@ + //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + template + Complex L_function :: +-dirichlet_series(Complex s, long long N=-1) ++dirichlet_series(Complex s, long long N) + { + Complex z=0.; + long long m,n; +diff -Naur lcalc-1.23-vanilla/include/L.h lcalc-1.23-fixed-gcc.4.9/include/L.h +--- lcalc-1.23-vanilla/include/L.h 2012-08-08 23:21:55.000000000 +0200 ++++ lcalc-1.23-fixed-gcc.4.9/include/L.h 2014-04-21 14:32:04.003467348 +0200 +@@ -491,7 +491,7 @@ + + //#include "Ldirichlet_series.h" //for computing Dirichlet series + Complex partial_dirichlet_series(Complex s, long long N1, long long N2); +- Complex dirichlet_series(Complex s, long long N); ++ Complex dirichlet_series(Complex s, long long N=-1LL); + + //#include "Ltaylor_series.h" //for computing taylor series for Dirichlet series + //void compute_taylor_series(int N, int K, Complex s_0, Complex *series); diff --git a/gnu/packages/patches/lcalc-default-parameters-2.patch b/gnu/packages/patches/lcalc-default-parameters-2.patch new file mode 100644 index 0000000000..1d881ee0c4 --- /dev/null +++ b/gnu/packages/patches/lcalc-default-parameters-2.patch @@ -0,0 +1,58 @@ +Patch taken from the Sage packaging system. + +--- lcalc-1.23/include/Lgamma.h 2012-08-08 23:21:55.000000000 +0200 ++++ lcalc-1.23/include/Lgamma.h 2014-05-18 21:15:27.786889718 +0200 +@@ -77,7 +77,7 @@ + //n=0 should just give log_GAMMA(z)... thus making log_GAMMA + //code obsolete. But leave log_GAMMA intact anyways. + template +-precise(ttype) log_GAMMA (ttype z,int n=0) ++precise(ttype) log_GAMMA (ttype z,int n) + { + int M; + precise(ttype) log_G,r,r2,y; +@@ -230,7 +230,7 @@ + //value exp_w which holds exp(-w) + //computes G(z,w), so there's an extra w^(-z) factor. + template +-Complex inc_GAMMA (ttype z,ttype w, const char *method="temme", ttype exp_w = 0, bool recycle=false) ++Complex inc_GAMMA (ttype z,ttype w, const char *method, ttype exp_w, bool recycle) + { + + Complex G; +@@ -334,7 +334,7 @@ + + + template +-ttype cfrac_GAMMA (ttype z,ttype w, ttype exp_w=0, bool recycle=false) //computes G(z,w) via continued fraction ++ttype cfrac_GAMMA (ttype z,ttype w, ttype exp_w, bool recycle) //computes G(z,w) via continued fraction + { + + ttype G; +@@ -424,7 +424,7 @@ + } + + template +-ttype asympt_GAMMA (ttype z,ttype w, ttype exp_w = 0, bool recycle=false) //computes G(z,w) via asymptotic series ++ttype asympt_GAMMA (ttype z,ttype w, ttype exp_w, bool recycle) //computes G(z,w) via asymptotic series + { + + if(my_verbose>3) cout << "called asympt_GAMMA("< +-ttype comp_inc_GAMMA (ttype z,ttype w,ttype exp_w = 0, bool recycle=false) //computes g(z,w) ++ttype comp_inc_GAMMA (ttype z,ttype w,ttype exp_w, bool recycle) //computes g(z,w) + { + + ttype g; +@@ -604,7 +604,7 @@ + } + + template +-Complex gamma_sum(Complex s, int what_type, ttype *coeff, int N, Double g, Complex l, Double Q, Long Period, Complex delta=1, const char *method="temme") ++Complex gamma_sum(Complex s, int what_type, ttype *coeff, int N, Double g, Complex l, Double Q, Long Period, Complex delta, const char *method) + { + Complex SUM=0; + diff --git a/gnu/packages/patches/lcalc-lcommon-h.patch b/gnu/packages/patches/lcalc-lcommon-h.patch new file mode 100644 index 0000000000..897956de64 --- /dev/null +++ b/gnu/packages/patches/lcalc-lcommon-h.patch @@ -0,0 +1,13 @@ +Patch taken from the Sage packaging system. + +--- src/include/Lcommon.h 2010-01-31 15:16:45.000000000 +0000 ++++ src/include/Lcommon.h 2011-03-08 21:19:11.849443238 +0000 +@@ -25,7 +25,7 @@ + #ifdef USE_MPFR + inline double lcalc_to_double(const double& x) { return x; } + #endif +-//inline double lcalc_to_double(const long double& x) { return x; } ++inline double lcalc_to_double(const long double& x) { return x; } + inline double lcalc_to_double(const int& x) { return x; } + inline double lcalc_to_double(const long long& x) { return x; } + inline double lcalc_to_double(const short& x) { return x; } diff --git a/gnu/packages/patches/lcalc-using-namespace-std.patch b/gnu/packages/patches/lcalc-using-namespace-std.patch new file mode 100644 index 0000000000..6e0075fdc8 --- /dev/null +++ b/gnu/packages/patches/lcalc-using-namespace-std.patch @@ -0,0 +1,43 @@ +Patch taken from the Sage packaging system. + +diff --git a/include/Lcommon.h b/include/Lcommon.h +index 1b3be43..bf40532 100644 +--- a/include/Lcommon.h ++++ b/include/Lcommon.h +@@ -48,7 +48,7 @@ const bool outputSeries=true; // Whether to output the coefficients or just th + + // Loop i from m to n + // Useful in tidying up most for loops +-#define loop(i,m,n) for(typeof(m) i=(m); i!=(n); i++) ++#define loop(i,m,n) for(auto i=(m); i!=(n); i++) + + // A class for calculations involving polynomials of small degree + // Not efficient enough for huge polynomials +diff --git a/include/Lcommon_ld.h b/include/Lcommon_ld.h +index 86ae4df..33c560c 100644 +--- a/include/Lcommon_ld.h ++++ b/include/Lcommon_ld.h +@@ -53,7 +53,7 @@ const bool outputSeries=true; // Whether to output the coefficients or just th + + // Loop i from m to n + // Useful in tidying up most for loops +-#define loop(i,m,n) for(typeof(m) i=(m); i!=(n); i++) ++#define loop(i,m,n) for(auto i=(m); i!=(n); i++) + + // A class for calculations involving polynomials of small degree + // Not efficient enough for huge polynomials +diff --git a/include/Lglobals.h b/include/Lglobals.h +index 60002e4..ca2606c 100644 +--- a/include/Lglobals.h ++++ b/include/Lglobals.h +@@ -24,9 +24,9 @@ + #ifndef Lglobals_H + #define Lglobals_H + ++#include + using namespace std; + +-#include + #ifdef USE_MPFR + #include "Lgmpfrxx.h" + typedef mpfr_class Double; diff --git a/gnu/packages/patches/leela-zero-gtest.patch b/gnu/packages/patches/leela-zero-gtest.patch new file mode 100644 index 0000000000..7291b4ab72 --- /dev/null +++ b/gnu/packages/patches/leela-zero-gtest.patch @@ -0,0 +1,40 @@ +Use shared gtest instead of submodule + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 617e4b2..2857875 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,7 +18,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") + include(GNUInstallDirs) + + project(leelaz) +-add_subdirectory(gtest EXCLUDE_FROM_ALL) # We don't want to install gtest, exclude it from `all` + + # Required Packages + set(Boost_MIN_VERSION "1.58.0") +@@ -27,6 +26,7 @@ find_package(Boost 1.58.0 REQUIRED program_options filesystem) + find_package(Threads REQUIRED) + find_package(ZLIB REQUIRED) + find_package(OpenCL REQUIRED) ++find_package(GTest REQUIRED) + # We need OpenBLAS for now, because we make some specific + # calls. Ideally we'd use OpenBLAS is possible and fall back to + # not doing those calls if it's not present. +@@ -93,6 +93,7 @@ include_directories(${IncludePath}) + include_directories(${Boost_INCLUDE_DIRS}) + include_directories(${OpenCL_INCLUDE_DIRS}) + include_directories(${ZLIB_INCLUDE_DIRS}) ++include_directories(${GTEST_INCLUDE_DIRS}) + + if((UNIX AND NOT APPLE) OR WIN32) + include_directories(${BLAS_INCLUDE_DIRS}) +@@ -141,7 +142,8 @@ target_link_libraries(tests ${Boost_LIBRARIES}) + target_link_libraries(tests ${BLAS_LIBRARIES}) + target_link_libraries(tests ${OpenCL_LIBRARIES}) + target_link_libraries(tests ${ZLIB_LIBRARIES}) +-target_link_libraries(tests gtest_main ${CMAKE_THREAD_LIBS_INIT}) ++target_link_libraries(tests ${GTEST_BOTH_LIBRARIES}) ++target_link_libraries(tests ${CMAKE_THREAD_LIBS_INIT}) + + include(GetGitRevisionDescription) + git_describe(VERSION --tags) diff --git a/gnu/packages/patches/lrcalc-includes.patch b/gnu/packages/patches/lrcalc-includes.patch new file mode 100644 index 0000000000..e15286905b --- /dev/null +++ b/gnu/packages/patches/lrcalc-includes.patch @@ -0,0 +1,92 @@ +Patch taken from the Sage packaging system. + +From 4a5e1c8c3c11efdb1cbb4239825a6bf4bf1c52f8 Mon Sep 17 00:00:00 2001 +From: Anders Skovsted Buch +Date: Sun, 29 Nov 2015 16:25:56 -0500 +Subject: [PATCH] Patch by Jeroen Demeyer to change include to + "vector.h", plus similar cases. + +--- + src/lrcalc.c | 2 +- + src/maple.c | 4 ++-- + src/schublib.h | 2 +- + src/symfcn.c | 6 +++--- + src/symfcn.h | 4 ++-- + 5 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/src/lrcalc.c b/src/lrcalc.c +index aff3f75..60df49e 100644 +--- a/src/lrcalc.c ++++ b/src/lrcalc.c +@@ -8,7 +8,7 @@ + #include + extern char *optarg; + +-#include ++#include "vectarg.h" + + #include "symfcn.h" + #include "maple.h" +diff --git a/src/maple.c b/src/maple.c +index fdc0768..a5f4d14 100644 +--- a/src/maple.c ++++ b/src/maple.c +@@ -4,8 +4,8 @@ + */ + + #include +-#include +-#include ++#include "vector.h" ++#include "hashtab.h" + #include "maple.h" + + +diff --git a/src/schublib.h b/src/schublib.h +index a8e8511..864850c 100644 +--- a/src/schublib.h ++++ b/src/schublib.h +@@ -1,7 +1,7 @@ + #ifndef _SCHUBLIB_H + #define _SCHUBLIB_H + +-#include ++#include "hashtab.h" + + hashtab *trans(vector *w, int vars, hashtab *res); + hashtab *monk(int i, hashtab *slc, int rank); +diff --git a/src/symfcn.c b/src/symfcn.c +index 4ffbe4b..fd5df5d 100644 +--- a/src/symfcn.c ++++ b/src/symfcn.c +@@ -5,9 +5,9 @@ + + #include + +-#include +-#include +-#include ++#include "alloc.h" ++#include "vector.h" ++#include "hashtab.h" + + #include "symfcn.h" + +diff --git a/src/symfcn.h b/src/symfcn.h +index b8543b1..29bb00d 100644 +--- a/src/symfcn.h ++++ b/src/symfcn.h +@@ -1,8 +1,8 @@ + #ifndef _SYMFCN_H + #define _SYMFCN_H + +-#include +-#include ++#include "hashtab.h" ++#include "vector.h" + + int part_itr_sz(vector *part); + int part_itr_sub(vector *part, vector *outer); +-- +2.1.1.1.g1fb337f + diff --git a/gnu/packages/patches/python-pyatspi-python-37.patch b/gnu/packages/patches/python-pyatspi-python-37.patch new file mode 100644 index 0000000000..caa6aea39e --- /dev/null +++ b/gnu/packages/patches/python-pyatspi-python-37.patch @@ -0,0 +1,82 @@ +From 29a7b929f7f1160b643dc5f5911533887173fcff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Thu, 28 Jun 2018 17:10:33 +0200 +Subject: [PATCH] Rename async to asynchronous, keep backwards comaptibility + +async is a keyword in Python 3.7 and keeping it results in SyntaxError. + +Fixes https://gitlab.gnome.org/GNOME/pyatspi2/issues/1 +--- + pyatspi/registry.py | 35 +++++++++++++++++++++++++++-------- + 1 file changed, 27 insertions(+), 8 deletions(-) + +diff --git a/pyatspi/registry.py b/pyatspi/registry.py +index cb28395..f73ee16 100644 +--- a/pyatspi/registry.py ++++ b/pyatspi/registry.py +@@ -50,9 +50,9 @@ class Registry(object): + reference to the Accessibility.Registry singleton. Doing so is harmless and + has no point. + +- @@ivar async: Should event dispatch to local listeners be decoupled from event +- receiving from the registry? +- @@type async: boolean ++ @@ivar asynchronous: Should event dispatch to local listeners be decoupled ++ from event receiving from the registry? ++ @@type asynchronous: boolean + @@ivar reg: Reference to the real, wrapped registry object + @@type reg: Accessibility.Registry + @@ivar dev: Reference to the device controller +@@ -111,25 +111,44 @@ class Registry(object): + + self.has_implementations = True + +- self.async = False # not fully supported yet ++ self.asynchronous = False # not fully supported yet + self.started = False + self.event_listeners = dict() + ++ def __getattr__(self, name): ++ """ ++ For backwards compatibility with old API ++ """ ++ if name == 'async': ++ return self.asynchronous ++ return object.__getattr__(self, name) ++ ++ def __setattr__(self, name, value): ++ """ ++ For backwards compatibility with old API ++ """ ++ if name == 'async': ++ self.asynchronous = value ++ object.__setattr__(self, name, value) ++ + def _set_default_registry (self): + self._set_registry (MAIN_LOOP_GLIB) + +- def start(self, async=False, gil=True): ++ def start(self, asynchronous=False, gil=True, **kwargs): + """ + Enter the main loop to start receiving and dispatching events. + +- @@param async: Should event dispatch be asynchronous (decoupled) from +- event receiving from the AT-SPI registry? +- @@type async: boolean ++ @@param asynchronous: Should event dispatch be asynchronous ++ (decoupled) from event receiving from the AT-SPI registry? ++ @@type asynchronous: boolean + @@param gil: Add an idle callback which releases the Python GIL for a few + milliseconds to allow other threads to run? Necessary if other threads + will be used in this process. + @@type gil: boolean + """ ++ if 'async' in kwargs: ++ # support previous API ++ asynchronous = kwargs['async'] + if not self.has_implementations: + self._set_default_registry () + self.started = True +-- +2.22.0 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 3690050944..6318a4b309 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -1039,7 +1039,7 @@ multiple files.") (define-public pdfpc (package (name "pdfpc") - (version "4.3.2") + (version "4.3.4") (source (origin (method git-fetch) @@ -1048,7 +1048,7 @@ multiple files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "15y6g92fp6x6dwwhrhkfny5z20w7pq9c8w19fh2vzff9aa6m2h9z")))) + (base32 "07aafsm4jzdgpahz83p0ajv40hry7gviyadqi13ahr8xdhhwy2sd")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no test target (inputs diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 6a4dbe8ed0..52b2bc2630 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -383,24 +383,7 @@ error when it would have happened.") (license (package-license perl)))) (define-public perl-base - (package - (name "perl-base") - (version "2.23") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" - "base-" version ".tar.gz")) - (sha256 - (base32 "1pjxcbbcpwlgzm0fzsbqd58zn8cj9vwril1wn3xfd7ws550mixa0")))) - (build-system perl-build-system) - (home-page "https://metacpan.org/release/base") - (synopsis "Establish an ISA relationship with base classes at compile time") - (description "Allows you to both load one or more modules, while setting -up inheritance from those modules at the same time. Unless you are using the -fields pragma, consider this module discouraged in favor of the lighter-weight -parent.") - (license (package-license perl)))) ;See README + (deprecated-package "perl-base" perl)) (define-public perl-browser-open (package @@ -873,8 +856,6 @@ the Carp.pm module doesn't help.") (build-system perl-build-system) (native-inputs `(("perl-sub-name" ,perl-sub-name))) - (propagated-inputs - `(("perl-base" ,perl-base))) (home-page "https://metacpan.org/release/Class-Accessor") (synopsis "Automated accessor generation") (description "This module automagically generates accessors/mutators for @@ -1605,14 +1586,14 @@ CPAN::Meta object are present.") (define-public perl-cpanel-json-xs (package (name "perl-cpanel-json-xs") - (version "4.10") + (version "4.12") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/" "Cpanel-JSON-XS-" version ".tar.gz")) (sha256 - (base32 "1r92b03hkmqr0brp00cj67b1iklfd4yas481d6a5nx2941c03h3p")))) + (base32 "0n66da8s88srr591i7gm1d611z9jbcz488fhqxy604diiw8pnha9")))) (build-system perl-build-system) (propagated-inputs `(("perl-common-sense" ,perl-common-sense))) @@ -3764,14 +3745,14 @@ allows you to locate these files after installation.") (define-public perl-file-slurp (package (name "perl-file-slurp") - (version "9999.26") + (version "9999.27") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/" "File-Slurp-" version ".tar.gz")) (sha256 - (base32 "0c09ivl50sg9j75si6cahfp1wgvhqawakb6h5j6hlca6vwjqs9qy")))) + (base32 "1x233kj1qifvii7j8d4wzarwhj5z11vnpxsqvdm98dsccr7qi79s")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/File-Slurp") (synopsis "Reading/Writing/Modifying of complete files") @@ -3835,8 +3816,6 @@ slurping and spewing. All functions are optionally exported.") (sha256 (base32 "0pr3wrxrk93wy7dz9gsb1sgl77icrs8rh2mah6wms5cdi2ll5ch1")))) (build-system perl-build-system) - (propagated-inputs - `(("perl-parent" ,perl-parent))) (home-page "https://metacpan.org/release/File-Temp") (synopsis "Return name and handle of a temporary file safely") (description "File::Temp can be used to create and open temporary files in @@ -4969,7 +4948,7 @@ portions of this module couldn't be compiled on this machine.") (define-public perl-mailtools (package (name "perl-mailtools") - (version "2.20") + (version "2.21") (source (origin (method url-fetch) @@ -4979,7 +4958,7 @@ portions of this module couldn't be compiled on this machine.") ".tar.gz")) (sha256 (base32 - "15iizg2x1w7ca0r8rn3wwhp7w160ljvf55prspljwd6cm7vhcmpm")))) + "1js43bp2dnd8n2rv8clsv749166jnyqnc91k4wkkmw5n4rlbvnaa")))) (build-system perl-build-system) (propagated-inputs `(("perl-timedate" ,perl-timedate))) @@ -5634,7 +5613,6 @@ Moose and is optimised for rapid startup.") ("perl-package-stash" ,perl-package-stash) ("perl-package-stash-xs" ,perl-package-stash-xs) ("perl-params-util" ,perl-params-util) - ("perl-parent" ,perl-parent) ("perl-scalar-list-utils" ,perl-scalar-list-utils) ("perl-sub-exporter" ,perl-sub-exporter) ("perl-sub-name" ,perl-sub-name) @@ -6964,22 +6942,7 @@ distributions.") (license (package-license perl)))) (define-public perl-parent - (package - (name "perl-parent") - (version "0.237") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/" - "parent-" version ".tar.gz")) - (sha256 - (base32 "1bnaadzf51g6zrpq6pvvgds2cc9d4w1vck7sapkd3hb5hmjdk28h")))) - (build-system perl-build-system) - (home-page "https://metacpan.org/release/parent") - (synopsis "Establish an ISA relationship with base classes at compile time") - (description "Allows you to both load one or more modules, while setting -up inheritance from those modules at the same time.") - (license (package-license perl)))) + (deprecated-package "perl-parent" perl)) (define-public perl-path-class (package @@ -7951,14 +7914,14 @@ uplevel() are avoided.") (define-public perl-super (package (name "perl-super") - (version "1.20141117") + (version "1.20190531") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/" "SUPER-" version ".tar.gz")) (sha256 - (base32 "1cn05kacg0xfbm1zzksm2yx2pnrzqja4d9163cxv3sdfc1yhwqhs")))) + (base32 "16nk2za9fwyg7mcifacr69qi075iz1yvy8r9jh3903kzdvkiwpb8")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) @@ -9009,8 +8972,7 @@ simple n-ary tree.") `(("perl-module-build" ,perl-module-build) ("perl-test-exception" ,perl-test-exception))) (propagated-inputs - `(("perl-tree-simple" ,perl-tree-simple) - ("perl-base" ,perl-base))) + `(("perl-tree-simple" ,perl-tree-simple))) (home-page "https://metacpan.org/release/Tree-Simple-VisitorFactory") (synopsis "Factory object for dispensing Visitor objects") (description "This module is a factory for dispensing diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 58a1022bc2..676dae5430 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -105,3 +105,138 @@ is delete your existing cassette files, and run your tests again. VCR.py will detect the absence of a cassette file and once again record all HTTP interactions, which will update them to correspond to the new API.") (license license:expat))) + +(define-public python-pytest-checkdocs + (package + (name "python-pytest-checkdocs") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-checkdocs" version)) + (sha256 + (base32 + "07c27cdjcw6jph5kbgpxchrvwlps4ggwb2j6m7y64imnik0asrq8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-importlib-metadata" ,python-importlib-metadata))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page "https://github.com/jaraco/pytest-checkdocs") + (synopsis "Check the README when running tests") + (description + "This package provides a pytest plugin that checks the long description +of the project to ensure it renders properly.") + (license license:expat))) + +(define-public python-pytest-flake8 + (package + (name "python-pytest-flake8") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-flake8" version)) + (sha256 + (base32 + "1h30gd21fjsafqxwclf25sdh89vrdz7rsh4lzw11aiw7ww9mq8jd")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flake8" ,python-flake8))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/tholo/pytest-flake8") + (synopsis "Pytest plugin to check FLAKE8 requirements") + (description + "This package provides a pytest plugin for efficiently checking PEP8 +compliance.") + (license license:bsd-3))) + +(define-public python-pytest-shutil + (package + (name "python-pytest-shutil") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-shutil" version)) + (sha256 + (base32 + "0q8j0ayzmnvlraml6i977ybdq4xi096djhf30n2m1rvnvrhm45nq")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (mkdir "/tmp/bin") + (substitute* "tests/integration/test_cmdline_integration.py" + (("dirname = '/bin'") + "dirname = '/tmp/bin'") + (("bindir = os.path.realpath\\('/bin'\\)") + "bindir = os.path.realpath('/tmp/bin')")) + #t))))) + (propagated-inputs + `(("python-contextlib2" ,python-contextlib2) + ("python-execnet" ,python-execnet) + ("python-pathpy" ,python-pathpy) + ("python-termcolor" ,python-termcolor))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-setuptools-git" ,python-setuptools-git))) + (home-page "https://github.com/manahl/pytest-plugins") + (synopsis "Assorted shell and environment tools for py.test") + (description + "This package provides assorted shell and environment tools for the +py.test testing framework.") + (license license:expat))) + +(define-public python-pytest-fixture-config + (package + (name "python-pytest-fixture-config") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-fixture-config" version)) + (sha256 + (base32 + "13i1qpz22w3x4dmw8vih5jdnbqfqvl7jiqs0dg764s0zf8bp98a1")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-setuptools-git" ,python-setuptools-git))) + (home-page "https://github.com/manahl/pytest-plugins") + (synopsis "Fixture configuration utils for py.test") + (description + "This package provides fixture configuration utilities for the py.test +testing framework.") + (license license:expat))) + +(define-public python-pytest-virtualenv + (package + (name "python-pytest-virtualenv") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-virtualenv" version)) + (sha256 + (base32 + "03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; one test fails; can't find virtualenv + (propagated-inputs + `(("python-virtualenv" ,python-virtualenv) + ("python-pytest-shutil" ,python-pytest-shutil) + ("python-pytest-fixture-config" ,python-pytest-fixture-config))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-setuptools-git" ,python-setuptools-git))) + (home-page "https://github.com/manahl/pytest-plugins") + (synopsis "Virtualenv fixture for py.test") + (description "This package provides a virtualenv fixture for the py.test +framework.") + (license license:expat))) diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index 88f62d1934..705a7ffa3b 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice -;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2019 Ricardo Wurmus ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018, 2019 Efraim Flashner @@ -32,7 +32,8 @@ #:use-module (gnu packages check) #:use-module (gnu packages maths) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz)) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx)) (define-public python-lzo (package @@ -205,3 +206,31 @@ install: libbitshuffle.so #t)))))) (inputs '()) (native-inputs '()))) + +(define-public python-zipp + (package + (name "python-zipp") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zipp" version)) + (sha256 + (base32 + "1hsv4zwy1pwnbrr63wjjkpwrmnk36ngbkkqw01bj5hcwh1z3m56a")))) + (build-system python-build-system) + (propagated-inputs + `(("python-contextlib2" ,python-contextlib2) + ("python-pathlib2" ,python-pathlib2) + ("python-rst.linker" ,python-rst.linker))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-sphinx" ,python-sphinx) + ("python-unittest2" ,python-unittest2))) + (home-page "https://github.com/jaraco/zipp") + (synopsis + "Backport of pathlib-compatible object wrapper for zip files") + (description + "This package provides a @code{pathlib}-compatible @code{Zipfile} object +wrapper. It provides a backport of the @code{Path} object.") + (license license:expat))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index d9065e8b15..88a00070a8 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -77,14 +77,13 @@ with what is used by the Bitcoin network.") (define-public python-bcrypt (package (name "python-bcrypt") - (version "3.1.6") + (version "3.1.7") (source (origin (method url-fetch) (uri (pypi-uri "bcrypt" version)) (sha256 - (base32 - "1sh2xh0iragdq8dhssc1cdd02nppjq7b5kmv0qladfi2s9cnfqs4")))) + (base32 "0hhywhxx301cxivgxrpslrangbfpccc8y83qbwn1f57cab3nj00b")))) (build-system python-build-system) (native-inputs `(("python-pycparser" ,python-pycparser) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 660e5e40a9..e3e2b5f0d7 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -29,7 +29,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke ;;; Copyright © 2016, 2017 Stefan Reichör ;;; Copyright © 2016 Dylan Jeffers -;;; Copyright © 2016, 2017 Alex Vong +;;; Copyright © 2016, 2017, 2019 Alex Vong ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2016, 2017, 2018 Julien Lepiller ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice @@ -60,6 +60,7 @@ ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2019 Sam ;;; Copyright © 2019 Jack Hill +;;; Copyright © 2019 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) + #:use-module (gnu packages dbm) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) @@ -118,6 +120,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-check) + #:use-module (gnu packages python-compression) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) @@ -2692,7 +2695,7 @@ ecosystem, but can naturally be used also by other projects.") (define-public python-robotframework (package (name "python-robotframework") - (version "3.1.1") + (version "3.1.2") ;; There are no tests in the PyPI archive. (source (origin @@ -2702,8 +2705,7 @@ ecosystem, but can naturally be used also by other projects.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1aaiamc9l35m5sf7xl2qc5q9308v7sz3p1qgzcslsjxzddphyn4v")) + (base32 "16gnxy0qinh8fhs0qvhff5z2xh49c3cqgm0d7bfjw120df6x7fym")) (patches (search-patches "python-robotframework-honor-source-date-epoch.patch")))) (build-system python-build-system) @@ -4863,17 +4865,101 @@ them as the version argument or in a SCM managed file.") (define-public python2-setuptools-scm (package-with-python2 python-setuptools-scm)) +(define-public python-pathlib2 + (package + (name "python-pathlib2") + (version "2.3.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathlib2" version)) + (sha256 + (base32 + "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695")))) + (build-system python-build-system) + (propagated-inputs + `(("python-scandir" ,python-scandir) + ("python-six" ,python-six))) + (home-page "https://pypi.python.org/pypi/pathlib2/") + (synopsis "Object-oriented filesystem paths") + (description "The goal of pathlib2 is to provide a backport of the +standard @code{pathlib} module which tracks the standard library module, so +all the newest features of the standard @code{pathlib} can be used also on +older Python versions.") + (license license:expat))) + +(define-public python-importlib-metadata + (package + (name "python-importlib-metadata") + (version "0.18") + (source + (origin + (method url-fetch) + (uri (pypi-uri "importlib_metadata" version)) + (sha256 + (base32 + "1nqj6vj2z4byi8flzf2lbldhqgicsz9mkpv4k69kjd8p8qxy4vnb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-configparser" ,python-configparser) + ("python-contextlib2" ,python-contextlib2) + ("python-docutils" ,python-docutils) + ("python-pathlib2" ,python-pathlib2) + ("python-rst.linker" ,python-rst.linker) + ("python-zipp" ,python-zipp))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-sphinx" ,python-sphinx))) + (home-page "https://importlib-metadata.readthedocs.io/") + (synopsis "Read metadata from Python packages") + (description + "@code{importlib_metadata} is a library which provides an API for +accessing an installed Python package's metadata, such as its entry points or +its top-level name. This functionality intends to replace most uses of +@code{pkg_resources} entry point API and metadata API. Along with +@code{importlib.resources} in Python 3.7 and newer, this can eliminate the +need to use the older and less efficient @code{pkg_resources} package.") + (license license:asl2.0))) + +(define-public python-jaraco-packaging + (package + (name "python-jaraco-packaging") + (version "6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "jaraco.packaging" version)) + (sha256 + (base32 + "0zimrnkh33b9g8ffw11mjh6kvs54cy5gcjw1h5cl1r7dc833dmkm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-checkdocs" ,python-pytest-checkdocs) + ("python-pytest-flake8" ,python-pytest-flake8) + ("python-rst.linker" ,python-rst.linker) + ("python-setuptools" ,python-setuptools) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-six" ,python-six) + ("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/jaraco/jaraco.packaging") + (synopsis "Tools to supplement packaging Python releases") + (description + "This package provides various tools to supplement packaging Python +releases.") + (license license:expat))) + (define-public python-pathpy (package (name "python-pathpy") - (version "11.0.1") + (version "11.5.0") (source (origin (method url-fetch) (uri (pypi-uri "path.py" version)) (sha256 - (base32 "07x15v8c7ry9bvycw294c9yq6ky9v2b0dalvgi6rn38ilh69vsz7")))) - ;; (outputs '("out" "doc")) + (base32 "1jxkf91syzxlpiwgm83fjfz1m5xh3jrvv4iyl5wjsnkk599pls5n")))) + (outputs '("out" "doc")) (build-system python-build-system) (propagated-inputs `(("python-appdirs" ,python-appdirs))) @@ -4882,26 +4968,31 @@ them as the version argument or in a SCM managed file.") ("python-sphinx" ,python-sphinx) ("python-rst.linker" ,python-rst.linker) ("python-pytest" ,python-pytest) - ("python-pytest-runner" ,python-pytest-runner))) + ("python-pytest-runner" ,python-pytest-runner) + ("python-jaraco-packaging" ,python-jaraco-packaging))) (arguments - ;; FIXME: Documentation and tests require "jaraco.packaging". - `(#:tests? #f)) - ;; #:phases - ;; (modify-phases %standard-phases - ;; (add-after 'build 'build-doc - ;; (lambda _ - ;; (setenv "LANG" "en_US.UTF-8") - ;; (zero? (system* "python" "setup.py" "build_sphinx")))) - ;; (add-after 'install 'install-doc - ;; (lambda* (#:key outputs #:allow-other-keys) - ;; (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - ;; (doc (string-append data "/doc/" ,name "-" ,version)) - ;; (html (string-append doc "/html"))) - ;; (mkdir-p html) - ;; (for-each (lambda (file) - ;; (copy-file file (string-append doc "/" file))) - ;; '("README.rst" "CHANGES.rst")) - ;; (copy-recursively "build/sphinx/html" html))))))) + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + (setenv "LANG" "en_US.UTF-8") + (invoke "python" "setup.py" "build_sphinx"))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((data (string-append (assoc-ref outputs "doc") "/share")) + (doc (string-append data "/doc/" ,name "-" ,version)) + (html (string-append doc "/html"))) + (mkdir-p html) + (for-each (lambda (file) + (copy-file file (string-append doc "/" file))) + '("README.rst" "CHANGES.rst")) + (copy-recursively "build/sphinx/html" html) + #t))) + (replace 'check + (lambda _ + ;; The import time test aborts if an import takes longer than + ;; 100ms. It may very well take a little longer than that. + (invoke "pytest" "-v" "-k" "not test_import_time")))))) (home-page "https://github.com/jaraco/path.py") (synopsis "Python module wrapper for built-in os.path") (description @@ -7898,6 +7989,27 @@ be set via config files and/or environment variables.") @code{ArgumentParser} object.") (license license:asl2.0))) +(define-public python-contextlib2 + (package + (name "python-contextlib2") + (version "0.5.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "contextlib2" version)) + (sha256 + (base32 + "0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh")))) + (build-system python-build-system) + (home-page "http://contextlib2.readthedocs.org/") + (synopsis "Tools for decorators and context managers") + (description "This module is primarily a backport of the Python +3.2 contextlib to earlier Python versions. Like contextlib, it +provides utilities for common tasks involving decorators and context +managers. It also contains additional features that are not part of +the standard library.") + (license license:psfl))) + (define-public python2-contextlib2 (package (name "python2-contextlib2") @@ -9717,16 +9829,16 @@ format.") (define-public python-twisted (package (name "python-twisted") - (version "19.2.0") + (version "19.2.1") (source (origin (method url-fetch) (uri (pypi-uri "Twisted" version ".tar.bz2")) (sha256 (base32 - "1gmb8d57s13d8znvqnxi47vqzqz141z443dbxg9wjkp8ia9f220p")))) + "0liymyd4pzphizjlpwkncxjpm9akyr3lkfkm77yfg6wasv108b7s")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; FIXME: Some tests are failing. + '(#:tests? #f)) ; FIXME: some tests fail (propagated-inputs `(("python-zope-interface" ,python-zope-interface) ("python-pyhamcrest" ,python-pyhamcrest) @@ -10349,14 +10461,14 @@ etc.") (define-public python-stem (package (name "python-stem") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (pypi-uri "stem" version)) (sha256 (base32 - "1awiglfiajnx2hva9aqpj3fmdvdb4qg7cwnlfyih827m68y3cq8v")))) + "18lc95pmc7i089nlsb06dsxyjl5wbhxfqgdxbjcia35ndh8z7sn9")))) (build-system python-build-system) (arguments `(#:phases @@ -13423,6 +13535,37 @@ belong to tagged versions.") (define-public python2-setuptools-scm-git-archive (package-with-python2 python-setuptools-scm-git-archive)) +(define-public python-setuptools-git + (package + (name "python-setuptools-git") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "setuptools-git" version)) + (sha256 + (base32 + "0i84qjwp5m0l9qagdjww2frdh63r37km1c48mrvbmaqsl1ni6r7z")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; This is needed for tests. + (add-after 'unpack 'configure-git + (lambda _ + (setenv "HOME" "/tmp") + (invoke "git" "config" "--global" "user.email" "guix") + (invoke "git" "config" "--global" "user.name" "guix") + #t))))) + (native-inputs + `(("git" ,git-minimal))) + (home-page "https://github.com/msabramo/setuptools-git") + (synopsis "Setuptools revision control system plugin for Git") + (description + "This package provides a plugin for Setuptools for revision control with +Git.") + (license license:bsd-3))) + (define-public python-pyclipper (package (name "python-pyclipper") @@ -14026,6 +14169,51 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style @code{f} strings.") (license license:expat))) +(define-public python-typed-ast + (package + (name "python-typed-ast") + (version "1.3.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "typed-ast" version)) + (sha256 + (base32 + "1m7pr6qpana3cvqwiw7mlvrgvmw27ch5mx1592572xhlki8g85ak")))) + (build-system python-build-system) + (arguments + `(#:modules ((guix build utils) + (guix build python-build-system) + (ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (let ((cwd (getcwd))) + (setenv "PYTHONPATH" + (string-append cwd "/build/" + (find (cut string-prefix? "lib" <>) + (scandir (string-append cwd "/build"))) + ":" + (getenv "PYTHONPATH")))) + (invoke "pytest") + #t))))) + (native-inputs `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/python/typed_ast") + (synopsis "Fork of Python @code{ast} modules with type comment support") + (description "This package provides a parser similar to the standard +@code{ast} library. Unlike @code{ast}, the parsers in @code{typed_ast} +include PEP 484 type comments and are independent of the version of Python +under which they are run. The @code{typed_ast} parsers produce the standard +Python AST (plus type comments), and are both fast and correct, as they are +based on the CPython 2.7 and 3.7 parsers.") + ;; See the file "LICENSE" for the details. + (license (list license:psfl + license:asl2.0 + license:expat)))) ;ast27/Parser/spark.py + (define-public python-typing (package (name "python-typing") @@ -15113,14 +15301,13 @@ append on old values. Partd excels at shuffling operations.") (define-public python-dask (package (name "python-dask") - (version "1.2.0") + (version "1.2.2") (source (origin (method url-fetch) (uri (pypi-uri "dask" version)) (sha256 - (base32 - "1y0dqcp72ixwblgway0jpvfirlxfcmwrjiivdq96firj1hw127sd")))) + (base32 "0b29gvf96gmp20wicly3v3mhyc93zbm3mdv935fka6x0wax7cy2y")))) (build-system python-build-system) ;; A single test out of 5000+ fails. This test is marked as xfail when ;; pytest-xdist is used. @@ -15331,16 +15518,15 @@ with the HTTP/2-based RPC framework gRPC.") (define-public python-astunparse (package (name "python-astunparse") - (version "1.6.1") + (version "1.6.2") (source (origin (method url-fetch) (uri (pypi-uri "astunparse" version)) (sha256 - (base32 - "1jhidwyrqn17avqh9xnnm3wd7q7aahaq009cba67g86y6gxicyyj")))) + (base32 "0rzbc44xcvzjhhiy7wac96mgal5mcjz1mfq8rmvgswskf4kf9cys")))) (build-system python-build-system) - (arguments '(#:tests? #f)) ; there are none + (arguments '(#:tests? #f)) ; there are none (propagated-inputs `(("python-six" ,python-six) ("python-wheel" ,python-wheel))) @@ -15568,3 +15754,40 @@ by Igor Pavlov.") (define-public python2-pylzma (package-with-python2 python-pylzma)) + +(define-public python-bsddb3 + (package + (name "python-bsddb3") + (version "6.2.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bsddb3" version)) + (sha256 + (base32 + "019db2y6bfmiqbrgg9x9f6h72qjmqh05czdn2v5sy9bl0gs23mj2")))) + (build-system python-build-system) + (inputs + `(("bdb" ,bdb))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure-locations + (lambda* (#:key inputs #:allow-other-keys) + (setenv "BERKELEYDB_DIR" (assoc-ref inputs "bdb")) + (setenv "YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION" "1") + #t)) + (replace 'check + (lambda _ + (invoke "python3" "test3.py" "-v")))))) + (home-page "https://www.jcea.es/programacion/pybsddb.htm") + (synopsis "Python bindings for Oracle Berkeley DB") + (description + "This module provides a nearly complete wrapping of the Oracle/Sleepycat +C API for the Database Environment, Database, Cursor, Log Cursor, Sequence and +Transaction objects, and each of these is exposed as a Python type in the +bsddb3.db module. The database objects can use various access methods: btree, +hash, recno, and queue. Complete support of Berkeley DB distributed +transactions. Complete support for Berkeley DB Replication Manager. +Complete support for Berkeley DB Base Replication. Support for RPC.") + (license license:bsd-3))) diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm index 63d1281668..43da5c636a 100644 --- a/gnu/packages/sagemath.scm +++ b/gnu/packages/sagemath.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Andreas Enge +;;; Copyright © 2019 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages bdw-gc) @@ -308,8 +310,19 @@ on numerical types, while GiNaC depends on CLN for this purpose.") (invoke "make" "libzn_poly.so"))) (add-after 'install 'install-so (lambda* (#:key outputs #:allow-other-keys) - (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) - (install-file "libzn_poly.so" lib))))))) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (soname (string-append "libzn_poly-" ,version ".so")) + (target (string-append lib "/" soname))) + (install-file "libzn_poly.a" lib) + (install-file soname lib) + (symlink target + (string-append lib "/libzn_poly.so")) + (symlink target + (string-append lib "/libzn_poly-" + ,(version-major+minor version) + ".so"))) + #t))))) (synopsis "Arithmetic for polynomials over Z/NZ") (description "zn_poly implements the arithmetic of polynomials the coefficients of which are modular integers.") @@ -353,3 +366,109 @@ Boolean variables. As a unique approach, binary decision diagrams are used as internal storage type for polynomial structures.") (license license:gpl2+) (home-page "https://gitlab.com/sagemath/zn_poly"))) + +(define-public lcalc + (package + (name "lcalc") + (version "1.23") + ;; The original home page of the project has disappeared, as well as + ;; code hosted by the original author on Google Code. The latter has + ;; been copied to gitlab.com/sagemath and purportedly contains patches + ;; for a never released version 1.3, that supposedly follows 1.23. + ;; We use the tarball as well as the patches hosted inside the sage + ;; package system distributed with the sage tarball. + (source + (origin + (method url-fetch) + (uri (string-append "ftp://ftp.fu-berlin.de/unix/misc/sage/spkg/" + "upstream/lcalc/lcalc-1.23.tar.bz2")) + (sha256 + (base32 + "1c6dsdshgxhqppjxvxhp8yhpxaqvnz3d1mlh26r571gkq8z2bm43")) + (patches (search-patches "lcalc-lcommon-h.patch" + "lcalc-default-parameters-1.patch" + "lcalc-default-parameters-2.patch" + "lcalc-using-namespace-std.patch")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'prepare-build + (lambda* (#:key outputs #:allow-other-keys) + (chdir "src") + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("^INSTALL_DIR= /usr/local") + (string-append "INSTALL_DIR=" out)) + ;; Sage renames the include directory, so we do it also. + (("include/Lfunction") + "include/libLfunction") + ;; Add --std=c++11 to be compatible with the "auto" keyword + ;; introduced by lcalc-using-namespace-std.patch. + (("^#EXTRA= -pg") + "EXTRA=--std=c++11"))) + #t)) + (add-before 'install 'make-output-dirs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) + (mkdir-p bin) + (mkdir-p lib) + (mkdir-p include)) + #t))))) + ;; FIXME: + ;; We need to add pari-gp and probably pari related patches from the + ;; sage project, as well as uncomment the line setting PARI_DEFINE in + ;; the Makefile to get the full functionality of this package. + ;; For the time being, we hope that sage can be compiled without. + (synopsis "C++ library for L-functions") + (description "Lcalc computes L-functions, in particular the Riemann +zeta function and its twists by quadratic characters.") + (license license:gpl2+) + (home-page "https://gitlab.com/sagemath/sage"))) + +(define-public ratpoints + (package + (name "ratpoints") + (version "2.1.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.mathe2.uni-bayreuth.de/stoll/programs/" + "ratpoints-" version ".tar.gz")) + (sha256 + (base32 + "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4")) + (patches + ;; Taken from + ;; + (search-patches "ratpoints-sturm_and_rp_private.patch")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:make-flags + (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out")) + "CCFLAGS=-fPIC") + #:phases + (modify-phases %standard-phases + (delete 'configure) ;no configure script + (add-before 'install 'create-install-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p out) + (with-directory-excursion out + (for-each (lambda (d) (mkdir-p d)) + '("bin" "include" "lib")))) + #t))))) + (inputs + `(("gmp" ,gmp))) + (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/") + (synopsis "Find rational points on hyperelliptic curves") + (description "Ratpoints tries to find all rational points within +a given height bound on a hyperelliptic curve in a very efficient way, +by using an optimized quadratic sieve algorithm.") + (license license:gpl2+))) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index 1ac72f2baa..98b0cc7044 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Benjamin Slade +;;; Copyright © 2019 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -77,14 +79,14 @@ implementing both small and large scale systems.") (define-public rep-gtk (package (name "rep-gtk") - (version "0.90.8.2") + (version "0.90.8.3") (source (origin (method url-fetch) - (uri (string-append "http://download.tuxfamily.org/librep/" + (uri (string-append "https://download.tuxfamily.org/librep/" name "/" name "_" version ".tar.xz")) (sha256 (base32 - "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz")) + "0hgkkywm8zczir3lqr727bn7ybgg71x9cwj1av8fykkr8pdpard9")) (modules '((guix build utils))) (snippet '(begin @@ -94,14 +96,26 @@ implementing both small and large scale systems.") "installdir=$(libdir)/rep")) #t)))) (build-system gnu-build-system) - (arguments '(#:tests? #f)) ; no tests + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'remove-autogen + (lambda _ + ;; Remove autogen.sh so that the bootstrap phase can run + ;; autoreconf. + (delete-file "autogen.sh") + #t))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (propagated-inputs ;; required by rep-gtk.pc. `(("gtk+" ,gtk+-2) ("librep" ,librep))) - (home-page "http://sawfish.wikia.com/wiki/Rep-GTK") + (home-page "https://sawfish.fandom.com/wiki/Rep-GTK") (synopsis "GTK+ binding for librep") (description "Rep-GTK is a GTK+ (and GLib, GDK) binding to the librep, and one of the @@ -111,14 +125,14 @@ backend of Sawfish.") (define-public sawfish (package (name "sawfish") - (version "1.11") + (version "1.12.0") (source (origin (method url-fetch) - (uri (string-append "http://download.tuxfamily.org/sawfish/" + (uri (string-append "https://download.tuxfamily.org/sawfish/" name "_" version ".tar.xz")) (sha256 (base32 - "0wp4m0p836a0rysbcdqb6z5hxlxqj3rgdbks3bs44rlssx0mcvyg")) + "1z7awzgw8d15aw17kpbj460pcxq8l2rhkaxk47w7yg9qrmg0xja4")) (modules '((guix build utils))) (snippet '(begin @@ -172,7 +186,7 @@ backend of Sawfish.") ("libxrandr" ,libxrandr) ("libxtst" ,libxtst) ("rep-gtk" ,rep-gtk))) - (home-page "http://sawfish.wikia.com/wiki/Main_Page") + (home-page "https://sawfish.tuxfamily.org") (synopsis "Configurable window manager") (description "Sawfish is an extensible window manager using a Lisp-based scripting diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 51ed0317bc..faff25ddc1 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -252,16 +252,14 @@ over the Internet in an HTTP and CDN friendly way; (define-public rclone (package (name "rclone") - (version "1.47.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ncw/rclone.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1nxwjr9jly6wh1ixr6a7zhlg4b3298v940040fsm0n3lcljd37zx")))) + (version "1.48.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/ncw/rclone/releases/download/v" + version "/rclone-v" version ".tar.gz")) + (sha256 + (base32 "1r03rlsk0qpya1fl8xfhj5inccjywf2cqgkd8r6wfhf3w2qd1zlc")))) ;; FIXME: Rclone bundles some libraries Guix already provides. Need to ;; un-bundle them. (build-system go-build-system) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 69313b9bb6..21ca185066 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,8 +26,10 @@ (define-module (gnu packages tcl) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system perl) #:use-module (gnu packages) #:use-module (gnu packages image) @@ -35,7 +38,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (guix licenses)) + #:use-module ((guix licenses) #:prefix license:)) (define-public tcl (package @@ -81,7 +84,7 @@ (home-page "http://www.tcl.tk/") (synopsis "The Tcl scripting language") (description "The Tcl (Tool Command Language) scripting language.") - (license tcl/tk))) + (license license:tcl/tk))) (define-public expect @@ -130,7 +133,7 @@ telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this stuff trivial. Expect is also useful for testing these same applications. And by adding Tk, you can wrap interactive applications in X11 GUIs.") - (license public-domain))) ; as written in `license.terms' + (license license:public-domain))) ; as written in `license.terms' (define-public tk (package @@ -230,7 +233,7 @@ interfaces (GUIs) in the Tcl language.") ;; those of the orignal Tix4.1.3 or Tk8.4.* sources. See the files ;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for ;; details of this license." - (license perl-license))) + (license license:perl-license))) (define-public tcllib (package @@ -344,7 +347,7 @@ modules for Tk, all written in high-level Tcl. Examples of provided widgets: application may register callback scripts for certain document features, and when the parser encounters those features while parsing the document the callback is evaluated.") - (license (non-copyleft + (license (license:non-copyleft "file://LICENCE" "See LICENCE in the distribution.")))) @@ -378,4 +381,31 @@ callback is evaluated.") application development. TclX provides additional interfaces to the operating system, and adds many new programming constructs, text manipulation tools, and debugging tools.") - (license tcl/tk))) + (license license:tcl/tk))) + +(define-public go-github.com-nsf-gothic + (let ((commit "97dfcc195b9de36c911a69a6ec2b5b2659c05652") + (revision "0")) + (package + (name "go-github.com-nsf-gothic") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nsf/gothic") + (commit commit))) + (sha256 + (base32 + "1lrhbml6r4sh22rrn3m9bck70pv0g0c1diprg7cil90x0jidxczr")) + (file-name (git-file-name name version)))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/nsf/gothic")) + (propagated-inputs + `(("tk" ,tk) + ("tcl" ,tcl))) + (home-page "https://github.com/nsf/gothic") + (synopsis "Tcl/Tk Go bindings") + (description "Gothic contains Go bindings for Tcl/Tk. The package contains +only one type and one function that can be used to create a Tk interpreter.") + (license license:expat)))) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 731bbc5d16..b35486ba59 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Efraim Flashner +;;; Copyright © 2019 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,15 +37,19 @@ #:use-module (gnu packages assembly) #:use-module (gnu packages boost) #:use-module (gnu packages documentation) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages libbsd) #:use-module (gnu packages libreoffice) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) @@ -388,3 +393,47 @@ projects. The EditorConfig project maintains a file format and plugins for various text editors which allow this file format to be read and used by those editors.") (license license:bsd-2))) + +(define-public texmacs + (package + (name "texmacs") + (version "1.99.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/" + "source/TeXmacs-" version "-src.tar.gz")) + (sha256 + (base32 + "0i95sf9y8qpgxd8f39cprbp3s200nm9lml0xdpyn46n838acvw19")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "3rdparty") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("freetype" ,freetype) + ("guile" ,guile-1.8) + ("perl" ,perl) + ("python" ,python-wrapper) + ("qt" ,qt-4))) + (arguments + `(#:tests? #f ;no check target + #:phases + (modify-phases %standard-phases + (add-before 'configure 'gzip-flags + (lambda _ + (substitute* "Makefile.in" + (("^GZIP = gzip -f") "GZIP = gzip -f -n"))))))) + (synopsis "Editing platform with special features for scientists") + (description + "GNU TeXmacs is a text editing platform which is specialized for +scientists. It is ideal for editing structured documents with different +types of content. It has robust support for mathematical formulas and plots. + It can also act as an interface to external mathematical programs such as R +and Octave. TeXmacs is completely extensible via Guile.") + (license license:gpl3+) + (home-page "https://www.texmacs.org/tmweb/home/welcome.en.html"))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9859c55f98..2b6d9f5b7e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1446,7 +1446,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2019.05.20") + (version "2019.06.21") (source (origin (method url-fetch) (uri (string-append "https://github.com/rg3/youtube-dl/releases/" @@ -1454,7 +1454,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "18xwdfvpkqrnj0kb8xj8hgwhgiqpv7x7x7zzr4x3vynb9grcv9m8")))) + "03a729198zzhixbn7xixi9bprmk3qqh5dsyh3dqhji6lmlijx1w5")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 303171e61d..a35f124f46 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -399,46 +399,48 @@ manage system or application containers.") (define-public libvirt (package (name "libvirt") - (version "4.10.0") + (version "5.4.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) (sha256 (base32 - "0v17zzyyb25nn9l18v5244myg7590dp6ppwgi8xysipifc0q77bz")))) + "0ywf8m9yz2hxnic7fylzlmgy4m353r4vv5zsvp89zq5yh4h81yhw")))) (build-system gnu-build-system) (arguments - `(;; FAIL: virshtest - ;; FAIL: virfirewalltest - ;; FAIL: virkmodtest - ;; FAIL: virnetsockettest - ;; FAIL: networkxml2firewalltest - ;; FAIL: nwfilterebiptablestest - ;; FAIL: nwfilterxml2firewalltest - ;; Time-out while running commandtest. - #:tests? #f - #:configure-flags + `(#:configure-flags (list "--with-polkit" + (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/" + ,name "-" ,version) "--sysconfdir=/etc" "--localstatedir=/var") #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-tests + (add-before 'configure 'fix-BOURNE_SHELL-definition + ;; BOURNE_SHELL is hard-#defined to ‘/bin/sh’, causing test failures. (lambda _ - (substitute* '("tests/commandtest.c" - "gnulib/tests/test-posix_spawn1.c" - "gnulib/tests/test-posix_spawn2.c") + (substitute* "config.h.in" (("/bin/sh") (which "sh"))) #t)) + (add-before 'configure 'disable-broken-tests + (lambda _ + (let ((tests (list "commandtest" ; hangs idly + "virnetsockettest" ; tries to network + "virshtest"))) ; fails + (substitute* "tests/Makefile.in" + (((format #f "(~a)\\$\\(EXEEXT\\)" (string-join tests "|"))) + "")) + #t))) (replace 'install ;; Since the sysconfdir and localstatedir should be /etc and /var ;; at runtime, we must prevent writing to them at installation ;; time. - (lambda _ - (invoke "make" "install" - "sysconfdir=/tmp/etc" - "localstatedir=/tmp/var"))) + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "install" + "sysconfdir=/tmp/etc" + "localstatedir=/tmp/var" + make-flags))) (add-after 'install 'wrap-libvirtd (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -458,7 +460,7 @@ manage system or application containers.") ("libpcap" ,libpcap) ("libnl" ,libnl) ("libuuid" ,util-linux) - ("lvm2" ,lvm2) ; for libdevmapper + ("lvm2" ,lvm2) ; for libdevmapper ("curl" ,curl) ("openssl" ,openssl) ("cyrus-sasl" ,cyrus-sasl) @@ -534,13 +536,13 @@ three libraries: (define-public python-libvirt (package (name "python-libvirt") - (version "4.10.0") + (version "5.3.0") (source (origin (method url-fetch) (uri (pypi-uri "libvirt-python" version)) (sha256 (base32 - "11fipj9naihgc9afc8bz5hi05xa1shp4qcy170sa18p3sl4zljb9")))) + "1zrhkz68ka4f08wwm36y3zzwfn1r65h4nw1nm9qgg8jmrfazj4sj")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 3b0cbae7a7..6a820addca 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3112,7 +3112,7 @@ select or poll.") (define-public perl-libwww (package (name "perl-libwww") - (version "6.37") + (version "6.39") (source (origin (method url-fetch) (uri (string-append @@ -3120,7 +3120,7 @@ select or poll.") version ".tar.gz")) (sha256 (base32 - "04a24cx9gs070rvlwf5kanz03y7nnq9k2nmpr01plnm059iprvf6")))) + "1mblfwz3g7vmyykmb0mcbmmad77rwx55fwaca9ymv9wajd3pg3cs")))) (build-system perl-build-system) (native-inputs `(("perl-test-fatal" ,perl-test-fatal) @@ -3662,14 +3662,14 @@ applications.") (define-public perl-uri (package (name "perl-uri") - (version "1.73") + (version "1.76") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" + (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/" "URI-" version ".tar.gz")) (sha256 (base32 - "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc")))) + "0gj1aj18k43kmzc3y1zhj5giinf8rksacf757r475xfna0fqxjdj")))) (build-system perl-build-system) (native-inputs ;; For tests. diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 63916d1cc3..72f0e1fd55 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -310,7 +310,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "4.10") + (version "4.11") (source (origin (method git-fetch) @@ -320,7 +320,7 @@ integrate Windows applications into your desktop.") (file-name (git-file-name name version)) (sha256 (base32 - "0kl5718c4xk8d1va1jb5jaa2n0vw3l0hi6bpc7siaww1fp64hy98")))) + "0h8qldqr9w1kwn48qgg5m1cs2xqkv8xxg2c66cvfka91hy886jcf")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -366,7 +366,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "041d3km85iqbshspy9av1fxjwq18xldrb18j04xl2fmpv1hq3pas")))) + "1rmyfwlynzs2niz7l2lwjs2axm6in6gb43ldbzyzsflxsmk5fl9f")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("faudio" ,faudio) ("ffmpeg" ,ffmpeg) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index d59041f639..a9b96529cf 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -519,6 +519,7 @@ move windows, switch between desktops, etc.).") (git-reference (url "https://github.com/resurrecting-open-source-projects/scrot.git") (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy")))) (build-system gnu-build-system) @@ -1178,7 +1179,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (define-public rofi (package (name "rofi") - (version "1.5.2") + (version "1.5.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/DaveDavenport/rofi/" @@ -1186,7 +1187,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") version "/rofi-" version ".tar.xz")) (sha256 (base32 - "17faa0rj8vqidrijwx9jrq0c29003n8v3izvc66yssfljgb8kcpj")))) + "0y78ya2va2lg3ww17n11y9awn8lhcp1px2d8gxaimxfqlxczs8la")))) (build-system gnu-build-system) (inputs `(("pango" ,pango) @@ -1206,7 +1207,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (arguments - `(#:parallel-tests? #f ; May fail in some circumstances. + `(#:parallel-tests? #f ; fails in some circumstances #:phases (modify-phases %standard-phases (add-before 'configure 'adjust-tests diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index c518508360..2b4feb1c2d 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -188,7 +188,7 @@ to share commonly used Xfce widgets among the Xfce applications.") (define-public exo (package (name "exo") - (version "0.12.5") + (version "0.12.6") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -196,7 +196,7 @@ to share commonly used Xfce widgets among the Xfce applications.") "exo-" version ".tar.bz2")) (sha256 (base32 - "1s23prcgall6r5dpn0qlrdq3zj13p95a5s0l2vflgrka8gb39x78")))) + "00qh8ihrf09jvd26kilybihkgvv6rvi0l1bvlldxc99jb7ygy5ql")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index ee345742a5..bd84c1bf3e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1780,17 +1780,14 @@ features and to query screensaver info on specific windows.") (define-public sessreg (package (name "sessreg") - (version "1.1.1") + (version "1.1.2") (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/app/sessreg-" - version - ".tar.bz2")) - (sha256 - (base32 - "1qd66mg2bnppqz4xgdjzif2488zl82vx2c26ld3nb8pnyginm9vq")))) + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/app/sessreg-" version ".tar.bz2")) + (sha256 + (base32 "0crczl25zynkrslmm8sjaxszhrh4i33m7h5fg4wfdb3k8aarxjyz")))) (build-system gnu-build-system) (inputs `(("xorgproto" ,xorgproto))) @@ -2076,14 +2073,14 @@ legacy X clients.") (define-public xcalc (package (name "xcalc") - (version "1.0.7") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/app/" "xcalc-" version ".tar.gz")) (sha256 - (base32 "1xgih1iq9498m7vk22qrdsck1rb905sn395azjn4a6pmhfai401b")))) + (base32 "0c768lh0nh28ram9ldldhaf51024fngc589v4pjmf3lxmzcihr58")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 73acb3b17f..13cffd9feb 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -895,11 +895,17 @@ and @command{wicd-curses} user interfaces." (vpn-plugins network-manager-vpn-plugins ;list of (default '()))) -(define %network-manager-activation - ;; Activation gexp for NetworkManager. - #~(begin - (use-modules (guix build utils)) - (mkdir-p "/etc/NetworkManager/system-connections"))) +(define network-manager-activation + ;; Activation gexp for NetworkManager + (match-lambda + (($ network-manager dns vpn-plugins) + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/etc/NetworkManager/system-connections") + #$@(if (equal? dns "dnsmasq") + ;; create directory to store dnsmasq lease file + '((mkdir-p "/var/lib/misc")) + '()))))) (define (vpn-plugin-directory plugins) "Return a directory containing PLUGINS, the NM VPN plugins." @@ -949,7 +955,7 @@ and @command{wicd-curses} user interfaces." (service-extension dbus-root-service-type config->package) (service-extension polkit-service-type config->package) (service-extension activation-service-type - (const %network-manager-activation)) + network-manager-activation) (service-extension session-environment-service-type network-manager-environment) ;; Add network-manager to the system profile. diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 656afd1ddb..c90b87c023 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016 Jan Nieuwenhuizen -;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017, 2019 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -273,7 +273,10 @@ FILE-SYSTEMS." (append-map (compose file-system-type-modules file-system-type) file-systems)) -(define* (default-initrd-modules #:optional (system (%current-system))) +(define* (default-initrd-modules + #:optional + (system (or (%current-target-system) + (%current-system)))) "Return the list of modules included in the initrd by default." (define virtio-modules ;; Modules for Linux para-virtualized devices, for use in QEMU guests. diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 247f237622..a891711844 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -223,8 +223,8 @@ info --version") (operating-system-user-accounts os)))) (marionette-eval `(begin - (use-modules (srfi srfi-1) (ice-9 ftw) - (ice-9 match)) + (use-modules (guix build utils) (srfi srfi-1) + (ice-9 ftw) (ice-9 match)) (every (match-lambda ((user home) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 7b5ee18505..9f6baa1a48 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -79,6 +79,7 @@ (services (cons (service marionette-service-type (marionette-configuration (imported-modules '((gnu services herd) + (guix build utils) (guix combinators))))) %base-services)))) diff --git a/guix/build/compile.scm b/guix/build/compile.scm index 794f12379c..c8fe273f7e 100644 --- a/guix/build/compile.scm +++ b/guix/build/compile.scm @@ -63,7 +63,8 @@ ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need ;; help from Guile to solve this. '(unsupported-warning unbound-variable arity-mismatch - macro-use-before-definition)) ;new in 2.2 + macro-use-before-definition ;new in 2.2 + shadowed-toplevel)) ;new in 2.2.5 (define (optimization-options file) "Return the default set of optimizations options for FILE." diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 5c2eb3c14d..eb045cbd1c 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -146,6 +146,7 @@ window-size-y-pixels terminal-window-size terminal-columns + terminal-rows utmpx? utmpx-login-type @@ -1871,23 +1872,17 @@ corresponds to the TIOCGWINSZ ioctl." (list (strerror err)) (list err))))) -(define* (terminal-columns #:optional (port (current-output-port))) - "Return the best approximation of the number of columns of the terminal at -PORT, trying to guess a reasonable value if all else fails. The result is -always a positive integer." - (define (fall-back) - (match (and=> (getenv "COLUMNS") string->number) - (#f 80) - ((? number? columns) - (if (> columns 0) columns 80)))) - +(define (terminal-dimension window-dimension port fall-back) + "Return the terminal dimension defined by WINDOW-DIMENSION, one of +'window-size-columns' or 'window-size-rows' for PORT. If PORT does not +correspond to a terminal, return the value returned by FALL-BACK." (catch 'system-error (lambda () (if (file-port? port) - (match (window-size-columns (terminal-window-size port)) + (match (window-dimension (terminal-window-size port)) ;; Things like Emacs shell-mode return 0, which is unreasonable. (0 (fall-back)) - ((? number? columns) columns)) + ((? number? n) n)) (fall-back))) (lambda args (let ((errno (system-error-errno args))) @@ -1900,6 +1895,24 @@ always a positive integer." (fall-back) (apply throw args)))))) +(define* (terminal-columns #:optional (port (current-output-port))) + "Return the best approximation of the number of columns of the terminal at +PORT, trying to guess a reasonable value if all else fails. The result is +always a positive integer." + (define (fall-back) + (match (and=> (getenv "COLUMNS") string->number) + (#f 80) + ((? number? columns) + (if (> columns 0) columns 80)))) + + (terminal-dimension window-size-columns port fall-back)) + +(define* (terminal-rows #:optional (port (current-output-port))) + "Return the best approximation of the number of rows of the terminal at +PORT, trying to guess a reasonable value if all else fails. The result is +always a positive integer." + (terminal-dimension window-size-rows port (const 25))) + ;;; ;;; utmpx. diff --git a/guix/derivations.scm b/guix/derivations.scm index 8145d51143..433b4551a5 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -21,6 +21,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -34,6 +35,7 @@ #:use-module (guix base16) #:use-module (guix memoization) #:use-module (guix combinators) + #:use-module (guix deprecation) #:use-module (guix monads) #:use-module (gcrypt hash) #:use-module (guix base32) @@ -50,7 +52,8 @@ derivation-builder-environment-vars derivation-file-name derivation-prerequisites - derivation-prerequisites-to-build + derivation-build-plan + derivation-prerequisites-to-build ;deprecated derivation-output? @@ -61,6 +64,7 @@ derivation-input? + derivation-input derivation-input-path derivation-input-derivation derivation-input-sub-derivations @@ -148,14 +152,28 @@ (recursive? derivation-output-recursive?)) ; Boolean (define-immutable-record-type - (make-derivation-input path sub-derivations) + (make-derivation-input drv sub-derivations) derivation-input? - (path derivation-input-path) ; store path + (drv derivation-input-derivation) ; (sub-derivations derivation-input-sub-derivations)) ; list of strings -(define (derivation-input-derivation input) - "Return the object INPUT refers to." - (read-derivation-from-file (derivation-input-path input))) + +(define (derivation-input-path input) + "Return the file name of the derivation INPUT refers to." + (derivation-file-name (derivation-input-derivation input))) + +(define* (derivation-input drv #:optional + (outputs (derivation-output-names drv))) + "Return a for the OUTPUTS of DRV." + ;; This is a public interface meant to be more convenient than + ;; 'make-derivation-input' and giving us more control. + (make-derivation-input drv outputs)) + +(define (derivation-input-key input) + "Return an object for which 'equal?' and 'hash' are constant-time, and which +can thus be used as a key for INPUT in lookup tables." + (cons (derivation-input-path input) + (derivation-input-sub-derivations input))) (set-record-type-printer! (lambda (drv port) @@ -197,8 +215,8 @@ download with a fixed hash (aka. `fetchurl')." "Return the list of output paths corresponding to INPUT, a ." (match input - (($ path sub-drvs) - (map (cut derivation-path->output-path path <>) + (($ drv sub-drvs) + (map (cut derivation->output-path drv <>) sub-drvs)))) (define (valid-derivation-input? store input) @@ -213,20 +231,20 @@ they are coalesced, with their sub-derivations merged. This is needed because Nix itself keeps only one of them." (fold (lambda (input result) (match input - (($ path sub-drvs) + (($ (= derivation-file-name path) sub-drvs) ;; XXX: quadratic (match (find (match-lambda - (($ p s) + (($ (= derivation-file-name p) + s) (string=? p path))) result) (#f (cons input result)) - ((and dup ($ _ sub-drvs2)) + ((and dup ($ drv sub-drvs2)) ;; Merge DUP with INPUT. (let ((sub-drvs (delete-duplicates (append sub-drvs sub-drvs2)))) - (cons (make-derivation-input path - (sort sub-drvs string) derivation-input-output-paths)) +SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned +by 'substitution-oracle'." + (define (built? item) + (valid-path? store item)) - (define input-substitutable? - ;; Return true if and only if all of SUB-DRVS are subsitutable. If at - ;; least one is missing, then everything must be rebuilt. - (compose (cut every substitutable-info <>) derivation-input-output-paths)) - - (define (derivation-built? drv* sub-drvs) + (define (input-built? input) ;; In 'check' mode, assume that DRV is not built. (and (not (and (eqv? mode (build-mode check)) - (eq? drv* drv))) - (every built? (derivation-output-paths drv* sub-drvs)))) + (member input inputs))) + (every built? (derivation-input-output-paths input)))) - (define (derivation-substitutable-info drv sub-drvs) - (and (substitutable-derivation? drv) - (let ((info (filter-map substitutable-info - (derivation-output-paths drv sub-drvs)))) - (and (= (length info) (length sub-drvs)) + (define (input-substitutable-info input) + (and (substitutable-derivation? (derivation-input-derivation input)) + (let* ((items (derivation-input-output-paths input)) + (info (filter-map substitutable-info items))) + (and (= (length info) (length items)) info)))) - (let loop ((drv drv) - (sub-drvs outputs) - (build '()) ;list of - (substitute '())) ;list of - (cond ((derivation-built? drv sub-drvs) - (values build substitute)) - ((derivation-substitutable-info drv sub-drvs) - => - (lambda (substitutables) - (values build - (append substitutables substitute)))) - (else - (let ((build (if (substitutable-derivation? drv) - build - (cons (make-derivation-input - (derivation-file-name drv) sub-drvs) - build))) - (inputs (remove (lambda (i) - (or (member i build) ; XXX: quadratic - (input-built? i) - (input-substitutable? i))) - (derivation-inputs drv)))) - (fold2 loop - (append inputs build) - (append (append-map (lambda (input) - (if (and (not (input-built? input)) - (input-substitutable? input)) - (map substitutable-info - (derivation-input-output-paths - input)) - '())) - (derivation-inputs drv)) - substitute) - (map (lambda (i) - (read-derivation-from-file - (derivation-input-path i))) - inputs) - (map derivation-input-sub-derivations inputs))))))) + (let loop ((inputs inputs) ;list of + (build '()) ;list of + (substitute '()) ;list of + (visited (set))) ;set of + (match inputs + (() + (values build substitute)) + ((input rest ...) + (let ((key (derivation-input-key input))) + (cond ((set-contains? visited key) + (loop rest build substitute visited)) + ((input-built? input) + (loop rest build substitute + (set-insert key visited))) + ((input-substitutable-info input) + => + (lambda (substitutables) + (loop rest build + (append substitutables substitute) + (set-insert key visited)))) + (else + (let ((deps (derivation-inputs + (derivation-input-derivation input)))) + (loop (append deps rest) + (cons (derivation-input-derivation input) build) + substitute + (set-insert key visited)))))))))) -(define (read-derivation drv-port) +(define-deprecated (derivation-prerequisites-to-build store drv #:rest rest) + derivation-build-plan + (let-values (((build download) + (apply derivation-build-plan store + (list (derivation-input drv)) rest))) + (values (map derivation-input build) download))) + +(define* (read-derivation drv-port + #:optional (read-derivation-from-file + read-derivation-from-file)) "Read the derivation from DRV-PORT and return the corresponding -object. Most of the time you'll want to use 'read-derivation-from-file', -which caches things as appropriate and is thus more efficient." +object. Call READ-DERIVATION-FROM-FILE to read derivations declared as inputs +of the derivation being parsed. + +Most of the time you'll want to use 'read-derivation-from-file', which caches +things as appropriate and is thus more efficient." (define comma (string->symbol ",")) @@ -449,8 +463,9 @@ which caches things as appropriate and is thus more efficient." (fold-right (lambda (input result) (match input ((path (sub-drvs ...)) - (cons (make-derivation-input path sub-drvs) - result)))) + (let ((drv (read-derivation-from-file path))) + (cons (make-derivation-input drv sub-drvs) + result))))) '() x)) @@ -552,9 +567,15 @@ that form." (define (write-input input port) (match input - (($ path sub-drvs) + (($ obj sub-drvs) (display "(\"" port) - (display path port) + + ;; 'derivation/masked-inputs' produces objects that contain a string + ;; instead of a , so we need to account for that. + (display (if (derivation? obj) + (derivation-file-name obj) + obj) + port) (display "\"," port) (write-string-list sub-drvs) (display ")" port)))) @@ -645,13 +666,16 @@ name of each input with that input's hash." (($ outputs inputs sources system builder args env-vars) (let ((inputs (map (match-lambda - (($ path sub-drvs) + (($ (= derivation-file-name path) + sub-drvs) (let ((hash (derivation-path->base16-hash path))) (make-derivation-input hash sub-drvs)))) inputs))) (make-derivation outputs - (sort (coalesce-duplicate-inputs inputs) - derivation-inputderivation-input (match-lambda (((? derivation? drv)) - (make-derivation-input (derivation-file-name drv) '("out"))) + (make-derivation-input drv '("out"))) (((? derivation? drv) sub-drvs ...) - (make-derivation-input (derivation-file-name drv) sub-drvs)) - (((? direct-store-path? input)) - (make-derivation-input input '("out"))) - (((? direct-store-path? input) sub-drvs ...) - (make-derivation-input input sub-drvs)) - ((input . _) - (let ((path (add-to-store store (basename input) - #t "sha256" input))) - (make-derivation-input path '()))))) + (make-derivation-input drv sub-drvs)) + (_ #f))) + + (define input->source + (match-lambda + (((? string? input) . _) + (if (direct-store-path? input) + input + (add-to-store store (basename input) + #t "sha256" input))) + (_ #f))) ;; Note: lists are sorted alphabetically, to conform with the behavior of ;; C++ `std::map' in Nix itself. @@ -828,32 +854,31 @@ derivation. It is kept as-is, uninterpreted, in the derivation." (make-derivation-output "" hash-algo hash recursive?))) (sort outputs stringsource inputs)) + stringderivation-input - (delete-duplicates inputs))) + (filter-map input->derivation-input inputs)) derivation-inputbytevector drv) - (map derivation-input-path inputs))) + (append (map derivation-input-path inputs) + sources))) (drv* (set-field drv (derivation-file-name) file))) - (hash-set! %derivation-cache file drv*) - drv*))) + ;; Preserve pointer equality. This improves the performance of + ;; 'eq?'-memoization on derivations. + (or (hash-ref %derivation-cache file) + (begin + (hash-set! %derivation-cache file drv*) + drv*))))) (define (invalidate-derivation-caches!) "Invalidate internal derivation caches. This is mostly useful for @@ -920,7 +945,8 @@ recursively." ;; in the format used in 'derivation' calls. (mlambda (input loop) (match input - (($ path (sub-drvs ...)) + (($ (= derivation-file-name path) + (sub-drvs ...)) (match (vhash-assoc path mapping) ((_ . (? derivation? replacement)) (cons replacement sub-drvs)) @@ -990,6 +1016,11 @@ derivation/output pairs, using the specified MODE." (build-things store (map (match-lambda ((? derivation? drv) (derivation-file-name drv)) + ((? derivation-input? input) + (cons (derivation-input-path input) + (string-join + (derivation-input-sub-derivations input) + ","))) ((? string? file) file) (((? derivation? drv) . output) (cons (derivation-file-name drv) diff --git a/guix/progress.scm b/guix/progress.scm index f150b081d6..349637dbcf 100644 --- a/guix/progress.scm +++ b/guix/progress.scm @@ -197,7 +197,9 @@ object) and TRANSFERRED (a total number of bytes) to determine the throughput." (define elapsed (duration->seconds - (time-difference (current-time time-monotonic) start-time))) + (time-difference (current-time (time-type start-time)) + start-time))) + (if (and (number? size) (not (zero? size))) (let* ((% (* 100.0 (/ transferred size))) (throughput (/ transferred elapsed)) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 61ca4dca9f..ec58ba871b 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -836,11 +836,9 @@ build." (#t (match (package-source p) (#f - (format (current-error-port) - (G_ "~a: warning: \ -package '~a' has no source~%") - (location->string (package-location p)) - (package-name p)) + (warning (package-location p) + (G_ "package '~a' has no source~%") + (package-name p)) '()) (s (list (package-source-derivation store s))))) @@ -918,7 +916,8 @@ needed." '()))) (items (filter-map (match-lambda (('argument . (? store-path? file)) - file) + (and (not (derivation-path? file)) + file)) (_ #f)) opts)) (roots (filter-map (match-lambda diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 8fe81ad64b..2e14857f1e 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -254,8 +254,7 @@ GNU-BUILD-SYSTEM have zero dependencies." "Return the objects and store items corresponding to the dependencies of OBJ, a or store item." (if (derivation? obj) - (append (map (compose read-derivation-from-file derivation-input-path) - (derivation-inputs obj)) + (append (map derivation-input-derivation (derivation-inputs obj)) (derivation-sources obj)) '())) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 5751123525..7b277b63f1 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -26,6 +26,7 @@ (define-module (guix scripts package) #:use-module (guix ui) #:use-module ((guix status) #:select (with-status-verbosity)) + #:use-module ((guix build syscalls) #:select (terminal-rows)) #:use-module (guix store) #:use-module (guix grafts) #:use-module (guix derivations) @@ -178,9 +179,9 @@ hooks\" run when building the profile." ;;; (define (find-packages-by-description regexps) - "Return two values: the list of packages whose name, synopsis, description, -or output matches at least one of REGEXPS sorted by relevance, and the list of -relevance scores." + "Return a list of pairs: packages whose name, synopsis, description, +or output matches at least one of REGEXPS sorted by relevance, and its +non-zero relevance score." (let ((matches (fold-packages (lambda (package result) (if (package-superseded package) result @@ -189,19 +190,19 @@ relevance scores." ((? zero?) result) (score - (cons (list package score) + (cons (cons package score) result))))) '()))) - (unzip2 (sort matches - (lambda (m1 m2) - (match m1 - ((package1 score1) - (match m2 - ((package2 score2) - (if (= score1 score2) - (string>? (package-full-name package1) - (package-full-name package2)) - (> score1 score2))))))))))) + (sort matches + (lambda (m1 m2) + (match m1 + ((package1 . score1) + (match m2 + ((package2 . score2) + (if (= score1 score2) + (string>? (package-full-name package1) + (package-full-name package2)) + (> score1 score2)))))))))) (define (transaction-upgrade-entry entry transaction) "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a @@ -755,16 +756,10 @@ processed, #f otherwise." (('query 'search rx) rx) (_ #f)) opts)) - (regexps (map (cut make-regexp* <> regexp/icase) patterns))) + (regexps (map (cut make-regexp* <> regexp/icase) patterns)) + (matches (find-packages-by-description regexps))) (leave-on-EPIPE - (let-values (((packages scores) - (find-packages-by-description regexps))) - (for-each (lambda (package score) - (package->recutils package (current-output-port) - #:extra-fields - `((relevance . ,score)))) - packages - scores))) + (display-search-results matches (current-output-port))) #t)) (('show requested-name) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index b4334b3f16..c716998a5b 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -724,6 +724,32 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")." (define %http-write (@@ (web server http) http-write)) +(match (list (major-version) (minor-version) (micro-version)) + (("2" "2" "5") ;Guile 2.2.5 + (let () + (define %read-line (@ (ice-9 rdelim) %read-line)) + (define bad-header (@@ (web http) bad-header)) + + ;; XXX: Work around by reverting to the + ;; definition of 'read-header-line' as found in 2.2.4 and earlier. + (define (read-header-line port) + "Read an HTTP header line and return it without its final CRLF or LF. +Raise a 'bad-header' exception if the line does not end in CRLF or LF, +or if EOF is reached." + (match (%read-line port) + (((? string? line) . #\newline) + ;; '%read-line' does not consider #\return a delimiter; so if it's + ;; there, remove it. We are more tolerant than the RFC in that we + ;; tolerate LF-only endings. + (if (string-suffix? "\r" line) + (string-drop-right line 1) + line)) + ((line . _) ;EOF or missing delimiter + (bad-header 'read-header-line line)))) + + (set! (@@ (web http) read-header-line) read-header-line))) + (_ #t)) + (define (strip-headers response) "Return RESPONSE's headers minus 'Content-Length' and our internal headers." (fold alist-delete diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm index 955cdd1e95..5278062edd 100644 --- a/guix/scripts/system/search.scm +++ b/guix/scripts/system/search.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018 Ludovic Courtès +;;; Copyright © 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. @@ -139,9 +139,8 @@ columns." . 1))) (define (find-service-types regexps) - "Return two values: the list of service types whose name or description -matches at least one of REGEXPS sorted by relevance, and the list of relevance -scores." + "Return a list of service type/score pairs: service types whose name or +description matches REGEXPS sorted by relevance, and their score." (let ((matches (fold-service-types (lambda (type result) (match (relevance type regexps @@ -149,30 +148,25 @@ scores." ((? zero?) result) (score - (cons (list type score) result)))) + (cons (cons type score) result)))) '()))) - (unzip2 (sort matches - (lambda (m1 m2) - (match m1 - ((type1 score1) - (match m2 - ((type2 score2) - (if (= score1 score2) - (string>? (service-type-name* type1) - (service-type-name* type2)) - (> score1 score2))))))))))) + (sort matches + (lambda (m1 m2) + (match m1 + ((type1 . score1) + (match m2 + ((type2 . score2) + (if (= score1 score2) + (string>? (service-type-name* type1) + (service-type-name* type2)) + (> score1 score2)))))))))) (define (guix-system-search . args) (with-error-handling - (let ((regexps (map (cut make-regexp* <> regexp/icase) args))) + (let* ((regexps (map (cut make-regexp* <> regexp/icase) args)) + (matches (find-service-types regexps))) (leave-on-EPIPE - (let-values (((services scores) - (find-service-types regexps))) - (for-each (lambda (service score) - (service-type->recutils service - (current-output-port) - #:extra-fields - `((relevance . ,score)))) - services - scores)))))) + (display-search-results matches (current-output-port) + #:print service-type->recutils + #:command "guix system search"))))) diff --git a/guix/ui.scm b/guix/ui.scm index 0b4fe144b6..6d243ef041 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -41,12 +41,12 @@ #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix derivations) - #:use-module (guix combinators) #:use-module (guix build-system) #:use-module (guix serialization) #:use-module ((guix licenses) #:select (license? license-name)) #:use-module ((guix build syscalls) - #:select (free-disk-space terminal-columns)) + #:select (free-disk-space terminal-columns + terminal-rows)) #:use-module ((guix build utils) ;; XXX: All we need are the bindings related to ;; '&invoke-error'. However, to work around the bug described @@ -106,8 +106,11 @@ string->recutils package->recutils package-specification->name+version+output + relevance package-relevance + display-search-results + string->generations string->duration matching-generations @@ -774,12 +777,19 @@ error." str)))) (define (show-derivation-outputs derivation) - "Show the output file names of DERIVATION." - (format #t "~{~a~%~}" - (map (match-lambda - ((out-name . out) - (derivation->output-path derivation out-name))) - (derivation-outputs derivation)))) + "Show the output file names of DERIVATION, which can be a derivation or a +derivation input." + (define (show-outputs derivation outputs) + (format #t "~{~a~%~}" + (map (cut derivation->output-path derivation <>) + outputs))) + + (match derivation + ((? derivation?) + (show-outputs derivation (derivation-output-names derivation))) + ((? derivation-input? input) + (show-outputs (derivation-input-derivation input) + (derivation-input-sub-derivations input))))) (define* (check-available-space need #:optional (directory (%store-prefix))) @@ -809,40 +819,31 @@ warning." #:key dry-run? (use-substitutes? #t) (mode (build-mode normal))) "Show what will or would (depending on DRY-RUN?) be built in realizing the -derivations listed in DRV using MODE, a 'build-mode' value. Return #t if -there's something to build, #f otherwise. When USE-SUBSTITUTES?, check and -report what is prerequisites are available for download." +derivations listed in DRV using MODE, a 'build-mode' value. The elements of +DRV can be either derivations or derivation inputs. + +Return #t if there's something to build, #f otherwise. When USE-SUBSTITUTES?, +check and report what is prerequisites are available for download." + (define inputs + (map (match-lambda + ((? derivation? drv) (derivation-input drv)) + ((? derivation-input? input) input)) + drv)) + (define substitutable-info ;; Call 'substitutation-oracle' upfront so we don't end up launching the ;; substituter many times. This makes a big difference, especially when ;; DRV is a long list as is the case with 'guix environment'. (if use-substitutes? - (substitution-oracle store drv #:mode mode) + (substitution-oracle store (map derivation-input-derivation inputs) + #:mode mode) (const #f))) - (define (built-or-substitutable? drv) - (or (null? (derivation-outputs drv)) - (let ((out (derivation->output-path drv))) ;XXX: assume "out" exists - (or (valid-path? store out) - (substitutable-info out))))) - (let*-values (((build download) - (fold2 (lambda (drv build download) - (let-values (((b d) - (derivation-prerequisites-to-build - store drv - #:mode mode - #:substitutable-info - substitutable-info))) - (values (append b build) - (append d download)))) - '() '() - drv)) - ((build) ; add the DRV themselves - (delete-duplicates - (append (map derivation-file-name - (remove built-or-substitutable? drv)) - (map derivation-input-path build)))) + (derivation-build-plan store inputs + #:mode mode + #:substitutable-info + substitutable-info)) ((download) ; add the references of DOWNLOAD (if use-substitutes? (delete-duplicates @@ -856,8 +857,8 @@ report what is prerequisites are available for download." download)))) download)) ((graft hook build) - (match (fold (lambda (file acc) - (let ((drv (read-derivation-from-file file))) + (match (fold (lambda (drv acc) + (let ((file (derivation-file-name drv))) (match acc ((#:graft graft #:hook hook #:build build) (cond @@ -1246,6 +1247,11 @@ WIDTH columns. EXTRA-FIELDS is a list of symbol/value pairs to emit." extra-fields) (newline port)) + +;;; +;;; Searching. +;;; + (define (relevance obj regexps metrics) "Compute a \"relevance score\" for OBJ as a function of its number of matches of REGEXPS and accordingly to METRICS. METRICS is list of @@ -1256,17 +1262,20 @@ weight of this 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 (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)))) + (define scores + (map (lambda (regexp) + (fold-matches regexp str 0 + (lambda (m score) + (+ score + (if (string=? (match:substring m) str) + 5 ;exact match + 1))))) + regexps)) + + ;; Return zero if one of REGEXPS doesn't match. + (if (any zero? scores) + 0 + (reduce + 0 scores))) (fold (lambda (metric relevance) (match metric @@ -1312,6 +1321,45 @@ score, the more relevant OBJ is to REGEXPS." zero means that PACKAGE does not match any of REGEXPS." (relevance package regexps %package-metrics)) +(define* (display-search-results matches port + #:key + (command "guix search") + (print package->recutils)) + "Display MATCHES, a list of object/score pairs, by calling PRINT on each of +them. If PORT is a terminal, print at most a full screen of results." + (define first-line + (port-line port)) + + (define max-rows + (and first-line (isatty? port) + (terminal-rows port))) + + (define (line-count str) + (string-count str #\newline)) + + (let loop ((matches matches)) + (match matches + (((package . score) rest ...) + (let ((text (call-with-output-string + (lambda (port) + (print package port + #:extra-fields + `((relevance . ,score))))))) + (if (and max-rows + (> (port-line port) first-line) ;print at least one result + (> (+ 4 (line-count text) (port-line port)) + max-rows)) + (unless (null? rest) + (display-hint (format #f (G_ "Run @code{~a ... | less} \ +to view all the results.") + command))) + (begin + (display text port) + (loop rest))))) + (() + #t)))) + + (define (string->generations str) "Return the list of generations matching a pattern in STR. This function accepts the following patterns: \"1\", \"1,2,3\", \"1..9\", \"1..\", \"..9\"." diff --git a/tests/derivations.scm b/tests/derivations.scm index b0175d9fc5..98018a45e3 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -86,9 +86,11 @@ (test-assert "parse & export" (let* ((f (search-path %load-path "tests/test.drv")) (b1 (call-with-input-file f get-bytevector-all)) - (d1 (read-derivation (open-bytevector-input-port b1))) + (d1 (read-derivation (open-bytevector-input-port b1) + identity)) (b2 (call-with-bytevector-output-port (cut write-derivation d1 <>))) - (d2 (read-derivation (open-bytevector-input-port b2)))) + (d2 (read-derivation (open-bytevector-input-port b2) + identity))) (and (equal? b1 b2) (equal? d1 d2)))) @@ -723,7 +725,7 @@ (test-assert "build-expression->derivation and derivation-prerequisites" (let ((drv (build-expression->derivation %store "fail" #f))) (any (match-lambda - (($ path) + (($ (= derivation-file-name path)) (string=? path (derivation-file-name (%guile-for-build))))) (derivation-prerequisites drv)))) @@ -740,7 +742,7 @@ (match (derivation-prerequisites c (cut valid-derivation-input? %store <>)) - ((($ file ("out"))) + ((($ (= derivation-file-name file) ("out"))) (string=? file (derivation-file-name b))) (x (pk 'fail x #f))))) @@ -804,17 +806,20 @@ ;; Ask for nothing but the "out" output of DRV. (build-derivations store `((,drv . "out"))) - (valid-path? store out) - (equal? (pk 'x content) (pk 'y (call-with-input-file out get-string-all))) - ))))) + ;; Synonymous: + (build-derivations store (list (derivation-input drv '("out")))) -(test-assert "build-expression->derivation and derivation-prerequisites-to-build" + (valid-path? store out) + (equal? (pk 'x content) + (pk 'y (call-with-input-file out get-string-all)))))))) + +(test-assert "build-expression->derivation and derivation-build-plan" (let ((drv (build-expression->derivation %store "fail" #f))) ;; The only direct dependency is (%guile-for-build) and it's already ;; built. - (null? (derivation-prerequisites-to-build %store drv)))) + (null? (derivation-build-plan %store (derivation-inputs drv))))) -(test-assert "derivation-prerequisites-to-build when outputs already present" +(test-assert "derivation-build-plan when outputs already present" (let* ((builder `(begin ,(random-text) (mkdir %output) #t)) (input-drv (build-expression->derivation %store "input" builder)) (input-path (derivation->output-path input-drv)) @@ -827,9 +832,12 @@ (valid-path? %store output)) (error "things already built" input-drv)) - (and (equal? (map derivation-input-path - (derivation-prerequisites-to-build %store drv)) - (list (derivation-file-name input-drv))) + (and (lset= equal? + (map derivation-file-name + (derivation-build-plan %store + (list (derivation-input drv)))) + (list (derivation-file-name input-drv) + (derivation-file-name drv))) ;; Build DRV and delete its input. (build-derivations %store (list drv)) @@ -838,9 +846,10 @@ ;; Now INPUT-PATH is missing, yet it shouldn't be listed as a ;; prerequisite to build because DRV itself is already built. - (null? (derivation-prerequisites-to-build %store drv))))) + (null? (derivation-build-plan %store + (list (derivation-input drv))))))) -(test-assert "derivation-prerequisites-to-build and substitutes" +(test-assert "derivation-build-plan and substitutes" (let* ((store (open-connection)) (drv (build-expression->derivation store "prereq-subst" (random 1000))) @@ -852,17 +861,19 @@ (with-derivation-narinfo drv (let-values (((build download) - (derivation-prerequisites-to-build store drv)) + (derivation-build-plan store + (list (derivation-input drv)))) ((build* download*) - (derivation-prerequisites-to-build store drv - #:substitutable-info - (const #f)))) + (derivation-build-plan store + (list (derivation-input drv)) + #:substitutable-info + (const #f)))) (and (null? build) (equal? (map substitutable-path download) (list output)) (null? download*) - (null? build*)))))) + (equal? (list drv) build*)))))) -(test-assert "derivation-prerequisites-to-build and substitutes, non-substitutable build" +(test-assert "derivation-build-plan and substitutes, non-substitutable build" (let* ((store (open-connection)) (drv (build-expression->derivation store "prereq-no-subst" (random 1000) @@ -875,16 +886,16 @@ (with-derivation-narinfo drv (let-values (((build download) - (derivation-prerequisites-to-build store drv))) + (derivation-build-plan store + (list (derivation-input drv))))) ;; Despite being available as a substitute, DRV will be built locally ;; due to #:substitutable? #f. (and (null? download) (match build - (((? derivation-input? input)) - (string=? (derivation-input-path input) - (derivation-file-name drv))))))))) + (((= derivation-file-name build)) + (string=? build (derivation-file-name drv))))))))) -(test-assert "derivation-prerequisites-to-build and substitutes, local build" +(test-assert "derivation-build-plan and substitutes, local build" (with-store store (let* ((drv (build-expression->derivation store "prereq-subst-local" (random 1000) @@ -897,7 +908,8 @@ (with-derivation-narinfo drv (let-values (((build download) - (derivation-prerequisites-to-build store drv))) + (derivation-build-plan store + (list (derivation-input drv))))) ;; #:local-build? is *not* synonymous with #:substitutable?, so we ;; must be able to substitute DRV's output. ;; See . @@ -906,7 +918,7 @@ (((= substitutable-path item)) (string=? item (derivation->output-path drv)))))))))) -(test-assert "derivation-prerequisites-to-build in 'check' mode" +(test-assert "derivation-build-plan in 'check' mode" (with-store store (let* ((dep (build-expression->derivation store "dep" `(begin ,(random-text) @@ -918,13 +930,13 @@ (delete-paths store (list (derivation->output-path dep))) ;; In 'check' mode, DEP must be rebuilt. - (and (null? (derivation-prerequisites-to-build store drv)) - (match (derivation-prerequisites-to-build store drv - #:mode (build-mode - check)) - ((input) - (string=? (derivation-input-path input) - (derivation-file-name dep)))))))) + (and (null? (derivation-build-plan store + (list (derivation-input drv)))) + (lset= equal? + (derivation-build-plan store + (list (derivation-input drv)) + #:mode (build-mode check)) + (list drv dep)))))) (test-assert "substitution-oracle and #:substitute? #f" (with-store store diff --git a/tests/grafts.scm b/tests/grafts.scm index e5356decc5..a12c6a5911 100644 --- a/tests/grafts.scm +++ b/tests/grafts.scm @@ -44,9 +44,6 @@ (define %mkdir (bootstrap-binary "mkdir")) -(define make-derivation-input - (@@ (guix derivations) make-derivation-input)) - (test-begin "grafts") @@ -355,16 +352,11 @@ (p1r-inputs (filter (match-input p1r) inputs)) (p2-inputs (filter (match-input p2) inputs))) (and (equal? p1-inputs - (list (make-derivation-input (derivation-file-name p1) - '("one")))) + (list (derivation-input p1 '("one")))) (equal? p1r-inputs - (list - (make-derivation-input (derivation-file-name p1r) - '("ONE")))) + (list (derivation-input p1r '("ONE")))) (equal? p2-inputs - (list - (make-derivation-input (derivation-file-name p2) - '("aaa")))) + (list (derivation-input p2 '("aaa")))) (derivation-output-names p2g)))))) (test-assert "graft-derivation, renaming" ; diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh index ca46e34ce9..758f18cc36 100644 --- a/tests/guix-daemon.sh +++ b/tests/guix-daemon.sh @@ -196,7 +196,7 @@ done # Make sure garbage collection from a TCP connection does not work. -tcp_socket="127.0.0.1:9999" +tcp_socket="127.0.0.1:9998" guix-daemon --listen="$tcp_socket" & daemon_pid=$! diff --git a/tests/packages.scm b/tests/packages.scm index bd100bea5b..0478fff237 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -1244,6 +1244,38 @@ (lambda (key . args) key))) +(test-equal "specification->package+output" + `((,coreutils "out") (,coreutils "debug")) + (list (call-with-values (lambda () + (specification->package+output "coreutils")) + list) + (call-with-values (lambda () + (specification->package+output "coreutils:debug")) + list))) + +(test-equal "specification->package+output invalid output" + 'error + (catch 'quit + (lambda () + (specification->package+output "coreutils:does-not-exist")) + (lambda _ + 'error))) + +(test-equal "specification->package+output no default output" + `(,coreutils #f) + (call-with-values + (lambda () + (specification->package+output "coreutils" #f)) + list)) + +(test-equal "specification->package+output invalid output, no default" + 'error + (catch 'quit + (lambda () + (specification->package+output "coreutils:does-not-exist" #f)) + (lambda _ + 'error))) + (test-equal "find-package-locations" (map (lambda (package) (cons (package-version package) diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 3e267c9f01..eeb223b950 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2015 David Thompson ;;; ;;; This file is part of GNU Guix. @@ -538,6 +538,9 @@ (> (terminal-columns (open-input-string "Join us now, share the software!")) 0)) +(test-assert "terminal-rows" + (> (terminal-rows) 0)) + (test-assert "utmpx-entries" (match (utmpx-entries) (((? utmpx? entries) ...) diff --git a/tests/ui.scm b/tests/ui.scm index 1e98e3534b..2138e23369 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,10 +22,12 @@ #:use-module (guix profiles) #:use-module (guix store) #:use-module (guix derivations) + #:use-module ((gnu packages) #:select (specification->package)) #:use-module (guix tests) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) #:use-module (ice-9 regex)) @@ -260,4 +262,27 @@ Second line" 24)) "ISO-8859-1") (show-manifest-transaction store m t)))))))) +(test-assert "package-relevance" + (let ((guile (specification->package "guile")) + (gcrypt (specification->package "guile-gcrypt")) + (go (specification->package "go")) + (gnugo (specification->package "gnugo")) + (rx (cut make-regexp <> regexp/icase)) + (>0 (cut > <> 0)) + (=0 zero?)) + (and (>0 (package-relevance guile + (map rx '("scheme")))) + (>0 (package-relevance guile + (map rx '("scheme" "implementation")))) + (>0 (package-relevance gcrypt + (map rx '("guile" "crypto")))) + (=0 (package-relevance guile + (map rx '("guile" "crypto")))) + (>0 (package-relevance go + (map rx '("go")))) + (=0 (package-relevance go + (map rx '("go" "game")))) + (>0 (package-relevance gnugo + (map rx '("go" "game"))))))) + (test-end "ui")