nixpkgs/pkgs/development/libraries/webkitgtk/2.4.nix
2016-03-30 09:40:36 +02:00

92 lines
2.2 KiB
Nix

{ stdenv, fetchurl, perl, python, ruby, bison, gperf, flex
, pkgconfig, which, gettext, gobjectIntrospection
, gtk2, gtk3, wayland, libwebp, enchant, sqlite
, libxml2, libsoup, libsecret, libxslt, harfbuzz
, gst-plugins-base
, withGtk2 ? false
, enableIntrospection ? !stdenv.isDarwin
, enableCredentialStorage ? !stdenv.isDarwin
, readline, libedit
}:
assert stdenv.isDarwin -> !enableIntrospection;
assert stdenv.isDarwin -> !enableCredentialStorage;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "webkitgtk-${version}";
version = "2.4.9";
meta = with stdenv.lib; {
description = "Web content rendering engine, GTK+ port";
homepage = "http://webkitgtk.org/";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = [];
};
src = fetchurl {
url = "http://webkitgtk.org/releases/${name}.tar.xz";
sha256 = "0r651ar3p0f8zwl7764kyimxk5hy88cwy116pv8cl5l8hbkjkpxg";
};
CC = "cc";
prePatch = ''
patchShebangs Tools/gtk
'';
patches = [
./webcore-svg-libxml-cflags.patch
] ++ optionals stdenv.isDarwin [
./impure-icucore.patch
./quartz-webcore.patch
./libc++.patch
./plugin-none.patch
];
configureFlags = with stdenv.lib; [
"--disable-geolocation"
(optionalString enableIntrospection "--enable-introspection")
] ++ optional withGtk2 [
"--with-gtk=2.0"
] ++ optionals (withGtk2 || stdenv.isDarwin) [
"--disable-webkit2"
] ++ optionals stdenv.isDarwin [
"--disable-x11-target"
"--enable-quartz-target"
"--disable-web-audio"
] ++ optionals (!enableCredentialStorage) [
"--disable-credential-storage"
];
NIX_CFLAGS_COMPILE = "-DU_NOEXCEPT=";
dontAddDisableDepTrack = true;
nativeBuildInputs = [
perl python ruby bison gperf flex
pkgconfig which gettext gobjectIntrospection
];
buildInputs = [
gtk2 libwebp enchant
libxml2 libxslt
gst-plugins-base sqlite
] ++ optionals enableCredentialStorage [
libsecret
] ++ (if stdenv.isDarwin then [
readline libedit
] else [
wayland
]);
propagatedBuildInputs = [
libsoup harfbuzz/*icu in *.la*/
(if withGtk2 then gtk2 else gtk3)
];
# Still fails with transient errors in version 2.4.9.
enableParallelBuilding = false;
}