Here is my process (courtesy of advice from many others on this list including Chris and Michael and others). And this is not yet ideal, as no doubt it could be further improved. This is for anything beyond trivial one-tweak patches, by the way — I might not do this for a trivial source fix.
Set up your local ports repository like you have, copy the current portfile directory into it, etc. Go to the port’s directory in the new repo, and sudo port -v build when it errors, open a new terminal window, navigate to the same directory you’re in now, and then cd work sudo chmod -R a+rw . cd into the source directory, whatever it’s called, then set it up as a temporary git repo: git init git add . git commit -m “init” > /dev/null now you’re ready to do your work. edit your source files as needed. You now have two terminal windows open. One is the port directory, one is the source directory. In the port directory, try your build again: sudo port -v build if you get errors, in your source directory, edit the files, then rebuild again. Keep going until you get it to build. Now you have changes in your new source git tree to save, so save those into a diff file that you can use later: git diff —no-prefix > ~/patches-for-my-fixed-port.diff then see if your port will destroot, and then install. sudo port -v destroot sudo port -v -k install (note the -k — that keeps it from blowing out your source directory if it succeeds). If all is well, you’re close to done. from your port directory sudo port clean sudo port uninstall THEPORT cd files mv ~/patches-for-my-fixed-port.diff . cd .. bbedit Portfile add your new patch patchfiles-append patches-for-my-fixed-port.diff and then try your build — hopefully it goes right through to installing, and all your patches worked. You’re done. Open your PR, have a latte, wait for someone to tell you how wonderful you are (yeah, right!). Ken
