Blame a2ps.spec

Bernhard M. Wiedemann 7eefe3
#
Bernhard M. Wiedemann 7eefe3
# spec file for package a2ps
Bernhard M. Wiedemann 7eefe3
#
Bernhard M. Wiedemann 7eefe3
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
Bernhard M. Wiedemann 7eefe3
#
Bernhard M. Wiedemann 7eefe3
# All modifications and additions to the file contributed by third parties
Bernhard M. Wiedemann 7eefe3
# remain the property of their copyright owners, unless otherwise agreed
Bernhard M. Wiedemann 7eefe3
# upon. The license for this file, and modifications and additions to the
Bernhard M. Wiedemann 7eefe3
# file, is the same license as for the pristine package itself (unless the
Bernhard M. Wiedemann 7eefe3
# license for the pristine package is not an Open Source License, in which
Bernhard M. Wiedemann 7eefe3
# case the license is the MIT License). An "Open Source License" is a
Bernhard M. Wiedemann 7eefe3
# license that conforms to the Open Source Definition (Version 1.9)
Bernhard M. Wiedemann 7eefe3
# published by the Open Source Initiative.
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
# Please submit bugfixes or comments via https://bugs.opensuse.org/
Bernhard M. Wiedemann 7eefe3
#
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
Name:           a2ps
Bernhard M. Wiedemann 7eefe3
Version:        4.14
Bernhard M. Wiedemann 7eefe3
Release:        0
Bernhard M. Wiedemann 7eefe3
Summary:        Tool to convert ASCII/Latin Text into PostScript
Bernhard M. Wiedemann 7eefe3
License:        GPL-3.0-or-later
Bernhard M. Wiedemann 7eefe3
Url:            http://www.gnu.org/software/a2ps/a2ps.html
Bernhard M. Wiedemann 7eefe3
Source0:        http://ftp.gnu.org/gnu/a2ps/%{name}-%{version}.tar.gz
Bernhard M. Wiedemann 7eefe3
Source1:        http://ftp.gnu.org/gnu/a2ps/%{name}-%{version}.tar.gz.sig
Bernhard M. Wiedemann 7eefe3
Source2:        %{name}.keyring
Bernhard M. Wiedemann 7eefe3
Source3:        a2ps-ko.po
Bernhard M. Wiedemann 7eefe3
Source4:        a2ps-open
Bernhard M. Wiedemann 7eefe3
Source5:        a2ps-4.14-manuals.diff
Bernhard M. Wiedemann 7eefe3
Patch0:         a2ps-4.14.diff
Bernhard M. Wiedemann 7eefe3
Patch1:         a2ps-4.13-security.patch
Bernhard M. Wiedemann 7eefe3
Patch2:         a2ps-4.14-ogonkify.patch
Bernhard M. Wiedemann 7eefe3
Patch3:         a2ps-4.14-tempfile.patch
Bernhard M. Wiedemann 7eefe3
Patch4:         a2ps-4.14-automake.patch
Bernhard M. Wiedemann 7eefe3
Patch6:         a2ps-4.13-include.patch
Bernhard M. Wiedemann 7eefe3
Patch7:         a2ps-4.14-acroread.patch
Bernhard M. Wiedemann 7eefe3
Patch8:         a2ps-4.13-base.patch
Bernhard M. Wiedemann 7eefe3
Patch9:         a2ps-4.13-utf8.patch
Bernhard M. Wiedemann 7eefe3
Patch10:        a2ps-4.13-types.patch
Bernhard M. Wiedemann 7eefe3
Patch11:        a2ps-4.13-psgen.patch
Bernhard M. Wiedemann 7eefe3
Patch12:        a2ps-4.14-iswprint.patch
Bernhard M. Wiedemann 7eefe3
Patch13:        a2ps-4.14-linker.patch
Bernhard M. Wiedemann 7eefe3
# PATCH-FIX-USTREAM Bug 871097 - CVE-2014-0466: a2ps: fixps does not use -dSAFER
Bernhard M. Wiedemann 7eefe3
Patch14:        CVE-2014-0466.diff
Bernhard M. Wiedemann 7eefe3
Patch15:        a2ps-4.14-gperf.patch
Bernhard M. Wiedemann 7eefe3
# PATCH-FIX-SUSE Bug 955194 - CVE-2015-8107: CVE-2015-8107 - a2ps(gnu) v4.14 format string vulnerability
Bernhard M. Wiedemann 7eefe3
Patch16:        a2ps-4.14-bnc955194.patch
Bernhard M. Wiedemann 7eefe3
Patch17:        a2ps-buildcompare.patch
Bernhard M. Wiedemann 7eefe3
Patch18:        reproducible.patch
Bernhard M. Wiedemann 06befe
# PATCH-FIX-SUSE New texinfo 6.7 does not like KOI8-R endcoded characters within UTF-8 environment
Bernhard M. Wiedemann 06befe
Patch19:        a2ps-4.14-texinfo-6.7.patch
Bernhard M. Wiedemann 7eefe3
BuildRequires:  autoconf
Bernhard M. Wiedemann 7eefe3
BuildRequires:  automake
Bernhard M. Wiedemann 7eefe3
BuildRequires:  bison
Bernhard M. Wiedemann 7eefe3
BuildRequires:  emacs-nox
Bernhard M. Wiedemann 7eefe3
BuildRequires:  flex
Bernhard M. Wiedemann 7eefe3
BuildRequires:  ghostscript-fonts-std
Bernhard M. Wiedemann 7eefe3
BuildRequires:  gv
Bernhard M. Wiedemann 7eefe3
BuildRequires:  psutils
Bernhard M. Wiedemann 7eefe3
BuildRequires:  texlive-latex
Bernhard M. Wiedemann 7eefe3
BuildRequires:  timezone
Bernhard M. Wiedemann 7eefe3
Requires:       file
Bernhard M. Wiedemann 7eefe3
Requires:       ghostscript-fonts-std
Bernhard M. Wiedemann 7eefe3
Requires:       glibc
Bernhard M. Wiedemann 7eefe3
Requires:       sed
Bernhard M. Wiedemann 7eefe3
Requires:       w3m
Bernhard M. Wiedemann 7eefe3
Requires:       wdiff
Bernhard M. Wiedemann 7eefe3
Requires(post): %{install_info_prereq}
Bernhard M. Wiedemann 7eefe3
Requires(preun): %{install_info_prereq}
Bernhard M. Wiedemann 7eefe3
Suggests:       ImageMagick
Bernhard M. Wiedemann 7eefe3
Suggests:       acroread
Bernhard M. Wiedemann 7eefe3
Suggests:       gv
Bernhard M. Wiedemann 7eefe3
Suggests:       psutils
Bernhard M. Wiedemann 7eefe3
Suggests:       texinfo
Bernhard M. Wiedemann 7eefe3
Suggests:       texlive-latex
Bernhard M. Wiedemann 7eefe3
Provides:       a2ps-bin
Bernhard M. Wiedemann 7eefe3
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Bernhard M. Wiedemann 7eefe3
%if 0%{?suse_version} > 1220
Bernhard M. Wiedemann 7eefe3
BuildRequires:  gperf
Bernhard M. Wiedemann 7eefe3
BuildRequires:  groff
Bernhard M. Wiedemann 7eefe3
BuildRequires:  makeinfo
Bernhard M. Wiedemann 7eefe3
BuildRequires:  texi2html
Bernhard M. Wiedemann 7eefe3
BuildRequires:  texinfo
Bernhard M. Wiedemann 7eefe3
%endif
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%description
Bernhard M. Wiedemann 7eefe3
a2ps converts ASCII text into PostScript. This feature is used by
Bernhard M. Wiedemann 7eefe3
apsfilter, for example, to pretty-print ASCII text.
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
Warning: a2ps is not able to convert complex Unicode (UTF-8) text to
Bernhard M. Wiedemann 7eefe3
PostScript.  Only language text which can be converted from UTF-8 to
Bernhard M. Wiedemann 7eefe3
Latin encodings are supported.
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%package -n liba2ps1
Bernhard M. Wiedemann 7eefe3
Summary:        Library to convert ASCII/Latin text into PostScript
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%description -n liba2ps1
Bernhard M. Wiedemann 7eefe3
liba2ps converts ASCII text into PostScript.
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%package     -n a2ps-devel
Bernhard M. Wiedemann 7eefe3
Summary:        Library and header file for the interface of a2ps
Bernhard M. Wiedemann 7eefe3
Requires:       glibc-devel
Bernhard M. Wiedemann 7eefe3
Requires:       liba2ps1 = %{version}
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%description -n a2ps-devel
Bernhard M. Wiedemann 7eefe3
a2ps converts ASCII text into PostScript. This feature is used by
Bernhard M. Wiedemann 7eefe3
apsfilter, for example, to pretty-print ASCII text.
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
Warning: a2ps is not able to convert complex Unicode (UTF-8) text to
Bernhard M. Wiedemann 7eefe3
PostScript.  Only language text which can be converted from UTF-8 to
Bernhard M. Wiedemann 7eefe3
Latin encodings are supported.
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%prep
Bernhard M. Wiedemann 7eefe3
%setup -q -n a2ps-4.14
Bernhard M. Wiedemann 7eefe3
touch -r configure.in .ref
Bernhard M. Wiedemann 7eefe3
%patch1   -b .security
Bernhard M. Wiedemann 7eefe3
%patch2  -p1
Bernhard M. Wiedemann 7eefe3
%patch3  -p1
Bernhard M. Wiedemann 7eefe3
%patch4   -b .norefresh
Bernhard M. Wiedemann 7eefe3
%patch6  -p1 -b .incld
Bernhard M. Wiedemann 7eefe3
%ifarch %ix86 x86_64
Bernhard M. Wiedemann 7eefe3
%patch7 -p1
Bernhard M. Wiedemann 7eefe3
%endif
Bernhard M. Wiedemann 7eefe3
%patch8   -b .base
Bernhard M. Wiedemann 7eefe3
%patch9   -b .utf8
Bernhard M. Wiedemann 7eefe3
%patch10  -b .types
Bernhard M. Wiedemann 7eefe3
%patch11  -b .psgen
Bernhard M. Wiedemann 7eefe3
%patch12  -b .iswprint
Bernhard M. Wiedemann 7eefe3
%patch13 -p1
Bernhard M. Wiedemann 7eefe3
%patch14 -p1
Bernhard M. Wiedemann 7eefe3
%patch15 -p1
Bernhard M. Wiedemann 7eefe3
%patch16 -p0
Bernhard M. Wiedemann 7eefe3
%patch17 -p1
Bernhard M. Wiedemann 7eefe3
%patch0   -b .p0
Bernhard M. Wiedemann 7eefe3
%patch18 -p1
Bernhard M. Wiedemann 06befe
%patch19 -p0 -b .p19
Bernhard M. Wiedemann 7eefe3
cp -f %{SOURCE3} po/ko.po
Bernhard M. Wiedemann 7eefe3
find -type f | grep -vE '(parseppd|parsessh).y' | xargs \
Bernhard M. Wiedemann 7eefe3
sed -ri 's/59 Temple Place(,| -) Suite 330/51 Franklin Street, Fifth Floor/;s/02111-1307/02110-1301/'
Bernhard M. Wiedemann 7eefe3
touch -r .ref configure.in
Bernhard M. Wiedemann 7eefe3
find -name Makefile.in | xargs touch
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%build
Bernhard M. Wiedemann 7eefe3
 #XXX: ugly hack; necessary??
