wiki:snc

Version 2 (modified by nerdling (Jeremy Lavergne), 15 years ago) (diff)

More verbose portfile development information, aiming to assist where the MacPorts Guide is lacking — please comment!

Portfile Development

MacPorts Guide

It's a good idea to start out with the Portfile Development section of the MacPorts Guide. There's a line-by-line explanation in Section 4.2 that should help you with creating a portfile.

Portindex

Once you've created your portfile, it's best to test it with your copy of MacPorts. The first step is to create a local repository to test your portfile. I suggest creating a directory named ports in your home directory. Inside this new directory, you should run portindex which will create the repository index of everything contained therein. Note, this command should be run everytime you make changes as it will include the new index data for MacPorts. Also watch out for any errors it reports as this will likely stop the portfile from showing up in MacPorts.

Port Info

Once you have a repository setup and indexed, you can then instruct MacPorts to include this path in ${prefix}/etc/macports/sources.conf — the order of this file's content is important as ports are loaded in a first-come-first-serve basis. To test if your port index is being included, run port info portname where portname is a port you've placed in your local repository. If everything worked well, you'll notice information appearing from your local repository's portfile. Note, if you have a port named the same as an existing one, this will report that there were two copies found with the first it came across being displaying. This is why the order of repositories listed in sources.conf matters.

Port Lint

Now that your copy of MacPorts is able to interact with your portfile, run port lint --nitpick portname to do a maximum compliance check. If it reports 0 errors and 0 warnings then you're ready to submit your portfile to MacPorts. The Contributing to MacPorts section in the Guide on how to create a ticket to ensure your portfile is accepted as quick as possible.

Disabling Your Local Repository

Once you're done with development, you can disable your local repository by commenting the line out of your sources.conf file. You can optionally delete your directory that contains your work so far. I suggest keeping it as you can use it for reference when working on future portfiles and it keeps you from having to recreate the directory.