webkit(_gtk2): clean, unify and enable parallel building

This should make webkit_gtk2 build.
This commit is contained in:
Vladimír Čunát 2013-03-06 18:14:18 +01:00
parent 4623d3ff01
commit da437144fa
4 changed files with 82 additions and 65 deletions

View File

@ -1,6 +1,6 @@
args : with args; args : with args;
let let
s = import ./src-for-default.nix; # 1.10 needs newer gtk3, wait for x-updates s = import ./src-for-default.nix; # 1.8.3 needs newer gtk3, wait for x-updates
version = lib.attrByPath ["version"] s.version args; version = lib.attrByPath ["version"] s.version args;
in in
rec { rec {
@ -9,12 +9,13 @@ rec {
sha256 = s.hash; sha256 = s.hash;
}; };
buildInputs = [gtk gtk2 glib atk cairo curl fontconfig freetype buildInputs = with xlibs; [
gettext libjpeg libpng libtiff libxml2 libxslt pango pkgconfig libtool intltool autoconf automake gperf bison flex
sqlite icu gperf bison flex autoconf automake libtool gtk3 gtk2 glib atk cairo pango fontconfig freetype libsoup gtkdoc
perl intltool pkgconfig libsoup gtkdoc libXt libproxy libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
enchant python ruby which renderproto libXrender geoclue which libproxy geoclue enchant python ruby perl
kbproto mesa mesa libXt libXrender renderproto libXcomposite compositeproto
libXdamage damageproto kbproto
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -22,14 +23,17 @@ rec {
]; ];
configureFlags = [ configureFlags = [
"--enable-3D-transforms" # "--enable-3D-transforms" # no longer recognized
"--enable-web-sockets" "--enable-web-sockets"
"--enable-web-timing" "--enable-web-timing"
# https://bugs.webkit.org/show_bug.cgi?id=55294
"--enable-image-resizer"
"--enable-geolocation" "--enable-geolocation"
# Not implemented? # Not implemented?
#"--enable-web-audio" # "--enable-web-audio"
"--enable-mathml" "--enable-mathml"
@ -43,27 +47,30 @@ rec {
# "--enable-input-speech" # "--enable-input-speech"
"--enable-file-writer" #"--enable-file-writer" # no longer recognized
"--enable-blob" "--enable-blob"
# https://bugs.webkit.org/show_bug.cgi?id=59430 # https://bugs.webkit.org/show_bug.cgi?id=59430
#"--enable-directory-upload" # "--enable-directory-upload"
# https://bugs.webkit.org/show_bug.cgi?id=58443 # https://bugs.webkit.org/show_bug.cgi?id=58443
#"--enable-file-system" # "--enable-file-system"
"--enable-dependency-tracking" # to fix parallel building
]; ];
/* doConfigure should be specified separately */ # instead of enableParallelBuilding = true;
phaseNames = ["setVars" "doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") makeFlags = "-j$NIX_BUILD_CORES";
"doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
setVars = fullDepEntry ('' /* doConfigure should be specified separately */
export NIX_LDFLAGS="$NIX_LDFLAGS -lXt" phaseNames = ["doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".")
'') ["minInit"]; "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099 patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099
patchFlags = "-p2"; patchFlags = "-p2";
#doCheck = true; # tests still have problems
doReplaceUsrBin = fullDepEntry ('' doReplaceUsrBin = fullDepEntry (''
for i in $(find . -name '*.pl') $(find . -name '*.pm'); do for i in $(find . -name '*.pl') $(find . -name '*.pm'); do
sed -e 's@/usr/bin/gcc@gcc@' -i $i sed -e 's@/usr/bin/gcc@gcc@' -i $i

View File

@ -10,11 +10,13 @@ rec {
sha256 = s.hash; sha256 = s.hash;
}; };
buildInputs = [gtk glib atk cairo curl fontconfig freetype buildInputs = with xlibs; [
gettext libjpeg libpng libtiff libxml2 libxslt pango pkgconfig libtool intltool autoconf automake gperf bison flex
sqlite icu gperf bison flex autoconf automake libtool gtk2 glib atk cairo pango fontconfig freetype libsoup gtkdoc
intltool pkgconfig libsoup gtkdoc libXt libproxy libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
enchant python ruby which renderproto libXrender geoclue perl which libproxy geoclue enchant python ruby perl
mesa libXt libXrender renderproto libXcomposite compositeproto
libXdamage damageproto kbproto
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -22,12 +24,14 @@ rec {
]; ];
configureFlags = [ configureFlags = [
"--enable-3D-transforms" "--with-gtk=2.0"
# "--enable-3D-transforms" # no longer recognized
"--enable-web-sockets" "--enable-web-sockets"
"--enable-web-timing" "--enable-web-timing"
# https://bugs.webkit.org/show_bug.cgi?id=55294 # https://bugs.webkit.org/show_bug.cgi?id=55294
# "--enable-image-resizer" "--enable-image-resizer"
"--enable-geolocation" "--enable-geolocation"
@ -39,13 +43,14 @@ rec {
#"--enable-wml" #"--enable-wml"
# https://bugs.webkit.org/show_bug.cgi?id=45110 # https://bugs.webkit.org/show_bug.cgi?id=45110
# "--enable-indexed-database" #"--enable-indexed-database"
"--enable-xhtmlmp" # Doesn't work in release...
#"--enable-xhtmlmp"
# "--enable-input-speech" # "--enable-input-speech"
"--enable-file-writer" #"--enable-file-writer" # no longer recognized
"--enable-blob" "--enable-blob"
# https://bugs.webkit.org/show_bug.cgi?id=59430 # https://bugs.webkit.org/show_bug.cgi?id=59430
@ -53,16 +58,21 @@ rec {
# https://bugs.webkit.org/show_bug.cgi?id=58443 # https://bugs.webkit.org/show_bug.cgi?id=58443
# "--enable-file-system" # "--enable-file-system"
"--enable-dependency-tracking" # to fix parallel building
]; ];
# instead of enableParallelBuilding = true;
makeFlags = "-j$NIX_BUILD_CORES";
/* doConfigure should be specified separately */ /* doConfigure should be specified separately */
phaseNames = ["setVars" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") phaseNames = ["doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".")
"doReplaceUsrBin" "doMakeInstall" "doAddPrograms"]; "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
setVars = fullDepEntry ('' patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099
export NIX_LDFLAGS="$NIX_LDFLAGS -lXt" patchFlags = "-p2";
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fpermissive"
'') ["minInit"]; #doCheck = true; # tests still have problems
doReplaceUsrBin = fullDepEntry ('' doReplaceUsrBin = fullDepEntry (''
for i in $(find . -name '*.pl') $(find . -name '*.pm'); do for i in $(find . -name '*.pl') $(find . -name '*.pm'); do
@ -81,12 +91,19 @@ rec {
sed -re 's@( |^)//.*@/* & */@' -i $(find . -name '*.c' -o -name '*.h') sed -re 's@( |^)//.*@/* & */@' -i $(find . -name '*.c' -o -name '*.h')
'') ["minInit" "doUnpack"]; '') ["minInit" "doUnpack"];
# See http://archive.linuxfromscratch.org/mail-archives/blfs-dev/2012-April/022893.html
fixConfigure = fullDepEntry (''
sed -i -e 's/=GSTREAMER_0_10_REQUIRED_VERSION/=\$GSTREAMER_0_10_REQUIRED_VERSION/' \
-e 's/=GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/=\$GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/' \
configure{,.ac}
'') ["minInit" "doUnpack"];
name = s.name; name = s.name;
meta = { meta = {
description = "WebKit - a fast and correct HTML renderer"; description = "WebKit - a fast and correct HTML renderer";
maintainers = [stdenv.lib.maintainers.raskin]; maintainers = [stdenv.lib.maintainers.raskin];
}; };
passthru = { passthru = {
inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg; inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg libsoup;
}; };
} }

View File

@ -1,9 +1,10 @@
rec { rec {
version="1.4.0"; version="1.8.1";
name="webkit-1.4.0"; name="webkit-1.8.1";
hash="123zllzlnkjgw4d2ag73dvrjmkikbapxlz5730ps6y4qm43gxc1y"; hash="0a1v3v8dp2cl332qr51j4fpl0rwpgxbf29hn3zdim9hcniv6l4ls";
url="http://webkitgtk.org/webkit-1.4.0.tar.gz"; url="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
advertisedUrl="http://webkitgtk.org/webkit-1.4.0.tar.gz"; advertisedUrl="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
} }

View File

@ -5010,33 +5010,25 @@ let
webkit = webkit =
builderDefsPackage ../development/libraries/webkit { builderDefsPackage ../development/libraries/webkit {
inherit gtk2; # for plugins etc. even with gtk3, see Gentoo ebuild
inherit gtk3 glib atk cairo pango fontconfig freetype;
inherit (gnome) gtkdoc libsoup; inherit (gnome) gtkdoc libsoup;
inherit atk pango glib gtk2 /*for plugins etc. even with gtk3, see Gentoo ebuild*/; inherit pkgconfig libtool intltool autoconf automake gperf bison flex
gtk = gtk3; libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
inherit freetype fontconfig gettext gperf curl which libproxy geoclue enchant python ruby perl
libjpeg libtiff libxml2 libxslt sqlite mesa xlibs;
icu cairo intltool automake libtool inherit gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good;
pkgconfig autoconf bison libproxy enchant
python ruby which flex geoclue mesa;
inherit gstreamer gst_plugins_base gst_ffmpeg
gst_plugins_good;
inherit (xlibs) libXt renderproto libXrender kbproto;
inherit libpng perl;
}; };
webkit_gtk2 = webkit_gtk2 =
builderDefsPackage ../development/libraries/webkit/gtk2.nix { builderDefsPackage ../development/libraries/webkit/gtk2.nix {
inherit gtk2 glib atk cairo pango fontconfig freetype;
inherit (gnome) gtkdoc libsoup; inherit (gnome) gtkdoc libsoup;
inherit gtk atk pango glib; inherit pkgconfig libtool intltool autoconf automake gperf bison flex
inherit freetype fontconfig gettext gperf curl libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
libjpeg libtiff libxml2 libxslt sqlite which libproxy geoclue enchant python ruby perl
icu cairo intltool automake libtool mesa xlibs;
pkgconfig autoconf bison libproxy enchant inherit gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good;
python ruby which flex geoclue;
inherit gstreamer gst_plugins_base gst_ffmpeg
gst_plugins_good;
inherit (xlibs) libXt renderproto libXrender;
inherit libpng perl;
}; };
webkitSVN = webkitSVN =