File ghostscript-fonts-grops.spec of Package ghostscript-fonts-grops

#
# 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
openSUSE Build Service is sponsored by