nixpkgs/pkgs/by-name/xq/xquartz/system-fonts.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

35 lines
880 B
Nix

{ stdenv, xorg, fontDirs }:
stdenv.mkDerivation {
name = "xquartz-system-fonts";
buildInputs = [
xorg.mkfontdir xorg.mkfontscale
];
buildCommand = ''
source $stdenv/setup
for i in ${toString fontDirs} ; do
if [ -d $i/ ]; then
list="$list $i";
fi;
done
list=$(find $list -name fonts.dir -o -name '*.ttf' -o -name '*.otf');
fontDirs=''';
for i in $list ; do
fontDirs="$fontDirs $(dirname $i)";
done;
mkdir -p $out/share/X11-fonts/;
find $fontDirs -type f -o -type l | while read i; do
j="''${i##*/}"
if ! test -e "$out/share/X11-fonts/''${j}"; then
cp "$i" "$out/share/X11-fonts/''${j}";
fi;
done;
cd $out/share/X11-fonts/
rm -f fonts.dir fonts.scale fonts.alias
mkfontdir
mkfontscale
cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias
'';
}