all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#40677] Jami
@ 2020-04-17  0:00 Jan Wielkiewicz
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                   ` (5 more replies)
  0 siblings, 6 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:00 UTC (permalink / raw)
  To: 40677

Hello,

these commits are mainly updates, some improvements, I don't remember
it's late here :D


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
@ 2020-04-17  0:34 ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 02/30] gnu: jami: Bump to 20200203.1.5ee7e10 Jan Wielkiewicz
                     ` (29 more replies)
  2020-04-20 22:55 ` [bug#40677] Code review problems resolved Jan
                   ` (4 subsequent siblings)
  5 siblings, 30 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm      | 350 +++++++++++++++++++++++++++++++++++++
 gnu/packages/telephony.scm | 291 ------------------------------
 2 files changed, 350 insertions(+), 291 deletions(-)
 create mode 100644 gnu/packages/jami.scm

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
new file mode 100644
index 0000000000..cca420971c
--- /dev/null
+++ b/gnu/packages/jami.scm
@@ -0,0 +1,350 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages jami)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages aidc)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages telephony)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages upnp)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages webkit)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix packages))
+
+(define %jami-version "20191101.3.67671e7")
+
+(define* (jami-source #:key without-daemon)
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
+                        %jami-version
+                        ".tar.gz"))
+    (modules '((guix build utils)))
+    (snippet
+     (if without-daemon
+         '(begin
+            (delete-file-recursively "daemon/contrib"))
+         #f))
+    (sha256
+     (base32
+      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
+
+(define-public pjproject-jami
+  (package
+    (inherit pjproject)
+    (name "pjproject-jami")
+    (native-inputs
+     `(("savoir-faire-linux-patches" ,(jami-source))
+       ,@(package-native-inputs pjproject)))
+    (arguments
+     `(#:tests? #f
+       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
+       #:configure-flags
+       (list "--disable-oss"
+             "--disable-sound"
+             "--disable-video"
+             "--enable-ext-sound"
+             "--disable-speex-aec"
+             "--disable-g711-codec"
+             "--disable-l16-codec"
+             "--disable-gsm-codec"
+             "--disable-g722-codec"
+             "--disable-g7221-codec"
+             "--disable-speex-codec"
+             "--disable-ilbc-codec"
+             "--disable-opencore-amr"
+             "--disable-silk"
+             "--disable-sdl"
+             "--disable-ffmpeg"
+             "--disable-v4l2"
+             "--disable-openh264"
+             "--disable-resample"
+             "--disable-libwebrtc"
+             "--with-gnutls"
+             "--with-external-srtp"
+             ;; We need -fPIC or else we get the following error when linking
+             ;; against pjproject-jami:
+             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
+             ;;   making a shared object;
+             "CFLAGS=-fPIC"
+             "CXXFLAGS=-fPIC")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (add-after 'unpack 'apply-patches
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
+                   ;; Comes from
+                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+                   ;; WARNING: These amount for huge changes in pjproject.
+                   (savoir-faire-linux-patches
+                    '("fix_turn_alloc_failure"
+                      "rfc2466"
+                      "ipv6"
+                      "multiple_listeners"
+                      "pj_ice_sess"
+                      "fix_turn_fallback"
+                      "fix_ioqueue_ipv6_sendto"
+                      "add_dtls_transport"
+                      "rfc6544"
+                      "ice_config"
+                      "sip_config"
+                      "fix_first_packet_turn_tcp"
+                      "fix_ebusy_turn"
+                      "ignore_ipv6_on_transport_check"
+                      "fix_turn_connection_failure"
+                      ;; "uwp_vs" ; for windows
+                      "disable_local_resolution")))
+               (mkdir-p savoir-faire-linux-patches-directory)
+               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
+                       "-C" savoir-faire-linux-patches-directory
+                       "--strip-components=5"
+                       "ring-project/daemon/contrib/src/pjproject")
+               (for-each
+                (lambda (file)
+                  (invoke "patch" "--force" "-p1" "-i"
+                          (string-append savoir-faire-linux-patches-directory "/"
+                                         file ".patch")))
+                savoir-faire-linux-patches))
+             #t))
+         ;; TODO: We could use substitute-keyword-arguments instead of
+         ;; repeating the phases from pjproject, but somehow it does
+         ;; not work.
+         (add-before 'build 'build-dep
+           (lambda _ (invoke "make" "dep")))
+         (add-before 'patch-source-shebangs 'autoconf
+           (lambda _
+             (invoke "autoconf" "-v" "-f" "-i" "-o"
+                     "aconfigure" "aconfigure.ac")))
+         (add-before 'autoconf 'disable-some-tests
+           ;; Three of the six test programs fail due to missing network
+           ;; access.
+           (lambda _
+             (substitute* "Makefile"
+               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
+                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
+             #t)))))))
+
+(define-public libring
+  (package
+    (name "libring")
+    (version %jami-version)
+    (source (jami-source #:without-daemon #t))
+    (build-system gnu-build-system)
+    (inputs
+     ;; Missing (optional?) dep: libnatpmp.
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("dbus-c++" ,dbus-c++)
+       ("eudev" ,eudev)
+       ("ffmpeg" ,ffmpeg)
+       ("flac" ,flac)
+       ("gmp" ,gmp)
+       ("gsm" ,gsm)
+       ("jack" ,jack-1)
+       ("jsoncpp" ,jsoncpp)
+       ("libogg" ,libogg)
+       ("libva" ,libva)
+       ("opendht" ,opendht)
+       ("opus" ,opus)
+       ("pcre" ,pcre)
+       ("pulseaudio" ,pulseaudio)
+       ("libsamplerate" ,libsamplerate)
+       ("libsndfile" ,libsndfile)
+       ("speex" ,speex)
+       ("speexdsp" ,speexdsp)
+       ("libupnp" ,libupnp)
+       ("libvorbis" ,libvorbis)
+       ("libx264" ,libx264)
+       ("libvdpau" ,libvdpau)
+       ("yaml-cpp" ,yaml-cpp)
+       ("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("libsecp256k1" ,libsecp256k1)
+       ("python" ,python)
+       ("python-wrapper" ,python-wrapper)
+       ("restinio" ,restinio)
+       ("libx11" ,libx11)
+       ("asio" ,asio)
+       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
+       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
+       ("pjproject" ,pjproject-jami)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("cppunit" ,cppunit)
+       ("perl" ,perl)))                 ; Needed for documentation.
+    (arguments
+     `(#:tests? #f         ; The tests fail to compile due to missing headers.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "daemon")
+             #t))
+         (add-before 'build 'add-lib-dir
+           (lambda _
+             (mkdir-p "src/lib")
+             #t)))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library and daemon implementing the Jami core
+functionality.")
+    (home-page "https://jami.net/")
+    (license license:gpl3+)))
+
+(define-public libringclient
+  (package
+    (inherit libring)
+    (name "libringclient")
+    (build-system cmake-build-system)
+    (propagated-inputs
+     `(("libring" ,libring)     ; For 'dring'.
+       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
+       ("qttools" ,qttools)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:configure-flags
+       (list (string-append "-DRING_BUILD_DIR="
+                            (assoc-ref %build-inputs "libring") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "lrc")
+             #t))
+         (add-before 'configure 'fix-dbus-interfaces-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
+                (string-append (assoc-ref inputs "libring")
+                               dbus-interfaces-path-suffix))))))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library common to all Jami clients.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami
+  (package
+    (inherit libring)
+    (name "jami")
+    (build-system cmake-build-system)
+    (inputs
+     `(("libringclient" ,libringclient)
+       ("gtk+" ,gtk+)
+       ("qrencode" ,qrencode)
+       ("libnotify" ,libnotify)
+       ("clutter" ,clutter)
+       ("clutter-gtk" ,clutter-gtk)
+       ("gettext" ,gnu-gettext)
+       ("libcanberra" ,libcanberra)
+       ("webkitgtk" ,webkitgtk)
+       ;; TODO: We must wrap ring-client-gnome to force using the
+       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
+       ;; fails with:
+       ;;
+       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
+       ;;   undefined symbol: sqlite3_column_table_name16
+       ;;
+       ;; qtbase is built against sqlite-with-column-metadata but somehow
+       ;; jami-client-gnome ends up with both `sqlite' and
+       ;; `sqlite-with-column-metadata' as inputs and it seems that
+       ;; libqsqlite.so gets confused.
+       ("sqlite" ,sqlite-with-column-metadata)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("doxygen" ,doxygen)))
+    (propagated-inputs
+     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("evolution-data-server" ,evolution-data-server)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "client-gnome")
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
+               (wrap-program (string-append out "/bin/jami-gnome")
+                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
+             #t)))))
+    (synopsis "Distributed, privacy-respecting communication program")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides the Jami client for the GNOME desktop.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami-client-gnome
+  (deprecated-package "jami-client-gnome" jami))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 85c2f2ab5e..62bd8fd548 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -730,297 +730,6 @@ calls and messages")
 Initiation Protocol (SIP) and a multimedia framework.")
     (license license:gpl2+)))
 
-(define %jami-version "20191101.3.67671e7")
-
-(define* (jami-source #:key without-daemon)
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
-                        %jami-version
-                        ".tar.gz"))
-    (modules '((guix build utils)))
-    (snippet
-     (if without-daemon
-       '(begin
-          (delete-file-recursively "daemon/contrib"))
-       #f))
-    (sha256
-     (base32
-      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
-
-(define-public pjproject-jami
-  (package
-    (inherit pjproject)
-    (name "pjproject-jami")
-    (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
-       ,@(package-native-inputs pjproject)))
-    (arguments
-     `(#:tests? #f
-       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
-       #:configure-flags
-       (list "--disable-oss"
-             "--disable-sound"
-             "--disable-video"
-             "--enable-ext-sound"
-             "--disable-speex-aec"
-             "--disable-g711-codec"
-             "--disable-l16-codec"
-             "--disable-gsm-codec"
-             "--disable-g722-codec"
-             "--disable-g7221-codec"
-             "--disable-speex-codec"
-             "--disable-ilbc-codec"
-             "--disable-opencore-amr"
-             "--disable-silk"
-             "--disable-sdl"
-             "--disable-ffmpeg"
-             "--disable-v4l2"
-             "--disable-openh264"
-             "--disable-resample"
-             "--disable-libwebrtc"
-             "--with-gnutls"
-             "--with-external-srtp"
-             ;; We need -fPIC or else we get the following error when linking
-             ;; against pjproject-jami:
-             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
-             ;;   making a shared object;
-             "CFLAGS=-fPIC"
-             "CXXFLAGS=-fPIC")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-git-checkout-writable
-           (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
-         (add-after 'unpack 'apply-patches
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
-                   ;; Comes from
-                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
-                   ;; WARNING: These amount for huge changes in pjproject.
-                   (savoir-faire-linux-patches
-                    '("fix_turn_alloc_failure"
-                      "rfc2466"
-                      "ipv6"
-                      "multiple_listeners"
-                      "pj_ice_sess"
-                      "fix_turn_fallback"
-                      "fix_ioqueue_ipv6_sendto"
-                      "add_dtls_transport"
-                      "rfc6544"
-                      "ice_config"
-                      "sip_config"
-                      "fix_first_packet_turn_tcp"
-                      "fix_ebusy_turn"
-                      "ignore_ipv6_on_transport_check"
-                      "fix_turn_connection_failure"
-                      ;; "uwp_vs" ; for windows
-                      "disable_local_resolution")))
-               (mkdir-p savoir-faire-linux-patches-directory)
-               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
-                       "-C" savoir-faire-linux-patches-directory
-                       "--strip-components=5"
-                       "ring-project/daemon/contrib/src/pjproject")
-               (for-each
-                (lambda (file)
-                  (invoke "patch" "--force" "-p1" "-i"
-                          (string-append savoir-faire-linux-patches-directory "/"
-                                         file ".patch")))
-                savoir-faire-linux-patches))
-             #t))
-         ;; TODO: We could use substitute-keyword-arguments instead of
-         ;; repeating the phases from pjproject, but somehow it does
-         ;; not work.
-         (add-before 'build 'build-dep
-           (lambda _ (invoke "make" "dep")))
-         (add-before 'patch-source-shebangs 'autoconf
-           (lambda _
-             (invoke "autoconf" "-v" "-f" "-i" "-o"
-                     "aconfigure" "aconfigure.ac")))
-         (add-before 'autoconf 'disable-some-tests
-           ;; Three of the six test programs fail due to missing network
-           ;; access.
-           (lambda _
-             (substitute* "Makefile"
-               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))))
-
-(define-public libring
-  (package
-    (name "libring")
-    (version %jami-version)
-    (source (jami-source #:without-daemon #t))
-    (build-system gnu-build-system)
-    (inputs
-     ;; Missing (optional?) dep: libnatpmp.
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("dbus-c++" ,dbus-c++)
-       ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsm" ,gsm)
-       ("jack" ,jack-1)
-       ("jsoncpp" ,jsoncpp)
-       ("libogg" ,libogg)
-       ("libva" ,libva)
-       ("opendht" ,opendht)
-       ("opus" ,opus)
-       ("pcre" ,pcre)
-       ("pulseaudio" ,pulseaudio)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)
-       ("libupnp" ,libupnp)
-       ("libvorbis" ,libvorbis)
-       ("libx264" ,libx264)
-       ("libvdpau" ,libvdpau)
-       ("yaml-cpp" ,yaml-cpp)
-       ("zlib" ,zlib)
-       ("openssl" ,openssl)
-       ("libsecp256k1" ,libsecp256k1)
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("restinio" ,restinio)
-       ("libx11" ,libx11)
-       ("asio" ,asio)
-       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
-       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
-       ("pjproject" ,pjproject-jami)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("cppunit" ,cppunit)
-       ("perl" ,perl)))                 ; Needed for documentation.
-    (arguments
-     `(#:tests? #f         ; The tests fail to compile due to missing headers.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "daemon")
-             #t))
-         (add-before 'build 'add-lib-dir
-           (lambda _
-             (mkdir-p "src/lib")
-             #t)))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library and daemon implementing the Jami core
-functionality.")
-    (home-page "https://jami.net/")
-    (license license:gpl3+)))
-
-(define-public libringclient
-  (package
-    (inherit libring)
-    (name "libringclient")
-    (build-system cmake-build-system)
-    (propagated-inputs
-     `(("libring" ,libring)     ; For 'dring'.
-       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
-       ("qttools" ,qttools)))
-    (arguments
-     `(#:tests? #f                      ; There is no testsuite.
-       #:configure-flags
-       (list (string-append "-DRING_BUILD_DIR="
-                            (assoc-ref %build-inputs "libring") "/include"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "lrc")
-             #t))
-         (add-before 'configure 'fix-dbus-interfaces-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
-                (string-append (assoc-ref inputs "libring")
-                               dbus-interfaces-path-suffix))))))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library common to all Jami clients.")
-    (home-page "https://jami.net")
-    (license license:gpl3+)))
-
-(define-public jami
-  (package
-    (inherit libring)
-    (name "jami")
-    (build-system cmake-build-system)
-    (inputs
-     `(("libringclient" ,libringclient)
-       ("gtk+" ,gtk+)
-       ("qrencode" ,qrencode)
-       ("libnotify" ,libnotify)
-       ("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("libcanberra" ,libcanberra)
-       ("webkitgtk" ,webkitgtk)
-       ;; TODO: We must wrap ring-client-gnome to force using the
-       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
-       ;; fails with:
-       ;;
-       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
-       ;;   undefined symbol: sqlite3_column_table_name16
-       ;;
-       ;; qtbase is built against sqlite-with-column-metadata but somehow
-       ;; jami-client-gnome ends up with both `sqlite' and
-       ;; `sqlite-with-column-metadata' as inputs and it seems that
-       ;; libqsqlite.so gets confused.
-       ("sqlite" ,sqlite-with-column-metadata)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("doxygen" ,doxygen)))
-    (propagated-inputs
-     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("evolution-data-server" ,evolution-data-server)))
-    (arguments
-     `(#:tests? #f                      ; There is no testsuite.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "client-gnome")
-             #t))
-         (add-after 'install 'wrap
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
-               (wrap-program (string-append out "/bin/jami-gnome")
-                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
-             #t)))))
-    (synopsis "Distributed, privacy-respecting communication program")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides the Jami client for the GNOME desktop.")
-    (home-page "https://jami.net")
-    (license license:gpl3+)))
-
-(define-public jami-client-gnome
-  (deprecated-package "jami-client-gnome" jami))
-
 (define-public libtgvoip
   (package
     (name "libtgvoip")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 02/30] gnu: jami: Bump to 20200203.1.5ee7e10.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 03/30] gnu: jami: Fix downloading by changing the prefix to "jami_"; Use the "release" dir instead of the deprecated "ring-release" Jan Wielkiewicz
                     ` (28 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index cca420971c..0e6218c4a0 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -58,7 +58,7 @@
   #:use-module (guix git-download)
   #:use-module (guix packages))
 
-(define %jami-version "20191101.3.67671e7")
+(define %jami-version "20200203.1.5ee7e10")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -74,7 +74,7 @@
          #f))
     (sha256
      (base32
-      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
+      "0kx0y9jxyhgj6id6n3xxpm54i6b8dqyx9vxwkx505jvhlbxd2x7x"))))
 
 (define-public pjproject-jami
   (package
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 03/30] gnu: jami: Fix downloading by changing the prefix to "jami_"; Use the "release" dir instead of the deprecated "ring-release".
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 02/30] gnu: jami: Bump to 20200203.1.5ee7e10 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:16     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 04/30] gnu: jami: Add a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
                     ` (27 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 0e6218c4a0..8601ad718d 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -63,7 +63,7 @@
 (define* (jami-source #:key without-daemon)
   (origin
     (method url-fetch)
-    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
+    (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
                         %jami-version
                         ".tar.gz"))
     (modules '((guix build utils)))
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/30] gnu: jami: Add a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 02/30] gnu: jami: Bump to 20200203.1.5ee7e10 Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 03/30] gnu: jami: Fix downloading by changing the prefix to "jami_"; Use the "release" dir instead of the deprecated "ring-release" Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:24     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 05/30] gnu: pjproject-jami: Use the jami-apply-dependency-patches procedure Jan Wielkiewicz
                     ` (26 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 8601ad718d..27f6ff26f5 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -76,6 +76,22 @@
      (base32
       "0kx0y9jxyhgj6id6n3xxpm54i6b8dqyx9vxwkx505jvhlbxd2x7x"))))
 
+(define-public jami-apply-dependency-patches
+  '(lambda* (#:key inputs dep-name patches)
+     (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches"))
+       (mkdir-p savoir-faire-linux-patches-directory)
+       (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
+               "-C" savoir-faire-linux-patches-directory
+               "--strip-components=5"
+               (string-append "ring-project/daemon/contrib/src/"
+                              dep-name))
+       (for-each
+        (lambda (file)
+          (invoke "patch" "--force" "-p1" "-i"
+                  (string-append savoir-faire-linux-patches-directory "/"
+                                 file ".patch")))
+        patches))))
+
 (define-public pjproject-jami
   (package
     (inherit pjproject)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 05/30] gnu: pjproject-jami: Use the jami-apply-dependency-patches procedure.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (2 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 04/30] gnu: jami: Add a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:27     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 06/30] gnu: Add libnatpmp Jan Wielkiewicz
                     ` (25 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 60 +++++++++++++++++++------------------------
 1 file changed, 26 insertions(+), 34 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 27f6ff26f5..b165335e26 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -131,6 +131,8 @@
              ;;   making a shared object;
              "CFLAGS=-fPIC"
              "CXXFLAGS=-fPIC")
+       #:modules ((guix build utils)
+		  ,@(@@ (guix build-system gnu) %default-modules))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'make-git-checkout-writable
@@ -139,40 +141,30 @@
              #t))
          (add-after 'unpack 'apply-patches
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
-                   ;; Comes from
-                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
-                   ;; WARNING: These amount for huge changes in pjproject.
-                   (savoir-faire-linux-patches
-                    '("fix_turn_alloc_failure"
-                      "rfc2466"
-                      "ipv6"
-                      "multiple_listeners"
-                      "pj_ice_sess"
-                      "fix_turn_fallback"
-                      "fix_ioqueue_ipv6_sendto"
-                      "add_dtls_transport"
-                      "rfc6544"
-                      "ice_config"
-                      "sip_config"
-                      "fix_first_packet_turn_tcp"
-                      "fix_ebusy_turn"
-                      "ignore_ipv6_on_transport_check"
-                      "fix_turn_connection_failure"
-                      ;; "uwp_vs" ; for windows
-                      "disable_local_resolution")))
-               (mkdir-p savoir-faire-linux-patches-directory)
-               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
-                       "-C" savoir-faire-linux-patches-directory
-                       "--strip-components=5"
-                       "ring-project/daemon/contrib/src/pjproject")
-               (for-each
-                (lambda (file)
-                  (invoke "patch" "--force" "-p1" "-i"
-                          (string-append savoir-faire-linux-patches-directory "/"
-                                         file ".patch")))
-                savoir-faire-linux-patches))
-             #t))
+             (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+               ;; Comes from
+               ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+               ;; WARNING: These amount for huge changes in pjproject.
+               (jami-apply-dependency-patches #:inputs inputs
+                                              #:dep-name "pjproject"
+                                              #:patches
+                                              '("fix_turn_alloc_failure"
+                                                "rfc2466"
+                                                "ipv6"
+                                                "multiple_listeners"
+                                                "pj_ice_sess"
+                                                "fix_turn_fallback"
+                                                "fix_ioqueue_ipv6_sendto"
+                                                "add_dtls_transport"
+                                                "rfc6544"
+                                                "ice_config"
+                                                "sip_config"
+                                                "fix_first_packet_turn_tcp"
+                                                "fix_ebusy_turn"
+                                                "ignore_ipv6_on_transport_check"
+                                                "fix_turn_connection_failure"
+                                                "disable_local_resolution"))
+               #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
          ;; not work.
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 06/30] gnu: Add libnatpmp.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (3 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 05/30] gnu: pjproject-jami: Use the jami-apply-dependency-patches procedure Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:30     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 07/30] gnu: libring: Add libnatpmp as an optional dependency; remove unnecessary comment Jan Wielkiewicz
                     ` (24 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f754683bb9..adcb341a29 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -374,6 +374,32 @@ between different versions of ØMQ.")
 files contain direct mappings of the abstractions provided by the ØMQ C API.")
     (license license:expat)))
 
+(define-public libnatpmp
+  (package
+    (name "libnatpmp")
+    (version "20150609")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://miniupnp.free.fr/files/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check))
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (home-page "http://miniupnp.free.fr/libnatpmp.html")
+    (synopsis "C Library implementing NAT-PMP")
+    (description
+     "libnatpmp is a portable and asynchronous implementaiton of the NAT Port Mapping Protocol (NAT-PMP) written in C.")
+    (license license:bsd-3)))
+
 (define-public librdkafka
   (package
     (name "librdkafka")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 07/30] gnu: libring: Add libnatpmp as an optional dependency; remove unnecessary comment.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (4 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 06/30] gnu: Add libnatpmp Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:33     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 08/30] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
                     ` (23 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 b165335e26..21872122e1 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -190,7 +190,6 @@
     (source (jami-source #:without-daemon #t))
     (build-system gnu-build-system)
     (inputs
-     ;; Missing (optional?) dep: libnatpmp.
      `(("alsa-lib" ,alsa-lib)
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
@@ -201,6 +200,7 @@
        ("gsm" ,gsm)
        ("jack" ,jack-1)
        ("jsoncpp" ,jsoncpp)
+       ("libnatpmp" ,libnatpmp)
        ("libogg" ,libogg)
        ("libva" ,libva)
        ("opendht" ,opendht)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 08/30] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (5 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 07/30] gnu: libring: Add libnatpmp as an optional dependency; remove unnecessary comment Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:37     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 09/30] gnu: opendht: Bump to 2.0.0rc1 Jan Wielkiewicz
                     ` (22 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/upnp.scm | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 8f3c887a68..be75b9068f 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages photo)
   #:use-module (gnu packages image)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages python)
@@ -92,15 +93,21 @@ over IRC, instant messaging, network games, and most server software.")
 (define-public libupnp
   (package
     (name "libupnp")
-    (version "1.6.25")
+    (version "1.8.6")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
-                          version "/" name "-" version ".tar.bz2"))
+      (method git-fetch)
+      (uri (git-reference
+	    (url "https://github.com/mrjimenez/pupnp.git")
+	    (commit (string-append "release-" version))))
       (sha256
        (base32
-        "0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5"))))
+        "1jlb6qh47513h2simy0zxia5q61w1c31mnwmjqpr2nf832lmnpk4"))))
+       (native-inputs
+	`(("autoconf" ,autoconf)
+	  ("automake" ,automake)
+	  ("libtool" ,libtool)
+	  ("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (arguments
      ;; The tests require a network device capable of multicasting which is
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 09/30] gnu: opendht: Bump to 2.0.0rc1.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (6 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 08/30] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami Jan Wielkiewicz
                     ` (21 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index adcb341a29..cc7fc1ea87 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2648,7 +2648,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.0.0beta2")
+    (version "2.0.0rc1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2657,7 +2657,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5"))))
+                "1adpdvpc7dwc973803nng3mkqn6x9k93xfsy59f1n5dnv5xmbg9w"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (7 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 09/30] gnu: opendht: Bump to 2.0.0rc1 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:49     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 11/30] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
                     ` (20 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 238 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 238 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 21872122e1..de60c8bb15 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -183,6 +183,244 @@
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
              #t)))))))
 
+(define-public ffmpeg-jami
+  (package
+    (inherit ffmpeg)
+    (name "ffmpeg-jami")
+    (version "4.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.ffmpeg.org/ffmpeg.git")
+                    (commit "59da9dcd7ef6277e4e04998ced71b05a6083c635")))
+              (file-name (git-file-name "ffmpeg" version))
+              (sha256
+               (base32
+                "0cm58kd06lvslc7knnfajv5p63v4cc6502badjcic5m9izd03lz2"))))
+    (native-inputs
+     `(("savoir-faire-linux-patches" ,(jami-source))
+       ("libiconv" ,libiconv)
+       ,@(package-native-inputs ffmpeg)))
+    (arguments
+     (append
+      '(#:tests? #f)
+      (substitute-keyword-arguments (package-arguments ffmpeg)
+        ((#:configure-flags '())
+         (append '("--disable-everything"
+                   "--enable-zlib"
+                   "--enable-gpl"
+                   "--enable-swscale"
+                   "--enable-bsfs"
+                   "--disable-filters"
+                   "--disable-programs"
+                   "--disable-postproc"
+                   "--disable-protocols"
+                   "--enable-protocol=crypto"
+                   "--enable-protocol=file"
+                   "--enable-protocol=rtp"
+                   "--enable-protocol=srtp"
+                   "--enable-protocol=tcp"
+                   "--enable-protocol=udp"
+                   "--enable-protocol=unix"
+                   "--enable-protocol=pipe"
+		   ;; enable muxers/demuxers
+                   "--disable-demuxers"
+                   "--disable-muxers"
+                   "--enable-muxer=rtp"
+                   "--enable-muxer=g722"
+                   "--enable-muxer=h263"
+                   "--enable-muxer=h264"
+                   "--enable-muxer=hevc"
+                   "--enable-muxer=webm"
+                   "--enable-muxer=ogg"
+                   "--enable-muxer=pcm_s16be"
+                   "--enable-muxer=pcm_s16le"
+                   "--enable-demuxer=rtp"
+                   "--enable-demuxer=mjpeg"
+                   "--enable-demuxer=mjpeg_2000"
+                   "--enable-demuxer=mpegvideo"
+                   "--enable-demuxer=gif"
+                   "--enable-demuxer=image_jpeg_pipe"
+                   "--enable-demuxer=image_png_pipe"
+                   "--enable-demuxer=image_webp_pipe"
+                   "--enable-demuxer=matroska"
+                   "--enable-demuxer=m4v"
+                   "--enable-demuxer=mp3"
+                   "--enable-demuxer=ogg"
+                   "--enable-demuxer=flac"
+                   "--enable-demuxer=wav"
+                   "--enable-demuxer=ac3"
+                   "--enable-demuxer=g722"
+                   "--enable-demuxer=pcm_mulaw"
+                   "--enable-demuxer=pcm_alaw"
+                   "--enable-demuxer=pcm_s16be"
+                   "--enable-demuxer=pcm_s16le"
+                   "--enable-demuxer=h263"
+                   "--enable-demuxer=h264"
+                   "--enable-demuxer=hevc"
+		   ;; enable parsers
+                   "--enable-parser=h263"
+                   "--enable-parser=h264"
+                   "--enable-parser=mpeg4video"
+                   "--enable-parser=vp8"
+                   "--enable-parser=vp9"
+                   "--enable-parser=opus"
+		   ;; encoders/decoders
+                   "--enable-encoder=adpcm_g722"
+                   "--enable-decoder=adpcm_g722"
+                   "--enable-encoder=rawvideo"
+                   "--enable-decoder=rawvideo"
+                   "--enable-encoder=libx264"
+                   "--enable-decoder=h264"
+                   "--enable-encoder=pcm_alaw"
+                   "--enable-decoder=pcm_alaw"
+                   "--enable-encoder=pcm_mulaw"
+                   "--enable-decoder=pcm_mulaw"
+                   "--enable-encoder=mpeg4"
+                   "--enable-decoder=mpeg4"
+                   "--enable-encoder=libvpx_vp8"
+                   "--enable-decoder=vp8"
+                   "--enable-decoder=vp9"
+                   "--enable-encoder=h263"
+                   "--enable-encoder=h263p"
+                   "--enable-decoder=h263"
+                   "--enable-encoder=mjpeg"
+                   "--enable-decoder=mjpeg"
+                   "--enable-decoder=mjpegb"
+                   "--enable-libspeex"
+                   "--enable-libopus"
+                   "--enable-libvpx"
+                   "--enable-libx264"
+                   "--enable-encoder=libspeex"
+                   "--enable-decoder=libspeex"
+                   "--enable-encoder=libopus"
+                   "--enable-decoder=libopus"
+		   ;; decoders for ringtones and audio streaming
+                   "--enable-decoder=flac"
+                   "--enable-decoder=vorbis"
+                   "--enable-decoder=aac"
+                   "--enable-decoder=ac3"
+                   "--enable-decoder=eac3"
+                   "--enable-decoder=mp3"
+                   "--enable-decoder=pcm_u24be"
+                   "--enable-decoder=pcm_u24le"
+                   "--enable-decoder=pcm_u32be"
+                   "--enable-decoder=pcm_u32le"
+                   "--enable-decoder=pcm_u8"
+                   "--enable-decoder=pcm_f16le"
+                   "--enable-decoder=pcm_f24le"
+                   "--enable-decoder=pcm_f32be"
+                   "--enable-decoder=pcm_f32le"
+                   "--enable-decoder=pcm_f64be"
+                   "--enable-decoder=pcm_f64le"
+                   "--enable-decoder=pcm_s16be"
+                   "--enable-decoder=pcm_s16be_planar"
+                   "--enable-decoder=pcm_s16le"
+                   "--enable-decoder=pcm_s16le_planar"
+                   "--enable-decoder=pcm_s24be"
+                   "--enable-decoder=pcm_s24le"
+                   "--enable-decoder=pcm_s24le_planar"
+                   "--enable-decoder=pcm_s32be"
+                   "--enable-decoder=pcm_s32le"
+                   "--enable-decoder=pcm_s32le_planar"
+                   "--enable-decoder=pcm_s64be"
+                   "--enable-decoder=pcm_s64le"
+                   "--enable-decoder=pcm_s8"
+                   "--enable-decoder=pcm_s8_planar"
+                   "--enable-decoder=pcm_u16be"
+                   "--enable-decoder=pcm_u16le"
+		   ;; encoders/decoders for images
+                   "--enable-encoder=gif"
+                   "--enable-decoder=gif"
+                   "--enable-encoder=jpegls"
+                   "--enable-decoder=jpegls"
+                   "--enable-encoder=ljpeg"
+                   "--enable-decoder=jpeg2000"
+                   "--enable-encoder=png"
+                   "--enable-decoder=png"
+                   "--enable-encoder=bmp"
+                   "--enable-decoder=bmp"
+                   "--enable-encoder=tiff"
+                   "--enable-decoder=tiff"
+		   ;; filters
+                   "--enable-filter=scale"
+                   "--enable-filter=overlay"
+                   "--enable-filter=amix"
+                   "--enable-filter=amerge"
+                   "--enable-filter=aresample"
+                   "--enable-filter=format"
+                   "--enable-filter=aformat"
+                   "--enable-filter=fps"
+                   "--enable-filter=transpose"
+                   "--enable-filter=pad")
+		 ;; platform specific options
+                 (if (string-contains (%current-system) "linux")
+                     '("--enable-pic"
+                       "--extra-cxxflags=-fPIC --extra-cflags=-fPIC"
+                       "--target-os=linux"
+                       "--enable-indev=v4l2"
+                       "--enable-indev=xcbgrab"
+                       "--enable-vdpau"
+                       "--enable-hwaccel=h264_vdpau"
+                       "--enable-hwaccel=mpeg4_vdpau"
+                       "--enable-vaapi"
+                       "--enable-hwaccel=h264_vaapi"
+                       "--enable-hwaccel=mpeg4_vaapi"
+                       "--enable-hwaccel=h263_vaapi"
+                       "--enable-hwaccel=vp8_vaapi"
+                       "--enable-hwaccel=mjpeg_vaapi"
+                       "--enable-encoder=h264_vaapi"
+                       "--enable-encoder=vp8_vaapi"
+                       "--enable-encoder=mjpeg_vaapi"
+                       ))
+		 (cond ((string?= (%current-system) "i386")
+			'("--arch=x86"
+			  "--enable-cuvid"
+			  "--enable-ffnvcodec"
+			  "--enable-nvdec"
+			  "--enable-nvenc"
+			  "--enable-hwaccel=h264_nvdec"
+			  "--enable-hwaccel=hevc_nvdec"
+			  "--enable-hwaccel=vp8_nvdec"
+			  "--enable-hwaccel=mjpeg_nvdec"
+			  "--enable-encoder=h264_nvenc"
+			  "--enable-encoder=hevc_nvenc"))
+		       ((string?= (%current-system) "x86_64")
+			'("--arch=x86_64"
+			  "--enable-cuvid"
+			  "--enable-ffnvcodec"
+			  "--enable-nvdec"
+			  "--enable-nvenc"
+			  "--enable-hwaccel=h264_nvdec"
+			  "--enable-hwaccel=hevc_nvdec"
+			  "--enable-hwaccel=vp8_nvdec"
+			  "--enable-hwaccel=mjpeg_nvdec"
+			  "--enable-encoder=h264_nvenc"
+			  "--enable-encoder=hevc_nvenc"))
+		       ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
+		       ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))
+		       ((string?= (%current-system) "arm") '("--arch=arm"))
+		       (else '()))))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'make-git-checkout-writable
+              (lambda _
+                (for-each make-file-writable (find-files "."))
+                #t))
+            (add-after 'unpack 'apply-patches
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+                  ;; Comes from
+                  ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+                  ;; WARNING: These amount for huge changes in pjproject.
+                  (jami-apply-dependency-patches #:inputs inputs
+                                                 #:dep-name "ffmpeg"
+                                                 #:patches
+                                                 '("remove-mjpeg-log"
+                                                   "change-RTCP-ratio"
+                                                   "rtp_ext_abs_send_time"))
+                  #t))))))))))
+
 (define-public libring
   (package
     (name "libring")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 11/30] gnu: libring: Use ffmpeg-jami instead of ffmpeg.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (8 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 12/30] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
                     ` (19 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 de60c8bb15..362832f74a 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -432,7 +432,7 @@
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-jami)
        ("flac" ,flac)
        ("gmp" ,gmp)
        ("gsm" ,gsm)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 12/30] gnu: restinio: Bump to 0.6.1.1.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (9 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 11/30] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash Jan Wielkiewicz
                     ` (18 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index cc7fc1ea87..8c3a2137eb 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2606,7 +2606,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.0.1")
+    (version "0.6.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2615,7 +2615,7 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8"))))
+                "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      `(("zlib" ,zlib)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (10 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 12/30] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:54     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 14/30] gnu: jami.scm: Add a missing module Jan Wielkiewicz
                     ` (17 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/patches/pjproject-fix.patch | 21 +++++++++++++++++++++
 gnu/packages/telephony.scm               |  2 ++
 2 files changed, 23 insertions(+)
 create mode 100644 gnu/packages/patches/pjproject-fix.patch

diff --git a/gnu/packages/patches/pjproject-fix.patch b/gnu/packages/patches/pjproject-fix.patch
new file mode 100644
index 0000000000..8d7e22f965
--- /dev/null
+++ b/gnu/packages/patches/pjproject-fix.patch
@@ -0,0 +1,21 @@
+--- a/pjsip/src/pjsip-ua/sip_inv.c	(revision 6086)
++++ b/pjsip/src/pjsip-ua/sip_inv.c	(revision 6087)
+@@ -314,10 +314,16 @@
+     inv->cb_called |= (1 << state);
+ 
+-    /* Call on_state_changed() callback. */
++    /* Call on_state_changed() callback.
++     * While in the callback, can the state shift to DISCONNECTED? Perhaps
++     * yes, so better avoid premature destroy of the invite session by
++     * temporarily increase its ref counter.
++     */
++    pjsip_inv_add_ref(inv);
+     if (mod_inv.cb.on_state_changed && inv->notify && !dont_notify)
+ 	(*mod_inv.cb.on_state_changed)(inv, e);
++    pjsip_inv_dec_ref(inv);
+ 
+     /* Only decrement when previous state is not already DISCONNECTED */
+-    if (inv->state == PJSIP_INV_STATE_DISCONNECTED &&
++    if (state == PJSIP_INV_STATE_DISCONNECTED &&
+ 	prev_state != PJSIP_INV_STATE_DISCONNECTED) 
+     {
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 62bd8fd548..7ee9bdd9ab 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -655,6 +655,8 @@ calls and messages")
              (url "https://github.com/pjsip/pjproject.git")
              (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
        (modules '((guix build utils)))
+       (patches
+	(search-patches "pjproject-fix.patch"))
        (snippet
         '(begin
            (let ((third-party-directories
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 14/30] gnu: jami.scm: Add a missing module.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (11 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:55     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03 Jan Wielkiewicz
                     ` (16 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 362832f74a..65d8c5bb0b 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -56,7 +56,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (guix utils))
 
 (define %jami-version "20200203.1.5ee7e10")
 
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (12 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 14/30] gnu: jami.scm: Add a missing module Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 12:56     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
                     ` (15 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 65d8c5bb0b..9ec4b45a32 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20200203.1.5ee7e10")
+(define %jami-version "20200206.2.996bf03")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -75,7 +75,7 @@
          #f))
     (sha256
      (base32
-      "0kx0y9jxyhgj6id6n3xxpm54i6b8dqyx9vxwkx505jvhlbxd2x7x"))))
+      "0f8j9xv5whw3jvxnmvz9w1xq2vc5a9a0f1lpif1gdkk6bl1157lz"))))
 
 (define-public jami-apply-dependency-patches
   '(lambda* (#:key inputs dep-name patches)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (13 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 13:00     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 17/30] gnu: pjproject: Fix formatting Jan Wielkiewicz
                     ` (14 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 9ec4b45a32..e28f97c4d9 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -164,7 +164,8 @@
                                                 "fix_ebusy_turn"
                                                 "ignore_ipv6_on_transport_check"
                                                 "fix_turn_connection_failure"
-                                                "disable_local_resolution"))
+                                                "disable_local_resolution"
+						"fix_assert_on_connection_attempt"))
                #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 17/30] gnu: pjproject: Fix formatting.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (14 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 18/30] gnu: jami: Make gettext a native input Jan Wielkiewicz
                     ` (13 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/telephony.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 7ee9bdd9ab..64a5827795 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -706,10 +706,10 @@ calls and messages")
        ("pkg-config" ,pkg-config)
        ("libtool" ,libtool)))
     (arguments
-     `(;; FIXME make: No rule to make target
+     `( ;; FIXME make: No rule to make target
        ;; 'pjlib-test-unknown-[something]-gnu'.
        #:tests? #f
-       ;; #:test-target "selftest"
+                ;; #:test-target "selftest"
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'build-dep
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 18/30] gnu: jami: Make gettext a native input.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (15 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 17/30] gnu: pjproject: Fix formatting Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 19/30] gnu: jami.scm: Untabify by emacs Jan Wielkiewicz
                     ` (12 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 e28f97c4d9..2a5d282fdd 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -546,7 +546,6 @@ This package provides a library common to all Jami clients.")
        ("libnotify" ,libnotify)
        ("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
-       ("gettext" ,gnu-gettext)
        ("libcanberra" ,libcanberra)
        ("webkitgtk" ,webkitgtk)
        ;; TODO: We must wrap ring-client-gnome to force using the
@@ -563,6 +562,7 @@ This package provides a library common to all Jami clients.")
        ("sqlite" ,sqlite-with-column-metadata)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("gettext" ,gnu-gettext)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 19/30] gnu: jami.scm: Untabify by emacs.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (16 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 18/30] gnu: jami: Make gettext a native input Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 13:08     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 20/30] gnu: jami: Bump to 20200214.1.7488e86 Jan Wielkiewicz
                     ` (11 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 74 +++++++++++++++++++++----------------------
 1 file changed, 37 insertions(+), 37 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 2a5d282fdd..96969eb349 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -133,7 +133,7 @@
              "CFLAGS=-fPIC"
              "CXXFLAGS=-fPIC")
        #:modules ((guix build utils)
-		  ,@(@@ (guix build-system gnu) %default-modules))
+                  ,@(@@ (guix build-system gnu) %default-modules))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'make-git-checkout-writable
@@ -165,7 +165,7 @@
                                                 "ignore_ipv6_on_transport_check"
                                                 "fix_turn_connection_failure"
                                                 "disable_local_resolution"
-						"fix_assert_on_connection_attempt"))
+                                                "fix_assert_on_connection_attempt"))
                #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
@@ -225,7 +225,7 @@
                    "--enable-protocol=udp"
                    "--enable-protocol=unix"
                    "--enable-protocol=pipe"
-		   ;; enable muxers/demuxers
+                   ;; enable muxers/demuxers
                    "--disable-demuxers"
                    "--disable-muxers"
                    "--enable-muxer=rtp"
@@ -260,14 +260,14 @@
                    "--enable-demuxer=h263"
                    "--enable-demuxer=h264"
                    "--enable-demuxer=hevc"
-		   ;; enable parsers
+                   ;; enable parsers
                    "--enable-parser=h263"
                    "--enable-parser=h264"
                    "--enable-parser=mpeg4video"
                    "--enable-parser=vp8"
                    "--enable-parser=vp9"
                    "--enable-parser=opus"
-		   ;; encoders/decoders
+                   ;; encoders/decoders
                    "--enable-encoder=adpcm_g722"
                    "--enable-decoder=adpcm_g722"
                    "--enable-encoder=rawvideo"
@@ -297,7 +297,7 @@
                    "--enable-decoder=libspeex"
                    "--enable-encoder=libopus"
                    "--enable-decoder=libopus"
-		   ;; decoders for ringtones and audio streaming
+                   ;; decoders for ringtones and audio streaming
                    "--enable-decoder=flac"
                    "--enable-decoder=vorbis"
                    "--enable-decoder=aac"
@@ -331,7 +331,7 @@
                    "--enable-decoder=pcm_s8_planar"
                    "--enable-decoder=pcm_u16be"
                    "--enable-decoder=pcm_u16le"
-		   ;; encoders/decoders for images
+                   ;; encoders/decoders for images
                    "--enable-encoder=gif"
                    "--enable-decoder=gif"
                    "--enable-encoder=jpegls"
@@ -344,7 +344,7 @@
                    "--enable-decoder=bmp"
                    "--enable-encoder=tiff"
                    "--enable-decoder=tiff"
-		   ;; filters
+                   ;; filters
                    "--enable-filter=scale"
                    "--enable-filter=overlay"
                    "--enable-filter=amix"
@@ -355,7 +355,7 @@
                    "--enable-filter=fps"
                    "--enable-filter=transpose"
                    "--enable-filter=pad")
-		 ;; platform specific options
+                 ;; platform specific options
                  (if (string-contains (%current-system) "linux")
                      '("--enable-pic"
                        "--extra-cxxflags=-fPIC --extra-cflags=-fPIC"
@@ -375,34 +375,34 @@
                        "--enable-encoder=vp8_vaapi"
                        "--enable-encoder=mjpeg_vaapi"
                        ))
-		 (cond ((string?= (%current-system) "i386")
-			'("--arch=x86"
-			  "--enable-cuvid"
-			  "--enable-ffnvcodec"
-			  "--enable-nvdec"
-			  "--enable-nvenc"
-			  "--enable-hwaccel=h264_nvdec"
-			  "--enable-hwaccel=hevc_nvdec"
-			  "--enable-hwaccel=vp8_nvdec"
-			  "--enable-hwaccel=mjpeg_nvdec"
-			  "--enable-encoder=h264_nvenc"
-			  "--enable-encoder=hevc_nvenc"))
-		       ((string?= (%current-system) "x86_64")
-			'("--arch=x86_64"
-			  "--enable-cuvid"
-			  "--enable-ffnvcodec"
-			  "--enable-nvdec"
-			  "--enable-nvenc"
-			  "--enable-hwaccel=h264_nvdec"
-			  "--enable-hwaccel=hevc_nvdec"
-			  "--enable-hwaccel=vp8_nvdec"
-			  "--enable-hwaccel=mjpeg_nvdec"
-			  "--enable-encoder=h264_nvenc"
-			  "--enable-encoder=hevc_nvenc"))
-		       ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
-		       ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))
-		       ((string?= (%current-system) "arm") '("--arch=arm"))
-		       (else '()))))
+                 (cond ((string?= (%current-system) "i386")
+                        '("--arch=x86"
+                          "--enable-cuvid"
+                          "--enable-ffnvcodec"
+                          "--enable-nvdec"
+                          "--enable-nvenc"
+                          "--enable-hwaccel=h264_nvdec"
+                          "--enable-hwaccel=hevc_nvdec"
+                          "--enable-hwaccel=vp8_nvdec"
+                          "--enable-hwaccel=mjpeg_nvdec"
+                          "--enable-encoder=h264_nvenc"
+                          "--enable-encoder=hevc_nvenc"))
+                       ((string?= (%current-system) "x86_64")
+                        '("--arch=x86_64"
+                          "--enable-cuvid"
+                          "--enable-ffnvcodec"
+                          "--enable-nvdec"
+                          "--enable-nvenc"
+                          "--enable-hwaccel=h264_nvdec"
+                          "--enable-hwaccel=hevc_nvdec"
+                          "--enable-hwaccel=vp8_nvdec"
+                          "--enable-hwaccel=mjpeg_nvdec"
+                          "--enable-encoder=h264_nvenc"
+                          "--enable-encoder=hevc_nvenc"))
+                       ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
+                       ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))
+                       ((string?= (%current-system) "arm") '("--arch=arm"))
+                       (else '()))))
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'make-git-checkout-writable
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 20/30] gnu: jami: Bump to 20200214.1.7488e86.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (17 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 19/30] gnu: jami.scm: Untabify by emacs Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 21/30] gnu: opendht: Bump to 2.0.0rc2 Jan Wielkiewicz
                     ` (10 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 96969eb349..f67ef45072 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20200206.2.996bf03")
+(define %jami-version "20200214.1.7488e86")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -75,7 +75,7 @@
          #f))
     (sha256
      (base32
-      "0f8j9xv5whw3jvxnmvz9w1xq2vc5a9a0f1lpif1gdkk6bl1157lz"))))
+      "174akfri3l1wjchkybz3ida975k7fxwd9vhpfxqyliy1i894z721"))))
 
 (define-public jami-apply-dependency-patches
   '(lambda* (#:key inputs dep-name patches)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 21/30] gnu: opendht: Bump to 2.0.0rc2.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (18 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 20/30] gnu: jami: Bump to 20200214.1.7488e86 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 22/30] gnu: networking.scm: Add missing copyright year Jan Wielkiewicz
                     ` (9 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 8c3a2137eb..7707032aba 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2648,7 +2648,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.0.0rc1")
+    (version "2.0.0rc2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2657,7 +2657,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1adpdvpc7dwc973803nng3mkqn6x9k93xfsy59f1n5dnv5xmbg9w"))))
+                "1l3j55qqm894jc9r2sd55snqpcdp9k0kmy7iprpf707jg67c22ij"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 22/30] gnu: networking.scm: Add missing copyright year.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (19 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 21/30] gnu: opendht: Bump to 2.0.0rc2 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
                     ` (8 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 7707032aba..8f020a6179 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -33,7 +33,7 @@
 ;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2019 Tonton <tonton@riseup.net>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
 ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (20 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 22/30] gnu: networking.scm: Add missing copyright year Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 13:03     ` Mathieu Othacehe
  2020-04-17  0:34   ` [bug#40677] [PATCH 24/30] gnu: jami: Bump to 20200326.1.f8d3d10 Jan Wielkiewicz
                     ` (7 subsequent siblings)
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm      | 67 +++++++++++++++++++++++++++--
 gnu/packages/telephony.scm | 88 --------------------------------------
 2 files changed, 63 insertions(+), 92 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index f67ef45072..61236ff9a0 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -95,11 +95,66 @@
 
 (define-public pjproject-jami
   (package
-    (inherit pjproject)
     (name "pjproject-jami")
+    (version "2.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pjsip/pjproject.git")
+             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
+       (modules '((guix build utils)))
+       (patches
+	(search-patches "pjproject-fix.patch"))
+       (snippet
+        '(begin
+           (let ((third-party-directories
+                  ;; Things we don't need:
+                  ;; BaseClasses - contains libraries from Windows SDK
+                  ;; we don't need it, at least not now.
+                  (list "BaseClasses" "g7221" "ilbc" "milenage"
+                        "speex" "threademulation" "yuv" "bdsound"
+                        "gsm" "mp3" "resample" "srtp" "webrtc"
+                        ;; Keep only resample, build and README.txt.
+                        "build/baseclasses" "build/g7221" "build/gsm"
+                        "build/ilbc" "build/milenage" "build/resample"
+                        "build/samplerate" "build/speex" "build/srtp"
+                        "build/webrtc" "build/yuv")))
+             ;; Keep only Makefiles related to resample.
+             (for-each (lambda (directory)
+                         (delete-file-recursively
+                          (string-append "third_party/" directory)))
+                       third-party-directories)
+             #t)
+           (let ((third-party-dirs
+                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
+                        "portaudio" "resample")))
+             (for-each
+              (lambda (dirs)
+                (substitute* "third_party/build/os-linux.mak"
+                  (((string-append "DIRS += " dirs)) "")))
+              third-party-dirs))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("portaudio" ,portaudio)))
+    (propagated-inputs
+     ;; These packages are referenced in the Libs field of the pkg-config
+     ;; file that will be installed by pjproject.
+     `(("speex" ,speex)
+       ("libsrtp" ,libsrtp)
+       ("gnutls" ,gnutls)
+       ("resample", resample)
+       ("util-linux" ,util-linux)))
     (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
-       ,@(package-native-inputs pjproject)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)
+       ("savoir-faire-linux-patches" ,(jami-source))))
     (arguments
      `(#:tests? #f
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
@@ -183,7 +238,11 @@
              (substitute* "Makefile"
                (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))))
+             #t)))))
+    (home-page "https://www.pjsip.org")
+    (synopsis "SIP (protocol) stack used by Jami")
+    (description "Pjsip is a C library implementing the SIP protocol. This version is highly modified for use in GNU Jami.")
+    (license license:gpl2+)))
 
 (define-public ffmpeg-jami
   (package
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 64a5827795..b3d2b8bc70 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -644,94 +644,6 @@ phone to IP phone communication or in a network using a SIP proxy to route your
 calls and messages")
     (license license:gpl2+)))
 
-(define-public pjproject
-  (package
-    (name "pjproject")
-    (version "2.9")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/pjsip/pjproject.git")
-             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
-       (modules '((guix build utils)))
-       (patches
-	(search-patches "pjproject-fix.patch"))
-       (snippet
-        '(begin
-           (let ((third-party-directories
-                  ;; Things we don't need:
-                  ;; BaseClasses - contains libraries from Windows SDK
-                  ;; we don't need it, at least not now.
-                  (list "BaseClasses" "g7221" "ilbc" "milenage"
-                        "speex" "threademulation" "yuv" "bdsound"
-                        "gsm" "mp3" "resample" "srtp" "webrtc"
-                        ;; Keep only resample, build and README.txt.
-                        "build/baseclasses" "build/g7221" "build/gsm"
-                        "build/ilbc" "build/milenage" "build/resample"
-                        "build/samplerate" "build/speex" "build/srtp"
-                        "build/webrtc" "build/yuv")))
-             ;; Keep only Makefiles related to resample.
-             (for-each (lambda (directory)
-                         (delete-file-recursively
-                          (string-append "third_party/" directory)))
-                       third-party-directories)
-             #t)
-           (let ((third-party-dirs
-                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
-                        "portaudio" "resample")))
-             (for-each
-              (lambda (dirs)
-                (substitute* "third_party/build/os-linux.mak"
-                  (((string-append "DIRS += " dirs)) "")))
-              third-party-dirs))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("portaudio" ,portaudio)))
-    (propagated-inputs
-     ;; These packages are referenced in the Libs field of the pkg-config
-     ;; file that will be installed by pjproject.
-     `(("speex" ,speex)
-       ("libsrtp" ,libsrtp)
-       ("gnutls" ,gnutls)
-       ("resample", resample)
-       ("util-linux" ,util-linux)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
-    (arguments
-     `( ;; FIXME make: No rule to make target
-       ;; 'pjlib-test-unknown-[something]-gnu'.
-       #:tests? #f
-                ;; #:test-target "selftest"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'build-dep
-           (lambda _ (invoke "make" "dep")))
-         (add-before 'patch-source-shebangs 'autoconf
-           (lambda _
-             (invoke "autoconf" "-v" "-f" "-i" "-o"
-                     "aconfigure" "aconfigure.ac")))
-         (add-before 'autoconf 'disable-some-tests
-           ;; Three of the six test programs fail due to missing network
-           ;; access.
-           (lambda _
-             (substitute* "Makefile"
-               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))
-    (home-page "https://www.pjsip.org")
-    (synopsis "Session Initiation Protocol (SIP) stack")
-    (description "PJProject provides an implementation of the Session
-Initiation Protocol (SIP) and a multimedia framework.")
-    (license license:gpl2+)))
-
 (define-public libtgvoip
   (package
     (name "libtgvoip")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 24/30] gnu: jami: Bump to 20200326.1.f8d3d10.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (21 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 25/30] gnu: pjproject-jami: Bump to 2.10; apply some cool patches Jan Wielkiewicz
                     ` (6 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 61236ff9a0..7d4f13250b 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20200214.1.7488e86")
+(define %jami-version "20200326.1.f8d3d10")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -75,7 +75,7 @@
          #f))
     (sha256
      (base32
-      "174akfri3l1wjchkybz3ida975k7fxwd9vhpfxqyliy1i894z721"))))
+      "05mi8axxfslbmqc0658zxnjyhgihh5mn97g8hdasd4ip96gyyv1p"))))
 
 (define-public jami-apply-dependency-patches
   '(lambda* (#:key inputs dep-name patches)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 25/30] gnu: pjproject-jami: Bump to 2.10; apply some cool patches.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (22 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 24/30] gnu: jami: Bump to 20200326.1.f8d3d10 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 26/30] gnu: jami.scm: Indent code properly Jan Wielkiewicz
                     ` (5 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 36 +++++++++++++-----------------------
 1 file changed, 13 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 7d4f13250b..d52bfa866e 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -96,16 +96,14 @@
 (define-public pjproject-jami
   (package
     (name "pjproject-jami")
-    (version "2.9")
+    (version "2.10")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/pjsip/pjproject.git")
-             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
+             (commit "3e7b75cb2e482baee58c1991bd2fa4fb06774e0d")))
        (modules '((guix build utils)))
-       (patches
-	(search-patches "pjproject-fix.patch"))
        (snippet
         '(begin
            (let ((third-party-directories
@@ -137,7 +135,7 @@
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
+         "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))))
     (build-system gnu-build-system)
     (inputs
      `(("portaudio" ,portaudio)))
