PKGNG upgrade / reinstall overides directory permissions
Miroslav Lachman
000.fbsd at quip.cz
Tue Jun 5 11:06:54 UTC 2012
Baptiste Daroussin wrote:
> On Tue, Jun 05, 2012 at 11:10:19AM +0200, Arnaud Houdelette wrote:
>> Hello.
>>
>> I'm currently testing pkgng and poudriere as a replacement for old pkg
>> and pkg_jail.
>>
>> When upgrading/reinstalling a port, pkg install / pkg upgrade resets the
>> permissions of the directories created by the ports which already exist.
>>
>> Old pkg_add did not have this behavior.
>>
>> For example,
>> - install lighttpd
>> - chmod 750 /var/log/lighttpd
>> - pkg install -f lighttpd
>>
>> => /var/log/lighttpd mode is reset to 700.
>>
>> Is this behavior correct ? Is there some option to avoid this ?
>>
>> Arnaud
>
> This is expected and there is no way to avoid this but fixing the ports itself
> so that it create a 750 package.
>
> The package should be consistent and the permission should be set at the
> package creation
> time.
>
> Of course my view here might be wrong and I'm all open for aguments against that
> :D
I am against automatic (silent) overriding of modified directory
permissions / owners. It is really annoying to correct it after each
update of the port.
I am not saying that it is problem of PKGNG, it is sometime problem
elsewhere - in my example in rc script of courier-authdaemond which contains
install -o courier -g courier -m 0750 -d "${authdaemonvar}"
So after update / reinstall, Postfix cannot connect to
courier-authdaemond socket to verify SMTP auth.
I don't know how it should be done for all ports in the same way.
Some ports let the user to create directories manually, some create them
only if directories doesn't exist, some change owner and permission on
existing directories (the worst case).
In the case of Lighttpd, the Makefile contains
LIGHTTPD_LOGROOT?= /var/log/lighttpd
LIGHTTPD_WEBROOT?= ${PREFIX}/www/data
LIGHTTPD_USER?= www
LIGHTTPD_GROUP?= www
PLIST_SUB+= LOGROOT="${LIGHTTPD_LOGROOT}" \
USER="${LIGHTTPD_USER}" \
GROUP="${LIGHTTPD_GROUP}" \
MKDIR="${MKDIR}" \
CHOWN="${CHOWN}"
Is it possible to add "LIGHTTPD_LOGROOT_MODE" (or some other variable)
to allow user to override default mode in make.conf?
LIGHTTPD_LOGROOT_MODE?= 0750
Or is it already recorded in binary package and cannot be overriden in
install time?
Miroslav Lachman
More information about the freebsd-ports
mailing list