diff options
Diffstat (limited to 'core/mlocate')
-rw-r--r-- | core/mlocate/PKGBUILD | 52 | ||||
-rw-r--r-- | core/mlocate/mlocate.install | 18 | ||||
-rw-r--r-- | core/mlocate/updatedb.conf | 5 | ||||
-rwxr-xr-x | core/mlocate/updatedb.cron.daily | 29 |
4 files changed, 104 insertions, 0 deletions
diff --git a/core/mlocate/PKGBUILD b/core/mlocate/PKGBUILD new file mode 100644 index 000000000..62f7864c3 --- /dev/null +++ b/core/mlocate/PKGBUILD @@ -0,0 +1,52 @@ +# $Id: PKGBUILD 97017 2010-10-26 01:53:05Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: lydgate + +pkgname=mlocate +pkgver=0.23.1 +pkgrel=2 +pkgdesc="Faster merging drop-in for slocate" +arch=('i686' 'x86_64') +url="http://carolina.mff.cuni.cz/~trmac/blog/mlocate" +license=('GPL') +conflicts=('slocate') +provides=('slocate') +replaces=('slocate') +depends=('glibc' 'coreutils' 'sh') +backup=('etc/updatedb.conf' + 'etc/cron.daily/updatedb') +install=mlocate.install +source=(https://fedorahosted.org/releases/m/l/mlocate/mlocate-$pkgver.tar.xz + updatedb.conf + updatedb.cron.daily) +md5sums=('db48f27fae91c754c46d8046919803c5' + 'c374ff223f2e07b5e602ba22359f2335' + 'cde5da81bebad2de556ef2e43d895e13') + +build() { + cd $srcdir/$pkgname-$pkgver + + # Build! + sed -i '/^groupname /s/mlocate/locate/' Makefile.in + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib + make + make check +} + +package() { + cd $srcdir/$pkgname-$pkgver + + # Set up a default updatedb.conf and a daily cronjob + install -Dm644 ${srcdir}/updatedb.conf $pkgdir/etc/updatedb.conf + install -Dm744 ${srcdir}/updatedb.cron.daily $pkgdir/etc/cron.daily/updatedb + + # Install Mlocate + make DESTDIR=$pkgdir install + + ln -sv locate $pkgdir/usr/bin/slocate + chgrp -v 21 $pkgdir/usr/bin/locate + chmod -v 2755 $pkgdir/usr/bin/locate + + install -dm755 $pkgdir/var/lib + install -d -m750 -g21 $pkgdir/var/lib/locate +} diff --git a/core/mlocate/mlocate.install b/core/mlocate/mlocate.install new file mode 100644 index 000000000..c7b7f9cf7 --- /dev/null +++ b/core/mlocate/mlocate.install @@ -0,0 +1,18 @@ +post_install() { + post_upgrade "$1" "$1" + echo "mlocate command is technically locate, but slocate is symlinked and still works." + echo "You should run updatedb as root." +} + +post_upgrade() { + # This can be removed after {m,x}locate have both been updated + getent group slocate &>/dev/null && usr/sbin/groupdel slocate &>/dev/null + getent group mlocate &>/dev/null && usr/sbin/groupdel mlocate &>/dev/null + + getent group locate &>/dev/null || usr/sbin/groupadd -g 21 locate &>/dev/null + chown -R root:locate var/lib/mlocate +} + +pre_remove() { + getent group locate &>/dev/null && usr/sbin/groupdel locate &>/dev/null +} diff --git a/core/mlocate/updatedb.conf b/core/mlocate/updatedb.conf new file mode 100644 index 000000000..722b04205 --- /dev/null +++ b/core/mlocate/updatedb.conf @@ -0,0 +1,5 @@ +# directories to exclude from the slocate database: +PRUNEPATHS="/media /mnt /tmp /var/tmp /var/cache /var/lock /var/run /var/spool" + +# filesystems to exclude from the slocate database: +PRUNEFS="afs auto autofs binfmt_misc cifs coda configfs cramfs debugfs devpts devtmpfs ftpfs iso9660 mqueue ncpfs nfs nfs4 proc ramfs securityfs shfs smbfs sshfs sysfs tmpfs udf usbfs vboxsf" diff --git a/core/mlocate/updatedb.cron.daily b/core/mlocate/updatedb.cron.daily new file mode 100755 index 000000000..cac9bb063 --- /dev/null +++ b/core/mlocate/updatedb.cron.daily @@ -0,0 +1,29 @@ +#!/bin/sh + +# nicenesses range from -20 (most favorable scheduling) to 19 (least favorable) +NICE=19 + +# 0 for none, 1 for real time, 2 for best-effort, 3 for idle +IONICE_CLASS=2 + +# 0-7 (for IONICE_CLASS 1 and 2 only), 0=highest, 7=lowest +IONICE_PRIORITY=7 + +UPDATEDB="/usr/bin/updatedb" + +if [ -x /usr/bin/nice ]; then + UPDATEDB="/usr/bin/nice -n ${NICE:-19} ${UPDATEDB}" +fi + +if [ -x /usr/bin/ionice ]; then + UPDATEDB="/usr/bin/ionice -c ${IONICE_CLASS:-2} -n ${IONICE_PRIORITY:-7} ${UPDATEDB}" +fi + +# Update the "locate" database +if [ -x /usr/bin/updatedb ]; then + if [ -f /etc/updatedb.conf ]; then + ${UPDATEDB} + else + ${UPDATEDB} -f proc + fi +fi |