diff options
author | Efraim Flashner <[email protected]> | 2023-01-30 11:33:18 +0200 |
---|---|---|
committer | Efraim Flashner <[email protected]> | 2023-01-30 12:39:40 +0200 |
commit | 4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch) | |
tree | 9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/jami.scm | |
parent | edb8c09addd186d9538d43b12af74d6c7aeea082 (diff) | |
parent | 595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff) |
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts:
doc/guix.texi
gnu/local.mk
gnu/packages/admin.scm
gnu/packages/base.scm
gnu/packages/chromium.scm
gnu/packages/compression.scm
gnu/packages/databases.scm
gnu/packages/diffoscope.scm
gnu/packages/freedesktop.scm
gnu/packages/gnome.scm
gnu/packages/gnupg.scm
gnu/packages/guile.scm
gnu/packages/inkscape.scm
gnu/packages/llvm.scm
gnu/packages/openldap.scm
gnu/packages/pciutils.scm
gnu/packages/ruby.scm
gnu/packages/samba.scm
gnu/packages/sqlite.scm
gnu/packages/statistics.scm
gnu/packages/syndication.scm
gnu/packages/tex.scm
gnu/packages/tls.scm
gnu/packages/version-control.scm
gnu/packages/xml.scm
guix/build-system/copy.scm
guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/jami.scm')
-rw-r--r-- | gnu/packages/jami.scm | 152 |
1 files changed, 102 insertions, 50 deletions
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index ae4fb653bd..b74cdff0c7 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -45,8 +45,10 @@ #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages telephony) + #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) #:use-module (gnu packages version-control) @@ -58,6 +60,7 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system qt) #:use-module (guix download) @@ -66,7 +69,7 @@ #:use-module (guix packages) #:use-module (guix utils)) -(define %jami-version "20220825.0828.c10f01f") +(define %jami-version "20221220.0956.79e1207") (define %jami-sources ;; Return an origin object of the tarball release sources archive of the @@ -90,8 +93,9 @@ "plugins")))) (sha256 (base32 - "1iv06jb66g206qxm75v7rc3mqvrml1028avflsj11chj8jh63j14")) - (patches (search-patches "jami-fix-crash-on-block-contact.patch")))) + "0g5709rmb9944s0ij9g4pm1b871f5z0s5nawvm10z14wx3y1np8m")) + (patches (search-patches "jami-disable-integration-tests.patch" + "jami-libjami-headers-search.patch")))) ;; Jami maintains a set of patches for some key dependencies (currently ;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream. @@ -113,8 +117,8 @@ patches)))) (define-public pjproject-jami - (let ((commit "5e478bbf8692f43059de9c6ad654b377359baaa0") - (revision "0")) + (let ((commit "513a3f14c44b2c2652f9219ec20dea64b236b713") + (revision "1")) (package (inherit pjproject) (name "pjproject-jami") @@ -133,7 +137,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0n9hyqr57hhbmq35iqq5ihavj22gxzsspv0f8i6ajxwd4029nmcl")))) + "1vzfpiwhd96a9ibk398z922a60j18xd7mblsmi6355r7ccj2aw7p")))) (arguments (substitute-keyword-arguments (package-arguments pjproject) ((#:phases phases '%standard-phases) @@ -413,7 +417,10 @@ (substitute* "tests/fate/lavf-container.mak" (("mov mov_rtphint ismv") "mov ismv") - (("fate-lavf-mov_rtphint:.*") "")))))))))) + (("fate-lavf-mov_rtphint:.*") "")))))))) + (inputs (modify-inputs (package-inputs ffmpeg-5) + (replace "libvpx" libvpx-next) + (replace "libx264" libx264-next))))) (define-public libjami (package @@ -424,28 +431,26 @@ (build-system gnu-build-system) (arguments (list - ;; The test suite fails to link when building libjami as a shared - ;; library: "sip_account/sip_empty_offer.cpp:228:1: error: no - ;; declaration matches ‘void - ;; jami::test::SipEmptyOfferTest::onCallStateChange(const string&, const - ;; string&, jami::test::CallData&)’". - #:tests? #f ;; The agent links the daemon binary with libguile, which enables the ;; execution of test plans described in Scheme. It may be useful in ;; user scripts too, until more general purpose Scheme bindings are made ;; available (see: test/agent/README.md). - #:configure-flags #~(list "--enable-agent" - "--enable-debug" - ;; Disable static libraries to avoid - ;; installing a 98 MiB archive. - "--disable-static") + #:configure-flags #~(list "--enable-agent" "--enable-debug") #:make-flags #~(list "V=1") ;build verbosely #:phases #~(modify-phases %standard-phases (add-after 'unpack 'change-directory/maybe (lambda _ ;; Allow building from the tarball or a git checkout. - (false-if-exception (chdir "daemon"))))))) + (false-if-exception (chdir "daemon")))) + (add-after 'install 'delete-static-libraries + ;; Remove 100+ MiB of static libraries. "--disable-static" cannot + ;; be used as the test suite requires access to private symbols + ;; not included in the shared library. + (lambda _ + (for-each delete-file + (find-files (string-append #$output "/lib") + "\\.a$"))))))) (inputs (list alsa-lib asio @@ -485,10 +490,6 @@ protocols, as well as decentralized calling using P2P-DHT.") (home-page "https://jami.net/") (license license:gpl3+))) -;;; Remove when 2023 comes. -(define-public libring - (deprecated-package "libring" libjami)) - (define-public jami (package (name "jami") @@ -499,21 +500,14 @@ protocols, as well as decentralized calling using P2P-DHT.") (arguments (list #:qtbase qtbase - #:tests? #f ;see comment below #:configure-flags - ;; The test suite fails to build with: - ;; "../../../client-qt/src/app/utils.h:29:10: fatal error: QLabel: No - ;; such file or directory". - #~(list "-DENABLE_TESTS=OFF" - "-DWITH_WEBENGINE=OFF" ;reduce transitive closure size by 450 MiB + #~(list "-DENABLE_TESTS=ON" + ;; Disable the webengine since it grows the closure size by + ;; about 450 MiB and requires more resources. + "-DWITH_WEBENGINE=OFF" ;; Use libwrap to link directly to libjami instead of ;; communicating via D-Bus to jamid, the Jami daemon. - "-DENABLE_LIBWRAP=ON" - (string-append "-DLIBJAMI_XML_INTERFACES_DIR=" - #$(this-package-input "libjami") - "/share/dbus-1/interfaces") - (string-append "-DLIBJAMI_INCLUDE_DIR=" - #$(this-package-input "libjami") "/include/jami")) + "-DENABLE_LIBWRAP=ON") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'change-directory/maybe @@ -529,14 +523,31 @@ protocols, as well as decentralized calling using P2P-DHT.") (string-append "const char VERSION_STRING[] = \"" #$version "\";\n" anchor))))) - (add-after 'change-directory/maybe 'patch-source - (lambda _ - (substitute* "src/libclient/CMakeLists.txt" - ;; Fix submitted upstream (see: - ;; https://review.jami.net/c/jami-client-qt/+/21830). - (("target_link_libraries\\(\\$\\{LIBCLIENT_NAME} qtwrapper.*" all) - (string-append - all " target_link_libraries(${LIBCLIENT_NAME} avutil)\n")))))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "QT_QUICK_BACKEND" "software") + ;; The tests require a writable HOME. + (setenv "HOME" "/tmp") + + (display "Running unittests...\n") + (invoke "tests/unittests" "-mutejamid") + + ;; XXX: There are currently multiple failures with the + ;; functional tests (see: + ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883), + ;; so the code below is disabled for now. + ;; + ;; (display "Running functional tests...\n") + ;; ;; This is to allow building from the source tarball or + ;; ;; directly from the git repository. + ;; (let ((tests-qml (if (file-exists? "../client-qt/tests") + ;; "../client-qt/tests/qml" + ;; "../tests/qml"))) + ;; (invoke "tests/qml_tests" "-mutejamid" + ;; "-input" tests-qml)) + )))))) (native-inputs (list googletest pkg-config @@ -544,11 +555,14 @@ protocols, as well as decentralized calling using P2P-DHT.") qttools doxygen graphviz + gsettings-desktop-schemas ;for tests vulkan-headers)) (inputs (list ffmpeg-jami + glib ;for integration with GNOME libjami libnotify + libxcb libxkbcommon network-manager qrencode @@ -568,10 +582,48 @@ It supports the SIP and IAX protocols, as well as decentralized calling using P2P-DHT.") (license license:gpl3+))) -;;; Remove when 2023 comes. -(define-public jami-gnome - (deprecated-package "jami-gnome" jami)) - -;;; Remove when 2023 comes. -(define-public jami-qt - (deprecated-package "jami-qt" jami)) +(define-public jami-docs + ;; There aren't any tags, so use the latest commit. + (let ((revision "0") + (commit "b00574bcc46538c4b405b5edb3b43bf5404ff511")) + (package + (name "jami-docs") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.jami.net/savoirfairelinux/jami-docs") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0iayi6yrb6djk0l2dwdxzlsga9c18ra8adplh8dad3zjdi75wnsq")))) + (build-system copy-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'build + (lambda _ + (invoke "make" "info" "html" "man" "LANGS=" + "-j" (number->string + (parallel-job-count)))))) + #:install-plan + ;; TODO: Install localized info manuals and HTML. + ''(("_build/out/texinfo/jami.info" "share/info/") + ("_build/out/html" "share/doc/jami/") + ("_build/out/man/jami.1" "share/man/man1/")))) + (native-inputs + (list python + python-myst-parser + python-sphinx + python-sphinx-rtd-theme + texinfo)) + (home-page "https://git.jami.net/") + (synopsis "Documentation for Jami") + (description "This package contains the documentation of Jami. Jami is +a secure and distributed voice, video and chat communication platform that +requires no centralized server and leaves the power of privacy in the hands of +the user. It supports the SIP and IAX protocols, as well as decentralized +calling using P2P-DHT.") + (license license:fdl1.3+)))) |