diff options
author | Azamat H. Hackimov <azamat.hackimov@gmail.com> | 2016-12-12 11:50:37 +0500 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2016-12-12 09:46:25 +0100 |
commit | 79fc4caa544234246e9040e0610137070618e4c0 (patch) | |
tree | 69a299605487e7b01c407a3949ae17ed70bf416d /sys-apps/mlocate | |
parent | sys-process/anacron: Fixed incomplete EAPI-6 conversion (bug #602416). (diff) | |
download | gentoo-79fc4caa544234246e9040e0610137070618e4c0.tar.gz gentoo-79fc4caa544234246e9040e0610137070618e4c0.tar.bz2 gentoo-79fc4caa544234246e9040e0610137070618e4c0.zip |
sys-apps/mlocate: Revbump - cleanup temporary files at cron.daily job
During updating database mlocate creates tmp-file. If daily cron job has failed
(for example, after reboot), tmp-files are left in disk.
Added rm command before updatedb to delete these orphained files.
Package-Manager: portage-2.3.0
Closes: https://github.com/gentoo/gentoo/pull/3096
Diffstat (limited to 'sys-apps/mlocate')
-rw-r--r-- | sys-apps/mlocate/files/mlocate.cron-r3 | 51 | ||||
-rw-r--r-- | sys-apps/mlocate/mlocate-0.26-r2.ebuild | 63 |
2 files changed, 114 insertions, 0 deletions
diff --git a/sys-apps/mlocate/files/mlocate.cron-r3 b/sys-apps/mlocate/files/mlocate.cron-r3 new file mode 100644 index 000000000000..7f3252e9cc76 --- /dev/null +++ b/sys-apps/mlocate/files/mlocate.cron-r3 @@ -0,0 +1,51 @@ +#! /bin/sh +set -e + +# check if we run on battery and if so then don't run +if which on_ac_power >/dev/null 2>&1; then + ON_BATTERY=0 + on_ac_power >/dev/null 2>&1 || ON_BATTERY=$? + if [ "${ON_BATTERY}" -eq 1 ]; then + exit 0 + fi +fi + +# check if we are already running (lockfile) +LOCKFILE="/var/lock/mlocate.daily.lock" +if [ -e "${LOCKFILE}" ]; then + echo >&2 "Warning: \"${LOCKFILE}\" already present, not running updatedb." + exit 1 +fi +touch "${LOCKFILE}" +# trap the lockfile only if we really run the updatedb +trap "rm -f ${LOCKFILE}" EXIT + +# source the user specified variables +if [ -f /etc/mlocate-cron.conf ]; then + . /etc/mlocate-cron.conf +fi + +# check the config file +NODEVS="" +if [ ! -f /etc/updatedb.conf ]; then + NODEVS=$(awk '$1 == "nodev" && $2 != "rootfs" { print $2 }' /proc/filesystems) +fi + +# alter the priority of the updatedb process +if [ -x /usr/bin/renice ]; then + /usr/bin/renice +${NICE:-19} -p $$ > /dev/null 2>&1 +fi +if [ -x /usr/bin/ionice ] && /usr/bin/ionice -c3 true 2>/dev/null; then + /usr/bin/ionice -c${IONICE_CLASS:-2} -n${IONICE_PRIORITY:-7} -p $$ > /dev/null 2>&1 +fi + +# Cleanup old temp files from previous unsuccessful runs +rm -f /var/lib/mlocate/mlocate.db.* + +# run the updatedb if possible +if [ -x /usr/bin/updatedb ]; then + /usr/bin/updatedb -f "${NODEVS}" +else + echo >&2 "Warning: \"/usr/bin/updatedb\" is not executable, unable to run updatedb." + exit 0 +fi diff --git a/sys-apps/mlocate/mlocate-0.26-r2.ebuild b/sys-apps/mlocate/mlocate-0.26-r2.ebuild new file mode 100644 index 000000000000..efb764baea1d --- /dev/null +++ b/sys-apps/mlocate/mlocate-0.26-r2.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils user toolchain-funcs + +DESCRIPTION="Merging locate is an utility to index and quickly search for files" +HOMEPAGE="https://fedorahosted.org/mlocate/" +SRC_URI="https://fedorahosted.org/releases/m/l/mlocate/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="nls selinux" + +RDEPEND="!sys-apps/slocate + !sys-apps/rlocate + selinux? ( sec-policy/selinux-slocate )" +DEPEND="app-arch/xz-utils + nls? ( sys-devel/gettext ) +" + +pkg_setup() { + enewgroup locate +} + +src_configure() { + econf $(use_enable nls) +} + +src_compile() { + emake groupname=locate AR="$(tc-getAR)" +} + +src_install() { + emake groupname=locate DESTDIR="${D}" install + dodoc AUTHORS ChangeLog README NEWS + + insinto /etc + doins "${FILESDIR}"/updatedb.conf + doins "${FILESDIR}"/mlocate-cron.conf + fperms 0644 /etc/{updatedb,mlocate-cron}.conf + + insinto /etc/cron.daily + newins "${FILESDIR}"/mlocate.cron-r3 mlocate + fperms 0755 /etc/cron.daily/mlocate + + fowners 0:locate /usr/bin/locate + fperms go-r,g+s /usr/bin/locate + + keepdir /var/lib/mlocate + chown -R 0:locate "${ED}"/var/lib/mlocate + fperms 0750 /var/lib/mlocate +} + +pkg_postinst() { + elog "The database for the locate command is generated daily by a cron job," + elog "if you install for the first time you can run the updatedb command manually now." + elog + elog "Note that the /etc/updatedb.conf file is generic," + elog "please customize it to your system requirements." +} |