File project.diff of Package pagure

--- pagure.changes.orig
+++ pagure.changes
@@ -1,4 +1,9 @@
 -------------------------------------------------------------------
+Thu Oct  3 20:20:52 UTC 2024 - Georg Pfuetzenreuter <mail+rpm@georg-pfuetzenreuter.net>
+
+- Build for Python 3.11
+
+-------------------------------------------------------------------
 Sat Aug 17 11:28:25 UTC 2024 - Georg Pfuetzenreuter <mail+rpm@georg-pfuetzenreuter.net>
 
 - Add pagure-pygit2.patch to repair service startup on Leap 15.6 and Tumbleweed
--- pagure.spec.orig
+++ pagure.spec
@@ -17,10 +17,15 @@
 #
 
 
+%{?sle15_python_module_pythons}
+
+%define mypython python311
+%define __python3 %__python311
+
 # Prevent dep generators from trying to process static stuff and stall out
 # We only need to read the python metadata anyway
-%global __provides_exclude_from ^%{python3_sitelib}/pagure/.*$
-%global __requires_exclude_from ^%{python3_sitelib}/pagure/.*$
+%global __provides_exclude_from ^%{python_sitelib}/pagure/.*$
+%global __requires_exclude_from ^%{python_sitelib}/pagure/.*$
 
 Name:           pagure
 Version:        5.14.1
@@ -52,87 +57,89 @@ Patch1002:      pagure-pygit2.patch
 
 BuildArch:      noarch
 
+BuildRequires:  %{python_module devel}
+BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  apache2
 BuildRequires:  fdupes
 BuildRequires:  nginx
-BuildRequires:  python3-devel
-BuildRequires:  python3-setuptools
 BuildRequires:  systemd-rpm-macros
 
-BuildRequires:  python3-Flask
-BuildRequires:  python3-Flask-WTF
-BuildRequires:  python3-Markdown
-BuildRequires:  python3-Pillow
-BuildRequires:  python3-alembic
-BuildRequires:  python3-arrow
-BuildRequires:  python3-bcrypt
-BuildRequires:  python3-binaryornot
-BuildRequires:  python3-bleach
-BuildRequires:  python3-blinker
-BuildRequires:  python3-chardet
-BuildRequires:  python3-cryptography
-BuildRequires:  python3-docutils
-BuildRequires:  python3-email_validator
-BuildRequires:  python3-psutil
-BuildRequires:  python3-pygit2 >= 0.26.0
-#BuildRequires:      python3-fedora-flask
-BuildRequires:  python3-python3-openid
-BuildRequires:  python3-SQLAlchemy >= 0.8
-BuildRequires:  python3-WTForms
-BuildRequires:  python3-munch
-BuildRequires:  python3-python-openid-cla
-BuildRequires:  python3-python-openid-teams
-BuildRequires:  python3-redis
-BuildRequires:  python3-straight-plugin
-BuildRequires:  python3-whitenoise
+BuildRequires:  %{python_module Flask-WTF}
+BuildRequires:  %{python_module Flask}
+BuildRequires:  %{python_module Markdown}
+BuildRequires:  %{python_module Pillow}
+BuildRequires:  %{python_module alembic}
+BuildRequires:  %{python_module arrow}
+BuildRequires:  %{python_module bcrypt}
+BuildRequires:  %{python_module binaryornot}
+BuildRequires:  %{python_module bleach}
+BuildRequires:  %{python_module blinker}
+BuildRequires:  %{python_module chardet}
+BuildRequires:  %{python_module cryptography}
+BuildRequires:  %{python_module docutils}
+BuildRequires:  %{python_module email_validator}
+BuildRequires:  %{python_module psutil}
+BuildRequires:  %{python_module pygit2 >= 0.26.0}
+#BuildRequires:     #{python_module fedora-flask}
+BuildRequires:  %{python_module python3-openid}
+BuildRequires:  %{python_module SQLAlchemy >= 0.8}
+BuildRequires:  %{python_module WTForms}
+BuildRequires:  %{python_module munch}
+BuildRequires:  %{python_module python-openid-cla}
+BuildRequires:  %{python_module python-openid-teams}
+BuildRequires:  %{python_module redis}
+BuildRequires:  %{python_module straight-plugin}
+BuildRequires:  %{python_module whitenoise}
 
 # We require OpenSSH 7.4+ for SHA256 support
 Requires:       openssh >= 7.4
 
