diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2015-09-15 14:41:29 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2015-09-15 14:41:29 -0500 |
commit | 21f9b84b4b729fbd7acbd465e7a3f726e4d20f91 (patch) | |
tree | eb2d091d427ca0813b445509d59cc8e27e8ad25f /yocto-poky/meta/recipes-extended/cronie | |
parent | 101cef31e2bf54c678501155cd2106251acbd076 (diff) | |
parent | c124f4f2e04dca16a428a76c89677328bc7bf908 (diff) | |
download | talos-openbmc-21f9b84b4b729fbd7acbd465e7a3f726e4d20f91.tar.gz talos-openbmc-21f9b84b4b729fbd7acbd465e7a3f726e4d20f91.zip |
Merge commit 'c124f4f2e04dca16a428a76c89677328bc7bf908' as 'yocto-poky'
Diffstat (limited to 'yocto-poky/meta/recipes-extended/cronie')
5 files changed, 183 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-extended/cronie/cronie/crond.init b/yocto-poky/meta/recipes-extended/cronie/cronie/crond.init new file mode 100755 index 000000000..53b8514ca --- /dev/null +++ b/yocto-poky/meta/recipes-extended/cronie/cronie/crond.init @@ -0,0 +1,58 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: crond crontab +# Default-Start: 2345 +# Default-Stop: 016 +# Short-Description: run cron daemon +# Description: cron is a standard UNIX program that runs user-specified +# programs at periodic scheduled times. vixie cron adds a +# number of features to the basic UNIX cron, including better +# security and more powerful configuration options. +### END INIT INFO + +CROND=/usr/sbin/crond +CONFIG=/etc/sysconfig/crond + +[ -f $CONFIG ] || exit 1 +[ -x $CROND ] || exit 1 + +. $CONFIG + +# Source function library. +. /etc/init.d/functions + +case "$1" in + start) + echo -n "Starting crond: " + start-stop-daemon --start --quiet --exec $CROND -- $CRONDARGS + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + echo "OK" + else + echo "FAIL" + fi + ;; + stop) + echo -n "Stopping crond: " + start-stop-daemon --stop --quiet --pidfile /var/run/crond.pid + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + echo "OK" + else + echo "FAIL" + fi + ;; + status) + status crond + exit $? + ;; + restart) + $0 stop && sleep 1 && $0 start + ;; + *) + echo "Usage: /etc/init.d/crond {start|stop|status|restart}" + exit 1 +esac + +exit 0 + diff --git a/yocto-poky/meta/recipes-extended/cronie/cronie/crond.service b/yocto-poky/meta/recipes-extended/cronie/cronie/crond.service new file mode 100644 index 000000000..d435a6eb3 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/cronie/cronie/crond.service @@ -0,0 +1,11 @@ +[Unit] +Description=Periodic Command Scheduler + +[Service] +EnvironmentFile=/etc/sysconfig/crond +ExecStart=@SBINDIR@/crond -n $CRONDARGS +ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch b/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch new file mode 100644 index 000000000..675872c3c --- /dev/null +++ b/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch @@ -0,0 +1,19 @@ +password-auth is the Fedora's common pam configure file, use oe common pam +configure files instead. + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +--- cronie-1.4.7/pam/crond.orig 2010-12-16 16:59:02.000000000 +0800 ++++ cronie-1.4.7/pam/crond 2011-07-20 09:47:16.080819203 +0800 +@@ -4,7 +4,7 @@ + # + # No PAM authentication called, auth modules not needed + account required pam_access.so +-account include password-auth ++account include common-account + session required pam_loginuid.so +-session include password-auth +-auth include password-auth ++session include common-session-noninteractive ++auth include common-auth diff --git a/yocto-poky/meta/recipes-extended/cronie/cronie/crontab b/yocto-poky/meta/recipes-extended/cronie/cronie/crontab new file mode 100644 index 000000000..22c4feb2d --- /dev/null +++ b/yocto-poky/meta/recipes-extended/cronie/cronie/crontab @@ -0,0 +1,14 @@ +# /etc/crontab: system-wide crontab +# Unlike any other crontab you don't have to run the `crontab' +# command to install the new version when you edit this file +# and files in /etc/cron.d. These files also have username fields, +# that none of the other crontabs do. + +SHELL=/bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +# m h dom mon dow user command +# 1 * * * * root cd / && run-parts /etc/cron.hourly +# 30 7 * * * root cd / && run-parts /etc/cron.daily +# 42 7 * * 7 root cd / && run-parts /etc/cron.weekly +# 55 7 1 * * root cd / && run-parts /etc/cron.monthly diff --git a/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb b/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb new file mode 100644 index 000000000..38bd5935c --- /dev/null +++ b/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb @@ -0,0 +1,81 @@ +SUMMARY = "Cron daemon for executing programs at set times" +DESCRIPTION = "Cronie contains the standard UNIX daemon crond that runs \ +specified programs at scheduled times and related tools. It is based on the \ +original cron and has security and configuration enhancements like the \ +ability to use pam and SELinux." +HOMEPAGE = "https://fedorahosted.org/cronie/" +BUGTRACKER = "mmaslano@redhat.com" + +# Internet Systems Consortium License +LICENSE = "ISC & BSD-3-Clause & BSD-2-Clause & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2a592170760e1386c769e1043b3722 \ + file://src/cron.c;endline=20;md5=b425c334265026177128353a142633b4 \ + file://src/popen.c;beginline=3;endline=31;md5=edd50742d8def712e9472dba353668a9" + +SECTION = "utils" + +SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \ + file://crond.init \ + file://crontab \ + file://crond.service \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" + +PAM_SRC_URI = "file://crond_pam_config.patch" +PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid" + +SRC_URI[md5sum] = "9db75e1884d83a45e002d145c6c54d45" +SRC_URI[sha256sum] = "9cf0e3f4f5042a9c09413d62c8e0c055e12401f70b112465f0f81f2c84ebfb3f" + +inherit autotools update-rc.d useradd systemd + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" + +PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit," +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}" + +INITSCRIPT_NAME = "crond" +INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ." + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system crontab" + +SYSTEMD_SERVICE_${PN} = "crond.service" + +do_install_append () { + install -d ${D}${sysconfdir}/sysconfig/ + install -d ${D}${sysconfdir}/init.d/ + install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond + install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond + + # install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/crond.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_unitdir}/system/crond.service + + # below are necessary for a complete cron environment + install -d ${D}${localstatedir}/spool/cron + install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/ + mkdir -p ${D}${sysconfdir}/cron.d + mkdir -p ${D}${sysconfdir}/cron.hourly + mkdir -p ${D}${sysconfdir}/cron.daily + mkdir -p ${D}${sysconfdir}/cron.weekly + mkdir -p ${D}${sysconfdir}/cron.monthly + touch ${D}${sysconfdir}/cron.deny + + # below setting is necessary to allow normal user using crontab + + # setgid for crontab binary + chown root:crontab ${D}${bindir}/crontab + chmod 2755 ${D}${bindir}/crontab + + # allow 'crontab' group write to /var/spool/cron + chown root:crontab ${D}${localstatedir}/spool/cron + chmod 770 ${D}${localstatedir}/spool/cron + + chmod 600 ${D}${sysconfdir}/crontab +} + +FILES_${PN} += "${sysconfdir}/cron*" +CONFFILES_${PN} += "${sysconfdir}/crontab" |