@@ -159,7 +157,7 @@
      `(#:tests? #f
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
        #:configure-flags
-       (list "--disable-oss"
+       (list ;;"--disable-oss" ; do we need this?
              "--disable-sound"
              "--disable-video"
              "--enable-ext-sound"
@@ -204,23 +202,15 @@
                (jami-apply-dependency-patches #:inputs inputs
                                               #:dep-name "pjproject"
                                               #:patches
-                                              '("fix_turn_alloc_failure"
-                                                "rfc2466"
-                                                "ipv6"
-                                                "multiple_listeners"
-                                                "pj_ice_sess"
-                                                "fix_turn_fallback"
-                                                "fix_ioqueue_ipv6_sendto"
-                                                "add_dtls_transport"
-                                                "rfc6544"
-                                                "ice_config"
-                                                "sip_config"
-                                                "fix_first_packet_turn_tcp"
-                                                "fix_ebusy_turn"
-                                                "ignore_ipv6_on_transport_check"
-                                                "fix_turn_connection_failure"
-                                                "disable_local_resolution"
-                                                "fix_assert_on_connection_attempt"))
+                                              '("0001-rfc6544"
+						"0002-rfc2466"
+						"0003-add-tcp-keep-alive"
+						"0004-multiple_listeners"
+						"0005-fix_ebusy_turn"
+						"0006-ignore_ipv6_on_transport_check"
+						"0007-pj_ice_sess"
+						"0008-fix_ioqueue_ipv6_sendto"
+						"0009-add-config-site"))
                #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 26/30] gnu: jami.scm: Indent code properly.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (23 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 25/30] gnu: pjproject-jami: Bump to 2.10; apply some cool patches Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 27/30] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
                     ` (4 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 54 +++++++++++++++++++++----------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index d52bfa866e..899c6fb747 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -158,33 +158,33 @@
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
        #:configure-flags
        (list ;;"--disable-oss" ; do we need this?
-             "--disable-sound"
-             "--disable-video"
-             "--enable-ext-sound"
-             "--disable-speex-aec"
-             "--disable-g711-codec"
-             "--disable-l16-codec"
-             "--disable-gsm-codec"
-             "--disable-g722-codec"
-             "--disable-g7221-codec"
-             "--disable-speex-codec"
-             "--disable-ilbc-codec"
-             "--disable-opencore-amr"
-             "--disable-silk"
-             "--disable-sdl"
-             "--disable-ffmpeg"
-             "--disable-v4l2"
-             "--disable-openh264"
-             "--disable-resample"
-             "--disable-libwebrtc"
-             "--with-gnutls"
-             "--with-external-srtp"
-             ;; We need -fPIC or else we get the following error when linking
-             ;; against pjproject-jami:
-             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
-             ;;   making a shared object;
-             "CFLAGS=-fPIC"
-             "CXXFLAGS=-fPIC")
+        "--disable-sound"
+        "--disable-video"
+        "--enable-ext-sound"
+        "--disable-speex-aec"
+        "--disable-g711-codec"
+        "--disable-l16-codec"
+        "--disable-gsm-codec"
+        "--disable-g722-codec"
+        "--disable-g7221-codec"
+        "--disable-speex-codec"
+        "--disable-ilbc-codec"
+        "--disable-opencore-amr"
+        "--disable-silk"
+        "--disable-sdl"
+        "--disable-ffmpeg"
+        "--disable-v4l2"
+        "--disable-openh264"
+        "--disable-resample"
+        "--disable-libwebrtc"
+        "--with-gnutls"
+        "--with-external-srtp"
+        ;; We need -fPIC or else we get the following error when linking
+        ;; against pjproject-jami:
+        ;;   relocation R_X86_64_32S against `.rodata' can not be used when
+        ;;   making a shared object;
+        "CFLAGS=-fPIC"
+        "CXXFLAGS=-fPIC")
        #:modules ((guix build utils)
                   ,@(@@ (guix build-system gnu) %default-modules))
        #:phases
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 27/30] gnu: opendht: Bump to 2.0.0.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (24 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 26/30] gnu: jami.scm: Indent code properly Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 28/30] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
                     ` (3 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 8f020a6179..c8d009080b 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2648,7 +2648,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.0.0rc2")
+    (version "2.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2657,7 +2657,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1l3j55qqm894jc9r2sd55snqpcdp9k0kmy7iprpf707jg67c22ij"))))
+                "1q1fwk8wwk9r6bp0indpr60ql668lsk16ykslacyhrh7kg97kvhr"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 28/30] gnu: jami: Bump to 20200401.1.6f090de.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (25 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 27/30] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 29/30] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
                     ` (2 subsequent siblings)
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 899c6fb747..608baea660 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20200326.1.f8d3d10")
+(define %jami-version "20200401.1.6f090de")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -75,7 +75,7 @@
          #f))
     (sha256
      (base32
-      "05mi8axxfslbmqc0658zxnjyhgihh5mn97g8hdasd4ip96gyyv1p"))))
+      "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
 
 (define-public jami-apply-dependency-patches
   '(lambda* (#:key inputs dep-name patches)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 29/30] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (26 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 28/30] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-17  0:34   ` [bug#40677] [PATCH 30/30] gnu: pjproject-jami: Add the missing "--enable-epoll" flag Jan Wielkiewicz
  2020-04-18 12:13   ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
  29 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 608baea660..00ee79fce4 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -611,7 +611,7 @@ This package provides a library common to all Jami clients.")
        ("sqlite" ,sqlite-with-column-metadata)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("gettext" ,gnu-gettext)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 30/30] gnu: pjproject-jami: Add the missing "--enable-epoll" flag.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (27 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 29/30] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