-Requires:       python3-Flask
-Requires:       python3-Flask-WTF
-Requires:       python3-Markdown
-Requires:       python3-Pillow
-Requires:       python3-alembic
-Requires:       python3-arrow
-Requires:       python3-bcrypt
-Requires:       python3-binaryornot
-Requires:       python3-bleach
-Requires:       python3-blinker
-Requires:       python3-celery
-Requires:       python3-chardet
-Requires:       python3-cryptography
-Requires:       python3-docutils
-Requires:       python3-email_validator
-Requires:       python3-psutil
-Requires:       python3-pygit2 >= 0.26.0
-#Requires:           python3-fedora-flask
-Requires:       python3-python3-openid
-Requires:       python3-SQLAlchemy > 0.8
-Requires:       python3-WTForms
-Requires:       python3-munch
-Requires:       python3-python-openid-cla
-Requires:       python3-python-openid-teams
-Requires:       python3-redis
-Requires:       python3-straight-plugin
-Requires:       python3-whitenoise
+Requires:       %{mypython}-Flask
+Requires:       %{mypython}-Flask-WTF
+Requires:       %{mypython}-Markdown
+Requires:       %{mypython}-Pillow
+Requires:       %{mypython}-alembic
+Requires:       %{mypython}-arrow
+Requires:       %{mypython}-bcrypt
+Requires:       %{mypython}-binaryornot
+Requires:       %{mypython}-bleach
+Requires:       %{mypython}-blinker
+Requires:       %{mypython}-celery
+Requires:       %{mypython}-chardet
+Requires:       %{mypython}-cryptography
+Requires:       %{mypython}-docutils
+Requires:       %{mypython}-email_validator
+Requires:       %{mypython}-psutil
+Requires:       %{mypython}-pygit2 >= 0.26.0
+#Requires:           #{mypython}-fedora-flask
+Requires:       %{mypython}-python3-openid
+Requires:       %{mypython}-SQLAlchemy > 0.8
+Requires:       %{mypython}-WTForms
+Requires:       %{mypython}-munch
+Requires:       %{mypython}-python-openid-cla
+Requires:       %{mypython}-python-openid-teams
+Requires:       %{mypython}-redis
+Requires:       %{mypython}-straight-plugin
+Requires:       %{mypython}-whitenoise
 
 # Required for celery
-Requires:       python3-pytz
+Requires:       %{mypython}-pytz
 
 # Required for database setup/migrations
-Requires:       python3-dbm
-Requires:       python3-kitchen
-Requires:       python3-requests
+Requires:       %{mypython}-dbm
+Requires:       %{mypython}-kitchen
+Requires:       %{mypython}-requests
 
 # We want to use cchardet whenever it's available
-Recommends:     python3-cchardet
+Recommends:     %{mypython}-cchardet
 
 # If using PostgreSQL, the correct driver should be installed
-Recommends:     (python3-psycopg2 if postgresql-server)
+Recommends:     (%{mypython}-psycopg2 if postgresql-server)
 
 # If using MariaDB/MySQL, the correct driver should be installed
-Recommends:     (python3-PyMySQL if mysql-server)
+Recommends:     (%{mypython}-PyMySQL if mysql-server)
 
 # If using Apache web server, the correct configuration should be installed
 Recommends:     (%{name}-web-apache-httpd if apache2)
@@ -178,9 +185,9 @@ a Pagure server using the Apache HTTPD s
 
 %package            web-nginx
 Summary:        Nginx configuration for Pagure
+Requires:       %{mypython}-gunicorn
 Requires:       %{name} = %{version}-%{release}
 Requires:       nginx
-Requires:       python3-gunicorn
 
 %description        web-nginx
 This package provides the configuration files for deploying
