Hello, Please ignore this patch, I will send a v2 with improvements.
Regards, Romain Le 23/03/2017 à 15:52, Romain Perier a écrit : > Currently, this recipe only supports daily scheduling via a cron job. > This commit adds support for systemd, including systemd service and > systemd timer. When the corresponding distro feature is enabled the > systemd timer will be used instead of the cron job. > > Signed-off-by: Romain Perier <romain.per...@collabora.com> > --- > > Note: I was not registered on the yocto and oe ML, I subscribed. So > I resend for this reason (my bad). > > .../logrotate/logrotate/logrotate.service | 9 +++++++++ > .../logrotate/logrotate/logrotate.timer | 7 +++++++ > meta/recipes-extended/logrotate/logrotate_3.9.1.bb | 22 > ++++++++++++++++++++-- > 3 files changed, 36 insertions(+), 2 deletions(-) > create mode 100644 > meta/recipes-extended/logrotate/logrotate/logrotate.service > create mode 100644 meta/recipes-extended/logrotate/logrotate/logrotate.timer > > diff --git a/meta/recipes-extended/logrotate/logrotate/logrotate.service > b/meta/recipes-extended/logrotate/logrotate/logrotate.service > new file mode 100644 > index 0000000..3edb8ef > --- /dev/null > +++ b/meta/recipes-extended/logrotate/logrotate/logrotate.service > @@ -0,0 +1,9 @@ > +[Unit] > +Description=Rotate log files > + > +[Service] > +Type=oneshot > +ExecStart=/usr/sbin/logrotate /etc/logrotate.conf > +Nice=19 > +IOSchedulingClass=best-effort > +IOSchedulingPriority=7 > diff --git a/meta/recipes-extended/logrotate/logrotate/logrotate.timer > b/meta/recipes-extended/logrotate/logrotate/logrotate.timer > new file mode 100644 > index 0000000..a92ba1e > --- /dev/null > +++ b/meta/recipes-extended/logrotate/logrotate/logrotate.timer > @@ -0,0 +1,7 @@ > +[Unit] > +Description=Daily rotation of log files > + > +[Timer] > +OnCalendar=daily > +AccuracySec=12h > +Persistent=true > diff --git a/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > b/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > index 5f1a601..734d661 100644 > --- a/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > +++ b/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > @@ -14,6 +14,8 @@ SRC_URI = > "https://fedorahosted.org/releases/l/o/logrotate/logrotate-${PV}.tar.g > file://act-as-mv-when-rotate.patch \ > file://update-the-manual.patch \ > file://disable-check-different-filesystems.patch \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', > 'file://logrotate.service', '', d)} \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', > 'file://logrotate.timer', '', d)} \ > " > > SRC_URI[md5sum] = "4492b145b6d542e4a2f41e77fa199ab0" > @@ -47,6 +49,14 @@ EXTRA_OEMAKE = "\ > # INSTALL=install and BASEDIR=/usr. > OS_NAME = "Linux" > > +inherit systemd > + > +SYSTEMD_AUTO_ENABLE = "disable" > +SYSTEMD_SERVICE_${PN} = "\ > + ${PN}.service \ > + ${PN}.timer \ > +" > + > do_compile_prepend() { > # Make sure the recompile is OK > rm -f ${B}/.depend > @@ -55,9 +65,17 @@ do_compile_prepend() { > do_install(){ > oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir} > mkdir -p ${D}${sysconfdir}/logrotate.d > - mkdir -p ${D}${sysconfdir}/cron.daily > mkdir -p ${D}${localstatedir}/lib > install -p -m 644 examples/logrotate-default > ${D}${sysconfdir}/logrotate.conf > - install -p -m 755 examples/logrotate.cron > ${D}${sysconfdir}/cron.daily/logrotate > touch ${D}${localstatedir}/lib/logrotate.status > + > + # Install systemd unit files > + if [ "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', > d)}" = "systemd" ]; then > + install -d ${D}/${systemd_system_unitdir} > + install -m 0644 ${WORKDIR}/logrotate.service > ${D}/${systemd_system_unitdir}/logrotate.service > + install -m 0644 ${WORKDIR}/logrotate.timer > ${D}/${systemd_system_unitdir}/logrotate.timer > + else > + mkdir -p ${D}${sysconfdir}/cron.daily > + install -p -m 0755 examples/logrotate.cron > ${D}${sysconfdir}/cron.daily/logrotate > + fi > } -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core