Bernhard M. Wiedemann 7eefe3
 #YYY: Not a hack and it is necessary!!
Bernhard M. Wiedemann 7eefe3
 #     The a2ps source is much to old to (re)run auto conf tools
Bernhard M. Wiedemann 7eefe3
 cp -p %{_datadir}/automake-*/config.{guess,sub} auxdir/
Bernhard M. Wiedemann 7eefe3
 cp -p /bin/true auxdir/missing
Bernhard M. Wiedemann 7eefe3
 export AUTOMAKE=/bin/true
Bernhard M. Wiedemann 7eefe3
 export ACLOCAL=/bin/true
Bernhard M. Wiedemann 7eefe3
 export AUTOCONF=/bin/true
Bernhard M. Wiedemann 7eefe3
 export AUTOHEADER=/bin/true
Bernhard M. Wiedemann 7eefe3
 export PATH=$PWD:$PATH
Bernhard M. Wiedemann 7eefe3
 export CFLAGS="%{optflags} -D_GNU_SOURCE $(getconf LFS_CFLAGS) -funroll-loops -Wall -pipe -fstack-protector -fPIE"
Bernhard M. Wiedemann 7eefe3
 export LPR=lpr
Bernhard M. Wiedemann 7eefe3
 export CC=gcc
Bernhard M. Wiedemann 7eefe3
 export TZ=UTC
