From 3abd1ec53d4d373f2fd1b697bc9ea191137e5d19 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 4 Mar 2018 22:06:08 +0100 Subject: [PATCH] =?UTF-8?q?gdk=5Fpixbuf:=202.36.7=20=E2=86=92=202.36.11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../libraries/gdk-pixbuf/default.nix | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index a1a9b10fca63..ace1d687a91b 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -1,40 +1,46 @@ -{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, gnome3 -, jasper, libintlOrEmpty, gobjectIntrospection, doCheck ? false }: +{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, python3, libxml2, libxslt, docbook_xsl +, docbook_xml_dtd_43, gtk-doc, glib, libtiff, libjpeg, libpng, libX11, gnome3 +, jasper, shared-mime-info, libintlOrEmpty, gobjectIntrospection, doCheck ? false, makeWrapper }: let pname = "gdk-pixbuf"; - version = "2.36.7"; - # TODO: since 2.36.8 gdk-pixbuf gets configured to use mime-type sniffing, - # which apparently requires access to shared-mime-info files during runtime. + version = "2.36.11"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz"; - sha256 = "1b6e5eef09d98f05f383014ecd3503e25dfb03d7e5b5f5904e5a65b049a6a4d8"; + sha256 = "1wz2vpciwdpdv612s8kbww08q80hgcs5dxrfsxp1a4q44n3snqmf"; }; - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ "out" "dev" "man" "devdoc" ]; setupHook = ./setup-hook.sh; enableParallelBuilding = true; # !!! We might want to factor out the gdk-pixbuf-xlib subpackage. - buildInputs = [ libX11 gobjectIntrospection ] ++ libintlOrEmpty; + buildInputs = [ libX11 ] ++ stdenv.lib.optional (!stdenv.isDarwin) shared-mime-info ++ libintlOrEmpty; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ + meson ninja pkgconfig gettext python3 libxml2 libxslt docbook_xsl docbook_xml_dtd_43 + gtk-doc gobjectIntrospection makeWrapper + ]; propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ]; - configureFlags = "--with-libjasper --with-x11" - + stdenv.lib.optionalString (gobjectIntrospection != null) " --enable-introspection=yes" - ; + mesonFlags = [ + # with_ & enable_will be removed in the future + "-Dwith_docs=true" + "-Denable_jasper=true" + "-Dx11=true" # will be added in the future (default atm) + "-Dwith_gir=${if gobjectIntrospection != null then "true" else "false"}" + ]; - # on darwin, tests don't link - preBuild = stdenv.lib.optionalString (stdenv.isDarwin && !doCheck) '' - substituteInPlace Makefile --replace "docs tests" "docs" + postPatch = '' + chmod +x build-aux/* # patchShebangs only applies to executables + patchShebangs build-aux ''; postInstall = @@ -42,6 +48,17 @@ stdenv.mkDerivation rec { '' moveToOutput "bin" "$dev" moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out" + + # We require runtime access to shared-mime-info + ${stdenv.lib.optionalString (!stdenv.isDarwin) '' + for f in $dev/bin/*; do + wrapProgram $f --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + done + wrapProgram $out/bin/gdk-pixbuf-thumbnailer --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ''} + + # We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/ + $dev/bin/gdk-pixbuf-query-loaders --update-cache ''; # The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).