Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Feb 2004 23:49:31 +0100
From:      Oliver Eikemeier <eikemeier@fillmore-labs.com>
To:        Ion-Mihai Tetcu <itetcu@apropo.ro>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Re: one or more patch files / optional patch ?
Message-ID:  <403E77FB.60605@fillmore-labs.com>
In-Reply-To: <20040227001224.6eba2542@it.buh.cameradicommercio.ro>
References:  <20040226232358.71a31aa5@it.buh.cameradicommercio.ro> <20040226212536.GA7216@xor.obsecurity.org> <20040227001224.6eba2542@it.buh.cameradicommercio.ro>

next in thread | previous in thread | raw e-mail | index | archive | help
Ion-Mihai Tetcu wrote:

> On Thu, 26 Feb 2004 13:25:36 -0800
> Kris Kennaway <kris@obsecurity.org> wrote:
> 
>>On Thu, Feb 26, 2004 at 11:23:58PM +0200, Ion-Mihai Tetcu wrote:
>>
>>>Hi,
>>>
>>>The Porters Handbook says "To make fixes and upgrades easier, you
>>>should avoid having more than one patch fix the same file"; I'm in
>>>the reverse situation, e.g. I have to patch 4 files for adding a
>>>feature to a port. It will only make sense to patch all the files or
>>>none. Should the patch be split in 4 files or not ?
>>
>>Yes, I think this is also documented in the porter's handbook.  It's a
>>real pain in the ass to update patches when there's more than one
>>patch per file.
>>
>>>I also want to use OPTIONS to allow the user to choose if he wants
>>>this feature or not. How can I integrate this with patch target
>>>(e.g. having the patch in files/ but only applied if WITH_ is set) ?
>>
>>EXTRA_PATCHES
> 
> Thanks.
> 
> That's what I thought, but I wasn't sure enough of my english. So I
> name them extrapatch-feature_name-file_name and they are applied only if
> I have them in EXTRA_PATCHES. OK, but what if there is a regular patch
> that applies to one of the files also modified by one of my
> extra_patches ? Since the "regular" patch is applied after the extras,
> will it still work ? I could include them in my patches, but I see no
> way in bsd.port.mk not to apply them.

one way would be to do

.if defined(WITH_A)
EXTRA_PATCHES+=	extrapatch-path::file::with_a
.else
EXTRA_PATCHES+=	extrapatch-path::file::without_a
.endif

or whatever naming convention you prefer. Another option is to check
if you could use sed to do the extra modifications. And if anything
else fails: sometimes you have to patch a file twice at a last resort.

Oliver



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