From c9a7fdfcfb420be8e0179214d0d91a34f5974c54 Mon Sep 17 00:00:00 2001 From: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> Date: Sun, 23 Aug 2020 19:56:44 +0200 Subject: [PATCH] =?UTF-8?q?harfbuzz:=202.6.7=20=E2=86=92=202.7.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Upstream changed from freedesktop.org to GitHub, so updateWalker is disabled and fetchFromGitHub used * Build system now based on meson/ninja * python3 instead of python * postInstall hook moved to postFixup since it depends on some files being moved around in fixupPhase * Build developer manual using gtk-doc --- .../libraries/harfbuzz/default.nix | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix index d27021280a3..8110f13d14c 100644 --- a/pkgs/development/libraries/harfbuzz/default.nix +++ b/pkgs/development/libraries/harfbuzz/default.nix @@ -1,28 +1,34 @@ -{ stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintl +{ stdenv, fetchFromGitHub, pkgconfig, glib, freetype, cairo, libintl +, meson, ninja , gobject-introspection , icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one. , ApplicationServices, CoreText , withCoreText ? false , withIcu ? false # recommended by upstream as default, but most don't needed and it's big , withGraphite2 ? true # it is small and major distros do include it -, python +, python3 +, gtk-doc, docbook-xsl-nons, docbook_xml_dtd_43 }: let - version = "2.6.7"; + version = "2.7.1"; inherit (stdenv.lib) optional optionals optionalString; + mesonFeatureFlag = opt: b: + "-D${opt}=${if b then "enabled" else "disabled"}"; in stdenv.mkDerivation { name = "harfbuzz${optionalString withIcu "-icu"}-${version}"; - src = fetchurl { - url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.xz"; - sha256 = "065jg6s8xix45s4msj0l2r0iycw5yyyjdylripv7pyfzdk883r29"; + src = fetchFromGitHub { + owner = "harfbuzz"; + repo = "harfbuzz"; + rev = version; + sha256 = "172jmwp666xbs6yy1pc2495gnkz8xw11b8zkz3j19jxlvvp4mxcs"; }; postPatch = '' - patchShebangs src/gen-def.py + patchShebangs src/*.py patchShebangs test '' + stdenv.lib.optionalString stdenv.isDarwin '' # ApplicationServices.framework headers have cast-align warnings. @@ -30,22 +36,25 @@ stdenv.mkDerivation { --replace '#pragma GCC diagnostic error "-Wcast-align"' "" ''; - outputs = [ "out" "dev" ]; + outputs = [ "out" "dev" "devdoc" ]; outputBin = "dev"; - configureFlags = [ - # not auto-detected by default - "--with-graphite2=${if withGraphite2 then "yes" else "no"}" - "--with-icu=${if withIcu then "yes" else "no"}" - "--with-gobject=yes" - "--enable-introspection=yes" - ] - ++ stdenv.lib.optional withCoreText "--with-coretext=yes"; + mesonFlags = [ + (mesonFeatureFlag "graphite" withGraphite2) + (mesonFeatureFlag "icu" withIcu) + (mesonFeatureFlag "coretext" withCoreText) + ]; nativeBuildInputs = [ + meson + ninja gobject-introspection libintl pkgconfig + python3 + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_43 ]; buildInputs = [ glib freetype cairo ] # recommended by upstream @@ -55,11 +64,10 @@ stdenv.mkDerivation { ++ optional withGraphite2 graphite2 ++ optionals withIcu [ icu harfbuzz ]; - checkInputs = [ python ]; - doInstallCheck = false; # fails, probably a bug + doCheck = true; # Slightly hacky; some pkgs expect them in a single directory. - postInstall = optionalString withIcu '' + postFixup = optionalString withIcu '' rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc" ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc @@ -71,12 +79,9 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "An OpenType text shaping engine"; - homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz"; - downloadPage = "https://www.freedesktop.org/software/harfbuzz/release/"; + homepage = "https://harfbuzz.github.io/"; maintainers = [ maintainers.eelco ]; license = licenses.mit; platforms = with platforms; linux ++ darwin; - inherit version; - updateWalker = true; }; }