EPEL10 GitHub workflow added - RPM Building (#1460)

This commit is contained in:
Chris Caron
2025-12-01 21:29:08 -05:00
committed by GitHub
parent 890e24a1ea
commit 4109cf105d
13 changed files with 250 additions and 106 deletions

View File

@@ -5,11 +5,11 @@ Let me know if you'd like to help me host on more platforms or can offer to do i
### RPM Based Packages
* [EPEL](https://fedoraproject.org/wiki/EPEL) based distributions are only supported if they are of v9 or higher. This includes:
* Red Hat 9.x (or higher)
* Scientific OS 9.x (or higher)
* Oracle Linux 9.x (or higher)
* Rocky Linux 9.x (or higher)
* Alma Linux 9.x (or higher)
* Red Hat 10.x (or higher)
* Scientific OS 10.x (or higher)
* Oracle Linux 10.x (or higher)
* Rocky Linux 10.x (or higher)
* Alma Linux 110.x (or higher)
* Fedora 29 (or higher)
Provided you are connected to the [EPEL repositories](https://fedoraproject.org/wiki/EPEL), the following will just work for you:
@@ -21,7 +21,10 @@ dnf install python3-apprise apprise
You can build your own rpm packges with the following:
```bash
# EPEL9 (CentOS/Rocky/RedHat/Oracle Linux)
# EPEL10 (Rocky/RedHat/Oracle Linux)
tox -e build-el10-rpm
# EPEL9 (Rocky/RedHat/Oracle Linux)
tox -e build-el9-rpm
# Fedora 42

View File

@@ -0,0 +1,4 @@
from Config import *
# Ignore false-positive spelling errors on brand names
addFilter('spelling-error.*ntfy')

View File

@@ -0,0 +1,7 @@
from Config import *
# Ignore false-positive spelling errors on brand names
addFilter('spelling-error.*ntfy')
addFilter('spelling-error.*httpSMS')
addFilter('invalid-license BSD-2-Clause')
addFilter('obsolete-not-provided python.*-apprise')

View File

@@ -47,9 +47,11 @@
# - Prevent warnings:
# en_US ntfy -> notify
# en_US httpSMS -> HTTP
#
# rpmlint: ignore-spelling httpSMS ntfy
# - RHEL9 does not recognize: BSD-2-Clause which is correct
#
# rpmlint: ignore invalid-license
%global common_description %{expand: \
@@ -87,15 +89,15 @@ URL: https://github.com/caronc/%{pypi_name}
Source0: %{url}/archive/v%{version}/%{pypi_name}-%{version}.tar.gz
BuildArch: noarch
Obsoletes: python%{python3_pkgversion}-%{pypi_name} < %{version}-%{release}
Provides: python%{python3_pkgversion}-%{pypi_name} = %{version}-%{release}
%description %{common_description}
%package -n %{pypi_name}
Summary: Notify messaging platforms from the command line
Requires: python%{python3_pkgversion}-click >= 5.0
Obsoletes: %{pypi_name} < %{version}-%{release}
Provides: %{pypi_name} = %{version}-%{release}
Requires: python3dist(click) >= 5.0
Requires: python%{python3_pkgversion}-%{pypi_name} = %{version}-%{release}
%description -n %{pypi_name}
@@ -105,39 +107,44 @@ services.
%package -n python%{python3_pkgversion}-%{pypi_name}
Summary: A simple wrapper to many popular notification services used today
Obsoletes: python%{python3_pkgversion}-%{pypi_name} < %{version}-%{release}
%{?python_provide:%python_provide python%{python3_pkgversion}-%{pypi_name}}
BuildRequires: gettext
BuildRequires: python%{python3_pkgversion}-devel
%if %{legacy_python_build}
# backwards compatible
BuildRequires: python%{python3_pkgversion}-setuptools
BuildRequires: python3dist(setuptools)
%endif
BuildRequires: python%{python3_pkgversion}-wheel
BuildRequires: python%{python3_pkgversion}-requests
BuildRequires: python%{python3_pkgversion}-requests-oauthlib
BuildRequires: python%{python3_pkgversion}-click >= 5.0
BuildRequires: python%{python3_pkgversion}-markdown
BuildRequires: python%{python3_pkgversion}-yaml
BuildRequires: python%{python3_pkgversion}-babel
BuildRequires: python%{python3_pkgversion}-cryptography
BuildRequires: python%{python3_pkgversion}-certifi
BuildRequires: python%{python3_pkgversion}-tox
Requires: python%{python3_pkgversion}-requests
Requires: python%{python3_pkgversion}-requests-oauthlib
Requires: python%{python3_pkgversion}-markdown
Requires: python%{python3_pkgversion}-cryptography
Requires: python%{python3_pkgversion}-certifi
Requires: python%{python3_pkgversion}-yaml
Recommends: python%{python3_pkgversion}-paho-mqtt
BuildRequires: python3dist(wheel)
BuildRequires: python3dist(requests)
BuildRequires: python3dist(requests-oauthlib)
BuildRequires: python3dist(click) >= 5.0
BuildRequires: python3dist(markdown)
BuildRequires: python3dist(pyyaml)
BuildRequires: python3dist(babel)
BuildRequires: python3dist(cryptography)
BuildRequires: python3dist(certifi)
BuildRequires: python3dist(tox)
%if %{with tests}
BuildRequires: python%{python3_pkgversion}-pytest
BuildRequires: python%{python3_pkgversion}-pytest-mock
BuildRequires: python%{python3_pkgversion}-pytest-runner
BuildRequires: python%{python3_pkgversion}-pytest-cov
BuildRequires: python3dist(pytest)
BuildRequires: python3dist(pytest-mock)
BuildRequires: python3dist(pytest-runner)
BuildRequires: python3dist(pytest-cov)
%endif
Requires: python3dist(requests)
Requires: python3dist(requests-oauthlib)
Requires: python3dist(markdown)
Requires: python3dist(cryptography)
Requires: python3dist(certifi)
Requires: python3dist(pyyaml)
Recommends: python3dist(paho-mqtt)
%if 0%{?legacy_python_build} == 0
# Logic for non-RHEL ≤ 9 systems
%generate_buildrequires
@@ -203,18 +210,16 @@ LANG=C.UTF-8 PYTHONPATH=%{buildroot}%{python3_sitelib}:%{_builddir}/%{name}-%{ve
%{python3_sitelib}/%{pypi_name}/
# Exclude i18n as it is handled below with the lang(spoken) tag below
%exclude %{python3_sitelib}/%{pypi_name}/cli.*
# Handle egg-info to dist-info transfer
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
%{python3_sitelib}/apprise-*.dist-info/
%else
%{python3_sitelib}/apprise-*.egg-info
%endif
%exclude %{python3_sitelib}/%{pypi_name}/__pycache__/cli*.py?
%if %{legacy_python_build}
# Handle egg-info vs. dist-info based on build backend
%{python3_sitelib}/apprise-*.egg-info
# Legacy: include all compiled locales that we produced under the package tree
%{python3_sitelib}/%{pypi_name}/i18n/*/LC_MESSAGES/apprise.mo
%lang(en) %{python3_sitelib}/%{pypi_name}/i18n/en/LC_MESSAGES/apprise.mo
%else
# Handle egg-info vs. dist-info based on build backend
%{python3_sitelib}/apprise-*.dist-info/
# Localised Files
%exclude %{python3_sitelib}/%{pypi_name}/i18n/
%lang(en) %{python3_sitelib}/%{pypi_name}/i18n/en/LC_MESSAGES/apprise.mo
@@ -223,7 +228,7 @@ LANG=C.UTF-8 PYTHONPATH=%{buildroot}%{python3_sitelib}:%{_builddir}/%{name}-%{ve
%files -n %{pypi_name}
%{_bindir}/%{pypi_name}
%{_mandir}/man1/%{pypi_name}.1*
%{python3_sitelib}/%{pypi_name}/cli.*
%{python3_sitelib}/%{pypi_name}/cli.py
%{python3_sitelib}/%{pypi_name}/__pycache__/cli*.py?
%changelog