Merge system/fontdir.nix and system/fonts.nix into a new configuration file.
svn path=/nixos/branches/fix-style/; revision=13686
This commit is contained in:
parent
e4b0134a43
commit
d745c21aab
@ -173,15 +173,6 @@ let
|
|||||||
'';
|
'';
|
||||||
target = "ssmtp/ssmtp.conf";
|
target = "ssmtp/ssmtp.conf";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Configuration file for fontconfig used to locate
|
|
||||||
# (X11) client-rendered fonts.
|
|
||||||
++ optional config.fonts.enableFontConfig {
|
|
||||||
source = pkgs.makeFontsConf {
|
|
||||||
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
|
||||||
};
|
|
||||||
target = "fonts/fonts.conf";
|
|
||||||
}
|
|
||||||
|
|
||||||
# LDAP configuration.
|
# LDAP configuration.
|
||||||
++ optional config.users.ldap.enable {
|
++ optional config.users.ldap.enable {
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
args : with args; with builderDefs;
|
|
||||||
let localDefs = builderDefs.passthru.function rec {
|
|
||||||
src = "";/* put a fetchurl here */
|
|
||||||
|
|
||||||
buildInputs = [mkfontdir mkfontscale ttmkfdir];
|
|
||||||
configureFlags = [];
|
|
||||||
fontDirs = import ./fonts.nix {inherit pkgs config;};
|
|
||||||
installPhase = FullDepEntry ("
|
|
||||||
list='';
|
|
||||||
for i in ${toString fontDirs} ; do
|
|
||||||
if [ -d \$i/ ]; then
|
|
||||||
list=\"\$list \$i\";
|
|
||||||
fi;
|
|
||||||
done
|
|
||||||
list=\$(find \$list -name fonts.dir);
|
|
||||||
fontDirs='';
|
|
||||||
for i in \$list ; do
|
|
||||||
fontDirs=\"\$fontDirs \$(dirname \$i)\";
|
|
||||||
done;
|
|
||||||
mkdir -p \$out/share/X11-fonts/;
|
|
||||||
for i in \$(find \$fontDirs -type f -o -type l); do
|
|
||||||
j=\${i##*/}
|
|
||||||
if ! test -e \$out/share/X11-fonts/\${j}; then
|
|
||||||
ln -s \$i \$out/share/X11-fonts/\${j};
|
|
||||||
fi;
|
|
||||||
done;
|
|
||||||
cd \$out/share/X11-fonts/
|
|
||||||
rm fonts.dir
|
|
||||||
rm fonts.scale
|
|
||||||
rm fonts.alias
|
|
||||||
mkfontdir
|
|
||||||
mkfontscale
|
|
||||||
mv fonts.scale fonts.scale.old
|
|
||||||
mv fonts.dir fonts.dir.old
|
|
||||||
ttmkfdir
|
|
||||||
cat fonts.scale.old >> fonts.scale
|
|
||||||
cat fonts.dir.old >> fonts.dir
|
|
||||||
rm fonts.dir.old
|
|
||||||
rm fonts.scale.old
|
|
||||||
cat \$( find ${fontalias}/ -name fonts.alias) >fonts.alias
|
|
||||||
") ["minInit" "addInputs"];
|
|
||||||
};
|
|
||||||
in with localDefs;
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "X11-fonts";
|
|
||||||
builder = writeScript (name + "-builder")
|
|
||||||
(textClosure localDefs
|
|
||||||
[installPhase doForceShare doPropagate]);
|
|
||||||
meta = {
|
|
||||||
description = "
|
|
||||||
Directory to contain all X11 fonts requested.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
}
|
|
197
system/fonts.nix
197
system/fonts.nix
@ -1,27 +1,178 @@
|
|||||||
{pkgs, config}:
|
{pkgs, config, ...}:
|
||||||
|
|
||||||
[
|
###### interface
|
||||||
# - the user's .fonts directory
|
let
|
||||||
"~/.fonts"
|
inherit (pkgs.lib) mkOption;
|
||||||
# - the user's current profile
|
|
||||||
"~/.nix-profile/lib/X11/fonts"
|
|
||||||
"~/.nix-profile/share/fonts"
|
|
||||||
# - the default profile
|
|
||||||
"/nix/var/nix/profiles/default/lib/X11/fonts"
|
|
||||||
"/nix/var/nix/profiles/default/share/fonts"
|
|
||||||
# - a few statically built locations
|
|
||||||
pkgs.xorg.fontbhttf
|
|
||||||
pkgs.xorg.fontbhlucidatypewriter100dpi
|
|
||||||
pkgs.xorg.fontbhlucidatypewriter75dpi
|
|
||||||
pkgs.ttf_bitstream_vera
|
|
||||||
pkgs.freefont_ttf
|
|
||||||
pkgs.xorg.fontbh100dpi
|
|
||||||
pkgs.xorg.fontmiscmisc
|
|
||||||
pkgs.xorg.fontcursormisc
|
|
||||||
]
|
|
||||||
|
|
||||||
++ pkgs.lib.optional config.fonts.enableCoreFonts pkgs.corefonts
|
options = {
|
||||||
|
|
||||||
++ pkgs.lib.optional config.fonts.enableGhostscriptFonts "${pkgs.ghostscript}/share/ghostscript/fonts"
|
fonts = {
|
||||||
|
|
||||||
++ config.fonts.extraFonts
|
enableFontConfig = mkOption { # !!! should be enableFontconfig
|
||||||
|
default = true;
|
||||||
|
description = "
|
||||||
|
If enabled, a Fontconfig configuration file will be built
|
||||||
|
pointing to a set of default fonts. If you don't care about
|
||||||
|
running X11 applications or any other program that uses
|
||||||
|
Fontconfig, you can turn this option off and prevent a
|
||||||
|
dependency on all those fonts.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
# should be move elsewhere.
|
||||||
|
enableGhostscriptFonts = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Whether to add the fonts provided by Ghostscript (such as
|
||||||
|
various URW fonts and the ``Base-14'' Postscript fonts) to the
|
||||||
|
list of system fonts, making them available to X11
|
||||||
|
applications.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableFontDir = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Whether to create a directory with links to all fonts in share -
|
||||||
|
so user can configure vncserver script one time (I mean per-user
|
||||||
|
vncserver, so global service is not a good solution).
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: find another name for it.
|
||||||
|
fonts = mkOption {
|
||||||
|
default = [
|
||||||
|
# - the user's .fonts directory
|
||||||
|
"~/.fonts"
|
||||||
|
# - the user's current profile
|
||||||
|
"~/.nix-profile/lib/X11/fonts"
|
||||||
|
"~/.nix-profile/share/fonts"
|
||||||
|
# - the default profile
|
||||||
|
"/nix/var/nix/profiles/default/lib/X11/fonts"
|
||||||
|
"/nix/var/nix/profiles/default/share/fonts"
|
||||||
|
];
|
||||||
|
description = "
|
||||||
|
List of primary font paths.
|
||||||
|
";
|
||||||
|
apply = list: list ++ [
|
||||||
|
# - a few statically built locations
|
||||||
|
pkgs.xorg.fontbhttf
|
||||||
|
pkgs.xorg.fontbhlucidatypewriter100dpi
|
||||||
|
pkgs.xorg.fontbhlucidatypewriter75dpi
|
||||||
|
pkgs.ttf_bitstream_vera
|
||||||
|
pkgs.freefont_ttf
|
||||||
|
pkgs.xorg.fontbh100dpi
|
||||||
|
pkgs.xorg.fontmiscmisc
|
||||||
|
pkgs.xorg.fontcursormisc
|
||||||
|
]
|
||||||
|
++ pkgs.lib.optional config.fonts.enableCoreFonts pkgs.corefonts
|
||||||
|
++ pkgs.lib.optional config.fonts.enableGhostscriptFonts "${pkgs.ghostscript}/share/ghostscript/fonts"
|
||||||
|
++ config.fonts.extraFonts;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraFonts = mkOption {
|
||||||
|
default = [];
|
||||||
|
description = "
|
||||||
|
List of additional fonts.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableCoreFonts = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "
|
||||||
|
Whether to include MS Core Fonts (redistributable, but only verbatim).
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
let
|
||||||
|
inherit (pkgs) builderDefs ttmkfdir;
|
||||||
|
inherit (pkgs.xorg) mkfontdir mkfontscale fontalias;
|
||||||
|
|
||||||
|
fontDirs = config.fonts.fonts;
|
||||||
|
|
||||||
|
|
||||||
|
localDefs = with builderDefs; builderDefs.passthru.function rec {
|
||||||
|
src = "";/* put a fetchurl here */
|
||||||
|
|
||||||
|
buildInputs = [mkfontdir mkfontscale ttmkfdir];
|
||||||
|
configureFlags = [];
|
||||||
|
inherit fontDirs;
|
||||||
|
installPhase = FullDepEntry ("
|
||||||
|
list='';
|
||||||
|
for i in ${toString fontDirs} ; do
|
||||||
|
if [ -d \$i/ ]; then
|
||||||
|
list=\"\$list \$i\";
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
list=\$(find \$list -name fonts.dir);
|
||||||
|
fontDirs='';
|
||||||
|
for i in \$list ; do
|
||||||
|
fontDirs=\"\$fontDirs \$(dirname \$i)\";
|
||||||
|
done;
|
||||||
|
mkdir -p \$out/share/X11-fonts/;
|
||||||
|
for i in \$(find \$fontDirs -type f -o -type l); do
|
||||||
|
j=\${i##*/}
|
||||||
|
if ! test -e \$out/share/X11-fonts/\${j}; then
|
||||||
|
ln -s \$i \$out/share/X11-fonts/\${j};
|
||||||
|
fi;
|
||||||
|
done;
|
||||||
|
cd \$out/share/X11-fonts/
|
||||||
|
rm fonts.dir
|
||||||
|
rm fonts.scale
|
||||||
|
rm fonts.alias
|
||||||
|
mkfontdir
|
||||||
|
mkfontscale
|
||||||
|
mv fonts.scale fonts.scale.old
|
||||||
|
mv fonts.dir fonts.dir.old
|
||||||
|
ttmkfdir
|
||||||
|
cat fonts.scale.old >> fonts.scale
|
||||||
|
cat fonts.dir.old >> fonts.dir
|
||||||
|
rm fonts.dir.old
|
||||||
|
rm fonts.scale.old
|
||||||
|
cat \$( find ${fontalias}/ -name fonts.alias) >fonts.alias
|
||||||
|
") ["minInit" "addInputs"];
|
||||||
|
};
|
||||||
|
|
||||||
|
x11Fonts = with localDefs; stdenv.mkDerivation rec {
|
||||||
|
name = "X11-fonts";
|
||||||
|
builder = writeScript (name + "-builder")
|
||||||
|
(textClosure localDefs
|
||||||
|
[installPhase doForceShare doPropagate]);
|
||||||
|
meta = {
|
||||||
|
description = "
|
||||||
|
Directory to contain all X11 fonts requested.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit (pkgs.lib) mkIf;
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
require = [
|
||||||
|
options
|
||||||
|
];
|
||||||
|
|
||||||
|
system = {
|
||||||
|
build = {
|
||||||
|
inherit x11Fonts;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
# Configuration file for fontconfig used to locate
|
||||||
|
# (X11) client-rendered fonts.
|
||||||
|
etc = mkIf config.fonts.enableFontConfig [{
|
||||||
|
source = pkgs.makeFontsConf {
|
||||||
|
fontDirectories = config.fonts.fonts;
|
||||||
|
};
|
||||||
|
target = "fonts/fonts.conf";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -2271,56 +2271,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
|
|
||||||
enableFontConfig = mkOption { # !!! should be enableFontconfig
|
|
||||||
default = true;
|
|
||||||
description = "
|
|
||||||
If enabled, a Fontconfig configuration file will be built
|
|
||||||
pointing to a set of default fonts. If you don't care about
|
|
||||||
running X11 applications or any other program that uses
|
|
||||||
Fontconfig, you can turn this option off and prevent a
|
|
||||||
dependency on all those fonts.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableGhostscriptFonts = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Whether to add the fonts provided by Ghostscript (such as
|
|
||||||
various URW fonts and the ``Base-14'' Postscript fonts) to the
|
|
||||||
list of system fonts, making them available to X11
|
|
||||||
applications.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableFontDir = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Whether to create a directory with links to all fonts in share -
|
|
||||||
so user can configure vncserver script one time (I mean per-user
|
|
||||||
vncserver, so global service is not a good solution).
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraFonts = mkOption {
|
|
||||||
default = [];
|
|
||||||
merge = backwardPkgsFunListMerge;
|
|
||||||
description = "
|
|
||||||
Function, returning list of additional fonts.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableCoreFonts = mkOption {
|
|
||||||
default = true;
|
|
||||||
description = "
|
|
||||||
Whether to include MS Core Fonts (redistributable, but only verbatim).
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
i18n = {
|
i18n = {
|
||||||
|
|
||||||
defaultLocale = mkOption {
|
defaultLocale = mkOption {
|
||||||
@ -2475,6 +2425,9 @@ in
|
|||||||
(import ../upstart-jobs/cron.nix)
|
(import ../upstart-jobs/cron.nix)
|
||||||
(import ../upstart-jobs/cron/locate.nix)
|
(import ../upstart-jobs/cron/locate.nix)
|
||||||
|
|
||||||
|
# fonts
|
||||||
|
(import ../system/fonts.nix)
|
||||||
|
|
||||||
# sound
|
# sound
|
||||||
(import ../upstart-jobs/alsa.nix)
|
(import ../upstart-jobs/alsa.nix)
|
||||||
];
|
];
|
||||||
|
@ -73,11 +73,7 @@ rec {
|
|||||||
|
|
||||||
|
|
||||||
# Font aggregation
|
# Font aggregation
|
||||||
fontDir = import ./fontdir.nix {
|
fontDir = config.system.build.x11Fonts;
|
||||||
inherit config pkgs;
|
|
||||||
inherit (pkgs) builderDefs ttmkfdir;
|
|
||||||
inherit (pkgs.xorg) mkfontdir mkfontscale fontalias;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# The wrapper setuid programs (since we can't have setuid programs
|
# The wrapper setuid programs (since we can't have setuid programs
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
let
|
let
|
||||||
kernelPackages = config.boot.kernelPackages;
|
kernelPackages = config.boot.kernelPackages;
|
||||||
# List of font directories.
|
# List of font directories.
|
||||||
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
fontDirectories = config.fonts.fonts;
|
||||||
|
|
||||||
inherit (pkgs.lib) mkOption;
|
inherit (pkgs.lib) mkOption;
|
||||||
|
|
||||||
@ -759,6 +759,9 @@ mkIf cfg.enable {
|
|||||||
# environment.etc
|
# environment.etc
|
||||||
(import ../etc/default.nix)
|
(import ../etc/default.nix)
|
||||||
|
|
||||||
|
# fonts.fonts
|
||||||
|
(import ../system/fonts.nix)
|
||||||
|
|
||||||
# boot.extraModulePackages
|
# boot.extraModulePackages
|
||||||
# security.extraSetuidPrograms
|
# security.extraSetuidPrograms
|
||||||
# environment.extraPackages
|
# environment.extraPackages
|
||||||
|
Loading…
x
Reference in New Issue
Block a user