Patching? Probably a trivial question, but...

Mel Flynn mel.flynn+fbsd.questions at mailing.thruhere.net
Wed May 27 18:55:19 UTC 2009


On Wednesday 27 May 2009 17:21:42 Kurt Buff wrote:
> All,
>
> I've gotten a patch for a program in the ports tree from one of the
> authors of the program - not the port maintainer - to fix a small
> problem, but don't know how to install the updated port.
>
> I cd'ed into the
> /usr/ports/%CATEGORY%/%PROGRAM%/work/%PROGRAM-VERSION% directory, then
> performed 'patch <patch-name' successfully, AFAICT.
>
> Then I did a make, but got no output.
>
> So - I'm obviously lacking clue here. Anyone have a spare set?

Don't feel like reading the entire thread atm, but for reference:
- Patches need to have relative paths, where the root of the path corresponds 
to the port's notion of $PATCH_WRKSRC
- You can find out this directory by running:
	% make -C /usr/ports/category/portname -V PATCH_WRKSRC
  The default is $WRKSRC which is $WRKDIR/$DISTNAME by default.
  Example:
	% make -C /usr/ports/sysutils/nagios-statd -V PATCH_WRKSRC
	/stable/usr/obj/usr/ports/sysutils/nagios-statd/work/nagios-statd-3.12

- Patches are automatically applied if they reside in the port's notion of 
PATCHDIR and are named patch-*
- You can find out this directory by running:
	%make -C /usr/ports/category/portname -V PATCHDIR
  The default is $.CURDIR/files.
  Example:
	% make -C /usr/ports/sysutils/nagios-statd -V PATCHDIR
	/usr/ports/sysutils/nagios-statd/files

- In order to apply a new patch after you have previously gone past the patch 
stage (configure, build, install), either run make clean or:
	% rm $(make -C /usr/ports/category/portname -V PATCH_COOKIE)
  The above can cause problems, with the build. The normal course of action is 
to make clean.

-- 
Mel


More information about the freebsd-questions mailing list