File pagure.spec of Package pagure

#
# spec file for package pagure
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2021 Neal Gompa <ngompa13@gmail.com>.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


# 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/.*$

Name:           pagure
Version:        5.14.1
Release:        0
Summary:        A git-centered forge
Group:          Development/Tools/Version Control
# Pagure itself is GPL-2.0-or-later; flask_fas_openid.py is LGPL-2.1-or-later
License:        GPL-2.0-or-later AND LGPL-2.1-or-later
URL:            https://pagure.io/pagure
Source0:        https://pagure.io/pagure/archive/%{version}/%{name}-%{version}.tar.gz

# Vendor in the single file from python-fedora that's needed
# This way, we avoid having to pull in all of python-fedora
# This file is licensed LGPL-2.1-or-later, per https://github.com/fedora-infra/python-fedora/blob/develop/README.rst#license
Source1:        https://raw.githubusercontent.com/fedora-infra/python-fedora/4719f10b3af1cf068e969387eab7df7e935003cd/flask_fas_openid.py

# SUSE-specific README providing a quickstart guide
Source10:       pagure-README.SUSE

# Backports from upstream

# SUSE-specific fixes
## Change the defaults in the example config to match packaging
Patch1000:      pagure-5.0-default-example-cfg.patch
# PATCH-FIX-UPSTREAM 5486.patch https://pagure.io/pagure/pull-request/5486 dominik@wombacher.cc -- Use '==' instead of 'is' in template if condition because to work with older Jinja2 versions. Edge case, avoid 'KeyError' after pagure update if a cached session is used.
Patch1001:      5486.patch
# PATCH-FIX-UPSTREAM pagure-pygit2.patch -- PyGit2 renamed its files: https://github.com/libgit2/pygit2/commit/a8b2421bea55029296cc79ac7c1518b9885d8a6f
Patch1002:      pagure-pygit2.patch

BuildArch:      noarch

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

# 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

# Required for celery
Requires:       python3-pytz

# Required for database setup/migrations
Requires:       python3-dbm
Requires:       python3-kitchen
Requires:       python3-requests

# We want to use cchardet whenever it's available
Recommends:     python3-cchardet

# If using PostgreSQL, the correct driver should be installed
Recommends:     (python3-psycopg2 if postgresql-server)

# If using MariaDB/MySQL, the correct driver should be installed
Recommends:     (python3-PyMySQL if mysql-server)

# If using Apache web server, the correct configuration should be installed
Recommends:     (%{name}-web-apache-httpd if apache2)

# If using Nginx web server, the correct configuration should be installed
Recommends:     (%{name}-web-nginx if nginx)

# The default theme is required
Requires:       %{name}-theme-default

%{?systemd_ordering}

# We use the git tools for some actions due to deficiencies in libgit2 and pygit2
Requires:       git-core

# No dependency of the app per se, but required to make it working.
OrderWithRequires:  gitolite >= 3.0
Requires(pre):  gitolite >= 3.0
Requires:       gitolite >= 3.0
Requires(post): user(wwwrun)

%description
Pagure is a git-centered forge based on pygit2.

Currently, Pagure offers a web-interface for git repositories, a ticket
system and possibilities to create new projects, fork existing ones and
create/merge pull-requests across or within projects.

For steps on how to set up the system after installing this package,
please read %{_docdir}/%{name}/README.SUSE.

%package            web-apache-httpd
Summary:        Apache HTTPD configuration for Pagure
Requires:       %{name} = %{version}-%{release}
Requires:       apache2-mod_wsgi-python3
# Apache config moved out to its own subpackage
Obsoletes:      %{name} < 5.10
Conflicts:      %{name} < 5.10

%description        web-apache-httpd
This package provides the configuration files for deploying
a Pagure server using the Apache HTTPD server.

%package            web-nginx
Summary:        Nginx configuration for Pagure
Requires:       %{name} = %{version}-%{release}
Requires:       nginx
Requires:       python3-gunicorn

%description        web-nginx
This package provides the configuration files for deploying
a Pagure server using the Nginx web server.

%package            theme-upstream
Summary:        Base theme for the Pagure web interface
Requires:       %{name} = %{version}-%{release}

%description        theme-upstream
This package provides the web interface assets for styling
a Pagure server with the base upstream look and feel.

%package            theme-pagureio
Summary:        Pagure web interface theme used on Pagure.io
Requires:       %{name} = %{version}-%{release}

%description        theme-pagureio
This package provides the web interface assets for styling
a Pagure server with the same look and feel as Pagure.io.

%package            theme-srcfpo
Summary:        Pagure web interface theme used on src.fedoraproject.org
Requires:       %{name} = %{version}-%{release}

