Elegant way to hack port source
Paul Schmehl
pschmehl_lists at tx.rr.com
Fri Mar 19 21:34:26 UTC 2010
--On Friday, March 19, 2010 17:04:17 -0400 Alejandro Imass <ait at p2ee.org> wrote:
>>
>> To the O.P.:
>>
>> How about submiting the patch to the community so it can be added by the
>> port maintainer? If it actually fixes a bug in the software you can't be
>> the only one would benefit from the patch.
>>
>
> That was going to be my next question, but I am currently debugging to
> see why this common fix I've used in Linux is not not working on FBSD.
Ports can throw you for a loop if you're used to building from source. Others
have given you good instructions on how to fix the problem, but here's a brief
overview:
1) Go in to the port directory
2) Type make clean to remove any work directories
3) Type make extract - this extracts the tarball into the working directories
that FreeBSD expects to find
4) Type make patch to apply any patches that the port maintainer has included
5) Enter the directory where the problem source file is - usually
work/portname-version/some subdir
6) Copy it to filename.c.orig
7) Edit filename.c to include your changes
8) Diff the two files and put the resulting patch file in portdir/files (Note:
If the file in question is already being patched by the port, you will need to
apply your diff to file as well as the edits in the existing patch - doing that
is not an exercise for the faint of heart. If that's the case here, respond
and folks will help you sort it out.)
9) Edit the patch file (now in portdir/files) so that the first two lines
"point" to the actual location of the file in the working directories. (For
example, if the working directory has a subdir named "sc", and your file is in
there, the first two lines of the patch would be edited thus:
from filename.c to src/filename.c and from filename.c.orig to
src/filename.c.orig
10) Return to the portdir and type make clean
11) Type make extract and then make patch - if it works, you should be able to
do the install - if it doesn't work, post the errors here and we'll figure it
out
--
Paul Schmehl, Senior Infosec Analyst
As if it wasn't already obvious, my opinions
are my own and not those of my employer.
*******************************************
"It is as useless to argue with those who have
renounced the use of reason as to administer
medication to the dead." Thomas Jefferson
More information about the freebsd-questions
mailing list