nixpkgs/pkgs/development/libraries/webkitgtk/2.4.nix

112 lines
2.9 KiB
Nix
Raw Normal View History

2017-08-28 11:05:48 +01:00
{ stdenv, fetchurl, fetchpatch, perl, python, ruby, bison, gperf, flex
, pkgconfig, which, gettext, gobject-introspection
, gtk2, gtk3, wayland, libwebp, enchant, sqlite
, libxml2, libsoup, libsecret, libxslt, harfbuzz, xorg
, gst-plugins-base, libobjc
2014-10-09 11:26:20 +01:00
, withGtk2 ? false
2016-03-29 17:04:46 +01:00
, enableIntrospection ? !stdenv.isDarwin
, enableCredentialStorage ? !stdenv.isDarwin
, readline, libedit
2014-10-09 11:26:20 +01:00
}:
2016-03-29 17:04:46 +01:00
assert stdenv.isDarwin -> !enableIntrospection;
assert stdenv.isDarwin -> !enableCredentialStorage;
with stdenv.lib;
2014-10-09 11:26:20 +01:00
stdenv.mkDerivation rec {
pname = "webkitgtk";
2016-07-15 13:15:13 +01:00
version = "2.4.11";
2014-10-09 11:26:20 +01:00
meta = with stdenv.lib; {
description = "Web content rendering engine, GTK port";
homepage = http://webkitgtk.org/;
2014-10-09 11:26:20 +01:00
license = licenses.bsd2;
platforms = with platforms; linux ++ darwin;
2016-03-13 08:08:15 +00:00
maintainers = [];
knownVulnerabilities = [
"WSA-2016-0004"
"WSA-2016-0005"
"WSA-2016-0006"
"WSA-2017-0001"
"WSA-2017-0002"
];
2014-10-09 11:26:20 +01:00
};
src = fetchurl {
url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
2016-07-15 13:15:13 +01:00
sha256 = "1xsvnvyvlywwyf6m9ainpsg87jkxjmd37q6zgz9cxb7v3c2ym2jq";
2014-10-09 11:26:20 +01:00
};
CC = "cc";
prePatch = ''
patchShebangs Tools/gtk
'';
2016-03-29 17:04:46 +01:00
patches = [
./webcore-svg-libxml-cflags.patch
2017-08-28 11:05:48 +01:00
(fetchpatch {
url = https://raw.githubusercontent.com/gentoo/gentoo/7c5457e265bd40c156a8fe6b2ff94a4e34bcea8e/net-libs/webkit-gtk/files/webkit-gtk-2.4.9-gcc-6.patch;
sha256 = "0ll93dr5vxd40wvly1jaw41lvw86krac0jc6k6cacrps4i5ql5j0";
})
2016-03-29 17:04:46 +01:00
] ++ optionals stdenv.isDarwin [
./configure.patch
2016-03-29 17:04:46 +01:00
./quartz-webcore.patch
./libc++.patch
./plugin-none.patch
] ++ optionals stdenv.hostPlatform.isMusl [
./fix-execinfo.patch
2016-03-29 17:04:46 +01:00
];
2014-10-09 11:26:20 +01:00
configureFlags = with stdenv.lib; [
"--disable-geolocation"
2016-07-15 13:15:13 +01:00
"--disable-jit"
# needed for parallel building
"--enable-dependency-tracking"
2014-10-09 11:26:20 +01:00
(optionalString enableIntrospection "--enable-introspection")
2016-03-29 17:04:46 +01:00
] ++ optional withGtk2 [
2014-10-09 11:26:20 +01:00
"--with-gtk=2.0"
2016-03-29 17:04:46 +01:00
] ++ optionals (withGtk2 || stdenv.isDarwin) [
2014-10-09 11:26:20 +01:00
"--disable-webkit2"
2016-03-29 17:04:46 +01:00
] ++ optionals stdenv.isDarwin [
"--disable-x11-target"
"--enable-quartz-target"
"--disable-web-audio"
2017-03-31 13:51:43 +01:00
"CFLAGS=-DJSC_OBJC_API_ENABLED=0"
"CXXFLAGS=-DJSC_OBJC_API_ENABLED=0"
2016-03-29 17:04:46 +01:00
] ++ optionals (!enableCredentialStorage) [
"--disable-credential-storage"
2014-10-09 11:26:20 +01:00
];
NIX_CFLAGS_COMPILE = [
"-DU_NOEXCEPT="
"-Wno-expansion-to-defined"
];
2016-03-29 17:04:46 +01:00
2014-10-09 11:26:20 +01:00
dontAddDisableDepTrack = true;
nativeBuildInputs = [
perl python ruby bison gperf flex
pkgconfig which gettext gobject-introspection
2014-10-09 11:26:20 +01:00
];
buildInputs = [
2016-03-29 17:04:46 +01:00
gtk2 libwebp enchant
libxml2 libxslt
gst-plugins-base sqlite xorg.libXt xorg.libXdamage
2016-03-29 17:04:46 +01:00
] ++ optionals enableCredentialStorage [
libsecret
] ++ (if stdenv.isDarwin then [
readline libedit libobjc
2016-03-29 17:04:46 +01:00
] else [
wayland
]);
2014-10-09 11:26:20 +01:00
propagatedBuildInputs = [
libsoup harfbuzz/*icu in *.la*/
2014-10-09 11:26:20 +01:00
(if withGtk2 then gtk2 else gtk3)
];
enableParallelBuilding = true;
}