Blob Blame Raw
%bcond_with tests_py

%global srcurl  https://github.com/andreikop/%{name}

Name:           enki
Version:        19.10.0
Release:        3%{?dist}
Summary:        Text editor for programmers

License:        GPLv2+
URL:            http://%{name}-editor.org/

Source0:        %{srcurl}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz

BuildArch:      noarch
ExclusiveArch: %{qt5_qtwebengine_arches} noarch

BuildRequires:  python3-devel
BuildRequires:  python3-setuptools

BuildRequires:  python3-qt5
BuildRequires:  python3-pyparsing
BuildRequires:  python3-qutepart

# documentation
BuildRequires:  python3-sphinx

# tests
BuildRequires:  desktop-file-utils
%if %{with tests_py}
#BuildRequires:  python3-sip
BuildRequires:  python3-qt5-webengine
BuildRequires:  xorg-x11-server-Xvfb
%endif

# FIXME add more optional dependencies to enable specific tests
BuildRequires:  python3-markdown
BuildRequires:  python3-mock
BuildRequires:  python3-regex

# runtime
Requires:       python3

Requires:       python3-qt5
Requires:       python3-pyparsing
Requires:       python3-qutepart
# FIXME is sphinx optional?
Requires:       python3-sphinx

# FIXME issue#425, markdown is needed as dependency
Requires:       python3-markdown

# optional for special runtime
Recommends:     python3-flake8
Recommends:     python3-docutils
#Recommends:     python3-markdown
Recommends:     python3-regex
Recommends:     ctags
# FIXME do we need QtWebEngine for sure?
# upstream issues/446, rhbz#1642060
Recommends:     python3-qt5-webengine

# upstream issues/465
Suggests:       python3-qtconsole

# we place additional icons
Requires:       hicolor-icon-theme

# compatibility, accidently used subpackage, rhbz#1292724
Obsoletes:      %{name}-plugins < 19.10.0

%description
Enki is a text editor for programmers. It is:

    - User friendly. Intuitive interface. Works out of the box. You don’t have
      to read a lot of docs.
    - Hacker friendly. Work as quickly as possible. Navigate efficiently without
      your mouse.
    - Advanced. You invent software. An editor helps you focus on inventing,
      instead of fighting with your tools.
    - Extensible. Operating systems are designed for running applications. Enki
      is designed for running plugins.
    - Cross platform. Use your habitual editor on any OS. Tested on Linux and
      Windows. Users report that Enki works Mac OS X.
    - High quality. No long list of fancy features. But, what is done, is done
      well.
    - Open source. Created, tested, and designed for the community, by the
      community, and with the community.

%package doc
Summary:        Additional documentation for %{name}

%description doc
%{summary}.


%prep
%autosetup -p1 -n%{name}-%{version}
# distutils does not know options entry_points and install_requires: use setuptools instead
sed -i s:distutils\.core:setuptools: setup.py
# skip enforcement of optional dependencies
sed -i -r -e '/flake8/d' -e '/CodeChat/d' -e '/regex/d' setup.py
# ignore useless distribution folders
rm -rv debian rpm win
# skip tests of plugins, too hungry for poor Xvfb
rm -v tests/test_plugins/*.py

%build
%py3_build
sphinx-build-3 doc html
rm -rv html/.buildinfo html/.doctrees

%install
%py3_install

%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop

# FIXME rhbz#1752766, python3-sip not available
%if %{with tests_py}
# we must be inside the tests folder to let the script find something
pushd tests
# FIXME ugly hackery to disable failing tests
# https://github.com/andreikop/enki/issues/456
sed -i "s:'TRAVIS_OS_NAME' in os.environ:True:" test_base.py
# run tests in a mocked X environment
xvfb-run -s '-screen :0 1024x768x16' %{__python3} run_all.py
%endif


%files
%license LICENSE.GPL2
%doc README.md ChangeLog
%{python3_sitelib}/%{name}*.egg-info
%{python3_sitelib}/%{name}/
%{_datadir}/icons/hicolor/*/apps/%{name}.*
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/applications/%{name}.desktop
%{_bindir}/%{name}

%files doc
%license LICENSE.GPL2
%doc html/

%changelog
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 19.10.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Sat Nov 23 2019 Raphael Groner <projects.rg@smart.ms> - 19.10.0-2
- rebuilt (python-qutepart)

* Sat Nov 23 2019 Raphael Groner <projects.rg@smart.ms> - 19.10.0-1
- new version

* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 18.08.0-6
- Rebuilt for Python 3.8.0rc1 (#1748018)

* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 18.08.0-5
- Rebuilt for Python 3.8

* Wed Aug 07 2019 Dan Horák <dan[at]danny.cz> - 18.08.0-4
- set ExclusiveArch as there is dependency on qt5-qtwebengine

* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 18.08.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 18.08.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Mon Dec 17 2018 Raphael Groner <projects.rg@smart.ms> - 18.08.0-1
- new version

* Sun Jul 22 2018 Raphael Groner <projects.rg@smart.ms> - 17.03.0-10
- mark markdown as mandatory to fix an issue with setup.py

* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 17.03.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 17.03.0-8
- Rebuilt for Python 3.7

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 17.03.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Sun Aug 13 2017 Raphael Groner <projects.rg@smart.ms> - 17.03.0-6
- add dependency python3-sphinx

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 17.03.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sun May 07 2017 Raphael Groner <projects.rg@smart.ms> - 17.03.0-4
- thread regex as optional, too

* Sun May 07 2017 Raphael Groner <projects.rg@smart.ms> - 17.03.0-3
- drop hard dependencies to flake8 and CodeChat, latter not packaged yet

* Tue Mar 28 2017 Raphael Groner <projects.rg@smart.ms> - 17.03.0-2
- mark optional dependencies

* Tue Mar 28 2017 Raphael Groner <projects.rg@smart.ms> - 17.03.0-1
- Update to 17.03.0 (#1436456)
- use setuptools instead of distutils
- explicitly set screen depth for tests: qt dropped support for depth 8
- add verbose option to rm

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 16.04.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 16.04.1-5
- Rebuild for Python 3.6

* Thu Dec 08 2016 Builder <projects.rg@smart.ms> - 16.04.1-4
- rebuilt for Qt 5.7.1

* Tue Aug 30 2016 Raphael Groner <projects.rg@smart.ms> - 16.04.1-3
- rhbz#1365138, add python3-pyparsing and drop python2 relations
- reorder dependency list for better overview

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 16.04.1-2
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Wed Jun 15 2016 Raphael Groner <projects.rg@smart.ms> - 16.04.1-1
- new version
- drop upstreamed patch

* Mon May 09 2016 Raphael Groner <projects.rg@smart.ms> - 16.04.0-3
- fix TypeError: decorated slot, rhbz#1332274

* Sun Apr 24 2016 Raphael Groner <projects.rg@smart.ms> - 16.04.0-2
- add R: python3-qt5-webkit, enki does not work without

* Fri Apr 22 2016 Raphael Groner <projects.rg@smart.ms> - 16.04.0-1
- bump to v16.04.0

* Thu Mar 24 2016 Raphael Groner <projects.rg@smart.ms> - 15.11.2-0.3.20160227git8e374ef
- remove obsolete workarounds

* Wed Mar 02 2016 Rex Dieter <rdieter@fedoraproject.org> 15.11.2-0.2
- Requires: python3-qt5-webkit

* Sun Feb 28 2016 Raphael Groner <projects.rg@smart.ms> - 15.11.2-0.1
- v15.11.2, maybe 15.12.0 or similiar, but pre1
- move to python3 and qt5

* Sat Feb 27 2016 Raphael Groner <projects.rg@smart.ms> - 15.11.1-3
- rebuild to validate dependencies (crash in koschei)

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 15.11.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Jan 11 2016 Fedora Release Monitoring <release-monitoring@fedoraproject.org> - 15.11.1-1
- Update to 15.11.1 (#1297567)

* Sat Jan 09 2016 Raphael Groner <projects.rg@smart.ms> - 15.11.0-2
- merge plugins subpackage, rhbz#1292724

* Thu Dec 03 2015 Raphael Groner <projects.rg@smart.ms> - 15.11.0-1
- new version
- add python-regex
- remove license breakdown, now generally GPLv2+
- remove Suggests: enki-plugins

* Tue Nov 17 2015 Raphael Groner <projects.rg@smart.ms> - 15.05.0-2
- fix license breakdown
- ignore useless distribution folders
- use python macros to build and install
- split plugins into subpackage

* Fri Nov 13 2015 Raphael Groner <projects.rg@smart.ms> - 15.05.0-1
- continue review
- new upstream version
- add proper snippets for mime database and icon cache
- generate documentation
- execute tests

* Thu May 7 2015 Jairo Llopis <yajo.sk8@gmail.com> 14.07.2-7
- New upstream version.
- Updated dependencies.
- Updated description.
- Remove translations.

* Mon Jul 7 2014 Jairo Llopis <yajo.sk8@gmail.com> 14.03.0-6
- New upstream version.
- Fix some macros in the spec file.

* Sun Oct 6 2013 Jairo Llopis <yajo.sk8@gmail.com> 13.09.2-5
- Add dependency to python-docutils.

* Sun Oct 6 2013 Jairo Llopis <yajo.sk8@gmail.com> 13.09.2-4
- New upstream version.

* Sun Sep 8 2013 Jairo Llopis <yajo.sk8@gmail.com> 13.08.1-3
- New upstream version, now based on qutepart.
- Remove patch that has already been merged upstream.

* Tue Jul 16 2013 Jairo Llopis <yajo.sk8@gmail.com> 12.10.3-2
- Declare variables with global.
- Link patch0 to its upstream bug.
- Validate desktop file installation.
- Add icon cache scriptlets.
- Change Source tag for Source0.
- Fix requirements.

* Sat Jul 6 2013 Jairo Llopis <yajo.sk8@gmail.com> 12.10.3-1
- Initial release.