diff options
-rw-r--r-- | .SRCINFO | 17 | ||||
-rw-r--r-- | PKGBUILD | 24 | ||||
-rwxr-xr-x | build | 91 | ||||
-rw-r--r-- | groff-dejavu.sh | 2 |
4 files changed, 134 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..f0a8d8bc9e34 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,17 @@ +pkgbase = groff-dejavu + pkgdesc = Generates required files to use DejaVu fonts in groff. + pkgver = 0 + pkgrel = 1 + arch = any + license = GPL3 + makedepends = fontforge + depends = groff + depends = ttf-dejavu + provides = groff-dejavu + source = build + source = groff-dejavu.sh + sha256sums = SKIP + sha256sums = SKIP + +pkgname = groff-dejavu + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..5df0ade501d6 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,24 @@ +pkgname='groff-dejavu' +pkgdesc="Generates required files to use DejaVu fonts in groff." +pkgrel=1 +pkgver=0 +arch=('any') +license=('GPL3') +depends=('groff' 'ttf-dejavu') +makedepends=('fontforge') +source=('build' 'groff-dejavu.sh') +provides=('groff-dejavu') +sha256sums=('SKIP' 'SKIP') + +build () { + ./build +} + +package () { + install -d "${pkgdir}/usr/local/share" + install -d "${pkgdir}/etc/profile.d" + cp -r "${srcdir}/font" "${pkgdir}/usr/local/share/groff-dejavu" + cp "${srcdir}/groff-dejavu.sh" "${pkgdir}/etc/profile.d" +} + +# vim:set ts=2 sw=2 et: diff --git a/build b/build new file mode 100755 index 000000000000..ba642dfa2ca2 --- /dev/null +++ b/build @@ -0,0 +1,91 @@ +#!/bin/bash +output=font + +ttf=$(find /usr/share/fonts/TTF/ -name "DejaVu*") +if [ -z "$ttf" ]; then + echo "Make sure ttf-dejavu is installed" + exit -1 +fi + +if ! type fontforge >/dev/null; then + echo "Make sure 'fontforge' is installed" + exit -1; +fi + +textmap=(/usr/share/groff/*/font/devpdf/map/textmap) +if ! type afmtodit >/dev/null || ! [ -e "$textmap" ]; then + echo "Make sure 'groff' is installed" + exit -1; +fi + +if ! [ -d "$output" ]; then + mkdir $output + mkdir $output/devps + mkdir $output/devpdf +fi + +for name in $ttf; do + base_name=$(basename $name .ttf) + if ! fontforge 2>/dev/null -lang=ff -c "Open(\"$name\");Generate(\"$output/$base_name.pfa\");"; then + echo "Can't generate post-scipt font and afm description for $base_name" + echo -1 + fi + + if [[ "$base_name" =~ -BoldOblique$ ]]; then + font_name=${base_name/-BoldOblique/BI} + elif [[ "$base_name" =~ -ExtraLight$ ]]; then + font_name=${base_name/-ExtraLight/II} + elif [[ "$base_name" =~ -BoldItalic$ ]]; then + font_name=${base_name/-BoldItalic/BI} + elif [[ "$base_name" =~ -Bold$ ]]; then + font_name=${base_name/-Bold/B} + elif [[ "$base_name" =~ -Oblique$ ]]; then + font_name=${base_name/-Oblique/I} + elif [[ "$base_name" =~ -Italic$ ]]; then + font_name=${base_name/-Italic/I} + elif [[ "$base_name" =~ - ]]; then + echo "Can't gues font name from '$base_name'" + exit -1; + else + font_name=${base_name}R + fi + + if [[ "$font_name" =~ DejaVuSansMono ]]; then + font_name=${font_name/DejaVuSansMono/DeVuSaMo} + elif [[ "$font_name" =~ DejaVuSansCondensed ]]; then + font_name=${font_name/DejaVuSansCondensed/DeVuSaCo} + elif [[ "$font_name" =~ DejaVuSerifCondensed ]]; then + font_name=${font_name/DejaVuSerifCondensed/DeVuSeCo} + elif [[ "$font_name" =~ DejaVuSans ]]; then + font_name=${font_name/DejaVuSans/DeVuSa} + elif [[ "$font_name" =~ DejaVuSerif ]]; then + font_name=${font_name/DejaVuSerif/DeVuSe} + elif [[ "$font_name" =~ DejaVuMathTeXGyre ]]; then + font_name=${font_name/DejaVuMathTeXGyre/DeVuTex} + fi + + echo $font_name + + if ! afmtodit $output/$base_name.afm $textmap $font_name 2>/dev/null; then + echo "Can't generate groff font descritpion for $base_name" + echo -1 + fi + + internalname=`awk '/^internalname/{print $2;}' $font_name` + + if ! grep "\b$internalname\t" "$output/devpdf/download" &>/dev/null; then + echo -e "\t$internalname\t../$base_name.pfa" >> $output/devpdf/download + else + echo "Font with name '$internalname' already present in '$output/devpdf/download'" + fi + + if ! grep "\b$internalname\t" $output/devps/download &>/dev/null; then + echo -e "\t$internalname\t../$base_name.pfa" >> $output/devps/download + else + echo "Font with name '$internalname' already present in '$output/devps/download'" + fi + + rm $output/$base_name.afm + cp $font_name $output/devps/ + mv $font_name $output/devpdf/ +done diff --git a/groff-dejavu.sh b/groff-dejavu.sh new file mode 100644 index 000000000000..6a3db86a631f --- /dev/null +++ b/groff-dejavu.sh @@ -0,0 +1,2 @@ +#!/bin/sh +export GROFF_FONT_PATH+=/usr/local/share/groff-dejavu |