summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/cronie
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/cronie')
-rwxr-xr-xmeta/recipes-extended/cronie/cronie/crond.init58
-rw-r--r--meta/recipes-extended/cronie/cronie/crond.service11
-rw-r--r--meta/recipes-extended/cronie/cronie/crond_pam_config.patch19
-rw-r--r--meta/recipes-extended/cronie/cronie/crontab10
-rw-r--r--meta/recipes-extended/cronie/cronie/fix-out-of-tree-build.patch31
-rw-r--r--meta/recipes-extended/cronie/cronie_1.4.11.bb85
6 files changed, 214 insertions, 0 deletions
diff --git a/meta/recipes-extended/cronie/cronie/crond.init b/meta/recipes-extended/cronie/cronie/crond.init
new file mode 100755
index 0000000000..53b8514caa
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie/crond.init
@@ -0,0 +1,58 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: crond crontab
4# Default-Start: 2345
5# Default-Stop: 016
6# Short-Description: run cron daemon
7# Description: cron is a standard UNIX program that runs user-specified
8# programs at periodic scheduled times. vixie cron adds a
9# number of features to the basic UNIX cron, including better
10# security and more powerful configuration options.
11### END INIT INFO
12
13CROND=/usr/sbin/crond
14CONFIG=/etc/sysconfig/crond
15
16[ -f $CONFIG ] || exit 1
17[ -x $CROND ] || exit 1
18
19. $CONFIG
20
21# Source function library.
22. /etc/init.d/functions
23
24case "$1" in
25 start)
26 echo -n "Starting crond: "
27 start-stop-daemon --start --quiet --exec $CROND -- $CRONDARGS
28 RETVAL=$?
29 if [ $RETVAL -eq 0 ] ; then
30 echo "OK"
31 else
32 echo "FAIL"
33 fi
34 ;;
35 stop)
36 echo -n "Stopping crond: "
37 start-stop-daemon --stop --quiet --pidfile /var/run/crond.pid
38 RETVAL=$?
39 if [ $RETVAL -eq 0 ] ; then
40 echo "OK"
41 else
42 echo "FAIL"
43 fi
44 ;;
45 status)
46 status crond
47 exit $?
48 ;;
49 restart)
50 $0 stop && sleep 1 && $0 start
51 ;;
52 *)
53 echo "Usage: /etc/init.d/crond {start|stop|status|restart}"
54 exit 1
55esac
56
57exit 0
58
diff --git a/meta/recipes-extended/cronie/cronie/crond.service b/meta/recipes-extended/cronie/cronie/crond.service
new file mode 100644
index 0000000000..d435a6eb34
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie/crond.service
@@ -0,0 +1,11 @@
1[Unit]
2Description=Periodic Command Scheduler
3
4[Service]
5EnvironmentFile=/etc/sysconfig/crond
6ExecStart=@SBINDIR@/crond -n $CRONDARGS
7ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
8Restart=always
9
10[Install]
11WantedBy=multi-user.target
diff --git a/meta/recipes-extended/cronie/cronie/crond_pam_config.patch b/meta/recipes-extended/cronie/cronie/crond_pam_config.patch
new file mode 100644
index 0000000000..675872c3cf
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie/crond_pam_config.patch
@@ -0,0 +1,19 @@
1password-auth is the Fedora's common pam configure file, use oe common pam
2configure files instead.
3
4Upstream-Status: Pending
5
6Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
7--- cronie-1.4.7/pam/crond.orig 2010-12-16 16:59:02.000000000 +0800
8+++ cronie-1.4.7/pam/crond 2011-07-20 09:47:16.080819203 +0800
9@@ -4,7 +4,7 @@
10 #
11 # No PAM authentication called, auth modules not needed
12 account required pam_access.so
13-account include password-auth
14+account include common-account
15 session required pam_loginuid.so
16-session include password-auth
17-auth include password-auth
18+session include common-session-noninteractive
19+auth include common-auth
diff --git a/meta/recipes-extended/cronie/cronie/crontab b/meta/recipes-extended/cronie/cronie/crontab
new file mode 100644
index 0000000000..cc9169eda9
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie/crontab
@@ -0,0 +1,10 @@
1# /etc/crontab: system-wide crontab
2# Unlike any other crontab you don't have to run the `crontab'
3# command to install the new version when you edit this file
4# and files in /etc/cron.d. These files also have username fields,
5# that none of the other crontabs do.
6
7SHELL=/bin/sh
8PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
9
10# m h dom mon dow user command
diff --git a/meta/recipes-extended/cronie/cronie/fix-out-of-tree-build.patch b/meta/recipes-extended/cronie/cronie/fix-out-of-tree-build.patch
new file mode 100644
index 0000000000..7384a0bad4
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie/fix-out-of-tree-build.patch
@@ -0,0 +1,31 @@
1For an out of tree build, the cronie-common.h file was not being
2found correctly, so point it to the top_srcdir
3
4Upstream-Status: Submitted
5
6Signed-off-by: Saul Wold <sgw@linux.intel.com>
7
8Index: cronie-1.4.11/anacron/Makefile.am
9===================================================================
10--- cronie-1.4.11.orig/anacron/Makefile.am
11+++ cronie-1.4.11/anacron/Makefile.am
12@@ -9,6 +9,7 @@ common_nodist = anacron-paths.h
13 nodist_anacron_SOURCES = $(common_nodist)
14 BUILT_SOURCES = $(common_nodist)
15
16+AM_CFLAGS = -I$(top_srcdir)
17
18 LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT)
19
20Index: cronie-1.4.11/src/Makefile.am
21===================================================================
22--- cronie-1.4.11.orig/src/Makefile.am
23+++ cronie-1.4.11/src/Makefile.am
24@@ -15,6 +15,7 @@ nodist_crond_SOURCES = $(common_nodist)
25 nodist_crontab_SOURCES = $(common_nodist)
26 BUILT_SOURCES = $(common_nodist)
27
28+AM_CFLAGS = -I$(top_srcdir)
29
30 LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT)
31
diff --git a/meta/recipes-extended/cronie/cronie_1.4.11.bb b/meta/recipes-extended/cronie/cronie_1.4.11.bb
new file mode 100644
index 0000000000..02234f6a36
--- /dev/null
+++ b/meta/recipes-extended/cronie/cronie_1.4.11.bb
@@ -0,0 +1,85 @@
1SUMMARY = "Cron daemon for executing programs at set times"
2DESCRIPTION = "Cronie contains the standard UNIX daemon crond that runs \
3specified programs at scheduled times and related tools. It is based on the \
4original cron and has security and configuration enhancements like the \
5ability to use pam and SELinux."
6HOMEPAGE = "https://fedorahosted.org/cronie/"
7BUGTRACKER = "mmaslano@redhat.com"
8
9# Internet Systems Consortium License
10LICENSE = "ISC & BSD"
11LIC_FILES_CHKSUM = "file://COPYING;md5=963ea0772a2adbdcd607a9b2ec320c11 \
12 file://src/cron.c;endline=20;md5=b425c334265026177128353a142633b4 \
13 file://src/popen.c;beginline=3;endline=31;md5=edd50742d8def712e9472dba353668a9"
14
15SECTION = "utils"
16
17
18SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \
19 file://fix-out-of-tree-build.patch \
20 file://crond.init \
21 file://crontab \
22 file://crond.service \
23 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
24
25PAM_SRC_URI = "file://crond_pam_config.patch"
26PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid"
27
28SRC_URI[md5sum] = "2ba645cf54de17f138ef70312843862f"
29SRC_URI[sha256sum] = "fd08084cedddbb42499f80ddb7f2158195c3555c2ff40ee11d4ece2f9864d7be"
30
31inherit autotools update-rc.d useradd systemd
32
33
34PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
35
36PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
37PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}"
38
39
40INITSCRIPT_NAME = "crond"
41INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ."
42
43USERADD_PACKAGES = "${PN}"
44GROUPADD_PARAM_${PN} = "--system crontab"
45
46SYSTEMD_SERVICE_${PN} = "crond.service"
47
48do_install_append () {
49 install -d ${D}${sysconfdir}/sysconfig/
50 install -d ${D}${sysconfdir}/init.d/
51 install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
52 install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond
53
54 # install systemd unit files
55 install -d ${D}${systemd_unitdir}/system
56 install -m 0644 ${WORKDIR}/crond.service ${D}${systemd_unitdir}/system
57 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
58 -e 's,@SBINDIR@,${sbindir},g' \
59 ${D}${systemd_unitdir}/system/crond.service
60
61 # below are necessary for a complete cron environment
62 install -d ${D}${localstatedir}/spool/cron
63 install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/
64 mkdir -p ${D}${sysconfdir}/cron.d
65 mkdir -p ${D}${sysconfdir}/cron.hourly
66 mkdir -p ${D}${sysconfdir}/cron.daily
67 mkdir -p ${D}${sysconfdir}/cron.weekly
68 mkdir -p ${D}${sysconfdir}/cron.monthly
69 touch ${D}${sysconfdir}/cron.deny
70
71 # below setting is necessary to allow normal user using crontab
72
73 # setgid for crontab binary
74 chown root:crontab ${D}${bindir}/crontab
75 chmod 2755 ${D}${bindir}/crontab
76
77 # allow 'crontab' group write to /var/spool/cron
78 chown root:crontab ${D}${localstatedir}/spool/cron
79 chmod 770 ${D}${localstatedir}/spool/cron
80
81 chmod 600 ${D}${sysconfdir}/crontab
82}
83
84FILES_${PN} += "${sysconfdir}/cron*"
85