[yocto] [meta-cgl][PATCH] corosync: update to 1.4.8
jackie.huang at windriver.com
jackie.huang at windriver.com
Thu Aug 3 19:06:55 PDT 2017
From: Jackie Huang <jackie.huang at windriver.com>
- Add systemd support
- Add PACKAGECONFIG for nss, dbus, rdma and snmp
- Install config file for corosync-notifyd
Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
---
.../corosync/corosync/corosync-notifyd.service | 13 +++++++
.../recipes-cgl/corosync/corosync/corosync.service | 26 ++++++++++++++
.../{corosync_1.4.7.bb => corosync_1.4.8.bb} | 42 ++++++++++++++++++----
3 files changed, 74 insertions(+), 7 deletions(-)
create mode 100644 meta-cgl-common/recipes-cgl/corosync/corosync/corosync-notifyd.service
create mode 100644 meta-cgl-common/recipes-cgl/corosync/corosync/corosync.service
rename meta-cgl-common/recipes-cgl/corosync/{corosync_1.4.7.bb => corosync_1.4.8.bb} (51%)
diff --git a/meta-cgl-common/recipes-cgl/corosync/corosync/corosync-notifyd.service b/meta-cgl-common/recipes-cgl/corosync/corosync/corosync-notifyd.service
new file mode 100644
index 0000000..ce576fe
--- /dev/null
+++ b/meta-cgl-common/recipes-cgl/corosync/corosync/corosync-notifyd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Corosync Dbus and snmp notifier
+Wants=corosync.service
+After=corosync.service
+
+[Service]
+EnvironmentFile=@SYSCONFDIR@/sysconfig/corosync-notifyd
+ExecStart=@SBINDIR@/corosync-notifyd -f $OPTIONS
+Type=simple
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-cgl-common/recipes-cgl/corosync/corosync/corosync.service b/meta-cgl-common/recipes-cgl/corosync/corosync/corosync.service
new file mode 100644
index 0000000..d5dd38f
--- /dev/null
+++ b/meta-cgl-common/recipes-cgl/corosync/corosync/corosync.service
@@ -0,0 +1,26 @@
+[Unit]
+Description=Corosync Cluster Engine
+ConditionKernelCommandLine=!nocluster
+Requires=network-online.target
+After=network-online.target
+
+[Service]
+ExecStart=@DATADIR@/corosync/corosync start
+ExecStop=@DATADIR@/corosync/corosync stop
+Type=oneshot
+RemainAfterExit=yes
+
+# The following config is for corosync with enabled watchdog service.
+#
+# When corosync watchdog service is being enabled and using with
+# pacemaker.service, and if you want to exert the watchdog when a
+# corosync process is terminated abnormally,
+# uncomment the line of the following Restart= and RestartSec=.
+#Restart=on-failure
+# Specify a period longer than soft_margin as RestartSec.
+#RestartSec=70
+# rewrite according to environment.
+#ExecStartPre=/sbin/modprobe softdog soft_margin=60
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb b/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.8.bb
similarity index 51%
rename from meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb
rename to meta-cgl-common/recipes-cgl/corosync/corosync_1.4.8.bb
index 019a2f4..3b5afce 100644
--- a/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb
+++ b/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.8.bb
@@ -4,7 +4,7 @@ several default APIs and libraries, default configuration files, and an init \
script."
HOMEPAGE = "http://corosync.github.io/corosync/"
-inherit autotools pkgconfig update-rc.d useradd
+inherit autotools pkgconfig update-rc.d useradd systemd
SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BPN}-${PV}.tar.gz \
file://groff-desc-path.patch \
@@ -13,22 +13,29 @@ SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BPN}-${PV}.tar.gz \
file://build-cleanup-configure-ac.patch \
file://corosync.init \
file://notifyd.init \
+ file://corosync.service \
+ file://corosync-notifyd.service \
file://volatiles \
"
-SRC_URI[md5sum] = "da9b2cf0b55f08ac4cf7cd82ac2f977a"
-SRC_URI[sha256sum] = "c1d005b2093e9a725abd1dfb2be936114b561c0b3145aca11f58c1a733a05af8"
+SRC_URI[md5sum] = "e16c71db45c8b39948847655958d0dec"
+SRC_URI[sha256sum] = "64ee50f783a4bfa8a63fd576090cf7dd1810f3c60e01b4886723b87c5ff2b013"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=25656171d1e4054c636a9893067f8c30"
-DEPENDS = "groff-native nss"
+DEPENDS = "groff-native"
INSANE_SKIP_${PN} += ""
-EXTRA_OECONF += " --enable-nss "
CFLAGS_append += " -fPIC "
+PACKAGECONFIG ?= "dbus nss snmp"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[nss] = "--enable-nss,--disable-nss,nss"
+PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+
do_compile() {
DESCPATH="${STAGING_DATADIR_NATIVE}/groff/`groff -v | awk '{if(NR==1)print $4}'`/font"
oe_runmake DESCPATH=${DESCPATH}
@@ -37,6 +44,7 @@ do_compile() {
do_install_append() {
install -d ${D}${sysconfdir}/default/volatiles
install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/05_corosync
+ install -D -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
# Original init script is too bashy
rm -f ${D}/${sysconfdir}/init.d/corosync
@@ -44,17 +52,37 @@ do_install_append() {
rm -rf ${D}/${sysconfdir}/init.d/corosync-notifyd
install -m 0755 ${WORKDIR}/notifyd.init ${D}/${sysconfdir}/init.d/corosync-notifyd
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${datadir}/${BPN}
+ cp ${D}/${sysconfdir}/init.d/* ${D}${datadir}/${BPN}/
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/corosync.service ${D}${systemd_system_unitdir}
+ sed -i -e 's, at DATADIR@,${datadir},g' ${D}${systemd_system_unitdir}/corosync.service
+
+ install -m 0644 ${WORKDIR}/corosync-notifyd.service ${D}${systemd_system_unitdir}
+ sed -i -e 's, at SYSCONFDIR@,${sysconfdir},g' \
+ -e 's, at SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/corosync-notifyd.service
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
+ fi
+
rm -fr "${D}${localstatedir}/lock"
rm -fr "${D}${localstatedir}/run"
rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
}
-FILES_${PN} += "run"
+FILES_${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
INITSCRIPT_NAME = "corosync"
+INITSCRIPT_PARAMS = "remove"
+
+SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "haclient"
USERADD_PARAM_${PN} = "-M --home ${localstatedir}/lib/heartbeat -g haclient hacluster"
-
--
2.11.0
More information about the yocto
mailing list