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>