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>