Propose new macro: INSTALL_CONF
Chris Rees
utisoft at gmail.com
Sun May 15 20:56:57 UTC 2011
On 14 May 2011 18:32, Chris Rees <utisoft at gmail.com> wrote:
> On 14 May 2011 16:39, Chris Rees <utisoft at 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
[1] http://www.bayofrum.net/~crees/patches/bsd-port-mk-conf-files.patch
[2] http://www.bayofrum.net/~crees/patches/opentracker_conf_example.patch
More information about the freebsd-ports
mailing list