Signed-off-by: Dennis Gilmore dennis@ausil.us --- docs/schema.sql | 1 + 1 file changed, 1 insertion(+)
diff --git a/docs/schema.sql b/docs/schema.sql index 3582b87..aad24a9 100644 --- a/docs/schema.sql +++ b/docs/schema.sql @@ -183,6 +183,7 @@ INSERT INTO channels (name) VALUES ('maven'); INSERT INTO channels (name) VALUES ('livecd'); INSERT INTO channels (name) VALUES ('appliance'); INSERT INTO channels (name) VALUES ('vm'); +INSERT INTO channels (name) VALUES ('image');
-- Here we track the build machines -- each host has an entry in the users table also
From: Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl
Signed-off-by: Dennis Gilmore dennis@ausil.us --- Makefile | 3 ++- builder/Makefile | 19 +++++++++++++------ builder/kojid.service | 14 ++++++++++++++ koji.spec | 39 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 builder/kojid.service
diff --git a/Makefile b/Makefile index b9c23bf..d5e9b77 100644 --- a/Makefile +++ b/Makefile @@ -105,6 +105,7 @@ force-tag:: # @$(MAKE) tag TAG_OPTS="-F $(TAG_OPTS)"
DESTDIR ?= / +TYPE = systemd install: @if [ "$(DESTDIR)" = "" ]; then \ echo " "; \ @@ -115,4 +116,4 @@ install: mkdir -p $(DESTDIR)
for d in $(SUBDIRS); do make DESTDIR=`cd $(DESTDIR); pwd` \ - -C $$d install; [ $$? = 0 ] || exit 1; done + -C $$d install TYPE=$(TYPE); [ $$? = 0 ] || exit 1; done diff --git a/builder/Makefile b/builder/Makefile index 02bae11..1de0a9c 100644 --- a/builder/Makefile +++ b/builder/Makefile @@ -1,6 +1,7 @@ - BINFILES = kojid LIBEXECFILES = mergerepos +SYSTEMDSYSTEMUNITDIR = $(shell pkg-config systemd --variable=systemdsystemunitdir) +TYPE = systemd
_default: @echo "nothing to make. try make install" @@ -9,7 +10,7 @@ clean: rm -f *.o *.so *.pyc *~
-install: +_install: @if [ "$(DESTDIR)" = "" ]; then \ echo " "; \ echo "ERROR: A destdir is required"; \ @@ -23,13 +24,19 @@ install: install -p -m 755 $(LIBEXECFILES) $(DESTDIR)/usr/libexec/kojid
mkdir -p $(DESTDIR)/etc/mock/koji + + mkdir -p $(DESTDIR)/etc/kojid + install -p -m 644 kojid.conf $(DESTDIR)/etc/kojid/kojid.conf + +install-systemd: _install + mkdir -p $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR) + install -p -m 644 kojid.service $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR) + +install-sysv: _install mkdir -p $(DESTDIR)/etc/rc.d/init.d install -p -m 755 kojid.init $(DESTDIR)/etc/rc.d/init.d/kojid
mkdir -p $(DESTDIR)/etc/sysconfig install -p -m 644 kojid.sysconfig $(DESTDIR)/etc/sysconfig/kojid
- mkdir -p $(DESTDIR)/etc/kojid - install -p -m 644 kojid.conf $(DESTDIR)/etc/kojid/kojid.conf - - +install: install-$(TYPE) diff --git a/builder/kojid.service b/builder/kojid.service new file mode 100644 index 0000000..1886a44 --- /dev/null +++ b/builder/kojid.service @@ -0,0 +1,14 @@ +[Unit] +Description=Koji build server +Documentation=https://fedoraproject.org/wiki/Koji/ServerHowTo + +After=network.target + +[Service] +ExecStart=/usr/sbin/kojid \ + --fg \ + --force-lock \ + --verbose + +[Install] +WantedBy=multi-user.target diff --git a/koji.spec b/koji.spec index c2b1af4..82df76e 100644 --- a/koji.spec +++ b/koji.spec @@ -1,5 +1,12 @@ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
+%if 0%{?fedora} >= 21 || 0%{?redhat} >= 7 +%global use_systemd 1 +%else +%global use_systemd 0 +%global install_opt TYPE=sysv +%endif + %define baserelease 1 #build with --define 'testbuild 1' to have a timestamp appended to release %if "x%{?testbuild}" == "x1" @@ -23,6 +30,10 @@ Requires: rpm-python Requires: pyOpenSSL Requires: python-urlgrabber BuildRequires: python +%if %{use_systemd} +BuildRequires: systemd +BuildRequires: pkgconfig +%endif
%description Koji is a system for building and tracking RPMS. The base package @@ -63,11 +74,17 @@ License: LGPLv2 and GPLv2+ #mergerepos (from createrepo) is GPLv2+ Requires: %{name} = %{version}-%{release} Requires: mock >= 0.9.14 +Requires(pre): /usr/sbin/useradd +%if %{use_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(post): /sbin/chkconfig Requires(post): /sbin/service Requires(preun): /sbin/chkconfig Requires(preun): /sbin/service -Requires(pre): /usr/sbin/useradd +%endif Requires: /usr/bin/cvs Requires: /usr/bin/svn Requires: /usr/bin/git @@ -135,7 +152,7 @@ koji-web is a web UI to the Koji system.
%install rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install +make DESTDIR=$RPM_BUILD_ROOT %{?install_opt} install
%clean rm -rf $RPM_BUILD_ROOT @@ -192,8 +209,12 @@ rm -rf $RPM_BUILD_ROOT %{_sbindir}/kojid %dir %{_libexecdir}/kojid %{_libexecdir}/kojid/mergerepos +%if %{use_systemd} +%{_unitdir}/kojid.service +%else %{_initrddir}/kojid %config(noreplace) %{_sysconfdir}/sysconfig/kojid +%endif %dir %{_sysconfdir}/kojid %config(noreplace) %{_sysconfdir}/kojid/kojid.conf %attr(-,kojibuilder,kojibuilder) %{_sysconfdir}/mock/koji @@ -201,6 +222,19 @@ rm -rf $RPM_BUILD_ROOT %pre builder /usr/sbin/useradd -r -s /bin/bash -G mock -d /builddir -M kojibuilder 2>/dev/null ||:
+%if %{use_systemd} + +%post builder +%systemd_post kojid.service + +%preun builder +%systemd_preun kojid.service + +%postun builder +%systemd_postun kojid.service + +%else + %post builder /sbin/chkconfig --add kojid
@@ -209,6 +243,7 @@ if [ $1 = 0 ]; then /sbin/service kojid stop &> /dev/null /sbin/chkconfig --del kojid fi +%endif
%files vm %defattr(-,root,root)
On 06/06/2015 04:05 PM, Dennis Gilmore wrote:
From: Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl
Signed-off-by: Dennis Gilmore dennis@ausil.us
Makefile | 3 ++- builder/Makefile | 19 +++++++++++++------ builder/kojid.service | 14 ++++++++++++++ koji.spec | 39 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 builder/kojid.service
diff --git a/Makefile b/Makefile index b9c23bf..d5e9b77 100644 --- a/Makefile +++ b/Makefile @@ -105,6 +105,7 @@ force-tag:: # @$(MAKE) tag TAG_OPTS="-F $(TAG_OPTS)"
DESTDIR ?= / +TYPE = systemd install: @if [ "$(DESTDIR)" = "" ]; then \ echo " "; \ @@ -115,4 +116,4 @@ install: mkdir -p $(DESTDIR)
for d in $(SUBDIRS); do make DESTDIR=`cd $(DESTDIR); pwd` \
-C $$d install; [ $$? = 0 ] || exit 1; done
-C $$d install TYPE=$(TYPE); [ $$? = 0 ] || exit 1; done
diff --git a/builder/Makefile b/builder/Makefile index 02bae11..1de0a9c 100644 --- a/builder/Makefile +++ b/builder/Makefile @@ -1,6 +1,7 @@
- BINFILES = kojid LIBEXECFILES = mergerepos
+SYSTEMDSYSTEMUNITDIR = $(shell pkg-config systemd --variable=systemdsystemunitdir) +TYPE = systemd
_default: @echo "nothing to make. try make install" @@ -9,7 +10,7 @@ clean: rm -f *.o *.so *.pyc *~
-install: +_install: @if [ "$(DESTDIR)" = "" ]; then \ echo " "; \ echo "ERROR: A destdir is required"; \ @@ -23,13 +24,19 @@ install: install -p -m 755 $(LIBEXECFILES) $(DESTDIR)/usr/libexec/kojid
mkdir -p $(DESTDIR)/etc/mock/koji
- mkdir -p $(DESTDIR)/etc/kojid
- install -p -m 644 kojid.conf $(DESTDIR)/etc/kojid/kojid.conf
+install-systemd: _install
- mkdir -p $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR)
- install -p -m 644 kojid.service $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR)
+install-sysv: _install mkdir -p $(DESTDIR)/etc/rc.d/init.d install -p -m 755 kojid.init $(DESTDIR)/etc/rc.d/init.d/kojid
mkdir -p $(DESTDIR)/etc/sysconfig install -p -m 644 kojid.sysconfig $(DESTDIR)/etc/sysconfig/kojid
- mkdir -p $(DESTDIR)/etc/kojid
- install -p -m 644 kojid.conf $(DESTDIR)/etc/kojid/kojid.conf
+install: install-$(TYPE) diff --git a/builder/kojid.service b/builder/kojid.service new file mode 100644 index 0000000..1886a44 --- /dev/null +++ b/builder/kojid.service @@ -0,0 +1,14 @@ +[Unit] +Description=Koji build server +Documentation=https://fedoraproject.org/wiki/Koji/ServerHowTo
+After=network.target
+[Service] +ExecStart=/usr/sbin/kojid \
--fg \
--force-lock \
--verbose
With --fg, kojid will log both to kojid.log and stderr. Maybe we should add an option to turn off the latter, or just automatically do it in the --fg case.
This isn't terrible, just inefficient. We should probably adjust this. Working on a patch...
+[Install] +WantedBy=multi-user.target diff --git a/koji.spec b/koji.spec index c2b1af4..82df76e 100644 --- a/koji.spec +++ b/koji.spec @@ -1,5 +1,12 @@ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
+%if 0%{?fedora} >= 21 || 0%{?redhat} >= 7 +%global use_systemd 1 +%else +%global use_systemd 0 +%global install_opt TYPE=sysv +%endif
- %define baserelease 1 #build with --define 'testbuild 1' to have a timestamp appended to release %if "x%{?testbuild}" == "x1"
@@ -23,6 +30,10 @@ Requires: rpm-python Requires: pyOpenSSL Requires: python-urlgrabber BuildRequires: python +%if %{use_systemd} +BuildRequires: systemd +BuildRequires: pkgconfig +%endif
%description Koji is a system for building and tracking RPMS. The base package @@ -63,11 +74,17 @@ License: LGPLv2 and GPLv2+ #mergerepos (from createrepo) is GPLv2+ Requires: %{name} = %{version}-%{release} Requires: mock >= 0.9.14 +Requires(pre): /usr/sbin/useradd +%if %{use_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(post): /sbin/chkconfig Requires(post): /sbin/service Requires(preun): /sbin/chkconfig Requires(preun): /sbin/service -Requires(pre): /usr/sbin/useradd +%endif Requires: /usr/bin/cvs Requires: /usr/bin/svn Requires: /usr/bin/git @@ -135,7 +152,7 @@ koji-web is a web UI to the Koji system.
%install rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install +make DESTDIR=$RPM_BUILD_ROOT %{?install_opt} install
%clean rm -rf $RPM_BUILD_ROOT @@ -192,8 +209,12 @@ rm -rf $RPM_BUILD_ROOT %{_sbindir}/kojid %dir %{_libexecdir}/kojid %{_libexecdir}/kojid/mergerepos +%if %{use_systemd} +%{_unitdir}/kojid.service +%else %{_initrddir}/kojid %config(noreplace) %{_sysconfdir}/sysconfig/kojid +%endif %dir %{_sysconfdir}/kojid %config(noreplace) %{_sysconfdir}/kojid/kojid.conf %attr(-,kojibuilder,kojibuilder) %{_sysconfdir}/mock/koji @@ -201,6 +222,19 @@ rm -rf $RPM_BUILD_ROOT %pre builder /usr/sbin/useradd -r -s /bin/bash -G mock -d /builddir -M kojibuilder 2>/dev/null ||:
+%if %{use_systemd}
+%post builder +%systemd_post kojid.service
+%preun builder +%systemd_preun kojid.service
+%postun builder +%systemd_postun kojid.service
+%else
- %post builder /sbin/chkconfig --add kojid
@@ -209,6 +243,7 @@ if [ $1 = 0 ]; then /sbin/service kojid stop &> /dev/null /sbin/chkconfig --del kojid fi +%endif
%files vm %defattr(-,root,root)
From: Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl
Signed-off-by: Dennis Gilmore dennis@ausil.us --- koji.spec | 24 ++++++++++++++++++++++++ vm/Makefile | 18 ++++++++++++------ vm/kojivmd.service | 14 ++++++++++++++ 3 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 vm/kojivmd.service
diff --git a/koji.spec b/koji.spec index 82df76e..fbe04b7 100644 --- a/koji.spec +++ b/koji.spec @@ -107,10 +107,16 @@ Summary: Koji virtual machine management daemon Group: Applications/System License: LGPLv2 Requires: %{name} = %{version}-%{release} +%if %{use_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(post): /sbin/chkconfig Requires(post): /sbin/service Requires(preun): /sbin/chkconfig Requires(preun): /sbin/service +%endif Requires: libvirt-python Requires: libxml2-python Requires: /usr/bin/virt-clone @@ -250,11 +256,28 @@ fi %{_sbindir}/kojivmd #dir %{_datadir}/kojivmd %{_datadir}/kojivmd/kojikamid +%if %{use_systemd} +%{_unitdir}/kojivmd.service +%else %{_initrddir}/kojivmd %config(noreplace) %{_sysconfdir}/sysconfig/kojivmd +%endif %dir %{_sysconfdir}/kojivmd %config(noreplace) %{_sysconfdir}/kojivmd/kojivmd.conf
+%if %{use_systemd} + +%post vm +%systemd_post kojivmd.service + +%preun vm +%systemd_preun kojivmd.service + +%postun vm +%systemd_postun kojivmd.service + +%else + %post vm /sbin/chkconfig --add kojivmd
@@ -263,6 +286,7 @@ if [ $1 = 0 ]; then /sbin/service kojivmd stop &> /dev/null /sbin/chkconfig --del kojivmd fi +%endif
%post utils /sbin/chkconfig --add kojira diff --git a/vm/Makefile b/vm/Makefile index 1dcab17..13e340c 100644 --- a/vm/Makefile +++ b/vm/Makefile @@ -1,6 +1,7 @@ - BINFILES = kojivmd SHAREFILES = kojikamid +SYSTEMDSYSTEMUNITDIR = $(shell pkg-config systemd --variable=systemdsystemunitdir) +TYPE = systemd
_default: @echo "nothing to make. try make install" @@ -11,7 +12,7 @@ clean: kojikamid: kojikamid.py bash fix_kojikamid.sh >kojikamid
-install: kojikamid +_install: kojikamid @if [ "$(DESTDIR)" = "" ]; then \ echo " "; \ echo "ERROR: A destdir is required"; \ @@ -24,13 +25,18 @@ install: kojikamid mkdir -p $(DESTDIR)/usr/share/kojivmd install -p -m 644 $(SHAREFILES) $(DESTDIR)/usr/share/kojivmd
+ mkdir -p $(DESTDIR)/etc/kojivmd + install -p -m 644 kojivmd.conf $(DESTDIR)/etc/kojivmd/kojivmd.conf + +install-systemd: _install + mkdir -p $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR) + install -p -m 644 kojivmd.service $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR) + +install-sysv: _install mkdir -p $(DESTDIR)/etc/rc.d/init.d install -p -m 755 kojivmd.init $(DESTDIR)/etc/rc.d/init.d/kojivmd
mkdir -p $(DESTDIR)/etc/sysconfig install -p -m 644 kojivmd.sysconfig $(DESTDIR)/etc/sysconfig/kojivmd
- mkdir -p $(DESTDIR)/etc/kojivmd - install -p -m 644 kojivmd.conf $(DESTDIR)/etc/kojivmd/kojivmd.conf - - +install: install-$(TYPE) diff --git a/vm/kojivmd.service b/vm/kojivmd.service new file mode 100644 index 0000000..a417fdb --- /dev/null +++ b/vm/kojivmd.service @@ -0,0 +1,14 @@ +[Unit] +Description=Koji vm build server +Documentation=https://fedoraproject.org/wiki/Koji/ServerHowTo + +After=network.target + +[Service] +ExecStart=/usr/sbin/kojivmd \ + --fg \ + --force-lock \ + --verbose + +[Install] +WantedBy=multi-user.target
Signed-off-by: Dennis Gilmore dennis@ausil.us --- koji.spec | 22 ++++++++++++++++++++++ util/Makefile | 23 ++++++++++++++++------- util/kojira.service | 14 ++++++++++++++ 3 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 util/kojira.service
diff --git a/koji.spec b/koji.spec index fbe04b7..d1e4181 100644 --- a/koji.spec +++ b/koji.spec @@ -132,6 +132,11 @@ Group: Applications/Internet License: LGPLv2 Requires: postgresql-python Requires: %{name} = %{version}-%{release} +%if %{use_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%endif
%description utils Utilities for the Koji system @@ -191,8 +196,12 @@ rm -rf $RPM_BUILD_ROOT %files utils %defattr(-,root,root) %{_sbindir}/kojira +%if %{use_systemd} +%{_unitdir}/kojira.service +%else %{_initrddir}/kojira %config(noreplace) %{_sysconfdir}/sysconfig/kojira +%endif %dir %{_sysconfdir}/kojira %config(noreplace) %{_sysconfdir}/kojira/kojira.conf %{_sbindir}/koji-gc @@ -288,6 +297,18 @@ if [ $1 = 0 ]; then fi %endif
+%if %{use_systemd} + +%post utils +%systemd_post kojira.service + +%preun utils +%systemd_preun kojira.service + +%postun utils +%systemd_postun kojira.service + +%else %post utils /sbin/chkconfig --add kojira /sbin/service kojira condrestart &> /dev/null || : @@ -296,6 +317,7 @@ if [ $1 = 0 ]; then /sbin/service kojira stop &> /dev/null || : /sbin/chkconfig --del kojira fi +%endif
%changelog * Mon Mar 24 2014 Mike McLean <mikem at redhat.com> - 1.9.0-1 diff --git a/util/Makefile b/util/Makefile index 79ac64f..5ea8bde 100644 --- a/util/Makefile +++ b/util/Makefile @@ -1,4 +1,6 @@ BINFILES = kojira koji-gc koji-shadow +SYSTEMDSYSTEMUNITDIR = $(shell pkg-config systemd --variable=systemdsystemunitdir) +TYPE = systemd
_default: @echo "nothing to make. try make install" @@ -6,7 +8,7 @@ _default: clean: rm -f *.o *.so *.pyc *~
-install: +_install: @if [ "$(DESTDIR)" = "" ]; then \ echo " "; \ echo "ERROR: A destdir is required"; \ @@ -15,12 +17,6 @@ install: mkdir -p $(DESTDIR)/usr/sbin install -p -m 755 $(BINFILES) $(DESTDIR)/usr/sbin
- mkdir -p $(DESTDIR)/etc/rc.d/init.d - install -p -m 755 kojira.init $(DESTDIR)/etc/rc.d/init.d/kojira - - mkdir -p $(DESTDIR)/etc/sysconfig - install -p -m 644 kojira.sysconfig $(DESTDIR)/etc/sysconfig/kojira - mkdir -p $(DESTDIR)/etc/kojira install -p -m 644 kojira.conf $(DESTDIR)/etc/kojira/kojira.conf
@@ -29,3 +25,16 @@ install:
mkdir -p $(DESTDIR)/etc/koji-shadow install -p -m 644 koji-shadow.conf $(DESTDIR)/etc/koji-shadow/koji-shadow.conf + +install-systemd: _install + mkdir -p $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR) + install -p -m 644 kojira.service $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR) + +install-sysv: _install + mkdir -p $(DESTDIR)/etc/rc.d/init.d + install -p -m 755 kojira.init $(DESTDIR)/etc/rc.d/init.d/kojira + + mkdir -p $(DESTDIR)/etc/sysconfig + install -p -m 644 kojira.sysconfig $(DESTDIR)/etc/sysconfig/kojira + +install: install-$(TYPE) diff --git a/util/kojira.service b/util/kojira.service new file mode 100644 index 0000000..beaea18 --- /dev/null +++ b/util/kojira.service @@ -0,0 +1,14 @@ +[Unit] +Description=Koji repo administration +Documentation=https://fedoraproject.org/wiki/Koji/ServerHowTo + +After=network.target + +[Service] +ExecStart=/usr/sbin/kojira \ + --fg \ + --force-lock \ + --verbose + +[Install] +WantedBy=multi-user.target
koji-devel@lists.fedorahosted.org