From 2e687dd8a5f4dad0670be34a73fbe10e52c9ac7c Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Mon, 31 Dec 2012 17:00:09 +0100 Subject: [PATCH] rpm: fix integration with systemd (missing sysconfig file) and pam/groupadd Signed-off-by: Fabio M. Di Nitto --- Makefile.am | 1 + TODO | 7 ++++++- configure.ac | 7 +++++++ init/Makefile.am | 12 +++++++++++- init/kronosnetd.default | 3 +++ init/kronosnetd.service.in | 2 +- kronosnet.spec.in | 9 ++++++--- 7 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 init/kronosnetd.default diff --git a/Makefile.am b/Makefile.am index 285602937..5c486d094 100644 --- a/Makefile.am +++ b/Makefile.am @@ -90,6 +90,7 @@ $(SPEC): $(SPEC).in .version $< > $@-t; \ fi; \ if [ -z "$$dirty" ]; then sed -i -e "s#%glo.*dirty.*##g" $@-t; fi + sed -i -e "s#@defaultadmgroup@#$(DEFAULTADMGROUP)#g" $@-t chmod a-w $@-t mv $@-t $@ diff --git a/TODO b/TODO index bd4a39cf8..4529b5d1e 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,12 @@ 0.1 --- -Check debian policy on /etc/pam.d/* install/usage + +debian: + Check policy on /etc/pam.d/* install/usage + Make groupadd kronosnetadm silent and dynamic + systemd packaging in debian? + install /etc/default/kronosnetd review locking handling policies (attempt locks vs deadlocks and so on) diff --git a/configure.ac b/configure.ac index fa8dcd589..d5e3f0140 100644 --- a/configure.ac +++ b/configure.ac @@ -161,6 +161,11 @@ AC_ARG_ENABLE([publicandocs], [ --enable-publicandocs enable docs build. ], [ default="no" ]) +AC_ARG_WITH([initdefaultdir], + [ --with-initdefaultdir : path to /etc/sysconfig/.. or /etc/default dir. ], + [ INITDEFAULTDIR="$withval" ], + [ INITDEFAULTDIR="$sysconfdir/default" ]) + AC_ARG_WITH([initddir], [ --with-initddir=DIR : path to init script directory. ], [ INITDDIR="$withval" ], @@ -201,9 +206,11 @@ DEFAULT_CONFIG_DIR=${sysconfdir}/kronosnet AM_CONDITIONAL([BUILD_DOCS], [test "x${enable_publicandocs}" = xyes]) AC_SUBST([DEFAULT_CONFIG_DIR]) +AC_SUBST([INITDEFAULTDIR]) AC_SUBST([INITDDIR]) AC_SUBST([SYSTEMDDIR]) AC_SUBST([LOGDIR]) +AC_SUBST([DEFAULTADMGROUP]) AC_DEFINE_UNQUOTED([DEFAULT_CONFIG_DIR], ["$(eval echo ${DEFAULT_CONFIG_DIR})"], diff --git a/init/Makefile.am b/init/Makefile.am index 4a0c524a7..c51a8e120 100644 --- a/init/Makefile.am +++ b/init/Makefile.am @@ -8,10 +8,12 @@ MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = kronosnetd.in kronosnetd.service.in +EXTRA_DIST = kronosnetd.in kronosnetd.service.in \ + kronosnetd.default systemdconfdir = $(SYSTEMDDIR) systemdconf_DATA = kronosnetd.service + initscriptdir = $(INITDDIR) initscript_SCRIPTS = kronosnetd @@ -25,6 +27,14 @@ initscript_SCRIPTS = kronosnetd > $@-t mv $@-t $@ +install-exec-local: + $(INSTALL) -d $(DESTDIR)/$(INITDEFAULTDIR) + $(INSTALL) -m 644 kronosnetd.default $(DESTDIR)/$(INITDEFAULTDIR)/kronosnetd + +uninstall-local: + rm -f $(DESTDIR)/$(INITDEFAULTDIR)/kronosnetd + rmdir $(DESTDIR)/$(INITDEFAULTDIR) || :; + all-local: $(initscript_SCRIPTS) $(systemdconf_DATA) clean-local: diff --git a/init/kronosnetd.default b/init/kronosnetd.default new file mode 100644 index 000000000..04de6604e --- /dev/null +++ b/init/kronosnetd.default @@ -0,0 +1,3 @@ +# kronosnetd startup options (see man kronosnetd.8) + +KNETD_OPTS="" diff --git a/init/kronosnetd.service.in b/init/kronosnetd.service.in index 45efc8043..da1395b32 100644 --- a/init/kronosnetd.service.in +++ b/init/kronosnetd.service.in @@ -14,7 +14,7 @@ After=network.target syslog.target [Service] Type=forking EnvironmentFile=/etc/sysconfig/kronosnetd -ExecStart=@SBINDIR@/kronosnetd +ExecStart=@SBINDIR@/kronosnetd $KNETD_OPTS [Install] WantedBy=multi-user.target diff --git a/kronosnet.spec.in b/kronosnet.spec.in index 9ff27707a..5f536daeb 100644 --- a/kronosnet.spec.in +++ b/kronosnet.spec.in @@ -38,10 +38,12 @@ BuildRequires: libqb-devel nss-devel pam-devel %setup -q -n %{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} %build +%{configure} \ + --with-initdefaultdir=%{_sysconfdir}/sysconfig/ \ %if %{defined _unitdir} -%{configure} --with-systemddir=%{_unitdir} + --with-systemddir=%{_unitdir} %else -%{configure} --with-initddir=%{_sysconfdir}/rc.d/init.d/ + --with-initddir=%{_sysconfdir}/rc.d/init.d/ %endif make %{_smp_mflags} @@ -113,7 +115,7 @@ Requires: pam, /etc/pam.d/passwd %else /sbin/chkconfig --add kronosnetd %endif -/usr/sbin/groupadd --force --system kronosnetadm +/usr/sbin/groupadd --force --system @defaultadmgroup@ %preun -n kronosnetd %if %{defined _unitdir} @@ -137,6 +139,7 @@ fi %doc COPYING.* COPYRIGHT %dir %{_sysconfdir}/kronosnet %dir %{_sysconfdir}/kronosnet/* +%config(noreplace) %{_sysconfdir}/sysconfig/kronosnetd %config(noreplace) %{_sysconfdir}/pam.d/kronosnetd %config(noreplace) %{_sysconfdir}/logrotate.d/kronosnetd %if %{defined _unitdir}