If you would be more specific about the steps where you're unsure how to proceed, we could give you a more specific answer.
Here's a brief overview of the process. It is in no way intended as a substitute for the Porter's Handbook, which is still the best guide.
Since this is an update to an existing port, I would start by copying the port files from /usr/ports/
category/
portname into a directory also named
portname under your $HOME. You'll need the Makefile, pkg-plist, pkg-descr and anything in the files subdir if there is one. You'll be replacing the distinfo file, so you can skip that.
Edit the PORTVERSION line in the Makefile so that it reflects the new version number. Delete the PORTREVISION line if there is one. Save your changes and exit the editor.
As root, run
to download the latest distfile. In most cases, this works without any further tweaking. But sometimes you'll need to edit the MASTER_SITES or DISTNAME line(s) in the Makefile to account for changes at whatever site is providing the distfile. (Sourceforge is notorious for this.)
If the distfile downloads OK, run the following command, still as root:
which will create a new distinfo file containing the appropriate checksums.
Now the fun begins. Try building the app with
If you're lucky it will build OK. If not, you'll need to debug the build. You might need to remove or modify some of the patches in the files subdir. Or add some new patches of your own. Or make more edits to the Makefile, for example to define a variable in the CONFIGURE_ENV.
Once you get it building OK, it's time to test the install. I like to use
ports-mgmt/genplist for this, because it installs into a temporary directory that's easy to clean up afterwards:
Code:
genplist create /tmp/portname
(You can also use
ports-mgmt/tinderbox for this, but it's more complex to setup and use.)
To uninstall and cleanup after genplist, use
When the build and install are all running OK and you're ready to submit a PR with your updates, make sure you've run
to clean out and remove the sourcecode, etc. in the WORKDIR. Then cd to the parent directory and generate a patchfile:
Code:
cd ..
diff -ruN /usr/ports/category/portname ./portname > portname-version.diff