@ 2020-04-17  0:34   ` Jan Wielkiewicz
  2020-04-18 13:13     ` Mathieu Othacehe
  2020-04-18 12:13   ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
  29 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-17  0:34 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 00ee79fce4..58280b3b7c 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -160,6 +160,7 @@
        (list ;;"--disable-oss" ; do we need this?
         "--disable-sound"
         "--disable-video"
+        "--enable-epoll" ; if have linux
         "--enable-ext-sound"
         "--disable-speex-aec"
         "--disable-g711-codec"
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (28 preceding siblings ...)
  2020-04-17  0:34   ` [bug#40677] [PATCH 30/30] gnu: pjproject-jami: Add the missing "--enable-epoll" flag Jan Wielkiewicz
@ 2020-04-18 12:13   ` Mathieu Othacehe
  29 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:13 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Hello Jan,

Nice work! Please find my comments below.

>  gnu/packages/jami.scm      | 350 +++++++++++++++++++++++++++++++++++++
>  gnu/packages/telephony.scm | 291 ------------------------------
>  2 files changed, 350 insertions(+), 291 deletions(-)
>  create mode 100644 gnu/packages/jami.scm

You also need to update 'gnu/local.mk' when adding new files.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 03/30] gnu: jami: Fix downloading by changing the prefix to "jami_"; Use the "release" dir instead of the deprecated "ring-release".
  2020-04-17  0:34   ` [bug#40677] [PATCH 03/30] gnu: jami: Fix downloading by changing the prefix to "jami_"; Use the "release" dir instead of the deprecated "ring-release" Jan Wielkiewicz
@ 2020-04-18 12:16     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:16 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


You need to add a commit description for this one. What's written in the
subject line should instead be part of it.

Mathieu

> ---
>  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 0e6218c4a0..8601ad718d 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -63,7 +63,7 @@
>  (define* (jami-source #:key without-daemon)
>    (origin
>      (method url-fetch)
> -    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
> +    (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
>                          %jami-version
>                          ".tar.gz"))
>      (modules '((guix build utils)))

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/30] gnu: jami: Add a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies.
  2020-04-17  0:34   ` [bug#40677] [PATCH 04/30] gnu: jami: Add a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
@ 2020-04-18 12:24     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:24 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> +     (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches"))

Do we have to name the directory this way, or could use something
shorter and without spaces :) ?

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 05/30] gnu: pjproject-jami: Use the jami-apply-dependency-patches procedure.
  2020-04-17  0:34   ` [bug#40677] [PATCH 05/30] gnu: pjproject-jami: Use the jami-apply-dependency-patches procedure Jan Wielkiewicz
@ 2020-04-18 12:27     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:27 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
> -                   ;; Comes from
> -                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
> -                   ;; WARNING: These amount for huge changes in pjproject.
> -                   (savoir-faire-linux-patches
> -                    '("fix_turn_alloc_failure"
> -                      "rfc2466"
> -                      "ipv6"
> -                      "multiple_listeners"
> -                      "pj_ice_sess"
> -                      "fix_turn_fallback"
> -                      "fix_ioqueue_ipv6_sendto"
> -                      "add_dtls_transport"
> -                      "rfc6544"
> -                      "ice_config"
> -                      "sip_config"
> -                      "fix_first_packet_turn_tcp"
> -                      "fix_ebusy_turn"
> -                      "ignore_ipv6_on_transport_check"
> -                      "fix_turn_connection_failure"
> -                      ;; "uwp_vs" ; for windows
> -                      "disable_local_resolution")))
> -               (mkdir-p savoir-faire-linux-patches-directory)
> -               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
> -                       "-C" savoir-faire-linux-patches-directory
> -                       "--strip-components=5"
> -                       "ring-project/daemon/contrib/src/pjproject")
> -               (for-each
> -                (lambda (file)
> -                  (invoke "patch" "--force" "-p1" "-i"
> -                          (string-append savoir-faire-linux-patches-directory "/"
> -                                         file ".patch")))
> -                savoir-faire-linux-patches))
> -             #t))
> +             (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
> +               ;; Comes from
> +               ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
> +               ;; WARNING: These amount for huge changes in pjproject.
> +               (jami-apply-dependency-patches #:inputs inputs
> +                                              #:dep-name "pjproject"
> +                                              #:patches
> +                                              '("fix_turn_alloc_failure"
> +                                                "rfc2466"
> +                                                "ipv6"
> +                                                "multiple_listeners"
> +                                                "pj_ice_sess"
> +                                                "fix_turn_fallback"
> +                                                "fix_ioqueue_ipv6_sendto"
> +                                                "add_dtls_transport"
> +                                                "rfc6544"
> +                                                "ice_config"
> +                                                "sip_config"
> +                                                "fix_first_packet_turn_tcp"
> +                                                "fix_ebusy_turn"
> +                                                "ignore_ipv6_on_transport_check"
> +                                                "fix_turn_connection_failure"
> +                                                "disable_local_resolution"))
> +               #t)))
>           ;; TODO: We could use substitute-keyword-arguments instead of
>           ;; repeating the phases from pjproject, but somehow it does
>           ;; not work.

You can squash this patch with the previous one.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 06/30] gnu: Add libnatpmp.
  2020-04-17  0:34   ` [bug#40677] [PATCH 06/30] gnu: Add libnatpmp Jan Wielkiewicz
@ 2020-04-18 12:30     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:30 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> +    (synopsis "C Library implementing NAT-PMP")

"library"

> +    (description
> +     "libnatpmp is a portable and asynchronous implementaiton of the NAT Port Mapping Protocol (NAT-PMP) written in C.")

This line is over the 78 column limit. Plus you can use texinfo markup
for "libnatpmp" as explained here:
https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html#Synopses-and-Descriptions.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 07/30] gnu: libring: Add libnatpmp as an optional dependency; remove unnecessary comment.
  2020-04-17  0:34   ` [bug#40677] [PATCH 07/30] gnu: libring: Add libnatpmp as an optional dependency; remove unnecessary comment Jan Wielkiewicz
@ 2020-04-18 12:33     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:33 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


You need to write a commit log message compliant with GNU Coding
Standards as explained here:
https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 08/30] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies.
  2020-04-17  0:34   ` [bug#40677] [PATCH 08/30] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
@ 2020-04-18 12:37     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:37 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Do not forget to add your copyright on top of the file.

> -      (method url-fetch)
> -      (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
> -                          version "/" name "-" version ".tar.bz2"))
> +      (method git-fetch)
> +      (uri (git-reference
> +	    (url "https://github.com/mrjimenez/pupnp.git")
> +	    (commit (string-append "release-" version))))

Seems that this url is redirected to https://github.com/pupnp/pupnp.

>        (sha256
>         (base32
> -        "0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5"))))
> +        "1jlb6qh47513h2simy0zxia5q61w1c31mnwmjqpr2nf832lmnpk4"))))
> +       (native-inputs
> +	`(("autoconf" ,autoconf)
> +	  ("automake" ,automake)
> +	  ("libtool" ,libtool)
> +	  ("pkg-config" ,pkg-config)))

There's a mix of tab and space characters here.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami.
  2020-04-17  0:34   ` [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-04-18 12:49     ` Mathieu Othacehe
  2020-04-19 20:03       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:49 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> +(define-public ffmpeg-jami
> +  (package
> +    (inherit ffmpeg)
> +    (name "ffmpeg-jami")
> +    (version "4.2.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://git.ffmpeg.org/ffmpeg.git")
> +                    (commit "59da9dcd7ef6277e4e04998ced71b05a6083c635")))

Do we need this particular commit? If so the version should be:

--8<---------------cut here---------------start------------->8---
(git-version "4.2.1" revision commit)
--8<---------------cut here---------------end--------------->8---

you will find some examples in packages such as guile-webutils, or
boost-sync.

> +         (append '("--disable-everything"
> +                   "--enable-zlib"
> +                   "--enable-gpl"
> +                   "--enable-swscale"
> +                   "--enable-bsfs"
> +                   "--disable-filters"
> +                   "--disable-programs"
> +                   "--disable-postproc"
> +                   "--disable-protocols"
> +                   "--enable-protocol=crypto"
> +                   "--enable-protocol=file"
> +                   "--enable-protocol=rtp"
> +                   "--enable-protocol=srtp"
> +                   "--enable-protocol=tcp"
> +                   "--enable-protocol=udp"
> +                   "--enable-protocol=unix"
> +                   "--enable-protocol=pipe"
> +		   ;; enable muxers/demuxers
> +                   "--disable-demuxers"
> +                   "--disable-muxers"
> +                   "--enable-muxer=rtp"
> +                   "--enable-muxer=g722"
> +                   "--enable-muxer=h263"
> +                   "--enable-muxer=h264"
> +                   "--enable-muxer=hevc"
> +                   "--enable-muxer=webm"
> +                   "--enable-muxer=ogg"
> +                   "--enable-muxer=pcm_s16be"
> +                   "--enable-muxer=pcm_s16le"
> +                   "--enable-demuxer=rtp"
> +                   "--enable-demuxer=mjpeg"
> +                   "--enable-demuxer=mjpeg_2000"
> +                   "--enable-demuxer=mpegvideo"
> +                   "--enable-demuxer=gif"
> +                   "--enable-demuxer=image_jpeg_pipe"
> +                   "--enable-demuxer=image_png_pipe"
> +                   "--enable-demuxer=image_webp_pipe"
> +                   "--enable-demuxer=matroska"
> +                   "--enable-demuxer=m4v"
> +                   "--enable-demuxer=mp3"
> +                   "--enable-demuxer=ogg"
> +                   "--enable-demuxer=flac"
> +                   "--enable-demuxer=wav"
> +                   "--enable-demuxer=ac3"
> +                   "--enable-demuxer=g722"
> +                   "--enable-demuxer=pcm_mulaw"
> +                   "--enable-demuxer=pcm_alaw"
> +                   "--enable-demuxer=pcm_s16be"
> +                   "--enable-demuxer=pcm_s16le"
> +                   "--enable-demuxer=h263"
> +                   "--enable-demuxer=h264"
> +                   "--enable-demuxer=hevc"
> +		   ;; enable parsers
> +                   "--enable-parser=h263"
> +                   "--enable-parser=h264"
> +                   "--enable-parser=mpeg4video"
> +                   "--enable-parser=vp8"
> +                   "--enable-parser=vp9"
> +                   "--enable-parser=opus"
> +		   ;; encoders/decoders
> +                   "--enable-encoder=adpcm_g722"
> +                   "--enable-decoder=adpcm_g722"
> +                   "--enable-encoder=rawvideo"
> +                   "--enable-decoder=rawvideo"
> +                   "--enable-encoder=libx264"
> +                   "--enable-decoder=h264"
> +                   "--enable-encoder=pcm_alaw"
> +                   "--enable-decoder=pcm_alaw"
> +                   "--enable-encoder=pcm_mulaw"
> +                   "--enable-decoder=pcm_mulaw"
> +                   "--enable-encoder=mpeg4"
> +                   "--enable-decoder=mpeg4"
> +                   "--enable-encoder=libvpx_vp8"
> +                   "--enable-decoder=vp8"
> +                   "--enable-decoder=vp9"
> +                   "--enable-encoder=h263"
> +                   "--enable-encoder=h263p"
> +                   "--enable-decoder=h263"
> +                   "--enable-encoder=mjpeg"
> +                   "--enable-decoder=mjpeg"
> +                   "--enable-decoder=mjpegb"
> +                   "--enable-libspeex"
> +                   "--enable-libopus"
> +                   "--enable-libvpx"
> +                   "--enable-libx264"
> +                   "--enable-encoder=libspeex"
> +                   "--enable-decoder=libspeex"
> +                   "--enable-encoder=libopus"
> +                   "--enable-decoder=libopus"
> +		   ;; decoders for ringtones and audio streaming
> +                   "--enable-decoder=flac"
> +                   "--enable-decoder=vorbis"
> +                   "--enable-decoder=aac"
> +                   "--enable-decoder=ac3"
> +                   "--enable-decoder=eac3"
> +                   "--enable-decoder=mp3"
> +                   "--enable-decoder=pcm_u24be"
> +                   "--enable-decoder=pcm_u24le"
> +                   "--enable-decoder=pcm_u32be"
> +                   "--enable-decoder=pcm_u32le"
> +                   "--enable-decoder=pcm_u8"
> +                   "--enable-decoder=pcm_f16le"
> +                   "--enable-decoder=pcm_f24le"
> +                   "--enable-decoder=pcm_f32be"
> +                   "--enable-decoder=pcm_f32le"
> +                   "--enable-decoder=pcm_f64be"
> +                   "--enable-decoder=pcm_f64le"
> +                   "--enable-decoder=pcm_s16be"
> +                   "--enable-decoder=pcm_s16be_planar"
> +                   "--enable-decoder=pcm_s16le"
> +                   "--enable-decoder=pcm_s16le_planar"
> +                   "--enable-decoder=pcm_s24be"
> +                   "--enable-decoder=pcm_s24le"
> +                   "--enable-decoder=pcm_s24le_planar"
> +                   "--enable-decoder=pcm_s32be"
> +                   "--enable-decoder=pcm_s32le"
> +                   "--enable-decoder=pcm_s32le_planar"
> +                   "--enable-decoder=pcm_s64be"
> +                   "--enable-decoder=pcm_s64le"
> +                   "--enable-decoder=pcm_s8"
> +                   "--enable-decoder=pcm_s8_planar"
> +                   "--enable-decoder=pcm_u16be"
> +                   "--enable-decoder=pcm_u16le"
> +		   ;; encoders/decoders for images
> +                   "--enable-encoder=gif"
> +                   "--enable-decoder=gif"
> +                   "--enable-encoder=jpegls"
> +                   "--enable-decoder=jpegls"
> +                   "--enable-encoder=ljpeg"
> +                   "--enable-decoder=jpeg2000"
> +                   "--enable-encoder=png"
> +                   "--enable-decoder=png"
> +                   "--enable-encoder=bmp"
> +                   "--enable-decoder=bmp"
> +                   "--enable-encoder=tiff"
> +                   "--enable-decoder=tiff"
> +		   ;; filters
> +                   "--enable-filter=scale"
> +                   "--enable-filter=overlay"
> +                   "--enable-filter=amix"
> +                   "--enable-filter=amerge"
> +                   "--enable-filter=aresample"
> +                   "--enable-filter=format"
> +                   "--enable-filter=aformat"
> +                   "--enable-filter=fps"
> +                   "--enable-filter=transpose"
> +                   "--enable-filter=pad")
> +		 ;; platform specific options
> +                 (if (string-contains (%current-system) "linux")
> +                     '("--enable-pic"
> +                       "--extra-cxxflags=-fPIC --extra-cflags=-fPIC"
> +                       "--target-os=linux"
> +                       "--enable-indev=v4l2"
> +                       "--enable-indev=xcbgrab"
> +                       "--enable-vdpau"
> +                       "--enable-hwaccel=h264_vdpau"
> +                       "--enable-hwaccel=mpeg4_vdpau"
> +                       "--enable-vaapi"
> +                       "--enable-hwaccel=h264_vaapi"
> +                       "--enable-hwaccel=mpeg4_vaapi"
> +                       "--enable-hwaccel=h263_vaapi"
> +                       "--enable-hwaccel=vp8_vaapi"
> +                       "--enable-hwaccel=mjpeg_vaapi"
> +                       "--enable-encoder=h264_vaapi"
> +                       "--enable-encoder=vp8_vaapi"
> +                       "--enable-encoder=mjpeg_vaapi"
> +                       ))
> +		 (cond ((string?= (%current-system) "i386")
> +			'("--arch=x86"
> +			  "--enable-cuvid"
> +			  "--enable-ffnvcodec"
> +			  "--enable-nvdec"
> +			  "--enable-nvenc"
> +			  "--enable-hwaccel=h264_nvdec"
> +			  "--enable-hwaccel=hevc_nvdec"
> +			  "--enable-hwaccel=vp8_nvdec"
> +			  "--enable-hwaccel=mjpeg_nvdec"
> +			  "--enable-encoder=h264_nvenc"
> +			  "--enable-encoder=hevc_nvenc"))
> +		       ((string?= (%current-system) "x86_64")
> +			'("--arch=x86_64"
> +			  "--enable-cuvid"
> +			  "--enable-ffnvcodec"
> +			  "--enable-nvdec"
> +			  "--enable-nvenc"
> +			  "--enable-hwaccel=h264_nvdec"
> +			  "--enable-hwaccel=hevc_nvdec"
> +			  "--enable-hwaccel=vp8_nvdec"
> +			  "--enable-hwaccel=mjpeg_nvdec"
> +			  "--enable-encoder=h264_nvenc"
> +			  "--enable-encoder=hevc_nvenc"))
> +		       ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
> +		       ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))
> +		       ((string?= (%current-system) "arm") '("--arch=arm"))
> +		       (else '()))))

This long list is a bit scary. Could inherit from the one of ffmpeg and
add/remove only what's necessary? The default values should also be
omitted.

> +                  ;; Comes from
> +                  ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
> +                  ;; WARNING: These amount for huge changes in pjproject.

That's only three patches here? You can maybe remove this comment.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash.
  2020-04-17  0:34   ` [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash Jan Wielkiewicz
@ 2020-04-18 12:54     ` Mathieu Othacehe
  2020-04-19 22:26       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:54 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


>  gnu/packages/patches/pjproject-fix.patch | 21 +++++++++++++++++++++
>  gnu/packages/telephony.scm               |  2 ++

New patches should also be added to 'gnu/local.mk' file. You can find an
example here: b03ee02f.

You also need to explain where this patch comes from, and why it is
necessary.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 14/30] gnu: jami.scm: Add a missing module.
  2020-04-17  0:34   ` [bug#40677] [PATCH 14/30] gnu: jami.scm: Add a missing module Jan Wielkiewicz
@ 2020-04-18 12:55     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:55 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677

>    #:use-module (guix git-download)
> -  #:use-module (guix packages))
> +  #:use-module (guix packages)
> +  #:use-module (guix utils))
>  

This should be squashed with the patch that requires those two modules.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03.
  2020-04-17  0:34   ` [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03 Jan Wielkiewicz
@ 2020-04-18 12:56     ` Mathieu Othacehe
  2020-04-19 19:49       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 12:56 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -(define %jami-version "20200203.1.5ee7e10")
> +(define %jami-version "20200206.2.996bf03")

There are multiple patches updating this version. They all should be
squashed into a single one, so that the serie is shorter and hence
easier to review :)

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch.
  2020-04-17  0:34   ` [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
@ 2020-04-18 13:00     ` Mathieu Othacehe
  2020-04-19 19:49       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 13:00 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -                                                "disable_local_resolution"))
> +                                                "disable_local_resolution"
> +						"fix_assert_on_connection_attempt"))
>                 #t)))

This indentation is wrong here. You should not use tabulations. Also
this is over the 78 column limit. A trick to respect it would be to
introduce a line break between the '#:inputs' key above and let your
editor figure it out.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.
  2020-04-17  0:34   ` [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
@ 2020-04-18 13:03     ` Mathieu Othacehe
  2020-04-19 19:44       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 13:03 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Why is pjproject package "broken"? Could pjproject-jami inherit from it and
only change the suitable bits?

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 19/30] gnu: jami.scm: Untabify by emacs.
  2020-04-17  0:34   ` [bug#40677] [PATCH 19/30] gnu: jami.scm: Untabify by emacs Jan Wielkiewicz
@ 2020-04-18 13:08     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 13:08 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


>                     "--enable-protocol=udp"
>                     "--enable-protocol=unix"
>                     "--enable-protocol=pipe"
> -		   ;; enable muxers/demuxers
> +                   ;; enable muxers/demuxers
>                     "--disable-demuxers"
>                     "--disable-muxers"
>                     "--enable-muxer=rtp"
> @@ -260,14 +260,14 @@
>                     "--enable-demuxer=h263"
>                     "--enable-demuxer=h264"
>                     "--enable-demuxer=hevc"
> -		   ;; enable parsers
> +                   ;; enable parsers
>                     "--enable-parser=h263"

All of this patch should be squashed with the previous patches. When
working on such a vast topic, the final phase of squashing, renaming and
reordering commits can be really cumbersome.

However, it is also really important as it makes the serie shorter and
easier to review. You can use the interactive rebase mode of Magit to
add some fun.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 30/30] gnu: pjproject-jami: Add the missing "--enable-epoll" flag.
  2020-04-17  0:34   ` [bug#40677] [PATCH 30/30] gnu: pjproject-jami: Add the missing "--enable-epoll" flag Jan Wielkiewicz
@ 2020-04-18 13:13     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-18 13:13 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


>          "--disable-video"
> +        "--enable-epoll" ; if have linux
>          "--enable-ext-sound"

If this is a Linux specific flag, you may need to protect it with a
"hurd-triplet?" conditional (see libgc package for example).

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.
  2020-04-18 13:03     ` Mathieu Othacehe
@ 2020-04-19 19:44       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-04-19 19:44 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 18 Apr 2020 15:03:42 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Why is pjproject package "broken"? Could pjproject-jami inherit from
> it and only change the suitable bits?
> 
> Mathieu

The pjproject package we had in Guix have never worked - the build
phase always failed. I attempted to fix it, but never successfully.
Jami is also the only package that uses pjproject, but a highly
modified version. I did some research about it and it seems pjproject
can't even be used as a system-wide library.

That's what I found:
https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00009.html


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch.
  2020-04-18 13:00     ` Mathieu Othacehe
@ 2020-04-19 19:49       ` Jan
  2020-04-19 20:32         ` Michael Rohleder
  0 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-04-19 19:49 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 18 Apr 2020 15:00:28 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> > -
> > "disable_local_resolution"))
> > +
> > "disable_local_resolution"
> > +						"fix_assert_on_connection_attempt"))
> >                 #t)))  
> 
> This indentation is wrong here. You should not use tabulations. Also
> this is over the 78 column limit. A trick to respect it would be to
> introduce a line break between the '#:inputs' key above and let your
> editor figure it out.
> 
> Mathieu

Is there a way to remove tabulations in emacs or to configure emacs so
that it won't use tabulations?

I tried to correct formatting using the ./etc/indent_code.el or
something, but could miss something.


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03.
  2020-04-18 12:56     ` Mathieu Othacehe
@ 2020-04-19 19:49       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-04-19 19:49 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 18 Apr 2020 14:56:40 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> > -(define %jami-version "20200203.1.5ee7e10")
> > +(define %jami-version "20200206.2.996bf03")  
> 
> There are multiple patches updating this version. They all should be
> squashed into a single one, so that the serie is shorter and hence
> easier to review :)
> 
> Mathieu

How do I do this gently in git?


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami.
  2020-04-18 12:49     ` Mathieu Othacehe
@ 2020-04-19 20:03       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-04-19 20:03 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 18 Apr 2020 14:49:59 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Do we need this particular commit? If so the version should be:
> 
> --8<---------------cut here---------------start------------->8---
> (git-version "4.2.1" revision commit)
> --8<---------------cut here---------------end--------------->8---
> 
> you will find some examples in packages such as guile-webutils, or
> boost-sync.

Because of the strange bugs I get in Jami, I tried to be as close as
possible to the official Jami package. They use this particular commit
and if I remember correctly, applying the patches failed without it.

The patches add:

-Hardware acceleration to use GPU instead CPU to encode/decode video
whenever possible
-All codecs available (but nor really important, it will be ok with
h264 + vp8)
-REMB feedback (./ffmpeg/rtp_ext_abs_send_time.patch) to automatically
adapt the bitrate and avoid dirty video.

> This long list is a bit scary. Could inherit from the one of ffmpeg
> and add/remove only what's necessary? The default values should also
> be omitted.

I tried asking Jami devs how important are these flags, but never got
answer. I can ask again, but for now I must check one more thing
related to the strange bug I get.

> > +                  ;; Comes from
> > +                  ;;
> > "ring-project/daemon/contrib/src/pjproject/rules.mak".
> > +                  ;; WARNING: These amount for huge changes in
> > pjproject.  
> 
> That's only three patches here? You can maybe remove this comment.
> 
> Mathieu

Yes, right.


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch.
  2020-04-19 19:49       ` Jan
@ 2020-04-19 20:32         ` Michael Rohleder
  0 siblings, 0 replies; 144+ messages in thread
From: Michael Rohleder @ 2020-04-19 20:32 UTC (permalink / raw)
  To: Jan; +Cc: 40677