@@ -243,8 +250,8 @@ a Pagure server running on openSUSE.
 %package            milters
 Summary:        Milter to integrate pagure with emails
 BuildRequires:  systemd-rpm-macros
+Requires:       %{mypython}-pymilter
 Requires:       %{name} = %{version}-%{release}
-Requires:       python3-pymilter
 %{?systemd_requires}
 # It would work with sendmail but we configure things (like the tempfile)
 # to work with postfix
@@ -257,8 +264,8 @@ This is useful for example to allow comm
 %package            ev
 Summary:        EventSource server for pagure
 BuildRequires:  systemd-rpm-macros
+Requires:       %{mypython}-Trololio
 Requires:       %{name} = %{version}-%{release}
-Requires:       python3-Trololio
 %{?systemd_requires}
 
 %description        ev
@@ -278,8 +285,8 @@ done on a project. This package provides
 %package            ci
 Summary:        A CI service for pagure
 BuildRequires:  systemd-rpm-macros
+Requires:       %{mypython}-python-jenkins
 Requires:       %{name} = %{version}-%{release}
-Requires:       python3-python-jenkins
 %{?systemd_requires}
 
 %description        ci
@@ -330,10 +337,10 @@ sed -e "s/import flask_fas_openid/from p
 install -pm 0644 %{SOURCE10} README.SUSE
 
 %build
-%py3_build
+%pyproject_wheel
 
 %install
-%py3_install
+%pyproject_install
 
 # Install apache configuration file
 mkdir -p %{buildroot}/%{_sysconfdir}/apache2/vhosts.d
