# $Id: Portfile 91620 2012-04-07 01:38:02Z ryandesign@macports.org $

PortSystem          1.0

name                slocate
version             3.1
revision            2
categories          sysutils
license             GPL-2
homepage            http://slocate.trakker.ca/
description         Secure Locate is a replacement for locate.
long_description    Secure locate provides a secure way to index and quickly search \
                    for files on your system. It uses incremental encoding just like \
                    GNU locate to compress its database to make searching faster, \
                    but it will also check file permissions and ownership so that \
                    users will not see files they do not have access to. \
                    The big advantage is that slocate will find files in your ~, even \
                    if you made it unreadable by "nobody" (who traditionally performs \
                    the locate database update), without letting another user find \
                    files there.
platforms           darwin
maintainers         nomaintainer
master_sites        http://slackware.mirrors.tds.net/pub/slackware/slackware_source/a/slocate/ \
    http://slackware.mirrors.pair.com/slackware_source/a/slocate/

checksums           md5 908e6949d959ae7b686c10bb76b35bf3 \
                    sha1 e427552664385b86931b7626c26bd95ae5f9f085 \
                    rmd160 d3b1e818cc35ce8e87ec1b0764f6b2145a319e13
patchfiles          patch-Makefile \
                    patch-src-Makefile \
                    patch-src-conf.c \
                    patch-src-slocate.h \
                    patch-src-utils.c \
                    patch-doc-slocate.1

use_configure       no

post-patch {
    reinplace "s|__PREFIX__|${prefix}|g" ${worksrcpath}/src/slocate.h \
                                         ${worksrcpath}/doc/slocate.1 \
                                         ${worksrcpath}/src/Makefile \
                                         ${worksrcpath}/Makefile
    reinplace "s|__DESTROOT__|${destroot}|g" ${worksrcpath}/src/Makefile \
                                             ${worksrcpath}/Makefile
    reinplace "s|__USER__|${install.user}|g" ${worksrcpath}/Makefile
    reinplace "s|__GROUP__|${install.group}|g" ${worksrcpath}/Makefile
}

build.args          CC="${configure.cc}"

pre-destroot {
    addgroup slocate
}

destroot.keepdirs   ${destroot}${prefix}/var/db/slocate
post-destroot {
    xinstall -d -g slocate -o root ${destroot}${prefix}/var/db/slocate
    xinstall ${filespath}/daily.slocate ${destroot}${prefix}/etc/
    reinplace "s|__PREFIX__|${prefix}|g" ${destroot}${prefix}/etc/daily.slocate
}

variant universal {
    build.args-append   LDFLAGS="${configure.universal_ldflags}"

    post-configure {
        reinplace -E "/^CFLAGS=/s|\$| ${configure.universal_cflags}|" \
            ${worksrcpath}/src/Makefile
    }
}

notes "
slocate's database should be updated on a regular basis. In\
${prefix}/etc/daily.slocate, you'll find some lines to put in\
/etc/daily.local to update the database on a daily basis (for example).\
If you want to disable the weekly update of the system's built-in locate,\
edit the file /etc/weekly.
"
