From owner-svn-ports-all@FreeBSD.ORG Thu Jul 24 03:40:40 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E3EB6B9F; Thu, 24 Jul 2014 03:40:39 +0000 (UTC) Received: from apnoea.adamw.org (apnoea.adamw.org [204.109.59.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3EFC72D70; Thu, 24 Jul 2014 03:40:39 +0000 (UTC) Received: from [192.168.192.25] (dhcp-108-170-169-12.cable.user.start.ca [108.170.169.12]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by apnoea.adamw.org (Postfix) with ESMTPSA id 0BEB212B2B5; Wed, 23 Jul 2014 23:40:36 -0400 (EDT) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r362545 - in head: . games/bsdgames games/bsdgames/files From: Adam Weinberger In-Reply-To: <20140723204623.GB34571@hades.panopticon> Date: Wed, 23 Jul 2014 23:40:34 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: <5F5D5006-4EA2-48B4-9728-8553CAEA6163@adamw.org> References: <201407221445.s6MEjf7o025973@svn.freebsd.org> <20140723183649.GA34571@hades.panopticon> <2FF4267F-CF53-41A6-B4A3-9B9D7A630014@adamw.org> <20140723204623.GB34571@hades.panopticon> To: Dmitry Marakasov X-Mailer: Apple Mail (2.1878.6) Cc: svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, Adam Weinberger , ports-committers@freebsd.org X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2014 03:40:40 -0000 On 23 Jul, 2014, at 16:46, Dmitry Marakasov wrote: > * Adam Weinberger (adamw@adamw.org) wrote: >=20 >>> I advice to revert this. >>>=20 >>> This is not hier(7)ful as there's no var neither under /usr nor = under >>> /usr/local. >>>=20 >>> This is not better, as you should expect /usr/local to be mounted >>> read-only along with /usr, so changing data should only reside under >>> /var. >>=20 >> Both you and itetcu brought up that last point to me... it=92s a = really good point that I hadn=92t considered when I made the move. >>=20 >>> If @sample doesn't do the thing, just don't use it, do not invent = hacks. >>> It's broken in many ways and I've planned to start discussion on = that. >>=20 >> It=92d be helpful to have the PHB say how to properly handle things = outside of ${PREFIX}. There=92s essentially no information on it, nor on = the differences in how pkgng and pkg_tools handle it. Not even anything = in CHANGES about it. >>=20 >> It=92s not even about =93inventing hacks,=94 so much as having to = figure out the right way to do things by trial and error, because = documentation doesn=92t exist. >=20 > My idea is that it should be done by pkg-install/pkg-deinstall > scripts. These are clear (no need for single line chains as in > `@exec foo && bar && baz'), reusable (may just copy scripts from > other ports), are not affected (essentially removed) by `make plist`, > do not induce false positives in sanity checkers and will work > regardless of pkg-plist infrastructure or policy changes. >=20 > pkg-plist, otoh, stays limited to plain file list with mixins of > predefined keywords inner workings of which you shouldn't care > about which work relative to PREFIX. I love having commands in the plist. It gives you one simple, portable = place to put all the pre/intra/post installation commands. chown in a = pkg-install will fail for non-root users, but pkg will do the right = thing. Sure, you could do the same thing before with a special and = specific @exec/@unexec incantation, but many ports either did it wrong = or gave up and skipped it altogether, removing .conf files on every = update. I think =91make check-plist=92 is infinitely better for updating a plist = than =91make plist=92 though I do agree that portlint needs some love to = catch it up with recent paradigm changes. I think that the solution for reusability and consistency is MORE = keywords, so that all ports do things the same, predictable way. And so = that changes can be propagated to all ports immediately, rather than = hunting through pkg-install scripts to find out why one port is doing = something unexpected. I=92d posit that what creates a consistent and dependable end-user = experience is not muting installation commands, macros like @sample and = @shell, thorough use of OPTIONS, letting pkg carry the burden of = ensuring that things work properly for non-root users, and ensuring that = porters know how we now handle things that were traditionally = disastrously difficult, such as conf files, empty directories, and = things outside of $PREFIX. # Adam --=20 Adam Weinberger adamw@adamw.org http://www.adamw.org