%description        theme-srcfpo
This package provides the web interface assets for styling
a Pagure server with the same look and feel as src.fedoraproject.org.

%package            theme-chameleon
Summary:        Pagure web interface theme based on openSUSE's chameleon theme
Requires:       %{name} = %{version}-%{release}

%description        theme-chameleon
This package provides the web interface assets for styling
a Pagure server with the same look and feel as openSUSE Infrastructure.

%package            theme-default-upstream
Summary:        Configuration for pagure to default to the upstream web interface theme
Conflicts:      %{name}-theme-default
Provides:       %{name}-theme-default
Requires:       %{name}-theme-upstream = %{version}-%{release}

%description        theme-default-upstream
This package sets the default web interface assets used for
a Pagure server running as shipped by upstream.

%package            theme-default-openSUSE
Summary:        Configuration for pagure to default to the openSUSE web interface theme
Conflicts:      %{name}-theme-default
Provides:       %{name}-theme-default
Requires:       %{name}-theme-chameleon = %{version}-%{release}
Enhances:       (%{name} and branding-openSUSE)
Removepathpostfixes: .openSUSE

%description        theme-default-openSUSE
This package sets the default web interface assets used for
a Pagure server running on openSUSE.

%package            milters
Summary:        Milter to integrate pagure with emails
BuildRequires:  systemd-rpm-macros
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
Requires:       postfix

%description        milters
Milters (Mail filters) allowing the integration of pagure and emails.
This is useful for example to allow commenting on a ticket by email.

%package            ev
Summary:        EventSource server for pagure
BuildRequires:  systemd-rpm-macros
Requires:       %{name} = %{version}-%{release}
Requires:       python3-Trololio
%{?systemd_requires}

%description        ev
Pagure comes with an eventsource server allowing live update of the pages
supporting it. This package provides it.

%package            webhook
Summary:        Web-Hook server for pagure
BuildRequires:  systemd-rpm-macros
Requires:       %{name} = %{version}-%{release}
%{?systemd_requires}

%description        webhook
Pagure comes with an webhook server allowing http callbacks for any action
done on a project. This package provides it.

%package            ci
Summary:        A CI service for pagure
BuildRequires:  systemd-rpm-macros
Requires:       %{name} = %{version}-%{release}
Requires:       python3-python-jenkins
%{?systemd_requires}

%description        ci
Pagure comes with a continuous integration service, currently supporting
only jenkins but extendable to others.
With this service, your CI server will be able to report the results of the
build on the pull-requests opened to your project.

%package            logcom
Summary:        The logcom service for pagure
BuildRequires:  systemd-rpm-macros
Requires:       %{name} = %{version}-%{release}
%{?systemd_requires}

%description        logcom
pagure-logcom contains the service that logs commits into the database so that
the activity calendar heatmap is filled.

%package            loadjson
Summary:        The loadjson service for pagure
BuildRequires:  systemd-rpm-macros
Requires:       %{name} = %{version}-%{release}
%{?systemd_requires}

%description        loadjson
pagure-loadjson is the service allowing to update the database with the
information provided in the JSON blobs that are stored in the tickets (and
in the future pull-requests) git repo.

%package            mirror
Summary:        The mirroring service for pagure
BuildRequires:  systemd-rpm-macros
Requires:       %{name} = %{version}-%{release}
%{?systemd_requires}

%description        mirror
pagure-mirror is the service mirroring projects that asked for it outside
of this pagure instance.

%prep
%autosetup -p1

# Vendor in the file needed from python-fedora
install -pm 0644 %{SOURCE1} pagure/ui
sed -e "s/import flask_fas_openid/from pagure.ui import flask_fas_openid as flask_fas_openid/" -i pagure/ui/fas_login.py

# Install README.SUSE file
install -pm 0644 %{SOURCE10} README.SUSE

%build
%py3_build

%install
%py3_install

# Install apache configuration file
mkdir -p %{buildroot}/%{_sysconfdir}/apache2/vhosts.d
install -p -m 644 files/pagure-apache-httpd.conf %{buildroot}/%{_sysconfdir}/apache2/vhosts.d/pagure.conf

# Install nginx configuration file
mkdir -p %{buildroot}/%{_sysconfdir}/nginx/vhosts.d/
install -p -m 644 files/pagure-nginx.conf %{buildroot}/%{_sysconfdir}/nginx/vhosts.d/pagure.conf

# Install configuration file
mkdir -p %{buildroot}/%{_sysconfdir}/pagure
install -p -m 644 files/pagure.cfg.sample %{buildroot}/%{_sysconfdir}/pagure/pagure.cfg

