summaryrefslogtreecommitdiff
path: root/core/mlocate
diff options
context:
space:
mode:
Diffstat (limited to 'core/mlocate')
-rw-r--r--core/mlocate/PKGBUILD52
-rw-r--r--core/mlocate/mlocate.install18
-rw-r--r--core/mlocate/updatedb.conf5
-rwxr-xr-xcore/mlocate/updatedb.cron.daily29
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