Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 May 2014 16:12:36 -0500
From:      Mark Felder <feld@FreeBSD.org>
To:        Adam Weinberger <adamw@FreeBSD.org>
Cc:        svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@FreeBSD.org
Subject:   Re: svn commit: r353977 - head/security/py-fail2ban
Message-ID:  <5CC317FA-F4BD-40C4-ACD8-04AB16902C4A@FreeBSD.org>
In-Reply-To: <201405131830.s4DIUNGm023128@svn.freebsd.org>
References:  <201405131830.s4DIUNGm023128@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On May 13, 2014, at 13:30, Adam Weinberger <adamw@FreeBSD.org> wrote:

>=20
> post-install:
> -	@${MKDIR} ${STAGEDIR}${FAIL2BAN_DBDIR}
> +	@${MKDIR} ${STAGEDIR}${FAIL2BAN_DBDIR} ${STAGEDIR}/var/run/fail2ban
> 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
> 	(cd ${WRKSRC}/ && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR})
> .for file in fail2ban-client fail2ban-regex fail2ban-server fail2ban
>=20


Pkg ignores items in ${STAGEDIR}/var (and probably all of base), so this =
won't actually make it into a package. In fact, since the creation of =
the stage dir it won't even make it if installed from a port (as a =
package is created before being installed). Anything you need created =
for the port to run that must exist in base such as /var/run/, /var/db/, =
/var/log/, etc should be handled in the rc script start_precmd so it =
gets created if necessary just before the daemon is launched.

Just drop something in like

start_precmd=3Dfail2ban_prestart

fail2ban_prestart()
{
    for i in run db; do
        if [ ! -d /var/${i}/fail2ban ]; then
          install -d -o fail2ban /dev/null /var/${i}/fail2ban
        fi
    done
}

(or more verbose, but two actions -- mkdir and then chown)

and then you can remove those MKDIRs in post-install


hth



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5CC317FA-F4BD-40C4-ACD8-04AB16902C4A>