From owner-freebsd-ports@FreeBSD.ORG Sun May 15 22:13:08 2011 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AEF7D106566C for ; Sun, 15 May 2011 22:13:08 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 337898FC13 for ; Sun, 15 May 2011 22:13:07 +0000 (UTC) Received: by bwz12 with SMTP id 12so4856228bwz.13 for ; Sun, 15 May 2011 15:13:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=sL7AHVfZDung5w0oKBBoq5alfGoujd13klWAEwewEyY=; b=gpIwAhofFPczlJ2cF4zdwbbNPxm0JwI2yNq2ORPur/DvQtsZmlQB9p0hwIzo5pNWTX sVUBJ0NLt9E5XvB1WZ/yascq68U/yV1pnSgVcnz/BqQM++A1PUhik+nQRmcRsuB7pW45 yJoOvBLavcmLrlXnFvnvDohz5P19nL9ghorh0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:reply-to:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; b=jfdcjB0JzWuLo9THjpyEk5q2U0JL1qQzKGqCa+hBgmkkXZz+mPYLlTZgTs74AOXdU9 dE9sovKssyDMOiH1DG8y8iDcA+VlgctgItvlrMpxqpnPR3d0jyTkP8IGj1VF1dJZsVOo ghYEdN3jpVEPwMn0vWeVJH/fRrh5bO3IQ5728= Received: by 10.204.16.140 with SMTP id o12mr1992353bka.125.1305497586087; Sun, 15 May 2011 15:13:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.205.65.198 with HTTP; Sun, 15 May 2011 15:12:36 -0700 (PDT) In-Reply-To: <4DD0444B.7040600@gmx.de> References: <4DD0444B.7040600@gmx.de> From: Chris Rees Date: Sun, 15 May 2011 23:12:36 +0100 Message-ID: To: olli hauer Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: ports@freebsd.org Subject: Re: Propose new macro: INSTALL_CONF X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: utisoft@gmail.com List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 May 2011 22:13:08 -0000 On 15 May 2011 22:23, olli hauer wrote: > On 2011-05-15 22:56, Chris Rees wrote: >> On 14 May 2011 18:32, Chris Rees wrote: >>> On 14 May 2011 16:39, Chris Rees 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 = 644 \ >>>> =A0 =A0 =A0 =A0 =A0 =A0${SSH} ${DESTDIR}/etc/ssh >>>> .endif >>>> >>>> The problem stems from installing .sample files as DATA, and then usin= g >>>> 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_R= C_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 =A0 absolute_path_to_source_file:prefix_relative_path_to_t= arget_file >> >> CONF_DIRS=3D =A0 =A0dirs to add with @dirrmtry behaviour, in correct ord= er. >> >> 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 Is this the Right Thing though, or a hack around missing code? You've just hardcoded a mode in that people might not like. Also, do you install the .sample like that, or do you use it to copy the .sample to the actual config file? .sample files shouldn't be +w. What do you put in pkg-plist? > and for sensitive config files > ${INSTALL} or ${INSTALL_DATA} -m 640 -o ... -g ... > For config dirs (in the Makefile) > PLIST_DIRSTRY=3D =A0%%ETCDIR%% This I'll concede! > This seems easier to me. It certainly doesn't seem easier to me; instead of: CONF_FILES=3D source:dest you still have to have a post-install bit, an @exec line in pkg-plist with weird hieroglyphs, and an @unexec line _for each config file installed_ Can anyone explain why we bend over backwards to make ports DATADIR-safe for example but completely ignore the user's preferences with config files??? I just don't understand how the priority lies here. Chris