one or more patch files / optional patch ?

Oliver Eikemeier eikemeier at fillmore-labs.com
Thu Feb 26 14:49:39 PST 2004


Ion-Mihai Tetcu wrote:

> On Thu, 26 Feb 2004 13:25:36 -0800
> Kris Kennaway <kris at 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


More information about the freebsd-ports mailing list