# Install WSGI file
mkdir -p %{buildroot}/%{_datadir}/pagure
install -p -m 644 files/pagure.wsgi %{buildroot}/%{_datadir}/pagure/pagure.wsgi
install -p -m 644 files/doc_pagure.wsgi %{buildroot}/%{_datadir}/pagure/doc_pagure.wsgi

# Install the createdb script
install -p -m 644 createdb.py %{buildroot}/%{_datadir}/pagure/pagure_createdb.py

# Install the api_key_expire_mail.py script
install -p -m 644 files/api_key_expire_mail.py %{buildroot}/%{_datadir}/pagure/api_key_expire_mail.py

# Install the mirror_project_in.py script
install -p -m 644 files/mirror_project_in.py %{buildroot}/%{_datadir}/pagure/mirror_project_in.py

# Install the keyhelper and aclcheck scripts
mkdir -p %{buildroot}/%{_libexecdir}/pagure
install -p -m 755 files/aclchecker.py %{buildroot}/%{_libexecdir}/pagure/aclchecker.py
install -p -m 755 files/keyhelper.py %{buildroot}/%{_libexecdir}/pagure/keyhelper.py

# Install the alembic configuration file
install -p -m 644 files/alembic.ini %{buildroot}/%{_sysconfdir}/pagure/alembic.ini

# Install the alembic revisions
cp -r alembic %{buildroot}/%{_datadir}/pagure

# Install the systemd file for the web frontend
mkdir -p %{buildroot}/%{_unitdir}
install -p -m 644 files/pagure_web.service \
    %{buildroot}/%{_unitdir}/pagure_web.service

# Install the systemd file for the docs web frontend
mkdir -p %{buildroot}/%{_unitdir}
install -p -m 644 files/pagure_docs_web.service \
    %{buildroot}/%{_unitdir}/pagure_docs_web.service

# Install the systemd file for the worker
mkdir -p %{buildroot}/%{_unitdir}
install -p -m 644 files/pagure_worker.service \
    %{buildroot}/%{_unitdir}/pagure_worker.service

# Install the systemd file for the authorized_keys worker
install -p -m 644 files/pagure_authorized_keys_worker.service \
    %{buildroot}/%{_unitdir}/pagure_authorized_keys_worker.service

# Install the systemd file for the gitolite worker
install -p -m 644 files/pagure_gitolite_worker.service \
    %{buildroot}/%{_unitdir}/pagure_gitolite_worker.service

# Install the systemd file for the web-hook
install -p -m 644 files/pagure_webhook.service \
    %{buildroot}/%{_unitdir}/pagure_webhook.service

# Install the systemd file for the ci service
install -p -m 644 files/pagure_ci.service \
    %{buildroot}/%{_unitdir}/pagure_ci.service

# Install the systemd file for the logcom service
install -p -m 644 files/pagure_logcom.service \
    %{buildroot}/%{_unitdir}/pagure_logcom.service

# Install the systemd file for the loadjson service
install -p -m 644 files/pagure_loadjson.service \
    %{buildroot}/%{_unitdir}/pagure_loadjson.service

# Install the systemd file for the mirror service
install -p -m 644 files/pagure_mirror.service \
    %{buildroot}/%{_unitdir}/pagure_mirror.service

# Install the systemd file for the script sending reminder about API key
# expiration
install -p -m 644 files/pagure_api_key_expire_mail.service \
    %{buildroot}/%{_unitdir}/pagure_api_key_expire_mail.service
install -p -m 644 files/pagure_api_key_expire_mail.timer \
    %{buildroot}/%{_unitdir}/pagure_api_key_expire_mail.timer

# Install the systemd file for the script updating mirrored project
install -p -m 644 files/pagure_mirror_project_in.service \
    %{buildroot}/%{_unitdir}/pagure_mirror_project_in.service
install -p -m 644 files/pagure_mirror_project_in.timer \
    %{buildroot}/%{_unitdir}/pagure_mirror_project_in.timer

# Install the milter files
mkdir -p %{buildroot}/%{_tmpfilesdir}
install -p -m 0644 pagure-milters/milter_tempfile.conf \
    %{buildroot}/%{_tmpfilesdir}/%{name}-milter.conf
install -p -m 644 pagure-milters/pagure_milter.service \
    %{buildroot}/%{_unitdir}/pagure_milter.service
install -p -m 644 pagure-milters/comment_email_milter.py \
    %{buildroot}/%{_datadir}/pagure/comment_email_milter.py

# Install the eventsource
mkdir -p %{buildroot}/%{_libexecdir}/pagure-ev
install -p -m 755 pagure-ev/pagure_stream_server.py \
    %{buildroot}/%{_libexecdir}/pagure-ev/pagure_stream_server.py
