Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 1 | SUMMARY = "Cron daemon for executing programs at set times" |
| 2 | DESCRIPTION = "Cronie contains the standard UNIX daemon crond that runs \ |
| 3 | specified programs at scheduled times and related tools. It is based on the \ |
| 4 | original cron and has security and configuration enhancements like the \ |
| 5 | ability to use pam and SELinux." |
| 6 | HOMEPAGE = "https://github.com/cronie-crond/cronie/" |
| 7 | BUGTRACKER = "https://bugzilla.redhat.com" |
| 8 | |
| 9 | # Internet Systems Consortium License |
| 10 | LICENSE = "ISC & BSD-3-Clause & BSD-2-Clause & GPL-2.0-or-later" |
| 11 | LIC_FILES_CHKSUM = "file://COPYING;md5=dd2a592170760e1386c769e1043b3722 \ |
| 12 | file://src/cron.c;endline=20;md5=b425c334265026177128353a142633b4 \ |
| 13 | file://src/popen.c;beginline=3;endline=31;md5=edd50742d8def712e9472dba353668a9" |
| 14 | |
| 15 | SECTION = "utils" |
| 16 | |
Andrew Geissler | 87f5cff | 2022-09-30 13:13:31 -0500 | [diff] [blame] | 17 | GITHUB_BASE_URI = "https://github.com/cronie-crond/${BPN}/releases/" |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 18 | |
Andrew Geissler | 87f5cff | 2022-09-30 13:13:31 -0500 | [diff] [blame] | 19 | SRC_URI = "${GITHUB_BASE_URI}/download/cronie-${PV}/cronie-${PV}.tar.gz \ |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 20 | file://crond.init \ |
| 21 | file://crontab \ |
| 22 | file://crond.service \ |
| 23 | ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" |
| 24 | |
| 25 | PAM_SRC_URI = "file://crond_pam_config.patch" |
| 26 | PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid" |
| 27 | |
Andrew Geissler | d583833 | 2022-05-27 11:33:10 -0500 | [diff] [blame] | 28 | SRC_URI[sha256sum] = "2cd0f0dd1680e6b9c39bf1e3a5e7ad6df76aa940de1ee90a453633aa59984e62" |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 29 | |
Andrew Geissler | 87f5cff | 2022-09-30 13:13:31 -0500 | [diff] [blame] | 30 | inherit autotools update-rc.d useradd systemd github-releases |
| 31 | UPSTREAM_CHECK_REGEX = "releases/tag/cronie-(?P<pver>\d+(\.\d+)+)" |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 32 | |
| 33 | PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" |
| 34 | |
| 35 | PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit," |
| 36 | PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}" |
| 37 | PACKAGECONFIG[anacron] = "--enable-anacron,--disable-anacron,anacron" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 38 | PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux" |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 39 | |
| 40 | INITSCRIPT_NAME = "crond" |
| 41 | INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ." |
| 42 | |
| 43 | USERADD_PACKAGES = "${PN}" |
| 44 | GROUPADD_PARAM:${PN} = "--system crontab" |
| 45 | |
| 46 | SYSTEMD_SERVICE:${PN} = "crond.service" |
| 47 | |
| 48 | do_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_system_unitdir} |
| 56 | install -m 0644 ${WORKDIR}/crond.service ${D}${systemd_system_unitdir} |
| 57 | sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ |
| 58 | -e 's,@SBINDIR@,${sbindir},g' \ |
| 59 | ${D}${systemd_system_unitdir}/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 | |
| 84 | FILES:${PN} += "${sysconfdir}/cron*" |
| 85 | CONFFILES:${PN} += "${sysconfdir}/crontab" |