diff --git a/pkgs/development/libraries/webkitgtk/2.22.nix b/pkgs/development/libraries/webkitgtk/2.22.nix new file mode 100644 index 000000000000..7eae5819daf1 --- /dev/null +++ b/pkgs/development/libraries/webkitgtk/2.22.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, perl, python2, ruby, bison, gperf, cmake, ninja +, pkgconfig, gettext, gobjectIntrospection, libnotify, gnutls, libgcrypt +, gtk3, wayland, libwebp, enchant2, xorg, libxkbcommon, epoxy, at-spi2-core +, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs, pcre, nettle, libtasn1, p11-kit +, libidn, libedit, readline, libGLU_combined, libintl +, enableGeoLocation ? true, geoclue2, sqlite +, enableGtk2Plugins ? false, gtk2 ? null +, gst-plugins-base, gst-plugins-bad, woff2 +}: + +assert enableGeoLocation -> geoclue2 != null; +assert enableGtk2Plugins -> gtk2 != null; +assert stdenv.isDarwin -> !enableGtk2Plugins; + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "webkitgtk-${version}"; + version = "2.22.2"; + + meta = { + description = "Web content rendering engine, GTK+ port"; + homepage = https://webkitgtk.org/; + license = licenses.bsd2; + platforms = platforms.linux; + hydraPlatforms = []; + maintainers = with maintainers; [ ]; + }; + + src = fetchurl { + url = "https://webkitgtk.org/releases/${name}.tar.xz"; + sha256 = "1flrbr8pzbrlwv09b4pmgh6vklw7jghd2lgrhcb72vl9s7a8fm1l"; + }; + + patches = optionals stdenv.isDarwin [ + ## TODO add necessary patches for Darwin + ]; + + postPatch = '' + patchShebangs . + ''; + + cmakeFlags = [ + "-DPORT=GTK" + "-DUSE_LIBHYPHEN=0" + "-DENABLE_INTROSPECTION=ON" + ] + ++ optional (!enableGtk2Plugins) "-DENABLE_PLUGIN_PROCESS_GTK2=OFF" + ++ optional stdenv.isLinux "-DENABLE_GLES2=ON" + ++ optionals stdenv.isDarwin [ + "-DUSE_SYSTEM_MALLOC=ON" + "-DUSE_ACCELERATE=0" + "-DENABLE_MINIBROWSER=OFF" + "-DENABLE_VIDEO=ON" + "-DENABLE_QUARTZ_TARGET=ON" + "-DENABLE_X11_TARGET=OFF" + "-DENABLE_OPENGL=OFF" + "-DENABLE_WEB_AUDIO=OFF" + "-DENABLE_WEBGL=OFF" + "-DENABLE_GRAPHICS_CONTEXT_3D=OFF" + "-DENABLE_GTKDOC=OFF" + ]; + + nativeBuildInputs = [ + cmake ninja perl python2 ruby bison gperf + pkgconfig gettext gobjectIntrospection + ]; + + buildInputs = [ + libintl libwebp enchant2 libnotify gnutls pcre nettle libidn libgcrypt woff2 + libxml2 libsecret libxslt harfbuzz libpthreadstubs libtasn1 p11-kit + sqlite gst-plugins-base gst-plugins-bad libxkbcommon epoxy at-spi2-core + ] ++ optional enableGeoLocation geoclue2 + ++ optional enableGtk2Plugins gtk2 + ++ (with xorg; [ libXdmcp libXt libXtst libXdamage ]) + ++ optionals stdenv.isDarwin [ libedit readline libGLU_combined ] + ++ optional stdenv.isLinux wayland; + + propagatedBuildInputs = [ + libsoup gtk3 + ]; + + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ab5508ef7331..a8b96bd5a29e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12541,6 +12541,13 @@ with pkgs; stdenv = overrideCC stdenv gcc6; }; + webkitgtk222x = callPackage ../development/libraries/webkitgtk/2.22.nix { + harfbuzz = harfbuzzFull; + inherit (gst_all_1) gst-plugins-base gst-plugins-bad; + stdenv = overrideCC stdenv gcc6; + }; + + webkitgtk24x-gtk2 = webkitgtk24x-gtk3.override { withGtk2 = true; enableIntrospection = false;