%if (! 0%{?rhel}) || 0%{?rhel} > 6 %global with_python3 1 %endif # Enable building without html docs (e.g. in case no recent sphinx is # available) %global with_docs 1 # Turn off the brp-python-bytecompile script %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') Name: waf Version: 1.6.3 Release: 1%{?dist} Summary: A Python-based build system Group: Development/Tools # The entire source code is BSD apart from pproc.py (taken from Python 2.5) License: BSD and Python URL: http://code.google.com/p/waf/ # Original tarfile can be found at # http://waf.googlecode.com/files/waf-%%{version}.tar.bz2 # We remove docs/book, as this is under CC-BY-NC-ND, which is not # allowed in Fedora. Source: waf-%{version}.stripped.tar.bz2 # use _datadir instead of /usr/lib Patch0: waf-1.6.2-libdir.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildArch: noarch BuildRequires: python-devel %if 0%{?with_python3} BuildRequires: python3-devel %endif # with_python3 %if 0%{?with_docs} BuildRequires: python-sphinx BuildRequires: graphviz BuildRequires: ImageMagick %endif # with_docs # Seems like automatic ABI dependency is not detected since the files are # going to a non-standard location Requires: python(abi) %(%{__python} -c "import sys ; print \"=\", sys.version[:3]") # the demo suite contains a perl module, which draws in unwanted # provides and requires %global __perl_provides %{nil} %global __perl_requires %{nil} %description Waf is a Python-based framework for configuring, compiling and installing applications. It is a replacement for other tools such as Autotools, Scons, CMake or Ant. %prep %setup -q %patch0 -p0 -b .libdir %build extras= for f in waflib/extras/*.py ; do f=$(basename "$f" .py); if [ "$f" != "__init__" ]; then extras="${extras:+$extras,}$f" ; fi done ./waf-light --make-waf --strip --tools="$extras" %if 0%{?with_docs} # build html docs pushd docs/sphinx ../../waf configure build popd %endif # with_docs %install rm -rf %{buildroot} # use waf so it unpacks itself mkdir _temp ; pushd _temp cp -av ../waf . %{__python} ./waf >/dev/null 2>&1 pushd .waf-%{version}-* find . -name '*.py' -printf '%%P\0' | xargs -0 -I{} install -m 0644 -p -D {} %{buildroot}%{_datadir}/waf/{} popd %if 0%{?with_python3} %{__python3} ./waf >/dev/null 2>&1 pushd .waf3-%{version}-* find . -name '*.py' -printf '%%P\0' | xargs -0 -I{} install -m 0644 -p -D {} %{buildroot}%{_datadir}/waf3/{} popd %endif # with_python3 popd install -m 0755 -p -D waf-light %{buildroot}%{_bindir}/waf # remove shebangs from and fix EOL for all scripts in wafadmin find %{buildroot}%{_datadir}/ -name '*.py' \ -exec sed -i -e '1{/^#!/d}' -e 's|\r$||g' {} \; # fix waf script shebang line sed -i "1c#! /usr/bin/python" %{buildroot}%{_bindir}/waf # remove x-bits from everything going to doc find demos utils -type f -exec %{__chmod} 0644 {} \; # remove hidden file rm -f docs/sphinx/build/html/.buildinfo # do byte compilation %py_byte_compile %{__python} %{buildroot}%{_datadir}/waf %if 0%{?with_python3} %py_byte_compile %{__python3} %{buildroot}%{_datadir}/waf3 %endif # with_python3 %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc README TODO ChangeLog demos %if 0%{?with_docs} %doc docs/sphinx/build/html %endif # with_docs %{_bindir}/waf %{_datadir}/waf %if 0%{?with_python3} %{_datadir}/waf3 %endif # with_python3 %changelog * Sat Feb 19 2011 Thomas Moschny - 1.6.3-1 - Update to 1.6.3. * Mon Feb 07 2011 Fedora Release Engineering - 1.6.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Sat Jan 22 2011 Thomas Moschny - 1.6.2-4 - Update libdir patch for py3k. - Add patch to fix syntax error in extras/boost.py. - Remove hidden file. * Fri Jan 21 2011 Thomas Moschny - 1.6.2-3 - Make waf compatible with python3, if available. * Tue Jan 18 2011 Thomas Moschny - 1.6.2-2 - Enable building without html docs. * Sat Jan 15 2011 Thomas Moschny - 1.6.2-1 - Update to 1.6.2. - Generate and include html docs. - Upstream removed the 'install' target, so we need to copy waflib manually. - The bash completion file is not provided anymore. * Fri Oct 1 2010 Thomas Moschny - 1.5.19-1 - Update to 1.5.19. * Fri Jul 30 2010 Thomas Moschny - 1.5.18-3 - Require 'python(abi)' instead of 'python-abi', seems more common now. * Fri Jul 30 2010 Thomas Moschny - 1.5.18-2 - Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild * Sun Jul 11 2010 Thomas Moschny - 1.5.18-1 - Update to 1.5.18. * Mon May 24 2010 Thomas Moschny - 1.5.17-1 - Update to 1.5.17. - Add patch from issue 682 to install 3rd party tools. * Mon Apr 5 2010 Thomas Moschny - 1.5.15-1 - Update to 1.5.15. * Sun Mar 7 2010 Thomas Moschny - 1.5.14-1 - Update to 1.5.14. * Wed Mar 3 2010 Thomas Moschny - 1.5.13-1 - Update to 1.5.13. * Sun Feb 14 2010 Thomas Moschny - 1.5.12-1 - Update to 1.5.12. * Mon Jan 18 2010 Thomas Moschny - 1.5.11-1 - Update to 1.5.11. - Use %%global instead of %%define. * Mon Nov 16 2009 Thomas Moschny - 1.5.10-1 - Update to 1.5.10. * Mon Aug 31 2009 Thomas Moschny - 1.5.9-1 - Update to 1.5.9. - Rebase libdir patch. * Mon Jul 27 2009 Fedora Release Engineering - 1.5.8-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Thu Jun 11 2009 Thomas Moschny - 1.5.8-1 - Update to 1.5.8. * Tue May 5 2009 Thomas Moschny - 1.5.6-1 - Update to 1.5.6. * Mon Apr 20 2009 Thomas Moschny - 1.5.5-1 - Update to 1.5.5. * Tue Apr 7 2009 Thomas Moschny - 1.5.4-1 - Update to 1.5.4. * Wed Feb 25 2009 Fedora Release Engineering - 1.5.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Mon Feb 2 2009 Thomas Moschny - 1.5.3-1 - Update to 1.5.3, which contains various enhancements and bugfixes, see http://waf.googlecode.com/svn/trunk/ChangeLog for a list of changes. * Fri Jan 16 2009 Thomas Moschny - 1.5.2-2 - Remove the documentation again, as it is under CC-BY-NC-ND. Also remove it from the tarfile. * Fri Jan 16 2009 Thomas Moschny - 1.5.2-1 - Update to 1.5.2. - Generate html documentation (though without highlighting). * Fri Dec 19 2008 Thomas Moschny - 1.5.1-1 - Update to 1.5.1. * Mon Dec 01 2008 Ignacio Vazquez-Abrams - 1.4.4-2 - Rebuild for Python 2.6 * Sun Aug 31 2008 Thomas Moschny - 1.4.4-1 - Update to 1.4.4: - python 2.3 compatibility was restored - task randomization was removed - the vala tool was updated * Sat Jun 28 2008 Thomas Moschny - 1.4.3-1 - Update to 1.4.3. - Remove fcntl patch (fixed upstream). - Prefix has to be set in a configure step now. - Pack the bash completion file. * Mon May 26 2008 Thomas Moschny - 1.4.2-2 - Patch: stdout might not be a terminal. * Sat May 17 2008 Thomas Moschny - 1.4.2-1 - Update to 1.4.2. - Remove shebang lines from files in wafadmin after installation, not before, otherwise install will re-add them. * Sun May 4 2008 Thomas Moschny - 1.4.1-1 - Update to upstream version 1.4.1. * Sat Apr 19 2008 Thomas Moschny - 1.4.0-1 - Update to upstream version 1.4.0. * Wed Apr 9 2008 Thomas Moschny - 1.3.2-6 - Upstream patch to fix latex dependency scanning: trunk rev 2340. * Sun Feb 10 2008 Thomas Moschny - 1.3.2-5 - Update to 1.3.2. - Remove version and revision information from path to waf cache. * Fri Feb 1 2008 Michel Salim - 1.3.1-4 - Upstream patch to fix check_tool('gnome'): trunk rev 2219 * Mon Jan 28 2008 Michel Salim - 1.3.1-3 - Fix python-abi requirement so it can be parsed before python is installed - rpmlint tidying-up * Fri Jan 25 2008 Michel Salim - 1.3.1-2 - Merge in changes from Thomas Mochny : * WAF cache moved from /usr/lib to /usr/share * Remove shebangs from scripts not meant from users, rather than making them executable * Include tools and demos * Sun Jan 20 2008 Michel Salim - 1.3.1-1 - Initial Fedora package