%global srcname qutepart %global sum Code editor widget %if 0%{?fedora} %bcond_without python3 %endif %global py3_commit0 0e9612914f0ab90fd62c8160590191bfe4153658 %global py3_date 20151020 Name: python-%{srcname} Version: 2.2.2 Release: 3%{?dist} Summary: %{sum} License: LGPLv2+ URL: https://github.com/hlamer/%{srcname} Source0: %{url}/archive/v%{version}.tar.gz#/%{srcname}-%{version}.tar.gz # experimental python3 from upstream py3 branch as a subpackage # https://github.com/hlamer/qutepart/issues/30 Patch0: %{url}/compare/v%{version}...%{py3_commit0}.patch#/%{srcname}-py3.patch # AttributeError: type object 'QApplication' has no attribute 'instance' # https://github.com/hlamer/qutepart/issues/29 Patch1: %{url}/compare/v%{version}...39dc2a200a11a293611e995429c80c9b0fa545e7.patch#/%{srcname}-docs.patch BuildRequires: pcre-devel Requires: pcre BuildRequires: PyQt4 Requires: PyQt4 BuildRequires: python2-devel >= 2.7 BuildRequires: python-setuptools BuildRequires: python-sphinx %if 0%{with python3} BuildRequires: python3-qt5 Requires: python3-qt5 BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-sphinx %endif BuildRequires: xorg-x11-server-Xvfb %description Qutepart is a code editor widget for PyQt. Features: - Syntax highlighting for 196 languages. - Smart indentation for many languages. - Line numbers. - Bookmarks. - Advanced edit operations. - Matching braces highlighting. - Autocompletion based on document content. - Marking too long lines with red line. - Rectangular selection and copy-paste. - Linter marks support. %package -n python2-%{srcname} Summary: %{sum} %{?python_provide:%python_provide python2-%{srcname}} %description -n python2-%{srcname} Qutepart is a code editor widget for PyQt. Features: - Syntax highlighting for 196 languages. - Smart indentation for many languages. - Line numbers. - Bookmarks. - Advanced edit operations. - Matching braces highlighting. - Autocompletion based on document content. - Marking too long lines with red line. - Rectangular selection and copy-paste. - Linter marks support. %if 0%{with python3} %package -n python3-%{srcname} Release: 3.%{py3_date}git%(c=%{py3_commit0}; echo ${c:0:7})%{?dist} Summary: %{sum} %{?python_provide:%python_provide python3-%{srcname}} %description -n python3-%{srcname} Qutepart is a code editor widget for PyQt. Features: - Syntax highlighting for 196 languages. - Smart indentation for many languages. - Line numbers. - Bookmarks. - Advanced edit operations. - Matching braces highlighting. - Autocompletion based on document content. - Marking too long lines with red line. - Rectangular selection and copy-paste. - Linter marks support. %endif %prep %setup -q -n %{srcname}-%{version} %if 0%{with python3} mkdir python3 find -mindepth 1 -maxdepth 1 -not -name python3 |xargs cp -pr -tpython3 pushd python3 %patch0 -p1 # FIXME dirty hacks to prevent gcc errors cause of c-api change in python3 sed -i /ob_type/d %{srcname}/syntax/cParser.c sed -i -r 's,PyString_AsString\((.*)\).*;,\1;,' %{srcname}/syntax/cParser.c # disable PyQt5 mocking for sphinx sed -i -r 's,(MOCK_MODULES = \[).*\],\1],' doc/source/conf.py # disable sloppy tests rm tests/test_bookmarks.py tests/test_bracket_hlighter.py tests/test_completion.py tests/test_edit.py popd %endif # python2 %patch1 -p1 %build # we need CFLAGS for internal gcc call, py2_build sets them %py2_build pushd doc sphinx-build source html popd %if 0%{with python3} pushd python3 %py3_build pushd doc sphinx-build-3 source html popd popd %endif # E: non-standard-executable-perm find -name \*.so |xargs chmod 0755 # W: hidden-file-or-dir find -name html -exec rm -r '{}'/.buildinfo '{}'/.doctrees \; %install %py2_install %if 0%{with python3} pushd python3 %py3_install %endif %check pushd tests # do some fake X xvfb-run %{__python2} run_all.py popd %if 0%{with python3} pushd python3/tests xvfb-run -a %{__python3} run_all.py %endif %files -n python2-%{srcname} %license LICENSE %doc README.md ChangeLog todo.txt %doc doc/html/ %{python2_sitearch}/%{srcname}* %if 0%{with python3} %files -n python3-%{srcname} %license LICENSE %doc README.md ChangeLog todo.txt %doc python3/doc/html/ %{python3_sitearch}/%{srcname}* %endif %changelog * Fri Nov 06 2015 Raphael Groner - 2.2.2-3 - add subpackages for python versioning - experimental python3 support * Mon Oct 19 2015 Raphael Groner - 2.2.2-2 - take over from Jairo Llopis - cleanup generally - use LGPLv2 with "or later" - add more documentation files - execute tests - fix permissions - use new python macros - use virtual provides of python2 module * Fri Aug 28 2015 Jairo Llopis 2.2.2-1 - New upstream version. * Wed Aug 26 2015 Jairo Llopis 2.2.0-7 - Fix some permissions. - Remove Spanish descriptions, for easier maintenance. * Mon May 4 2015 Jairo Llopis 2.2.0-6 - Fix license macro in SPEC. - Fix a couple of redundancies in SPEC. * Thu Apr 30 2015 Jairo Llopis 2.2.0-5 - New upstream version. - Clear SPEC redundancies. - Force usage of Python 2 macros in SPEC. * Fri Feb 6 2015 Jairo Llopis 2.1.0-4 - New upstream version. - Update descriptions and dependencies to match upstream SPEC. - Remove support for Fedora < 20. * Mon Jul 7 2014 Jairo Llopis 1.3.0-3 - New upstream version. - Fix typo. * Fri Oct 25 2013 Jairo Llopis 1.1.0-2 - Fix comments. - Fix translation. - Fix CFLAGS when building. - Fix license. * Sun Sep 8 2013 Jairo Llopis 1.1.0-1 - Initial release.