install -p -m 644 pagure-ev/pagure_ev.service \
    %{buildroot}/%{_unitdir}/pagure_ev.service

# Switch all systemd units to use the correct libexecdir
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

# 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

# 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

# Run fdupes
%fdupes %{buildroot}/%{python3_sitelib}
%fdupes doc/_build/html

# Make log directory and files
mkdir -p %{buildroot}/%{_localstatedir}/log/pagure
logfiles="web docs_web"

for logfile in $logfiles; do
   touch %{buildroot}/%{_localstatedir}/log/pagure/access_${logfile}.log
   touch %{buildroot}/%{_localstatedir}/log/pagure/error_${logfile}.log
done

# Regenerate clobbered symlinks (Cf. https://pagure.io/pagure/issue/3782)
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
done

# Make the rcFOO symlinks for systemd services
mkdir -p %{buildroot}/%{_sbindir}
paguresvcs="api_key_expire_mail ci ev authorized_keys_worker gitolite_worker loadjson logcom milter mirror webhook worker mirror_project_in"
for paguresvc in $paguresvcs; do
   ln -sf %{_sbindir}/service %{buildroot}/%{_sbindir}/rcpagure_$paguresvc
done

# Install the basic directory structure
mkdir -p %{buildroot}/srv/www/pagure-releases
mkdir -p %{buildroot}/srv/gitolite/pseudo
mkdir -p %{buildroot}/srv/gitolite/repositories/{,docs,forks,requests,tickets}
mkdir -p %{buildroot}/srv/gitolite/remotes
mkdir -p %{buildroot}/srv/gitolite/.gitolite/{conf,keydir,logs}
mkdir -p %{buildroot}/srv/gitolite/.ssh

# Add empty gitolite config file
touch %{buildroot}/srv/gitolite/.gitolite/conf/gitolite.conf

# Install gitolite rc file
install -p -m 644 files/gitolite3.rc %{buildroot}/srv/gitolite/.gitolite.rc

%pre
# Do nothing, but ensure dependency is evaluated...

%post
echo "Create wsgi rundir if it doesn't exist..."
mkdir -p /srv/www/run || :

echo "See %{_docdir}/%{name}/README.SUSE to continue"
%systemd_post pagure_worker.service
%systemd_post pagure_authorized_keys_worker.service
%systemd_post pagure_gitolite_worker.service
%systemd_post pagure_api_key_expire_mail.timer
%systemd_post pagure_mirror_project_in.timer

%post web-nginx
%systemd_post pagure_web.service
%systemd_post pagure_docs_web.service

%post milters
%tmpfiles_create %{_tmpfilesdir}/%{name}-milter.conf
%systemd_post pagure_milter.service

%post ev
%systemd_post pagure_ev.service

%post webhook
%systemd_post pagure_webhook.service

%post ci
%systemd_post pagure_ci.service

%post logcom
%systemd_post pagure_logcom.service

%post loadjson
%systemd_post pagure_loadjson.service

%post mirror
%systemd_post pagure_mirror.service

%preun
%systemd_preun pagure_worker.service
%systemd_preun pagure_authorized_keys_worker.service
%systemd_preun pagure_gitolite_worker.service
%systemd_preun pagure_api_key_expire_mail.timer
%systemd_preun pagure_mirror_project_in.timer

%preun web-nginx
%systemd_preun pagure_web.service
%systemd_preun pagure_docs_web.service

%preun milters
%systemd_preun pagure_milter.service

%preun ev
%systemd_preun pagure_ev.service

%preun webhook
%systemd_preun pagure_webhook.service

%preun ci
%systemd_preun pagure_ci.service

%preun logcom
%systemd_preun pagure_logcom.service

%preun loadjson
%systemd_preun pagure_loadjson.service

%preun mirror
%systemd_preun pagure_mirror.service

%postun
%systemd_postun_with_restart pagure_worker.service
%systemd_postun_with_restart pagure_authorized_keys_worker.service
%systemd_postun_with_restart pagure_gitolite_worker.service
%systemd_postun pagure_api_key_expire_mail.timer
%systemd_postun pagure_mirror_project_in.timer

%postun web-nginx
%systemd_postun_with_restart pagure_web.service
%systemd_postun_with_restart pagure_docs_web.service

%postun milters
%systemd_postun_with_restart pagure_milter.service

%postun ev
%systemd_postun_with_restart pagure_ev.service

%postun webhook
%systemd_postun_with_restart pagure_webhook.service

%postun ci
%systemd_postun_with_restart pagure_ci.service

