* Added the Google Talk plugin. Doesn't work yet (says ‘ABORT:

X_GLXCreateContext: BadValue’).

svn path=/nixpkgs/trunk/; revision=27825
This commit is contained in:
Eelco Dolstra 2011-07-18 14:44:28 +00:00
parent 7c19a3a691
commit b70a14f88c
2 changed files with 105 additions and 9 deletions

View file

@ -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";
};
}

View file

@ -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
);
};