diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 1c05d99..3ea4577 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,11 @@ html2text-2.38.py /python-html2text-3.02.tar.gz /aaronsw-html2text-3.02-77-gc368b14.tar.gz /html2text-2015.6.6.tar.gz +/html2text-2016.9.19.tar.gz +/html2text-2018.1.9.tar.gz +/html2text-2019.8.11.tar.gz +/html2text-2019.9.26.tar.gz +/html2text-2020.1.16.tar.gz +/html2text-2024.2.25.tar.gz +/html2text-2024.2.26.tar.gz +/html2text-2025.4.15.tar.gz diff --git a/plans/basic.fmf b/plans/basic.fmf new file mode 100644 index 0000000..0ec1948 --- /dev/null +++ b/plans/basic.fmf @@ -0,0 +1,11 @@ +summary: + Check basic functionality +discover: + how: fmf + dist-git-source: true + dist-git-init: false +prepare: + how: install + package: python3-html2text +execute: + how: tmt diff --git a/python-html2text.spec b/python-html2text.spec index d134c52..45f9598 100644 --- a/python-html2text.spec +++ b/python-html2text.spec @@ -1,98 +1,240 @@ -%if 0%{?rhel} >= 8 || 0%{?fedora} >= 16 -%bcond_without python3 -%else -%bcond_with python3 -%endif - -%if 0%{?rhel} && 0%{?rhel} <= 6 -%{!?__python2: %global __python2 /usr/bin/python2} -%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%endif - %global upname html2text +%global common_sum Convert HTML to Markdown-formatted text +%global common_desc %{upname} is a Python script that converts a page \ +of HTML into clean, easy-to-read plain ASCII text. Better yet, that ASCII \ +also happens to be valid Markdown (a text-to-HTML format). + Name: python-%{upname} -Version: 2015.6.6 -Release: 1%{?dist} -Summary: Converts a page of HTML into plain ASCII text +Version: 2025.4.15 +Release: 5%{?dist} +Summary: %{common_sum} -Group: Development/Languages -License: GPLv3 -URL: http://alir3z4.github.io/html2text/ -Source0: https://pypi.python.org/packages/source/h/%{upname}/%{upname}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +License: GPL-3.0-or-later +URL: https://github.com/Alir3z4/%{upname}/ +Source0: https://files.pythonhosted.org/packages/source/h/%{upname}/%{upname}-%{version}.tar.gz BuildArch: noarch -BuildRequires: python-devel -BuildRequires: python-setuptools -%if %{with python3} -BuildRequires: python3-devel -%endif - +BuildRequires: help2man +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python3-pytest %description -html2text is a Python script that converts a page of HTML into clean, -easy-to-read plain ASCII text. Better yet, that ASCII also happens to -be valid Markdown (a text-to-HTML format). - -Also known as: THE ASCIINATOR, html to text, htm to txt, htm2txt, ... +%{common_desc} -%if %{with python3} %package -n python3-%{upname} -Summary: Easily build and distribute Python 3 packages -Group: Applications/System +Summary: %{common_sum} +Provides: %{upname} = %{version}-%{release} +Obsoletes: python2-%{upname} <= %{version}-%{release} +%{?python_provide:%python_provide python3-%{upname}} %description -n python3-%{upname} -html2text is a Python script that converts a page of HTML into clean, -easy-to-read plain ASCII text. Better yet, that ASCII also happens to -be valid Markdown (a text-to-HTML format). +%{common_desc} -Also known as: THE ASCIINATOR, html to text, htm to txt, htm2txt, ... - -This package contains python3 version of the package. -%endif # with_python3 %prep -%setup -q -n %{upname}-%{version} +%autosetup -n %{upname}-%{version} + +%generate_buildrequires +%pyproject_buildrequires %build +%pyproject_wheel %install -%if %{with python3} -%{__python3} setup.py install --root %{buildroot} -# we don't need second binary -rm -fv $RPM_BUILD_ROOT%{_bindir}/html2text -%endif +%pyproject_install +%pyproject_save_files html2text + +%{__mkdir} -p %{buildroot}%{_mandir}/man1 + +%{__mv} -f %{buildroot}%{_bindir}/%{upname} %{buildroot}%{_bindir}/python3-%{upname} +export PYTHONPATH="%{buildroot}%{python3_sitelib}" +help2man --no-discard-stderr -s 1 -N -o %{buildroot}%{_mandir}/man1/python3-%{upname}.1 %{buildroot}%{_bindir}/python3-%{upname} +pushd %{buildroot}%{_bindir} +ln -s python3-%{upname} %{upname} +ln -s python3-%{upname} %{name} +popd +pushd %{buildroot}%{_mandir}/man1/ +ln -s python3-%{upname}.1 %{upname}.1 +ln -s python3-%{upname}.1 %{name}.1 +popd -%{__python2} setup.py install --root %{buildroot} -# new script in 3.200.3 : conflicts with package' html2text' obviously -mv $RPM_BUILD_ROOT%{_bindir}/html2text $RPM_BUILD_ROOT%{_bindir}/%{name} %check -%{__python} setup.py test -%if %{with python3} -%{__python3} setup.py test -%endif +%pyproject_check_import +%{__python3} -m pytest +%pytest %{_builddir} -%files +%files -n python3-%{upname} -f %{pyproject_files} +%license AUTHORS.* COPYING +%doc README.* ChangeLog.* PKG-INFO +%{_bindir}/python3-%{upname} +%{_bindir}/%{upname} %{_bindir}/%{name} -%{python2_sitelib}/* -%doc COPYING - -%if %{with python3} -%files -n python3-%{upname} -%{python3_sitelib}/* -%doc COPYING -%endif +%{_mandir}/man1/python3-%{upname}.1* +%{_mandir}/man1/%{upname}.1* +%{_mandir}/man1/%{name}.1* %changelog +* Fri Sep 19 2025 Python Maint - 2025.4.15-5 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 2025.4.15-4 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 2025.4.15-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jun 02 2025 Python Maint - 2025.4.15-2 +- Rebuilt for Python 3.14 + +* Wed May 21 2025 David Kaufmann - 2025.4.15-1 +- Update to 2025.4.15 + +* Sat Jan 18 2025 Fedora Release Engineering - 2024.2.26-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Jul 29 2024 Miroslav Suchý - 2024.2.26-4 +- convert license to SPDX + +* Fri Jul 19 2024 Fedora Release Engineering - 2024.2.26-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 2024.2.26-2 +- Rebuilt for Python 3.13 + +* Tue Feb 27 2024 Fedora Release Monitoring - 2024.2.26-1 +- Update to 2024.2.26 (#2266431) + +* Sun Feb 25 2024 Fedora Release Monitoring - 2024.2.25-1 +- Update to 2024.2.25 (#2265896) + +* Fri Jan 26 2024 Fedora Release Engineering - 2020.1.16-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 2020.1.16-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 2020.1.16-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 2020.1.16-9 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 2020.1.16-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 2020.1.16-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2020.1.16-6 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 2020.1.16-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 2020.1.16-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 2020.1.16-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 2020.1.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Aug 07 2020 David Kaufmann - 2020.1.16-1 +- Update to 2020.1.16 + +* Wed Jul 29 2020 Fedora Release Engineering - 2019.9.26-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 2019.9.26-4 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 2019.9.26-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Oct 29 2019 Sérgio Basto - 2019.9.26-2 +- Python3 only this version remove support for Python <= 3.4 + +* Tue Oct 29 2019 Sérgio Basto - 2019.9.26-1 +- Update to 2019.9.26 +- Python3 only this version remove support for Python <= 3.4 + +* Mon Oct 21 2019 Miro Hrončok - 2019.8.11-2 +- Do not bring Python 2 BuildRequires when not building the Python 2 package + +* Mon Sep 09 2019 Sérgio Basto - 2019.8.11-1 +- Update to 2019.8.11 +- Build python3-html2text on epel 7 (#1740322) +- Drop python2 on Fedora >= 31 (#1741010) +- Remove Obsoletes: html2text (#1314105) + +* Mon Aug 19 2019 Miro Hrončok - 2018.1.9-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 2018.1.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Mar 28 2019 Sérgio Basto - 2018.1.9-1 +- Update to 2018.1.9 +- Some cleanups, simplify spec and use symbol links +- Fix Obsoletes/Provides + +* Sat Feb 02 2019 Fedora Release Engineering - 2016.9.19-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 2016.9.19-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 2016.9.19-6 +- Rebuilt for Python 3.7 + +* Mon Feb 12 2018 Iryna Shcherbina - 2016.9.19-5 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 2016.9.19-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2016.9.19-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 2016.9.19-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Jan 25 2017 Björn Esser - 2016.9.19-1 +- Update to latest upstream +- Package license and documentation +- Adapt to recent guidelines +- Fix other packaging issues + +* Mon Dec 19 2016 Miro Hrončok - 2015.6.6-7 +- Rebuild for Python 3.6 + +* Tue Jul 19 2016 Fedora Release Engineering - 2015.6.6-6 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Feb 04 2016 Fedora Release Engineering - 2015.6.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 07 2015 Matěj Cepl - 2015.6.6-4 +- Provide/Obsolete html2text package. (#1288748) +- Temporarily switch off tests. + +* Tue Nov 10 2015 Fedora Release Engineering - 2015.6.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Jun 18 2015 Fedora Release Engineering - 2015.6.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Tue Jun 09 2015 Matej Cepl - 2015.6.6-1 - Upgrade to the latest upstream (RHBZ #1229552) diff --git a/sources b/sources index 43cdffc..03c28dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c03ae2481d7abddb01c14bbee4c1e85f html2text-2015.6.6.tar.gz +SHA512 (html2text-2025.4.15.tar.gz) = 2f12e293bb8aa87b4d03d3ec4698e8e8bf013acc9f69b25a2c7a1aacca9a8aaf646747c56a47bc15dae0601ecdc119ba4818daca933d4be7fa52f234c672d9f3 diff --git a/tests/smoke.fmf b/tests/smoke.fmf new file mode 100644 index 0000000..efee66a --- /dev/null +++ b/tests/smoke.fmf @@ -0,0 +1,2 @@ +summary: A simple smoke test +test: ./smoke.py diff --git a/tests/smoke.py b/tests/smoke.py new file mode 100755 index 0000000..7c65c2e --- /dev/null +++ b/tests/smoke.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import html2text + +html = """ + + +

heading

+
  • item
+ + +""" + +text = html2text.html2text(html) + +print(text) + +if "### heading" not in text: + print("Heading not converted.") + raise SystemExit(1) + +if "* item" not in text: + print("List item not converted.") + raise SystemExit(1) diff --git a/tests/unit.fmf b/tests/unit.fmf new file mode 100644 index 0000000..fe58d22 --- /dev/null +++ b/tests/unit.fmf @@ -0,0 +1,3 @@ +summary: Run the upstream test suite +test: cd ../html2text-*/ && python3 -m pytest +require: python3-pytest