![John Wiegley](/assets/img/avatar_default.png)
This is done for the sake of Yosemite, which does not have gcc, and yet this change is also compatible with Linux.
154 lines
3.3 KiB
Nix
154 lines
3.3 KiB
Nix
{ stdenv, fetchurl, config
|
|
, gconf
|
|
, alsaLib
|
|
, at_spi2_atk
|
|
, atk
|
|
, cairo
|
|
, cups
|
|
, curl
|
|
, dbus_glib
|
|
, dbus_libs
|
|
, fontconfig
|
|
, freetype
|
|
, gdk_pixbuf
|
|
, glib
|
|
, glibc
|
|
, gst_plugins_base
|
|
, gstreamer
|
|
, gtk
|
|
, kerberos
|
|
, libX11
|
|
, libXScrnSaver
|
|
, libXext
|
|
, libXinerama
|
|
, libXrender
|
|
, libXt
|
|
, libcanberra
|
|
, libgnome
|
|
, libgnomeui
|
|
, mesa
|
|
, nspr
|
|
, nss
|
|
, pango
|
|
}:
|
|
|
|
assert stdenv.isLinux;
|
|
|
|
# imports `version` and `sources`
|
|
with (import ./sources.nix);
|
|
|
|
let
|
|
arch = if stdenv.system == "i686-linux"
|
|
then "linux-i686"
|
|
else "linux-x86_64";
|
|
|
|
isPrefixOf = prefix: string:
|
|
builtins.substring 0 (builtins.stringLength prefix) string == prefix;
|
|
|
|
sourceMatches = locale: source:
|
|
(isPrefixOf source.locale locale) && source.arch == arch;
|
|
|
|
systemLocale = config.i18n.defaultLocale or "en-US";
|
|
|
|
defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
|
|
|
|
source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
|
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
name = "thunderbird-bin-${version}";
|
|
|
|
src = fetchurl {
|
|
url = "http://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
|
|
inherit (source) sha1;
|
|
};
|
|
|
|
phases = "unpackPhase installPhase";
|
|
|
|
libPath = stdenv.lib.makeLibraryPath
|
|
[ stdenv.gcc.gcc
|
|
gconf
|
|
alsaLib
|
|
at_spi2_atk
|
|
atk
|
|
cairo
|
|
cups
|
|
curl
|
|
dbus_glib
|
|
dbus_libs
|
|
fontconfig
|
|
freetype
|
|
gdk_pixbuf
|
|
glib
|
|
glibc
|
|
gst_plugins_base
|
|
gstreamer
|
|
gtk
|
|
kerberos
|
|
libX11
|
|
libXScrnSaver
|
|
libXext
|
|
libXinerama
|
|
libXrender
|
|
libXt
|
|
libcanberra
|
|
libgnome
|
|
libgnomeui
|
|
mesa
|
|
nspr
|
|
nss
|
|
pango
|
|
] + ":" + stdenv.lib.makeSearchPath "lib64" [
|
|
stdenv.gcc.gcc
|
|
];
|
|
|
|
installPhase =
|
|
''
|
|
mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
|
|
cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
|
|
|
|
mkdir -p "$out/bin"
|
|
ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
|
|
|
|
for executable in \
|
|
thunderbird mozilla-xremote-client thunderbird-bin plugin-container \
|
|
updater
|
|
do
|
|
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
"$out/usr/lib/thunderbird-bin-${version}/$executable"
|
|
done
|
|
|
|
for executable in \
|
|
thunderbird mozilla-xremote-client thunderbird-bin plugin-container \
|
|
updater libxul.so
|
|
do
|
|
patchelf --set-rpath "$libPath" \
|
|
"$out/usr/lib/thunderbird-bin-${version}/$executable"
|
|
done
|
|
|
|
# Create a desktop item.
|
|
mkdir -p $out/share/applications
|
|
cat > $out/share/applications/thunderbird.desktop <<EOF
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Exec=$out/bin/thunderbird
|
|
Icon=$out/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
|
|
Name=Thunderbird
|
|
GenericName=Mail Reader
|
|
Categories=Application;Network;
|
|
EOF
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Mozilla Thunderbird, a full-featured email client (binary package)";
|
|
homepage = http://www.mozilla.org/thunderbird/;
|
|
license = {
|
|
free = false;
|
|
url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
|
|
};
|
|
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|