Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 May 2011 21:56:25 +0100
From:      Chris Rees <utisoft@gmail.com>
To:        ports@freebsd.org
Cc:        portmgr@freebsd.org
Subject:   Re: Propose new macro: INSTALL_CONF
Message-ID:  <BANLkTi=ngB4iayhSB5rUziXH=iBPt0Nn1w@mail.gmail.com>
In-Reply-To: <BANLkTikRxcqbvhyyryxyvt__4eeFSa-siQ@mail.gmail.com>
References:  <BANLkTimYjuzp%2BV%2Bpi4bpOUv=uwe9UqjmGA@mail.gmail.com> <BANLkTikRxcqbvhyyryxyvt__4eeFSa-siQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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} !=3D "no"
>> =A0 =A0 =A0 =A0cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 64=
4 \
>> =A0 =A0 =A0 =A0 =A0 =A0${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 f=
ile,
>> 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=3D   absolute_path_to_source_file:prefix_relative_path_to_target=
_file

CONF_DIRS=3D    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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTi=ngB4iayhSB5rUziXH=iBPt0Nn1w>