Local packages

Fink comes with a given set of packages that are collectively referred to as a distribution. A distribution depends on whether the user has installed Fink using the binary installer or bootstrapped from source, on the selfupdate method (point, rsync, cvs), on the last time the user has selfupdated, and on whether the user has enabled the unstable tree.

There’s yet another option to change Fink’s distribution: local packages, installed under /sw/fink/dists/local/main. These are packages (either a .deb binary package, or a .info package description) that are not written by Fink itself but are used by Fink whenever appropriate. Normally users don’t need local packages, but there are some situations where they might be necessary:

  • a new/updated package is on the Submissions tracker but has not been accepted by Fink yet;
  • a new/updated package that the user has packaged and intends to submit to Fink;
  • downgrading a Fink package;
  • testing/using different build options.

A local package description (.info file, and .patch file if it exists) should be placed under /sw/fink/dists/local/main/finkinfo. Running

fink index

makes Fink recognise local packages and add them to the distribution. After that, you may use these local packages like any other package.

If a local package is also present in Fink’s distribution then there are a couple of things to consider:

  • Fink always uses the latest version/revision of a package. This means that if you have a local package that at the moment is more recent than Fink’s then it’ll be used until Fink’s version/revision gets updated to a more recent version/revision.
  • If a given package exists in different trees with same version/revision, then Fink uses the last tree, as defined in Trees in /sw/etc/fink.conf, that contains that package. In a default Fink installation, the order of Trees is local, stable, unstable.

Hence if you want to use a local package instead of Fink’s, make sure your version/revision is more recent than Fink’s. Remember that problems arising from local packages are essentially unsupported by Fink.

5 responses to “Local packages

  1. Alex Hansen

    One important reason to use the local tree when modifying a package that is currently in the distribution is that if you make your modifications in the stable/unstable trees, then Fink may overwrite your changes when you selfupdate (especially if you’re using rsync).

  2. Pingback: Adopting a package « Finkers

  3. Pingback: Creating local packages « Finkers: a blog about Fink

  4. Pingback: Starting anew « Finkers: a blog about Fink

  5. Really no matter if someone doesn’t be aware of then its up to other visitors that they will help, so here it occurs.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s