Elegant way to hack port source

Greg Larkin glarkin at FreeBSD.org
Fri Mar 19 23:03:02 UTC 2010

Hash: SHA1

Charlie Kester wrote:
> On Fri 19 Mar 2010 at 15:07:44 PDT Paul Schmehl wrote:
>> --On Friday, March 19, 2010 15:01:27 -0700 Charlie Kester
>> <corky1951 at comcast.net> wrote:
>>> Again, no need for the separate 'make extract' step.
>>> In fact, I'd go straight to 'make build' or 'make install' here, and
>>> skip the separate 'make patch' too.
>> Thanks, Charles.  You taught me something today. :-)
> You're welcome.  We're here to help.  :)
> The main point I wanted to make was to run "make patch" BEFORE
> editing the port's sourcecode, so you don't lose the work done by
> the maintainer
> And you would lose that if you simply did "make extract" and then
> started hacking on the result.  Or, what amounts to the same thing, if
> you grabbed the distfile and unzipped it into your home directory or
> somewhere.

Here's something else that I've found really useful as a port creator,
maintainer and troubleshooter.  If I want to make some additional
changes to a source file that is patched by a file stored in
files/patch-...., I'll do this:

make patch          # extracts source and patches files
cd work/foobar/...
# Now make additional edits in patched file, leaving the
# .orig file alone
cd ../back/to/port/directory
make makepatch

The makepatch target recurses through the work/foobar directory and
creates diffs for all file.ext/file.ext.orig pairs.  It writes them to
the files/ directory with the patch- prefix on each so the patch target
processes them.

The only thing to watch out for here, is that makepatch has its own file
naming convention that doesn't always mirror the port creator's.  For
instance, some ports have patch files named "patch-aa", "patch-ab", etc.
 The makepatch target will recreate them with filenames based on the
directory and filename of the file to be patched during the build.

Hope that helps,
- --
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/sourcehosting/ - Follow me, follow you
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


More information about the freebsd-questions mailing list