diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix index f9bd941b2f66..c894a49c20e3 100644 --- a/pkgs/applications/networking/instant-messengers/linphone/default.nix +++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -1,14 +1,15 @@ { stdenv, fetchurl, intltool, pkgconfig, readline, openldap, cyrus_sasl, libupnp , zlib, libxml2, gtk2, libnotify, speex, ffmpeg, libX11, polarssl, libsoup, udev , ortp, mediastreamer, sqlite, belle-sip, libosip, libexosip +, mediastreamer-openh264, makeWrapper }: stdenv.mkDerivation rec { - name = "linphone-3.8.1"; + name = "linphone-3.8.5"; src = fetchurl { url = "mirror://savannah/linphone/3.8.x/sources/${name}.tar.gz"; - sha256 = "19xwar8z5hyp1bap1s437ipv90gspmjwcq5zznds55d7r6gbqicd"; + sha256 = "10brlbwkk61nhd5v2sim1vfv11xm138l1cqqh3imhs2sigmzzlax"; }; buildInputs = [ @@ -16,7 +17,7 @@ stdenv.mkDerivation rec { polarssl libsoup udev ortp mediastreamer sqlite belle-sip libosip libexosip ]; - nativeBuildInputs = [ intltool pkgconfig ]; + nativeBuildInputs = [ intltool pkgconfig makeWrapper ]; configureFlags = [ "--enable-ldap" @@ -27,6 +28,12 @@ stdenv.mkDerivation rec { "--enable-external-mediastreamer" ]; + postInstall = '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i --set MEDIASTREAMER_PLUGINS_DIR ${mediastreamer-openh264}/lib/mediastreamer/plugins + done + ''; + meta = with stdenv.lib; { homepage = http://www.linphone.org/; description = "Open Source video SIP softphone"; diff --git a/pkgs/applications/networking/instant-messengers/linphone/fix-deprecated.patch b/pkgs/applications/networking/instant-messengers/linphone/fix-deprecated.patch deleted file mode 100644 index 8978e6e66525..000000000000 --- a/pkgs/applications/networking/instant-messengers/linphone/fix-deprecated.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/gtk/main.c b/gtk/main.c -index 7079bc8..f076127 100644 ---- a/gtk/main.c -+++ b/gtk/main.c -@@ -1643,7 +1643,7 @@ int main(int argc, char *argv[]){ - GdkPixbuf *pbuf; - const char *app_name="Linphone"; - -- g_thread_init(NULL); -+ g_type_init(); - gdk_threads_init(); - - progpath = strdup(argv[0]); -diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c -index 1c54fca..45c9091 100644 ---- a/gtk/setupwizard.c -+++ b/gtk/setupwizard.c -@@ -270,7 +270,7 @@ static void account_username_changed(GtkEntry *entry, GtkWidget *w) { - linphone_account_creator_set_username(creator, gtk_entry_get_text(username)); - - if (g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{3,}$", gtk_entry_get_text(username), 0, 0)) { -- g_thread_create(check_username_availability, (void*)w, FALSE, NULL); -+ g_thread_new (NULL, check_username_availability, (void*)w); - } - else { - if (gtk_entry_get_text_length(username) < LOGIN_MIN_SIZE) { -@@ -534,7 +534,7 @@ GtkWidget * linphone_gtk_create_assistant(void){ - ok = create_pixbuf(linphone_gtk_get_ui_config("ok","ok.png")); - notok = create_pixbuf(linphone_gtk_get_ui_config("notok","notok.png")); - -- g_thread_init (NULL); -+ g_type_init (); - gdk_threads_init (); - - GtkWidget *p1=create_intro(); diff --git a/pkgs/development/libraries/belle-sip/default.nix b/pkgs/development/libraries/belle-sip/default.nix index 6dc1b5241f23..5975a61ff77c 100644 --- a/pkgs/development/libraries/belle-sip/default.nix +++ b/pkgs/development/libraries/belle-sip/default.nix @@ -9,11 +9,11 @@ let }; in stdenv.mkDerivation rec { - name = "belle-sip-1.4.0"; + name = "belle-sip-1.4.1"; src = fetchurl { url = "mirror://savannah/linphone/belle-sip/${name}.tar.gz"; - sha256 = "1lwxfvwvclbh0bfwf69jrknqzqh1igzm293wwwbmq4kn8c5fiypz"; + sha256 = "0q1d3fqsrxi3kxcjcibr376js25h6in8c1hm7c53wz252jx6f42b"; }; nativeBuildInputs = [ jre ]; diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix index 19e71fd66c12..4a672b226ea6 100644 --- a/pkgs/development/libraries/mediastreamer/default.nix +++ b/pkgs/development/libraries/mediastreamer/default.nix @@ -4,18 +4,19 @@ }: stdenv.mkDerivation rec { - name = "mediastreamer-2.11.1"; + name = "mediastreamer-2.11.2"; src = fetchurl { url = "mirror://savannah/linphone/mediastreamer/${name}.tar.gz"; - sha256 = "0gfv4k2rsyvyq838xjgsrxmmn0fkw40apqs8vakzjwzsz2c9z8pd"; + sha256 = "1g6gawrlz1lixzs1kzckm3rxc401ww8pi00x7r5kb84bdijb02cc"; }; + patches = [ ./plugins_dir.patch ]; + postPatch = '' sed -i "s/\(SRTP_LIBS=\"\$SRTP_LIBS -lsrtp\"\)/SRTP_LIBS=\"$(pkg-config --libs-only-l libsrtp)\"/g" configure ''; - # TODO: make it load plugins from *_PLUGIN_PATH nativeBuildInputs = [ pkgconfig intltool ]; propagatedBuildInputs = [ @@ -28,6 +29,8 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-external-ortp" "--with-srtp=${srtp}" + "--enable-xv" + "--enable-glx" ]; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/mediastreamer/msopenh264.nix b/pkgs/development/libraries/mediastreamer/msopenh264.nix new file mode 100644 index 000000000000..e312c730ab21 --- /dev/null +++ b/pkgs/development/libraries/mediastreamer/msopenh264.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, autoreconfHook, pkgconfig, mediastreamer, openh264 }: + +stdenv.mkDerivation rec { + name = "mediastreamer-openh264-${version}"; + version = "1.0.0"; + + src = fetchurl { + url = "http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/msopenh264-${version}.tar.gz"; + sha256 = "1622ma8g4yqvxa8pqwddsmhlpwak31i8zfl88f60k71k4dplw845"; + }; + + buildInputs = [ autoreconfHook pkgconfig mediastreamer openh264 ]; + + meta = with stdenv.lib; { + description = "H.264 encoder/decoder plugin for mediastreamer2"; + homepage = http://www.linphone.org/technical-corner/mediastreamer2/overview; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/mediastreamer/plugins_dir.patch b/pkgs/development/libraries/mediastreamer/plugins_dir.patch new file mode 100644 index 000000000000..e64bfc5a43a1 --- /dev/null +++ b/pkgs/development/libraries/mediastreamer/plugins_dir.patch @@ -0,0 +1,24 @@ +diff -uNr mediastreamer2/src/base/msfactory.c mediastreamer2-new/src/base/msfactory.c +--- a/src/base/msfactory.c 2015-05-13 16:53:49.801113249 +0200 ++++ b/src/base/msfactory.c 2015-08-26 21:35:44.994724647 +0200 +@@ -630,12 +630,18 @@ + } + + void ms_factory_init_plugins(MSFactory *obj) { ++ char *package_plugins_dir; + if (obj->plugins_dir == NULL) { ++ package_plugins_dir=getenv("MEDIASTREAMER_PLUGINS_DIR"); ++ if (package_plugins_dir!=NULL){ ++ obj->plugins_dir = ms_strdup(package_plugins_dir); ++ } else { + #ifdef PACKAGE_PLUGINS_DIR +- obj->plugins_dir = ms_strdup(PACKAGE_PLUGINS_DIR); ++ obj->plugins_dir = ms_strdup(PACKAGE_PLUGINS_DIR); + #else +- obj->plugins_dir = ms_strdup(""); ++ obj->plugins_dir = ms_strdup(""); + #endif ++ } + } + if (strlen(obj->plugins_dir) > 0) { + ms_message("Loading ms plugins from [%s]",obj->plugins_dir); diff --git a/pkgs/development/libraries/openh264/default.nix b/pkgs/development/libraries/openh264/default.nix new file mode 100644 index 000000000000..76188d484f91 --- /dev/null +++ b/pkgs/development/libraries/openh264/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, nasm }: + +stdenv.mkDerivation rec { + name = "openh264-1.4.0"; + + src = fetchurl { + url = "https://github.com/cisco/openh264/archive/v1.4.0.tar.gz"; + sha256 = "08haj0xkyjlwbpqdinxk0cmvqw89bx89ly0kqs9lf87fy6ksgfd1"; + }; + + buildInputs = [ nasm ]; + + installPhase = '' + make PREFIX=$out install + ''; + + meta = with stdenv.lib; { + description = "A codec library which supports H.264 encoding and decoding"; + homepage = http://www.openh264.org; + license = stdenv.lib.licenses.bsd2; + }; +} diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix index 561d0df4e805..746f10eebed1 100644 --- a/pkgs/development/libraries/ortp/default.nix +++ b/pkgs/development/libraries/ortp/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "ortp-0.24.1"; + name = "ortp-0.24.2"; src = fetchurl { url = "mirror://savannah/linphone/ortp/sources/${name}.tar.gz"; - sha256 = "1mach7cdq4kydqkll8ra1kir818da07z253rf9pihifipqhcxv6i"; + sha256 = "05k6ianphr533qnjwxsv7jnh7fb2sq0dj1pdy1bk2w5khmlwfdyb"; }; meta = with stdenv.lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2350118b810a..3e5d073941db 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7575,6 +7575,8 @@ let # failed to build mediastreamer = callPackage ../development/libraries/mediastreamer { }; + mediastreamer-openh264 = callPackage ../development/libraries/mediastreamer/msopenh264.nix { }; + menu-cache = callPackage ../development/libraries/menu-cache { }; mesaSupported = lib.elem system lib.platforms.mesaPlatforms; @@ -7787,6 +7789,8 @@ let opal = callPackage ../development/libraries/opal {}; + openh264 = callPackage ../development/libraries/openh264 { }; + openjpeg_1 = callPackage ../development/libraries/openjpeg/1.x.nix { }; openjpeg_2_0 = callPackage ../development/libraries/openjpeg/2.0.nix { }; openjpeg_2_1 = callPackage ../development/libraries/openjpeg/2.1.nix { };