groff/groff.spec
Michal Vyskocil 320d9e9c7e - update to groff 1.22.2
* gropdf: A new driver for generating PDF output directly,
    contributed by Deri James and written in Perl
  * The -mom macro package has reached version 2.0, focusing on
    PDF output with gropdf (using the new `pdfmom' wrapper script).
    See the file`version-2.html' of the -mom documentation for a list
    of the many changes.
  * pdfmom: A new wrapper around groff that facilitates the production of PDF
    documents from files formatted with the -mom macros.
  * and a lot more, see NEWS for details
- obsoletes:
    groff-1.21-groffer-libexecdir.patch, already fixed upstream
    config-guess-sub-update.patch, dtto
    groff_1.21-6.debian.diff, replaced by
- added groff_1.22.2-2.debian.diff
- create a stripped-down version of groff usable for viewing of manual pages
- new groff-full package contains the rest of groff tools capable to work with
  images, html or pdf. It contains the devx fonts, thus obsoletes groff-devx
  it aims to fix bnc#755533 - grohtml built without pnm* tools in PATH
- gxdview.spec is removed as gxdview is built from groff-full.spec
- verify the tarball using gpg-offline - this is done in groff-full only
  to retain a limited list of dependencies for base groff

- config-guess-sub-update.patch: Update config.guess/sub for aarch64

- update license to new format

- add explicit buildrequire makeinfo

- Remove redundant tags/sections from specfile

OBS-URL: https://build.opensuse.org/package/show/M17N/groff?expand=0&rev=39
2013-05-09 09:33:29 +00:00

330 lines
11 KiB
RPMSpec

#
# spec file for package groff
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%global groff_base_only 1
Name: groff
Version: 1.22.2
Release: 0
Summary: GNU troff Document Formatting System
License: BSD-3-Clause and GPL-2.0+
Group: Productivity/Publishing/Troff
Url: http://www.gnu.org/software/groff/groff.html
Source0: ftp://ftp.gnu.org/gnu/groff/groff-%{version}.tar.gz
Source1: ftp://ftp.gnu.org/gnu/groff/groff-%{version}.tar.gz.sig
Source2: groff-full.keyring
Source3: zzz-groff.sh
Source4: zzz-groff.csh
# for file in `cat series | grep -v '^#' | grep '^[a-z]' `; do
# cat $file >> groff_1.21-6.debian.diff
# done
Patch0: groff_1.22.2-2.debian.diff
Patch1: groff-1.20.1-destbufferoverflow.patch
Patch2: groff-1.20.1-nroff-empty-LANGUAGE.patch
# obsoleted by 1.22.2 - groffer is installed to /usr/lib on 64bit
#Patch3: groff-1.21-groffer-libexecdir.patch
Patch4: groff-1.20.1-deunicode.patch
Patch5: groff-1.21-CVE-2009-5044.patch
#PATCH-FIX-OPENSUSE: splitted patch6 and patch7 from
#http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/groff/groff-1.20.1-owl-tmp.diff?rev=1.2;content-type=text%2Fplain
Patch6: groff-1.21-CVE-2009-5080.patch
Patch7: groff-1.21-CVE-2009-5081.patch
#PATCH-FIX-OPENSUSE: FATE#312586
#sent upstream http://lists.gnu.org/archive/html/bug-groff/2011-09/msg00002.html
#so they would be available on next release of groff
Patch8: 0001-locale-support-in-papersize-definition.patch
Patch9: 0002-documentation-for-the-locale-keyword.patch
# change the papersize definition to force the locale usage
# it can be supressed by /etc/papersize if needed
Patch10: groff-force-locale-usage.patch
# obsoleted by 1.22.2
#Patch11: config-guess-sub-update.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: gcc-c++
%if 0%{suse_version} > 1220
BuildRequires: makeinfo
%endif
%if %{groff_base_only}
Recommends: groff-full
%else
BuildRequires: ghostscript-library
BuildRequires: gpg-offline
BuildRequires: groff
BuildRequires: netpbm
BuildRequires: psutils
# for gxditview and X fontx
BuildRequires: xorg-x11-devel
Provides: jgroff = %{version}-%{release}
Provides: normal-groff = %{version}-%{release}
Obsoletes: jgroff < %{version}
# X fonts were moved back
Provides: groff-devx = %{version}-%{release}
Obsoletes: groff-devx <= 1.21
# requires the -base package
Requires: groff = %{version}
Requires(pre): %install_info_prereq
# for pre-grohtml and pdfroff
Requires: ghostscript-library
Requires: netpbm
Requires: psutils
%endif
%if %{groff_base_only}
%description
The groff package is a stripped-down package containing the necessary
components to read manual pages in ASCII, Latin-1, and UTF-8, plus the
PostScript device (groff's default). Users who want a full groff installation,
with the standard set of devices, fonts, macros, and documentation, should
install the groff-full package.
%else #groff_base_only
%description
The groff-full package provides aditional tools excluded from base groff
package, like grohtml, X fonts et. all.
Groff is used to "compile" man pages stored in groff or nroff format
for different output devices, for example, displaying to a screen or in
PostScript(tm) format for printing on a PostScript(tm) printer. Most
programs store their man pages in either /usr/share/man/ or
/usr/X11R6/man/.
%package -n groff-doc
Summary: HTML documentation and examples for groff
Group: Productivity/Publishing/Troff
%description -n groff-doc
The groff package provides compatible versions of troff, nroff, eqn,
tbl, and other Unix text formatting utilities.
Groff is used to "compile" man pages stored in groff or nroff format
for different output devices, for example, displaying to a screen or in
PostScript(tm) format for printing on a PostScript(tm) printer. Most
programs store their man pages in either /usr/share/man/ or
/usr/X11R6/man/.
%package -n gxditview
Summary: Ditroff Output Displayer for Groff
Group: Productivity/Publishing/Troff
Requires: groff-full = %{version}
# bnc#668254
Supplements: packageand(groff:xorg-x11-libX11)
Conflicts: jgxdview
Provides: gxdview = %{version}-%{release}
Obsoletes: gxdview < %{version}
%description -n gxditview
This version of xditview is called gxditview and has some extensions
used by the groff command. gxditview is used by groff if called with
the -X option.
%endif #groff_base_only
%prep
%if ! %{groff_base_only}
# we do a verification on non-base package in order to not add more dependencies to Base:build ...
%gpg_verify %{SOURCE1}
%endif
%setup -q -n groff-%{version}
%patch0 -p1 -b .debian
%patch1
%patch2 -p1 -b .bnc540600
# % patch3 -p1 -b .groffer-libexecdir
%patch4 -p1 -b .deunicode
%patch5 -p1 -b .CVE-2009-5044
%patch6 -p1 -b .CVE-2009-5080
%patch7 -p1
%patch8 -p1 -b .locale
%patch9 -p1 -b .locale
%patch10 -p1 -b .force-locale
# % patch11
%build
PATH=$PWD/src/roff/troff:$PWD/src/preproc/pic:$PWD/src/preproc/eqn:$PWD/src/preproc/tbl:$PWDsrc/preproc/refer:$PWD/src/preproc/soelim:$PATH
PATH=$PWD/src/roff/grog:$PWD/src/roff/groff:$PWD/src/devices/grops:$PWD/src/devices/grotty:$PWD/src/devices/grodvi:$PWD/src/devices/grohtml:$PATH
GROFF_COMMAND_PREFIX=
GROFF_FONT_PATH=$PWD
GROFF_TMAC_PATH=$PWD/tmac:$PWD/src/roff/troff
export PATH GROFF_COMMAND_PREFIX GROFF_FONT_PATH GROFF_TMAC_PATH
#
#libtoolize --force
#autoreconf --force --install
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%{configure} \
--with-appresdir=%{_datadir}/X11/app-defaults
#ulimit -c unlimited
make %{?_smp_mflags}
%if ! %{groff_base_only}
#pushd doc
# make %{?_smp_mflags}
# makeinfo groff.texinfo
#popd
%endif
%install
%if %{groff_base_only}
install -d -m 0755 %{buildroot}%{_bindir}
install -d -m 0755 %{buildroot}%{_mandir}/man1
install -d -m 0755 %{buildroot}%{_datadir}/%{name}/%{version}/
install -d -m 0755 %{buildroot}%{_datadir}/%{name}/%{version}/font/
install -d -m 0755 %{buildroot}%{_datadir}/%{name}/%{version}/tmac/
install -d -m 0755 %{buildroot}%{_datadir}/%{name}/%{version}/tmac/mdoc/
%else
%{makeinstall} docdir=%{_defaultdocdir}/groff
%endif
### see Debian's groff-base.install.in ###
for BIN in eqn groff grog grops grotty neqn nroff pic preconv soelim tbl troff; do
%if %{groff_base_only}
# install binary
install -m 0755 $(find . -type f -name ${BIN}) %{buildroot}/%{_bindir}/
# install man
MAN_SOURCE=$(find src -name "${BIN}.n")
MAN_DEST="${MAN_SOURCE%.n}.1" # replace suffix .n by .1
MAN_DEST="${MAN_DEST##*/}" # remove the path/before/
install -m 0644 "${MAN_SOURCE}" "%{buildroot}%{_mandir}/man1/${MAN_DEST}"
%else
# remove binary already in groff.rpm
rm %{buildroot}/%{_bindir}/${BIN}
# remove manual already in groff.rpm
rm %{buildroot}/%{_mandir}/man1/${BIN}.*
%endif
done
%if %{groff_base_only}
# datadir
install -m 0644 src/utils/indxbib/eign %{buildroot}%{_datadir}/%{name}/%{version}/
%else
rm %{buildroot}%{_datadir}/groff/%{version}/eign
%endif
for FONT in devascii devlatin1 devps devutf8; do
%if %{groff_base_only}
cp -pr "font/${FONT}" %{buildroot}%{_datadir}/%{name}/%{version}/font/
%else
rm -r %{buildroot}%{_datadir}/groff/%{version}/font/${FONT}
%endif
done
for TMAC in an-ext.tmac an-old.tmac an.tmac andoc.tmac composite.tmac cp1047.tmac cs.tmac de.tmac den.tmac \
devtag.tmac doc.tmac doc-old.tmac eqnrc europs.tmac fr.tmac hyphen.cs hyphen.den hyphen.det \
hyphen.fr hyphen.sv hyphen.us hyphenex.cs hyphenex.det hyphenex.us ja.tmac latin1.tmac latin2.tmac \
latin5.tmac latin9.tmac man.tmac mandoc.tmac mdoc.tmac papersize.tmac pic.tmac ps.tmac psatk.tmac \
psold.tmac pspic.tmac safer.tmac sv.tmac trans.tmac troffrc troffrc-end tty-char.tmac tty.tmac \
unicode.tmac www.tmac; do
%if %{groff_base_only}
cp tmac/${TMAC} %{buildroot}%{_datadir}/%{name}/%{version}/tmac/
%else
rm %{buildroot}%{_datadir}/groff/%{version}/tmac/${TMAC}
%endif
done
%if %{groff_base_only}
install -m 0644 tmac/doc-common tmac/doc-ditroff tmac/doc-nroff tmac/doc-syms \
%{buildroot}%{_datadir}/%{name}/%{version}/tmac/mdoc/
%else
rm -rf %{buildroot}%{_datadir}/groff/%{version}/tmac/mdoc
%endif
%if %{groff_base_only}
%{__ln_s} -f current %{buildroot}%{_datadir}/%{name}/%{version}
# compat symlinks
%{__ln_s} -f eqn %{buildroot}%{_bindir}/geqn
%{__ln_s} -f tbl %{buildroot}%{_bindir}/gtbl
# install profiles to disable the use of ANSI colour sequences by default:
%{__install} -d -m 0755 %{buildroot}/%{_sysconfdir}/profile.d
%{__install} -m 644 %{SOURCE3} %{SOURCE4} %{buildroot}/%{_sysconfdir}/profile.d/
%endif #groff_base_only
%fdupes -s %{buildroot}
%if ! %{groff_base_only}
%post
%install_info --info-dir=%{_infodir} %{_infodir}/groff.info.gz
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/groff.info.gz
%endif
%if %{groff_base_only}
%files
%defattr(-,root,root)
%doc BUG-REPORT ChangeLog* COPYING FDL LICENSES MANIFEST MORE.STUFF NEWS PROBLEMS PROJECTS README REVISION VERSION
%doc %{_mandir}/man1/*
%{_bindir}/*
%config %{_sysconfdir}/profile.d/zzz-%{name}.*sh
%{_datadir}/%{name}
%else #groff_base_only
%files
%defattr(-,root,root)
%dir %{_datadir}/groff/%{version}
%doc %{_docdir}/groff
%exclude %{_docdir}/groff/html
%exclude %{_docdir}/groff/examples
%doc %{_infodir}/groff*
%doc %{_mandir}/man*/*
%exclude %{_mandir}/man1/gxditview.1*
%{_bindir}/*
%exclude %{_bindir}/gxditview
%{_datadir}/groff/%{version}/font
%{_datadir}/groff/%{version}/oldfont
%{_datadir}/groff/%{version}/pic
%{_datadir}/groff/%{version}/tmac
%{_datadir}/groff/current
%{_datadir}/groff/site-tmac
%{_libexecdir}/groff/groffer
%files -n groff-doc
%defattr(-, root, root)
%dir %{_docdir}/groff
%doc %{_docdir}/groff/html
%doc %{_docdir}/groff/examples
%files -n gxditview
%defattr(-,root,root)
%dir %{_datadir}/X11/app-defaults
%doc src/devices/xditview/ChangeLog
%doc src/devices/xditview/README
%doc src/devices/xditview/TODO
%{_bindir}/gxditview
%doc %{_mandir}/man1/gxditview.1*
%{_datadir}/X11/app-defaults/GXditview
%{_datadir}/X11/app-defaults/GXditview-color
%endif #groff_base_only
%changelog