diff --git a/.gitignore b/.gitignore index e69de29..7b1a570 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/grako-3.18.1.tar.gz diff --git a/python-grako.spec b/python-grako.spec new file mode 100644 index 0000000..15c3035 --- /dev/null +++ b/python-grako.spec @@ -0,0 +1,109 @@ +%global modname grako +%global modfirst %(c=%{modname}; echo ${c:0:1}) + +Name: python-%{modname} +Version: 3.18.1 +Release: 1%{?dist} +Summary: Python grammar compiler, EBNF input, PEG/Packrat parser output + +License: BSD +URL: https://pypi.python.org/pypi/%{modname}/ +Source0: https://pypi.io/packages/source/%{modfirst}/%{modname}/%{modname}-%{version}.tar.gz + +BuildArch: noarch +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +# needed for tests: +BuildRequires: python%{python3_pkgversion}-pytest + +%description +Grako (for "grammar compiler") takes a grammar in a variation of EBNF +as input, and outputs a memoizing PEG/Packrat parser in Python. + +%package -n python%{python3_pkgversion}-%{modname} +Summary: %{summary} +Requires: python%{python3_pkgversion}-pygraphviz +%{?python_provide:%python_provide python%{python3_pkgversion}-%{modname}} + +%description -n python%{python3_pkgversion}-%{modname} +Grako (for "grammar compiler") takes a grammar in a variation of EBNF +as input, and outputs a memoizing PEG/Packrat parser in Python. + + +%prep +%setup -q -n %{modname}-%{version} + +# Edit Makefiles to invoke python3 explicitly, rather than just python. +# This ensures that we run the tests using the python3 interpreter. +find . -name Makefile -exec sed -i 's/python[ \t]/python3 /g' {} + + +# Fix Python shebang lines +find -type f -exec sed -i '1s=^#!/usr\(/env\|/bin\)* python[23]\?=#!/usr/bin/python3=' {} + + +# Don't package examples/antlr2grako/.ropeproject +rm -rf examples/antlr2grako/.ropeproject + + +%build +%py3_build + + +%install +%py3_install +# install loses the executable permission on bootstrap.py, so fix +chmod a+x %{buildroot}%{python3_sitelib}/%{modname}/bootstrap.py + + +%check +# make directory needed for bootstrap test +mkdir tmp +make test + +# Examples are packaged as documentation, not intended to run in place +# from the doc dir, so they should not be prebuilt. After check, clean +# and remove bytecode. +for e in antlr2grako calc regex +do + pushd examples/$e + make clean + rm -rf __pycache__ */__pycache__ + popd +done + + +%files -n python%{python3_pkgversion}-%{modname} +%license LICENSE.txt +%doc DESCRIPTION.rst README.md +%doc examples +%{_bindir}/%{modname} +%{python3_sitelib}/%{modname} +%{python3_sitelib}/%{modname}-%{version}-py?.?.egg-info + + +%changelog +* Fri Dec 16 2016 Eric Smith 3.18.1-1 +- Updated to latest upstream. +- Use find and sed to replace shebang lines in python scripts based on + http://python-rpm-porting.readthedocs.io/en/latest/applications.html#fixing-shebangs +- Use find and sed to change "python" in Makefiles to "python3". + +* Wed Dec 14 2016 Eric Smith 3.18.0-4 +- Moved check section to follow install section in spec. +- Use pushd/popd rather than cd in check section. + +* Tue Dec 13 2016 Eric Smith 3.18.0-3 +- Fix dependency on python3-pygraphviz, and move into subpackage. +- Fix shebang lines of examples. +- Clean examples after check. + +* Mon Dec 12 2016 Eric Smith 3.18.0-2 +- Add dependency on python3-pygraphviz per package review. +- Add a "mkdir tmp" so diagram test passes. +- Added examples directory as doc. + +* Sat Dec 10 2016 Eric Smith 3.18.0-1 +- Updated to latest upstream +- Changes per package review (#1401276). + +* Sun Dec 04 2016 Eric Smith 3.17.0-1 +- Initial version. diff --git a/sources b/sources index e69de29..ee6c708 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (grako-3.18.1.tar.gz) = a187e0042dd3c0be2e142f2e1d96a248f27897a6fe354f4fc333828256217ec3341189345145c491f712cc822b9f9cfc49d8a430f6101c49aa78bea5a17c2aa5