## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%global commit a6e5d92ca98b41d2054737c6c49fc0511da0c3c6
%global snapdate 20241124

Name:           python-engineio
Version:        4.10.1^%{snapdate}git%{sub %{commit} 1 7}
Release:        %autorelease
Summary:        Python Engine.IO server and client

# SPDX
License:        MIT
URL:            https://github.com/miguelgrinberg/python-engineio/
# The PyPY sdist now contains documentation and tests, but it still lacks the
# CHANGES.md file, so we continue to use a GitHub archive.
%dnl Source:         %{url}/archive/v%{version}/python-engineio-%{version}.tar.gz
Source:         %{url}/archive/%{commit}/python-engineio-%{commit}.tar.gz

# Downstream-only: patch out test coverage analysis
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
Patch:          0001-Downstream-only-patch-out-test-coverage-analysis.patch

BuildArch:      noarch
 
BuildRequires:  python3-devel

%global common_description %{expand:
Engine.IO is a lightweight transport protocol that enables real-time
bidirectional event-based communication between clients (typically, though not
always, web browsers) and a server. The official implementations of the client
and server components are written in JavaScript. This package provides Python
implementations of both, each with standard and asyncio variants.}

%description %{common_description}


%package -n     python3-engineio
Summary:        %{summary}

# Dropped in F41; can be removed in F45.
Obsoletes:      python-engineio-doc < 4.9.1-3

%description -n python3-engineio %{common_description}


%pyproject_extras_subpkg -n python3-engineio client asyncio_client


%prep
%autosetup -p1 -n python-engineio-%{commit}

# Remove pre-compiled/pre-minified browser build of
# https://github.com/socketio/engine.io from the examples, just to prove it is
# not shipped.
find examples -type f -name 'engine.io.js' -print -delete


%generate_buildrequires
%pyproject_buildrequires -x client,asyncio_client -t


%build
%pyproject_wheel


%install
%pyproject_install
%pyproject_save_files -l engineio


%check
# Since we may skip some tests, let’s do a “smoke test” for completeness. We
# omit the async drivers for eventlet (retired in Fedora 41 and later), gevent,
# and uwsgi, since there are no integration tests for them and they are not
# otherwise BuildRequires, and we don’t want to add them solely for this
# purpose.
%{pyproject_check_import \
    -e engineio.async_drivers.eventlet \
    -e engineio.async_drivers.gevent \
    -e engineio.async_drivers.gevent_uwsgi }

%pytest ${ignore-} -k "${k-}"


%files -n python3-engineio -f %{pyproject_files}
%doc CHANGES.md
%doc README.md
%doc SECURITY.md


