nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

90 lines
2.3 KiB
Nix

{ lib, stdenv, fetchurl, perl
, bdftopcf, bdf2psf, mkfontdir
, fonttosfnt
, targetsDat ? null
, variantsDat ? null
}:
stdenv.mkDerivation rec {
pname = "uw-ttyp0";
version = "1.3";
src = fetchurl {
url = "https://people.mpi-inf.mpg.de/~uwe/misc/${pname}/${pname}-${version}.tar.gz";
sha256 = "1vp053bwv8sr40p3pn4sjaiq570zp7knh99z9ynk30v7ml4cz2i8";
};
# remove for version >1.3
patches = [ ./determinism.patch ];
nativeBuildInputs = [ perl bdftopcf bdf2psf fonttosfnt mkfontdir ];
# configure sizes, encodings and variants
preConfigure =
(if targetsDat == null
then ''
cat << EOF > TARGETS.dat
SIZES = 11 12 13 14 15 16 17 18 22 \
11b 12b 13b 14b 15b 16b 17b 18b 22b 15i 16i 17i 18i
ENCODINGS = uni
EOF
''
else ''cp "${targetsDat}" TARGETS.dat'') +
(if variantsDat == null
then ''
cat << EOF > VARIANTS.dat
COPYTO AccStress PApostropheAscii
COPYTO PAmComma AccGraveAscii
COPYTO Digit0Slashed Digit0
EOF
''
else ''cp "${variantsDat}" VARIANTS.dat'');
postBuild = ''
# convert bdf fonts to psf
build=$(pwd)
mkdir {psf,otb}
cd ${bdf2psf}/share/bdf2psf
for i in $build/genbdf/*.bdf; do
name="$(basename $i .bdf)"
bdf2psf \
--fb "$i" standard.equivalents \
ascii.set+useful.set+linux.set 512 \
"$build/psf/$name.psf"
done
cd -
# convert unicode bdf fonts to otb
for i in $build/genbdf/*-uni.bdf; do
name="$(basename $i .bdf)"
fonttosfnt -v -o "$build/otb/$name.otb" "$i"
done
'';
postInstall = ''
# install psf fonts
fontDir="$out/share/consolefonts"
install -m 644 -D psf/*.psf -t "$fontDir"
# install otb fonts
fontDir="$out/share/fonts/X11/misc"
install -m 644 -D otb/*.otb -t "$fontDir"
mkfontdir "$fontDir"
'';
# Nix with multiple outputs adds several flags
# that the ./configure script doesn't understand.
configurePhase = ''
runHook preConfigure
./configure --prefix="$out"
runHook postConfigure
'';
meta = with lib; {
description = "Monospace bitmap screen fonts for X11";
homepage = "https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/";
license = with licenses; [ free mit ];
maintainers = with maintainers; [ rnhmjoj ];
};
}