Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Dec 2008 21:07:43 +0300
From:      Dmitry Marakasov <amdmi3@amdmi3.ru>
To:        paul+usenet@w6yx.stanford.edu
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Proposal: mechanism for local patches
Message-ID:  <20081202180743.GB70240@hades.panopticon>
In-Reply-To: <gh1l3n$22rv$1@hairball.ziemba.us>
References:  <gh1l3n$22rv$1@hairball.ziemba.us>

next in thread | previous in thread | raw e-mail | index | archive | help
* 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



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