AKA Hack-a-port
Documenting the workflow I've established to hack ports
WORK IN PROGRESS - INCOMPLETE - YMMV
Setting up your porting environment
devel/git : Minimized depedencies CONTRIB=off CVS=off GUI=off NLS=off P4=offsvn(lite) : in base is sufficient (or devel/subversion from ports)ports-mgmt/portlint : Sanity checksports-mgmt/poudriere : To generate logs that reviewers like .svn and work to <ghports>/.gitignoresvn to svnlite if you're not installing devel/subversion for full svn supportports-mgmt/[[#poudriere|poudriere]] A way to get from patching a port to submitting it
<ghports>svn co https://svn.FreeBSD.org/ports/head/<category>/<port><ghports> run git add .<ghports>/<category>/<port> update local svnsvn add/move/copy/remove <file>svn status to check your worksvn update to update your local svn tree<ghports> run svn diff <category>/<port> > ../patch-<category>-<port>-<version>-<shortdesc>portlint -Cmake check-plistmake -V CPE_STR[PATCH] category/port: Fix this and that${PORTSDIR} rootmaintainer-approval to + if you're the maintainer of the port
make makepatch is your friend
make do-patch to extract and patch the port (but not run pre- nor post-patch)<file>.origcd `make -V WRKSRC`
cp -p path/to/file-to-patch{,.orig}
path/to/file-to-patch using your favourite editorcd ../..) run make makepatch to update all patches in the files dirNot all builds are equally verbose. Options to enable more verbose builds
make V=1 (generic)make VERBOSE=1 (cmake)TODO
Poudriere usage