Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 May 2011 23:23:23 +0200
From:      olli hauer <ohauer@gmx.de>
To:        utisoft@gmail.com
Cc:        ports@freebsd.org, portmgr@freebsd.org
Subject:   Re: Propose new macro: INSTALL_CONF
Message-ID:  <4DD0444B.7040600@gmx.de>
In-Reply-To: <BANLkTi=ngB4iayhSB5rUziXH=iBPt0Nn1w@mail.gmail.com>
References:  <BANLkTimYjuzp%2BV%2Bpi4bpOUv=uwe9UqjmGA@mail.gmail.com>	<BANLkTikRxcqbvhyyryxyvt__4eeFSa-siQ@mail.gmail.com> <BANLkTi=ngB4iayhSB5rUziXH=iBPt0Nn1w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2011-05-15 22:56, Chris Rees wrote:
> On 14 May 2011 18:32, Chris Rees <utisoft@gmail.com> wrote:
>> On 14 May 2011 16:39, Chris Rees <utisoft@gmail.com> wrote:
>>> Hi all,
>>>
>>> I'm getting frustrated with editing config files of ports in vi, and
>>> being told it's read-only.
>>>
>>> This stops me using ZZ to quit, which makes me sad.
>>>
>>> It's also inconsistent with src/etc/Makefile which uses for example:
>>>
>>> .if ${MK_OPENSSH} != "no"
>>>        cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
>>>            ${SSH} ${DESTDIR}/etc/ssh
>>> .endif
>>>
>>> The problem stems from installing .sample files as DATA, and then using
>>> cp -p preserving the -w bits --> 444 makes perfect sense for a .sample file,
>>> but not at all for a config file.
>>>
>>> I have two options proposed.
>>>
>>> For both introduce CONFMODE into src/share/mk/bsd.own.mk, patch for
>>> which is at [1].
>>>
>>> Option 1: Rewrite the Porter's Handbook section on config files to use
>>> a macro involving CONFMODE instead of cp -p, which gets complicated
>>> when using with @exec in pkg-plist
>>>
>>> Option 2: Create an INSTALL_CONF macro, which handles the .conf.sample
>>> -> .conf automagically and sticks the right lines into TMPPLIST.
>>>
>>> I'm swinging towards Option 2, but I haven't written the code for that
>>> yet in case someone shoots me down :P
>>>
>>> Any concerns about inconsistencies between the INSTALL_* macros could
>>> be addressed by calling it something different; I'm open to
>>> suggestions!
>>>
>>> We'd also need to deal with the MFC and subsequent updates of bsd.own.mk...
>>>
>>> Chris
>>>
>>> [1] http://www.bayofrum.net/~crees/patches/bsd-own-mk-confmode.patch
>>
>> A third option has occurred to me:
>>
>> Create a new variable USE_CONF_FILES to work in a similar vein to USE_RC_SUBR...
>>
> 
> Right, I've fleshed this out with some real code.
> 
> New variables: CONF_FILES and CONF_DIRS.
> 
> CONF_FILES is like *_DEPENDS as a colon-separated field:
> 
> CONF_FILES=   absolute_path_to_source_file:prefix_relative_path_to_target_file
> 
> CONF_DIRS=    dirs to add with @dirrmtry behaviour, in correct order.
> 
> Of course, CONF_FILES clashes with some other ports, so before
> importing this we'd need to shift those aside / choose a different
> name for this variable.
> 
> 
> Patch to bsd.port.mk at [1], and a sample patch to net/opentracker [2]
> with syntax.
> 
> Try it out with ${FAVOURITE_PORT}!
> 
> I also promise to document it (if approved) in the Porter's Handbook,
> code it into portlint and maintain the code as well as take flak from
> porters!
> 
> Feedback very welcome.
> 
> Chris
> 


Hm, until now I just overwrite the mode during install
${INSTALL} or ${INSTALL_DATA} -m 644

and for sensitive config files
${INSTALL} or ${INSTALL_DATA} -m 640 -o ... -g ...

For config dirs (in the Makefile)
PLIST_DIRSTRY=  %%ETCDIR%%

This seems easier to me.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4DD0444B.7040600>