MySQL, PostgreSQL, Google Test, systemd.patch
This commit is contained in:
parent
cce4c5db0b
commit
5fc4ba04f1
@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=Kea DHCP-DDNS Server
|
||||
Documentation=man:kea-dhcp-ddns(8)
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
After=time-sync.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/kea-dhcp-ddns -c /etc/kea/dhcp-ddns.json
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=Kea DHCPv4 Server
|
||||
Documentation=man:kea-dhcp4(8)
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
After=time-sync.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/kea-dhcp4 -c /etc/kea/dhcp4.json
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=Kea DHCPv6 Server
|
||||
Documentation=man:kea-dhcp6(8)
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
After=time-sync.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/kea-dhcp6 -c /etc/kea/dhcp6.json
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
193
kea-systemd.patch
Normal file
193
kea-systemd.patch
Normal file
@ -0,0 +1,193 @@
|
||||
From 09ff7038ea23565e923179682ba96f5aa2d0f0c7 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Popelka <jpopelka@redhat.com>
|
||||
Date: Tue, 19 Aug 2014 17:16:50 +0200
|
||||
Subject: [PATCH] Systemd service unit files.
|
||||
|
||||
As of August 2014, all Linux distributions include systemd and most of
|
||||
them enable it by default.
|
||||
https://en.wikipedia.org/wiki/Systemd#Adoption
|
||||
|
||||
There are many systemd HOWTOs, like:
|
||||
https://wiki.archlinux.org/index.php/systemd
|
||||
https://coreos.com/docs/launching-containers/launching/getting-started-with-systemd/
|
||||
https://fedoraproject.org/wiki/Packaging:Systemd
|
||||
|
||||
For description of options in the service files, see:
|
||||
http://www.freedesktop.org/software/systemd/man/systemd.unit.html
|
||||
http://www.freedesktop.org/software/systemd/man/systemd.service.html
|
||||
|
||||
Installation of these files is turned on with --enable-systemd
|
||||
configure option. They are installed into
|
||||
PREFIX/lib/systemd/system/ by default. One can also
|
||||
use --with-systemd-unitdir to specify another directory.
|
||||
|
||||
For now the template files reside in src/bin/keactrl/
|
||||
as I haven't figured out a better place.
|
||||
---
|
||||
configure.ac | 12 ++++++++++
|
||||
src/bin/keactrl/Makefile.am | 39 ++++++++++++++++++++++++++++++--
|
||||
src/bin/keactrl/kea-dhcp-ddns.service.in | 12 ++++++++++
|
||||
src/bin/keactrl/kea-dhcp4.service.in | 12 ++++++++++
|
||||
src/bin/keactrl/kea-dhcp6.service.in | 12 ++++++++++
|
||||
tools/path_replacer.sh.in | 4 +++-
|
||||
6 files changed, 88 insertions(+), 3 deletions(-)
|
||||
create mode 100644 src/bin/keactrl/kea-dhcp-ddns.service.in
|
||||
create mode 100644 src/bin/keactrl/kea-dhcp4.service.in
|
||||
create mode 100644 src/bin/keactrl/kea-dhcp6.service.in
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f0dbc4f..3dc4383 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1344,6 +1344,18 @@ if test "x$VALGRIND" != "xno"; then
|
||||
found_valgrind="found"
|
||||
fi
|
||||
|
||||
+AC_ARG_ENABLE([systemd],
|
||||
+ AS_HELP_STRING([--enable-systemd], [enable systemd support]),
|
||||
+ [use_systemd=$enableval], [use_systemd=no])
|
||||
+AM_CONDITIONAL(USE_SYSTEMD, test "x$use_systemd" != "xno")
|
||||
+AC_SUBST(USE_SYSTEMD)
|
||||
+
|
||||
+AC_ARG_WITH([systemd-unitdir],
|
||||
+ AS_HELP_STRING([--with-systemd-unitdir=PATH],
|
||||
+ [specify exact directory for systemd service files, defaults to PREFIX/lib/systemd/system/]),
|
||||
+ [SYSTEMD_UNITDIR=$withval], [SYSTEMD_UNITDIR="${prefix}/lib/systemd/system"])
|
||||
+AC_SUBST(SYSTEMD_UNITDIR)
|
||||
+
|
||||
# Check for optreset in unistd.h. On BSD systems the optreset is
|
||||
# used to reset the state of getopt() function. Resetting its state
|
||||
# is required if command line arguments are parsed multiple times
|
||||
diff --git a/src/bin/keactrl/Makefile.am b/src/bin/keactrl/Makefile.am
|
||||
index a2d2a82..05b1c9e 100644
|
||||
--- a/src/bin/keactrl/Makefile.am
|
||||
+++ b/src/bin/keactrl/Makefile.am
|
||||
@@ -31,9 +31,36 @@ endif
|
||||
kea.conf: kea.conf.in
|
||||
$(top_srcdir)/tools/path_replacer.sh $< $@
|
||||
|
||||
+INSTALL_TARGETS = install-empty
|
||||
+
|
||||
if INSTALL_CONFIGURATIONS
|
||||
|
||||
-install-data-local:
|
||||
+INSTALL_TARGETS += install-config-files
|
||||
+
|
||||
+endif
|
||||
+
|
||||
+if USE_SYSTEMD
|
||||
+
|
||||
+EXTRA_DIST += kea-dhcp4.service.in kea-dhcp6.service.in kea-dhcp-ddns.service.in
|
||||
+DISTCLEANFILES += kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service
|
||||
+BUILT_SOURCES += kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service
|
||||
+INSTALL_TARGETS += install-systemd-files
|
||||
+
|
||||
+endif
|
||||
+
|
||||
+kea-dhcp4.service: kea-dhcp4.service.in
|
||||
+ $(top_srcdir)/tools/path_replacer.sh $< $@
|
||||
+
|
||||
+kea-dhcp6.service: kea-dhcp6.service.in
|
||||
+ $(top_srcdir)/tools/path_replacer.sh $< $@
|
||||
+
|
||||
+kea-dhcp-ddns.service: kea-dhcp-ddns.service.in
|
||||
+ $(top_srcdir)/tools/path_replacer.sh $< $@
|
||||
+
|
||||
+install-empty:
|
||||
+ :
|
||||
+
|
||||
+install-config-files:
|
||||
$(mkinstalldirs) $(DESTDIR)/@sysconfdir@/@PACKAGE@
|
||||
for f in $(CONFIGFILES) ; do \
|
||||
if test ! -f $(DESTDIR)$(sysconfdir)/@PACKAGE@/$$f; then \
|
||||
@@ -41,4 +68,12 @@ install-data-local:
|
||||
fi ; \
|
||||
done
|
||||
|
||||
-endif
|
||||
+install-systemd-files:
|
||||
+ $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNITDIR)
|
||||
+ $(INSTALL_DATA) kea-dhcp4.service $(DESTDIR)$(SYSTEMD_UNITDIR)/kea-dhcp4.service
|
||||
+ $(INSTALL_DATA) kea-dhcp6.service $(DESTDIR)$(SYSTEMD_UNITDIR)/kea-dhcp6.service
|
||||
+ $(INSTALL_DATA) kea-dhcp-ddns.service $(DESTDIR)$(SYSTEMD_UNITDIR)/kea-dhcp-ddns.service
|
||||
+
|
||||
+install-data-local: $(INSTALL_TARGETS)
|
||||
+
|
||||
+uninstall-local: $(UNINSTALL_TARGETS)
|
||||
diff --git a/src/bin/keactrl/kea-dhcp-ddns.service.in b/src/bin/keactrl/kea-dhcp-ddns.service.in
|
||||
new file mode 100644
|
||||
index 0000000..d1e0526
|
||||
--- /dev/null
|
||||
+++ b/src/bin/keactrl/kea-dhcp-ddns.service.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+[Unit]
|
||||
+Description=Kea DHCP-DDNS Server
|
||||
+Documentation=man:kea-dhcp-ddns(8)
|
||||
+Wants=network-online.target
|
||||
+After=network-online.target
|
||||
+After=time-sync.target
|
||||
+
|
||||
+[Service]
|
||||
+ExecStart=@sbindir@/kea-dhcp-ddns -c @sysconfdir@/kea/kea.conf
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=multi-user.target
|
||||
diff --git a/src/bin/keactrl/kea-dhcp4.service.in b/src/bin/keactrl/kea-dhcp4.service.in
|
||||
new file mode 100644
|
||||
index 0000000..80977d6
|
||||
--- /dev/null
|
||||
+++ b/src/bin/keactrl/kea-dhcp4.service.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+[Unit]
|
||||
+Description=Kea DHCPv4 Server
|
||||
+Documentation=man:kea-dhcp4(8)
|
||||
+Wants=network-online.target
|
||||
+After=network-online.target
|
||||
+After=time-sync.target
|
||||
+
|
||||
+[Service]
|
||||
+ExecStart=@sbindir@/kea-dhcp4 -c @sysconfdir@/kea/kea.conf
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=multi-user.target
|
||||
diff --git a/src/bin/keactrl/kea-dhcp6.service.in b/src/bin/keactrl/kea-dhcp6.service.in
|
||||
new file mode 100644
|
||||
index 0000000..c24f584
|
||||
--- /dev/null
|
||||
+++ b/src/bin/keactrl/kea-dhcp6.service.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+[Unit]
|
||||
+Description=Kea DHCPv6 Server
|
||||
+Documentation=man:kea-dhcp6(8)
|
||||
+Wants=network-online.target
|
||||
+After=network-online.target
|
||||
+After=time-sync.target
|
||||
+
|
||||
+[Service]
|
||||
+ExecStart=@sbindir@/kea-dhcp6 -c @sysconfdir@/kea/kea.conf
|
||||
+
|
||||
+[Install]
|
||||
+WantedBy=multi-user.target
|
||||
diff --git a/tools/path_replacer.sh.in b/tools/path_replacer.sh.in
|
||||
index 43d7bff..82625ca 100644
|
||||
--- a/tools/path_replacer.sh.in
|
||||
+++ b/tools/path_replacer.sh.in
|
||||
@@ -27,12 +27,14 @@
|
||||
prefix=@prefix@
|
||||
sysconfdir=@sysconfdir@
|
||||
localstatedir=@localstatedir@
|
||||
+sbindir=@sbindir@
|
||||
|
||||
echo "Replacing \@prefix\@ with ${prefix}"
|
||||
echo "Replacing \@sysconfdir\@ with ${sysconfdir}"
|
||||
echo "Replacing \@localstatedir\@ with ${localstatedir}"
|
||||
+echo "Replacing \@sbindir\@ with ${sbindir}"
|
||||
|
||||
echo "Input file: $1"
|
||||
echo "Output file: $2"
|
||||
|
||||
-sed -e "s+\@localstatedir\@+${localstatedir}+g; s+\@prefix@+${prefix}+g; s+\@sysconfdir@+${sysconfdir}+g" $1 > $2
|
||||
+sed -e "s+\@localstatedir\@+${localstatedir}+g; s+\@prefix\@+${prefix}+g; s+\@sysconfdir\@+${sysconfdir}+g; s+\@sbindir\@+${sbindir}+g" $1 > $2
|
||||
--
|
||||
1.9.3
|
||||
|
||||
43
kea.spec
43
kea.spec
@ -10,13 +10,10 @@
|
||||
Summary: DHCPv4, DHCPv6 and DDNS server from ISC
|
||||
Name: kea
|
||||
Version: 0.9
|
||||
Release: 0.3.%{prever}%{?dist}
|
||||
Release: 0.4.%{prever}%{?dist}
|
||||
License: ISC and Boost
|
||||
URL: http://kea.isc.org
|
||||
Source0: http://ftp.isc.org/isc/kea/%{VERSION}/kea-%{VERSION}.tar.gz
|
||||
Source1: kea-dhcp4.service
|
||||
Source2: kea-dhcp6.service
|
||||
Source3: kea-dhcp-ddns.service
|
||||
|
||||
# http://kea.isc.org/ticket/3523
|
||||
Patch0: kea-data-dir.patch
|
||||
@ -24,16 +21,30 @@ Patch0: kea-data-dir.patch
|
||||
Patch1: kea-LT_INIT.patch
|
||||
# http://kea.isc.org/ticket/3526
|
||||
Patch2: kea-narrowing.patch
|
||||
# http://kea.isc.org/ticket/3529
|
||||
Patch3: kea-systemd.patch
|
||||
|
||||
# autoreconf
|
||||
BuildRequires: autoconf automake libtool
|
||||
BuildRequires: boost-devel
|
||||
# %%configure --with-openssl
|
||||
BuildRequires: openssl-devel
|
||||
# %%configure --with-dhcp-mysql
|
||||
BuildRequires: mariadb-devel
|
||||
# %%configure --with-dhcp-pgsql
|
||||
BuildRequires: postgresql-devel
|
||||
BuildRequires: log4cplus-devel
|
||||
BuildRequires: valgrind-devel
|
||||
BuildRequires: systemd
|
||||
# src/lib/testutils/dhcp_test_lib.sh
|
||||
BuildRequires: procps-ng
|
||||
|
||||
|
||||
# %%configure --enable-gtest
|
||||
BuildRequires: gtest-devel
|
||||
# in case you ever wanted to use %%configure --enable-generate-docs
|
||||
#BuildRequires: elinks asciidoc plantuml
|
||||
|
||||
Requires: kea-libs%{?_isa} = %{version}-%{release}
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
@ -67,6 +78,7 @@ Header files and API documentation.
|
||||
%patch0 -p1 -b .data-dir
|
||||
%patch1 -p1 -b .LT
|
||||
%patch2 -p1 -b .narrowing
|
||||
%patch3 -p1 -b .systemd
|
||||
|
||||
%build
|
||||
autoreconf --verbose --force --install
|
||||
@ -74,8 +86,12 @@ autoreconf --verbose --force --install
|
||||
%configure \
|
||||
--disable-silent-rules \
|
||||
--disable-static \
|
||||
--enable-systemd \
|
||||
--with-openssl \
|
||||
--with-dhcp-mysql \
|
||||
--with-dhcp-pgsql \
|
||||
--disable-rpath \
|
||||
--enable-gtest \
|
||||
--enable-debug
|
||||
|
||||
make %{?_smp_mflags}
|
||||
@ -96,17 +112,6 @@ mkdir -p %{buildroot}%{_sharedstatedir}/kea/
|
||||
touch %{buildroot}%{_sharedstatedir}/kea/kea-leases4.csv
|
||||
touch %{buildroot}%{_sharedstatedir}/kea/kea-leases6.csv
|
||||
|
||||
# Copy sample config files
|
||||
install -p -m 644 doc/examples/kea4/single-subnet.json %{buildroot}%{_sysconfdir}/kea/dhcp4.json
|
||||
install -p -m 644 doc/examples/kea6/simple.json %{buildroot}%{_sysconfdir}/kea/dhcp6.json
|
||||
install -p -m 644 doc/examples/ddns/template.json %{buildroot}%{_sysconfdir}/kea/dhcp-ddns.json
|
||||
|
||||
# systemd unit files
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir}
|
||||
install -p -m 644 %{SOURCE2} %{buildroot}%{_unitdir}
|
||||
install -p -m 644 %{SOURCE3} %{buildroot}%{_unitdir}
|
||||
|
||||
install -p -m 644 ext/LICENSE_1_0.txt %{buildroot}%{_defaultdocdir}/kea/
|
||||
|
||||
%post
|
||||
@ -138,9 +143,6 @@ install -p -m 644 ext/LICENSE_1_0.txt %{buildroot}%{_defaultdocdir}/kea/
|
||||
%dir %{_sysconfdir}/kea/
|
||||
%config(noreplace) %{_sysconfdir}/kea/kea.conf
|
||||
%config(noreplace) %{_sysconfdir}/kea/keactrl.conf
|
||||
%config(noreplace) %{_sysconfdir}/kea/dhcp4.json
|
||||
%config(noreplace) %{_sysconfdir}/kea/dhcp6.json
|
||||
%config(noreplace) %{_sysconfdir}/kea/dhcp-ddns.json
|
||||
%dir %{_datarootdir}/kea/
|
||||
%{_datarootdir}/kea/dhcp-ddns.spec
|
||||
%{_datarootdir}/kea/dhcp4.spec
|
||||
@ -202,6 +204,11 @@ install -p -m 644 ext/LICENSE_1_0.txt %{buildroot}%{_defaultdocdir}/kea/
|
||||
%{_libdir}/pkgconfig/dns++.pc
|
||||
|
||||
%changelog
|
||||
* Wed Aug 20 2014 Jiri Popelka <jpopelka@redhat.com> - 0.9-0.4.beta1
|
||||
- install systemd service units with a proper patch that we can send upstream
|
||||
- build with MySQL & PostgreSQL & Google Test
|
||||
- no need to copy sample configuration, /etc/kea/kea.conf already contains one
|
||||
|
||||
* Tue Aug 19 2014 Jiri Popelka <jpopelka@redhat.com> - 0.9-0.3.beta1
|
||||
- comment patches
|
||||
- use --preserve-timestamps with install
|
||||
|
||||
Loading…
Reference in New Issue
Block a user