Tag Archives: apple

Adopting a package

Out of 5,168 package descriptions, 550 (11%) are currently unmaintained. Adopting an unmaintained package is a good way to start working on Fink: you don’t need to start from scratch and you help keeping packages up-to-date.

The following command lists all unmaintained packages:

fink list --maintainer=None

Alternatively, you may visit this query at Fink’s Package Database.

If you feel like adopting an unmaintained package, the first step is to copy the package description (and patch if one exists) to your local tree, /sw/fink/dists/local/main/finkinfo. Package descriptions and patches are located under /sw/fink/dists. If you run

fink dumpinfo -finfofile packagename

then Fink will show you the location of the .info file that defines that package. Another possibility is to look for file names that resemble the package name, such as

find -L /sw/fink/dists -name \*tetex\*.info

Check if there’s a package.patch file under the same directory as package.info; if it exists, copy it to your local tree too. Apply the appropriate modifications (e.g. fields maintainer, version, revision) and build it in maintainer mode:

fink -m --build-as-nobody rebuild package

After having built a valid package, submit it (package description and patch) to Fink’s Package Submissions tracker at SourceForge.net (you’ll need a SourceForge.net account for that). The tracker is periodically checked and Fink committers review and apply submitted packages to Fink’s distribution. Please subscribe to the fink-devel mailing list as it is the official channel used by the Fink Core Group to send announcements to maintainers.

The authoritative packaging document is the Packaging Manual. There’s also a Packaging Tutorial available. If you need help with packaging, send an e-mail to the fink-devel mailing list or drop by the #fink IRC channel on irc.freenode.net.

Happy Finking!


Selfupdate methods: point, rsync, cvs

In Fink parlance, a distribution is a set of available packages which depends, amongst other things, on the trees defined in /sw/etc/fink.conf (local, stable, unstable) and the selfupdate method (point, rsync, cvs).

Fink defaults to the point selfupdate method in a brand new installation. The point distribution is the set of packages available when Fink last released a binary distribution. As these releases are not frequent, having a point distribution usually implies having outdated packages.

There are two alternative selfupdate methods that provide the latest packages: rsync and cvs. In the former method, fink selfupdate uses the rsync command to download packages descriptions from one of the rsync mirrors; in the latter, cvs is used to download package descriptions from SourceForge.net.

Choosing a selfupdate method

You should consider the following when choosing a selfupdate method:

  • whenever possible, use either rsync or cvs. They’ll get you up-to-date packages;
  • up-to-date packages are probably not available as official binaries. You’ll need to install Xcode to compile packages from source. You might want to check someĀ unofficial binary distributions;
  • rsync is faster than cvs;
  • when a maintainer releases a new package it is readily available in the cvs distribution. In normal operation, new packages should reach the rsync mirrors in one hour at the latest;
  • firewalls might block rsync or cvs.

Note that when you switch from point to rsync/cvs your next selfupdate will take a while. Subsequent selfupdates should be significantly faster.

In order to switch to rsync, run

fink selfupdate-rsync

Or, if you want to use cvs, run

fink selfupdate-cvs

You can’t go back to the point distribution once you’ve switched to rsync/cvs.

After having changed the selfupdate method, run

fink update-all

to update your packages to their latest versions.

You only need to run selfupdate-rsync or selfupdate-cvs once. Fink remembers your choice and is going to use it in subsequent selfupdates.

Some Fink versions have a minor glitch that shows up when changing the selfupdate method. Please read this FAQ section.

Identifying which selfupdate method Fink is using

There are two ways to check what selfupdate method is being used in your Fink installation. If you run

fink –version | grep Distribution

and it shows something like

Distribution version: architecture (e.g. i386)

then Fink is using the point distribution. If either rsync or cvs is being used, then the command above outputs

Distribution version: selfupdate-cvs (or -rsync), timestamp of last update, OS X version, architecture.

The other possibility is to check the SelfUpdateMethod entry in /sw/etc/fink.conf.

Distribution version: i386