Proposal: mechanism for local patches

Wesley Shields wxs at FreeBSD.org
Tue Dec 2 12:16:13 PST 2008


On Tue, Dec 02, 2008 at 09:07:43PM +0300, Dmitry Marakasov wrote:
> * G. Paul Ziemba (pz-freebsd-ports at 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


More information about the freebsd-ports mailing list