[PATCH 0/9] Jami update and refactor

  • Done
  • quality assurance status badge
Details
3 participants
  • Christopher Baines
  • maxim.cournoyer
  • Jan Wielkiewicz
Owner
unassigned
Submitted by
Jan Wielkiewicz
Severity
normal
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:34
(address . guix-patches@gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706153442.1843-1-tona_kosmicznego_smiecia@interia.pl
Hi,

these commits update Jami to 20200702, switch fetch method to git,
because the tarballs were unstable, add missing inputs and that's
it.

Jan Wielkiewicz (9):
gnu: libring: Fetch from git, update to 20200702-guix.
gnu: libringclient: Fetch from git, update to 20200702-guix.
gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply
patches from the new libring source.
gnu: jami: Fetch from git, update to 20200702-guix.
gnu: pjproject-jami: Make sure phases are run in order.
gnu: jami: Add libnm as input.
gnu: libringclient: Do not propagate qtbase in libringclient.
gnu: jami: Fix compilation by providing necessary webchat files.
gnu: pjproject-jami: Fix assertion by disabling debugging.

gnu/packages/jami.scm | 285 ++++++++++++++++++++++++++++--------------
1 file changed, 189 insertions(+), 96 deletions(-)


Jan Wielkiewicz

--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 3/9] gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply patches from the new libring source.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-3-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm:
(libring-source): [without-contrib] is now true by default.
(jami-apply-dependency-patches): Do not invoke tar,
patches are now fetched from git.
Apply "--ignore-whitespace" to patch to prevent failing.
(pjproject-jami)[native-inputs]: Use (libring-source) procedure instead of
(jami-source).
[arguments]: Add new patches.
(ffmpeg-jami)[native-inputs]: Use (libring-source) procedure instead of
(jami-source).
---
gnu/packages/jami.scm | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index ef2a74abb3..4531c68f5c 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -67,7 +67,7 @@
(define %libring-commit "0e36d0b352d543437f0f744230c2eb8c0bc77f36")
(define %libring-revision "0")
-(define* (libring-source #:key without-contrib)
+(define* (libring-source #:key (without-contrib #t))
(origin
(method git-fetch)
(uri (git-reference
@@ -92,16 +92,13 @@
;; package easy.
(define jami-apply-dependency-patches
'(lambda* (#:key inputs dep-name patches)
- (let ((patches-directory "sfl-patches"))
- (mkdir-p patches-directory)
- (invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches")
- "-C" patches-directory
- "--strip-components=5"
- (string-append "ring-project/daemon/contrib/src/"
- dep-name))
+ (let ((patches-directory (string-append
+ (assoc-ref inputs "sfl-patches")
+ "/contrib/src/" dep-name)))
(for-each
(lambda (file)
- (invoke "patch" "--force" "-p1" "-i"
+ (invoke "patch" "--force"
+ "--ignore-whitespace" "-p1" "-i"
(string-append patches-directory "/"
file ".patch")))
patches))))
@@ -111,7 +108,7 @@
(inherit pjproject)
(name "pjproject-jami")
(native-inputs
- `(("sfl-patches" ,(jami-source))
+ `(("sfl-patches" ,(libring-source #:without-contrib #f))
,@(package-native-inputs pjproject)))
(arguments
`(#:tests? #f
@@ -174,7 +171,9 @@
"0006-ignore_ipv6_on_transport_check"
"0007-pj_ice_sess"
"0008-fix_ioqueue_ipv6_sendto"
- "0009-add-config-site"))
+ "0009-add-config-site"
+ "0010-fix-pkgconfig"
+ "0011-fix-tcp-death-detection"))
#t)))
;; TODO: We could use substitute-keyword-arguments instead of
;; repeating the phases from pjproject, but somehow it does
@@ -414,7 +413,7 @@
(inherit ffmpeg)
(name "ffmpeg-jami")
(native-inputs
- `(("sfl-patches" ,(jami-source))
+ `(("sfl-patches" ,(libring-source #:without-contrib #f))
("libiconv" ,libiconv)
,@(package-native-inputs ffmpeg)))
(supported-systems '("x86_64-linux" "i686-linux"
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 5/9] gnu: pjproject-jami: Make sure phases are run in order.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-5-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (pjproject-jami)[arguments]:
Add 'apply-patches after 'make-git-checkout-writable.
---
gnu/packages/jami.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a6ce1aaa3f..a45b056d51 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -153,7 +153,7 @@
(lambda _
(for-each make-file-writable (find-files "."))
#t))
- (add-after 'unpack 'apply-patches
+ (add-after 'make-git-checkout-writable 'apply-patches
(lambda* (#:key inputs #:allow-other-keys)
(let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
;; Comes from
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 2/9] gnu: libringclient: Fetch from git, update to 20200702-guix.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-2-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm
(libringclient):
[revision, commit]: New variables.
Do not inherit from (libring).
[version]: Use (%jami-version, revision, commit).
[source]: Fetch from git.
---
gnu/packages/jami.scm | 65 ++++++++++++++++++++++++-------------------
1 file changed, 36 insertions(+), 29 deletions(-)

Toggle diff (83 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index d94a162772..ef2a74abb3 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -516,40 +516,47 @@ functionality.")
(license license:gpl3+)))
(define-public libringclient
- (package
- (inherit libring)
- (name "libringclient")
- (build-system cmake-build-system)
- (propagated-inputs
- `(("libring" ,libring) ; For 'dring'.
- ("qtbase" ,qtbase) ; Qt is included in several installed headers.
- ("qttools" ,qttools)))
- (arguments
- `(#:tests? #f ; There is no testsuite.
- #:configure-flags
- (list (string-append "-DRING_BUILD_DIR="
- (assoc-ref %build-inputs "libring") "/include"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "lrc")
- #t))
- (add-before 'configure 'fix-dbus-interfaces-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "CMakeLists.txt"
- (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
- (string-append (assoc-ref inputs "libring")
- dbus-interfaces-path-suffix))))))))
- (synopsis "Distributed multimedia communications platform")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+ (let ((commit "db943766917eba7be3a6f89d41794c2d26363ab7")
+ (revision "0"))
+ (package
+ (name "libringclient")
+ (version (git-version %jami-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/ring-lrc")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
+ (build-system cmake-build-system)
+ (propagated-inputs
+ `(("libring" ,libring) ; For 'dring'.
+ ("qtbase" ,qtbase) ; Qt is included in several installed headers.
+ ("qttools" ,qttools)))
+ (arguments
+ `(#:tests? #f ; There is no testsuite.
+ #:configure-flags
+ (list (string-append "-DRING_BUILD_DIR="
+ (assoc-ref %build-inputs "libring") "/include"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-dbus-interfaces-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
+ (string-append (assoc-ref inputs "libring")
+ dbus-interfaces-path-suffix))))))))
+ (synopsis "Distributed multimedia communications platform")
+ (description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides a library common to all Jami clients.")
- (home-page "https://jami.net")
- (license license:gpl3+)))
+ (home-page "https://jami.net")
+ (license license:gpl3+))))
(define-public jami
(package
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 6/9] gnu: jami: Add libnm as input.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-6-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (jami)[inputs]: Add libnm.
---
gnu/packages/jami.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a45b056d51..041955f297 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -582,6 +582,7 @@ This package provides a library common to all Jami clients.")
("clutter" ,clutter)
("clutter-gtk" ,clutter-gtk)
("libcanberra" ,libcanberra)
+ ("libnm" ,network-manager)
("webkitgtk" ,webkitgtk)
("sqlite" ,sqlite)))
(native-inputs
@@ -600,7 +601,6 @@ This package provides a library common to all Jami clients.")
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
-
This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+))))
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 4/9] gnu: jami: Fetch from git, update to 20200702-guix.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-4-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm:
(jami)[revision, commit]: New variables.
[version]: Use [%jami-version, revision, commit].
[source]: Fetch from git.
[arguments]: Do not change the directory.
---
gnu/packages/jami.scm | 76 +++++++++++++++++++++++--------------------
1 file changed, 41 insertions(+), 35 deletions(-)

Toggle diff (94 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 4531c68f5c..a6ce1aaa3f 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -558,46 +558,52 @@ This package provides a library common to all Jami clients.")
(license license:gpl3+))))
(define-public jami
- (package
- (inherit libring)
- (name "jami")
- (build-system cmake-build-system)
- (inputs
- `(("libringclient" ,libringclient)
- ("gtk+" ,gtk+)
- ("qrencode" ,qrencode)
- ("libnotify" ,libnotify)
- ("clutter" ,clutter)
- ("clutter-gtk" ,clutter-gtk)
- ("libcanberra" ,libcanberra)
- ("webkitgtk" ,webkitgtk)
- ("sqlite" ,sqlite)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin")
- ("doxygen" ,doxygen)))
- (propagated-inputs
- `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
- ("adwaita-icon-theme" ,adwaita-icon-theme)
- ("evolution-data-server" ,evolution-data-server)))
- (arguments
- `(#:tests? #f ; There is no testsuite.
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "client-gnome")
- #t)))))
- (synopsis "Distributed, privacy-respecting communication program")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+ (let ((commit "85cda2e1fde84230f6b9f5419f9ec1e23867c2a1")
+ (revision "0"))
+ (package
+ (name "jami")
+ (version (git-version %jami-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/ring-client-gnome")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xzcx8x04yc8m8b2vf7sxfgw79idbm0hifzaw4s2vh26hyy9sp2g"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("libringclient" ,libringclient)
+ ("gtk+" ,gtk+)
+ ("qtbase" ,qtbase)
+ ("qrencode" ,qrencode)
+ ("libnotify" ,libnotify)
+ ("clutter" ,clutter)
+ ("clutter-gtk" ,clutter-gtk)
+ ("libcanberra" ,libcanberra)
+ ("webkitgtk" ,webkitgtk)
+ ("sqlite" ,sqlite)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("doxygen" ,doxygen)))
+ (propagated-inputs
+ `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
+ ("adwaita-icon-theme" ,adwaita-icon-theme)
+ ("evolution-data-server" ,evolution-data-server)))
+ (arguments
+ `(#:tests? #f)) ; There is no testsuite.
+ (synopsis "Distributed, privacy-respecting communication program")
+ (description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides the Jami client for the GNOME desktop.")
- (home-page "https://jami.net")
- (license license:gpl3+)))
+ (home-page "https://jami.net")
+ (license license:gpl3+))))
(define-public jami-client-gnome
(deprecated-package "jami-client-gnome" jami))
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 1/9] gnu: libring: Fetch from git, update to 20200702-guix.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-1-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm
(define-module): Use the "backup" module.
(%jami-version, %libring-commit, %libring-revision): New variables.
(jami-source): Rename procedure to (libring-source).
(libring-source)[without-daemon]: Rename keyword to [without-contrib].
[origin]: Fetch from git, update path to the contrib directory,
update hash and commit.
(libring)[source]: Use (libring-source).
[version]: Use the (%jami-version, %libring-commit, %libring-revision) variables.
[inputs]: Add libarchive, remove obsolete comment - there's pjproject-jami already.
[arguments]: Do not chdir to "daemon" - due to fetching from git,
we're in the proper directory already.
---
gnu/packages/jami.scm | 36 +++++++++++++++++++-----------------
1 file changed, 19 insertions(+), 17 deletions(-)

Toggle diff (92 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index d5cb3b62f6..d94a162772 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -23,6 +23,7 @@
#:use-module (gnu packages aidc)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -62,23 +63,29 @@
#:use-module (guix utils)
#:use-module (srfi srfi-1))
-(define %jami-version "20200401.1.6f090de")
+(define %jami-version "20200702-guix")
+(define %libring-commit "0e36d0b352d543437f0f744230c2eb8c0bc77f36")
+(define %libring-revision "0")
-(define* (jami-source #:key without-daemon)
+(define* (libring-source #:key without-contrib)
(origin
- (method url-fetch)
- (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
- %jami-version
- ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/ring-daemon")
+ (commit %libring-commit)))
+ (file-name (git-file-name (if without-contrib
+ "libring-source-without-contrib"
+ "libring-source")
+ %jami-version))
(modules '((guix build utils)))
(snippet
- (if without-daemon
+ (if without-contrib
'(begin
- (delete-file-recursively "daemon/contrib"))
+ (delete-file-recursively "contrib"))
#f))
(sha256
(base32
- "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
+ "1877sar32rz80pvhksxf4w0g05w4h4nq78rb7krdjmjq6vmnip1p"))))
;; Savoir-Faire Linux modifies many libraries to add features
;; to Jami. This procedure makes applying patches to a given
@@ -441,8 +448,8 @@
(define-public libring
(package
(name "libring")
- (version %jami-version)
- (source (jami-source #:without-daemon #t))
+ (version (git-version %jami-version %libring-revision %libring-commit))
+ (source (libring-source #:without-contrib #t))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
@@ -462,6 +469,7 @@
("opus" ,opus)
("pcre" ,pcre)
("pulseaudio" ,pulseaudio)
+ ("libarchive" ,libarchive)
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
("speex" ,speex)
@@ -479,8 +487,6 @@
("restinio" ,restinio)
("libx11" ,libx11)
("asio" ,asio)
- ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
- ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
("pjproject" ,pjproject-jami)))
(native-inputs
`(("autoconf" ,autoconf)
@@ -494,10 +500,6 @@
`(#:tests? #f ; The tests fail to compile due to missing headers.
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "daemon")
- #t))
(add-before 'build 'add-lib-dir
(lambda _
(mkdir-p "src/lib")
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 7/9] gnu: libringclient: Do not propagate qtbase in libringclient.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-7-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (libringclient):
[propagated-inputs]: Remove qtbase.
[inputs]: Add qtbase.
---
gnu/packages/jami.scm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 041955f297..ea94efb2f9 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -530,10 +530,11 @@ functionality.")
(base32
"1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
(build-system cmake-build-system)
- (propagated-inputs
- `(("libring" ,libring) ; For 'dring'.
- ("qtbase" ,qtbase) ; Qt is included in several installed headers.
+ (inputs
+ `(("qtbase" ,qtbase) ; Qt is included in several installed headers.
("qttools" ,qttools)))
+ (propagated-inputs
+ `(("libring" ,libring))) ; For 'dring'.
(arguments
`(#:tests? #f ; There is no testsuite.
#:configure-flags
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-8-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (define-module): Add copy-build-system.
(libringclient)[source]: Delete chatview files.
[arguments]: Remove chatview files from CMakeLists.txt.
(jami-chatview): New variable.
(jami)[source]: Delete chatview directory.
[inputs]: Add jami-chatview.
[arguments]: Copu chatview files to destination.
---
gnu/packages/jami.scm | 80 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 79 insertions(+), 1 deletion(-)

Toggle diff (135 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index ea94efb2f9..58e10ae6d8 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -56,6 +56,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 download)
#:use-module (guix git-download)
@@ -526,6 +527,16 @@ functionality.")
(url "https://review.jami.net/ring-lrc")
(commit commit)))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ ;; The chatview is a common code among Jami clients.
+ ;; Since Guix likes functional design, I'm removing
+ ;; the directory containing it and making it a new
+ ;; package. The other reason is that there is no
+ ;; any rule in the build system to check if it is
+ ;; included.
+ (snippet
+ '(begin
+ (delete-file-recursively "src/web-chatview")))
(sha256
(base32
"1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
@@ -542,6 +553,21 @@ functionality.")
(assoc-ref %build-inputs "libring") "/include"))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-install-chatview
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("src/web-chatview/.eslintrc.json") "")
+ (("src/web-chatview/chatview-gnome.css") "")
+ (("src/web-chatview/chatview.css") "")
+ (("src/web-chatview/chatview.html") "")
+ (("src/web-chatview/chatview.js") "")
+ (("src/web-chatview/jed.js") "")
+ (("src/web-chatview/linkify-html.js") "")
+ (("src/web-chatview/linkify-string.js") "")
+ (("src/web-chatview/linkify.js") "")
+ (("src/web-chatview/qwebchannel.js") "")
+ (("src/web-chatview/web.gresource.xml") ""))
+ #t))
(add-before 'configure 'fix-dbus-interfaces-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
@@ -558,6 +584,40 @@ This package provides a library common to all Jami clients.")
(home-page "https://jami.net")
(license license:gpl3+))))
+(define-public jami-chatview
+ (let ((commit "0a790d86a20ae80e5d2ee0d35452fa77cfb8cc40")
+ (revision "0"))
+ (package
+ (name "jami-chatview")
+ (version (git-version %jami-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/jami-chatview")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zb3qa1x37kclbgk4wdg6qp4ivr6513ypj8s4k0qjps7h2clgna8"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'allow-copying
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Permissions of this file are not right.
+ ;; Let's change this to allow installing it properly.
+ (chmod ".eslintrc.json" #o644)
+ #t)))
+ #:install-plan '(("." "include/libringclient/web-chatview")
+ (".eslintrc.json"
+ "include/libringclient/web-chatview/.eslintrc.json"))))
+ (synopsis "Chatview for Jami")
+ (description "Web chatview for Jami - html, css, js files.
+It provides some common code for Jami clients.")
+ (home-page "https://jami.net")
+ (license license:gpl3+))))
+
(define-public jami
(let ((commit "85cda2e1fde84230f6b9f5419f9ec1e23867c2a1")
(revision "0"))
@@ -570,6 +630,11 @@ This package provides a library common to all Jami clients.")
(url "https://review.jami.net/ring-client-gnome")
(commit commit)))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ ;; The web directory contains links to nowhere
+ (snippet
+ '(begin
+ (delete-file-recursively "web")))
(sha256
(base32
"0xzcx8x04yc8m8b2vf7sxfgw79idbm0hifzaw4s2vh26hyy9sp2g"))))
@@ -584,6 +649,8 @@ This package provides a library common to all Jami clients.")
("clutter-gtk" ,clutter-gtk)
("libcanberra" ,libcanberra)
("libnm" ,network-manager)
+ ("jami-chatview" ,jami-chatview)
+ ("qtbase" ,qtbase)
("webkitgtk" ,webkitgtk)
("sqlite" ,sqlite)))
(native-inputs
@@ -596,7 +663,18 @@ This package provides a library common to all Jami clients.")
("adwaita-icon-theme" ,adwaita-icon-theme)
("evolution-data-server" ,evolution-data-server)))
(arguments
- `(#:tests? #f)) ; There is no testsuite.
+ `(#:tests? #f ; There is no testsuite.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'copy-chatview-files
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((chatview
+ (string-append
+ (assoc-ref inputs "jami-chatview")
+ "/include/libringclient/web-chatview"))
+ (destination-dir "web"))
+ (copy-recursively chatview destination-dir))
+ #t)))))
(synopsis "Distributed, privacy-respecting communication program")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
--
2.27.0
J
J
Jan Wielkiewicz wrote on 6 Jul 2020 17:50
[PATCH 9/9] gnu: pjproject-jami: Fix assertion by disabling debugging.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200706155030.1938-9-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (pjproject-jami)[arguments]:
Add "-DNDEBUG" to compiler flags.
---
gnu/packages/jami.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (17 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 58e10ae6d8..aa00e9e5c5 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -146,8 +146,8 @@
;; against pjproject-jami:
;; relocation R_X86_64_32S against `.rodata' can not be used when
;; making a shared object;
- "CFLAGS=-fPIC"
- "CXXFLAGS=-fPIC")
+ "CFLAGS=-fPIC -DNDEBUG"
+ "CXXFLAGS=-fPIC -DNDEBUG")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
--
2.27.0
C
C
Christopher Baines wrote on 6 Jul 2020 22:56
Re: [bug#42229] [PATCH 7/9] gnu: libringclient: Do not propagate qtbase in libringclient.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87o8osnz0s.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (27 lines)
> * gnu/packages/jami.scm (libringclient):
> [propagated-inputs]: Remove qtbase.
> [inputs]: Add qtbase.
> ---
> gnu/packages/jami.scm | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index 041955f297..ea94efb2f9 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -530,10 +530,11 @@ functionality.")
> (base32
> "1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
> (build-system cmake-build-system)
> - (propagated-inputs
> - `(("libring" ,libring) ; For 'dring'.
> - ("qtbase" ,qtbase) ; Qt is included in several installed headers.
> + (inputs
> + `(("qtbase" ,qtbase) ; Qt is included in several installed headers.
> ("qttools" ,qttools)))
> + (propagated-inputs
> + `(("libring" ,libring))) ; For 'dring'.
> (arguments
> `(#:tests? #f ; There is no testsuite.
> #:configure-flags

What's the reason behind this change? I'd interpret the "headers"
comment as justifying why qtbase should be propagated.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8Dj/NfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XcbjBAAjWHdVMAJJTDHbPle2di3QjaQ0cnvBKXITy1PlfNB4WLu0drbIxQegJ0s
UtDjw+B9q+2JWT+hoM5WYGpYYh5Ubk2VJ/Ty94D+2dgT79IyAUwJEApgVLSwO6OI
JH3aJtqE1yI81XHDsqBhynw8aG8dHnHNHmsBl/Py+lon5FOxeZWJ97BDlUFSdjc8
3Hlx2dwn+DHLD3vNdFrjyz56rvrZrVqZiddDpcTXAg9yVOwGrAklYQEhvFXcU+tF
VMad9GMRjV1iG8YGQLQU0a770GKuaRF67oQi5GbOXSC1/TlImC0TzaVvnWDOwlb/
qHODbcpaE/n9ISiIyNhcwFzZe3U/mAvRrLbnUTOGLj0+2k4HjQB5ty1r/ALFbqiB
/lRzZs9t0SbaRDyykR24NUbCSfzMjQQJz5NGaiDuu68/9sZeUQVmwsehdEHbg4Rp
zg+U8r6NJddOnMAqEOEszMR+9Nz2fS+dIHzNw/JgIsJCwmC53lryrjJjOca1BJcZ
36Xye34xOzTdbMHGByi/jT25gB22iMGdjaCAZvz/9q5MG/PMGbQdbTAoEyN3lXHV
uceAEsbpujV5e2k2BiBqXmayye1l+fQ1Og61a6IJ4H3rLh3obOXq413wqXKd8oKG
zYDquJG0xkmqpxn7JZLvVh1n5IiYAQigKUq70uViA4B+AiPyfD8=
=0Y3O
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 6 Jul 2020 23:19
Re: [bug#42229] [PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87lfjwnxxt.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (35 lines)
> * gnu/packages/jami.scm (define-module): Add copy-build-system.
> (libringclient)[source]: Delete chatview files.
> [arguments]: Remove chatview files from CMakeLists.txt.
> (jami-chatview): New variable.
> (jami)[source]: Delete chatview directory.
> [inputs]: Add jami-chatview.
> [arguments]: Copu chatview files to destination.
> ---
> gnu/packages/jami.scm | 80 ++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 79 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index ea94efb2f9..58e10ae6d8 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -56,6 +56,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 download)
> #:use-module (guix git-download)
> @@ -526,6 +527,16 @@ functionality.")
> (url "https://review.jami.net/ring-lrc")
> (commit commit)))
> (file-name (git-file-name name version))
> + (modules '((guix build utils)))
> + ;; The chatview is a common code among Jami clients.
> + ;; Since Guix likes functional design, I'm removing
> + ;; the directory containing it and making it a new
> + ;; package. The other reason is that there is no
> + ;; any rule in the build system to check if it is
> + ;; included.

I'd perhaps just say instead that these files are packaged as
jami-chatview which is used by the jami package, that's probably what's
useful to know here.

Toggle quote (25 lines)
> + (snippet
> + '(begin
> + (delete-file-recursively "src/web-chatview")))
> (sha256
> (base32
> "1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
> @@ -542,6 +553,21 @@ functionality.")
> (assoc-ref %build-inputs "libring") "/include"))
> #:phases
> (modify-phases %standard-phases
> + (add-after 'unpack 'do-not-install-chatview
> + (lambda _
> + (substitute* "CMakeLists.txt"
> + (("src/web-chatview/.eslintrc.json") "")
> + (("src/web-chatview/chatview-gnome.css") "")
> + (("src/web-chatview/chatview.css") "")
> + (("src/web-chatview/chatview.html") "")
> + (("src/web-chatview/chatview.js") "")
> + (("src/web-chatview/jed.js") "")
> + (("src/web-chatview/linkify-html.js") "")
> + (("src/web-chatview/linkify-string.js") "")
> + (("src/web-chatview/linkify.js") "")
> + (("src/web-chatview/qwebchannel.js") "")
> + (("src/web-chatview/web.gresource.xml") ""))

Because substitute* uses regular expressions, characters like . should
probably be escaped. However, you might want to try something like the
following:

(substitute* "CMakeLists.txt"
(("src/web-chatview/.*") ""))


Toggle quote (40 lines)
> + #t))
> (add-before 'configure 'fix-dbus-interfaces-path
> (lambda* (#:key inputs #:allow-other-keys)
> (substitute* "CMakeLists.txt"
> @@ -558,6 +584,40 @@ This package provides a library common to all Jami clients.")
> (home-page "https://jami.net")
> (license license:gpl3+))))
>
> +(define-public jami-chatview
> + (let ((commit "0a790d86a20ae80e5d2ee0d35452fa77cfb8cc40")
> + (revision "0"))
> + (package
> + (name "jami-chatview")
> + (version (git-version %jami-version revision commit))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://review.jami.net/jami-chatview")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "1zb3qa1x37kclbgk4wdg6qp4ivr6513ypj8s4k0qjps7h2clgna8"))))
> + (build-system copy-build-system)
> + (arguments
> + '(#:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'allow-copying
> + (lambda* (#:key inputs #:allow-other-keys)
> + ;; Permissions of this file are not right.
> + ;; Let's change this to allow installing it properly.
> + (chmod ".eslintrc.json" #o644)
> + #t)))
> + #:install-plan '(("." "include/libringclient/web-chatview")
> + (".eslintrc.json"
> + "include/libringclient/web-chatview/.eslintrc.json"))))
> + (synopsis "Chatview for Jami")
> + (description "Web chatview for Jami - html, css, js files.
> +It provides some common code for Jami clients.")

It would be good if this could be clearer as to what the user gets if
they install this package. I'm guessing because it's an input to Jami,
it's probably not useful to have it in your profile?

Also, if it's going to describe the contents of the package, I'd do it
in a full sentance, so something like: "This package provides the HTML,
CSS and JavaScript files for the web chatview for Jami".

Toggle quote (3 lines)
> + (home-page "https://jami.net")
> + (license license:gpl3+))))

I think there's some Expat stuff in there too.

Toggle quote (42 lines)
> +
> (define-public jami
> (let ((commit "85cda2e1fde84230f6b9f5419f9ec1e23867c2a1")
> (revision "0"))
> @@ -570,6 +630,11 @@ This package provides a library common to all Jami clients.")
> (url "https://review.jami.net/ring-client-gnome")
> (commit commit)))
> (file-name (git-file-name name version))
> + (modules '((guix build utils)))
> + ;; The web directory contains links to nowhere
> + (snippet
> + '(begin
> + (delete-file-recursively "web")))
> (sha256
> (base32
> "0xzcx8x04yc8m8b2vf7sxfgw79idbm0hifzaw4s2vh26hyy9sp2g"))))
> @@ -584,6 +649,8 @@ This package provides a library common to all Jami clients.")
> ("clutter-gtk" ,clutter-gtk)
> ("libcanberra" ,libcanberra)
> ("libnm" ,network-manager)
> + ("jami-chatview" ,jami-chatview)
> + ("qtbase" ,qtbase)
> ("webkitgtk" ,webkitgtk)
> ("sqlite" ,sqlite)))
> (native-inputs
> @@ -596,7 +663,18 @@ This package provides a library common to all Jami clients.")
> ("adwaita-icon-theme" ,adwaita-icon-theme)
> ("evolution-data-server" ,evolution-data-server)))
> (arguments
> - `(#:tests? #f)) ; There is no testsuite.
> + `(#:tests? #f ; There is no testsuite.
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'copy-chatview-files
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((chatview
> + (string-append
> + (assoc-ref inputs "jami-chatview")
> + "/include/libringclient/web-chatview"))
> + (destination-dir "web"))
> + (copy-recursively chatview destination-dir))

Rather than copying, could this be a symlink? That way you're just using
another store item, rather than copying the files from one to another.

Toggle quote (4 lines)
> + #t)))))
> (synopsis "Distributed, privacy-respecting communication program")
> (description "Jami (formerly GNU Ring) is a secure and distributed voice,
> video and chat communication platform that requires no centralized server and
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8DlW5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XeeWxAAjg04nd88QSRJ/1CjJMqguDPm/Ma6YMISEOERmMTLeZ3YCSv+7/T7GN1C
BI+vruetmTksXHa5hPPF19TAW+lF9lI32vV7W40McveDdr8SDEyXfSkD/6ERPMkB
OMp9SkNPsm2DAodp+Ql3yvOwcLA58PFhXcXh3/XeZXVh9MQKmYpDfNulL63+69JG
jgC0bi/S+C5Xy0UboQ2WbX72HO7PPBZqX6SXAgB+VFHhxxCedcYELVnLufgIDFeh
gGEG7PzQeJe/R7XT4FB+hdpyXKbYEbHA0FQed4tksyqmBk4ghWK9vjVGsnIXd4ke
kqjTee+3ZjxFY6XNtRQ8IuM52sFPpS3TRSS4Uv4MqR25cpTuj2G9XRr+lZwSNtzw
Sg1tm6iAPtfqizewwkkYJVmOo8sT/oa7u1KC1FhTR552pbJRIiK8E/KfTdkmFaMk
OAa6sKpFIFRoZFYKKp7X3RJqedJh/rDv/d5UpoaCvg6pXhik887lqTvNfH8bXOuE
19JPKxzMoG7OyPFZ0ZUQf7jsDgxNmxLvyS5NBn6iijtNumLN5QFC+pgB3BZBm1WE
93EHbF815Xv+F51jBuvDnSVcaV2UI/WvXKZzWRtoPnPBKmz3BIVcdDjaGVcQFgJx
G45/cgn6VrcqOtjArl5vPVpFJDLDVJca3939VTgTNqGiCEa8t1g=
=Ik5G
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 6 Jul 2020 23:24
Re: [bug#42229] [PATCH 6/9] gnu: jami: Add libnm as input.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87blksl4kz.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (26 lines)
> * gnu/packages/jami.scm (jami)[inputs]: Add libnm.
> ---
> gnu/packages/jami.scm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index a45b056d51..041955f297 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -582,6 +582,7 @@ This package provides a library common to all Jami clients.")
> ("clutter" ,clutter)
> ("clutter-gtk" ,clutter-gtk)
> ("libcanberra" ,libcanberra)
> + ("libnm" ,network-manager)
> ("webkitgtk" ,webkitgtk)
> ("sqlite" ,sqlite)))
> (native-inputs
> @@ -600,7 +601,6 @@ This package provides a library common to all Jami clients.")
> video and chat communication platform that requires no centralized server and
> leaves the power of privacy in the hands of the user. It supports the SIP and
> IAX protocols, as well as decentralized calling using P2P-DHT.
> -
> This package provides the Jami client for the GNOME desktop.")
> (home-page "https://jami.net")
> (license license:gpl3+))))

I'm guessing that the reasoning behind this change is that it's
something related to the version update.

If so, maybe include this change in the commit that does the version
update, just to keep the related changes together. Otherwise, it would
be good to have some information in this commit about what adding this
input means.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8DloxfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XfedQ//R5aOUeEtP5u0m5I27/aiAGrnGIFjZ8hqv24BH7ztSo9L7+jYYjd/228V
oByA4tv4fbura9ImESVGQxsZGYLcpoijo1SiorVFsLc4Kn8Oqm88NL5BUfZaoXQZ
1Etp25vDmMTyyw/nScGa8TnXbM+kHq2hF9GHJbgrbXJa/1n9ujXgg8lepDpe63an
GaMypETs5p/3d67QNX5jTGbzTntMD6s3PHCXPXtFJm3+GB4p71wXwyoVc9Kl9OJH
W6srcR1ms2QqNxNrD6IBiBn17UVjERilTAXhY3ANC/DmAfBntctNpRFrXVbqJ2fI
Jz4p6+KSaJh2eIhsHfSH8wYE1YkvZdseR5Y9cq/gsLmp7B+ILYTu4dRMo318rn2z
/e6faZ+djp65zQmldapS/z3S0FsYcrRECxuPQjc1lNsryRLDp9w1ojKK+7xblvaS
yuE+/hCY38in3TXCjRLgcH0jebLWWvd+QY9rcVpO9oLtPAskZ7WG+FA8FKTWw/JF
UpsqyEH7b0MKl2sFsu6FfVZyCh2dUFY38synSowhfcUlk7BWKcEWKwj65GVEizM3
sVaxb7j/Co7nCZ4k9NKUeHdNPGfOQH17lE3uYiHymHbypS6e1JNpkVtVPZOqYhnp
04NGxtKuWC7cB2jHu/BwH0UmQ2nmybci86mVC02tGE1nPdDJ27k=
=dwdj
-----END PGP SIGNATURE-----

J
J
Jan Wielkiewicz wrote on 7 Jul 2020 23:22
Re: [bug#42229] [PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files.
(name . Christopher Baines)(address . mail@cbaines.net)(address . 42229@debbugs.gnu.org)
20200707232259.22052026@interia.pl
Hello.

On Mon, 06 Jul 2020 22:19:42 +0100
Christopher Baines <mail@cbaines.net> wrote:

Toggle quote (3 lines)
> I'd perhaps just say instead that these files are packaged as
> jami-chatview which is used by the jami package, that's probably
> what's useful to know here.
Done.

Toggle quote (8 lines)
>
> Because substitute* uses regular expressions, characters like . should
> probably be escaped. However, you might want to try something like the
> following:
>
> (substitute* "CMakeLists.txt"
> (("src/web-chatview/.*") ""))
>
I use to forget this, don't know why. Testing how it works right now.

Toggle quote (4 lines)
>
> It would be good if this could be clearer as to what the user gets if
> they install this package. I'm guessing because it's an input to Jami,
> it's probably not useful to have it in your profile?
Users don't have to know this. I made it private by changing
define-public to define.

Toggle quote (3 lines)
> Also, if it's going to describe the contents of the package, I'd do it
> in a full sentance, so something like: "This package provides the
> HTML, CSS and JavaScript files for the web chatview for Jami".
Done.

Toggle quote (1 lines)
> I think there's some Expat stuff in there too.
Yes, there is, added expat to license list. Shouldn't Jami files
contain explicit license statement though?

Toggle quote (4 lines)
>
> Rather than copying, could this be a symlink? That way you're just
> using another store item, rather than copying the files from one to
> another.
Working on this. The build fails on the ".eslintrc.json". Guix for some
reason doesn't like dotfiles.



Jan Wielkiewicz
J
J
Jan Wielkiewicz wrote on 8 Jul 2020 01:07
(name . Christopher Baines)(address . mail@cbaines.net)(address . 42229@debbugs.gnu.org)
20200708010758.5a7b01ab@interia.pl
I need some more time for this one. Some features seem to be broken
(despite dropping the qtcore commit).


Jan Wielkiewicz
J
J
Jan Wielkiewicz wrote on 8 Jul 2020 01:13
Re: [bug#42229] [PATCH 7/9] gnu: libringclient: Do not propagate qtbase in libringclient.
(name . Christopher Baines)(address . mail@cbaines.net)(address . 42229@debbugs.gnu.org)
20200708011312.3702b51c@interia.pl
On Mon, 06 Jul 2020 21:56:19 +0100
Christopher Baines <mail@cbaines.net> wrote:

Toggle quote (3 lines)
> What's the reason behind this change? I'd interpret the "headers"
> comment as justifying why qtbase should be propagated.

Dropped this commit, I was just experimenting with it.
If I don't know why I did this, it probably invalid.


Jan Wielkiewicz
C
C
Christopher Baines wrote on 8 Jul 2020 21:14
Re: [bug#42229] [PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87zh89keeg.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (4 lines)
>> I think there's some Expat stuff in there too.
> Yes, there is, added expat to license list. Shouldn't Jami files
> contain explicit license statement though?

I'm not sure what you mean by explicit license statement, adding expat
to the licenses list was all I had in mind.

Toggle quote (7 lines)
>> Rather than copying, could this be a symlink? That way you're just
>> using another store item, rather than copying the files from one to
>> another.
>
> Working on this. The build fails on the ".eslintrc.json". Guix for some
> reason doesn't like dotfiles.

Ok, sounds like the .eslintrc.json file can be deleted at build time, as
I think it's configuration for a linter. I'm not sure if that'll help or
not, but it might.

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8GGxdfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xeg0g/+KrXPUVCtw7XGGAXgwj+1gZBsyqVNmgu7RTr1GW14dYR02BsWdGCa0jSD
RJLRBPfvyhD5ei9WIDwiWRdGq4FLB9dih/w3FfXMQ9dewg+q6i7HRcsu27gERtSc
iVRSJwEr4R3DvAKVKo/XkulCtlbzCWFKSSdn/0TcRA9u0ERpxWZHrKnDZQljKSCO
rT11gl1o+DkbEkzR9Wl52pQI0Gn10390o1IUKFm+BKOdksS2LJQirQg/Bc73qbfO
m1awK8kwWdMlj5uvjvy/1q5IN777+p3wAwz6/YrslJCLZOHgX/slhXFBR5ebbvdS
zcWPPCbLS4JK2q7bZpCziqtzQJjGGe7yQzzrCfDGbWELksscPE/lljCP7MY/xsX4
l90ZQ6YaQupWsRbe0wNUeDSmrj/+6LnOWZXEJ0xCYqbWlJk80Vpkv4LKDMmcuBg+
kFmW33GKIgcexPf1/4ZrCJsGsJoOasMloogzMoPj9n1gUpXvzBafkC4AAISeTRd2
gkKPgG9o3dpm0nfZzVjPAuuISh1u2uzt38Vm+BYjLaesrDlWJMlxArWM0hWs6zII
8zxTLxuD7SzgsusasLcFt4R+y72WILrm4OLqsxzuPPN4m100gYVX9anFiQUYvQba
BD6UcnMQwhYor/eZXaG+qwV4VPk7Fsuy4BvC8G4a0dEewFItMzk=
=Z9Mm
-----END PGP SIGNATURE-----

J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:03
Re: [bug#42229] [PATCH 6/9] gnu: jami: Add libnm as input.
(name . Christopher Baines)(address . mail@cbaines.net)(address . 42229@debbugs.gnu.org)
20200710200359.743213cc@interia.pl
Dnia 2020-07-06, o godz. 22:24:28
Christopher Baines <mail@cbaines.net> napisa?(a):

Toggle quote (2 lines)
> I'm guessing that the reasoning behind this change is that it's
> something related to the version update.
Actually it isn't. I just noticed it is an optional dependency.
I'll add this in a comment.

Quick grep tells:

CMakeLists.txt:PKG_CHECK_MODULES(LIBNM libnm>=1.0) #optional to detect
changes in the network CMakeLists.txt:# configure libnm variable for
config.h file src/mainwindow.cpp: // monitor the network using
libnm to notify the daemon about connectivity changes



Jan Wielkiewicz
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 01/10] gnu: libring: Fetch from git, update to 20200708-guix.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-1-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm
(define-module): Use the "backup" module.
(%jami-version, %libring-commit, %libring-revision): New variables.
(jami-source): Rename procedure to (libring-source).
(libring-source)[without-daemon]: Rename keyword to [without-contrib].
[origin]: Fetch from git, update path to the contrib directory,
update hash and commit.
(libring)[source]: Use (libring-source).
[version]: Use the (%jami-version, %libring-commit, %libring-revision) variables.
[inputs]: Add libarchive, remove obsolete comment - there's pjproject-jami already.
[arguments]: Do not chdir to "daemon" - due to fetching from git,
we're in the proper directory already.
---
gnu/packages/jami.scm | 36 +++++++++++++++++++-----------------
1 file changed, 19 insertions(+), 17 deletions(-)

Toggle diff (92 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index d5cb3b62f6..06aeafea5d 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -23,6 +23,7 @@
#:use-module (gnu packages aidc)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -62,23 +63,29 @@
#:use-module (guix utils)
#:use-module (srfi srfi-1))
-(define %jami-version "20200401.1.6f090de")
+(define %jami-version "20200708-guix")
+(define %libring-commit "07188b4a717e5ac6e582d71c895b74fbbfd02b24")
+(define %libring-revision "0")
-(define* (jami-source #:key without-daemon)
+(define* (libring-source #:key without-contrib)
(origin
- (method url-fetch)
- (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
- %jami-version
- ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/ring-daemon")
+ (commit %libring-commit)))
+ (file-name (git-file-name (if without-contrib
+ "libring-source-without-contrib"
+ "libring-source")
+ %jami-version))
(modules '((guix build utils)))
(snippet
- (if without-daemon
+ (if without-contrib
'(begin
- (delete-file-recursively "daemon/contrib"))
+ (delete-file-recursively "contrib"))
#f))
(sha256
(base32
- "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
+ "05068ijvbd6gd9i14iz23dn5nc0fsphwa3hpdpqairqv00rr9h9b"))))
;; Savoir-Faire Linux modifies many libraries to add features
;; to Jami. This procedure makes applying patches to a given
@@ -441,8 +448,8 @@
(define-public libring
(package
(name "libring")
- (version %jami-version)
- (source (jami-source #:without-daemon #t))
+ (version (git-version %jami-version %libring-revision %libring-commit))
+ (source (libring-source #:without-contrib #t))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
@@ -462,6 +469,7 @@
("opus" ,opus)
("pcre" ,pcre)
("pulseaudio" ,pulseaudio)
+ ("libarchive" ,libarchive)
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
("speex" ,speex)
@@ -479,8 +487,6 @@
("restinio" ,restinio)
("libx11" ,libx11)
("asio" ,asio)
- ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
- ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
("pjproject" ,pjproject-jami)))
(native-inputs
`(("autoconf" ,autoconf)
@@ -494,10 +500,6 @@
`(#:tests? #f ; The tests fail to compile due to missing headers.
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "daemon")
- #t))
(add-before 'build 'add-lib-dir
(lambda _
(mkdir-p "src/lib")
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 04/10] gnu: jami: Fetch from git, update to 20200702-guix.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-4-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm:
(jami)[revision, commit]: New variables.
[version]: Use [%jami-version, revision, commit].
[source]: Fetch from git.
[arguments]: Do not change the directory.
---
gnu/packages/jami.scm | 76 +++++++++++++++++++++++--------------------
1 file changed, 41 insertions(+), 35 deletions(-)

Toggle diff (94 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 1da50d7744..a9ccf67380 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -558,46 +558,52 @@ This package provides a library common to all Jami clients.")
(license license:gpl3+))))
(define-public jami
- (package
- (inherit libring)
- (name "jami")
- (build-system cmake-build-system)
- (inputs
- `(("libringclient" ,libringclient)
- ("gtk+" ,gtk+)
- ("qrencode" ,qrencode)
- ("libnotify" ,libnotify)
- ("clutter" ,clutter)
- ("clutter-gtk" ,clutter-gtk)
- ("libcanberra" ,libcanberra)
- ("webkitgtk" ,webkitgtk)
- ("sqlite" ,sqlite)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin")
- ("doxygen" ,doxygen)))
- (propagated-inputs
- `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
- ("adwaita-icon-theme" ,adwaita-icon-theme)
- ("evolution-data-server" ,evolution-data-server)))
- (arguments
- `(#:tests? #f ; There is no testsuite.
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "client-gnome")
- #t)))))
- (synopsis "Distributed, privacy-respecting communication program")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+ (let ((commit "4703bf11348170da151c62a6a3ae54f83a7d866e")
+ (revision "0"))
+ (package
+ (name "jami")
+ (version (git-version %jami-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/ring-client-gnome")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0fzzgw6738gqvy4m9hamxdzkgbmv72j7zyxzcyaw21zmwacn7jfj"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("libringclient" ,libringclient)
+ ("gtk+" ,gtk+)
+ ("qtbase" ,qtbase)
+ ("qrencode" ,qrencode)
+ ("libnotify" ,libnotify)
+ ("clutter" ,clutter)
+ ("clutter-gtk" ,clutter-gtk)
+ ("libcanberra" ,libcanberra)
+ ("webkitgtk" ,webkitgtk)
+ ("sqlite" ,sqlite)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("doxygen" ,doxygen)))
+ (propagated-inputs
+ `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
+ ("adwaita-icon-theme" ,adwaita-icon-theme)
+ ("evolution-data-server" ,evolution-data-server)))
+ (arguments
+ `(#:tests? #f)) ; There is no testsuite.
+ (synopsis "Distributed, privacy-respecting communication program")
+ (description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides the Jami client for the GNOME desktop.")
- (home-page "https://jami.net")
- (license license:gpl3+)))
+ (home-page "https://jami.net")
+ (license license:gpl3+))))
(define-public jami-client-gnome
(deprecated-package "jami-client-gnome" jami))
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 06/10] gnu: jami: Add libnm as input.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-6-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (jami)[inputs]: Add libnm.
---
gnu/packages/jami.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a770d52d2e..df3a268274 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -582,6 +582,7 @@ This package provides a library common to all Jami clients.")
("clutter" ,clutter)
("clutter-gtk" ,clutter-gtk)
("libcanberra" ,libcanberra)
+ ("libnm" ,network-manager) ; optional to detect changes in the network
("webkitgtk" ,webkitgtk)
("sqlite" ,sqlite)))
(native-inputs
@@ -600,7 +601,6 @@ This package provides a library common to all Jami clients.")
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
-
This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+))))
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 03/10] gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply patches from the new libring source.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-3-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm:
(libring-source): [without-contrib] is now true by default.
(jami-apply-dependency-patches): Do not invoke tar,
patches are now fetched from git.
Apply "--ignore-whitespace" to patch to prevent failing.
(pjproject-jami)[native-inputs]: Use (libring-source) procedure instead of
(jami-source).
[arguments]: Add new patches.
(ffmpeg-jami)[native-inputs]: Use (libring-source) procedure instead of
(jami-source).
---
gnu/packages/jami.scm | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index abb0edc933..1da50d7744 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -67,7 +67,7 @@
(define %libring-commit "07188b4a717e5ac6e582d71c895b74fbbfd02b24")
(define %libring-revision "0")
-(define* (libring-source #:key without-contrib)
+(define* (libring-source #:key (without-contrib #t))
(origin
(method git-fetch)
(uri (git-reference
@@ -92,16 +92,13 @@
;; package easy.
(define jami-apply-dependency-patches
'(lambda* (#:key inputs dep-name patches)
- (let ((patches-directory "sfl-patches"))
- (mkdir-p patches-directory)
- (invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches")
- "-C" patches-directory
- "--strip-components=5"
- (string-append "ring-project/daemon/contrib/src/"
- dep-name))
+ (let ((patches-directory (string-append
+ (assoc-ref inputs "sfl-patches")
+ "/contrib/src/" dep-name)))
(for-each
(lambda (file)
- (invoke "patch" "--force" "-p1" "-i"
+ (invoke "patch" "--force"
+ "--ignore-whitespace" "-p1" "-i"
(string-append patches-directory "/"
file ".patch")))
patches))))
@@ -111,7 +108,7 @@
(inherit pjproject)
(name "pjproject-jami")
(native-inputs
- `(("sfl-patches" ,(jami-source))
+ `(("sfl-patches" ,(libring-source #:without-contrib #f))
,@(package-native-inputs pjproject)))
(arguments
`(#:tests? #f
@@ -174,7 +171,9 @@
"0006-ignore_ipv6_on_transport_check"
"0007-pj_ice_sess"
"0008-fix_ioqueue_ipv6_sendto"
- "0009-add-config-site"))
+ "0009-add-config-site"
+ "0010-fix-pkgconfig"
+ "0011-fix-tcp-death-detection"))
#t)))
;; TODO: We could use substitute-keyword-arguments instead of
;; repeating the phases from pjproject, but somehow it does
@@ -414,7 +413,7 @@
(inherit ffmpeg)
(name "ffmpeg-jami")
(native-inputs
- `(("sfl-patches" ,(jami-source))
+ `(("sfl-patches" ,(libring-source #:without-contrib #f))
("libiconv" ,libiconv)
,@(package-native-inputs ffmpeg)))
(supported-systems '("x86_64-linux" "i686-linux"
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 02/10] gnu: libringclient: Fetch from git, update to 20200702-guix.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-2-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm
(libringclient):
[revision, commit]: New variables.
Do not inherit from (libring).
[version]: Use (%jami-version, revision, commit).
[source]: Fetch from git.
---
gnu/packages/jami.scm | 65 ++++++++++++++++++++++++-------------------
1 file changed, 36 insertions(+), 29 deletions(-)

Toggle diff (83 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 06aeafea5d..abb0edc933 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -516,40 +516,47 @@ functionality.")
(license license:gpl3+)))
(define-public libringclient
- (package
- (inherit libring)
- (name "libringclient")
- (build-system cmake-build-system)
- (propagated-inputs
- `(("libring" ,libring) ; For 'dring'.
- ("qtbase" ,qtbase) ; Qt is included in several installed headers.
- ("qttools" ,qttools)))
- (arguments
- `(#:tests? #f ; There is no testsuite.
- #:configure-flags
- (list (string-append "-DRING_BUILD_DIR="
- (assoc-ref %build-inputs "libring") "/include"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "lrc")
- #t))
- (add-before 'configure 'fix-dbus-interfaces-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "CMakeLists.txt"
- (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
- (string-append (assoc-ref inputs "libring")
- dbus-interfaces-path-suffix))))))))
- (synopsis "Distributed multimedia communications platform")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+ (let ((commit "db943766917eba7be3a6f89d41794c2d26363ab7")
+ (revision "0"))
+ (package
+ (name "libringclient")
+ (version (git-version %jami-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/ring-lrc")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
+ (build-system cmake-build-system)
+ (propagated-inputs
+ `(("libring" ,libring) ; For 'dring'.
+ ("qtbase" ,qtbase) ; Qt is included in several installed headers.
+ ("qttools" ,qttools)))
+ (arguments
+ `(#:tests? #f ; There is no testsuite.
+ #:configure-flags
+ (list (string-append "-DRING_BUILD_DIR="
+ (assoc-ref %build-inputs "libring") "/include"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-dbus-interfaces-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
+ (string-append (assoc-ref inputs "libring")
+ dbus-interfaces-path-suffix))))))))
+ (synopsis "Distributed multimedia communications platform")
+ (description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides a library common to all Jami clients.")
- (home-page "https://jami.net")
- (license license:gpl3+)))
+ (home-page "https://jami.net")
+ (license license:gpl3+))))
(define-public jami
(package
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 05/10] gnu: pjproject-jami: Make sure phases are run in order.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-5-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (pjproject-jami)[arguments]:
Add 'apply-patches after 'make-git-checkout-writable.
---
gnu/packages/jami.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a9ccf67380..a770d52d2e 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -153,7 +153,7 @@
(lambda _
(for-each make-file-writable (find-files "."))
#t))
- (add-after 'unpack 'apply-patches
+ (add-after 'make-git-checkout-writable 'apply-patches
(lambda* (#:key inputs #:allow-other-keys)
(let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
;; Comes from
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 08/10] gnu: pjproject-jami: Fix assertion by disabling debugging.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-8-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (pjproject-jami)[arguments]:
Add "-DNDEBUG" to compiler flags.
---
gnu/packages/jami.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (17 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index b5b2df61ac..2758cb6517 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -146,8 +146,8 @@
;; against pjproject-jami:
;; relocation R_X86_64_32S against `.rodata' can not be used when
;; making a shared object;
- "CFLAGS=-fPIC"
- "CXXFLAGS=-fPIC")
+ "CFLAGS=-fPIC -DNDEBUG"
+ "CXXFLAGS=-fPIC -DNDEBUG")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 10/10] gnu: jami-client-gnome: Remove deprecated package.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-10-tona_kosmicznego_smiecia@interia.pl
This package has been deprecated for over a year.

* gnu/packages/jami.scm (jami-client-gnome): Remove variable.
---
gnu/packages/jami.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (13 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 2758cb6517..97bce1f27e 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -669,5 +669,4 @@ This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+))))
-(define-public jami-client-gnome
- (deprecated-package "jami-client-gnome" jami))
+
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 07/10] gnu: jami: Fix compilation by providing necessary webchat files.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-7-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (define-module): Add copy-build-system.
(libringclient)[source]: Delete chatview files.
[arguments]: Remove chatview files from CMakeLists.txt.
(jami-chatview): New variable.
(jami)[source]: Delete chatview directory.
[inputs]: Add jami-chatview.
[arguments]: Copy chatview files to destination.
---
gnu/packages/jami.scm | 66 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 65 insertions(+), 1 deletion(-)

Toggle diff (121 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index df3a268274..b5b2df61ac 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -56,6 +56,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 download)
#:use-module (guix git-download)
@@ -526,6 +527,12 @@ functionality.")
(url "https://review.jami.net/ring-lrc")
(commit commit)))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ ;; These files are provided by the jami-chatview package
+ ;; let's remove them.
+ (snippet
+ '(begin
+ (delete-file-recursively "src/web-chatview")))
(sha256
(base32
"1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
@@ -541,6 +548,11 @@ functionality.")
(assoc-ref %build-inputs "libring") "/include"))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-install-chatview
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("src/web-chatview/.*") ""))
+ #t))
(add-before 'configure 'fix-dbus-interfaces-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
@@ -557,6 +569,41 @@ This package provides a library common to all Jami clients.")
(home-page "https://jami.net")
(license license:gpl3+))))
+(define jami-chatview
+ (let ((commit "0a790d86a20ae80e5d2ee0d35452fa77cfb8cc40")
+ (revision "0"))
+ (package
+ (name "jami-chatview")
+ (version (git-version %jami-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/jami-chatview")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zb3qa1x37kclbgk4wdg6qp4ivr6513ypj8s4k0qjps7h2clgna8"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'allow-copying
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Permissions of this file are not right.
+ ;; Let's change this to allow installing it properly.
+ (chmod ".eslintrc.json" #o644)
+ #t)))
+ #:install-plan '(("." "include/libringclient/web-chatview")
+ (".eslintrc.json"
+ "include/libringclient/web-chatview/.eslintrc.json"))))
+ (synopsis "Chatview for Jami")
+ (description "This package provides HTML, CSS and JS files needed
+by Jami clients to display chatview.")
+ (home-page "https://jami.net")
+ (license (list license:gpl3+ ; All but ...
+ license:expat))))) ; ... jed.js, linkify-html.js
+
(define-public jami
(let ((commit "4703bf11348170da151c62a6a3ae54f83a7d866e")
(revision "0"))
@@ -569,6 +616,11 @@ This package provides a library common to all Jami clients.")
(url "https://review.jami.net/ring-client-gnome")
(commit commit)))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ ;; The web directory contains links to nowhere
+ (snippet
+ '(begin
+ (delete-file-recursively "web")))
(sha256
(base32
"0fzzgw6738gqvy4m9hamxdzkgbmv72j7zyxzcyaw21zmwacn7jfj"))))
@@ -583,6 +635,7 @@ This package provides a library common to all Jami clients.")
("clutter-gtk" ,clutter-gtk)
("libcanberra" ,libcanberra)
("libnm" ,network-manager) ; optional to detect changes in the network
+ ("jami-chatview" ,jami-chatview)
("webkitgtk" ,webkitgtk)
("sqlite" ,sqlite)))
(native-inputs
@@ -595,7 +648,18 @@ This package provides a library common to all Jami clients.")
("adwaita-icon-theme" ,adwaita-icon-theme)
("evolution-data-server" ,evolution-data-server)))
(arguments
- `(#:tests? #f)) ; There is no testsuite.
+ `(#:tests? #f ; There is no testsuite.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'symlink-chatview-files
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((chatview
+ (string-append
+ (assoc-ref inputs "jami-chatview")
+ "/include/libringclient/web-chatview"))
+ (destination-dir "web"))
+ (symlink chatview destination-dir))
+ #t)))))
(synopsis "Distributed, privacy-respecting communication program")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
--
2.27.0
J
J
Jan Wielkiewicz wrote on 10 Jul 2020 20:32
[[PATCH V2] 09/10] gnu: opendht: Fix libring compilation.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200710183220.19829-9-tona_kosmicznego_smiecia@interia.pl
The 2.1.4 release of opendht contains a bug, which
breaks libring compilation. This commit fixes this.

* gnu/packages/patches/opendht-fix-jami.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/networking.scm (opendht)[source]:
Apply the patch.
---
gnu/local.mk | 1 +
gnu/packages/networking.scm | 1 +
gnu/packages/patches/opendht-fix-jami.patch | 33 +++++++++++++++++++++
3 files changed, 35 insertions(+)
create mode 100644 gnu/packages/patches/opendht-fix-jami.patch

Toggle diff (65 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5c3b391960..fcd6de8e0e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1340,6 +1340,7 @@ dist_patch_DATA = \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \
+ %D%/packages/patches/opendht-fix-jami.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index e6a9e69adf..44f81c94d1 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2918,6 +2918,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(url "https://github.com/savoirfairelinux/opendht.git")
(commit version)))
(file-name (git-file-name name version))
+ (patches (search-patches "opendht-fix-jami.patch"))
(sha256
(base32
"1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal"))))
diff --git a/gnu/packages/patches/opendht-fix-jami.patch b/gnu/packages/patches/opendht-fix-jami.patch
new file mode 100644
index 0000000000..9718a84a41
--- /dev/null
+++ b/gnu/packages/patches/opendht-fix-jami.patch
@@ -0,0 +1,33 @@
+From e2b39dd3a0742853e00f9c3e8c46c911da20bed7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
+Date: Tue, 30 Jun 2020 10:42:49 -0400
+Subject: [PATCH 1/4] http/request: make terminate public
+
+---
+ include/opendht/http.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/include/opendht/http.h b/include/opendht/http.h
+index cc8d5f9..46b722c 100644
+--- a/include/opendht/http.h
++++ b/include/opendht/http.h
+@@ -294,6 +294,7 @@ public:
+ * User action to cancel the Request and call the completion callbacks.
+ */
+ void cancel();
++ void terminate(const asio::error_code& ec);
+
+ private:
+ using OnCompleteCb = std::function<void()>;
+@@ -320,8 +321,6 @@ private:
+
+ void connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, HandlerCb cb = {});
+
+- void terminate(const asio::error_code& ec);
+-
+ void post();
+
+ void handle_request(const asio::error_code& ec);
+--
+2.27.0
+
--
2.27.0
C
C
Christopher Baines wrote on 11 Jul 2020 21:51
Re: [bug#42229] [[PATCH V2] 01/10] gnu: libring: Fetch from git, update to 20200708-guix.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87tuydkeyq.fsf@cbaines.net
Hey, thanks for the updated patches.

Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (3 lines)
> * gnu/packages/jami.scm
> (define-module): Use the "backup" module.

While I never really know what to put for the changelog, I don't
normally put anything in about use-module things.

Toggle quote (38 lines)
> (%jami-version, %libring-commit, %libring-revision): New variables.
> (jami-source): Rename procedure to (libring-source).
> (libring-source)[without-daemon]: Rename keyword to [without-contrib].
> [origin]: Fetch from git, update path to the contrib directory,
> update hash and commit.
> (libring)[source]: Use (libring-source).
> [version]: Use the (%jami-version, %libring-commit, %libring-revision) variables.
> [inputs]: Add libarchive, remove obsolete comment - there's pjproject-jami already.
> [arguments]: Do not chdir to "daemon" - due to fetching from git,
> we're in the proper directory already.
> ---
> gnu/packages/jami.scm | 36 +++++++++++++++++++-----------------
> 1 file changed, 19 insertions(+), 17 deletions(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index d5cb3b62f6..06aeafea5d 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -23,6 +23,7 @@
> #:use-module (gnu packages aidc)
> #:use-module (gnu packages audio)
> #:use-module (gnu packages autotools)
> + #:use-module (gnu packages backup)
> #:use-module (gnu packages base)
> #:use-module (gnu packages boost)
> #:use-module (gnu packages check)
> @@ -62,23 +63,29 @@
> #:use-module (guix utils)
> #:use-module (srfi srfi-1))
>
> -(define %jami-version "20200401.1.6f090de")
> +(define %jami-version "20200708-guix")
> +(define %libring-commit "07188b4a717e5ac6e582d71c895b74fbbfd02b24")
> +(define %libring-revision "0")
>
> -(define* (jami-source #:key without-daemon)
> +(define* (libring-source #:key without-contrib)

I believe this renaming will break some things, as not all the uses of
jami-source are changed in this commit.

I'm not really sure how strong the drive is to have all commits work,
but just in terms of reviewing the patches, but at least for reviewing
patches, I do find it useful if that's attempted, as it means that the
patches are more self-contained, and you don't have to keep trying to
look at multiple patches.

Just combining together the commits where the changes are tightly
related is fine, another approach would be to try and separate the
changes out in to separate commits by the type of change, like one
commit to change from using a tarball to the Git repository, and another
to update the versions of relevant packages.

Toggle quote (67 lines)
> (origin
> - (method url-fetch)
> - (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
> - %jami-version
> - ".tar.gz"))
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://review.jami.net/ring-daemon")
> + (commit %libring-commit)))
> + (file-name (git-file-name (if without-contrib
> + "libring-source-without-contrib"
> + "libring-source")
> + %jami-version))
> (modules '((guix build utils)))
> (snippet
> - (if without-daemon
> + (if without-contrib
> '(begin
> - (delete-file-recursively "daemon/contrib"))
> + (delete-file-recursively "contrib"))
> #f))
> (sha256
> (base32
> - "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
> + "05068ijvbd6gd9i14iz23dn5nc0fsphwa3hpdpqairqv00rr9h9b"))))
>
> ;; Savoir-Faire Linux modifies many libraries to add features
> ;; to Jami. This procedure makes applying patches to a given
> @@ -441,8 +448,8 @@
> (define-public libring
> (package
> (name "libring")
> - (version %jami-version)
> - (source (jami-source #:without-daemon #t))
> + (version (git-version %jami-version %libring-revision %libring-commit))
> + (source (libring-source #:without-contrib #t))
> (build-system gnu-build-system)
> (inputs
> `(("alsa-lib" ,alsa-lib)
> @@ -462,6 +469,7 @@
> ("opus" ,opus)
> ("pcre" ,pcre)
> ("pulseaudio" ,pulseaudio)
> + ("libarchive" ,libarchive)
> ("libsamplerate" ,libsamplerate)
> ("libsndfile" ,libsndfile)
> ("speex" ,speex)
> @@ -479,8 +487,6 @@
> ("restinio" ,restinio)
> ("libx11" ,libx11)
> ("asio" ,asio)
> - ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
> - ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
> ("pjproject" ,pjproject-jami)))
> (native-inputs
> `(("autoconf" ,autoconf)
> @@ -494,10 +500,6 @@
> `(#:tests? #f ; The tests fail to compile due to missing headers.
> #:phases
> (modify-phases %standard-phases
> - (add-after 'unpack 'change-directory
> - (lambda _
> - (chdir "daemon")
> - #t))
> (add-before 'build 'add-lib-dir
> (lambda _
> (mkdir-p "src/lib")
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8KGD1fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xex5g//ZTjwGJ5Ok3iQgcnTgglRwiNJ6CfiIzK1dlewAO0leDLtscabryj3OpA5
k8SEcz/hsPoMIZNxZq/+wwetmnBqHR773i74vsHMJBxeSCkI/Udwf6qiyhK6RAWs
0gVPM9lVLX2oHZDJiy4Xelh/9DaINLnE8XN55aUDpvZfWaA4trNQ1rIkFP9qzfAf
Ufa+A0C3RXN48q3pXv5Z9TMSqHLy3jtYgm7g2veBLUuDg9wD7UFELmSrjeUsRrIv
qBQ8W4SbQRUlJk0hKrjE4HugbVWT06N9bCa6sOc1M8FihsAjb5B0nnYxewxiWL2y
WECvm3izxAdgFG3yqxlCKAQNoAKti8vuORd6TmZ3ERLd0Yd/6rxxkYNf7npFPxM7
IZpgC9xCyiD9vfl1uNWV1xKftO3FEfX3dz1Eq8mTME8zNEMJiUJ8xkQZhHL2Q7m2
OHQ3S3Caa7GnyMjvbTYs5OkCOKiA1iBl7f8Vx+3Mbdv75y/f9Vo1EXaTFBtV1zX6
oCHMfUCWKqFT8RAR3pqXJNe7aj/HW5OUceqDsdU9CYEGs9QO4Ez3QK0iO8ctTASf
FQFEaHTRV+5wWq1ee/lGjJ2oJ1xhPvKUs8CY8jgJuay0upz+gKKZWAzSUgRAkn8g
xjO12IZ2ropY4v/p/Y+kQhVDIp3T1K9t3dv/pabKZ40385UCTbk=
=fChg
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 11 Jul 2020 21:52
Re: [bug#42229] [[PATCH V2] 03/10] gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply patches from the new libring source.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87r1thkew7.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (79 lines)
> * gnu/packages/jami.scm:
> (libring-source): [without-contrib] is now true by default.
> (jami-apply-dependency-patches): Do not invoke tar,
> patches are now fetched from git.
> Apply "--ignore-whitespace" to patch to prevent failing.
> (pjproject-jami)[native-inputs]: Use (libring-source) procedure instead of
> (jami-source).
> [arguments]: Add new patches.
> (ffmpeg-jami)[native-inputs]: Use (libring-source) procedure instead of
> (jami-source).
> ---
> gnu/packages/jami.scm | 23 +++++++++++------------
> 1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index abb0edc933..1da50d7744 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -67,7 +67,7 @@
> (define %libring-commit "07188b4a717e5ac6e582d71c895b74fbbfd02b24")
> (define %libring-revision "0")
>
> -(define* (libring-source #:key without-contrib)
> +(define* (libring-source #:key (without-contrib #t))
> (origin
> (method git-fetch)
> (uri (git-reference
> @@ -92,16 +92,13 @@
> ;; package easy.
> (define jami-apply-dependency-patches
> '(lambda* (#:key inputs dep-name patches)
> - (let ((patches-directory "sfl-patches"))
> - (mkdir-p patches-directory)
> - (invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches")
> - "-C" patches-directory
> - "--strip-components=5"
> - (string-append "ring-project/daemon/contrib/src/"
> - dep-name))
> + (let ((patches-directory (string-append
> + (assoc-ref inputs "sfl-patches")
> + "/contrib/src/" dep-name)))
> (for-each
> (lambda (file)
> - (invoke "patch" "--force" "-p1" "-i"
> + (invoke "patch" "--force"
> + "--ignore-whitespace" "-p1" "-i"
> (string-append patches-directory "/"
> file ".patch")))
> patches))))
> @@ -111,7 +108,7 @@
> (inherit pjproject)
> (name "pjproject-jami")
> (native-inputs
> - `(("sfl-patches" ,(jami-source))
> + `(("sfl-patches" ,(libring-source #:without-contrib #f))
> ,@(package-native-inputs pjproject)))
> (arguments
> `(#:tests? #f
> @@ -174,7 +171,9 @@
> "0006-ignore_ipv6_on_transport_check"
> "0007-pj_ice_sess"
> "0008-fix_ioqueue_ipv6_sendto"
> - "0009-add-config-site"))
> + "0009-add-config-site"
> + "0010-fix-pkgconfig"
> + "0011-fix-tcp-death-detection"))
> #t)))
> ;; TODO: We could use substitute-keyword-arguments instead of
> ;; repeating the phases from pjproject, but somehow it does
> @@ -414,7 +413,7 @@
> (inherit ffmpeg)
> (name "ffmpeg-jami")
> (native-inputs
> - `(("sfl-patches" ,(jami-source))
> + `(("sfl-patches" ,(libring-source #:without-contrib #f))
> ("libiconv" ,libiconv)
> ,@(package-native-inputs ffmpeg)))
> (supported-systems '("x86_64-linux" "i686-linux"

Relating to my comment on the first patch on this series, these changes
here look like part of that change.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8KGJhfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XdZ7A/+MXo/Xja90meJ5fNAq3DdA0Sg6HlcbKZV5BJM2ZM5qXizKA2NxEKz5A21
n+i9leR5kmasRBo8V1ciFKLcYXfmcBgW0NNwYOwhnxPh4kB5Rb53RslIz84JvVJf
AVgWsEAzPOQaMWeJ/V51u9eSB5bd5mvjK5bflcXt5Lp0SjTyLWJ+2NFQLmKsHmbF
1N6r9Azgjcu3LDQxOqvkM20C5jrRo0dAJr3eBfdyeFUqviTpC4d/NtY7i5D/KRbI
f5fPVpnlVbaNOIrOFR/HAq2f8ipAm6jAGPy4S5Y2/HVHXS4YyZWk2ohyam99TnjU
JGVteOnINxoClGoPrJhtd32AQgxiiX3XC9uxw1wTFWePczZXpoM+FWqrNn2MrehW
XyhFet0F7ePUCRtSc7gmg+wR5tqNYEaEH9SVrSxk7uwlZh7rnzhS1IsLPmFYBF3X
qTL50p8eyVX9slYdeO+LvjjEKFAtypgvtGJydRqTHqFfmtuPHdrr8TLhoyFA3LO5
CqUkO4o4YqVAuyR6TOPbeUk7UYzGRE9FxkNGiq7y6uL3CAOp+9aVVDFsJ0LEmWV5
o0wh8AJ6dX6kaRZzNtUvZUwnRVeDsSanRRN97hNUdX8j8B+3VEmWa4ZT3q+6lyIr
rD3qRLce/XtiE221OcGNciIDIImUzdORQ/eD0pmsGESXyhDSrFA=
=lfmE
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 11 Jul 2020 21:57
Re: [bug#42229] [[PATCH V2] 05/10] gnu: pjproject-jami: Make sure phases are run in order.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87o8olkeo1.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (20 lines)
> * gnu/packages/jami.scm (pjproject-jami)[arguments]:
> Add 'apply-patches after 'make-git-checkout-writable.
> ---
> gnu/packages/jami.scm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index a9ccf67380..a770d52d2e 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -153,7 +153,7 @@
> (lambda _
> (for-each make-file-writable (find-files "."))
> #t))
> - (add-after 'unpack 'apply-patches
> + (add-after 'make-git-checkout-writable 'apply-patches
> (lambda* (#:key inputs #:allow-other-keys)
> (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
> ;; Comes from

I don't really follow this change, is this part of the switch to using a
Git repository as the source of the package? (if so, then being part of
that commit would be good).
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8KGb5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xc2KA/+IsqfMnxn+qHlbRvsj5wReXzVn6BVqBFHy9wrghS1AGq0QI8j1j8lF8P0
mrVm30VXTd7VAzUfSWRQpy7Y+LrYTeOzKFc5Uj3TSorR45Cy/h53XV5ijNfjzljW
OOAPnmi117HfZ1YM2qWGPyVEduDtEvkoJzzmsu3LbyU/o32WsZFXddeDOZVP6pNp
eXY0xfwbGoKgjIouU2Fxfyb8+ag+ICSDgsX3zpzCDGbvF5ZRsa3rPxOGDw5WkuJI
cmXI/VP1Kp9sC1RH403Q/Py0cb5BiTab/RJWDVakj6wrp3mmc6dqfox/XXvaYXgb
2wgWjI9ArTwJtncd00nYRbSF2NHQ1pvV/RizIR3C2HbdMDnhodVwFHvLcRTwTddZ
CZ1P4uuf6x1HahOHIMNyX5y4O6YGUJUz3I7somRJSo5cEakyWlHKZtbC8DqTMCdE
HvTR1vbuLOxLBVGEpX8Fef06fDzMS1kpgOeEcM6fiFGQ5aWDYfwC80vWbjyRe6Ue
jelEvwxlUjtfD6HkrjdcTAketMIJUaXClcnwD9NQYriYFX/4WrRyTKMXQheVvqAC
zzzZR0qOXh2OJf8Ekbe5oOvNbt78AZaS4i7K0/Dx3VqJNuG7SN2M8Eh+1MY1ioMr
USAyrNUd0cQcakC2Xpn5UXU9tvybeS5XE2FX95XeWSzUxqWMtww=
=MXGY
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 11 Jul 2020 22:12
Re: [bug#42229] [[PATCH V2] 09/10] gnu: opendht: Fix libring compilation.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87lfjpkdz3.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (8 lines)
> The 2.1.4 release of opendht contains a bug, which
> breaks libring compilation. This commit fixes this.
>
> * gnu/packages/patches/opendht-fix-jami.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> * gnu/packages/networking.scm (opendht)[source]:
> Apply the patch.

This looks good, although this patch would be better earlier in the
series, given I'm guessing it won't break the old jami package, but it
will prevent the new one from building.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8KHUBfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XfsYBAArz24WXdbLXqmWJrsFRzeQQMrUKvUU2VP57wAK9WeF5J2HKh4LJdl9mxV
yKV2H7ZIGFdi8TkwIku2QhUlv1GdF7ePuhDVD6HMGdyJKFSI/XTqzyq28/wSu9f8
IP1lQW9ow5YTMV+gYeiFZMwUXF6tRX6GdFhI8C15sRVWqk97wY3HrjxIagauRa/E
o2oFZ5F1nBmao/k/D4FDvHVewMZy67FIMAAc+WBXQ+lG3PnBuokEZP+V0mq0fIYd
450PRu/JXdTUxyZmcnTpJlQNBM521ShBpAF6IwnRm5XlufFYTpGlCuYfBlYPMjs9
jcu4FKkRqrxnW8BXE0ztdNSelbgBbscAoOXz7G+Rc+DcyT+3l3BFhm5hIvCzw7Zo
zWxSFhYv83SUbA6QvZ0ClB5Q3JZTJP3tgDwCAwjPlbVi+uz+qj17pIhsepnV5y/i
E5t653JBAFg3F0Ev21sUD8L/WKm1bH6iSTIPOvMKoC2hpJDG3eUhiW4m6aPIood6
8VHhNrH3sr5RVpjji3CgREm/zLgI4OltXBD8OHSzniUJB8nYCFxdOBA1YYj51cdd
i4I9ycC+3k+Ykb7A5WbzDgY+UYK8bT7/bMlZ3z/pWiARgZLpYghKsdCqsQSCIonc
K6nV3k7+fXqx4AH6eA9QmEd4Ng55MG6d5/3tCGhGstR+UoGGQJ0=
=lt9Y
-----END PGP SIGNATURE-----

J
J
Jan Wielkiewicz wrote on 12 Jul 2020 18:00
[[PATCH v3] 1/4] gnu: jami-client-gnome: Remove deprecated package.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200712160049.6541-1-tona_kosmicznego_smiecia@interia.pl
This package has been deprecated for over a year.

* gnu/packages/jami.scm (jami-client-gnome): Remove variable.
---
gnu/packages/jami.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (13 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index d5cb3b62f6..a00d3cc2e2 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -591,5 +591,4 @@ This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+)))
-(define-public jami-client-gnome
- (deprecated-package "jami-client-gnome" jami))
+
--
2.27.0
J
J
Jan Wielkiewicz wrote on 12 Jul 2020 18:00
[[PATCH v3] 3/4] gnu: jami: Bump to 20200710.1.6bd18d2.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200712160049.6541-3-tona_kosmicznego_smiecia@interia.pl
* gnu/packages/jami.scm (%jami-version): Bump to 20200710.1.6bd18d2.
(jami-source)[origin]: Andjust the hash.
(pjproject-jami)[arguments]: Add new patches.
(libring)[inputs]: Add libarchive.
---
gnu/packages/jami.scm | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

Toggle diff (52 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a00d3cc2e2..b164169e66 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -23,6 +23,7 @@
#:use-module (gnu packages aidc)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -62,7 +63,7 @@
#:use-module (guix utils)
#:use-module (srfi srfi-1))
-(define %jami-version "20200401.1.6f090de")
+(define %jami-version "20200710.1.6bd18d2")
(define* (jami-source #:key without-daemon)
(origin
@@ -78,7 +79,7 @@
#f))
(sha256
(base32
- "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
+ "0lg61jv39x7kc9lq30by246xb6gcgp1rzj49ak7ff8nqpfzyfvva"))))
;; Savoir-Faire Linux modifies many libraries to add features
;; to Jami. This procedure makes applying patches to a given
@@ -167,7 +168,10 @@
"0006-ignore_ipv6_on_transport_check"
"0007-pj_ice_sess"
"0008-fix_ioqueue_ipv6_sendto"
- "0009-add-config-site"))
+ "0009-add-config-site"
+ "0010-fix-pkgconfig"
+ "0011-fix-tcp-death-detection"
+ "0012-fix-turn-shutdown-crash"))
#t)))
;; TODO: We could use substitute-keyword-arguments instead of
;; repeating the phases from pjproject, but somehow it does
@@ -455,6 +459,7 @@
("gsm" ,gsm)
("jack" ,jack-1)
("jsoncpp" ,jsoncpp)
+ ("libarchive" ,libarchive)
("libnatpmp" ,libnatpmp)
("libogg" ,libogg)
("libva" ,libva)
--
2.27.0
J
J
Jan Wielkiewicz wrote on 12 Jul 2020 18:00
[[PATCH v3] 4/4] gnu: pjproject-jami: Fix assertion bug.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200712160049.6541-4-tona_kosmicznego_smiecia@interia.pl
This fixes the bug where Jami crashes while disconnecting
from an audio call.

* gnu/packages/jami.scm (pjproject-jami)[arguments]:
Use -DNDEBUG compiler flag.
---
gnu/packages/jami.scm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

Toggle diff (19 lines)
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index b164169e66..0fb547e233 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -142,8 +142,10 @@
;; against pjproject-jami:
;; relocation R_X86_64_32S against `.rodata' can not be used when
;; making a shared object;
- "CFLAGS=-fPIC"
- "CXXFLAGS=-fPIC")
+ ;; -DNDEBUG is needed to prevent assertion from happening and
+ ;; stopping the daemon.
+ "CFLAGS=-fPIC -DNDEBUG"
+ "CXXFLAGS=-fPIC -DNDEBUG")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
--
2.27.0
J
J
Jan Wielkiewicz wrote on 12 Jul 2020 18:00
[[PATCH v3] 2/4] gnu: opendht: Fix compilation of software using this package.
(address . 42229@debbugs.gnu.org)(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
20200712160049.6541-2-tona_kosmicznego_smiecia@interia.pl
The 2.1.4 release of opendht contains a bug, which makes it
impossible to terminate a http request, making it unusable.
I patched the version with this commit:

* gnu/packages/patches/opendht-fix-jami.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/networking.scm (opendht)[source]:
Apply the patch.
---
gnu/local.mk | 1 +
gnu/packages/networking.scm | 1 +
gnu/packages/patches/opendht-fix-jami.patch | 33 +++++++++++++++++++++
3 files changed, 35 insertions(+)
create mode 100644 gnu/packages/patches/opendht-fix-jami.patch

Toggle diff (65 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 3046a840c9..12795b754b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1344,6 +1344,7 @@ dist_patch_DATA = \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \
+ %D%/packages/patches/opendht-fix-jami.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index e6a9e69adf..44f81c94d1 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2918,6 +2918,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(url "https://github.com/savoirfairelinux/opendht.git")
(commit version)))
(file-name (git-file-name name version))
+ (patches (search-patches "opendht-fix-jami.patch"))
(sha256
(base32
"1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal"))))
diff --git a/gnu/packages/patches/opendht-fix-jami.patch b/gnu/packages/patches/opendht-fix-jami.patch
new file mode 100644
index 0000000000..9718a84a41
--- /dev/null
+++ b/gnu/packages/patches/opendht-fix-jami.patch
@@ -0,0 +1,33 @@
+From e2b39dd3a0742853e00f9c3e8c46c911da20bed7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
+Date: Tue, 30 Jun 2020 10:42:49 -0400
+Subject: [PATCH 1/4] http/request: make terminate public
+
+---
+ include/opendht/http.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/include/opendht/http.h b/include/opendht/http.h
+index cc8d5f9..46b722c 100644
+--- a/include/opendht/http.h
++++ b/include/opendht/http.h
+@@ -294,6 +294,7 @@ public:
+ * User action to cancel the Request and call the completion callbacks.
+ */
+ void cancel();
++ void terminate(const asio::error_code& ec);
+
+ private:
+ using OnCompleteCb = std::function<void()>;
+@@ -320,8 +321,6 @@ private:
+
+ void connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, HandlerCb cb = {});
+
+- void terminate(const asio::error_code& ec);
+-
+ void post();
+
+ void handle_request(const asio::error_code& ec);
+--
+2.27.0
+
--
2.27.0
C
C
Christopher Baines wrote on 12 Jul 2020 21:36
Re: [bug#42229] [[PATCH v3] 1/4] gnu: jami-client-gnome: Remove deprecated package.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87imesjzjq.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (19 lines)
> This package has been deprecated for over a year.
>
> * gnu/packages/jami.scm (jami-client-gnome): Remove variable.
> ---
> gnu/packages/jami.scm | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index d5cb3b62f6..a00d3cc2e2 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -591,5 +591,4 @@ This package provides the Jami client for the GNOME desktop.")
> (home-page "https://jami.net")
> (license license:gpl3+)))
>
> -(define-public jami-client-gnome
> - (deprecated-package "jami-client-gnome" jami))
> +

I tweaked this patch just to clean up the whitespace at the bottom of
the file, and add a "As" to the commit message.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8LZklfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XfGGA//VFC1Y1Ks0QNBHspQNqoLOdP41X1jfOD/38ED6khJhTKfUry+gDP4IXa6
F1cSdeoY/rn1Y99LpRxr4ZPhlIBB9r8Ma3TCXilwGyOzB5CLvAGZhc7JDkxJXUen
x1g1Uevd1lDZeezvcbhlFDOEE2vyq+SwtKh9lWcvt3XnrL6w6r2EIHougLJwGPY/
ILMZ55JFhHnqtLypavlcehwv17AHwfEn8pMOm/2B8uj4NluuPnTFzY6PD4OvWiyS
s9AmCT4xqx4B8YdTVMQDRVMU6OFNSq4WnSUhjAXGARyGG1g84ZS0u/UFfGnDn26z
F/rAH84J9eHU9NgNL11pwGF7NQfHNSyZBtAHUWXT803xsCh36ZlVqNeDYcLUvxBV
3lnnK9RJc9R55fo0rbKn86iIjmGp9JVkaZMZjUxETUEHzwZGk/4wQ2p5rqJfhdNH
JAhY0RQHtitaCwArMW22+aU6iGSP+tOSPn4/xTEytUCTU5wSmqpCM7N6VxgYE/V8
MCBwz0wsMVkuXT7LdGwThJbblpG4qrQagIWM6uK3CSPwK5Ft5dcCHdbbXwv/dbWS
oIIaSdnt3pDr1Ido1l85EbqYykhn8MoKVWYW0PJ4EamWdisQlAryGheWiuJHvcCu
iScWz7nfHV4JEKcl8kdJ34FvZZNe0qudarZ2Hn4XfgQOBj3ngXc=
=V/r0
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 12 Jul 2020 21:40
Re: Jami: Status update
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)
87ft9wjzdo.fsf@cbaines.net
Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (4 lines)
> But I made a smaller, better patch set containing only the necessary
> changes to make Jami working and up to date, until I discover why the
> typing indicator is not there and clean up the mess.

I've gone ahead and pushed those 4 patches, with just a few minor
tweaks.

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl8LZyNfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xea/A//YlVz16zn5ae7PSoyAiZ+NEu7mElLLr5J/wKZmVEAo81a98rPhyLse1O3
ASF8cT42spfqYHqWYWcGrBiFnC//uHoHaJuq6pAMh9eYdZnPPWYThaInlHEqUdka
AqhmAvdriAGdEMaupZ4axy0h1vMwz5ROcLmW0V+lUOtO2p3vF2k2EJm5OLQWABLl
1MH2EC3g/nYYiMlm8rCRgtNx2eYyQFvti/dptL71mFjvvePRdmq3n/yjurZKKJXr
sNp6b3Gy1Myd9O69O4VWYlEShVgsg4klS6T5CjZhc/iqPw0WkBhxlRPdPsl9sO+H
znMkyzftq7sZ6N3sO97NtPwtNf3PXyphebhavxXIKvzXOvRc7sl9MW54BG7f3hSj
4n8yFxgjop7MTEUMIbPNj0n2b58jZe4oNA27LuOOKRAAdIF+bZtxPKNZdTHo3TAx
9Joko3bYklWWFDBGPN7FQPj30YpwBqtsFL9Rn5R1JH9qSJPY/sWTylhaa7gJboU8
G1R+3L+HFIAZjmJSwMAl8bxK+4qxoFc/4azlKjr3FubHqc8Z7lcy7Oy5SUP9cU/y
+1rD66PQ8acCWWwRe5XGTdUUrWpP0pjncQyjxRcqE+YpZJakB4B5S6/QOUzXgxhh
Gn0vepuoOppS3fOs0nGy7px8s+VAk4bUlxgzYbeKHeYdaM6OF8Y=
=VrYF
-----END PGP SIGNATURE-----

M
M
maxim.cournoyer wrote on 4 Aug 2020 06:20
Re: [bug#42229] [PATCH 5/9] gnu: pjproject-jami: Make sure phases are run in order.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
873653f3e4.fsf@hurd.i-did-not-set--mail-host-address--so-tickle-me
Hi Jan,

Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (20 lines)
> * gnu/packages/jami.scm (pjproject-jami)[arguments]:
> Add 'apply-patches after 'make-git-checkout-writable.
> ---
> gnu/packages/jami.scm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index a6ce1aaa3f..a45b056d51 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -153,7 +153,7 @@
> (lambda _
> (for-each make-file-writable (find-files "."))
> #t))
> - (add-after 'unpack 'apply-patches
> + (add-after 'make-git-checkout-writable 'apply-patches
> (lambda* (#:key inputs #:allow-other-keys)
> (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
> ;; Comes from

I made some changes to our base pjproject and could simplify the
definition of pjproject-jami to only adding the apply-patches phase.
The phase is sequenced like above.

Let me know if you spot any issue with that work :-).

Maxim
M
M
maxim.cournoyer wrote on 4 Aug 2020 06:40
Re: [bug#42229] [PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files.
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229@debbugs.gnu.org)
87zh7bdnwm.fsf@hurd.i-did-not-set--mail-host-address--so-tickle-me
Hello Jan!

Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (78 lines)
> * gnu/packages/jami.scm (define-module): Add copy-build-system.
> (libringclient)[source]: Delete chatview files.
> [arguments]: Remove chatview files from CMakeLists.txt.
> (jami-chatview): New variable.
> (jami)[source]: Delete chatview directory.
> [inputs]: Add jami-chatview.
> [arguments]: Copu chatview files to destination.
> ---
> gnu/packages/jami.scm | 80 ++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 79 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index ea94efb2f9..58e10ae6d8 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -56,6 +56,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 download)
> #:use-module (guix git-download)
> @@ -526,6 +527,16 @@ functionality.")
> (url "https://review.jami.net/ring-lrc")
> (commit commit)))
> (file-name (git-file-name name version))
> + (modules '((guix build utils)))
> + ;; The chatview is a common code among Jami clients.
> + ;; Since Guix likes functional design, I'm removing
> + ;; the directory containing it and making it a new
> + ;; package. The other reason is that there is no
> + ;; any rule in the build system to check if it is
> + ;; included.
> + (snippet
> + '(begin
> + (delete-file-recursively "src/web-chatview")))
> (sha256
> (base32
> "1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
> @@ -542,6 +553,21 @@ functionality.")
> (assoc-ref %build-inputs "libring") "/include"))
> #:phases
> (modify-phases %standard-phases
> + (add-after 'unpack 'do-not-install-chatview
> + (lambda _
> + (substitute* "CMakeLists.txt"
> + (("src/web-chatview/.eslintrc.json") "")
> + (("src/web-chatview/chatview-gnome.css") "")
> + (("src/web-chatview/chatview.css") "")
> + (("src/web-chatview/chatview.html") "")
> + (("src/web-chatview/chatview.js") "")
> + (("src/web-chatview/jed.js") "")
> + (("src/web-chatview/linkify-html.js") "")
> + (("src/web-chatview/linkify-string.js") "")
> + (("src/web-chatview/linkify.js") "")
> + (("src/web-chatview/qwebchannel.js") "")
> + (("src/web-chatview/web.gresource.xml") ""))
> + #t))
> (add-before 'configure 'fix-dbus-interfaces-path
> (lambda* (#:key inputs #:allow-other-keys)
> (substitute* "CMakeLists.txt"
> @@ -558,6 +584,40 @@ This package provides a library common to all Jami clients.")
> (home-page "https://jami.net")
> (license license:gpl3+))))
>
> +(define-public jami-chatview
> + (let ((commit "0a790d86a20ae80e5d2ee0d35452fa77cfb8cc40")
> + (revision "0"))
> + (package
> + (name "jami-chatview")
> + (version (git-version %jami-version revision commit))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://review.jami.net/jami-chatview")
> + (commit commit)))

This doesn't seem to be the canonical place to get the latest chatview.
Rather, it lives in the LRC repo [0]. It was copied there sometime in 2019,
and no new commit were made to the repo you used above since.


Toggle quote (68 lines)
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "1zb3qa1x37kclbgk4wdg6qp4ivr6513ypj8s4k0qjps7h2clgna8"))))
> + (build-system copy-build-system)
> + (arguments
> + '(#:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'allow-copying
> + (lambda* (#:key inputs #:allow-other-keys)
> + ;; Permissions of this file are not right.
> + ;; Let's change this to allow installing it properly.
> + (chmod ".eslintrc.json" #o644)
> + #t)))
> + #:install-plan '(("." "include/libringclient/web-chatview")
> + (".eslintrc.json"
> + "include/libringclient/web-chatview/.eslintrc.json"))))
> + (synopsis "Chatview for Jami")
> + (description "Web chatview for Jami - html, css, js files.
> +It provides some common code for Jami clients.")
> + (home-page "https://jami.net")
> + (license license:gpl3+))))
> +
> (define-public jami
> (let ((commit "85cda2e1fde84230f6b9f5419f9ec1e23867c2a1")
> (revision "0"))
> @@ -570,6 +630,11 @@ This package provides a library common to all Jami clients.")
> (url "https://review.jami.net/ring-client-gnome")
> (commit commit)))
> (file-name (git-file-name name version))
> + (modules '((guix build utils)))
> + ;; The web directory contains links to nowhere
> + (snippet
> + '(begin
> + (delete-file-recursively "web")))
> (sha256
> (base32
> "0xzcx8x04yc8m8b2vf7sxfgw79idbm0hifzaw4s2vh26hyy9sp2g"))))
> @@ -584,6 +649,8 @@ This package provides a library common to all Jami clients.")
> ("clutter-gtk" ,clutter-gtk)
> ("libcanberra" ,libcanberra)
> ("libnm" ,network-manager)
> + ("jami-chatview" ,jami-chatview)
> + ("qtbase" ,qtbase)
> ("webkitgtk" ,webkitgtk)
> ("sqlite" ,sqlite)))
> (native-inputs
> @@ -596,7 +663,18 @@ This package provides a library common to all Jami clients.")
> ("adwaita-icon-theme" ,adwaita-icon-theme)
> ("evolution-data-server" ,evolution-data-server)))
> (arguments
> - `(#:tests? #f)) ; There is no testsuite.
> + `(#:tests? #f ; There is no testsuite.
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'copy-chatview-files
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((chatview
> + (string-append
> + (assoc-ref inputs "jami-chatview")
> + "/include/libringclient/web-chatview"))
> + (destination-dir "web"))
> + (copy-recursively chatview destination-dir))
> + #t)))))
> (synopsis "Distributed, privacy-respecting communication program")
> (description "Jami (formerly GNU Ring) is a secure and distributed voice,
> video and chat communication platform that requires no centralized server and

As I understand it, jami-chatview is *not* maintained as a distinct
component upstream, hence it makes little sense to maintain it as one in
Guix: it'd burden us with maintaining it, with little to no gain. IIUC,
all we need is to symlink the web-chatview from the lrc package, which
every Jami clients will already depend on.

The suggestion I'd make to upstream is to *install* those files as part
of a LRC installation (somewhere under share/), and then have the build
system check for their presence at configure time and use them directly.

Does that make sense?

Maxim
J
J
Jan Wielkiewicz wrote on 4 Aug 2020 15:02
(address . maxim.cournoyer@gmail.com)(address . 42229@debbugs.gnu.org)
20200804150226.7efad1dd@interia.pl
Dnia 2020-08-04, o godz. 00:40:25
maxim.cournoyer@gmail.com napisa?(a):

Toggle quote (2 lines)
> Hello Jan!

Hi!

Toggle quote (4 lines)
> This doesn't seem to be the canonical place to get the latest
> chatview. Rather, it lives in the LRC repo [0]. It was copied there
> sometime in 2019, and no new commit were made to the repo you used
> above since.
Didn't notice that, thanks. I was too busy looking for the source of
the pjproject bug.

Toggle quote (8 lines)
> [0]
> https://git.jami.net/savoirfairelinux/ring-lrc/commits/master/src/web-chatview
>
> As I understand it, jami-chatview is *not* maintained as a distinct
> component upstream, hence it makes little sense to maintain it as one
> in Guix: it'd burden us with maintaining it, with little to no gain.
> IIUC, all we need is to symlink the web-chatview from the lrc
> package, which every Jami clients will already depend on.
I was hoping Jami developers will make it a separate package or at
least add some CMake rules to install it properly, but they're busy
doing other things. The problem is it is file when installing from
a tarball, but libringclient fetched from git only contains symlinks in
./webchat pointing to a higher directory "../../" - this doesn't make
sense outside of the context of tarball or source fetched to right
directories.

Toggle quote (6 lines)
> The suggestion I'd make to upstream is to *install* those files as
> part of a LRC installation (somewhere under share/), and then have
> the build system check for their presence at configure time and use
> them directly.
>
> Does that make sense?
Yes. I'm lazily refactoring my code allowing fetching from git - I made
a diff of directories of Jami built from tarball and from git and I
exactly know where to place webchat. I'll just fix the libringclient
package.

Toggle quote (2 lines)
> Maxim

Thanks
Jan Wielkiewicz
J
J
Jan Wielkiewicz wrote on 4 Aug 2020 15:05
Re: [bug#42229] [PATCH 5/9] gnu: pjproject-jami: Make sure phases are run in order.
(address . maxim.cournoyer@gmail.com)(address . 42229@debbugs.gnu.org)
20200804150525.634d051e@interia.pl
Dnia 2020-08-04, o godz. 00:20:35
maxim.cournoyer@gmail.com napisa?(a):

Toggle quote (7 lines)
> Hi Jan,
>
> Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:
>
> I made some changes to our base pjproject and could simplify the
> definition of pjproject-jami to only adding the apply-patches phase.
> The phase is sequenced like above.
Nice, pjproject was too complicated for me to handle. Does the package
work now? I mean vanilla pjproject, it didn't work without jami patches
and settings before.

Toggle quote (2 lines)
>
> Let me know if you spot any issue with that work :-).
It's Jami, if it works, it means something failed :)
I'll try it.

Toggle quote (3 lines)
> Maxim


Jan Wielkiewicz
M
M
Maxim Cournoyer wrote on 31 Mar 2021 07:27
Re: bug#42229: [PATCH 0/9] Jami update and refactor
(name . Jan Wielkiewicz)(address . tona_kosmicznego_smiecia@interia.pl)(address . 42229-done@debbugs.gnu.org)
87tuorki56.fsf@gmail.com
Hi Jan,

Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

Toggle quote (24 lines)
> Hi,
>
> these commits update Jami to 20200702, switch fetch method to git,
> because the tarballs were unstable, add missing inputs and that's
> it.
>
> Jan Wielkiewicz (9):
> gnu: libring: Fetch from git, update to 20200702-guix.
> gnu: libringclient: Fetch from git, update to 20200702-guix.
> gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply
> patches from the new libring source.
> gnu: jami: Fetch from git, update to 20200702-guix.
> gnu: pjproject-jami: Make sure phases are run in order.
> gnu: jami: Add libnm as input.
> gnu: libringclient: Do not propagate qtbase in libringclient.
> gnu: jami: Fix compilation by providing necessary webchat files.
> gnu: pjproject-jami: Fix assertion by disabling debugging.
>
> gnu/packages/jami.scm | 285 ++++++++++++++++++++++++++++--------------
> 1 file changed, 189 insertions(+), 96 deletions(-)
>
>
> Jan Wielkiewicz

I think most items of value here were already merged; for a more recent
update, see a fresh patch set here: http://issues.guix.gnu.org/47513.
It adds jami-qt as well!

Feedback welcome.

I'm closing this one.

Thanks!

Maxim
Closed
?