You may find that you need to use an earlier version of a package than you currently have installed, e.g. if the update causes a build issue in another package. Fortunately, this can be accomplished in a fairly straightforward set of operations. We’ll use the example of
- In a terminal window, run
fink scanpackages ; sudo apt-get update
to bring your local package list up to date.
- Verify what binary versions (locally built or otherwise) are known by using
apt-cache policy, for example:
$ apt-cache policy gmp5
*** 5.1.0-1 0
500 file: stable/main Packages
In this case, version 5.0.5-4 is present.
- If an older version of the package is available, then you can install that. For example, for
gmp5, we’d want to downgrade the library packages as well as the main (headers):
$ sudo apt-get install gmp5=5.0.5-4 gmp5-shlibs=5.0.5-4
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be DOWNGRADED
gmp5 gmp5-shlibs libgmpxx5-shlibs
0 packages upgraded, 0 newly installed, 3 downgraded,
0 to remove and 9 not upgraded.
Need to get 0B/1282kB of archives. After unpacking
336kB will be freed.
Do you want to continue? [Y/n]
Note that when using
apt-get the versioned package format is
- If, on the other hand, you only show one version as available, you can download an earlier version of the package description files from the CVS browser. To help you figure out where to browse, you can use
fink dumpinfo -finfofile to show the section where the package you are interested in resides. For example:
$ fink dumpinfo -finfofile gmp5
Information about 6665 packages read in 2 seconds.
- Navigate to the appropriate location in the CVS browser. If you are on 10.5 or 10.6, first go to the 10.4 directory, and if you are on 10.7 or 10.8, then start in the 10.7 directory. Then follow the path from item 4 above, e.g.
- Pick an appropriate version of the .info file via the browser, i.e. check the Version field, and download it by viewing it with the Download option and saving the text file (make sure to leave the extension as .info). For example, one can see the various iterations of
gmp5.info in the 10.7 tree here.
- Move the
.info file to
/sw/fink/dists/local/main/finkinfo. If the package has a
.patch file, then depending on whether that was updated after the
.info file you downloaded, you will want either to download an appropriate version of from the CVS browser, or copy it from your
stable/main/finkinfo directory if it’s new enough. Following the example of
gmp5, to install version 5.0.5-4 from source, you would download the
.info file and the current
.patch file, which still applies, then use e.g.
mv ~/Downloads/gmp5.* /sw/fink/dists/local/main/finkinfo
to put the files in your local tree.
- Use “fink dumpinfo -fallversions” to verify that the version you just moved into your local tree is available. Using
gmp5 as the example again, we verify that gmp5-5.0.5-4 is among the known versions:
$ fink dumpinfo -fallversions gmp5
Scanning package description files..........
Information about 6665 packages read in 1 seconds.
- Downgrade by using “fink install” including the package versions. Again using
gmp5 for the example:
fink install gmp5-5.0.5-4 gmp5-shlibs-5.0.5-4
Note that when using a
fink command, the versioned package format is
- Build anything that needs the older version. A word of caution: you stand the risk of having link failures in other packages when you downgrade to a library with an older compatibility version.
Check the SF.net Operations feed for updates.
finkproject.org is still up, but updates will be posted here rather than there since the website source resides in our SourceForge CVS repository, too.
- If you’re using selfupdate-cvs, that won’t work
- selfupdate-rsync will still work, but until sf.net cvs is back online there won’t be any new packages.
- Developers can’t commit packages currently, so users aren’t actually missing out on much.
- The mailing lists and bug tracker are out, so please post bug reports for unmaintained packages here. If a package has a listed maintainer, contact them, and then post here in a few days (1) if you haven’t gotten a response in a few days, and (2) if the mailing lists aren’t back up.
I maintain a large enough collection of Fink packages that I sometimes forget to check for upstream updates regularly. I’ve come up with a one-line script that meets my needs:
for URL in `fink list -t -m alexkhansen | cut -f2 \
| xargs fink dumpinfo -fhomepage | cut -d\ -f2 | sort \
| uniq | grep -v undefined | grep -v Obsolete ` ; \
do open $URL ; read LINE ; done
This grabs a list of my packages, finds their home pages, removes duplicates, entries that show “undefined”, e.g. bundles, and Obsolete, i.e. packages that are obsolete. It then opens one page at a time–since I don’t want to bring my machine to a crawl by opening all of them. :-)