diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index ff9b8b10b18e..ebc700a7f37c 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -82,8 +82,8 @@ let xdg_utils yasm minizip libwebp libusb1 re2 zlib ffmpeg libxslt libxml2 - # harfbuzz-icu # in versions over 63 harfbuzz and freetype are being built together - # so we can't build with one from system and other from source + # harfbuzz # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source ]; # build paths and release info diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix index f75d08022c65..383f7f60f9bf 100644 --- a/pkgs/development/libraries/harfbuzz/default.nix +++ b/pkgs/development/libraries/harfbuzz/default.nix @@ -1,5 +1,7 @@ { stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintl , 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 @@ -27,12 +29,17 @@ stdenv.mkDerivation { outputBin = "dev"; configureFlags = [ - ( "--with-graphite2=" + (if withGraphite2 then "yes" else "no") ) # not auto-detected by default - ( "--with-icu=" + (if withIcu then "yes" else "no") ) - ]; + # not auto-detected by default + "--with-graphite2=${if withGraphite2 then "yes" else "no"}" + "--with-icu=${if withIcu then "yes" else "no"}" + ] + ++ stdenv.lib.optional withCoreText "--with-coretext=yes"; nativeBuildInputs = [ pkgconfig libintl ]; - buildInputs = [ glib freetype cairo ]; # recommended by upstream + + buildInputs = [ glib freetype cairo ] # recommended by upstream + ++ stdenv.lib.optionals withCoreText [ ApplicationServices CoreText ]; + propagatedBuildInputs = [] ++ optional withGraphite2 graphite2 ++ optionals withIcu [ icu harfbuzz ]; diff --git a/pkgs/tools/typesetting/tectonic/default.nix b/pkgs/tools/typesetting/tectonic/default.nix index fa8af0089556..0d082eac4bba 100644 --- a/pkgs/tools/typesetting/tectonic/default.nix +++ b/pkgs/tools/typesetting/tectonic/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, rustPlatform -, darwin, fontconfig, harfbuzz-icu, openssl, pkgconfig }: +, darwin, fontconfig, harfbuzz, openssl, pkgconfig }: rustPlatform.buildRustPackage rec { name = "tectonic-${version}"; @@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ fontconfig harfbuzz-icu openssl ] + buildInputs = [ fontconfig harfbuzz openssl ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices Cocoa Foundation ]); # tests fail due to read-only nix store diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 77e3047c20b7..30d6647aa28e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9769,13 +9769,14 @@ with pkgs; }; libheimdal = heimdal.override { type = "lib"; }; - harfbuzz = callPackage ../development/libraries/harfbuzz { }; - harfbuzz-icu = harfbuzz.override { - withIcu = true; - withGraphite2 = true; + harfbuzz = callPackage ../development/libraries/harfbuzz { + inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreText; }; - harfbuzz-icu-58 = harfbuzz-icu.override { - icu = icu58; + + harfbuzzFull = harfbuzz.override { + withCoreText = stdenv.isDarwin; + withGraphite2 = true; + withIcu = true; }; hawknl = callPackage ../development/libraries/hawknl { }; @@ -11574,7 +11575,7 @@ with pkgs; inherit stdenv fetchurl makeSetupHook; bison = bison2; # error: too few arguments to function 'int yylex(... inherit cups; - harfbuzz = harfbuzz-icu; + harfbuzz = harfbuzzFull; inherit libGL; inherit perl; inherit (gst_all_1) gstreamer gst-plugins-base; @@ -11588,7 +11589,7 @@ with pkgs; inherit stdenv fetchurl makeSetupHook; bison = bison2; # error: too few arguments to function 'int yylex(... inherit cups; - harfbuzz = harfbuzz-icu; + harfbuzz = harfbuzzFull; inherit libGL; inherit perl; inherit (gst_all_1) gstreamer gst-plugins-base; @@ -11603,7 +11604,7 @@ with pkgs; inherit stdenv fetchurl fetchFromGitHub makeSetupHook; bison = bison2; # error: too few arguments to function 'int yylex(... inherit cups; - harfbuzz = harfbuzz-icu; + harfbuzz = harfbuzzFull; inherit libGL; inherit perl; inherit (gst_all_1) gstreamer gst-plugins-base; @@ -12123,7 +12124,9 @@ with pkgs; tecla = callPackage ../development/libraries/tecla { }; - tectonic = callPackage ../tools/typesetting/tectonic { }; + tectonic = callPackage ../tools/typesetting/tectonic { + harfbuzz = harfbuzzFull; + }; tepl = callPackage ../development/libraries/tepl { }; @@ -12318,13 +12321,15 @@ with pkgs; webkitgtk = webkitgtk220x; webkitgtk24x-gtk3 = callPackage ../development/libraries/webkitgtk/2.4.nix { - harfbuzz = harfbuzz-icu-58; + harfbuzz = harfbuzzFull.override { + icu = icu58; + }; gst-plugins-base = gst_all_1.gst-plugins-base; inherit (darwin) libobjc; }; webkitgtk220x = callPackage ../development/libraries/webkitgtk/2.20.nix { - harfbuzz = harfbuzz-icu; + harfbuzz = harfbuzzFull; inherit (gst_all_1) gst-plugins-base gst-plugins-bad; stdenv = overrideCC stdenv gcc6; };