diff options
63 files changed, 2076 insertions, 460 deletions
diff --git a/Makefile.am b/Makefile.am index 7474b7f375..c6a2e6cf6c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -426,6 +426,7 @@ SCM_TESTS = \ tests/scripts-build.scm \ tests/search-paths.scm \ tests/services.scm \ + tests/services/linux.scm \ tests/sets.scm \ tests/size.scm \ tests/snix.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 8cc824b917..bd9d896c78 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -48,7 +48,7 @@ Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* -Copyright @copyright{} 2017, 2019 Maxim Cournoyer@* +Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* @@ -310,6 +310,7 @@ Services * Version Control Services:: Providing remote access to Git repositories. * Game Services:: Game servers. * PAM Mount Service:: Service to mount volumes when logging in. +* Linux Services:: Services tied to the Linux kernel. * Miscellaneous Services:: Other services. Defining Services @@ -12101,6 +12102,7 @@ declaration. * Game Services:: Game servers. * PAM Mount Service:: Service to mount volumes when logging in. * Guix Services:: Services relating specifically to Guix. +* Linux Services:: Services tied to the Linux kernel. * Miscellaneous Services:: Other services. @end menu @@ -25146,6 +25148,71 @@ list. @end table @end deftp +@node Linux Services +@subsubheading Linux Services + +@cindex oom +@cindex out of memory killer +@cindex earlyoom +@cindex early out of memory daemon +@subsection Early OOM Service + +@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as +Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user +space and provides a more responsive and configurable alternative to the +in-kernel OOM killer. It is useful to prevent the system from becoming +unresponsive when it runs out of memory. + +@deffn {Scheme Variable} earlyoom-service-type +The service type for running @command{earlyoom}, the Early OOM daemon. +Its value must be a @code{earlyoom-configuration} object, described +below. The service can be instantiated in its default configuration +with: + +@lisp +(service earlyoom-service-type) +@end lisp +@end deffn + +@deftp {Data Type} earlyoom-configuration +This is the configuration record for the @code{earlyoom-service-type}. + +@table @asis +@item @code{earlyoom} (default: @var{earlyoom}) +The Earlyoom package to use. + +@item @code{minimum-available-memory} (default: @code{10}) +The threshold for the minimum @emph{available} memory, in percentages. + +@item @code{minimum-free-swap} (default: @code{10}) +The threshold for the minimum free swap memory, in percentages. + +@item @code{prefer-regexp} (default: @code{#f}) +A regular expression (as a string) to match the names of the processes +that should be preferably killed. + +@item @code{avoid-regexp} (default: @code{#f}) +A regular expression (as a string) to match the names of the processes +that should @emph{not} be killed. + +@item @code{memory-report-interval} (default: @code{0}) +The interval in seconds at which a memory report is printed. It is +disabled by default. + +@item @code{ignore-positive-oom-score-adj?} (default: @code{#f}) +A boolean indicating whether the positive adjustments set in +@file{/proc/*/oom_score_adj}. + +@item @code{show-debug-messages?} (default: @code{#f}) +A boolean indicating whether debug messages should be printed. The logs +are saved at @file{/var/log/earlyoom.log}. + +@item @code{send-notification-command} (default: @code{#f}) +This can be used to provide a custom command used for sending +notifications. +@end table +@end deftp + @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 3e892c5475..6f41d0abe9 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 David Craven <david@craven.ch> ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ u-boot-a20-olinuxino-micro-bootloader u-boot-bananapi-m2-ultra-bootloader u-boot-beaglebone-black-bootloader + u-boot-cubietruck-bootloader u-boot-firefly-rk3399-bootloader u-boot-mx6cuboxi-bootloader u-boot-nintendo-nes-classic-edition-bootloader @@ -180,6 +182,11 @@ (inherit u-boot-allwinner-bootloader) (package u-boot-bananapi-m2-ultra))) +(define u-boot-cubietruck-bootloader + (bootloader + (inherit u-boot-allwinner-bootloader) + (package u-boot-cubietruck))) + (define u-boot-firefly-rk3399-bootloader ;; SD and eMMC use the same format (bootloader diff --git a/gnu/ci.scm b/gnu/ci.scm index d6eb2d018f..89f499e25f 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; @@ -130,6 +130,7 @@ SYSTEM." "arm-linux-gnueabihf" "aarch64-linux-gnu" "powerpc-linux-gnu" + "riscv64-linux-gnu" "i586-pc-gnu" ;aka. GNU/Hurd "i686-w64-mingw32" "x86_64-w64-mingw32")) diff --git a/gnu/local.mk b/gnu/local.mk index 98b7395598..125118bc55 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1243,7 +1243,6 @@ dist_patch_DATA = \ %D%/packages/patches/openjdk-10-idlj-reproducibility.patch \ %D%/packages/patches/openmpi-mtl-priorities.patch \ %D%/packages/patches/openocd-nrf52.patch \ - %D%/packages/patches/opensmtpd-fix-crash.patch \ %D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-c-rehash-in.patch \ @@ -1257,6 +1256,12 @@ dist_patch_DATA = \ %D%/packages/patches/p7zip-CVE-2017-17969.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \ %D%/packages/patches/pam-mount-luks2-support.patch \ + %D%/packages/patches/sdl-pango-api_additions.patch \ + %D%/packages/patches/sdl-pango-blit_overflow.patch \ + %D%/packages/patches/sdl-pango-fillrect_crash.patch \ + %D%/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch \ + %D%/packages/patches/sdl-pango-matrix_declarations.patch \ + %D%/packages/patches/sdl-pango-sans-serif.patch \ %D%/packages/patches/patchutils-test-perms.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ @@ -1403,7 +1408,6 @@ dist_patch_DATA = \ %D%/packages/patches/spice-fix-test-armhf.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/superlu-dist-awpm-grid.patch \ - %D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/supertux-unbundle-squirrel.patch \ %D%/packages/patches/swig-guile-gc.patch \ @@ -1416,6 +1420,7 @@ dist_patch_DATA = \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-1552+.patch \ + %D%/packages/patches/t4k-common-libpng16.patch \ %D%/packages/patches/tar-remove-wholesparse-check.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcc-boot-0.9.27.patch \ @@ -1440,6 +1445,7 @@ dist_patch_DATA = \ %D%/packages/patches/tomb-fix-errors-on-open.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/txr-shell.patch \ + %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \ %D%/packages/patches/udiskie-no-appindicator.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 371fcc7ec3..26e2693431 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1201,7 +1201,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.30") + (version "1.8.31") (source (origin (method url-fetch) (uri @@ -1211,7 +1211,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "1rvrqlqrrjsd06dczgj9cwjdkpkqil5zzlwh87h06ms6qzfx6nm3")) + "0ks5mm9hda5idivncyfpiz4lrd8fv0dpmsl711788k7f7ixdka3y")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index af38c149c2..c88b8a25a2 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk> +;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; ;;; This file is part of GNU Guix. ;;; @@ -319,6 +320,14 @@ dictionaries, including personal ones.") (base32 "0ip6nq43hcr7vvzbv4lwwmlwgfa60hrhsldh9xy3zg2prv6bcaaw"))) +(define-public aspell-dict-sl + (aspell-dictionary "sl" "Slovenian" + #:version "0.50-0" + #:prefix "aspell-" + #:sha256 + (base32 + "1l9kc5g35flq8kw9jhn2n0bjb4sipjs4qkqzgggs438kywkx2rp5"))) + (define-public aspell-dict-sv (aspell-dictionary "sv" "Swedish" #:version "0.51-0" diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 7196ffcd32..cc492105d1 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> @@ -91,6 +91,18 @@ C or C++ programs, though that is not its primary goal.") (license (x11-style (string-append home-page "license.txt"))))) +(define-public libgc-8.0 + (package/inherit + libgc + (version "8.0.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ivmai/bdwgc/releases" + "/download/v" version "/gc-" version ".tar.gz")) + (sha256 + (base32 + "1798rp3mcfkgs38ynkbg2p47bq59pisrc6mn0l20pb5iczf0ssj3")))))) + (define-public libgc/back-pointers (package (inherit libgc) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index c072ff8c8e..63a88dd7ec 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -751,6 +751,21 @@ to Novena upstream, does not load u-boot.img from the first partition.") ("firmware-m0" ,rk3399-cortex-m0) ,@(package-native-inputs base)))))) +(define-public u-boot-qemu-riscv64 + (make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu")) + +(define-public u-boot-qemu-riscv64-smode + (let ((base (make-u-boot-package "qemu-riscv64_smode" "riscv64-linux-gnu"))) + (package + (inherit base) + (source (origin + (inherit (package-source u-boot)) + (patches + (search-patches "u-boot-riscv64-fix-extlinux.patch"))))))) + +(define-public u-boot-sifive-fu540 + (make-u-boot-package "sifive_fu540" "riscv64-linux-gnu")) + (define-public u-boot-rock64-rk3328 (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu"))) (package diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index eb2e2d62e2..f9eb350ff4 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -2438,7 +2438,7 @@ grew out of the @dfn{Vc} project.") (define-public python-pyfakefs (package (name "python-pyfakefs") - (version "3.5.8") + (version "3.7.1") (source (origin (method url-fetch) ;; We use the PyPI URL because there is no proper release @@ -2447,7 +2447,7 @@ grew out of the @dfn{Vc} project.") (uri (pypi-uri "pyfakefs" version)) (sha256 (base32 - "0qb9jp0bqhc0dv0rn805fv99029fvx135f3bvka6scfkcl6jgllc")) + "1cp2yw96fa2qkgi39xa3nlr3inf8wb5rgh9kdq53256ca2r8pdhy")) (patches (search-patches "python-pyfakefs-remove-bad-test.patch")) (file-name (string-append name "-" version ".tar.gz")))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 729b0466ac..42d1132fba 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -24,8 +24,6 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages commencement) - #:use-module ((guix licenses) - #:select (gpl3+ lgpl2.0+ public-domain)) #:use-module (gnu packages) #:use-module (gnu packages bootstrap) #:use-module (gnu packages base) @@ -56,10 +54,8 @@ #:use-module (guix memoization) #:use-module (guix utils) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) #:use-module (ice-9 vlist) #:use-module (ice-9 match) - #:use-module (ice-9 regex) #:export (make-gcc-toolchain)) ;;; Commentary: diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 6be2b7f9fc..998a71aeab 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -67,7 +67,7 @@ #:use-module (ice-9 match)) (define-public diffoscope - (let ((version "135")) + (let ((version "136")) (package (name "diffoscope") (version version) @@ -79,7 +79,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0rkpvajkp3qryi6dxkrh8aq5xg79aybnw8iy73wsblcnfq6yhba7")))) + "1wp4fnmwcsgv17dmvk9xr3h63gp4nmmpysr248qvxs8s5qy5xlyk")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index a28033c0af..7684e57a7b 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2020 Pkill -9 <pkill9@runbox.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,11 +63,14 @@ #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages swig) + #:use-module (gnu packages terminals) + #:use-module (gnu packages textutils) #:use-module (gnu packages vim) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (guix build-system scons) @@ -822,3 +826,30 @@ on your file system and offers to remove it. @command{rmlint} can find: @item files with broken user and/or group ID. @end itemize\n") (license license:gpl3+))) + +(define-public lf + (package + (name "lf") + (version "13") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gokcehan/lf.git") + (commit (string-append "r" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ld3q75v8rvp169w5p85z1vznqs9bhck6bm2f6fykxx16hmpb6ga")))) + (build-system go-build-system) + (native-inputs + `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth) + ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go))) + (arguments + `(#:import-path "github.com/gokcehan/lf")) + (home-page "https://github.com/gokcehan/lf") + (synopsis "Console file browser similar to Ranger") + (description "lf (as in \"list files\") is a terminal file manager +written in Go. It is heavily inspired by ranger with some missing and +extra features. Some of the missing features are deliberately omitted +since they are better handled by external tools.") + (license license:expat))) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 4f8d7582c7..b0297e9075 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages javascript) #:use-module (gnu packages kde) #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules @@ -254,7 +255,7 @@ easy.") (define-public snap (package (name "snap") - (version "5.4.0") + (version "5.4.5") (source (origin (method git-fetch) @@ -263,8 +264,7 @@ easy.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "05m3x8yc9a7x9hfkrz2bm3yqkc63cdb8v3yznkjqq04sfx5dfd04")))) + (base32 "1z6dbcsgvxxs40p23qysfsk4vzpg8jlrr5pqfnjf8q3kpz1xvzxf")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -590,14 +590,14 @@ Portuguese, Spanish and Italian.") (define-public fet (package (name "fet") - (version "5.42.1") - (source (origin - (method url-fetch) - (uri (string-append "https://www.lalescu.ro/liviu/fet/download/" - "fet-" version ".tar.bz2")) - (sha256 - (base32 - "1dzlbhp42dxdxbcrjwrjl4kj65cibxgjqc3ir1w78yprikihdxca")))) + (version "5.42.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.lalescu.ro/liviu/fet/download/" + "fet-" version ".tar.bz2")) + (sha256 + (base32 "0z31i8kwd59c3hlq35qll61qhc3x63w330ss92glhp12iy0aja1y")))) (build-system gnu-build-system) (arguments `(#:phases @@ -714,3 +714,111 @@ each key. A collection of lessons are included for a wide range of different languages and keyboard layouts, and typing statistics are used to dynamically adjust the level of difficulty.") (license license:gpl2))) + +(define-public t4k-common + (package + (name "t4k-common") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tux4kids/t4kcommon") + (commit (string-append "upstream/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13q02xpmps9qg8zrzzy2gzv4a6afgi28lxk4z242j780v0gphchp")) + (patches + (search-patches "t4k-common-libpng16.patch")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;FIXME: cannot find how to run tests + #:phases + (modify-phases %standard-phases + (add-after 'set-paths 'set-sdl-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" (string-append (assoc-ref inputs "sdl") + "/include/SDL:" + (or (getenv "CPATH") ""))))) + (add-after 'unpack 'fix-andika-font-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/t4k_sdl.c" + (("(/usr/share/.*?)/AndikaDesRevG\\.ttf") + (string-append (assoc-ref inputs "font-andika") + "/share/fonts/truetype"))) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("font-andika" ,font-sil-andika) + ("libpng" ,libpng) + ("librsvg" ,librsvg) + ("libxml2" ,libxml2) + ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-net sdl-pango))))) + (home-page "https://github.com/tux4kids/t4kcommon") + (synopsis "Library of code shared between TuxMath and TuxType") + (description "Tux4Kids-Common is a library of code shared between +TuxMath and TuxType.") + (license license:gpl3+))) + +(define-public tuxmath + (package + (name "tuxmath") + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tux4kids/tuxmath") + (commit (string-append "upstream/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f1pz83w6d3mbik2h6xavfxmk5apxlngxbkh80x0m55lhniwkdxv")) + (modules '((guix build utils))) + ;; Unbundle fonts. + (snippet + `(begin + (for-each delete-file (find-files "data/fonts" "\\.ttf$")) + #t)))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no test + #:phases + (modify-phases %standard-phases + (add-after 'set-paths 'set-sdl-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" + (string-append (assoc-ref inputs "sdl") + "/include/SDL:" + (or (getenv "CPATH") ""))) + #t)) + (add-after 'install 'install-desktop-file + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (apps (string-append out "/share/applications")) + (pixmaps (string-append out "/share/pixmaps"))) + (install-file "tuxmath.desktop" apps) + (for-each (lambda (f) (install-file f pixmaps)) + (find-files "data/images/icons/" + "tuxmath\\.(png|ico|svg)$")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("librsvg" ,librsvg) + ("libxml2" ,libxml2) + ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-net sdl-pango))) + ("t4k-common" ,t4k-common))) + (home-page "https://github.com/tux4kids/tuxmath") + (synopsis "Educational math tutorial game") + (description "@emph{Tux, of Math Command} is an educational math +tutorial game starring Tux, the Linux penguin, in which you play the +part of Commander Tux, as he defends his friends from an attack of +math equations. Comets are crashing towards the friendly penguins in +their igloos, and you must destroy the comets by solving their +equations. + +TuxMath also includes Factoroids, a game that gives practice in +factoring numbers and simplifying fractions, as well as zapping rocks +floating through space.") + (license license:gpl3+))) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e834dfffb3..9936127a18 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -960,13 +960,13 @@ in certain cases. It also enables recursion for anonymous functions.") (define-public emacs-xr (package (name "emacs-xr") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar")) (sha256 - (base32 "1hfl7jvimgdgi2mwsx9laxcywp4n6k6vfkanjwm3sf27awqz7ngs")))) + (base32 "0pxzr6n0qa29ly8j3cl46rv9a65ajfcgahrhdylg4yfb9gh1x4ly")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/xr.html") (synopsis "Convert string regexp to rx notation") @@ -1064,14 +1064,14 @@ optional minor mode which can apply this command automatically on save.") (define-public emacs-relint (package (name "emacs-relint") - (version "1.11") + (version "1.13") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/relint-" version ".tar")) (sha256 - (base32 "0c7d35kp5k11fnyjrq9cg8i2r005gs57pmb3rvpf8ilwv0scn1m7")))) + (base32 "1kzzlixhd6kp0mkmgn02b7pqv6m55g708xsys7vjskdxbfb6jjib")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-xr" ,emacs-xr))) (home-page "https://github.com/mattiase/relint") @@ -18997,6 +18997,29 @@ previewed by scrolling up and down within a @code{dired} buffer.") and searching through @code{Ctags} files.") (license license:gpl3+))) +(define-public emacs-ivy-clipmenu + (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc")) + (package + (name "emacs-ivy-clipmenu") + (version (git-version "0.0.1" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wpcarro/ivy-clipmenu.el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7")))) + (propagated-inputs + `(("emacs-f" ,emacs-f) + ("emacs-ivy" ,emacs-ivy))) + (build-system emacs-build-system) + (home-page "https://github.com/wpcarro/ivy-clipmenu.el") + (synopsis "Ivy integration with clipmenu") + (description "Ivy integration with the clipboard manager, clipmenu.") + (license license:expat)))) + (define-public emacs-org-download (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61") (revision "2")) @@ -20484,9 +20507,9 @@ fish-completion. It can be used in both Eshell and M-x shell.") ;; This package has versions newer than indicated on MELPA. ;; Get the current version from `telega-version` in telega.el. ;; or by running M-x telega-version. - (let ((commit "f6728934988140839a71550c9c18b65424ba6225") + (let ((commit "ae09592498ce380e57fbb76725fd4c89ae248864") (revision "0") - (version "0.5.10")) + (version "0.6.0")) (package (name "emacs-telega") (version (git-version version revision commit)) @@ -20498,7 +20521,7 @@ fish-completion. It can be used in both Eshell and M-x shell.") (commit commit))) (sha256 (base32 - "1ijz1isxzssbhz6bxrqmn6wv2apx5rhvd9sbsclv1gaiz3wmkj7i")) + "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -21237,3 +21260,123 @@ mode-line text (lighter) of major and minor modes.") (description "@code{unkillable-scratch} helps prevent killing buffers matching a given regexp.") (license license:gpl2+)))) + +(define-public emacs-switch-buffer-functions + (package + (name "emacs-switch-buffer-functions") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/10sr/switch-buffer-functions-el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k")))) + (build-system emacs-build-system) + (home-page "https://github.com/10sr/switch-buffer-functions-el") + (synopsis "Hooks run when switching current buffer") + (description "This package provides a hook variable +@code{switch-buffer-functions}. The hooks will be run when the current buffer +is changed after an interactive command, i.e., when @code{post-command-hook} +hooks are run. The hooked functions will be called with both the previous and +the current buffer.") + (license license:unlicense))) + +(define-public emacs-erc-scrolltoplace + (package + (name "emacs-erc-scrolltoplace") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions))) + (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace") + (synopsis "ERC module to replace scrolltobottom while using keep-place") + (description "@code{erc-scrolltoplace} is an ERC module to try +to emulate @code{scrolltobottom} while @code{keep-place} is enabled.") + (license license:gpl3+))) + +(define-public emacs-dmenu + ;; Use the latest commit, as there are no tagged releases. + (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264") + (revision "0")) + (package + (name "emacs-dmenu") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lujun9972/el-dmenu.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25")))) + (build-system emacs-build-system) + (home-page "https://github.com/lujun9972/el-dmenu") + (synopsis "Simulate the @command{dmenu} command line program") + (description "This package provides a @command{dmenu} command for +launching other commands/applications from within Emacs, similar to the +@command{dmenu} program. This is especially useful when using EXWM.") + (license license:gpl3+)))) + +(define-public emacs-no-littering + (package + (name "emacs-no-littering") + (version "1.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacscollective/no-littering.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir")))) + (build-system emacs-build-system) + (home-page "https://github.com/emacscollective/no-littering") + (synopsis "Help keep ~/.emacs.d/ clean") + (description "The default paths used to store configuration files and +persistent data are not consistent across Emacs packages, be them built-in or +third-party ones. @code{no-littering} sets out to help clean +@file{~/.emacs.d/} by putting configuration files and persistent data files in +two user-defined directories, as well as using more descriptive names for +files and subdirectories when appropriate.") + (license license:gpl3+))) + +(define-public emacs-message-x + ;; Use the latest commit, as there are no tagged releases. + (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133") + (revision "0")) + (package + (name "emacs-message-x") + (version (git-version "1.23" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsmirror/message-x.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/message-x.el") + (synopsis "Customizable completion in message headers") + (description "@code{message-x} assigns a context-sensitive function to +the TAB key in Message mode. When on a header line, it performs completion +based on which header we are in (for example, newsgroup name completion makes +sense on the @samp{Newsgroups} header, whereas mail alias expansion makes +sense in the @samp{To} and @samp{Cc} headers). When in the message body, this +executes a different function (default: @code{indent-relative}).") + (license license:gpl2+)))) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 23b5ad864f..284dc22039 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1234,7 +1234,8 @@ multi-system game/emulator system.") (setenv "CONFIG_SHELL" bash) (apply invoke "./configure" flags))))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("nasm" ,nasm) + ("pkg-config" ,pkg-config))) (inputs `(("alsa-lib" ,alsa-lib) ("faad2" ,faad2) @@ -1249,7 +1250,6 @@ multi-system game/emulator system.") ("libpng" ,libpng) ("libtheora" ,libtheora) ("libvorbis" ,libvorbis) - ("nasm" ,nasm) ("sdl2" ,(sdl-union (list sdl2 sdl2-net))) ("zlib" ,zlib))) (home-page "https://www.scummvm.org/") @@ -1264,7 +1264,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.217") + (version "0.218") (source (origin (method git-fetch) @@ -1273,8 +1273,7 @@ play them on systems for which they were never designed!") (commit (apply string-append "mame" (string-split version #\.))))) (file-name (git-file-name name version)) (sha256 - (base32 - "03h4d0d8lh6djjff3zqhjm14klc9n129yzwygdqppz0f43w97cmw")) + (base32 "1c43hqfabc7spkyk5ma4bjdb0yqm93sdg5g13ka8mvi462snrfd7")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index d7a0d6dbac..3e7314bc2b 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -101,7 +101,7 @@ (home-page "https://bcachefs.org/") (synopsis "Tools to create and manage bcachefs file systems") (description - "The bcachefs-tools are command-line utilites for creating, checking, + "The bcachefs-tools are command-line utilities for creating, checking, and otherwise managing bcachefs file systems. Bcachefs is a @acronym{CoW, copy-on-write} file system supporting native diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index e96a00bb22..d5828deca2 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -183,6 +183,69 @@ Broadcom/AirForce chipset BCM43xx with Wireless-Core Revision 5. It is used by the b43-open driver of Linux-libre.") (license license:gpl2))) +(define* (make-opensbi-package platform variant #:optional (arch "riscv64")) + (package + (name (string-replace-substring + (string-append "opensbi-" platform "-" variant) + "_" "-")) + (version "0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/riscv/opensbi.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qc73xbiy79qqkwxmp4mg15q8n8k26njkyqb6n0jw5dyibd6hb85")))) + (build-system gnu-build-system) + (native-inputs + `(,@(if (and (not (string-prefix? "riscv64" (%current-system))) + (string-prefix? "riscv64" arch)) + `(("cross-gcc" ,(cross-gcc "riscv64-linux-gnu" #:xgcc gcc-7)) + ("cross-binutils" ,(cross-binutils "riscv64-linux-gnu"))) + '()))) + (arguments + `(#:tests? #f ; no check target + #:make-flags (list (string-append "PLATFORM=" ,platform "/" ,variant) + ,@(if (and (not (string-prefix? "riscv64" + (%current-system))) + (string-prefix? "riscv64" arch)) + `("CROSS_COMPILE=riscv64-linux-gnu-") + '()) + "FW_PAYLOAD=n" + "V=1") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (bin (find-files "." ".*fw_.*.elf$"))) + (for-each + (lambda (file) + (install-file file out)) + bin)) + #t))))) + (home-page "https://github.com/riscv/opensbi") + (synopsis "RISC-V Open Source Supervisor Binary Interface") + (description "A reference implementation of the RISC-V SBI specifications +for platform-specific firmwares executing in M-mode.") + (license (list license:bsd-2 + ;; lib/utils/libfdt/* is dual licensed under bsd-2 and gpl2+. + license:gpl2+ + ;; platform/ariane-fpga/* is gpl2. + license:gpl2)))) + +(define-public opensbi-qemu-virt + (make-opensbi-package "qemu" "virt")) + +(define-public opensbi-qemu-sifive-u + (make-opensbi-package "qemu" "sifive_u")) + +(define-public opensbi-sifive-fu540 + (make-opensbi-package "sifive" "fu540")) + (define-public seabios (package (name "seabios") diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index ceec993d04..6fa4fed74f 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -90,6 +90,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages video) + #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) @@ -1505,7 +1506,7 @@ games.") (define-public godot (package (name "godot") - (version "3.1.2") + (version "3.2") (source (origin (method git-fetch) (uri (git-reference @@ -1514,7 +1515,7 @@ games.") (file-name (git-file-name name version)) (sha256 (base32 - "12305wj2i4067jc50l8r0wmb7zjcna24fli8vb8kiaild0jrlip6")) + "0f15izjl4i2xlz1xj5pcslzl9gm3rmr3c21gh256ynpi2zhhkcdd")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) @@ -1526,7 +1527,7 @@ games.") (with-directory-excursion "thirdparty" (let* ((preserved-files '("README.md" - "b2d_convexdecomp" + "assimp" "certs" "cvtt" "enet" @@ -1535,7 +1536,6 @@ games.") "glad" "jpeg-compressor" "libsimplewebm" - "libwebsockets" "miniupnpc" "minizip" "misc" @@ -1543,8 +1543,8 @@ games.") "pvrtccompressor" "recastnavigation" "squish" - "thekla_atlas" "tinyexr" + "vhacd" "xatlas"))) (for-each delete-file-recursively (lset-difference string=? @@ -1574,6 +1574,7 @@ games.") "builtin_mbedtls=no" "builtin_opus=no" "builtin_pcre2=no" + "builtin_wslay=no" "builtin_zlib=no" "builtin_zstd=no") #:tests? #f ; There are no tests @@ -1598,6 +1599,10 @@ games.") (rename-file "godot.x11.tools.64" "godot") (rename-file "godot.x11.tools.32" "godot")) (install-file "godot" bin)) + ;; Tell Godot where to find zenity for OS.alert(). + (wrap-program (string-append bin "/godot") + `("PATH" ":" prefix + (,(string-append (assoc-ref %build-inputs "zenity") "/bin")))) #t))) (add-after 'install 'install-godot-desktop (lambda* (#:key outputs #:allow-other-keys) @@ -1640,6 +1645,8 @@ games.") ("opusfile" ,opusfile) ("pcre2" ,pcre2) ("pulseaudio" ,pulseaudio) + ("wslay" ,wslay) + ("zenity" ,zenity) ("zstd" ,zstd "lib"))) (home-page "https://godotengine.org/") (synopsis "Advanced 2D and 3D game engine") diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 81e2892ad2..1aa8d49036 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,12 +28,14 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages xml) #:use-module (gnu packages guile) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module ((guix licenses) #:select (gpl3+)) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (srfi srfi-1)) (define-public gdb-8.3 (package @@ -45,6 +48,10 @@ (sha256 (base32 "1i2pjwaafrlz7wqm40b4znr77ai32rjsxkpl2az38yyarpbv8m8y")))) + + ;; Hide this package so that end users get 'gdb/next' below. + (properties '((hidden? . #t))) + (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. @@ -106,6 +113,8 @@ the program is running to try to fix bugs. It can be used to debug programs written in C, C++, Ada, Objective-C, Pascal and more.") (license gpl3+))) +;; This version of GDB is required by some of the Rust compilers, see +;; <https://bugs.gnu.org/37810>. (define-public gdb-8.2 (package/inherit gdb-8.3 @@ -118,6 +127,15 @@ written in C, C++, Ada, Objective-C, Pascal and more.") (base32 "00i27xqawjv282a07i73lp1l02n0a3ywzhykma75qg500wll6sha")))))) +;; The "next" version of GDB, to be merged with 'gdb' in the next rebuild cycle. +(define-public gdb/next + (package/inherit + gdb-8.3 + (inputs + `(("source-highlight" ,source-highlight) + ,@(package-inputs gdb-8.3))) + (properties (alist-delete 'hidden? (package-properties gdb-8.3))))) + (define-public gdb ;; This is the fixed version that packages depend on. Update it rarely ;; enough to avoid massive rebuilds. diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 0991109510..0f2eba373d 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -174,6 +174,7 @@ buffers.") ("glib" ,glib) ("glib-networking" ,glib-networking) ("libtiff" ,libtiff) + ("libwebp" ,libwebp) ("libjpeg" ,libjpeg) ("atk" ,atk) ("gexiv2" ,gexiv2) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4c3e47bb8c..2f6029fba5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -39,7 +39,7 @@ ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net> -;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019 David Wilson <david@daviwil.com> ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org> @@ -8303,7 +8303,11 @@ functionality and behavior.") (modify-phases %standard-phases ;; autogen.sh calls configure at the end of the script. (replace 'bootstrap - (lambda _ (invoke "autoreconf" "-vfi")))))) + (lambda _ (invoke "autoreconf" "-vfi"))) + (add-before 'build 'set-home ;placate Inkscape + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a6b5f2a4cf..9102469749 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -220,7 +220,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.4) (name "go") - (version "1.12.15") + (version "1.12.16") (source (origin (method url-fetch) @@ -228,7 +228,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "1hw4xjywcl883dnvfbb92w85sy8n231fdri4aynj8xajgr0p9fla")))) + "1y0x10fsvgpc1x24b9q9y6kv9b0kwf7879am3p0gym2abgc5wvnf")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 5888e8542e..e5ec572e1d 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> +;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1595,3 +1596,65 @@ cookies, serving files, and more.") (description "Haskell library which exposes zero-copy sendfile functionality in a portable way.") (license license:bsd-3))) + +(define-public ghc-scalpel-core + (package + (name "ghc-scalpel-core") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/scalpel-core/" + "scalpel-core-" version ".tar.gz")) + (sha256 + (base32 + "1qf0gnidyh8zk0acj99vn6hsj37m410lrm50sqpiv1i36rpmmsqh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-data-default" ,ghc-data-default) + ("ghc-fail" ,ghc-fail) + ("ghc-pointedlist" ,ghc-pointedlist) + ("ghc-regex-base" ,ghc-regex-base) + ("ghc-regex-tdfa" ,ghc-regex-tdfa) + ("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-vector" ,ghc-vector))) + (native-inputs `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/fimad/scalpel") + (synopsis + "High level web scraping library for Haskell") + (description + "Scalpel core provides a subset of the scalpel web scraping library +that is intended to have lightweight dependencies and to be free of all +non-Haskell dependencies.") + (license license:asl2.0))) + +(define-public ghc-scalpel + (package + (name "ghc-scalpel") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/scalpel/" + "scalpel-" version ".tar.gz")) + (sha256 + (base32 + "0jbrfcgljl8kbcwi2zqx1jp3c3dpxrkc94za44x56kcz68n89hlz")))) + (build-system haskell-build-system) + (inputs + `(("ghc-scalpel-core" ,ghc-scalpel-core) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-data-default" ,ghc-data-default) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-tagsoup" ,ghc-tagsoup))) + (home-page "https://github.com/fimad/scalpel") + (synopsis + "High level web scraping library for Haskell") + (description + "Scalpel is a web scraping library inspired by libraries like Parsec +and Perl's @code{Web::Scraper} Scalpel builds on top of TagSoup to provide a +declarative and monadic interface.") + (license license:asl2.0))) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 938cb116ca..3d1709fcc3 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages perl) #:use-module (gnu packages base) + #:use-module (gnu packages texinfo) #:use-module (guix git-download) #:export (hurd-triplet? hurd-target?)) @@ -44,69 +46,54 @@ GNU/Hurd." (or (and=> (%current-target-system) hurd-triplet?) (string-suffix? (%current-system) "-gnu"))) -(define (gnumach-source-url version) - (string-append "mirror://gnu/gnumach/gnumach-" - version ".tar.gz")) - (define (hurd-source-url version) (string-append "mirror://gnu/hurd/hurd-" version ".tar.gz")) -(define (patch-url repository commit) - (string-append "https://git.savannah.gnu.org/cgit/hurd/" repository - ".git/patch/?id=" commit)) - (define-public gnumach-headers - (package - (name "gnumach-headers") - (version "1.8") - (source - (origin - (method url-fetch) - (uri (gnumach-source-url version)) - (sha256 - (base32 - "02hygsfpd2dljl5lg1vjjg9pizi9jyxd4aiiqzjshz6jax62jm9f")) - (patches (list (origin - ;; This patch adds <mach/vm_wire.h>, which defines the - ;; VM_WIRE_* constants needed by glibc 2.28. - (method url-fetch) - (uri (patch-url "gnumach" "2b0f19f602e08fd9d37268233b962674fd592634")) - (sha256 - (base32 - "01iajnwsmka0w9hwjkxxijc4xfhwqbvlkw1w8n71hpnhfixd0y28")) - (file-name "gnumach-vm-wire-header.patch")))) - (modules '((guix build utils))) - (snippet - '(begin - ;; Actually install vm_wire.h. - (substitute* "Makefile.in" - (("^include_mach_HEADERS =") - "include_mach_HEADERS = include/mach/vm_wire.h")) - #t)))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'install - (lambda _ - (invoke "make" "install-data"))) - (delete 'build)) + (let ((commit "097f9cf735ffa1212b828682ad92f0f6c5f1c552") + (revision "1")) + (package + (name "gnumach-headers") + (version (git-version "1.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/hurd/gnumach.git") + (commit commit))) + (file-name (git-file-name "gnumach" version)) + (sha256 + (base32 + "0q36z7k02bykrld90zaxbhyzxlmwlqqs4divgir6ix38zsp6icqk")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + (invoke "make" "install-data"))) + (delete 'build)) - ;; GNU Mach supports only IA32 currently, so cheat so that we can at - ;; least install its headers. - ,@(if (%current-target-system) - '() - ;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-06/msg00042.html> - ;; <http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00716.html> - '(#:configure-flags '("--build=i586-pc-gnu"))) + ;; GNU Mach supports only IA32 currently, so cheat so that we can at + ;; least install its headers. + ,@(if (%current-target-system) + '() + ;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-06/msg00042.html> + ;; <http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00716.html> + '(#:configure-flags '("--build=i586-pc-gnu" + "--host=i686-linux-gnu"))) - #:tests? #f)) - (home-page "https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html") - (synopsis "GNU Mach kernel headers") - (description - "Headers of the GNU Mach kernel.") - (license gpl2+))) + #:tests? #f)) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo-4))) + (home-page "https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html") + (synopsis "GNU Mach kernel headers") + (description + "Headers of the GNU Mach kernel.") + (license gpl2+)))) (define-public mig (package @@ -264,15 +251,8 @@ Hurd-minimal package which are needed for both glibc and GCC.") (define-public gnumach (package + (inherit gnumach-headers) (name "gnumach") - (version "1.8") - (source (origin - (method url-fetch) - (uri (gnumach-source-url version)) - (sha256 - (base32 - "02hygsfpd2dljl5lg1vjjg9pizi9jyxd4aiiqzjshz6jax62jm9f")))) - (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'install 'produce-image @@ -286,12 +266,9 @@ Hurd-minimal package which are needed for both glibc and GCC.") `(("mig" ,mig) ("perl" ,perl))) (supported-systems (cons "i686-linux" %hurd-systems)) - (home-page - "https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html") (synopsis "Microkernel of the GNU system") (description - "GNU Mach is the microkernel upon which a GNU Hurd system is based.") - (license gpl2+))) + "GNU Mach is the microkernel upon which a GNU Hurd system is based."))) (define-public hurd (package diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 2b4bc5680d..1ea4b5bd6a 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -170,7 +170,7 @@ script.") (define-public graphicsmagick (package (name "graphicsmagick") - (version "1.3.33") + (version "1.3.34") (source (origin (method url-fetch) @@ -182,7 +182,8 @@ script.") "GraphicsMagick/" (version-major+minor version) "/GraphicsMagick-" version ".tar.xz"))) (sha256 - (base32 "0y67dl6xbk1pxndppa93hhlq9i6bpcjw39gb4i8hnn1klqqb630k")))) + (base32 + "197pshms3m8mn2x1ryiag37ambm8qmb448spch66l3gdfd8rs06z")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c7425a67f8..c3f6502d45 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> -;;; Copyright © 2016, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2016, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> @@ -33,7 +33,7 @@ ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> -;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re> @@ -87,6 +87,8 @@ #:use-module (gnu packages gperf) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) + #:use-module (gnu packages haskell-apps) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages man) @@ -357,42 +359,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.4-version "5.4.15") +(define-public linux-libre-5.4-version "5.4.17") (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1ccldlwj89qd22cl06706w7xzm8n69m6kg8ic0s5ns0ghlpj41v4"))) + (hash (base32 "1fbl5knf6pini9lsx8mqkdmf3qbsydqvaxggh6nd1vk9mzv2npwl"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.99") +(define-public linux-libre-4.19-version "4.19.101") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1axmspnqir2zz7lail95y5yaamxl86k39sd4im3c77dgjkwj3g4d"))) + (hash (base32 "1i4bkwankl5q95kgqmmyzdkwmf3b8ppkb8ild9bw12mkpmm1a9my"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.168") +(define-public linux-libre-4.14-version "4.14.169") (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "1ziixdg4jsr17kgfa9dpckczk0r2mc5jayqb2f6br19al79pfmyv"))) + (hash (base32 "0jc24zvqz3vsv65xxcivzkj6nv27vsy62l50n2h1ysy5jdwsk3nq"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.211") +(define-public linux-libre-4.9-version "4.9.212") (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "1gmi27ih5ys1wxbrnc4a5dr9vw9ngccs9xpa2p0gsk4pbn6n15r5"))) + (hash (base32 "0c5yjilaq86j6i2hzlxbp2ia7jhnf7kv952ffv7jxdf90sk3irxd"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.211") +(define-public linux-libre-4.4-version "4.4.212") (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "1f6qz4bvjn18cfcg3wwfsl75aw2kxwn28r228kdic9aibhy6rpvp"))) + (hash (base32 "0mx3qyj6w6h7gw7drsfsgl4iyz1695sjnf9hqh4kczci48kw5rj7"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -780,7 +782,7 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-5.4 (make-linux-libre* linux-libre-5.4-version linux-libre-5.4-source - '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux") + '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") #:configuration-file kernel-config)) (define-public linux-libre-version linux-libre-5.4-version) @@ -872,6 +874,12 @@ It has been modified to remove all non-free binary blobs.") #:defconfig "omap2plus_defconfig" #:extra-version "arm-omap2plus")) +(define-public linux-libre-riscv64-generic + (make-linux-libre* linux-libre-version + linux-libre-source + '("riscv64-linux") + #:extra-version "riscv64-generic")) + ;;; ;;; Linux kernel modules. @@ -2656,6 +2664,50 @@ kmod. The aim is to be compatible with tools, configurations and indices from the module-init-tools project.") (license license:gpl2+))) ; library under lgpl2.1+ +(define-public earlyoom + (package + (name "earlyoom") + (version "1.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rfjakob/earlyoom.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fwbx0y80nqgkxrc9kf9j3iwa0wbps2jmqir3pgqbc2cj0wjh0lr")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (delete 'configure) + (add-before 'check 'set-home + (lambda _ + (setenv "HOME" (getcwd)) + #t)) + (add-after 'build 'install-contribs + ;; Install what seems useful from the contrib directory. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (contrib (string-append + out "/share/earlyoom/contrib"))) + (install-file "contrib/notify_all_users.py" contrib) + #t)))) + #:make-flags (let* ((prefix (assoc-ref %outputs "out"))) + (list "CC=gcc" + (string-append "VERSION=v" ,version) + (string-append "PREFIX=" prefix) + (string-append "SYSCONFDIR=" prefix "/etc"))) + #:test-target "test")) + (native-inputs `(("go" ,go) ;for the test suite + ("pandoc" ,ghc-pandoc))) ;to generate the manpage + (home-page "https://github.com/rfjakob/earlyoom") + (synopsis "Simple out of memory (OOM) daemon for the Linux kernel") + (description "Early OOM is a minimalist out of memory (OOM) daemon that +runs in user space and provides a more responsive and configurable alternative +to the in-kernel OOM killer.") + (license license:expat))) + (define-public eudev ;; The post-systemd fork, maintained by Gentoo. (package @@ -5119,42 +5171,46 @@ interface in sysfs, which can be accomplished with the included udev rules.") (define-public tlp (package (name "tlp") - (version "1.2.2") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/linrunner/" - (string-upcase name) - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "059kxrpxx580mm6p0z2a421nxngszyh4yqqhbgvn04b6a7dbsa2w")))) - (inputs `(("bash" ,bash) - ("dbus" ,dbus) - ("ethtool" ,ethtool) - ("eudev" ,eudev) - ("grep" ,grep) - ("hdparm" ,hdparm) - ("inetutils" ,inetutils) - ("iw" ,iw) - ("kmod" ,kmod) - ("pciutils" ,pciutils) - ("perl" ,perl) - ("rfkill" ,rfkill) - ("sed" ,sed) - ("usbutils" ,usbutils) - ("util-linux" ,util-linux) - ("wireless-tools" ,wireless-tools) - ,@(if (let ((system (or (%current-target-system) - (%current-system)))) - (or (string-prefix? "i686-" system) - (string-prefix? "x86_64-" system))) - `(("x86-energy-perf-policy" ,x86-energy-perf-policy)) - '()))) + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/linrunner/TLP/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "169k3xypq5rq0xiggrlpr73yr2r2x7b2d9vcr9ac96qrgph7sk7r")))) + (native-inputs + `(("shellcheck" ,shellcheck))) + (inputs + `(("bash" ,bash) + ("dbus" ,dbus) + ("ethtool" ,ethtool) + ("eudev" ,eudev) + ("grep" ,grep) + ("hdparm" ,hdparm) + ("inetutils" ,inetutils) + ("iw" ,iw) + ("kmod" ,kmod) + ("pciutils" ,pciutils) + ("perl" ,perl) + ("rfkill" ,rfkill) + ("sed" ,sed) + ("usbutils" ,usbutils) + ("util-linux" ,util-linux) + ("wireless-tools" ,wireless-tools) + ,@(if (let ((system (or (%current-target-system) + (%current-system)))) + (or (string-prefix? "i686-" system) + (string-prefix? "x86_64-" system))) + `(("x86-energy-perf-policy" ,x86-energy-perf-policy)) + '()))) (build-system gnu-build-system) (arguments - `(#:modules ((guix build gnu-build-system) + ;; XXX: The full test suite is run with "checkall" but it requires + ;; "checkbashisms" and "perlcritic", not yet packaged in Guix. + `(#:test-target "shellcheck" + #:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-1)) #:phases @@ -5171,7 +5227,9 @@ interface in sysfs, which can be accomplished with the included udev rules.") (setenv "TLP_TLIB" (string-append out "/share/tlp")) (setenv "TLP_FLIB" (string-append out "/share/tlp/func.d")) (setenv "TLP_ULIB" (string-append out "/lib/udev")) - (setenv "TLP_CONF" "/etc/tlp") + (setenv "TLP_CONFDEF" + (string-append out "/share/tlp/defaults.conf")) + (setenv "TLP_CONFDIR" (string-append out "/etc/tlp.d")) (setenv "TLP_ELOD" (string-append out "/lib/elogind/system-sleep")) (setenv "TLP_SHCPL" @@ -5179,17 +5237,15 @@ interface in sysfs, which can be accomplished with the included udev rules.") (setenv "TLP_MAN" (string-append out "/share/man")) (setenv "TLP_META" (string-append out "/share/metainfo")) #t))) - (delete 'check) ; no tests (add-before 'install 'fix-installation (lambda _ ;; Stop the Makefile from trying to create system directories. (substitute* "Makefile" - (("\\[ -f \\$\\(_CONF\\) \\]") "#") + (("\\[ -f \\$\\(_CONFUSR\\) \\]") "#") (("install -d -m 755 \\$\\(_VAR\\)") "#")) #t)) (replace 'install - (lambda _ - (invoke "make" "install-tlp" "install-man"))) + (lambda _ (invoke "make" "install-tlp" "install-man-tlp"))) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index d0cc685969..920837abae 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) @@ -59,6 +60,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) + #:use-module (gnu packages tcl) #:use-module (gnu packages tls) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) @@ -9709,3 +9711,335 @@ possible.") (define-public ecl-green-threads (sbcl-package->ecl-package sbcl-green-threads)) + +(define-public sbcl-cl-base32 + (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85") + (revision "1")) + (package + (name "sbcl-cl-base32") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hargettp/cl-base32.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("lisp-unit" ,sbcl-lisp-unit))) + (synopsis "Common Lisp library for base32 encoding and decoding") + (description + "This package provides functions for base32 encoding and decoding as +defined in RFC4648.") + (home-page "https://github.com/hargettp/cl-base32") + (license license:expat)))) + +(define-public cl-base32 + (sbcl-package->cl-source-package sbcl-cl-base32)) + +(define-public ecl-cl-base32 + (sbcl-package->ecl-package sbcl-cl-base32)) + +(define-public sbcl-cl-z85 + (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098") + (revision "1")) + (package + (name "sbcl-cl-z85") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/glv2/cl-z85.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("cl-octet-streams" ,sbcl-cl-octet-streams) + ("fiveam" ,sbcl-fiveam))) + (synopsis "Common Lisp library for Z85 encoding and decoding") + (description + "This package provides functions to encode or decode byte vectors or +byte streams using the Z85 format, which is a base-85 encoding used by +ZeroMQ.") + (home-page "https://github.com/glv2/cl-z85") + (license license:gpl3+)))) + +(define-public cl-z85 + (sbcl-package->cl-source-package sbcl-cl-z85)) + +(define-public ecl-cl-z85 + (sbcl-package->ecl-package sbcl-cl-z85)) + +(define-public sbcl-ltk + (package + (name "sbcl-ltk") + (version "0.992") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/herth/ltk.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("imagemagick" ,imagemagick) + ("tk" ,tk))) + (arguments + `(#:asd-file "ltk/ltk.asd" + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "ltk/ltk.lisp" + (("#-freebsd \"wish\"") + (string-append "#-freebsd \"" + (assoc-ref inputs "tk") + "/bin/wish\"")) + (("do-execute \"convert\"") + (string-append "do-execute \"" + (assoc-ref inputs "imagemagick") + "/bin/convert\""))) + #t))))) + (synopsis "Common Lisp bindings for the Tk GUI toolkit") + (description + "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written +in pure Common Lisp and does not require any Tk knowledge for its usage.") + (home-page "http://www.peter-herth.de/ltk/") + (license license:llgpl))) + +(define-public cl-ltk + (sbcl-package->cl-source-package sbcl-ltk)) + +(define-public ecl-ltk + (sbcl-package->ecl-package sbcl-ltk)) + +(define-public sbcl-ltk-mw + (package + (inherit sbcl-ltk) + (name "sbcl-ltk-mw") + (inputs + `(("ltk" ,sbcl-ltk))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-ltk) + ((#:asd-file _) "ltk/ltk-mw.asd") + ((#:phases _) '%standard-phases))) + (synopsis "Extra widgets for LTK") + (description + "This is a collection of higher-level widgets built on top of LTK."))) + +(define-public cl-ltk-mw + (sbcl-package->cl-source-package sbcl-ltk-mw)) + +(define-public ecl-ltk-mw + (sbcl-package->ecl-package sbcl-ltk-mw)) + +(define-public sbcl-ltk-remote + (package + (inherit sbcl-ltk) + (name "sbcl-ltk-remote") + (inputs + `(("ltk" ,sbcl-ltk))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-ltk) + ((#:asd-file _) "ltk/ltk-remote.asd") + ((#:phases _) '%standard-phases))) + (synopsis "Remote GUI support for LTK") + (description + "This LTK extension allows the GUI to be displayed on a computer different +from the one running the Lisp program by using a TCP connection."))) + +(define-public cl-ltk-remote + (sbcl-package->cl-source-package sbcl-ltk-remote)) + +(define-public sbcl-cl-lex + (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b") + (revision "1")) + (package + (name "sbcl-cl-lex") + (version (git-version "1.1.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/djr7C4/cl-lex.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre))) + (synopsis "Common Lisp macros for generating lexical analyzers") + (description + "This is a Common Lisp library providing a set of macros for generating +lexical analyzers automatically. The lexers generated using @code{cl-lex} can +be used with @code{cl-yacc}.") + (home-page "https://github.com/djr7C4/cl-lex") + (license license:gpl3)))) + +(define-public cl-lex + (sbcl-package->cl-source-package sbcl-cl-lex)) + +(define-public ecl-cl-lex + (sbcl-package->ecl-package sbcl-cl-lex)) + +(define-public sbcl-clunit2 + (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b") + (revision "1")) + (package + (name "sbcl-clunit2") + (version (git-version "0.2.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/cage/clunit2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw")))) + (build-system asdf-build-system/sbcl) + (synopsis "Unit testing framework for Common Lisp") + (description + "CLUnit is a Common Lisp unit testing framework. It is designed to be +easy to use so that you can quickly start testing.") + (home-page "https://notabug.org/cage/clunit2") + (license license:expat)))) + +(define-public cl-clunit2 + (sbcl-package->cl-source-package sbcl-clunit2)) + +(define-public ecl-clunit2 + (sbcl-package->ecl-package sbcl-clunit2)) + +(define-public sbcl-cl-colors2 + (let ((commit "795aedee593b095fecde574bd999b520dd03ed24") + (revision "1")) + (package + (name "sbcl-cl-colors2") + (version (git-version "0.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/cage/cl-colors2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("clunit2" ,sbcl-clunit2))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-ppcre" ,sbcl-cl-ppcre))) + (synopsis "Color library for Common Lisp") + (description + "This is a very simple color library for Common Lisp, providing: + +@itemize +@item Types for representing colors in HSV and RGB spaces. +@item Simple conversion functions between the above types (and also +hexadecimal representation for RGB). +@item Some predefined colors (currently X11 color names -- of course +the library does not depend on X11). +@end itemize\n") + (home-page "https://notabug.org/cage/cl-colors2") + (license license:boost1.0)))) + +(define-public cl-colors2 + (sbcl-package->cl-source-package sbcl-cl-colors2)) + +(define-public ecl-cl-colors2 + (sbcl-package->ecl-package sbcl-cl-colors2)) + +(define-public sbcl-cl-jpeg + (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af") + (revision "1")) + (package + (name "sbcl-cl-jpeg") + (version (git-version "2.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/cl-jpeg.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy")))) + (build-system asdf-build-system/sbcl) + (synopsis "JPEG image library for Common Lisp") + (description + "This is a baseline JPEG codec written in Common Lisp. It can be used +for reading and writing JPEG image files.") + (home-page "https://github.com/sharplispers/cl-jpeg") + (license license:bsd-3)))) + +(define-public cl-jpeg + (sbcl-package->cl-source-package sbcl-cl-jpeg)) + +(define-public ecl-cl-jpeg + (sbcl-package->ecl-package sbcl-cl-jpeg)) + +(define-public sbcl-nodgui + (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212") + (revision "1")) + (package + (name "sbcl-nodgui") + (version (git-version "0.0.5" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/cage/nodgui.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-colors2" ,sbcl-cl-colors2) + ("cl-jpeg" ,sbcl-cl-jpeg) + ("cl-lex" ,sbcl-cl-lex) + ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode) + ("cl-unicode" ,sbcl-cl-unicode) + ("cl-yacc" ,sbcl-cl-yacc) + ("clunit2" ,sbcl-clunit2) + ("named-readtables" ,sbcl-named-readtables) + ("parse-number" ,sbcl-parse-number) + ("tk" ,tk))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/wish-communication.lisp" + (("#-freebsd \"wish\"") + (string-append "#-freebsd \"" + (assoc-ref inputs "tk") + "/bin/wish\""))) + #t))))) + (synopsis "Common Lisp bindings for the Tk GUI toolkit") + (description + "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI +toolkit. It also provides a few additional widgets more than the standard Tk +ones.") + (home-page "https://www.autistici.org/interzona/nodgui.html") + (license license:llgpl)))) + +(define-public cl-nodgui + (sbcl-package->cl-source-package sbcl-nodgui)) + +(define-public ecl-nodgui + (sbcl-package->ecl-package sbcl-nodgui)) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index aa37c4e38c..0538342977 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2301,72 +2301,6 @@ transfer protocols.") (define-public opensmtpd (package (name "opensmtpd") - (version "6.0.3p1") - (source (origin - (method url-fetch) - (uri (string-append "https://www.opensmtpd.org/archives/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "10bsfsnlg9d9i6l2izdnxp05s3ri8fvwzqxvx1jmarc852382619")) - ;; Fixed upstream: <github.com/OpenSMTPD/OpenSMTPD/pull/835>. - (patches (search-patches "opensmtpd-fix-crash.patch")))) - (build-system gnu-build-system) - (inputs - `(("bdb" ,bdb) - ("libressl" ,libressl) - ("libevent" ,libevent) - ("libasr" ,libasr) - ("linux-pam" ,linux-pam) - ("zlib" ,zlib))) - (native-inputs - `(("bison" ,bison) - ("groff" ,groff))) - (arguments - `(#:configure-flags - (list "--with-table-db" "--with-auth-pam" "--localstatedir=/var" - "--with-user-smtpd=smtpd" "--with-user-queue=smtpq" - "--with-group-queue=smtpq" - "--with-path-socket=/var/run" ; not default (./configure lies) - "--with-path-CAfile=/etc/ssl/certs/ca-certificates.crt") - #:phases - (modify-phases %standard-phases - ;; Fix some incorrectly hard-coded external tool file names. - (add-after 'unpack 'patch-FHS-file-names - (lambda _ - (substitute* "smtpd/smtpctl.c" - (("/bin/cat") (which "cat")) - (("/bin/sh") (which "sh"))) - #t)) - ;; OpenSMTPD provides a single utility smtpctl to control the daemon and - ;; the local submission subsystem. To accomodate systems that require - ;; historical interfaces such as sendmail, newaliases or makemap, the - ;; smtpctl utility can operate in compatibility mode if called with the - ;; historical name. - (add-after 'install 'install-compability-links - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (sbin (string-append out "/sbin/"))) - (for-each (lambda (command) - (symlink "smtpctl" (string-append sbin command))) - '("makemap" "sendmail" "send-mail" - "newaliases" "mailq"))) - #t))))) - (synopsis "Lightweight SMTP daemon") - (description - "OpenSMTPD is an implementation of the server-side SMTP protocol, with -some additional standard extensions. It allows ordinary machines to exchange -e-mails with other systems speaking the SMTP protocol.") - (home-page "https://www.opensmtpd.org") - (license (list bsd-2 bsd-3 bsd-4 (non-copyleft "file://COPYING") - public-domain isc license:openssl)))) - -;; OpenSMTPd 6.4 introduced a new and incompatible configuration file format. -;; Use a different name, for now, to avoid auto-upgrades and broken mail boxes. -;; OPENSMTP-CONFIGURATION in (gnu services mail) will also need an overhaul. -(define-public opensmtpd-next - (package - (name "opensmtpd-next") (version "6.6.2p1") (source (origin diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 9241966d24..5ac3bd1403 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2016, 2017 John Darrington <jmd@gnu.org> -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> @@ -2411,7 +2411,7 @@ easy-to-write markup language for mathematics.") (source (origin (method url-fetch) - (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" + (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/" "superlu_" version ".tar.gz")) (sha256 (base32 "0qzlb7cd608q62kyppd0a8c65l03vrwqql6gsm465rky23b6dyr8")) @@ -2457,7 +2457,7 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, `(#:configure-flags '("-Denable_blaslib:BOOL=NO" ;do not use internal cblas "-DTPL_BLAS_LIBRARIES=openblas" "-DBUILD_SHARED_LIBS:BOOL=YES"))) - (home-page "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/") + (home-page "https://portal.nersc.gov/project/sparse/superlu/") (synopsis "Supernodal direct solver for sparse linear systems") (description "SuperLU is a general purpose library for the direct solution of large, @@ -2473,14 +2473,14 @@ also provides threshold-based ILU factorization preconditioners.") (define-public superlu-dist (package (name "superlu-dist") - (version "6.1.0") + (version "6.2.0") (source (origin (method url-fetch) - (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" + (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/" "superlu_dist_" version ".tar.gz")) (sha256 - (base32 "0pqgcgh1yxhfzs99fas3mggajzd5wca3nbyp878rziy74gfk03dl")) + (base32 "1ynmwqajc9sc3my2hssa5k9s58ggvizqv9rdss0j7w99pbh5mnvw")) (modules '((guix build utils))) (snippet ;; Replace the non-free implementation of MC64 with a stub @@ -2506,8 +2506,7 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g, "RowPerm = NOROWPERM;")) #t)) (patches (search-patches "superlu-dist-scotchmetis.patch" - "superlu-dist-awpm-grid.patch" - "superlu-dist-fix-mpi-deprecations.patch")))) + "superlu-dist-awpm-grid.patch")))) (build-system cmake-build-system) (native-inputs `(("tcsh" ,tcsh))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 81569d29b9..b1276e267b 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1949,9 +1949,9 @@ Telegram messenger.") (license license:gpl2+))) (define-public tdlib - (let ((commit "5efaf8c3b523797373c487d972ea514364e5eac2") - (revision "1") - (version "1.5.5")) + (let ((commit "278c7acdec83c5ac17d8e1ed0bb2cacbcea62460") + (revision "0") + (version "1.6.0")) (package (name "tdlib") (version (git-version version revision commit)) @@ -1962,7 +1962,7 @@ Telegram messenger.") (commit commit))) (sha256 (base32 - "1grflgvqqxbf84yi09j60a1cpbcrv85yhj9a735agi32hgd51whi")) + "0zlzpl6fgszg18kwycyyyrnkm255dvc6fkq0b0y32m5wvwwl36cv")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 5c2c91891c..ed339524c0 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> -;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> @@ -601,14 +601,14 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "3.2.0") + (version "3.2.1") (source (origin (method url-fetch) (uri (string-append "https://www.wireshark.org/download/src/wireshark-" version ".tar.xz")) (sha256 - (base32 "0v5nn7i2nbqr59jsw8cs2052hr7xd96x1sa3480g8ks5kahk7zac")))) + (base32 "0nz84zyhs4177ljxmv34vgc9kgg7ssxhxa4mssxqwh6nb00697sq")))) (build-system cmake-build-system) (arguments `(#:phases diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 7abe9ab6f0..de8239b7fe 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,7 +49,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages) - #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl)) + #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl expat)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -367,3 +368,30 @@ Other features include: @end enumerate\n") ;; GPLv3+ with OpenSSL linking exception. (license gpl3+))) + +(define-public python-bonsai + (package + (name "python-bonsai") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bonsai" version)) + (sha256 + (base32 + "013bl6h1m3f7vg1lk89d4vi28wbf31zdcs4f9g8css7ngx63v6px")))) + (build-system python-build-system) + (inputs + `(("mit-krb5" ,mit-krb5) + ("cyrus-sasl" ,cyrus-sasl) + ("openldap" ,openldap))) + ;; disabling tests, since they require docker and extensive setup + (arguments `(#:tests? #f)) + (home-page "https://github.com/noirello/bonsai") + (synopsis "Access LDAP directory servers from Python") + (description + "This is a module for handling LDAP operations in Python. LDAP entries +are mapped to a special Python case-insensitive dictionary, tracking the +changes of the dictionary to modify the entry on the server easily.") + (license expat))) + diff --git a/gnu/packages/patches/opensmtpd-fix-crash.patch b/gnu/packages/patches/opensmtpd-fix-crash.patch deleted file mode 100644 index 0030167533..0000000000 --- a/gnu/packages/patches/opensmtpd-fix-crash.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 9b5f70b93e038df5446bd37a4adac5a0380748e7 Mon Sep 17 00:00:00 2001 -From: johannes <johannes.brechtmann@gmail.com> -Date: Wed, 21 Feb 2018 23:57:11 +0100 -Subject: [PATCH] crypt_checkpass: include HAVE_CRYPT_H definition, add NULL - check - ---- - openbsd-compat/crypt_checkpass.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/openbsd-compat/crypt_checkpass.c b/openbsd-compat/crypt_checkpass.c -index dafd2dae..d10b3a57 100644 ---- a/openbsd-compat/crypt_checkpass.c -+++ b/openbsd-compat/crypt_checkpass.c -@@ -1,5 +1,6 @@ - /* OPENBSD ORIGINAL: lib/libc/crypt/cryptutil.c */ - -+#include "includes.h" - #include <errno.h> - #ifdef HAVE_CRYPT_H - #include <crypt.h> -@@ -10,6 +11,8 @@ - int - crypt_checkpass(const char *pass, const char *goodhash) - { -+ char *c; -+ - if (goodhash == NULL) - goto fail; - -@@ -17,7 +20,11 @@ crypt_checkpass(const char *pass, const char *goodhash) - if (strlen(goodhash) == 0 && strlen(pass) == 0) - return 0; - -- if (strcmp(crypt(pass, goodhash), goodhash) == 0) -+ c = crypt(pass, goodhash); -+ if (c == NULL) -+ goto fail; -+ -+ if (strcmp(c, goodhash) == 0) - return 0; - - fail: - diff --git a/gnu/packages/patches/sdl-pango-api_additions.patch b/gnu/packages/patches/sdl-pango-api_additions.patch new file mode 100644 index 0000000000..5c02e79910 --- /dev/null +++ b/gnu/packages/patches/sdl-pango-api_additions.patch @@ -0,0 +1,128 @@ +Index: SDL_Pango-0.1.2/src/SDL_Pango.c +=================================================================== +--- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2004-12-10 10:06:33.000000000 +0100 ++++ SDL_Pango-0.1.2/src/SDL_Pango.c 2007-09-18 14:56:35.362379428 +0200 +@@ -723,13 +723,9 @@ + SDL_UnlockSurface(surface);
+ }
+
+-/*!
+- Create a context which contains Pango objects.
+
+- @return A pointer to the context as a SDLPango_Context*.
+-*/
+ SDLPango_Context*
+-SDLPango_CreateContext()
++SDLPango_CreateContext_GivenFontDesc(const char* font_desc)
+ {
+ SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context));
+ G_CONST_RETURN char *charset;
+@@ -743,8 +739,7 @@ + pango_context_set_language (context->context, pango_language_from_string (charset));
+ pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR);
+
+- context->font_desc = pango_font_description_from_string(
+- MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
++ context->font_desc = pango_font_description_from_string(font_desc);
+
+ context->layout = pango_layout_new (context->context);
+
+@@ -762,6 +757,17 @@ + }
+
+ /*!
++ Create a context which contains Pango objects.
++
++ @return A pointer to the context as a SDLPango_Context*.
++*/
++SDLPango_Context*
++SDLPango_CreateContext()
++{
++ SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
++}
++
++/*!
+ Free a context.
+
+ @param *context [i/o] Context to be free
+@@ -1053,6 +1059,20 @@ + pango_layout_set_font_description (context->layout, context->font_desc);
+ }
+
++void
++SDLPango_SetText_GivenAlignment(
++ SDLPango_Context *context,
++ const char *text,
++ int length,
++ SDLPango_Alignment alignment)
++{
++ pango_layout_set_attributes(context->layout, NULL);
++ pango_layout_set_text (context->layout, text, length);
++ pango_layout_set_auto_dir (context->layout, TRUE);
++ pango_layout_set_alignment (context->layout, alignment);
++ pango_layout_set_font_description (context->layout, context->font_desc);
++}
++
+ /*!
+ Set plain text to context.
+ Text must be utf-8.
+@@ -1067,11 +1087,7 @@ + const char *text,
+ int length)
+ {
+- pango_layout_set_attributes(context->layout, NULL);
+- pango_layout_set_text (context->layout, text, length);
+- pango_layout_set_auto_dir (context->layout, TRUE);
+- pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT);
+- pango_layout_set_font_description (context->layout, context->font_desc);
++ SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT);
+ }
+
+ /*!
+Index: SDL_Pango-0.1.2/src/SDL_Pango.h +=================================================================== +--- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2004-12-10 10:06:33.000000000 +0100 ++++ SDL_Pango-0.1.2/src/SDL_Pango.h 2007-09-18 15:00:41.736419485 +0200 +@@ -26,6 +26,7 @@ +
+ #ifndef SDL_PANGO_H
+ #define SDL_PANGO_H
++#define SDL_PANGO_HAS_GC_EXTENSIONS
+
+ #include "SDL.h"
+
+@@ -109,12 +110,20 @@ + SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */
+ } SDLPango_Direction;
+
+-
++/*!
++ Specifies alignment of text. See Pango reference for detail
++*/
++typedef enum {
++ SDLPANGO_ALIGN_LEFT,
++ SDLPANGO_ALIGN_CENTER,
++ SDLPANGO_ALIGN_RIGHT
++} SDLPango_Alignment;
+
+ extern DECLSPEC int SDLCALL SDLPango_Init();
+
+ extern DECLSPEC int SDLCALL SDLPango_WasInit();
+
++extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc);
+ extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext();
+
+ extern DECLSPEC void SDLCALL SDLPango_FreeContext(
+@@ -157,6 +166,12 @@ + const char *markup,
+ int length);
+
++extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment(
++ SDLPango_Context *context,
++ const char *text,
++ int length,
++ SDLPango_Alignment alignment);
++
+ extern DECLSPEC void SDLCALL SDLPango_SetText(
+ SDLPango_Context *context,
+ const char *markup,
diff --git a/gnu/packages/patches/sdl-pango-blit_overflow.patch b/gnu/packages/patches/sdl-pango-blit_overflow.patch new file mode 100644 index 0000000000..411d066a74 --- /dev/null +++ b/gnu/packages/patches/sdl-pango-blit_overflow.patch @@ -0,0 +1,32 @@ +Index: sdlpango-0.1.2/src/SDL_Pango.c +=================================================================== +--- sdlpango-0.1.2.orig/src/SDL_Pango.c 2007-10-08 19:44:15.000000000 +0000 ++++ sdlpango-0.1.2/src/SDL_Pango.c 2007-10-08 19:45:27.000000000 +0000 +@@ -725,16 +725,23 @@ + int x = rect->x;
+ int y = rect->y;
+
++ if(x < 0) {
++ width += x; x = 0;
++ }
+ if(x + width > surface->w) {
+ width = surface->w - x;
+- if(width <= 0)
+- return;
++ }
++ if(width <= 0)
++ return;
++
++ if(y < 0) {
++ height += y; y = 0;
+ }
+ if(y + height > surface->h) {
+ height = surface->h - y;
+- if(height <= 0)
+- return;
+ }
++ if(height <= 0)
++ return;
+
+ if(SDL_LockSurface(surface)) {
+ SDL_SetError("surface lock failed");
diff --git a/gnu/packages/patches/sdl-pango-fillrect_crash.patch b/gnu/packages/patches/sdl-pango-fillrect_crash.patch new file mode 100644 index 0000000000..7a41bbf2fe --- /dev/null +++ b/gnu/packages/patches/sdl-pango-fillrect_crash.patch @@ -0,0 +1,15 @@ +Index: SDL_Pango-0.1.2/src/SDL_Pango.c +=================================================================== +--- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2007-09-18 15:56:12.406223540 +0200 ++++ SDL_Pango-0.1.2/src/SDL_Pango.c 2007-09-18 15:57:27.986530616 +0200 +@@ -932,7 +932,9 @@ + width = PANGO_PIXELS (logical_rect.width);
+ height = PANGO_PIXELS (logical_rect.height);
+
+- SDL_FillRect(surface, NULL, SDL_MapRGBA(surface->format, 0, 0, 0, 0));
++ if (width && height) {
++ SDL_FillRect(surface, NULL, SDL_MapRGBA(surface->format, 0, 0, 0, 0));
++ }
+
+ if((! context->tmp_ftbitmap) || context->tmp_ftbitmap->width < width
+ || context->tmp_ftbitmap->rows < height)
diff --git a/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch b/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch new file mode 100644 index 0000000000..3d4b10cc10 --- /dev/null +++ b/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch @@ -0,0 +1,20 @@ +--- a/src/SDL_Pango.h ++++ b/src/SDL_Pango.h +@@ -171,7 +171,7 @@ + SDLPango_Direction direction);
+
+
+-#ifdef __FT2_BUILD_UNIX_H__
++#ifdef FT2BUILD_H_
+
+ extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface(
+ const FT_Bitmap *bitmap,
+@@ -179,7 +179,7 @@ + const SDLPango_Matrix *matrix,
+ SDL_Rect *rect);
+
+-#endif /* __FT2_BUILD_UNIX_H__ */
++#endif
+
+
+ #ifdef __PANGO_H__
diff --git a/gnu/packages/patches/sdl-pango-matrix_declarations.patch b/gnu/packages/patches/sdl-pango-matrix_declarations.patch new file mode 100644 index 0000000000..c35d0a708d --- /dev/null +++ b/gnu/packages/patches/sdl-pango-matrix_declarations.patch @@ -0,0 +1,131 @@ +Index: SDL_Pango-0.1.2/src/SDL_Pango.c +=================================================================== +--- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2007-09-18 15:03:10.732910311 +0200 ++++ SDL_Pango-0.1.2/src/SDL_Pango.c 2007-09-18 15:04:41.970109622 +0200 +@@ -286,6 +286,59 @@ + } contextImpl;
+
+
++const SDLPango_Matrix _MATRIX_WHITE_BACK
++ = {255, 0, 0, 0,
++ 255, 0, 0, 0,
++ 255, 0, 0, 0,
++ 255, 255, 0, 0,};
++
++/*!
++ Specifies white back and black letter.
++*/
++const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK;
++
++const SDLPango_Matrix _MATRIX_BLACK_BACK
++ = {0, 255, 0, 0,
++ 0, 255, 0, 0,
++ 0, 255, 0, 0,
++ 255, 255, 0, 0,};
++/*!
++ Specifies black back and white letter.
++*/
++const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK;
++
++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER
++ = {0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 255, 0, 0,};
++/*!
++ Specifies transparent back and black letter.
++*/
++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
++
++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER
++ = {255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 0, 255, 0, 0,};
++/*!
++ Specifies transparent back and white letter.
++*/
++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
++
++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER
++ = {255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 0, 0, 0, 0,};
++/*!
++ Specifies transparent back and transparent letter.
++ This is useful for KARAOKE like rendering.
++*/
++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
++
++
+ /*!
+ Initialize the Glib and Pango API.
+ This must be called before using other functions in this library,
+Index: SDL_Pango-0.1.2/src/SDL_Pango.h +=================================================================== +--- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2007-09-18 15:03:10.732910311 +0200 ++++ SDL_Pango-0.1.2/src/SDL_Pango.h 2007-09-18 15:06:24.919976401 +0200 +@@ -47,57 +47,27 @@ + Uint8 m[4][4]; /*! Matrix variables */
+ } SDLPango_Matrix;
+
+-const SDLPango_Matrix _MATRIX_WHITE_BACK
+- = {255, 0, 0, 0,
+- 255, 0, 0, 0,
+- 255, 0, 0, 0,
+- 255, 255, 0, 0,};
+-
+ /*!
+ Specifies white back and black letter.
+ */
+-const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK;
+-
+-const SDLPango_Matrix _MATRIX_BLACK_BACK
+- = {0, 255, 0, 0,
+- 0, 255, 0, 0,
+- 0, 255, 0, 0,
+- 255, 255, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_WHITE_BACK;
+ /*!
+ Specifies black back and white letter.
+ */
+-const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK;
+-
+-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER
+- = {0, 0, 0, 0,
+- 0, 0, 0, 0,
+- 0, 0, 0, 0,
+- 0, 255, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_BLACK_BACK;
+ /*!
+ Specifies transparent back and black letter.
+ */
+-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
+-
+-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER
+- = {255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 0, 255, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
+ /*!
+ Specifies transparent back and white letter.
+ */
+-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
+-
+-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER
+- = {255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 0, 0, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
+ /*!
+ Specifies transparent back and transparent letter.
+ This is useful for KARAOKE like rendering.
+ */
+-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
+
+ /*!
+ Specifies direction of text. See Pango reference for detail
diff --git a/gnu/packages/patches/sdl-pango-sans-serif.patch b/gnu/packages/patches/sdl-pango-sans-serif.patch new file mode 100644 index 0000000000..ccdc8150a7 --- /dev/null +++ b/gnu/packages/patches/sdl-pango-sans-serif.patch @@ -0,0 +1,13 @@ +Index: SDL_Pango-0.1.2/src/SDL_Pango.c +=================================================================== +--- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2007-09-18 15:12:20.736253215 +0200 ++++ SDL_Pango-0.1.2/src/SDL_Pango.c 2007-09-18 15:12:44.621614364 +0200 +@@ -234,7 +234,7 @@ + //! non-zero if initialized
+ static int IS_INITIALIZED = 0;
+
+-#define DEFAULT_FONT_FAMILY "Sans"
++#define DEFAULT_FONT_FAMILY "sans-serif"
+ #define DEFAULT_FONT_SIZE 12
+ #define DEFAULT_DPI 96
+ #define _MAKE_FONT_NAME(family, size) family " " #size
diff --git a/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch deleted file mode 100644 index 25f0aaf2f3..0000000000 --- a/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch +++ /dev/null @@ -1,57 +0,0 @@ -From c9cbcf8730221e366c7495073f8f8d819ee8ce89 Mon Sep 17 00:00:00 2001 -From: Eric Bavier <bavier@member.fsf.org> -Date: Wed, 6 Feb 2019 10:06:59 -0600 -Subject: [PATCH] Replace deprecated MPI_Attr_get. - -Fixes build with OpenMPI version 4.0. - -* SRC/pdgstrf.c, SRC/pdgstrf.c, SRC/superlu_grid.c: 'MPI_Attr_get' -> - 'MPI_Comm_get_attr'. ---- - SRC/pdgstrf.c | 2 +- - SRC/pzgstrf.c | 2 +- - SRC/superlu_grid.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/SRC/pdgstrf.c b/SRC/pdgstrf.c -index 736ffa2..f92a1ba 100644 ---- a/SRC/pdgstrf.c -+++ b/SRC/pdgstrf.c -@@ -426,7 +426,7 @@ pdgstrf(superlu_dist_options_t * options, int m, int n, double anorm, - s_eps = smach_dist("Epsilon"); - thresh = s_eps * anorm; - -- MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); -+ MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); - if (!flag) { - fprintf (stderr, "Could not get TAG_UB\n"); - return (-1); -diff --git a/SRC/pzgstrf.c b/SRC/pzgstrf.c -index 8896548..8800057 100644 ---- a/SRC/pzgstrf.c -+++ b/SRC/pzgstrf.c -@@ -426,7 +426,7 @@ pzgstrf(superlu_dist_options_t * options, int m, int n, double anorm, - s_eps = smach_dist("Epsilon"); - thresh = s_eps * anorm; - -- MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); -+ MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag); - if (!flag) { - fprintf (stderr, "Could not get TAG_UB\n"); - return (-1); -diff --git a/SRC/superlu_grid.c b/SRC/superlu_grid.c -index 1213d27..0c0fb90 100644 ---- a/SRC/superlu_grid.c -+++ b/SRC/superlu_grid.c -@@ -150,7 +150,7 @@ void superlu_gridmap( - { - int tag_ub; - if ( !grid->iam ) { -- MPI_Attr_get(Bcomm, MPI_TAG_UB, &tag_ub, &info); -+ MPI_Comm_get_attr(Bcomm, MPI_TAG_UB, &tag_ub, &info); - printf("MPI_TAG_UB %d\n", tag_ub); - /* returns 4295677672 - In reality it is restricted to no greater than 16384. */ --- -2.20.1 - diff --git a/gnu/packages/patches/t4k-common-libpng16.patch b/gnu/packages/patches/t4k-common-libpng16.patch new file mode 100644 index 0000000000..17967773de --- /dev/null +++ b/gnu/packages/patches/t4k-common-libpng16.patch @@ -0,0 +1,26 @@ +Description: Fix for libpng 1.6 +Author: Programmer Nerd <theprogrammernerd@gmail.com> +Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743388#20 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743388 +Reviewed-by: Tobias Frost <tobi@debian.org>> +Last-Update: 2016-04-07 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/src/t4k_loaders.c ++++ b/src/t4k_loaders.c +@@ -1028,12 +1028,9 @@ + { + png_init_io(png_ptr, fi); + +- info_ptr->width = surf->w; +- info_ptr->height = surf->h; +- info_ptr->bit_depth = 8; +- info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA; +- info_ptr->interlace_type = 1; +- info_ptr->valid = 0; /* will be updated by various png_set_FOO() functions */ ++ png_set_IHDR(png_ptr, info_ptr, surf->w, surf->h, 8, ++ PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE, ++ PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + + png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr, + PNG_sRGB_INTENT_PERCEPTUAL); diff --git a/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch b/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch new file mode 100644 index 0000000000..3feeb1dc5e --- /dev/null +++ b/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch @@ -0,0 +1,54 @@ +From 3fc056f0b9f7c26e58a1e947c8c0184e55919614 Mon Sep 17 00:00:00 2001 +From: David Abdurachmanov <david.abdurachmanov@gmail.com> +Date: Wed, 21 Aug 2019 12:07:20 -0700 +Subject: [PATCH] qemu-riscv64_smode, sifive-fu540: fix extlinux (define + preboot) +Forwarded: https://patchwork.ozlabs.org/patch/1151125/ + +Commit 37304aaf60bf92a5dc3ef222ba520698bd862a44 removed preboot +commands in RISC-V targets and broke extlinux support as reported +by Fu Wei <wefu@redhat.com>. + +The patch finishes migration of CONFIG_USE_PREBOOT and CONFIG_REBOOT +to Kconfig. + +Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com> +--- + configs/qemu-riscv64_smode_defconfig | 2 ++ + configs/sifive_fu540_defconfig | 2 ++ + include/configs/sifive-fu540.h | 4 ---- + 3 files changed, 4 insertions(+), 4 deletions(-) + +Index: u-boot/configs/qemu-riscv64_smode_defconfig +=================================================================== +--- u-boot.orig/configs/qemu-riscv64_smode_defconfig ++++ u-boot/configs/qemu-riscv64_smode_defconfig +@@ -14,3 +14,5 @@ CONFIG_CMD_NVEDIT_EFI=y + CONFIG_OF_PRIOR_STAGE=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_DM_MTD=y ++CONFIG_USE_PREBOOT=y ++CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr}; fdt addr ${fdtcontroladdr};" +Index: u-boot/configs/sifive_fu540_defconfig +=================================================================== +--- u-boot.orig/configs/sifive_fu540_defconfig ++++ u-boot/configs/sifive_fu540_defconfig +@@ -12,3 +12,5 @@ CONFIG_DISPLAY_BOARDINFO=y + CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_DM_MTD=y ++CONFIG_USE_PREBOOT=y ++CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr}; fdt addr ${fdtcontroladdr};" +Index: u-boot/include/configs/sifive-fu540.h +=================================================================== +--- u-boot.orig/include/configs/sifive-fu540.h ++++ u-boot/include/configs/sifive-fu540.h +@@ -40,8 +40,4 @@ + "ramdisk_addr_r=0x88300000\0" \ + BOOTENV + +-#define CONFIG_PREBOOT \ +- "setenv fdt_addr ${fdtcontroladdr};" \ +- "fdt addr ${fdtcontroladdr};" +- + #endif /* __CONFIG_H */ diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index 70abc7bad1..7a0f3ae6ac 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages maths) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sphinx)) @@ -84,11 +86,20 @@ Python strings.") (uri (pypi-uri "lz4" version)) (sha256 (base32 - "0ghv1xbaq693kgww1x9c22bplz479ls9szjsaa4ig778ls834hm0")))) + "0ghv1xbaq693kgww1x9c22bplz479ls9szjsaa4ig778ls834hm0")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled copy of lz4. + (delete-file-recursively "lz4libs") + #t)))) (build-system python-build-system) (native-inputs - `(("python-nose" ,python-nose) + `(("pkg-config" ,pkg-config) + ("python-nose" ,python-nose) ("python-setuptools-scm" ,python-setuptools-scm))) + (inputs + `(("lz4" ,lz4))) (home-page "https://github.com/python-lz4/python-lz4") (synopsis "LZ4 bindings for Python") (description diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm index 7be18cb8e3..74efae753c 100644 --- a/gnu/packages/rsync.scm +++ b/gnu/packages/rsync.scm @@ -47,8 +47,10 @@ (base32 "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m")))) (build-system gnu-build-system) - (inputs `(("perl" ,perl) - ("acl" ,acl))) + (native-inputs + `(("perl" ,perl))) + (inputs + `(("acl" ,acl))) (synopsis "Remote (and local) file copying tool") (description "Rsync is a fast and versatile file copying tool. It can copy locally, diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c5c4d8672d..98868cdda3 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2836,13 +2836,13 @@ definitions on a Ruby object.") (define-public ruby-redcarpet (package (name "ruby-redcarpet") - (version "3.4.0") + (version "3.5.0") (source (origin (method url-fetch) (uri (rubygems-uri "redcarpet" version)) (sha256 (base32 - "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7")))) + "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k")))) (build-system ruby-build-system) (arguments `(#:phases @@ -4784,7 +4784,7 @@ unacceptable HTML and/or CSS from a string.") (define-public ruby-oj (package (name "ruby-oj") - (version "3.6.7") + (version "3.10.1") (source (origin (method git-fetch) @@ -4796,7 +4796,7 @@ unacceptable HTML and/or CSS from a string.") (file-name (git-file-name name version)) (sha256 (base32 - "1fqx58pwjiln7053lw2jy6ns4agcpxq2ac4f2fkd2ca3fxwpmh03")))) + "0i5xjx4sh816zx2c1a4d1q67k7vllg5jnnc4jy6zhbmwi1dvp5vw")))) (build-system ruby-build-system) (arguments '(#:test-target "test_all" @@ -4955,19 +4955,26 @@ including comments and whitespace.") (define-public ruby-unf-ext (package (name "ruby-unf-ext") - (version "0.0.7.1") + (version "0.0.7.6") (source (origin (method url-fetch) (uri (rubygems-uri "unf_ext" version)) (sha256 (base32 - "0ly2ms6c3irmbr1575ldyh52bz2v0lzzr2gagf0p526k12ld2n5b")))) + "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf")))) (build-system ruby-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'build 'build-ext - (lambda _ (invoke "rake" "compile:unf_ext")))))) + (lambda _ (invoke "rake" "compile:unf_ext"))) + (add-before 'check 'lose-rake-compiler-dock-dependency + (lambda _ + ;; rake-compiler-dock is listed in the gemspec, but only + ;; required when cross-compiling. + (substitute* "unf_ext.gemspec" + ((".*rake-compiler-dock.*") "")) + #t))))) (native-inputs `(("bundler" ,bundler) ("ruby-rake-compiler" ,ruby-rake-compiler) @@ -6076,14 +6083,14 @@ neither too verbose nor too minimal.") (define-public ruby-sqlite3 (package (name "ruby-sqlite3") - (version "1.3.13") + (version "1.4.2") (source (origin (method url-fetch) (uri (rubygems-uri "sqlite3" version)) (sha256 (base32 - "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i")))) + "0lja01cp9xd5m6vmx99zwn4r7s97r1w5cb76gqd8xhbm1wxyzf78")))) (build-system ruby-build-system) (arguments `(#:phases @@ -7764,23 +7771,34 @@ features that don't exist yet like variables, nesting, mixins and inheritance.") (define-public ruby-sassc (package (name "ruby-sassc") - (version "2.0.1") + (version "2.2.1") (source (origin (method url-fetch) (uri (rubygems-uri "sassc" version)) (sha256 (base32 - "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4")))) + "09bnid7r5z5hcin5hykvpvv8xig27wbbckxwis60z2aaxq4j9siz")))) (build-system ruby-build-system) (arguments - '(#:phases + '(#:modules ((guix build ruby-build-system) + (guix build utils) + (ice-9 textual-ports)) + #:phases (modify-phases %standard-phases ;; TODO: This would be better as a snippet, but the ruby-build-system ;; doesn't seem to support that (add-after 'unpack 'remove-libsass (lambda _ (delete-file-recursively "ext") + (with-atomic-file-replacement "sassc.gemspec" + (lambda (in out) + (let* ((gemspec (get-string-all in)) + (index (string-contains gemspec "libsass_dir"))) + (display (string-append + (string-take gemspec index) + "\nend\n") + out)))) #t)) (add-after 'unpack 'dont-check-the-libsass-version (lambda _ @@ -7790,18 +7808,17 @@ features that don't exist yet like variables, nesting, mixins and inheritance.") (add-after 'unpack 'remove-git-from-gemspec (lambda _ (substitute* "sassc.gemspec" - (("`git ls-files -z`") "`find . -type f -print0 |sort -z`") - (("`git submodule --quiet foreach pwd`") "''")) + (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")) #t)) (add-after 'unpack 'remove-extensions-from-gemspec (lambda _ (substitute* "sassc.gemspec" - (("\\[\"ext/Rakefile\"\\]") "[]")) + (("\\[\"ext/extconf.rb\"\\]") "[]")) #t)) (add-after 'unpack 'fix-Rakefile (lambda _ (substitute* "Rakefile" - (("test: 'libsass:compile'") ":test")) + (("test: 'compile:libsass'") ":test")) #t)) (add-after 'unpack 'remove-unnecessary-dependencies (lambda _ @@ -7826,6 +7843,7 @@ features that don't exist yet like variables, nesting, mixins and inheritance.") `(("libsass" ,libsass))) (native-inputs `(("bundler" ,bundler) + ("ruby-rake-compiler" ,ruby-rake-compiler) ("ruby-minitest-around" ,ruby-minitest-around) ("ruby-test-construct" ,ruby-test-construct))) (synopsis "Use libsss from Ruby") diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 6cd875df46..d0db693e30 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -168,14 +168,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.11.4") + (version "4.11.6") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "096vc6j36924xrjzqr6lqmf9qwgwv9szxb35rsfi0mq78nx72m5r")))) + "0f7g17zw4nzk1bjnqqrr84hkyq9vn0k7zyim2i177xkigd6qyhwi")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index 98f7fd203a..6adaba18cd 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -39,16 +39,16 @@ (define-public sane-backends-minimal (package (name "sane-backends-minimal") - (version "1.0.28") + (version "1.0.29") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/sane-project/backends/uploads/" - "9e718daff347826f4cfe21126c8d5091/" + "54f858b20a364fc35d820df935a86478/" "sane-backends-" version ".tar.gz")) (sha256 (base32 - "00yy8q9hqdf0zjxxl4d8njr9zf0hhi3a9ib23ikc2anqf8zhy9ii")) + "1vd83vhl0hddwsdh2jb0k3yzycfghi2xa9lc3ga9r12rbx77n0ma")) (modules '((guix build utils))) (snippet ;; Generated HTML files and udev rules normally embed a diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index a01cafb34a..26c9bd5eb3 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net> -;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> @@ -42,10 +42,12 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) #:use-module (gnu packages fcitx) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages ibus) #:use-module (gnu packages image) @@ -326,6 +328,54 @@ SDL.") (home-page "https://www.libsdl.org/projects/SDL_net/") (license zlib))) +(define-public sdl-pango + (package + (name "sdl-pango") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/sdlpango/SDL_Pango/" version "/" + "SDL_Pango-" version ".tar.gz")) + (sha256 + (base32 "197baw1dsg0p4pljs5k0fshbyki00r4l49m1drlpqw6ggawx6xbz")) + (patches + (search-patches + "sdl-pango-api_additions.patch" + "sdl-pango-blit_overflow.patch" + "sdl-pango-fillrect_crash.patch" + "sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch" + "sdl-pango-matrix_declarations.patch" + "sdl-pango-sans-serif.patch")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + ;; Force reconfiguration because the included libtool + ;; generates linking errors. + (lambda _ (invoke "autoreconf" "-vif")))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glib" ,glib) + ("harfbuzz" ,harfbuzz) + ("pango" ,pango) + ("sdl" ,sdl))) + (home-page "http://sdlpango.sourceforge.net") + (synopsis "Pango SDL binding") + (description "This library is a wrapper around the Pango library. +It allows you to use TrueType fonts to render internationalized and +tagged text in SDL applications.") + (license lgpl2.1))) + (define-public sdl-ttf (package (name "sdl-ttf") diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index d4a48c48c5..89dbe4578b 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; @@ -360,14 +360,14 @@ over the Internet in an HTTP and CDN friendly way; (define-public rclone (package (name "rclone") - (version "1.50.2") + (version "1.51.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/rclone/rclone/releases/download/" "v" version "/rclone-v" version ".tar.gz")) (sha256 - (base32 "14b0k5nb85v0mxmdpqxf8avha0wwc3f4dbj1s8h3hkaifa59kn3d")))) + (base32 "1vi7sbdr5irlgxn080nwzs9lr893cxk59y4vnannzr8prvzvgd9y")))) ;; FIXME: Rclone bundles some libraries Guix already provides. Need to ;; un-bundle them. (build-system go-build-system) diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index 5414e663f4..f04385ca1e 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -29,7 +29,7 @@ (define-public tbb (package (name "tbb") - (version "2020.0") + (version "2020.1") (source (origin (method git-fetch) (uri (git-reference @@ -38,7 +38,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "11prl038dh8gprvn5f5p16af2rgh4lr3bfyyvavgfl3jdvsj2mqh")) + "1vrh1mr9jmj46as9y8j5q1hpvihzd1iq4jr1y4x9a19dw8b7yk56")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 7806a4c8b2..5d49d5d83d 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -657,15 +657,14 @@ and Octave. TeXmacs is completely extensible via Guile.") (define-public scintilla (package (name "scintilla") - (version "4.2.2") - (source (origin - (method url-fetch) - (uri (let ((v (apply string-append (string-split version #\.)))) - (string-append - "https://www.scintilla.org/scintilla" v ".tgz"))) - (sha256 - (base32 - "01gq31ggvasw4sy9xs544h7v1dmxrlxs5bzxpasqb9yi3ps3nl0f")))) + (version "4.3.0") + (source + (origin + (method url-fetch) + (uri (let ((v (apply string-append (string-split version #\.)))) + (string-append "https://www.scintilla.org/scintilla" v ".tgz"))) + (sha256 + (base32 "0c52b2wg0y55kv3w7rnzp0nbd1yn2kksy0w8bjdp3gkl0v28wwx5")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 079c5550b6..2a6f121219 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -122,7 +122,7 @@ in intelligent transportation networks.") (define-public p11-kit (package (name "p11-kit") - (version "0.23.19") + (version "0.23.20") (source (origin (method url-fetch) @@ -130,7 +130,7 @@ in intelligent transportation networks.") "download/" version "/p11-kit-" version ".tar.xz")) (sha256 (base32 - "1w7i4f5lc8darjkfjsm1ldvhkv0x29mvwg89klmh5kb2xqf6x4wi")))) + "0131maw666ha4d6iyj13fkz18c4pnb3lw2xwv5kvkmnzqcj61n0l")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7b3e393dc9..19e6ccb182 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2015, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com> @@ -23,7 +23,7 @@ ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Roel Janssen <roel@gnu.org> -;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018, 2019 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot> @@ -337,52 +337,59 @@ a shared library and encoder and decoder command-line executables.") (license license:gpl2+))) (define-public libx264 - (package - (name "libx264") - (version "20180810-2245") - (source (origin - (method url-fetch) - (uri (string-append "https://download.videolan.org/pub/x264/snapshots/" - "x264-snapshot-" version "-stable.tar.bz2")) - (sha256 - (base32 - "0f25f39imas9pcqm7lnaa0shhjmf42hdx7jxzcnvxc7qsb7lh1bv")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config) - ("nasm" ,nasm))) - ;; TODO: Add gpac input - (arguments - `(#:tests? #f ;no check target - #:configure-flags '("--enable-shared" - ;; Don't build the command-line program. If we - ;; want it later, we should do so in a different - ;; package to avoid a circular dependency (the x264 - ;; program depends on ffmpeg and ffmpeg depends on - ;; libx264). - "--disable-cli" - - ;; On MIPS, we must pass "--disable-asm" or else - ;; configure fails after printing: "You specified a - ;; pre-MSA CPU in your CFLAGS. If you really want - ;; to run on such a CPU, configure with - ;; --disable-asm." - ,@(if (string-prefix? "mips" - (or (%current-target-system) - (%current-system))) - '("--disable-asm") - '())))) - (home-page "https://www.videolan.org/developers/x264.html") - (synopsis "H.264 video coding library") - (description "libx264 is an advanced encoding library for creating + ;; There are no tags in the repository, so we take the version number from + ;; the X264_BUILD variable defined in x264.h. + (let ((version "159") + (commit "1771b556ee45207f8711744ccbd5d42a3949b14c") + (revision "0")) + (package + (name "libx264") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://code.videolan.org/videolan/x264.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kmi78gs5101d4df33il5bmjbns54nvdjsyn44xiw60lwsg11vwz")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("nasm" ,nasm))) + ;; TODO: Add gpac input + (arguments + `(#:tests? #f ;no check target + #:configure-flags '("--enable-shared" + ;; Don't build the command-line program. If we + ;; want it later, we should do so in a different + ;; package to avoid a circular dependency (the x264 + ;; program depends on ffmpeg and ffmpeg depends on + ;; libx264). + "--disable-cli" + + ;; On MIPS, we must pass "--disable-asm" or else + ;; configure fails after printing: "You specified a + ;; pre-MSA CPU in your CFLAGS. If you really want + ;; to run on such a CPU, configure with + ;; --disable-asm." + ,@(if (string-prefix? "mips" + (or (%current-target-system) + (%current-system))) + '("--disable-asm") + '())))) + (home-page "https://www.videolan.org/developers/x264.html") + (synopsis "H.264 video coding library") + (description "libx264 is an advanced encoding library for creating H.264 (MPEG-4 AVC) video streams.") - (license (list license:gpl2+ ;most files - license:isc ;common/x86/x86inc.asm - license:lgpl2.1+ ;extras/getopt.c - license:bsd-3 ;extras/inttypes.h - (license:non-copyleft ;extras/cl*.h - "file://extras/cl.h" - "See extras/cl.h in the distribution."))))) + (license (list license:gpl2+ ;most files + license:isc ;common/x86/x86inc.asm + license:lgpl2.1+ ;extras/getopt.c + license:bsd-3 ;extras/inttypes.h + (license:non-copyleft ;extras/cl*.h + "file://extras/cl.h" + "See extras/cl.h in the distribution.")))))) (define-public mkvtoolnix (package @@ -1349,7 +1356,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.31.0") + (version "0.32.0") (source (origin (method git-fetch) (uri (git-reference @@ -1358,7 +1365,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (file-name (git-file-name name version)) (sha256 (base32 - "138m09l4wi6ifbi15z76j578plmxkclhlzfryasfcdp8hswhs59r")))) + "0kmy1q0hp87vq4rpv7py04x8bpg1wmlzaibavmkf713jqp6qy596")))) (build-system waf-build-system) (native-inputs `(("perl" ,perl) ; for zsh completion file diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 6f45072772..15b5dedd16 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -36,6 +36,7 @@ ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org> ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de> +;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1140,6 +1141,36 @@ implementation that is simple, portable, flexible, lightweight, low level, and high performance.") (license license:bsd-3))) +(define-public wslay + (package + (name "wslay") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tatsuhiro-t/wslay.git") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ak9a6hsanhys40yhv7c2gqkfghpm6jx36j1pnml8ajvgaky5q98")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cunit" ,cunit) ; For tests. + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx))) + (home-page "https://tatsuhiro-t.github.io/wslay/") + (synopsis "C WebSocket library") + (description "@code{Wslay} is an event-based C library for the WebSocket +protocol version 13, described in RFC 6455. Besides a high-level API it +provides callbacks for sending and receiving frames directly. @code{Wslay} +only supports the data transfer part of WebSocket protocol and does not +perform the opening handshake in HTTP.") + (license license:expat))) + (define-public libpsl (package (name "libpsl") @@ -5073,21 +5104,20 @@ w3c webidl files and a binding configuration file.") (delete 'configure) (add-after 'build 'adjust-welcome (lambda _ - ;; First, fix some unended tags and simple substitutions (substitute* "frontends/gtk/res/welcome.html" + ;; Close some XHTML tags. (("<(img|input)([^>]*)>" _ tag contents) (string-append "<" tag contents " />")) - (("Licence") "License") ;prefer GNU spelling + ;; Increase freedom. ((" open source") ", free software") - (("web site") "website") - ;; Prefer privacy-respecting default search engine + ;; Prefer a more privacy-respecting default search engine. (("www.google.co.uk") "www.duckduckgo.com/html") (("Google Search") "DuckDuckGo Search") (("name=\"btnG\"") "")) - ;; Remove default links so it doesn't seem we're endorsing them + ;; Remove default links so it doesn't seem we're endorsing them. (with-atomic-file-replacement "frontends/gtk/res/welcome.html" (lambda (in out) - ;; Leave the DOCTYPE header as is + ;; Leave the DOCTYPE header as is. (display (read-line in 'concat) out) (sxml->xml (let rec ((sxml (xml->sxml in))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index a9113923dd..a638ae44e2 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -30,6 +30,8 @@ ;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020 David Wilson <david@daviwil.com> +;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +59,7 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system scons) #:use-module (gnu packages) #:use-module (gnu packages documentation) #:use-module (gnu packages admin) @@ -2005,3 +2008,104 @@ The cutbuffer and clipboard selection are always synchronized.") can optionally use some appearance settings from XSettings, tint2 and GTK.") (home-page "https://jgmenu.github.io/") (license license:gpl2))) + +(define-public xwrits + (package + (name "xwrits") + (version "2.26") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.lcdf.org/~eddietwo/xwrits/" + "xwrits-" version ".tar.gz")) + (sha256 + (base32 "1n7y0fqpcvmzznvbsn14hzy5ddaa3lilm8aw6ckscqndnh4lijma")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/xwrits"))) + (install-file "GESTURES" doc) + (install-file "README" doc) + #t)))))) + (inputs + `(("libx11" ,libx11) + ("libxinerama" ,libxinerama))) + (home-page "https://www.lcdf.org/~eddietwo/xwrits/") + (synopsis "Reminds you to take wrist breaks") + (description "Xwrits reminds you to take wrist breaks for prevention or +management of repetitive stress injuries. When you should take a break, it +pops up an X window, the warning window. You click on the warning window, +then take a break. The window changes appearance while you take the break. +It changes again when your break is over. Then you just resume typing. +Xwrits hides itself until you should take another break.") + (license license:gpl2))) + +(define-public xsettingsd + (package + (name "xsettingsd") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/derat/xsettingsd.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v")))) + (build-system scons-build-system) + (inputs + `(("libx11" ,libx11))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("googletest" ,googletest) + ("googletest-source" ,(package-source googletest)))) + (arguments + `(#:scons ,scons-python2 + #:scons-flags + (list "CC=gcc") + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-sconstruct + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "SConstruct" + ;; scons doesn't pick up environment variables automatically + ;; so it needs help to find path variables + (("env = Environment\\(") + "env = Environment( + ENV = { + 'PATH': os.environ['PATH'], + 'CPATH': os.environ['CPATH'], + 'LIBRARY_PATH': os.environ['LIBRARY_PATH'], + 'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH'] + },") + ;; Update path to gtest source files used in tests + (("/usr/src/gtest") (string-append + (assoc-ref inputs "googletest-source") + "/googletest")) + ;; Exclude one warning that causes a build error + (("-Werror") "-Werror -Wno-error=sign-compare")) + #t)) + ;; The SConstruct script doesn't configure installation so + ;; binaries must be copied to the output path directly + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (install-file "xsettingsd" bin) + (install-file "dump_xsettings" bin) + #t)))))) + (home-page "https://github.com/derat/xsettingsd") + (synopsis "Xorg settings daemon") + (description "@command{xsettingsd} is a lightweight daemon that provides settings to +Xorg applications via the XSETTINGS specification. It is used for defining +font and theme settings when a complete desktop environment (GNOME, KDE) is +not running. With a simple @file{.xsettingsd} configuration file one can avoid +configuring visual settings in different UI toolkits separately.") + (license license:bsd-3))) diff --git a/gnu/services/getmail.scm b/gnu/services/getmail.scm index 7d77888517..933d820bc5 100644 --- a/gnu/services/getmail.scm +++ b/gnu/services/getmail.scm @@ -112,7 +112,7 @@ @samp{passwd} and @samp{static}.") (server (string 'unset) - "Name or IP adddress of the server to retrieve mail from.") + "Name or IP address of the server to retrieve mail from.") (username (string 'unset) "Username to login to the mail server with.") diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm new file mode 100644 index 0000000000..caa0326c31 --- /dev/null +++ b/gnu/services/linux.scm @@ -0,0 +1,125 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services linux) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (guix modules) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu packages linux) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:export (earlyoom-configuration + earlyoom-configuration? + earlyoom-configuration-earlyoom + earlyoom-configuration-minimum-available-memory + earlyoom-configuration-minimum-free-swap + earlyoom-configuration-prefer-regexp + earlyoom-configuration-avoid-regexp + earlyoom-configuration-memory-report-interval + earlyoom-configuration-ignore-positive-oom-score-adj? + earlyoom-configuration-show-debug-messages? + earlyoom-configuration-send-notification-command + earlyoom-service-type)) + + +;;; +;;; Early OOM daemon. +;;; + +(define-record-type* <earlyoom-configuration> + earlyoom-configuration make-earlyoom-configuration + earlyoom-configuration? + (earlyoom earlyoom-configuration-earlyoom + (default earlyoom)) + (minimum-available-memory earlyoom-configuration-minimum-available-memory + (default 10)) ; in percent + (minimum-free-swap earlyoom-configuration-minimum-free-swap + (default 10)) ; in percent + (prefer-regexp earlyoom-configuration-prefer-regexp ; <string> + (default #f)) + (avoid-regexp earlyoom-configuration-avoid-regexp ; <string> + (default #f)) + (memory-report-interval earlyoom-configuration-memory-report-interval + (default 0)) ; in seconds; 0 means disabled + (ignore-positive-oom-score-adj? + earlyoom-configuration-ignore-positive-oom-score-adj? (default #f)) + (run-with-higher-priority? earlyoom-configuration-run-with-higher-priority? + (default #f)) + (show-debug-messages? earlyoom-configuration-show-debug-messages? + (default #f)) + (send-notification-command + earlyoom-configuration-send-notification-command ; <string> + (default #f))) + +(define (earlyoom-configuration->command-line-args config) + "Translate a <earlyoom-configuration> object to its command line arguments +representation." + (match config + (($ <earlyoom-configuration> earlyoom minimum-available-memory + minimum-free-swap prefer-regexp avoid-regexp + memory-report-interval + ignore-positive-oom-score-adj? + run-with-higher-priority? show-debug-messages? + send-notification-command) + `(,(file-append earlyoom "/bin/earlyoom") + ,@(if minimum-available-memory + (list "-m" (format #f "~s" minimum-available-memory)) + '()) + ,@(if minimum-free-swap + (list "-s" (format #f "~s" minimum-free-swap)) + '()) + ,@(if prefer-regexp + (list "--prefer" prefer-regexp) + '()) + ,@(if avoid-regexp + (list "--avoid" avoid-regexp) + '()) + "-r" ,(format #f "~s" memory-report-interval) + ,@(if ignore-positive-oom-score-adj? + (list "-i") + '()) + ,@(if run-with-higher-priority? + (list "-p") + '()) + ,@(if show-debug-messages? + (list "-d") + '()) + ,@(if send-notification-command + (list "-N" send-notification-command) + '()))))) + +(define (earlyoom-shepherd-service config) + (shepherd-service + (documentation "Run the Early OOM daemon.") + (provision '(earlyoom)) + (start #~(make-forkexec-constructor + '#$(earlyoom-configuration->command-line-args config) + #:log-file "/var/log/earlyoom.log")) + (stop #~(make-kill-destructor)))) + +(define earlyoom-service-type + (service-type + (name 'earlyoom) + (default-value (earlyoom-configuration)) + (extensions + (list (service-extension shepherd-root-service-type + (compose list earlyoom-shepherd-service)))) + (description "Run @command{earlyoom}, the Early OOM daemon."))) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index 2606aa9e3e..d97316512f 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Kristofer Buffington <kristoferbuffington@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -1621,8 +1621,12 @@ by @code{dovecot-configuration}. @var{config} may also be created by (define %default-opensmtpd-config-file (plain-file "smtpd.conf" " listen on lo -accept from any for local deliver to mbox -accept from local for any relay + +action inbound mbox +match for local action inbound + +action outbound relay +match from local for any action outbound ")) (define opensmtpd-shepherd-service diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm index 1e01b5059d..256c6a7fa7 100644 --- a/gnu/services/pm.scm +++ b/gnu/services/pm.scm @@ -388,7 +388,7 @@ shutdown on system startup.")) (with-imported-modules '((guix build utils)) #~(begin (use-modules (guix build utils)) - (copy-file #$config-file "/etc/tlp"))))) + (copy-file #$config-file "/etc/tlp.conf"))))) (define tlp-service-type (service-type diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 2cd4e5e89c..d473c5342e 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -627,6 +627,16 @@ potential infinite waits blocking libvirt.")) (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00") (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) +(define %riscv32 + (qemu-platform "riscv32" "riscv" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %riscv64 + (qemu-platform "riscv64" "riscv" + (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + (define %sh4 (qemu-platform "sh4" "sh4" (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00") @@ -655,7 +665,7 @@ potential infinite waits blocking libvirt.")) (define %qemu-platforms (list %i386 %i486 %alpha %arm %sparc32plus %ppc %ppc64 %ppc64le %m68k %mips %mipsel %mipsn32 %mipsn32el %mips64 %mips64el - %sh4 %sh4eb %s390x %aarch64 %hppa)) + %riscv32 %riscv64 %sh4 %sh4eb %s390x %aarch64 %hppa)) (define (lookup-qemu-platforms . names) "Return the list of QEMU platforms that match NAMES--a list of names such as diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm index bb446da8f9..023f59df10 100644 --- a/gnu/tests/mail.scm +++ b/gnu/tests/mail.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Christopher Baines <mail@cbaines.net> -;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,7 +47,8 @@ (config-file (plain-file "smtpd.conf" " listen on 0.0.0.0 -accept from any for local deliver to mbox +action inbound mbox +match from any for local action inbound ")))))) (define (run-opensmtpd-test) diff --git a/tests/services/linux.scm b/tests/services/linux.scm new file mode 100644 index 0000000000..8ad119c49f --- /dev/null +++ b/tests/services/linux.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (tests services linux) + #:use-module (ice-9 match) + #:use-module (gnu packages linux) + #:use-module (gnu services linux) + #:use-module (guix gexp) + #:use-module (srfi srfi-64)) + +;;; Tests for the (gnu services linux) module. + +(test-begin "linux-services") + + +;;; +;;; Early OOM daemon. +;;; + +(define earlyoom-configuration->command-line-args + (@@ (gnu services linux) earlyoom-configuration->command-line-args)) + +(define %earlyoom-configuration-sample + (earlyoom-configuration + (minimum-available-memory 10) + (minimum-free-swap 20) + (prefer-regexp "icecat") + (avoid-regexp "guix-daemon") + (memory-report-interval 60) + (ignore-positive-oom-score-adj? #f) + (run-with-higher-priority? #t) + (show-debug-messages? #f) + (send-notification-command "python \"/some/path/notify-all-users.py\""))) + +(test-equal "earlyoom-configuration->command-line-args" + (list (file-append earlyoom "/bin/earlyoom") + "-m" "10" "-s" "20" "--prefer" "icecat" + "--avoid" "guix-daemon" "-r" "60" "-p" + "-N" "python \"/some/path/notify-all-users.py\"") + (earlyoom-configuration->command-line-args %earlyoom-configuration-sample)) + +(test-end "linux-services") |