Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Dec 2008 15:16:10 -0500
From:      Wesley Shields <wxs@FreeBSD.org>
To:        Dmitry Marakasov <amdmi3@amdmi3.ru>
Cc:        paul+usenet@w6yx.stanford.edu, freebsd-ports@freebsd.org
Subject:   Re: Proposal: mechanism for local patches
Message-ID:  <20081202201610.GA8753@atarininja.org>
In-Reply-To: <20081202180743.GB70240@hades.panopticon>
References:  <gh1l3n$22rv$1@hairball.ziemba.us> <20081202180743.GB70240@hades.panopticon>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Dec 02, 2008 at 09:07:43PM +0300, Dmitry Marakasov wrote:
> * 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.

I like you're idea here, but unfortunately directory names are not
unique.  For example there is japanese/xchat and irc/xchat.  This means
you'll have to go with the "dual-level" layout.

> Here's the draft patch for this functionality:
> 
> http://people.freebsd.org/~amdmi3/local-patchdir.patch

Other than the above comment I like the patch and would love to see it
implemented.  I think it can provide a benefit in situations where
companies/people are doing things with ports that they do not want to
contribute back.

-- WXS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081202201610.GA8753>