%postun logcom
%systemd_postun_with_restart pagure_logcom.service

%postun loadjson
%systemd_postun_with_restart pagure_loadjson.service

%postun mirror
%systemd_postun_with_restart pagure_mirror.service

%files
%doc README.SUSE README.rst UPGRADING.rst files/gitolite3.rc files/pagure.cfg.sample
%license LICENSE
%config(noreplace) %{_sysconfdir}/pagure/pagure.cfg
%config(noreplace) %{_sysconfdir}/pagure/alembic.ini
%dir %{_sysconfdir}/pagure/
%dir %{_datadir}/pagure/
%{_datadir}/pagure/*.py*
%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
%{_bindir}/pagure-admin
%{_unitdir}/pagure_worker.service
%{_unitdir}/pagure_authorized_keys_worker.service
%{_unitdir}/pagure_gitolite_worker.service
%{_unitdir}/pagure_api_key_expire_mail.service
%{_unitdir}/pagure_api_key_expire_mail.timer
%{_unitdir}/pagure_mirror_project_in.service
%{_unitdir}/pagure_mirror_project_in.timer
%{_sbindir}/rcpagure_api_key_expire_mail
%{_sbindir}/rcpagure_worker
%{_sbindir}/rcpagure_authorized_keys_worker
%{_sbindir}/rcpagure_gitolite_worker
%{_sbindir}/rcpagure_mirror_project_in
# Pagure data content
%attr(-,git,git) %dir /srv/gitolite/pseudo
%attr(-,git,git) %dir /srv/gitolite/remotes
%attr(-,git,git) %dir /srv/gitolite/repositories/{,docs,forks,requests,tickets}
%attr(-,git,git) %dir /srv/gitolite/.gitolite/{,conf,keydir,logs}
%attr(750,git,git) %dir /srv/gitolite/.ssh
%attr(-,git,git) %config(noreplace) /srv/gitolite/.gitolite/conf/gitolite.conf
%attr(-,git,git) %config(noreplace) /srv/gitolite/.gitolite.rc
%attr(-,git,git) %dir /srv/www/pagure-releases
%attr(-,git,git) %dir %{_localstatedir}/log/pagure

%files web-apache-httpd
%license LICENSE
%doc files/pagure-apache-httpd.conf
%config(noreplace) %{_sysconfdir}/apache2/vhosts.d/pagure.conf
%config(noreplace) %{_datadir}/pagure/*.wsgi

%files web-nginx
%license LICENSE
%doc files/pagure-nginx.conf
%config(noreplace) %{_sysconfdir}/nginx/vhosts.d/pagure.conf
%{_unitdir}/pagure_web.service
%{_unitdir}/pagure_docs_web.service
%ghost %{_localstatedir}/log/pagure/access_*.log
%ghost %{_localstatedir}/log/pagure/error_*.log

%files theme-upstream
%license LICENSE
%{python3_sitelib}/pagure/themes/upstream/

%files theme-pagureio
%license LICENSE
%{python3_sitelib}/pagure/themes/pagureio/

%files theme-srcfpo
%license LICENSE
%{python3_sitelib}/pagure/themes/srcfpo/

%files theme-chameleon
%license LICENSE
%{python3_sitelib}/pagure/themes/chameleon/

%files theme-default-upstream
%license LICENSE
%{python3_sitelib}/pagure/themes/default

%files theme-default-openSUSE
%license LICENSE
%{python3_sitelib}/pagure/themes/default.openSUSE

%files milters
%license LICENSE
%dir %{_datadir}/pagure/
%{_tmpfilesdir}/%{name}-milter.conf
%{_unitdir}/pagure_milter.service
%{_datadir}/pagure/comment_email_milter.py*
%{_sbindir}/rcpagure_milter

%files ev
%license LICENSE
%{_libexecdir}/pagure-ev/
%{_unitdir}/pagure_ev.service
%{_sbindir}/rcpagure_ev

%files webhook
%license LICENSE
%{_unitdir}/pagure_webhook.service
%{_sbindir}/rcpagure_webhook

%files ci
%license LICENSE
%{_unitdir}/pagure_ci.service
%{_sbindir}/rcpagure_ci

%files logcom
%license LICENSE
%{_unitdir}/pagure_logcom.service
%{_sbindir}/rcpagure_logcom

%files loadjson
%license LICENSE
%{_unitdir}/pagure_loadjson.service
%{_sbindir}/rcpagure_loadjson

%files mirror
%license LICENSE
%{_unitdir}/pagure_mirror.service
%{_sbindir}/rcpagure_mirror

%changelog
openSUSE Build Service is sponsored by