ghostscript-fonts-grops/ghostscript-fonts-grops.spec

115 lines
3.9 KiB
RPMSpec
Raw Permalink Normal View History

#
# spec file for package ghostscript-fonts-grops
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: ghostscript-fonts-grops
Version: 1.22.2
Release: 0
Summary: Ghostscript fonts imported to groff for use with grops
License: GPL-2.0-only
Group: Productivity/Publishing/Troff
URL: https://www.gnu.org/software/groff/groff.html
Source: gsalias.txt
Source1: zzz-groff-gs.sh
Source2: zzz-groff-gs.csh
# In version 9.26, the ghostscript package doesn't provide a COPYING file
# anymore. So providing it:
Source3: COPYING
BuildRequires: fontforge
BuildRequires: ghostscript
BuildRequires: groff-full
%requires_eq groff
Provides: locale(groff:pl)
BuildArch: noarch
%if 0%{?suse_version} > 1320
BuildRequires: ghostscript-fonts-std
%endif
%description
A version of PostScript® driver for Groff to support characters outside ISO Latin 1 character set.
%prep
%build
%define gs_fonts %{_datadir}/ghostscript/fonts
%define gs_version %(gs --version)
%if %{lua:print(rpm.vercmp(rpm.expand("%{gs_version}"), "9.50"))} >= 0
%define import_font() ln -s -T "%{gs_fonts}/%{1}.afm" "%{2}.afm" && gs -P- -dNOSAFER -dNODISPLAY -- pfbtopfa.ps %{gs_fonts}/%{1}.pfb devps/%{1}.pfa
%else
%define import_font() ln -s -T "%{gs_fonts}/%{1}.afm" "%{2}.afm" && pfbtopfa %{gs_fonts}/%{1}.pfb devps/%{1}.pfa
%endif
%define gs_docdir %(if [ -d "%{_datadir}/ghostscript/%{gs_version}/doc" ] ; then echo "%{_datadir}/ghostscript/%{gs_version}/doc" ; else echo "%{_datadir}/doc/ghostscript/%{gs_version}"; fi)
cp %{SOURCE3} .
mkdir devps
while read fn fa
# Grops font generator expects conventional font file names;
# the substitutes provided by ghostscript must be linked accordingly.
# The link is needed only at build time.
# Ghostscript substitutes stripped fonts, full fonts must be embedded in the printout.
# Groff only knows how to embed PFA fonts.
do %{import_font $fn $fa}
done < '%{SOURCE0}'
cd devps
#ln -s -t. '%{_datadir}/groff/current/font/devps/generate'
mkdir output
mkdir generate
cp -r %{_datadir}/groff/current/font/devps/generate/* ./generate
cp %{_datadir}/groff/current/font/devps/DESC .
cp %{_datadir}/groff/current/font/devps/text.enc .
cp %{_datadir}/groff/current/font/devps/symbolsl.ps .
cp ./generate/zapfdr.sed ./generate/apfdr.sed
if [ -f %{_datadir}/groff/current/font/devps/symbolsl.afm ]; then
cp %{_datadir}/groff/current/font/devps/symbolsl.afm output/
cp %{_datadir}/groff/current/font/devps/zapfdr.afm output/
fi
cp %{_datadir}/groff/current/font/devps/freeeuro.afm .
ln -sf output/symbol.afm .
make -fgenerate/Makefile afmdir=.. \
OUTDIR=output
if [ -h symbol.afm ]; then
rm symbol.afm
for f in output/* ; do
cp ${f} .
done
fi
rm -rf output
# Register fonts to be embedded
cd ..
for f in *.afm
do pf="$(readlink "${f}")"
pf="${pf##*/}"
pf="${pf:0:-4}.pfa"
read<"devps/${pf}" decl fn ver
echo "${fn}" "${pf}"
done >>devps/download
%install
%define groff_version %(groff -v | head -n 1 | sed 's/.*\s//')
target="%{buildroot}%{_datadir}/groff/%{groff_version}/font/gs"
install -d "${target}"
mv "-t${target}" devps
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
install -c -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d
install -c -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d
%files
%license COPYING
%{_datadir}/*
%config %{_sysconfdir}/profile.d/*
%changelog