%changelog
## START: Generated by rpmautospec
* Mon Nov 25 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 4.10.1^20241124gita6e5d92-1
- Package a post-release snapshot for Python 3.14 (fix RHBZ#2327989)

* Wed Oct 16 2024 Packit <hello@packit.dev> - 4.10.1-1
- Update to 4.10.1 upstream release
- Resolves: rhbz#2319067

* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.9.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Sat Jun 22 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 4.9.1-4
- Omit eventlet integration tests in F41+ (fix RHBZ#2291686)

* Sun Jun 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 4.9.1-3
- F41+: Stop building PDF documentation; drop -doc subpackage

* Sun Jun 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 4.9.1-2
- Stop packaging the examples

* Mon May 20 2024 Packit <hello@packit.dev> - 4.9.1-1
- Update to 4.9.1 upstream release
- Resolves: rhbz#2281563

* Wed Feb 07 2024 Packit <hello@packit.dev> - 4.9.0-1
- [packit] 4.9.0 upstream release
- Resolves rhbz#2263093

* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 07 2024 Packit <hello@packit.dev> - 4.8.2-1
- [packit] 4.8.2 upstream release
- Resolves rhbz#2257182

* Mon Jan 01 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 4.8.1-1
- Update to 4.8.1 (close RHBZ#2256247)

* Sun Dec 17 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.8.0-2
- Assert that %%pyproject_files contains a license file

* Sat Oct 28 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.8.0-1
- Update to 4.8.0 (close RHBZ#2238547)

* Tue Oct 17 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.7.1-1
- Update to 4.7.1

* Tue Sep 05 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.7.0-1
- Update to 4.7.0 (close RHBZ#2237330)

* Wed Aug 23 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.6.1-1
- Update to 4.6.1 (close RHBZ#2233085)

* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Thu Jul 06 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.5.1-1
- Update to 4.5.1 (close RHBZ#2220825)

* Thu Jun 29 2023 Python Maint <python-maint@redhat.com> - 4.4.1-5
- Rebuilt for Python 3.12

* Tue Jun 20 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.4.1-4
- Use new (rpm 4.17.1+) bcond style

* Thu Apr 20 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.4.1-1
- Update to 4.4.1 (close RHBZ#2188426)

* Sun Mar 19 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.4.0-2
- Patch out test coverage analysis

* Sun Mar 19 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.4.0-1
- Update to 4.4.0 (close RHBZ#2179209)

* Sun Mar 19 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.4-6
- Don’t assume %%_smp_mflags is -j%%_smp_build_ncpus

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Thu Oct 27 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.4-4
- Add missing patch file

* Thu Oct 27 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.4-3
- Apply upstream patch for Python 3.11 test failures

* Thu Sep 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.4-2
- Don’t ship package-lock.json files with the examples
- This keeps from having automated bugs filed for irrelevant CVE’s in NPM
  packages that are mentioned there. See RHBZ#2127005.

* Thu Aug 04 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.4-1
- Update to 4.3.4 (close RHBZ#2115112)

* Thu Aug 04 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.3-4
- Confirm that License is SPDX MIT (no License field change)

* Tue Jul 26 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.3-3
- Skip the tests that fail on Python 3.11 (close RHBZ#2094381)

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Thu Jul 07 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.3-1
- Update to 4.3.3 (close RHBZ#2103967)

* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 4.3.2-3
- Rebuilt for Python 3.11

* Wed Jun 08 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.2-2
- Partial fix for Python 3.11 FTBFS

* Sun May 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.2-1
- Update to 4.3.2 (close RHBZ#2078473)

* Sun May 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.1-3
- Drop eventlet workaround

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Wed Jan 12 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.1-1
- Update to 4.3.1 (close RHBZ#2039760)

* Sat Nov 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.0-2
- Reduce LaTeX PDF build verbosity

* Sat Nov 06 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.3.0-1
- Update to 4.3.0 (close RHBZ#2017728)

* Sat Nov 06 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.1-6
- Work around RHBZ#2017933

* Fri Oct 01 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.1-5
- Generate PDF instead of HTML Sphinx documentation.

* Mon Sep 13 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.1-4
- Let pyproject-rpm-macros handle the license file

* Sun Sep 12 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.1-3
- Drop BR on pyproject-rpm-macros, now implied by python3-devel

* Sun Sep 12 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.1-2
- Reduce spec file macro indirection

* Mon Aug 02 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.1-1
- Update to 4.2.1 (fixes RHBZ#1989114)

* Tue Jul 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.0-3
- Move %%generate_buildrequires after %%prep to make the spec file easier
  to follow

* Wed Jul 21 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.0-2
- No longer skip any tests

* Wed Jul 21 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 4.2.0-1
- Update to 4.2.0 (closes RHBZ#1978267)

* Sun Jul 04 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 3.14.2-2
- Fix typos in script to remove executable permissions from files without
  shebangs

* Sun Jul 04 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 3.13.1-1
- Update to 3.14.2 (last 3.x release)
- Drop python-engineio-3.13.1-all-tasks.patch, now upstream
- Fix spurious executable permissions (upstream PR#240)
- Remove .buildinfo file from HTML documentation

* Thu Jul 01 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 3.13.1-5
- Near-total spec file rewrite
- Removed obsolete practices like python_provide macro and manual Requires
- Added documentation and tests

* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 3.13.1-4
- Rebuilt for Python 3.10

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.13.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Sun Aug 09 2020 Mukundan Ragavan <nonamedotc@fedoraproject.org> - 3.13.2-1
- Disable tests temporarily (fixes FTBFS)

* Tue Aug 04 2020 Mukundan Ragavan <nonamedotc@fedoraproject.org> - 3.13.1-1
- Update to 3.13.1

* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.1-6
- Second attempt - Rebuilt for
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 3.11.1-4
- Rebuilt for Python 3.9

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Mon Dec 30 2019 Mukundan Ragavan <nonamedotc@gmail.com> - 3.11.1-2
- Use expand macro for description

* Sun Dec 22 2019 Mukundan Ragavan <nonamedotc@gmail.com> - 3.11.1-1
- Initial package.

## END: Generated by rpmautospec