sys-apps/mlocate: modernize ebuild

- EAPI=7
- Depend on acct-group/locate
- Install systemd service/timer
- Remove unneeded fperms/chown
- Display postinst message on initial install only

Closes: https://bugs.gentoo.org/622236
Closes: https://bugs.gentoo.org/509994
Package-Manager: Portage-2.3.96_p4, Repoman-2.3.22_p1
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
This commit is contained in:
Mike Gilbert
2020-04-12 12:06:19 -04:00
parent 0990e13ce3
commit 0af088b41c
3 changed files with 80 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
[Unit]
Description=Update locate database
[Service]
Type=oneshot
ExecStart=/usr/bin/updatedb
IOSchedulingClass=idle

View File

@@ -0,0 +1,10 @@
[Unit]
Description=Daily locate database update
[Timer]
OnCalendar=daily
AccuracySec=12h
Persistent=true
[Install]
WantedBy=timers.target

View File

@@ -0,0 +1,63 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit eutils systemd toolchain-funcs
DESCRIPTION="Merging locate is an utility to index and quickly search for files"
HOMEPAGE="https://pagure.io/mlocate"
SRC_URI="http://releases.pagure.org/mlocate/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
IUSE="nls selinux"
BDEPEND="
acct-group/locate
nls? ( sys-devel/gettext )
"
RDEPEND="
acct-group/locate
!sys-apps/slocate
!sys-apps/rlocate
selinux? ( sec-policy/selinux-slocate )
"
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
keepdir /var/lib/mlocate
fowners 0:locate /var/lib/mlocate
fperms 0750 /var/lib/mlocate
systemd_dounit "${FILESDIR}"/updatedb.{service,timer}
}
pkg_postinst() {
if [[ -z ${REPLACING_VERSIONS} ]]; then
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."
fi
}