From f24f7010b719f84805215cab7af308e7700d1240 Mon Sep 17 00:00:00 2001 From: koral Date: Thu, 9 Oct 2014 12:26:20 +0200 Subject: [PATCH] webkitgtk: 2.4.6 -> 2.6.1 --- pkgs/desktops/gnome-3/3.10/default.nix | 38 +++++++++--- pkgs/desktops/gnome-3/3.12/default.nix | 40 +++++++++--- .../development/libraries/webkitgtk/2.4.6.nix | 62 +++++++++++++++++++ .../libraries/webkitgtk/default.nix | 50 +++++---------- .../webkitgtk/finding-harfbuzz-icu.patch | 52 ++++++++++++++++ pkgs/top-level/all-packages.nix | 28 ++++++--- 6 files changed, 210 insertions(+), 60 deletions(-) create mode 100644 pkgs/development/libraries/webkitgtk/2.4.6.nix create mode 100644 pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch diff --git a/pkgs/desktops/gnome-3/3.10/default.nix b/pkgs/desktops/gnome-3/3.10/default.nix index a252f29ab27..d5109fa19be 100644 --- a/pkgs/desktops/gnome-3/3.10/default.nix +++ b/pkgs/desktops/gnome-3/3.10/default.nix @@ -17,9 +17,13 @@ rec { dconf = callPackage ./core/dconf { }; - empathy = callPackage ./core/empathy { }; + empathy = callPackage ./core/empathy { + webkitgtk = pkgs.webkitgtk24x; + }; - epiphany = callPackage ./core/epiphany { }; + epiphany = callPackage ./core/epiphany { + webkitgtk = pkgs.webkitgtk24x; + }; evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests @@ -67,7 +71,9 @@ rec { folks = callPackage ./core/folks { }; - gnome_online_accounts = callPackage ./core/gnome-online-accounts { }; + gnome_online_accounts = callPackage ./core/gnome-online-accounts { + webkitgtk = pkgs.webkitgtk24x; + }; gnome-online-miners = callPackage ./core/gnome-online-miners { }; @@ -127,7 +133,9 @@ rec { rest = callPackage ./core/rest { }; - sushi = callPackage ./core/sushi { }; + sushi = callPackage ./core/sushi { + webkitgtk = pkgs.webkitgtk24x; + }; totem = callPackage ./core/totem { }; @@ -139,7 +147,9 @@ rec { vino = callPackage ./core/vino { }; - yelp = callPackage ./core/yelp { }; + yelp = callPackage ./core/yelp { + webkitgtk = pkgs.webkitgtk24x; + }; yelp_xsl = callPackage ./core/yelp-xsl { }; @@ -150,9 +160,13 @@ rec { #### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/) - bijiben = callPackage ./apps/bijiben { }; + bijiben = callPackage ./apps/bijiben { + webkitgtk = pkgs.webkitgtk24x; + }; - evolution = callPackage ./apps/evolution { }; + evolution = callPackage ./apps/evolution { + webkitgtk = pkgs.webkitgtk24x; + }; file-roller = callPackage ./apps/file-roller { }; @@ -162,7 +176,9 @@ rec { gnome-clocks = callPackage ./apps/gnome-clocks { }; - gnome-documents = callPackage ./apps/gnome-documents { }; + gnome-documents = callPackage ./apps/gnome-documents { + webkitgtk = pkgs.webkitgtk24x; + }; gnome-music = callPackage ./apps/gnome-music { }; @@ -182,12 +198,14 @@ rec { goffice = callPackage ./misc/goffice { }; - gitg = callPackage ./misc/gitg { }; + gitg = callPackage ./misc/gitg { + webkitgtk = pkgs.webkitgtk24x; + }; libgit2-glib = callPackage ./misc/libgit2-glib { }; libmediaart = callPackage ./misc/libmediaart { }; - + gexiv2 = callPackage ./misc/gexiv2 { }; gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { }; diff --git a/pkgs/desktops/gnome-3/3.12/default.nix b/pkgs/desktops/gnome-3/3.12/default.nix index a46f49cbb5a..cac121709c8 100644 --- a/pkgs/desktops/gnome-3/3.12/default.nix +++ b/pkgs/desktops/gnome-3/3.12/default.nix @@ -22,9 +22,13 @@ rec { dconf = callPackage ./core/dconf { }; - empathy = callPackage ./core/empathy { }; + empathy = callPackage ./core/empathy { + webkitgtk = pkgs.webkitgtk24x; + }; - epiphany = callPackage ./core/epiphany { }; + epiphany = callPackage ./core/epiphany { + webkitgtk = pkgs.webkitgtk24x; + }; evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests @@ -76,7 +80,9 @@ rec { folks = callPackage ./core/folks { }; - gnome_online_accounts = callPackage ./core/gnome-online-accounts { }; + gnome_online_accounts = callPackage ./core/gnome-online-accounts { + webkitgtk = pkgs.webkitgtk24x; + }; gnome-online-miners = callPackage ./core/gnome-online-miners { }; @@ -158,7 +164,9 @@ rec { rest = callPackage ./core/rest { }; - sushi = callPackage ./core/sushi { }; + sushi = callPackage ./core/sushi { + webkitgtk = pkgs.webkitgtk24x; + }; totem = callPackage ./core/totem { }; @@ -172,7 +180,9 @@ rec { vino = callPackage ./core/vino { }; - yelp = callPackage ./core/yelp { }; + yelp = callPackage ./core/yelp { + webkitgtk = pkgs.webkitgtk24x; + }; yelp_xsl = callPackage ./core/yelp-xsl { }; @@ -183,9 +193,13 @@ rec { #### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/) - bijiben = callPackage ./apps/bijiben { }; + bijiben = callPackage ./apps/bijiben { + webkitgtk = pkgs.webkitgtk24x; + }; - evolution = callPackage ./apps/evolution { }; + evolution = callPackage ./apps/evolution { + webkitgtk = pkgs.webkitgtk24x; + }; file-roller = callPackage ./apps/file-roller { }; @@ -200,7 +214,9 @@ rec { gnome-clocks = callPackage ./apps/gnome-clocks { }; - gnome-documents = callPackage ./apps/gnome-documents { }; + gnome-documents = callPackage ./apps/gnome-documents { + webkitgtk = pkgs.webkitgtk24x; + }; gnome-music = callPackage ./apps/gnome-music { }; @@ -223,13 +239,17 @@ rec { #### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/ - geary = callPackage ./misc/geary { }; + geary = callPackage ./misc/geary { + webkitgtk = pkgs.webkitgtk24x; + }; gfbgraph = callPackage ./misc/gfbgraph { }; goffice = callPackage ./misc/goffice { }; - gitg = callPackage ./misc/gitg { }; + gitg = callPackage ./misc/gitg { + webkitgtk = pkgs.webkitgtk24x; + }; libgda = callPackage ./misc/libgda { }; diff --git a/pkgs/development/libraries/webkitgtk/2.4.6.nix b/pkgs/development/libraries/webkitgtk/2.4.6.nix new file mode 100644 index 00000000000..a2344f71f88 --- /dev/null +++ b/pkgs/development/libraries/webkitgtk/2.4.6.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchurl, perl, python, ruby, bison, gperf, flex +, pkgconfig, which, gettext, gobjectIntrospection +, gtk2, gtk3, wayland, libwebp, enchant +, libxml2, libsoup, libsecret, libxslt, harfbuzz +, gst-plugins-base +, withGtk2 ? false +, enableIntrospection ? true +}: + +stdenv.mkDerivation rec { + name = "webkitgtk-${version}"; + version = "2.4.6"; + + meta = with stdenv.lib; { + description = "Web content rendering engine, GTK+ port"; + homepage = "http://webkitgtk.org/"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = [ maintainers.iyzsong ]; + }; + + src = fetchurl { + url = "http://webkitgtk.org/releases/${name}.tar.xz"; + sha256 = "0mqlq4ivh921k92xjsp5pdvbg9vf75qjliqmx81qwrm2sjl4mvvg"; + }; + + patches = [ ./webcore-svg-libxml-cflags.patch ]; + + CC = "cc"; + + prePatch = '' + patchShebangs Tools/gtk + ''; + + configureFlags = with stdenv.lib; [ + "--disable-geolocation" + (optionalString enableIntrospection "--enable-introspection") + ] ++ stdenv.lib.optional withGtk2 [ + "--with-gtk=2.0" + "--disable-webkit2" + ]; + + dontAddDisableDepTrack = true; + + nativeBuildInputs = [ + perl python ruby bison gperf flex + pkgconfig which gettext gobjectIntrospection + ]; + + buildInputs = [ + gtk2 wayland libwebp enchant + libxml2 libsecret libxslt harfbuzz + gst-plugins-base + ]; + + propagatedBuildInputs = [ + libsoup + (if withGtk2 then gtk2 else gtk3) + ]; + + #enableParallelBuilding = true; # build problems on Hydra +} diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index fa3cdc82c41..853a14ddb6a 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -1,61 +1,45 @@ -{ stdenv, fetchurl, perl, python, ruby, bison, gperf, flex -, pkgconfig, which, gettext, gobjectIntrospection +{ stdenv, fetchurl, perl, python, ruby, bison, gperf, cmake +, pkgconfig, gettext, gobjectIntrospection , gtk2, gtk3, wayland, libwebp, enchant -, libxml2, libsoup, libsecret, libxslt, harfbuzz +, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs , gst-plugins-base -, withGtk2 ? false -, enableIntrospection ? true }: stdenv.mkDerivation rec { - name = "webkitgtk-2.4.6"; + name = "webkitgtk-${version}"; + version = "2.6.1"; - meta = { + meta = with stdenv.lib; { description = "Web content rendering engine, GTK+ port"; homepage = "http://webkitgtk.org/"; - license = stdenv.lib.licenses.bsd2; - platforms = stdenv.lib.platforms.linux; - maintainers = with stdenv.lib.maintainers; [ iyzsong ]; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = [ maintainers.iyzsong ]; }; src = fetchurl { url = "http://webkitgtk.org/releases/${name}.tar.xz"; - sha256 = "0mqlq4ivh921k92xjsp5pdvbg9vf75qjliqmx81qwrm2sjl4mvvg"; + sha256 = "0m3ddi3s3998zkfdpcjv738iglh6wx4678vzwwk9rmrdfriacin8"; }; - patches = [ ./webcore-svg-libxml-cflags.patch ]; + patches = [ ./finding-harfbuzz-icu.patch ]; - CC = "cc"; - - prePatch = '' - patchShebangs Tools/gtk - ''; - - configureFlags = with stdenv.lib; [ - "--disable-geolocation" - (optionalString enableIntrospection "--enable-introspection") - ] ++ stdenv.lib.optional withGtk2 [ - "--with-gtk=2.0" - "--disable-webkit2" - ]; - - dontAddDisableDepTrack = true; + cmakeFlags = [ "-DPORT=GTK" ]; nativeBuildInputs = [ - perl python ruby bison gperf flex - pkgconfig which gettext gobjectIntrospection + cmake perl python ruby bison gperf + pkgconfig gettext gobjectIntrospection ]; buildInputs = [ gtk2 wayland libwebp enchant - libxml2 libsecret libxslt harfbuzz + libxml2 libsecret libxslt harfbuzz libpthreadstubs gst-plugins-base ]; propagatedBuildInputs = [ - libsoup - (if withGtk2 then gtk2 else gtk3) + libsoup gtk3 ]; - #enableParallelBuilding = true; # build problems on Hydra + enableParallelBuilding = true; } diff --git a/pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch b/pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch new file mode 100644 index 00000000000..14d58ef04f6 --- /dev/null +++ b/pkgs/development/libraries/webkitgtk/finding-harfbuzz-icu.patch @@ -0,0 +1,52 @@ +--- webkitgtk-2.6.1.orig/Source/cmake/FindHarfBuzz.cmake 2014-10-09 01:54:38.000000000 +0800 ++++ webkitgtk-2.6.1/Source/cmake/FindHarfBuzz.cmake 2014-10-15 13:41:29.832290412 +0800 +@@ -34,21 +34,39 @@ + + pkg_check_modules(PC_HARFBUZZ harfbuzz>=0.9.7) + +-find_path(HARFBUZZ_INCLUDE_DIRS NAMES hb.h +- HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR} +-) +- +-find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz +- HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR} +-) +- + # HarfBuzz 0.9.18 split ICU support into a separate harfbuzz-icu library. + if ("${PC_HARFBUZZ_VERSION}" VERSION_GREATER "0.9.17") + pkg_check_modules(PC_HARFBUZZ_ICU harfbuzz-icu>=0.9.18 REQUIRED) +- find_library(HARFBUZZ_ICU_LIBRARIES NAMES harfbuzz-icu ++ ++ find_path(HARFBUZZ_ICU_INCLUDEDIR NAMES hb-icu.h ++ HINTS ${PC_HARFBUZZ_ICU_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR} ++ ) ++ ++ find_library(HARFBUZZ_ICU_LIBRARY NAMES harfbuzz-icu + HINTS ${PC_HARFBUZZ_ICU_LIBRARY_DIRS} ${PC_HARFBUZZ_ICU_LIBDIR} + ) +- list(APPEND HARFBUZZ_LIBRARIES "${HARFBUZZ_ICU_LIBRARIES}") ++ ++ find_library(HARFBUZZ_LIBRARY NAMES harfbuzz ++ HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR} ++ ) ++ ++ set(HARFBUZZ_INCLUDE_DIRS ++ ${PC_HARFBUZZ_INCLUDE_DIRS} ${HARFBUZZ_ICU_INCLUDEDIR} ++ CACHE INTERNAL "" ++ ) ++ ++ set(HARFBUZZ_LIBRARIES ++ ${HARFBUZZ_LIBRARY} ${HARFBUZZ_ICU_LIBRARY} ++ CACHE INTERNAL "" ++ ) ++else () ++ find_path(HARFBUZZ_INCLUDE_DIRS NAMES hb.h ++ HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR} ++ ) ++ ++ find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz ++ HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR} ++ ) + endif () + + include(FindPackageHandleStandardArgs) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f9ed31f4ca1..33de2e4089f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5236,6 +5236,10 @@ let heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { }; harfbuzz = callPackage ../development/libraries/harfbuzz { }; + harfbuzz-icu = callPackage ../development/libraries/harfbuzz { + withIcu = true; + withGraphite2 = true; + }; hawknl = callPackage ../development/libraries/hawknl { }; @@ -6704,13 +6708,17 @@ let webkit = webkitgtk; webkitgtk = callPackage ../development/libraries/webkitgtk { - harfbuzz = harfbuzz.override { - withIcu = true; - }; + harfbuzz = harfbuzz-icu; + inherit (xorg) libpthreadstubs; gst-plugins-base = gst_all_1.gst-plugins-base; }; - webkitgtk2 = webkitgtk.override { + webkitgtk24x = callPackage ../development/libraries/webkitgtk/2.4.6.nix { + harfbuzz = harfbuzz-icu; + gst-plugins-base = gst_all_1.gst-plugins-base; + }; + + webkitgtk2 = webkitgtk24x.override { withGtk2 = true; enableIntrospection = false; }; @@ -9595,7 +9603,9 @@ let }; }; - liferea = callPackage ../applications/networking/newsreaders/liferea { }; + liferea = callPackage ../applications/networking/newsreaders/liferea { + webkitgtk = webkitgtk24x; + }; lingot = callPackage ../applications/audio/lingot { inherit (gnome) libglade; @@ -9630,7 +9640,9 @@ let lxdvdrip = callPackage ../applications/video/lxdvdrip { }; - handbrake = callPackage ../applications/video/handbrake { }; + handbrake = callPackage ../applications/video/handbrake { + webkitgtk = webkitgtk24x; + }; lilyterm = callPackage ../applications/misc/lilyterm { inherit (gnome) vte; @@ -9671,7 +9683,9 @@ let mid2key = callPackage ../applications/audio/mid2key { }; - midori = callPackage ../applications/networking/browsers/midori { }; + midori = callPackage ../applications/networking/browsers/midori { + webkitgtk = webkitgtk24x; + }; midoriWrapper = wrapFirefox { browser = midori; browserName = "midori"; desktopName = "Midori";