@@ -448,29 +455,29 @@ install -p -m 644 pagure-ev/pagure_ev.se
 sed -e "s|/usr/libexec|%{_libexecdir}|g" -i %{buildroot}/%{_unitdir}/*.service
 
 # Change default_config.py to use the correct libexecdir
-sed -e "s|/usr/libexec|%{_libexecdir}|g" -i %{buildroot}/%{python3_sitelib}/pagure/default_config.py
+sed -e "s|/usr/libexec|%{_libexecdir}|g" -i %{buildroot}/%{python_sitelib}/pagure/default_config.py
 
 # Fix the shebang for various scripts
 sed -e "s|#!/usr/bin/env python|#!%{__python3}|" -i \
     %{buildroot}/%{_libexecdir}/pagure-ev/*.py \
     %{buildroot}/%{_libexecdir}/pagure/*.py \
     %{buildroot}/%{_datadir}/pagure/*.py \
-    %{buildroot}/%{python3_sitelib}/pagure/hooks/files/*.py \
-    %{buildroot}/%{python3_sitelib}/pagure/hooks/files/hookrunner \
-    %{buildroot}/%{python3_sitelib}/pagure/hooks/files/post-receive \
-    %{buildroot}/%{python3_sitelib}/pagure/hooks/files/pre-receive \
-    %{buildroot}/%{python3_sitelib}/pagure/hooks/files/repospannerhook
+    %{buildroot}/%{python_sitelib}/pagure/hooks/files/*.py \
+    %{buildroot}/%{python_sitelib}/pagure/hooks/files/hookrunner \
+    %{buildroot}/%{python_sitelib}/pagure/hooks/files/post-receive \
+    %{buildroot}/%{python_sitelib}/pagure/hooks/files/pre-receive \
+    %{buildroot}/%{python_sitelib}/pagure/hooks/files/repospannerhook
 
 # Switch interpreter for systemd units to correct Python interpreter
 sed -e "s|/usr/bin/python|%{__python3}|g" -i %{buildroot}/%{_unitdir}/*.service
 
 # Make symlinks for default theme packages
-mv %{buildroot}/%{python3_sitelib}/pagure/themes/default %{buildroot}/%{python3_sitelib}/pagure/themes/upstream
-ln -sr %{buildroot}/%{python3_sitelib}/pagure/themes/upstream %{buildroot}/%{python3_sitelib}/pagure/themes/default
-ln -sr %{buildroot}/%{python3_sitelib}/pagure/themes/chameleon %{buildroot}/%{python3_sitelib}/pagure/themes/default.openSUSE
+mv %{buildroot}/%{python_sitelib}/pagure/themes/default %{buildroot}/%{python_sitelib}/pagure/themes/upstream
+ln -sr %{buildroot}/%{python_sitelib}/pagure/themes/upstream %{buildroot}/%{python_sitelib}/pagure/themes/default
+ln -sr %{buildroot}/%{python_sitelib}/pagure/themes/chameleon %{buildroot}/%{python_sitelib}/pagure/themes/default.openSUSE
 
 # Run fdupes
-%fdupes %{buildroot}/%{python3_sitelib}
+%fdupes %{buildroot}/%{python_sitelib}
 %fdupes doc/_build/html
 
 # Make log directory and files
@@ -486,8 +493,8 @@ done
 runnerhooks="post-receive pre-receive"
 
 for runnerhook in $runnerhooks; do
-   rm -rf %{buildroot}/%{python3_sitelib}/pagure/hooks/files/$runnerhook
-   ln -sf hookrunner %{buildroot}/%{python3_sitelib}/pagure/hooks/files/$runnerhook
+   rm -rf %{buildroot}/%{python_sitelib}/pagure/hooks/files/$runnerhook
+   ln -sf hookrunner %{buildroot}/%{python_sitelib}/pagure/hooks/files/$runnerhook
 done
 
 # Make the rcFOO symlinks for systemd services
@@ -626,14 +633,14 @@ echo "See %{_docdir}/%{name}/README.SUSE
 %exclude %{_datadir}/pagure/comment_email_milter.py*
 %{_datadir}/pagure/alembic/
 %{_libexecdir}/pagure/
-%{python3_sitelib}/pagure/
-%exclude %{python3_sitelib}/pagure/themes/default
-%exclude %{python3_sitelib}/pagure/themes/default.openSUSE
-%exclude %{python3_sitelib}/pagure/themes/upstream
-%exclude %{python3_sitelib}/pagure/themes/pagureio
-%exclude %{python3_sitelib}/pagure/themes/srcfpo
-%exclude %{python3_sitelib}/pagure/themes/chameleon
-%{python3_sitelib}/pagure*.egg-info
+%{python_sitelib}/pagure/
+%exclude %{python_sitelib}/pagure/themes/default
+%exclude %{python_sitelib}/pagure/themes/default.openSUSE
+%exclude %{python_sitelib}/pagure/themes/upstream
+%exclude %{python_sitelib}/pagure/themes/pagureio
+%exclude %{python_sitelib}/pagure/themes/srcfpo
+%exclude %{python_sitelib}/pagure/themes/chameleon
+%{python_sitelib}/pagure-%{version}.dist-info
 %{_bindir}/pagure-admin
 %{_unitdir}/pagure_worker.service
 %{_unitdir}/pagure_authorized_keys_worker.service
@@ -675,27 +682,27 @@ echo "See %{_docdir}/%{name}/README.SUSE
 
 %files theme-upstream
 %license LICENSE
-%{python3_sitelib}/pagure/themes/upstream/
+%{python_sitelib}/pagure/themes/upstream/
 
 %files theme-pagureio
 %license LICENSE
-%{python3_sitelib}/pagure/themes/pagureio/
+%{python_sitelib}/pagure/themes/pagureio/
 
 %files theme-srcfpo
 %license LICENSE
-%{python3_sitelib}/pagure/themes/srcfpo/
+%{python_sitelib}/pagure/themes/srcfpo/
 
 %files theme-chameleon
 %license LICENSE
-%{python3_sitelib}/pagure/themes/chameleon/
+%{python_sitelib}/pagure/themes/chameleon/
 
 %files theme-default-upstream
 %license LICENSE
-%{python3_sitelib}/pagure/themes/default
+%{python_sitelib}/pagure/themes/default
 
 %files theme-default-openSUSE
 %license LICENSE
-%{python3_sitelib}/pagure/themes/default.openSUSE
+%{python_sitelib}/pagure/themes/default.openSUSE
 
 %files milters
 %license LICENSE
openSUSE Build Service is sponsored by