Bernhard M. Wiedemann 7eefe3
%configure --enable-shared --disable-static --with-medium=LC_PAPER \
Bernhard M. Wiedemann 7eefe3
	--with-encoding=LC_CTYPE
Bernhard M. Wiedemann 7eefe3
 con=""
Bernhard M. Wiedemann 7eefe3
 pushd contrib
Bernhard M. Wiedemann 7eefe3
   for m4 in *.m4; do
Bernhard M. Wiedemann 7eefe3
     in=${m4%.*}.in
Bernhard M. Wiedemann 7eefe3
     rm -f ${in} ${m4%.*}
Bernhard M. Wiedemann 7eefe3
     con="$con ${in##*/}"
Bernhard M. Wiedemann 7eefe3
   done
Bernhard M. Wiedemann 7eefe3
 popd
Bernhard M. Wiedemann 7eefe3
 make -C contrib/ ${con} LDFLAGS="-pie"
Bernhard M. Wiedemann 7eefe3
 sh ./config.status
Bernhard M. Wiedemann 7eefe3
 # the build system is awful so we need to build with -B and avoid parallelism
Bernhard M. Wiedemann 7eefe3
 make PSFONT_PATH=%{_datadir}/ghostscript/fonts LDFLAGS="-pie" MAKEINFO='makeinfo --force' -B
