Porting Practice

Vidar Karlsen vidar at karlsen.tech
Sun Jul 5 15:09:09 UTC 2020


> On 5 Jul 2020, at 16:42, Brandon helsley <brandon.helsley at hotmail.com> wrote:
> 
>> For making changes to a port, I find ’svn diff’ to be the easiest way by far. I tend to do this:
>> 1. svn up my work-in-progress ports tree
>> 2. Make the changes and run tests (portlint, poudriere testport etc)
>> 3. cd /ports; svn diff thecategory/theport > /portpatches/thecategory_theport_version.diff (change the paths to the dirs of your choice)
>> 4. Upload the .diff file to Bugzilla
>> 
>> Since I use svn in step 1, svn takes care of tracking the changes so I don’t need to keep .orig files and run diff by hand.
>> 
>> The diffing that Jonathan mentioned is more applicable if you have to make changes to the upstream code itself in order for it to work on FreeBSD. I personally do that in the port’s ‘work’ dir and create the patches with ‘make makepatch’, and there I need to create .orig files (cp file.c file.c.orig before making changes).
> 
> 
> Could you please go into more detail about what you mean in step one and three, I am getting really close to figuring out how this works. In step three I don't understand "cd /ports" or "portpatches/thecategory_theport_version.diff"

Absolutely!
In step 1 I use svn to download the latest revision of the ports tree into a location I use for this purpose. In many cases for me this has been /ports because I like to keep /usr/ports “clean”/uncluttered by my own fiddling.
I’m not sure if you have been doing it this way. In case not, it’s as simple as doing:
# mkdir /ports
# svn co https://svn.freebsd.org/ports/head /ports

To update this copy of the tree later on (next time), run ’svn up’ in the same dir.


For a real-ish example for step 3, let’s assume I’m upgrading sysutils/toybox. When it’s ready to be submitted, I would do this:
# cd /ports (or whichever dir you choose to checkout the ports tree)
# svn diff sysutils/toybox > /home/vidar/portdiffs/sysutils_toybox-0.8.4.diff
And then create a PR and upload the diff file.

You don’t have to specify the category/port for 'svn diff', but it makes it go faster as it won’t have to scan for changes in any other places than what you specify.


Hope this cleared it up,
Vidar Karlsen


More information about the freebsd-ports mailing list