From 295a10a0715ba1eb15659d7addccdc95e8ccff65 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Thu, 4 Jul 2019 13:55:41 -0500 Subject: [PATCH] Use createrepo_c where possible add hourly createrepo call --- fdl-epel-5-i386.cfg | 2 +- fdl-epel-5-x86_64.cfg | 2 +- fdl-epel-6-i386.cfg | 2 +- fdl-epel-6-x86_64.cfg | 2 +- fdl-epel-7-x86_64.cfg | 2 +- fdl-fedora-28-i386.cfg | 2 +- fdl-fedora-28-x86_64.cfg | 2 +- fdl-fedora-29-i386.cfg | 2 +- fdl-fedora-29-x86_64.cfg | 2 +- fdl-fedora-30-i386.cfg | 2 +- fdl-fedora-30-x86_64.cfg | 2 +- fdl-trixbox-2.6-i386.cfg | 2 +- fdl-trixbox-2.8-i386.cfg | 2 +- fdragon-mock-configs.spec | 41 ++++++++++++++++++++----------- makerepo | 51 +++++++++++++++++++++++++++++++++++++++ 15 files changed, 91 insertions(+), 27 deletions(-) create mode 100644 makerepo diff --git a/fdl-epel-5-i386.cfg b/fdl-epel-5-i386.cfg index 2cb45c5..5bc57f5 100644 --- a/fdl-epel-5-i386.cfg +++ b/fdl-epel-5-i386.cfg @@ -10,7 +10,7 @@ config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['releasever'] = '5' config_opts['resultdir'] = '/var/www/html/packages/epel/5/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-epel-5-x86_64.cfg b/fdl-epel-5-x86_64.cfg index e453e6d..6d9a399 100644 --- a/fdl-epel-5-x86_64.cfg +++ b/fdl-epel-5-x86_64.cfg @@ -10,7 +10,7 @@ config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['releasever'] = '5' config_opts['resultdir'] = '/var/www/html/packages/epel/5/x86_64/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-epel-6-i386.cfg b/fdl-epel-6-i386.cfg index c57eec9..2cfe2eb 100644 --- a/fdl-epel-6-i386.cfg +++ b/fdl-epel-6-i386.cfg @@ -8,7 +8,7 @@ config_opts['releasever'] = '6' config_opts['use_nspawn'] = False config_opts['resultdir'] = '/var/www/html/packages/epel/6/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-epel-6-x86_64.cfg b/fdl-epel-6-x86_64.cfg index a9ff92a..78e0a53 100644 --- a/fdl-epel-6-x86_64.cfg +++ b/fdl-epel-6-x86_64.cfg @@ -8,7 +8,7 @@ config_opts['releasever'] = '6' config_opts['use_nspawn'] = False config_opts['resultdir'] = '/var/www/html/packages/epel/6/x86_64/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-epel-7-x86_64.cfg b/fdl-epel-7-x86_64.cfg index d7c7e96..cf888a4 100644 --- a/fdl-epel-7-x86_64.cfg +++ b/fdl-epel-7-x86_64.cfg @@ -6,7 +6,7 @@ config_opts['dist'] = 'el7' # only useful for --resultdir variable subst config_opts['releasever'] = '7' config_opts['resultdir'] = '/var/www/html/packages/epel/7/x86_64/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-fedora-28-i386.cfg b/fdl-fedora-28-i386.cfg index 375a22d..90eccda 100644 --- a/fdl-fedora-28-i386.cfg +++ b/fdl-fedora-28-i386.cfg @@ -8,7 +8,7 @@ config_opts['releasever'] = '28' config_opts['package_manager'] = 'dnf' config_opts['resultdir'] = '/var/www/html/packages/fedora/28/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-fedora-28-x86_64.cfg b/fdl-fedora-28-x86_64.cfg index b3878b8..eafefea 100644 --- a/fdl-fedora-28-x86_64.cfg +++ b/fdl-fedora-28-x86_64.cfg @@ -8,7 +8,7 @@ config_opts['releasever'] = '28' config_opts['package_manager'] = 'dnf' config_opts['resultdir'] = '/var/www/html/packages/fedora/28/x86_64/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-fedora-29-i386.cfg b/fdl-fedora-29-i386.cfg index eee773a..a316d41 100644 --- a/fdl-fedora-29-i386.cfg +++ b/fdl-fedora-29-i386.cfg @@ -10,7 +10,7 @@ config_opts['releasever'] = '29' config_opts['package_manager'] = 'dnf' config_opts['resultdir'] = '/var/www/html/packages/fedora/29/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-fedora-29-x86_64.cfg b/fdl-fedora-29-x86_64.cfg index 36de402..7a20b16 100644 --- a/fdl-fedora-29-x86_64.cfg +++ b/fdl-fedora-29-x86_64.cfg @@ -10,7 +10,7 @@ config_opts['releasever'] = '29' config_opts['package_manager'] = 'dnf' config_opts['resultdir'] = '/var/www/html/packages/fedora/29/x86_64/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-fedora-30-i386.cfg b/fdl-fedora-30-i386.cfg index ee5b97b..9e6dbb0 100644 --- a/fdl-fedora-30-i386.cfg +++ b/fdl-fedora-30-i386.cfg @@ -10,7 +10,7 @@ config_opts['releasever'] = '30' config_opts['package_manager'] = 'dnf' config_opts['resultdir'] = '/var/www/html/packages/fedora/30/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-fedora-30-x86_64.cfg b/fdl-fedora-30-x86_64.cfg index a7edf6e..f7d3341 100644 --- a/fdl-fedora-30-x86_64.cfg +++ b/fdl-fedora-30-x86_64.cfg @@ -10,7 +10,7 @@ config_opts['releasever'] = '30' config_opts['package_manager'] = 'dnf' config_opts['resultdir'] = '/var/www/html/packages/fedora/30/x86_64/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-trixbox-2.6-i386.cfg b/fdl-trixbox-2.6-i386.cfg index d491866..6c031bb 100644 --- a/fdl-trixbox-2.6-i386.cfg +++ b/fdl-trixbox-2.6-i386.cfg @@ -10,7 +10,7 @@ config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['releasever'] = '5' config_opts['resultdir'] = '/var/www/html/packages/trixbox/2.6/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdl-trixbox-2.8-i386.cfg b/fdl-trixbox-2.8-i386.cfg index 2683009..490b194 100644 --- a/fdl-trixbox-2.8-i386.cfg +++ b/fdl-trixbox-2.8-i386.cfg @@ -10,7 +10,7 @@ config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['releasever'] = '5' config_opts['resultdir'] = '/var/www/html/packages/trixbox/2.8/i386/' config_opts['createrepo_on_rpms'] = True -config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' +config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' config_opts['yum.conf'] = """ diff --git a/fdragon-mock-configs.spec b/fdragon-mock-configs.spec index f3e3dd7..e82a740 100644 --- a/fdragon-mock-configs.spec +++ b/fdragon-mock-configs.spec @@ -1,6 +1,6 @@ Name: fdragon-mock-configs Version: 2019.07.04 -Release: 1%{?dist} +Release: 2%{?dist} Summary: fdragon mock configs License: GPLv3+ @@ -18,12 +18,14 @@ Source10: fdl-fedora-30-i386.cfg Source11: fdl-fedora-30-x86_64.cfg Source12: fdl-trixbox-2.6-i386.cfg Source13: fdl-trixbox-2.8-i386.cfg +Source100: makerepo # BuildRequires: Requires: httpd Requires: mock Requires: mock-scm Requires: fedora-packager +Requires: repoview %if 0%{?fedora} Requires: createrepo_c %endif @@ -44,6 +46,7 @@ Requires: createrepo %install rm -rf %{buildroot} %{__mkdir_p} %{buildroot}%{_sysconfdir}/mock/ +%{__mkdir_p} %{buildroot}%{_sysconfdir}/cron.hourly/ %{__install} %{SOURCE1} %{buildroot}%{_sysconfdir}/mock/ %{__install} %{SOURCE2} %{buildroot}%{_sysconfdir}/mock/ %{__install} %{SOURCE3} %{buildroot}%{_sysconfdir}/mock/ @@ -57,6 +60,7 @@ rm -rf %{buildroot} %{__install} %{SOURCE11} %{buildroot}%{_sysconfdir}/mock/ %{__install} %{SOURCE12} %{buildroot}%{_sysconfdir}/mock/ %{__install} %{SOURCE13} %{buildroot}%{_sysconfdir}/mock/ +%{__install} %{SOURCE100} %{buildroot}%{_sysconfdir}/cron.hourly/ %{__mkdir_p} %{buildroot}/var/www/html/packages/epel/5/i386/repodata %{__mkdir_p} %{buildroot}/var/www/html/packages/epel/5/x86_64/repodata %{__mkdir_p} %{buildroot}/var/www/html/packages/epel/6/i386/repodata @@ -73,19 +77,25 @@ rm -rf %{buildroot} %post -createrepo -d -q -x *.src.rpm /var/www/html/packages/epel/5/i386/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/epel/5/x86_64/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/epel/6/i386/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/epel/6/x86_64/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/epel/7/x86_64/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/fedora/28/i386/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/fedora/28/x86_64/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/fedora/29/i386/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/fedora/29/x86_64/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/fedora/30/i386/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/fedora/30/x86_64/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/trixbox/2.6/i386/ -createrepo -d -q -x *.src.rpm /var/www/html/packages/trixbox/2.8/i386/ +if [ -x /usr/bin/createrepo_c ] +then + CREATEREPO=/usr/bin/createrepo_c +else + CREATEREPO=/usr/bin/createrepo +fi +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/epel/5/i386/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/epel/5/x86_64/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/epel/6/i386/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/epel/6/x86_64/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/epel/7/x86_64/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/fedora/28/i386/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/fedora/28/x86_64/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/fedora/29/i386/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/fedora/29/x86_64/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/fedora/30/i386/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/fedora/30/x86_64/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/trixbox/2.6/i386/ +${CREATEREPO} -d -q -x *.src.rpm /var/www/html/packages/trixbox/2.8/i386/ %files @@ -93,6 +103,7 @@ createrepo -d -q -x *.src.rpm /var/www/html/packages/trixbox/2.8/i386/ # %doc add-docs-here %defattr(-,root,root,-) %config %attr(0644,root,root) %{_sysconfdir}/mock/*.cfg +%attr(0755,root,root) %{_sysconfdir}/cron.hourly/makerepo %dir %attr(2775,root,mock) /var/www/html/packages %dir %attr(2775,root,mock) /var/www/html/packages/epel @@ -137,6 +148,8 @@ createrepo -d -q -x *.src.rpm /var/www/html/packages/trixbox/2.8/i386/ %changelog * Thu Jul 04 2019 Jason Rothstein - Add createrepo dependency +- Add makerepo hourly cron job +- Use createrepo_c when available * Tue May 14 2019 Jason Rothstein - New version for Fedora 30 diff --git a/makerepo b/makerepo new file mode 100644 index 0000000..ff6913c --- /dev/null +++ b/makerepo @@ -0,0 +1,51 @@ +#!/bin/bash + +if [ -x /usr/bin/createrepo ] +then + CREATEREPO=/usr/bin/createrepo +elif [ -x /usr/bin/createrepo_c ] +then + CREATEREPO=/usr/bin/createrepo_c +fi + +BASE_DIR=/var/www/html/packages + +( + cd ${BASE_DIR} + for target in * + do + if [ -d ${target} ] + then + ( + cd ${target} + for version in * + do + if [ -d ${version} ] + then + ( + cd ${version} + for architecture in * + do + if [ -d ${architecture} ] + then + ( + cd ${architecture} + case ${target}-${version}-${architecture} in + epel-5-*|trixbox-*-*) + nice ${CREATEREPO} --checksum=sha --database --quiet . + ;; + *) + nice ${CREATEREPO} --database --quiet . + ;; + esac + ) + fi + done + ) + fi + done + ) + fi + done +) +