diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix new file mode 100644 index 00000000000..3ae24bdddf9 --- /dev/null +++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix @@ -0,0 +1,92 @@ +{ stdenv, fetchurl, rpm, cpio, pkgsi686Linux, mesa, xorg, cairo +, libpng, gtk, glib, fontconfig, freetype, curl +}: + +with stdenv.lib; + +let + + rpathNative = makeLibraryPath + [ stdenv.gcc.gcc + mesa + xorg.libXt + xorg.libX11 + cairo + libpng + gtk + glib + fontconfig + freetype + curl + ]; + + rpath32 = makeLibraryPath + [ pkgsi686Linux.gtkLibs.gdk_pixbuf + pkgsi686Linux.gtkLibs.glib + pkgsi686Linux.gtkLibs.gtk + pkgsi686Linux.xorg.libX11 + pkgsi686Linux.xorg.libXcomposite + pkgsi686Linux.xorg.libXfixes + pkgsi686Linux.xorg.libXrender + pkgsi686Linux.xorg.libXrandr + pkgsi686Linux.gcc.gcc + pkgsi686Linux.alsaLib + pkgsi686Linux.pulseaudio + pkgsi686Linux.dbus_glib + pkgsi686Linux.udev + ]; + +in + +stdenv.mkDerivation { + name = "google-talk-plugin-2.107.0"; + + src = + if stdenv.system == "x86_64-linux" then + fetchurl { + url = "http://dl.google.com/linux/direct/google-talkplugin_current_x86_64.rpm"; + sha256 = "01c8w221azvmqvxf5lgb8l151086d72ll5wnjndwn50dvi6rphvx"; + } + else + throw "Google Talk does not support your platform."; + + buildInputs = [ rpm cpio ]; + + unpackPhase = + '' + rpm2cpio $src | cpio -i --make-directories -v + ''; + + installPhase = + '' + mkdir -p $out/lib/mozilla/plugins + cp opt/google/talkplugin/libnp*.so $out/lib/mozilla/plugins/ + + patchelf --set-rpath "${makeLibraryPath [ stdenv.gcc.gcc ]}:${stdenv.gcc.gcc}/lib64" \ + $out/lib/mozilla/plugins/libnpgoogletalk64.so + + patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathNative}:${stdenv.gcc.gcc}/lib64" \ + $out/lib/mozilla/plugins/libnpgtpo3dautoplugin.so + + mkdir -p $out/libexec/google/talkplugin + cp opt/google/talkplugin/GoogleTalkPlugin $out/libexec/google/talkplugin/ + + mkdir -p $out/libexec/google/talkplugin/lib + cp opt/google/talkplugin/lib/libCg* $out/libexec/google/talkplugin/lib/ + + patchelf \ + --set-interpreter ${pkgsi686Linux.glibc}/lib/ld-linux*.so.2 \ + --set-rpath ${rpath32} \ + $out/libexec/google/talkplugin/GoogleTalkPlugin + ''; + + dontStrip = true; + dontPatchELF = true; + + passthru.mozillaPlugin = "/lib/mozilla/plugins"; + + meta = { + homepage = http://www.google.com/chat/video/; + license = "unfree"; + }; +} \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1d7d02dddff..327b97d07f5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6315,7 +6315,7 @@ let flashplayer = flashplayer10; flashplayer9 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-9 { - inherit (gtkLibs) atk; + inherit (gtkLibs) atk; }; flashplayer10 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-10 { @@ -6434,6 +6434,10 @@ let googleearth = callPackage_i686 ../applications/misc/googleearth { }; + google_talk_plugin = callPackage ../applications/networking/browsers/mozilla-plugins/google-talk-plugin { + inherit pkgsi686Linux; + }; + gosmore = builderDefsPackage ../applications/misc/gosmore { inherit fetchsvn curl pkgconfig libxml2; inherit (gtkLibs) gtk; @@ -6911,8 +6915,8 @@ let rdesktop = callPackage ../applications/networking/remote/rdesktop { }; RealPlayer = callPackage ../applications/video/RealPlayer { - inherit (gtkLibs) glib pango atk gtk; - libstdcpp5 = gcc33.gcc; + inherit (gtkLibs) glib pango atk gtk; + libstdcpp5 = gcc33.gcc; }; rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { }; @@ -6923,7 +6927,7 @@ let retroshare = callPackage ../applications/networking/p2p/retroshare { qt = qt4; - inherit (gnome) gnome_keyring; + inherit (gnome) gnome_keyring; }; rsync = callPackage ../applications/networking/sync/rsync { @@ -6934,7 +6938,8 @@ let # = urxvt rxvt_unicode = callPackage ../applications/misc/rxvt_unicode { - perlSupport = false; }; + perlSupport = false; + }; sakura = callPackage ../applications/misc/sakura { inherit (gnome) vte; @@ -6950,9 +6955,7 @@ let seeks = callPackage ../tools/networking/p2p/seeks { }; seg3d = callPackage ../applications/graphics/seg3d { - wxGTK = wxGTK28.override { - unicode = false; - }; + wxGTK = wxGTK28.override { unicode = false; }; }; semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { }; @@ -7188,7 +7191,7 @@ let enableGnash = getConfig [ browserName "enableGnash" ] false; in assert !(enableGnash && enableAdobeFlash); - ([] + ([ ] ++ lib.optional enableGnash gnash ++ lib.optional enableAdobeFlash flashplayer # RealPlayer is disabled by default for legal reasons. @@ -7197,6 +7200,7 @@ let ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser) ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin + ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin ); };