Add no-op fontconfig files for Microsoft fonts.

With these fontconfig files it becomes possible for other packages to
configure font aliases for the Microsoft fonts. If both, for example,
vista-fonts and some package providing an alias for Cambria are
installed then the user may control whether or not the alias is active
by manipulating the package priorities.
This commit is contained in:
Robert Helgesson 2015-03-21 00:21:35 +01:00
parent 14fc74054b
commit 2fcb411819
4 changed files with 53 additions and 6 deletions

View File

@ -34,18 +34,34 @@ stdenv.mkDerivation {
buildInputs = [cabextract];
buildCommand = "
buildCommand = ''
for i in $exes; do
cabextract --lowercase $i
done
cabextract --lowercase viewer1.cab
fontDir=$out/share/fonts/truetype
mkdir -p $fontDir
cp *.ttf $fontDir
# Also put the EULA there to be on the safe side.
cp ${eula} $fontDir/eula.html
";
# Set up no-op font configs to override any aliases set up by
# other packages.
mkdir -p $out/etc/fonts/conf.d
for name in Andale-Mono Arial-Black Arial Comic-Sans-MS \
Courier-New Georgia Impact Times-New-Roman \
Trebuchet Verdana Webdings ; do
substitute ${./no-op.conf} $out/etc/fonts/conf.d/30-''${name,,}.conf \
--subst-var-by fontname "''${name//-/ }"
done
'';
meta = {
# Set a non-zero priority to allow easy overriding of the
# fontconfig configuration files.
priority = 5;
};
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- This configuation is intentionally left empty in order to
override any other font package that may wish to set up an
alias for the Microsoft @fontname@ font. If you actually do
want to have the alias then please change the priority of that
package; see the Nix manual page for nix-env for details. -->
</fontconfig>

View File

@ -18,13 +18,26 @@ stdenv.mkDerivation {
buildPhase = "true";
installPhase = "
mkdir -p $out/share/fonts/truetype; cp *.ttf $out/share/fonts/truetype
";
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp *.ttf $out/share/fonts/truetype
# Set up no-op font configs to override any aliases set up by
# other packages.
mkdir -p $out/etc/fonts/conf.d
for name in Calibri Cambria Candara Consolas Constantia Corbel ; do
substitute ${./no-op.conf} $out/etc/fonts/conf.d/30-''${name,,}.conf \
--subst-var-by fontname $name
done
'';
meta = {
description = "Some TrueType fonts from Microsoft Windows Vista (Calibri, Cambria, Candara, Consolas, Constantia, Corbel)";
homepage = http://www.microsoft.com/typography/ClearTypeFonts.mspx;
binaryDistribution = false; # haven't read the EULA, but we probably can't redistribute these files, so...
# Set a non-zero priority to allow easy overriding of the
# fontconfig configuration files.
priority = 5;
};
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- This configuation is intentionally left empty in order to
override any other font package that may wish to set up an
alias for the Microsoft @fontname@ font. If you actually do
want to have the alias then please change the priority of that
package; see the Nix manual page for nix-env for details. -->
</fontconfig>