Bernhard M. Wiedemann 7eefe3
 pushd doc
Bernhard M. Wiedemann 7eefe3
   texi2html a2ps.texi
Bernhard M. Wiedemann 7eefe3
 popd
Bernhard M. Wiedemann 7eefe3
 # Run a test with UTF-8 Umlauts
Bernhard M. Wiedemann 7eefe3
 mkdir -p .root/.a2ps
Bernhard M. Wiedemann 7eefe3
 echo "This is a test text äöüßœéïçèãøæđ" > test.utf8
Bernhard M. Wiedemann 7eefe3
 ln -sf $PWD/ps/*		.root/.a2ps/
Bernhard M. Wiedemann 7eefe3
 ln -sf $PWD/afm/*		.root/.a2ps/
Bernhard M. Wiedemann 7eefe3
 ln -sf $PWD/encoding/*		.root/.a2ps/
Bernhard M. Wiedemann 7eefe3
 ln -sf $PWD/ogonkify/*		.root/.a2ps/
Bernhard M. Wiedemann 7eefe3
 ln -sf $PWD/ppd/*		.root/.a2ps/
Bernhard M. Wiedemann 7eefe3
 ln -sf $PWD/sheets/*		.root/.a2ps/
Bernhard M. Wiedemann 7eefe3
 A2PS_CONFIG=$PWD%{_sysconfdir}/a2ps.cfg \
Bernhard M. Wiedemann 7eefe3
        HOME=$PWD/.root \
Bernhard M. Wiedemann 7eefe3
    LC_CTYPE=en_US.UTF-8 ./src/a2ps --output=test.latin test.utf8
Bernhard M. Wiedemann 7eefe3
 grep '(This is a test text' test.latin | iconv -f latin1 -t utf8
Bernhard M. Wiedemann 7eefe3
 chmod u+rw,g+r,o+r man/*.1
Bernhard M. Wiedemann 7eefe3
 cp -p man/a2ps.1 man/a2ps.1.backup
Bernhard M. Wiedemann 7eefe3
 patch --reject-format=unified --quoting-style=literal -f -p0 -F0 < %{S:5} || :
Bernhard M. Wiedemann 7eefe3
 if test -e man/a2ps.1.rej ; then
Bernhard M. Wiedemann 7eefe3
    cat man/a2ps.1.rej
Bernhard M. Wiedemann 7eefe3
    exit 1
Bernhard M. Wiedemann 7eefe3
 else
Bernhard M. Wiedemann 7eefe3
    sed -ri '/^\.B lt-a2ps/{s/lt-(a2ps)/\1/}' man/a2ps.1 || :
Bernhard M. Wiedemann 7eefe3
 fi
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%install
Bernhard M. Wiedemann 7eefe3
 %make_install PSFONT_PATH=%{_datadir}/ghostscript/fonts
Bernhard M. Wiedemann 7eefe3
 rm -r %{buildroot}/%{_infodir}/regex*
Bernhard M. Wiedemann 7eefe3
 rm -r %{buildroot}/%{_infodir}/dir
Bernhard M. Wiedemann 7eefe3
 %find_lang %{name}
Bernhard M. Wiedemann 7eefe3
 rm -f %{buildroot}%{_libdir}/liba2ps.la
Bernhard M. Wiedemann 7eefe3
 install -m 0755 %{SOURCE4} %{buildroot}/%{_bindir}/
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%post
Bernhard M. Wiedemann 7eefe3
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
Bernhard M. Wiedemann 7eefe3
%install_info --info-dir=%{_infodir} %{_infodir}/ogonkify.info.gz
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%preun
Bernhard M. Wiedemann 7eefe3
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
Bernhard M. Wiedemann 7eefe3
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ogonkify.info.gz
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%post   -n liba2ps1 -p /sbin/ldconfig
Bernhard M. Wiedemann 7eefe3
%postun -n liba2ps1 -p /sbin/ldconfig
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%files -f %{name}.lang
Bernhard M. Wiedemann 7eefe3
%doc AUTHORS COPYING ABOUT-NLS ChangeLog NEWS THANKS README doc/a2ps.html
Bernhard M. Wiedemann 7eefe3
%config %{_sysconfdir}/a2ps-site.cfg
Bernhard M. Wiedemann 7eefe3
%config %{_sysconfdir}/a2ps.cfg
Bernhard M. Wiedemann 7eefe3
%{_bindir}/a2ps
Bernhard M. Wiedemann 7eefe3
%{_bindir}/a2ps-open
Bernhard M. Wiedemann 7eefe3
%{_bindir}/card
Bernhard M. Wiedemann 7eefe3
%{_bindir}/composeglyphs
Bernhard M. Wiedemann 7eefe3
%{_bindir}/fixnt
Bernhard M. Wiedemann 7eefe3
%{_bindir}/fixps
Bernhard M. Wiedemann 7eefe3
%{_bindir}/ogonkify
Bernhard M. Wiedemann 7eefe3
%{_bindir}/pdiff
Bernhard M. Wiedemann 7eefe3
%{_bindir}/psmandup
Bernhard M. Wiedemann 7eefe3
%{_bindir}/psset
Bernhard M. Wiedemann 7eefe3
%{_bindir}/texi2dvi4a2ps
Bernhard M. Wiedemann 7eefe3
%{_infodir}/*.gz
Bernhard M. Wiedemann 7eefe3
%{_mandir}/man1/*.1.gz
Bernhard M. Wiedemann 7eefe3
%{_datadir}/a2ps
Bernhard M. Wiedemann 7eefe3
%{_datadir}/emacs/site-lisp/*.el
Bernhard M. Wiedemann 7eefe3
%{_datadir}/emacs/site-lisp/*.elc
Bernhard M. Wiedemann 7eefe3
%{_datadir}/ogonkify
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%files -n liba2ps1
Bernhard M. Wiedemann 7eefe3
%{_libdir}/liba2ps.so.*
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%files -n a2ps-devel
Bernhard M. Wiedemann 7eefe3
%{_includedir}/liba2ps.h
Bernhard M. Wiedemann 7eefe3
%{_libdir}/liba2ps.so
Bernhard M. Wiedemann 7eefe3
Bernhard M. Wiedemann 7eefe3
%changelog