From owner-freebsd-ports@FreeBSD.ORG Tue Dec 2 18:30:01 2008 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0454D106564A for ; Tue, 2 Dec 2008 18:30:01 +0000 (UTC) (envelope-from amdmi3@amdmi3.ru) Received: from smtp.timeweb.ru (smtp.timeweb.ru [217.170.79.85]) by mx1.freebsd.org (Postfix) with ESMTP id AE6048FC18 for ; Tue, 2 Dec 2008 18:29:59 +0000 (UTC) (envelope-from amdmi3@amdmi3.ru) Received: from [213.148.20.85] (helo=hive.panopticon) by smtp.timeweb.ru with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1L7ZfG-0008RE-R4; Tue, 02 Dec 2008 21:08:02 +0300 Received: from hades.panopticon (hades.panopticon [192.168.0.32]) by hive.panopticon (Postfix) with ESMTP id 4A5948BC6; Tue, 2 Dec 2008 21:07:17 +0300 (MSK) Received: by hades.panopticon (Postfix, from userid 1000) id 2CE1A1702D; Tue, 2 Dec 2008 21:07:43 +0300 (MSK) Date: Tue, 2 Dec 2008 21:07:43 +0300 From: Dmitry Marakasov To: paul+usenet@w6yx.stanford.edu Message-ID: <20081202180743.GB70240@hades.panopticon> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Cc: freebsd-ports@freebsd.org Subject: Re: Proposal: mechanism for local patches X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Dec 2008 18:30:01 -0000 * G. Paul Ziemba (pz-freebsd-ports@ziemba.us) wrote: > In hopes of stimulating some discussion, I propose a new variable, > LOCAL_PATCHES (or maybe SITE_PATCHES), that would behave just like > EXTRA_PATCHES, except that it would be designated specifically for > site-local patches. It would be implemented in the do-patch target > in bsd.port.mk at the end, after patches from PATCHDIR are applied, > and patch Makefiles would, by convention, leave it unmolested. > > Have I overlooked some better approach to integrating site-local > fixes? I am not aware of any mechanism for this. But I agree that it's really needed. Before (in cvsup times) we could just place patches under files/ and be happy, but now when more people use portsnap we need something better. I think making another variable that behaves like EXTRA_PATCHES is not convenient - you'll have to provide it per-port which means conditionals in make.conf. I think the most convenient way of implementing this is having a directory hierarchy (either two level ${CATEGORY}/${PORTNAME}/patch-*) or single level ${PORTNAME}/patch-*) and a single variable that makes port system look there for patches in addition to ${PATCHDIR}. Thus, you only have to add a single line to make.conf: USE_LOCALPATCHES= /usr/ports/local-patches (or /whereever) and from there on files will be searced in either /usr/ports/local-patches/${CATEGORY}/${PORTNAME} /usr/ports/local-patches/${PORTNAME}. AFAIK, port names are unique in the whole portstree, so single level layout seems to be easier to handle. Here's the draft patch for this functionality: http://people.freebsd.org/~amdmi3/local-patchdir.patch -- Dmitry Marakasov . 55B5 0596 FF1E 8D84 5F56 9510 D35A 80DD F9D2 F77D amdmi3@amdmi3.ru ..: jabber: amdmi3@jabber.ru http://www.amdmi3.ru