about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/jami
diff options
context:
space:
mode:
authorlinsui <linsui555@gmail.com>2022-06-05 11:00:26 +0800
committerlinsui <linsui555@gmail.com>2022-06-05 11:00:36 +0800
commit1711b30687175b37bc32094a342017f3c39fa4e5 (patch)
tree5ed3d8abfd4b58a6e049f4f13c1832b977d88ea0 /pkgs/applications/networking/instant-messengers/jami
parent8ea209dfe3a9981f8186f976fc9bfaa075ece2c6 (diff)
jami: 20211223.2.37be4c3 -> 20220503.1550.0f35faa
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/jami')
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/client-gnome.nix64
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/client-qt.nix26
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common19
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/daemon.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix21
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/libclient.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix6
-rwxr-xr-xpkgs/applications/networking/instant-messengers/jami/update.sh24
9 files changed, 76 insertions, 102 deletions
diff --git a/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
deleted file mode 100644
index 8cb748f540599..0000000000000
--- a/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ version
-, src
-, jami-meta
-, stdenv
-, lib
-, pkg-config
-, cmake
-, wrapQtAppsHook
-, wrapGAppsHook
-, gtk3-x11
-, networkmanager # for libnm
-, libayatana-appindicator
-, libnotify
-, clutter-gtk
-, libcanberra-gtk3
-, webkitgtk
-, qrencode
-, jami-libclient
-, qttools
-}:
-
-stdenv.mkDerivation {
-  pname = "jami-client-gnome";
-  inherit version src;
-
-  sourceRoot = "source/client-gnome";
-
-  preConfigure = ''
-    echo ${version} > version.txt
-  '';
-
-  nativeBuildInputs = [
-    pkg-config
-    cmake
-    wrapGAppsHook
-    wrapQtAppsHook
-  ];
-  # To spare double wrapping
-  dontWrapGApps = true;
-  preFixup = ''
-    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
-    # Users that set CLUTTER_BACKEND=wayland in their default environment will
-    # encounter a segfault due to:
-    # https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1100 .
-    qtWrapperArgs+=("--unset" "CLUTTER_BACKEND")
-  '';
-
-  buildInputs = [
-    qttools
-    jami-libclient
-    gtk3-x11
-    networkmanager
-    libayatana-appindicator
-    libnotify
-    clutter-gtk
-    libcanberra-gtk3
-    webkitgtk
-    qrencode
-  ];
-
-  meta = jami-meta // {
-    description = "The client based on GTK" + jami-meta.description;
-  };
-}
diff --git a/pkgs/applications/networking/instant-messengers/jami/client-qt.nix b/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
index 0c952fd1ecad2..74bfbc600689e 100644
--- a/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
@@ -1,8 +1,8 @@
 { version
 , src
 , jami-meta
-, mkDerivation
 , lib
+, stdenv
 , pkg-config
 , cmake
 , networkmanager # for libnm
@@ -10,18 +10,19 @@
 , qttools # for translations
 , wrapQtAppsHook
 , libnotify
-, qrencode
-, qtwebengine
+, qt5compat
+, qtbase
 , qtdeclarative
-, qtquickcontrols2
+, qrencode
 , qtmultimedia
+, qtnetworkauth
 , qtsvg
+, qtwebengine
 , qtwebchannel
-, qtgraphicaleffects # no gui without this
 , jami-libclient
 }:
 
