undertaker/undertaker.spec
2013-07-31 16:51:08 -06:00

200 lines
6.1 KiB
RPMSpec

Name: undertaker
Version: 1.2
Release: 11%{?dist}
Summary: Find always-on and always-off conditional C code
Group: Development/Languages
License: GPLv2 and GPLv3+
URL: http://vamos.informatik.uni-erlangen.de/trac/undertaker
Source0: http://vamos.informatik.uni-erlangen.de/files/%{name}-%{version}.tar.gz
# As of F20, Boost doesn't ship -mt DSO's anymore.
Patch0: %{name}-boost_mt.patch
# Adapt to new picosat API
Patch1: %{name}-picosat.patch
BuildRequires: boost-devel
BuildRequires: emacs
BuildRequires: ncurses-devel
BuildRequires: picosat-devel
BuildRequires: python2-devel
BuildRequires: xemacs
BuildRequires: xemacs-packages-extra
# Needed for undertaker-calc-coverage
Requires: cpp
Requires: git
Requires: make
Requires: sparse
%description
The undertaker is an implementation of the Vamos project's preprocessor
and configuration analysis approaches. It can check the structure of
preprocessor directives against different configuration models to find
blocks that can't be selected or deselected.
%package emacs
Summary: Emacs support for %{name}
Group: Development/Languages
Requires: emacs(bin) >= %{_emacs_version}
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description emacs
Emacs support for %{name}.
%package emacs-el
Summary: Source for Emacs support for %{name}
Group: Development/Languages
Requires: %{name}-emacs = %{version}-%{release}
BuildArch: noarch
%description emacs-el
Source Elisp code for Emacs support for %{name}.
%package xemacs
Summary: XEmacs support for %{name}
Group: Development/Languages
Requires: xemacs(bin) >= %{_xemacs_version}, xemacs-packages-extra
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description xemacs
XEmacs support for %{name}.
%package xemacs-el
Summary: Source for XEmacs support for %{name}
Group: Development/Languages
Requires: %{name}-xemacs = %{version}-%{release}
BuildArch: noarch
%description xemacs-el
Source Elisp code for XEmacs support for %{name}.
%prep
%setup -q -n vamos-%{version}
%patch0
%patch1
# Fix a python path
sed -i "s|^PYTHONPATH=.*|PYTHONPATH=\""%{python2_sitelib}"\"|" \
rsf2model/undertaker-kconfigdump.in
# Fix a python dependency
sed 's|env python|python|' undertaker/undertaker-calc-coverage > foo
chmod a+x foo
touch -r undertaker/undertaker-calc-coverage foo
mv -f foo undertaker/undertaker-calc-coverage
# Use the right flags when building and linking
sed -e "s|-Wall -Wextra -O2|$RPM_OPT_FLAGS|" \
-e "s|^LDFLAGS =.*|LDFLAGS = $RPM_OPT_FLAGS|" \
-i undertaker/Makefile
sed -e "s|^LDXX=.*|LDXX=g++ \$(CXXFLAGS)|" \
-e "s|^DEBUG =.*|DEBUG=|" \
-e "s|-Wall -Wextra -O2|$RPM_OPT_FLAGS|" \
-i ziz/Makefile
# Fix the Makefile so we don't rebuild everything when installing
sed -e "s|^all:.*|all: \$(PROGS) \$(TEMPLATED) \$(MANPAGES)|" \
-e "s|^install: all.*|install:|" \
-e "s|check undertaker-lcov|check install undertaker-lcov|" \
-i Makefile
# Remove prebuilt objects
make clean
rm -f scripts/basic/docproc scripts/basic/fixdep scripts/basic/hash \
scripts/kconfig/dumpconf undertaker/test-ConditionalBlock \
undertaker/test-SatChecker undertaker/undertaker ziz/zizler
# Fix end-of-line encodings
for f in DeadAnalysis ElDocumentation Interactive ModelFiles Preconditions; do
sed -i.orig 's/\r//' doc/Undertaker$f
touch -r doc/Undertaker$f.orig doc/Undertaker$f
rm -f doc/Undertaker$f.orig
done
%build
# FIXME: building with %%{?_smp_mflags} sometimes fails
make PREFIX=%{_prefix} LIBDIR=%{_libdir} \
HOSTCFLAGS="${RPM_OPT_FLAGS}" HOSTCXXFLAGS="${RPM_OPT_FLAGS}" \
HOSTLDFLAGS="${RPM_LD_FLAGS} -Wl,--as-needed"
%install
make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir}
# The rsf2model script is installed in two places. We only need one.
rm -f $RPM_BUILD_ROOT%{_bindir}/rsf2model
# Copy the Emacs support to the appropriate XEmacs dir and byte compile
mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitelispdir}
cp -a $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name} \
$RPM_BUILD_ROOT%{_xemacs_sitelispdir}
cd $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/%{name}
%{_xemacs_bytecompile} *.el
# Byte compile the Emacs support file
cd $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}
%{_emacs_bytecompile} *.el
%files
%doc AUTHORS LICENSE README
%doc doc/UndertakerDeadAnalysis doc/UndertakerInteractive
%doc doc/UndertakerModelFiles doc/UndertakerPreconditions
%{_bindir}/*
%{_libdir}/undertaker
%{_mandir}/man1/*
%{python_sitelib}/undertaker*
%files emacs
%doc doc/UndertakerElDocumentation
%dir %{_emacs_sitelispdir}/%{name}
%{_emacs_sitelispdir}/%{name}/*.elc
%files emacs-el
%{_emacs_sitelispdir}/%{name}/*.el
%files xemacs
%doc doc/UndertakerElDocumentation
%dir %{_xemacs_sitelispdir}/%{name}
%{_xemacs_sitelispdir}/%{name}/*.elc
%files xemacs-el
%{_xemacs_sitelispdir}/%{name}/*.el
%changelog
* Wed Jul 31 2013 Jerry James <loganjerry@gmail.com> - 1.2-11
- Add -picosat patch to adapt to new reentrant picosat API
* Sat Jul 27 2013 Petr Machata <pmachata@redhat.com> - 1.2-10
- Rebuild for boost 1.54.0
- Boost.Wave and Boost.System DSO's do not include -mt suffix anymore
(undertaker-boost_mt.patch).
* Sat Feb 09 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.2-9
- Rebuild for Boost-1.53.0
* Mon Aug 20 2012 Jerry James <loganjerry@gmail.com> - 1.2-8
- Rebuild for new picosat
* Mon Aug 6 2012 Jerry James <loganjerry@gmail.com> - 1.2-7
- Rebuild for boost 1.50
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-5
- Rebuilt for c++ ABI breakage
* Tue Jan 10 2012 Jerry James <loganjerry@gmail.com> - 1.2-4
- Rebuild to fix python dependencies
- Drop unnecessary BRs
- Ensure correct LDFLAGS
* Mon Jan 9 2012 Jerry James <loganjerry@gmail.com> - 1.2-3
- Rebuild for GCC 4.7
* Sun Nov 20 2011 Jerry James <loganjerry@gmail.com> - 1.2-2
- Rebuild for new boost
* Tue Sep 20 2011 Jerry James <loganjerry@gmail.com> - 1.2-1
- Initial RPM