If you'd like to maintain software within Fink, we'd love to have your help.
Note that this guide is designed for those who would like to become official Fink packages with full developer privileges, and who are committed to continued maintenance of their packages.
Here's how to start:
Learn about packaging software with Fink
- If you don't yet have Fink installed, you should install it.
- If you're not comfortable using Fink yet, read the User's Guide.
- Learn the basics of packaging with the Packaging Tutorial.
- Read and understand the Security Policy
Once you know the basics, use the following sources for reference:
Choose some software to package
If you already have a program in mind, that's a great place to start. Otherwise, you can check our auto-generated list of packages without maintainers. Also, try the list of packages being orphaned NOTE: Under construction.
Remember to make sure the program you chose is not already in fink, by trying
fink list mypackage
Also search the Package Submission Tracker to make sure you don't duplicate somebody else's work.
Create your first package
Following the guides you read earlier, create a .info file for your package, and possibly a .patch file as well. A good way to start can be copying an existing .info file, and modifying it to fit your package.
The most important thing to do is to test and validate your package. Once you've made your .info file, put it in your local or unstable tree (for example, /sw/fink/dists/local/main/finkinfo/mypackage.info). Then build it and validate it:
fink validate /path/to/mypackage.info fink build mypackage fink validate /sw/fink/debs/mypackage_1.0-1_darwin-powerpc.deb
If any of the above commands shows you problems, you must fix them before submitting your package. Fink cannot accept packages that don't validate. Even apparently minor problems can become major headaches when they interact with thousands of other packages on thousands of users' computers.
If you are using
fink-0.25.x or later then you can perform the commands above automatically, as well as check that your package doesn't install files directly into the filesystem rather than into the .deb archive by running the following:
fink -m --build-as-nobody rebuild mypackage
If you performe this step before submission, your package will get accepted sooner.
Should you need help with packaging, you can ask questions on the fink-devel mailing list. You can also try asking developers on the #fink IRC channel on irc.freenode.net .
If you use BBEdit or TextWrangler there is a Language Module that offers field highlighting.
Submit your package
If you don't already have an account with SourceForge.net, you'll need to create one before submitting your package.
Your package can be submitted at the Package Submission Tracker. Remember to attach the .info and .patch files. Make sure to mark the submission as "Undergoing Validation". And please, ensure that your package validates.
- If your package is currently maintained by someone else, especially someone with commit access, you may get your update through faster if you contact the maintainer directly.
- If you are submitting a new revision or new version of an exiting package then please set the Category appropriately. This will expedite validation of your package.
- If your package is a new lib_version, e.g.
foo1is already in Fink, please use the "Updated lib_version..." Category rather than "Updated Version...", as these require some special care.
Important: You must read whatever email account to which you have attached your sourceforge.net account so that you can see when a developer comments on your package, or you must visit your tracker items and check up on them. Otherwise your submission will sit in the tracker until it is deleted or taken over by somebody who is willing to stay engaged with it.
The Fink project doesn't have enough people to edit submitted packages: that is incumbent on the submitter. Moreover, it is a better learning process when the submitters stay engaged with their submissions and do the updates themselves.
Find a mentor (optional)
NOTE: The mentoring system is currently unfinalized
Because of the large number of submissions we receive, it's easy for some of them to be missed. Personal attention can help prevent this, so it can be a good idea to find a mentor who will follow your progress through your packaging efforts. You can start looking for a mentor here.
Continue packaging, and maintaining your packages
A Fink developer should usually maintain more than one package. These packages aren't just constructed once, but have to be kept up to date, as new versions are released and bugs are found. This is the most important part of development, so be sure not to neglect it.
Once you've shown your ability to package software and maintain your package, other developers will take notice. One of them will nominate you to the Fink Core Group, who will make the final decision to give you developer privileges.
Congratulations on making it this far, and thanks for contributing to Fink!