-mkDerivation {
+stdenv.mkDerivation {
   pname = "jami-client-qt";
   inherit version src;
 
@@ -33,6 +34,7 @@ mkDerivation {
   '';
 
   nativeBuildInputs = [
+    wrapQtAppsHook
     pkg-config
     cmake
     python3
@@ -43,14 +45,20 @@ mkDerivation {
     jami-libclient
     networkmanager
     libnotify
+    qtbase
+    qt5compat
     qrencode
-    qtwebengine
+    qtnetworkauth
     qtdeclarative
-    qtquickcontrols2
     qtmultimedia
     qtsvg
     qtwebchannel
-    qtgraphicaleffects
+    qtwebengine
+  ];
+
+  qtWrapperArgs = [
+    # With wayland the titlebar is not themed and the wmclass is wrong.
+    "--set-default QT_QPA_PLATFORM xcb"
   ];
 
   meta = jami-meta // {
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common
new file mode 100644
index 0000000000000..5c3f607e5c0e4
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common
@@ -0,0 +1,19 @@
+--disable-sound
+--enable-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
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux
new file mode 100644
index 0000000000000..d1292afe3a29f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux
@@ -0,0 +1 @@
+--enable-epoll
diff --git a/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
index f39b731132ea0..635cc569e86fb 100644
--- a/pkgs/applications/networking/instant-messengers/jami/daemon.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
@@ -58,16 +58,22 @@ let
 
   pjsip-jami = pjsip.overrideAttrs (old:
     let
-      src-args = import ./pjproject-src.nix;
-      version = lib.concatStrings (lib.lists.take 7 (lib.stringToCharacters src-args.rev));
       patch-src = src + "/daemon/contrib/src/pjproject/";
     in
-    {
-      inherit version;
+    rec {
+      version = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
 
-      src = fetchFromGitHub src-args;
+      src = fetchFromGitHub {
+        owner = "savoirfairelinux";
+        repo = "pjproject";
+        rev = version;
+        sha256 = "sha256-6t+3b7pvvwi+VD05vxtujabEJmWmJTAeyD/Dapav10Y=";
+      };
 
       patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
+
+      configureFlags = (readLinesToList ./config/pjsip_args_common)
+        ++ lib.optionals stdenv.isLinux (readLinesToList ./config/pjsip_args_linux);
     });
 
   opendht-jami = opendht.override {
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index ef8959b57a97f..32b5a26638988 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -4,21 +4,21 @@
 , fetchzip
 , jack
 , udev
-, libsForQt5
+, qt6Packages
 }:
 
-rec {
-  version = "20211223.2.37be4c3";
+let
+  version = "20220503.1550.0f35faa";
 
   src = fetchzip {
     url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
-    sha256 = "1zw9azwmxr4991nq5kl527lbwlj7psrissgvrkl1kxxbfbdncbhh";
+    hash = "sha256-iCmsgjgGogNjj1k0sYRqx59ZEwFZcJOeVGBNyBlcy1M=";
 
     stripRoot = false;
     postFetch = ''
       cd $out
-      mv ring-project/* ./
-      rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
+      mv jami-project/* ./
+      rm -r jami-project.rst jami-project client-android client-ios client-macosx client-uwp
       rm daemon/contrib/tarballs/*
     '';
   };
@@ -30,12 +30,11 @@ rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.linsui ];
   };
-
+in
+rec {
   jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
 
-  jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
-
-  jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
+  jami-libclient = qt6Packages.callPackage ./libclient.nix { inherit version src jami-meta; };
 
-  jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
+  jami-client-qt = qt6Packages.callPackage ./client-qt.nix { inherit version src jami-meta; };
 }
diff --git a/pkgs/applications/networking/instant-messengers/jami/libclient.nix b/pkgs/applications/networking/instant-messengers/jami/libclient.nix
index b5ea7431b9150..d998fe7a0612a 100644
--- a/pkgs/applications/networking/instant-messengers/jami/libclient.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/libclient.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     jami-daemon
+    jami-daemon.ffmpeg
   ];
 
   patches = [
diff --git a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
deleted file mode 100644
index 76e88d8875556..0000000000000
--- a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  owner = "savoirfairelinux";
-  repo = "pjproject";
-  rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
-  sha256 = "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza";
-}
diff --git a/pkgs/applications/networking/instant-messengers/jami/update.sh b/pkgs/applications/networking/instant-messengers/jami/update.sh
index 10d9bb885c35d..ecf14e25ddaf4 100755
--- a/pkgs/applications/networking/instant-messengers/jami/update.sh
+++ b/pkgs/applications/networking/instant-messengers/jami/update.sh
@@ -3,11 +3,14 @@
 
 set -e
 
-jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
+jami_dir=$(readlink -e $(dirname "${BASH_SOURCE[0]}"))
+
+cd $jami_dir/../../../../..
 
 # Update src version and hash
 version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1)
-update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
+
+update-source-version jami-libclient "$version" --file=$jami_dir/default.nix
 
 src=$(nix-build --no-out-link -A jami-libclient.src)
 
@@ -43,8 +46,15 @@ echo "${pjsip_patches}" > "$config_dir/pjsip_patches"
 
 # Update pjsip version
 pjsip_version=$(sed -n -E 's/.*PJPROJECT_VERSION := ([0-9a-f]+).*/\1/p' ${src}/daemon/contrib/src/pjproject/rules.mak)
-nix-prefetch fetchFromGitHub \
-  --owner savoirfairelinux \
-  --repo pjproject \
-  --rev ${pjsip_version} \
-  --output nix > "${jami_dir}/pjproject-src.nix"
+update-source-version jami-daemon.pjsip "$pjsip_version" --file=pkgs/applications/networking/instant-messengers/jami/daemon.nix
+
+pjsip_rules="${src}/daemon/contrib/src/pjproject/rules.mak"
+
+# Update pjsip args
+pjsip_args_common=$(sed -n '/PJPROJECT_OPTIONS :=/,/with-gnutls/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*\\/\1/p')
+echo -e "Common args for pjsip:\n${pjsip_args_common}\n"
+echo "${pjsip_args_common}" > "$config_dir/pjsip_args_common"
+
+pjsip_args_linux=$(sed -n '/HAVE_LINUX/,/endif/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+echo -e "Linux args for pjsip:\n${pjsip_args_linux}\n"
+echo "${pjsip_args_linux}" > "$config_dir/pjsip_args_linux"