92 lines
2.3 KiB
Nix
92 lines
2.3 KiB
Nix
{ 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="$otb/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
|
|
'';
|
|
|
|
outputs = [ "out" "otb" ];
|
|
|
|
meta = with stdenv.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 ];
|
|
};
|
|
|
|
}
|