Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Mar 2010 16:34:23 -0500
From:      Paul Schmehl <pschmehl_lists@tx.rr.com>
To:        Alejandro Imass <ait@p2ee.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Elegant way to hack port source
Message-ID:  <8B123BA51B43B4AAC86E0F3C@utd65257.utdallas.edu>
In-Reply-To: <a14066a01003191404u56fd3f71mbfacff83839b7a2c@mail.gmail.com>
References:  <a14066a01003190935t4bbef41esc44c60a5b00e6144@mail.gmail.com>	 <20100319170159.GB71392@slackbox.erewhon.net>	 <20100319200130.GE265@comcast.net>	 <3D386E86A152519AA850205C@utd65257.utdallas.edu> <a14066a01003191404u56fd3f71mbfacff83839b7a2c@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--On Friday, March 19, 2010 17:04:17 -0400 Alejandro Imass <ait@p2ee.org> =
wrote:
>>
>> To the O.P.:
>>
>> How about submiting the patch to the community so it can be added by the
>> port maintainer? =C2=A0If 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=20
have given you good instructions on how to fix the problem, but here's a brief=20
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=20
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=20
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:=20
If the file in question is already being patched by the port, you will need to=20
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=20
and folks will help you sort it out.)
9) Edit the patch file (now in portdir/files) so that the first two lines=20
"point" to the actual location of the file in the working directories.  (For=20
example, if the working directory has a subdir named "sc", and your file is in=20
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=20
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=20
do the install - if it doesn't work, post the errors here and we'll figure it=20
out

--=20
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




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