summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/home/services/containers.scm49
-rw-r--r--gnu/local.mk18
-rw-r--r--gnu/packages/aidc.scm23
-rw-r--r--gnu/packages/apl.scm82
-rw-r--r--gnu/packages/apple.scm59
-rw-r--r--gnu/packages/aspell.scm44
-rw-r--r--gnu/packages/audio.scm36
-rw-r--r--gnu/packages/benchmark.scm4
-rw-r--r--gnu/packages/browser-extensions.scm4
-rw-r--r--gnu/packages/calendar.scm5
-rw-r--r--gnu/packages/commencement.scm13
-rw-r--r--gnu/packages/cpp.scm4
-rw-r--r--gnu/packages/crypto.scm100
-rw-r--r--gnu/packages/databases.scm30
-rw-r--r--gnu/packages/dico.scm95
-rw-r--r--gnu/packages/dictionaries.scm80
-rw-r--r--gnu/packages/direct-connect.scm87
-rw-r--r--gnu/packages/emacs-xyz.scm24
-rw-r--r--gnu/packages/emulators.scm154
-rw-r--r--gnu/packages/engineering.scm12
-rw-r--r--gnu/packages/fcitx5.scm29
-rw-r--r--gnu/packages/finance.scm16
-rw-r--r--gnu/packages/fonts.scm80
-rw-r--r--gnu/packages/games.scm74
-rw-r--r--gnu/packages/gcc.scm21
-rw-r--r--gnu/packages/guile-xyz.scm107
-rw-r--r--gnu/packages/haskell-apps.scm4
-rw-r--r--gnu/packages/image-processing.scm23
-rw-r--r--gnu/packages/lesstif.scm23
-rw-r--r--gnu/packages/linphone.scm781
-rw-r--r--gnu/packages/linux.scm236
-rw-r--r--gnu/packages/llvm.scm9
-rw-r--r--gnu/packages/lua.scm98
-rw-r--r--gnu/packages/lxqt.scm125
-rw-r--r--gnu/packages/machine-learning.scm17
-rw-r--r--gnu/packages/mate.scm50
-rw-r--r--gnu/packages/mes.scm64
-rw-r--r--gnu/packages/messaging.scm65
-rw-r--r--gnu/packages/mpi.scm4
-rw-r--r--gnu/packages/music.scm40
-rw-r--r--gnu/packages/patches/ispell-for-linphone-cmake.patch43
-rw-r--r--gnu/packages/patches/liblinphone-jsoncpp.patch82
-rw-r--r--gnu/packages/patches/linphone-desktop-cmake-belcard.patch39
-rw-r--r--gnu/packages/patches/linphone-desktop-cmake-find-modules.patch422
-rw-r--r--gnu/packages/patches/linphone-desktop-ispell.patch24
-rw-r--r--gnu/packages/patches/linphone-desktop-qtkeychain.patch36
-rw-r--r--gnu/packages/patches/linphone-desktop-without-sdk.patch214
-rw-r--r--gnu/packages/patches/linuxdcpp-openssl-1.1.patch26
-rw-r--r--gnu/packages/patches/mediastreamer2-cmake-findgsm.patch63
-rw-r--r--gnu/packages/patches/mswebrtc-b64-refactor.patch949
-rw-r--r--gnu/packages/patches/mswebrtc-cmake.patch626
-rw-r--r--gnu/packages/patches/nyacc-binary-literals.patch29
-rw-r--r--gnu/packages/patches/soci-mysql-ddl-types.patch15
-rw-r--r--gnu/packages/patches/zig-0.15-fix-runpath.patch122
-rw-r--r--gnu/packages/photo.scm57
-rw-r--r--gnu/packages/prolog.scm4
-rw-r--r--gnu/packages/python-build.scm16
-rw-r--r--gnu/packages/python-xyz.scm385
-rw-r--r--gnu/packages/simulation.scm45
-rw-r--r--gnu/packages/suckless.scm296
-rw-r--r--gnu/packages/tcl.scm26
-rw-r--r--gnu/packages/telephony.scm36
-rw-r--r--gnu/packages/tls.scm24
-rw-r--r--gnu/packages/tor-browsers.scm46
-rw-r--r--gnu/packages/web.scm39
-rw-r--r--gnu/packages/xfce.scm2
-rw-r--r--gnu/packages/zig.scm182
-rw-r--r--gnu/services/dict.scm1
-rw-r--r--gnu/tests/containers.scm84
-rw-r--r--gnu/tests/docker.scm104
70 files changed, 4480 insertions, 2346 deletions
diff --git a/gnu/home/services/containers.scm b/gnu/home/services/containers.scm
new file mode 100644
index 0000000000..1ccdb3b246
--- /dev/null
+++ b/gnu/home/services/containers.scm
@@ -0,0 +1,49 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2025 Giacomo Leidi <goodoldpaul@autistici.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu home services containers)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services shepherd)
+ #:use-module (gnu services)
+ #:use-module (gnu services configuration)
+ #:use-module (gnu services containers)
+ #:use-module (guix gexp)
+ #:use-module (guix packages)
+ #:use-module (srfi srfi-1)
+ #:export (home-oci-service-type))
+
+(define home-oci-service-type
+ (service-type
+ (inherit (system->home-service-type oci-service-type))
+ (extensions
+ (list
+ (service-extension home-profile-service-type
+ (lambda (config)
+ (let ((runtime-cli
+ (oci-configuration-runtime-cli config))
+ (runtime
+ (oci-configuration-runtime config)))
+ (oci-service-profile runtime runtime-cli))))
+ (service-extension home-shepherd-service-type
+ oci-configuration->shepherd-services)))
+ (extend
+ (lambda (config extension)
+ (for-home
+ (oci-configuration
+ (inherit (oci-configuration-extend config extension))))))
+ (default-value (for-home (oci-configuration)))))
diff --git a/gnu/local.mk b/gnu/local.mk
index 74a85cad36..1041186575 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -105,6 +105,7 @@ GNU_SYSTEM_MODULES = \
%D%/home/services.scm \
%D%/home/services/admin.scm \
%D%/home/services/backup.scm \
+ %D%/home/services/containers.scm \
%D%/home/services/desktop.scm \
%D%/home/services/dict.scm \
%D%/home/services/dotfiles.scm \
@@ -146,7 +147,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/anthy.scm \
%D%/packages/antivirus.scm \
%D%/packages/apl.scm \
- %D%/packages/apple.scm \
%D%/packages/apparmor.scm \
%D%/packages/appimage.scm \
%D%/packages/apr.scm \
@@ -239,13 +239,11 @@ GNU_SYSTEM_MODULES = \
%D%/packages/dezyne.scm \
%D%/packages/decker.scm \
%D%/packages/dhall.scm \
- %D%/packages/dico.scm \
%D%/packages/dictd.scm \
%D%/packages/dotnet.scm \
%D%/packages/dictionaries.scm \
%D%/packages/diffoscope.scm \
%D%/packages/digest.scm \
- %D%/packages/direct-connect.scm \
%D%/packages/disk.scm \
%D%/packages/distributed.scm \
%D%/packages/display-managers.scm \
@@ -1620,7 +1618,8 @@ dist_patch_DATA = \
%D%/packages/patches/insight-toolkit-fix-build.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
- %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
+ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
+ %D%/packages/patches/ispell-for-linphone-cmake.patch \
%D%/packages/patches/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch\
%D%/packages/patches/jami-disable-webengine.patch \
%D%/packages/patches/jami-enable-testing.patch \
@@ -1769,6 +1768,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
+ %D%/packages/patches/liblinphone-jsoncpp.patch \
%D%/packages/patches/libphonenumber-reproducible-build.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
@@ -1804,7 +1804,8 @@ dist_patch_DATA = \
%D%/packages/patches/lierolibre-remove-arch-warning.patch \
%D%/packages/patches/lierolibre-try-building-other-arch.patch \
%D%/packages/patches/libcdio-glibc-compat.patch \
- %D%/packages/patches/linphone-desktop-without-sdk.patch \
+ %D%/packages/patches/linphone-desktop-ispell.patch \
+ %D%/packages/patches/linphone-desktop-qtkeychain.patch \
%D%/packages/patches/linux-libre-infodocs-target.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-libre-arm64-mnt-reform-revert-phy-rockchip-samsung.patch \
@@ -1812,7 +1813,6 @@ dist_patch_DATA = \
%D%/packages/patches/linux-libre-arm64-mnt-reform-revert-vop2-display-modes.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/linux-pam-unix_chkpwd.patch \
- %D%/packages/patches/linuxdcpp-openssl-1.1.patch \
%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 \
@@ -1859,6 +1859,7 @@ dist_patch_DATA = \
%D%/packages/patches/lvm2-no-systemd.patch \
%D%/packages/patches/maturin-no-cross-compile.patch \
%D%/packages/patches/mecab-variable-param.patch \
+ %D%/packages/patches/mediastreamer2-cmake-findgsm.patch \
%D%/packages/patches/mediasdk-gcc-14.patch \
%D%/packages/patches/memtest86+-build-reproducibly.patch \
%D%/packages/patches/mercurial-hg-extension-path.patch \
@@ -1900,6 +1901,8 @@ dist_patch_DATA = \
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
%D%/packages/patches/mrrescue-support-love-11.patch \
%D%/packages/patches/mrustc-patches.patch \
+ %D%/packages/patches/mswebrtc-b64-refactor.patch \
+ %D%/packages/patches/mswebrtc-cmake.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/musescore-fix-build.patch \
@@ -1940,7 +1943,6 @@ dist_patch_DATA = \
%D%/packages/patches/nvi-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
%D%/packages/patches/nvi-db4.patch \
- %D%/packages/patches/nyacc-binary-literals.patch \
%D%/packages/patches/obs-modules-location.patch \
%D%/packages/patches/ocaml-ctypes-test-oo.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \
@@ -2073,6 +2075,7 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-matrix_declarations.patch \
%D%/packages/patches/sdl-pango-sans-serif.patch \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
+ %D%/packages/patches/soci-mysql-ddl-types.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/strace-readlink-tests.patch \
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \
@@ -2503,6 +2506,7 @@ dist_patch_DATA = \
%D%/packages/patches/zig-0.14-fix-runpath.patch \
%D%/packages/patches/zig-0.14-use-baseline-cpu-by-default.patch \
%D%/packages/patches/zig-0.14-use-system-paths.patch \
+ %D%/packages/patches/zig-0.15-fix-runpath.patch \
%D%/packages/patches/zsh-egrep-failing-test.patch \
%D%/packages/patches/zuo-bin-sh.patch \
%D%/packages/patches/zxing-cpp-1.2.0-gcc-14.patch \
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index d8aa9ab2f9..5d1ead9bcc 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -122,29 +122,6 @@ integration of this capability into your own programs.")
(home-page "https://github.com/zxing-cpp/zxing-cpp")
(license license:asl2.0)))
-;;; This older variant is kept for kaidan, liblinphone and yosys-clang.
-(define-public zxing-cpp-1.2a
- ;; Use the master branch as it includes unreleased build system improvements
- ;; allowing to use system libraries (instead of attempting to fetch them
- ;; from the Internet).
- (let ((revision "0")
- (commit "00783db7aa3bcf8620a301854ac71c0ceaaca0c1"))
- (package/inherit zxing-cpp
- (name "zxing-cpp")
- (version (git-version "1.2.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/zxing-cpp/zxing-cpp")
- (commit commit)))
- (patches (search-patches "zxing-cpp-1.2.0-gcc-14.patch"))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1yl2cpaqiv1g4nq9v0xfj1vd5faz55k4541vz6hsffvcxgn9nmc5"))))
- (arguments '(#:configure-flags '()))
- (native-inputs (list fmt-8 googletest)))))
-
;;; This older variant is kept for gst-plugins-bad (see:
;;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1684).
(define-public zxing-cpp-1.2
diff --git a/gnu/packages/apl.scm b/gnu/packages/apl.scm
index 5d159a90ef..3312ce2fb5 100644
--- a/gnu/packages/apl.scm
+++ b/gnu/packages/apl.scm
@@ -28,12 +28,10 @@
#:use-module (guix svn-download)
#:use-module (guix gexp)
#:use-module (guix packages)
- #:use-module (guix build-system font)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
- #:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages java)
#:use-module (gnu packages maths)
@@ -86,86 +84,6 @@
an implementation of the ISO standard 13751.")
(license license:gpl3+))))
-(define-public font-apl2741-unicode
- (let ((commit "1e11efae38e5095bfe49a786b111d563e83dad03"))
- (package
- (name "font-apl2741-unicode")
- (version "1668049300")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/abrudz/APL2741.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0i1yk1x99lr2swlbq9r7dny5w70zwiwi8lpfcw4n7k7pfbw0xh7y"))))
- (build-system trivial-build-system)
- (native-inputs (list fontforge))
- (arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let* ((source (assoc-ref %build-inputs "source"))
- (out (assoc-ref %outputs "out"))
- (dest (string-append out "/share/fonts/truetype"))
- (fontforge (string-append
- (assoc-ref %build-inputs "fontforge")
- "/bin/fontforge")))
- (mkdir-p dest)
- (invoke fontforge "-lang=ff" "-c" "Open($1); Generate($2)"
- (string-append source "/APL2741.sfd")
- (string-append dest "/APL2741.ttf"))))))
- (synopsis "APL2741 Unicode font")
- (home-page "https://abrudz.github.io/APL2741/")
- (description "APL font based on Adrian Smith's IBM Selectric APL2741
-golf-ball font. It supports most special characters used by popular APL
-implementations, some additional mathematical and typographical symbols,
-single line drawing characters, as well as the full Unicode APL range,
-including both uppercase and lowercase underscored alphabets, as-of-yet unused
-symbols, and almost all Latin-1 accented letters.")
- (license license:unlicense))))
-
-(define-public font-apl333
- (package
- (name "font-apl333")
- ;; Version number as for apl-385, last modified 2013-04-20.
- (version "20130420")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://apl385.com/fonts/" "apl333.zip"))
- (sha256
- (base32 "0yn0ha7d14vp4ma3lxbc9kpyrn20m7brjisr6w55c9mi24w9v3a5"))))
- (build-system font-build-system)
- (home-page "https://apl385.com/fonts/index.htm")
- (synopsis "Variable-width APL font inspired by Comic Sans Serif")
- (description
- "Variable-width version of Adrian Smith's APL385 font developed with APL
-software vendors in the late 1980s.")
- (license license:public-domain)))
-
-(define-public font-apl385
- (package
- (name "font-apl385")
- ;; No version number or release, unzipping source and checking file times
- ;; shows the font file was last modified on 2016-08-21.
- (version "20160821")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://apl385.com/fonts/" "apl385.zip"))
- (sha256
- (base32 "132qfsnx0v6qf8x8iy3flivv449nz42nnpkwjysmz65w6wqxpk1g"))))
- (build-system font-build-system)
- (home-page "https://apl385.com/fonts/index.htm")
- (synopsis "Monospaced APL font inspired by Comic Sans Serif")
- (description
- "Adrian Smith's monospaced APL font developed with APL software vendors
-in the late 1980s.")
- (license license:public-domain)))
-
(define-public dzaima-apl
(package
(name "dzaima-apl")
diff --git a/gnu/packages/apple.scm b/gnu/packages/apple.scm
deleted file mode 100644
index b59eee1802..0000000000
--- a/gnu/packages/apple.scm
+++ /dev/null
@@ -1,59 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2022 B. Wilson <elaexuotee@wilsonb.com>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages apple)
- #:use-module (gnu packages bison)
- #:use-module (guix build-system gnu)
- #:use-module (guix packages)
- #:use-module (guix git-download)
- #:use-module ((guix licenses) #:prefix license:))
-
-(define-public apple-bash
- (package
- (name "apple-bash")
- (version "125")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/apple-oss-distributions/bash.git")
- (commit (string-append "bash-" version))))
- (sha256
- (base32 "1d4s1z57yiyhgb6i22kb9al31j1fv9a4rp1bb747ny6grdvc4919"))
- (file-name (git-file-name name version))))
- (build-system gnu-build-system)
- (native-inputs (list bison))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'configure 'pre-configure
- (lambda _
- ;; An XCode project wraps the actual bash source.
- (chdir "bash-3.2")
- ;; The xlocale.h header was removed in glibc 2.26.
- (substitute* "lib/glob/smatch.c"
- (("xlocale.h") "locale.h"))
- ;; EBADEXEC is XNU-specific.
- (substitute* "execute_cmd.c"
- (("EBADEXEC") "ENOEXEC")))))))
- (home-page "https://github.com/apple-oss-distributions/bash/")
- (synopsis "Bash used on Apple macOS systems")
- (description
- "This is the version of Bash, forked from GNU Bash 3.2, released on Apple
-macOS systems.")
- (license license:gpl2+)))
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index ffb13025f3..8c192b1604 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2021 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,6 +35,9 @@
(define-module (gnu packages aspell)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (guix utils)
@@ -438,3 +442,43 @@ dictionaries, including personal ones.")
European languages.")
(home-page "https://www.cs.hmc.edu/~geoff/ispell.html")
(license bsd-3)))
+
+;;; This is basically ispell but built with CMake, and which provides a CMake
+;;; config file.
+(define-public ispell-for-linphone
+ (let ((commit "05574fe160222c3d0b6283c1433c9b087271fad1")
+ (revision "0"))
+ (package
+ (inherit ispell)
+ (name "ispell-for-linphone")
+ ;; The version is captured in the ISPELL_VERSION variable in the
+ ;; CMakeLists.txt file at the root of the project.
+ (version (git-version "3.4.05" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/external/ispell")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0shwbms6y0i18n2qnvjlbwfmzk5rydlp7wbf4dl1rn74r244p132"))
+ (patches (search-patches "ispell-for-linphone-cmake.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (substitute-keyword-arguments (package-arguments ispell)
+ ((#:modules _ ''())
+ '((guix build cmake-build-system)
+ (guix build utils)
+ (srfi srfi-26)))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (add-before 'configure 'really-configure
+ (assoc-ref %standard-phases 'configure))
+ (add-after 'configure 'install-headers
+ (lambda _
+ (let ((include-dir (string-append #$output "/include/ISpell")))
+ (with-directory-excursion "../source"
+ (for-each (cut install-file <> include-dir)
+ '("config.h" "defhash.h" "ispell.h"
+ "libispell.h" "local.h")))))))))))))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 066621037e..e01d0def8f 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2016–2023 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020, 2024 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
-;;; Copyright © 2018, 2020, 2022-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2020, 2022-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org>
@@ -1922,7 +1922,7 @@ synthesis.")
(define-public snapcast
(package
(name "snapcast")
- (version "0.29.0")
+ (version "0.32.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1931,21 +1931,21 @@ synthesis.")
(file-name (git-file-name name version))
(sha256
(base32
- "1960xp54vsndj9vvc03kx9kg9phdchdgrfghhvcp2b0nfq2qcqqm"))))
+ "06hllji1621f29g6ymbysi1vkndjsrwj63f5ph30f6kvv3c8sqx4"))))
(build-system cmake-build-system)
- (arguments
- '(#:tests? #f)) ; no included tests
+ (arguments '(#:tests? #f)) ;no included tests
(inputs
- (list boost
- libvorbis
- soxr
- alsa-lib
+ (list alsa-lib
avahi
- pulseaudio
+ boost
+ expat
flac
- opus))
- (native-inputs
- (list pkg-config))
+ libvorbis
+ openssl
+ opus
+ pulseaudio
+ soxr))
+ (native-inputs (list pkg-config))
(home-page "https://github.com/badaix/snapcast")
(synopsis "Synchronous multiroom audio player")
(description
@@ -6479,16 +6479,16 @@ workstations as well as consumer software such as music players.")
(define-public redkite
(package
(name "redkite")
- (version "1.3.1") ;marked unmaintained as of Oct. 2021
+ (version "2.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/free-sm/redkite")
+ (url "https://github.com/quamplex/redkite")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1zb2k2a4m7z2ravqrjn8fq8lic20wbr2m8kja3p3113jsk7j9zvd"))))
+ (base32 "1xn7vnv7zszy0f1ynxd7qn0131w0gmk3rp3my4xjh143dhck4q4b"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no tests included
@@ -6496,13 +6496,13 @@ workstations as well as consumer software such as music players.")
(list cairo))
(native-inputs
(list pkg-config))
- (synopsis "Small GUI toolkit")
+ (synopsis "Lightweight graphics widget toolkit for embedded GUI")
(description "Redkite is a small GUI toolkit developed in C++17 and
inspired from other well known GUI toolkits such as Qt and GTK. It is
minimal on purpose and is intended to be statically linked to applications,
therefore satisfying any requirements they may have to be self contained,
as is the case with audio plugins.")
- (home-page "https://gitlab.com/geontime/redkite")
+ (home-page "https://github.com/quamplex/redkite")
(license license:gpl3+)))
(define-public carla
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index c20722245f..6f705e760c 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -233,7 +233,7 @@ This can give a much better understanding of the command's performance.")
(define-public benchmark
(package
(name "benchmark")
- (version "1.5.6")
+ (version "1.9.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -242,7 +242,7 @@ This can give a much better understanding of the command's performance.")
(file-name (git-file-name name version))
(sha256
(base32
- "030g4d8vpn2442dsap0qw86lsw7xfl36k0x0x9bn0vvm11qvjn8c"))))
+ "05b5sf0dmgr5s9dbvasg8rndh754kkc4chni6ynqa1h8m5q0kg1z"))))
(build-system cmake-build-system)
(native-inputs
`(("googletest-source" ,(package-source googletest))
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 934466f951..5fc5d385d0 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -328,7 +328,7 @@ with the @uref{https://keepassxc.org, KeePassXC} password manager.")
(define noscript
(package
(name "noscript")
- (version "13.0.8")
+ (version "13.0.9")
(source (origin
(method url-fetch/zipbomb)
(uri (string-append
@@ -336,7 +336,7 @@ with the @uref{https://keepassxc.org, KeePassXC} password manager.")
".xpi"))
(sha256
(base32
- "1p6jrz22jjzcqlbza2v8nix2sx9xjgl43vmm43hwrf9w13z8r5wx"))))
+ "1xbisx3xqak9aj7nb2lh94an6yfldsl6a2g2qc87vxi1zwdbcnjj"))))
(build-system copy-build-system)
(properties '((addon-id . "{73a6fe31-595d-460b-a920-fcc0f8843232}")))
(arguments
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index da8b558c6f..ae3047f13b 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2025 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -278,7 +279,7 @@ command-line interface} and a @acronym{TUI, textual user interface} named
(define-public remind
(package
(name "remind")
- (version "5.0.5")
+ (version "6.0.1")
(source
(origin
(method url-fetch)
@@ -289,7 +290,7 @@ command-line interface} and a @acronym{TUI, textual user interface} named
".")
".tar.gz"))
(sha256
- (base32 "0yc0lfrl0zzc1bn5fkigararg44bdryis7vjnm8vzs21as9r0dbz"))))
+ (base32 "01zhs8lgncpm1229s7b49fhnwwnxyyan845gb47ppkfn03vvc187"))))
(properties
`((output-synopsis "tcl" "graphical front-end to Remind calendar program")))
(build-system gnu-build-system)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 1971417a95..90cb365c42 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3750,17 +3750,8 @@ is the GNU Compiler Collection.")
;; automatically "redirects" them to 'gcc-toolchain'.
(deprecated-package "gcc" gcc-toolchain))
-
-(define-public gdc-toolchain-10
- (package (inherit (make-gcc-toolchain gdc-10))
- (synopsis "Complete GCC tool chain for D lang development")
- (description "This package provides a complete GCC tool chain for
-D lang development to be installed in user profiles. This includes
-gdc, as well as libc (headers and binaries, plus debugging symbols
-in the @code{debug} output), and binutils.")))
-
-(define-public gdc-toolchain-11
- (package (inherit (make-gcc-toolchain gdc-11))
+(define-public gdc-toolchain
+ (package (inherit (make-gcc-toolchain gdc))
(synopsis "Complete GCC tool chain for D lang development")
(description "This package provides a complete GCC tool chain for
D lang development to be installed in user profiles. This includes
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index e060795da9..a12dcb9d91 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2041,8 +2041,10 @@ other values of screen objects, by setting their values as the tween starting
point and then, after each tween step, plugging back the result.")
(license license:expat)))
-;;; This older LTS release is kept for tensorflow.
(define-public abseil-cpp-20200923.3
+ ;; "guix refresh -l" shows no dependents of this package, but by input
+ ;; rewriting, grpc-1.16.1 depends on it;
+ ;; in turn this is an input to hyperledger-iroha and tensorflow.
(package
(name "abseil-cpp")
(version "20200923.3")
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index e85017ee2d..2459f2695f 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -23,7 +23,7 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021, 2022 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2022 Allan Adair <allan@adair.no>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2024-2025 Maxim Cournoyer <maxim@guixoic.coop>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
@@ -137,55 +137,59 @@ fast, secure, parallelizable, capable of incremental updates.")
(license (list license:asl2.0 license:cc0)))) ; dual licensed
(define-public libdecaf
- (package
- (name "libdecaf")
- (version "1.0.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://git.code.sf.net/p/ed448goldilocks/code")
- (commit
- (string-append "v" version))))
- (file-name
- (git-file-name name version))
- (sha256
- (base32 "1ajgmyvc6a4m1h2hg1g4wz7ibx10x1xys9m6ancnmmf1f2srlfly"))))
- (build-system cmake-build-system)
- (outputs '("out" "python" "doc"))
- (arguments
- `(#:configure-flags '("-DENABLE_STATIC=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-python-binding
- (lambda _
- (substitute* "python/setup.py"
- (("gmake")
- "make")
- (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
- "'..', '..', 'build', 'src', 'libdecaf.so'"))))
- (add-after 'install 'install-python-binding
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion "../source/python"
- (invoke "python" "setup.py" "install"
- (string-append "--prefix=" (assoc-ref outputs "python"))
- "--root=/"))))
- (add-after 'install-python-binding 'install-documentation
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "make" "doc")
- (let* ((doc (assoc-ref outputs "doc"))
- (dest (string-append doc "/share/doc")))
- (copy-recursively "doc" dest)))))))
- (native-inputs
- `(("dot" ,graphviz)
- ("doxygen" ,doxygen)
- ("python" ,python-wrapper)))
- (synopsis "Decaf Elliptic Curve Library")
- (description "The libdecaf library is an implementation of elliptic curve
+ ;; The 1.0.2 release fails due to some compiler warning treated as an error
+ ;; (see: https://sourceforge.net/p/ed448goldilocks/tickets/16/). Use the
+ ;; latest commit available.
+ (let ((commit "e5cc6240690d3ffdfcbdb1e4e851954b789cd5d9")
+ (revision "0"))
+ (package
+ (name "libdecaf")
+ (version (git-version "1.0.2" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.code.sf.net/p/ed448goldilocks/code")
+ (commit commit)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32
+ "1gxf503cnmgsv7s0dm82rrizjhifdhdh42sfvbfsdj55syjnv1p2"))))
+ (build-system cmake-build-system)
+ (outputs '("out" "python" "doc"))
+ (arguments
+ (list #:imported-modules (append %cmake-build-system-modules
+ %python-build-system-modules)
+ #:modules '((guix build cmake-build-system)
+ ((guix build python-build-system) #:prefix python:)
+ (guix build utils))
+ #:configure-flags #~(list "-DENABLE_STATIC=OFF")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-python-binding
+ (lambda _
+ (substitute* "python/setup.py"
+ (("gmake")
+ "make")
+ (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
+ "'..', '..', 'build', 'src', 'libdecaf.so'"))))
+ (add-after 'unpack 'ensure-no-mtimes-pre-1980
+ (assoc-ref python:%standard-phases 'ensure-no-mtimes-pre-1980))
+ (add-after 'install 'install-python-binding
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (with-directory-excursion "../source/python"
+ (invoke "python" "setup.py" "install"
+ (string-append
+ "--prefix="
+ (python:site-packages inputs outputs)))))))))
+ (native-inputs (list python-minimal-wrapper))
+ (synopsis "Decaf Elliptic Curve Library")
+ (description "The libdecaf library is an implementation of elliptic curve
cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
Ed448-Goldilocks and Curve448, using the Decaf encoding.")
- (home-page "https://ed448goldilocks.sourceforge.net/")
- (license (list license:expat ;library
- license:bsd-2)))) ;python bindings
+ (home-page "https://ed448goldilocks.sourceforge.net/")
+ (license (list license:expat ;library
+ license:bsd-2))))) ;python bindings
(define-public libsodium
(package
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 1500fbe145..a8196648f6 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -5803,24 +5803,26 @@ The drivers officially supported by @code{libdbi} are:
(file-name (git-file-name name version))
(sha256
(base32
- "12aq7pama96l2c1kmfkclb4bvrsxs9a8ppgk5gmzw45w2lg35i0y"))))
+ "12aq7pama96l2c1kmfkclb4bvrsxs9a8ppgk5gmzw45w2lg35i0y"))
+ (patches (search-patches "soci-mysql-ddl-types.patch"))))
(build-system cmake-build-system)
(propagated-inputs
;; Headers of soci has include-references to headers of these inputs.
- `(("firebird" ,firebird)
- ("postgresql" ,postgresql)
- ("sqlite" ,sqlite)
- ("odbc" ,unixodbc)
- ("boost" ,boost)
- ("mariadb:dev" ,mariadb "dev")))
+ (list firebird
+ postgresql
+ sqlite
+ unixodbc
+ boost
+ `(,mariadb "dev")))
(arguments
- `(#:configure-flags
- ;; C++11 (-DSOCI_CXX11) is OFF by default. hyperledger-iroha needs it.
- (list "-DCMAKE_CXX_STANDARD=17"
- "-DSOCI_LIBDIR=lib"
- ;; This is for relocation when linking statically
- "-DCMAKE_CXX_FLAGS=-fPIE")
- #:tests? #f)) ; may require running database management systems
+ (list #:configure-flags
+ ;; C++11 (-DSOCI_CXX11) is OFF by default. hyperledger-iroha needs
+ ;; it.
+ #~(list "-DCMAKE_CXX_STANDARD=17"
+ "-DSOCI_LIBDIR=lib"
+ ;; This is for relocation when linking statically
+ "-DCMAKE_CXX_FLAGS=-fPIE")
+ #:tests? #f)) ; may require running database management systems
(synopsis "C++ Database Access Library")
(description
"SOCI is an abstraction layer for several database backends, including
diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm
deleted file mode 100644
index 16cd2ebd83..0000000000
--- a/gnu/packages/dico.scm
+++ /dev/null
@@ -1,95 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015-2016, 2018, 2024-2025 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages dico)
- #:use-module (guix packages)
- #:use-module ((guix licenses) #:select (gpl3+))
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
- #:use-module (gnu packages)
- #:use-module (gnu packages bash)
- #:use-module (gnu packages crypto)
- #:use-module (gnu packages readline)
- #:use-module (gnu packages m4)
- #:use-module (gnu packages groff)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages python)
- #:use-module (gnu packages pcre)
- #:use-module (gnu packages gsasl)
- #:use-module (gnu packages autotools)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages wordnet))
-
-(define-public dico
- (package
- (name "dico")
- (version "2.12")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/dico/dico-"
- version ".tar.xz"))
- (sha256
- (base32
- "1xvahrav8aml90qcj4cj3a33y0n7nm1k0ywgks1zy2q91v2qk2vj"))))
- (build-system gnu-build-system)
- (arguments
- '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output
- "/share/guile/site/2.0")
- "--disable-static")
- #:phases (modify-phases %standard-phases
- (add-before 'build 'set-shell-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- ;; This code invokes "/bin/sh -c 'm4 -s ...'".
- (substitute* "grecs/src/grecs-lex.c"
- (("\"/bin/sh\"")
- (string-append "\""
- (search-input-file inputs "/bin/sh")
- "\"")))))
- (add-before 'check 'silence-guile
- (lambda _
- ;; Guile is too talkative, which disturbs the test
- ;; infrastructure. Gag it.
- (setenv "GUILE_AUTO_COMPILE" "0")
- (setenv "GUILE_WARN_DEPRECATED" "no"))))))
- (native-inputs (list groff))
- (inputs
- (list m4 ;used at run time
- bash-minimal ;likewise
- pcre
- python-wrapper
- guile-2.2
- gsasl
- readline
- zlib
- wordnet
- libxcrypt ;for 'crypt'
- libltdl))
- (home-page "https://www.gnu.org.ua/software/dico/")
- (synopsis "Implementation of DICT server (RFC 2229)")
- (description
- "GNU Dico implements a flexible dictionary server and client according to
-RFC 2229 (DICT Server). It is able to access any database available,
-regardless of format, thanks to its modular structure. New modules may be
-written in C, Guile or Python. Dico also includes a command-line client,
-which may be used to query remote dictionary databases.")
- (license gpl3+)))
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index f51ed24111..5e53675ea7 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -1,15 +1,19 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2016, 2021, 2024 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2016, 2018, 2021, 2024, 2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016-2018, 2020-2023, 2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2018, 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Lu hux <luhux@outlook.com>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2022 ROCKTAKEY <rocktakey@gmail.com>
;;; Copyright © 2022 Runciter <runciter@whispers-vpn.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2025 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,27 +45,87 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages dictd)
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages groff)
+ #:use-module (gnu packages gsasl)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages m4)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
- #:use-module (gnu packages texinfo)
- #:use-module (gnu packages compression)
+ #:use-module (gnu packages speech)
#:use-module (gnu packages tcl)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages web)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages dictd)
- #:use-module (gnu packages speech)
- #:use-module (gnu packages perl))
+ #:use-module (gnu packages wordnet)
+ #:use-module (gnu packages xml))
+(define-public dico
+ (package
+ (name "dico")
+ (version "2.12")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/dico/dico-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1xvahrav8aml90qcj4cj3a33y0n7nm1k0ywgks1zy2q91v2qk2vj"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list "--disable-static")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-shell-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; This code invokes "/bin/sh -c 'm4 -s ...'".
+ (substitute* "grecs/src/grecs-lex.c"
+ (("\"/bin/sh\"")
+ (string-append "\""
+ (search-input-file inputs "/bin/sh")
+ "\"")))))
+ (add-before 'check 'silence-guile
+ (lambda _
+ ;; Guile is too talkative, which disturbs the test
+ ;; infrastructure. Gag it.
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (setenv "GUILE_WARN_DEPRECATED" "no"))))))
+ (native-inputs (list groff))
+ (inputs
+ (list m4 ;used at run time
+ bash-minimal ;likewise
+ pcre
+ python-wrapper
+ guile-3.0
+ gsasl
+ readline
+ zlib
+ wordnet
+ libxcrypt ;for 'crypt'
+ libltdl))
+ (home-page "https://www.gnu.org.ua/software/dico/")
+ (synopsis "Implementation of DICT server (RFC 2229)")
+ (description
+ "GNU Dico implements a flexible dictionary server and client according to
+RFC 2229 (DICT Server). It is able to access any database available,
+regardless of format, thanks to its modular structure. New modules may be
+written in C, Guile or Python. Dico also includes a command-line client,
+which may be used to query remote dictionary databases.")
+ (license license:gpl3+)))
(define-public vera
(package
diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm
deleted file mode 100644
index 8c816ce714..0000000000
--- a/gnu/packages/direct-connect.scm
+++ /dev/null
@@ -1,87 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages direct-connect)
- #:use-module (guix build-system scons)
- #:use-module (guix deprecation)
- #:use-module (guix gexp)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (gnu packages)
- #:use-module (gnu packages boost)
- #:use-module (gnu packages build-tools)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages gettext)
- #:use-module (gnu packages gnome)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages tls)
- #:use-module (gnu packages version-control))
-
-;; TODO Remove on the next python-team iteration.
-;; Unmaintained for 14 years, tried updating it here:
-;; https://lists.sr.ht/~ngraves/devel/patches/60080
-;; but it's too hard for most likely no users.
-;; If you use this package, let python-team know or try to fix it.
-(define-deprecated/public linuxdcpp #f
- (package
- (name "linuxdcpp")
- (version "1.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://launchpad.net/linuxdcpp/1.1/1.1.0/+download/linuxdcpp-"
- version ".tar.bz2"))
- (sha256
- (base32 "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6"))
- (patches (search-patches "linuxdcpp-openssl-1.1.patch"))
- (modules '((guix build utils)))
- (snippet
- #~(begin
- (substitute* "SConstruct"
- ;; This compares single char[]acters in the version string, and
- ;; broke when GCC went into double digits.
- (("conf.CheckCXXVersion\\([^\\)]*\\)")
- "True")
- ;; Not all valid C++98 code is valid C++14 (and higher) code.
- (("'-D_REENTRANT'" match)
- (string-append match ", '-std=gnu++98'")))))))
- (build-system scons-build-system)
- (arguments
- `(#:scons ,scons-python2
- #:scons-flags (list (string-append "PREFIX=" %output))
- #:tests? #f)) ; no tests
- (inputs
- (list boost
- bzip2
- gtk+-2
- libglade
- libnotify
- openssl))
- (native-inputs
- (list bazaar gettext-minimal pkg-config))
- (home-page "https://launchpad.net/linuxdcpp/")
- (synopsis "Direct Connect client")
- (description "LinuxDC++ is a Direct Connect (DC) client. Direct Connect
-is a peer-to-peer file-sharing protocol. Clients connect to a central hub
-where they can chat or share files with one another. Users can view other
-users' list of shared files or search the hub for files.")
- (license license:gpl2+)))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 2d0563fe3d..ef7ab1855c 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -30623,6 +30623,30 @@ When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
current upstream.")
(license license:gpl3+)))
+(define-public emacs-ultra-scroll
+ (package
+ (name "emacs-ultra-scroll")
+ (version "0.4.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jdtsmith/ultra-scroll")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0k1xqkxq89mz8dvzbfpks3jnrcmbd0hcz8a0hib1m3ka55hpczqz"))))
+ (build-system emacs-build-system)
+ (arguments (list #:tests? #f)) ;no tests
+ (home-page "https://github.com/jdtsmith/ultra-scroll")
+ (synopsis "Scroll Emacs like lightning")
+ (description
+ "@code{ultra-scroll} is a smooth-scrolling package for Emacs. It
+provides highly optimized, pixel-precise smooth-scrolling which can readily
+keep up with the very high event rates of modern track-pads and high-precision
+wheel mice.")
+ (license license:gpl3+)))
+
(define-public emacs-smooth-scroll
(package
(name "emacs-smooth-scroll")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index bb0bd898e1..f86fcedd56 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -4352,72 +4352,96 @@ on a Commodore C64, C128 etc.")
(license license:zlib)))
(define-public flycast
- (package
- (name "flycast")
- (version "2.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/flyinghead/flycast")
- (commit (string-append "v" version))
- ;; There are many bundled packages here included as git
- ;; submodules. Removing many of them would require patching the
- ;; source code and repository layout.
- (recursive? #t)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
- (modules '((guix build utils)))
- (snippet #~(begin
- (substitute* "CMakeLists.txt"
- (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
- "find_package(VulkanHeaders)"))
- (with-directory-excursion "core/deps"
- (for-each delete-file-recursively
- '("SDL"
- "Spout"
- "Syphon"
- "Vulkan-Headers"
- "breakpad"
- "discord-rpc"
- "libzip"
- "oboe")))))))
- (build-system cmake-build-system)
- (arguments
- (list
- #:tests? #f ; no test suite
- #:configure-flags
- #~(list "-DUSE_ALSA=ON"
- "-DUSE_BREAKPAD=OFF"
- "-DUSE_DX11=OFF"
- "-DUSE_DX9=OFF"
- ;; The USE_HOST_GLSLANG option is not implemented correctly.
- ;; (see: https://github.com/flyinghead/flycast/issues/1843)
- "-DUSE_HOST_GLSLANG=OFF"
- "-DUSE_HOST_LIBZIP=ON"
- "-DUSE_HOST_SDL=ON"
- "-DUSE_LIBAO=ON"
- "-DUSE_LUA=ON"
- "-DUSE_PULSEAUDIO=ON"
- "-DUSE_VULKAN=ON")))
- (inputs (list alsa-lib
- ao
- curl
- glslang
- libzip
- lua
- miniupnpc
- pulseaudio
- sdl2
- spirv-tools
- vulkan-headers
- pkg-config))
- (home-page "https://github.com/flyinghead/flycast")
- (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
- (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
+ ;; Use a git snapshot as the latest 2.5 release is still on an older glslang
+ ;; version that doesn't build with GCC 14.
+ (let ((commit "33833cfd1ed2d94d907223442fdb8cdafd8d5d80")
+ (revision "0"))
+ (package
+ (name "flycast")
+ (version (git-version "2.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flyinghead/flycast")
+ (commit commit)
+ ;; There are many bundled packages here included as git
+ ;; submodules, but removing many of them would require patching
+ ;; the source code and repository layout (see: <>).
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16vwhw33zhq2b8mpg863cn7sz4f04wxjz2650jgqjv7i5lkdd1g9"))
+ (modules '((guix build utils)))
+ (snippet #~(begin
+ ;; TODO: Uncomment after our vulkan-headers
+ ;; are update to 1.3.261.0 or newer.
+ ;; (substitute* "CMakeLists.txt"
+ ;; (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+ ;; "find_package(VulkanHeaders)"))
+ (with-directory-excursion "core/deps"
+ (for-each
+ delete-file-recursively
+ '("SDL"
+ "Spout"
+ "Syphon"
+ ;; TODO: Uncomment after our vulkan-headers
+ ;; are update to 1.3.261.0 or newer.
+ ;;"Vulkan-Headers"
+ "breakpad"
+ "discord-rpc"
+ ;; XXX: The libretro build requires the bundled
+ ;; libzip, which it uses to produce a
+ ;; static library.
+ ;;"libzip"
+ "oboe")))))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:configure-flags
+ #~(list "-DUSE_ALSA=ON"
+ "-DUSE_BREAKPAD=OFF"
+ "-DUSE_DX11=OFF"
+ "-DUSE_DX9=OFF"
+ ;; The USE_HOST_GLSLANG option is not implemented correctly.
+ ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+ "-DUSE_HOST_GLSLANG=OFF"
+ "-DUSE_HOST_LIBZIP=ON"
+ "-DUSE_HOST_SDL=ON"
+ "-DUSE_LIBAO=ON"
+ "-DUSE_LIBCDIO=ON"
+ "-DUSE_LUA=ON"
+ "-DUSE_PULSEAUDIO=ON"
+ "-DUSE_VULKAN=ON")))
+ (native-inputs (list pkg-config))
+ (inputs (list alsa-lib
+ ao
+ curl
+ glslang
+ libcdio
+ libzip
+ lua
+ miniupnpc
+ pulseaudio
+ sdl2
+ spirv-tools
+ ;; TODO: Uncomment after vulkan-headers
+ ;; is updated to 1.3.261.0 or newer.
+ ;;vulkan-headers
+ ))
+ (home-page "https://github.com/flyinghead/flycast")
+ (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
+ (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
and Atomiswave emulator derived from reicast.")
- (license license:gpl2+)))
+ (license license:gpl2+))))
+
+(define-public libretro-flycast
+ (package/inherit flycast
+ (name "libretro-flycast")
+ (arguments (substitute-keyword-arguments (package-arguments flycast)
+ ((#:configure-flags flags)
+ #~(cons "-DLIBRETRO=ON" #$flags))))))
(define-public freedisksysrom
;; There is no release; use the latest commit.
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index e77193ecf2..aa21eec21d 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1308,7 +1308,7 @@ Emacs).")
(define-public kicad
(package
(name "kicad")
- (version "9.0.3")
+ (version "9.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1316,7 +1316,7 @@ Emacs).")
(commit version)))
(sha256
(base32
- "19rij2hz79rsmikdbygxzll2l7im5qi3i6phz4sdiagkc5k8b3rb"))
+ "0736hhf8rs4g8cyhy3xyamyr4iszlvf18a1hwfpcv6qxy0hcbdcv"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -1425,7 +1425,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
- "186nmy222m2k8snwk5i2f9igamflj9avfnhv5ksrbhx5wyrx7fy2"))))
+ "00cnras41sp5kpvaqqymygis08q5kmsix18bi8hlhhw6yk525vnp"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
@@ -1456,7 +1456,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
- "0r9aimyrv7p4ykqnwb9ac3fd0dv11zmv2ll6qkmm5s875s35hhfl"))))
+ "0qm1zq8bq6r7l1pssb9isnm5a03kixf5p3x7670ap4xwligdn3wg"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
@@ -1485,7 +1485,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "1ysnj0973y05nn016hxrghccfv65cas772i369xflay0sns8anqf"))))
+ "15kdg661pq79npwb4j28hllqrvwygsz5rblzbdishiikysrba8wl"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@@ -1502,7 +1502,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0njv4y31k62qhcx0xxcl94p34jgna8z4bs3hwjwzjfmp7ddl2dyx"))))
+ "0ngf0k5f0a073k5v4q78zk6gj6xjjxzbb6551qf9k9wy8bsmgr2k"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 5648fa8f4a..55be426345 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2022 dan <i@dan.games>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Charles <charles@charje.net>
+;;; Copyright © 2025 VnPower <vnpower@loang.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,6 +29,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
+ #:use-module (guix build-system qt)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages anthy)
#:use-module (gnu packages boost)
@@ -413,6 +415,33 @@ the Anthy input method.")
backend.")
(license license:gpl3+)))
+(define-public fcitx5-unikey
+ (package
+ (name "fcitx5-unikey")
+ (version "5.1.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fcitx/fcitx5-unikey")
+ (commit version)))
+ (sha256
+ (base32 "0j82r63vn1rmjz2m92x6xksn548mmkiwcjkziqh6dp6aysxszvxx"))
+ (file-name (git-file-name name version))))
+ (build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase))
+ (inputs
+ (list gettext-minimal
+ fcitx5
+ fcitx5-qt))
+ (native-inputs
+ (list extra-cmake-modules
+ pkg-config))
+ (home-page "https://github.com/fcitx/fcitx5-unikey")
+ (synopsis "Unikey (Vietnamese Input Method) engine support for Fcitx5")
+ (description "This provides Unikey input method support for Fcitx5.")
+ (license license:gpl2+)))
+
(define-public fcitx5-chewing
(package
(name "fcitx5-chewing")
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index dd1402a37e..b990338d78 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -845,7 +845,7 @@ blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.18.4.1")
+ (version "0.18.4.2")
(source
(origin
(method git-fetch)
@@ -863,7 +863,7 @@ blockchain.")
delete-file-recursively
'("external/miniupnp" "external/rapidjson"))))
(sha256
- (base32 "0k4z01l8dvnazh650yarwn6ja1wrxcqq4g7302xw0dhw7h1qvy1j"))))
+ (base32 "1285kigw9j633ghvp4apld9ddrvw7hjgjv23yabjvl7l2gc6hlv6"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen
@@ -950,7 +950,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
- (version "0.18.4.1")
+ (version "0.18.4.2")
(source
(origin
(method git-fetch)
@@ -966,7 +966,7 @@ the Monero command line client and daemon.")
;; See the 'extract-monero-sources' phase.
(delete-file-recursively "monero")))
(sha256
- (base32 "1r2cfzh4lc94mb7fqa8f41613msnsyy5kz6mzcr4npjpm8bxqs8k"))))
+ (base32 "0sa90shh82k6pzj1xr1f6x13q1q4mif4v00zahq96i7iglqpn4b6"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@@ -2530,7 +2530,7 @@ and manipulation.")
(define-public xmrig
(package
(name "xmrig")
- (version "6.22.2")
+ (version "6.24.0")
(source
(origin
(method git-fetch)
@@ -2538,7 +2538,7 @@ and manipulation.")
(url "https://github.com/xmrig/xmrig")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
- (sha256 (base32 "0dis9v8xykiqqzcib22djgmzyvx71akjs25aqvxjjzl1n8cm4npz"))
+ (sha256 (base32 "10q91sh29hlb7yd4lkfjsrk16qgb2j1z19ac77c9y7ccfci97f01"))
(modules '((guix build utils)))
(snippet
;; TODO: Try to use system libraries instead of bundled ones in
@@ -2587,7 +2587,7 @@ mining.")
(define-public p2pool
(package
(name "p2pool")
- (version "4.9")
+ (version "4.9.1")
(source
(origin
(method git-fetch)
@@ -2596,7 +2596,7 @@ mining.")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
- (sha256 (base32 "0898a823mi38z6dwdm6crb2l98rv79sznmqwa0ss96xggvk12nlw"))
+ (sha256 (base32 "0zdsp6pb4rlbdqanx94rw1rii5jih1szf4rl3nf8fldvjkwkydlf"))
(modules '((guix build utils)))
(snippet
#~(for-each delete-file-recursively
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index c21d7c183d..993d56713b 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -2642,6 +2642,86 @@ programming. Iosevka is completely generated from its source code.")
(sha256
(base32 "08ijx9rbcx95yiaiwv6k25xmsi24rdy50mkmmaw94mmwv22mxdra"))))))
+(define-public font-apl2741-unicode
+ (let ((commit "1e11efae38e5095bfe49a786b111d563e83dad03"))
+ (package
+ (name "font-apl2741-unicode")
+ (version "1668049300")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abrudz/APL2741.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i1yk1x99lr2swlbq9r7dny5w70zwiwi8lpfcw4n7k7pfbw0xh7y"))))
+ (build-system trivial-build-system)
+ (native-inputs (list fontforge))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (dest (string-append out "/share/fonts/truetype"))
+ (fontforge (string-append
+ (assoc-ref %build-inputs "fontforge")
+ "/bin/fontforge")))
+ (mkdir-p dest)
+ (invoke fontforge "-lang=ff" "-c" "Open($1); Generate($2)"
+ (string-append source "/APL2741.sfd")
+ (string-append dest "/APL2741.ttf"))))))
+ (synopsis "APL2741 Unicode font")
+ (home-page "https://abrudz.github.io/APL2741/")
+ (description "APL font based on Adrian Smith's IBM Selectric APL2741
+golf-ball font. It supports most special characters used by popular APL
+implementations, some additional mathematical and typographical symbols,
+single line drawing characters, as well as the full Unicode APL range,
+including both uppercase and lowercase underscored alphabets, as-of-yet unused
+symbols, and almost all Latin-1 accented letters.")
+ (license license:unlicense))))
+
+(define-public font-apl333
+ (package
+ (name "font-apl333")
+ ;; Version number as for apl-385, last modified 2013-04-20.
+ (version "20130420")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://apl385.com/fonts/" "apl333.zip"))
+ (sha256
+ (base32 "0yn0ha7d14vp4ma3lxbc9kpyrn20m7brjisr6w55c9mi24w9v3a5"))))
+ (build-system font-build-system)
+ (home-page "https://apl385.com/fonts/index.htm")
+ (synopsis "Variable-width APL font inspired by Comic Sans Serif")
+ (description
+ "Variable-width version of Adrian Smith's APL385 font developed with APL
+software vendors in the late 1980s.")
+ (license license:public-domain)))
+
+(define-public font-apl385
+ (package
+ (name "font-apl385")
+ ;; No version number or release, unzipping source and checking file times
+ ;; shows the font file was last modified on 2016-08-21.
+ (version "20160821")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://apl385.com/fonts/" "apl385.zip"))
+ (sha256
+ (base32 "132qfsnx0v6qf8x8iy3flivv449nz42nnpkwjysmz65w6wqxpk1g"))))
+ (build-system font-build-system)
+ (home-page "https://apl385.com/fonts/index.htm")
+ (synopsis "Monospaced APL font inspired by Comic Sans Serif")
+ (description
+ "Adrian Smith's monospaced APL font developed with APL software vendors
+in the late 1980s.")
+ (license license:public-domain)))
+
(define-public font-aporetic
(package
(name "font-aporetic")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 0d3d663ab8..d8ec14af1c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -12476,80 +12476,6 @@ game.") ;thanks to Debian for description
computer opponents or against real players online.")
(license license:agpl3+)))
-(define-public xblackjack
- (package
- (name "xblackjack")
- (version "2.2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://www.ibiblio.org/pub/X11/contrib/games/"
- "xblackjack-" version ".tar.gz"))
- (sha256
- (base32 "05h93rya7zwnx2l58f0a7wkjadymkj4y77clcr2hryhrhhy1vwjx"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((imake (assoc-ref inputs "imake"))
- (out (assoc-ref outputs "out")))
- (substitute* "Imakefile"
- (("EXTRA_LIBRARIES = -lXm \\$\\(DEPLIBS\\) -lbsd")
- "EXTRA_LIBRARIES = -lXm -lXt -lXmu -lXext -lX11")
- (("^#define NonStandardInstallTargets NO")
- "#define NonStandardInstallTargets YES")
- (("BINDIR = /usr/local/bin")
- (string-append "BINDIR = " out "/bin"))
- (("MANDIR = /usr/local/man/cat1")
- (string-append "MANDIR = " out "/share/man/man1"))
- (("XAPPLOADDIR = /usr/local/lib/app-defaults")
- (string-append "XAPPLOADDIR = " out "/lib/X11/app-defaults")))
-
- (invoke "xmkmf") ; Generate Makefile.
- (substitute* "Makefile"
- ((imake) out)
- (("ETCX11DIR = /etc/X11")
- (string-append "ETCX11DIR = " out "/etc/X11"))
- ;; Fix incorrect argument given to gcc. Error message:
- ;; "gcc: error: DefaultGcc2AMD64Opt: No such file or directory"
- (("CDEBUGFLAGS = [^\n]*") ""))
-
- ;; Fix header paths.
- (substitute* '("Draw.c"
- "Strategy.c")
- (("^#include <X11/Xm/Xm.h>")
- "#include <Xm/Xm.h>"))
- (substitute* "Strategy.c"
- (("^#include <X11/Xm/Label.h>")
- "#include <Xm/Label.h>"))
-
- ;; Fix compilation errors.
- (substitute* "Table.c"
- (("/\\* focus_moved_proc \\*/\tXtInheritFocusMovedProc,") "")
- (("_XmMoveObject\\(\\(RectObj\\) w, rx, ry\\);")
- "_XmMoveObject(w, rx, ry);")
- (("_XmResizeObject\\(\\(RectObj\\) managed->locs[i].w, nw, nh,")
- "_XmResizeObject(managed->locs[i].w, nw, nh,")))))
- (add-after 'install 'install-man-pages
- (lambda _
- (invoke "make" "install.man"))))
- #:tests? #f)) ; No check target.
- (inputs
- (list lesstif libx11 libxext libxmu libxt))
- (native-inputs
- (list imake))
- (home-page "https://www.ibiblio.org/pub/X11/contrib/games/")
- (synopsis "X11/Motif blackjack game")
- (description
- "Xblackjack is a MOTIF/OLIT based tool constructed to get you ready for
-the casino. It was inspired by a book called \"Beat the Dealer\" by Edward
-O. Thorp, Ph.D. of UCLA. A number of important statistics are maintained
-for display, and used by the program to implement Thorp's \"Complete Point
-System\" (high-low system).")
- (license (license:x11-style "" "See file headers."))))
-
(define-public xevil
;; This game is old. Use a maintained fork that builds with modern toolchains
;; on modern, 64-bit hardware.
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index caeba83735..8ce59145ec 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -1285,12 +1285,7 @@ as the 'native-search-paths' field."
"gfortran" '("fortran")
%generic-search-paths)))
-(define-public gdc-10
- (hidden-package
- (custom-gcc gcc-10 "gdc" '("d")
- %generic-search-paths)))
-
-(define-public gdc-11
+(define-public gdc-11 ;kept for bootstrapping
(hidden-package
(custom-gcc gcc-11 "gdc" '("d")
%generic-search-paths)))
@@ -1298,8 +1293,18 @@ as the 'native-search-paths' field."
;;; Alias tracking the latest GDC version.
(define-public gdc
(hidden-package
- (custom-gcc gcc "gdc" '("d")
- %generic-search-paths)))
+ (let ((base (custom-gcc gcc
+ "gdc" '("d")
+ %generic-search-paths)))
+ (package
+ (inherit base)
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ ;; Since GCC 12, GDC is self-hosted, requiring a version of itself
+ ;; to build.
+ ;; XXX: GCC must be prepended as well to avoid an issue with the C++
+ ;; headers ordering.
+ (prepend gcc gdc-11)))))))
(define-public gm2
(hidden-package
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index b56c2a62c6..1a7edd1e51 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -31,7 +31,7 @@
;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo>
;;; Copyright © 2020 Jesse Gibbons <jgibbons2357@gmail.com>
;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
-;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
+;;; Copyright © 2020, 2025 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2020, 2021, 2022 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
@@ -163,14 +163,14 @@
(define-public artanis
(package
(name "artanis")
- (version "1.2.2")
+ (version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/artanis/artanis-"
version ".tar.gz"))
(sha256
(base32
- "013rs623075bbf824hf6jxng0kwbmg587l45fis9mmpq5168kspq"))
+ "16cwjyl0ykz6r7vvczrwaik6y4pc0fwc0hvwskfbgv9z71j2alzi"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1961,17 +1961,21 @@ the Guile compiler tower to generate the DSL from AWS JSON specifications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1lvxic93cyzhdq7gb22pfz5j5pf7b1pcv0ahblkan8jbhzpqxvm0"))))
+ (base32 "1lvxic93cyzhdq7gb22pfz5j5pf7b1pcv0ahblkan8jbhzpqxvm0"))
+ ;; FIXME: report upstream and remove when fixed.
+ (modules '((guix build utils)))
+ (snippet '(substitute* "module/Makefile.am"
+ (("compile-ffi -o mosquitto-nyacc.scm")
+ "compile-ffi -X -o $(srcdir)/ffi/mosquitto-nyacc.scm")))))
(build-system gnu-build-system)
(arguments
(list
- #:make-flags
- #~(list "GUILE_AUTO_COMPILE=0")
+ #:parallel-build? #f
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'patch-extension-path
(lambda* (#:key inputs #:allow-other-keys)
- (setenv "HOME" "/tmp")
+ (setenv "GUILE_AUTO_COMPILE" "0")
(with-directory-excursion "module"
(invoke "make" "ffi/mosquitto.scm")
(substitute* "ffi/mosquitto.scm"
@@ -1983,7 +1987,7 @@ the Guile compiler tower to generate the DSL from AWS JSON specifications.")
(native-inputs (list autoconf
automake
guile-3.0
- nyacc-2.01
+ nyacc
pkg-config
texinfo))
(inputs (list mosquitto))
@@ -4924,6 +4928,68 @@ return accumulators. It is implemented by wrapping the sample
implementation in a thin Guile compatibility layer.")
(license license:gpl3+))))
+(define-public guile-srfi-165
+ (let ((commit "1b441c0edc258e39cb943096bd47dd45071e2f70")
+ (revision "0"))
+ (package
+ (name "guile-srfi-165")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/scheme-requests-for-implementation/srfi-165")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ac1nmf413sayy0xq4c2l4kmbjkh8ksg3s4fwgk44zcd8phy3kxw"))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:scheme-file-regexp "(srfi-165|impl)\\.scm$"
+ #:documentation-file-regexp "srfi-165\\.html$"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'rename-files
+ (lambda _
+ (mkdir-p "srfi/srfi-165")
+ (rename-file "srfi/165.scm" "srfi/srfi-165/impl.scm")
+ (substitute* "srfi/165.sld"
+ (("\\(include \"165.scm\"\\)")
+ "(include \"srfi-165/impl.scm\")"))
+ (rename-file "srfi/165.sld" "srfi/srfi-165.scm")))
+ (add-after 'build 'check-installed
+ (lambda _
+ (substitute* "srfi/165/test.sld"
+ (("srfi 165 test") "srfi #{165}# test"))
+ (define-values (scm go) (target-guile-scm+go #$output))
+
+ (invoke "guile"
+ "-L" scm "-C" go
+ "-l" "./srfi/165/test.sld"
+ "-c"
+ (format #f "~S"
+ '(begin
+ (use-modules (srfi #{165}# test))
+ (run-tests)))))))))
+ (native-inputs (list guile-3.0
+ guile-srfi-125
+ guile-srfi-128
+ guile-srfi-146))
+ (propagated-inputs
+ (list guile-srfi-125 guile-srfi-128 guile-srfi-146))
+ (home-page "https://srfi.schemers.org/srfi-165/")
+ (synopsis "Environment/Reader Monad")
+ (description
+ "This library provides the sample implementation of SRFI-165.
+This SRFI defines an environment monad, which models computations that depend on
+values from a shared environment. These computations can read values from the
+environment, pass values to subsequent computations, execute sub-computations in
+an extended environment, and modify the environment for future computations.")
+ (license license:expat))))
+
(define-public guile-srfi-180
(let ((commit "9188bf9724c6d320ef804579d222e855b007b193")
(revision "0"))
@@ -6729,15 +6795,15 @@ tools.")
(define-public guile-eris
(package
(name "guile-eris")
- (version "1.0.0")
+ (version "1.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://codeberg.org/eris/guile-eris.git")
- (commit (string-append "v" version))))
+ (url "https://codeberg.org/eris/guile-eris.git")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
- (sha256 (base32 "0d4wbjwwaxk0zn5gjhl86qhvk1aisgzp1vnvy4xbvrv5ydqpgyqm"))))
+ (sha256 (base32 "03z9dr725kdj57gmkwnx6v6p8nkf0xbn359q2dnn4b29x3dxf39x"))))
(build-system gnu-build-system)
(arguments '())
(native-inputs
@@ -6750,8 +6816,14 @@ tools.")
guile-quickcheck))
(inputs (list guile-3.0))
(propagated-inputs
- (list guile-sodium))
- (synopsis "Guile implementation of the Encoding for Robust Immutable Storage (ERIS)")
+ (list guile-sodium
+ guile-coap
+ guile-fibers
+ guile-sqlite3
+ guile-zstd
+ guile-cbor))
+ (synopsis "Guile implementation of the Encoding for Robust Immutable
+Storage (ERIS)")
(description
"Guile-ERIS is a Guile implementation of the @url{http://purl.org/eris,
Encoding for Robust Immutable Storage (ERIS)}. ERIS allows arbitrary content
@@ -6943,9 +7015,12 @@ schedulers.")
(("dynamic-link \"libyaml\"")
(format #f "dynamic-link \"~a/lib/libyaml\""
(assoc-ref inputs "libyaml")))))))))
- (native-inputs (list gcc guile-3.0 nyacc))
+ ;; guile-libyaml does not work with nyacc-2.02.2. See
+ ;; https://github.com/mwette/guile-libyaml/issues/7 for upstream bug
+ ;; report. Hence, we use the older nyacc-1.08.1.
+ (native-inputs (list gcc guile-3.0 nyacc-1.08.1))
(inputs (list libyaml))
- (propagated-inputs (list guile-bytestructures nyacc))
+ (propagated-inputs (list guile-bytestructures nyacc-1.08.1))
(home-page "https://github.com/mwette/guile-libyaml")
(synopsis "Guile wrapper for libyaml")
(description
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 5a1f654652..43a1fdca22 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -297,7 +297,7 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
- (version "10.20250630")
+ (version "10.20250721")
(source
(origin
;; hackage release doesn't include everything needed for extra bits.
@@ -307,7 +307,7 @@ to @code{cabal repl}).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1livig1x1a929qagisjx33pzmgv38d6fzf11bmy2jfpgvvlk9mfx"))))
+ (base32 "1a2g4z9fl90kyl7k6clmc61ma2njnljr4na6jbf04m43qnnr9s5a"))))
(build-system haskell-build-system)
(properties '((upstream-name . "git-annex")))
(arguments
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 5dafd4e955..f99e8c4ae7 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -69,6 +69,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages engineering)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages game-development)
@@ -942,17 +943,17 @@ recalculates.")
(define-public paraview
(package
(name "paraview")
- (version "5.11.1")
+ (version "6.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.kitware.com/paraview/paraview.git")
+ (url "https://gitlab.kitware.com/paraview/paraview")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "0m1lgkl95f0pyhxp97gq2rf8hibv39v4c49imfj1va40z0flvard"))
+ (base32 "1m1c7vngrpaqdqvnjx4wj0va20hih5rb7rf0a44mp3wqgp4wgy0f"))
(modules '((guix build utils)))
(snippet
;; TODO: Also remove unused bundled libraries and plugins?
@@ -976,7 +977,7 @@ recalculates.")
(for-each (lambda (dir)
(delete-file-recursively
(string-append "VTK/ThirdParty/" dir "/vtk" dir)))
- '(;;"cgns"
+ '("cgns"
"cli11"
;;"diy2"
"doubleconversion"
@@ -984,11 +985,12 @@ recalculates.")
;;"exodusII"
"expat"
;;"exprtk"
+ ;;"fast-float"
;;"fides"
"fmt"
"freetype"
"gl2ps"
- "glew"
+ ;;"glad"
;;"h5part"
"hdf5"
;;"ioss"
@@ -1011,13 +1013,14 @@ recalculates.")
"sqlite"
"theora"
"tiff"
+ ;;"token"
"utf8"
;;"verdict"
+ ;;"viskores"
;;"vpic"
;;"vtkm"
;;"xdmf2"
;;"xdmf3"
- ;;"zfp"
"zlib"))))))
(build-system qt-build-system)
(arguments
@@ -1025,7 +1028,7 @@ recalculates.")
#:build-type "Release" ; 542 MiB in release mode
#:tests? #f ; Downloads test data
#:configure-flags
- #~(let ((doc (string-append #$output "/share/doc/" #$name "-" #$version)))
+ #~(let ((doc (string-append "share/doc/" #$name "-" #$version)))
(list
(string-append "-DCMAKE_INSTALL_DOCDIR=" doc) ; For paraview.qch
@@ -1095,6 +1098,7 @@ recalculates.")
;; External libraries for ParaView and VTK
"-DVTK_MODULE_USE_EXTERNAL_ParaView_protobuf=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_cgns=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_cli11=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON"
@@ -1102,7 +1106,6 @@ recalculates.")
"-DVTK_MODULE_USE_EXTERNAL_VTK_fmt=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON"
- "-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp=ON"
@@ -1148,17 +1151,17 @@ recalculates.")
python-sphinx))
(inputs
(list boost
+ cgns
cli11
curl
double-conversion
eigen
expat
ffmpeg
- fmt
+ fmt-11
freetype
gdal
gl2ps
- glew
gmsh
hdf5
nlohmann-json ;For ParFlow; build fails
diff --git a/gnu/packages/lesstif.scm b/gnu/packages/lesstif.scm
index 2c435d999b..f0ef220742 100644
--- a/gnu/packages/lesstif.scm
+++ b/gnu/packages/lesstif.scm
@@ -32,29 +32,6 @@
#:use-module (gnu packages xorg))
-(define-public lesstif
- (package
- (name "lesstif")
- (version "0.95.2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/lesstif/lesstif/" version
- "/lesstif-" version ".tar.bz2"))
- (sha256
- (base32
- "1qzpxjjf7ri1jzv71mvq5m9g8hfaj5yzwp30rwxlm6n2b24a6jpb"))))
- (build-system gnu-build-system)
- (propagated-inputs
- (list printproto))
- (inputs
- (list libxext libxt))
- (home-page "https://lesstif.sourceforge.net/")
- (synopsis "Clone of the Motif toolkit for the X window system")
- (description "Clone of the Motif toolkit for the X window system.")
- (license license:gpl2+))) ; some files are lgpl2.1+ or x11
-
(define-public motif
;; This commit is from February 2023 and v2.3.8 from 2017.
(let ((commit "0f556b0873c72ba1152a12fd54c3198ee039e413")
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 9b84a5b3a9..cd4a1ac3ae 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1,7 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
-;;;
;;; Copyright © 2020, 2021 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2024-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
@@ -25,6 +24,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
+ #:use-module (gnu packages aspell)
#:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages cpp)
@@ -46,6 +46,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#: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)
@@ -62,75 +63,69 @@
#:use-module (guix build-system qt))
(define-public bcunit
- (let ((commit "74021cc7cb20a4e177748dd2948173e1f9c270ae")
- (revision "0"))
- (package
- (name "bcunit")
- (version (git-version "3.0.2" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://git.linphone.org/bcunit")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
- (build-system cmake-build-system)
- (outputs '("out" "doc"))
- (arguments
- `(#:configure-flags (list "-DENABLE_STATIC=NO"
- "-DENABLE_CURSES=ON"
- "-DENABLE_DOC=ON"
- "-DENABLE_EXAMPLES=ON"
- "-DENABLE_TEST=ON"
- "-DENABLE_MEMTRACE=ON")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-source
- (lambda _
- ;; Include BCunit headers for examples.
- (substitute* "Examples/CMakeLists.txt"
- (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}")
- (string-append "${CMAKE_CURRENT_SOURCE_DIR} "
- "${PROJECT_SOURCE_DIR}/BCUnit/Headers "
- "${CMAKE_BINARY_DIR}/BCUnit/Headers")))
- ;; Link bcunit and bcunit_tests libraries.
- (substitute* "BCUnit/Sources/CMakeLists.txt"
- (("target_include_directories\\(bcunit_test PUBLIC Test\\)")
- (string-append
- "target_include_directories(bcunit_test PUBLIC Test)\n"
- "target_link_libraries(bcunit_test bcunit)")))))
- (replace 'check
- (lambda _
- (with-directory-excursion "BCUnit/Sources/Test"
- (invoke "./test_bcunit"))))
- (add-after 'install 'move-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (for-each mkdir-p
- `(,(string-append doc "/share/doc")
- ,(string-append doc "/share/BCUnit")))
- (rename-file
- (string-append out "/share/doc/BCUnit")
- (string-append doc "/share/doc/BCUnit"))
- (rename-file
- (string-append out "/share/BCUnit/Examples")
- (string-append doc "/share/BCUnit/Examples"))))))))
- (inputs
- (list ncurses))
- (synopsis "Belledonne Communications Unit Testing Framework")
- (description "BCUnit is a fork of the defunct project CUnit, with
+ (package
+ (name "bcunit")
+ (version "5.3.57")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/bcunit.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02aqc8052vidc8ylkwiv2rqddl58fccrjz561j8zfqlwm2irnsg3"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DENABLE_BCUNIT_CURSES=ON"
+ "-DENABLE_BCUNIT_DOC=ON"
+ "-DENABLE_BCUNIT_EXAMPLES=ON"
+ "-DENABLE_BCUNIT_TEST=ON"
+ "-DENABLE_BCUNIT_MEMTRACE=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ ;; Include BCunit headers for examples.
+ (substitute* "Examples/CMakeLists.txt"
+ (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}")
+ (string-append "${CMAKE_CURRENT_SOURCE_DIR} "
+ "${PROJECT_SOURCE_DIR}/BCUnit/Headers "
+ "${CMAKE_BINARY_DIR}/BCUnit/Headers")))
+ ;; Link bcunit and bcunit_tests libraries.
+ (substitute* "BCUnit/Sources/CMakeLists.txt"
+ (("target_include_directories\\(bcunit_test PUBLIC Test\\)")
+ (string-append
+ "target_include_directories(bcunit_test PUBLIC Test)\n"
+ "\ttarget_link_libraries(bcunit_test bcunit)")))))
+ (add-after 'install 'patch-BCUnitConfig.cmake
+ (lambda _
+ (substitute* (string-append
+ #$output "/share/BCUnit/cmake/BCUnitConfig.cmake")
+ ;; This is only added for convenience when doing static builds.
+ ;; Since this is not a common case, avoid the find_dependency on
+ ;; ncurses, which would require propagating it.
+ (("find_dependency\\(Curses)")
+ ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "BCUnit/Sources/Test"
+ (invoke "./test_bcunit"))))))))
+ (inputs (list ncurses))
+ (synopsis "Belledonne Communications Unit Testing Framework")
+ (description "BCUnit is a fork of the defunct project CUnit, with
several fixes and patches applied. It is a unit testing framework for
writing, administering, and running unit tests in C.")
- (home-page "https://gitlab.linphone.org/BC/public/bcunit")
- (license license:lgpl2.0+))))
+ (home-page "https://gitlab.linphone.org/BC/public/bcunit")
+ (license license:lgpl2.0+)))
(define-public bctoolbox
(package
(name "bctoolbox")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -139,52 +134,51 @@ writing, administering, and running unit tests in C.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0b51308jy5z32gp594r78jvbyrha16sanxdnbcmxgrwnb4myqx5j"))))
+ (base32 "178axy7gmmi6fzjbz7aaawcx0qg50i4hnn7ab6w642b02vxfr386"))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
- `(#:configure-flags (list "-DENABLE_STATIC=OFF"
- ;; Do not use -Werror, because due to skipping
- ;; a test there are unused procedures.
- "-DENABLE_STRICT=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-cmake
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Fix decaf dependency (see:
- ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).
- (let* ((decaf (assoc-ref inputs "libdecaf")))
- (substitute* (find-files "." "CMakeLists.txt")
- (("find_package\\(Decaf CONFIG\\)")
- "set(DECAF_FOUND 1)")
- (("\\$\\{DECAF_INCLUDE_DIRS\\}")
- (string-append decaf "/include/decaf"))
- (("\\$\\{DECAF_TARGETNAME\\}")
- "decaf")))))
- (add-after 'unpack 'skip-problematic-tests
- (lambda _
- ;; The following test relies on networking; disable it.
- (substitute* "tester/port.c"
- (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\),")
- ""))))
- (add-after 'unpack 'fix-installed-resource-directory-detection
- (lambda _
- ;; There's some broken logic in tester.c that checks if CWD, or
- ;; if its parent exist, and if so, sets the prefix where the test
- ;; resources are looked up to; disable it (see:
- ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/4).
- (substitute* "src/tester.c"
- (("if \\(file_exists\\(\".\"\\)\\)")
- "if (NULL)")
- (("if \\(file_exists\\(\"..\"\\)\\)")
- "if (NULL)"))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "tester"
- (invoke "./bctoolbox_tester"))))))))
- (inputs
- (list bcunit libdecaf mbedtls-lts))
+ (list
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ ;; Do not use -Werror, because due to skipping
+ ;; a test there are unused procedures.
+ "-DENABLE_STRICT=OFF")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-cmake
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix decaf dependency (see:
+ ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).
+ (substitute* (find-files "." "CMakeLists.txt")
+ (("find_package\\(Decaf CONFIG\\)")
+ "set(DECAF_FOUND 1)")
+ (("\\$\\{DECAF_INCLUDE_DIRS\\}")
+ (search-input-directory inputs "include/decaf"))
+ (("\\$\\{DECAF_TARGETNAME\\}")
+ "decaf"))))
+ (add-after 'unpack 'skip-problematic-tests
+ (lambda _
+ ;; The following test relies on networking; disable it.
+ (substitute* "tester/port.c"
+ (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\),")
+ ""))))
+ (add-after 'unpack 'fix-installed-resource-directory-detection
+ (lambda _
+ ;; There's some broken logic in tester.c that checks if CWD, or
+ ;; if its parent exist, and if so, sets the prefix where the test
+ ;; resources are looked up to; disable it (see:
+ ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/4).
+ (substitute* "src/tester.c"
+ (("if \\(file_exists\\(\".\"\\)\\)")
+ "if (NULL)")
+ (("if \\(file_exists\\(\"..\"\\)\\)")
+ "if (NULL)"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "tester"
+ (invoke "./bctoolbox-tester"))))))))
+ (inputs (list bcunit libdecaf mbedtls-lts))
(synopsis "Belledonne Communications Tool Box")
(description "BcToolBox is an utilities library used by Belledonne
Communications software like belle-sip, mediastreamer2 and linphone.")
@@ -194,7 +188,7 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
(define-public belr
(package
(name "belr")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -203,33 +197,33 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1bj8qd4ahbff476z0ccwsxy7qznqi6n5l1pdd7zbvk0h53zyj74c"))))
+ (base32 "1jqv2rfclzwsglwgvx7ypy0yhwbjxrsbik6xipf48770qmdz3bj9"))))
(build-system cmake-build-system)
(outputs '("out" "debug" "tester"))
(arguments
(list
- #:configure-flags '(list "-DENABLE_STATIC=OFF")
+ #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON")
#:phases
#~(modify-phases %standard-phases
(delete 'check) ;moved after the install phase
(add-after 'install 'check
(lambda* (#:key tests? outputs #:allow-other-keys)
(when tests?
- (invoke (string-append #$output:tester "/bin/belr_tester")))))
+ (invoke (string-append #$output:tester "/bin/belr-tester")))))
(add-after 'install 'move-tester
(lambda _
(for-each mkdir-p
(list (string-append #$output:tester "/bin")
(string-append #$output:tester "/share")))
(rename-file
- (string-append #$output "/bin/belr_tester")
- (string-append #$output:tester "/bin/belr_tester"))
+ (string-append #$output "/bin/belr-tester")
+ (string-append #$output:tester "/bin/belr-tester"))
(rename-file
(string-append #$output "/share/belr-tester/res")
;; The detect_res_prefix procedure in bctoolbox's tester.c
;; resolves the resource path based on the executable path and
;; name, so have it match.
- (string-append #$output:tester "/share/belr_tester")))))))
+ (string-append #$output:tester "/share/belr-tester")))))))
(inputs
(list bctoolbox))
(synopsis "Belledonne Communications Language Recognition Library")
@@ -243,7 +237,7 @@ IETF.")
(define-public belcard
(package
(name "belcard")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -252,12 +246,12 @@ IETF.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1rl1x7rnlnncb45sjp8r2xbcwr9l8qv5bhfybhr0mmvsv3a4k4a3"))))
+ (base32 "1d69s7v3yd276nasfxnsjp3q820pcchdpdpw4y7ak7sf6gr6mrrh"))))
(build-system cmake-build-system)
(outputs '("out" "debug" "tester"))
(arguments
(list
- #:configure-flags '(list "-DENABLE_STATIC=OFF")
+ #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-vcard-grammar-location
@@ -270,7 +264,7 @@ IETF.")
(format #f "define VCARD_GRAMMAR ~s" vcard-grammar))))))
(add-after 'install 'install-tester
(lambda _
- (let ((test-name (string-append #$name "_tester")))
+ (let ((test-name (string-append #$name "-tester")))
(for-each mkdir-p
(list (string-append #$output:tester "/bin")
(string-append #$output:tester "/share")))
@@ -283,9 +277,10 @@ IETF.")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke (string-append #$output:tester
- "/bin/belcard_tester"))))))))
- (inputs
- (list bctoolbox belr))
+ "/bin/belcard-tester"))))))))
+ (inputs (list bctoolbox))
+ ;; Belr is required by BelCardConfig.cmake, so must be propagated.
+ (propagated-inputs (list belr))
(synopsis "Belledonne Communications VCard Library")
(description "Belcard is a C++ library to manipulate VCard standard
format.")
@@ -295,7 +290,7 @@ format.")
(define-public bcmatroska2
(package
(name "bcmatroska2")
- (version "5.2.1")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -304,21 +299,12 @@ format.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "14c79znw37q3yc7llbv2wmxmm4a3ws6iq3cvgkbmcnf7hmhm7zdi"))))
+ (base32 "1fdlvsca34armxasj2g4vxjzm9iiqfl7832qqlggh04yw21cfa5c"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ;No test target
- #:phases
- '(modify-phases %standard-phases
- ;; See
- ;; https://gitlab.linphone.org/BC/public/bcmatroska2/-/merge_requests/18
- (add-after 'unpack 'fix-build-system
- (lambda _
- (substitute* "corec/corec/CMakeLists.txt"
- (("helpers/file/file_libc.c") "")))))
- #:configure-flags
- '(list "-DENABLE_STATIC=NO"))) ;Not required
+ #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON")))
(inputs (list bctoolbox))
(synopsis "Belledonne Communications Media Container")
(description "BcMatroska is a free and open standard multi-media container
@@ -331,80 +317,85 @@ Matroska multimedia container format.")
license:lgpl2.1+)))) ;for LibMatroska2
(define-public bcg729
- (package
- (name "bcg729")
- (version "1.1.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://git.linphone.org/bcg729")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1hal6b3w6f8y5r1wa0xzj8sj2jjndypaxyw62q50p63garp2h739"))))
- (build-system cmake-build-system)
- (arguments
- `(#:configure-flags (list "-DENABLE_STATIC=NO"
- "-DENABLE_TESTS=YES")
- #:phases
- (modify-phases %standard-phases
- (add-before 'check 'copy-inputs
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((test-patterns (assoc-ref inputs "test-patterns"))
- (dest (string-append "test/bcg729-patterns.zip")))
- (copy-recursively test-patterns dest))))
- (replace 'check
- (lambda _
- (with-directory-excursion "test"
- (invoke "unzip" "bcg729-patterns.zip")
- (for-each
- (lambda (test-name)
- (invoke "./testCampaign" "-s" test-name))
- (list "fixedCodebookSearch"
- "postProcessing"
- "adaptativeCodebookSearch"
- "computeLP"
- "computeAdaptativeCodebookGain"
- "postFilter"
- "decoder"
- "LPSynthesisFilter"
- "decodeLSP"
- ;; "encoder"
- ;; "LSPQuantization"
- "preProcessing"
- "decodeFixedCodeVector"
- "CNGdecoder"
- ;; "LP2LSPConversion"
- "gainQuantization"
- "findOpenLoopPitchDelay"
- "decodeGains"
- "computeWeightedSpeech"
- "interpolateqLSPAndConvert2LP"
- "decodeAdaptativeCodeVector"))))))))
- (native-inputs
- `(("perl" ,perl)
- ("test-patterns"
- ,(origin
- (method url-fetch)
- (uri (string-append "http://www.belledonne-communications.com/"
- "bc-downloads/bcg729-patterns.zip"))
- (sha256
- (base32 "1kivarhh3izrl9sg0szs6x6pbq2ap0y6xsraw0gbgspi4gnfihrh"))))
- ("unzip" ,unzip)))
- (synopsis "Belledonne Communications G729 Codec")
- (description "BcG729 is an implementation of both encoder and decoder of
+ ;; mediastreamer2 needs a more recent commit than the latest release to
+ ;; detect the BCG729 package.
+ (let ((commit "8bec1e5fc072f3669e435edd137eb3da6da2eef7")
+ (revision "1"))
+ (package
+ (name "bcg729")
+ (version (git-version "1.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/bcg729.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1s0bnxqv7xrh65ypdyvahjslx8rj0q1zm0bpvwcakf5hs7h45g7x"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DBUILD_SHARED_LIBS=YES"
+ "-DENABLE_UNIT_TESTS=YES")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'copy-inputs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((test-patterns (assoc-ref inputs "test-patterns"))
+ (dest (string-append "test/bcg729-patterns.zip")))
+ (copy-recursively test-patterns dest))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "test"
+ (invoke "unzip" "bcg729-patterns.zip")
+ (for-each
+ (lambda (test-name)
+ (invoke "./testCampaign" "-s" test-name))
+ (list "fixedCodebookSearch"
+ "postProcessing"
+ "adaptativeCodebookSearch"
+ "computeLP"
+ "computeAdaptativeCodebookGain"
+ "postFilter"
+ "decoder"
+ "LPSynthesisFilter"
+ "decodeLSP"
+ ;; "encoder"
+ ;; "LSPQuantization"
+ "preProcessing"
+ "decodeFixedCodeVector"
+ "CNGdecoder"
+ ;; "LP2LSPConversion"
+ "gainQuantization"
+ "findOpenLoopPitchDelay"
+ "decodeGains"
+ "computeWeightedSpeech"
+ "interpolateqLSPAndConvert2LP"
+ "decodeAdaptativeCodeVector")))))))))
+ (native-inputs
+ `(("perl" ,perl)
+ ("test-patterns"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "http://www.belledonne-communications.com/"
+ "bc-downloads/bcg729-patterns.zip"))
+ (sha256
+ (base32 "1kivarhh3izrl9sg0szs6x6pbq2ap0y6xsraw0gbgspi4gnfihrh"))))
+ ("unzip" ,unzip)))
+ (synopsis "Belledonne Communications G729 Codec")
+ (description "BcG729 is an implementation of both encoder and decoder of
the ITU G729 speech codec. The library written in C 99 is fully portable and
can be executed on many platforms including both ARM and x86 processors. It
supports concurrent channels encoding and decoding for multi call application
such as conferencing.")
- (home-page "https://linphone.org/technical-corner/bcg729")
- (license license:gpl3+)))
+ (home-page "https://linphone.org/technical-corner/bcg729")
+ (license license:gpl3+))))
(define-public ortp
(package
(name "ortp")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -413,14 +404,14 @@ such as conferencing.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1hzbrj1ny3lr9sql0lrxggc48sqv5j2yvbpnrdnph88pwzrdnbn5"))))
+ (base32 "1bl3ig1xbxprcdid9i8bnl433x4crxqnj30x5lxiy9ka79b8s8r6"))))
(build-system cmake-build-system)
(outputs '("out" "tester"
"doc")) ;1.5 MiB of HTML doc
(arguments
(list
#:tests? #f ;requires networking
- #:configure-flags '(list "-DENABLE_STATIC=NO"
+ #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON"
"-DENABLE_DOC=NO" ;XXX: missing link for b64
"-DENABLE_TESTS=YES"
;; fix build error with GCC 14.
@@ -459,7 +450,7 @@ implements the RFC 3550 standard.")
(define-public bzrtp
(package
(name "bzrtp")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -468,15 +459,17 @@ implements the RFC 3550 standard.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0dvn1w0g9c07llz9n82l6qdzz8lzz74jcdm1yyfks0jy7i63cr8w"))))
+ (base32 "1q8w5blf2cjmzyv4bdd7zg4lv3pfjq6w6cfm6d75az4xqzg023kp"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags
- (list
- "-DENABLE_STATIC=NO"
- "-DENABLE_TESTS=YES")))
- (inputs
- (list bctoolbox libxml2 sqlite))
+ (list
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=YES"
+ "-DENABLE_DOC=YES")
+ #:tests? #f)) ;tests require external resources
+ (inputs (list bctoolbox libxml2))
+ ;; sqlite is listed in the interface link libraries of bzrtp, and must be
+ ;; available at build time when using the bzrtp library.
+ (propagated-inputs (list sqlite))
(synopsis "Belledonne Communications ZRTP Library")
(description "BZRTP is an implementation of ZRTP keys exchange protocol,
written in C. It is fully portable and can be executed on many platforms
@@ -487,7 +480,7 @@ including both ARM and x86.")
(define-public belle-sip
(package
(name "belle-sip")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -496,12 +489,12 @@ including both ARM and x86.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0yx1qvzp11ysh24hxrvz7dm69j8zswa0xcx9m42vcv95z72166cq"))))
+ (base32 "1jmvf1s54ppc0qfi2wl6whk7s3lghpzzp6597nblncjsr2i6ha6c"))))
(build-system cmake-build-system)
(outputs '("out" "tester"))
(arguments
(list
- #:configure-flags '(list "-DENABLE_STATIC=NO"
+ #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON"
"-DENABLE_MDNS=ON"
;; We skip a test and thus have an unused
;; procedure, so we need to disable -Werror.
@@ -536,7 +529,7 @@ including both ARM and x86.")
(delete 'check) ;move after install
(add-after 'install 'separate-outputs
(lambda _
- (let ((tester-name "belle_sip_tester"))
+ (let ((tester-name "belle-sip-tester"))
(for-each mkdir-p (list (string-append #$output:tester "/bin")
(string-append #$output:tester "/share")))
(rename-file (string-append #$output "/bin")
@@ -547,7 +540,7 @@ including both ARM and x86.")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(let ((tester (string-append #$output:tester
- "/bin/belle_sip_tester")))
+ "/bin/belle-sip-tester")))
(for-each (lambda (suite-name)
(invoke tester "--suite" suite-name))
(list "Object inheritance"
@@ -566,8 +559,7 @@ including both ARM and x86.")
"Refresher"
;;"HTTP stack"
"Object")))))))))
- (inputs
- (list avahi bctoolbox belr zlib))
+ (inputs (list avahi bctoolbox belr zlib))
(synopsis "Belledonne Communications SIP Library")
(description "Belle-sip is a modern library implementing SIP transport,
transaction and dialog layers. It is written in C, with an object-oriented
@@ -578,7 +570,7 @@ API. It also comprises a simple HTTP/HTTPS client implementation.")
(define-public mediastreamer2
(package
(name "mediastreamer2")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -587,12 +579,12 @@ API. It also comprises a simple HTTP/HTTPS client implementation.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0mj0q2xaac22p2wf5gvgaiga03fbydilxfxzwyc6nwp5fyjnzawd"))))
+ (base32 "1zv13icfdpaq7fa325mnqf340vbvif9791hb9h22qpc0f2wcwvjb"))))
(outputs '("out" "doc" "tester"))
(build-system cmake-build-system)
(arguments
(list
- #:configure-flags '(list "-DENABLE_STATIC=NO"
+ #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON"
"-DENABLE_PCAP=YES"
;; Do not fail on compile warnings.
"-DENABLE_STRICT=NO"
@@ -619,7 +611,7 @@ API. It also comprises a simple HTTP/HTTPS client implementation.")
(delete 'check) ;move after install
(add-after 'install 'separate-outputs
(lambda _
- (let ((tester-name (string-append #$name "_tester"))
+ (let ((tester-name (string-append #$name "-tester"))
(doc-name (string-append #$name "-" #$version)))
(for-each mkdir-p
(list (string-append #$output:tester "/bin")
@@ -637,7 +629,7 @@ API. It also comprises a simple HTTP/HTTPS client implementation.")
(add-after 'separate-outputs 'check
(lambda _
(let ((tester (string-append #$output:tester
- "/bin/mediastreamer2_tester")))
+ "/bin/mediastreamer2-tester")))
(for-each (lambda (suite-name)
(invoke tester "--suite" suite-name))
;; Some tests fail, due to requiring access to the
@@ -658,28 +650,29 @@ API. It also comprises a simple HTTP/HTTPS client implementation.")
bcg729
bcmatroska2
bctoolbox
+ bzrtp
+ dav1d
ffmpeg-4
glew
glu
- mesa-utils
gsm
+ libjpeg-turbo
+ libpcap
+ libsrtp
+ libtheora
+ libvpx
+ libx11
+ libxv
mesa
+ mesa-utils
opus
ortp
- libpcap
portaudio
pulseaudio
spandsp
speex
speexdsp
- libsrtp
- libtheora
- libjpeg-turbo
- v4l-utils
- libvpx
- libx11
- libxv
- bzrtp))
+ v4l-utils))
(synopsis "Belledonne Communications Streaming Engine")
(description "Mediastreamer2 is a powerful and lightweight streaming engine
for telephony applications. This media processing and streaming toolkit is
@@ -691,7 +684,7 @@ including media capture, encoding and decoding, and rendering.")
(define-public lime
(package
(name "lime")
- (version "5.2.49")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -700,39 +693,36 @@ including media capture, encoding and decoding, and rendering.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1mglnypxl3glwvwf2h5q4ikbm6wbcd9pb7kdws8zajjhk9q803jr"))))
+ (base32 "1jd549f4cky5rcvq3d2zn8d383jahdi71nhkzblnr6mqqbn6b7sa"))))
(build-system cmake-build-system)
(outputs '("out" "doc"))
(arguments
- `(#:configure-flags (list "-DENABLE_STATIC=NO"
- "-DENABLE_C_INTERFACE=YES"
- "-DENABLE_DOC=YES")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-source
- (lambda _
- ;; Disable tests that require networking.
- (substitute* "tester/CMakeLists.txt"
- (("add_test\\(?.*\"Hello World\"\\)") "")
- (("add_test\\(?.*\"lime\"\\)") "")
- (("add_test\\(?.*\"FFI\"\\)") "")
- (("add_test\\(?.*\"Multidomains\"\\)") "")
- (("add_test\\(?.*\"Lime server\"\\)") ""))))
- (add-after 'build 'build-doc
- (lambda _
- (invoke "make" "doc")))
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((doc (assoc-ref outputs "doc"))
- (dir (string-append doc "/share/doc"))
- (dest (string-append dir "/" ,name "-" ,version)))
- (mkdir-p dest)
- (copy-recursively "doc" dest)))))))
- (native-inputs
- `(("dot" ,graphviz)
- ("doxygen" ,doxygen)))
- (inputs
- (list bctoolbox belle-sip soci))
+ (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DENABLE_C_INTERFACE=YES"
+ "-DENABLE_DOC=YES")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ ;; Disable tests that require networking.
+ (substitute* "tester/CMakeLists.txt"
+ (("add_test\\(?.*\"Hello World\"\\)") "")
+ (("add_test\\(?.*\"lime\"\\)") "")
+ (("add_test\\(?.*\"FFI\"\\)") "")
+ (("add_test\\(?.*\"Multidomains\"\\)") "")
+ (("add_test\\(?.*\"Lime server\"\\)") ""))))
+ (add-after 'build 'build-doc
+ (lambda _
+ (invoke "make" "doc")))
+ (add-after 'install 'install-doc
+ (lambda _
+ (let* ((doc #$output:doc)
+ (dir (string-append doc "/share/doc"))
+ (dest (string-append dir "/" #$name "-" #$version)))
+ (mkdir-p dest)
+ (copy-recursively "doc" dest)))))))
+ (native-inputs (list graphviz doxygen))
+ (inputs (list bctoolbox belle-sip belr soci))
(synopsis "Belledonne Communications Encryption Library")
(description "LIME is an encryption library for one-to-one and group
instant messaging, allowing users to exchange messages privately and
@@ -744,7 +734,7 @@ device.")
(define-public liblinphone
(package
(name "liblinphone")
- (version "5.2.50")
+ (version "5.3.57")
(source
(origin
(method git-fetch)
@@ -753,37 +743,41 @@ device.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1lvbva234rmck57cxgswgqqvnq8r58i0ls4qgpymrxdfj74rinxj"))))
+ (base32 "1f3hcbdkd8nqvjm5avylz226a8in360yiafcsxpa69wvh1a03i4h"))
+ (patches (search-patches "liblinphone-jsoncpp.patch"))))
(outputs '("out" "tester"))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ; Tests require networking
#:configure-flags
- '(list "-DENABLE_FLEXIAPI=NO" ;requires jsoncpp, but it cannot be found
- "-DENABLE_STATIC=NO"
- "-DENABLE_DOC=NO" ;requires unpackaged javasphinx
- "-DENABLE_LDAP=YES"
- "-DENABLE_STRICT=NO")
+ #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DENABLE_DOC=NO" ;requires unpackaged javasphinx
+ "-DENABLE_LDAP=YES"
+ "-DENABLE_STRICT=NO")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'separate-outputs
(lambda* (#:key outputs #:allow-other-keys)
- (let ((tester-name (string-append #$name "_tester")))
+ (let ((tester-name (string-append #$name "-tester")))
(for-each mkdir-p
(list (string-append #$output:tester "/bin")
(string-append #$output:tester "/share")))
- (rename-file (string-append #$output "/bin/" tester-name)
- (string-append #$output:tester "/bin/" tester-name))
- (rename-file (string-append #$output "/bin/groupchat_benchmark")
- (string-append #$output:tester "/bin/groupchat_benchmark"))
- (rename-file (string-append #$output "/share/" tester-name)
- (string-append #$output:tester "/share/" tester-name))))))))
+ (rename-file
+ (string-append #$output "/bin/" tester-name)
+ (string-append #$output:tester "/bin/" tester-name))
+ (rename-file
+ (string-append #$output "/bin/liblinphone-groupchat-benchmark")
+ (string-append #$output:tester "/bin/liblinphone-groupchat-benchmark"))
+ (rename-file
+ (string-append #$output "/share/" tester-name)
+ (string-append #$output:tester "/share/" tester-name))))))))
(native-inputs
(list graphviz
doxygen
gettext-minimal
perl
+ pkg-config
python-wrapper
python-pystache
python-six
@@ -791,20 +785,24 @@ device.")
(inputs
(list bctoolbox
belcard
- belle-sip
belr
bzrtp
- lime
libnotify
- libxml2
- mediastreamer2
openldap-for-linphone
- ortp
soci
- sqlite
xsd
zlib
- zxing-cpp-1.2a))
+ zxing-cpp))
+ (propagated-inputs
+ ;; The following libraries are "required" by the LibLinphoneConfig.cmake
+ ;; CMake module.
+ (list belle-sip
+ jsoncpp
+ mediastreamer2
+ libxml2
+ lime
+ ortp
+ sqlite))
(synopsis "Belledonne Communications Softphone Library")
(description "Liblinphone is a high-level SIP library integrating
all calling and instant messaging features into an unified
@@ -817,7 +815,7 @@ and video calls or instant messaging capabilities to an application.")
(define-public linphone-desktop
(package
(name "linphone-desktop")
- (version "5.0.14")
+ (version "5.2.6")
(source
(origin
(method git-fetch)
@@ -826,29 +824,30 @@ and video calls or instant messaging capabilities to an application.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0glrfsp087ni5hn6x6p4f6y63r4nyp061yyy0rfgddbxkzdqi2j1"))
- (patches (search-patches "linphone-desktop-without-sdk.patch"))))
+ (base32 "06qfmgnsyaw1mdhd04pibsyfchy1bj15zvy36wz82g5dx3c5yj17"))
+ (patches
+ (search-patches "linphone-desktop-cmake-belcard.patch"
+ "linphone-desktop-cmake-find-modules.patch"
+ "linphone-desktop-ispell.patch"
+ "linphone-desktop-qtkeychain.patch"))))
(build-system qt-build-system)
(outputs '("out" "debug"))
(arguments
(list
#:tests? #f ; No test target
#:configure-flags
- #~(list (string-append "-DFULL_VERSION=" #$version)
- (string-append "-DCMAKE_INSTALL_PREFIX=" #$output)
+ #~(list (string-append "-DLINPHONEAPP_VERSION=" #$version)
(string-append "-DCMAKE_INSTALL_BINDIR=" #$output "/bin")
(string-append "-DCMAKE_INSTALL_DATAROOTDIR=" #$output "/share")
+ (string-append "-DCMAKE_INSTALL_INCLUDEDIR=" #$output "/include")
(string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib")
"-DENABLE_UPDATE_CHECK=NO"
"-DENABLE_DAEMON=YES"
- "-DENABLE_CONSOLE_UI=YES")
+ "-DENABLE_CONSOLE_UI=YES"
+ "-DLinphoneCxx_TARGET=liblinphone++"
+ "-DLINPHONE_QT_ONLY=YES") ;avoid building linphone SDK
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'pre-configure
- (lambda _
- (make-file-writable "linphone-app/linphoneqt_version.cmake")
- (substitute* "linphone-app/linphoneqt_version.cmake"
- (("\\$\\{GUIX-SET-VERSION\\}") #$version))))
(add-before 'install 'pre-install
(lambda _
(mkdir-p (string-append #$output "/share/linphone"))
@@ -875,18 +874,19 @@ and video calls or instant messaging capabilities to an application.")
(mkdir-p (dirname grammar-dest))
(symlink (string-append liblinphone "/share/belr/grammars")
grammar-dest)))))))
- (native-inputs
- (list pkg-config qttools-5))
+ (native-inputs (list pkg-config qttools-5))
(inputs
(list bctoolbox
belcard
- belr
+ ispell-for-linphone
liblinphone
mediastreamer2
ortp
qtbase-5
qtdeclarative-5
qtgraphicaleffects
+ qtkeychain
+ qtmultimedia-5
qtquickcontrols-5
qtquickcontrols2-5
qtsvg-5
@@ -913,11 +913,12 @@ and video calls or instant messaging capabilities to an application.")
(license license:gpl3+)))
(define-public msopenh264
- (let ((commit "88697cc95140017760d6da408cb0efdc5e86e40a")
+ ;; Unreleased commits are needed for the build to succeed.
+ (let ((commit "041b07a81f88f1dde2ebb7a1ea0b0e2ec281ab20")
(revision "0"))
(package
(name "msopenh264")
- (version (git-version "1.2.1" revision commit))
+ (version (git-version "5.2.0" revision commit))
(source
(origin
(method git-fetch)
@@ -926,14 +927,20 @@ and video calls or instant messaging capabilities to an application.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "10y3b6s934f2wbsf60b3p0g6hffizjqrj5in8l4sida2fjdxlwwy"))))
+ (base32 "0hwf8x5dc3iksdv61k4raswngyk3cyx8700v2rzrm296aw74f5r1"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
- (inputs
- (list bctoolbox mediastreamer2 openh264 ortp))
+ (list
+ #:tests? #f ; No test target
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Mediastreamer2_PLUGINS_DIR
+ (lambda _
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{Mediastreamer2_PLUGINS_DIR}")
+ (string-append #$output "/lib/mediastreamer/plugins"))))))))
+ (inputs (list bctoolbox mediastreamer2 openh264 ortp))
(synopsis "Media Streamer H.264 Codec")
(description "MsOpenH264 is an H.264 encoder/decoder plugin for
mediastreamer2 based on the openh264 library.")
@@ -941,11 +948,12 @@ and video calls or instant messaging capabilities to an application.")
(license license:gpl2+))))
(define-public mssilk
- (let ((commit "dd0f31ee795faa7ea89e601b072dae4cd1df7e3f")
+ ;; The latest release doesn't build; use the latest commit.
+ (let ((commit "0c6893fb74ecca34cb2707f7fffd0d7487b24925")
(revision "0"))
(package
(name "mssilk")
- (version (git-version "1.1.1" revision commit))
+ (version (git-version "1.2.0" revision commit))
(source
(origin
(method git-fetch)
@@ -954,14 +962,20 @@ and video calls or instant messaging capabilities to an application.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1dann5fnzqp6wjlwc6bl2k9b6rvn6bznqb3qsi1kgv9dnq44cbr0"))))
+ (base32 "1hpsh0iyby44hdanmkjnad7p9flhq2wcim8nl5bkyv1gw50sanli"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
- (inputs
- (list bctoolbox mediastreamer2 ortp))
+ (list
+ #:tests? #f ; No test target
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Mediastreamer2_PLUGINS_DIR
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{Mediastreamer2_PLUGINS_DIR}")
+ (string-append #$output "/lib/mediastreamer/plugins"))))))))
+ (inputs (list bctoolbox mediastreamer2 ortp))
(synopsis "Media Streamer SILK Codec")
(description "MSSILK is a plugin of MediaStreamer, adding support for AMR
codec. It is based on the Skype's SILK implementation.")
@@ -969,62 +983,68 @@ codec. It is based on the Skype's SILK implementation.")
(license license:gpl2+))))
(define-public mswebrtc
- (let ((commit "946ca706733f36a6b4923f04e569531125462d1d")
- (revision "0"))
- (package
- (name "mswebrtc")
- (version (git-version "1.1.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.linphone.org/BC/public/mswebrtc")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1pfg9m6bpbv0f53nx72rdxhlyriax9pg4yj0gpwq8ha6lqnpwg1x"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list
- "-DENABLE_STATIC=NO")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'copy-inputs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((webrtc-from (assoc-ref inputs "webrtc"))
- (webrtc-to (string-append (getcwd) "/webrtc")))
- (copy-recursively webrtc-from webrtc-to))
- #t)))))
- (native-inputs
- `(("webrtc"
- ,(origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://gitlab.linphone.org/BC/public/external/webrtc")
- (commit "583acd27665cfadef8ab03eb85a768d308bd29dd")))
- (file-name
- (git-file-name "webrtc-for-mswebrtc" version))
- (sha256
- (base32
- "1maqychrgwy0z4zypa03qp726l2finw64z6cymdzhd58ql3p1lvm"))))
- ("python" ,python-wrapper)))
- (inputs
- (list bctoolbox mediastreamer2 ortp))
- (synopsis "Media Streamer WebRTC Codec")
- (description "MSWebRTC is a plugin of MediaStreamer, adding support for
+ ;; A newer, unreleased commit is needed to detect a recent oRTP; use the
+ ;; latest one available.
+ (package
+ (name "mswebrtc")
+ (version "1.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/mswebrtc")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "10j124vd9zm03s1vzb74n3zjrf6x1nfvji7vryih4dq2xlgrqxx6"))
+ (patches (search-patches "mswebrtc-b64-refactor.patch"
+ "mswebrtc-cmake.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ; No test target
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Mediastreamer2_PLUGINS_DIR
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{Mediastreamer2_PLUGINS_DIR}")
+ (string-append #$output "/lib/mediastreamer/plugins")))))
+ (add-after 'unpack 'copy-inputs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((webrtc-from (assoc-ref inputs "webrtc"))
+ (webrtc-to (string-append (getcwd) "/webrtc")))
+ (copy-recursively webrtc-from webrtc-to)))))))
+ (native-inputs
+ `(("webrtc"
+ ,(origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://gitlab.linphone.org/BC/public/external/webrtc")
+ (commit "583acd27665cfadef8ab03eb85a768d308bd29dd")))
+ (file-name
+ (git-file-name "webrtc-for-mswebrtc" version))
+ (sha256
+ (base32
+ "1maqychrgwy0z4zypa03qp726l2finw64z6cymdzhd58ql3p1lvm"))))
+ ("python" ,python-wrapper)))
+ (inputs (list bctoolbox mediastreamer2 ortp))
+ (synopsis "Media Streamer WebRTC Codec")
+ (description "MSWebRTC is a plugin of MediaStreamer, adding support for
WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.")
- (home-page "https://gitlab.linphone.org/BC/public/mswebrtc")
- (license license:gpl2+))))
+ (home-page "https://gitlab.linphone.org/BC/public/mswebrtc")
+ (license license:gpl2+)))
(define-public msamr
- (let ((commit "5ab5c098299107048dfcbfc741f7392faef167bd")
- (revision "0"))
+ ;; The latest 1.1.4 release is 2 years old, doesn't build with a recent
+ ;; bctoolbox; use the latest commit available.
+ (let ((commit "129fc98c04a5cd412d5393427d43b0b445263ead")
+ (revision "1"))
(package
(name "msamr")
- (version (git-version "1.1.3" revision commit))
+ (version (git-version "1.1.4" revision commit))
(source
(origin
(method git-fetch)
@@ -1033,19 +1053,30 @@ WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1g79lw1qi1mlw3v1b0cixmqiwjql81gz9naakb15n8pvaag9aaqm"))))
+ (base32 "0zp5vmhgp18812j2pbys7g3v0slkc70q9qp7k26bk7iddg1yy9x2"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO" ; Not required
- "-DENABLE_WIDEBAND=YES")))
+ (list
+ #:tests? #f ; No test target
+ #:configure-flags
+ #~(list "-DBUILD_SHARED_LIBS=YES"
+ "-DENABLE_WIDEBAND=YES")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Mediastreamer2_PLUGINS_DIR
+ (lambda _
+ ;; msamr tries to install its plugins to
+ ;; Mediastreamer2_PLUGINS_DIR, which is provided by
+ ;; mediastreamer2 and points to its installation prefix.
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{Mediastreamer2_PLUGINS_DIR}")
+ (string-append #$output "/lib/mediastreamer/plugins"))))))))
(inputs
- `(("bctoolbox" ,bctoolbox)
- ("mediastreamer2" ,mediastreamer2)
- ("opencoreamr" ,opencore-amr)
- ("ortp" ,ortp)
- ("voamrwbenc" ,vo-amrwbenc)))
+ (list bctoolbox
+ mediastreamer2
+ opencore-amr
+ ortp
+ vo-amrwbenc))
(synopsis "Media Streamer AMR Codec")
(description "MSAMR is a plugin of MediaStreamer, adding support for AMR
codec. It is based on the opencore-amr implementation.")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 36cef84b14..ed8789be0e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -34,7 +34,7 @@
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
-;;; Copyright © 2019-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
;;; Copyright © 2019-2022 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
@@ -8103,124 +8103,128 @@ not as a replacement for it.")
license:gpl3+)))) ; everything else
(define-public hotspot
- (package
- (name "hotspot")
- (version "1.5.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/KDAB/hotspot")
- (commit (string-append "v" version))
- ;; Include the bundled perfparser and PrefixTickLabels
- ;; libraries, which are to be used in source form.
- (recursive? #t)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "04k2rvf2lgi8hp7dzqzn65fcd2lsiylwr04d44q75j0wvgbjjv1v"))))
- (build-system qt-build-system)
- (arguments
- (list
- ;; As mentioned in the option help text, the KAuth helper cannot be
- ;; installed to a custom prefix and the build fails with "file cannot
- ;; create directory: /polkit-1/actions. Maybe need administrative"
- ;; (see: https://bugs.kde.org/show_bug.cgi?id=363678).
- #:configure-flags #~(list "-DINSTALL_KAUTH_HELPER=OFF"
- "-DQT6_BUILD=ON")
- #:qtbase qtbase
- ;; The 'tst_models' and 'tst_callgraphgenerator' fail, with
- ;; the later seemingly requiring sudo or access to the kernel
- ;; trace points.
- #:test-exclude
- (string-append
- "("
- (string-join
- ;; The 'tst_models' expected output doesn't exactly
- ;; match.
- '("tst_models"
- ;; The 'tst_callgraphgenerator' perf invocation
- ;; fails when run in the build container.
- "tst_callgraphgenerator"
- ;; The 'tst_perfparser' test requires sudo/access
- ;; to the kernel scheduler trace points.
- "tst_perfparser")
- "|")
- ")")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-perfparser
- ;; XXX: This phase is copied from qt-creator: keep them in sync!
- (lambda* (#:key inputs #:allow-other-keys)
- ;; perfparser attempts to dynamically load the demangle
- ;; libraries; use their absolute file name to avoid having to
- ;; set LD_LIBRARY_PATH.
- (let ((librustc_demangle.so
- (with-exception-handler (lambda (ex)
- (if (search-error? ex)
- #f
- (raise-exception ex)))
- (lambda ()
- (search-input-file inputs "lib/librustc_demangle.so"))
- #:unwind? #t)))
- (substitute* "3rdparty/perfparser/app/demangler.cpp"
- (("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")"
- all)
- (if librustc_demangle.so
- (format #f "loadDemangleLib(QStringLiteral(~s)"
- librustc_demangle.so)
- all)) ;no rustc_demangle; leave unchanged
- (("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")")
- (format #f "loadDemangleLib(QStringLiteral(~s)"
- (search-input-file inputs
- "lib/libd_demangle.so")))))))
- (add-after 'unpack 'path-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/perfoutputwidgetkonsole.cpp"
- (("\"tail\"")
- (format #f "~s" (search-input-file inputs "bin/tail"))))
- (substitute* "src/perfrecord.cpp"
- (("\"perf( )?\"" _ space)
- (string-append "\"" (search-input-file inputs "bin/perf")
- (or space "") "\""))))))))
- (native-inputs
- (list extra-cmake-modules
- vulkan-headers))
- (inputs
- (append
- (list coreutils-minimal
- d-demangler
- elfutils
- karchive
- kconfig
- kcoreaddons
- kddockwidgets
- kgraphviewer
- ki18n
- kio
- kiconthemes
- kitemmodels
- kitemviews
- knotifications
- kparts
- ksyntaxhighlighting
- kwindowsystem
- libxkbcommon
- perf
- qtdeclarative
- qtsvg
- solid
- threadweaver
- `(,zstd "lib"))
- (if (supported-package? rust-rustc-demangle-capi-0.1)
- (list rust-rustc-demangle-capi-0.1)
- '())))
- (home-page "https://github.com/KDAB/hotspot")
- (synopsis "Performance analysis GUI for Linux perf")
- (description "Hotspot is a standalone GUI for performance data analysis.
+ ;; Use the latest git commit as it includes unreleased fixes for the test
+ ;; suite.
+ (let ((commit "5cec69301a3f34ada86ce9fe01a9538b04b3cf7c")
+ (revision "0"))
+ (package
+ (name "hotspot")
+ (version (git-version "1.5.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KDAB/hotspot")
+ (commit commit)
+ ;; Include the bundled perfparser and PrefixTickLabels
+ ;; libraries, which are to be used in source form.
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "115gskjdcb1q3mgrnv1qcdrhxabjzl1hhkpk1klk67ayicsk1ym6"))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ ;; As mentioned in the option help text, the KAuth helper cannot be
+ ;; installed to a custom prefix and the build fails with "file cannot
+ ;; create directory: /polkit-1/actions. Maybe need administrative"
+ ;; (see: https://bugs.kde.org/show_bug.cgi?id=363678).
+ #:configure-flags #~(list "-DINSTALL_KAUTH_HELPER=OFF"
+ "-DQT6_BUILD=ON")
+ #:qtbase qtbase
+ ;; The 'tst_models' and 'tst_callgraphgenerator' fail, with
+ ;; the later seemingly requiring sudo or access to the kernel
+ ;; trace points.
+ #:test-exclude
+ (string-append
+ "("
+ (string-join
+ ;; The 'tst_models' expected output doesn't exactly
+ ;; match.
+ '("tst_models"
+ ;; The 'tst_callgraphgenerator' perf invocation
+ ;; fails when run in the build container.
+ "tst_callgraphgenerator"
+ ;; The 'tst_perfparser' test requires sudo/access
+ ;; to the kernel scheduler trace points.
+ "tst_perfparser")
+ "|")
+ ")")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-perfparser
+ ;; XXX: This phase is copied from qt-creator: keep them in sync!
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; perfparser attempts to dynamically load the demangle
+ ;; libraries; use their absolute file name to avoid having to
+ ;; set LD_LIBRARY_PATH.
+ (let ((librustc_demangle.so
+ (with-exception-handler (lambda (ex)
+ (if (search-error? ex)
+ #f
+ (raise-exception ex)))
+ (lambda ()
+ (search-input-file inputs "lib/librustc_demangle.so"))
+ #:unwind? #t)))
+ (substitute* "3rdparty/perfparser/app/demangler.cpp"
+ (("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")"
+ all)
+ (if librustc_demangle.so
+ (format #f "loadDemangleLib(QStringLiteral(~s)"
+ librustc_demangle.so)
+ all)) ;no rustc_demangle; leave unchanged
+ (("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")")
+ (format #f "loadDemangleLib(QStringLiteral(~s)"
+ (search-input-file inputs
+ "lib/libd_demangle.so")))))))
+ (add-after 'unpack 'path-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/perfoutputwidgetkonsole.cpp"
+ (("\"tail\"")
+ (format #f "~s" (search-input-file inputs "bin/tail"))))
+ (substitute* "src/perfrecord.cpp"
+ (("\"perf( )?\"" _ space)
+ (string-append "\"" (search-input-file inputs "bin/perf")
+ (or space "") "\""))))))))
+ (native-inputs
+ (list extra-cmake-modules
+ vulkan-headers))
+ (inputs
+ (append
+ (list coreutils-minimal
+ d-demangler
+ elfutils
+ karchive
+ kconfig
+ kcoreaddons
+ kddockwidgets
+ kgraphviewer
+ ki18n
+ kio
+ kiconthemes
+ kitemmodels
+ kitemviews
+ knotifications
+ kparts
+ ksyntaxhighlighting
+ kwindowsystem
+ libxkbcommon
+ perf
+ qtdeclarative
+ qtsvg
+ solid
+ threadweaver
+ `(,zstd "lib"))
+ (if (supported-package? rust-rustc-demangle-capi-0.1)
+ (list rust-rustc-demangle-capi-0.1)
+ '())))
+ (home-page "https://github.com/KDAB/hotspot")
+ (synopsis "Performance analysis GUI for Linux perf")
+ (description "Hotspot is a standalone GUI for performance data analysis.
It aims to be similar to KCachegrind, but for data collected with
@command{perf}, a profiler for use with the kernel Linux. Its main feature is
graphically visualizing a @file{perf.data} file.")
- (license (list license:gpl2+ license:gpl3+)))) ;dual licensed
+ (license (list license:gpl2+ license:gpl3+))))) ;dual licensed
(define-public ecryptfs-utils
(package
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 7a748e2bad..a87634eb83 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -1384,7 +1384,14 @@ Library.")
"-DBUILD_SHARED_LIBS:BOOL=TRUE"
"-DLLVM_VERSION_SUFFIX="))))
(properties `((hidden? . #t)
- ,@(package-properties llvm-19)))))
+ ,@(package-properties llvm-19)))
+ (home-page "https://github.com/ROCm/llvm-project")
+ (synopsis
+ (string-append (package-synopsis llvm-14) " (AMD fork)"))
+ (description
+ (string-append (package-description llvm-14) "
+
+This AMD fork includes AMD-specific additions."))))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 7fb07cab0c..bfdbafa1bb 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -1309,104 +1309,6 @@ multiple local rocks trees.")
(define-public luarocks
(make-luarocks "luarocks" lua))
-(define-public emilua
- (package
- (name "emilua")
- (version "0.4.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/emilua/emilua.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1dwag2pyqc0g86rris4w4fzafmz9a6kiqd47vdq7hl3a1lyi74mx"))))
- (build-system meson-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/emilua_gperf.awk"
- (("/usr/bin/env") (which "env")))
- (substitute* "src/system.cpp"
- (("P_PIDFD") "P_PID"))
-
- (copy-recursively
- (assoc-ref inputs "emilua-http")
- "emilua-http")
- (copy-recursively
- (assoc-ref inputs "trial-protocol")
- "trial-protocol")
-
- (with-directory-excursion "subprojects"
- (symlink "../emilua-http" "emilua-http")
- (copy-file "packagefiles/emilua-http/meson.build"
- "emilua-http/meson.build")
- (symlink "../trial-protocol" "trial-protocol")
- (copy-file "packagefiles/trial.protocol/meson.build"
- "trial-protocol/meson.build")))))
- #:configure-flags
- #~(list "-Denable_http=true"
- "-Denable_file_io=true"
- "-Denable_io_uring=true"
- ;; TODO: Linux namespaces are disabled for now due to conflict
- ;; with some packages in guix.
- "-Denable_linux_namespaces=false"
- "-Denable_manpages=false"
- "-Dversion_suffix=-guix1")))
- (native-inputs
- (list luajit-lua52-openresty
- re2c
- gperf
- xxd
- pkg-config))
- (inputs
- `(("emilua-http"
- ,(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/BoostGSoC14/boost.http")
- (commit "93ae527c89ffc517862e1f5f54c8a257278f1195")))
- (sha256
- (base32
- "0jm7fw0cjd3s9zkkvyh6mcj6z32hcy7l9bszv74l92qk15ivvp9h"))))
- ("trial-protocol"
- ,(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/breese/trial.protocol")
- (commit "79149f604a49b8dfec57857ca28aaf508069b669")))
- (sha256
- (base32
- "0k42i5b4v3zz5x0r3dssiymgmn2x8zg4fzdksya9aggxgigippsx"))))
- ("boost" ,boost)
- ("boost-static" ,boost-static)
- ("fmt" ,fmt-8)
- ("gcc" ,gcc-12)
- ("luajit-lua52-openresty" ,luajit-lua52-openresty)
- ("ncurses" ,ncurses)
- ("serd" ,serd)
- ("sord" ,sord)
- ("libcap" ,libcap)
- ("liburing" ,liburing)
- ("openssl" ,openssl)))
- (native-search-paths
- (list
- (search-path-specification
- (variable "EMILUA_PATH")
- (files
- (list (string-append "lib/emilua-" (version-major+minor version)))))))
- (home-page "https://gitlab.com/emilua/emilua")
- (synopsis "Lua execution engine")
- (description
- "Emilua is a LuaJIT-based Lua execution engine that supports async IO,
-fibers and actor-inspired threading. The experimental builtin HTTP module is
-enabled.")
- (license license:boost1.0)))
-
(define-public fennel
(package
(name "fennel")
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 2662235679..634a2f5849 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -103,7 +103,7 @@ to statistics about the system on which it's run.")
(define-public lxqt-build-tools
(package
(name "lxqt-build-tools")
- (version "2.1.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
@@ -111,7 +111,7 @@ to statistics about the system on which it's run.")
"/download/" version
"/lxqt-build-tools-" version ".tar.xz"))
(sha256
- (base32 "1ycfzl8sfa2d1bnlyj6b3726mfb6kpj5768fhpw1ypkgjclvcn14"))))
+ (base32 "0brkiq62cv5rp2knq3dbdzh4cv6l670x1bfxq1537k2mdcpdzp0k"))))
(build-system cmake-build-system)
(arguments
(list
@@ -151,7 +151,7 @@ itself as well as other components maintained by the LXQt project.")
(define-public libqtxdg
(package
(name "libqtxdg")
- (version "4.1.0")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
@@ -159,7 +159,7 @@ itself as well as other components maintained by the LXQt project.")
"https://github.com/lxqt/libqtxdg/releases/download/"
version "/libqtxdg-" version ".tar.xz"))
(sha256
- (base32 "02c8irxyra0kfm7k1jkcxinfipib3w9jn2lk91hnl6jnv6bx6106"))))
+ (base32 "0ap81y7sbqwcdfsdlyxihs12chfv332fgg6y0sl6zmjhhlhk1m55"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -188,7 +188,7 @@ in Qt.")
(define-public qtxdg-tools
(package
(name "qtxdg-tools")
- (version "4.1.0")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
@@ -196,7 +196,7 @@ in Qt.")
"https://github.com/lxqt/qtxdg-tools/releases/download/"
version "/qtxdg-tools-" version ".tar.xz"))
(sha256
- (base32 "1dk6m6gyarnhjw42hdf2bpkfcdpb98dy28l2nmpj46h985v9pmfv"))))
+ (base32 "1bv3immy1idp7jc0csnjkiw8vvqkr8g84hnnvl6k8297g4vnwfjh"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ; no tests
(propagated-inputs (list libqtxdg))
@@ -211,7 +211,7 @@ applications.")
(define-public liblxqt
(package
(name "liblxqt")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
@@ -219,7 +219,7 @@ applications.")
"https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1q1wn53rsy6bagngj1k53sipmbga3pbwk446kd1m6prwz1i0p0hh"))))
+ (base32 "1j0918fyka0kxwsn3mgnjnfc8cvdp6dsgg0i40877ysry0dqp2aa"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -277,14 +277,14 @@ and memory usage or network traffic.")
(define-public lxqt-about
(package
(name "lxqt-about")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0js94q82rpaqkdg6vl3p4w4kw091dp6wixgkw5dbvqsnaw2v8nd0"))))
+ (base32 "0vypdk0nf2rr7riv8xp7wy1x9694i73rgk0dj9x39gh53jm4xjy5"))))
(build-system cmake-build-system)
(inputs
(list liblxqt))
@@ -307,14 +307,14 @@ LXQt and the system it's running on.")
(define-public lxqt-admin
(package
(name "lxqt-admin")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "047m08hhl8ykk2n2zr0h38f0ynq6b81v80hqrfhqfik3c20895ss"))))
+ (base32 "03gkb7gwq0gy9ihvawn38i36nkfmwyslf8wmbp4ssj129i94sphq"))))
(build-system cmake-build-system)
(inputs
(list liblxqt polkit-qt6))
@@ -340,14 +340,14 @@ the operating system LXQt is running on.")
(define-public lxqt-menu-data
(package
(name "lxqt-menu-data")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1d7asl9zmz9vsnf0sv6ynnhcnz6f1aw56giilwsw8vy12driilnj"))))
+ (base32 "0nw9mr4p5ri3bk43xd871g3ni9irf6rrk8rz4d8ra9wd7bz2d855"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ;no tests
@@ -364,14 +364,14 @@ LXQt Panel, Configuration Center and PCManFM-Qt/libfm-qt.")
(define-public lxqt-config
(package
(name "lxqt-config")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "03bq440npq3l4ssx7l1a15962q1jylfzdldfr66dm5nkjgvvv0gs"))))
+ (base32 "07ik1ycldpin21v4b29a95zb14q1s4bfbmlvyvw50r0mx0whnysj"))))
(build-system cmake-build-system)
(inputs
(list eudev
@@ -409,7 +409,7 @@ configuration of both LXQt and the underlying operating system.")
(define-public lxqt-globalkeys
(package
(name "lxqt-globalkeys")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
@@ -417,7 +417,7 @@ configuration of both LXQt and the underlying operating system.")
"releases/download/" version "/"
"lxqt-globalkeys-" version ".tar.xz"))
(sha256
- (base32 "0x18jkis3avl7928584sgl6c3fk1xm2qgpksxcy2qsk2ab25dk3h"))))
+ (base32 "16lpz4wm6iz065drmgfgfjxkd0gc5g1wqisqcgs6iff0skpdzkv6"))))
(build-system cmake-build-system)
(inputs
(list liblxqt))
@@ -434,14 +434,14 @@ as a whole and are not limited to distinct applications.")
(define-public lxqt-notificationd
(package
(name "lxqt-notificationd")
- (version "2.1.1")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0n7hbvqx8csd9pprwqrh3nfbdqfj6i5hznjyxfn1ll5h3szaq5vy"))))
+ (base32 "1i3rly1jk3kgzl0gscsygfqr8g6147r7031j41qgdrf2w5nby8s2"))))
(build-system cmake-build-system)
(inputs
(list kwindowsystem layer-shell-qt liblxqt libqtxdg))
@@ -457,14 +457,14 @@ according to the Desktop Notifications Specification.")
(define-public lxqt-openssh-askpass
(package
(name "lxqt-openssh-askpass")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1inkicq0p5pxqpw9k13vx421fvpgmkn2lsskvlzqy1nnab3ilaf5"))))
+ (base32 "0g3gkfgyk7jgghslabmhlqwzafsd9i8c0sppb5hb4qllg916cadv"))))
(build-system cmake-build-system)
(inputs
(list liblxqt))
@@ -480,14 +480,14 @@ of other programs.")
(define-public libdbusmenu-lxqt
(package
(name "libdbusmenu-lxqt")
- (version "0.2.0")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0knq04si5dzcml35hj29fkp806rrr7gnviqci1diw1k9gxyaf8lc"))))
+ (base32 "1y9z4iwpl5kqdn36y2d1dligsv84a79piw2b6jxb17sd796x385d"))))
(build-system cmake-build-system)
(arguments
(list
@@ -505,14 +505,14 @@ possible for applications to export and import their menus over DBus.")
(define-public lxqt-panel
(package
(name "lxqt-panel")
- (version "2.1.4")
+ (version "2.2.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1rhm57nnwr0mhii2r40gmawllj4cza9qb25qykkn236jfgpbilgz"))))
+ (base32 "0s8rva0prz1mkccp5yanrm0gg63cn95pzv2fixdp26489rx0w5ax"))))
(build-system cmake-build-system)
(inputs
(list alsa-lib
@@ -562,14 +562,14 @@ possible for applications to export and import their menus over DBus.")
(define-public lxqt-policykit
(package
(name "lxqt-policykit")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0h0hi7aimjhc6rn4w8wz3kmvpkx7g6bf9i1fclan7j7ic80cf160"))))
+ (base32 "07lsfnpix9lr4nqlwipld2d02030921ssk6w77iqa81zy1c2v1yr"))))
(build-system cmake-build-system)
(inputs
(list liblxqt polkit polkit-qt6))
@@ -585,14 +585,14 @@ LXQt.")
(define-public lxqt-powermanagement
(package
(name "lxqt-powermanagement")
- (version "2.1.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0pyzd7pw3mpp0f5193a8fg1bvixwabrapnpqy2q2a707j664mqhj"))))
+ (base32 "1pds86s72ckkvk886ncajnl7q11814w94dfmbblmml2dmfxyhkbx"))))
(build-system cmake-build-system)
(inputs
(list kidletime
@@ -612,14 +612,14 @@ when laptop batteries are low on power.")
(define-public lxqt-qtplugin
(package
(name "lxqt-qtplugin")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0giql40mnl100zhqcyxi1vxsfyvx5hvi9zibjh5krr6nwrwwflhb"))))
+ (base32 "1w05710c9f3vzi9rsnyqiivxg1skirgrqk1dwxcw1gd4w01hyfp0"))))
(build-system cmake-build-system)
(inputs
(list libdbusmenu-lxqt
@@ -646,14 +646,14 @@ Qt with LXQt.")
(define-public lxqt-runner
(package
(name "lxqt-runner")
- (version "2.1.1")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0pmviizv7cxiqn2868bmbwgqrakmp4fv6a1wzbal0gndgc14yxmw"))))
+ (base32 "1478hsi662s6cw83im710slm6mfq9vn10lq98yqrakmwr6salp71"))))
(build-system cmake-build-system)
(inputs
(list kwindowsystem
@@ -674,14 +674,14 @@ allows for launching applications or shutting down the system.")
(define-public lxqt-session
(package
(name "lxqt-session")
- (version "2.1.1")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "06f8kfy859ri2wbjpz7yx69jw0gfxm80f46729lcl2vd23a0qari"))))
+ (base32 "12l9sch1lsxpj14ibrjsyv40nrgrdqhkhpzi24sm1bqnnl9jdg17"))))
(build-system cmake-build-system)
(inputs
(list bash-minimal
@@ -731,14 +731,14 @@ for the LXQt desktop environment.")
(define-public lxqt-sudo
(package
(name "lxqt-sudo")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "17bk4bcvm919q7h63q2sdnzwwbqjpk98kb5ij14rqs9v2psbqfks"))))
+ (base32 "14fg8mxbkdi8sp8rdxy2zqwfgmzxrmj1xnq3h25pqnc61qf12y4f"))))
(build-system cmake-build-system)
(inputs
(list liblxqt sudo))
@@ -755,14 +755,14 @@ permissions of other users including root.")
(define-public lxqt-themes
(package
(name "lxqt-themes")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1b0gpmw6capkccysnvjj20j8l2p7hjkkpby72n9y982kb8f11l6d"))))
+ (base32 "1wplp817pacq18x67vrqjdnaa1hn4fx2zn1clc85bjh8mpcaiicj"))))
(build-system cmake-build-system)
(native-inputs
(list lxqt-build-tools))
@@ -781,14 +781,14 @@ for LXQt.")
(define-public libfm-qt
(package
(name "libfm-qt")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1mr93by010scy06kmpgmsvkabg7zn1f0mm9i7grm17mfv3hkx85z"))))
+ (base32 "1a8k8df38mf9bcdr6a44vjz15p84v3l33af485zlyhngrxpsi2jd"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no tests
@@ -809,14 +809,14 @@ components to build desktop file managers which belongs to LXDE.")
(define-public pcmanfm-qt
(package
(name "pcmanfm-qt")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0kvbw1slbcism42rqn09h1q3dirq44g8h3azg1vc86zs3mbqcd76"))))
+ (base32 "13xyl7xvv8qy35gfmjbq6ahqzq7xjn7j6336njhsvj82ipxfmvm5"))))
(build-system cmake-build-system)
(arguments
(list
@@ -846,14 +846,14 @@ LXDE.")
(define-public lximage-qt
(package
(name "lximage-qt")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1z7nyx5w9hvrz9zfil6sbpm61h47iap85p1bvwjvg863bqq01xpv"))))
+ (base32 "1slriyvf0zz6mn5ldcd2v3i2yf0skmdf3hki9q8h2aby7bpvybnc"))))
(build-system cmake-build-system)
(inputs
(list libexif libfm-qt qtsvg))
@@ -926,14 +926,14 @@ window manager OpenBox.")
(define-public pavucontrol-qt
(package
(name "pavucontrol-qt")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1gvb73xxyv7avqx9wk8lvcfisbfdxcr6rc8ncnv35cn09f5gqg3c"))))
+ (base32 "1sdf221hq6z0haairwb4n29v7pjzgzf355r3m0iks0y1d9117lpi"))))
(build-system cmake-build-system)
(inputs
(list glib qtbase pulseaudio))
@@ -950,14 +950,14 @@ window manager OpenBox.")
(define-public qps
(package
(name "qps")
- (version "2.10.0")
+ (version "2.11.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "05ncgfiqqs53k4wx62845krd7qi26im5pa2xq1kxh8wlng44gjjf"))))
+ (base32 "0dk4rs2i5qxl1plnis9y2bjm148vlzb43ny29kaa5rkrv3lnq354"))))
(build-system cmake-build-system)
(inputs
(list liblxqt))
@@ -974,14 +974,14 @@ processes currently in existence, much like code{top} or code{ps}.")
(define-public qtermwidget
(package
(name "qtermwidget")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0jwfpv9dwifkjgzy2fiffkvj0dd3aw4rf95fnnrhvqcdlg1v5v16"))))
+ (base32 "1s8w4s7wi7sv6vx8njlcvzmywyrkz4v4jmj3cbvsymfgg6xgnkxs"))))
(build-system cmake-build-system)
(inputs
(list qtbase utf8proc))
@@ -997,14 +997,14 @@ processes currently in existence, much like code{top} or code{ps}.")
(define-public qterminal
(package
(name "qterminal")
- (version "2.1.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0g11n43msp0dwl68nf5wdh6kwi48xqc43pl9bpg4wsdw8n37hpm6"))))
+ (base32 "1lpm1065wj61x6w1w7zgy0b7g62c9gbg6v17l0vlgbxv10s8rlqc"))))
(build-system cmake-build-system)
(inputs
(list layer-shell-qt qtbase qtermwidget))
@@ -1021,19 +1021,24 @@ QTermWidget.")
(define-public screengrab
(package
(name "screengrab")
- (version "2.9.0")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/screengrab/releases/download/"
version "/screengrab-" version ".tar.xz"))
(sha256
- (base32 "1c7nyz1sjk30qpm00jzz9vq54jm6dyqfajjiwsqlp5hvx9gfgg17"))))
+ (base32 "1ryfdh7rkdrf9lf7j0p3zapw80hvpg0k6hb8r84yp5c5d0l09b9h"))))
(build-system cmake-build-system)
(inputs
- (list kwindowsystem libqtxdg qtbase))
+ (list kwindowsystem
+ layer-shell-qt
+ libpng
+ libqtxdg
+ qtwayland
+ wayland))
(native-inputs
- (list pkg-config perl qttools))
+ (list lxqt-build-tools))
(arguments
'(#:tests? #f)) ; no tests
(home-page "https://lxqt-project.org")
@@ -1046,14 +1051,14 @@ easily publishing them on internet image hosting services.")
(define-public lxqt-archiver
(package
(name "lxqt-archiver")
- (version "1.1.0")
+ (version "1.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "1ir6dc45qp4g6iv57nyn9z1bh06ih9cm8gmgw646370m1jvh06k9"))))
+ (base32 "1iisk5mb4xxdjimlh8inr182a1vpy8zk5qis9v3p5p73d49i5r2k"))))
(build-system cmake-build-system)
(inputs
(list glib json-glib libfm-qt qtbase))
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 7f24a449fe..f57160e21f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3976,6 +3976,21 @@ advanced research.")
(with-directory-excursion "/tmp/fft2d"
(invoke "tar" "--strip-components=1"
"-xf" (assoc-ref inputs "fft2d-src")))))
+ (add-after 'copy-sources 'opencl-fix
+ (lambda _ (substitute* "delegates/gpu/cl/opencl_wrapper.h"
+ (("cl_ndrange_kernel_command_properties_khr")
+ "cl_command_properties_khr"))))
+ (add-after 'opencl-fix 'absl-fix
+ (lambda _ (substitute* '(
+ "delegates/gpu/cl/cl_operation.h"
+ "delegates/gpu/common/task/qcom_thin_filter_desc.cc"
+ "delegates/gpu/common/tasks/special/thin_pointwise_fuser.cc")
+ (("#include <vector>")
+ "#include <vector>\n\n#include \"absl/strings/str_cat.h\"\n"))))
+ (add-after 'opencl-fix 'stdint-fix
+ (lambda _ (substitute* "kernels/internal/spectrogram.cc"
+ (("#include <math.h>")
+ "#include <math.h>\n#include <cstdint>\n"))))
(add-after 'build 'build-shared-library
(lambda* (#:key configure-flags #:allow-other-keys)
(mkdir-p "c")
@@ -4000,7 +4015,7 @@ advanced research.")
(when tests?
(invoke "ctest" "-L" "plain")))))))
(inputs
- `(("abseil-cpp" ,abseil-cpp-20200923.3)
+ `(("abseil-cpp" ,abseil-cpp)
("cpuinfo" ,cpuinfo)
("eigen" ,eigen)
("fp16" ,fp16)
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 119fc5988a..f9b0c3b2f4 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1555,6 +1555,18 @@ MATE Desktop to monitor your system resources and usage.")
(base32
"1s2ac2p5smiwr7lf4snciyb9waclychjmzrw32f2qspdm381s2im"))))
(build-system glib-or-gtk-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'enable-autostart-for-xfce
+ (lambda _
+ ;; We also use mate-polkit in Xfce.
+ (substitute* (string-append
+ #$output
+ "/etc/xdg/autostart/"
+ "polkit-mate-authentication-agent-1.desktop")
+ (("OnlyShowIn=MATE;") "OnlyShowIn=MATE;XFCE;")))))))
(native-inputs
(list gettext-minimal gtk-doc/stable intltool libtool pkg-config))
(inputs
@@ -1571,24 +1583,6 @@ MATE Desktop to monitor your system resources and usage.")
used to bring up authentication dialogs.")
(license license:lgpl2.1)))
-(define-public mate-polkit-for-xfce
- (package/inherit mate-polkit
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'install 'patch-desktop
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((common (string-append
- (assoc-ref outputs "out") "/etc/xdg/autostart/"
- "polkit-mate-authentication-agent-"))
- (old (string-append common "1.desktop"))
- (new (string-append common "for-xfce-1.desktop")))
- (substitute* old (("MATE;") "XFCE;"))
- ;; To avoid a conflict if both MATE and XFCE are installed.
- (rename-file old new)))))))
- (properties `((hidden? . #t)))))
-
-
(define-public mozo
(package
(name "mozo")
@@ -1638,19 +1632,8 @@ menu specification.")
(version (package-version mate-desktop))
(source #f)
(build-system trivial-build-system)
- (arguments
- `(#:modules ((guix build union))
- #:builder
- (begin
- (use-modules (ice-9 match)
- (guix build union))
- (match %build-inputs
- (((names . directories) ...)
- (union-build (assoc-ref %outputs "out")
- directories)
- #t)))))
- (native-inputs (list desktop-file-utils))
- (inputs
+ (arguments '(#:builder (mkdir %output)))
+ (propagated-inputs
;; TODO: Add more packages
(append (if (or (%current-target-system)
(supported-package? gnome-keyring))
@@ -1662,9 +1645,11 @@ menu specification.")
dbus
dconf
dconf-editor
+ desktop-file-utils
engrampa
eom
font-abattis-cantarell
+ font-dejavu ;default font
glib-networking
gvfs
hicolor-icon-theme
@@ -1698,9 +1683,6 @@ menu specification.")
shared-mime-info
yelp
zenity)))
- (propagated-inputs
- ;; Default font that applications such as IceCat require.
- (list font-dejavu))
(synopsis "The MATE desktop environment")
(home-page "https://mate-desktop.org/")
(description
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index b11e6ec19c..43897862ef 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2025 Felix Lechner <felix.lechner@lease-up.com>
+;;; Copyright © 2025 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,61 +41,9 @@
#:use-module (guix packages)
#:use-module (guix utils))
-(define-public nyacc-0.86
- ;; Nyacc used for bootstrap.
- (package
- (name "nyacc")
- (version "0.86.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/nyacc/"
- name "-" version ".tar.gz"))
- (patches (search-patches "nyacc-binary-literals.patch"))
- (sha256
- (base32
- "0lkd9lyspvhxlfs0496gsllwinh62jk9wij6gpadvx9gwz6yavd9"))))
- (build-system gnu-build-system)
- (native-inputs (list guile-2.2))
- (synopsis "LALR(1) Parser Generator in Guile")
- (description
- "NYACC is an LALR(1) parser generator implemented in Guile.
-The syntax and nomenclature should be considered not stable. It comes with
-extensive examples, including parsers for the Javascript and C99 languages.")
- (home-page "https://savannah.nongnu.org/projects/nyacc")
- (license (list gpl3+ lgpl3+))))
-
-(define-public nyacc-0.99
- (package
- (inherit nyacc-0.86)
- (version "0.99.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/nyacc/nyacc-"
- version ".tar.gz"))
- (sha256
- (base32
- "0hl5qxx19i4x1r0839sxm19ziqq65g4hy97yik81cc2yb9yvgyv3"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (substitute* (find-files "." "^Makefile\\.in$")
- (("^SITE_SCM_DIR =.*")
- "SITE_SCM_DIR = \
-@prefix@/share/guile/site/@GUILE_EFFECTIVE_VERSION@\n")
- (("^SITE_SCM_GO_DIR =.*")
- "SITE_SCM_GO_DIR = \
-@prefix@/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")
- (("^INFODIR =.*")
- "INFODIR = @prefix@/share/info\n")
- (("^DOCDIR =.*")
- "DOCDIR = @prefix@/share/doc/$(PACKAGE_TARNAME)\n"))
- #t))))
- (native-inputs (list pkg-config))
- (inputs (list guile-2.2))))
-
(define-public nyacc-1.08.1
(package
- (inherit nyacc-0.99)
+ (name "nyacc")
(version "1.08.1")
(source (origin
(method url-fetch)
@@ -109,17 +58,24 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(("GUILE_GLOBAL_SITE=\\$prefix.*")
"GUILE_GLOBAL_SITE=\
$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION\n")))))
+ (build-system gnu-build-system)
+ (native-inputs (list pkg-config))
(inputs (list guile-3.0))
(propagated-inputs (list guile-bytestructures))
+ (home-page "https://savannah.nongnu.org/projects/nyacc")
+ (synopsis "LALR(1) Parser Generator in Guile")
(description
"@acronym{NYACC, Not Yet Another Compiler Compiler} is set of Guile modules
for generating parsers and lexical analyzers. It provides sample parsers,
pretty-printers using SXML trees as an intermediate representation, a decent C
parser and an `FFI Helper' tool to help create Guile Scheme bindings for C-based
libraries. It also provides (partially implemented) compilers based on these
-parsers to allow execution with Guile as extension languages.")))
+parsers to allow execution with Guile as extension languages.")
+ (license (list gpl3+ lgpl3+))))
(define-public nyacc-1.00.2
+ ;; The source of this package is used for bootstrapping in
+ ;; commencement.scm. Otherwise it could be removed.
(package
(inherit nyacc-1.08.1)
(version "1.00.2")
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 299ee0d55c..9c09350c21 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -3539,71 +3539,6 @@ a persistent connection to an IRC server, acting as a proxy and buffer for
a number of clients.")
(license license:gpl3+)))
-(define-public weechat-matrix
- (package
- (name "weechat-matrix")
- (version "0.3.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/poljar/weechat-matrix")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1iv55n4k05139f7jzkhczgw4qp6qwilrvfsy3c6v2m1kxffj12d3"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'build)
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((weechat-python (string-append (assoc-ref outputs "out")
- "/share/weechat/python")))
- ;; Avoid circular import by renaming the matrix module to
- ;; weechat_matrix.
- (substitute* (cons "main.py"
- (append (find-files "matrix")
- (find-files "tests")))
- (("from matrix") "from weechat_matrix")
- (("import matrix") "import weechat_matrix"))
- ;; Install python modules.
- (invoke "make" "install-lib"
- (string-append "INSTALLDIR="
- (site-packages inputs outputs)
- "/weechat_matrix"))
- ;; Extend PYTHONPATH to find installed python modules.
- (add-installed-pythonpath inputs outputs)
- ;; Augment sys.path so that dependencies are found.
- (substitute* "main.py"
- (("import os\n" all)
- (apply string-append
- all
- "import sys\n"
- (map (lambda (path)
- (string-append "sys.path.append('" path "')\n"))
- (string-split (getenv "GUIX_PYTHONPATH") #\:)))))
- ;; Install script.
- (mkdir-p weechat-python)
- (copy-file "main.py"
- (string-append weechat-python "/matrix.py")))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest")))))))
- (inputs
- (list python-matrix-nio python-pygments python-pyopenssl
- python-webcolors))
- (native-inputs
- (list python-pytest))
- (home-page "https://github.com/poljar/weechat-matrix")
- (synopsis "Weechat Matrix protocol script")
- (description "@code{weechat-matrix} is a Python plugin for Weechat that lets
-Weechat communicate over the Matrix protocol.")
- (license license:isc)))
-
(define-public weechat-wee-slack
(package
(name "weechat-wee-slack")
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index f815d2342c..aa047a392a 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -158,7 +158,7 @@ bind processes, and much more.")
(define-public hwloc-2
(package
(inherit hwloc-1)
- (version "2.12.1")
+ (version "2.12.2")
(source (origin
(method url-fetch)
(uri (string-append "https://download.open-mpi.org/release/hwloc/v"
@@ -166,7 +166,7 @@ bind processes, and much more.")
"/hwloc-" version ".tar.bz2"))
(sha256
(base32
- "0sy63p99bz9xyaz1501mwv8i3qa1v1zwa7gynadry9c6pcl07a9q"))))
+ "182v0n2mpnbvdsw0gjnbmaj027k2jxmw7yphi89i9dgb1zbn2gjn"))))
(native-inputs (modify-inputs (package-native-inputs hwloc-1)
(append bash))) ;for completion tests
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7190dfcd57..86187dc3c0 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -903,18 +903,34 @@ many input formats and provides a customisable Vi-style user interface.")
(define-public denemo
(package
(name "denemo")
- (version "2.6.0")
+ (version "2.6.44")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/denemo/denemo-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.git.savannah.gnu.org/denemo")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0pdmjij2635jbw2a24ivk1y4w0z58jbmq9vnz3qrfzw4d469grab"))))
+ (base32
+ "1vpaiw34f0h0z01r40ln00494l4dwmyc4cy00hz2xggp6pa4abqy"))))
(build-system gnu-build-system)
(arguments
(list
+ #:configure-flags
+ #~(list (string-append
+ "CFLAGS="
+ (string-join (list "-Wno-error=incompatible-pointer-types"
+ "-Wno-error=implicit-function-declaration")
+ " ")))
#:phases
#~(modify-phases %standard-phases
+ (add-before 'bootstrap 'patch-autogen
+ (lambda _
+ (substitute* "autogen.sh"
+ (("/usr/share/aclocal")
+ (string-append #$(this-package-native-input "automake")
+ "/share/aclocal")))))
(replace 'check
(lambda* (#:key inputs tests? #:allow-other-keys)
;; Tests require to write $HOME.
@@ -938,8 +954,10 @@ many input formats and provides a customisable Vi-style user interface.")
lilypond
"\");")))))))))
(native-inputs
- (list diffutils
- `(,glib "bin") ; for gtester
+ (list autoconf
+ automake
+ diffutils
+ `(,glib "bin") ; for gtester
gtk-doc/stable
intltool
libtool
@@ -953,7 +971,7 @@ many input formats and provides a customisable Vi-style user interface.")
glib
gtk+
gtksourceview-3
- guile-2.0
+ guile-3.0
(librsvg-for-system)
libsndfile
libxml2
@@ -7005,16 +7023,16 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
(define-public geonkick
(package
(name "geonkick")
- (version "2.7.0")
+ (version "3.6.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/iurie-sw/geonkick")
+ (url "https://codeberg.org/Geonkick-Synthesizer/geonkick")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0w1mvqm46qdwldcl81svaykwii4wvx7mcr57kwvnj0iv2qrc891i"))))
+ (base32 "0817hsfvgri315aw0y06rzjcw96lhgxjc37rbxqagk3ciw0naj6n"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no tests included
@@ -7036,7 +7054,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
(description "Geonkick is a synthesizer that can synthesize elements
of percussion such as kicks, snares, hit-hats, shakers, claps and sticks.
It can also play and mix samples.")
- (home-page "https://gitlab.com/iurie-sw/geonkick")
+ (home-page "https://geonkick.org")
(license license:gpl3+)))
(define-public mamba
diff --git a/gnu/packages/patches/ispell-for-linphone-cmake.patch b/gnu/packages/patches/ispell-for-linphone-cmake.patch
new file mode 100644
index 0000000000..6785ca4b7e
--- /dev/null
+++ b/gnu/packages/patches/ispell-for-linphone-cmake.patch
@@ -0,0 +1,43 @@
+Retrieved from: https://git.pld-linux.org/?p=packages/bc-ispell.git;a=blob_plain;f=ispell-cmake.patch;hb=HEAD
+
+--- ispell-05574fe160222c3d0b6283c1433c9b087271fad1/CMakeLists.txt.orig 2023-11-07 11:53:37.000000000 +0100
++++ ispell-05574fe160222c3d0b6283c1433c9b087271fad1/CMakeLists.txt 2024-03-28 20:53:45.068632010 +0100
+@@ -49,6 +49,26 @@ set(ISPELL_SOURCES
+
+ add_library(${ISPELL_TARGET_NAME} SHARED ${ISPELL_SOURCES})
+
++set(CMAKE_MODULES_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/cmake/${ISPELL_TARGET_NAME}")
++configure_package_config_file("${ISPELL_TARGET_NAME}Config.cmake.in" "${PROJECT_BINARY_DIR}/${ISPELL_TARGET_NAME}Config.cmake"
++ INSTALL_DESTINATION "${CMAKE_MODULES_INSTALL_DIR}"
++ NO_SET_AND_CHECK_MACRO
++)
++write_basic_package_version_file("${PROJECT_BINARY_DIR}/${ISPELL_TARGET_NAME}ConfigVersion.cmake"
++ VERSION ${PROJECT_VERSION}
++ COMPATIBILITY AnyNewerVersion
++)
++install(FILES
++ "${PROJECT_BINARY_DIR}/${ISPELL_TARGET_NAME}Config.cmake"
++ "${PROJECT_BINARY_DIR}/${ISPELL_TARGET_NAME}ConfigVersion.cmake"
++ DESTINATION ${CMAKE_MODULES_INSTALL_DIR}
++)
++
++install(EXPORT ${ISPELL_TARGET_NAME}LibraryDepends
++ FILE "${ISPELL_TARGET_NAME}LibraryDepends.cmake"
++ DESTINATION ${CMAKE_MODULES_INSTALL_DIR}
++)
++
+ install(TARGETS ${ISPELL_TARGET_NAME}
+ EXPORT ${ISPELL_TARGET_NAME}LibraryDepends
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+--- ispell-05574fe160222c3d0b6283c1433c9b087271fad1/ISpellConfig.cmake.in.orig 2023-11-07 11:53:37.000000000 +0100
++++ ispell-05574fe160222c3d0b6283c1433c9b087271fad1/ISpellConfig.cmake.in 2024-03-28 21:54:40.692161132 +0100
+@@ -12,7 +12,7 @@ set(ISPELL_LIBRARIES "@ISPELL_TARGET_NAM
+ get_target_property(ISPELL_INCLUDE_DIRS "@ISPELL_TARGET_NAME@" INTERFACE_INCLUDE_DIRECTORIES)
+
+ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.18.0)
+- add_library(@ISpell_TARGET_NAME@::@ISpell_TARGET_NAME@ ALIAS @ISpell_TARGET_NAME@)
++ add_library(@ISPELL_TARGET_NAME@::@ISPELL_TARGET_NAME@ ALIAS @ISPELL_TARGET_NAME@)
+ endif()
+
+-check_required_components(@ISpell_TARGET_NAME@)
++check_required_components(@ISPELL_TARGET_NAME@)
diff --git a/gnu/packages/patches/liblinphone-jsoncpp.patch b/gnu/packages/patches/liblinphone-jsoncpp.patch
new file mode 100644
index 0000000000..d012b07870
--- /dev/null
+++ b/gnu/packages/patches/liblinphone-jsoncpp.patch
@@ -0,0 +1,82 @@
+diff --git a/cmake/FindJsonCPP.cmake b/cmake/FindJsonCPP.cmake
+index 59e971a58..18260fde8 100644
+--- a/cmake/FindJsonCPP.cmake
++++ b/cmake/FindJsonCPP.cmake
+@@ -39,10 +39,11 @@
+ # JsonCPP_FOUND - The jsoncpp library has been found
+ # JsonCPP_TARGET - The name of the CMake target for the jsoncpp library
+
++if(TARGET jsoncpp_lib OR TARGET jsoncpp_static OR TARGET PkgConfig::jsoncpp)
+
+-if(TARGET jsoncpp_lib OR TARGET jsoncpp_static)
+-
+- if(TARGET jsoncpp_lib)
++ if(TARGET PkgConfig::jsoncpp)
++ set(JsonCPP_TARGET PkgConfig::jsoncpp)
++ elseif(TARGET jsoncpp_lib)
+ set(JsonCPP_TARGET jsoncpp_lib)
+ else()
+ set(JsonCPP_TARGET jsoncpp_static)
+@@ -57,24 +58,50 @@ if(TARGET jsoncpp_lib OR TARGET jsoncpp_static)
+ mark_as_advanced(JsonCPP_TARGET)
+
+ else()
+-
+- set(_OPTIONS "CONFIG")
++ find_package(PkgConfig QUIET)
++
++ set(_OPTIONS1 "CONFIG")
++ set(_OPTIONS2 "IMPORTED_TARGET") # for pkg_check_modules fallback
++
+ if(JsonCPP_FIND_REQUIRED)
+- list(APPEND _OPTIONS "REQUIRED")
+- endif()
+- if(JsonCPP_FIND_QUIETLY)
+- list(APPEND _OPTIONS "QUIET")
++ if(PKG_CONFIG_FOUND)
++ list(APPEND _OPTIONS2 "REQUIRED")
++ else()
++ list(APPEND _OPTIONS1 "REQUIRED")
++ endif()
+ endif()
+- if(JsonCPP_FIND_VERSION)
+- list(PREPEND _OPTIONS "${jsoncpp_FIND_VERSION}")
++ if(JsonCPP_FIND_QUIETLY)
++ list(APPEND _OPTIONS1 "QUIET")
++ list(APPEND _OPTIONS2 "QUIET")
+ endif()
+- if(JsonCPP_FIND_EXACT)
+- list(APPEND _OPTIONS "EXACT")
++ if(PKG_CONFIG_FOUND)
++ if(JsonCPP_FIND_VERSION)
++ if(JsonCPP_FIND_EXACT)
++ list(APPEND _OPTIONS2 "jsoncpp=${JsonCPP_FIND_VERSION}")
++ else()
++ list(APPEND _OPTIONS2 "jsoncpp>=${JsonCPP_FIND_VERSION}")
++ endif()
++ else()
++ list(APPEND _OPTIONS2 "jsoncpp")
++ endif()
++ else()
++ if(JsonCPP_FIND_VERSION)
++ list(PREPEND _OPTIONS1 "${jsoncpp_FIND_VERSION}")
++ endif()
++ if(JsonCPP_FIND_EXACT)
++ list(APPEND _OPTIONS1 "EXACT")
++ endif()
+ endif()
+
+- find_package(jsoncpp ${_OPTIONS})
++ find_package(jsoncpp ${_OPTIONS1})
++
++ if(NOT JsonCPP_FOUND)
++ pkg_check_modules(jsoncpp ${_OPTIONS2})
++ endif()
+
+- if(TARGET jsoncpp_lib)
++ if(TARGET PkgConfig::jsoncpp)
++ set(JsonCPP_TARGET jsoncpp)
++ elseif(TARGET jsoncpp_lib)
+ set(JsonCPP_TARGET jsoncpp_lib)
+ else()
+ set(JsonCPP_TARGET jsoncpp_static)
diff --git a/gnu/packages/patches/linphone-desktop-cmake-belcard.patch b/gnu/packages/patches/linphone-desktop-cmake-belcard.patch
new file mode 100644
index 0000000000..3cc573b938
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-cmake-belcard.patch
@@ -0,0 +1,39 @@
+From 0216b81c46f2612b8acf33b1a7c5886db25f45ff Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Thu, 13 Jun 2024 16:04:29 -0400
+Subject: [PATCH] cmake: Fix BelCard cmake module name.
+
+* linphone-app/CMakeLists.txt: cmake: Fix BelCard cmake module name.
+
+Fixes: <https://gitlab.linphone.org/BC/public/linphone-desktop/-/issues/32>
+---
+ linphone-app/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
+index d40842fa..f1c225a5 100644
+--- a/linphone-app/CMakeLists.txt
++++ b/linphone-app/CMakeLists.txt
+@@ -24,7 +24,7 @@ cmake_minimum_required(VERSION 3.22)
+
+
+ #Linphone targets
+-set(LINPHONE_PACKAGES LinphoneCxx Mediastreamer2 Belcard LibLinphone)
++set(LINPHONE_PACKAGES LinphoneCxx Mediastreamer2 BelCard LibLinphone)
+
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+@@ -115,7 +115,7 @@ set(PLUGIN_TARGETS ${LinphoneCxx_TARGET})
+ set(APP_TARGETS ${LinphoneCxx_TARGET}
+ ${BCToolbox_TARGET}#Logger/App
+ ${Mediastreamer2_TARGET}#MediastreamerUtils
+- ${Belcard_TARGET}#VCard Model
++ ${BelCard_TARGET}#VCard Model
+ ${LibLinphone_TARGET})#MediastreamerUtils
+
+ ####################################
+
+base-commit: e34beffe06802efcc5904d5059006ac0d2f7ef32
+--
+2.45.1
+
diff --git a/gnu/packages/patches/linphone-desktop-cmake-find-modules.patch b/gnu/packages/patches/linphone-desktop-cmake-find-modules.patch
new file mode 100644
index 0000000000..96353eef28
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-cmake-find-modules.patch
@@ -0,0 +1,422 @@
+From 25bdfe9ad3a33e1db6e5db8290b3a5112f4d621e Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Fri, 14 Jun 2024 22:33:58 -0400
+Subject: [PATCH] cmake: Delete most CMake find modules.
+
+They do not appear to bring any value compared to the config files
+installed by each project, and cause issues like the following, at
+least when using system libraries:
+
+ -- Trying to find LibLinphone
+ CMake Error at linphone-app/cmake/FindLibLinphone.cmake:31 (include):
+ include could not find requested file:
+
+ LibLinphoneTargets
+ Call Stack (most recent call first):
+ linphone-app/CMakeLists.txt:108 (find_package)
+
+Fixes: <https://gitlab.linphone.org/BC/public/linphone-desktop/-/issues/30>
+---
+ linphone-app/cmake/FindBCToolbox.cmake | 60 ---------------------
+ linphone-app/cmake/FindBelcard.cmake | 44 ---------------
+ linphone-app/cmake/FindISpell.cmake | 47 ----------------
+ linphone-app/cmake/FindLibLinphone.cmake | 46 ----------------
+ linphone-app/cmake/FindLinphoneCxx.cmake | 45 ----------------
+ linphone-app/cmake/FindMediastreamer2.cmake | 49 -----------------
+ linphone-app/cmake/FindQtKeychain.cmake | 48 -----------------
+ 7 files changed, 339 deletions(-)
+ delete mode 100644 linphone-app/cmake/FindBCToolbox.cmake
+ delete mode 100644 linphone-app/cmake/FindBelcard.cmake
+ delete mode 100644 linphone-app/cmake/FindISpell.cmake
+ delete mode 100644 linphone-app/cmake/FindLibLinphone.cmake
+ delete mode 100644 linphone-app/cmake/FindLinphoneCxx.cmake
+ delete mode 100644 linphone-app/cmake/FindMediastreamer2.cmake
+ delete mode 100644 linphone-app/cmake/FindQtKeychain.cmake
+
+diff --git a/linphone-app/cmake/FindBCToolbox.cmake b/linphone-app/cmake/FindBCToolbox.cmake
+deleted file mode 100644
+index 707cc147..00000000
+--- a/linphone-app/cmake/FindBCToolbox.cmake
++++ /dev/null
+@@ -1,60 +0,0 @@
+-############################################################################
+-# FindBctoolbox.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-
+-# This module will set the following variables in your project:
+-#
+-# BCToolbox_FOUND - The bctoolbox library has been found
+-# BCToolbox_TARGET - The name of the CMake target for the bctoolbox library
+-# BCToolbox_CMAKE_DIR - The bctoolbox CMake directory
+-# BCToolbox_CMAKE_UTILS - The path to the bctoolbox CMake utils script
+-# BCToolbox_tester_FOUND - The bctoolbox-tester library has been found
+-# BCToolbox_tester_TARGET - The name of the CMake target for the bctoolbox-tester library
+-
+-
+-if(NOT TARGET bctoolbox)
+- set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- set(BCToolbox_CMAKE_DIR ${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/bctoolbox/cmake)
+- include(${BCToolbox_CMAKE_DIR}/bctoolboxTargets.cmake)
+-endif()
+-
+-set(_BCToolbox_REQUIRED_VARS BCToolbox_TARGET BCToolbox_CMAKE_DIR BCToolbox_CMAKE_UTILS)
+-set(_BCToolbox_CACHE_VARS ${_BCToolbox_REQUIRED_VARS})
+-
+-if(TARGET bctoolbox)
+- set(BCToolbox_TARGET bctoolbox)
+- get_target_property(_BCToolbox_SOURCE_DIR ${BCToolbox_TARGET} SOURCE_DIR)
+- set(BCToolbox_CMAKE_DIR "${_BCToolbox_SOURCE_DIR}/../cmake")
+- set(BCToolbox_CMAKE_UTILS "${BCToolbox_CMAKE_DIR}/BCToolboxCMakeUtils.cmake")
+- if(TARGET bctoolbox-tester)
+- set(BCToolbox_tester_FOUND TRUE)
+- set(BCToolbox_tester_TARGET bctoolbox-tester)
+- list(APPEND _BCToolbox_CACHE_VARS BCToolbox_tester_TARGET)
+- endif()
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(BCToolbox
+- REQUIRED_VARS ${_BCToolbox_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_BCToolbox_CACHE_VARS})
+diff --git a/linphone-app/cmake/FindBelcard.cmake b/linphone-app/cmake/FindBelcard.cmake
+deleted file mode 100644
+index ce89497c..00000000
+--- a/linphone-app/cmake/FindBelcard.cmake
++++ /dev/null
+@@ -1,44 +0,0 @@
+-############################################################################
+-# FindBelcard.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# Belcard_FOUND - The liblinphone library has been found
+-# Belcard_TARGET - The name of the CMake target
+-
+-if(NOT TARGET belcard)
+- set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Belcard/cmake/BelcardTargets.cmake)
+-endif()
+-
+-set(_Belcard_REQUIRED_VARS Belcard_TARGET)
+-set(_Belcard_CACHE_VARS ${_Belcard_REQUIRED_VARS})
+-
+-if(TARGET belcard)
+- set(Belcard_TARGET belcard)
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(Belcard
+- REQUIRED_VARS ${_Belcard_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_Belcard_CACHE_VARS})
+diff --git a/linphone-app/cmake/FindISpell.cmake b/linphone-app/cmake/FindISpell.cmake
+deleted file mode 100644
+index 7a9269fa..00000000
+--- a/linphone-app/cmake/FindISpell.cmake
++++ /dev/null
+@@ -1,47 +0,0 @@
+-############################################################################
+-# FindISpell.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# - Find the ispell include files and library
+-#
+-# ISpell_FOUND - system has lib ispell
+-# ISpell_SOURCE_DIR - the ispell include directory
+-# ISpell_BINARY_DIR - the ispell library directory
+-
+-if(NOT TARGET ${ISPELL_TARGET_NAME})
+- set(EXPORT_PATH ${ISPELL_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- include(${EXPORT_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake/${ISPELL_TARGET_NAME}/${ISPELL_TARGET_NAME}Config.cmake)
+-endif()
+-
+-set(_ISpell_REQUIRED_VARS ISpell_TARGET)
+-set(_ISpell_CACHE_VARS ${_ISpell_REQUIRED_VARS})
+-
+-if(TARGET ${ISPELL_TARGET_NAME})
+- set(ISpell_TARGET ${ISPELL_TARGET_NAME})
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(ISpell
+- REQUIRED_VARS ${_ISpell_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_ISpell_CACHE_VARS})
+diff --git a/linphone-app/cmake/FindLibLinphone.cmake b/linphone-app/cmake/FindLibLinphone.cmake
+deleted file mode 100644
+index 826bb0d8..00000000
+--- a/linphone-app/cmake/FindLibLinphone.cmake
++++ /dev/null
+@@ -1,46 +0,0 @@
+-############################################################################
+-# FindLinphone.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# LibLinphone_FOUND - The liblinphone library has been found
+-# LibLinphone_TARGET - The name of the CMake target for the liblinphone library
+-# LibLinphone_PLUGINS_DIR - The directory where to install liblinphone plugins
+-
+-if(NOT TARGET liblinphone)
+- set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/linphone/cmake/linphoneTargets.cmake)
+-endif()
+-
+-set(_LibLinphone_REQUIRED_VARS LibLinphone_TARGET LibLinphone_PLUGINS_DIR)
+-set(_LibLinphone_CACHE_VARS ${_LibLinphone_REQUIRED_VARS})
+-
+-if(TARGET liblinphone)
+- set(LibLinphone_TARGET liblinphone)
+- get_target_property(LibLinphone_PLUGINS_DIR ${LibLinphone_TARGET} LIBLINPHONE_PLUGINS_DIR)
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(LibLinphone
+- REQUIRED_VARS ${_LibLinphone_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_LibLinphone_CACHE_VARS})
+diff --git a/linphone-app/cmake/FindLinphoneCxx.cmake b/linphone-app/cmake/FindLinphoneCxx.cmake
+deleted file mode 100644
+index 0f81fe20..00000000
+--- a/linphone-app/cmake/FindLinphoneCxx.cmake
++++ /dev/null
+@@ -1,45 +0,0 @@
+-############################################################################
+-# FindLinphoneCxx.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# LinphoneCxx_FOUND - The liblinphone library has been found
+-# LinphoneCxx_TARGET - The name of the CMake target for the liblinphone library
+-
+-if(NOT TARGET liblinphone++)
+- set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/LinphoneCxx/cmake/LinphoneCxxTargets.cmake)
+-endif()
+-
+-set(_LinphoneCxx_REQUIRED_VARS LinphoneCxx_TARGET)
+-set(_LinphoneCxx_CACHE_VARS ${_LinphoneCxx_REQUIRED_VARS})
+-
+-if(TARGET liblinphone++)
+- set(LinphoneCxx_TARGET liblinphone++)
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(LinphoneCxx
+- REQUIRED_VARS ${_LinphoneCxx_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_LinphoneCxx_CACHE_VARS})
+-
+diff --git a/linphone-app/cmake/FindMediastreamer2.cmake b/linphone-app/cmake/FindMediastreamer2.cmake
+deleted file mode 100644
+index dc41f187..00000000
+--- a/linphone-app/cmake/FindMediastreamer2.cmake
++++ /dev/null
+@@ -1,49 +0,0 @@
+-############################################################################
+-# FindMediastreamer2.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# This module will set the following variables in your project:
+-#
+-# Mediastreamer2_FOUND - The mediastreamer2 library has been found
+-# Mediastreamer2_TARGET - The name of the CMake target for the mediastreamer2 library
+-# Mediastreamer2_PLUGINS_DIR - The directory where to install mediastreamer2 plugins
+-
+-if(NOT TARGET mediastreamer2)
+- set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Mediastreamer2/cmake/Mediastreamer2Targets.cmake)
+-endif()
+-
+-set(_Mediastreamer2_REQUIRED_VARS Mediastreamer2_TARGET Mediastreamer2_PLUGINS_DIR)
+-set(_Mediastreamer2_CACHE_VARS ${_Mediastreamer2_REQUIRED_VARS})
+-
+-if(TARGET mediastreamer2)
+- set(Mediastreamer2_TARGET mediastreamer2)
+- get_target_property(Mediastreamer2_PLUGINS_DIR ${Mediastreamer2_TARGET} MS2_PLUGINS_DIR)
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(Mediastreamer2
+- REQUIRED_VARS ${_Mediastreamer2_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_Mediastreamer2_CACHE_VARS})
+-
+diff --git a/linphone-app/cmake/FindQtKeychain.cmake b/linphone-app/cmake/FindQtKeychain.cmake
+deleted file mode 100644
+index 9b7911aa..00000000
+--- a/linphone-app/cmake/FindQtKeychain.cmake
++++ /dev/null
+@@ -1,48 +0,0 @@
+-############################################################################
+-# FindQtKeychain.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# - Find the linphonecxx include files and library
+-#
+-# QtKeychain_FOUND - system has lib linphonecxx
+-# QtKeychain_INCLUDE_DIRS - the linphonecxx include directory
+-# QtKeychain_LIBRARIES - The library needed to use linphonecxx
+-if(NOT TARGET ${QTKEYCHAIN_TARGET_NAME})
+- set(EXPORT_PATH ${QTKEYCHAIN_OUTPUT_DIR})
+- include(GNUInstallDirs)
+- include(${EXPORT_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake/${QTKEYCHAIN_TARGET_NAME}/${QTKEYCHAIN_TARGET_NAME}Config.cmake)
+-endif()
+-
+-set(_QtKeychain_REQUIRED_VARS QtKeychain_TARGET)
+-set(_QtKeychain_CACHE_VARS ${_QtKeychain_REQUIRED_VARS})
+-
+-if(TARGET ${QTKEYCHAIN_TARGET_NAME})
+- set(QtKeychain_TARGET ${QTKEYCHAIN_TARGET_NAME})
+- set(QtKeychain_USE_BUILD_INTERFACE TRUE)
+-endif()
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(QtKeychain
+- REQUIRED_VARS ${_QtKeychain_REQUIRED_VARS}
+- HANDLE_COMPONENTS
+-)
+-mark_as_advanced(${_QtKeychain_CACHE_VARS})
+-
+
+base-commit: d69e033508265f756fb47b39b76b7d589be159c0
+prerequisite-patch-id: 1df5d6e9367036cd8ce918e1f3e3d7b3661f73c2
+--
+2.45.1
+
diff --git a/gnu/packages/patches/linphone-desktop-ispell.patch b/gnu/packages/patches/linphone-desktop-ispell.patch
new file mode 100644
index 0000000000..679703ec02
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-ispell.patch
@@ -0,0 +1,24 @@
+Retrieved from: https://git.pld-linux.org/?p=packages/linphone.git;a=blob_plain;f=linphone-ispell.patch;h=67bbae61835c7fa813edcc006b5b67901ca42abe;hb=HEAD
+
+--- linphone-desktop-5.2.2/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp.orig 2024-03-11 18:30:37.000000000 +0100
++++ linphone-desktop-5.2.2/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp 2024-03-31 18:17:09.041543370 +0200
+@@ -20,7 +20,7 @@
+
+
+ #include "SpellChecker.hpp"
+-#include <libispell.h>
++#include <ISpell/libispell.h>
+ #include "app/paths/Paths.hpp"
+ #include <unistd.h>
+ #include <cstdio>
+--- linphone-desktop-5.2.2/linphone-app/cmake_builder/linphone_package/CMakeLists.txt.orig 2024-04-01 08:06:42.275231951 +0200
++++ linphone-desktop-5.2.2/linphone-app/cmake_builder/linphone_package/CMakeLists.txt 2024-04-01 17:44:16.670826307 +0200
+@@ -338,8 +338,6 @@ else()# Not Windows and Apple
+ if(ENABLE_APP_WEBVIEW)
+ install(FILES "${QT_PATH}/plugins/webview/libqtwebview_webengine.so" DESTINATION "plugins/webview") #Workaround : linuxdeploy doesn't deploy it
+ endif()
+-# ISPELL
+- install(DIRECTORY "${ISpell_SOURCE_DIR}/ispell_dictionaries" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS)
+ endif ()
+
+
diff --git a/gnu/packages/patches/linphone-desktop-qtkeychain.patch b/gnu/packages/patches/linphone-desktop-qtkeychain.patch
new file mode 100644
index 0000000000..b19761672a
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-qtkeychain.patch
@@ -0,0 +1,36 @@
+Retrieved from https://git.pld-linux.org/?p=packages/linphone.git;a=blob_plain;f=linphone-qtkeychain.patch;hb=HEAD
+
+--- linphone-desktop-5.2.2/CMakeLists.txt.orig 2024-03-11 18:30:37.000000000 +0100
++++ linphone-desktop-5.2.2/CMakeLists.txt 2024-03-31 17:21:32.069621299 +0200
+@@ -168,7 +168,7 @@ add_option(OPTION_LIST LIBSECRET_SUPPORT
+ if(WIN32)
+ add_cache(OPTION_LIST QTKEYCHAIN_TARGET_NAME "Override Qt5Keychain library name for a workaround with windeployqt" "EQt5Keychain")
+ else()
+- add_cache(OPTION_LIST QTKEYCHAIN_TARGET_NAME "Override Qt5Keychain library name" "Qt5Keychain")
++ add_cache(OPTION_LIST QTKEYCHAIN_TARGET_NAME "Override Qt5Keychain library name" "qt5keychain")
+ endif()
+ if(WIN32)
+ add_option(OPTION_LIST ENABLE_OPENSSL_EXPORT "Enable OpenSSL deployment" YES)
+--- linphone-desktop-5.2.2/linphone-app/CMakeLists.txt.orig 2024-03-31 16:15:24.501115462 +0200
++++ linphone-desktop-5.2.2/linphone-app/CMakeLists.txt 2024-03-31 16:27:54.837050544 +0200
+@@ -118,10 +118,7 @@ set(APP_TARGETS ${LinphoneCxx_TARGET}
+ ####################################
+
+ if(ENABLE_QT_KEYCHAIN)
+- find_package(QtKeychain)
+- if(NOT QtKeychain_FOUND)
+- find_package(${QTKEYCHAIN_TARGET_NAME} CONFIG REQUIRED)
+- endif()
++ find_package(Qt5Keychain)
+
+ add_compile_definitions("ENABLE_QT_KEYCHAIN")
+ if(QtKeychain_USE_BUILD_INTERFACE)
+@@ -197,7 +194,7 @@ if(ENABLE_VIDEO)
+ endif()
+ if( ENABLE_QT_KEYCHAIN)
+ if(NOT QTKEYCHAIN_TARGET_NAME)
+- set(QTKEYCHAIN_TARGET_NAME "Qt5Keychain")
++ set(QTKEYCHAIN_TARGET_NAME "qt5keychain")
+ endif()
+ list(APPEND APP_TARGETS ${QTKEYCHAIN_TARGET_NAME})
+ endif()
diff --git a/gnu/packages/patches/linphone-desktop-without-sdk.patch b/gnu/packages/patches/linphone-desktop-without-sdk.patch
deleted file mode 100644
index ef61b86707..0000000000
--- a/gnu/packages/patches/linphone-desktop-without-sdk.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From cfdf6d1c2051d6a20d0cbb94d81fe398f70dea4d Mon Sep 17 00:00:00 2001
-From: Raghav Gururajan <rg@raghavgururajan.name>
-Date: Sun, 21 Mar 2021 21:13:53 -0400
-Subject: [PATCH] [PATCH]: Fix building from git.
-
----
- CMakeLists.txt | 73 +------------------
- linphone-app/CMakeLists.txt | 12 +--
- .../cmake_builder/additional_steps.cmake | 2 +-
- .../linphone_package/CMakeLists.txt | 38 ----------
- linphone-app/linphoneqt_version.cmake | 1 +
- linphone-app/src/config.h.cmake | 1 +
- 6 files changed, 6 insertions(+), 121 deletions(-)
- create mode 100644 linphone-app/linphoneqt_version.cmake
-
-diff -ru a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt 1970-01-01 01:00:01.000000000 +0100
-+++ b/CMakeLists.txt 2023-04-08 16:00:45.487927870 +0200
-@@ -51,23 +51,6 @@
-
- set(CMAKE_CXX_STANDARD 11)
-
--# Prepare gobal CMAKE configuration specific to the current project
--set(SDK_BUILD_DIR "${CMAKE_BINARY_DIR}/WORK") # SDK build in WORK. Keep all in it.
--set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop")
--
--set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
--
--set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}/include${PREFIX_PATH}")
--if(WIN32)
-- set( CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${APPLICATION_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}")
--elseif(APPLE)
-- set( CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${APPLICATION_NAME}.app/Contents/Frameworks")
--else()
-- set( CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${APPLICATION_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
--endif()
--string(REPLACE ";" "|" PREFIX_PATH "${CMAKE_PREFIX_PATH}")
--#set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
--
- # Avoid cmake warning if CMP0071 is not set.
- if (POLICY CMP0071)
- cmake_policy(SET CMP0071 NEW)
-@@ -177,10 +160,8 @@
- endif()
- list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
-
--list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
- list(APPEND APP_OPTIONS "-DENABLE_QT_GL=${ENABLE_VIDEO}")#Activate on video
-
--include(ExternalProject)
- set(PROJECT_BUILD_COMMAND "")
- if(CMAKE_BUILD_PARALLEL_LEVEL)
- list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}")
-@@ -195,7 +176,6 @@
- endif()
- endif()
- if(UNIX AND NOT APPLE)
-- set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
- list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}")
- elseif(APPLE)
- list(APPEND APP_OPTIONS "-DENABLE_FAT_BINARY=ON") #Disable XCFrameworks as it is not supported.
-@@ -222,28 +202,9 @@
-
-
- if(NOT LINPHONE_QT_ONLY)
--ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
-- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk"
-- INSTALL_DIR "${LINPHONE_OUTPUT_DIR}"
-- STAMP_DIR "${SDK_BUILD_DIR}/stamp"
-- BINARY_DIR "${SDK_BUILD_DIR}"
-- STEP_TARGETS build
-- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-- LIST_SEPARATOR | # Use the alternate list separator
-- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-- BUILD_ALWAYS NO #${DO_BUILD}
--)
--ExternalProject_Add_Step(sdk force_build
-- COMMENT "Forcing build for 'desktop'"
-- DEPENDEES configure
-- DEPENDERS build
-- ALWAYS 1
--)
- endif()
- include(FindPkgConfig)
-
--set(APP_DEPENDS sdk)
- find_package(Qt5 5.10 COMPONENTS Core REQUIRED)
-
- if ( NOT Qt5_FOUND )
-@@ -257,62 +218,5 @@
- find_package(Mediastreamer2 CONFIG QUIET)
- find_package(ortp CONFIG QUIET)
-
--if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS)
-- message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install")
-- ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
-- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
-- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
-- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
-- DEPENDS ${APP_DEPENDS}
-- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-- LIST_SEPARATOR | # Use the alternate list separator
-- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-- # ${APP_OPTIONS}
-- BUILD_ALWAYS ON
-- )
-- if( ENABLE_BUILD_APP_PLUGINS)
-- ExternalProject_Add(app-plugins PREFIX "${CMAKE_BINARY_DIR}/plugins-app"
-- SOURCE_DIR "${CMAKE_SOURCE_DIR}/plugins"
-- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
-- BINARY_DIR "${CMAKE_BINARY_DIR}/plugins-app"
-- DEPENDS linphone-qt
-- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-- LIST_SEPARATOR | # Use the alternate list separator
-- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-- )
-- endif()
-- install(CODE "message(STATUS Running install)")
-- set(AUTO_REGENERATION auto_regeneration)
-- if( ENABLE_BUILD_APP_PLUGINS)
-- add_custom_target(${AUTO_REGENERATION} ALL
-- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
-- DEPENDS app-plugins)
-- else()
-- add_custom_target(${AUTO_REGENERATION} ALL
-- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
-- DEPENDS linphone-qt)
-- endif()
--else()
-- message("Adding Linphone Desktop in an IDE-friendly state")
-- set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
-- add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
-- if(NOT LINPHONE_QT_ONLY)
-- add_dependencies(app-library ${APP_DEPENDS})
-- endif()
-- if( ENABLE_BUILD_APP_PLUGINS)
-- add_subdirectory(${CMAKE_SOURCE_DIR}/plugins "plugins-app")
-- endif()
--endif()
--ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
-- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
-- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
-- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
-- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
--# INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-- LIST_SEPARATOR | # Use the alternate list separator
-- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-- EXCLUDE_FROM_ALL ON
-- #BUILD_ALWAYS ON
--)
-+message("Adding Linphone Desktop in an IDE-friendly state")
-+add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
-diff -ru a/linphone-app/cmake_builder/additional_steps.cmake ./linphone-app/cmake_builder/additional_steps.cmake
---- a/linphone-app/cmake_builder/additional_steps.cmake 1970-01-01 01:00:01.000000000 +0100
-+++ ./linphone-app/cmake_builder/additional_steps.cmake 2023-04-08 16:02:33.005843116 +0200
-@@ -61,7 +61,7 @@
- SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package"
- DOWNLOAD_COMMAND ""
- CMAKE_GENERATOR ${CMAKE_GENERATOR}
-- CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY}
-+ CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY}
- )
- endif ()
- endif ()
-diff -ru a/linphone-app/CMakeLists.txt ./linphone-app/CMakeLists.txt
---- a/linphone-app/CMakeLists.txt 1970-01-01 01:00:01.000000000 +0100
-+++ ./linphone-app/CMakeLists.txt 2023-04-08 16:01:32.699012115 +0200
-@@ -21,17 +21,8 @@
- ################################################################################
- cmake_minimum_required(VERSION 3.1)
-
-+include(linphoneqt_version.cmake)
- find_package(bctoolbox CONFIG)
--set(FULL_VERSION )
--bc_compute_full_version(FULL_VERSION)
--set(version_major )
--set(version_minor )
--set(version_patch )
--set(identifiers )
--set(metadata )
--bc_parse_full_version("${FULL_VERSION}" version_major version_minor version_patch identifiers metadata)
--
--project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}")
-
-
- if(ENABLE_BUILD_VERBOSE)
-@@ -51,7 +42,6 @@
- set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
- endif()
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
--list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/cmake")
-
- set(APP_LIBRARY app-library)
- set(APP_PLUGIN app-plugin)
-diff --git a/linphone-app/linphoneqt_version.cmake b/linphone-app/linphoneqt_version.cmake
-new file mode 100644
-index 00000000..a85d3455
---- /dev/null
-+++ b/linphone-app/linphoneqt_version.cmake
-@@ -0,0 +1,1 @@
-+project(linphoneqt VERSION ${GUIX-SET-VERSION})
-\ No newline at end of file
-diff -ru a/linphone-app/src/config.h.cmake b/linphone-app/src/config.h.cmake
---- a/linphone-app/src/config.h.cmake 1970-01-01 01:00:01.000000000 +0100
-+++ b/linphone-app/src/config.h.cmake 2023-04-08 16:05:33.458349986 +0200
-@@ -32,3 +32,4 @@
- #cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}"
- #cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}"
- #cmakedefine ENABLE_APP_WEBVIEW "${ENABLE_APP_WEBVIEW}"
-+#define LINPHONE_QT_GIT_VERSION "${PROJECT_VERSION}"
-\ No newline at end of file
diff --git a/gnu/packages/patches/linuxdcpp-openssl-1.1.patch b/gnu/packages/patches/linuxdcpp-openssl-1.1.patch
deleted file mode 100644
index 6f9912afd8..0000000000
--- a/gnu/packages/patches/linuxdcpp-openssl-1.1.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/dcpp/CryptoManager.cpp.orig 2011-04-17 17:57:09 UTC
-+++ b/dcpp/CryptoManager.cpp
-@@ -107,12 +107,20 @@ CryptoManager::CryptoManager()
- };
-
- if(dh) {
-- dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);
-- dh->g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0);
-+ BIGNUM *p, *g;
-
-- if (!dh->p || !dh->g) {
-+ p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);
-+ g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0);
-+
-+ if (!p || !g) {
- dh.reset();
- } else {
-+#if OPENSSL_VERSION_NUMBER < 0x10100005L
-+ dh->p = p;
-+ dh->g = g;
-+#else
-+ DH_set0_pqg(dh, p, NULL, g);
-+#endif
- SSL_CTX_set_options(serverContext, SSL_OP_SINGLE_DH_USE);
- SSL_CTX_set_options(serverVerContext, SSL_OP_SINGLE_DH_USE);
- SSL_CTX_set_tmp_dh(serverContext, (DH*)dh);
diff --git a/gnu/packages/patches/mediastreamer2-cmake-findgsm.patch b/gnu/packages/patches/mediastreamer2-cmake-findgsm.patch
new file mode 100644
index 0000000000..7b48e310b5
--- /dev/null
+++ b/gnu/packages/patches/mediastreamer2-cmake-findgsm.patch
@@ -0,0 +1,63 @@
+Retrieved from: https://git.pld-linux.org/?p=packages/mediastreamer.git;a=blob_plain;f=mediastreamer-cmake-find.patch;h=4f1e3577f43bf791ed5cdb180ca455f919b80c8d;hb=HEAD
+
+--- mediastreamer2-5.3.29/cmake/FindGSM.cmake.orig 2024-02-21 12:02:03.000000000 +0100
++++ mediastreamer2-5.3.29/cmake/FindGSM.cmake 2024-03-09 20:16:25.064077414 +0100
+@@ -58,7 +58,7 @@ else()
+ set(_GSM_ROOT_PATHS ${CMAKE_INSTALL_PREFIX})
+
+ find_path(_GSM_INCLUDE_DIRS
+- NAMES gsm/gsm.h
++ NAMES gsm.h gsm/gsm.h
+ HINTS ${_GSM_ROOT_PATHS}
+ PATH_SUFFIXES include
+ )
+--- mediastreamer2-5.3.29/cmake/FindDav1d.cmake.orig 2024-02-21 12:02:03.000000000 +0100
++++ mediastreamer2-5.3.29/cmake/FindDav1d.cmake 2024-03-09 20:44:17.671682787 +0100
+@@ -65,17 +65,17 @@ else()
+ PATH_SUFFIXES bin lib lib/Win32
+ )
+
+- if(_Dav1d_INCLUDE_DIRS AND _Dav1d_LIBRARY)
++ if(Dav1d_INCLUDE_DIRS AND Dav1d_LIBRARY)
+ add_library(libdav1d UNKNOWN IMPORTED)
+ if(WIN32)
+ set_target_properties(libdav1d PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${_Dav1d_INCLUDE_DIRS}"
+- IMPORTED_IMPLIB "${_Dav1d_LIBRARY}"
++ INTERFACE_INCLUDE_DIRECTORIES "${Dav1d_INCLUDE_DIRS}"
++ IMPORTED_IMPLIB "${Dav1d_LIBRARY}"
+ )
+ else()
+ set_target_properties(libdav1d PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${_Dav1d_INCLUDE_DIRS}"
+- IMPORTED_LOCATION "${_Dav1d_LIBRARY}"
++ INTERFACE_INCLUDE_DIRECTORIES "${Dav1d_INCLUDE_DIRS}"
++ IMPORTED_LOCATION "${Dav1d_LIBRARY}"
+ )
+ endif()
+
+--- mediastreamer2-5.3.29/cmake/FindAom.cmake.orig 2024-02-21 12:02:03.000000000 +0100
++++ mediastreamer2-5.3.29/cmake/FindAom.cmake 2024-03-09 20:45:16.931361750 +0100
+@@ -65,17 +65,17 @@ else()
+ PATH_SUFFIXES bin lib lib/Win32
+ )
+
+- if(_Aom_INCLUDE_DIRS AND _Aom_LIBRARY)
++ if(Aom_INCLUDE_DIRS AND Aom_LIBRARY)
+ add_library(aom UNKNOWN IMPORTED)
+ if(WIN32)
+ set_target_properties(aom PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${_Aom_INCLUDE_DIRS}"
+- IMPORTED_IMPLIB "${_Aom_LIBRARY}"
++ INTERFACE_INCLUDE_DIRECTORIES "${Aom_INCLUDE_DIRS}"
++ IMPORTED_IMPLIB "${Aom_LIBRARY}"
+ )
+ else()
+ set_target_properties(aom PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${_Aom_INCLUDE_DIRS}"
+- IMPORTED_LOCATION "${_Aom_LIBRARY}"
++ INTERFACE_INCLUDE_DIRECTORIES "${Aom_INCLUDE_DIRS}"
++ IMPORTED_LOCATION "${Aom_LIBRARY}"
+ )
+ endif()
+
diff --git a/gnu/packages/patches/mswebrtc-b64-refactor.patch b/gnu/packages/patches/mswebrtc-b64-refactor.patch
new file mode 100644
index 0000000000..af4a1e1682
--- /dev/null
+++ b/gnu/packages/patches/mswebrtc-b64-refactor.patch
@@ -0,0 +1,949 @@
+From 17e72f00831a36da387ceafe7f3076ffa8f66aba Mon Sep 17 00:00:00 2001
+From: Clemence Him <clemence.him@belledonne-communications.com>
+Date: Fri, 22 Sep 2023 14:28:02 +0200
+Subject: [PATCH] Base64 functions refactoring
+
+---
+ aec.c | 781 +++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 394 insertions(+), 387 deletions(-)
+
+diff --git a/aec.c b/aec.c
+index 271f370..995f655 100644
+--- a/aec.c
++++ b/aec.c
+@@ -24,19 +24,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #include "mediastreamer2/msfilter.h"
+ #include "mediastreamer2/msticker.h"
+ #ifdef BUILD_AEC
+-#include "echo_cancellation.h"
+ #include "aec_splitting_filter.h"
++#include "echo_cancellation.h"
+ #endif
+ #ifdef BUILD_AECM
+ #include "echo_control_mobile.h"
+ #endif
+-#include "ortp/b64.h"
+
+ #ifdef _WIN32
+ #include <malloc.h> /* for alloca */
+ #endif
+
+-//#define EC_DUMP 1
++// #define EC_DUMP 1
+ #ifdef ANDROID
+ #define EC_DUMP_PREFIX "/sdcard"
+ #else
+@@ -48,466 +47,485 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ static const float smooth_factor = 0.05f;
+ static const int framesize = 80;
+
+-
+ typedef enum _WebRTCAECType {
+- WebRTCAECTypeNormal,
+- WebRTCAECTypeMobile
++ WebRTCAECTypeNormal,
++ WebRTCAECTypeMobile
+ } WebRTCAECType;
+
+ typedef struct WebRTCAECState {
+- void *aecInst;
+- MSBufferizer delayed_ref;
+- MSFlowControlledBufferizer ref;
+- MSBufferizer echo;
+- int framesize;
+- int samplerate;
+- int delay_ms;
+- int nominal_ref_samples;
+- char *state_str;
++ void *aecInst;
++ MSBufferizer delayed_ref;
++ MSFlowControlledBufferizer ref;
++ MSBufferizer echo;
++ int framesize;
++ int samplerate;
++ int delay_ms;
++ int nominal_ref_samples;
++ char *state_str;
+ #ifdef EC_DUMP
+- FILE *echofile;
+- FILE *reffile;
+- FILE *cleanfile;
++ FILE *echofile;
++ FILE *reffile;
++ FILE *cleanfile;
+ #endif
+- bool_t echostarted;
+- bool_t bypass_mode;
+- bool_t using_zeroes;
+- WebRTCAECType aec_type;
++ bool_t echostarted;
++ bool_t bypass_mode;
++ bool_t using_zeroes;
++ WebRTCAECType aec_type;
+ #ifdef BUILD_AEC
+- MSWebRtcAecSplittingFilter *splitting_filter;
++ MSWebRtcAecSplittingFilter *splitting_filter;
+ #endif
+ } WebRTCAECState;
+
+ static void webrtc_aecgeneric_init(MSFilter *f, WebRTCAECType aec_type) {
+- WebRTCAECState *s = (WebRTCAECState *) ms_new0(WebRTCAECState, 1);
+-
+- s->samplerate = 8000;
+- ms_bufferizer_init(&s->delayed_ref);
+- ms_bufferizer_init(&s->echo);
+- ms_flow_controlled_bufferizer_init(&s->ref, f, s->samplerate, 1);
+- s->delay_ms = 0;
+- s->aecInst = NULL;
+- s->framesize = framesize;
+- s->state_str = NULL;
+- s->using_zeroes = FALSE;
+- s->echostarted = FALSE;
+- s->bypass_mode = FALSE;
+- s->aec_type = aec_type;
++ WebRTCAECState *s = (WebRTCAECState *)ms_new0(WebRTCAECState, 1);
++
++ s->samplerate = 8000;
++ ms_bufferizer_init(&s->delayed_ref);
++ ms_bufferizer_init(&s->echo);
++ ms_flow_controlled_bufferizer_init(&s->ref, f, s->samplerate, 1);
++ s->delay_ms = 0;
++ s->aecInst = NULL;
++ s->framesize = framesize;
++ s->state_str = NULL;
++ s->using_zeroes = FALSE;
++ s->echostarted = FALSE;
++ s->bypass_mode = FALSE;
++ s->aec_type = aec_type;
+
+ #ifdef EC_DUMP
+- {
+- char *fname = ms_strdup_printf("%s/mswebrtcaec-%p-echo.raw", EC_DUMP_PREFIX, f);
+- s->echofile = fopen(fname, "w");
+- ms_free(fname);
+- fname = ms_strdup_printf("%s/mswebrtcaec-%p-ref.raw", EC_DUMP_PREFIX, f);
+- s->reffile = fopen(fname, "w");
+- ms_free(fname);
+- fname = ms_strdup_printf("%s/mswebrtcaec-%p-clean.raw", EC_DUMP_PREFIX, f);
+- s->cleanfile = fopen(fname, "w");
+- ms_free(fname);
+- }
++ {
++ char *fname =
++ ms_strdup_printf("%s/mswebrtcaec-%p-echo.raw", EC_DUMP_PREFIX, f);
++ s->echofile = fopen(fname, "w");
++ ms_free(fname);
++ fname = ms_strdup_printf("%s/mswebrtcaec-%p-ref.raw", EC_DUMP_PREFIX, f);
++ s->reffile = fopen(fname, "w");
++ ms_free(fname);
++ fname = ms_strdup_printf("%s/mswebrtcaec-%p-clean.raw", EC_DUMP_PREFIX, f);
++ s->cleanfile = fopen(fname, "w");
++ ms_free(fname);
++ }
+ #endif
+
+- f->data = s;
++ f->data = s;
+ }
+
+ #ifdef BUILD_AEC
+ static void webrtc_aec_init(MSFilter *f) {
+- webrtc_aecgeneric_init(f, WebRTCAECTypeNormal);
++ webrtc_aecgeneric_init(f, WebRTCAECTypeNormal);
+ }
+ #endif
+
+ #ifdef BUILD_AECM
+ static void webrtc_aecm_init(MSFilter *f) {
+- webrtc_aecgeneric_init(f, WebRTCAECTypeMobile);
++ webrtc_aecgeneric_init(f, WebRTCAECTypeMobile);
+ }
+ #endif
+
+ static void webrtc_aec_uninit(MSFilter *f) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- if (s->state_str) ms_free(s->state_str);
+- ms_bufferizer_uninit(&s->delayed_ref);
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ if (s->state_str)
++ ms_free(s->state_str);
++ ms_bufferizer_uninit(&s->delayed_ref);
+ #ifdef EC_DUMP
+- if (s->echofile)
+- fclose(s->echofile);
+- if (s->reffile)
+- fclose(s->reffile);
++ if (s->echofile)
++ fclose(s->echofile);
++ if (s->reffile)
++ fclose(s->reffile);
+ #endif
+- ms_free(s);
++ ms_free(s);
+ }
+
+ static void configure_flow_controlled_bufferizer(WebRTCAECState *s) {
+- ms_flow_controlled_bufferizer_set_samplerate(&s->ref, s->samplerate);
+- ms_flow_controlled_bufferizer_set_max_size_ms(&s->ref, s->delay_ms);
+- ms_flow_controlled_bufferizer_set_granularity_ms(&s->ref, (s->framesize * 1000) / s->samplerate);
++ ms_flow_controlled_bufferizer_set_samplerate(&s->ref, s->samplerate);
++ ms_flow_controlled_bufferizer_set_max_size_ms(&s->ref, s->delay_ms);
++ ms_flow_controlled_bufferizer_set_granularity_ms(
++ &s->ref, (s->framesize * 1000) / s->samplerate);
+ }
+
+ static void webrtc_aec_preprocess(MSFilter *f) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
+ #ifdef BUILD_AEC
+- AecConfig aec_config;
++ AecConfig aec_config;
+ #endif
+ #ifdef BUILD_AECM
+- AecmConfig aecm_config;
+- int error_code;
++ AecmConfig aecm_config;
++ int error_code;
+ #endif
+- int delay_samples = 0;
+- mblk_t *m;
++ int delay_samples = 0;
++ mblk_t *m;
+
+- s->echostarted = FALSE;
+- delay_samples = s->delay_ms * s->samplerate / 1000;
+- s->framesize=(framesize*s->samplerate)/8000;
+- ms_message("Initializing WebRTC echo canceler with framesize=%i, delay_ms=%i, delay_samples=%i", s->framesize, s->delay_ms, delay_samples);
+- configure_flow_controlled_bufferizer(s);
++ s->echostarted = FALSE;
++ delay_samples = s->delay_ms * s->samplerate / 1000;
++ s->framesize = (framesize * s->samplerate) / 8000;
++ ms_message("Initializing WebRTC echo canceler with framesize=%i, "
++ "delay_ms=%i, delay_samples=%i",
++ s->framesize, s->delay_ms, delay_samples);
++ configure_flow_controlled_bufferizer(s);
+
+ #ifdef BUILD_AEC
+- if (s->aec_type == WebRTCAECTypeNormal) {
+- if ((s->aecInst = WebRtcAec_Create()) == NULL) {
+- s->bypass_mode = TRUE;
+- ms_error("WebRtcAec_Create(): error, entering bypass mode");
+- return;
+- }
+- if ((WebRtcAec_Init(s->aecInst, MIN(48000, s->samplerate), s->samplerate)) < 0) {
+- ms_error("WebRtcAec_Init(): WebRTC echo canceller does not support %d samplerate", s->samplerate);
+- s->bypass_mode = TRUE;
+- ms_error("Entering bypass mode");
+- return;
+- }
+- aec_config.nlpMode = kAecNlpAggressive;
+- aec_config.skewMode = kAecFalse;
+- aec_config.metricsMode = kAecFalse;
+- aec_config.delay_logging = kAecFalse;
+- if (WebRtcAec_set_config(s->aecInst, aec_config) != 0) {
+- ms_error("WebRtcAec_set_config(): failed.");
+- }
+- }
++ if (s->aec_type == WebRTCAECTypeNormal) {
++ if ((s->aecInst = WebRtcAec_Create()) == NULL) {
++ s->bypass_mode = TRUE;
++ ms_error("WebRtcAec_Create(): error, entering bypass mode");
++ return;
++ }
++ if ((WebRtcAec_Init(s->aecInst, MIN(48000, s->samplerate), s->samplerate)) <
++ 0) {
++ ms_error("WebRtcAec_Init(): WebRTC echo canceller does not support %d "
++ "samplerate",
++ s->samplerate);
++ s->bypass_mode = TRUE;
++ ms_error("Entering bypass mode");
++ return;
++ }
++ aec_config.nlpMode = kAecNlpAggressive;
++ aec_config.skewMode = kAecFalse;
++ aec_config.metricsMode = kAecFalse;
++ aec_config.delay_logging = kAecFalse;
++ if (WebRtcAec_set_config(s->aecInst, aec_config) != 0) {
++ ms_error("WebRtcAec_set_config(): failed.");
++ }
++ }
+ #endif
+ #ifdef BUILD_AECM
+- if (s->aec_type == WebRTCAECTypeMobile) {
+- if ((s->aecInst = WebRtcAecm_Create()) == NULL) {
+- s->bypass_mode = TRUE;
+- ms_error("WebRtcAecm_Create(): error, entering bypass mode");
+- return;
+- }
+- if ((error_code = WebRtcAecm_Init(s->aecInst, s->samplerate)) < 0) {
+- if (error_code == AECM_BAD_PARAMETER_ERROR) {
+- ms_error("WebRtcAecm_Init(): WebRTC echo canceller does not support %d samplerate", s->samplerate);
+- }
+- s->bypass_mode = TRUE;
+- ms_error("Entering bypass mode");
+- return;
+- }
+- aecm_config.cngMode = TRUE;
+- aecm_config.echoMode = 3;
+- if (WebRtcAecm_set_config(s->aecInst, aecm_config)!=0){
+- ms_error("WebRtcAecm_set_config(): failed.");
+- }
+- }
++ if (s->aec_type == WebRTCAECTypeMobile) {
++ if ((s->aecInst = WebRtcAecm_Create()) == NULL) {
++ s->bypass_mode = TRUE;
++ ms_error("WebRtcAecm_Create(): error, entering bypass mode");
++ return;
++ }
++ if ((error_code = WebRtcAecm_Init(s->aecInst, s->samplerate)) < 0) {
++ if (error_code == AECM_BAD_PARAMETER_ERROR) {
++ ms_error("WebRtcAecm_Init(): WebRTC echo canceller does not support %d "
++ "samplerate",
++ s->samplerate);
++ }
++ s->bypass_mode = TRUE;
++ ms_error("Entering bypass mode");
++ return;
++ }
++ aecm_config.cngMode = TRUE;
++ aecm_config.echoMode = 3;
++ if (WebRtcAecm_set_config(s->aecInst, aecm_config) != 0) {
++ ms_error("WebRtcAecm_set_config(): failed.");
++ }
++ }
+ #endif
+
+- /* fill with zeroes for the time of the delay*/
+- m = allocb(delay_samples * 2, 0);
+- m->b_wptr += delay_samples * 2;
+- ms_bufferizer_put(&s->delayed_ref, m);
+- s->nominal_ref_samples = delay_samples;
++ /* fill with zeroes for the time of the delay*/
++ m = allocb(delay_samples * 2, 0);
++ m->b_wptr += delay_samples * 2;
++ ms_bufferizer_put(&s->delayed_ref, m);
++ s->nominal_ref_samples = delay_samples;
+ }
+
+ /* inputs[0]= reference signal from far end (sent to soundcard)
+ * inputs[1]= near speech & echo signal (read from soundcard)
+ * outputs[0]= is a copy of inputs[0] to be sent to soundcard
+ * outputs[1]= near end speech, echo removed - towards far end
+-*/
++ */
+ static void webrtc_aec_process(MSFilter *f) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- int nbytes = s->framesize * sizeof(int16_t);
+- mblk_t *refm;
+- int16_t *ref, *echo;
+- int nbands = 1;
+- int bandsize = s->framesize;
+-
+- if (s->bypass_mode) {
+- while ((refm = ms_queue_get(f->inputs[0])) != NULL) {
+- ms_queue_put(f->outputs[0], refm);
+- }
+- while ((refm = ms_queue_get(f->inputs[1])) != NULL) {
+- ms_queue_put(f->outputs[1], refm);
+- }
+- return;
+- }
+-
+- if (f->inputs[0] != NULL) {
+- if (s->echostarted) {
+- while ((refm = ms_queue_get(f->inputs[0])) != NULL) {
+- mblk_t *cp=dupmsg(refm);
+- ms_bufferizer_put(&s->delayed_ref,cp);
+- ms_flow_controlled_bufferizer_put(&s->ref,refm);
+- }
+- } else {
+- ms_warning("Getting reference signal but no echo to synchronize on.");
+- ms_queue_flush(f->inputs[0]);
+- }
+- }
+-
+- ms_bufferizer_put_from_queue(&s->echo, f->inputs[1]);
+-
+- ref = (int16_t *) alloca(nbytes);
+- echo = (int16_t *) alloca(nbytes);
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ int nbytes = s->framesize * sizeof(int16_t);
++ mblk_t *refm;
++ int16_t *ref, *echo;
++ int nbands = 1;
++ int bandsize = s->framesize;
++
++ if (s->bypass_mode) {
++ while ((refm = ms_queue_get(f->inputs[0])) != NULL) {
++ ms_queue_put(f->outputs[0], refm);
++ }
++ while ((refm = ms_queue_get(f->inputs[1])) != NULL) {
++ ms_queue_put(f->outputs[1], refm);
++ }
++ return;
++ }
++
++ if (f->inputs[0] != NULL) {
++ if (s->echostarted) {
++ while ((refm = ms_queue_get(f->inputs[0])) != NULL) {
++ mblk_t *cp = dupmsg(refm);
++ ms_bufferizer_put(&s->delayed_ref, cp);
++ ms_flow_controlled_bufferizer_put(&s->ref, refm);
++ }
++ } else {
++ ms_warning("Getting reference signal but no echo to synchronize on.");
++ ms_queue_flush(f->inputs[0]);
++ }
++ }
++
++ ms_bufferizer_put_from_queue(&s->echo, f->inputs[1]);
++
++ ref = (int16_t *)alloca(nbytes);
++ echo = (int16_t *)alloca(nbytes);
+ #ifdef BUILD_AEC
+- if (s->aec_type == WebRTCAECTypeNormal) {
+- if (s->samplerate > 16000) {
+- nbands = s->samplerate / 16000;
+- bandsize = 160;
+- }
+- if (!s->splitting_filter) {
+- s->splitting_filter = mswebrtc_aec_splitting_filter_create(nbands, bandsize);
+- }
+- }
++ if (s->aec_type == WebRTCAECTypeNormal) {
++ if (s->samplerate > 16000) {
++ nbands = s->samplerate / 16000;
++ bandsize = 160;
++ }
++ if (!s->splitting_filter) {
++ s->splitting_filter =
++ mswebrtc_aec_splitting_filter_create(nbands, bandsize);
++ }
++ }
+ #endif
+- while (ms_bufferizer_read(&s->echo, (uint8_t *)echo, (size_t)nbytes) >= (size_t)nbytes) {
+- mblk_t *oecho = allocb(nbytes, 0);
+- int avail;
+- int avail_samples;
+-
+- if (!s->echostarted) s->echostarted = TRUE;
+- if ((avail = ms_bufferizer_get_avail(&s->delayed_ref)) < ((s->nominal_ref_samples * 2) + nbytes)) {
+- /*we don't have enough to read in a reference signal buffer, inject silence instead*/
+- refm = allocb(nbytes, 0);
+- memset(refm->b_wptr, 0, nbytes);
+- refm->b_wptr += nbytes;
+- ms_bufferizer_put(&s->delayed_ref, refm);
+- /*
+- * However, we don't inject this silence buffer to the sound card, in order to break the following bad loop:
+- * - the sound playback filter detects it has too many pending samples, then triggers an event to request samples to be dropped upstream.
+- * - the upstream MSFlowControl filter is requested to drop samples, which it starts to do.
+- * - necessarily shortly after the AEC goes into a situation where it has not enough reference samples while processing an audio buffer from mic.
+- * - if the AEC injects a silence buffer as output, then it will RECREATE a situation where the sound playback filter has too many pending samples.
+- * That's why we should not do this.
+- * By not doing this, we will create a discrepancy between what we really injected to the soundcard, and what we told to the
+- * echo canceller about the samples we injected. This shifts the echo. The echo canceller will re-converge quickly to take into
+- * account the situation.
+- *
+- */
+- //ms_queue_put(f->outputs[0], dupmsg(refm));
+- if (!s->using_zeroes) {
+- ms_warning("Not enough ref samples, using zeroes");
+- s->using_zeroes = TRUE;
+- }
+- } else {
+- if (s->using_zeroes) {
+- ms_message("Samples are back.");
+- s->using_zeroes = FALSE;
+- }
+- /* read from our no-delay buffer and output */
+- refm = allocb(nbytes, 0);
+- if (ms_flow_controlled_bufferizer_read(&s->ref, refm->b_wptr, nbytes) == 0) {
+- ms_fatal("Should never happen");
+- }
+- refm->b_wptr += nbytes;
+- ms_queue_put(f->outputs[0], refm);
+- }
+-
+- /*now read a valid buffer of delayed ref samples*/
+- if (ms_bufferizer_read(&s->delayed_ref, (uint8_t *)ref, nbytes) == 0) {
+- ms_fatal("Should never happen");
+- }
+- avail -= nbytes;
+- avail_samples = avail / 2;
++ while (ms_bufferizer_read(&s->echo, (uint8_t *)echo, (size_t)nbytes) >=
++ (size_t)nbytes) {
++ mblk_t *oecho = allocb(nbytes, 0);
++ int avail;
++ int avail_samples;
++
++ if (!s->echostarted)
++ s->echostarted = TRUE;
++ if ((avail = ms_bufferizer_get_avail(&s->delayed_ref)) <
++ ((s->nominal_ref_samples * 2) + nbytes)) {
++ /*we don't have enough to read in a reference signal buffer, inject
++ * silence instead*/
++ refm = allocb(nbytes, 0);
++ memset(refm->b_wptr, 0, nbytes);
++ refm->b_wptr += nbytes;
++ ms_bufferizer_put(&s->delayed_ref, refm);
++ /*
++ * However, we don't inject this silence buffer to the sound card, in
++ * order to break the following bad loop:
++ * - the sound playback filter detects it has too many pending samples,
++ * then triggers an event to request samples to be dropped upstream.
++ * - the upstream MSFlowControl filter is requested to drop samples, which
++ * it starts to do.
++ * - necessarily shortly after the AEC goes into a situation where it has
++ * not enough reference samples while processing an audio buffer from mic.
++ * - if the AEC injects a silence buffer as output, then it will RECREATE
++ * a situation where the sound playback filter has too many pending
++ * samples. That's why we should not do this. By not doing this, we will
++ * create a discrepancy between what we really injected to the soundcard,
++ * and what we told to the echo canceller about the samples we injected.
++ * This shifts the echo. The echo canceller will re-converge quickly to
++ * take into account the situation.
++ *
++ */
++ // ms_queue_put(f->outputs[0], dupmsg(refm));
++ if (!s->using_zeroes) {
++ ms_warning("Not enough ref samples, using zeroes");
++ s->using_zeroes = TRUE;
++ }
++ } else {
++ if (s->using_zeroes) {
++ ms_message("Samples are back.");
++ s->using_zeroes = FALSE;
++ }
++ /* read from our no-delay buffer and output */
++ refm = allocb(nbytes, 0);
++ if (ms_flow_controlled_bufferizer_read(&s->ref, refm->b_wptr, nbytes) ==
++ 0) {
++ ms_fatal("Should never happen");
++ }
++ refm->b_wptr += nbytes;
++ ms_queue_put(f->outputs[0], refm);
++ }
++
++ /*now read a valid buffer of delayed ref samples*/
++ if (ms_bufferizer_read(&s->delayed_ref, (uint8_t *)ref, nbytes) == 0) {
++ ms_fatal("Should never happen");
++ }
++ avail -= nbytes;
++ avail_samples = avail / 2;
+
+ #ifdef EC_DUMP
+- if (s->reffile)
+- fwrite(ref, nbytes, 1, s->reffile);
+- if (s->echofile)
+- fwrite(echo, nbytes, 1, s->echofile);
++ if (s->reffile)
++ fwrite(ref, nbytes, 1, s->reffile);
++ if (s->echofile)
++ fwrite(echo, nbytes, 1, s->echofile);
+ #endif
+ #ifdef BUILD_AEC
+- if (s->aec_type == WebRTCAECTypeNormal) {
+- mswebrtc_aec_splitting_filter_analysis(s->splitting_filter, ref, echo);
+- if (WebRtcAec_BufferFarend(s->aecInst,
+- mswebrtc_aec_splitting_filter_get_ref(s->splitting_filter),
+- (size_t)mswebrtc_aec_splitting_filter_get_bandsize(s->splitting_filter)) != 0)
+- ms_error("WebRtcAec_BufferFarend() failed.");
+- if (WebRtcAec_Process(s->aecInst,
+- mswebrtc_aec_splitting_filter_get_echo_bands(s->splitting_filter),
+- mswebrtc_aec_splitting_filter_get_number_of_bands(s->splitting_filter),
+- mswebrtc_aec_splitting_filter_get_output_bands(s->splitting_filter),
+- (size_t)mswebrtc_aec_splitting_filter_get_bandsize(s->splitting_filter), 0, 0) != 0)
+- ms_error("WebRtcAec_Process() failed.");
+- mswebrtc_aec_splitting_filter_synthesis(s->splitting_filter, (int16_t *)oecho->b_wptr);
+- }
++ if (s->aec_type == WebRTCAECTypeNormal) {
++ mswebrtc_aec_splitting_filter_analysis(s->splitting_filter, ref, echo);
++ if (WebRtcAec_BufferFarend(
++ s->aecInst,
++ mswebrtc_aec_splitting_filter_get_ref(s->splitting_filter),
++ (size_t)mswebrtc_aec_splitting_filter_get_bandsize(
++ s->splitting_filter)) != 0)
++ ms_error("WebRtcAec_BufferFarend() failed.");
++ if (WebRtcAec_Process(
++ s->aecInst,
++ mswebrtc_aec_splitting_filter_get_echo_bands(s->splitting_filter),
++ mswebrtc_aec_splitting_filter_get_number_of_bands(
++ s->splitting_filter),
++ mswebrtc_aec_splitting_filter_get_output_bands(
++ s->splitting_filter),
++ (size_t)mswebrtc_aec_splitting_filter_get_bandsize(
++ s->splitting_filter),
++ 0, 0) != 0)
++ ms_error("WebRtcAec_Process() failed.");
++ mswebrtc_aec_splitting_filter_synthesis(s->splitting_filter,
++ (int16_t *)oecho->b_wptr);
++ }
+ #endif
+ #ifdef BUILD_AECM
+- if (s->aec_type == WebRTCAECTypeMobile) {
+- if (WebRtcAecm_BufferFarend(s->aecInst, ref, (size_t)s->framesize) != 0)
+- ms_error("WebRtcAecm_BufferFarend() failed.");
+- if (WebRtcAecm_Process(s->aecInst, echo, NULL, (int16_t *)oecho->b_wptr, (size_t)s->framesize, 0) != 0)
+- ms_error("WebRtcAecm_Process() failed.");
+- }
++ if (s->aec_type == WebRTCAECTypeMobile) {
++ if (WebRtcAecm_BufferFarend(s->aecInst, ref, (size_t)s->framesize) != 0)
++ ms_error("WebRtcAecm_BufferFarend() failed.");
++ if (WebRtcAecm_Process(s->aecInst, echo, NULL, (int16_t *)oecho->b_wptr,
++ (size_t)s->framesize, 0) != 0)
++ ms_error("WebRtcAecm_Process() failed.");
++ }
+ #endif
+ #ifdef EC_DUMP
+- if (s->cleanfile)
+- fwrite(oecho->b_wptr, nbytes, 1, s->cleanfile);
++ if (s->cleanfile)
++ fwrite(oecho->b_wptr, nbytes, 1, s->cleanfile);
+ #endif
+- oecho->b_wptr += nbytes;
+- ms_queue_put(f->outputs[1], oecho);
+- }
++ oecho->b_wptr += nbytes;
++ ms_queue_put(f->outputs[1], oecho);
++ }
+ }
+
+ static void webrtc_aec_postprocess(MSFilter *f) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
+
+- ms_bufferizer_flush(&s->delayed_ref);
+- ms_bufferizer_flush(&s->echo);
+- ms_flow_controlled_bufferizer_flush(&s->ref);
++ ms_bufferizer_flush(&s->delayed_ref);
++ ms_bufferizer_flush(&s->echo);
++ ms_flow_controlled_bufferizer_flush(&s->ref);
+ #ifdef BUILD_AEC
+- if (s->splitting_filter) {
+- mswebrtc_aec_splitting_filter_destroy(s->splitting_filter);
+- s->splitting_filter = NULL;
+- }
++ if (s->splitting_filter) {
++ mswebrtc_aec_splitting_filter_destroy(s->splitting_filter);
++ s->splitting_filter = NULL;
++ }
+ #endif
+- if (s->aecInst != NULL) {
++ if (s->aecInst != NULL) {
+ #ifdef BUILD_AEC
+- if (s->aec_type == WebRTCAECTypeNormal) {
+- WebRtcAec_Free(s->aecInst);
+- }
++ if (s->aec_type == WebRTCAECTypeNormal) {
++ WebRtcAec_Free(s->aecInst);
++ }
+ #endif
+ #ifdef BUILD_AECM
+- if (s->aec_type == WebRTCAECTypeMobile) {
+- WebRtcAecm_Free(s->aecInst);
+- }
++ if (s->aec_type == WebRTCAECTypeMobile) {
++ WebRtcAecm_Free(s->aecInst);
++ }
+ #endif
+- s->aecInst = NULL;
+- }
++ s->aecInst = NULL;
++ }
+ }
+
+ static int webrtc_aec_set_sr(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- int requested_sr = *(int *) arg;
+- int sr = requested_sr;
+-
+- if ((s->aec_type == WebRTCAECTypeNormal) && (requested_sr >= 48000)) {
+- sr = 48000;
+- } else if ((s->aec_type == WebRTCAECTypeNormal) && (requested_sr >= 32000)) {
+- sr = 32000;
+- } else if (requested_sr >= 16000) {
+- sr = 16000;
+- } else {
+- sr = 8000;
+- }
+- if (sr != requested_sr)
+- ms_message("Webrtc %s does not support sampling rate %i, using %i instead", ((s->aec_type == WebRTCAECTypeNormal)?"aec":"aecm"),requested_sr, sr);
+-
+- s->samplerate = sr;
+- configure_flow_controlled_bufferizer(s);
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ int requested_sr = *(int *)arg;
++ int sr = requested_sr;
++
++ if ((s->aec_type == WebRTCAECTypeNormal) && (requested_sr >= 48000)) {
++ sr = 48000;
++ } else if ((s->aec_type == WebRTCAECTypeNormal) && (requested_sr >= 32000)) {
++ sr = 32000;
++ } else if (requested_sr >= 16000) {
++ sr = 16000;
++ } else {
++ sr = 8000;
++ }
++ if (sr != requested_sr)
++ ms_message("Webrtc %s does not support sampling rate %i, using %i instead",
++ ((s->aec_type == WebRTCAECTypeNormal) ? "aec" : "aecm"),
++ requested_sr, sr);
++
++ s->samplerate = sr;
++ configure_flow_controlled_bufferizer(s);
++ return 0;
+ }
+
+ static int webrtc_aec_get_sr(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- *(int *) arg=s->samplerate;
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ *(int *)arg = s->samplerate;
++ return 0;
+ }
+
+ static int webrtc_aec_set_framesize(MSFilter *f, void *arg) {
+- /* Do nothing because the WebRTC echo canceller only accept specific values: 80 and 160. We use 80 at 8khz, and 160 at 16khz */
+- return 0;
++ /* Do nothing because the WebRTC echo canceller only accept specific values:
++ * 80 and 160. We use 80 at 8khz, and 160 at 16khz */
++ return 0;
+ }
+
+ static int webrtc_aec_set_delay(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- s->delay_ms = *(int *) arg;
+- configure_flow_controlled_bufferizer(s);
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ s->delay_ms = *(int *)arg;
++ configure_flow_controlled_bufferizer(s);
++ return 0;
+ }
+
+ static int webrtc_aec_set_tail_length(MSFilter *f, void *arg) {
+- /* Do nothing because this is not needed by the WebRTC echo canceller. */
+- return 0;
++ /* Do nothing because this is not needed by the WebRTC echo canceller. */
++ return 0;
+ }
+ static int webrtc_aec_set_bypass_mode(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- s->bypass_mode = *(bool_t *) arg;
+- ms_message("set EC bypass mode to [%i]", s->bypass_mode);
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ s->bypass_mode = *(bool_t *)arg;
++ ms_message("set EC bypass mode to [%i]", s->bypass_mode);
++ return 0;
+ }
+ static int webrtc_aec_get_bypass_mode(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- *(bool_t *) arg = s->bypass_mode;
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ *(bool_t *)arg = s->bypass_mode;
++ return 0;
+ }
+
+ static int webrtc_aec_set_state(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- s->state_str = ms_strdup((const char *) arg);
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ s->state_str = ms_strdup((const char *)arg);
++ return 0;
+ }
+
+ static int webrtc_aec_get_state(MSFilter *f, void *arg) {
+- WebRTCAECState *s = (WebRTCAECState *) f->data;
+- *(char **) arg = s->state_str;
+- return 0;
++ WebRTCAECState *s = (WebRTCAECState *)f->data;
++ *(char **)arg = s->state_str;
++ return 0;
+ }
+
+ static MSFilterMethod webrtc_aec_methods[] = {
+- { MS_FILTER_SET_SAMPLE_RATE , webrtc_aec_set_sr },
+- { MS_FILTER_GET_SAMPLE_RATE , webrtc_aec_get_sr },
+- { MS_ECHO_CANCELLER_SET_TAIL_LENGTH , webrtc_aec_set_tail_length },
+- { MS_ECHO_CANCELLER_SET_DELAY , webrtc_aec_set_delay },
+- { MS_ECHO_CANCELLER_SET_FRAMESIZE , webrtc_aec_set_framesize },
+- { MS_ECHO_CANCELLER_SET_BYPASS_MODE , webrtc_aec_set_bypass_mode },
+- { MS_ECHO_CANCELLER_GET_BYPASS_MODE , webrtc_aec_get_bypass_mode },
+- { MS_ECHO_CANCELLER_GET_STATE_STRING , webrtc_aec_get_state },
+- { MS_ECHO_CANCELLER_SET_STATE_STRING , webrtc_aec_set_state },
+- { 0, NULL }
+-};
+-
++ {MS_FILTER_SET_SAMPLE_RATE, webrtc_aec_set_sr},
++ {MS_FILTER_GET_SAMPLE_RATE, webrtc_aec_get_sr},
++ {MS_ECHO_CANCELLER_SET_TAIL_LENGTH, webrtc_aec_set_tail_length},
++ {MS_ECHO_CANCELLER_SET_DELAY, webrtc_aec_set_delay},
++ {MS_ECHO_CANCELLER_SET_FRAMESIZE, webrtc_aec_set_framesize},
++ {MS_ECHO_CANCELLER_SET_BYPASS_MODE, webrtc_aec_set_bypass_mode},
++ {MS_ECHO_CANCELLER_GET_BYPASS_MODE, webrtc_aec_get_bypass_mode},
++ {MS_ECHO_CANCELLER_GET_STATE_STRING, webrtc_aec_get_state},
++ {MS_ECHO_CANCELLER_SET_STATE_STRING, webrtc_aec_set_state},
++ {0, NULL}};
+
+ #ifdef BUILD_AEC
+
+-#define MS_WEBRTC_AEC_NAME "MSWebRTCAEC"
++#define MS_WEBRTC_AEC_NAME "MSWebRTCAEC"
+ #define MS_WEBRTC_AEC_DESCRIPTION "Echo canceller using WebRTC library."
+-#define MS_WEBRTC_AEC_CATEGORY MS_FILTER_OTHER
+-#define MS_WEBRTC_AEC_ENC_FMT NULL
+-#define MS_WEBRTC_AEC_NINPUTS 2
+-#define MS_WEBRTC_AEC_NOUTPUTS 2
+-#define MS_WEBRTC_AEC_FLAGS 0
++#define MS_WEBRTC_AEC_CATEGORY MS_FILTER_OTHER
++#define MS_WEBRTC_AEC_ENC_FMT NULL
++#define MS_WEBRTC_AEC_NINPUTS 2
++#define MS_WEBRTC_AEC_NOUTPUTS 2
++#define MS_WEBRTC_AEC_FLAGS 0
+
+ #ifdef _MSC_VER
+
+ MSFilterDesc ms_webrtc_aec_desc = {
+- MS_FILTER_PLUGIN_ID,
+- MS_WEBRTC_AEC_NAME,
+- MS_WEBRTC_AEC_DESCRIPTION,
+- MS_WEBRTC_AEC_CATEGORY,
+- MS_WEBRTC_AEC_ENC_FMT,
+- MS_WEBRTC_AEC_NINPUTS,
+- MS_WEBRTC_AEC_NOUTPUTS,
+- webrtc_aec_init,
+- webrtc_aec_preprocess,
+- webrtc_aec_process,
+- webrtc_aec_postprocess,
+- webrtc_aec_uninit,
+- webrtc_aec_methods,
+- MS_WEBRTC_AEC_FLAGS
+-};
++ MS_FILTER_PLUGIN_ID, MS_WEBRTC_AEC_NAME, MS_WEBRTC_AEC_DESCRIPTION,
++ MS_WEBRTC_AEC_CATEGORY, MS_WEBRTC_AEC_ENC_FMT, MS_WEBRTC_AEC_NINPUTS,
++ MS_WEBRTC_AEC_NOUTPUTS, webrtc_aec_init, webrtc_aec_preprocess,
++ webrtc_aec_process, webrtc_aec_postprocess, webrtc_aec_uninit,
++ webrtc_aec_methods, MS_WEBRTC_AEC_FLAGS};
+
+ #else
+
+-MSFilterDesc ms_webrtc_aec_desc = {
+- .id = MS_FILTER_PLUGIN_ID,
+- .name = MS_WEBRTC_AEC_NAME,
+- .text = MS_WEBRTC_AEC_DESCRIPTION,
+- .category = MS_WEBRTC_AEC_CATEGORY,
+- .enc_fmt = MS_WEBRTC_AEC_ENC_FMT,
+- .ninputs = MS_WEBRTC_AEC_NINPUTS,
+- .noutputs = MS_WEBRTC_AEC_NOUTPUTS,
+- .init = webrtc_aec_init,
+- .preprocess = webrtc_aec_preprocess,
+- .process = webrtc_aec_process,
+- .postprocess = webrtc_aec_postprocess,
+- .uninit = webrtc_aec_uninit,
+- .methods = webrtc_aec_methods,
+- .flags = MS_WEBRTC_AEC_FLAGS
+-};
++MSFilterDesc ms_webrtc_aec_desc = {.id = MS_FILTER_PLUGIN_ID,
++ .name = MS_WEBRTC_AEC_NAME,
++ .text = MS_WEBRTC_AEC_DESCRIPTION,
++ .category = MS_WEBRTC_AEC_CATEGORY,
++ .enc_fmt = MS_WEBRTC_AEC_ENC_FMT,
++ .ninputs = MS_WEBRTC_AEC_NINPUTS,
++ .noutputs = MS_WEBRTC_AEC_NOUTPUTS,
++ .init = webrtc_aec_init,
++ .preprocess = webrtc_aec_preprocess,
++ .process = webrtc_aec_process,
++ .postprocess = webrtc_aec_postprocess,
++ .uninit = webrtc_aec_uninit,
++ .methods = webrtc_aec_methods,
++ .flags = MS_WEBRTC_AEC_FLAGS};
+
+ #endif
+
+@@ -517,51 +535,40 @@ MS_FILTER_DESC_EXPORT(ms_webrtc_aec_desc)
+
+ #ifdef BUILD_AECM
+
+-#define MS_WEBRTC_AECM_NAME "MSWebRTCAECM"
+-#define MS_WEBRTC_AECM_DESCRIPTION "Echo canceller for mobile using WebRTC library."
+-#define MS_WEBRTC_AECM_CATEGORY MS_FILTER_OTHER
+-#define MS_WEBRTC_AECM_ENC_FMT NULL
+-#define MS_WEBRTC_AECM_NINPUTS 2
+-#define MS_WEBRTC_AECM_NOUTPUTS 2
+-#define MS_WEBRTC_AECM_FLAGS 0
++#define MS_WEBRTC_AECM_NAME "MSWebRTCAECM"
++#define MS_WEBRTC_AECM_DESCRIPTION \
++ "Echo canceller for mobile using WebRTC library."
++#define MS_WEBRTC_AECM_CATEGORY MS_FILTER_OTHER
++#define MS_WEBRTC_AECM_ENC_FMT NULL
++#define MS_WEBRTC_AECM_NINPUTS 2
++#define MS_WEBRTC_AECM_NOUTPUTS 2
++#define MS_WEBRTC_AECM_FLAGS 0
+
+ #ifdef _MSC_VER
+
+ MSFilterDesc ms_webrtc_aecm_desc = {
+- MS_FILTER_PLUGIN_ID,
+- MS_WEBRTC_AECM_NAME,
+- MS_WEBRTC_AECM_DESCRIPTION,
+- MS_WEBRTC_AECM_CATEGORY,
+- MS_WEBRTC_AECM_ENC_FMT,
+- MS_WEBRTC_AECM_NINPUTS,
+- MS_WEBRTC_AECM_NOUTPUTS,
+- webrtc_aecm_init,
+- webrtc_aec_preprocess,
+- webrtc_aec_process,
+- webrtc_aec_postprocess,
+- webrtc_aec_uninit,
+- webrtc_aec_methods,
+- MS_WEBRTC_AECM_FLAGS
+-};
++ MS_FILTER_PLUGIN_ID, MS_WEBRTC_AECM_NAME, MS_WEBRTC_AECM_DESCRIPTION,
++ MS_WEBRTC_AECM_CATEGORY, MS_WEBRTC_AECM_ENC_FMT, MS_WEBRTC_AECM_NINPUTS,
++ MS_WEBRTC_AECM_NOUTPUTS, webrtc_aecm_init, webrtc_aec_preprocess,
++ webrtc_aec_process, webrtc_aec_postprocess, webrtc_aec_uninit,
++ webrtc_aec_methods, MS_WEBRTC_AECM_FLAGS};
+
+ #else
+
+-MSFilterDesc ms_webrtc_aecm_desc = {
+- .id = MS_FILTER_PLUGIN_ID,
+- .name = MS_WEBRTC_AECM_NAME,
+- .text = MS_WEBRTC_AECM_DESCRIPTION,
+- .category = MS_WEBRTC_AECM_CATEGORY,
+- .enc_fmt = MS_WEBRTC_AECM_ENC_FMT,
+- .ninputs = MS_WEBRTC_AECM_NINPUTS,
+- .noutputs = MS_WEBRTC_AECM_NOUTPUTS,
+- .init = webrtc_aecm_init,
+- .preprocess = webrtc_aec_preprocess,
+- .process = webrtc_aec_process,
+- .postprocess = webrtc_aec_postprocess,
+- .uninit = webrtc_aec_uninit,
+- .methods = webrtc_aec_methods,
+- .flags = MS_WEBRTC_AECM_FLAGS
+-};
++MSFilterDesc ms_webrtc_aecm_desc = {.id = MS_FILTER_PLUGIN_ID,
++ .name = MS_WEBRTC_AECM_NAME,
++ .text = MS_WEBRTC_AECM_DESCRIPTION,
++ .category = MS_WEBRTC_AECM_CATEGORY,
++ .enc_fmt = MS_WEBRTC_AECM_ENC_FMT,
++ .ninputs = MS_WEBRTC_AECM_NINPUTS,
++ .noutputs = MS_WEBRTC_AECM_NOUTPUTS,
++ .init = webrtc_aecm_init,
++ .preprocess = webrtc_aec_preprocess,
++ .process = webrtc_aec_process,
++ .postprocess = webrtc_aec_postprocess,
++ .uninit = webrtc_aec_uninit,
++ .methods = webrtc_aec_methods,
++ .flags = MS_WEBRTC_AECM_FLAGS};
+
+ #endif
+
+--
+GitLab
+
diff --git a/gnu/packages/patches/mswebrtc-cmake.patch b/gnu/packages/patches/mswebrtc-cmake.patch
new file mode 100644
index 0000000000..19d0c31b10
--- /dev/null
+++ b/gnu/packages/patches/mswebrtc-cmake.patch
@@ -0,0 +1,626 @@
+From e52911c291e5ebe16da764e53cb740b7deb77e75 Mon Sep 17 00:00:00 2001
+From: Ghislain MARY <ghislain.mary@belledonne-communications.com>
+Date: Mon, 13 Mar 2023 19:05:30 +0100
+Subject: [PATCH] Update CMakeLists.txt so that the project can be added as a
+ subdirectory of linphone-sdk.
+
+Rename CMake targets for uniform naming.
+---
+ CMakeLists.txt | 68 ++++++++++++++++++----------------
+ cmake/FindBcToolbox.cmake | 67 +++++++++++++++++++++++++++++++++
+ cmake/FindMediastreamer2.cmake | 46 +++++++++++++++++++++++
+ cmake/FindOrtp.cmake | 43 +++++++++++++++++++++
+ 4 files changed, 193 insertions(+), 31 deletions(-)
+ create mode 100644 cmake/FindBcToolbox.cmake
+ create mode 100644 cmake/FindMediastreamer2.cmake
+ create mode 100644 cmake/FindOrtp.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0f26f4f..fd5b52e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ ############################################################################
+ # CMakeLists.txt
+-# Copyright (C) 2014 Belledonne Communications, Grenoble France
++# Copyright (C) 2014-2023 Belledonne Communications, Grenoble France
+ #
+ ############################################################################
+ #
+@@ -20,7 +20,8 @@
+ #
+ ############################################################################
+
+-cmake_minimum_required(VERSION 3.1)
++cmake_minimum_required(VERSION 3.22)
++
+ project(mswebrtc VERSION 1.1.1 LANGUAGES C CXX)
+
+
+@@ -34,8 +35,6 @@ set(PACKAGE_URL "")
+ set(VERSION "${PACKAGE_VERSION}")
+
+
+-option(ENABLE_SHARED "Build shared library." YES)
+-option(ENABLE_STATIC "Build static library." YES)
+ option(ENABLE_AEC "Enable the WebRTC echo canceller support." YES)
+ option(ENABLE_AECM "Enable the WebRTC echo canceller for mobile support." YES)
+ option(ENABLE_ISAC "Enable the ISAC audio codec support." YES)
+@@ -60,9 +59,20 @@ if(NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+ message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+ endif()
+
+-find_package(Mediastreamer2 REQUIRED CONFIG)
+-find_package(ortp REQUIRED CONFIG)
+-find_package(bctoolbox REQUIRED CONFIG)
++list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
++
++find_package(BcToolbox)
++if(NOT BCTOOLBOX_FOUND)
++ find_package(bctoolbox REQUIRED CONFIG)
++endif()
++find_package(Ortp)
++if(NOT ORTP_FOUND)
++ find_package(ortp REQUIRED CONFIG)
++endif()
++find_package(Mediastreamer2)
++if(NOT MEDIASTREAMER2_FOUND)
++ find_package(Mediastreamer2 REQUIRED CONFIG)
++endif()
+
+ find_library(LIBM NAMES m)
+
+@@ -410,24 +420,18 @@ endif()
+
+ set(MS2_PLUGINS_DIR "${MEDIASTREAMER2_PLUGINS_LOCATION}")
+
+-if(ENABLE_STATIC)
+- add_library(mswebrtc-static STATIC ${SOURCE_FILES})
+- set_target_properties(mswebrtc-static PROPERTIES OUTPUT_NAME mswebrtc)
+- set_target_properties(mswebrtc-static PROPERTIES LINKER_LANGUAGE CXX)
+- target_link_libraries(mswebrtc-static ${LIBS})
+- install(TARGETS mswebrtc-static
+- ARCHIVE DESTINATION "${MS2_PLUGINS_DIR}"
+- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+- )
+-endif()
+-if(ENABLE_SHARED)
+- if(NOT IOS)
+- add_library(mswebrtc MODULE ${SOURCE_FILES})
+- else()
++if(BUILD_SHARED_LIBS)
++ if(IOS)
+ add_library(mswebrtc SHARED ${SOURCE_FILES})
++ else()
++ add_library(mswebrtc MODULE ${SOURCE_FILES})
+ endif()
+- target_link_libraries(mswebrtc PRIVATE mediastreamer ortp bctoolbox ${LIBS})
+- set_target_properties(mswebrtc PROPERTIES LINKER_LANGUAGE CXX)
++else()
++ add_library(mswebrtc STATIC ${SOURCE_FILES})
++endif()
++target_link_libraries(mswebrtc PRIVATE mediastreamer2 ortp bctoolbox ${LIBS})
++set_target_properties(mswebrtc PROPERTIES LINKER_LANGUAGE CXX)
++if(BUILD_SHARED_LIBS)
+ if(APPLE)
+ if(IOS)
+ set(MIN_OS ${LINPHONE_IOS_DEPLOYMENT_TARGET})
+@@ -441,7 +445,7 @@ if(ENABLE_SHARED)
+ set(MIN_OS ${CMAKE_OSX_DEPLOYMENT_TARGET})
+ endif()
+
+- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build/osx/")
++ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/build/osx/")
+ endif()
+ if(MSVC)
+ if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+@@ -454,14 +458,16 @@ if(ENABLE_SHARED)
+ set_target_properties(mswebrtc PROPERTIES PREFIX "lib")
+ endif()
+ endif()
+- install(TARGETS mswebrtc
+- RUNTIME DESTINATION ${MS2_PLUGINS_DIR}
+- LIBRARY DESTINATION ${MS2_PLUGINS_DIR}
+- ARCHIVE DESTINATION ${MS2_PLUGINS_DIR}
+- FRAMEWORK DESTINATION Frameworks
+- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+- )
+ endif()
+
++install(TARGETS mswebrtc
++ RUNTIME DESTINATION ${MS2_PLUGINS_DIR}
++ LIBRARY DESTINATION ${MS2_PLUGINS_DIR}
++ ARCHIVE DESTINATION ${MS2_PLUGINS_DIR}
++ FRAMEWORK DESTINATION Frameworks
++ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
++)
++
++
+ add_subdirectory(build)
+
+diff --git a/cmake/FindBcToolbox.cmake b/cmake/FindBcToolbox.cmake
+new file mode 100644
+index 0000000..5766478
+--- /dev/null
++++ b/cmake/FindBcToolbox.cmake
+@@ -0,0 +1,67 @@
++############################################################################
++# FindBctoolbox.cmake
++# Copyright (C) 2023 Belledonne Communications, Grenoble France
++#
++############################################################################
++#
++# This program 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 2
++# of the License, or (at your option) any later version.
++#
++# This program 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 this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++#
++############################################################################
++#
++# - Find the bctoolbox include files and library
++#
++# BCTOOLBOX_FOUND - System has lib bctoolbox
++# BCTOOLBOX_INCLUDE_DIRS - The bctoolbox include directories
++# BCTOOLBOX_LIBRARIES - The libraries needed to use bctoolbox
++# BCTOOLBOX_CMAKE_DIR - The bctoolbox cmake directory
++# BCTOOLBOX_CORE_FOUND - System has core bctoolbox
++# BCTOOLBOX_CORE_INCLUDE_DIRS - The core bctoolbox include directories
++# BCTOOLBOX_CORE_LIBRARIES - The core bctoolbox libraries
++# BCTOOLBOX_TESTER_FOUND - System has bctoolbox tester
++# BCTOOLBOX_TESTER_INCLUDE_DIRS - The bctoolbox tester include directories
++# BCTOOLBOX_TESTER_LIBRARIES - The bctoolbox tester libraries
++
++if(TARGET bctoolbox)
++
++ set(BCTOOLBOX_CORE_LIBRARIES bctoolbox)
++ get_target_property(BCTOOLBOX_CORE_INCLUDE_DIRS bctoolbox INTERFACE_INCLUDE_DIRECTORIES)
++ set(BCTOOLBOX_CORE_FOUND TRUE)
++ get_target_property(BCTOOLBOX_SOURCE_DIR bctoolbox SOURCE_DIR)
++ set(BCTOOLBOX_CMAKE_DIR "${BCTOOLBOX_SOURCE_DIR}/../cmake")
++ if(TARGET bctoolbox-tester)
++ set(BCTOOLBOX_TESTER_LIBRARIES bctoolbox-tester)
++ get_target_property(BCTOOLBOX_TESTER_INCLUDE_DIRS bctoolbox-tester INTERFACE_INCLUDE_DIRECTORIES)
++ set(BCTOOLBOX_TESTER_FOUND TRUE)
++ set(BCTOOLBOX_TESTER_COMPONENT_VARIABLES BCTOOLBOX_TESTER_FOUND BCTOOLBOX_TESTER_INCLUDE_DIRS BCTOOLBOX_TESTER_LIBRARIES)
++ endif()
++ set(BCTOOLBOX_LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BCTOOLBOX_TESTER_LIBRARIES})
++ set(BCTOOLBOX_INCLUDE_DIRS ${BCTOOLBOX_CORE_INCLUDE_DIRS} ${BCTOOLBOX_TESTER_INCLUDE_DIRS})
++
++
++ include(FindPackageHandleStandardArgs)
++ find_package_handle_standard_args(BcToolbox
++ DEFAULT_MSG
++ BCTOOLBOX_INCLUDE_DIRS BCTOOLBOX_LIBRARIES BCTOOLBOX_CMAKE_DIR
++ BCTOOLBOX_CORE_FOUND BCTOOLBOX_CORE_INCLUDE_DIRS BCTOOLBOX_CORE_LIBRARIES
++ ${BCTOOLBOX_TESTER_COMPONENT_VARIABLES}
++ )
++
++ mark_as_advanced(
++ BCTOOLBOX_INCLUDE_DIRS BCTOOLBOX_LIBRARIES BCTOOLBOX_CMAKE_DIR
++ BCTOOLBOX_CORE_FOUND BCTOOLBOX_CORE_INCLUDE_DIRS BCTOOLBOX_CORE_LIBRARIES
++ ${BCTOOLBOX_TESTER_COMPONENT_VARIABLES}
++ )
++
++endif()
+diff --git a/cmake/FindMediastreamer2.cmake b/cmake/FindMediastreamer2.cmake
+new file mode 100644
+index 0000000..64ac8f2
+--- /dev/null
++++ b/cmake/FindMediastreamer2.cmake
+@@ -0,0 +1,46 @@
++############################################################################
++# FindMediastreamer2.cmake
++# Copyright (C) 2023 Belledonne Communications, Grenoble France
++#
++############################################################################
++#
++# This program 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 2
++# of the License, or (at your option) any later version.
++#
++# This program 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 this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++#
++############################################################################
++#
++# - Find the mediastreamer2 include files and library
++#
++# MEDIASTREAMER2_FOUND - system has lib mediastreamer2
++# MEDIASTREAMER2_INCLUDE_DIRS - the mediasteamer2 include directory
++# MEDIASTREAMER2_LIBRARIES - The library needed to use mediasteamer2
++# MEDIASTREAMER2_PLUGINS_LOCATION - The location of the mediastreamer2 plugins
++
++if(TARGET mediastreamer2)
++
++ set(MEDIASTREAMER2_LIBRARIES mediastreamer2)
++ get_target_property(MEDIASTREAMER2_INCLUDE_DIRS mediastreamer2 INTERFACE_INCLUDE_DIRECTORIES)
++ define_property(TARGET PROPERTY "MS2_PLUGINS" BRIEF_DOCS "Stores the location of mediastreamer2 plugins" FULL_DOCS "Stores the location of mediastreamer2 plugins")
++ get_target_property(MEDIASTREAMER2_PLUGINS_LOCATION mediastreamer2 MS2_PLUGINS)
++
++
++ include(FindPackageHandleStandardArgs)
++ find_package_handle_standard_args(Mediastreamer2
++ DEFAULT_MSG
++ MEDIASTREAMER2_INCLUDE_DIRS MEDIASTREAMER2_LIBRARIES
++ )
++
++ mark_as_advanced(MEDIASTREAMER2_INCLUDE_DIRS MEDIASTREAMER2_LIBRARIES)
++
++endif()
+diff --git a/cmake/FindOrtp.cmake b/cmake/FindOrtp.cmake
+new file mode 100644
+index 0000000..13121fb
+--- /dev/null
++++ b/cmake/FindOrtp.cmake
+@@ -0,0 +1,43 @@
++############################################################################
++# FindOrtp.cmake
++# Copyright (C) 2023 Belledonne Communications, Grenoble France
++#
++############################################################################
++#
++# This program 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 2
++# of the License, or (at your option) any later version.
++#
++# This program 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 this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++#
++############################################################################
++#
++# - Find the ortp include files and library
++#
++# ORTP_FOUND - system has lib ortp
++# ORTP_INCLUDE_DIRS - the ortp include directory
++# ORTP_LIBRARIES - The library needed to use ortp
++
++if(TARGET ortp)
++
++ set(ORTP_LIBRARIES ortp)
++ get_target_property(ORTP_INCLUDE_DIRS ortp INTERFACE_INCLUDE_DIRECTORIES)
++
++
++ include(FindPackageHandleStandardArgs)
++ find_package_handle_standard_args(Ortp
++ DEFAULT_MSG
++ ORTP_INCLUDE_DIRS ORTP_LIBRARIES
++ )
++
++ mark_as_advanced(ORTP_INCLUDE_DIRS ORTP_LIBRARIES)
++
++endif()
+--
+GitLab
+
+From b5aea9bdaeecd99f6fc5601bfb88541d4e55841b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micka=C3=ABl=20Turnel?=
+ <mickael.turnel@belledonne-communications.com>
+Date: Fri, 23 Jun 2023 11:05:24 +0200
+Subject: [PATCH] Change the library path in the binary dir so it can be
+ retrieved easily by testers
+
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fd5b52e..ab3e651 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,6 +24,7 @@ cmake_minimum_required(VERSION 3.22)
+
+ project(mswebrtc VERSION 1.1.1 LANGUAGES C CXX)
+
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/mediastreamer2/plugins")
+
+ set(PACKAGE "${PROJECT_NAME}")
+ set(PACKAGE_NAME "${PROJECT_NAME}")
+--
+GitLab
+
+From 1809337d6191ec40f88191b5ce07cfb01ed07b20 Mon Sep 17 00:00:00 2001
+From: Ghislain MARY <ghislain.mary@belledonne-communications.com>
+Date: Tue, 20 Jun 2023 11:47:00 +0200
+Subject: [PATCH] Improve CMake find_package functionality.
+
+---
+ CMakeLists.txt | 30 ++++-----------
+ build/CMakeLists.txt | 3 +-
+ cmake/FindBcToolbox.cmake | 67 ----------------------------------
+ cmake/FindMediastreamer2.cmake | 46 -----------------------
+ cmake/FindOrtp.cmake | 43 ----------------------
+ 5 files changed, 10 insertions(+), 179 deletions(-)
+ delete mode 100644 cmake/FindBcToolbox.cmake
+ delete mode 100644 cmake/FindMediastreamer2.cmake
+ delete mode 100644 cmake/FindOrtp.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ab3e651..a869908 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,7 +22,7 @@
+
+ cmake_minimum_required(VERSION 3.22)
+
+-project(mswebrtc VERSION 1.1.1 LANGUAGES C CXX)
++project(MSWebRTC VERSION 1.1.1 LANGUAGES C CXX)
+
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/mediastreamer2/plugins")
+
+@@ -60,20 +60,8 @@ if(NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+ message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+ endif()
+
+-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+-
+-find_package(BcToolbox)
+-if(NOT BCTOOLBOX_FOUND)
+- find_package(bctoolbox REQUIRED CONFIG)
+-endif()
+-find_package(Ortp)
+-if(NOT ORTP_FOUND)
+- find_package(ortp REQUIRED CONFIG)
+-endif()
+-find_package(Mediastreamer2)
+-if(NOT MEDIASTREAMER2_FOUND)
+- find_package(Mediastreamer2 REQUIRED CONFIG)
+-endif()
++find_package(BCToolbox 5.3.0 REQUIRED)
++find_package(Mediastreamer2 5.3.0 REQUIRED)
+
+ find_library(LIBM NAMES m)
+
+@@ -92,7 +80,7 @@ endif()
+ if(ENABLE_VAD)
+ set(BUILD_VAD 1)
+ endif()
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/config.h")
+
+ set(WEBRTC_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/webrtc")
+ set(WEBRTC_SRC_DIR "${WEBRTC_ROOT_DIR}/webrtc")
+@@ -419,8 +407,6 @@ if(LIBM)
+ list(APPEND LIBS ${LIBM})
+ endif()
+
+-set(MS2_PLUGINS_DIR "${MEDIASTREAMER2_PLUGINS_LOCATION}")
+-
+ if(BUILD_SHARED_LIBS)
+ if(IOS)
+ add_library(mswebrtc SHARED ${SOURCE_FILES})
+@@ -430,7 +416,7 @@ if(BUILD_SHARED_LIBS)
+ else()
+ add_library(mswebrtc STATIC ${SOURCE_FILES})
+ endif()
+-target_link_libraries(mswebrtc PRIVATE mediastreamer2 ortp bctoolbox ${LIBS})
++target_link_libraries(mswebrtc PRIVATE ${Mediastreamer2_TARGET} ${LIBS})
+ set_target_properties(mswebrtc PROPERTIES LINKER_LANGUAGE CXX)
+ if(BUILD_SHARED_LIBS)
+ if(APPLE)
+@@ -462,9 +448,9 @@ if(BUILD_SHARED_LIBS)
+ endif()
+
+ install(TARGETS mswebrtc
+- RUNTIME DESTINATION ${MS2_PLUGINS_DIR}
+- LIBRARY DESTINATION ${MS2_PLUGINS_DIR}
+- ARCHIVE DESTINATION ${MS2_PLUGINS_DIR}
++ RUNTIME DESTINATION ${Mediastreamer2_PLUGINS_DIR}
++ LIBRARY DESTINATION ${Mediastreamer2_PLUGINS_DIR}
++ ARCHIVE DESTINATION ${Mediastreamer2_PLUGINS_DIR}
+ FRAMEWORK DESTINATION Frameworks
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt
+index 82694c6..8f9108b 100755
+--- a/build/CMakeLists.txt
++++ b/build/CMakeLists.txt
+@@ -21,7 +21,8 @@
+ ############################################################################
+
+ if(NOT CPACK_PACKAGE_NAME)
+- set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
++ string(TOLOWER "${PROJECT_NAME}" LOWERCASE_PROJECT_NAME)
++ set(CPACK_PACKAGE_NAME "${LOWERCASE_PROJECT_NAME}")
+ endif()
+
+ set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/../COPYING")
+diff --git a/cmake/FindBcToolbox.cmake b/cmake/FindBcToolbox.cmake
+deleted file mode 100644
+index 5766478..0000000
+--- a/cmake/FindBcToolbox.cmake
++++ /dev/null
+@@ -1,67 +0,0 @@
+-############################################################################
+-# FindBctoolbox.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# - Find the bctoolbox include files and library
+-#
+-# BCTOOLBOX_FOUND - System has lib bctoolbox
+-# BCTOOLBOX_INCLUDE_DIRS - The bctoolbox include directories
+-# BCTOOLBOX_LIBRARIES - The libraries needed to use bctoolbox
+-# BCTOOLBOX_CMAKE_DIR - The bctoolbox cmake directory
+-# BCTOOLBOX_CORE_FOUND - System has core bctoolbox
+-# BCTOOLBOX_CORE_INCLUDE_DIRS - The core bctoolbox include directories
+-# BCTOOLBOX_CORE_LIBRARIES - The core bctoolbox libraries
+-# BCTOOLBOX_TESTER_FOUND - System has bctoolbox tester
+-# BCTOOLBOX_TESTER_INCLUDE_DIRS - The bctoolbox tester include directories
+-# BCTOOLBOX_TESTER_LIBRARIES - The bctoolbox tester libraries
+-
+-if(TARGET bctoolbox)
+-
+- set(BCTOOLBOX_CORE_LIBRARIES bctoolbox)
+- get_target_property(BCTOOLBOX_CORE_INCLUDE_DIRS bctoolbox INTERFACE_INCLUDE_DIRECTORIES)
+- set(BCTOOLBOX_CORE_FOUND TRUE)
+- get_target_property(BCTOOLBOX_SOURCE_DIR bctoolbox SOURCE_DIR)
+- set(BCTOOLBOX_CMAKE_DIR "${BCTOOLBOX_SOURCE_DIR}/../cmake")
+- if(TARGET bctoolbox-tester)
+- set(BCTOOLBOX_TESTER_LIBRARIES bctoolbox-tester)
+- get_target_property(BCTOOLBOX_TESTER_INCLUDE_DIRS bctoolbox-tester INTERFACE_INCLUDE_DIRECTORIES)
+- set(BCTOOLBOX_TESTER_FOUND TRUE)
+- set(BCTOOLBOX_TESTER_COMPONENT_VARIABLES BCTOOLBOX_TESTER_FOUND BCTOOLBOX_TESTER_INCLUDE_DIRS BCTOOLBOX_TESTER_LIBRARIES)
+- endif()
+- set(BCTOOLBOX_LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BCTOOLBOX_TESTER_LIBRARIES})
+- set(BCTOOLBOX_INCLUDE_DIRS ${BCTOOLBOX_CORE_INCLUDE_DIRS} ${BCTOOLBOX_TESTER_INCLUDE_DIRS})
+-
+-
+- include(FindPackageHandleStandardArgs)
+- find_package_handle_standard_args(BcToolbox
+- DEFAULT_MSG
+- BCTOOLBOX_INCLUDE_DIRS BCTOOLBOX_LIBRARIES BCTOOLBOX_CMAKE_DIR
+- BCTOOLBOX_CORE_FOUND BCTOOLBOX_CORE_INCLUDE_DIRS BCTOOLBOX_CORE_LIBRARIES
+- ${BCTOOLBOX_TESTER_COMPONENT_VARIABLES}
+- )
+-
+- mark_as_advanced(
+- BCTOOLBOX_INCLUDE_DIRS BCTOOLBOX_LIBRARIES BCTOOLBOX_CMAKE_DIR
+- BCTOOLBOX_CORE_FOUND BCTOOLBOX_CORE_INCLUDE_DIRS BCTOOLBOX_CORE_LIBRARIES
+- ${BCTOOLBOX_TESTER_COMPONENT_VARIABLES}
+- )
+-
+-endif()
+diff --git a/cmake/FindMediastreamer2.cmake b/cmake/FindMediastreamer2.cmake
+deleted file mode 100644
+index 64ac8f2..0000000
+--- a/cmake/FindMediastreamer2.cmake
++++ /dev/null
+@@ -1,46 +0,0 @@
+-############################################################################
+-# FindMediastreamer2.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# - Find the mediastreamer2 include files and library
+-#
+-# MEDIASTREAMER2_FOUND - system has lib mediastreamer2
+-# MEDIASTREAMER2_INCLUDE_DIRS - the mediasteamer2 include directory
+-# MEDIASTREAMER2_LIBRARIES - The library needed to use mediasteamer2
+-# MEDIASTREAMER2_PLUGINS_LOCATION - The location of the mediastreamer2 plugins
+-
+-if(TARGET mediastreamer2)
+-
+- set(MEDIASTREAMER2_LIBRARIES mediastreamer2)
+- get_target_property(MEDIASTREAMER2_INCLUDE_DIRS mediastreamer2 INTERFACE_INCLUDE_DIRECTORIES)
+- define_property(TARGET PROPERTY "MS2_PLUGINS" BRIEF_DOCS "Stores the location of mediastreamer2 plugins" FULL_DOCS "Stores the location of mediastreamer2 plugins")
+- get_target_property(MEDIASTREAMER2_PLUGINS_LOCATION mediastreamer2 MS2_PLUGINS)
+-
+-
+- include(FindPackageHandleStandardArgs)
+- find_package_handle_standard_args(Mediastreamer2
+- DEFAULT_MSG
+- MEDIASTREAMER2_INCLUDE_DIRS MEDIASTREAMER2_LIBRARIES
+- )
+-
+- mark_as_advanced(MEDIASTREAMER2_INCLUDE_DIRS MEDIASTREAMER2_LIBRARIES)
+-
+-endif()
+diff --git a/cmake/FindOrtp.cmake b/cmake/FindOrtp.cmake
+deleted file mode 100644
+index 13121fb..0000000
+--- a/cmake/FindOrtp.cmake
++++ /dev/null
+@@ -1,43 +0,0 @@
+-############################################################################
+-# FindOrtp.cmake
+-# Copyright (C) 2023 Belledonne Communications, Grenoble France
+-#
+-############################################################################
+-#
+-# This program 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 2
+-# of the License, or (at your option) any later version.
+-#
+-# This program 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 this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-############################################################################
+-#
+-# - Find the ortp include files and library
+-#
+-# ORTP_FOUND - system has lib ortp
+-# ORTP_INCLUDE_DIRS - the ortp include directory
+-# ORTP_LIBRARIES - The library needed to use ortp
+-
+-if(TARGET ortp)
+-
+- set(ORTP_LIBRARIES ortp)
+- get_target_property(ORTP_INCLUDE_DIRS ortp INTERFACE_INCLUDE_DIRECTORIES)
+-
+-
+- include(FindPackageHandleStandardArgs)
+- find_package_handle_standard_args(Ortp
+- DEFAULT_MSG
+- ORTP_INCLUDE_DIRS ORTP_LIBRARIES
+- )
+-
+- mark_as_advanced(ORTP_INCLUDE_DIRS ORTP_LIBRARIES)
+-
+-endif()
+--
+GitLab
+
diff --git a/gnu/packages/patches/nyacc-binary-literals.patch b/gnu/packages/patches/nyacc-binary-literals.patch
deleted file mode 100644
index 8159d74032..0000000000
--- a/gnu/packages/patches/nyacc-binary-literals.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 6a08014b77bf435f025ecdac08396580b85f159a Mon Sep 17 00:00:00 2001
-From: Jan Nieuwenhuizen <janneke@gnu.org>
-Date: Sat, 8 Sep 2018 20:22:45 +0200
-Subject: [PATCH] fix binary literals.
-
----
- module/nyacc/lex.scm | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/module/nyacc/lex.scm b/module/nyacc/lex.scm
-index 2ec9895..b205212 100644
---- a/module/nyacc/lex.scm
-+++ b/module/nyacc/lex.scm
-@@ -345,10 +345,11 @@
- ((char-numeric? ch) (iter chl '$fixed ba 1 ch))
- ((char=? #\. ch) (iter (cons ch chl) #f ba 15 (read-char)))
- (else #f)))
-- ((10) ;; allow x after 0
-+ ((10) ;; allow x, b after 0
- (cond
- ((eof-object? ch) (iter chl ty ba 5 ch))
- ((char=? #\x ch) (iter (cons ch chl) ty 16 1 (read-char)))
-+ ((char=? #\b ch) (iter (cons ch chl) ty 2 1 (read-char)))
- (else (iter chl ty ba 1 ch))))
- ((15) ;; got `.' only
- (cond
---
-2.18.0
-
diff --git a/gnu/packages/patches/soci-mysql-ddl-types.patch b/gnu/packages/patches/soci-mysql-ddl-types.patch
new file mode 100644
index 0000000000..e92fb117d1
--- /dev/null
+++ b/gnu/packages/patches/soci-mysql-ddl-types.patch
@@ -0,0 +1,15 @@
+Description: Add two unusual column type entries to make liblinphone work
+Author: Dennis Filder <d.filder@web.de>
+Bug-Debian: https://bugs.debian.org/984534
+Last-Update: 2021-03-10
+--- a/src/backends/sqlite3/statement.cpp
++++ b/src/backends/sqlite3/statement.cpp
+@@ -440,6 +440,8 @@
+ m["mediumint"] = dt_integer;
+ m["smallint"] = dt_integer;
+ m["tinyint"] = dt_integer;
++ m["tinyintunsigned"] = dt_integer;
++ m["intunsigned"] = dt_integer;
+
+ // dt_long_long
+ m["bigint"] = dt_long_long;
diff --git a/gnu/packages/patches/zig-0.15-fix-runpath.patch b/gnu/packages/patches/zig-0.15-fix-runpath.patch
new file mode 100644
index 0000000000..7216c97b57
--- /dev/null
+++ b/gnu/packages/patches/zig-0.15-fix-runpath.patch
@@ -0,0 +1,122 @@
+From d35c341322f6e84607350058007bd5be3d1d294a Mon Sep 17 00:00:00 2001
+From: Hilton Chain <hako@ultrarare.space>
+Date: Fri, 29 Nov 2024 14:13:46 +0800
+Subject: [PATCH] Fix RUNPATH issue.
+
+Add needed libraries and libc to RUNPATH when CROSS_LIBRARY_PATH or LIBRARY_PATH
+is set.
+---
+ lib/std/Build/Step/Compile.zig | 2 ++
+ src/link/Elf.zig | 7 +++++++
+ src/link/Lld.zig | 7 +++++++
+ src/main.zig | 34 +++++++++++++++++++++++++++++++++-
+ 4 files changed, 49 insertions(+), 1 deletion(-)
+
+diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
+index 79d3694c02..7f6bddbea6 100644
+--- a/lib/std/Build/Step/Compile.zig
++++ b/lib/std/Build/Step/Compile.zig
+@@ -794,6 +794,8 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8) !PkgConfigResult {
+ try zig_cflags.append(arg);
+ } else if (mem.startsWith(u8, arg, wl_rpath_prefix)) {
+ try zig_cflags.appendSlice(&[_][]const u8{ "-rpath", arg[wl_rpath_prefix.len..] });
++ } else if (mem.startsWith(u8, arg, "-Wl,-rpath=")) {
++ try zig_libs.appendSlice(&[_][]const u8{ "-L", arg["-Wl,-rpath=".len..] });
+ } else if (b.debug_pkg_config) {
+ return compile.step.fail("unknown pkg-config flag '{s}'", .{arg});
+ }
+diff --git a/src/link/Elf.zig b/src/link/Elf.zig
+index 99d0ad71b0..8017f4c088 100644
+--- a/src/link/Elf.zig
++++ b/src/link/Elf.zig
+@@ -988,6 +988,13 @@ fn dumpArgvInit(self: *Elf, arena: Allocator) !void {
+ try argv.appendSlice(gpa, &.{ "-rpath", rpath });
+ }
+
++ if (std.zig.system.NativePaths.isGuix(arena) and comp.config.link_libc and comp.config.link_mode == .dynamic) {
++ if (self.base.comp.libc_installation) |libc_installation| {
++ try argv.append(gpa, "-rpath");
++ try argv.append(gpa, libc_installation.crt_dir.?);
++ }
++ }
++
+ try argv.appendSlice(gpa, &.{
+ "-z",
+ try std.fmt.allocPrint(arena, "stack-size={d}", .{self.base.stack_size}),
+diff --git a/src/link/Lld.zig b/src/link/Lld.zig
+index 48872f7077..814f661692 100644
+--- a/src/link/Lld.zig
++++ b/src/link/Lld.zig
+@@ -1071,6 +1071,13 @@ fn elfLink(lld: *Lld, arena: Allocator) !void {
+ }
+ }
+
++ if (std.zig.system.NativePaths.isGuix(arena) and comp.config.link_libc and link_mode == .dynamic) {
++ if (comp.libc_installation) |libc_installation| {
++ try argv.append("-rpath");
++ try argv.append(libc_installation.crt_dir.?);
++ }
++ }
++
+ if (have_dynamic_linker and
+ (comp.config.link_libc or comp.root_mod.resolved_target.is_explicit_dynamic_linker))
+ {
+diff --git a/src/main.zig b/src/main.zig
+index 02b1b8f84b..ddc4ae8014 100644
+--- a/src/main.zig
++++ b/src/main.zig
+@@ -3910,7 +3910,7 @@ fn createModule(
+ create_module.want_native_include_dirs = true;
+ }
+
+- if (create_module.each_lib_rpath orelse resolved_target.is_native_os) {
++ if (create_module.each_lib_rpath orelse false) {
+ try create_module.rpath_list.ensureUnusedCapacity(arena, create_module.lib_directories.items.len);
+ for (create_module.lib_directories.items) |lib_directory| {
+ create_module.rpath_list.appendAssumeCapacity(lib_directory.path.?);
+@@ -3982,6 +3982,28 @@ fn createModule(
+ else => {},
+ };
+
++ if (std.zig.system.NativePaths.isGuix(arena)) {
++ for (create_module.link_inputs.items) |link_input| {
++ if (link_input.path()) |lib| {
++ const lib_name = lib.sub_path;
++ if (Compilation.classifyFileExt(lib_name) == .shared_library) {
++ if (fs.path.isAbsolute(lib_name)) {
++ const lib_dir_path = fs.path.dirname(lib_name).?;
++ try create_module.rpath_list.append(arena, lib_dir_path);
++ continue;
++ }
++ for (create_module.lib_directories.items) |lib_dir| {
++ const lib_dir_path = lib_dir.path.?;
++ if (try libPathExists(arena, lib_dir_path, lib_name)) {
++ try create_module.rpath_list.append(arena, lib_dir_path);
++ break;
++ }
++ }
++ }
++ }
++ }
++ }
++
+ create_module.resolved_options = Compilation.Config.resolve(create_module.opts) catch |err| switch (err) {
+ error.WasiExecModelRequiresWasi => fatal("only WASI OS targets support execution model", .{}),
+ error.SharedMemoryIsWasmOnly => fatal("only WebAssembly CPU targets support shared memory", .{}),
+@@ -7633,3 +7655,13 @@ fn addLibDirectoryWarn2(
+ .path = path,
+ });
+ }
++
++fn libPathExists(arena: Allocator, lib_dir_path: []const u8, lib_name: []const u8) !bool {
++ const lib_path = try std.fmt.allocPrint(arena, "{s}{s}{s}", .{
++ lib_dir_path,
++ fs.path.sep_str,
++ lib_name,
++ });
++ fs.cwd().access(lib_path, .{}) catch return false;
++ return true;
++}
+--
+2.50.1
+
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 33990bc2eb..98192f34ea 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -36,6 +36,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix gexp)
#:use-module (guix download)
@@ -514,17 +515,41 @@ scene to produce an image that looks much like a tone-mapped image.")
(base32 "1lwf3cwldvh9qfmh3w7nqqildfmxx2i5f5bn0vr8y6qc5kh7a1s9"))))
(build-system cmake-build-system)
(arguments
- `(,@(if (any (cute string-prefix? <> (or (%current-system)
- (%current-target-system)))
- '("x86_64" "i686"))
- ;; SSE and SSE2 are supported only on Intel processors.
- '()
- '(#:configure-flags '("-DBUILD_FOR_SSE=OFF" "-DBUILD_FOR_SSE2=OFF")))
- #:tests? #f)) ; There are no tests to run.
+ (list
+ #:imported-modules `(,@%cmake-build-system-modules
+ ,@%pyproject-build-system-modules)
+ #:modules '((guix build cmake-build-system)
+ ((guix build pyproject-build-system) #:prefix py:)
+ (guix build utils))
+ #:configure-flags
+ (if (any (cute string-prefix? <> (or (%current-system)
+ (%current-target-system)))
+ '("x86_64" "i686"))
+ ;; SSE and SSE2 are supported only on Intel processors.
+ #~'()
+ #~'("-DBUILD_FOR_SSE=OFF" "-DBUILD_FOR_SSE2=OFF"))
+ #:tests? #f ; There are no tests to run.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-egg
+ (lambda _
+ (substitute* "apps/CMakeLists.txt"
+ ;; Prevent creation of Python egg.
+ (("\\$\\{SETUP_PY\\} install")
+ "${SETUP_PY} install --single-version-externally-managed --root=/"))))
+ (add-after 'install 'python-wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (for-each (lambda (program)
+ (wrap-program (search-input-file outputs program)
+ `("GUIX_PYTHONPATH" ":" prefix
+ (,(getenv "GUIX_PYTHONPATH")
+ ,(py:site-packages inputs outputs)))))
+ (list "bin/lensfun-update-data"
+ "bin/lensfun-add-adapter")))))))
(native-inputs
(list pkg-config))
(inputs
- (list glib))
+ (list bash-minimal glib python))
(home-page "https://lensfun.github.io/")
(synopsis "Library to correct optical lens defects with a lens database")
(description "Digital photographs are not ideal. Of course, the better is
@@ -678,9 +703,19 @@ and enhance them.")
(list
#:tests? #f ;Tests are only examples
#:configure-flags
- #~(list "-DUSE_BUNDLED_LIBRAW=OFF"
- "-DBINARY_PACKAGE_BUILD=ON")
- #:build-type "Release")) ;Rawspeed fails on default 'RelWithDebInfo'
+ #~(list "-DUSE_BUNDLED_LIBRAW=OFF"
+ "-DBINARY_PACKAGE_BUILD=ON")
+ #:build-type "Release" ;Rawspeed fails on default 'RelWithDebInfo'
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'libOpenCL-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Statically link to libOpenCL.
+ (substitute* "./src/common/dlopencl.c"
+ (("\"libOpenCL\"")
+ (string-append "\""
+ (search-input-file inputs "/lib/libOpenCL.so")
+ "\""))))))))
(native-inputs
(list cmocka
desktop-file-utils
diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm
index ef2022415e..2fe1a7cae5 100644
--- a/gnu/packages/prolog.scm
+++ b/gnu/packages/prolog.scm
@@ -185,7 +185,7 @@ it.")
(define-public trealla
(package
(name "trealla")
- (version "2.82.20")
+ (version "2.82.22")
(source
(origin
(method git-fetch)
@@ -194,7 +194,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
- (base32 "1gm4lasn3hrbqzkqscd94arkq0wqcs87r80lipc325yi0zm047s9"))
+ (base32 "05lqh1y0qbdlxjcqwwn72dbjmsy7p3xq8rawm9y7yb638ci3rxwx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index b5ad5e7519..d3b31b05c7 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2018, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2021-2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
@@ -252,6 +252,20 @@ Included are implementations of:
@end enumerate\n")
(license license:psfl)))
+(define-public python-typing-extensions-next
+ (package
+ (inherit python-typing-extensions)
+ (version "4.15.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "typing_extensions" version))
+ (sha256
+ (base32 "0rhlhs28jndgp9fghdhidn6g7xiwx8vvihxbxhlgl4ncfg8lishc"))))
+ (native-inputs
+ (modify-inputs (package-native-inputs python-typing-extensions)
+ (replace "python-flit-core" python-flit-core-next)))))
+
;;;
;;; Python builder packages.
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 96cbe0b958..0fd1276fa5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2701,24 +2701,27 @@ Java objects.")
(define-public python-pymdown-extensions
(package
(name "python-pymdown-extensions")
- (version "8.1.1")
+ (version "10.16.1")
(source
(origin
- (method url-fetch)
- (uri
- (pypi-uri "pymdown-extensions" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/facelessuser/pymdown-extensions")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0d8pdndrl1kj105lq7r6kw2dnhcvll6h2qs07w71mcpi7gx728v3"))))
- (build-system python-build-system)
- ;; FIXME: "AssertionError: False is not true"
+ (base32 "0r36nk1ppq1wrgb1lcy9asp9872xr0gbhxrjw7dpa8lp6m7nqb9k"))))
+ (build-system pyproject-build-system)
+ ;; XXX: A lot of HTML tests fail with negligible discrepancies.
(arguments
- `(#:tests? #f))
- (propagated-inputs
- (list python-markdown))
+ (list #:tests? #f))
+ (native-inputs (list python-hatchling python-pytest python-pyyaml))
+ (propagated-inputs (list python-markdown))
(home-page "https://github.com/facelessuser/pymdown-extensions")
(synopsis "Extension pack for Python Markdown")
- (description "PyMdown Extensions is a collection of extensions for Python
-Markdown. All extensions are found under the module namespace of pymdownx.")
+ (description
+ "PyMdown Extensions is a collection of extensions for Python Markdown.
+All extensions are found under the module namespace of pymdownx.")
(license license:expat)))
(define-public python-plotext
@@ -6787,7 +6790,7 @@ palettes.")
(propagated-inputs
;; Youtube-dl is a python package which is imported in the file
;; "backend_youtube_dl.py", therefore it needs to be propagated.
- (list youtube-dl))
+ (list yt-dlp))
(home-page "https://np1.github.io/pafy/")
(synopsis "Retrieve YouTube content and metadata")
(description
@@ -7635,29 +7638,30 @@ memory usage and transliteration quality.")
(license license:expat)))
(define-public python-pymsgbox
- (package
- (name "python-pymsgbox")
- (version "1.0.6")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- ;; LICENSE.txt is not present on pypi
- (url "https://github.com/asweigart/PyMsgBox")
- (commit "55926b55f46caa969c5ddb87990ebea2737bd66f")))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0zy7rjfpwlrd8b64j7jk2lb8m2npc21rnpwakpfvwgl4nxdy80rg"))))
- (arguments
- ;; Circular dependency to run tests:
- ;; Tests need pyautogui, which depends on pymsgbox.
- '(#:tests? #f))
- (build-system python-build-system)
- (home-page "https://github.com/asweigart/PyMsgBox")
- (synopsis "Python module for JavaScript-like message boxes")
- (description
- "PyMsgBox is a simple, cross-platform, pure Python module for
+ (let ((commit "944b7cdc67058d005ce5fd011c66f2d87d25aba0")
+ (revision "1"))
+ (package
+ (name "python-pymsgbox")
+ (version (git-version "1.0.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asweigart/PyMsgBox")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bhipfvnc06l8hiadk302v74yin38nwz1r47njliwk8kz103yl3g"))))
+ (build-system pyproject-build-system)
+ (arguments
+ ;; Circular dependency to run tests:
+ ;; Tests need pyautogui, which depends on pymsgbox.
+ '(#:tests? #f))
+ (native-inputs (list python-setuptools python-wheel))
+ (home-page "https://github.com/asweigart/PyMsgBox")
+ (synopsis "Python module for JavaScript-like message boxes")
+ (description
+ "PyMsgBox is a simple, cross-platform, pure Python module for
JavaScript-like message boxes. Types of dialog boxes include:
@enumerate
@item alert
@@ -7666,7 +7670,7 @@ JavaScript-like message boxes. Types of dialog boxes include:
@item password
@end enumerate
")
- (license license:bsd-3)))
+ (license license:bsd-3))))
(define-public python-pympler
(package
@@ -8960,7 +8964,7 @@ ecosystem, but can naturally be used also by other projects.")
(define-public python-robotframework
(package
(name "python-robotframework")
- (version "7.2.2")
+ (version "7.3.2")
(source
(origin
(method git-fetch) ; no tests in the PyPI archive
@@ -8969,7 +8973,7 @@ ecosystem, but can naturally be used also by other projects.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1a34dv5gpaiqbddblfnirp1ja2a1069n9nifasn4g26kcj69fpra"))))
+ (base32 "0azis3dj7lfiwrr5gr1gr78z5m05vvl8n20rw3bz93s05z94h5i7"))))
(outputs '("out" "doc"))
(build-system pyproject-build-system)
(arguments
@@ -9009,6 +9013,7 @@ ecosystem, but can naturally be used also by other projects.")
python-jsonschema
python-pygments
python-rellu
+ python-typing-extensions-next
python-setuptools
`(,python "tk") ;used when building the HTML doc
python-wheel))
@@ -9621,22 +9626,9 @@ errors when data is invalid.")
(list
#:test-flags
#~(list "--ignore=tests/test_docs.py" ; no pytest_examples
- ;; These tests include hashes that keep changing depending on
- ;; package versions.
- "--ignore=tests/benchmarks/test_north_star.py"
+ "--ignore-glob=tests/benchmarks/*"
;; Unimportant difference in one test's error message.
- "--ignore=tests/test_networks.py")
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'check 'pre-check
- (lambda _
- ;; Remove the addopts from pyproject.toml, it breaks the 'check
- ;; phase.
- (substitute* "pyproject.toml"
- (("'--benchmark") "#'--benchmark")
- ;; Do not fail on deprecation warnings.
- (("ignore:path is deprecated.*:DeprecationWarning:")
- "ignore::DeprecationWarning")))))))
+ "--ignore=tests/test_networks.py")))
(native-inputs
(list tzdata-for-tests
python-dirty-equals
@@ -13038,7 +13030,6 @@ data, and scientific formats.")
(build-system pyproject-build-system)
(native-inputs
(list pkg-config
- python-pyperf
python-pytest
python-setuptools
python-wheel))
@@ -17577,38 +17568,35 @@ reading and writing MessagePack data.")
#t))))))))
(define-public python-openstep-plist
- (package
- (name "python-openstep-plist")
- (version "0.3.0")
- (home-page "https://github.com/fonttools/openstep-plist")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1rxjgzh0p069ncsr2986rn32vhdqyq35irbqg2559jh18456mkca"))))
- (build-system python-build-system)
- (arguments
- (list #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'pretend-version
- (lambda _
- (setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
- #$(package-version this-package))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv")))))))
- (native-inputs
- (list python-cython python-pytest python-setuptools-scm))
- (synopsis "OpenStep plist parser and writer")
- (description
- "This package provides a parser for the \"old style\" OpenStep property
+ (package
+ (name "python-openstep-plist")
+ (version "0.3.0")
+ (home-page "https://github.com/fonttools/openstep-plist")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rxjgzh0p069ncsr2986rn32vhdqyq35irbqg2559jh18456mkca"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'pretend-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
+ #$(package-version this-package)))))))
+ (native-inputs (list python-cython python-pytest python-setuptools-scm
+ python-setuptools python-wheel))
+ (synopsis "OpenStep plist parser and writer")
+ (description
+ "This package provides a parser for the \"old style\" OpenStep property
list format (also known as ASCII plist), written in Cython.")
- (license license:expat)))
+ (license license:expat)))
(define-public python-wrapt
(package
@@ -17720,25 +17708,15 @@ Unicode-aware. It is not intended as an end-user tool.")
(uri (pypi-uri "xlwt" version))
(sha256
(base32 "123c2pdamshkq75wwvck8fq0cjq1843xd3x9qaiz2a4vg9qi56f5"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "GUIX_PYTHONPATH"
- (string-append (getcwd) "/build/lib:"
- (getenv "GUIX_PYTHONPATH")))
- (invoke "nosetests" "-v")))))))
- (native-inputs
- `(("nose" ,python-nose)))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(home-page "https://www.python-excel.org/")
(synopsis "Library for creating spreadsheet Excel files")
- (description "@code{xlwt} is a library for writing data and formatting
-information to older Excel files (i.e. .xls). The package itself is pure
-Python with no dependencies on modules or packages outside the standard Python
-distribution. It is not intended as an end-user tool.")
+ (description
+ "@code{xlwt} is a library for writing data and formatting information to
+older Excel files (i.e. .xls). The package itself is pure Python with no
+dependencies on modules or packages outside the standard Python distribution.
+It is not intended as an end-user tool.")
(license license:bsd-3)))
(define-public python-immutables
@@ -20712,17 +20690,39 @@ library as well as on the command line.")
(version "1.7.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "plumbum" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tomerfiliba/plumbum")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1kidj821k79dw064rlxh84xamb9h79ychg3pgj81jlvm5hs48xri"))))
- (build-system python-build-system)
+ (base32 "1vlaiz4bwgrcay51knj6a20lh3lwihjqxhxhdk6nqkn9ijg0hc81"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f)) ;no tests
+ (list
+ #:test-flags
+ #~(list "--ignore=tests/test_remote.py"
+ "--ignore=tests/test_putty.py"
+ "--ignore=tests/test_sudo.py"
+ "-k"
+ (string-join (list "not test_home"
+ "test_iter_lines_error"
+ "test_quoting"
+ "test_copy_move_delete")
+ " and not "))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
(native-inputs
- ;; XXX: Not actually used since there are no tests but required for
- ;; build.
- (list python-pytest))
+ (list procps
+ python-psutil
+ python-pytest
+ python-pytest-cov
+ python-setuptools
+ python-setuptools-scm
+ python-wheel))
(home-page "https://plumbum.readthedocs.io")
(synopsis "Python shell combinators library")
(description
@@ -38126,12 +38126,13 @@ collection.")
(uri (pypi-uri "types-toml" version))
(sha256
(base32 "10400bd3yv6rjfnq8galskkbpqz1sfx9sfgr5qwvw04270x4cjgr"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
+ (native-inputs (list python-setuptools python-wheel))
(home-page "https://github.com/python/typeshed")
(synopsis "Typing stubs for TOML")
- (description "This package contains typing stubs for TOML, a very small
-subset the Python stubs contained in the complete @code{typeshed}
-collection.")
+ (description
+ "This package contains typing stubs for TOML, a very small subset the
+Python stubs contained in the complete @code{typeshed} collection.")
(license license:asl2.0)))
(define-public python-types-ujson
@@ -38382,32 +38383,18 @@ easy to write code that's correct across platforms and Pythons.")
(uri (pypi-uri "pyperf" version))
(sha256
(base32 "189qf9wdbig0fk4n3bavx8acgdbay5lllfvw48jvbfaafb7y5hja"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-tests
- (lambda _
- ;; Some of these tests fail with:
- ;;
- ;; ModuleNotFoundError: No module named 'pyperf'
- ;;
- ;; even when calling ‘add-installed-pythonpath’ in the ‘check’
- ;; phase.
- (delete-file "pyperf/tests/test_examples.py")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- ;; From tox.ini's ‘testenv.commands’.
- (invoke "python" "-bb" "-Wd"
- "-m" "unittest" "discover"
- "-s" "pyperf/tests/" "-v")))))))
- (native-inputs
- (list python-psutil))
+ (list
+ #:test-flags
+ #~(list "--ignore=pyperf/tests/test_examples.py")))
+ (native-inputs (list python-psutil python-pytest python-setuptools
+ python-wheel))
(home-page "https://github.com/psf/pyperf")
(synopsis "Toolkit for running Python benchmarks")
- (description "The Python @code{pyperf} module is a toolkit for writing,
-running and analyzing benchmarks. It features a simple API that can:
+ (description
+ "The Python @code{pyperf} module is a toolkit for writing, running and
+analyzing benchmarks. It features a simple API that can:
@itemize
@item automatically calibrate a benchmark for a time budget;
@@ -38850,68 +38837,86 @@ nested data structures in Python like lists and dictionaries.")
(license license:expat)))
(define-public python-murmurhash3
- (package
- (name "python-murmurhash3")
- (version "2.3.5")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "murmurhash3" version))
- (sha256
- (base32
- "1gdzys1212dx70byz07ipknbw1awbqskh6aznlkm85js8b8qfczm"))))
- (build-system python-build-system)
- (native-inputs (list python-cython python-pytest))
- (inputs (list python))
- (arguments
- (list #:modules
- '((ice-9 ftw) (ice-9 match)
- (guix build utils)
- (guix build python-build-system))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'set-source-file-times-to-1980
- (lambda _
- (let ((circa-1980 (* 10 366 24 60 60)))
- (ftw "."
- (lambda (file stat flag)
- (utime file circa-1980 circa-1980) #t))))))))
- (home-page "https://github.com/veegee/mmh3")
- (synopsis "Python wrapper for MurmurHash (MurmurHash3)")
- (description
- "@code{murmurhash3} is a Python library for MurmurHash (MurmurHash3), a set
+ (let ((commit "01f1128a2c5ea08e6dc33515e140bedd68393a2d")
+ (revision "0"))
+ (package
+ (name "python-murmurhash3")
+ (version (git-version "2.3.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/veegee/mmh3")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zpk51ms1bvzg52zc9s9az71bgw2kgxidjcc1xib7y9r7dl7vczz"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-package
+ (lambda _
+ (substitute* "mmh3module.cpp"
+ (("#include <stdio\\.h>")
+ "#define PY_SSIZE_T_CLEAN\n#include <stdio.h>")))))))
+ (native-inputs
+ (list python-cython python-pytest python-setuptools python-wheel))
+ (home-page "https://github.com/veegee/mmh3")
+ (synopsis "Python wrapper for MurmurHash (MurmurHash3)")
+ (description
+ "@code{murmurhash3} is a Python library for MurmurHash (MurmurHash3), a set
of fast and robust hash functions. This library is a Python extension module
written in C.")
- (license license:public-domain)))
+ (license license:public-domain))))
(define-public python-murmurhash
(package
(name "python-murmurhash")
(version "1.0.7")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "murmurhash" version))
- (sha256
- (base32
- "0vwkn98c703nvsigl2nz99rax2pafkx3djjfkgc49jiipmp3j2k3"))))
- (build-system python-build-system)
- (native-inputs (list python-cython python-pytest))
- (inputs (list python python-murmurhash3))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/explosion/murmurhash")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0p8afy51nfvswl2fcimy5vc584zv89349rq12ymbcpp06yidzdfh"))))
+ (build-system pyproject-build-system)
(arguments
- (list #:modules
- '((ice-9 ftw) (ice-9 match)
- (guix build utils)
- (guix build python-build-system))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'set-source-file-times-to-1980
- (lambda _
- (let ((circa-1980 (* 10 366 24 60 60)))
- (ftw "."
- (lambda (file stat flag)
- (utime file circa-1980 circa-1980) #t))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'fix-installation
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (with-directory-excursion
+ (string-append (site-packages inputs outputs) "/murmurhash")
+ (delete-file-recursively "tests")
+ (delete-file "mrmr.pyx")
+ (for-each
+ (lambda (file)
+ (chmod file #o555))
+ (find-files "." "\\.so$")))))
+ ;; XXX: Otherwise ModuleNotFoundError, and --pyargs doesn't seem
+ ;; to fix the issue.
+ (replace 'check
+ (lambda args
+ (copy-recursively "murmurhash/tests" "tests")
+ (delete-file-recursively "murmurhash")
+ (with-directory-excursion "tests"
+ (apply (assoc-ref %standard-phases 'check) args)))))))
+ (native-inputs
+ (list python-cython
+ python-murmurhash3
+ python-pytest
+ python-setuptools
+ python-wheel))
(home-page "https://github.com/explosion/murmurhash")
(synopsis "Cython bindings for MurmurHash2")
- (description "This package provides Cython bindings for MurmurHash2.")
+ (description
+ "This package provides Cython bindings for MurmurHash2.")
(license license:expat)))
;; Scooby requires for its test suite a ‘pyvips’ package that is missing its
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index c567d3283a..73ce62b6cc 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -160,11 +160,10 @@
eigen
expat
ffmpeg
- fmt
+ fmt-11
freetype
gdal
gl2ps
- glew
gmsh
hdf5
jsoncpp
@@ -607,32 +606,26 @@ the complexity of that interface. Parallel support depends on the
(define-public python-fenics-ufl
(package
(name "python-fenics-ufl")
- (version "2019.1.0")
+ (version "2025.1.0")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "fenics-ufl" version))
- (sha256
- (base32
- "10dz8x3lm68x2w3kkqcjask38h0zkhhak26jdbkppr8g9y8wny7p"))))
- (build-system python-build-system)
- (inputs
- (list python-numpy))
- (native-inputs
- (list python-pytest))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "py.test" "test"))))))
- (home-page "https://bitbucket.org/fenics-project/ufl/")
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fenics/ufl")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256 (base32 "1ybf6l2nn4ni4a77ad1f36nhd7ddcbbvyc5frdggsmcjdmds9bf3"))))
+ (build-system pyproject-build-system)
+ (inputs (list python-numpy))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (home-page "https://github.com/fenics/ufl")
(synopsis "Unified language for form-compilers")
- (description "The Unified Form Language (UFL) is a domain specific
-language for declaration of finite element discretizations of
-variational forms. More precisely, it defines a flexible interface
-for choosing finite element spaces and defining expressions for weak
-forms in a notation close to mathematical notation.
+ (description
+ "The Unified Form Language (UFL) is a domain specific language for
+declaration of finite element discretizations of variational forms. More
+precisely, it defines a flexible interface for choosing finite element spaces
+and defining expressions for weak forms in a notation close to mathematical
+notation.
UFL is part of the FEniCS Project.")
(license license:lgpl3+)))
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index acbffe3bf9..f2f667ff5d 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -62,6 +62,7 @@
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix scripts)
#:use-module (guix utils)
#:use-module (guix packages))
@@ -78,14 +79,15 @@
(base32 "1mpfrvn122lnaqid1pi99ckpxd6x679b0w91pl003xmdwsfdbcly"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no check target
- #:make-flags
- (list
- (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)))) ; no configure script
+ (list
+ #:tests? #f ; no check target
+ #:make-flags
+ #~(list
+ (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)))) ; no configure script
(home-page "https://tools.suckless.org/scroll/")
(synopsis "Scroll-back buffer program for st")
(description "Scroll is a program that provides a scroll back buffer for
@@ -95,37 +97,36 @@ terminal like @code{st}.")
(define-public tabbed
(package
(name "tabbed")
- (version "0.6")
+ (version "0.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://dl.suckless.org/tools/tabbed-"
version ".tar.gz"))
(sha256
- (base32 "0hhwckyzvsj9aim2l6m69wmvl2n7gzd6b1ly8qjnlpgcrcxfllbn"))))
+ (base32 "1a0842lw666cnx5mx2xqqrad4ipvbz4wxad3pxpyc6blgd2qgkqa"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no check target
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "config.mk"
- (("/usr/local")
- (assoc-ref outputs "out"))
- (("/usr/X11R6")
- (assoc-ref inputs "libx11"))
- (("/usr/include/freetype2")
- (string-append (assoc-ref inputs "freetype")
- "/include/freetype2"))
- (("CC = cc")
- (string-append "CC = " ,(cc-for-target))))))
- (delete 'configure)))) ; no configure script
+ (list
+ #:tests? #f ; no check target
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("/usr/local") #$output)
+ (("/usr/X11R6") #$(this-package-input "libx11"))
+ (("/usr/include/freetype2")
+ (string-append #$(this-package-input "freetype")
+ "/include/freetype2"))
+ (("\\$\\{CC\\}")
+ (string-append #$(cc-for-target))))))
+ (delete 'configure)))) ; no configure script
(inputs
- `(("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("libx11" ,libx11)
- ("libxft" ,libxft)))
+ (list fontconfig
+ freetype
+ libx11
+ libxft))
(home-page "https://tools.suckless.org/tabbed/")
(synopsis "Tab interface for application supporting Xembed")
(description "Tabbed is a generic tabbed frontend to xembed-aware
@@ -212,12 +213,14 @@ It provides the following features:
"0nncvzyipvkkd7zlgzwbjygp82frzs2hvbnk71gxf671np607y94"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no check target
- #:make-flags (list (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)))) ; no configure script
+ (list
+ #:tests? #f ; no check target
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)))) ; no configure script
(synopsis "Command line video editing utilities")
(home-page "https://tools.suckless.org/blind/")
(description
@@ -228,53 +231,49 @@ a custom raw video format with a simple container.")
(define-public dwm
(package
(name "dwm")
- (version "6.5")
+ (version "6.6")
+ (synopsis "Dynamic Window Manager")
(source (origin
- (method url-fetch)
- (uri (string-append "https://dl.suckless.org/dwm/dwm-"
- version ".tar.gz"))
- (sha256
- (base32 "0acpl05rg6rg6nrg3rv4kp388iqzp1n6dhin30a97yzjm6zrxmr1"))))
+ (method url-fetch)
+ (uri (string-append "https://dl.suckless.org/dwm/dwm-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "18q0zjvzsvpm76p2x1xlw163d8wbq44z41n9w94prh46jdnjrz3w"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f
- #:make-flags (list (string-append "FREETYPEINC="
- (assoc-ref %build-inputs "freetype")
- "/include/freetype2"))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda _
- (substitute* "Makefile" (("\\$\\{CC\\}") "gcc"))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
+ (list
+ #:tests? #f
+ #:make-flags
+ #~(list
+ (string-append "FREETYPEINC="
+ #$(this-package-input "freetype")
+ "/include/freetype2"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile" (("\\$\\{CC\\}") #$(cc-for-target)))))
+ (replace 'install
+ (lambda _
(invoke "make" "install"
- (string-append "DESTDIR=" out) "PREFIX="))))
- (add-after 'build 'install-xsession
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Add a .desktop file to xsessions.
- (let* ((output (assoc-ref outputs "out"))
- (xsessions (string-append output "/share/xsessions")))
- (mkdir-p xsessions)
- (with-output-to-file
- (string-append xsessions "/dwm.desktop")
- (lambda _
- (format #t
- "[Desktop Entry]~@
- Name=dwm~@
- Comment=Dynamic Window Manager~@
- Exec=~a/bin/dwm~@
- TryExec=~@*~a/bin/dwm~@
- Icon=~@
- Type=Application~%"
- output)))
- #t))))))
+ (string-append "DESTDIR=" #$output) "PREFIX=")))
+ (add-after 'build 'install-xsession
+ (lambda _
+ ;; Add a .desktop file to xsessions.
+ (let ((apps (string-append #$output "/share/xsessions")))
+ (mkdir-p apps)
+ (make-desktop-entry-file
+ (string-append apps "/dwm.desktop")
+ #:name "dwm"
+ #:generic-name #$synopsis
+ #:exec (string-append #$output "/bin/dwm %U")
+ #:comment
+ `(("en" ,#$synopsis)
+ (#f ,#$synopsis)))))))))
(inputs
(list freetype libx11 libxft libxinerama))
(home-page "https://dwm.suckless.org/")
- (synopsis "Dynamic window manager")
(description
"dwm is a dynamic window manager for X. It manages windows in tiled,
monocle and floating layouts. All of the layouts can be applied dynamically,
@@ -284,25 +283,27 @@ optimising the environment for the application in use and the task performed.")
(define-public dmenu
(package
(name "dmenu")
- (version "5.3")
+ (version "5.4")
(source (origin
(method url-fetch)
(uri (string-append "https://dl.suckless.org/tools/dmenu-"
version ".tar.gz"))
(sha256
(base32
- "0pvr6da1v7hmbnacpgxcxv1sakg1nckmw347xhwrhx1dzpk573qs"))))
+ "0lyldkxshbgh7alz7a50l167pk1d4lcb2rhhhvz81aj710mcxflg"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:make-flags
- (list (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output)
- (string-append "FREETYPEINC="
- (assoc-ref %build-inputs "freetype")
- "/include/freetype2"))
- #:phases
- (modify-phases %standard-phases (delete 'configure))))
+ (list
+ #:tests? #f ; no tests
+ #:make-flags
+ #~(list
+ (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output)
+ (string-append "FREETYPEINC="
+ #$(this-package-input "freetype")
+ "/include/freetype2"))
+ #:phases
+ #~(modify-phases %standard-phases (delete 'configure))))
(inputs
(list freetype libxft libx11 libxinerama))
(home-page "https://tools.suckless.org/dmenu/")
@@ -368,31 +369,31 @@ numbers of user-defined menu items efficiently.")
(define-public st
(package
(name "st")
- (version "0.9.2")
+ (version "0.9.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://dl.suckless.org/st/st-"
version ".tar.gz"))
(sha256
- (base32 "0js9z5kn8hmpxzfmb2g6zsy28zkpg88j3wih5wixc89b8x7ms8bb"))))
+ (base32 "16v4dsjrsh5jwah38ygg8808zc536szwxj1qxm6kswgdrnmzxncy"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:make-flags
- (list (string-append "CC=" ,(cc-for-target))
- (string-append "TERMINFO="
- (assoc-ref %outputs "out")
- "/share/terminfo")
- (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure))))
+ (list
+ #:tests? #f ;no tests
+ #:make-flags
+ #~(list
+ (string-append "CC=" #$(cc-for-target))
+ (string-append "TERMINFO=" #$output "/share/terminfo")
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure))))
(inputs
- `(("libx11" ,libx11)
- ("libxft" ,libxft)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)))
+ (list libx11
+ libxft
+ fontconfig
+ freetype))
(native-inputs
(list ncurses ;provides tic program
pkg-config))
@@ -504,27 +505,27 @@ Vim bindings and Xresource compatibility.")
(base32 "0mrj0kp01bwrgrn4v298g81h6zyq64ijsg790di68nm21f985rbj"))))
(build-system glib-or-gtk-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:make-flags
- (list (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- ;; Use the right file name for dmenu and xprop.
- (add-before 'build 'set-dmenu-and-xprop-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "config.def.h"
- (("dmenu") (search-input-file inputs "/bin/dmenu"))
- (("xprop") (search-input-file inputs "/bin/xprop")))
- #t)))))
+ (list
+ #:tests? #f ; no tests
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ ;; Use the right file name for dmenu and xprop.
+ (add-before 'build 'set-dmenu-and-xprop-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "config.def.h"
+ (("dmenu") (search-input-file inputs "/bin/dmenu"))
+ (("xprop") (search-input-file inputs "/bin/xprop"))))))))
(inputs
- `(("dmenu" ,dmenu)
- ("gcr" ,gcr-3)
- ("glib-networking" ,glib-networking)
- ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("webkitgtk" ,webkitgtk-with-libsoup2)
- ("xprop" ,xprop)))
+ (list dmenu
+ gcr-3
+ glib-networking
+ gsettings-desktop-schemas
+ webkitgtk-with-libsoup2
+ xprop))
(native-inputs
(list pkg-config))
(home-page "https://surf.suckless.org/")
@@ -550,30 +551,31 @@ point surf to another URI by setting its XProperties.")
"0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (delete 'configure) ;no configuration
- (add-before 'build 'patch-farbfeld
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "config.def.h"
- (("2ff") (search-input-file inputs "/bin/2ff")))))
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (string-append out "/share/doc/" ,name "-"
- ,(package-version this-package))))
- (install-file "README.md" doc)))))
- #:tests? #f ;no test suite
- #:make-flags
- (let ((pkg-config (lambda (flag)
- (string-append "$(shell pkg-config " flag " "
- "xft fontconfig x11 libpng)"))))
- (list (string-append "CC="
- ,(cc-for-target))
- (string-append "PREFIX=" %output)
- (string-append "INCS=-I. "
- (pkg-config "--cflags"))
- (string-append "LIBS="
- (pkg-config "--libs") " -lm")))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configuration
+ (add-before 'build 'patch-farbfeld
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "config.def.h"
+ (("2ff") (search-input-file inputs "/bin/2ff")))))
+ (add-after 'install 'install-doc
+ (lambda _
+ (install-file "README.md"
+ (string-append
+ #$output "/share/doc/"
+ #$name
+ "-"
+ #$(package-version this-package))))))
+ #:tests? #f ;no test suite
+ #:make-flags
+ #~(let ((pkg-config (lambda (flag)
+ (string-append "$(shell pkg-config " flag " "
+ "xft fontconfig x11 libpng)"))))
+ (list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output)
+ (string-append "INCS=-I. " (pkg-config "--cflags"))
+ (string-append "LIBS=" (pkg-config "--libs") " -lm")))))
(native-inputs (list pkg-config))
(inputs (list farbfeld libpng libx11 libxft fontconfig))
(synopsis "Plain-text presentation tool")
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index c2cdbd8a03..1b6a38928a 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -486,29 +486,3 @@ additional options for controlling the SSL session.")
. "https://core.tcl-lang.org/tcltls/wiki/Download")
(upstream-name . "tcltls")))
(license license:public-domain)))
-
-(define-public go-github.com-nsf-gothic
- (let ((commit "97dfcc195b9de36c911a69a6ec2b5b2659c05652")
- (revision "0"))
- (package
- (name "go-github.com-nsf-gothic")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/nsf/gothic")
- (commit commit)))
- (sha256
- (base32
- "1lrhbml6r4sh22rrn3m9bck70pv0g0c1diprg7cil90x0jidxczr"))
- (file-name (git-file-name name version))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/nsf/gothic"))
- (propagated-inputs
- (list tk tcl))
- (home-page "https://github.com/nsf/gothic")
- (synopsis "Tcl/Tk Go bindings")
- (description "Gothic contains Go bindings for Tcl/Tk. The package contains
-only one type and one function that can be used to create a Tk interpreter.")
- (license license:expat))))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 2fa8013485..be5823af20 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -452,34 +452,34 @@ internet.")
(define-public libsrtp
(package
(name "libsrtp")
- (version "2.4.2")
+ (version "2.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cisco/libsrtp")
- (commit (string-append "v" version))))
+ (url "https://github.com/cisco/libsrtp")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1gswpjm4jacfxmgglbf8hxi3yzsag4drk4q943p0wkmv21zj8l78"))))
+ "1vjdkss076ihbshc83v11c6qxq8mfqi4c26rl1a96kqa9dpgjqmx"))))
(native-inputs
- (list psmisc ;some tests require 'killall'
+ (list psmisc ;some tests require 'killall'
procps))
(build-system gnu-build-system)
(arguments
- '(#:test-target "runtest"
- #:phases (modify-phases %standard-phases
- (add-after 'build 'build-shared
- (lambda* (#:key (make-flags '()) #:allow-other-keys)
- ;; Build the shared library separately because
- ;; the test runner requires a static build.
- (apply invoke "make" "shared_library" make-flags)
- #t))
- (add-after 'install 'remove-static-library
- (lambda* (#:key outputs #:allow-other-keys)
- (delete-file (string-append (assoc-ref outputs "out")
- "/lib/libsrtp2.a"))
- #t)))))
+ (list
+ #:test-target "runtest"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'build 'build-shared
+ (lambda* (#:key make-flags #:allow-other-keys)
+ ;; Build the shared library separately because
+ ;; the test runner requires a static build.
+ (apply invoke "make" "shared_library" make-flags)))
+ (add-after 'install 'remove-static-library
+ (lambda _
+ (delete-file (string-append #$output
+ "/lib/libsrtp2.a")))))))
(synopsis "Secure RTP (SRTP) Reference Implementation")
(description
"This package provides an implementation of the Secure Real-time Transport
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index d3e4be0894..a41c445e5b 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -1132,30 +1132,6 @@ ACME server (such as Let's Encrypt) implemented as a relatively simple Bash
script.")
(license license:expat)))
-(define-public go-github-com-certifi-gocertifi
- (let ((commit "a5e0173ced670013bfb649c7e806bc9529c986ec")
- (revision "1"))
- (package
- (name "go-github-com-certifi-gocertifi")
- (version (git-version "2018.01.18" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/certifi/gocertifi")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1n9drccl3q1rr8wg3nf60slkf1lgsmz5ahifrglbdrc6har3rryj"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/certifi/gocertifi"))
- (synopsis "X.509 TLS root certificate bundle for Go")
- (description "This package is a Go language X.509 TLS root certificate bundle,
-derived from Mozilla's collection.")
- (home-page "https://certifi.io")
- (license license:mpl2.0))))
-
(define-public s2n
(package
(name "s2n")
diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm
index 116d25875a..12763a99ca 100644
--- a/gnu/packages/tor-browsers.scm
+++ b/gnu/packages/tor-browsers.scm
@@ -72,7 +72,6 @@
#:use-module (gnu packages python)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
- #:use-module (gnu packages sqlite)
#:use-module (gnu packages tor)
#:use-module (gnu packages video)
#:use-module (gnu packages xdisorg)
@@ -116,16 +115,16 @@ Firefox locales.")
;; We copy the official build id, which is defined at
;; tor-browser-build/rbm.conf (browser_release_date).
-(define %torbrowser-build-date "20250722101758")
+(define %torbrowser-build-date "20250818110000")
;; To find the last version, look at https://www.torproject.org/download/.
-(define %torbrowser-version "14.5.5")
+(define %torbrowser-version "14.5.6")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-tor-browser-".
-(define %torbrowser-firefox-version "128.13.0esr-14.5-1-build2")
+(define %torbrowser-firefox-version "128.14.0esr-14.5-1-build2")
;; See tor-browser-build/rbm.conf for the list.
(define %torbrowser-locales (list "ar" "be" "bg" "ca" "cs" "da" "de" "el" "es-ES" "fa"
@@ -140,11 +139,11 @@ Firefox locales.")
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "8600afeb12fdae895c37618e1386c1a1ac2f5308")))
+ (commit "9896e5765c90c763b97135fdda00a08cf08dbddd")))
(file-name "translation-base-browser")
(sha256
(base32
- "1l190sqpbldnsrwqv8y3fbf7l3bf54b17bajswkaqpsgyci2wicy"))))
+ "06638lii8yx8smb192629i5zjp3aly80zvyd3hix12iivcvndqg4"))))
;; See tor-browser-build/projects/translation/config.
(define torbrowser-translation-specific
@@ -152,11 +151,11 @@ Firefox locales.")
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "9fe8a13ee4c69f91cd545dc3c575ca8f4851d58e")))
+ (commit "a58fb6a60d4d1328b7cffcc1e6ded5673f5e4360")))
(file-name "translation-tor-browser")
(sha256
(base32
- "0n3wa1snadhr574rf01kqg18vh66hzv1h7lhwkdps7q9qj7mpgim"))))
+ "0qb0fjxinsd34pfgjzgpf6ry2wssc191yzxncvwrhi1bjlgjw73r"))))
(define torbrowser-assets
;; This is a prebuilt Torbrowser from which we take the assets we need.
@@ -172,7 +171,7 @@ Firefox locales.")
version "/tor-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
- "0gdzd3gm0qs7ypzdrcdqz6byp5lc9byvb3m4xj3sgdd44j0s34dc"))))
+ "1hk4hbs7hc5j6f6fiqgik0087b0yvwl54f6rm4jig2wg41cc44hr"))))
(arguments
(list
#:install-plan
@@ -213,7 +212,7 @@ Browser.")
".tar.xz"))
(sha256
(base32
- "1pm0fi816hzafgv0z52h3n3x355hwjlxgzz89lpzncz9idf9lsqy"))))
+ "16hkibrlzgp430m045w13yl5ixxccyxlqk9qmzsgg0c5wkys6si4"))))
(build-system mozilla-build-system)
(inputs
(list lyrebird
@@ -226,11 +225,9 @@ Browser.")
gdk-pixbuf
glib
gtk+
- ;; UNBUNDLE-ME! graphite2
cairo
pango
freetype
- ;; UNBUNDLE-ME! harfbuzz
libcanberra
libgnome
libjpeg-turbo
@@ -254,9 +251,8 @@ Browser.")
hunspell
libnotify
nspr
- nss-rapid ; requires v. 3.101, so nss won't cut it for now.
+ nss
shared-mime-info
- sqlite
eudev
unzip
zip
@@ -352,12 +348,9 @@ Browser.")
"--with-system-icu"
"--with-system-nspr"
"--with-system-nss"
+ "--with-system-ffi"
- ;; UNBUNDLE-ME! "--with-system-harfbuzz"
- ;; UNBUNDLE-ME! "--with-system-graphite2"
"--enable-system-pixman"
- "--enable-system-ffi"
- ;; UNBUNDLE-ME! "--enable-system-sqlite"
)
#:imported-modules %cargo-utils-modules ;for `generate-all-checksums'
@@ -411,10 +404,7 @@ Browser.")
"media/libvpx"
;; UNBUNDLE-ME! "media/libtremor"
"media/libwebp"
- ;; UNBUNDLE-ME! "gfx/harfbuzz"
- ;; UNBUNDLE-ME! "gfx/graphite2"
"js/src/ctypes/libffi"
- ;; UNBUNDLE-ME! "db/sqlite3"
;; 800Mo of unused tests.
"testing/web-platform"
))))
@@ -800,17 +790,17 @@ attacks on the privacy of Tor users.")
;; We copy the official build id, which can be found there:
;; https://cdn.mullvad.net/browser/update_responses/update_1/release.
-(define %mullvadbrowser-build-date "20250722101758")
+(define %mullvadbrowser-build-date "20250818110000")
;; To find the last version, look at
;; https://mullvad.net/en/download/browser/linux.
-(define %mullvadbrowser-version "14.5.5")
+(define %mullvadbrowser-version "14.5.6")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/mullvadbrowser/<%mullvadbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-mullvad-browser-".
-(define %mullvadbrowser-firefox-version "128.13.0esr-14.5-1-build1")
+(define %mullvadbrowser-firefox-version "128.14.0esr-14.5-1-build2")
;; See tor-browser-build/projects/translation/config.
(define mullvadbrowser-translation-base
@@ -818,11 +808,11 @@ attacks on the privacy of Tor users.")
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "8600afeb12fdae895c37618e1386c1a1ac2f5308")))
+ (commit "9896e5765c90c763b97135fdda00a08cf08dbddd")))
(file-name "translation-base-browser")
(sha256
(base32
- "1l190sqpbldnsrwqv8y3fbf7l3bf54b17bajswkaqpsgyci2wicy"))))
+ "06638lii8yx8smb192629i5zjp3aly80zvyd3hix12iivcvndqg4"))))
;; See tor-browser-build/projects/translation/config.
(define mullvadbrowser-translation-specific
@@ -850,7 +840,7 @@ attacks on the privacy of Tor users.")
version "/mullvad-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
- "1z5g5l3bikpl2vlps641fpm2lps672ci0vx002blvssn55iv22iz"))))
+ "08wkx9f5l03la6ny1f0igxcmffrw80pl7i7c8lrh5095wnsxwim1"))))
(arguments
(list
#:install-plan
@@ -893,7 +883,7 @@ Mullvad Browser.")
%mullvadbrowser-firefox-version ".tar.xz"))
(sha256
(base32
- "1d8zs5mziig1vs385rqr8xmxyklf9aqbsk3lmqxc0p2ldgq6ygll"))))
+ "0djqmq1hw6mf8ww2yb3yga7hyqz9ims083sh5m0xi0yc9l4clmfg"))))
(arguments
(substitute-keyword-arguments (package-arguments mullvadbrowser-base)
((#:phases phases)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 663048c86f..0f1c7509a7 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
-;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
@@ -5584,11 +5584,9 @@ Cloud.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
- (guile (assoc-ref inputs "guile"))
(guile-effective-version
(read-line
- (open-pipe* OPEN_READ
- (string-append guile "/bin/guile")
+ (open-pipe* OPEN_READ (which "guile")
"-c" "(display (effective-version))")))
(scm (string-append out "/share/guile/site/"
guile-effective-version))
@@ -5604,13 +5602,11 @@ Cloud.")
`("PATH" ":" prefix
,(cons*
bin
- (map (lambda (input)
- (string-append
- (assoc-ref inputs input)
- "/bin"))
- '("ephemeralpg"
- "util-linux"
- "postgresql"))))
+ (map (lambda (file)
+ (search-input-file inputs file))
+ '("/bin/pg_tmp" ;ephemeralpg
+ "/bin/ionice" ;util-linux
+ "/bin/psql")))) ;postgresql
`("GUILE_LOAD_PATH" ":" prefix
(,scm ,(getenv "GUILE_LOAD_PATH")))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix
@@ -5637,7 +5633,9 @@ Cloud.")
guile-squee
guile-lzlib))
(native-inputs
- (list (lookup-package-native-input guix "guile")
+ ;; Use the highest Guile version found among dependencies to ensure .go
+ ;; files can be loaded.
+ (list (lookup-package-native-input guile-fibers-next "guile")
autoconf
automake
emacs-minimal
@@ -9756,6 +9754,21 @@ for ZIM files.")
It contains the code shared by all Kiwix ports.")
(license license:gpl3)))
+(define-public kiwix-lib-13
+ (package
+ (inherit kiwix-lib)
+ (name "kiwix-lib")
+ (version "13.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kiwix/kiwix-lib/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0mgzmqar70rj83x27a4zh7qr6yl5pi95g6i3fvvxysdjy76v18qc"))))))
+
(define-public kiwix-desktop
(package
(name "kiwix-desktop")
@@ -9826,7 +9839,7 @@ offline (such as Wikipedia), without any access to Internet.")
(inputs
(list curl
icu4c
- kiwix-lib
+ kiwix-lib-13
libmicrohttpd
libzim
pugixml
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index c5fd41269e..bc361dbe53 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -1360,7 +1360,7 @@ for and start applications.")
font-dejavu ;default font
greybird-gtk-theme
hicolor-icon-theme
- mate-polkit-for-xfce
+ mate-polkit
mousepad
ristretto
shared-mime-info
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 6b3f66095c..82484d652d 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -1890,4 +1890,186 @@ toolchain. Among other features it provides
(properties `((max-silent-time . 9600)
,@(clang-compiler-cpu-architectures "19")))))
+
+;;;
+;;; Bootstrap path for Zig 0.15.
+;;;
+
+(define zig-0.14.0-687
+ (let ((commit "cc047fdd959edb260f7a6e305ccad53f185ece66")
+ (revision "687")
+ (base zig-0.14))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "0wjswx1cvql8pxpdrglr3h24v5rffnq3llr0f08hj8g959f6ffvs"))
+ ;; zig2
+ (arguments (package-arguments zig-0.10.0-851))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (replace "clang" clang-20)
+ (replace "lld" lld-20)))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "llvm" llvm-20)
+ (replace "zig" `(,base "zig1"))))
+ (properties `((max-silent-time . 9600)
+ ,@(clang-compiler-cpu-architectures "20"))))))
+
+(define zig-0.14.0-877
+ (let ((commit "0adcfd60f4fcfd01c74a6477cbcef187ce06f533")
+ (revision "877")
+ (base zig-0.14.0-687))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "1yyar3cms02kzf4z20sbw09awqvz0kbm9fx8g0kgb8hp1f4blf3d"))
+ ;; zig1
+ (arguments (package-arguments zig-0.10.0-747))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "out")))))))
+
+(define zig-0.14.0-930
+ (let ((commit "40d11cc25a469dc6bb0f9fbba4d05e7210a23b3f")
+ (revision "930")
+ (base zig-0.14.0-877))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "06x6zi8hcl04gmql96vyms0zch94xi1all5s1kjsnbifixd99bgy"))
+ ;; zig2
+ (arguments (package-arguments zig-0.10.0-851))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "zig1")))))))
+
+(define zig-0.14.0-934
+ (let ((commit "4ba0e7d424a7c0af55c8085c659e9205560d3095")
+ (revision "934")
+ (base zig-0.14.0-930))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "17zaw7bk6wli6wpsr5zlpn1b39818h034l5bpnsxfslqqg09rsd8"))
+ ;; zig1
+ (arguments (package-arguments zig-0.10.0-747))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "out")))))))
+
+(define zig-0.14.0-1091
+ (let ((commit "87ce83d5a5854b63b7cef5c6209742ee1a524107")
+ (revision "1091")
+ (base zig-0.14.0-934))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "18irwcr63l1hf2g7vv9qajgllsp7qwzsv5ijm9x8l51agm6harf4"))
+ ;; zig2
+ (arguments (package-arguments zig-0.10.0-851))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "zig1")))))))
+
+(define zig-0.14.0-1197
+ (let ((commit "a023b9b22b6593ebd5a86736a4a9955840d1bfa1")
+ (revision "1197")
+ (base zig-0.14.0-1091))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "08c1m6kwq7cqg5s6j0ypp8ygvxj21da5is0w7y17sw27fjqrlhgr"))
+ ;; zig1
+ (arguments (package-arguments zig-0.10.0-747))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "out")))))))
+
+(define zig-0.15-libc-abi-tools
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ziglang/libc-abi-tools")
+ (commit "21993a6036cc165485b20229589340dff9d4fc3c")))
+ (file-name "libc-abi-tools")
+ (sha256
+ (base32 "0miwb0zfgfmm4bh2bs7982wpk0wp5vj2mz10x9c3m8fw7zzcyvbh"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(substitute* "netbsd/consolidate.zig"
+ ((".write_buffer = buffer") ".write_buffer = &buffer")))))
+
+(define-public zig-0.15
+ (package
+ (inherit zig-0.14)
+ (name "zig")
+ (version "0.15.1")
+ (source
+ (origin
+ (inherit (zig-source
+ version version
+ "1cp18plf0x5wip4rnxiqavaqnqxnqzhipb34in6zd3y7wihwjmj4"))
+ (patches
+ (search-patches
+ "zig-0.14-use-baseline-cpu-by-default.patch"
+ "zig-0.14-use-system-paths.patch"
+ "zig-0.15-fix-runpath.patch"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments zig-0.14)
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (delete 'install-glibc-abilists)
+ ;; TODO: Remove newly-added abilists files in zig-source.
+ (add-before 'check 'install-abilists
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (mkdir-p "/tmp/libc-abi-tools")
+ (with-directory-excursion "/tmp/libc-abi-tools"
+ (copy-recursively
+ (dirname (search-input-file
+ (or native-inputs inputs) "list.zig"))
+ ".")
+ (for-each make-file-writable (find-files "."))
+ (for-each
+ (lambda (libc)
+ (with-directory-excursion libc
+ (invoke (string-append #$output "/bin/zig")
+ "run" "consolidate.zig")
+ (install-file
+ "abilists"
+ (string-append #$output "/lib/zig/libc/" libc))))
+ '("freebsd"
+ "glibc"
+ "netbsd")))))))))
+ (inputs
+ (modify-inputs (package-inputs zig-0.14)
+ (replace "clang" clang-20)
+ (replace "lld" lld-20)))
+ (native-inputs
+ (modify-inputs (package-native-inputs zig-0.14)
+ (delete "glibc-abi-tool")
+ (prepend zig-0.15-libc-abi-tools)
+ (replace "llvm" llvm-20)
+ (replace "zig" `(,zig-0.14.0-1197 "zig1"))))
+ (properties `((max-silent-time . 9600)
+ ,@(clang-compiler-cpu-architectures "20")))))
+
(define-public zig zig-0.13)
diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm
index fef8915439..c905d35a34 100644
--- a/gnu/services/dict.scm
+++ b/gnu/services/dict.scm
@@ -29,7 +29,6 @@
#:use-module (gnu services shepherd)
#:use-module (gnu system shadow)
#:use-module ((gnu packages admin) #:select (shadow))
- #:use-module (gnu packages dico)
#:use-module (gnu packages dictionaries)
#:autoload (gnu build linux-container) (%namespaces)
#:autoload (gnu system file-systems) (file-system-mapping)
diff --git a/gnu/tests/containers.scm b/gnu/tests/containers.scm
index 089303643c..1a442cddc6 100644
--- a/gnu/tests/containers.scm
+++ b/gnu/tests/containers.scm
@@ -46,9 +46,6 @@
%test-oci-service-rootless-podman
%test-oci-service-docker))
-(define lower-oci-image-state
- (@@ (gnu services containers) lower-oci-image-state))
-
(define %rootless-podman-os
(simple-operating-system
@@ -72,48 +69,13 @@
(supplementary-groups '("wheel" "netdev" "cgroup"
"audio" "video")))))))
-(define %oci-tarball
- (lower-oci-image-state
- "guile-guest"
- (packages->manifest
- (list
- guile-3.0 guile-json-3
- (package
- (name "guest-script")
- (version "0")
- (source #f)
- (build-system trivial-build-system)
- (arguments
- (list
- #:guile guile-3.0
- #:builder
- #~(let ((out #$output))
- (mkdir out)
- (call-with-output-file (string-append out "/a.scm")
- (lambda (port)
- (display "(display \"hello world\n\")" port))))))
- (synopsis "Display hello world using Guile")
- (description "This package displays the text \"hello world\" on the
-standard output device and then enters a new line.")
- (home-page #f)
- (license license:public-domain))))
- '(#:entry-point "bin/guile"
- #:localstatedir? #t
- #:extra-options (#:image-tag "guile-guest")
- #:symlinks (("/bin/Guile" -> "bin/guile")
- ("aa.scm" -> "a.scm")))
- "guile-guest"
- (%current-target-system)
- (%current-system)
- #f))
-
-(define (run-rootless-podman-test)
+(define (run-rootless-podman-test oci-tarball)
(define os
(marionette-operating-system
(operating-system-with-gc-roots
%rootless-podman-os
- (list %oci-tarball))
+ (list oci-tarball))
#:imported-modules '((gnu services herd)
(guix combinators))))
@@ -292,7 +254,7 @@ standard output device and then enters a new line.")
(let* ((loaded (slurp ,(string-append #$podman
"/bin/podman")
"load" "-i"
- ,#$%oci-tarball))
+ ,#$oci-tarball))
(repository&tag "localhost/guile-guest:latest")
(response1 (slurp
,(string-append #$podman "/bin/podman")
@@ -345,11 +307,49 @@ standard output device and then enters a new line.")
(gexp->derivation "rootless-podman-test" test))
+(define (build-tarball&run-rootless-podman-test)
+ (mlet* %store-monad
+ ((_ (set-grafting #f))
+ (guile (set-guile-for-build (default-guile)))
+ (guest-script-package ->
+ (package
+ (name "guest-script")
+ (version "0")
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments `(#:guile ,guile-3.0
+ #:builder
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (call-with-output-file (string-append out "/a.scm")
+ (lambda (port)
+ (display "(display \"hello world\n\")" port)))
+ #t)))
+ (synopsis "Display hello world using Guile")
+ (description "This package displays the text \"hello world\" on the
+standard output device and then enters a new line.")
+ (home-page #f)
+ (license license:public-domain)))
+ (profile (profile-derivation (packages->manifest
+ (list guile-3.0 guile-json-3
+ guest-script-package))
+ #:hooks '()
+ #:locales? #f))
+ (tarball (pack:docker-image
+ "docker-pack" profile
+ #:symlinks '(("/bin/Guile" -> "bin/guile")
+ ("aa.scm" -> "a.scm"))
+ #:extra-options
+ '(#:image-tag "guile-guest")
+ #:entry-point "bin/guile"
+ #:localstatedir? #t)))
+ (run-rootless-podman-test tarball)))
+
(define %test-rootless-podman
(system-test
(name "rootless-podman")
(description "Test rootless Podman service.")
- (value (run-rootless-podman-test))))
+ (value (build-tarball&run-rootless-podman-test))))
(define %oci-network
diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm
index 4fc50a99a7..9fee3905f0 100644
--- a/gnu/tests/docker.scm
+++ b/gnu/tests/docker.scm
@@ -26,7 +26,6 @@
#:use-module (gnu system image)
#:use-module (gnu system vm)
#:use-module (gnu services)
- #:use-module (gnu services containers)
#:use-module (gnu services dbus)
#:use-module (gnu services networking)
#:use-module (gnu services docker)
@@ -49,9 +48,6 @@
%test-docker-system
%test-oci-container))
-(define lower-oci-image-state
- (@@ (gnu services containers) lower-oci-image-state))
-
(define %docker-os
(simple-operating-system
(service dhcpcd-service-type)
@@ -61,41 +57,6 @@
(service containerd-service-type)
(service docker-service-type)))
-(define %docker-tarball
- (lower-oci-image-state
- "guile-guest"
- (packages->manifest
- (list
- guile-3.0 guile-json-3
- (package
- (name "guest-script")
- (version "0")
- (source #f)
- (build-system trivial-build-system)
- (arguments
- (list
- #:guile guile-3.0
- #:builder
- #~(let ((out #$output))
- (mkdir out)
- (call-with-output-file (string-append out "/a.scm")
- (lambda (port)
- (display "(display \"hello world\n\")" port))))))
- (synopsis "Display hello world using Guile")
- (description "This package displays the text \"hello world\" on the
-standard output device and then enters a new line.")
- (home-page #f)
- (license license:public-domain))))
- '(#:entry-point "bin/guile"
- #:localstatedir? #t
- #:extra-options (#:image-tag "guile-guest")
- #:symlinks (("/bin/Guile" -> "bin/guile")
- ("aa.scm" -> "a.scm")))
- "guile-guest"
- (%current-target-system)
- (%current-system)
- #f))
-
(define (run-docker-test docker-tarball)
"Load DOCKER-TARBALL as Docker image and run it in a Docker container,
inside %DOCKER-OS."
@@ -212,7 +173,40 @@ inside %DOCKER-OS."
(gexp->derivation "docker-test" test))
(define (build-tarball&run-docker-test)
- (run-docker-test %docker-tarball))
+ (mlet* %store-monad
+ ((_ (set-grafting #f))
+ (guile (set-guile-for-build (default-guile)))
+ (guest-script-package ->
+ (package
+ (name "guest-script")
+ (version "0")
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments `(#:guile ,guile-3.0
+ #:builder
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (call-with-output-file (string-append out "/a.scm")
+ (lambda (port)
+ (display "(display \"hello world\n\")" port)))
+ #t)))
+ (synopsis "Display hello world using Guile")
+ (description "This package displays the text \"hello world\" on the
+standard output device and then enters a new line.")
+ (home-page #f)
+ (license license:public-domain)))
+ (profile (profile-derivation (packages->manifest
+ (list guile-3.0 guile-json-3
+ guest-script-package))
+ #:hooks '()
+ #:locales? #f))
+ (tarball (pack:docker-image
+ "docker-pack" profile
+ #:symlinks '(("/bin/Guile" -> "bin/guile")
+ ("aa.scm" -> "a.scm"))
+ #:entry-point "bin/guile"
+ #:localstatedir? #t)))
+ (run-docker-test tarball)))
(define %test-docker
(system-test
@@ -221,22 +215,8 @@ inside %DOCKER-OS."
(value (build-tarball&run-docker-test))))
-(define %docker-system-tarball
- (lower-oci-image-state
- "guix-system-guest"
- (operating-system
- (inherit (simple-operating-system))
- ;; Use locales for a single libc to
- ;; reduce space requirements.
- (locale-libcs (list glibc)))
- '()
- "guix-system-guest"
- (%current-target-system)
- (%current-system)
- #f))
-
(define (run-docker-system-test tarball)
- "Load TARBALL as Docker image and run it in a Docker container,
+ "Load DOCKER-TARBALL as Docker image and run it in a Docker container,
inside %DOCKER-OS."
(define os
(marionette-operating-system
@@ -353,15 +333,21 @@ inside %DOCKER-OS."
(gexp->derivation "docker-system-test" test))
-(define (build-tarball&run-docker-system-test)
- (run-docker-system-test %docker-system-tarball))
-
(define %test-docker-system
(system-test
(name "docker-system")
(description "Run a system image as produced by @command{guix system
docker-image} inside Docker.")
- (value (build-tarball&run-docker-system-test))))
+ (value (with-monad %store-monad
+ (>>= (lower-object
+ (system-image (os->image
+ (operating-system
+ (inherit (simple-operating-system))
+ ;; Use locales for a single libc to
+ ;; reduce space requirements.
+ (locale-libcs (list glibc)))
+ #:type docker-image-type)))
+ run-docker-system-test)))))
(define %oci-os