about summary refs log tree commit diff
path: root/pkgs/data
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2015-03-21 00:21:35 +0100
committerRobert Helgesson <robert@rycee.net>2015-03-21 00:33:14 +0100
commit2fcb4118196157fac635351c7bd4e15ee9019db1 (patch)
tree603f4e83b5ef4efa289fff37498276c4e8430709 /pkgs/data
parent14fc74054ba3861b7f14ad7e26011ba9fbe5cee3 (diff)
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.
Diffstat (limited to 'pkgs/data')
-rw-r--r--pkgs/data/fonts/corefonts/default.nix22
-rw-r--r--pkgs/data/fonts/corefonts/no-op.conf9
-rw-r--r--pkgs/data/fonts/vista-fonts/default.nix19
-rw-r--r--pkgs/data/fonts/vista-fonts/no-op.conf9
4 files changed, 53 insertions, 6 deletions
diff --git a/pkgs/data/fonts/corefonts/default.nix b/pkgs/data/fonts/corefonts/default.nix
index b26d3bd8c1d6f..2030fb3ab1dc2 100644
--- a/pkgs/data/fonts/corefonts/default.nix
+++ b/pkgs/data/fonts/corefonts/default.nix
@@ -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;
+  };
 }
diff --git a/pkgs/data/fonts/corefonts/no-op.conf b/pkgs/data/fonts/corefonts/no-op.conf
new file mode 100644
index 0000000000000..503e62cfa2955
--- /dev/null
+++ b/pkgs/data/fonts/corefonts/no-op.conf
@@ -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>
diff --git a/pkgs/data/fonts/vista-fonts/default.nix b/pkgs/data/fonts/vista-fonts/default.nix
index 19996f3f1a310..f3165b33ccafc 100644
--- a/pkgs/data/fonts/vista-fonts/default.nix
+++ b/pkgs/data/fonts/vista-fonts/default.nix
@@ -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;
   };
 }
diff --git a/pkgs/data/fonts/vista-fonts/no-op.conf b/pkgs/data/fonts/vista-fonts/no-op.conf
new file mode 100644
index 0000000000000..503e62cfa2955
--- /dev/null
+++ b/pkgs/data/fonts/vista-fonts/no-op.conf
@@ -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>