From 69de98391d720b92206d5e45072ecd3944d95774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 May 2020 00:40:23 +0200 Subject: [PATCH 01/69] profiles: Mark manual database as non-substitutable. Fixes . Reported by pkill9 . * guix/profiles.scm (manual-database): Pass #:substitutable? #f. --- guix/profiles.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/profiles.scm b/guix/profiles.scm index ab265cce62..b3a3db0e84 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1487,6 +1487,7 @@ (define man-directory ;; . #:env-vars `(("MALLOC_PERTURB_" . "1")) + #:substitutable? #f #:local-build? #t #:properties `((type . profile-hook) From 7ff2159b10774fc9a3cb99adcd778aa4693ca9ee Mon Sep 17 00:00:00 2001 From: Rene Saavedra Date: Mon, 27 Apr 2020 23:59:18 -0500 Subject: [PATCH 02/69] gnu: balsa: Update to 2.6.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mail.scm (balsa): Update to 2.6.0. [inputs]: Replace gmime-2.6 with gmime; add libical and libsecret. Signed-off-by: Ludovic Courtès --- gnu/packages/mail.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index cb5e23bcea..2a6286fb16 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Kyle Meyer ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice -;;; Copyright © 2017, 2018 Rene Saavedra +;;; Copyright © 2017, 2018, 2020 Rene Saavedra ;;; Copyright © 2018, 2019, 2020 Pierre Langlois ;;; Copyright © 2018 Alex Vong ;;; Copyright © 2018 Gábor Boskovits @@ -2755,14 +2755,14 @@ (define-public alpine (define-public balsa (package (name "balsa") - (version "2.5.7") + (version "2.6.0") (source (origin (method url-fetch) (uri (string-append "https://pawsa.fedorapeople.org/balsa/" name "-" version ".tar.bz2")) (sha256 - (base32 "0yfqhfpwm1qnwmbpr6dfn2f5w8a8xxq51pn8ypgg0fw973l1c1nx")))) + (base32 "0ycidvgy9npd6avxk88sf2ca609m7zb0hzrk1yajrgwb1rfqx68a")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2780,7 +2780,7 @@ (define-public balsa `(("cyrus-sasl" ,cyrus-sasl) ("enchant" ,enchant) ("gdk-pixbuf" ,gdk-pixbuf) - ("gmime" ,gmime-2.6) + ("gmime" ,gmime) ("gnutls" ,gnutls) ("gpgme" ,gpgme) ("gtk+" ,gtk+) @@ -2788,7 +2788,9 @@ (define-public balsa ("gtkspell3" ,gtkspell3) ("libcanberra" ,libcanberra) ("libesmtp" ,libesmtp) + ("libical" ,libical) ("libnotify" ,libnotify) + ("libsecret" ,libsecret) ("openldap" ,openldap) ("sqlite" ,sqlite) ("webkitgtk" ,webkitgtk))) From 524e5fe56b602d2ccb1dd2bf5a50a0e6ca397759 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Note Date: Sun, 26 Apr 2020 05:59:48 -0400 Subject: [PATCH 03/69] gnu: Add apt-mirror. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/debian.scm (apt-mirror): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/debian.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index ff4cccb03d..a3bbd2b907 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -27,6 +27,7 @@ (define-module (gnu packages debian) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) + #:use-module (gnu packages wget) #:use-module (gnu packages perl)) (define-public debian-archive-keyring @@ -190,3 +191,40 @@ (define-public debootstrap It does this by downloading .deb files from a mirror site, and carefully unpacking them into a directory which can eventually be chrooted into.") (license license:gpl2))) + + +(define-public apt-mirror + (let ((commit "e664486a5d8947c2579e16dd793d762ea3de4202") + (revision "1")) + (package + (name "apt-mirror") + (version (git-version "0.5.4" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apt-mirror/apt-mirror/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qj6b7gldwcqyfs2kp6amya3ja7s4vrljs08y4zadryfzxf35nqq")))) + (build-system gnu-build-system) + (outputs '("out")) + (arguments + `(#:tests? #f + ;; sysconfdir is not PREFIXed in the makefile but DESTDIR is + ;; honored correctly; we therefore use DESTDIR for our + ;; needs. A more correct fix would involve patching. + #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) + "PREFIX=/") + #:phases (modify-phases %standard-phases (delete 'configure)))) + (inputs + `(("wget" ,wget) + ("perl" ,perl))) + (home-page "http://apt-mirror.github.io/") + (synopsis "Script for mirroring a Debian repository") + (description + "apt-mirror is a small tool that provides the ability to +selectively mirror Debian and Ubuntu GNU/Linux distributions or any +other apt sources typically provided by open source developers.") + (license license:gpl2)))) From 135c1e0e433edc8258b1a7d018258e3ef5919122 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Thu, 23 Apr 2020 15:55:31 +0200 Subject: [PATCH 04/69] gnu: umockdev: Fix test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/check.scm (umockdev)[inputs]: Remove 'gobject-introspection'. [arguments]: Replace phase 'skip-broken-test' by 'fix-test'. Signed-off-by: Ludovic Courtès --- gnu/packages/check.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 5f3073d556..427607e6de 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2019 Chris Marusich ;;; Copyright © 2020 Lars-Dominik Braun +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -2436,11 +2437,10 @@ (define-public umockdev (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'skip-broken-test + (add-after 'unpack 'fix-test (lambda _ (substitute* "tests/test-umockdev.c" - (("/\\* sys/ in other dir") - (string-append "return; // "))) + (("/run") "/tmp")) #t))))) (native-inputs `(("vala" ,vala) @@ -2453,8 +2453,7 @@ (define-public umockdev (inputs `(("glib" ,glib) ("eudev" ,eudev) - ("libgudev" ,libgudev) - ("gobject-introspection" ,gobject-introspection))) + ("libgudev" ,libgudev))) (home-page "https://github.com/martinpitt/umockdev/") (synopsis "Mock hardware devices for creating unit tests") (description "umockdev mocks hardware devices for creating integration From 22df0a1f59e97e4ece7219b12dedabfc8a9a983c Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Thu, 23 Apr 2020 15:55:32 +0200 Subject: [PATCH 05/69] gnu: Add libqb. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/hardware.scm (libqb): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/hardware.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 114332455e..28ebc8c75e 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ (define-module (gnu packages hardware) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) #:use-module (guix download) @@ -344,3 +346,31 @@ (define-public rkdeveloptool "Rkdeveloptool can read from and write to RockChip devices over USB, such as the Pinebook Pro.") (license license:gpl2+)))) + +(define-public libqb + (package + (name "libqb") + ;; NOTE: We are using a Release Candidate version (for 2.0) here because + ;; of the linker issues with the previous release. + (version "1.9.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ClusterLabs/libqb/releases/download/v" + version "/libqb-" version ".tar.xz")) + (sha256 + (base32 + "008vvw504kh40br5v2xkqavnp9vpmjvf768faqzv1d00fd53ingn")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("xmllint" ,libxml2))) + (home-page "https://clusterlabs.github.io/libqb/") + (synopsis "Library providing high performance logging, tracing, ipc, and poll") + (description "Libqb is a library with the primary purpose of providing +high-performance, reusable features for client-server architecture, such as +logging, tracing, inter-process communication (IPC), and polling. Libqb is +not intended to be an all-encompassing library, but instead provide focused +APIs that are highly tuned for maximum performance for client-server +applications.") + (license license:lgpl2.1))) From 02ee43e48637dd6308858a4ca4c7a1e91e39c9f1 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Thu, 23 Apr 2020 15:55:33 +0200 Subject: [PATCH 06/69] gnu: Add usbguard. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/hardware.scm (usbguard): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/hardware.scm | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 28ebc8c75e..ce3f396d0a 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -19,14 +19,22 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages hardware) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) + #:use-module (gnu packages check) + #:use-module (gnu packages crypto) + #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) + #:use-module (gnu packages openldap) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) + #:use-module (gnu packages protobuf) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -374,3 +382,83 @@ (define-public libqb APIs that are highly tuned for maximum performance for client-server applications.") (license license:lgpl2.1))) + +(define-public usbguard + (package + (name "usbguard") + (version "0.7.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/USBGuard/usbguard/releases/download/usbguard-" + version "/usbguard-" version ".tar.gz")) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gzhs8s4aka86mkcjib36z54si939ki4bmk46p6v8kln1fixad3j")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'configure 'patch-makefile + (lambda _ + ;; Do not create log directory. + (substitute* "Makefile" ((".*/log/usbguard.*") "")) + ;; Disable LDAP tests: they use 'sudo'. + (substitute* "src/Tests/Makefile.am" + (("WITH_LDAP") "FALSE")) + #t)) + (add-after 'install 'delete-static-library + (lambda* (#:key outputs #:allow-other-keys) + ;; It can't be direclty disabled since it's needed for the tests. + (delete-file (string-append (assoc-ref outputs "out") + "/lib/libusbguard.a")) + #t)) + (add-after 'install 'install-zsh-completion + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (site-functions + (string-append out "/share/zsh/site-functions"))) + (mkdir-p site-functions) + (copy-file "scripts/usbguard-zsh-completion" + (string-append site-functions "/_usbguard")) + #t)))) + #:make-flags + (list (string-append "BASH_COMPLETION_DIR=" + (assoc-ref %outputs "out") + "/etc/bash_completion.d")) + #:configure-flags + (list + "--localstatedir=/var" + "--with-bundled-pegtl" + "--enable-systemd=no" + "--with-ldap" + "--with-dbus" + "--with-polkit"))) + (inputs + `(("audit" ,audit) + ("catch" ,catch-framework) + ("dbus-glib" ,dbus-glib) + ("ldap" ,openldap) + ("libcap-ng" ,libcap-ng) + ("libseccomp" ,libseccomp) + ("libsodium" ,libsodium) + ("polkit" ,polkit) + ("protobuf" ,protobuf) + ("libqb" ,libqb))) + (native-inputs + `(("asciidoc" ,asciidoc) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("bash-completion" ,bash-completion) + ("gdbus-codegen" ,glib "bin") + ("umockdev" ,umockdev) + ("xmllint" ,libxml2) + ("xsltproc" ,libxslt) + ("pkg-config" ,pkg-config))) + (home-page "https://usbguard.github.io") + (synopsis "Helps to protect your computer against rogue USB devices (a.k.a. BadUSB)") + (description "USBGuard is a software framework for implementing USB device +authorization policies (what kind of USB devices are authorized) as well as +method of use policies (how a USB device may interact with the system). +Simply put, it is a USB device whitelisting tool.") + (license license:gpl2))) From 65fd3f0ac367747086abb6997f1aa27957c9b65b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 30 Apr 2020 18:46:56 -0400 Subject: [PATCH 07/69] gnu: libmicrodns: Update to 0.1.2 [security fixes]. This fixes CVE-2020-6071, CVE-2020-6072, CVE-2020-6073, CVE-2020-6077, CVE-2020-6078, and CVE-2020-6079. * gnu/packages/dns.scm (libmicrodns): Update to 0.1.2. [source]: Build from a tarball. [build-system]: Use the meson-build-system. [native-inputs]: Remove field. --- gnu/packages/dns.scm | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 86569b5493..15c6c23d70 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2019 Rutger Helling ;;; Copyright © 2020 Pierre Langlois ;;; Copyright © 2020 Arun Isaac +;;; Copyright © 2020 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -878,22 +879,16 @@ (define-public hnsd (define-public libmicrodns (package (name "libmicrodns") - (version "0.0.10") + (version "0.1.2") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/videolabs/libmicrodns") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/videolabs/libmicrodns/" + "releases/download/" version "/microdns-" + version ".tar.xz")) (sha256 (base32 - "1xvl9k49ng35wbsqmnjnyqvkyjf8dcq2ywsq3jp3wh0rgmxhq2fh")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) + "0p4va18zxgmzcdwhlbg2mmjwswlbgqy4ay5vaxrw7cxmhsflnv36")))) + (build-system meson-build-system) (home-page "https://github.com/videolabs/libmicrodns") (synopsis "Minimal mDNS resolver library") (description "@code{libmicrodns} provides a minimal implementation of a From 5af110868cf3460da705242370eeb652bd1c5646 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 30 Apr 2020 17:50:16 -0400 Subject: [PATCH 08/69] gnu: VLC: Update to 3.0.10. * gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/video.scm (vlc): Update to 3.0.10. [source]: Remove obsolete patch. [arguments]: Remove obsolete workarounds for libssh and fribidi compatibility issues in 'patch-source' phase. --- gnu/local.mk | 1 - .../patches/vlc-fix-test_libvlc_slaves.patch | 35 ------------------- gnu/packages/video.scm | 24 ++----------- 3 files changed, 2 insertions(+), 58 deletions(-) delete mode 100644 gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9426ee30a0..26d26ee215 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1519,7 +1519,6 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-freerdp.patch \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virglrenderer-CVE-2017-6386.patch \ - %D%/packages/patches/vlc-fix-test_libvlc_slaves.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ diff --git a/gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch b/gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch deleted file mode 100644 index 9bc6d35f18..0000000000 --- a/gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4186c94104ee528abd6860611b49515f3e6ec644 Mon Sep 17 00:00:00 2001 -From: Thomas Guillem -Date: Fri, 18 Oct 2019 10:34:07 +0200 -Subject: [PATCH] input/item: sort before attaching slaves - -The order of readdir() is completely filesystem dependent. - -Slaves should be attached using the same order across multiple OSses/access -modules. - -This fixes the test_libvlc_slaves on some system when the entry order from -readdir() is different. - -This patch need to be backported to VLC 3.0. ---- - src/input/item.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/input/item.c b/src/input/item.c -index e8db39ca28..fbd74cc95f 100644 ---- a/src/input/item.c -+++ b/src/input/item.c -@@ -1809,8 +1809,8 @@ void vlc_readdir_helper_finish(struct vlc_readdir_helper *p_rdh, bool b_success) - { - if (b_success) - { -- rdh_attach_slaves(p_rdh, p_rdh->p_node); - rdh_sort(p_rdh->p_node); -+ rdh_attach_slaves(p_rdh, p_rdh->p_node); - } - free(p_rdh->psz_ignored_exts); - --- -2.20.1 - diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e3d145a840..dbea0afcf6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1191,7 +1191,7 @@ (define-public ffmpegthumbnailer (define-public vlc (package (name "vlc") - (version "3.0.8") + (version "3.0.10") (source (origin (method url-fetch) (uri (string-append @@ -1200,13 +1200,7 @@ (define-public vlc "/vlc-" version ".tar.xz")) (sha256 (base32 - "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570")) - (patches - (search-patches - ;; TODO: The test "libvlc_slaves" fails. Applied upstream as - ;; . - ;; Try removing it in 3.0.9. - "vlc-fix-test_libvlc_slaves.patch")))) + "0cackl1084hcmg4myf3kvjvd6sjxmzn0c0qkmanz6brvgzyanrm9")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) @@ -1311,20 +1305,6 @@ (define-public vlc ;; which fails in our sandboxed build system (substitute* "test/run_vlc.sh" (("./vlc --ignore-config") "echo")) - - ;; modules/text_renderer/freetype/text_layout.c uses a - ;; now-deprecated interface 'fribidi_get_par_embedding_levels' - ;; from fribidi.h, so for now we enable the use of deprecated - ;; fribidi interfaces from this file. - ;; FIXME: Try removing this for vlc >= 3.0.3. - (substitute* "modules/text_renderer/freetype/text_layout.c" - (("# define FRIBIDI_NO_DEPRECATED 1") "")) - - ;; Fix build with libssh2 > 1.8.0: - ;; - ;; - (substitute* "modules/access/sftp.c" - (("010801") "010900")) #t))) (add-after 'strip 'regenerate-plugin-cache (lambda* (#:key outputs #:allow-other-keys) From 73ddcab6075f60ef9b3cd72a35fbf7f5d622b6ef Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Wed, 29 Apr 2020 18:22:48 +0200 Subject: [PATCH 09/69] Revert "install: Pass "modprobe.blacklist=radeon"." This reverts commit 785919121066a10b291d783b6903b5e368e992a8, which is no longer needed since uvesafb was added in 557e6820a77b24f8f3f03f28ee473137b1caeb64. --- gnu/system/install.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index d31ed9a197..8804585215 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -471,12 +471,6 @@ (define installation-os (label (string-append "GNU Guix installation " (package-version guix))) - ;; XXX: The AMD Radeon driver is reportedly broken, which makes kmscon - ;; non-functional: - ;; . - ;; Thus, blacklist it. - (kernel-arguments '("quiet" "modprobe.blacklist=radeon")) - (file-systems ;; Note: the disk image build code overrides this root file system with ;; the appropriate one. From e06664da02a829c7fa8fd084aac47c837451d57a Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Wed, 29 Apr 2020 17:17:55 +0200 Subject: [PATCH 10/69] system: Blacklist usbmouse kernel module in default kernel-arguments. This avoids a race with the bcm5974 kernel module. Fixes . * gnu/system.scm (%default-modprobe-blacklist): New variable. ()[kernel-arguments]: Default to ... (%default-kernel-arguments): ... this new variable. * doc/guix.texi (operating-system Reference): Document the change. --- doc/guix.texi | 2 +- gnu/system.scm | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 26b4652f67..bdae451875 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11274,7 +11274,7 @@ possible to use the GNU@tie{}Hurd.}. A list of objects (usually packages) to collect loadable kernel modules from--e.g. @code{(list ddcci-driver-linux)}. -@item @code{kernel-arguments} (default: @code{'("quiet")}) +@item @code{kernel-arguments} (default: @code{%default-kernel-arguments}) List of strings or gexps representing additional arguments to pass on the command-line of the kernel---e.g., @code{("console=ttyS0")}. diff --git a/gnu/system.scm b/gnu/system.scm index 3c511f4089..ab6982ef5e 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2019 Meiyo Peng ;;; Copyright © 2020 Danny Milosavljevic ;;; Copyright © 2020 Brice Waegeneire +;;; Copyright © 2020 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -148,7 +149,8 @@ (define-module (gnu system) %base-packages-linux %base-packages-networking %base-packages-utils - %base-firmware)) + %base-firmware + %default-kernel-arguments)) ;;; Commentary: ;;; @@ -179,7 +181,7 @@ (define-record-type* operating-system (kernel-loadable-modules operating-system-kernel-loadable-modules (default '())) ; list of packages (kernel-arguments operating-system-user-kernel-arguments - (default '("quiet"))) ; list of gexps/strings + (default %default-kernel-arguments)) ; list of gexps/strings (bootloader operating-system-bootloader) ; (label operating-system-label ; string (thunked) @@ -488,6 +490,16 @@ (define (package-for-kernel target-kernel module-package) ((#:linux kernel #f) target-kernel))))) +(define %default-modprobe-blacklist + ;; List of kernel modules to blacklist by default. + '("usbmouse")) ;see + +(define %default-kernel-arguments + ;; Default arguments passed to the kernel. + (list (string-append "modprobe.blacklist=" + (string-join %default-modprobe-blacklist ",")) + "quiet")) + (define* (operating-system-directory-base-entries os) "Return the basic entries of the 'system' directory of OS for use as the value of the SYSTEM-SERVICE-TYPE service." From 53e8b852e90ec91e66172ad49f019955d7137eb1 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Thu, 30 Apr 2020 09:44:32 -0400 Subject: [PATCH 11/69] gnu: spacefm: Fix privilege and disk management. * gnu/packages/lxde.scm (spacefm)[inputs]: Remove dbus. Add ktsuss. [arguments]<#:phases>[patch-source-files]: New phase. Signed-off-by: Danny Milosavljevic --- gnu/packages/lxde.scm | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 9de96a21cb..a52e403106 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -27,6 +27,7 @@ (define-module (gnu packages lxde) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages bash) #:use-module (gnu packages disk) @@ -279,7 +280,6 @@ (define-public spacefm `(("bash" ,bash) ("cairo" ,cairo) ("curlftpfs" ,curlftpfs) - ("dbus" ,dbus) ("eudev" ,eudev) ("fakeroot" ,fakeroot) ("ffmpegthumbnailer" ,ffmpegthumbnailer) @@ -288,6 +288,7 @@ (define-public spacefm ("gtk+" ,gtk+) ("ifuse" ,ifuse) ("jmtpfs" ,jmtpfs) + ("ktsuss" ,ktsuss) ("libx11" ,libx11) ("lsof" ,lsof) ("pango" ,pango) @@ -297,12 +298,31 @@ (define-public spacefm ("util-linux" ,util-linux) ("wget" ,wget))) (arguments - `(#:configure-flags (list (string-append "--with-bash-path=" - (assoc-ref %build-inputs "bash") - "/bin/bash") - (string-append "--sysconfdir=" - (assoc-ref %outputs "out") - "/etc")))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source-files + (lambda* (#:key inputs #:allow-other-keys) + ;; Patch config file to load programs correctly. + (substitute* "etc/spacefm.conf" + (("#terminal_su=/bin/su") + "terminal_su=/run/setuid-programs/sudo") + (("#graphical_su=/usr/bin/gksu") + (string-append "graphical_su=" + (string-append (assoc-ref inputs "ktsuss") + "/bin/ktsuss")))) + ;; SpaceFM expects udevil to have uid set to root. + ;; User has to manually add udevil to setuid-programs. + (substitute* "src/settings.c" + (("/usr/bin/udevil") + "/run/setuid-programs/udevil")) + #t))) + #:configure-flags (list + (string-append "--with-bash-path=" + (assoc-ref %build-inputs "bash") + "/bin/bash") + (string-append "--sysconfdir=" + (assoc-ref %outputs "out") + "/etc")))) (home-page "https://ignorantguru.github.io/spacefm/") (synopsis "Multi-panel tabbed file manager") (description "SpaceFM is a graphical, multi-panel, tabbed file manager From fd31731b9dd704e5182655783551b94fa80afd88 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Fri, 1 May 2020 11:08:07 +0200 Subject: [PATCH 12/69] system: Blacklist usbkbd kernel module in default kernel-arguments. This is said to avoid a race with the usbhid kernel module. See . * gnu/system.scm (%default-modprobe-blacklist): Blacklist it. --- gnu/system.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/system.scm b/gnu/system.scm index ab6982ef5e..107b93db31 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -492,7 +492,8 @@ (define (package-for-kernel target-kernel module-package) (define %default-modprobe-blacklist ;; List of kernel modules to blacklist by default. - '("usbmouse")) ;see + '("usbmouse" ;races with bcm5974, see + "usbkbd")) ;races with usbhid, see (define %default-kernel-arguments ;; Default arguments passed to the kernel. From 0f9331e486f645a841e9780a588763fef8f5153c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 16:10:15 +0200 Subject: [PATCH 13/69] gnu: Update emacs-modus-themes. * gnu/packages/emacs-xyz.scm (emacs-modus-operandi-theme): (emacs-modus-vivendi-theme): Update to 0.8.0. --- gnu/packages/emacs-xyz.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 776dcbb897..52e0b576a5 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -21116,14 +21116,14 @@ (define-public emacs-doom-themes (define-public emacs-modus-operandi-theme (package (name "emacs-modus-operandi-theme") - (version "0.7.0") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "modus-operandi-theme-" version ".el")) (sha256 - (base32 "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2")))) + (base32 "09lw556jphrxrmwxkwzfgd4r7ylz99m8awxka4sfj5sa8fbjb3g8")))) (build-system emacs-build-system) (home-page "https://gitlab.com/protesilaos/modus-themes") (synopsis "Accessible light theme (WCAG AAA)") @@ -21137,14 +21137,14 @@ (define-public emacs-modus-operandi-theme (define-public emacs-modus-vivendi-theme (package (name "emacs-modus-vivendi-theme") - (version "0.7.0") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "modus-vivendi-theme-" version ".el")) (sha256 - (base32 "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g")))) + (base32 "0hwkzbx7a9scdr589sb7hw90lsm8yxcn3y5xr3bpyxf8rkr2zl4c")))) (build-system emacs-build-system) (home-page "https://gitlab.com/protesilaos/modus-themes") (synopsis "Accessible dark theme (WCAG AAA)") From a978840cb262b66f61693f9ca32dd86bfa871f57 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 16:14:58 +0200 Subject: [PATCH 14/69] gnu: emacs-web-mode: Update to 17. * gnu/packages/emacs-xyz.scm (emacs-web-mode): Update to 17. [description]: "web-mode" -> "web mode". --- gnu/packages/emacs-xyz.scm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 52e0b576a5..6c09610ce7 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7519,21 +7519,21 @@ (define-public emacs-gitlab-ci-mode (define-public emacs-web-mode (package (name "emacs-web-mode") - (version "16") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fxbois/web-mode.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0")))) + (version "17") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fxbois/web-mode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk")))) (build-system emacs-build-system) (synopsis "Major mode for editing web templates") - (description "Web-mode is an Emacs major mode for editing web templates + (description "Web mode is an Emacs major mode for editing web templates aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by -client/server side engines). Web-mode is compatible with many template +client/server side engines). Web mode is compatible with many template engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker, Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template, Dust.js, React/JSX, Angularjs, ejs, etc.") From a5e4713015f0444951124d88cbd759dec0a43307 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 16:23:52 +0200 Subject: [PATCH 15/69] gnu: fet: Update to 5.44.4. * gnu/packages/education.scm (fet): Update to 5.44.4. [description]: Remove uninformative part. --- gnu/packages/education.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index a1fee29c4e..d6c2cd02c3 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -606,14 +606,14 @@ (define-public omnitux (define-public fet (package (name "fet") - (version "5.44.0") + (version "5.44.4") (source (origin (method url-fetch) (uri (string-append "https://www.lalescu.ro/liviu/fet/download/" "fet-" version ".tar.bz2")) (sha256 - (base32 "13q3b0g1zz885g15gir8fbalvix8sy42v1p429h0751490wq5c3h")))) + (base32 "1bji4910v6adhngdh5ajz5bxam9z3yqnh8d1h1xajy6npm6qq3nx")))) (build-system gnu-build-system) (arguments `(#:phases @@ -632,14 +632,14 @@ (define-public fet `(("qtbase" ,qtbase))) (home-page "https://www.lalescu.ro/liviu/fet/") (synopsis "Timetabling software") - (description "FET is a program for automatically scheduling the -timetable of a school, high-school or university. It uses a fast and -efficient timetabling algorithm. + (description + "FET is a program for automatically scheduling the timetable of a school, +high-school or university. It uses a fast and efficient timetabling +algorithm. -Usually, FET is able to solve a complicated timetable in maximum 5-20 -minutes. For simpler timetables, it may take a shorter time, under -5 minutes (in some cases, a matter of seconds). For extremely -difficult timetables, it may take a longer time, a matter of hours.") +Usually, FET is able to solve a complicated timetable in maximum 5-20 minutes. +For extremely difficult timetables, it may take a longer time, a matter of +hours.") (license license:agpl3+))) (define-public klavaro From 88c586f324114e4c3fa532e4561e12878daed04f Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 16:37:07 +0200 Subject: [PATCH 16/69] gnu: frescobaldi: Update to 3.1.2. * gnu/packages/music.scm (frescobaldi): Update to 3.1.2. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 589f158afe..8e644288d5 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2035,7 +2035,7 @@ (define-public python-pyportmidi (define-public frescobaldi (package (name "frescobaldi") - (version "3.1.1") + (version "3.1.2") (source (origin (method url-fetch) @@ -2043,7 +2043,7 @@ (define-public frescobaldi "https://github.com/wbsoft/frescobaldi/releases/download/v" version "/frescobaldi-" version ".tar.gz")) (sha256 - (base32 "0kfwvgygx2ds01w8g7vzykfrajglmr2brchk9d67ahzijpgvfkj5")))) + (base32 "084vxzvxnxl5rrhllincnh6krsyi03c8p0452ppzmn9c52wgyb2w")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;no tests included From 3e2d65aecbace2e23cc84f72dda9c007d745f291 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 16:37:32 +0200 Subject: [PATCH 17/69] gnu: frescobaldi: Use HTTPS home page URI. * gnu/packages/music.scm (frescobaldi)[home-page]: Use HTTPS URI. --- gnu/packages/music.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 8e644288d5..7e8f5e581e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2056,7 +2056,7 @@ (define-public frescobaldi ("python-pyportmidi" ,python-pyportmidi) ("python-pyqt" ,python-pyqt) ("python-sip" ,python-sip))) - (home-page "http://www.frescobaldi.org/") + (home-page "https://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") (description "Frescobaldi is a LilyPond sheet music text editor with syntax From 8546f4da5b3677001dbda6b3a116f5bdc44ea5c0 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 28 Apr 2020 02:29:36 -0400 Subject: [PATCH 18/69] gnu: udevil: Fix loading of setuid-programs. * gnu/packages/disk.scm (udevil)[arguments]<#:configure-flags>: Add "--with-mount-prog", "--with-umount-prog", "--with-losetup-prog", "--with-setfacl-prog". [arguments]<#:phases>[patch-udevil-reference]: New phase. Signed-off-by: Danny Milosavljevic --- gnu/packages/disk.scm | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index b7d3b9d954..2b9ba8e38d 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -103,16 +103,34 @@ (define-public udevil (build-system gnu-build-system) (arguments `(#:configure-flags - (list "--disable-systemd" - (string-append "--sysconfdir=" - (assoc-ref %outputs "out") - "/etc")) + (list + "--disable-systemd" + (string-append "--sysconfdir=" + (assoc-ref %outputs "out") + "/etc") + ;; udevil expects these programs to be run with uid set as root. + ;; user has to manually add these programs to setuid-programs. + ;; mount and umount are default setuid-programs in guix system. + "--with-mount-prog=/run/setuid-programs/mount" + "--with-umount-prog=/run/setuid-programs/umount" + "--with-losetup-prog=/run/setuid-programs/losetup" + "--with-setfacl-prog=/run/setuid-programs/setfacl") #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-root-reference (lambda _ (substitute* "src/Makefile.in" (("-o root -g root") "")) + #t)) + (add-after 'unpack 'patch-udevil-reference + ;; udevil expects itself to be run with uid set as root. + ;; devmon also expects udevil to be run with uid set as root. + ;; user has to manually add udevil to setuid-programs. + (lambda _ + (substitute* "src/udevil.c" + (("/usr/bin/udevil") "/run/setuid-programs/udevil")) + (substitute* "src/devmon" + (("`which udevil 2>/dev/null`") "/run/setuid-programs/udevil")) #t))))) (native-inputs `(("intltool" ,intltool) From c316b8569229fd03b571214493c3f12f754e3ac8 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Fri, 1 May 2020 16:22:54 +0200 Subject: [PATCH 19/69] doc: Replace section 'Early OOM service' by 'Linux Services'. * doc/guix.texi (Linux Services): Changed from 'subsubheading' to 'subsection'. (Early OOM Service, Kernel Module Loader Service): Moved under 'Linux Services'. Signed-off-by: Mathieu Othacehe --- doc/guix.texi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index bdae451875..4868cf479e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -25491,13 +25491,13 @@ Extra command line options for @code{guix-data-service-process-jobs}. @end deftp @node Linux Services -@subsubheading Linux Services +@subsection Linux Services @cindex oom @cindex out of memory killer @cindex earlyoom @cindex early out of memory daemon -@subsection Early OOM Service +@subsubheading 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 @@ -25557,7 +25557,7 @@ notifications. @cindex modprobe @cindex kernel module loader -@subsubsection Kernel Module Loader Service +@subsubheading Kernel Module Loader Service The kernel module loader service allows one to load loadable kernel modules at boot. This is especially useful for modules that don't From dc6eec77a55a69a4fb1947978a0e4afc6e8205c7 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Fri, 1 May 2020 16:22:55 +0200 Subject: [PATCH 20/69] doc: Move 'Dictionary Service' under 'Miscellaneous Services'. * doc/guix.texi (Dictionary Service): Renamed to singular and changed from 'subsubsection' to 'subheading'. Signed-off-by: Mathieu Othacehe --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4868cf479e..c571010bc8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -25733,7 +25733,7 @@ If true, this must be the name of a file to log messages to. @end table @end deftp -@subsection Dictionary Services +@subsubheading Dictionary Service @cindex dictionary The @code{(gnu services dict)} module provides the following service: From 5bd2d42e8e864e067e4b0e5c16812eb6edb5f74a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 16:42:53 +0200 Subject: [PATCH 21/69] gnu: scintilla: Update to 4.3.3. * gnu/packages/text-editors.scm (scintilla): Update to 4.3.3. --- gnu/packages/text-editors.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index f2f675d148..072760ee10 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -757,14 +757,14 @@ (define-public texmacs (define-public scintilla (package (name "scintilla") - (version "4.3.2") + (version "4.3.3") (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 "0d8ssl0d8r6bslbzd507l9c5g8mwn1zriak3fnf85936pdmkhq9h")))) + (base32 "0zh8c19r1zd4kr9jg2ws0n2n5ic2siz5zbns6cvylyfbpf69ghy2")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk") From ee75b46fb441bdce88cdd38fad390840207948d0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 May 2020 14:02:27 +0200 Subject: [PATCH 22/69] gnu: five-or-more: Update to 3.32.2. * gnu/packages/gnome.scm (five-or-more): Update to 3.32.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e6b1942450..2f581870bf 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3799,7 +3799,7 @@ (define-public libsecret (define-public five-or-more (package (name "five-or-more") - (version "3.32.1") + (version "3.32.2") (source (origin (method url-fetch) @@ -3807,7 +3807,7 @@ (define-public five-or-more (version-major+minor version) "/" "five-or-more-" version ".tar.xz")) (sha256 - (base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk")))) + (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t From 4b50aaade4ef34327dbfd4412ee36ee5cc23bc10 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 May 2020 14:02:43 +0200 Subject: [PATCH 23/69] gnu: crispy-doom: Update to 5.8.0. * gnu/packages/games.scm (crispy-doom): Update to 5.8.0. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 10b3a072b9..62fb167b70 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6191,7 +6191,7 @@ (define-public crispy-doom (package (inherit chocolate-doom) (name "crispy-doom") - (version "5.7.2") + (version "5.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -6199,7 +6199,7 @@ (define-public crispy-doom (commit (string-append "crispy-doom-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "002aqbgsksrgzqridwdlkrjincaxh0dkvwlrbb8d2f3kwk7lj4fq")))) + (base32 "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4")))) (native-inputs (append (package-native-inputs chocolate-doom) From 53b9cdd58eb1a098dce4fec0161d54f22f1c500a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 May 2020 14:18:52 +0200 Subject: [PATCH 24/69] gnu: teeworlds: Update to 0.7.5. * gnu/packages/games.scm (teeworlds): Update to 0.7.5. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 62fb167b70..7fed4dee6c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4865,7 +4865,7 @@ (define-public kiki (define-public teeworlds (package (name "teeworlds") - (version "0.7.4") + (version "0.7.5") (source (origin (method git-fetch) (uri (git-reference @@ -4874,7 +4874,7 @@ (define-public teeworlds (file-name (git-file-name name version)) (sha256 (base32 - "1lxdb1k2cdj2421vyz1z0ximzfnpkh2y4y84zpn2gqsa1nzwbryb")) + "169dl83q08zl4h813az8hjs4rs3dms9yjn6bnsld4fjcj0imvvc6")) (modules '((guix build utils) (ice-9 ftw) (ice-9 regex) From ebf6431b9b3957b68c77d510f73bd3853e6623c0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 May 2020 14:19:03 +0200 Subject: [PATCH 25/69] gnu: scummvm: Update to 2.1.2. * gnu/packages/emulators.scm (scummvm): Update to 2.1.2. --- gnu/packages/emulators.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 58d6c73ee2..85e2016e49 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1204,14 +1204,14 @@ (define-public retroarch (define-public scummvm (package (name "scummvm") - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) (uri (string-append "http://www.scummvm.org/frs/scummvm/" version "/scummvm-" version ".tar.xz")) (sha256 - (base32 "1a6waf1ybp91nwva8g650cljlfb1di4l0jv13vg6yfgkas9pclsp")))) + (base32 "1c4fz1nfg0nqnqx9iipayhzcsiqdmfxm2i95nw9dbhshhsdnrhf4")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;require "git" From eeec9973bca4ce79e848a30979223f920dbfc7d6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 May 2020 16:31:57 +0200 Subject: [PATCH 26/69] gnu: quazip: Update to 0.9. * gnu/packages/compression.scm (quazip): Update to 0.9. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 85f802a069..a1c5bbf8c2 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1947,7 +1947,7 @@ (define-public upx (define-public quazip (package (name "quazip") - (version "0.8.1") + (version "0.9") (source (origin (method git-fetch) (uri (git-reference @@ -1956,7 +1956,7 @@ (define-public quazip (file-name (git-file-name name version)) (sha256 (base32 - "1g473gnsbkvxpsv8lbsmhspn7jnq86b05zzgqh11r581v8ndvz5s")))) + "0psvf3d9akyyx3bckc9325nmbp97xiagf8la4vhca5xn2f430fbn")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no test From 7e5c7677056610fa45dde7415ccbf07525d00e79 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 May 2020 16:19:24 +0200 Subject: [PATCH 27/69] gnu: serd: Update to 0.30.4. * gnu/packages/rdf.scm (serd): Update to 0.30.4. --- gnu/packages/rdf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 089e31b252..df15593d5d 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -267,14 +267,14 @@ (define-public redland (define-public serd (package (name "serd") - (version "0.30.2") + (version "0.30.4") (source (origin (method url-fetch) (uri (string-append "https://download.drobilla.net/serd-" version ".tar.bz2")) (sha256 (base32 - "00kjjgs5a8r72khgpya14scvl3n58wqwl5927y14z03j25q04ccx")))) + "168rn3m32c59qbar120f83ibcnnd987ij9p053kybgl7cmm6358c")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target From 7dfc7c5398c16bdf27acf260c71f905d13bb3a9c Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Fri, 1 May 2020 12:45:03 -0400 Subject: [PATCH 28/69] gnu: xfe: Fix configuration and icons. * gnu/packages/disk.scm (xfe)[arguments]<#:make-flags>: Remove BASH_COMPLETION_DIR. [arguments]<#:phases>[patch-xferc-path]: Remove phase. [arguments]<#:phases>[patch-xfe-paths]: New phase. Signed-off-by: Danny Milosavljevic --- gnu/packages/disk.scm | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 2b9ba8e38d..f557c57749 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -936,8 +936,7 @@ (define-public xfe (method url-fetch) (uri (string-append "https://sourceforge.net/projects/xfe/files/xfe/" - version - "/xfe-" version ".tar.gz")) + version "/xfe-" version ".tar.gz")) (sha256 (base32 "1fl51k5jm2vrfc2g66agbikzirmp0yb0lqhmsssixfb4mky3hpzs")))) (build-system gnu-build-system) @@ -955,20 +954,32 @@ (define-public xfe (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-xferc-path + (add-after 'unpack 'patch-xfe-paths (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (xferc (string-append out "/share/xfe/xferc"))) + (let* + ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (xferc (string-append out "/share/xfe/xferc")) + (xfe-theme (string-append out "/share/xfe/icons/xfe-theme"))) + ;; Correct path for xfe registry. + (substitute* "src/foxhacks.cpp" + (("/etc:/usr/share:/usr/local/share") share)) + ;; Correct path for xfe configuration. (substitute* "src/XFileExplorer.cpp" - (("/usr/share/xfe/xferc") xferc)) - #t)))) - #:make-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "BASH_COMPLETION_DIR=" out - "/share/bash-completion/completions"))))) + (("/usr/share/xfe/xferc") xferc) + (("/usr/local/share/xfe/xferc") xferc) + (("/opt/local/share/xfe/xferc") xferc)) + ;; Correct path for xfe icons. + (substitute* "src/xfedefs.h" + (((string-append + "~/.config/xfe/icons/xfe-theme:" + "/usr/local/share/xfe/icons/xfe-theme:" + "/usr/share/xfe/icons/xfe-theme")) + xfe-theme)) + #t)))))) (synopsis "File Manager for X-Based Graphical Systems") (description"XFE (X File Explorer) is a file manager for X. It is based on the popular but discontinued, X Win Commander. It aims to be the file manager of choice for all light thinking Unix addicts!") (home-page "http://roland65.free.fr/xfe/") - (license license:gpl2+))) + (license license:gpl2+))) \ No newline at end of file From ee2649e1351a77f413971bcfc5dd2e7caec4c99e Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 22:12:22 +0200 Subject: [PATCH 29/69] gnu: emacs-emms: Update to 5.4. * gnu/packages/emacs-xyz.scm (emacs-emms): Update to 5.4. --- gnu/packages/emacs-xyz.scm | 53 +++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6c09610ce7..43d1893a6c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -1322,33 +1322,32 @@ (define-public emacs-eww-lnum (define-public emacs-emms (package (name "emacs-emms") - (version "5.3") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/emms/emms-" - version ".tar.gz")) - (sha256 - (base32 - "00hnv7jjgb2simgrf7gf2y1cyg2syk7kj1hkbac146hlgxk8ngj1")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "Makefile" - (("/usr/bin/install-info") - ;; No need to use 'install-info' since it would create a - ;; useless 'dir' file. - "true") - (("^INFODIR=.*") - ;; Install Info files to $out/share/info, not $out/info. - "INFODIR := $(PREFIX)/share/info\n") - (("/site-lisp/emms") - ;; Install directly in share/emacs/site-lisp, not in a - ;; sub-directory. - "/site-lisp") - (("^all: (.*)\n" _ rest) - ;; Build 'emms-print-metadata'. - (string-append "all: " rest " emms-print-metadata\n"))) - #t)))) + (version "5.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) + (sha256 + (base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "Makefile" + (("/usr/bin/install-info") + ;; No need to use 'install-info' since it would create a + ;; useless 'dir' file. + "true") + (("^INFODIR=.*") + ;; Install Info files to $out/share/info, not $out/info. + "INFODIR := $(PREFIX)/share/info\n") + (("/site-lisp/emms") + ;; Install directly in share/emacs/site-lisp, not in a + ;; sub-directory. + "/site-lisp") + (("^all: (.*)\n" _ rest) + ;; Build 'emms-print-metadata'. + (string-append "all: " rest " emms-print-metadata\n"))) + #t)))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) From 26e11cffb983604c813064343e41708b99072e4f Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 1 May 2020 22:19:43 +0200 Subject: [PATCH 30/69] gnu: xfe: Use a mirror:// URL. * gnu/packages/disk.scm (xfe)[source]: Use a mirror://sourceforge URL. --- gnu/packages/disk.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index f557c57749..484126a3ea 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -935,8 +935,8 @@ (define-public xfe (origin (method url-fetch) (uri - (string-append "https://sourceforge.net/projects/xfe/files/xfe/" - version "/xfe-" version ".tar.gz")) + (string-append "mirror://sourceforge/xfe/xfe/" version "/" + "xfe-" version ".tar.gz")) (sha256 (base32 "1fl51k5jm2vrfc2g66agbikzirmp0yb0lqhmsssixfb4mky3hpzs")))) (build-system gnu-build-system) @@ -982,4 +982,4 @@ (define-public xfe the popular but discontinued, X Win Commander. It aims to be the file manager of choice for all light thinking Unix addicts!") (home-page "http://roland65.free.fr/xfe/") - (license license:gpl2+))) \ No newline at end of file + (license license:gpl2+))) From 934f0b32cfacd0bc05e79e54ffbc3bc253a0eb2d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 1 May 2020 20:36:09 +0200 Subject: [PATCH 31/69] gnu: icu4c: Update source URI. The previous URL started serving a HTML page, which ultimately refers to . Reported by butterypancake on #guix. * gnu/packages/icu4c.scm (icu4c)[source](uri): Change to GitHub. --- gnu/packages/icu4c.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index beeb2d7ff4..2014813466 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -61,8 +61,8 @@ (define-public icu4c (source (origin (method url-fetch) (uri (string-append - "http://download.icu-project.org/files/icu4c/" - version + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) "/icu4c-" (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) "-src.tgz")) From ecd56cd1b223733c3ec04043fec245acf4c1cdb8 Mon Sep 17 00:00:00 2001 From: Jonathan Frederickson Date: Thu, 30 Apr 2020 20:58:01 -0400 Subject: [PATCH 32/69] gnu: Add ladspa-bs2b * gnu/packages/audio.scm (ladspa-bs2b): New variable. Signed-off-by: Leo Famulari --- gnu/packages/audio.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e2e276723b..f518fb7f21 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2019 Nicolas Goaziou ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 Guillaume Le Vaillant +;;; Copyright © 2020 Jonathan Frederickson ;;; ;;; This file is part of GNU Guix. ;;; @@ -1855,6 +1856,31 @@ (define-public libbs2b essential distortions.") (license license:expat))) +(define-public ladspa-bs2b + (package + (name "ladspa-bs2b") + (version "0.9.1") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/bs2b/plugins/LADSPA%20plugin/" + version "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2")))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("ladspa" ,ladspa) + ("libbs2b" ,libbs2b))) + (home-page "https://sourceforge.net/projects/bs2b/") + (synopsis "Bauer stereophonic-to-binaural DSP - LADSPA plugin") + (description "The Bauer stereophonic-to-binaural DSP (bs2b) library and +plugins is designed to improve headphone listening of stereo audio records. +Recommended for headphone prolonged listening to disable superstereo fatigue +without essential distortions. This package contains a LADSPA plugin for use +with applications that support them (e.g. PulseAudio).") + (license license:gpl2+))) + (define-public liblo (package (name "liblo") From 9dbcc8d0d52c6ed69cdeed7d7307d0d134febac1 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 2 May 2020 02:19:16 +0200 Subject: [PATCH 33/69] gnu: emacs-parsebib: Update to 2.3.3. * gnu/packages/emacs-xyz.scm (emacs-parsebib): Update to 2.3.3. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 43d1893a6c..657abd036a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13255,7 +13255,7 @@ (define-public emacs-org-auto-expand (define-public emacs-parsebib (package (name "emacs-parsebib") - (version "2.3.1") + (version "2.3.3") (source (origin (method git-fetch) @@ -13264,7 +13264,7 @@ (define-public emacs-parsebib (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh")))) + (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p")))) (build-system emacs-build-system) (home-page "https://github.com/joostkremers/parsebib") (synopsis "Library for parsing bib files") From 2e775ecc230bb73d1cde08ae0a6d60b6f54e6710 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 2 May 2020 02:19:59 +0200 Subject: [PATCH 34/69] gnu: emacs-ebib: Update to 2.22.1. * gnu/packages/emacs-xyz.scm (emacs-ebib): Update to 2.22.1. --- gnu/packages/emacs-xyz.scm | 50 ++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 657abd036a..313fe01770 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13273,36 +13273,34 @@ (define-public emacs-parsebib (license license:gpl3+))) (define-public emacs-ebib - (let ((commit "99bd909f47f71e024ce324981109b73a50e82fba")) - (package - (name "emacs-ebib") - (version "2.21") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joostkremers/ebib.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "131vgl4d1j9s4055x88409w19q52x2m0x08b961hylp7yb5ljzgh")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-parsebib" ,emacs-parsebib))) - (home-page "https://joostkremers.github.io/ebib/") - (synopsis "BibTeX database manager for Emacs") - (description - "Ebib is a BibTeX database manager that runs in GNU Emacs. + (package + (name "emacs-ebib") + (version "2.22.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joostkremers/ebib.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-parsebib" ,emacs-parsebib))) + (home-page "https://joostkremers.github.io/ebib/") + (synopsis "BibTeX database manager for Emacs") + (description + "Ebib is a BibTeX database manager that runs in GNU Emacs. With Ebib you can create, sort and manage your .bib database files, all within Emacs. It supports searching, multi-line field values and @@String and @@Preamble definitions. Ebib integrates with (La)TeX mode, Org mode and other Emacs editing modes.") - ;; The Ebib source files are released under a BSD license with - ;; the exception of org-ebib.el, which is released under the GNU - ;; GPL. - (license (list license:bsd-3 - license:gpl3+))))) + ;; The Ebib source files are released under a BSD license with + ;; the exception of org-ebib.el, which is released under the GNU + ;; GPL. + (license (list license:bsd-3 + license:gpl3+)))) (define-public emacs-biblio (package From b8642c5500ec311347dff865dc82e6daae40812a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 2 May 2020 02:26:21 +0200 Subject: [PATCH 35/69] gnu: emacs-ebib: Add Texinfo markup in description. * gnu/packages/emacs-xyz.scm (emacs-ebib)[description]: Add Texinfo markup. --- gnu/packages/emacs-xyz.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 313fe01770..c740c458ac 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13292,10 +13292,10 @@ (define-public emacs-ebib (synopsis "BibTeX database manager for Emacs") (description "Ebib is a BibTeX database manager that runs in GNU Emacs. -With Ebib you can create, sort and manage your .bib database files, -all within Emacs. It supports searching, multi-line field values and -@@String and @@Preamble definitions. Ebib integrates with (La)TeX -mode, Org mode and other Emacs editing modes.") +With Ebib you can create, sort and manage your @file{.bib} database files, all +within Emacs. It supports searching, multi-line field values and +@samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates +with (La)TeX mode, Org mode and other Emacs editing modes.") ;; The Ebib source files are released under a BSD license with ;; the exception of org-ebib.el, which is released under the GNU ;; GPL. From 7e2e37edc26d7b369a041d4e8b3e187638078e36 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 2 May 2020 02:27:44 +0200 Subject: [PATCH 36/69] gnu: emacs-parsebib: Add Texinfo markup. * gnu/packages/emacs-xyz.scm (emacs-parsebib) [synopsis]: [description]: Add Texinfo markup. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index c740c458ac..24cd01a513 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13267,9 +13267,9 @@ (define-public emacs-parsebib (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p")))) (build-system emacs-build-system) (home-page "https://github.com/joostkremers/parsebib") - (synopsis "Library for parsing bib files") + (synopsis "Library for parsing @file{.bib} files") (description - "This package provides an Emacs library for parsing bib files.") + "This package provides an Emacs library for parsing @file{.bib} files.") (license license:gpl3+))) (define-public emacs-ebib From f2531a254f7133b343034aa2c66fe14e518c45b8 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Fri, 1 May 2020 18:40:02 -0400 Subject: [PATCH 37/69] gnu: git-annex: Update to 8.20200501. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell-apps.scm (git-annex): Update to 8.20200501. Signed-off-by: 宋文武 --- gnu/packages/haskell-apps.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index d12d113945..4785ebaca3 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -341,14 +341,14 @@ (define-public ghcid (define-public git-annex (package (name "git-annex") - (version "8.20200330") + (version "8.20200501") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "0xy0ld7kr4cfdl4g4yzvrzl5r60dcj33cxm28a4qz6nqm2yhd4sv")))) + (base32 "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl")))) (build-system haskell-build-system) (arguments `(#:configure-flags From 5a0b78e62bc3122998990cea5ee17bdb2789aada Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Fri, 10 Apr 2020 17:00:47 +0100 Subject: [PATCH 38/69] services: dnsmasq: Support the --address flag. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce a new `addresses' field that translates to passing `--address=' multiple times to dnsmasq. * gnu/services/dns.scm (): Add an addresses field. (dnsmasq-shepherd-service): Match the addresses field and translate it to multiple '--address=' flags. * doc/guix.texi (DNS Services): Document it. Signed-off-by: 宋文武 --- doc/guix.texi | 20 ++++++++++++++++++++ gnu/services/dns.scm | 7 ++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index c571010bc8..d5d8662937 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -78,6 +78,7 @@ Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* +Copyright @copyright{} 2020 Pierre Langlois@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -21874,6 +21875,25 @@ When true, don't read @var{resolv-file}. @item @code{servers} (default: @code{'()}) Specify IP address of upstream servers directly. +@item @code{addresses} (default: @code{'()}) +For each entry, specify an IP address to return for any host in the +given domains. Queries in the domains are never forwarded and always +replied to with the specified IP address. + +This is useful for redirecting hosts locally, for example: + +@lisp +(service dnsmasq-service-type + (dnsmasq-configuration + (addresses + '(; Redirect to a local web-server. + "/example.org/127.0.0.1" + ; Redirect subdomain to a specific IP. + "/subdomain.example.org/192.168.1.42")))) +@end lisp + +Note that rules in @file{/etc/hosts} take precedence over this. + @item @code{cache-size} (default: @code{150}) Set the size of dnsmasq's cache. Setting the cache size to zero disables caching. diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index a07946d085..478c837d13 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Oleg Pykhalov +;;; Copyright © 2020 Pierre Langlois ;;; ;;; This file is part of GNU Guix. ;;; @@ -748,6 +749,8 @@ (define-record-type* (default #f)) ;boolean (servers dnsmasq-configuration-servers (default '())) ;list of string + (addresses dnsmasq-configuration-addresses + (default '())) ;list of string (cache-size dnsmasq-configuration-cache-size (default 150)) ;integer (negative-cache? dnsmasq-configuration-negative-cache? @@ -759,7 +762,7 @@ (define dnsmasq-shepherd-service no-hosts? port local-service? listen-addresses resolv-file no-resolv? servers - cache-size negative-cache?) + addresses cache-size negative-cache?) (shepherd-service (provision '(dnsmasq)) (requirement '(networking)) @@ -783,6 +786,8 @@ (define dnsmasq-shepherd-service '()) #$@(map (cut format #f "--server=~a" <>) servers) + #$@(map (cut format #f "--address=~a" <>) + addresses) #$(format #f "--cache-size=~a" cache-size) #$@(if negative-cache? '() From 23b37c3d40d497cc6f07437ab26ab10e60fb6e09 Mon Sep 17 00:00:00 2001 From: raingloom Date: Fri, 3 Apr 2020 02:32:23 +0200 Subject: [PATCH 39/69] file-systems: Add support for F2FS. * gnu/build/file-systems.scm (%f2fs-endianness): New syntax. (f2fs-superblock?, read-f2fs-superblock, f2fs-superblock-uuid) (f2fs-superblock-volume-name, check-f2fs-file-system): New procedures. (%partition-label-readers, %partition-uuid-readers, check-file-system): Register them. Signed-off-by: Danny Milosavljevic --- gnu/build/file-systems.scm | 61 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 902563b219..bbea4c766e 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -336,6 +336,58 @@ (define (check-jfs-file-system device) (2 'reboot-required) (_ 'fatal-error))) + +;;; +;;; F2FS (Flash-Friendly File System) +;;; + +;;; https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/tree/include/linux/f2fs_fs.h +;;; (but using xxd proved to be simpler) + +(define-syntax %f2fs-endianness + ;; Endianness of F2FS file systems + (identifier-syntax (endianness little))) + +;; F2FS actually stores two adjacent copies of the superblock. +;; should we read both? +(define (f2fs-superblock? sblock) + "Return #t when SBLOCK is an F2FS superblock." + (let ((magic (bytevector-u32-ref sblock 0 %f2fs-endianness))) + (= magic #xF2F52010))) + +(define (read-f2fs-superblock device) + "Return the raw contents of DEVICE's F2FS superblock as a bytevector, or #f +if DEVICE does not contain an F2FS file system." + (read-superblock device + ;; offset of magic in first copy + #x400 + ;; difference between magic of second + ;; and first copies + (- #x1400 #x400) + f2fs-superblock?)) + +(define (f2fs-superblock-uuid sblock) + "Return the UUID of F2FS superblock SBLOCK as a 16-byte bytevector." + (sub-bytevector sblock + (- (+ #x460 12) + ;; subtract superblock offset + #x400) + 16)) + +(define (f2fs-superblock-volume-name sblock) + "Return the volume name of SBLOCK as a string of at most 512 characters, or +#f if SBLOCK has no volume name." + (utf16->string (sub-bytevector sblock (- (+ #x470 12) #x400) 512) %f2fs-endianness)) + +(define (check-f2fs-file-system device) + "Return the health of a F2FS file system on DEVICE." + (match (status:exit-val + (system* "fsck.f2fs" "-p" device)) + ;; 0 and -1 are the only two possibilities + ;; (according to the manpage) + (0 'pass) + (_ 'fatal-error))) + ;;; ;;; LUKS encrypted devices. @@ -472,7 +524,9 @@ (define %partition-label-readers (partition-field-reader read-fat16-superblock fat16-superblock-volume-name) (partition-field-reader read-jfs-superblock - jfs-superblock-volume-name))) + jfs-superblock-volume-name) + (partition-field-reader read-f2fs-superblock + f2fs-superblock-volume-name))) (define %partition-uuid-readers (list (partition-field-reader read-iso9660-superblock @@ -486,7 +540,9 @@ (define %partition-uuid-readers (partition-field-reader read-fat16-superblock fat16-superblock-uuid) (partition-field-reader read-jfs-superblock - jfs-superblock-uuid))) + jfs-superblock-uuid) + (partition-field-reader read-f2fs-superblock + f2fs-superblock-uuid))) (define read-partition-label (cut read-partition-field <> %partition-label-readers)) @@ -582,6 +638,7 @@ (define check-procedure ((string-prefix? "btrfs" type) check-btrfs-file-system) ((string-suffix? "fat" type) check-fat-file-system) ((string-prefix? "jfs" type) check-jfs-file-system) + ((string-prefix? "f2fs" type) check-f2fs-file-system) ((string-prefix? "nfs" type) (const 'pass)) (else #f))) From 27efeef3068bfa21011ea509e21efcbe8c353b5f Mon Sep 17 00:00:00 2001 From: raingloom Date: Fri, 3 Apr 2020 07:00:41 +0200 Subject: [PATCH 40/69] linux-initrd: Add initial support for F2FS. * gnu/system/linux-initrd.scm (file-system-type-modules): Add f2fs module. Signed-off-by: Danny Milosavljevic --- gnu/system/linux-initrd.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index dcc9b6b937..44ee4f10aa 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -275,6 +275,7 @@ (define file-system-type-modules ("btrfs" => '("btrfs")) ("iso9660" => '("isofs")) ("jfs" => '("jfs")) + ("f2fs" => '("f2fs" "crc32_generic")) (else '()))) (define (file-system-modules file-systems) From cc8f31bafb37ac750690c9415f82f650e3832060 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 2 May 2020 11:02:36 +0200 Subject: [PATCH 41/69] gnu: emacs-exwm-edit: Update to 20200126. * gnu/packages/emacs-xyz.scm (emacs-exwm-edit): Update to 20200126. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 24cd01a513..d9a3c2acc3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -19520,9 +19520,9 @@ (define-public emacs-all-the-icons-dired (license license:gpl3+)))) (define-public emacs-exwm-edit - (let ((commit "961c0f3ea45766b888c73d7353da13d329538034") + (let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f") (version "0.0.1") - (revision "1")) + (revision "2")) (package (name "emacs-exwm-edit") (version (git-version version revision commit)) @@ -19535,7 +19535,7 @@ (define-public emacs-exwm-edit (file-name (git-file-name name version)) (sha256 (base32 - "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw")))) + "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-exwm" ,emacs-exwm))) From 807986a55fc2849d6986efb79f9a015cf4132e09 Mon Sep 17 00:00:00 2001 From: raingloom Date: Sat, 2 May 2020 11:38:48 +0200 Subject: [PATCH 42/69] gnu: Add f2fs-tools-static. * gnu/packages/file-systems.scm (f2fs-tools/static): New public variable. Co-authored-by: Danny Milosavljevic --- gnu/packages/linux.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 70d2163fee..dd945aad51 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4602,6 +4602,37 @@ (define-public f2fs-tools (inputs `(("libuuid" ,util-linux))))) +(define-public f2fs-tools/static + (static-package + (package + (inherit f2fs-tools) + (name "f2fs-tools-static") + (arguments + `(#:configure-flags + (let ((libuuid-static (assoc-ref %build-inputs "libuuid:static")) + (libuuid (assoc-ref %build-inputs "libuuid"))) + (list + (string-append "libuuid_CFLAGS=-I" libuuid "/include") + (string-append "libuuid_LIBS=-L" libuuid-static "/lib -luuid") + (string-append "libblkid_CFLAGS=-I" libuuid "/include") + (string-append "libblkid_LIBS=-L" libuuid-static "/lib -lblkid"))) + #:disallowed-references (,util-linux) + #:phases + (modify-phases %standard-phases ; TODO: f2fs phases. + (add-after 'unpack 'make-static + (lambda _ + (define (append-to-file name body) + (let ((file (open-file name "a"))) + (display body file) + (close-port file))) + (append-to-file "mkfs/Makefile.am" "\nmkfs_f2fs_LDFLAGS = -all-static\n") + (append-to-file "fsck/Makefile.am" "\nfsck_f2fs_LDFLAGS = -all-static\n") + (append-to-file "tools/Makefile.am" "\nf2fscrypt_LDFLAGS = -all-static -luuid\n") + #t))))) + (inputs + `(("libuuid:static" ,util-linux "static") + ("libuuid" ,util-linux)))))) ; for include files + (define-public freefall (package (name "freefall") From a363978cb9755e950add3fa36e319ec2389a529a Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:39 +0200 Subject: [PATCH 43/69] gnu: Add libnatpmp. * gnu/packages/networking.scm (libnatpmp): New variable. Signed-off-by: Mathieu Othacehe --- gnu/packages/networking.scm | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 94b521584f..98bfdbc3ab 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -33,7 +33,7 @@ ;;; Copyright © 2019 Brice Waegeneire ;;; Copyright © 2019 Tonton ;;; Copyright © 2019, 2020 Alex Griffin -;;; Copyright © 2019 Jan Wielkiewicz +;;; Copyright © 2019, 2020 Jan Wielkiewicz ;;; Copyright © 2019 Daniel Schaefer ;;; Copyright © 2019 Diego N. Barbato ;;; Copyright © 2020 Vincent Legoll @@ -426,6 +426,41 @@ (define-public cppzmq files contain direct mappings of the abstractions provided by the ØMQ C API.") (license license:expat))) +(define-public libnatpmp + (package + (name "libnatpmp") + (version "20150609") + (source (origin + (method url-fetch) + (uri (string-append + "http://miniupnp.free.fr/files/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check)) ; no tests + #:make-flags + (let* ((target ,(%current-target-system)) + (gcc (if target + (string-append target "-gcc") + "gcc"))) + (list + (string-append "CC=" gcc) + (string-append "INSTALLPREFIX=" (assoc-ref %outputs "out")) + (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))) + (home-page "http://miniupnp.free.fr/libnatpmp.html") + (synopsis "C library implementing NAT-PMP") + (description + "@code{libnatpmp} is a portable and asynchronous implementation of +the Network Address Translation - Port Mapping Protocol (NAT-PMP) +written in the C programming language.") + (license license:bsd-3))) + (define-public librdkafka (package (name "librdkafka") From 1d2366202ad115cc7c48ac15c83ef994a2d8304c Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:41 +0200 Subject: [PATCH 44/69] gnu: libupnp: Update to 1.8.6. * gnu/packages/upnp.scm (libupnp): Update to 1.8.6. [source]: Use git-fetch on the new official repository. [native-inputs]: Add autoconf, automake, libtool and pkg-config. Signed-off-by: Mathieu Othacehe --- gnu/packages/upnp.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 8f3c887a68..768df4a03e 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017, 2018, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2018 Theodoros Foradis ;;; Copyright © 2019 Jens Mølgaard +;;; Copyright © 2020 Jan Wielkiewicz ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ (define-module (gnu packages upnp) #:use-module (gnu packages photo) #:use-module (gnu packages image) #:use-module (gnu packages mp3) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages xiph) #:use-module (gnu packages sqlite) #:use-module (gnu packages python) @@ -92,15 +94,21 @@ (define-public miniupnpc (define-public libupnp (package (name "libupnp") - (version "1.6.25") + (version "1.8.6") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20" - version "/" name "-" version ".tar.bz2")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/pupnp/pupnp.git") + (commit (string-append "release-" version)))) (sha256 (base32 - "0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5")))) + "1jlb6qh47513h2simy0zxia5q61w1c31mnwmjqpr2nf832lmnpk4")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (build-system gnu-build-system) (arguments ;; The tests require a network device capable of multicasting which is From 798335cfbce63362092e1dc53f940021b1a1fc4a Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:44 +0200 Subject: [PATCH 45/69] gnu: restinio: Update to 0.6.1.1. * gnu/packages/networking.scm (restinio): Update to 0.6.1.1. Signed-off-by: Mathieu Othacehe --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 98bfdbc3ab..9275c6f98b 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2668,7 +2668,7 @@ (define-public restbed (define-public restinio (package (name "restinio") - (version "0.6.0.1") + (version "0.6.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -2677,7 +2677,7 @@ (define-public restinio (file-name (git-file-name name version)) (sha256 (base32 - "1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8")))) + "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5")))) (build-system cmake-build-system) (inputs ; TODO: Need to force-keep references on some inputs, e.g. boost. `(("zlib" ,zlib) From 218ec70aee2476b3381d18f7394ed1c37c0f7a8c Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:50 +0200 Subject: [PATCH 46/69] gnu: opendht: Update to 2.0.0. * gnu/packages/networking.scm (opendht): Update to 2.0.0. Signed-off-by: Mathieu Othacehe --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9275c6f98b..d7720724cc 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2710,7 +2710,7 @@ (define-public restinio (define-public opendht (package (name "opendht") - (version "2.0.0beta2") + (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -2719,7 +2719,7 @@ (define-public opendht (file-name (git-file-name name version)) (sha256 (base32 - "02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5")))) + "1q1fwk8wwk9r6bp0indpr60ql668lsk16ykslacyhrh7kg97kvhr")))) ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug? (build-system cmake-build-system) (inputs From 15c6e4260b60135025029a5e2695206e798c9dd6 Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:36 +0200 Subject: [PATCH 47/69] gnu: telephony: Move Jami and its dependencies to jami.scm. Jami is a massive package and its developers modify many libraries. Keeping them in a single file makes maintenance easier. * gnu/packages/telephony.scm (%jami-version, jami-source, pjproject-jami, libring, libringclient, jami, jami-client-gnome): Move to ... * gnu/packages/jami.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Mathieu Othacehe --- gnu/local.mk | 2 + gnu/packages/jami.scm | 352 +++++++++++++++++++++++++++++++++++++ gnu/packages/telephony.scm | 291 ------------------------------ 3 files changed, 354 insertions(+), 291 deletions(-) create mode 100644 gnu/packages/jami.scm diff --git a/gnu/local.mk b/gnu/local.mk index 26d26ee215..812253b192 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -33,6 +33,7 @@ # Copyright © 2020 Michael Rohleder # Copyright © 2020 Felix Gruber # Copyright © 2020 Ryan Prior +# Copyright © 2020 Jan Wielkiewicz # # This file is part of GNU Guix. # @@ -278,6 +279,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/ipfs.scm \ %D%/packages/irc.scm \ %D%/packages/iso-codes.scm \ + %D%/packages/jami.scm \ %D%/packages/java.scm \ %D%/packages/java-compression.scm \ %D%/packages/java-graphics.scm \ diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm new file mode 100644 index 0000000000..050f8cf9f6 --- /dev/null +++ b/gnu/packages/jami.scm @@ -0,0 +1,352 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Pierre Neidhardt +;;; Copyright © 2020 Vincent Legoll +;;; Copyright © 2019, 2020 Jan Wielkiewicz +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages jami) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages aidc) + #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) + #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages libcanberra) + #:use-module (gnu packages linux) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages networking) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages serialization) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages telephony) + #:use-module (gnu packages tls) + #:use-module (gnu packages upnp) + #:use-module (gnu packages video) + #:use-module (gnu packages webkit) + #:use-module (gnu packages xiph) + #:use-module (gnu packages xorg) + #:use-module (gnu packages) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define %jami-version "20191101.3.67671e7") + +(define* (jami-source #:key without-daemon) + (origin + (method url-fetch) + (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_" + %jami-version + ".tar.gz")) + (modules '((guix build utils))) + (snippet + (if without-daemon + '(begin + (delete-file-recursively "daemon/contrib")) + #f)) + (sha256 + (base32 + "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0")))) + +(define-public pjproject-jami + (package + (inherit pjproject) + (name "pjproject-jami") + (native-inputs + `(("savoir-faire-linux-patches" ,(jami-source)) + ,@(package-native-inputs pjproject))) + (arguments + `(#:tests? #f + ;; See ring-project/daemon/contrib/src/pjproject/rules.mak. + #:configure-flags + (list "--disable-oss" + "--disable-sound" + "--disable-video" + "--enable-ext-sound" + "--disable-speex-aec" + "--disable-g711-codec" + "--disable-l16-codec" + "--disable-gsm-codec" + "--disable-g722-codec" + "--disable-g7221-codec" + "--disable-speex-codec" + "--disable-ilbc-codec" + "--disable-opencore-amr" + "--disable-silk" + "--disable-sdl" + "--disable-ffmpeg" + "--disable-v4l2" + "--disable-openh264" + "--disable-resample" + "--disable-libwebrtc" + "--with-gnutls" + "--with-external-srtp" + ;; We need -fPIC or else we get the following error when linking + ;; against pjproject-jami: + ;; relocation R_X86_64_32S against `.rodata' can not be used when + ;; making a shared object; + "CFLAGS=-fPIC" + "CXXFLAGS=-fPIC") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #t)) + (add-after 'unpack 'apply-patches + (lambda* (#:key inputs #:allow-other-keys) + (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches") + ;; Comes from + ;; "ring-project/daemon/contrib/src/pjproject/rules.mak". + ;; WARNING: These amount for huge changes in pjproject. + (savoir-faire-linux-patches + '("fix_turn_alloc_failure" + "rfc2466" + "ipv6" + "multiple_listeners" + "pj_ice_sess" + "fix_turn_fallback" + "fix_ioqueue_ipv6_sendto" + "add_dtls_transport" + "rfc6544" + "ice_config" + "sip_config" + "fix_first_packet_turn_tcp" + "fix_ebusy_turn" + "ignore_ipv6_on_transport_check" + "fix_turn_connection_failure" + ;; "uwp_vs" ; for windows + "disable_local_resolution"))) + (mkdir-p savoir-faire-linux-patches-directory) + (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches") + "-C" savoir-faire-linux-patches-directory + "--strip-components=5" + "ring-project/daemon/contrib/src/pjproject") + (for-each + (lambda (file) + (invoke "patch" "--force" "-p1" "-i" + (string-append savoir-faire-linux-patches-directory "/" + file ".patch"))) + savoir-faire-linux-patches)) + #t)) + ;; TODO: We could use substitute-keyword-arguments instead of + ;; repeating the phases from pjproject, but somehow it does + ;; not work. + (add-before 'build 'build-dep + (lambda _ (invoke "make" "dep"))) + (add-before 'patch-source-shebangs 'autoconf + (lambda _ + (invoke "autoconf" "-v" "-f" "-i" "-o" + "aconfigure" "aconfigure.ac"))) + (add-before 'autoconf 'disable-some-tests + ;; Three of the six test programs fail due to missing network + ;; access. + (lambda _ + (substitute* "Makefile" + (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test") + "selftest: pjlib-test pjlib-util-test pjmedia-test")) + #t))))))) + +(define-public libring + (package + (name "libring") + (version %jami-version) + (source (jami-source #:without-daemon #t)) + (build-system gnu-build-system) + (inputs + ;; Missing (optional?) dep: libnatpmp. + `(("alsa-lib" ,alsa-lib) + ("boost" ,boost) + ("dbus-c++" ,dbus-c++) + ("eudev" ,eudev) + ("ffmpeg" ,ffmpeg) + ("flac" ,flac) + ("gmp" ,gmp) + ("gsm" ,gsm) + ("jack" ,jack-1) + ("jsoncpp" ,jsoncpp) + ("libogg" ,libogg) + ("libva" ,libva) + ("opendht" ,opendht) + ("opus" ,opus) + ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) + ("libsamplerate" ,libsamplerate) + ("libsndfile" ,libsndfile) + ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("libupnp" ,libupnp) + ("libvorbis" ,libvorbis) + ("libx264" ,libx264) + ("libvdpau" ,libvdpau) + ("yaml-cpp" ,yaml-cpp) + ("zlib" ,zlib) + ("openssl" ,openssl) + ("libsecp256k1" ,libsecp256k1) + ("python" ,python) + ("python-wrapper" ,python-wrapper) + ("restinio" ,restinio) + ("libx11" ,libx11) + ("asio" ,asio) + ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version. + ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24. + ("pjproject" ,pjproject-jami))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("which" ,which) + ("cppunit" ,cppunit) + ("perl" ,perl))) ; Needed for documentation. + (arguments + `(#:tests? #f ; The tests fail to compile due to missing headers. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "daemon") + #t)) + (add-before 'build 'add-lib-dir + (lambda _ + (mkdir-p "src/lib") + #t))))) + (synopsis "Distributed multimedia communications platform") + (description "Jami (formerly GNU Ring) is a secure and distributed voice, +video and chat communication platform that requires no centralized server and +leaves the power of privacy in the hands of the user. It supports the SIP and +IAX protocols, as well as decentralized calling using P2P-DHT. + +This package provides a library and daemon implementing the Jami core +functionality.") + (home-page "https://jami.net/") + (license license:gpl3+))) + +(define-public libringclient + (package + (inherit libring) + (name "libringclient") + (build-system cmake-build-system) + (propagated-inputs + `(("libring" ,libring) ; For 'dring'. + ("qtbase" ,qtbase) ; Qt is included in several installed headers. + ("qttools" ,qttools))) + (arguments + `(#:tests? #f ; There is no testsuite. + #:configure-flags + (list (string-append "-DRING_BUILD_DIR=" + (assoc-ref %build-inputs "libring") "/include")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "lrc") + #t)) + (add-before 'configure 'fix-dbus-interfaces-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix) + (string-append (assoc-ref inputs "libring") + dbus-interfaces-path-suffix)))))))) + (synopsis "Distributed multimedia communications platform") + (description "Jami (formerly GNU Ring) is a secure and distributed voice, +video and chat communication platform that requires no centralized server and +leaves the power of privacy in the hands of the user. It supports the SIP and +IAX protocols, as well as decentralized calling using P2P-DHT. + +This package provides a library common to all Jami clients.") + (home-page "https://jami.net") + (license license:gpl3+))) + +(define-public jami + (package + (inherit libring) + (name "jami") + (build-system cmake-build-system) + (inputs + `(("libringclient" ,libringclient) + ("gtk+" ,gtk+) + ("qrencode" ,qrencode) + ("libnotify" ,libnotify) + ("clutter" ,clutter) + ("clutter-gtk" ,clutter-gtk) + ("gettext" ,gnu-gettext) + ("libcanberra" ,libcanberra) + ("webkitgtk" ,webkitgtk) + ;; TODO: We must wrap ring-client-gnome to force using the + ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it + ;; fails with: + ;; + ;; /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so: + ;; undefined symbol: sqlite3_column_table_name16 + ;; + ;; qtbase is built against sqlite-with-column-metadata but somehow + ;; jami-client-gnome ends up with both `sqlite' and + ;; `sqlite-with-column-metadata' as inputs and it seems that + ;; libqsqlite.so gets confused. + ("sqlite" ,sqlite-with-column-metadata))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin") + ("doxygen" ,doxygen))) + (propagated-inputs + `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus. + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("evolution-data-server" ,evolution-data-server))) + (arguments + `(#:tests? #f ; There is no testsuite. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "client-gnome") + #t)) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (path (string-append (assoc-ref inputs "sqlite") "/lib"))) + (wrap-program (string-append out "/bin/jami-gnome") + `("LD_LIBRARY_PATH" ":" prefix (,path)))) + #t))))) + (synopsis "Distributed, privacy-respecting communication program") + (description "Jami (formerly GNU Ring) is a secure and distributed voice, +video and chat communication platform that requires no centralized server and +leaves the power of privacy in the hands of the user. It supports the SIP and +IAX protocols, as well as decentralized calling using P2P-DHT. + +This package provides the Jami client for the GNOME desktop.") + (home-page "https://jami.net") + (license license:gpl3+))) + +(define-public jami-client-gnome + (deprecated-package "jami-client-gnome" jami)) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 7b20954120..747b0d75a1 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -734,297 +734,6 @@ (define-public pjproject Initiation Protocol (SIP) and a multimedia framework.") (license license:gpl2+))) -(define %jami-version "20191101.3.67671e7") - -(define* (jami-source #:key without-daemon) - (origin - (method url-fetch) - (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_" - %jami-version - ".tar.gz")) - (modules '((guix build utils))) - (snippet - (if without-daemon - '(begin - (delete-file-recursively "daemon/contrib")) - #f)) - (sha256 - (base32 - "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0")))) - -(define-public pjproject-jami - (package - (inherit pjproject) - (name "pjproject-jami") - (native-inputs - `(("savoir-faire-linux-patches" ,(jami-source)) - ,@(package-native-inputs pjproject))) - (arguments - `(#:tests? #f - ;; See ring-project/daemon/contrib/src/pjproject/rules.mak. - #:configure-flags - (list "--disable-oss" - "--disable-sound" - "--disable-video" - "--enable-ext-sound" - "--disable-speex-aec" - "--disable-g711-codec" - "--disable-l16-codec" - "--disable-gsm-codec" - "--disable-g722-codec" - "--disable-g7221-codec" - "--disable-speex-codec" - "--disable-ilbc-codec" - "--disable-opencore-amr" - "--disable-silk" - "--disable-sdl" - "--disable-ffmpeg" - "--disable-v4l2" - "--disable-openh264" - "--disable-resample" - "--disable-libwebrtc" - "--with-gnutls" - "--with-external-srtp" - ;; We need -fPIC or else we get the following error when linking - ;; against pjproject-jami: - ;; relocation R_X86_64_32S against `.rodata' can not be used when - ;; making a shared object; - "CFLAGS=-fPIC" - "CXXFLAGS=-fPIC") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) - (add-after 'unpack 'apply-patches - (lambda* (#:key inputs #:allow-other-keys) - (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches") - ;; Comes from - ;; "ring-project/daemon/contrib/src/pjproject/rules.mak". - ;; WARNING: These amount for huge changes in pjproject. - (savoir-faire-linux-patches - '("fix_turn_alloc_failure" - "rfc2466" - "ipv6" - "multiple_listeners" - "pj_ice_sess" - "fix_turn_fallback" - "fix_ioqueue_ipv6_sendto" - "add_dtls_transport" - "rfc6544" - "ice_config" - "sip_config" - "fix_first_packet_turn_tcp" - "fix_ebusy_turn" - "ignore_ipv6_on_transport_check" - "fix_turn_connection_failure" - ;; "uwp_vs" ; for windows - "disable_local_resolution"))) - (mkdir-p savoir-faire-linux-patches-directory) - (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches") - "-C" savoir-faire-linux-patches-directory - "--strip-components=5" - "ring-project/daemon/contrib/src/pjproject") - (for-each - (lambda (file) - (invoke "patch" "--force" "-p1" "-i" - (string-append savoir-faire-linux-patches-directory "/" - file ".patch"))) - savoir-faire-linux-patches)) - #t)) - ;; TODO: We could use substitute-keyword-arguments instead of - ;; repeating the phases from pjproject, but somehow it does - ;; not work. - (add-before 'build 'build-dep - (lambda _ (invoke "make" "dep"))) - (add-before 'patch-source-shebangs 'autoconf - (lambda _ - (invoke "autoconf" "-v" "-f" "-i" "-o" - "aconfigure" "aconfigure.ac"))) - (add-before 'autoconf 'disable-some-tests - ;; Three of the six test programs fail due to missing network - ;; access. - (lambda _ - (substitute* "Makefile" - (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test") - "selftest: pjlib-test pjlib-util-test pjmedia-test")) - #t))))))) - -(define-public libring - (package - (name "libring") - (version %jami-version) - (source (jami-source #:without-daemon #t)) - (build-system gnu-build-system) - (inputs - ;; Missing (optional?) dep: libnatpmp. - `(("alsa-lib" ,alsa-lib) - ("boost" ,boost) - ("dbus-c++" ,dbus-c++) - ("eudev" ,eudev) - ("ffmpeg" ,ffmpeg) - ("flac" ,flac) - ("gmp" ,gmp) - ("gsm" ,gsm) - ("jack" ,jack-1) - ("jsoncpp" ,jsoncpp) - ("libogg" ,libogg) - ("libva" ,libva) - ("opendht" ,opendht) - ("opus" ,opus) - ("pcre" ,pcre) - ("pulseaudio" ,pulseaudio) - ("libsamplerate" ,libsamplerate) - ("libsndfile" ,libsndfile) - ("speex" ,speex) - ("speexdsp" ,speexdsp) - ("libupnp" ,libupnp) - ("libvorbis" ,libvorbis) - ("libx264" ,libx264) - ("libvdpau" ,libvdpau) - ("yaml-cpp" ,yaml-cpp) - ("zlib" ,zlib) - ("openssl" ,openssl) - ("libsecp256k1" ,libsecp256k1) - ("python" ,python) - ("python-wrapper" ,python-wrapper) - ("restinio" ,restinio) - ("libx11" ,libx11) - ("asio" ,asio) - ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version. - ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24. - ("pjproject" ,pjproject-jami))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("which" ,which) - ("cppunit" ,cppunit) - ("perl" ,perl))) ; Needed for documentation. - (arguments - `(#:tests? #f ; The tests fail to compile due to missing headers. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'change-directory - (lambda _ - (chdir "daemon") - #t)) - (add-before 'build 'add-lib-dir - (lambda _ - (mkdir-p "src/lib") - #t))))) - (synopsis "Distributed multimedia communications platform") - (description "Jami (formerly GNU Ring) is a secure and distributed voice, -video and chat communication platform that requires no centralized server and -leaves the power of privacy in the hands of the user. It supports the SIP and -IAX protocols, as well as decentralized calling using P2P-DHT. - -This package provides a library and daemon implementing the Jami core -functionality.") - (home-page "https://jami.net/") - (license license:gpl3+))) - -(define-public libringclient - (package - (inherit libring) - (name "libringclient") - (build-system cmake-build-system) - (propagated-inputs - `(("libring" ,libring) ; For 'dring'. - ("qtbase" ,qtbase) ; Qt is included in several installed headers. - ("qttools" ,qttools))) - (arguments - `(#:tests? #f ; There is no testsuite. - #:configure-flags - (list (string-append "-DRING_BUILD_DIR=" - (assoc-ref %build-inputs "libring") "/include")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'change-directory - (lambda _ - (chdir "lrc") - #t)) - (add-before 'configure 'fix-dbus-interfaces-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix) - (string-append (assoc-ref inputs "libring") - dbus-interfaces-path-suffix)))))))) - (synopsis "Distributed multimedia communications platform") - (description "Jami (formerly GNU Ring) is a secure and distributed voice, -video and chat communication platform that requires no centralized server and -leaves the power of privacy in the hands of the user. It supports the SIP and -IAX protocols, as well as decentralized calling using P2P-DHT. - -This package provides a library common to all Jami clients.") - (home-page "https://jami.net") - (license license:gpl3+))) - -(define-public jami - (package - (inherit libring) - (name "jami") - (build-system cmake-build-system) - (inputs - `(("libringclient" ,libringclient) - ("gtk+" ,gtk+) - ("qrencode" ,qrencode) - ("libnotify" ,libnotify) - ("clutter" ,clutter) - ("clutter-gtk" ,clutter-gtk) - ("libcanberra" ,libcanberra) - ("webkitgtk" ,webkitgtk) - ;; TODO: We must wrap ring-client-gnome to force using the - ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it - ;; fails with: - ;; - ;; /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so: - ;; undefined symbol: sqlite3_column_table_name16 - ;; - ;; qtbase is built against sqlite-with-column-metadata but somehow - ;; jami-client-gnome ends up with both `sqlite' and - ;; `sqlite-with-column-metadata' as inputs and it seems that - ;; libqsqlite.so gets confused. - ("sqlite" ,sqlite-with-column-metadata))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") - ("doxygen" ,doxygen))) - (propagated-inputs - `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus. - ("adwaita-icon-theme" ,adwaita-icon-theme) - ("evolution-data-server" ,evolution-data-server))) - (arguments - `(#:tests? #f ; There is no testsuite. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'change-directory - (lambda _ - (chdir "client-gnome") - #t)) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (path (string-append (assoc-ref inputs "sqlite") "/lib"))) - (wrap-program (string-append out "/bin/jami-gnome") - `("LD_LIBRARY_PATH" ":" prefix (,path)))) - #t))))) - (synopsis "Distributed, privacy-respecting communication program") - (description "Jami (formerly GNU Ring) is a secure and distributed voice, -video and chat communication platform that requires no centralized server and -leaves the power of privacy in the hands of the user. It supports the SIP and -IAX protocols, as well as decentralized calling using P2P-DHT. - -This package provides the Jami client for the GNOME desktop.") - (home-page "https://jami.net") - (license license:gpl3+))) - -(define-public jami-client-gnome - (deprecated-package "jami-client-gnome" jami)) - (define-public libtgvoip (package (name "libtgvoip") From aaa199ca52a1913bcfe988297e3efd24b22df5cd Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:37 +0200 Subject: [PATCH 48/69] gnu: jami: Fix download. The package name changed from Ring to Jami. Package tarballs start now with "jami_" prefix. The "ring-release" folder is also deprecated, let's use the "release" folder instead. * gnu/packages/jami.scm (jami-source)[origin]: Change the uri from "https://dl.jami.net/ring-release/tarballs/ring_" to "https://dl.jami.net/release/tarballs/jami_". Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 050f8cf9f6..8d6bab84e3 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -65,7 +65,7 @@ (define %jami-version "20191101.3.67671e7") (define* (jami-source #:key without-daemon) (origin (method url-fetch) - (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_" + (uri (string-append "https://dl.jami.net/release/tarballs/jami_" %jami-version ".tar.gz")) (modules '((guix build utils))) From f60699af611b001c7a28f84a9dc9281cdb727a69 Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:38 +0200 Subject: [PATCH 49/69] gnu: jami: Create a jami-apply-dependency-patches procedure. * gnu/packages/jami.scm (pjproject-jami) [native-inputs]: Rename "savoir-faire-linux-patches" to "sfl-patches". [arguments]: Move Jami patching procedure to ... (jami-apply-dependency-patches): ... this new procedure. Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 80 ++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 8d6bab84e3..3b31fae827 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -78,12 +78,31 @@ (define* (jami-source #:key without-daemon) (base32 "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0")))) +;; Savoir-Faire Linux modifies many libraries to add features +;; to Jami. This procedure makes applying patches to a given +;; package easy. +(define jami-apply-dependency-patches + '(lambda* (#:key inputs dep-name patches) + (let ((patches-directory "sfl-patches")) + (mkdir-p patches-directory) + (invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches") + "-C" patches-directory + "--strip-components=5" + (string-append "ring-project/daemon/contrib/src/" + dep-name)) + (for-each + (lambda (file) + (invoke "patch" "--force" "-p1" "-i" + (string-append patches-directory "/" + file ".patch"))) + patches)))) + (define-public pjproject-jami (package (inherit pjproject) (name "pjproject-jami") (native-inputs - `(("savoir-faire-linux-patches" ,(jami-source)) + `(("sfl-patches" ,(jami-source)) ,@(package-native-inputs pjproject))) (arguments `(#:tests? #f @@ -125,40 +144,31 @@ (define-public pjproject-jami #t)) (add-after 'unpack 'apply-patches (lambda* (#:key inputs #:allow-other-keys) - (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches") - ;; Comes from - ;; "ring-project/daemon/contrib/src/pjproject/rules.mak". - ;; WARNING: These amount for huge changes in pjproject. - (savoir-faire-linux-patches - '("fix_turn_alloc_failure" - "rfc2466" - "ipv6" - "multiple_listeners" - "pj_ice_sess" - "fix_turn_fallback" - "fix_ioqueue_ipv6_sendto" - "add_dtls_transport" - "rfc6544" - "ice_config" - "sip_config" - "fix_first_packet_turn_tcp" - "fix_ebusy_turn" - "ignore_ipv6_on_transport_check" - "fix_turn_connection_failure" - ;; "uwp_vs" ; for windows - "disable_local_resolution"))) - (mkdir-p savoir-faire-linux-patches-directory) - (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches") - "-C" savoir-faire-linux-patches-directory - "--strip-components=5" - "ring-project/daemon/contrib/src/pjproject") - (for-each - (lambda (file) - (invoke "patch" "--force" "-p1" "-i" - (string-append savoir-faire-linux-patches-directory "/" - file ".patch"))) - savoir-faire-linux-patches)) - #t)) + (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches)) + ;; Comes from + ;; "ring-project/daemon/contrib/src/pjproject/rules.mak". + ;; WARNING: These amount for huge changes in pjproject. + (jami-apply-dependency-patches + #:inputs inputs + #:dep-name "pjproject" + #:patches + '("fix_turn_alloc_failure" + "rfc2466" + "ipv6" + "multiple_listeners" + "pj_ice_sess" + "fix_turn_fallback" + "fix_ioqueue_ipv6_sendto" + "add_dtls_transport" + "rfc6544" + "ice_config" + "sip_config" + "fix_first_packet_turn_tcp" + "fix_ebusy_turn" + "ignore_ipv6_on_transport_check" + "fix_turn_connection_failure" + "disable_local_resolution")) + #t))) ;; TODO: We could use substitute-keyword-arguments instead of ;; repeating the phases from pjproject, but somehow it does ;; not work. From 63e6f1cdee26bbd26a2fa439e552f29258eb5560 Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:40 +0200 Subject: [PATCH 50/69] gnu: libring: Add libnatpmp dependency. This library isn't mandatory, but it works better with new routers than libupnp. * gnu/packages/jami.scm (libring)[inputs]: Add libnatpmp. Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 3b31fae827..b4116c8504 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -194,7 +194,6 @@ (define-public libring (source (jami-source #:without-daemon #t)) (build-system gnu-build-system) (inputs - ;; Missing (optional?) dep: libnatpmp. `(("alsa-lib" ,alsa-lib) ("boost" ,boost) ("dbus-c++" ,dbus-c++) @@ -205,6 +204,7 @@ (define-public libring ("gsm" ,gsm) ("jack" ,jack-1) ("jsoncpp" ,jsoncpp) + ("libnatpmp" ,libnatpmp) ("libogg" ,libogg) ("libva" ,libva) ("opendht" ,opendht) From 7f8f39d344ed12983470b756696345778e5f1efc Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:45 +0200 Subject: [PATCH 51/69] gnu: jami: Make gettext a native input. * gnu/packages/jami.scm (jami)[inputs]: Move "gettext" to ... [native-inputs]: ... here. Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index b4116c8504..3992d18f89 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -310,7 +310,6 @@ (define-public jami ("libnotify" ,libnotify) ("clutter" ,clutter) ("clutter-gtk" ,clutter-gtk) - ("gettext" ,gnu-gettext) ("libcanberra" ,libcanberra) ("webkitgtk" ,webkitgtk) ;; TODO: We must wrap ring-client-gnome to force using the @@ -327,6 +326,7 @@ (define-public jami ("sqlite" ,sqlite-with-column-metadata))) (native-inputs `(("pkg-config" ,pkg-config) + ("gettext" ,gnu-gettext) ("glib:bin" ,glib "bin") ("doxygen" ,doxygen))) (propagated-inputs From 2ff4e549bbb8cb0e40f730830be0ba6d19269292 Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:46 +0200 Subject: [PATCH 52/69] gnu: pjproject-jami: Update to 2.10. * gnu/packages/telephony.scm (pjproject): Update to 2.10, [source]: reorder "file-name" and "sha256" fields. * gnu/packages/jami.scm (%jami-version): Update to 20200401.1.6f090d, (pjproject-jami)[arguments]: apply patches related to 2.10. Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 29 +++++++++++------------------ gnu/packages/telephony.scm | 14 +++++++------- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 3992d18f89..06067a9253 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -60,7 +60,7 @@ (define-module (gnu packages jami) #:use-module (guix packages) #:use-module (guix utils)) -(define %jami-version "20191101.3.67671e7") +(define %jami-version "20200401.1.6f090de") (define* (jami-source #:key without-daemon) (origin @@ -76,7 +76,7 @@ (define* (jami-source #:key without-daemon) #f)) (sha256 (base32 - "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0")))) + "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh")))) ;; Savoir-Faire Linux modifies many libraries to add features ;; to Jami. This procedure makes applying patches to a given @@ -152,22 +152,15 @@ (define-public pjproject-jami #:inputs inputs #:dep-name "pjproject" #:patches - '("fix_turn_alloc_failure" - "rfc2466" - "ipv6" - "multiple_listeners" - "pj_ice_sess" - "fix_turn_fallback" - "fix_ioqueue_ipv6_sendto" - "add_dtls_transport" - "rfc6544" - "ice_config" - "sip_config" - "fix_first_packet_turn_tcp" - "fix_ebusy_turn" - "ignore_ipv6_on_transport_check" - "fix_turn_connection_failure" - "disable_local_resolution")) + '("0001-rfc6544" + "0002-rfc2466" + "0003-add-tcp-keep-alive" + "0004-multiple_listeners" + "0005-fix_ebusy_turn" + "0006-ignore_ipv6_on_transport_check" + "0007-pj_ice_sess" + "0008-fix_ioqueue_ipv6_sendto" + "0009-add-config-site")) #t))) ;; TODO: We could use substitute-keyword-arguments instead of ;; repeating the phases from pjproject, but somehow it does diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 747b0d75a1..17974e17f9 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -651,13 +651,17 @@ (define-public twinkle (define-public pjproject (package (name "pjproject") - (version "2.9") + (version "2.10") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/pjsip/pjproject.git") - (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4"))) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0")) (modules '((guix build utils))) (snippet '(begin @@ -686,11 +690,7 @@ (define-public pjproject (lambda (dirs) (substitute* "third_party/build/os-linux.mak" (((string-append "DIRS += " dirs)) ""))) - third-party-dirs)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393")))) + third-party-dirs)))))) (build-system gnu-build-system) (inputs `(("portaudio" ,portaudio))) From f06eefa31d9994c92cb6cb4bb956d645d00e6bfa Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:48 +0200 Subject: [PATCH 53/69] gnu: jami: Use gettext-minimal. * gnu/packages/jami.scm (jami)[native-inputs]: Use "gettext-minimal" instead of "gnu-gettext". Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 06067a9253..67146dcd70 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -319,7 +319,7 @@ (define-public jami ("sqlite" ,sqlite-with-column-metadata))) (native-inputs `(("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("doxygen" ,doxygen))) (propagated-inputs From 8c98eb28084858d89bdf6a3bd90eb056bf31c49e Mon Sep 17 00:00:00 2001 From: Jan Wielkiewicz Date: Sat, 2 May 2020 11:31:13 +0200 Subject: [PATCH 54/69] gnu: jami: Add epoll support. * gnu/packages/jami.scm (jami)[arguments]: Add epoll support on Linux systems. Signed-off-by: Mathieu Othacehe --- gnu/packages/jami.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 67146dcd70..dda787b3cd 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -33,6 +33,7 @@ (define-module (gnu packages jami) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages hurd) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) @@ -111,6 +112,11 @@ (define-public pjproject-jami (list "--disable-oss" "--disable-sound" "--disable-video" + ;; The following flag is Linux specific. + ,@(if (hurd-triplet? (or (%current-system) + (%current-target-system))) + '() + '("--enable-epoll")) "--enable-ext-sound" "--disable-speex-aec" "--disable-g711-codec" From 3c566eba1951dbcdb162fb20e249bbaac87a4c4a Mon Sep 17 00:00:00 2001 From: Martin Becze Date: Thu, 30 Apr 2020 11:21:38 -0500 Subject: [PATCH 55/69] gnu: Add guile3.0-ncurses. * gnu/packages/guile-xyz.scm (guile-ncurses)[arguments]: Use Guile effective version instead of hardcoding the version number in the libary path. Also import the required module to do that. (guile3.0-ncurses): New variable. Signed-off-by: Mathieu Othacehe --- gnu/packages/guile-xyz.scm | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 6ec1c4c2fc..de76f3b6d0 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2019 swedebugia ;;; Copyright © 2019, 2020 Amar Singh ;;; Copyright © 2019 Timothy Sample -;;; Copyright © 2019 Martin Becze +;;; Copyright © 2019, 2020 Martin Becze ;;; Copyright © 2020 Evan Straw ;;; ;;; This file is part of GNU Guix. @@ -1833,7 +1833,13 @@ (define-public guile-ncurses ("guile" ,guile-2.2))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:configure-flags (list "--with-ncursesw" ; Unicode support + `(#:modules ((guix build gnu-build-system) + ((guix build guile-build-system) + #:select (target-guile-effective-version)) + (guix build utils)) + #:imported-modules ((guix build guile-build-system) + ,@%gnu-build-system-modules) + #:configure-flags (list "--with-ncursesw" ; Unicode support "--with-gnu-filesystem-hierarchy") #:phases (modify-phases %standard-phases @@ -1848,8 +1854,8 @@ (define-public guile-ncurses (files (find-files dir ".scm"))) (substitute* files (("\"libguile-ncurses\"") - (format #f "\"~a/lib/guile/2.2/libguile-ncurses\"" - out))) + (format #f "\"~a/lib/guile/~a/libguile-ncurses\"" + out (target-guile-effective-version)))) #t)))))) (home-page "https://www.gnu.org/software/guile-ncurses/") (synopsis "Guile bindings to ncurses") @@ -1858,6 +1864,14 @@ (define-public guile-ncurses library.") (license license:lgpl3+))) +(define-public guile3.0-ncurses + (package + (inherit guile-ncurses) + (name "guile3.0-ncurses") + (version "3.0") + (inputs `(("ncurses" ,ncurses) + ("guile" ,guile-3.0))))) + (define-public guile-ncurses/gpm (package (inherit guile-ncurses) From 87001355cc8c578898a9b1e756e6a0e9e7cc2b0a Mon Sep 17 00:00:00 2001 From: Martin Becze Date: Thu, 30 Apr 2020 11:58:57 -0500 Subject: [PATCH 56/69] gnu: Add guile3.0-ncurses-with-gpm. * gnu/packages/guile-xyz.scm (guile3.0-ncurses/gpm): New variable. Signed-off-by: Mathieu Othacehe --- gnu/packages/guile-xyz.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index de76f3b6d0..8075e8c21a 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1879,6 +1879,13 @@ (define-public guile-ncurses/gpm (inputs `(("ncurses" ,ncurses/gpm) ("guile" ,guile-2.2))))) +(define-public guile3.0-ncurses/gpm + (package + (inherit guile3.0-ncurses) + (name "guile3.0-ncurses-with-gpm") + (inputs `(("ncurses" ,ncurses/gpm) + ("guile" ,guile-3.0))))) + (define-public guile-lib (package (name "guile-lib") From 7c65fc378cf68b598965fd977f5844050435ac97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Tue, 28 Apr 2020 13:51:31 +0200 Subject: [PATCH 57/69] doc: Fix building the cookbook. Fixes . Reported by "operator.name" . * doc/build.scm (%languages): Add smaller list for the cookbook. (syntax-highlighted-html): Adapt regexp for mono-node files to include the cookbook. --- doc/build.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/build.scm b/doc/build.scm index 3907b49caf..2b6d0c4aea 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019, 2020 Ludovic Courtès +;;; Copyright © 2020 Björn Höfling ;;; ;;; This file is part of GNU Guix. ;;; @@ -58,7 +59,10 @@ (define %manual "guix")) (define %languages - '("de" "en" "es" "fr" "ru" "zh_CN")) + ;; The cookbook is currently only translated into German. + (if (string=? %manual "guix-cookbook") + '("de" "en") + '("de" "en" "es" "fr" "ru" "zh_CN"))) (define (texinfo-manual-images source) "Return a directory containing all the images used by the user manual, taken @@ -451,7 +455,9 @@ (define (html? file stat) (lambda (mono) (let ((anchors (collect-anchors mono))) (process-html mono anchors))) - (find-files #$input "^guix(\\.[a-zA-Z_-]+)?\\.html$")) + (find-files + #$input + "^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$")) ;; Next process the multi-node HTML files in two phases: (1) ;; collect the list of anchors, and (2) perform From f59cc03b569ec7b2d96cdd5474685984640fc074 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Mon, 27 Apr 2020 13:07:13 +0300 Subject: [PATCH 58/69] gnu: Add emacs-gitlab-snip-helm. * gnu/packages/emacs-xyz.scm (emacs-gitlab-snip-helm): New variable. --- gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d9a3c2acc3..cb9405acf0 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7515,6 +7515,29 @@ (define-public emacs-gitlab-ci-mode via @code{gitlab-ci-lint}.") (license license:gpl3+))) +(define-public emacs-gitlab-snip-helm + (package + (name "emacs-gitlab-snip-helm") + (version "0.0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-helm" ,emacs-helm))) + (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/") + (synopsis "GitLab snippet API interaction for Emacs") + (description "This package provides GitLab snippet API interaction for +Emacs.") + (license license:gpl3+))) + (define-public emacs-web-mode (package (name "emacs-web-mode") From 39f1806ca1d04b9aee70e897e06466aadbbee152 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 9 Apr 2020 15:56:42 +0200 Subject: [PATCH 59/69] gnu: Add warsow-qfusion. * gnu/local.mk (warsow-qfusion): New variable. --- gnu/local.mk | 1 + gnu/packages/game-development.scm | 78 +++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/gnu/local.mk b/gnu/local.mk index 812253b192..461102ebdd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1527,6 +1527,7 @@ dist_patch_DATA = \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ + %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/weasyprint-library-paths.patch \ %D%/packages/patches/websocketpp-fix-for-boost-1.70.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index d4b2fdcab2..d2df5d864a 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -38,6 +38,7 @@ (define-module (gnu packages game-development) #:use-module (srfi srfi-1) + #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -2225,3 +2226,80 @@ (define-public libtcod developers providing an advanced true color console, input, and lots of other utilities frequently used in roguelikes.") (license license:bsd-3))) + +(define-public warsow-qfusion + ;; As of 2020-04-09, the latest stable version 2.1.0 is deprecated. + ;; The 2.5 beta as published on the homepage is commit + ;; c4de15df559410aff0ca6643724e24cddb0ecbbd + (let ((commit "c4de15df559410aff0ca6643724e24cddb0ecbbd") + (arch (match (or (%current-target-system) + (%current-system)) + ("x86_64-linux" "x86_64") + ("i686-linux" "i386") + (_ "")))) + (package + (name "warsow-qfusion") + (version (git-version "2.5" "1" commit)) ; 2.5-beta + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Warsow/qfusion/") + (commit commit) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xv2yycr43p3xmq7lm6j6zb3cpcr6w00x7qg918faq0mw9j7v48g")) + ;; Issue reported here: https://github.com/Warsow/qfusion/issues/46 + (patches (search-patches "warsow-qfusion-fix-bool-return-type.patch")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No tests. + #:configure-flags '("-DQFUSION_GAME=Warsow") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-to-build-dir + (lambda _ + (chdir "source") + #t)) + (add-after 'install 'really-install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file (string-append "../source/build/basewsw/libgame_" + ,arch ".so") + (string-append out "/lib/")) + (install-file (string-append "../source/build/libui_" ,arch ".so") + (string-append out "/lib/")) + (for-each + (lambda (file) + (install-file file (string-append out "/bin/"))) + (append (find-files "../source/build" "warsow") + (find-files "../source/build" "wsw_server.")))) + #t))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("curl" ,curl) + ("freetype" ,freetype) + ("ffmpeg" ,ffmpeg) + ("libjpeg" ,libjpeg) + ("libogg" ,libogg) + ("libpng" ,libpng) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("mesa" ,mesa) + ("openal" ,openal) + ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("sdl2" ,sdl2) + ("uuid.h" ,util-linux) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/Warsow/qfusion") + (synopsis "Warsow's fork of qfusion, the id Tech 2 derived game engine") + (supported-systems '("i686-linux" "x86_64-linux")) + (description + "This package contains Warsow's fork of qfusion, the id Tech 2 derived +game engine. id Tech 2 is the engine originally behind Quake 2.") + (license license:gpl2+)))) From 2515968f4985b7b72f3152c2d3265bcd8900a182 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 May 2020 16:44:55 +0200 Subject: [PATCH 60/69] Revert "gnu: Add warsow-qfusion." 'warsow-qfusion-fix-bool-return-type.patch' is missing. This reverts commit 39f1806ca1d04b9aee70e897e06466aadbbee152. --- gnu/local.mk | 1 - gnu/packages/game-development.scm | 78 ------------------------------- 2 files changed, 79 deletions(-) diff --git a/gnu/local.mk b/gnu/local.mk index 461102ebdd..812253b192 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1527,7 +1527,6 @@ dist_patch_DATA = \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ - %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/weasyprint-library-paths.patch \ %D%/packages/patches/websocketpp-fix-for-boost-1.70.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index d2df5d864a..d4b2fdcab2 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -38,7 +38,6 @@ (define-module (gnu packages game-development) #:use-module (srfi srfi-1) - #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -2226,80 +2225,3 @@ (define-public libtcod developers providing an advanced true color console, input, and lots of other utilities frequently used in roguelikes.") (license license:bsd-3))) - -(define-public warsow-qfusion - ;; As of 2020-04-09, the latest stable version 2.1.0 is deprecated. - ;; The 2.5 beta as published on the homepage is commit - ;; c4de15df559410aff0ca6643724e24cddb0ecbbd - (let ((commit "c4de15df559410aff0ca6643724e24cddb0ecbbd") - (arch (match (or (%current-target-system) - (%current-system)) - ("x86_64-linux" "x86_64") - ("i686-linux" "i386") - (_ "")))) - (package - (name "warsow-qfusion") - (version (git-version "2.5" "1" commit)) ; 2.5-beta - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Warsow/qfusion/") - (commit commit) - (recursive? #t))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0xv2yycr43p3xmq7lm6j6zb3cpcr6w00x7qg918faq0mw9j7v48g")) - ;; Issue reported here: https://github.com/Warsow/qfusion/issues/46 - (patches (search-patches "warsow-qfusion-fix-bool-return-type.patch")))) - (build-system cmake-build-system) - (arguments - `(#:tests? #f ; No tests. - #:configure-flags '("-DQFUSION_GAME=Warsow") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'change-to-build-dir - (lambda _ - (chdir "source") - #t)) - (add-after 'install 'really-install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (install-file (string-append "../source/build/basewsw/libgame_" - ,arch ".so") - (string-append out "/lib/")) - (install-file (string-append "../source/build/libui_" ,arch ".so") - (string-append out "/lib/")) - (for-each - (lambda (file) - (install-file file (string-append out "/bin/"))) - (append (find-files "../source/build" "warsow") - (find-files "../source/build" "wsw_server.")))) - #t))))) - (inputs - `(("alsa-lib" ,alsa-lib) - ("curl" ,curl) - ("freetype" ,freetype) - ("ffmpeg" ,ffmpeg) - ("libjpeg" ,libjpeg) - ("libogg" ,libogg) - ("libpng" ,libpng) - ("libtheora" ,libtheora) - ("libvorbis" ,libvorbis) - ("mesa" ,mesa) - ("openal" ,openal) - ("pulseaudio" ,pulseaudio) - ("qtbase" ,qtbase) - ("qtdeclarative" ,qtdeclarative) - ("sdl2" ,sdl2) - ("uuid.h" ,util-linux) - ("zlib" ,zlib))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "https://github.com/Warsow/qfusion") - (synopsis "Warsow's fork of qfusion, the id Tech 2 derived game engine") - (supported-systems '("i686-linux" "x86_64-linux")) - (description - "This package contains Warsow's fork of qfusion, the id Tech 2 derived -game engine. id Tech 2 is the engine originally behind Quake 2.") - (license license:gpl2+)))) From 795b4bca1867e2463d7b60e7238f916e2695db6e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 May 2020 13:57:15 +0200 Subject: [PATCH 61/69] gnu: ledger: Update to 3.2.0. * gnu/packages/finance.scm (ledger): Update to 3.2.0. [arguments]: Add #:modules and #:imported-modules. Add phase 'fix-python-installation-directory'. --- gnu/packages/finance.scm | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index c31b87ec19..61d807190c 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2020 Kei Kebreau ;;; Copyright © 2020 Christopher Lemmer Webber ;;; Copyright © 2020 Tom Zander +;;; Copyright © 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -197,7 +198,7 @@ (define-public homebank (define-public ledger (package (name "ledger") - (version "3.1.3") + (version "3.2.0") (source (origin (method git-fetch) @@ -206,16 +207,32 @@ (define-public ledger (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3")))) + (base32 "1l5c9jf2wnly6ncm9civ8i7v47xld15g1y7wpl0hqwgbfyffwjci")))) (build-system cmake-build-system) (arguments - `(#:configure-flags + `(#:modules (,@%cmake-build-system-modules + ((guix build python-build-system) #:select (python-version))) + #:imported-modules (,@%cmake-build-system-modules + (guix build python-build-system)) + #:configure-flags `("-DBUILD_DOCS:BOOL=ON" "-DBUILD_WEB_DOCS:BOOL=ON" "-DUSE_PYTHON:BOOL=ON" "-DCMAKE_INSTALL_LIBDIR:PATH=lib") #:phases - (modify-phases %standard-phases + (modify-phases (@ (guix build cmake-build-system) %standard-phases) + (add-after 'unpack 'fix-python-installation-directory + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; By default the package attempts to install its Python bindings + ;; to the Python store directory, which obviously does not work. + ;; Passing -DPython_SITEARCH in #:configure-flags has no effect. + (let ((python-version (python-version (assoc-ref inputs "python"))) + (out (assoc-ref outputs "out"))) + (substitute* "src/CMakeLists.txt" + (("DESTINATION \\$\\{Python_SITEARCH\\}") + (string-append "DESTINATION " out "/lib/python" + python-version "/site-packages"))) + #t))) (add-before 'configure 'install-examples (lambda* (#:key outputs #:allow-other-keys) (let ((examples (string-append (assoc-ref outputs "out") From 61586ce9a22768926448fa16673f7c3a93ebc5c6 Mon Sep 17 00:00:00 2001 From: TomZ Date: Sat, 2 May 2020 12:20:09 +0200 Subject: [PATCH 62/69] gnu: qutebrowser: Update to 1.11.0 * gnu/packages/web-branch.scm (qutebrowser): Update to 1.11.0 Signed-off-by: Marius Bakke --- gnu/packages/web-browsers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 424951cdb7..33ff3d1a74 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -338,7 +338,7 @@ (define-public lynx (define-public qutebrowser (package (name "qutebrowser") - (version "1.10.0") + (version "1.11.0") (source (origin (method url-fetch) @@ -347,7 +347,7 @@ (define-public qutebrowser "qutebrowser-" version ".tar.gz")) (sha256 (base32 - "1prvd3cysmcjfybn0dmr3ih0bl6lm5ml9i7wd09fn8hb7047mkby")))) + "0b0qlki9bp9mm41lrh6rc6qqvm4nsz8da63sby3a1f2xm9b9vvg2")))) (build-system python-build-system) (native-inputs `(("python-attrs" ,python-attrs))) ; for tests From 4c0cc7bed3de2c0e2d3a6e95b88693941e839eec Mon Sep 17 00:00:00 2001 From: Diego Nicola Barbato Date: Tue, 28 Apr 2020 13:31:54 +0200 Subject: [PATCH 63/69] services: syslog: Simplify 'start' method. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a followup to d7113bb655ff80a868a9e624c913f9d23e6c63ad and e3358a831e7d5d9e8dc614340e49ea5aeb11a7ff. * gnu/services/base.scm (syslog-service-type): Change 'start' method to set umask using the #:file-creation-mask parameter of 'make-forkexec-constructor' introduced in version 0.8.0 of the Shepherd. Signed-off-by: Ludovic Courtès --- gnu/services/base.scm | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 2913478e4a..0f119cc2f9 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1316,17 +1316,13 @@ (define syslog-service-type (documentation "Run the syslog daemon (syslogd).") (provision '(syslogd)) (requirement '(user-processes)) - (start #~(let ((spawn (make-forkexec-constructor - (list #$(syslog-configuration-syslogd config) - "--rcfile" - #$(syslog-configuration-config-file config)) - #:pid-file "/var/run/syslog.pid"))) - (lambda () - ;; Set the umask such that file permissions are #o640. - (let ((mask (umask #o137)) - (pid (spawn))) - (umask mask) - pid)))) + (start #~(make-forkexec-constructor + (list #$(syslog-configuration-syslogd config) + "--rcfile" + #$(syslog-configuration-config-file config)) + ;; Set the umask such that file permissions are #o640. + #:file-creation-mask #o137 + #:pid-file "/var/run/syslog.pid")) (stop #~(make-kill-destructor)))))) ;; Snippet adapted from the GNU inetutils manual. From b1cb8b5d83dc92734840e9243d084c1c2a604321 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 20 Apr 2020 23:56:13 +0200 Subject: [PATCH 64/69] gnu: llvm-for-extempore: Update to 3.8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/llvm.scm (llvm-for-extempore): Update to 3.8. [source]: Use upstream patched source. * gnu/packages/patches/llvm-for-extempore.patch: Delete due to source being already patched. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 - gnu/packages/llvm.scm | 11 +- gnu/packages/patches/llvm-for-extempore.patch | 118 ------------------ 3 files changed, 8 insertions(+), 122 deletions(-) delete mode 100644 gnu/packages/patches/llvm-for-extempore.patch diff --git a/gnu/local.mk b/gnu/local.mk index 812253b192..3c6c98a284 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1184,7 +1184,6 @@ dist_patch_DATA = \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-reproducible-build.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ - %D%/packages/patches/llvm-for-extempore.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lrcalc-includes.patch \ %D%/packages/patches/lrzip-CVE-2017-8842.patch \ diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index d6c519bcbd..33d863ae11 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2019 Arm Ltd ;;; Copyright © 2019 Mathieu Othacehe ;;; Copyright © 2019 Brett Gilio +;;; Copyright © 2020 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -627,12 +628,16 @@ (define-public clang-3.5 #:patches '("clang-3.5-libc-search-path.patch"))) (define-public llvm-for-extempore - (package (inherit llvm-3.7) + (package (inherit llvm-3.8) (name "llvm-for-extempore") (source (origin - (inherit (package-source llvm-3.7)) - (patches (list (search-patch "llvm-for-extempore.patch"))))) + (method url-fetch) + (uri (string-append "http://extempore.moso.com.au/extras/" + "llvm-3.8.0.src-patched-for-extempore.tar.xz")) + (sha256 + (base32 + "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs")))) ;; Extempore refuses to build on architectures other than x86_64 (supported-systems '("x86_64-linux")))) diff --git a/gnu/packages/patches/llvm-for-extempore.patch b/gnu/packages/patches/llvm-for-extempore.patch deleted file mode 100644 index 614682c6cb..0000000000 --- a/gnu/packages/patches/llvm-for-extempore.patch +++ /dev/null @@ -1,118 +0,0 @@ -This patch to LLVM is required by the developers of the Extempore language. -The following explanation was posted to the extemporelang@googlegroups.com -mailing list: - -"There is an assumption in the parser that all definitions occur within the -same compilation unit - i.e. the parser has local state about what has been -parsed in this unit of work. Extempore obviously does lots of little units -rather than one big unit and this causes problems for named types that were -defined in another unit - which they always are. The patch simply checks the -current module to see if the type has been previously defined, and intervenes -appropriately if it has." - -Message-ID: - ---- llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-04-11 12:11:45.000000000 +1000 -+++ llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-09-14 09:22:56.000000000 +1000 -@@ -16,7 +16,6 @@ - - #include "llvm/ADT/StringRef.h" - #include "llvm/MC/MCSection.h" --#include "llvm/Support/COFF.h" - - namespace llvm { - class MCSymbol; - ---- llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-07-11 20:30:36.000000000 +1000 -+++ llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-09-14 09:20:57.000000000 +1000 -@@ -1754,8 +1754,14 @@ - // If the type hasn't been defined yet, create a forward definition and - // remember where that forward def'n was seen (in case it never is defined). - if (!Entry.first) { -- Entry.first = StructType::create(Context, Lex.getStrVal()); -- Entry.second = Lex.getLoc(); -+ // this here for extempore -+ if (M->getTypeByName(Lex.getStrVal())) { -+ Entry.first = M->getTypeByName(Lex.getStrVal()); -+ Entry.second = SMLoc(); -+ } else { -+ Entry.first = StructType::create(Context, Lex.getStrVal()); -+ Entry.second = Lex.getLoc(); -+ } - } - Result = Entry.first; - Lex.Lex(); - ---- llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-07-01 05:10:31.000000000 +1000 -+++ llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-09-14 09:23:40.000000000 +1000 -@@ -32,6 +32,7 @@ - #include "llvm/MC/MCStreamer.h" - #include "llvm/MC/MCSymbolELF.h" - #include "llvm/MC/MCValue.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/Dwarf.h" - #include "llvm/Support/ELF.h" - #include "llvm/Support/ErrorHandling.h" - ---- llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-07-31 02:31:16.000000000 +1000 -+++ llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-09-14 09:21:28.000000000 +1000 -@@ -524,6 +524,17 @@ - rv.IntVal = APInt(32, PF(ArgValues[0].IntVal.getZExtValue())); - return rv; - } -+ if (FTy->getNumParams() == 1 && -+ RetTy->isVoidTy() && -+ FTy->getParamType(0)->isPointerTy()) { -+ GenericValue rv; -+ //void (*PF)(char *) = (void(*)(char *))(intptr_t)FPtr; -+ //printf("are symbols available: %d\n",isSymbolSearchingDisabled()); -+ void (*PF)(char *) = (void(*)(char *))FPtr; -+ char* mzone = (char*) GVTOP(ArgValues[0]); -+ PF(mzone); -+ return rv; -+ } - break; - } - } - ---- llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-06-23 21:31:32.000000000 +1000 -+++ llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-09-14 09:24:01.000000000 +1000 -@@ -23,6 +23,7 @@ - #include "llvm/MC/MCSymbolCOFF.h" - #include "llvm/MC/MCSymbolELF.h" - #include "llvm/MC/MCSymbolMachO.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/ELF.h" - #include "llvm/Support/ErrorHandling.h" - #include "llvm/Support/FileSystem.h" - ---- llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-06-25 10:28:42.000000000 +1000 -+++ llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-09-14 09:24:17.000000000 +1000 -@@ -16,6 +16,7 @@ - #include "llvm/MC/MCSectionCOFF.h" - #include "llvm/MC/MCSectionELF.h" - #include "llvm/MC/MCSectionMachO.h" -+#include "llvm/Support/COFF.h" - using namespace llvm; - - static bool useCompactUnwind(const Triple &T) { - ---- llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-06-09 10:31:39.000000000 +1000 -+++ llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-09-14 09:24:25.000000000 +1000 -@@ -11,6 +11,7 @@ - #include "llvm/MC/MCAsmInfo.h" - #include "llvm/MC/MCContext.h" - #include "llvm/MC/MCSymbol.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/raw_ostream.h" - using namespace llvm; - ---- llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-06-27 04:55:48.000000000 +1000 -+++ llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-09-14 09:25:03.000000000 +1000 -@@ -16,6 +16,7 @@ - #include "llvm/MC/MCSectionCOFF.h" - #include "llvm/MC/MCSectionELF.h" - #include "llvm/MC/MCValue.h" -+#include "llvm/Support/COFF.h" - #include "llvm/Support/Dwarf.h" - #include "llvm/Target/TargetLowering.h" From 7bb0ba81b394d82f56ee9d238919c7112e4666fd Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 20 Apr 2020 23:56:14 +0200 Subject: [PATCH 65/69] gnu: nanovg-for-extempore: Update to 0.7.1-0.3c60175. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gl.scm (nanovg-for-extempore): Update to 0.7.1-0.3c60175. [source]: Switch to Git source to include latest changes. [version]: Use git-version. Signed-off-by: Ludovic Courtès --- gnu/packages/gl.scm | 47 +++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 01241cd88e..fd2e543461 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2020 Marius Bakke +;;; Copyright © 2020 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -742,30 +743,34 @@ (define-public glfw (license license:zlib))) (define-public nanovg-for-extempore - (package - (name "nanovg-for-extempore") - (version "0.7.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/extemporelang/nanovg/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0ivs1sagq19xiw8jxd9f8w2b39svi0n9hrbmdvckwvqg95r8701g")))) - (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; no tests included - (inputs - `(("mesa" ,mesa))) - ;; Extempore refuses to build on architectures other than x86_64 - (supported-systems '("x86_64-linux")) - (home-page "https://github.com/extemporelang/nanovg") - (synopsis "2D vector drawing library on top of OpenGL") - (description "NanoVG is small antialiased vector graphics rendering + (let ((version "0.7.1") + (revision "0") + (commit "3c60175fcc2e5fe305b04355cdce35d499c80310")) + (package + (name "nanovg-for-extempore") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/extemporelang/nanovg.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ddn3d3mxqn8hj9967v3pss7lz1wn08pcdnqzc118g7yjkq7hxzy")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no tests included + (inputs + `(("mesa" ,mesa))) + ;; Extempore refuses to build on architectures other than x86_64 + (supported-systems '("x86_64-linux")) + (home-page "https://github.com/extemporelang/nanovg") + (synopsis "2D vector drawing library on top of OpenGL") + (description "NanoVG is small antialiased vector graphics rendering library for OpenGL. It has lean API modeled after HTML5 canvas API. It is aimed to be a practical and fun toolset for building scalable user interfaces and visualizations.") - (license license:zlib))) + (license license:zlib)))) (define-public gl2ps (package From fc570fab8039f5090997b082930db812846be5bf Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 20 Apr 2020 23:56:15 +0200 Subject: [PATCH 66/69] gnu: portmidi-for-extempore: Update to 217-0.8602f54. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/music.scm (portmidi-for-extempore): Update to 217-0.8602f54. [version]: Use git-version to include latest changes. Signed-off-by: Ludovic Courtès --- gnu/packages/music.scm | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7e8f5e581e..5227f450aa 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1979,24 +1979,27 @@ (define-public portmidi (license license:expat))) (define-public portmidi-for-extempore - (package (inherit portmidi) - (name "portmidi-for-extempore") - (version "217") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/extemporelang/portmidi.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1inriyrjf7xx2b7r54x0vmf9ngyqgr7g5060c22bwkbsgg53apzv")))) - (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; no tests - (native-inputs '()) - ;; Extempore refuses to build on architectures other than x86_64 - (supported-systems '("x86_64-linux")) - (home-page "https://github.com/extemporelang/portmidi/"))) + (let ((version "217") + (revision "0") + (commit "8602f548f71daf5ef638b2f7d224753400cb2158")) + (package (inherit portmidi) + (name "portmidi-for-extempore") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/extemporelang/portmidi.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no tests + (native-inputs '()) + ;; Extempore refuses to build on architectures other than x86_64 + (supported-systems '("x86_64-linux")) + (home-page "https://github.com/extemporelang/portmidi/")))) (define-public python-pyportmidi (package From 3ff2d2708cbece9985ee34b73e4b4d4be81eeafb Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 20 Apr 2020 23:56:16 +0200 Subject: [PATCH 67/69] gnu: extempore: Update to 0.8.6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/music.scm (extempore): Update to 0.8.6. [snippets]: Delete bundled dependencies. [patches]: Add it. * gnu/packages/patches/extempore-unbundle-external-dependencies.patch: Patch CMakeLists.txt to use system libraries. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/music.scm | 87 ++++++----- ...mpore-unbundle-external-dependencies.patch | 140 ++++++++++++++++++ 3 files changed, 188 insertions(+), 40 deletions(-) create mode 100644 gnu/packages/patches/extempore-unbundle-external-dependencies.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3c6c98a284..9eb64b47b3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -879,6 +879,7 @@ dist_patch_DATA = \ %D%/packages/patches/evolution-data-server-libical-compat.patch \ %D%/packages/patches/exiv2-CVE-2017-14860.patch \ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \ + %D%/packages/patches/extempore-unbundle-external-dependencies.patch \ %D%/packages/patches/extundelete-e2fsprogs-1.44.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ %D%/packages/patches/fastcap-mulSetup.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5227f450aa..1e56154854 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2019, 2020 Alexandros Theodotou ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 Lars-Dominik Braun +;;; Copyright © 2020 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -625,63 +626,73 @@ (define-public easytag (define-public extempore (package (name "extempore") - (version "0.7.0") + (version "0.8.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/digego/extempore.git") - (commit version))) + (commit (string-append "v" version)))) (sha256 (base32 - "12fsp7zkfxb9kykwq46l88kcbbici9arczrrsl4qn87m6vm5349l")) - (file-name (string-append name "-" version "-checkout")))) + "182jy23qv115dipny7kglwbn21z55dp253w1ykm0kh8n6vkgs7gp")) + (file-name (git-file-name name version)) + (patches (search-patches + "extempore-unbundle-external-dependencies.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled sources. + (map delete-file-recursively + '("src/portaudio" + "src/pcre")) + #t)))) (build-system cmake-build-system) (arguments - `(;; The default target also includes ahead-of-time compilation of the - ;; standard libraries. However, during the "install" phase this would - ;; happen *again* for unknown reasons. Hence we only build the - ;; extempore executable during the build phase. - #:make-flags '("extempore") - #:configure-flags '("-DJACK=ON" - ;; We want to distribute. - "-DIN_TREE=OFF" - ;; Don't download any dependencies. - "-DBUILD_DEPS=OFF") + `(#:configure-flags (list "-DJACK=ON" + "-DPACKAGE=ON" + "-DEXTERNAL_SHLIBS_AUDIO=OFF" + "-DEXTERNAL_SHLIBS_GRAPHICS=OFF" + "-DCMAKE_BUILD_TYPE=Release" + (string-append "-DEXT_SHARE_DIR=" + (assoc-ref %outputs "out") + "/share")) #:modules ((ice-9 match) (guix build cmake-build-system) (guix build utils)) #:phases (modify-phases %standard-phases + (add-after 'build 'build-aot-libs + (lambda _ + (for-each (lambda (target) + (invoke "make" target)) + '("aot_base" + "aot_math" + "aot_instruments")) + #t)) + (add-after 'unpack 'patch-install-locations + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("EXT_SHARE_DIR=\"\\.\"\\)") + "EXT_SHARE_DIR=\"${EXT_SHARE_DIR}/extempore\")") + (("DESTINATION \"\\.\"\\)") "DESTINATION bin)") + (("DESTINATION \"\\.\"\n") "DESTINATION share/extempore\n")) + #t)) (add-after 'unpack 'patch-directories (lambda* (#:key outputs #:allow-other-keys) - ;; Rewrite default path to runtime directory - (substitute* "src/Extempore.cpp" - (("runtimedir \\+= \"runtime\"") - (string-append "runtimedir = \"" - (assoc-ref outputs "out") - "/lib/extempore/runtime\""))) (substitute* "extras/extempore.el" (("\\(runtime-directory \\(concat default-directory \"runtime\"\\)\\)") (string-append "(runtime-directory \"" (assoc-ref outputs "out") - "/lib/extempore/runtime" + "/share/extempore/runtime" "\")"))) #t)) (add-after 'unpack 'link-with-additional-libs (lambda _ ;; The executable must be linked with libffi and zlib. (substitute* "CMakeLists.txt" - (("add_dependencies\\(aot_extended extended_deps\\)") "") (("target_link_libraries\\(extempore PRIVATE dl" line) (string-append line " ffi z"))) #t)) - ;; FIXME: AOT compilation of the nanovg bindings fail with the error: - ;; "Compiler Error could not bind _nvgLinearGradient" - (add-after 'unpack 'disable-nanovg - (lambda _ - (substitute* "CMakeLists.txt" - (("aotcompile_lib\\(libs/external/nanovg.xtm.*") "")) - #t)) ;; FIXME: All examples that are used as tests segfault for some ;; unknown reason. (add-after 'unpack 'disable-broken-tests @@ -710,20 +721,16 @@ (define-public extempore ("gl/glcompat-directbind" "libGL.so" "mesa"))) #t)) (add-after 'unpack 'use-own-llvm - (lambda* (#:key inputs #:allow-other-keys) - (setenv "EXT_LLVM_DIR" (assoc-ref inputs "llvm")) - ;; Our LLVM builds shared libraries, so Extempore should use - ;; those. - (substitute* "CMakeLists.txt" - (("CMAKE_STATIC_LIBRARY") "CMAKE_SHARED_LIBRARY")) - #t)) + (lambda* (#:key inputs #:allow-other-keys) + (setenv "EXT_LLVM_DIR" (assoc-ref inputs "llvm")) + ;; Our LLVM builds shared libraries, so Extempore should use + ;; those. + (substitute* "CMakeLists.txt" + (("CMAKE_STATIC_LIBRARY") "CMAKE_SHARED_LIBRARY")) + #t)) (add-after 'unpack 'fix-aot-compilation (lambda* (#:key outputs #:allow-other-keys) (substitute* "CMakeLists.txt" - ;; EXT_SHARE_DIR does not exist before installation, so the - ;; working directory should be the source directory instead. - (("WORKING_DIRECTORY \\$\\{EXT_SHARE_DIR\\}") - "WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}") ;; Extempore needs to be told where the runtime is to be found. ;; While we're at it we disable automatic tuning for a specific ;; CPU to make binary substitution possible. diff --git a/gnu/packages/patches/extempore-unbundle-external-dependencies.patch b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch new file mode 100644 index 0000000000..e9484f7994 --- /dev/null +++ b/gnu/packages/patches/extempore-unbundle-external-dependencies.patch @@ -0,0 +1,140 @@ +Remove build machinery for bundled dependencies. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 89e6125e..c5e90750 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,7 +36,7 @@ endif() + if(PACKAGE) + # this needs to be set before project() is called + set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12) +- set(ASSETS ON) # necessary for packaging ++ set(ASSETS OFF) # necessary for packaging + message(STATUS "Building Extempore for binary distribution (assets directory will be downloaded)") + endif() + +@@ -134,71 +134,6 @@ else() + message(FATAL_ERROR "Sorry, Extempore isn't supported on this platform - macOS, Linux & Windows only.") + endif() + +-######## +-# PCRE # +-######## +- +-# current in-tree PCRE version: 8.38 +- +-add_library(pcre STATIC +- # headers +- src/pcre/config.h +- src/pcre/pcre.h +- src/pcre/ucp.h +- # source files +- src/pcre/pcre_chartables.c +- src/pcre/pcre_compile.c +- src/pcre/pcre_exec.c +- src/pcre/pcre_globals.c +- src/pcre/pcre_internal.h +- src/pcre/pcre_newline.c +- src/pcre/pcre_tables.c +- ) +- +-target_compile_definitions(pcre +- PRIVATE -DHAVE_CONFIG_H +- ) +- +-if(PACKAGE) +- target_compile_options(pcre +- PRIVATE -mtune=generic) +-endif() +- +-############# +-# portaudio # +-############# +- +-add_library(portaudio STATIC +- src/portaudio/src/common/pa_allocation.c +- src/portaudio/src/common/pa_allocation.h +- src/portaudio/src/common/pa_converters.c +- src/portaudio/src/common/pa_converters.h +- src/portaudio/src/common/pa_cpuload.c +- src/portaudio/src/common/pa_cpuload.h +- src/portaudio/src/common/pa_debugprint.c +- src/portaudio/src/common/pa_debugprint.h +- src/portaudio/src/common/pa_dither.c +- src/portaudio/src/common/pa_dither.h +- src/portaudio/src/common/pa_endianness.h +- src/portaudio/src/common/pa_front.c +- src/portaudio/src/common/pa_hostapi.h +- src/portaudio/src/common/pa_memorybarrier.h +- src/portaudio/src/common/pa_process.c +- src/portaudio/src/common/pa_process.h +- src/portaudio/src/common/pa_ringbuffer.c +- src/portaudio/src/common/pa_ringbuffer.h +- src/portaudio/src/common/pa_stream.c +- src/portaudio/src/common/pa_stream.h +- src/portaudio/src/common/pa_trace.c +- src/portaudio/src/common/pa_trace.h +- src/portaudio/src/common/pa_types.h +- src/portaudio/src/common/pa_util.h +- ) +- +-target_include_directories(portaudio +- PRIVATE src/portaudio/include +- PRIVATE src/portaudio/src/common) +- + # platform-specific + + if(APPLE) +@@ -224,25 +159,8 @@ if(APPLE) + + elseif(UNIX AND NOT APPLE) + # use ALSA on Linux +- target_sources(portaudio +- PRIVATE src/portaudio/src/hostapi/alsa/pa_linux_alsa.c +- PRIVATE src/portaudio/src/os/unix/pa_unix_hostapis.c +- PRIVATE src/portaudio/src/os/unix/pa_unix_util.c +- ) +- target_include_directories(portaudio +- PRIVATE src/portaudio/src/os/unix) +- target_compile_definitions(portaudio +- PRIVATE -DPA_USE_ALSA) +- target_link_libraries(portaudio +- PRIVATE asound) + + if(JACK) +- target_sources(portaudio +- PRIVATE src/portaudio/src/hostapi/jack/pa_jack.c) +- target_compile_definitions(portaudio +- PRIVATE -DPA_USE_JACK) +- target_link_libraries(portaudio +- PRIVATE jack) + endif() + + elseif(WIN32) +@@ -292,8 +210,6 @@ if(ASIO) + endif() + + if(PACKAGE) +- target_compile_options(portaudio +- PRIVATE -mtune=generic) + endif() + + ############## +@@ -411,8 +327,6 @@ endif() + + # dependencies + +-add_dependencies(extempore pcre portaudio) +- + if(BUILD_LLVM) + if(WIN32) + add_dependencies(extempore LLVM-install) +@@ -553,7 +467,7 @@ else() + install(TARGETS extempore + RUNTIME + DESTINATION ".") +- install(DIRECTORY assets runtime libs examples tests ++ install(DIRECTORY runtime libs examples + DESTINATION "." + PATTERN ".DS_Store" EXCLUDE) + endif() From 5af2a8fe96e02bd694eae0ee467df25fd4ff1b24 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 20 Apr 2020 23:56:17 +0200 Subject: [PATCH 68/69] gnu: emacs-extempore-mode: Update to 0.0.0-1.09518ae. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-extempore-mode): Update to to 0.0.0-1.09518ae. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index cb9405acf0..bf72133a88 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2455,7 +2455,7 @@ (define-public emacs-d-mode (define-public emacs-extempore-mode ;; Use the latest commit at time of packaging. There are no releases or tags. - (let ((commit "848ad0084f27b92d1cf98dabffbad29f959a642d") + (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e") (revision "1")) (package (name "emacs-extempore-mode") @@ -2468,7 +2468,7 @@ (define-public emacs-extempore-mode (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "00wr025php7nl33x541s9rjm99hj0jbdcmnw9ljx5hqpm04aqm7c")))) + (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp")))) (build-system emacs-build-system) (home-page "https://github.com/extemporelang/extempore-emacs-mode") (synopsis "Emacs major mode for Extempore source files") From afc57916e5398737e13d94b3823983783221eb63 Mon Sep 17 00:00:00 2001 From: Stefan Date: Sun, 26 Apr 2020 21:21:38 +0200 Subject: [PATCH 69/69] linux-boot: Allow the root file system to be mounted via NFS. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/build/linux-boot.scm (boot-system) Treat a root option with ":/" as an nfs source and avoid to call 'canonicalize-device-spec' for it. Signed-off-by: Ludovic Courtès --- gnu/build/linux-boot.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 4fb711b8f2..05e833c0c6 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -534,10 +534,13 @@ (define root-fs-options ;; The "--root=SPEC" kernel command-line option always provides a ;; string, but the string can represent a device, a UUID, or a ;; label. So check for all three. - (let ((root (cond ((string-prefix? "/" root) root) - ((uuid root) => identity) - (else (file-system-label root))))) - (mount-root-file-system (canonicalize-device-spec root) + (let ((device-spec (cond ((string-prefix? "/" root) root) + ((uuid root) => identity) + ((string-contains root ":/") #f) ; nfs + (else (file-system-label root))))) + (mount-root-file-system (if device-spec + (canonicalize-device-spec device-spec) + root) root-fs-type #:volatile-root? volatile-root? #:flags root-fs-flags