[-- Attachment #1: Type: text/plain, Size: 287 bytes --]

Jan <tona_kosmicznego_smiecia@interia.pl> writes:
> Is there a way to remove tabulations in emacs or to configure emacs so
> that it won't use tabulations?

this should help:

(setq-default indent-tabs-mode nil)

-- 
Pandora's Rule:
        Never open a box you didn't close.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash.
  2020-04-18 12:54     ` Mathieu Othacehe
@ 2020-04-19 22:26       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-04-19 22:26 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 18 Apr 2020 14:54:05 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> >  gnu/packages/patches/pjproject-fix.patch | 21 +++++++++++++++++++++
> >  gnu/packages/telephony.scm               |  2 ++  
> 
> New patches should also be added to 'gnu/local.mk' file. You can find
> an example here: b03ee02f.
> 
> You also need to explain where this patch comes from, and why it is
> necessary.
> 
> Thanks,
> 
> Mathieu

I just removed this patch, because the issue was fixed in pjproject
2.10.


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] Code review problems resolved
  2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
@ 2020-04-20 22:55 ` Jan
  2020-04-21  7:04   ` Christopher Baines
  2020-04-21  7:28   ` Mathieu Othacehe
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 144+ messages in thread
From: Jan @ 2020-04-20 22:55 UTC (permalink / raw)
  To: 40677

Hello,

I think I addressed the problems Mathieu pointed out. Should I close
this issue and open a new one with corrected patches?



Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] Code review problems resolved
  2020-04-20 22:55 ` [bug#40677] Code review problems resolved Jan
@ 2020-04-21  7:04   ` Christopher Baines
  2020-04-21  7:28   ` Mathieu Othacehe
  1 sibling, 0 replies; 144+ messages in thread
From: Christopher Baines @ 2020-04-21  7:04 UTC (permalink / raw)
  To: tona_kosmicznego_smiecia; +Cc: 40677

[-- Attachment #1: Type: text/plain, Size: 358 bytes --]


Jan <tona_kosmicznego_smiecia@interia.pl> writes:

> I think I addressed the problems Mathieu pointed out. Should I close
> this issue and open a new one with corrected patches?

Assuming it's the same set of patches, just send them to this bug. You
can use -v2 with git send-email when sending the patches to help
indicate they're revised.

Thanks,

Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] Code review problems resolved
  2020-04-20 22:55 ` [bug#40677] Code review problems resolved Jan
  2020-04-21  7:04   ` Christopher Baines
@ 2020-04-21  7:28   ` Mathieu Othacehe
  1 sibling, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-21  7:28 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello Jan,

Thanks for working on this. No you should use the same bug ticket for new
patches revision, until it gets eventually merged.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
  2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
  2020-04-20 22:55 ` [bug#40677] Code review problems resolved Jan
@ 2020-04-21 16:10 ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 02/18] gnu: jami: Fix downloading Jan Wielkiewicz
                     ` (17 more replies)
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                   ` (2 subsequent siblings)
  5 siblings, 18 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/local.mk               |   2 +
 gnu/packages/jami.scm      | 351 +++++++++++++++++++++++++++++++++++++
 gnu/packages/telephony.scm | 291 ------------------------------
 3 files changed, 353 insertions(+), 291 deletions(-)
 create mode 100644 gnu/packages/jami.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 952fc55df4..10bf91366d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -30,6 +30,7 @@
 # Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 # Copyright © 2020 R Veera Kumar <vkor@vkten.in>
 # Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz
+# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 #
 # This file is part of GNU Guix.
 #
@@ -275,6 +276,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ipfs.scm			\
   %D%/packages/irc.scm  			\
   %D%/packages/iso-codes.scm			\
+  %D%/packages/jami.scm				\
   %D%/packages/java.scm				\
   %D%/packages/java-compression.scm		\
   %D%/packages/java-graphics.scm		\
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
new file mode 100644
index 0000000000..5c167808f0
--- /dev/null
+++ b/gnu/packages/jami.scm
@@ -0,0 +1,351 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages jami)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages aidc)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages telephony)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages upnp)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages webkit)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
+(define %jami-version "20191101.3.67671e7")
+
+(define* (jami-source #:key without-daemon)
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
+                        %jami-version
+                        ".tar.gz"))
+    (modules '((guix build utils)))
+    (snippet
+     (if without-daemon
+         '(begin
+            (delete-file-recursively "daemon/contrib"))
+         #f))
+    (sha256
+     (base32
+      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
+
+(define-public pjproject-jami
+  (package
+    (inherit pjproject)
+    (name "pjproject-jami")
+    (native-inputs
+     `(("savoir-faire-linux-patches" ,(jami-source))
+       ,@(package-native-inputs pjproject)))
+    (arguments
+     `(#:tests? #f
+       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
+       #:configure-flags
+       (list "--disable-oss"
+             "--disable-sound"
+             "--disable-video"
+             "--enable-ext-sound"
+             "--disable-speex-aec"
+             "--disable-g711-codec"
+             "--disable-l16-codec"
+             "--disable-gsm-codec"
+             "--disable-g722-codec"
+             "--disable-g7221-codec"
+             "--disable-speex-codec"
+             "--disable-ilbc-codec"
+             "--disable-opencore-amr"
+             "--disable-silk"
+             "--disable-sdl"
+             "--disable-ffmpeg"
+             "--disable-v4l2"
+             "--disable-openh264"
+             "--disable-resample"
+             "--disable-libwebrtc"
+             "--with-gnutls"
+             "--with-external-srtp"
+             ;; We need -fPIC or else we get the following error when linking
+             ;; against pjproject-jami:
+             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
+             ;;   making a shared object;
+             "CFLAGS=-fPIC"
+             "CXXFLAGS=-fPIC")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (add-after 'unpack 'apply-patches
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
+                   ;; Comes from
+                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+                   ;; WARNING: These amount for huge changes in pjproject.
+                   (savoir-faire-linux-patches
+                    '("fix_turn_alloc_failure"
+                      "rfc2466"
+                      "ipv6"
+                      "multiple_listeners"
+                      "pj_ice_sess"
+                      "fix_turn_fallback"
+                      "fix_ioqueue_ipv6_sendto"
+                      "add_dtls_transport"
+                      "rfc6544"
+                      "ice_config"
+                      "sip_config"
+                      "fix_first_packet_turn_tcp"
+                      "fix_ebusy_turn"
+                      "ignore_ipv6_on_transport_check"
+                      "fix_turn_connection_failure"
+                      ;; "uwp_vs" ; for windows
+                      "disable_local_resolution")))
+               (mkdir-p savoir-faire-linux-patches-directory)
+               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
+                       "-C" savoir-faire-linux-patches-directory
+                       "--strip-components=5"
+                       "ring-project/daemon/contrib/src/pjproject")
+               (for-each
+                (lambda (file)
+                  (invoke "patch" "--force" "-p1" "-i"
+                          (string-append savoir-faire-linux-patches-directory "/"
+                                         file ".patch")))
+                savoir-faire-linux-patches))
+             #t))
+         ;; TODO: We could use substitute-keyword-arguments instead of
+         ;; repeating the phases from pjproject, but somehow it does
+         ;; not work.
+         (add-before 'build 'build-dep
+           (lambda _ (invoke "make" "dep")))
+         (add-before 'patch-source-shebangs 'autoconf
+           (lambda _
+             (invoke "autoconf" "-v" "-f" "-i" "-o"
+                     "aconfigure" "aconfigure.ac")))
+         (add-before 'autoconf 'disable-some-tests
+           ;; Three of the six test programs fail due to missing network
+           ;; access.
+           (lambda _
+             (substitute* "Makefile"
+               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
+                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
+             #t)))))))
+
+(define-public libring
+  (package
+    (name "libring")
+    (version %jami-version)
+    (source (jami-source #:without-daemon #t))
+    (build-system gnu-build-system)
+    (inputs
+     ;; Missing (optional?) dep: libnatpmp.
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("dbus-c++" ,dbus-c++)
+       ("eudev" ,eudev)
+       ("ffmpeg" ,ffmpeg)
+       ("flac" ,flac)
+       ("gmp" ,gmp)
+       ("gsm" ,gsm)
+       ("jack" ,jack-1)
+       ("jsoncpp" ,jsoncpp)
+       ("libogg" ,libogg)
+       ("libva" ,libva)
+       ("opendht" ,opendht)
+       ("opus" ,opus)
+       ("pcre" ,pcre)
+       ("pulseaudio" ,pulseaudio)
+       ("libsamplerate" ,libsamplerate)
+       ("libsndfile" ,libsndfile)
+       ("speex" ,speex)
+       ("speexdsp" ,speexdsp)
+       ("libupnp" ,libupnp)
+       ("libvorbis" ,libvorbis)
+       ("libx264" ,libx264)
+       ("libvdpau" ,libvdpau)
+       ("yaml-cpp" ,yaml-cpp)
+       ("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("libsecp256k1" ,libsecp256k1)
+       ("python" ,python)
+       ("python-wrapper" ,python-wrapper)
+       ("restinio" ,restinio)
+       ("libx11" ,libx11)
+       ("asio" ,asio)
+       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
+       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
+       ("pjproject" ,pjproject-jami)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("cppunit" ,cppunit)
+       ("perl" ,perl)))                 ; Needed for documentation.
+    (arguments
+     `(#:tests? #f         ; The tests fail to compile due to missing headers.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "daemon")
+             #t))
+         (add-before 'build 'add-lib-dir
+           (lambda _
+             (mkdir-p "src/lib")
+             #t)))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library and daemon implementing the Jami core
+functionality.")
+    (home-page "https://jami.net/")
+    (license license:gpl3+)))
+
+(define-public libringclient
+  (package
+    (inherit libring)
+    (name "libringclient")
+    (build-system cmake-build-system)
+    (propagated-inputs
+     `(("libring" ,libring)     ; For 'dring'.
+       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
+       ("qttools" ,qttools)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:configure-flags
+       (list (string-append "-DRING_BUILD_DIR="
+                            (assoc-ref %build-inputs "libring") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "lrc")
+             #t))
+         (add-before 'configure 'fix-dbus-interfaces-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
+                (string-append (assoc-ref inputs "libring")
+                               dbus-interfaces-path-suffix))))))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library common to all Jami clients.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami
+  (package
+    (inherit libring)
+    (name "jami")
+    (build-system cmake-build-system)
+    (inputs
+     `(("libringclient" ,libringclient)
+       ("gtk+" ,gtk+)
+       ("qrencode" ,qrencode)
+       ("libnotify" ,libnotify)
+       ("clutter" ,clutter)
+       ("clutter-gtk" ,clutter-gtk)
+       ("gettext" ,gnu-gettext)
+       ("libcanberra" ,libcanberra)
+       ("webkitgtk" ,webkitgtk)
+       ;; TODO: We must wrap ring-client-gnome to force using the
+       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
+       ;; fails with:
+       ;;
+       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
+       ;;   undefined symbol: sqlite3_column_table_name16
+       ;;
+       ;; qtbase is built against sqlite-with-column-metadata but somehow
+       ;; jami-client-gnome ends up with both `sqlite' and
+       ;; `sqlite-with-column-metadata' as inputs and it seems that
+       ;; libqsqlite.so gets confused.
+       ("sqlite" ,sqlite-with-column-metadata)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("doxygen" ,doxygen)))
+    (propagated-inputs
+     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("evolution-data-server" ,evolution-data-server)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "client-gnome")
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
+               (wrap-program (string-append out "/bin/jami-gnome")
+                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
+             #t)))))
+    (synopsis "Distributed, privacy-respecting communication program")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides the Jami client for the GNOME desktop.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami-client-gnome
+  (deprecated-package "jami-client-gnome" jami))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 85c2f2ab5e..62bd8fd548 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -730,297 +730,6 @@ calls and messages")
 Initiation Protocol (SIP) and a multimedia framework.")
     (license license:gpl2+)))
 
-(define %jami-version "20191101.3.67671e7")
-
-(define* (jami-source #:key without-daemon)
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
-                        %jami-version
-                        ".tar.gz"))
-    (modules '((guix build utils)))
-    (snippet
-     (if without-daemon
-       '(begin
-          (delete-file-recursively "daemon/contrib"))
-       #f))
-    (sha256
-     (base32
-      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
-
-(define-public pjproject-jami
-  (package
-    (inherit pjproject)
-    (name "pjproject-jami")
-    (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
-       ,@(package-native-inputs pjproject)))
-    (arguments
-     `(#:tests? #f
-       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
-       #:configure-flags
-       (list "--disable-oss"
-             "--disable-sound"
-             "--disable-video"
-             "--enable-ext-sound"
-             "--disable-speex-aec"
-             "--disable-g711-codec"
-             "--disable-l16-codec"
-             "--disable-gsm-codec"
-             "--disable-g722-codec"
-             "--disable-g7221-codec"
-             "--disable-speex-codec"
-             "--disable-ilbc-codec"
-             "--disable-opencore-amr"
-             "--disable-silk"
-             "--disable-sdl"
-             "--disable-ffmpeg"
-             "--disable-v4l2"
-             "--disable-openh264"
-             "--disable-resample"
-             "--disable-libwebrtc"
-             "--with-gnutls"
-             "--with-external-srtp"
-             ;; We need -fPIC or else we get the following error when linking
-             ;; against pjproject-jami:
-             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
-             ;;   making a shared object;
-             "CFLAGS=-fPIC"
-             "CXXFLAGS=-fPIC")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-git-checkout-writable
-           (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
-         (add-after 'unpack 'apply-patches
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
-                   ;; Comes from
-                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
-                   ;; WARNING: These amount for huge changes in pjproject.
-                   (savoir-faire-linux-patches
-                    '("fix_turn_alloc_failure"
-                      "rfc2466"
-                      "ipv6"
-                      "multiple_listeners"
-                      "pj_ice_sess"
-                      "fix_turn_fallback"
-                      "fix_ioqueue_ipv6_sendto"
-                      "add_dtls_transport"
-                      "rfc6544"
-                      "ice_config"
-                      "sip_config"
-                      "fix_first_packet_turn_tcp"
-                      "fix_ebusy_turn"
-                      "ignore_ipv6_on_transport_check"
-                      "fix_turn_connection_failure"
-                      ;; "uwp_vs" ; for windows
-                      "disable_local_resolution")))
-               (mkdir-p savoir-faire-linux-patches-directory)
-               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
-                       "-C" savoir-faire-linux-patches-directory
-                       "--strip-components=5"
-                       "ring-project/daemon/contrib/src/pjproject")
-               (for-each
-                (lambda (file)
-                  (invoke "patch" "--force" "-p1" "-i"
-                          (string-append savoir-faire-linux-patches-directory "/"
-                                         file ".patch")))
-                savoir-faire-linux-patches))
-             #t))
-         ;; TODO: We could use substitute-keyword-arguments instead of
-         ;; repeating the phases from pjproject, but somehow it does
-         ;; not work.
-         (add-before 'build 'build-dep
-           (lambda _ (invoke "make" "dep")))
-         (add-before 'patch-source-shebangs 'autoconf
-           (lambda _
-             (invoke "autoconf" "-v" "-f" "-i" "-o"
-                     "aconfigure" "aconfigure.ac")))
-         (add-before 'autoconf 'disable-some-tests
-           ;; Three of the six test programs fail due to missing network
-           ;; access.
-           (lambda _
-             (substitute* "Makefile"
-               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))))
-
-(define-public libring
-  (package
-    (name "libring")
-    (version %jami-version)
-    (source (jami-source #:without-daemon #t))
-    (build-system gnu-build-system)
-    (inputs
-     ;; Missing (optional?) dep: libnatpmp.
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("dbus-c++" ,dbus-c++)
-       ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsm" ,gsm)
-       ("jack" ,jack-1)
-       ("jsoncpp" ,jsoncpp)
-       ("libogg" ,libogg)
-       ("libva" ,libva)
-       ("opendht" ,opendht)
-       ("opus" ,opus)
-       ("pcre" ,pcre)
-       ("pulseaudio" ,pulseaudio)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)
-       ("libupnp" ,libupnp)
-       ("libvorbis" ,libvorbis)
-       ("libx264" ,libx264)
-       ("libvdpau" ,libvdpau)
-       ("yaml-cpp" ,yaml-cpp)
-       ("zlib" ,zlib)
-       ("openssl" ,openssl)
-       ("libsecp256k1" ,libsecp256k1)
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("restinio" ,restinio)
-       ("libx11" ,libx11)
-       ("asio" ,asio)
-       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
-       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
-       ("pjproject" ,pjproject-jami)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("cppunit" ,cppunit)
-       ("perl" ,perl)))                 ; Needed for documentation.
-    (arguments
-     `(#:tests? #f         ; The tests fail to compile due to missing headers.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "daemon")
-             #t))
-         (add-before 'build 'add-lib-dir
-           (lambda _
-             (mkdir-p "src/lib")
-             #t)))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library and daemon implementing the Jami core
-functionality.")
-    (home-page "https://jami.net/")
-    (license license:gpl3+)))
-
-(define-public libringclient
-  (package
-    (inherit libring)
-    (name "libringclient")
-    (build-system cmake-build-system)
-    (propagated-inputs
-     `(("libring" ,libring)     ; For 'dring'.
-       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
-       ("qttools" ,qttools)))
-    (arguments
-     `(#:tests? #f                      ; There is no testsuite.
-       #:configure-flags
-       (list (string-append "-DRING_BUILD_DIR="
-                            (assoc-ref %build-inputs "libring") "/include"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "lrc")
-             #t))
-         (add-before 'configure 'fix-dbus-interfaces-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
-                (string-append (assoc-ref inputs "libring")
-                               dbus-interfaces-path-suffix))))))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library common to all Jami clients.")
-    (home-page "https://jami.net")
-    (license license:gpl3+)))
-
-(define-public jami
-  (package
-    (inherit libring)
-    (name "jami")
-    (build-system cmake-build-system)
-    (inputs
-     `(("libringclient" ,libringclient)
-       ("gtk+" ,gtk+)
-       ("qrencode" ,qrencode)
-       ("libnotify" ,libnotify)
-       ("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("libcanberra" ,libcanberra)
-       ("webkitgtk" ,webkitgtk)
-       ;; TODO: We must wrap ring-client-gnome to force using the
-       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
-       ;; fails with:
-       ;;
-       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
-       ;;   undefined symbol: sqlite3_column_table_name16
-       ;;
-       ;; qtbase is built against sqlite-with-column-metadata but somehow
-       ;; jami-client-gnome ends up with both `sqlite' and
-       ;; `sqlite-with-column-metadata' as inputs and it seems that
-       ;; libqsqlite.so gets confused.
-       ("sqlite" ,sqlite-with-column-metadata)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("doxygen" ,doxygen)))
-    (propagated-inputs
-     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("evolution-data-server" ,evolution-data-server)))
-    (arguments
-     `(#:tests? #f                      ; There is no testsuite.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "client-gnome")
-             #t))
-         (add-after 'install 'wrap
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
-               (wrap-program (string-append out "/bin/jami-gnome")
-                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
-             #t)))))
-    (synopsis "Distributed, privacy-respecting communication program")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides the Jami client for the GNOME desktop.")
-    (home-page "https://jami.net")
-    (license license:gpl3+)))
-
-(define-public jami-client-gnome
-  (deprecated-package "jami-client-gnome" jami))
-
 (define-public libtgvoip
   (package
     (name "libtgvoip")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 02/18] gnu: jami: Fix downloading.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 03/18] gnu: jami.scm: Add and use a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
                     ` (16 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

The package name changed from Ring to Jami.
Package tarballs start now with "jami_" prefix.
The "ring-release" folder is also deprecated, let's use the
"release" folder instead.
---
 gnu/packages/jami.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 5c167808f0..44a57c9bfb 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -64,7 +64,7 @@
 (define* (jami-source #:key without-daemon)
   (origin
     (method url-fetch)
-    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
+    (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
                         %jami-version
                         ".tar.gz"))
     (modules '((guix build utils)))
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 03/18] gnu: jami.scm: Add and use a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 02/18] gnu: jami: Fix downloading Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-22  9:07     ` Mathieu Othacehe
  2020-04-21 16:10   ` [bug#40677] [PATCH 04/18] gnu: Add libnatpmp Jan Wielkiewicz
                     ` (15 subsequent siblings)
  17 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 82 +++++++++++++++++++++++++------------------
 1 file changed, 47 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 44a57c9bfb..3a50cef18a 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -77,12 +77,31 @@
      (base32
       "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
 
+;; Savoir-Faire Linux modifies many libraries to add features
+;; to Jami. This procedure makes applying patches to a given
+;; package easy.
+(define-public jami-apply-dependency-patches
+  '(lambda* (#:key inputs dep-name patches)
+     (let ((patches-directory "SFL-patches"))
+       (mkdir-p patches-directory)
+       (invoke "tar" "-xvf" (assoc-ref inputs "SFL-patches")
+               "-C" patches-directory
+               "--strip-components=5"
+               (string-append "ring-project/daemon/contrib/src/"
+                              dep-name))
+       (for-each
+        (lambda (file)
+          (invoke "patch" "--force" "-p1" "-i"
+                  (string-append patches-directory "/"
+                                 file ".patch")))
+        patches))))
+
 (define-public pjproject-jami
   (package
     (inherit pjproject)
     (name "pjproject-jami")
     (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
+     `(("SFL-patches" ,(jami-source))
        ,@(package-native-inputs pjproject)))
     (arguments
      `(#:tests? #f
@@ -116,6 +135,8 @@
              ;;   making a shared object;
              "CFLAGS=-fPIC"
              "CXXFLAGS=-fPIC")
+       #:modules ((guix build utils)
+                  ,@(@@ (guix build-system gnu) %default-modules))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'make-git-checkout-writable
@@ -124,40 +145,31 @@
              #t))
          (add-after 'unpack 'apply-patches
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
-                   ;; Comes from
-                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
-                   ;; WARNING: These amount for huge changes in pjproject.
-                   (savoir-faire-linux-patches
-                    '("fix_turn_alloc_failure"
-                      "rfc2466"
-                      "ipv6"
-                      "multiple_listeners"
-                      "pj_ice_sess"
-                      "fix_turn_fallback"
-                      "fix_ioqueue_ipv6_sendto"
-                      "add_dtls_transport"
-                      "rfc6544"
-                      "ice_config"
-                      "sip_config"
-                      "fix_first_packet_turn_tcp"
-                      "fix_ebusy_turn"
-                      "ignore_ipv6_on_transport_check"
-                      "fix_turn_connection_failure"
-                      ;; "uwp_vs" ; for windows
-                      "disable_local_resolution")))
-               (mkdir-p savoir-faire-linux-patches-directory)
-               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
-                       "-C" savoir-faire-linux-patches-directory
-                       "--strip-components=5"
-                       "ring-project/daemon/contrib/src/pjproject")
-               (for-each
-                (lambda (file)
-                  (invoke "patch" "--force" "-p1" "-i"
-                          (string-append savoir-faire-linux-patches-directory "/"
-                                         file ".patch")))
-                savoir-faire-linux-patches))
-             #t))
+             (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+               ;; Comes from
+               ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+               ;; WARNING: These amount for huge changes in pjproject.
+               (jami-apply-dependency-patches
+                #:inputs inputs
+                #:dep-name "pjproject"
+                #:patches
+                '("fix_turn_alloc_failure"
+                  "rfc2466"
+                  "ipv6"
+                  "multiple_listeners"
+                  "pj_ice_sess"
+                  "fix_turn_fallback"
+                  "fix_ioqueue_ipv6_sendto"
+                  "add_dtls_transport"
+                  "rfc6544"
+                  "ice_config"
+                  "sip_config"
+                  "fix_first_packet_turn_tcp"
+                  "fix_ebusy_turn"
+                  "ignore_ipv6_on_transport_check"
+                  "fix_turn_connection_failure"
+                  "disable_local_resolution"))
+               #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
          ;; not work.
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/18] gnu: Add libnatpmp.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 02/18] gnu: jami: Fix downloading Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 03/18] gnu: jami.scm: Add and use a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-22  9:27     ` Mathieu Othacehe
  2020-04-21 16:10   ` [bug#40677] [PATCH 05/18] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
                     ` (14 subsequent siblings)
  17 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f754683bb9..02ba5e9601 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -374,6 +374,34 @@ between different versions of ØMQ.")
 files contain direct mappings of the abstractions provided by the ØMQ C API.")
     (license license:expat)))
 
+(define-public libnatpmp
+  (package
+    (name "libnatpmp")
+    (version "20150609")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://miniupnp.free.fr/files/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check))
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (home-page "http://miniupnp.free.fr/libnatpmp.html")
+    (synopsis "C library implementing NAT-PMP")
+    (description
+     "libnatpmp is a portable and asynchronous implementaiton of
+the Network Address Translation - Port Mapping Protocol (NAT-PMP)
+written in the C programming language.")
+    (license license:bsd-3)))
+
 (define-public librdkafka
   (package
     (name "librdkafka")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 05/18] gnu: libring: Add libnatpmp as an optional dependency.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (2 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 04/18] gnu: Add libnatpmp Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 06/18] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
                     ` (13 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 3a50cef18a..041f0a1292 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -195,7 +195,6 @@
     (source (jami-source #:without-daemon #t))
     (build-system gnu-build-system)
     (inputs
-     ;; Missing (optional?) dep: libnatpmp.
      `(("alsa-lib" ,alsa-lib)
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
@@ -206,6 +205,7 @@
        ("gsm" ,gsm)
        ("jack" ,jack-1)
        ("jsoncpp" ,jsoncpp)
+       ("libnatpmp" ,libnatpmp)
        ("libogg" ,libogg)
        ("libva" ,libva)
        ("opendht" ,opendht)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 06/18] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (3 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 05/18] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 07/18] gnu: Add ffmpeg-jami Jan Wielkiewicz
                     ` (12 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/upnp.scm | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 8f3c887a68..768df4a03e 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
+;;; Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (gnu packages photo)
   #:use-module (gnu packages image)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages python)
@@ -92,15 +94,21 @@ over IRC, instant messaging, network games, and most server software.")
 (define-public libupnp
   (package
     (name "libupnp")
-    (version "1.6.25")
+    (version "1.8.6")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
-                          version "/" name "-" version ".tar.bz2"))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/pupnp/pupnp.git")
+            (commit (string-append "release-" version))))
       (sha256
        (base32
-        "0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5"))))
+        "1jlb6qh47513h2simy0zxia5q61w1c31mnwmjqpr2nf832lmnpk4"))))
+       (native-inputs
+        `(("autoconf" ,autoconf)
+          ("automake" ,automake)
+          ("libtool" ,libtool)
+          ("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (arguments
      ;; The tests require a network device capable of multicasting which is
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 07/18] gnu: Add ffmpeg-jami.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (4 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 06/18] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 08/18] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
                     ` (11 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 239 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 239 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 041f0a1292..e7f15c7197 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -188,6 +188,245 @@
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
              #t)))))))
 
+(define-public ffmpeg-jami
+  (let ((commit "59da9dcd7ef6277e4e04998ced71b05a6083c635")
+        (revision "0"))
+    (package
+      (inherit ffmpeg)
+      (name "ffmpeg-jami")
+      (version (git-version "4.2.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.ffmpeg.org/ffmpeg.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0cm58kd06lvslc7knnfajv5p63v4cc6502badjcic5m9izd03lz2"))))
+      (native-inputs
+       `(("SFL-patches" ,(jami-source))
+         ("libiconv" ,libiconv)
+         ,@(package-native-inputs ffmpeg)))
+      (arguments
+       (append
+        '(#:tests? #f)
+        (substitute-keyword-arguments (package-arguments ffmpeg)
+          ((#:configure-flags '())
+           (append '("--disable-everything"
+                     "--enable-zlib"
+                     "--enable-gpl"
+                     "--enable-swscale"
+                     "--enable-bsfs"
+                     "--disable-filters"
+                     "--disable-programs"
+                     "--disable-postproc"
+                     "--disable-protocols"
+                     "--enable-protocol=crypto"
+                     "--enable-protocol=file"
+                     "--enable-protocol=rtp"
+                     "--enable-protocol=srtp"
+                     "--enable-protocol=tcp"
+                     "--enable-protocol=udp"
+                     "--enable-protocol=unix"
+                     "--enable-protocol=pipe"
+                     ;; enable muxers/demuxers
+                     "--disable-demuxers"
+                     "--disable-muxers"
+                     "--enable-muxer=rtp"
+                     "--enable-muxer=g722"
+                     "--enable-muxer=h263"
+                     "--enable-muxer=h264"
+                     "--enable-muxer=hevc"
+                     "--enable-muxer=webm"
+                     "--enable-muxer=ogg"
+                     "--enable-muxer=pcm_s16be"
+                     "--enable-muxer=pcm_s16le"
+                     "--enable-demuxer=rtp"
+                     "--enable-demuxer=mjpeg"
+                     "--enable-demuxer=mjpeg_2000"
+                     "--enable-demuxer=mpegvideo"
+                     "--enable-demuxer=gif"
+                     "--enable-demuxer=image_jpeg_pipe"
+                     "--enable-demuxer=image_png_pipe"
+                     "--enable-demuxer=image_webp_pipe"
+                     "--enable-demuxer=matroska"
+                     "--enable-demuxer=m4v"
+                     "--enable-demuxer=mp3"
+                     "--enable-demuxer=ogg"
+                     "--enable-demuxer=flac"
+                     "--enable-demuxer=wav"
+                     "--enable-demuxer=ac3"
+                     "--enable-demuxer=g722"
+                     "--enable-demuxer=pcm_mulaw"
+                     "--enable-demuxer=pcm_alaw"
+                     "--enable-demuxer=pcm_s16be"
+                     "--enable-demuxer=pcm_s16le"
+                     "--enable-demuxer=h263"
+                     "--enable-demuxer=h264"
+                     "--enable-demuxer=hevc"
+                     ;; enable parsers
+                     "--enable-parser=h263"
+                     "--enable-parser=h264"
+                     "--enable-parser=mpeg4video"
+                     "--enable-parser=vp8"
+                     "--enable-parser=vp9"
+                     "--enable-parser=opus"
+                     ;; encoders/decoders
+                     "--enable-encoder=adpcm_g722"
+                     "--enable-decoder=adpcm_g722"
+                     "--enable-encoder=rawvideo"
+                     "--enable-decoder=rawvideo"
+                     "--enable-encoder=libx264"
+                     "--enable-decoder=h264"
+                     "--enable-encoder=pcm_alaw"
+                     "--enable-decoder=pcm_alaw"
+                     "--enable-encoder=pcm_mulaw"
+                     "--enable-decoder=pcm_mulaw"
+                     "--enable-encoder=mpeg4"
+                     "--enable-decoder=mpeg4"
+                     "--enable-encoder=libvpx_vp8"
+                     "--enable-decoder=vp8"
+                     "--enable-decoder=vp9"
+                     "--enable-encoder=h263"
+                     "--enable-encoder=h263p"
+                     "--enable-decoder=h263"
+                     "--enable-encoder=mjpeg"
+                     "--enable-decoder=mjpeg"
+                     "--enable-decoder=mjpegb"
+                     "--enable-libspeex"
+                     "--enable-libopus"
+                     "--enable-libvpx"
+                     "--enable-libx264"
+                     "--enable-encoder=libspeex"
+                     "--enable-decoder=libspeex"
+                     "--enable-encoder=libopus"
+                     "--enable-decoder=libopus"
+                     ;; decoders for ringtones and audio streaming
+                     "--enable-decoder=flac"
+                     "--enable-decoder=vorbis"
+                     "--enable-decoder=aac"
+                     "--enable-decoder=ac3"
+                     "--enable-decoder=eac3"
+                     "--enable-decoder=mp3"
+                     "--enable-decoder=pcm_u24be"
+                     "--enable-decoder=pcm_u24le"
+                     "--enable-decoder=pcm_u32be"
+                     "--enable-decoder=pcm_u32le"
+                     "--enable-decoder=pcm_u8"
+                     "--enable-decoder=pcm_f16le"
+                     "--enable-decoder=pcm_f24le"
+                     "--enable-decoder=pcm_f32be"
+                     "--enable-decoder=pcm_f32le"
+                     "--enable-decoder=pcm_f64be"
+                     "--enable-decoder=pcm_f64le"
+                     "--enable-decoder=pcm_s16be"
+                     "--enable-decoder=pcm_s16be_planar"
+                     "--enable-decoder=pcm_s16le"
+                     "--enable-decoder=pcm_s16le_planar"
+                     "--enable-decoder=pcm_s24be"
+                     "--enable-decoder=pcm_s24le"
+                     "--enable-decoder=pcm_s24le_planar"
+                     "--enable-decoder=pcm_s32be"
+                     "--enable-decoder=pcm_s32le"
+                     "--enable-decoder=pcm_s32le_planar"
+                     "--enable-decoder=pcm_s64be"
+                     "--enable-decoder=pcm_s64le"
+                     "--enable-decoder=pcm_s8"
+                     "--enable-decoder=pcm_s8_planar"
+                     "--enable-decoder=pcm_u16be"
+                     "--enable-decoder=pcm_u16le"
+                     ;; encoders/decoders for images
+                     "--enable-encoder=gif"
+                     "--enable-decoder=gif"
+                     "--enable-encoder=jpegls"
+                     "--enable-decoder=jpegls"
+                     "--enable-encoder=ljpeg"
+                     "--enable-decoder=jpeg2000"
+                     "--enable-encoder=png"
+                     "--enable-decoder=png"
+                     "--enable-encoder=bmp"
+                     "--enable-decoder=bmp"
+                     "--enable-encoder=tiff"
+                     "--enable-decoder=tiff"
+                     ;; filters
+                     "--enable-filter=scale"
+                     "--enable-filter=overlay"
+                     "--enable-filter=amix"
+                     "--enable-filter=amerge"
+                     "--enable-filter=aresample"
+                     "--enable-filter=format"
+                     "--enable-filter=aformat"
+                     "--enable-filter=fps"
+                     "--enable-filter=transpose"
+                     "--enable-filter=pad")
+                   ;; platform specific options
+                   (if (string-contains (%current-system) "linux")
+                       '("--enable-pic"
+                         "--extra-cxxflags=-fPIC --extra-cflags=-fPIC"
+                         "--target-os=linux"
+                         "--enable-indev=v4l2"
+                         "--enable-indev=xcbgrab"
+                         "--enable-vdpau"
+                         "--enable-hwaccel=h264_vdpau"
+                         "--enable-hwaccel=mpeg4_vdpau"
+                         "--enable-vaapi"
+                         "--enable-hwaccel=h264_vaapi"
+                         "--enable-hwaccel=mpeg4_vaapi"
+                         "--enable-hwaccel=h263_vaapi"
+                         "--enable-hwaccel=vp8_vaapi"
+                         "--enable-hwaccel=mjpeg_vaapi"
+                         "--enable-encoder=h264_vaapi"
+                         "--enable-encoder=vp8_vaapi"
+                         "--enable-encoder=mjpeg_vaapi"
+                         ))
+                   (cond ((string?= (%current-system) "i386")
+                          '("--arch=x86"
+                            "--enable-cuvid"
+                            "--enable-ffnvcodec"
+                            "--enable-nvdec"
+                            "--enable-nvenc"
+                            "--enable-hwaccel=h264_nvdec"
+                            "--enable-hwaccel=hevc_nvdec"
+                            "--enable-hwaccel=vp8_nvdec"
+                            "--enable-hwaccel=mjpeg_nvdec"
+                            "--enable-encoder=h264_nvenc"
+                            "--enable-encoder=hevc_nvenc"))
+                         ((string?= (%current-system) "x86_64")
+                          '("--arch=x86_64"
+                            "--enable-cuvid"
+                            "--enable-ffnvcodec"
+                            "--enable-nvdec"
+                            "--enable-nvenc"
+                            "--enable-hwaccel=h264_nvdec"
+                            "--enable-hwaccel=hevc_nvdec"
+                            "--enable-hwaccel=vp8_nvdec"
+                            "--enable-hwaccel=mjpeg_nvdec"
+                            "--enable-encoder=h264_nvenc"
+                            "--enable-encoder=hevc_nvenc"))
+                         ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
+                         ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))
+                         ((string?= (%current-system) "arm") '("--arch=arm"))
+                         (else '()))))
+          ((#:phases phases)
+           `(modify-phases ,phases
+              (add-after 'unpack 'make-git-checkout-writable
+                (lambda _
+                  (for-each make-file-writable (find-files "."))
+                  #t))
+              (add-after 'unpack 'apply-patches
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+                    ;; These patches come from:
+                    ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
+                    (jami-apply-dependency-patches #:inputs inputs
+                                                   #:dep-name "ffmpeg"
+                                                   #:patches
+                                                   '("remove-mjpeg-log"
+                                                     "change-RTCP-ratio"
+                                                     "rtp_ext_abs_send_time"))
+                    #t)))))))))))
+
 (define-public libring
   (package
     (name "libring")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 08/18] gnu: libring: Use ffmpeg-jami instead of ffmpeg.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (5 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 07/18] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 09/18] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
                     ` (10 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 e7f15c7197..c67236ac0d 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -438,7 +438,7 @@
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-jami)
        ("flac" ,flac)
        ("gmp" ,gmp)
        ("gsm" ,gsm)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 09/18] gnu: restinio: Bump to 0.6.1.1.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (6 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 08/18] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 10/18] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
                     ` (9 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 02ba5e9601..b767c9035a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2608,7 +2608,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.0.1")
+    (version "0.6.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2617,7 +2617,7 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8"))))
+                "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      `(("zlib" ,zlib)
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 10/18] gnu: pjproject-jami: Add a new SFL patch.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (7 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 09/18] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 11/18] gnu: pjproject: Fix formatting Jan Wielkiewicz
                     ` (8 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index c67236ac0d..e612605775 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -168,7 +168,8 @@
                   "fix_ebusy_turn"
                   "ignore_ipv6_on_transport_check"
                   "fix_turn_connection_failure"
-                  "disable_local_resolution"))
+                  "disable_local_resolution"
+                  "fix_assert_on_connection_attempt"))
                #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 11/18] gnu: pjproject: Fix formatting.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (8 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 10/18] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-22  9:32     ` Mathieu Othacehe
  2020-04-21 16:10   ` [bug#40677] [PATCH 12/18] gnu: jami: Make gettext a native input Jan Wielkiewicz
                     ` (7 subsequent siblings)
  17 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/telephony.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 62bd8fd548..59cd06f6f5 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -704,10 +704,10 @@ calls and messages")
        ("pkg-config" ,pkg-config)
        ("libtool" ,libtool)))
     (arguments
-     `(;; FIXME make: No rule to make target
+     `( ;; FIXME make: No rule to make target
        ;; 'pjlib-test-unknown-[something]-gnu'.
        #:tests? #f
-       ;; #:test-target "selftest"
+                ;; #:test-target "selftest"
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'build-dep
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 12/18] gnu: jami: Make gettext a native input.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (9 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 11/18] gnu: pjproject: Fix formatting Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
                     ` (6 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 e612605775..534958df5d 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -551,7 +551,6 @@ This package provides a library common to all Jami clients.")
        ("libnotify" ,libnotify)
        ("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
-       ("gettext" ,gnu-gettext)
        ("libcanberra" ,libcanberra)
        ("webkitgtk" ,webkitgtk)
        ;; TODO: We must wrap ring-client-gnome to force using the
@@ -568,6 +567,7 @@ This package provides a library common to all Jami clients.")
        ("sqlite" ,sqlite-with-column-metadata)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("gettext" ,gnu-gettext)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (10 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 12/18] gnu: jami: Make gettext a native input Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-22  9:39     ` Mathieu Othacehe
  2020-04-21 16:10   ` [bug#40677] [PATCH 14/18] gnu: pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
                     ` (5 subsequent siblings)
  17 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm      | 65 ++++++++++++++++++++++++++--
 gnu/packages/telephony.scm | 86 --------------------------------------
 2 files changed, 61 insertions(+), 90 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 534958df5d..95f34afa03 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -98,11 +98,64 @@
 
 (define-public pjproject-jami
   (package
-    (inherit pjproject)
     (name "pjproject-jami")
+    (version "2.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pjsip/pjproject.git")
+             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (let ((third-party-directories
+                  ;; Things we don't need:
+                  ;; BaseClasses - contains libraries from Windows SDK
+                  ;; we don't need it, at least not now.
+                  (list "BaseClasses" "g7221" "ilbc" "milenage"
+                        "speex" "threademulation" "yuv" "bdsound"
+                        "gsm" "mp3" "resample" "srtp" "webrtc"
+                        ;; Keep only resample, build and README.txt.
+                        "build/baseclasses" "build/g7221" "build/gsm"
+                        "build/ilbc" "build/milenage" "build/resample"
+                        "build/samplerate" "build/speex" "build/srtp"
+                        "build/webrtc" "build/yuv")))
+             ;; Keep only Makefiles related to resample.
+             (for-each (lambda (directory)
+                         (delete-file-recursively
+                          (string-append "third_party/" directory)))
+                       third-party-directories)
+             #t)
+           (let ((third-party-dirs
+                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
+                        "portaudio" "resample")))
+             (for-each
+              (lambda (dirs)
+                (substitute* "third_party/build/os-linux.mak"
+                  (((string-append "DIRS += " dirs)) "")))
+              third-party-dirs))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("portaudio" ,portaudio)))
+    (propagated-inputs
+     ;; These packages are referenced in the Libs field of the pkg-config
+     ;; file that will be installed by pjproject.
+     `(("speex" ,speex)
+       ("libsrtp" ,libsrtp)
+       ("gnutls" ,gnutls)
+       ("resample", resample)
+       ("util-linux" ,util-linux)))
     (native-inputs
-     `(("SFL-patches" ,(jami-source))
-       ,@(package-native-inputs pjproject)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)
+       ("SFL-patches" ,(jami-source))))
     (arguments
      `(#:tests? #f
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
@@ -187,7 +240,11 @@
              (substitute* "Makefile"
                (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))))
+             #t)))))
+    (home-page "https://www.pjsip.org")
+    (synopsis "SIP (protocol) stack used by Jami")
+    (description "Pjsip is a C library implementing the SIP protocol. This version is highly modified for use in GNU Jami.")
+    (license license:gpl2+)))
 
 (define-public ffmpeg-jami
   (let ((commit "59da9dcd7ef6277e4e04998ced71b05a6083c635")
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 59cd06f6f5..b3d2b8bc70 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -644,92 +644,6 @@ phone to IP phone communication or in a network using a SIP proxy to route your
 calls and messages")
     (license license:gpl2+)))
 
-(define-public pjproject
-  (package
-    (name "pjproject")
-    (version "2.9")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/pjsip/pjproject.git")
-             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (let ((third-party-directories
-                  ;; Things we don't need:
-                  ;; BaseClasses - contains libraries from Windows SDK
-                  ;; we don't need it, at least not now.
-                  (list "BaseClasses" "g7221" "ilbc" "milenage"
-                        "speex" "threademulation" "yuv" "bdsound"
-                        "gsm" "mp3" "resample" "srtp" "webrtc"
-                        ;; Keep only resample, build and README.txt.
-                        "build/baseclasses" "build/g7221" "build/gsm"
-                        "build/ilbc" "build/milenage" "build/resample"
-                        "build/samplerate" "build/speex" "build/srtp"
-                        "build/webrtc" "build/yuv")))
-             ;; Keep only Makefiles related to resample.
-             (for-each (lambda (directory)
-                         (delete-file-recursively
-                          (string-append "third_party/" directory)))
-                       third-party-directories)
-             #t)
-           (let ((third-party-dirs
-                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
-                        "portaudio" "resample")))
-             (for-each
-              (lambda (dirs)
-                (substitute* "third_party/build/os-linux.mak"
-                  (((string-append "DIRS += " dirs)) "")))
-              third-party-dirs))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("portaudio" ,portaudio)))
-    (propagated-inputs
-     ;; These packages are referenced in the Libs field of the pkg-config
-     ;; file that will be installed by pjproject.
-     `(("speex" ,speex)
-       ("libsrtp" ,libsrtp)
-       ("gnutls" ,gnutls)
-       ("resample", resample)
-       ("util-linux" ,util-linux)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
-    (arguments
-     `( ;; FIXME make: No rule to make target
-       ;; 'pjlib-test-unknown-[something]-gnu'.
-       #:tests? #f
-                ;; #:test-target "selftest"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'build-dep
-           (lambda _ (invoke "make" "dep")))
-         (add-before 'patch-source-shebangs 'autoconf
-           (lambda _
-             (invoke "autoconf" "-v" "-f" "-i" "-o"
-                     "aconfigure" "aconfigure.ac")))
-         (add-before 'autoconf 'disable-some-tests
-           ;; Three of the six test programs fail due to missing network
-           ;; access.
-           (lambda _
-             (substitute* "Makefile"
-               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))
-    (home-page "https://www.pjsip.org")
-    (synopsis "Session Initiation Protocol (SIP) stack")
-    (description "PJProject provides an implementation of the Session
-Initiation Protocol (SIP) and a multimedia framework.")
-    (license license:gpl2+)))
-
 (define-public libtgvoip
   (package
     (name "libtgvoip")
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 14/18] gnu: pjproject-jami: Bump to 2.10, apply new SFL patches.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (11 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-22  9:40     ` Mathieu Othacehe
  2020-04-21 16:10   ` [bug#40677] [PATCH 15/18] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
                     ` (4 subsequent siblings)
  17 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 34 +++++++++++++---------------------
 1 file changed, 13 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 95f34afa03..291eb8522c 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -99,13 +99,13 @@
 (define-public pjproject-jami
   (package
     (name "pjproject-jami")
-    (version "2.9")
+    (version "2.10")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/pjsip/pjproject.git")
-             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
+             (commit "3e7b75cb2e482baee58c1991bd2fa4fb06774e0d")))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -138,7 +138,7 @@
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
+         "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))))
     (build-system gnu-build-system)
     (inputs
      `(("portaudio" ,portaudio)))
@@ -160,7 +160,7 @@
      `(#:tests? #f
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
        #:configure-flags
-       (list "--disable-oss"
+       (list ;;"--disable-oss" ; do we need this?
              "--disable-sound"
              "--disable-video"
              "--enable-ext-sound"
@@ -206,23 +206,15 @@
                 #:inputs inputs
                 #:dep-name "pjproject"
                 #:patches
-                '("fix_turn_alloc_failure"
-                  "rfc2466"
-                  "ipv6"
-                  "multiple_listeners"
-                  "pj_ice_sess"
-                  "fix_turn_fallback"
-                  "fix_ioqueue_ipv6_sendto"
-                  "add_dtls_transport"
-                  "rfc6544"
-                  "ice_config"
-                  "sip_config"
-                  "fix_first_packet_turn_tcp"
-                  "fix_ebusy_turn"
-                  "ignore_ipv6_on_transport_check"
-                  "fix_turn_connection_failure"
-                  "disable_local_resolution"
-                  "fix_assert_on_connection_attempt"))
+                '("0001-rfc6544"
+                  "0002-rfc2466"
+                  "0003-add-tcp-keep-alive"
+                  "0004-multiple_listeners"
+                  "0005-fix_ebusy_turn"
+                  "0006-ignore_ipv6_on_transport_check"
+                  "0007-pj_ice_sess"
+                  "0008-fix_ioqueue_ipv6_sendto"
+                  "0009-add-config-site"))
                #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 15/18] gnu: opendht: Bump to 2.0.0.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (12 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 14/18] gnu: pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 16/18] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
                     ` (3 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/networking.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index b767c9035a..cf865edef4 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -33,7 +33,7 @@
 ;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2019 Tonton <tonton@riseup.net>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
 ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
@@ -2650,7 +2650,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.0.0beta2")
+    (version "2.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2659,7 +2659,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5"))))
+                "1q1fwk8wwk9r6bp0indpr60ql668lsk16ykslacyhrh7kg97kvhr"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 16/18] gnu: jami: Bump to 20200401.1.6f090de.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (13 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 15/18] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 17/18] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
                     ` (2 subsequent siblings)
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 291eb8522c..50bcd63a35 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20191101.3.67671e7")
+(define %jami-version "20200401.1.6f090de")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -75,7 +75,7 @@
          #f))
     (sha256
      (base32
-      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
+      "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
 
 ;; Savoir-Faire Linux modifies many libraries to add features
 ;; to Jami. This procedure makes applying patches to a given
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 17/18] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (14 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 16/18] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-21 16:10   ` [bug#40677] [PATCH 18/18] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
  2020-04-22  8:59   ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
  17 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 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 50bcd63a35..b441e5e426 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -616,7 +616,7 @@ This package provides a library common to all Jami clients.")
        ("sqlite" ,sqlite-with-column-metadata)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("gettext" ,gnu-gettext)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 18/18] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (15 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 17/18] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
@ 2020-04-21 16:10   ` Jan Wielkiewicz
  2020-04-22  9:44     ` Mathieu Othacehe
  2020-04-22  8:59   ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
  17 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-04-21 16:10 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

---
 gnu/packages/jami.scm | 60 ++++++++++++++++++++++++-------------------
 1 file changed, 33 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index b441e5e426..a61b1b6043 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -32,6 +32,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages multiprecision)
@@ -161,33 +162,38 @@
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
        #:configure-flags
        (list ;;"--disable-oss" ; do we need this?
-             "--disable-sound"
-             "--disable-video"
-             "--enable-ext-sound"
-             "--disable-speex-aec"
-             "--disable-g711-codec"
-             "--disable-l16-codec"
-             "--disable-gsm-codec"
-             "--disable-g722-codec"
-             "--disable-g7221-codec"
-             "--disable-speex-codec"
-             "--disable-ilbc-codec"
-             "--disable-opencore-amr"
-             "--disable-silk"
-             "--disable-sdl"
-             "--disable-ffmpeg"
-             "--disable-v4l2"
-             "--disable-openh264"
-             "--disable-resample"
-             "--disable-libwebrtc"
-             "--with-gnutls"
-             "--with-external-srtp"
-             ;; We need -fPIC or else we get the following error when linking
-             ;; against pjproject-jami:
-             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
-             ;;   making a shared object;
-             "CFLAGS=-fPIC"
-             "CXXFLAGS=-fPIC")
+        "--disable-sound"
+        "--disable-video"
+        ;; The following flag is linux specific
+        ,@(if (hurd-triplet? (or (%current-system)
+                                 (%current-target-system)))
+              '("--enable-epoll")
+              '())
+        "--enable-ext-sound"
+        "--disable-speex-aec"
+        "--disable-g711-codec"
+        "--disable-l16-codec"
+        "--disable-gsm-codec"
+        "--disable-g722-codec"
+        "--disable-g7221-codec"
+        "--disable-speex-codec"
+        "--disable-ilbc-codec"
+        "--disable-opencore-amr"
+        "--disable-silk"
+        "--disable-sdl"
+        "--disable-ffmpeg"
+        "--disable-v4l2"
+        "--disable-openh264"
+        "--disable-resample"
+        "--disable-libwebrtc"
+        "--with-gnutls"
+        "--with-external-srtp"
+        ;; We need -fPIC or else we get the following error when linking
+        ;; against pjproject-jami:
+        ;;   relocation R_X86_64_32S against `.rodata' can not be used when
+        ;;   making a shared object;
+        "CFLAGS=-fPIC"
+        "CXXFLAGS=-fPIC")
        #:modules ((guix build utils)
                   ,@(@@ (guix build-system gnu) %default-modules))
        #:phases
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (16 preceding siblings ...)
  2020-04-21 16:10   ` [bug#40677] [PATCH 18/18] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
@ 2020-04-22  8:59   ` Mathieu Othacehe
  2020-04-22 10:42     ` Jan
  2020-04-22 16:08     ` Christopher Baines
  17 siblings, 2 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  8:59 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Hello Jan,

Thanks for the updated serie. I see it has shrunk a bit, which is good!
First two general remarks. As explained by Christopher, you need to
make sure that you pass the version of the patchset to git.

You also need to write commit messages respecting this
https://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs
as I already told you.

> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>

Why is Pierre copyright here?

> +;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>

I'm not sure what's the copyright policy when moving stuff to new
files. Someone?

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 03/18] gnu: jami.scm: Add and use a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies.
  2020-04-21 16:10   ` [bug#40677] [PATCH 03/18] gnu: jami.scm: Add and use a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
@ 2020-04-22  9:07     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  9:07 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> +;; Savoir-Faire Linux modifies many libraries to add features
> +;; to Jami. This procedure makes applying patches to a given
> +;; package easy.
> +(define-public jami-apply-dependency-patches

This does not need to be public.

> -     `(("savoir-faire-linux-patches" ,(jami-source))
> +     `(("SFL-patches" ,(jami-source))

I do prefer the old version without upper case.

> +       #:modules ((guix build utils)
> +                  ,@(@@ (guix build-system gnu) %default-modules))

pjproject is using the gnu-build-system which should provide all those
modules, so I don't think you need this.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/18] gnu: Add libnatpmp.
  2020-04-21 16:10   ` [bug#40677] [PATCH 04/18] gnu: Add libnatpmp Jan Wielkiewicz
@ 2020-04-22  9:27     ` Mathieu Othacehe
  2020-04-27 22:55       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  9:27 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> +         (delete 'configure)
> +         (delete 'check))

Please add a ;no tests comment.

I guess we are dealing with a raw Makefile here. This is bad news
because it means that cross-compilation is almost always broken.

You can run:

--8<---------------cut here---------------start------------->8---
guix build --target=aarch64-linux-gnu libnatpmp
--8<---------------cut here---------------end--------------->8---

to check it. Then, you probably need to do something similar as what is
done in package "iw" (set CC variable at least).


> +       #:make-flags
> +       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
> +    (home-page "http://miniupnp.free.fr/libnatpmp.html")
> +    (synopsis "C library implementing NAT-PMP")
> +    (description
> +     "libnatpmp is a portable and asynchronous implementaiton of
           ^
       @code{libnatpmp}                                    ^
                                                          typo
Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 11/18] gnu: pjproject: Fix formatting.
  2020-04-21 16:10   ` [bug#40677] [PATCH 11/18] gnu: pjproject: Fix formatting Jan Wielkiewicz
@ 2020-04-22  9:32     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  9:32 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677

>         #:tests? #f
> -       ;; #:test-target "selftest"
> +                ;; #:test-target "selftest"

Indentation seems off here. Maybe you can drop this patch.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.
  2020-04-21 16:10   ` [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
@ 2020-04-22  9:39     ` Mathieu Othacehe
  2020-04-22 11:42       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  9:39 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677

>  
>  (define-public pjproject-jami
>    (package
> -    (inherit pjproject)
>      (name "pjproject-jami")
> +    (version "2.9")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/pjsip/pjproject.git")
> +             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
> +       (modules '((guix build utils)))

pjproject is used by packages such as asterisk (not yet packaged). So I
would prefer to keep pjproject, even if it's currently broken.

WDYT?

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 14/18] gnu: pjproject-jami: Bump to 2.10, apply new SFL patches.
  2020-04-21 16:10   ` [bug#40677] [PATCH 14/18] gnu: pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
@ 2020-04-22  9:40     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  9:40 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -       (list "--disable-oss"
> +       (list ;;"--disable-oss" ; do we need this?

Do not introduce commented code. If you think we do not need this flag,
you can remove it and explain why in the commit message.

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 18/18] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag.
  2020-04-21 16:10   ` [bug#40677] [PATCH 18/18] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
@ 2020-04-22  9:44     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22  9:44 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -             "--disable-l16-codec"
> -             "--disable-gsm-codec"
> -             "--disable-g722-codec"
> -             "--disable-g7221-codec"
> -             "--disable-speex-codec"

You should fix indentation in a separate commit, otherwise its hard to
see get what's going on here.

> +        ;; The following flag is linux specific
> +        ,@(if (hurd-triplet? (or (%current-system)
> +                                 (%current-target-system)))
> +              '("--enable-epoll")
> +              '())

Don't we want to add this flag only on Linux platform? I think you
should transpose the if branches.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-22  8:59   ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
@ 2020-04-22 10:42     ` Jan
  2020-04-22 11:42       ` Mathieu Othacehe
  2020-04-22 16:08     ` Christopher Baines
  1 sibling, 1 reply; 144+ messages in thread
From: Jan @ 2020-04-22 10:42 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Wed, 22 Apr 2020 10:59:39 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Hello Jan,
> 
> Thanks for the updated serie. I see it has shrunk a bit, which is
> good! First two general remarks. As explained by Christopher, you
> need to make sure that you pass the version of the patchset to git.
I passed the "-v2", didn't it wrok?

> You also need to write commit messages respecting this
> https://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs
> as I already told you.
I have to read it one more time then, it's a bit unintuitive and
complicated.

> > +;;; GNU Guix --- Functional package management for GNU
> > +;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>  
> 
> Why is Pierre copyright here?
As far as I know he was an original author or maintainer of the
packages.
Isn't it required when copying a copyrighted work?

> > +;;; Copyright © 2019, 2020 Jan Wielkiewicz
> > <tona_kosmicznego_smiecia@interia.pl>  
> 
> I'm not sure what's the copyright policy when moving stuff to new
> files. Someone?
> 
> Thanks,
> 
> Mathieu


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.
  2020-04-22  9:39     ` Mathieu Othacehe
@ 2020-04-22 11:42       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-04-22 11:42 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Wed, 22 Apr 2020 11:39:11 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> >  
> >  (define-public pjproject-jami
> >    (package
> > -    (inherit pjproject)
> >      (name "pjproject-jami")
> > +    (version "2.9")
> > +    (source
> > +     (origin
> > +       (method git-fetch)
> > +       (uri (git-reference
> > +             (url "https://github.com/pjsip/pjproject.git")
> > +             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
> > +       (modules '((guix build utils)))  
> 
> pjproject is used by packages such as asterisk (not yet packaged). So
> I would prefer to keep pjproject, even if it's currently broken.
> 
> WDYT?
> 
> Mathieu

Should I revert the change and make pjproject-jami inherit from it
again? Is inheriting from a dead package even worth it for just two
packages?
Moving the code from pjproject to pjproject-jami actually made it easier
to maintain. If someone packages asteriks, they will have to copy the
code, modify it with configure flags, add missing dependencies and use
a different version, because Jami uses a custom version so patching
work.

We can keep the broken package, but I would like to keep my
pjproject-jami without inheritance as it is after my changes.
It is just easier to maintain this way.

But if I'm wrong, then I can just inherit from pjproject as it was
before. I'm not an experienced contributor after all.


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-22 10:42     ` Jan
@ 2020-04-22 11:42       ` Mathieu Othacehe
  2020-04-27 23:18         ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-22 11:42 UTC (permalink / raw)
  To: Jan; +Cc: 40677


> I passed the "-v2", didn't it wrok?

No, I would expect the patch subject to look like "[PATCH v2 x/y]". What
I do is to run git format-patch this way:

--8<---------------cut here---------------start------------->8---
git format-patch -4 --cover-letter --subject-prefix="PATCH v2"
--8<---------------cut here---------------end--------------->8---

there might better ways though.

>
>> You also need to write commit messages respecting this
>> https://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs
>> as I already told you.
> I have to read it one more time then, it's a bit unintuitive and
> complicated.

Yes, you can browse the git log for examples.

>
>> > +;;; GNU Guix --- Functional package management for GNU
>> > +;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>  
>> 
>> Why is Pierre copyright here?
> As far as I know he was an original author or maintainer of the
> packages.
> Isn't it required when copying a copyrighted work?

Ok, then you might want to add Ludo and Vincent copyrights that appear
to have modified those packages according to git blame.

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-22  8:59   ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
  2020-04-22 10:42     ` Jan
@ 2020-04-22 16:08     ` Christopher Baines
  1 sibling, 0 replies; 144+ messages in thread
From: Christopher Baines @ 2020-04-22 16:08 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677, Jan Wielkiewicz

[-- Attachment #1: Type: text/plain, Size: 387 bytes --]


Mathieu Othacehe <m.othacehe@gmail.com> writes:

> Thanks for the updated serie. I see it has shrunk a bit, which is good!
> First two general remarks. As explained by Christopher, you need to
> make sure that you pass the version of the patchset to git.

Well, passing the version isn't a very hard requirement. But it can be
helpful when working out what's the latest set of patches.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/18] gnu: Add libnatpmp.
  2020-04-22  9:27     ` Mathieu Othacehe
@ 2020-04-27 22:55       ` Jan
  2020-04-28  7:19         ` Mathieu Othacehe
  0 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-04-27 22:55 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Wed, 22 Apr 2020 11:27:37 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> > +         (delete 'configure)
> > +         (delete 'check))  
> 
> Please add a ;no tests comment.
Done.

> I guess we are dealing with a raw Makefile here. This is bad news
> because it means that cross-compilation is almost always broken.
> 
> You can run:
> 
> --8<---------------cut here---------------start------------->8---
> guix build --target=aarch64-linux-gnu libnatpmp
> --8<---------------cut here---------------end--------------->8---

It was built successfully, it works then I guess.


> to check it. Then, you probably need to do something similar as what
> is done in package "iw" (set CC variable at least).
Where can I read about this CC thing more? Is it needed when
cross-compilation works? 
> 
> > +       #:make-flags
> > +       (list (string-append "PREFIX=" (assoc-ref %outputs
> > "out")))))
> > +    (home-page "http://miniupnp.free.fr/libnatpmp.html")
> > +    (synopsis "C library implementing NAT-PMP")
> > +    (description
> > +     "libnatpmp is a portable and asynchronous implementaiton of  
>            ^
>        @code{libnatpmp}                                    ^
>                                                           typo
Fixed.

> Thanks,
> 
> Mathieu


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-22 11:42       ` Mathieu Othacehe
@ 2020-04-27 23:18         ` Jan
  2020-04-28  7:14           ` Mathieu Othacehe
  0 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-04-27 23:18 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

Hello,

one more question about writing these commit messages. Do you want me
to correct just the patch fixing downloading or the whole patch series?
As for the rest, I almost corrected everything.


Jan Wielkiewicz

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm.
  2020-04-27 23:18         ` Jan
@ 2020-04-28  7:14           ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-28  7:14 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello Jan,

> one more question about writing these commit messages. Do you want me
> to correct just the patch fixing downloading or the whole patch series?
> As for the rest, I almost corrected everything.

No the whole patch serie, you can have a look to the git log for
examples. Good job fixing the rest :)

Thanks,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/18] gnu: Add libnatpmp.
  2020-04-27 22:55       ` Jan
@ 2020-04-28  7:19         ` Mathieu Othacehe
  2020-04-29 22:31           ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-28  7:19 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello,

>> --8<---------------cut here---------------start------------->8---
>> guix build --target=aarch64-linux-gnu libnatpmp
>> --8<---------------cut here---------------end--------------->8---
>
> It was built successfully, it works then I guess.
>
>
>> to check it. Then, you probably need to do something similar as what
>> is done in package "iw" (set CC variable at least).
> Where can I read about this CC thing more? Is it needed when
> cross-compilation works? 

The build may succeed but if the native GCC compiler was picked, then
it's a native build and not a cross-build. You can run the following
command:

--8<---------------cut here---------------start------------->8---
file the-binary-or-library
--8<---------------cut here---------------end--------------->8---

and see what it reports. You can also have a look to maradns package
for an example of how to deal with CC variable.

Don't hesitate if you have further questions,

Mathieu

^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/18] gnu: Add libnatpmp.
  2020-04-28  7:19         ` Mathieu Othacehe
@ 2020-04-29 22:31           ` Jan
  2020-04-30  7:04             ` Mathieu Othacehe
  0 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-04-29 22:31 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Tue, 28 Apr 2020 09:19:01 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Hello,
> 
> >> --8<---------------cut here---------------start------------->8---
> >> guix build --target=aarch64-linux-gnu libnatpmp
> >> --8<---------------cut here---------------end--------------->8---  
> >
> > It was built successfully, it works then I guess.
> >
> >  
> >> to check it. Then, you probably need to do something similar as
> >> what is done in package "iw" (set CC variable at least).  
> > Where can I read about this CC thing more? Is it needed when
> > cross-compilation works?   
> 
> The build may succeed but if the native GCC compiler was picked, then
> it's a native build and not a cross-build. You can run the following
> command:
> 
> --8<---------------cut here---------------start------------->8---
> file the-binary-or-library
> --8<---------------cut here---------------end--------------->8---
> 
> and see what it reports. You can also have a look to maradns package
> for an example of how to deal with CC variable.
> 
> Don't hesitate if you have further questions,
> 
> Mathieu

I copied the code from the "iw" package, and the output of file is
now "ARM aarch64" instead of the previous "x86-64". That's success,
right?


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH 04/18] gnu: Add libnatpmp.
  2020-04-29 22:31           ` Jan
@ 2020-04-30  7:04             ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-04-30  7:04 UTC (permalink / raw)
  To: Jan; +Cc: 40677


> I copied the code from the "iw" package, and the output of file is
> now "ARM aarch64" instead of the previous "x86-64". That's success,
> right?

Yes it looks good!

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 00/15] Jami patches.
  2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
                   ` (2 preceding siblings ...)
  2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
@ 2020-05-02  1:14 ` Jan Wielkiewicz
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
                     ` (15 more replies)
  2020-05-13 18:12 ` [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami Jan Wielkiewicz
  2020-05-15  0:47 ` [bug#40677] [PATCH v5] " Jan Wielkiewicz
  5 siblings, 16 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

*** BLURB HERE ***

Hello,
I hope my commit messages are good now.
I removed some unnecessary commits.

Jan Wielkiewicz (15):
  gnu: telephony.scm: Move Jami and its dependencies to jami.scm.
  gnu: jami: Fix downloading.
  gnu: jami.scm: Add and use a generalized procedure for applying
    patches to Jami dependencies.
  gnu: Add libnatpmp.
  gnu: libring: Add libnatpmp as an optional dependency.
  gnu: libupnp: Bump to 1.8.6
  gnu: Add ffmpeg-jami.
  gnu: libring: Use ffmpeg-jami instead of ffmpeg.
  gnu: restinio: Bump to 0.6.1.1.
  gnu: jami: Make gettext a native input.
  gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches.
  gnu: jami: Bump to 20200401.1.6f090de.
  gnu: jami: Replace gnu-gettext with gettext-minimal, just like on
    master.
  gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll"
    flag.
  gnu: opendht: Bump to 2.0.0.

 gnu/local.mk                |   2 +
 gnu/packages/jami.scm       | 599 ++++++++++++++++++++++++++++++++++++
 gnu/packages/networking.scm |  50 ++-
 gnu/packages/telephony.scm  | 297 +-----------------
 gnu/packages/upnp.scm       |  18 +-
 5 files changed, 662 insertions(+), 304 deletions(-)
 create mode 100644 gnu/packages/jami.scm

-- 
2.26.2





^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:45     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 02/15] gnu: jami: Fix downloading Jan Wielkiewicz
                     ` (14 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

Jami is a massive package and its developers modify many
libraries. Keeping them in a single file makes maintaining
easier.

* gnu/local.mk (GNU_SYSTEM_MODULES): Add jami.scm.

* gnu/packages/jami.scm: Add file.
(%jami-version, jami-source, pjproject-jami,
libring, libringclient, jami, jami-client-gnome):
New variables.

* gnu/packages/telephony.scm:
(%jami-version, jami-source, pjproject-jami,
libring, libringclient, jami, jami-client-gnome):
Remove variables.
---
 gnu/local.mk               |   2 +
 gnu/packages/jami.scm      | 351 +++++++++++++++++++++++++++++++++++++
 gnu/packages/telephony.scm | 291 ------------------------------
 3 files changed, 353 insertions(+), 291 deletions(-)
 create mode 100644 gnu/packages/jami.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 26d26ee215..812253b192 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -33,6 +33,7 @@
 # Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 # Copyright © 2020 Felix Gruber <felgru@posteo.net>
 # Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 #
 # This file is part of GNU Guix.
 #
@@ -278,6 +279,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ipfs.scm			\
   %D%/packages/irc.scm  			\
   %D%/packages/iso-codes.scm			\
+  %D%/packages/jami.scm				\
   %D%/packages/java.scm				\
   %D%/packages/java-compression.scm		\
   %D%/packages/java-graphics.scm		\
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
new file mode 100644
index 0000000000..5c167808f0
--- /dev/null
+++ b/gnu/packages/jami.scm
@@ -0,0 +1,351 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages jami)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages aidc)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages telephony)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages upnp)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages webkit)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
+(define %jami-version "20191101.3.67671e7")
+
+(define* (jami-source #:key without-daemon)
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
+                        %jami-version
+                        ".tar.gz"))
+    (modules '((guix build utils)))
+    (snippet
+     (if without-daemon
+         '(begin
+            (delete-file-recursively "daemon/contrib"))
+         #f))
+    (sha256
+     (base32
+      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
+
+(define-public pjproject-jami
+  (package
+    (inherit pjproject)
+    (name "pjproject-jami")
+    (native-inputs
+     `(("savoir-faire-linux-patches" ,(jami-source))
+       ,@(package-native-inputs pjproject)))
+    (arguments
+     `(#:tests? #f
+       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
+       #:configure-flags
+       (list "--disable-oss"
+             "--disable-sound"
+             "--disable-video"
+             "--enable-ext-sound"
+             "--disable-speex-aec"
+             "--disable-g711-codec"
+             "--disable-l16-codec"
+             "--disable-gsm-codec"
+             "--disable-g722-codec"
+             "--disable-g7221-codec"
+             "--disable-speex-codec"
+             "--disable-ilbc-codec"
+             "--disable-opencore-amr"
+             "--disable-silk"
+             "--disable-sdl"
+             "--disable-ffmpeg"
+             "--disable-v4l2"
+             "--disable-openh264"
+             "--disable-resample"
+             "--disable-libwebrtc"
+             "--with-gnutls"
+             "--with-external-srtp"
+             ;; We need -fPIC or else we get the following error when linking
+             ;; against pjproject-jami:
+             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
+             ;;   making a shared object;
+             "CFLAGS=-fPIC"
+             "CXXFLAGS=-fPIC")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (add-after 'unpack 'apply-patches
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
+                   ;; Comes from
+                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+                   ;; WARNING: These amount for huge changes in pjproject.
+                   (savoir-faire-linux-patches
+                    '("fix_turn_alloc_failure"
+                      "rfc2466"
+                      "ipv6"
+                      "multiple_listeners"
+                      "pj_ice_sess"
+                      "fix_turn_fallback"
+                      "fix_ioqueue_ipv6_sendto"
+                      "add_dtls_transport"
+                      "rfc6544"
+                      "ice_config"
+                      "sip_config"
+                      "fix_first_packet_turn_tcp"
+                      "fix_ebusy_turn"
+                      "ignore_ipv6_on_transport_check"
+                      "fix_turn_connection_failure"
+                      ;; "uwp_vs" ; for windows
+                      "disable_local_resolution")))
+               (mkdir-p savoir-faire-linux-patches-directory)
+               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
+                       "-C" savoir-faire-linux-patches-directory
+                       "--strip-components=5"
+                       "ring-project/daemon/contrib/src/pjproject")
+               (for-each
+                (lambda (file)
+                  (invoke "patch" "--force" "-p1" "-i"
+                          (string-append savoir-faire-linux-patches-directory "/"
+                                         file ".patch")))
+                savoir-faire-linux-patches))
+             #t))
+         ;; TODO: We could use substitute-keyword-arguments instead of
+         ;; repeating the phases from pjproject, but somehow it does
+         ;; not work.
+         (add-before 'build 'build-dep
+           (lambda _ (invoke "make" "dep")))
+         (add-before 'patch-source-shebangs 'autoconf
+           (lambda _
+             (invoke "autoconf" "-v" "-f" "-i" "-o"
+                     "aconfigure" "aconfigure.ac")))
+         (add-before 'autoconf 'disable-some-tests
+           ;; Three of the six test programs fail due to missing network
+           ;; access.
+           (lambda _
+             (substitute* "Makefile"
+               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
+                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
+             #t)))))))
+
+(define-public libring
+  (package
+    (name "libring")
+    (version %jami-version)
+    (source (jami-source #:without-daemon #t))
+    (build-system gnu-build-system)
+    (inputs
+     ;; Missing (optional?) dep: libnatpmp.
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("dbus-c++" ,dbus-c++)
+       ("eudev" ,eudev)
+       ("ffmpeg" ,ffmpeg)
+       ("flac" ,flac)
+       ("gmp" ,gmp)
+       ("gsm" ,gsm)
+       ("jack" ,jack-1)
+       ("jsoncpp" ,jsoncpp)
+       ("libogg" ,libogg)
+       ("libva" ,libva)
+       ("opendht" ,opendht)
+       ("opus" ,opus)
+       ("pcre" ,pcre)
+       ("pulseaudio" ,pulseaudio)
+       ("libsamplerate" ,libsamplerate)
+       ("libsndfile" ,libsndfile)
+       ("speex" ,speex)
+       ("speexdsp" ,speexdsp)
+       ("libupnp" ,libupnp)
+       ("libvorbis" ,libvorbis)
+       ("libx264" ,libx264)
+       ("libvdpau" ,libvdpau)
+       ("yaml-cpp" ,yaml-cpp)
+       ("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("libsecp256k1" ,libsecp256k1)
+       ("python" ,python)
+       ("python-wrapper" ,python-wrapper)
+       ("restinio" ,restinio)
+       ("libx11" ,libx11)
+       ("asio" ,asio)
+       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
+       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
+       ("pjproject" ,pjproject-jami)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("cppunit" ,cppunit)
+       ("perl" ,perl)))                 ; Needed for documentation.
+    (arguments
+     `(#:tests? #f         ; The tests fail to compile due to missing headers.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "daemon")
+             #t))
+         (add-before 'build 'add-lib-dir
+           (lambda _
+             (mkdir-p "src/lib")
+             #t)))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library and daemon implementing the Jami core
+functionality.")
+    (home-page "https://jami.net/")
+    (license license:gpl3+)))
+
+(define-public libringclient
+  (package
+    (inherit libring)
+    (name "libringclient")
+    (build-system cmake-build-system)
+    (propagated-inputs
+     `(("libring" ,libring)     ; For 'dring'.
+       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
+       ("qttools" ,qttools)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:configure-flags
+       (list (string-append "-DRING_BUILD_DIR="
+                            (assoc-ref %build-inputs "libring") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "lrc")
+             #t))
+         (add-before 'configure 'fix-dbus-interfaces-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
+                (string-append (assoc-ref inputs "libring")
+                               dbus-interfaces-path-suffix))))))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library common to all Jami clients.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami
+  (package
+    (inherit libring)
+    (name "jami")
+    (build-system cmake-build-system)
+    (inputs
+     `(("libringclient" ,libringclient)
+       ("gtk+" ,gtk+)
+       ("qrencode" ,qrencode)
+       ("libnotify" ,libnotify)
+       ("clutter" ,clutter)
+       ("clutter-gtk" ,clutter-gtk)
+       ("gettext" ,gnu-gettext)
+       ("libcanberra" ,libcanberra)
+       ("webkitgtk" ,webkitgtk)
+       ;; TODO: We must wrap ring-client-gnome to force using the
+       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
+       ;; fails with:
+       ;;
+       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
+       ;;   undefined symbol: sqlite3_column_table_name16
+       ;;
+       ;; qtbase is built against sqlite-with-column-metadata but somehow
+       ;; jami-client-gnome ends up with both `sqlite' and
+       ;; `sqlite-with-column-metadata' as inputs and it seems that
+       ;; libqsqlite.so gets confused.
+       ("sqlite" ,sqlite-with-column-metadata)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("doxygen" ,doxygen)))
+    (propagated-inputs
+     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("evolution-data-server" ,evolution-data-server)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "client-gnome")
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
+               (wrap-program (string-append out "/bin/jami-gnome")
+                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
+             #t)))))
+    (synopsis "Distributed, privacy-respecting communication program")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides the Jami client for the GNOME desktop.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami-client-gnome
+  (deprecated-package "jami-client-gnome" jami))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 7b20954120..747b0d75a1 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -734,297 +734,6 @@ calls and messages")
 Initiation Protocol (SIP) and a multimedia framework.")
     (license license:gpl2+)))
 
-(define %jami-version "20191101.3.67671e7")
-
-(define* (jami-source #:key without-daemon)
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
-                        %jami-version
-                        ".tar.gz"))
-    (modules '((guix build utils)))
-    (snippet
-     (if without-daemon
-       '(begin
-          (delete-file-recursively "daemon/contrib"))
-       #f))
-    (sha256
-     (base32
-      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
-
-(define-public pjproject-jami
-  (package
-    (inherit pjproject)
-    (name "pjproject-jami")
-    (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
-       ,@(package-native-inputs pjproject)))
-    (arguments
-     `(#:tests? #f
-       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
-       #:configure-flags
-       (list "--disable-oss"
-             "--disable-sound"
-             "--disable-video"
-             "--enable-ext-sound"
-             "--disable-speex-aec"
-             "--disable-g711-codec"
-             "--disable-l16-codec"
-             "--disable-gsm-codec"
-             "--disable-g722-codec"
-             "--disable-g7221-codec"
-             "--disable-speex-codec"
-             "--disable-ilbc-codec"
-             "--disable-opencore-amr"
-             "--disable-silk"
-             "--disable-sdl"
-             "--disable-ffmpeg"
-             "--disable-v4l2"
-             "--disable-openh264"
-             "--disable-resample"
-             "--disable-libwebrtc"
-             "--with-gnutls"
-             "--with-external-srtp"
-             ;; We need -fPIC or else we get the following error when linking
-             ;; against pjproject-jami:
-             ;;   relocation R_X86_64_32S against `.rodata' can not be used when
-             ;;   making a shared object;
-             "CFLAGS=-fPIC"
-             "CXXFLAGS=-fPIC")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-git-checkout-writable
-           (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
-         (add-after 'unpack 'apply-patches
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
-                   ;; Comes from
-                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
-                   ;; WARNING: These amount for huge changes in pjproject.
-                   (savoir-faire-linux-patches
-                    '("fix_turn_alloc_failure"
-                      "rfc2466"
-                      "ipv6"
-                      "multiple_listeners"
-                      "pj_ice_sess"
-                      "fix_turn_fallback"
-                      "fix_ioqueue_ipv6_sendto"
-                      "add_dtls_transport"
-                      "rfc6544"
-                      "ice_config"
-                      "sip_config"
-                      "fix_first_packet_turn_tcp"
-                      "fix_ebusy_turn"
-                      "ignore_ipv6_on_transport_check"
-                      "fix_turn_connection_failure"
-                      ;; "uwp_vs" ; for windows
-                      "disable_local_resolution")))
-               (mkdir-p savoir-faire-linux-patches-directory)
-               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
-                       "-C" savoir-faire-linux-patches-directory
-                       "--strip-components=5"
-                       "ring-project/daemon/contrib/src/pjproject")
-               (for-each
-                (lambda (file)
-                  (invoke "patch" "--force" "-p1" "-i"
-                          (string-append savoir-faire-linux-patches-directory "/"
-                                         file ".patch")))
-                savoir-faire-linux-patches))
-             #t))
-         ;; TODO: We could use substitute-keyword-arguments instead of
-         ;; repeating the phases from pjproject, but somehow it does
-         ;; not work.
-         (add-before 'build 'build-dep
-           (lambda _ (invoke "make" "dep")))
-         (add-before 'patch-source-shebangs 'autoconf
-           (lambda _
-             (invoke "autoconf" "-v" "-f" "-i" "-o"
-                     "aconfigure" "aconfigure.ac")))
-         (add-before 'autoconf 'disable-some-tests
-           ;; Three of the six test programs fail due to missing network
-           ;; access.
-           (lambda _
-             (substitute* "Makefile"
-               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
-             #t)))))))
-
-(define-public libring
-  (package
-    (name "libring")
-    (version %jami-version)
-    (source (jami-source #:without-daemon #t))
-    (build-system gnu-build-system)
-    (inputs
-     ;; Missing (optional?) dep: libnatpmp.
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("dbus-c++" ,dbus-c++)
-       ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsm" ,gsm)
-       ("jack" ,jack-1)
-       ("jsoncpp" ,jsoncpp)
-       ("libogg" ,libogg)
-       ("libva" ,libva)
-       ("opendht" ,opendht)
-       ("opus" ,opus)
-       ("pcre" ,pcre)
-       ("pulseaudio" ,pulseaudio)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)
-       ("libupnp" ,libupnp)
-       ("libvorbis" ,libvorbis)
-       ("libx264" ,libx264)
-       ("libvdpau" ,libvdpau)
-       ("yaml-cpp" ,yaml-cpp)
-       ("zlib" ,zlib)
-       ("openssl" ,openssl)
-       ("libsecp256k1" ,libsecp256k1)
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("restinio" ,restinio)
-       ("libx11" ,libx11)
-       ("asio" ,asio)
-       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
-       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
-       ("pjproject" ,pjproject-jami)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("cppunit" ,cppunit)
-       ("perl" ,perl)))                 ; Needed for documentation.
-    (arguments
-     `(#:tests? #f         ; The tests fail to compile due to missing headers.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "daemon")
-             #t))
-         (add-before 'build 'add-lib-dir
-           (lambda _
-             (mkdir-p "src/lib")
-             #t)))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library and daemon implementing the Jami core
-functionality.")
-    (home-page "https://jami.net/")
-    (license license:gpl3+)))
-
-(define-public libringclient
-  (package
-    (inherit libring)
-    (name "libringclient")
-    (build-system cmake-build-system)
-    (propagated-inputs
-     `(("libring" ,libring)     ; For 'dring'.
-       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
-       ("qttools" ,qttools)))
-    (arguments
-     `(#:tests? #f                      ; There is no testsuite.
-       #:configure-flags
-       (list (string-append "-DRING_BUILD_DIR="
-                            (assoc-ref %build-inputs "libring") "/include"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "lrc")
-             #t))
-         (add-before 'configure 'fix-dbus-interfaces-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
-                (string-append (assoc-ref inputs "libring")
-                               dbus-interfaces-path-suffix))))))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library common to all Jami clients.")
-    (home-page "https://jami.net")
-    (license license:gpl3+)))
-
-(define-public jami
-  (package
-    (inherit libring)
-    (name "jami")
-    (build-system cmake-build-system)
-    (inputs
-     `(("libringclient" ,libringclient)
-       ("gtk+" ,gtk+)
-       ("qrencode" ,qrencode)
-       ("libnotify" ,libnotify)
-       ("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("libcanberra" ,libcanberra)
-       ("webkitgtk" ,webkitgtk)
-       ;; TODO: We must wrap ring-client-gnome to force using the
-       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
-       ;; fails with:
-       ;;
-       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
-       ;;   undefined symbol: sqlite3_column_table_name16
-       ;;
-       ;; qtbase is built against sqlite-with-column-metadata but somehow
-       ;; jami-client-gnome ends up with both `sqlite' and
-       ;; `sqlite-with-column-metadata' as inputs and it seems that
-       ;; libqsqlite.so gets confused.
-       ("sqlite" ,sqlite-with-column-metadata)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("doxygen" ,doxygen)))
-    (propagated-inputs
-     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("evolution-data-server" ,evolution-data-server)))
-    (arguments
-     `(#:tests? #f                      ; There is no testsuite.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
-           (lambda _
-             (chdir "client-gnome")
-             #t))
-         (add-after 'install 'wrap
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
-               (wrap-program (string-append out "/bin/jami-gnome")
-                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
-             #t)))))
-    (synopsis "Distributed, privacy-respecting communication program")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides the Jami client for the GNOME desktop.")
-    (home-page "https://jami.net")
-    (license license:gpl3+)))
-
-(define-public jami-client-gnome
-  (deprecated-package "jami-client-gnome" jami))
-
 (define-public libtgvoip
   (package
     (name "libtgvoip")
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 02/15] gnu: jami: Fix downloading.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:47     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 03/15] gnu: jami.scm: Add and use a generalized procedure for applying patches to Jami dependencies Jan Wielkiewicz
                     ` (13 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

The package name changed from Ring to Jami.
Package tarballs start now with "jami_" prefix.
The "ring-release" folder is also deprecated, let's use the
"release" folder instead.

* gnu/packages/jami.scm (jami-source)[origin]:
Change the uri from "https://dl.jami.net/ring-release/tarballs/ring_"
to "https://dl.jami.net/release/tarballs/jami_".
---
 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 5c167808f0..44a57c9bfb 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -64,7 +64,7 @@
 (define* (jami-source #:key without-daemon)
   (origin
     (method url-fetch)
-    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
+    (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
                         %jami-version
                         ".tar.gz"))
     (modules '((guix build utils)))
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 03/15] gnu: jami.scm: Add and use a generalized procedure for applying patches to Jami dependencies.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 02/15] gnu: jami: Fix downloading Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:54     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 04/15] gnu: Add libnatpmp Jan Wielkiewicz
                     ` (12 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm
(jami-apply-dependency-patches): Add procedure.
(pjproject-jami)[arguments]: Use it. Remove the old one.
[native-inputs]: Rename the source to sfl-patches
in order to satisfy the procedure.
---
 gnu/packages/jami.scm | 80 ++++++++++++++++++++++++-------------------
 1 file changed, 45 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 44a57c9bfb..2bee3ac143 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -77,12 +77,31 @@
      (base32
       "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
 
+;; Savoir-Faire Linux modifies many libraries to add features
+;; to Jami. This procedure makes applying patches to a given
+;; package easy.
+(define jami-apply-dependency-patches
+  '(lambda* (#:key inputs dep-name patches)
+     (let ((patches-directory "sfl-patches"))
+       (mkdir-p patches-directory)
+       (invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches")
+               "-C" patches-directory
+               "--strip-components=5"
+               (string-append "ring-project/daemon/contrib/src/"
+                              dep-name))
+       (for-each
+        (lambda (file)
+          (invoke "patch" "--force" "-p1" "-i"
+                  (string-append patches-directory "/"
+                                 file ".patch")))
+        patches))))
+
 (define-public pjproject-jami
   (package
     (inherit pjproject)
     (name "pjproject-jami")
     (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
+     `(("sfl-patches" ,(jami-source))
        ,@(package-native-inputs pjproject)))
     (arguments
      `(#:tests? #f
@@ -124,40 +143,31 @@
              #t))
          (add-after 'unpack 'apply-patches
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
-                   ;; Comes from
-                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
-                   ;; WARNING: These amount for huge changes in pjproject.
-                   (savoir-faire-linux-patches
-                    '("fix_turn_alloc_failure"
-                      "rfc2466"
-                      "ipv6"
-                      "multiple_listeners"
-                      "pj_ice_sess"
-                      "fix_turn_fallback"
-                      "fix_ioqueue_ipv6_sendto"
-                      "add_dtls_transport"
-                      "rfc6544"
-                      "ice_config"
-                      "sip_config"
-                      "fix_first_packet_turn_tcp"
-                      "fix_ebusy_turn"
-                      "ignore_ipv6_on_transport_check"
-                      "fix_turn_connection_failure"
-                      ;; "uwp_vs" ; for windows
-                      "disable_local_resolution")))
-               (mkdir-p savoir-faire-linux-patches-directory)
-               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
-                       "-C" savoir-faire-linux-patches-directory
-                       "--strip-components=5"
-                       "ring-project/daemon/contrib/src/pjproject")
-               (for-each
-                (lambda (file)
-                  (invoke "patch" "--force" "-p1" "-i"
-                          (string-append savoir-faire-linux-patches-directory "/"
-                                         file ".patch")))
-                savoir-faire-linux-patches))
-             #t))
+             (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+               ;; Comes from
+               ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+               ;; WARNING: These amount for huge changes in pjproject.
+               (jami-apply-dependency-patches
+                #:inputs inputs
+                #:dep-name "pjproject"
+                #:patches
+                '("fix_turn_alloc_failure"
+                  "rfc2466"
+                  "ipv6"
+                  "multiple_listeners"
+                  "pj_ice_sess"
+                  "fix_turn_fallback"
+                  "fix_ioqueue_ipv6_sendto"
+                  "add_dtls_transport"
+                  "rfc6544"
+                  "ice_config"
+                  "sip_config"
+                  "fix_first_packet_turn_tcp"
+                  "fix_ebusy_turn"
+                  "ignore_ipv6_on_transport_check"
+                  "fix_turn_connection_failure"
+                  "disable_local_resolution"))
+               #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
          ;; not work.
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 04/15] gnu: Add libnatpmp.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (2 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 03/15] gnu: jami.scm: Add and use a generalized procedure for applying patches to Jami dependencies Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:22     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 05/15] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
                     ` (11 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/networking.scm (libnatpmp): New variable.
---
 gnu/packages/networking.scm | 40 +++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 94b521584f..603d8b8e3a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -426,6 +426,46 @@ between different versions of ØMQ.")
 files contain direct mappings of the abstractions provided by the ØMQ C API.")
     (license license:expat)))
 
+(define-public libnatpmp
+  (package
+    (name "libnatpmp")
+    (version "20150609")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://miniupnp.free.fr/files/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)) ; no tests
+       #:make-flags
+       (let* ((target ,(%current-target-system))
+              (gcc (if target (string-append target "-gcc") "gcc"))
+              (pkg-config (if target
+                              (string-append target "-pkg-config")
+                              "pkg-config")))
+         (list
+          (string-append "CC=" gcc)
+          (string-append "PKG_CONFIG="
+                         (assoc-ref %build-inputs "pkg-config")
+                         "/bin/" pkg-config)
+          (string-append "PREFIX=" (assoc-ref %outputs "out"))))))
+    (home-page "http://miniupnp.free.fr/libnatpmp.html")
+    (synopsis "C library implementing NAT-PMP")
+    (description
+     "@code{libnatpmp} is a portable and asynchronous implementation of
+the Network Address Translation - Port Mapping Protocol (NAT-PMP)
+written in the C programming language.")
+    (license license:bsd-3)))
+
 (define-public librdkafka
   (package
     (name "librdkafka")
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 05/15] gnu: libring: Add libnatpmp as an optional dependency.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (3 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 04/15] gnu: Add libnatpmp Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:56     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 06/15] gnu: libupnp: Bump to 1.8.6 Jan Wielkiewicz
                     ` (10 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm (libring)[inputs]: Add libnatpmp.
This library isn't mandatory, but it works better with new
routers than libupnp.
---
 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 2bee3ac143..8d34029918 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -193,7 +193,6 @@
     (source (jami-source #:without-daemon #t))
     (build-system gnu-build-system)
     (inputs
-     ;; Missing (optional?) dep: libnatpmp.
      `(("alsa-lib" ,alsa-lib)
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
@@ -204,6 +203,7 @@
        ("gsm" ,gsm)
        ("jack" ,jack-1)
        ("jsoncpp" ,jsoncpp)
+       ("libnatpmp" ,libnatpmp)
        ("libogg" ,libogg)
        ("libva" ,libva)
        ("opendht" ,opendht)
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 06/15] gnu: libupnp: Bump to 1.8.6
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (4 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 05/15] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:30     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami Jan Wielkiewicz
                     ` (9 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/upnp.scm (libupnp): Bump to 1.8.6.
Update hash.
[source]: Use git-fetch and the new official repo.
[native-inputs]: Add autoconf, automake, libtool and
pkg-config.
---
 gnu/packages/upnp.scm | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 8f3c887a68..768df4a03e 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
+;;; Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (gnu packages photo)
   #:use-module (gnu packages image)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages python)
@@ -92,15 +94,21 @@ over IRC, instant messaging, network games, and most server software.")
 (define-public libupnp
   (package
     (name "libupnp")
-    (version "1.6.25")
+    (version "1.8.6")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
-                          version "/" name "-" version ".tar.bz2"))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/pupnp/pupnp.git")
+            (commit (string-append "release-" version))))
       (sha256
        (base32
-        "0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5"))))
+        "1jlb6qh47513h2simy0zxia5q61w1c31mnwmjqpr2nf832lmnpk4"))))
+       (native-inputs
+        `(("autoconf" ,autoconf)
+          ("automake" ,automake)
+          ("libtool" ,libtool)
+          ("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (arguments
      ;; The tests require a network device capable of multicasting which is
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (5 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 06/15] gnu: libupnp: Bump to 1.8.6 Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  9:36     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 08/15] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
                     ` (8 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

This package is needed, because Jami uses a modified version
of ffmpeg, which provides GPU hardware acceleration, automatical
adapting of bitrate and extra codecs.

* gnu/packages/jami.scm (ffmpeg-jami): New variable.
---
 gnu/packages/jami.scm | 239 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 239 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 8d34029918..0fc03b6088 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -186,6 +186,245 @@
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
              #t)))))))
 
+(define-public ffmpeg-jami
+  (let ((commit "59da9dcd7ef6277e4e04998ced71b05a6083c635")
+        (revision "0"))
+    (package
+      (inherit ffmpeg)
+      (name "ffmpeg-jami")
+      (version (git-version "4.2.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.ffmpeg.org/ffmpeg.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0cm58kd06lvslc7knnfajv5p63v4cc6502badjcic5m9izd03lz2"))))
+      (native-inputs
+       `(("SFL-patches" ,(jami-source))
+         ("libiconv" ,libiconv)
+         ,@(package-native-inputs ffmpeg)))
+      (arguments
+       (append
+        '(#:tests? #f)
+        (substitute-keyword-arguments (package-arguments ffmpeg)
+          ((#:configure-flags '())
+           (append '("--disable-everything"
+                     "--enable-zlib"
+                     "--enable-gpl"
+                     "--enable-swscale"
+                     "--enable-bsfs"
+                     "--disable-filters"
+                     "--disable-programs"
+                     "--disable-postproc"
+                     "--disable-protocols"
+                     "--enable-protocol=crypto"
+                     "--enable-protocol=file"
+                     "--enable-protocol=rtp"
+                     "--enable-protocol=srtp"
+                     "--enable-protocol=tcp"
+                     "--enable-protocol=udp"
+                     "--enable-protocol=unix"
+                     "--enable-protocol=pipe"
+                     ;; enable muxers/demuxers
+                     "--disable-demuxers"
+                     "--disable-muxers"
+                     "--enable-muxer=rtp"
+                     "--enable-muxer=g722"
+                     "--enable-muxer=h263"
+                     "--enable-muxer=h264"
+                     "--enable-muxer=hevc"
+                     "--enable-muxer=webm"
+                     "--enable-muxer=ogg"
+                     "--enable-muxer=pcm_s16be"
+                     "--enable-muxer=pcm_s16le"
+                     "--enable-demuxer=rtp"
+                     "--enable-demuxer=mjpeg"
+                     "--enable-demuxer=mjpeg_2000"
+                     "--enable-demuxer=mpegvideo"
+                     "--enable-demuxer=gif"
+                     "--enable-demuxer=image_jpeg_pipe"
+                     "--enable-demuxer=image_png_pipe"
+                     "--enable-demuxer=image_webp_pipe"
+                     "--enable-demuxer=matroska"
+                     "--enable-demuxer=m4v"
+                     "--enable-demuxer=mp3"
+                     "--enable-demuxer=ogg"
+                     "--enable-demuxer=flac"
+                     "--enable-demuxer=wav"
+                     "--enable-demuxer=ac3"
+                     "--enable-demuxer=g722"
+                     "--enable-demuxer=pcm_mulaw"
+                     "--enable-demuxer=pcm_alaw"
+                     "--enable-demuxer=pcm_s16be"
+                     "--enable-demuxer=pcm_s16le"
+                     "--enable-demuxer=h263"
+                     "--enable-demuxer=h264"
+                     "--enable-demuxer=hevc"
+                     ;; enable parsers
+                     "--enable-parser=h263"
+                     "--enable-parser=h264"
+                     "--enable-parser=mpeg4video"
+                     "--enable-parser=vp8"
+                     "--enable-parser=vp9"
+                     "--enable-parser=opus"
+                     ;; encoders/decoders
+                     "--enable-encoder=adpcm_g722"
+                     "--enable-decoder=adpcm_g722"
+                     "--enable-encoder=rawvideo"
+                     "--enable-decoder=rawvideo"
+                     "--enable-encoder=libx264"
+                     "--enable-decoder=h264"
+                     "--enable-encoder=pcm_alaw"
+                     "--enable-decoder=pcm_alaw"
+                     "--enable-encoder=pcm_mulaw"
+                     "--enable-decoder=pcm_mulaw"
+                     "--enable-encoder=mpeg4"
+                     "--enable-decoder=mpeg4"
+                     "--enable-encoder=libvpx_vp8"
+                     "--enable-decoder=vp8"
+                     "--enable-decoder=vp9"
+                     "--enable-encoder=h263"
+                     "--enable-encoder=h263p"
+                     "--enable-decoder=h263"
+                     "--enable-encoder=mjpeg"
+                     "--enable-decoder=mjpeg"
+                     "--enable-decoder=mjpegb"
+                     "--enable-libspeex"
+                     "--enable-libopus"
+                     "--enable-libvpx"
+                     "--enable-libx264"
+                     "--enable-encoder=libspeex"
+                     "--enable-decoder=libspeex"
+                     "--enable-encoder=libopus"
+                     "--enable-decoder=libopus"
+                     ;; decoders for ringtones and audio streaming
+                     "--enable-decoder=flac"
+                     "--enable-decoder=vorbis"
+                     "--enable-decoder=aac"
+                     "--enable-decoder=ac3"
+                     "--enable-decoder=eac3"
+                     "--enable-decoder=mp3"
+                     "--enable-decoder=pcm_u24be"
+                     "--enable-decoder=pcm_u24le"
+                     "--enable-decoder=pcm_u32be"
+                     "--enable-decoder=pcm_u32le"
+                     "--enable-decoder=pcm_u8"
+                     "--enable-decoder=pcm_f16le"
+                     "--enable-decoder=pcm_f24le"
+                     "--enable-decoder=pcm_f32be"
+                     "--enable-decoder=pcm_f32le"
+                     "--enable-decoder=pcm_f64be"
+                     "--enable-decoder=pcm_f64le"
+                     "--enable-decoder=pcm_s16be"
+                     "--enable-decoder=pcm_s16be_planar"
+                     "--enable-decoder=pcm_s16le"
+                     "--enable-decoder=pcm_s16le_planar"
+                     "--enable-decoder=pcm_s24be"
+                     "--enable-decoder=pcm_s24le"
+                     "--enable-decoder=pcm_s24le_planar"
+                     "--enable-decoder=pcm_s32be"
+                     "--enable-decoder=pcm_s32le"
+                     "--enable-decoder=pcm_s32le_planar"
+                     "--enable-decoder=pcm_s64be"
+                     "--enable-decoder=pcm_s64le"
+                     "--enable-decoder=pcm_s8"
+                     "--enable-decoder=pcm_s8_planar"
+                     "--enable-decoder=pcm_u16be"
+                     "--enable-decoder=pcm_u16le"
+                     ;; encoders/decoders for images
+                     "--enable-encoder=gif"
+                     "--enable-decoder=gif"
+                     "--enable-encoder=jpegls"
+                     "--enable-decoder=jpegls"
+                     "--enable-encoder=ljpeg"
+                     "--enable-decoder=jpeg2000"
+                     "--enable-encoder=png"
+                     "--enable-decoder=png"
+                     "--enable-encoder=bmp"
+                     "--enable-decoder=bmp"
+                     "--enable-encoder=tiff"
+                     "--enable-decoder=tiff"
+                     ;; filters
+                     "--enable-filter=scale"
+                     "--enable-filter=overlay"
+                     "--enable-filter=amix"
+                     "--enable-filter=amerge"
+                     "--enable-filter=aresample"
+                     "--enable-filter=format"
+                     "--enable-filter=aformat"
+                     "--enable-filter=fps"
+                     "--enable-filter=transpose"
+                     "--enable-filter=pad")
+                   ;; platform specific options
+                   (if (string-contains (%current-system) "linux")
+                       '("--enable-pic"
+                         "--extra-cxxflags=-fPIC --extra-cflags=-fPIC"
+                         "--target-os=linux"
+                         "--enable-indev=v4l2"
+                         "--enable-indev=xcbgrab"
+                         "--enable-vdpau"
+                         "--enable-hwaccel=h264_vdpau"
+                         "--enable-hwaccel=mpeg4_vdpau"
+                         "--enable-vaapi"
+                         "--enable-hwaccel=h264_vaapi"
+                         "--enable-hwaccel=mpeg4_vaapi"
+                         "--enable-hwaccel=h263_vaapi"
+                         "--enable-hwaccel=vp8_vaapi"
+                         "--enable-hwaccel=mjpeg_vaapi"
+                         "--enable-encoder=h264_vaapi"
+                         "--enable-encoder=vp8_vaapi"
+                         "--enable-encoder=mjpeg_vaapi"
+                         ))
+                   (cond ((string?= (%current-system) "i386")
+                          '("--arch=x86"
+                            "--enable-cuvid"
+                            "--enable-ffnvcodec"
+                            "--enable-nvdec"
+                            "--enable-nvenc"
+                            "--enable-hwaccel=h264_nvdec"
+                            "--enable-hwaccel=hevc_nvdec"
+                            "--enable-hwaccel=vp8_nvdec"
+                            "--enable-hwaccel=mjpeg_nvdec"
+                            "--enable-encoder=h264_nvenc"
+                            "--enable-encoder=hevc_nvenc"))
+                         ((string?= (%current-system) "x86_64")
+                          '("--arch=x86_64"
+                            "--enable-cuvid"
+                            "--enable-ffnvcodec"
+                            "--enable-nvdec"
+                            "--enable-nvenc"
+                            "--enable-hwaccel=h264_nvdec"
+                            "--enable-hwaccel=hevc_nvdec"
+                            "--enable-hwaccel=vp8_nvdec"
+                            "--enable-hwaccel=mjpeg_nvdec"
+                            "--enable-encoder=h264_nvenc"
+                            "--enable-encoder=hevc_nvenc"))
+                         ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
+                         ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))
+                         ((string?= (%current-system) "arm") '("--arch=arm"))
+                         (else '()))))
+          ((#:phases phases)
+           `(modify-phases ,phases
+              (add-after 'unpack 'make-git-checkout-writable
+                (lambda _
+                  (for-each make-file-writable (find-files "."))
+                  #t))
+              (add-after 'unpack 'apply-patches
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+                    ;; These patches come from:
+                    ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
+                    (jami-apply-dependency-patches #:inputs inputs
+                                                   #:dep-name "ffmpeg"
+                                                   #:patches
+                                                   '("remove-mjpeg-log"
+                                                     "change-RTCP-ratio"
+                                                     "rtp_ext_abs_send_time"))
+                    #t)))))))))))
+
 (define-public libring
   (package
     (name "libring")
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 08/15] gnu: libring: Use ffmpeg-jami instead of ffmpeg.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (6 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 09/15] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
                     ` (7 subsequent siblings)
  15 siblings, 0 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm (libring)[inputs]: Use ffmpeg-jami instead of ffmpeg.
---
 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 0fc03b6088..0e49b31f84 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -436,7 +436,7 @@
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-jami)
        ("flac" ,flac)
        ("gmp" ,gmp)
        ("gsm" ,gsm)
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 09/15] gnu: restinio: Bump to 0.6.1.1.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (7 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 08/15] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:32     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 10/15] gnu: jami: Make gettext a native input Jan Wielkiewicz
                     ` (6 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/networking.scm (restinio): Bump to 0.6.1.1.
---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 603d8b8e3a..e3a1b06b4d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2673,7 +2673,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.0.1")
+    (version "0.6.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2682,7 +2682,7 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8"))))
+                "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      `(("zlib" ,zlib)
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 10/15] gnu: jami: Make gettext a native input.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (8 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 09/15] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:58     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
                     ` (5 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm (jami): Move gettext from inputs
to native-inputs.
---
 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 0e49b31f84..eb699a5b33 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -548,7 +548,6 @@ This package provides a library common to all Jami clients.")
        ("libnotify" ,libnotify)
        ("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
-       ("gettext" ,gnu-gettext)
        ("libcanberra" ,libcanberra)
        ("webkitgtk" ,webkitgtk)
        ;; TODO: We must wrap ring-client-gnome to force using the
@@ -565,6 +564,7 @@ This package provides a library common to all Jami clients.")
        ("sqlite" ,sqlite-with-column-metadata)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("gettext" ,gnu-gettext)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (9 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 10/15] gnu: jami: Make gettext a native input Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  9:14     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
                     ` (4 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/telephony.scm (pjproject): Bump the version to 2.10.

* gnu/packages/jami.scm (pjproject-jami)[arguments]:
Use the new patches instead of the old.
---
 gnu/packages/jami.scm      | 27 ++++++++++-----------------
 gnu/packages/telephony.scm |  6 +++---
 2 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index eb699a5b33..86745e8be1 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -107,7 +107,7 @@
      `(#:tests? #f
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
        #:configure-flags
-       (list "--disable-oss"
+       (list "--disable-oss" ; do we need this?
              "--disable-sound"
              "--disable-video"
              "--enable-ext-sound"
@@ -151,22 +151,15 @@
                 #:inputs inputs
                 #:dep-name "pjproject"
                 #:patches
-                '("fix_turn_alloc_failure"
-                  "rfc2466"
-                  "ipv6"
-                  "multiple_listeners"
-                  "pj_ice_sess"
-                  "fix_turn_fallback"
-                  "fix_ioqueue_ipv6_sendto"
-                  "add_dtls_transport"
-                  "rfc6544"
-                  "ice_config"
-                  "sip_config"
-                  "fix_first_packet_turn_tcp"
-                  "fix_ebusy_turn"
-                  "ignore_ipv6_on_transport_check"
-                  "fix_turn_connection_failure"
-                  "disable_local_resolution"))
+                '("0001-rfc6544"
+                  "0002-rfc2466"
+                  "0003-add-tcp-keep-alive"
+                  "0004-multiple_listeners"
+                  "0005-fix_ebusy_turn"
+                  "0006-ignore_ipv6_on_transport_check"
+                  "0007-pj_ice_sess"
+                  "0008-fix_ioqueue_ipv6_sendto"
+                  "0009-add-config-site"))
                #t)))
          ;; TODO: We could use substitute-keyword-arguments instead of
          ;; repeating the phases from pjproject, but somehow it does
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 747b0d75a1..ba0d96ba93 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -651,13 +651,13 @@ calls and messages")
 (define-public pjproject
   (package
     (name "pjproject")
-    (version "2.9")
+    (version "2.10")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/pjsip/pjproject.git")
-             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
+             (commit "3e7b75cb2e482baee58c1991bd2fa4fb06774e0d")))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -690,7 +690,7 @@ calls and messages")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
+         "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))))
     (build-system gnu-build-system)
     (inputs
      `(("portaudio" ,portaudio)))
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (10 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  9:19     ` Mathieu Othacehe
  2020-05-02  9:25     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 13/15] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
                     ` (3 subsequent siblings)
  15 siblings, 2 replies; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm (%jami-version): Change to 20200401.1.6f090de.
(jami-source): Adjust the control sum.
---
 gnu/packages/jami.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 86745e8be1..4b2a553f71 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20191101.3.67671e7")
+(define %jami-version "20200401.1.6f090de")
 
 (define* (jami-source #:key without-daemon)
   (origin
@@ -75,7 +75,7 @@
          #f))
     (sha256
      (base32
-      "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
+      "0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
 
 ;; Savoir-Faire Linux modifies many libraries to add features
 ;; to Jami. This procedure makes applying patches to a given
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 13/15] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (11 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  9:28     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 14/15] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
                     ` (2 subsequent siblings)
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm (jami)[native-inputs]:
Replace gettext with gettext-minimal.
---
 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 4b2a553f71..68b3dbcf74 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -557,7 +557,7 @@ This package provides a library common to all Jami clients.")
        ("sqlite" ,sqlite-with-column-metadata)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("gettext" ,gnu-gettext)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 14/15] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (12 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 13/15] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  9:32     ` Mathieu Othacehe
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 15/15] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
  2020-05-02  9:52   ` [bug#40677] [PATCH V3 00/15] Jami patches Mathieu Othacehe
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/jami.scm (pjproject-jami)[arguments]: Add the "--enable-epoll" flag,
if not on the Hurd.
---
 gnu/packages/jami.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 68b3dbcf74..54fa6453cf 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -32,6 +32,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages multiprecision)
@@ -110,6 +111,11 @@
        (list "--disable-oss" ; do we need this?
              "--disable-sound"
              "--disable-video"
+             ;; The following flag is linux specific
+             ,@(if (hurd-triplet? (or (%current-system)
+                                      (%current-target-system)))
+                   '()
+                   '("--enable-epoll"))
              "--enable-ext-sound"
              "--disable-speex-aec"
              "--disable-g711-codec"
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 15/15] gnu: opendht: Bump to 2.0.0.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (13 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 14/15] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
@ 2020-05-02  1:14   ` Jan Wielkiewicz
  2020-05-02  8:38     ` Mathieu Othacehe
  2020-05-02  9:52   ` [bug#40677] [PATCH V3 00/15] Jami patches Mathieu Othacehe
  15 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-02  1:14 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

* gnu/packages/networking.scm (opendht): Bump to 2.0.0.
---
 gnu/packages/networking.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index e3a1b06b4d..28c0d35a7c 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -33,7 +33,7 @@
 ;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2019 Tonton <tonton@riseup.net>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
 ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
@@ -2715,7 +2715,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.0.0beta2")
+    (version "2.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2724,7 +2724,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5"))))
+                "1q1fwk8wwk9r6bp0indpr60ql668lsk16ykslacyhrh7kg97kvhr"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 04/15] gnu: Add libnatpmp.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 04/15] gnu: Add libnatpmp Jan Wielkiewicz
@ 2020-05-02  8:22     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:22 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Hello Jan,

Thanks for this v3! I applied this one with the following edits:

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 603d8b8e3a..431b0fafd4 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -439,8 +439,6 @@ files contain direct mappings of the abstractions provided by the ØMQ C API.")
                (base32
                 "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -448,16 +446,13 @@ files contain direct mappings of the abstractions provided by the ØMQ C API.")
          (delete 'check)) ; no tests
        #:make-flags
        (let* ((target ,(%current-target-system))
-              (gcc (if target (string-append target "-gcc") "gcc"))
-              (pkg-config (if target
-                              (string-append target "-pkg-config")
-                              "pkg-config")))
+              (gcc (if target
+                       (string-append target "-gcc")
+                       "gcc")))
          (list
           (string-append "CC=" gcc)
-          (string-append "PKG_CONFIG="
-                         (assoc-ref %build-inputs "pkg-config")
-                         "/bin/" pkg-config)
-          (string-append "PREFIX=" (assoc-ref %outputs "out"))))))
+          (string-append "INSTALLPREFIX=" (assoc-ref %outputs "out"))
+          (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")))))
     (home-page "http://miniupnp.free.fr/libnatpmp.html")
     (synopsis "C library implementing NAT-PMP")
     (description
--8<---------------cut here---------------end--------------->8---

Mathieu




^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 06/15] gnu: libupnp: Bump to 1.8.6
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 06/15] gnu: libupnp: Bump to 1.8.6 Jan Wielkiewicz
@ 2020-05-02  8:30     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:30 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Applied with an edited commit message,

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 09/15] gnu: restinio: Bump to 0.6.1.1.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 09/15] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
@ 2020-05-02  8:32     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:32 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Applied with an edited commit message (s/bump/update).

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 15/15] gnu: opendht: Bump to 2.0.0.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 15/15] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
@ 2020-05-02  8:38     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:38 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Seems like the 2.1.0 is about to be released. But let's go with 2.0.0
for now. Applied!

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
@ 2020-05-02  8:45     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:45 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


I added Vicent copyright to jami.scm, edited the commit message and
applied.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 02/15] gnu: jami: Fix downloading.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 02/15] gnu: jami: Fix downloading Jan Wielkiewicz
@ 2020-05-02  8:47     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:47 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Applied, thanks!

Mathieu

> The package name changed from Ring to Jami.
> Package tarballs start now with "jami_" prefix.
> The "ring-release" folder is also deprecated, let's use the
> "release" folder instead.
>
> * gnu/packages/jami.scm (jami-source)[origin]:
> Change the uri from "https://dl.jami.net/ring-release/tarballs/ring_"
> to "https://dl.jami.net/release/tarballs/jami_".
> ---
>  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 5c167808f0..44a57c9bfb 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -64,7 +64,7 @@
>  (define* (jami-source #:key without-daemon)
>    (origin
>      (method url-fetch)
> -    (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
> +    (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
>                          %jami-version
>                          ".tar.gz"))
>      (modules '((guix build utils)))




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 03/15] gnu: jami.scm: Add and use a generalized procedure for applying patches to Jami dependencies.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 03/15] gnu: jami.scm: Add and use a generalized procedure for applying patches to Jami dependencies Jan Wielkiewicz
@ 2020-05-02  8:54     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:54 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Edited the commit message and applied,

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 05/15] gnu: libring: Add libnatpmp as an optional dependency.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 05/15] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
@ 2020-05-02  8:56     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:56 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Same here, applied!

Thanks




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 10/15] gnu: jami: Make gettext a native input.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 10/15] gnu: jami: Make gettext a native input Jan Wielkiewicz
@ 2020-05-02  8:58     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  8:58 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Applied,

Thanks




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
@ 2020-05-02  9:14     ` Mathieu Othacehe
  2020-05-02 15:17       ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:14 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> * gnu/packages/telephony.scm (pjproject): Bump the version to 2.10.
s/bump/update

> +       (list "--disable-oss" ; do we need this?

If we don't need this you can remove it. Otherwise no need to add a
comment.

You shouldn't hardcode the commit corresponding to the tag. You can do
this instead:

--8<---------------cut here---------------start------------->8---
              (url "https://github.com/pjsip/pjproject.git")
-             (commit "3e7b75cb2e482baee58c1991bd2fa4fb06774e0d")))
+             (commit version)))
--8<---------------cut here---------------end--------------->8---

With this commit, neither pjproject nor pjproject-jami build for
me. Could you check why?

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
@ 2020-05-02  9:19     ` Mathieu Othacehe
  2020-05-02 11:33       ` Jan
  2020-05-02  9:25     ` Mathieu Othacehe
  1 sibling, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:19 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -(define %jami-version "20191101.3.67671e7")
> +(define %jami-version "20200401.1.6f090de")

Turns out this one needs to be applied before the pjproject update.

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
  2020-05-02  9:19     ` Mathieu Othacehe
@ 2020-05-02  9:25     ` Mathieu Othacehe
  2020-05-02 15:04       ` Jan
  1 sibling, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:25 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


> -(define %jami-version "20191101.3.67671e7")
> +(define %jami-version "20200401.1.6f090de")

Ok, so I merged this one with the previous one. As you noted pjproject
still fails to build in 2.10. Even if Jami variant is now ok, it would
be great if you could fix pjproject build too.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 13/15] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 13/15] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
@ 2020-05-02  9:28     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:28 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Applied with an edited commit message,

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 14/15] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 14/15] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
@ 2020-05-02  9:32     ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:32 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Applied,

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-05-02  9:36     ` Mathieu Othacehe
  2020-05-02 11:31       ` Jan
                         ` (2 more replies)
  0 siblings, 3 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:36 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Ok, last one! As discussed before I'm not very comfortable with this
very long list of configuration options.

Are the ffmpeg configuration options needed by Jami described somewhere?

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 00/15] Jami patches.
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
                     ` (14 preceding siblings ...)
  2020-05-02  1:14   ` [bug#40677] [PATCH V3 15/15] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
@ 2020-05-02  9:52   ` Mathieu Othacehe
  2020-05-02 11:26     ` Jan
  2020-05-02 14:58     ` Jan
  15 siblings, 2 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-02  9:52 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Hello Jan,

Thanks for this v3, I pushed everything except for the ffmpeg patches.
When trying Jami on Ubuntu, I have the following errors:

--8<---------------cut here---------------start------------->8---
** (jami-gnome:3720): WARNING **: 11:46:10.955: Error : dring is not available, make sure it is running
Gtk-Message: 11:46:11.008: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:46:11.009: Failed to load module "canberra-gtk-module"

** (jami-gnome:3720): WARNING **: 11:46:11.010: Error : dring is not available, make sure it is running

(jami-gnome:3720): Gtk-WARNING **: 11:46:11.012: Theme parsing error: <data>:1:273: not a number

** (jami-gnome:3720): WARNING **: 11:46:11.116: dring has possibly crashed, or has been killed... will wait 2.5 seconds and try to reconnect

** (jami-gnome:3720): WARNING **: 11:46:13.623: Error : dring is not available, make sure it is running

** (jami-gnome:3720): WARNING **: 11:46:13.623: Error : dring is not available, make sure it is running

** (jami-gnome:3720): WARNING **: 11:46:13.623: could not reconnect to the daemon
--8<---------------cut here---------------end--------------->8---

The problem is the same with the jami-20191101.3.67671e7 revision. Do
you know why?

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 00/15] Jami patches.
  2020-05-02  9:52   ` [bug#40677] [PATCH V3 00/15] Jami patches Mathieu Othacehe
@ 2020-05-02 11:26     ` Jan
  2020-05-03  7:34       ` Mathieu Othacehe
  2020-05-02 14:58     ` Jan
  1 sibling, 1 reply; 144+ messages in thread
From: Jan @ 2020-05-02 11:26 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:52:18 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Hello Jan,
> 
> Thanks for this v3, I pushed everything except for the ffmpeg patches.
> When trying Jami on Ubuntu, I have the following errors:
> 
> --8<---------------cut here---------------start------------->8---
> ** (jami-gnome:3720): WARNING **: 11:46:10.955: Error : dring is not
> available, make sure it is running Gtk-Message: 11:46:11.008: Failed
> to load module "canberra-gtk-module" Gtk-Message: 11:46:11.009:
> Failed to load module "canberra-gtk-module"
> 
> ** (jami-gnome:3720): WARNING **: 11:46:11.010: Error : dring is not
> available, make sure it is running
> 
> (jami-gnome:3720): Gtk-WARNING **: 11:46:11.012: Theme parsing error:
> <data>:1:273: not a number
> 
> ** (jami-gnome:3720): WARNING **: 11:46:11.116: dring has possibly
> crashed, or has been killed... will wait 2.5 seconds and try to
> reconnect
> 
> ** (jami-gnome:3720): WARNING **: 11:46:13.623: Error : dring is not
> available, make sure it is running
> 
> ** (jami-gnome:3720): WARNING **: 11:46:13.623: Error : dring is not
> available, make sure it is running
> 
> ** (jami-gnome:3720): WARNING **: 11:46:13.623: could not reconnect
> to the daemon --8<---------------cut
> here---------------end--------------->8---
> 
> The problem is the same with the jami-20191101.3.67671e7 revision. Do
> you know why?
> 
> Thanks,
> 
> Mathieu

To be honest, I don't know why this happens. I was too focused on
correcting the commit messages I forgot about testing. Let me test it
now.


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-02  9:36     ` Mathieu Othacehe
@ 2020-05-02 11:31       ` Jan
  2020-05-04 18:26       ` Jan
  2020-05-13 14:57       ` Jan
  2 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-05-02 11:31 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:36:30 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Ok, last one! As discussed before I'm not very comfortable with this
> very long list of configuration options.
> 
> Are the ffmpeg configuration options needed by Jami described
> somewhere?
> 
> Thanks,
> 
> Mathieu

I copied it from ring-project/daemon/contrib/src/ffmpeg/rules.mak.
Tarballs are here: https://dl.jami.net/ring-release/tarballs/


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de.
  2020-05-02  9:19     ` Mathieu Othacehe
@ 2020-05-02 11:33       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-05-02 11:33 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:19:39 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> > -(define %jami-version "20191101.3.67671e7")
> > +(define %jami-version "20200401.1.6f090de")  
> 
> Turns out this one needs to be applied before the pjproject update.
> 
> Mathieu

Yes, this can be the case. Patches are taken from jami-source and if the
version isn't updated it can break.


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 00/15] Jami patches.
  2020-05-02  9:52   ` [bug#40677] [PATCH V3 00/15] Jami patches Mathieu Othacehe
  2020-05-02 11:26     ` Jan
@ 2020-05-02 14:58     ` Jan
  1 sibling, 0 replies; 144+ messages in thread
From: Jan @ 2020-05-02 14:58 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:52:18 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> The problem is the same with the jami-20191101.3.67671e7 revision. Do
> you know why?
> 

Okay I know the cause - I forgot to replace one occurrence of
"SFL-patches" in ffmpeg-jami with "sfl-patches". Could you fix it for
me or should I send the corrected version?

It works after changing it.

Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de.
  2020-05-02  9:25     ` Mathieu Othacehe
@ 2020-05-02 15:04       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-05-02 15:04 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:25:56 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> > -(define %jami-version "20191101.3.67671e7")
> > +(define %jami-version "20200401.1.6f090de")  
> 
> Ok, so I merged this one with the previous one. As you noted pjproject
> still fails to build in 2.10. Even if Jami variant is now ok, it would
> be great if you could fix pjproject build too.

I can try, but haven't succeeded so far.

> Thanks,
> 
> Mathieu


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches.
  2020-05-02  9:14     ` Mathieu Othacehe
@ 2020-05-02 15:17       ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-05-02 15:17 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:14:14 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> > * gnu/packages/telephony.scm (pjproject): Bump the version to
> > 2.10.  
> s/bump/update
> 
> > +       (list "--disable-oss" ; do we need this?  
I can remove it then.

> If we don't need this you can remove it. Otherwise no need to add a
> comment.
> 
> You shouldn't hardcode the commit corresponding to the tag. You can do
> this instead:
> 
> --8<---------------cut here---------------start------------->8---
>               (url "https://github.com/pjsip/pjproject.git")
> -             (commit "3e7b75cb2e482baee58c1991bd2fa4fb06774e0d")))
> +             (commit version)))
> --8<---------------cut here---------------end--------------->8---
> 
> With this commit, neither pjproject nor pjproject-jami build for
> me. Could you check why?
> 
> Thanks,
> 
> Mathieu

Are you between my commits? My commits are effect of over 6 months of
work and experimenting. The patches for pjproject are from jami source
tarball and change over time. Patching pjproject will only work with if
both version of Jami and pjproject are compliant.
The commit updating Jami should go before pjproject-jami update, then
it should work.
Anyway, everything works on my machine now.


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 00/15] Jami patches.
  2020-05-02 11:26     ` Jan
@ 2020-05-03  7:34       ` Mathieu Othacehe
  2020-05-03 14:32         ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-03  7:34 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello,

> To be honest, I don't know why this happens. I was too focused on
> correcting the commit messages I forgot about testing. Let me test it
> now.

I think the problem is that when starting "jami-gnome", the "dring"
daemon is started by D-Bus. On a foreign distro, this cannot work. So I
tried to start dring manually[1] but I have the following error:

--8<---------------cut here---------------start------------->8---
/gnu/store/chb71qh7dprrdgn7d3g08d2pbii57v2v-libring-20200401.1.6f090de/lib/ring/dring -cdp
Jami Daemon 9.1.0, by Savoir-faire Linux 2004-2019
https://jami.net/
[Video support enabled]

[1588491116.175|28401|ringbufferpool.cpp:118  ] Ringbuffer created with id 'audiolayer_id'
[1588491116.411|28401|video_device.h    :129  ] Default video settings: 800x480, 30 FPS
[1588491116.529|28401|video_device.h    :129  ] Default video settings: 960x540, 30 FPS
[1588491116.532|28401|manager.cpp       :676  ] Not initialized
[1588491116.532|28401|manager.cpp       :676  ] Not initialized
09:31:56.533         os_core_unix.c !pjlib 2.10 for POSIX initialized
[1588491116.534|28401|manager.cpp       :738  ] Using PJSIP version 2.10 for x86_64-unknown-linux-gnu
[1588491116.534|28401|manager.cpp       :739  ] Using GnuTLS version 3.6.13
[1588491116.534|28401|manager.cpp       :740  ] Using OpenDHT version 2.0.0
[1588491116.535|28401|manager.cpp       :751  ] Configuration file path: /home/mathieu/.config/jami/dring.yml
[1588491116.537|28401|manager.cpp       :2738 ] invalid node; first invalid key: "preferences": Preferences node unserialize error: 
[1588491116.538|28401|manager.cpp       :452  ] Errors while parsing /home/mathieu/.config/jami/dring.yml
[1588491116.538|28401|manager.cpp       :777  ] Restoring last working configuration
[1588491116.540|28401|sipvoiplink.cpp   :550  ] Using SIP nameserver: 127.0.0.53
[1588491116.540|28401|siptransport.cpp  :188  ] SipTransportBroker@0x125c3d0
[1588491116.541|28401|sipvoiplink.cpp   :641  ] SIPVoIPLink@0x1297410
[1588491116.541|28407|sip_utils.cpp     :203  ] Registered thread 0x7f132bc5f4d0 (0x6EF1)
[1588491116.541|28401|manager.cpp       :2738 ] invalid node; first invalid key: "preferences": Preferences node unserialize error: 
[1588491116.541|28401|manager.cpp       :452  ] Errors while parsing /home/mathieu/.config/jami/dring.yml
[1588491116.542|28401|sipvoiplink.cpp   :646  ] ~SIPVoIPLink@0x1297410
[1588491116.542|28401|siptransport.cpp  :193  ] ~SipTransportBroker@0x125c3d0
[1588491116.542|28401|siptransport.cpp  :200  ] destroying SipTransportBroker@0x125c3d0
dring: ../src/pj/os_core_unix.c:1325: pj_mutex_unlock: Assertion `mutex->owner == pj_thread_this()' failed.
Aborted (core dumped)
--8<---------------cut here---------------end--------------->8---

Maybe we should fix it, wrapping jami binary, so that it also starts
this daemon?

WDYT?

Thanks,

Mathieu

[1]: https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 00/15] Jami patches.
  2020-05-03  7:34       ` Mathieu Othacehe
@ 2020-05-03 14:32         ` Jan
  0 siblings, 0 replies; 144+ messages in thread
From: Jan @ 2020-05-03 14:32 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sun, 03 May 2020 09:34:50 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Hello,
> 
> 
> I think the problem is that when starting "jami-gnome", the "dring"
> daemon is started by D-Bus. On a foreign distro, this cannot work. So
> I tried to start dring manually[1] but I have the following error:
> 
> --8<---------------cut here---------------start------------->8---
> /gnu/store/chb71qh7dprrdgn7d3g08d2pbii57v2v-libring-20200401.1.6f090de/lib/ring/dring
> -cdp Jami Daemon 9.1.0, by Savoir-faire Linux 2004-2019
> https://jami.net/
> [Video support enabled]
> 
> [1588491116.175|28401|ringbufferpool.cpp:118  ] Ringbuffer created
> with id 'audiolayer_id' [1588491116.411|28401|video_device.h    :129
> ] Default video settings: 800x480, 30 FPS
> [1588491116.529|28401|video_device.h    :129  ] Default video
> settings: 960x540, 30 FPS
> [1588491116.532|28401|manager.cpp       :676  ] Not initialized
> [1588491116.532|28401|manager.cpp       :676  ] Not initialized
> 09:31:56.533         os_core_unix.c !pjlib 2.10 for POSIX initialized
> [1588491116.534|28401|manager.cpp       :738  ] Using PJSIP version
> 2.10 for x86_64-unknown-linux-gnu
> [1588491116.534|28401|manager.cpp       :739  ] Using GnuTLS version
> 3.6.13 [1588491116.534|28401|manager.cpp       :740  ] Using OpenDHT
> version 2.0.0 [1588491116.535|28401|manager.cpp       :751  ]
> Configuration file path: /home/mathieu/.config/jami/dring.yml
> [1588491116.537|28401|manager.cpp       :2738 ] invalid node; first
> invalid key: "preferences": Preferences node unserialize error:
> [1588491116.538|28401|manager.cpp       :452  ] Errors while
> parsing /home/mathieu/.config/jami/dring.yml
> [1588491116.538|28401|manager.cpp       :777  ] Restoring last
> working configuration [1588491116.540|28401|sipvoiplink.cpp   :550  ]
> Using SIP nameserver: 127.0.0.53
> [1588491116.540|28401|siptransport.cpp  :188  ]
> SipTransportBroker@0x125c3d0
> [1588491116.541|28401|sipvoiplink.cpp   :641  ] SIPVoIPLink@0x1297410
> [1588491116.541|28407|sip_utils.cpp     :203  ] Registered thread
> 0x7f132bc5f4d0 (0x6EF1) [1588491116.541|28401|manager.cpp       :2738
> ] invalid node; first invalid key: "preferences": Preferences node
> unserialize error: [1588491116.541|28401|manager.cpp       :452  ]
> Errors while parsing /home/mathieu/.config/jami/dring.yml
> [1588491116.542|28401|sipvoiplink.cpp   :646  ]
> ~SIPVoIPLink@0x1297410 [1588491116.542|28401|siptransport.cpp  :193
> ] ~SipTransportBroker@0x125c3d0
> [1588491116.542|28401|siptransport.cpp  :200  ] destroying
> SipTransportBroker@0x125c3d0 dring: ../src/pj/os_core_unix.c:1325:
> pj_mutex_unlock: Assertion `mutex->owner == pj_thread_this()' failed.
> Aborted (core dumped) --8<---------------cut
> here---------------end--------------->8---

This error is strange. I get nothing like this on Devuan - Jami just
starts automatically as the system loads.

> Maybe we should fix it, wrapping jami binary, so that it also starts
> this daemon?

I can try. Is it something similar to what we already have in jami
package - sqlite wrapper or should I just add dbus to propagated inputs?

> WDYT?
> 
> Thanks,
> 
> Mathieu
> 
> [1]:
> https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions






^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-02  9:36     ` Mathieu Othacehe
  2020-05-02 11:31       ` Jan
@ 2020-05-04 18:26       ` Jan
  2020-05-05  7:18         ` Mathieu Othacehe
  2020-05-13 14:57       ` Jan
  2 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-05-04 18:26 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Sat, 02 May 2020 11:36:30 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Ok, last one! As discussed before I'm not very comfortable with this
> very long list of configuration options.
> 
> Are the ffmpeg configuration options needed by Jami described
> somewhere?
> 
> Thanks,
> 
> Mathieu

So I compared the list of flags turned off by default with ffmpeg
package currently in guix with ffmpeg-jami package and I managed to
shorten the list from 107 to 95. It isn't worth the effort.

I tried looking for the flags needed in the documentation, but I
couldn't find anything. There's only the rules.mak file in Jami source
code and they use these flags.

There are only few comments:
#disable everything
#enable muxers/demuxers
#enable parsers
#encoders/decoders
#decoders for ringtones and audio streaming
#encoders/decoders for images
#filters
#platform specific options
#Android Linux
#Desktop Linux
...

That's all. I see no point in comparing these flags every release just
for 12 of them I can inherit from the default ffmpeg package.

I prefer just copy the list from rules.mak. What I could do is defining
a separate "ffmpeg-configure-flags" variable somewhere near ffmpeg-jami
and use it, instead of having the bloated list inside the package
definition (if that's even possible).
Correct me if I'm wrong or suggest a reasonable solution, because I have
no idea how to deal with it right now.


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-04 18:26       ` Jan
@ 2020-05-05  7:18         ` Mathieu Othacehe
  2020-05-07  0:22           ` Jan
  2020-05-07 20:03           ` Jan
  0 siblings, 2 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-05  7:18 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello Jan,

> So I compared the list of flags turned off by default with ffmpeg
> package currently in guix with ffmpeg-jami package and I managed to
> shorten the list from 107 to 95. It isn't worth the effort.

Oh that's a disappointment indeed. Among those 95 flags I'm pretty sure
most of them match the default, but going through all of them feels like
a burden.

> I prefer just copy the list from rules.mak. What I could do is defining
> a separate "ffmpeg-configure-flags" variable somewhere near ffmpeg-jami
> and use it, instead of having the bloated list inside the package
> definition (if that's even possible).
> Correct me if I'm wrong or suggest a reasonable solution, because I have
> no idea how to deal with it right now.

Ok, this seems fine. Don't hesitate to add a link to a Web view of the
rules.mak file, so that it's clear where those flags come from.

Another remark on this part,

>         "--enable-encoder=h264_nvenc"
>         "--enable-encoder=hevc_nvenc"))
>      ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64"))
>      ((string?= (%current-system) "arm64-linux") '("--arch=aarch64"))

"arm64-linux" is not a valid system, you can remove it.

>      ((string?= (%current-system) "arm") '("--arch=arm"))

I think the right system here is "armhf-linux". However, you would also
need to support cross-compilation when %current-target-system is set. In
that case, the value looks like "aarch64-linux-gnu" and
"arm-linux-gnueabihf".

If you add support for those plaforms you need to test it by building
ffmpeg-jami with "--system" and "--target" flags. As this is a complex
package with a lot of dependencies (probably failing to cross-compile),
it would be fine with me if you just drop support for other
systems/targets.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-05  7:18         ` Mathieu Othacehe
@ 2020-05-07  0:22           ` Jan
  2020-05-08  8:43             ` Mathieu Othacehe
  2020-05-07 20:03           ` Jan
  1 sibling, 1 reply; 144+ messages in thread
From: Jan @ 2020-05-07  0:22 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

Hi again!

On Tue, 05 May 2020 09:18:58 +0200
Mathieu Othacehe <m.othacehe@gmail.com> wrote:

> Hello Jan,
> 
> Oh that's a disappointment indeed. Among those 95 flags I'm pretty
> sure most of them match the default, but going through all of them
> feels like a burden.
> 
> Ok, this seems fine. Don't hesitate to add a link to a Web view of the
> rules.mak file, so that it's clear where those flags come from.
Done.

> Another remark on this part,
> 
> >         "--enable-encoder=h264_nvenc"
> >         "--enable-encoder=hevc_nvenc"))
> >      ((string?= (%current-system) "aarch64-linux")
> > '("--arch=aarch64")) ((string?= (%current-system) "arm64-linux")
> > '("--arch=aarch64"))  
> 
> "arm64-linux" is not a valid system, you can remove it.
Done.

> >      ((string?= (%current-system) "arm") '("--arch=arm"))  
> 
> I think the right system here is "armhf-linux". However, you would
> also need to support cross-compilation when %current-target-system is
> set. In that case, the value looks like "aarch64-linux-gnu" and
> "arm-linux-gnueabihf".

I added "%current-target-system" to support cross-compilation.
Also fixed the drunk "string?=" uses - there's "string=?" actually and
I replaced it with "string-prefix?".

What's the difference between "arm-linux-gnueabihf" and
"aarch64-linux-gnu"? Are they synonyms?
Should it be:
if "arm-linux-gnueabihf" or "aarch64-linux-gnu"
use "--arch=armhf-linux"?

> If you add support for those plaforms you need to test it by building
> ffmpeg-jami with "--system" and "--target" flags. As this is a complex
> package with a lot of dependencies (probably failing to
> cross-compile), it would be fine with me if you just drop support for
> other systems/targets.

I want to try anyway. Jami supports Raspbian, so it is worth trying.

> Thanks,
> 
> Mathieu


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-05  7:18         ` Mathieu Othacehe
  2020-05-07  0:22           ` Jan
@ 2020-05-07 20:03           ` Jan
  2020-05-08  8:35             ` Mathieu Othacehe
  1 sibling, 1 reply; 144+ messages in thread
From: Jan @ 2020-05-07 20:03 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

Hi,

I tried fixing cross-compilation but there are several problems:

- dav1d fails, because "meson doesn't support cross-compilation"
- perl fails during installation and if I checked correctly, guix
  doesn't have support for perl on armhf or aarch64
- glib fails, because "meson doesn't support cross-compilation"
And other possible problems I didn't get to. With dav1d I could just
disable it, because it's just one codec. I also disabled perl, but
disabling glib won't work.

This isn't a good advertisement for this meson build system :P
Should I proudly drop all the support for cross compilation?



Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-07 20:03           ` Jan
@ 2020-05-08  8:35             ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-08  8:35 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello Jan,

> - dav1d fails, because "meson doesn't support cross-compilation"
> - perl fails during installation and if I checked correctly, guix
>   doesn't have support for perl on armhf or aarch64
> - glib fails, because "meson doesn't support cross-compilation"
> And other possible problems I didn't get to. With dav1d I could just
> disable it, because it's just one codec. I also disabled perl, but
> disabling glib won't work.
>
> This isn't a good advertisement for this meson build system :P
> Should I proudly drop all the support for cross compilation?

On core-updates the cross-compilation support is a bit better (perl at
least should be fixed), but it won't get you much further. So yes you
can drop cross compilation. You can still check that native compilation
for armv7 and aarch64 works with "--system armhf-linux" and "--system
aarch64-linux". Note that you will need to setup binfmt.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-07  0:22           ` Jan
@ 2020-05-08  8:43             ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-08  8:43 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hey,

> What's the difference between "arm-linux-gnueabihf" and
> "aarch64-linux-gnu"? Are they synonyms?

No, "arm-linux-gnueabihf" is for ARMv7 systems with hardware floating
point support. "aarch64-linux-gnu" is for ARMv8 processors. This is
quite confusing!

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-02  9:36     ` Mathieu Othacehe
  2020-05-02 11:31       ` Jan
  2020-05-04 18:26       ` Jan
@ 2020-05-13 14:57       ` Jan
  2020-05-13 15:51         ` Mathieu Othacehe
  2 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-05-13 14:57 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

Hi,

I had a success building ffmpeg-jami on both aarch64-linux and
armhf-linux (through qemu). I have one question regarding the naming
convention of variables. Why do some variables start with "%"? I
couldn't find any explanation in the documentation nor in the source
code. Say I want to add a variable called
"ffmpeg-linux-configure-flags". Should I start it with "%" -
"%fmpeg-linux-configure-flags" or not?


Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami.
  2020-05-13 14:57       ` Jan
@ 2020-05-13 15:51         ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-13 15:51 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hello Jan,

> I had a success building ffmpeg-jami on both aarch64-linux and
> armhf-linux (through qemu). I have one question regarding the naming
> convention of variables. Why do some variables start with "%"? I
> couldn't find any explanation in the documentation nor in the source
> code. Say I want to add a variable called
> "ffmpeg-linux-configure-flags". Should I start it with "%" -
> "%fmpeg-linux-configure-flags" or not?

Good job! Variables prefixed by '%' often denote parameters (see:
https://www.gnu.org/software/guile/manual/html_node/Parameters.html).

I guess something like:

--8<---------------cut here---------------start------------->8---
(define %fmpeg-linux-configure-flags
  '("--flag-1"
    "--flag-2"))
--8<---------------cut here---------------end--------------->8---

would be fine. But using "ffmpeg-linux-configure-flags" would also be
correct.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami.
  2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
                   ` (3 preceding siblings ...)
  2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
@ 2020-05-13 18:12 ` Jan Wielkiewicz
  2020-05-14  7:05   ` Mathieu Othacehe
  2020-05-15  0:47 ` [bug#40677] [PATCH v5] " Jan Wielkiewicz
  5 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-13 18:12 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

This package is needed, because Jami uses a modified version
of ffmpeg, which provides GPU hardware acceleration, automatical
adapting of bitrate and extra codecs. Because of the configure flags
list being long, it is better to keep them separated in variables,
instead of littering the package definition.

* gnu/packages/jami.scm (ffmpeg-jami, %ffmpeg-default-configure-flags,
%ffmpeg-linux-configure-flags, %ffmpeg-linux-x86-configure-flags):
New variables.
(ffmpeg-compose-configure-flags): New procedure.
(libring)[inputs]: Use ffmpeg-jami instead of ffmpeg.
---
 gnu/packages/jami.scm | 255 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 253 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index dda787b3cd..2cf2f3aa10 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
-  #:use-module (guix utils))
+  #:use-module (guix utils)
+  #:use-module (srfi srfi-1))
 
 (define %jami-version "20200401.1.6f090de")
 
@@ -186,6 +187,256 @@
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
              #t)))))))
 
+;; The following variables are configure flags used by ffmpeg-jami.
+;; They're from the ring-project/daemon/contrib/src/ffmpeg/rules.mak
+;; file. We try to keep it as close to the official Jami package as
+;; possible to provide all the codecs and extra features that are
+;; the effect of patching ffmpeg.
+;;
+;; Web view of the file:
+;;https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak
+(define %ffmpeg-default-configure-flags
+  '(;; disable everything
+    "--disable-everything"
+    "--enable-zlib"
+    "--enable-gpl"
+    "--enable-swscale"
+    "--enable-bsfs"
+    "--disable-filters"
+    "--disable-programs"
+    "--disable-postproc"
+    "--disable-protocols"
+    "--enable-protocol=crypto"
+    "--enable-protocol=file"
+    "--enable-protocol=rtp"
+    "--enable-protocol=srtp"
+    "--enable-protocol=tcp"
+    "--enable-protocol=udp"
+    "--enable-protocol=unix"
+    "--enable-protocol=pipe"
+    ;; enable muxers/demuxers
+    "--disable-demuxers"
+    "--disable-muxers"
+    "--enable-muxer=rtp"
+    "--enable-muxer=g722"
+    "--enable-muxer=h263"
+    "--enable-muxer=h264"
+    "--enable-muxer=hevc"
+    "--enable-muxer=webm"
+    "--enable-muxer=ogg"
+    "--enable-muxer=pcm_s16be"
+    "--enable-muxer=pcm_s16le"
+    "--enable-demuxer=rtp"
+    "--enable-demuxer=mjpeg"
+    "--enable-demuxer=mjpeg_2000"
+    "--enable-demuxer=mpegvideo"
+    "--enable-demuxer=gif"
+    "--enable-demuxer=image_jpeg_pipe"
+    "--enable-demuxer=image_png_pipe"
+    "--enable-demuxer=image_webp_pipe"
+    "--enable-demuxer=matroska"
+    "--enable-demuxer=m4v"
+    "--enable-demuxer=mp3"
+    "--enable-demuxer=ogg"
+    "--enable-demuxer=flac"
+    "--enable-demuxer=wav"
+    "--enable-demuxer=ac3"
+    "--enable-demuxer=g722"
+    "--enable-demuxer=pcm_mulaw"
+    "--enable-demuxer=pcm_alaw"
+    "--enable-demuxer=pcm_s16be"
+    "--enable-demuxer=pcm_s16le"
+    "--enable-demuxer=h263"
+    "--enable-demuxer=h264"
+    "--enable-demuxer=hevc"
+    ;; enable parsers
+    "--enable-parser=h263"
+    "--enable-parser=h264"
+    "--enable-parser=hevc"
+    "--enable-parser=mpeg4video"
+    "--enable-parser=vp8"
+    "--enable-parser=vp9"
+    "--enable-parser=opus"
+    ;; encoders/decoders
+    "--enable-encoder=adpcm_g722"
+    "--enable-decoder=adpcm_g722"
+    "--enable-encoder=rawvideo"
+    "--enable-decoder=rawvideo"
+    "--enable-encoder=libx264"
+    "--enable-decoder=h264"
+    "--enable-encoder=pcm_alaw"
+    "--enable-decoder=pcm_alaw"
+    "--enable-encoder=pcm_mulaw"
+    "--enable-decoder=pcm_mulaw"
+    "--enable-encoder=mpeg4"
+    "--enable-decoder=mpeg4"
+    "--enable-encoder=libvpx_vp8"
+    "--enable-decoder=vp8"
+    "--enable-decoder=vp9"
+    "--enable-encoder=h263"
+    "--enable-encoder=h263p"
+    "--enable-decoder=h263"
+    "--enable-encoder=mjpeg"
+    "--enable-decoder=mjpeg"
+    "--enable-decoder=mjpegb"
+    "--enable-libspeex"
+    "--enable-libopus"
+    "--enable-libvpx"
+    "--enable-libx264"
+    "--enable-encoder=libspeex"
+    "--enable-decoder=libspeex"
+    "--enable-encoder=libopus"
+    "--enable-decoder=libopus"
+    ;; decoders for ringtones and audio streaming
+    "--enable-decoder=flac"
+    "--enable-decoder=vorbis"
+    "--enable-decoder=aac"
+    "--enable-decoder=ac3"
+    "--enable-decoder=eac3"
+    "--enable-decoder=mp3"
+    "--enable-decoder=pcm_u24be"
+    "--enable-decoder=pcm_u24le"
+    "--enable-decoder=pcm_u32be"
+    "--enable-decoder=pcm_u32le"
+    "--enable-decoder=pcm_u8"
+    "--enable-decoder=pcm_f16le"
+    "--enable-decoder=pcm_f24le"
+    "--enable-decoder=pcm_f32be"
+    "--enable-decoder=pcm_f32le"
+    "--enable-decoder=pcm_f64be"
+    "--enable-decoder=pcm_f64le"
+    "--enable-decoder=pcm_s16be"
+    "--enable-decoder=pcm_s16be_planar"
+    "--enable-decoder=pcm_s16le"
+    "--enable-decoder=pcm_s16le_planar"
+    "--enable-decoder=pcm_s24be"
+    "--enable-decoder=pcm_s24le"
+    "--enable-decoder=pcm_s24le_planar"
+    "--enable-decoder=pcm_s32be"
+    "--enable-decoder=pcm_s32le"
+    "--enable-decoder=pcm_s32le_planar"
+    "--enable-decoder=pcm_s64be"
+    "--enable-decoder=pcm_s64le"
+    "--enable-decoder=pcm_s8"
+    "--enable-decoder=pcm_s8_planar"
+    "--enable-decoder=pcm_u16be"
+    "--enable-decoder=pcm_u16le"
+    ;; encoders/decoders for images
+    "--enable-encoder=gif"
+    "--enable-decoder=gif"
+    "--enable-encoder=jpegls"
+    "--enable-decoder=jpegls"
+    "--enable-encoder=ljpeg"
+    "--enable-decoder=jpeg2000"
+    "--enable-encoder=png"
+    "--enable-decoder=png"
+    "--enable-encoder=bmp"
+    "--enable-decoder=bmp"
+    "--enable-encoder=tiff"
+    "--enable-decoder=tiff"
+    ;; filters
+    "--enable-filter=scale"
+    "--enable-filter=overlay"
+    "--enable-filter=amix"
+    "--enable-filter=amerge"
+    "--enable-filter=aresample"
+    "--enable-filter=format"
+    "--enable-filter=aformat"
+    "--enable-filter=fps"
+    "--enable-filter=transpose"
+    "--enable-filter=pad"))
+
+(define %ffmpeg-linux-configure-flags
+  '("--enable-pic"
+    "--extra-cxxflags=-fPIC"
+    "--extra-cflags=-fPIC"
+    "--target-os=linux"
+    "--enable-indev=v4l2"
+    "--enable-indev=xcbgrab"
+    "--enable-vdpau"
+    "--enable-hwaccel=h264_vdpau"
+    "--enable-hwaccel=mpeg4_vdpau"
+    "--enable-vaapi"
+    "--enable-hwaccel=h264_vaapi"
+    "--enable-hwaccel=mpeg4_vaapi"
+    "--enable-hwaccel=h263_vaapi"
+    "--enable-hwaccel=vp8_vaapi"
+    "--enable-hwaccel=mjpeg_vaapi"
+    "--enable-hwaccel=hevc_vaapi"
+    "--enable-encoder=h264_vaapi"
+    "--enable-encoder=vp8_vaapi"
+    "--enable-encoder=mjpeg_vaapi"
+    "--enable-encoder=hevc_vaapi"))
+
+;; ffnvcodec is not supported on ARM then we enable it here for i386 and x86_64
+(define %ffmpeg-linux-x86-configure-flags
+  '("--arch=x86"
+    "--enable-cuvid"
+    "--enable-ffnvcodec"
+    "--enable-nvdec"
+    "--enable-nvenc"
+    "--enable-hwaccel=h264_nvdec"
+    "--enable-hwaccel=hevc_nvdec"
+    "--enable-hwaccel=vp8_nvdec"
+    "--enable-hwaccel=mjpeg_nvdec"
+    "--enable-encoder=h264_nvenc"
+    "--enable-encoder=hevc_nvenc"))
+
+;; This procedure composes the configure flags list for ffmpeg-jami.
+(define (ffmpeg-compose-configure-flags)
+  (let* ((flags %ffmpeg-default-configure-flags)
+         (append-flags (lambda (l)
+                         (set! flags (append flags l))))
+         (system=? (lambda (s)
+                     (string-prefix? %current-system s))))
+    (if (string-contains %current-system "linux")
+        (begin (append-flags %ffmpeg-linux-configure-flags)
+               (cond ((or (system=? "i686")
+                          (system=? "x86_64"))
+                      (append-flags %ffmpeg-linux-x86-configure-flags))
+                     ((system=? "x86_64")
+                      (append-flags '("--arch=x86_64")))
+                     ((system=? "aarch64")
+                      (append-flags '("--arch=aarch64")))
+                     ((system=? "armhf")
+                      (append-flags '("--arch=armhf"))))))
+    flags))
+
+(define-public ffmpeg-jami
+  (package
+    (inherit ffmpeg)
+    (name "ffmpeg-jami")
+    (native-inputs
+     `(("sfl-patches" ,(jami-source))
+       ("libiconv" ,libiconv)
+       ,@(package-native-inputs ffmpeg)))
+    (supported-systems '("x86_64-linux" "i686-linux"
+                         "aarch64-linux" "armhf-linux"))
+    (arguments
+     (append
+      '(#:tests? #f)
+      (substitute-keyword-arguments (package-arguments ffmpeg)
+        ((#:configure-flags '())
+         (ffmpeg-compose-configure-flags))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'make-git-checkout-writable
+              (lambda _
+                (for-each make-file-writable (find-files "."))
+                #t))
+            (add-after 'unpack 'apply-patches
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+                  ;; These patches come from:
+                  ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
+                  (jami-apply-dependency-patches #:inputs inputs
+                                                 #:dep-name "ffmpeg"
+                                                 #:patches
+                                                 '("remove-mjpeg-log"
+                                                   "change-RTCP-ratio"
+                                                   "rtp_ext_abs_send_time"))
+                  #t))))))))))
+
 (define-public libring
   (package
     (name "libring")
@@ -197,7 +448,7 @@
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-jami)
        ("flac" ,flac)
        ("gmp" ,gmp)
        ("gsm" ,gsm)
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami.
  2020-05-13 18:12 ` [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-05-14  7:05   ` Mathieu Othacehe
  2020-05-14 12:43     ` Jan
  0 siblings, 1 reply; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-14  7:05 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677


Hello Jan,

> +;; This procedure composes the configure flags list for ffmpeg-jami.
> +(define (ffmpeg-compose-configure-flags)
> +  (let* ((flags %ffmpeg-default-configure-flags)
> +         (append-flags (lambda (l)
> +                         (set! flags (append flags l))))

It's better to avoid using "set!".

> +         (system=? (lambda (s)
> +                     (string-prefix? %current-system s))))

This should be (%current-system), plus I think arguments should be
transposed.

> +    (if (string-contains %current-system "linux")
> +        (begin (append-flags %ffmpeg-linux-configure-flags)
> +               (cond ((or (system=? "i686")
> +                          (system=? "x86_64"))
> +                      (append-flags %ffmpeg-linux-x86-configure-flags))
> +                     ((system=? "x86_64")
> +                      (append-flags '("--arch=x86_64")))

If the first branch of the cond succeeds, we will never add this flag.

Plus, it seems than ffmpeg is able to detect the running system. So I
would suggest to do this:

--8<---------------cut here---------------start------------->8---
;; This procedure composes the configure flags list for ffmpeg-jami.
(define (ffmpeg-compose-configure-flags)
  (define (system=? s)
    (string-prefix? s (%current-system)))

  `(,@%ffmpeg-default-configure-flags
    ;; Add Linux specific flags.
    ,@(if (string-contains %current-system "linux")
          %ffmpeg-linux-configure-flags
          '())
    ,@(if (or (system=? "i686") (system=? "x86_64"))
          %ffmpeg-linux-x86-configure-flags
          '())))
--8<---------------cut here---------------end--------------->8---

What do you think?

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami.
  2020-05-14  7:05   ` Mathieu Othacehe
@ 2020-05-14 12:43     ` Jan
  2020-05-15  6:59       ` Mathieu Othacehe
  0 siblings, 1 reply; 144+ messages in thread
From: Jan @ 2020-05-14 12:43 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 40677

On Thu, 14 May 2020 09:05:03 +0200
Mathieu Othacehe <othacehe@gnu.org> wrote:

> Hello Jan,
> 
> 
> It's better to avoid using "set!".
> 
What should I use instead?

> > +         (system=? (lambda (s)
> > +                     (string-prefix? %current-system s))))  
> 
> This should be (%current-system), plus I think arguments should be
> transposed.
Okay

> > +    (if (string-contains %current-system "linux")
> > +        (begin (append-flags %ffmpeg-linux-configure-flags)
> > +               (cond ((or (system=? "i686")
> > +                          (system=? "x86_64"))
> > +                      (append-flags
> > %ffmpeg-linux-x86-configure-flags))
> > +                     ((system=? "x86_64")
> > +                      (append-flags '("--arch=x86_64")))  
> 
> If the first branch of the cond succeeds, we will never add this flag.
That's what happens when you code late in night :)
I should sit down with a cup of coffee and read Guile's manual seriously
this time. Sorry for making your code review harder.

> Plus, it seems than ffmpeg is able to detect the running system. So I
> would suggest to do this:
> 
> --8<---------------cut here---------------start------------->8---
> ;; This procedure composes the configure flags list for ffmpeg-jami.
> (define (ffmpeg-compose-configure-flags)
>   (define (system=? s)
>     (string-prefix? s (%current-system)))
> 
>   `(,@%ffmpeg-default-configure-flags
>     ;; Add Linux specific flags.
>     ,@(if (string-contains %current-system "linux")
>           %ffmpeg-linux-configure-flags
>           '())
>     ,@(if (or (system=? "i686") (system=? "x86_64"))
>           %ffmpeg-linux-x86-configure-flags
>           '())))
> --8<---------------cut here---------------end--------------->8---
> 
> What do you think?

I think  %ffmpeg-linux-x86-configure-flags should be added only if
linux is present, not just when on i686 or x86_64. I called it
"%ffmpeg-linux-x86...", because it was inside of the "ifdef HAVE_LINUX"
condition. But there was also a comment saying "Desktop Linux", which
as always means very little. I'm not sure if it really requires the
Linux kernel there or what.

What about the output of the procedure? Is it okay for the list to be
not proper? It will look something like this:
((flag1 flag2 ... flagN) (flag1 flag2 ... flagN))
Is it okay because everything is treated as a pair in a recursive
manner?

Other than this, it will be good.


> Thanks,
> 
> Mathieu





^ permalink raw reply	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH v5] gnu: Add ffmpeg-jami.
  2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
                   ` (4 preceding siblings ...)
  2020-05-13 18:12 ` [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami Jan Wielkiewicz
@ 2020-05-15  0:47 ` Jan Wielkiewicz
  2020-05-15  7:11   ` bug#40677: " Mathieu Othacehe
  5 siblings, 1 reply; 144+ messages in thread
From: Jan Wielkiewicz @ 2020-05-15  0:47 UTC (permalink / raw)
  To: 40677; +Cc: Jan Wielkiewicz

This package is needed, because Jami uses a modified version
of ffmpeg, which provides GPU hardware acceleration, automatical
adapting of bitrate and extra codecs. Because of the configure flags
list being long, it is better to keep them separated in variables,
instead of littering the package definition.

* gnu/packages/jami.scm (ffmpeg-jami, %ffmpeg-default-configure-flags,
%ffmpeg-linux-configure-flags, %ffmpeg-linux-x86-configure-flags):
New variables.
(ffmpeg-compose-configure-flags): New procedure.
(libring)[inputs]: Use ffmpeg-jami instead of ffmpeg.
---
 gnu/packages/jami.scm | 248 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 246 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index dda787b3cd..dea5e7d3b8 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -59,7 +59,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
-  #:use-module (guix utils))
+  #:use-module (guix utils)
+  #:use-module (srfi srfi-1))
 
 (define %jami-version "20200401.1.6f090de")
 
@@ -186,6 +187,249 @@
                 "selftest: pjlib-test pjlib-util-test pjmedia-test"))
              #t)))))))
 
+;; The following variables are configure flags used by ffmpeg-jami.
+;; They're from the ring-project/daemon/contrib/src/ffmpeg/rules.mak
+;; file. We try to keep it as close to the official Jami package as
+;; possible to provide all the codecs and extra features that are
+;; the effect of patching ffmpeg.
+;;
+;; Web view of the file:
+;;https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak
+(define %ffmpeg-default-configure-flags
+  '(;; disable everything
+    "--disable-everything"
+    "--enable-zlib"
+    "--enable-gpl"
+    "--enable-swscale"
+    "--enable-bsfs"
+    "--disable-filters"
+    "--disable-programs"
+    "--disable-postproc"
+    "--disable-protocols"
+    "--enable-protocol=crypto"
+    "--enable-protocol=file"
+    "--enable-protocol=rtp"
+    "--enable-protocol=srtp"
+    "--enable-protocol=tcp"
+    "--enable-protocol=udp"
+    "--enable-protocol=unix"
+    "--enable-protocol=pipe"
+    ;; enable muxers/demuxers
+    "--disable-demuxers"
+    "--disable-muxers"
+    "--enable-muxer=rtp"
+    "--enable-muxer=g722"
+    "--enable-muxer=h263"
+    "--enable-muxer=h264"
+    "--enable-muxer=hevc"
+    "--enable-muxer=webm"
+    "--enable-muxer=ogg"
+    "--enable-muxer=pcm_s16be"
+    "--enable-muxer=pcm_s16le"
+    "--enable-demuxer=rtp"
+    "--enable-demuxer=mjpeg"
+    "--enable-demuxer=mjpeg_2000"
+    "--enable-demuxer=mpegvideo"
+    "--enable-demuxer=gif"
+    "--enable-demuxer=image_jpeg_pipe"
+    "--enable-demuxer=image_png_pipe"
+    "--enable-demuxer=image_webp_pipe"
+    "--enable-demuxer=matroska"
+    "--enable-demuxer=m4v"
+    "--enable-demuxer=mp3"
+    "--enable-demuxer=ogg"
+    "--enable-demuxer=flac"
+    "--enable-demuxer=wav"
+    "--enable-demuxer=ac3"
+    "--enable-demuxer=g722"
+    "--enable-demuxer=pcm_mulaw"
+    "--enable-demuxer=pcm_alaw"
+    "--enable-demuxer=pcm_s16be"
+    "--enable-demuxer=pcm_s16le"
+    "--enable-demuxer=h263"
+    "--enable-demuxer=h264"
+    "--enable-demuxer=hevc"
+    ;; enable parsers
+    "--enable-parser=h263"
+    "--enable-parser=h264"
+    "--enable-parser=hevc"
+    "--enable-parser=mpeg4video"
+    "--enable-parser=vp8"
+    "--enable-parser=vp9"
+    "--enable-parser=opus"
+    ;; encoders/decoders
+    "--enable-encoder=adpcm_g722"
+    "--enable-decoder=adpcm_g722"
+    "--enable-encoder=rawvideo"
+    "--enable-decoder=rawvideo"
+    "--enable-encoder=libx264"
+    "--enable-decoder=h264"
+    "--enable-encoder=pcm_alaw"
+    "--enable-decoder=pcm_alaw"
+    "--enable-encoder=pcm_mulaw"
+    "--enable-decoder=pcm_mulaw"
+    "--enable-encoder=mpeg4"
+    "--enable-decoder=mpeg4"
+    "--enable-encoder=libvpx_vp8"
+    "--enable-decoder=vp8"
+    "--enable-decoder=vp9"
+    "--enable-encoder=h263"
+    "--enable-encoder=h263p"
+    "--enable-decoder=h263"
+    "--enable-encoder=mjpeg"
+    "--enable-decoder=mjpeg"
+    "--enable-decoder=mjpegb"
+    "--enable-libspeex"
+    "--enable-libopus"
+    "--enable-libvpx"
+    "--enable-libx264"
+    "--enable-encoder=libspeex"
+    "--enable-decoder=libspeex"
+    "--enable-encoder=libopus"
+    "--enable-decoder=libopus"
+    ;; decoders for ringtones and audio streaming
+    "--enable-decoder=flac"
+    "--enable-decoder=vorbis"
+    "--enable-decoder=aac"
+    "--enable-decoder=ac3"
+    "--enable-decoder=eac3"
+    "--enable-decoder=mp3"
+    "--enable-decoder=pcm_u24be"
+    "--enable-decoder=pcm_u24le"
+    "--enable-decoder=pcm_u32be"
+    "--enable-decoder=pcm_u32le"
+    "--enable-decoder=pcm_u8"
+    "--enable-decoder=pcm_f16le"
+    "--enable-decoder=pcm_f24le"
+    "--enable-decoder=pcm_f32be"
+    "--enable-decoder=pcm_f32le"
+    "--enable-decoder=pcm_f64be"
+    "--enable-decoder=pcm_f64le"
+    "--enable-decoder=pcm_s16be"
+    "--enable-decoder=pcm_s16be_planar"
+    "--enable-decoder=pcm_s16le"
+    "--enable-decoder=pcm_s16le_planar"
+    "--enable-decoder=pcm_s24be"
+    "--enable-decoder=pcm_s24le"
+    "--enable-decoder=pcm_s24le_planar"
+    "--enable-decoder=pcm_s32be"
+    "--enable-decoder=pcm_s32le"
+    "--enable-decoder=pcm_s32le_planar"
+    "--enable-decoder=pcm_s64be"
+    "--enable-decoder=pcm_s64le"
+    "--enable-decoder=pcm_s8"
+    "--enable-decoder=pcm_s8_planar"
+    "--enable-decoder=pcm_u16be"
+    "--enable-decoder=pcm_u16le"
+    ;; encoders/decoders for images
+    "--enable-encoder=gif"
+    "--enable-decoder=gif"
+    "--enable-encoder=jpegls"
+    "--enable-decoder=jpegls"
+    "--enable-encoder=ljpeg"
+    "--enable-decoder=jpeg2000"
+    "--enable-encoder=png"
+    "--enable-decoder=png"
+    "--enable-encoder=bmp"
+    "--enable-decoder=bmp"
+    "--enable-encoder=tiff"
+    "--enable-decoder=tiff"
+    ;; filters
+    "--enable-filter=scale"
+    "--enable-filter=overlay"
+    "--enable-filter=amix"
+    "--enable-filter=amerge"
+    "--enable-filter=aresample"
+    "--enable-filter=format"
+    "--enable-filter=aformat"
+    "--enable-filter=fps"
+    "--enable-filter=transpose"
+    "--enable-filter=pad"))
+
+(define %ffmpeg-linux-configure-flags
+  '("--enable-pic"
+    "--extra-cxxflags=-fPIC"
+    "--extra-cflags=-fPIC"
+    "--target-os=linux"
+    "--enable-indev=v4l2"
+    "--enable-indev=xcbgrab"
+    "--enable-vdpau"
+    "--enable-hwaccel=h264_vdpau"
+    "--enable-hwaccel=mpeg4_vdpau"
+    "--enable-vaapi"
+    "--enable-hwaccel=h264_vaapi"
+    "--enable-hwaccel=mpeg4_vaapi"
+    "--enable-hwaccel=h263_vaapi"
+    "--enable-hwaccel=vp8_vaapi"
+    "--enable-hwaccel=mjpeg_vaapi"
+    "--enable-hwaccel=hevc_vaapi"
+    "--enable-encoder=h264_vaapi"
+    "--enable-encoder=vp8_vaapi"
+    "--enable-encoder=mjpeg_vaapi"
+    "--enable-encoder=hevc_vaapi"))
+
+;; ffnvcodec is not supported on ARM then we enable it here for i386 and x86_64
+(define %ffmpeg-linux-x86-configure-flags
+  '("--arch=x86"
+    "--enable-cuvid"
+    "--enable-ffnvcodec"
+    "--enable-nvdec"
+    "--enable-nvenc"
+    "--enable-hwaccel=h264_nvdec"
+    "--enable-hwaccel=hevc_nvdec"
+    "--enable-hwaccel=vp8_nvdec"
+    "--enable-hwaccel=mjpeg_nvdec"
+    "--enable-encoder=h264_nvenc"
+    "--enable-encoder=hevc_nvenc"))
+
+;; This procedure composes the configure flags list for ffmpeg-jami.
+(define (ffmpeg-compose-configure-flags)
+  (define (system=? s)
+    (string-prefix? s (%current-system)))
+  `(,@%ffmpeg-default-configure-flags
+    ,@(if (string-contains (%current-system) "linux")
+          (if (or (system=? "i686")
+                  (system=? "x86_64"))
+              (append %ffmpeg-linux-configure-flags
+                      %ffmpeg-linux-x86-configure-flags)
+              %ffmpeg-linux-configure-flags)
+          '())))
+
+(define-public ffmpeg-jami
+  (package
+    (inherit ffmpeg)
+    (name "ffmpeg-jami")
+    (native-inputs
+     `(("sfl-patches" ,(jami-source))
+       ("libiconv" ,libiconv)
+       ,@(package-native-inputs ffmpeg)))
+    (supported-systems '("x86_64-linux" "i686-linux"
+                         "aarch64-linux" "armhf-linux"))
+    (arguments
+     (append
+      '(#:tests? #f)
+      (substitute-keyword-arguments (package-arguments ffmpeg)
+        ((#:configure-flags '())
+         (ffmpeg-compose-configure-flags))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'make-git-checkout-writable
+              (lambda _
+                (for-each make-file-writable (find-files "."))
+                #t))
+            (add-after 'unpack 'apply-patches
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
+                  ;; These patches come from:
+                  ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
+                  (jami-apply-dependency-patches #:inputs inputs
+                                                 #:dep-name "ffmpeg"
+                                                 #:patches
+                                                 '("remove-mjpeg-log"
+                                                   "change-RTCP-ratio"
+                                                   "rtp_ext_abs_send_time"))
+                  #t))))))))))
+
 (define-public libring
   (package
     (name "libring")
@@ -197,7 +441,7 @@
        ("boost" ,boost)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-jami)
        ("flac" ,flac)
        ("gmp" ,gmp)
        ("gsm" ,gsm)
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 144+ messages in thread

* [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami.
  2020-05-14 12:43     ` Jan
@ 2020-05-15  6:59       ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-15  6:59 UTC (permalink / raw)
  To: Jan; +Cc: 40677


Hey,

> What should I use instead?

Here you can create the list statically using quasi-quotes.

>> If the first branch of the cond succeeds, we will never add this flag.
> That's what happens when you code late in night :)
> I should sit down with a cup of coffee and read Guile's manual seriously
> this time. Sorry for making your code review harder.

No worries.

>
> I think  %ffmpeg-linux-x86-configure-flags should be added only if
> linux is present, not just when on i686 or x86_64. I called it
> "%ffmpeg-linux-x86...", because it was inside of the "ifdef HAVE_LINUX"
> condition. But there was also a comment saying "Desktop Linux", which
> as always means very little. I'm not sure if it really requires the
> Linux kernel there or what.

Yes you are right.

> What about the output of the procedure? Is it okay for the list to be
> not proper? It will look something like this:
> ((flag1 flag2 ... flagN) (flag1 flag2 ... flagN))
> Is it okay because everything is treated as a pair in a recursive
> manner?

Nope the list should be flat, see:
https://www.gnu.org/software/guile/manual/html_node/Expression-Syntax.html.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 144+ messages in thread

* bug#40677: [PATCH v5] gnu: Add ffmpeg-jami.
  2020-05-15  0:47 ` [bug#40677] [PATCH v5] " Jan Wielkiewicz
@ 2020-05-15  7:11   ` Mathieu Othacehe
  0 siblings, 0 replies; 144+ messages in thread
From: Mathieu Othacehe @ 2020-05-15  7:11 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 40677-done


Pushed with minor modifications.

Thanks for your work,

Mathieu

Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

> This package is needed, because Jami uses a modified version
> of ffmpeg, which provides GPU hardware acceleration, automatical
> adapting of bitrate and extra codecs. Because of the configure flags
> list being long, it is better to keep them separated in variables,
> instead of littering the package definition.
>
> * gnu/packages/jami.scm (ffmpeg-jami, %ffmpeg-default-configure-flags,
> %ffmpeg-linux-configure-flags, %ffmpeg-linux-x86-configure-flags):
> New variables.
> (ffmpeg-compose-configure-flags): New procedure.
> (libring)[inputs]: Use ffmpeg-jami instead of ffmpeg.
> ---
>  gnu/packages/jami.scm | 248 +++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 246 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index dda787b3cd..dea5e7d3b8 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -59,7 +59,8 @@
>    #:use-module (guix download)
>    #:use-module (guix git-download)
>    #:use-module (guix packages)
> -  #:use-module (guix utils))
> +  #:use-module (guix utils)
> +  #:use-module (srfi srfi-1))
>  
>  (define %jami-version "20200401.1.6f090de")
>  
> @@ -186,6 +187,249 @@
>                  "selftest: pjlib-test pjlib-util-test pjmedia-test"))
>               #t)))))))
>  
> +;; The following variables are configure flags used by ffmpeg-jami.
> +;; They're from the ring-project/daemon/contrib/src/ffmpeg/rules.mak
> +;; file. We try to keep it as close to the official Jami package as
> +;; possible to provide all the codecs and extra features that are
> +;; the effect of patching ffmpeg.
> +;;
> +;; Web view of the file:
> +;;https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak
> +(define %ffmpeg-default-configure-flags
> +  '(;; disable everything
> +    "--disable-everything"
> +    "--enable-zlib"
> +    "--enable-gpl"
> +    "--enable-swscale"
> +    "--enable-bsfs"
> +    "--disable-filters"
> +    "--disable-programs"
> +    "--disable-postproc"
> +    "--disable-protocols"
> +    "--enable-protocol=crypto"
> +    "--enable-protocol=file"
> +    "--enable-protocol=rtp"
> +    "--enable-protocol=srtp"
> +    "--enable-protocol=tcp"
> +    "--enable-protocol=udp"
> +    "--enable-protocol=unix"
> +    "--enable-protocol=pipe"
> +    ;; enable muxers/demuxers
> +    "--disable-demuxers"
> +    "--disable-muxers"
> +    "--enable-muxer=rtp"
> +    "--enable-muxer=g722"
> +    "--enable-muxer=h263"
> +    "--enable-muxer=h264"
> +    "--enable-muxer=hevc"
> +    "--enable-muxer=webm"
> +    "--enable-muxer=ogg"
> +    "--enable-muxer=pcm_s16be"
> +    "--enable-muxer=pcm_s16le"
> +    "--enable-demuxer=rtp"
> +    "--enable-demuxer=mjpeg"
> +    "--enable-demuxer=mjpeg_2000"
> +    "--enable-demuxer=mpegvideo"
> +    "--enable-demuxer=gif"
> +    "--enable-demuxer=image_jpeg_pipe"
> +    "--enable-demuxer=image_png_pipe"
> +    "--enable-demuxer=image_webp_pipe"
> +    "--enable-demuxer=matroska"
> +    "--enable-demuxer=m4v"
> +    "--enable-demuxer=mp3"
> +    "--enable-demuxer=ogg"
> +    "--enable-demuxer=flac"
> +    "--enable-demuxer=wav"
> +    "--enable-demuxer=ac3"
> +    "--enable-demuxer=g722"
> +    "--enable-demuxer=pcm_mulaw"
> +    "--enable-demuxer=pcm_alaw"
> +    "--enable-demuxer=pcm_s16be"
> +    "--enable-demuxer=pcm_s16le"
> +    "--enable-demuxer=h263"
> +    "--enable-demuxer=h264"
> +    "--enable-demuxer=hevc"
> +    ;; enable parsers
> +    "--enable-parser=h263"
> +    "--enable-parser=h264"
> +    "--enable-parser=hevc"
> +    "--enable-parser=mpeg4video"
> +    "--enable-parser=vp8"
> +    "--enable-parser=vp9"
> +    "--enable-parser=opus"
> +    ;; encoders/decoders
> +    "--enable-encoder=adpcm_g722"
> +    "--enable-decoder=adpcm_g722"
> +    "--enable-encoder=rawvideo"
> +    "--enable-decoder=rawvideo"
> +    "--enable-encoder=libx264"
> +    "--enable-decoder=h264"
> +    "--enable-encoder=pcm_alaw"
> +    "--enable-decoder=pcm_alaw"
> +    "--enable-encoder=pcm_mulaw"
> +    "--enable-decoder=pcm_mulaw"
> +    "--enable-encoder=mpeg4"
> +    "--enable-decoder=mpeg4"
> +    "--enable-encoder=libvpx_vp8"
> +    "--enable-decoder=vp8"
> +    "--enable-decoder=vp9"
> +    "--enable-encoder=h263"
> +    "--enable-encoder=h263p"
> +    "--enable-decoder=h263"
> +    "--enable-encoder=mjpeg"
> +    "--enable-decoder=mjpeg"
> +    "--enable-decoder=mjpegb"
> +    "--enable-libspeex"
> +    "--enable-libopus"
> +    "--enable-libvpx"
> +    "--enable-libx264"
> +    "--enable-encoder=libspeex"
> +    "--enable-decoder=libspeex"
> +    "--enable-encoder=libopus"
> +    "--enable-decoder=libopus"
> +    ;; decoders for ringtones and audio streaming
> +    "--enable-decoder=flac"
> +    "--enable-decoder=vorbis"
> +    "--enable-decoder=aac"
> +    "--enable-decoder=ac3"
> +    "--enable-decoder=eac3"
> +    "--enable-decoder=mp3"
> +    "--enable-decoder=pcm_u24be"
> +    "--enable-decoder=pcm_u24le"
> +    "--enable-decoder=pcm_u32be"
> +    "--enable-decoder=pcm_u32le"
> +    "--enable-decoder=pcm_u8"
> +    "--enable-decoder=pcm_f16le"
> +    "--enable-decoder=pcm_f24le"
> +    "--enable-decoder=pcm_f32be"
> +    "--enable-decoder=pcm_f32le"
> +    "--enable-decoder=pcm_f64be"
> +    "--enable-decoder=pcm_f64le"
> +    "--enable-decoder=pcm_s16be"
> +    "--enable-decoder=pcm_s16be_planar"
> +    "--enable-decoder=pcm_s16le"
> +    "--enable-decoder=pcm_s16le_planar"
> +    "--enable-decoder=pcm_s24be"
> +    "--enable-decoder=pcm_s24le"
> +    "--enable-decoder=pcm_s24le_planar"
> +    "--enable-decoder=pcm_s32be"
> +    "--enable-decoder=pcm_s32le"
> +    "--enable-decoder=pcm_s32le_planar"
> +    "--enable-decoder=pcm_s64be"
> +    "--enable-decoder=pcm_s64le"
> +    "--enable-decoder=pcm_s8"
> +    "--enable-decoder=pcm_s8_planar"
> +    "--enable-decoder=pcm_u16be"
> +    "--enable-decoder=pcm_u16le"
> +    ;; encoders/decoders for images
> +    "--enable-encoder=gif"
> +    "--enable-decoder=gif"
> +    "--enable-encoder=jpegls"
> +    "--enable-decoder=jpegls"
> +    "--enable-encoder=ljpeg"
> +    "--enable-decoder=jpeg2000"
> +    "--enable-encoder=png"
> +    "--enable-decoder=png"
> +    "--enable-encoder=bmp"
> +    "--enable-decoder=bmp"
> +    "--enable-encoder=tiff"
> +    "--enable-decoder=tiff"
> +    ;; filters
> +    "--enable-filter=scale"
> +    "--enable-filter=overlay"
> +    "--enable-filter=amix"
> +    "--enable-filter=amerge"
> +    "--enable-filter=aresample"
> +    "--enable-filter=format"
> +    "--enable-filter=aformat"
> +    "--enable-filter=fps"
> +    "--enable-filter=transpose"
> +    "--enable-filter=pad"))
> +
> +(define %ffmpeg-linux-configure-flags
> +  '("--enable-pic"
> +    "--extra-cxxflags=-fPIC"
> +    "--extra-cflags=-fPIC"
> +    "--target-os=linux"
> +    "--enable-indev=v4l2"
> +    "--enable-indev=xcbgrab"
> +    "--enable-vdpau"
> +    "--enable-hwaccel=h264_vdpau"
> +    "--enable-hwaccel=mpeg4_vdpau"
> +    "--enable-vaapi"
> +    "--enable-hwaccel=h264_vaapi"
> +    "--enable-hwaccel=mpeg4_vaapi"
> +    "--enable-hwaccel=h263_vaapi"
> +    "--enable-hwaccel=vp8_vaapi"
> +    "--enable-hwaccel=mjpeg_vaapi"
> +    "--enable-hwaccel=hevc_vaapi"
> +    "--enable-encoder=h264_vaapi"
> +    "--enable-encoder=vp8_vaapi"
> +    "--enable-encoder=mjpeg_vaapi"
> +    "--enable-encoder=hevc_vaapi"))
> +
> +;; ffnvcodec is not supported on ARM then we enable it here for i386 and x86_64
> +(define %ffmpeg-linux-x86-configure-flags
> +  '("--arch=x86"
> +    "--enable-cuvid"
> +    "--enable-ffnvcodec"
> +    "--enable-nvdec"
> +    "--enable-nvenc"
> +    "--enable-hwaccel=h264_nvdec"
> +    "--enable-hwaccel=hevc_nvdec"
> +    "--enable-hwaccel=vp8_nvdec"
> +    "--enable-hwaccel=mjpeg_nvdec"
> +    "--enable-encoder=h264_nvenc"
> +    "--enable-encoder=hevc_nvenc"))
> +
> +;; This procedure composes the configure flags list for ffmpeg-jami.
> +(define (ffmpeg-compose-configure-flags)
> +  (define (system=? s)
> +    (string-prefix? s (%current-system)))
> +  `(,@%ffmpeg-default-configure-flags
> +    ,@(if (string-contains (%current-system) "linux")
> +          (if (or (system=? "i686")
> +                  (system=? "x86_64"))
> +              (append %ffmpeg-linux-configure-flags
> +                      %ffmpeg-linux-x86-configure-flags)
> +              %ffmpeg-linux-configure-flags)
> +          '())))
> +
> +(define-public ffmpeg-jami
> +  (package
> +    (inherit ffmpeg)
> +    (name "ffmpeg-jami")
> +    (native-inputs
> +     `(("sfl-patches" ,(jami-source))
> +       ("libiconv" ,libiconv)
> +       ,@(package-native-inputs ffmpeg)))
> +    (supported-systems '("x86_64-linux" "i686-linux"
> +                         "aarch64-linux" "armhf-linux"))
> +    (arguments
> +     (append
> +      '(#:tests? #f)
> +      (substitute-keyword-arguments (package-arguments ffmpeg)
> +        ((#:configure-flags '())
> +         (ffmpeg-compose-configure-flags))
> +        ((#:phases phases)
> +         `(modify-phases ,phases
> +            (add-after 'unpack 'make-git-checkout-writable
> +              (lambda _
> +                (for-each make-file-writable (find-files "."))
> +                #t))
> +            (add-after 'unpack 'apply-patches
> +              (lambda* (#:key inputs #:allow-other-keys)
> +                (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
> +                  ;; These patches come from:
> +                  ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
> +                  (jami-apply-dependency-patches #:inputs inputs
> +                                                 #:dep-name "ffmpeg"
> +                                                 #:patches
> +                                                 '("remove-mjpeg-log"
> +                                                   "change-RTCP-ratio"
> +                                                   "rtp_ext_abs_send_time"))
> +                  #t))))))))))
> +
>  (define-public libring
>    (package
>      (name "libring")
> @@ -197,7 +441,7 @@
>         ("boost" ,boost)
>         ("dbus-c++" ,dbus-c++)
>         ("eudev" ,eudev)
> -       ("ffmpeg" ,ffmpeg)
> +       ("ffmpeg" ,ffmpeg-jami)
>         ("flac" ,flac)
>         ("gmp" ,gmp)
>         ("gsm" ,gsm)




^ permalink raw reply	[flat|nested] 144+ messages in thread

end of thread, other threads:[~2020-05-15  7:12 UTC | newest]

Thread overview: 144+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-17  0:00 [bug#40677] Jami Jan Wielkiewicz
2020-04-17  0:34 ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 02/30] gnu: jami: Bump to 20200203.1.5ee7e10 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 03/30] gnu: jami: Fix downloading by changing the prefix to "jami_"; Use the "release" dir instead of the deprecated "ring-release" Jan Wielkiewicz
2020-04-18 12:16     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 04/30] gnu: jami: Add a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
2020-04-18 12:24     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 05/30] gnu: pjproject-jami: Use the jami-apply-dependency-patches procedure Jan Wielkiewicz
2020-04-18 12:27     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 06/30] gnu: Add libnatpmp Jan Wielkiewicz
2020-04-18 12:30     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 07/30] gnu: libring: Add libnatpmp as an optional dependency; remove unnecessary comment Jan Wielkiewicz
2020-04-18 12:33     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 08/30] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
2020-04-18 12:37     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 09/30] gnu: opendht: Bump to 2.0.0rc1 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 10/30] gnu: Add ffmpeg-jami Jan Wielkiewicz
2020-04-18 12:49     ` Mathieu Othacehe
2020-04-19 20:03       ` Jan
2020-04-17  0:34   ` [bug#40677] [PATCH 11/30] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 12/30] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 13/30] gnu: pjproject: Add and apply a patch fixing the crash Jan Wielkiewicz
2020-04-18 12:54     ` Mathieu Othacehe
2020-04-19 22:26       ` Jan
2020-04-17  0:34   ` [bug#40677] [PATCH 14/30] gnu: jami.scm: Add a missing module Jan Wielkiewicz
2020-04-18 12:55     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 15/30] gnu: jami: Bump to 20200206.2.996bf03 Jan Wielkiewicz
2020-04-18 12:56     ` Mathieu Othacehe
2020-04-19 19:49       ` Jan
2020-04-17  0:34   ` [bug#40677] [PATCH 16/30] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
2020-04-18 13:00     ` Mathieu Othacehe
2020-04-19 19:49       ` Jan
2020-04-19 20:32         ` Michael Rohleder
2020-04-17  0:34   ` [bug#40677] [PATCH 17/30] gnu: pjproject: Fix formatting Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 18/30] gnu: jami: Make gettext a native input Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 19/30] gnu: jami.scm: Untabify by emacs Jan Wielkiewicz
2020-04-18 13:08     ` Mathieu Othacehe
2020-04-17  0:34   ` [bug#40677] [PATCH 20/30] gnu: jami: Bump to 20200214.1.7488e86 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 21/30] gnu: opendht: Bump to 2.0.0rc2 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 22/30] gnu: networking.scm: Add missing copyright year Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
2020-04-18 13:03     ` Mathieu Othacehe
2020-04-19 19:44       ` Jan
2020-04-17  0:34   ` [bug#40677] [PATCH 24/30] gnu: jami: Bump to 20200326.1.f8d3d10 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 25/30] gnu: pjproject-jami: Bump to 2.10; apply some cool patches Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 26/30] gnu: jami.scm: Indent code properly Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 27/30] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 28/30] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 29/30] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
2020-04-17  0:34   ` [bug#40677] [PATCH 30/30] gnu: pjproject-jami: Add the missing "--enable-epoll" flag Jan Wielkiewicz
2020-04-18 13:13     ` Mathieu Othacehe
2020-04-18 12:13   ` [bug#40677] [PATCH 01/30] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
2020-04-20 22:55 ` [bug#40677] Code review problems resolved Jan
2020-04-21  7:04   ` Christopher Baines
2020-04-21  7:28   ` Mathieu Othacehe
2020-04-21 16:10 ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 02/18] gnu: jami: Fix downloading Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 03/18] gnu: jami.scm: Add and use a generalized procedure for applying patches made by Savoir-faire linux to Jami dependencies Jan Wielkiewicz
2020-04-22  9:07     ` Mathieu Othacehe
2020-04-21 16:10   ` [bug#40677] [PATCH 04/18] gnu: Add libnatpmp Jan Wielkiewicz
2020-04-22  9:27     ` Mathieu Othacehe
2020-04-27 22:55       ` Jan
2020-04-28  7:19         ` Mathieu Othacehe
2020-04-29 22:31           ` Jan
2020-04-30  7:04             ` Mathieu Othacehe
2020-04-21 16:10   ` [bug#40677] [PATCH 05/18] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 06/18] gnu: libupnp: Bump to 1.8.6; change the download method to git-fetch; add missing dependencies Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 07/18] gnu: Add ffmpeg-jami Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 08/18] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 09/18] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 10/18] gnu: pjproject-jami: Add a new SFL patch Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 11/18] gnu: pjproject: Fix formatting Jan Wielkiewicz
2020-04-22  9:32     ` Mathieu Othacehe
2020-04-21 16:10   ` [bug#40677] [PATCH 12/18] gnu: jami: Make gettext a native input Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 13/18] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it Jan Wielkiewicz
2020-04-22  9:39     ` Mathieu Othacehe
2020-04-22 11:42       ` Jan
2020-04-21 16:10   ` [bug#40677] [PATCH 14/18] gnu: pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
2020-04-22  9:40     ` Mathieu Othacehe
2020-04-21 16:10   ` [bug#40677] [PATCH 15/18] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 16/18] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 17/18] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
2020-04-21 16:10   ` [bug#40677] [PATCH 18/18] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
2020-04-22  9:44     ` Mathieu Othacehe
2020-04-22  8:59   ` [bug#40677] [PATCH 01/18] gnu: jami: Move Jami and its dependencies to jami.scm Mathieu Othacehe
2020-04-22 10:42     ` Jan
2020-04-22 11:42       ` Mathieu Othacehe
2020-04-27 23:18         ` Jan
2020-04-28  7:14           ` Mathieu Othacehe
2020-04-22 16:08     ` Christopher Baines
2020-05-02  1:14 ` [bug#40677] [PATCH V3 00/15] Jami patches Jan Wielkiewicz
2020-05-02  1:14   ` [bug#40677] [PATCH V3 01/15] gnu: telephony.scm: Move Jami and its dependencies to jami.scm Jan Wielkiewicz
2020-05-02  8:45     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 02/15] gnu: jami: Fix downloading Jan Wielkiewicz
2020-05-02  8:47     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 03/15] gnu: jami.scm: Add and use a generalized procedure for applying patches to Jami dependencies Jan Wielkiewicz
2020-05-02  8:54     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 04/15] gnu: Add libnatpmp Jan Wielkiewicz
2020-05-02  8:22     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 05/15] gnu: libring: Add libnatpmp as an optional dependency Jan Wielkiewicz
2020-05-02  8:56     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 06/15] gnu: libupnp: Bump to 1.8.6 Jan Wielkiewicz
2020-05-02  8:30     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami Jan Wielkiewicz
2020-05-02  9:36     ` Mathieu Othacehe
2020-05-02 11:31       ` Jan
2020-05-04 18:26       ` Jan
2020-05-05  7:18         ` Mathieu Othacehe
2020-05-07  0:22           ` Jan
2020-05-08  8:43             ` Mathieu Othacehe
2020-05-07 20:03           ` Jan
2020-05-08  8:35             ` Mathieu Othacehe
2020-05-13 14:57       ` Jan
2020-05-13 15:51         ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 08/15] gnu: libring: Use ffmpeg-jami instead of ffmpeg Jan Wielkiewicz
2020-05-02  1:14   ` [bug#40677] [PATCH V3 09/15] gnu: restinio: Bump to 0.6.1.1 Jan Wielkiewicz
2020-05-02  8:32     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 10/15] gnu: jami: Make gettext a native input Jan Wielkiewicz
2020-05-02  8:58     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 11/15] gnu: pjproject, pjproject-jami: Bump to 2.10, apply new SFL patches Jan Wielkiewicz
2020-05-02  9:14     ` Mathieu Othacehe
2020-05-02 15:17       ` Jan
2020-05-02  1:14   ` [bug#40677] [PATCH V3 12/15] gnu: jami: Bump to 20200401.1.6f090de Jan Wielkiewicz
2020-05-02  9:19     ` Mathieu Othacehe
2020-05-02 11:33       ` Jan
2020-05-02  9:25     ` Mathieu Othacehe
2020-05-02 15:04       ` Jan
2020-05-02  1:14   ` [bug#40677] [PATCH V3 13/15] gnu: jami: Replace gnu-gettext with gettext-minimal, just like on master Jan Wielkiewicz
2020-05-02  9:28     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 14/15] gnu: pjproject-jami: Add the missing, linux-only "--enable-epoll" flag Jan Wielkiewicz
2020-05-02  9:32     ` Mathieu Othacehe
2020-05-02  1:14   ` [bug#40677] [PATCH V3 15/15] gnu: opendht: Bump to 2.0.0 Jan Wielkiewicz
2020-05-02  8:38     ` Mathieu Othacehe
2020-05-02  9:52   ` [bug#40677] [PATCH V3 00/15] Jami patches Mathieu Othacehe
2020-05-02 11:26     ` Jan
2020-05-03  7:34       ` Mathieu Othacehe
2020-05-03 14:32         ` Jan
2020-05-02 14:58     ` Jan
2020-05-13 18:12 ` [bug#40677] [PATCH v4] gnu: Add ffmpeg-jami Jan Wielkiewicz
2020-05-14  7:05   ` Mathieu Othacehe
2020-05-14 12:43     ` Jan
2020-05-15  6:59       ` Mathieu Othacehe
2020-05-15  0:47 ` [bug#40677] [PATCH v5] " Jan Wielkiewicz
2020-05-15  7:11   ` bug#40677: " Mathieu Othacehe

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.