diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..067d0f5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/undertaker-1.2.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index 164cb9a..0000000 --- a/dead.package +++ /dev/null @@ -1,3 +0,0 @@ -2016-05-19: Retired orphaned package, because it was orphaned for -more than six weeks. - diff --git a/sources b/sources new file mode 100644 index 0000000..4c612f0 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +455613fb59573a12d5b30abcd87d474b undertaker-1.2.tar.gz diff --git a/undertaker.spec b/undertaker.spec new file mode 100644 index 0000000..0baec62 --- /dev/null +++ b/undertaker.spec @@ -0,0 +1,189 @@ +Name: undertaker +Version: 1.2 +Release: 9%{?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 + +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} + +# Fix up one include path +sed -i 's|picosat/picosat.h|picosat.h|' undertaker/SatChecker.h + +# 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 +* Sat Feb 09 2013 Denis Arnaud - 1.2-9 +- Rebuild for Boost-1.53.0 + +* Mon Aug 20 2012 Jerry James - 1.2-8 +- Rebuild for new picosat + +* Mon Aug 6 2012 Jerry James - 1.2-7 +- Rebuild for boost 1.50 + +* Sun Jul 22 2012 Fedora Release Engineering - 1.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Feb 28 2012 Fedora Release Engineering - 1.2-5 +- Rebuilt for c++ ABI breakage + +* Tue Jan 10 2012 Jerry James - 1.2-4 +- Rebuild to fix python dependencies +- Drop unnecessary BRs +- Ensure correct LDFLAGS + +* Mon Jan 6 2012 Jerry James - 1.2-3 +- Rebuild for GCC 4.7 + +* Sun Nov 20 2011 Jerry James - 1.2-2 +- Rebuild for new boost + +* Tue Sep 20 2011 Jerry James - 1.2-1 +- Initial RPM