diff options
Diffstat (limited to 'nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix')
-rw-r--r-- | nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix new file mode 100644 index 000000000000..a3c3f7b68aa7 --- /dev/null +++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix @@ -0,0 +1,90 @@ +{ 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 ]; + }; + +} |