For the first time since early 2005, a new major version of "fink" the command-line program is out. Plenty of good development work has gone on in the 0.24 series, with lots of nice incremental updates, but a lot of really great stuff has gone into 0.25. While there are plenty of other neat engine things and additions, I'm going to focus here on the changes that users will be able to see.
Internals
- Speed
-
Most noticeable right away is speed. The incremental indexer was pretty much
rewritten. You will not spend nearly as much time nowadays waiting for fink to
scan your info files for changes.A lot of other smaller operations related to the index have been sped up as well. All
in all, fink is much faster. (Although I still would never call it "snappy"... <grin>) - Building
-
The buildlocks system has been rewritten, and should rarely get in your way anymore.
It is much smarter about adding and removing build locks, and can clean up after
itself much better.
Options
There are a number of new options for various things.
--log-output
- Automatically log the output of package builds to a file. You can specify
--logfile=/path/to/some/file
to specify the location. --maintainer
- Enables "maintainer" mode, which does handy things for package maintainers, including automatic validation of both the info files and resultant deb files for any packages you're building, and enables some other miscellaneous things like turning build-time warnings into errors, and enabling tests if the package supports it.
--trees
and--exclude-trees
- When performing an action with fink, only use packages in the specified tree(s). For example, if you have unstable enabled, but wish to install the stable version, you can run "
fink install --trees=stable mypackage
". In addition, you can use the special-case trees "status" and "virtual" to refer to the dpkg database or fink virtual packages, respectively. The--exclude-trees
flag does the same thing, only excludes specific trees.
Additionally, some existing fink command-line options have been upgraded or split off into separate programs.
dpkg-scanpackages
- A convenience script to generate the apt Packages indexes so that local (or remote) clients can access locally-built binaries. This is invoked by the new automatic scanpackages feature.
fink cleanup
- The
fink cleanup
command has gotten a much-needed overhaul. It's now capable of cleaning out old .deb files, source files, and the dpkg database.
Configuration
A few additions have been made to the fink.conf configuration file to make things easier on you.
AutoScanPackages
- If this option is set to "true" (the default), then whenever fink has completed building new binaries, it will automatically update apt-get's indexes. Previously you had to run "fink scanpackages" to make your fink-built binaries available to apt.
Bzip2Path
- You can specify the path to an alternate bzip2 command using this option. Normally you would use this if you want fink to use pbzip2 on a multiprocessor/multicore system to unpack archives. This will probably be expanded into a more generic configuration option for specifying system commands in the future.
NoAutoIndex
- If you don't edit info files locally on your system, you can set
NoAutoIndex
to "true" and avoid the index scan when you run the fink command. You can still force fink to update the cache by runningfink index
(and you can force it to ignore the cache and create an entirely new index by runningfink index --full
). ScanRestrictivePackages
- If
AutoScanPackages
is "true" and you are planning on making your apt repository public, you must enable this option to avoid making legally-restricted packages available. SkipPrompts
- You can specify a number of classifications of prompts for fink to automatically
accept the default. The currently available classifications arefetch
(don't ask when a mirror fails, accept the default to try another/give up) andvirtualdep
(don't ask when fink has multiple packages that can satisfy a dependency, pick the default).
Conclusion
This has been a long time coming, and it's good to see it finally out the door. Please try it out, and let us know if you hit any snags. A ton of things have changed under the covers, and while plenty of us have been using it daily for quite some time, you always find new bugs when the general public tries things you haven't.
Happy finking!
Share on Facebook
I am very impressed with Fink 0.25. The speed increase in indexing and package scanning is phenomenal, and the new features are appreciated. My hat is off to you, and the rest of the Fink team. Thanks.