From f133947b55a436e230bd5f8bd66ce1157c5982f7 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Oct 26 2017 10:04:01 +0000 Subject: [PATCH 1/6] packaging: use %systemd_requires Signed-off-by: Igor Gnatenko --- diff --git a/files/pagure.spec b/files/pagure.spec index 0d1543b..9f1656f 100644 --- a/files/pagure.spec +++ b/files/pagure.spec @@ -98,9 +98,7 @@ Summary: Milter to integrate pagure with emails BuildArch: noarch BuildRequires: systemd-devel Requires: python-pymilter -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} # It would work with sendmail but we configure things (like the tempfile) # to work with postfix Requires: postfix @@ -117,9 +115,7 @@ BuildRequires: systemd-devel Requires: python-redis Requires: python-trollius Requires: python-trollius-redis -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description ev Pagure comes with an eventsource server allowing live update of the pages supporting it. This package provides it. @@ -133,9 +129,7 @@ BuildRequires: systemd-devel Requires: python-redis Requires: python-trollius Requires: python-trollius-redis -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description webhook Pagure comes with an webhook server allowing http callbacks for any action done on a project. This package provides it. @@ -150,9 +144,7 @@ Requires: python-redis Requires: python-trollius Requires: python-trollius-redis Requires: python-jenkins -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description ci Pagure comes with a continuous integration service, currently supporting only jenkins but extendable to others. @@ -168,9 +160,7 @@ BuildRequires: systemd-devel Requires: python-redis Requires: python-trollius Requires: python-trollius-redis -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description logcom pagure-logcom contains the service that logs commits into the database so that the activity calendar heatmap is filled. @@ -184,9 +174,7 @@ BuildRequires: systemd-devel Requires: python-redis Requires: python-trollius Requires: python-trollius-redis -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?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 From 246c1be01b127c74f47d3b95bf840df9eb6721dd Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Oct 26 2017 10:04:01 +0000 Subject: [PATCH 2/6] packaging: add missing %systemd_requires for main package There are %post/%postun/etc. scripts in main package requiring systemd while Requires are missing. Signed-off-by: Igor Gnatenko --- diff --git a/files/pagure.spec b/files/pagure.spec index 9f1656f..f0eb280 100644 --- a/files/pagure.spec +++ b/files/pagure.spec @@ -82,6 +82,8 @@ Requires: python-munch Requires: python-redis Requires: mod_wsgi +%{?systemd_requires} + # No dependency of the app per se, but required to make it working. Requires: gitolite3 From ffa1c4b58cac52f1d54172430376a3a41fe3ae0d Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Oct 26 2017 10:04:01 +0000 Subject: [PATCH 3/6] packaging: use %python2_sitelib with python2 prefix Signed-off-by: Igor Gnatenko --- diff --git a/files/pagure.spec b/files/pagure.spec index f0eb280..8edbf22 100644 --- a/files/pagure.spec +++ b/files/pagure.spec @@ -329,8 +329,8 @@ install -m 644 pagure-loadjson/pagure_loadjson.service \ %config(noreplace) %{_datadir}/pagure/*.wsgi %{_datadir}/pagure/*.py* %{_datadir}/pagure/alembic/ -%{python_sitelib}/pagure/ -%{python_sitelib}/pagure*.egg-info +%{python2_sitelib}/pagure/ +%{python2_sitelib}/pagure*.egg-info %{_bindir}/pagure-admin %{_unitdir}/pagure_worker.service %{_unitdir}/pagure_gitolite_worker.service From ef0e783cb1193669ff9f4aae1c6ab1d03605f97b Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Oct 26 2017 10:04:01 +0000 Subject: [PATCH 4/6] packaging: use %py2_build/%py2_install macro Signed-off-by: Igor Gnatenko --- diff --git a/files/pagure.spec b/files/pagure.spec index 8edbf22..37f4c07 100644 --- a/files/pagure.spec +++ b/files/pagure.spec @@ -188,11 +188,11 @@ in the future pull-requests) git repo. %build -%{__python2} setup.py build +%py2_build %install -%{__python2} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT +%py2_install # Install apache configuration file mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/ From 8692026ca56f088869a6287ba76fb21f70265fa0 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Oct 26 2017 10:04:01 +0000 Subject: [PATCH 5/6] packaging: preserve timestamps when installing files Signed-off-by: Igor Gnatenko --- diff --git a/files/pagure.spec b/files/pagure.spec index 37f4c07..d0c59e5 100644 --- a/files/pagure.spec +++ b/files/pagure.spec @@ -196,32 +196,32 @@ in the future pull-requests) git repo. # Install apache configuration file mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/ -install -m 644 files/pagure.conf $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/pagure.conf +install -p -m 644 files/pagure.conf $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/pagure.conf # Install configuration file mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/pagure -install -m 644 files/pagure.cfg.sample $RPM_BUILD_ROOT/%{_sysconfdir}/pagure/pagure.cfg +install -p -m 644 files/pagure.cfg.sample $RPM_BUILD_ROOT/%{_sysconfdir}/pagure/pagure.cfg # Install WSGI file mkdir -p $RPM_BUILD_ROOT/%{_datadir}/pagure -install -m 644 files/pagure.wsgi $RPM_BUILD_ROOT/%{_datadir}/pagure/pagure.wsgi -install -m 644 files/doc_pagure.wsgi $RPM_BUILD_ROOT/%{_datadir}/pagure/doc_pagure.wsgi +install -p -m 644 files/pagure.wsgi $RPM_BUILD_ROOT/%{_datadir}/pagure/pagure.wsgi +install -p -m 644 files/doc_pagure.wsgi $RPM_BUILD_ROOT/%{_datadir}/pagure/doc_pagure.wsgi # Install the createdb script -install -m 644 createdb.py $RPM_BUILD_ROOT/%{_datadir}/pagure/pagure_createdb.py +install -p -m 644 createdb.py $RPM_BUILD_ROOT/%{_datadir}/pagure/pagure_createdb.py # Install the api_key_expire_mail.py script -install -m 644 createdb.py $RPM_BUILD_ROOT/%{_datadir}/pagure/api_key_expire_mail.py +install -p -m 644 createdb.py $RPM_BUILD_ROOT/%{_datadir}/pagure/api_key_expire_mail.py # Install the alembic configuration file -install -m 644 files/alembic.ini $RPM_BUILD_ROOT/%{_sysconfdir}/pagure/alembic.ini +install -p -m 644 files/alembic.ini $RPM_BUILD_ROOT/%{_sysconfdir}/pagure/alembic.ini # Install the alembic revisions cp -r alembic $RPM_BUILD_ROOT/%{_datadir}/pagure # Install the systemd file for the worker mkdir -p $RPM_BUILD_ROOT/%{_unitdir} -install -m 644 files/pagure_worker.service \ +install -p -m 644 files/pagure_worker.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_worker.service install -p -m 644 files/pagure_gitolite_worker.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_gitolite_worker.service @@ -229,46 +229,46 @@ install -p -m 644 files/pagure_gitolite_worker.service \ # Install the milter files mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/pagure mkdir -p $RPM_BUILD_ROOT/%{_tmpfilesdir} -install -m 0644 pagure-milters/milter_tempfile.conf \ +install -p -m 0644 pagure-milters/milter_tempfile.conf \ $RPM_BUILD_ROOT/%{_tmpfilesdir}/%{name}-milter.conf -install -m 644 pagure-milters/pagure_milter.service \ +install -p -m 644 pagure-milters/pagure_milter.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_milter.service -install -m 644 pagure-milters/comment_email_milter.py \ +install -p -m 644 pagure-milters/comment_email_milter.py \ $RPM_BUILD_ROOT/%{_datadir}/pagure/comment_email_milter.py # Install the eventsource mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/pagure-ev -install -m 755 pagure-ev/pagure_stream_server.py \ +install -p -m 755 pagure-ev/pagure_stream_server.py \ $RPM_BUILD_ROOT/%{_libexecdir}/pagure-ev/pagure_stream_server.py -install -m 644 pagure-ev/pagure_ev.service \ +install -p -m 644 pagure-ev/pagure_ev.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_ev.service # Install the web-hook mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/pagure-webhook -install -m 755 pagure-webhook/pagure-webhook-server.py \ +install -p -m 755 pagure-webhook/pagure-webhook-server.py \ $RPM_BUILD_ROOT/%{_libexecdir}/pagure-webhook/pagure-webhook-server.py -install -m 644 pagure-webhook/pagure_webhook.service \ +install -p -m 644 pagure-webhook/pagure_webhook.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_webhook.service # Install the ci service mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/pagure-ci -install -m 755 pagure-ci/pagure_ci_server.py \ +install -p -m 755 pagure-ci/pagure_ci_server.py \ $RPM_BUILD_ROOT/%{_libexecdir}/pagure-ci/pagure_ci_server.py -install -m 644 pagure-ci/pagure_ci.service \ +install -p -m 644 pagure-ci/pagure_ci.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_ci.service # Install the logcom service mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/pagure-logcom -install -m 755 pagure-logcom/pagure_logcom_server.py \ +install -p -m 755 pagure-logcom/pagure_logcom_server.py \ $RPM_BUILD_ROOT/%{_libexecdir}/pagure-logcom/pagure_logcom_server.py -install -m 644 pagure-logcom/pagure_logcom.service \ +install -p -m 644 pagure-logcom/pagure_logcom.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_logcom.service # Install the loadjson service mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/pagure-loadjson -install -m 755 pagure-loadjson/pagure_loadjson_server.py \ +install -p -m 755 pagure-loadjson/pagure_loadjson_server.py \ $RPM_BUILD_ROOT/%{_libexecdir}/pagure-loadjson/pagure_loadjson_server.py -install -m 644 pagure-loadjson/pagure_loadjson.service \ +install -p -m 644 pagure-loadjson/pagure_loadjson.service \ $RPM_BUILD_ROOT/%{_unitdir}/pagure_loadjson.service From 4b6b8d694e3a52a1f64cd3a321a4e8bfcba4ea57 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Oct 26 2017 10:04:01 +0000 Subject: [PATCH 6/6] packaging: drop unneeded python_sitelib definition Signed-off-by: Igor Gnatenko --- diff --git a/files/pagure.spec b/files/pagure.spec index d0c59e5..484acd7 100644 --- a/files/pagure.spec +++ b/files/pagure.spec @@ -1,6 +1,3 @@ -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from -%distutils.sysconfig import get_python_lib; print (get_python_lib())")} - Name: pagure Version: 3.10.1 Release: 1%{?dist}