Bering-uClibc 4.3
Bering-uClibc 4.3 | ||
---|---|---|
Prev | Bering-uClibc 4.x - Overview |
Note that Bering-uClibc 4.3 is not released yet!
These notes are being written alongside the development of the new release.
Contents
Release Notes
Package Dependency Auto-Loading
The long-awaited Package Dependency Auto-Loading enhancement requested in LEAF Trac ticket #2 has finally been implemented.
Notes for General Users
The new behaviour is that when loading a Package, either using apkg
or by including a Package in the LRP variable in leaf.cfg
, all those Packages required to successfully run the Package are also loaded, automatically.
Actually there are some exceptions to the "...all those Packages..." rule:
- Some Packages rely on either one Package or another one. An example is
webconf
:- This needs a web server, but is happy with either an HTTP server (
mhttpd
) or an HTTPS server (mhttpds
), and these are mutually exclusive - so which one to choose? The answer is neither; one or the other must be loaded manually.
- This needs a web server, but is happy with either an HTTP server (
- Some Packages do not need extra Packages for their main operation but they do require shared libraries or similar in order to run some rarely-used utility programs. These "optional" Package dependencies are not included in the list to be loaded automatically.
One thing to be aware of is that each Package tries to load its own dependencies (after the requested Package is loaded), and this happens recursively.
Where many Packages depend on the same library (libm
is a good example) then they all try to load libm
. After the dependency has been loaded once the Package loading code spots that the Package is already loaded and does not actually load it again, but you will see messages which show that there has been a repeated request to load a Package.
For example, at boot time, expect to see "(dup!)" messages, for example:
LINUXRC: Installing - root: /dev/sda1 config: /dev/sda1 etc: /dev/sda1 modul es: /dev/sda1 config: config(dup!) etc: etc(dup!) modules: modules(dup!) lic ense: /dev/sda1 ...
When using apkg
expect to see "already installed" messages, for example:
firewall# apkg -i /mnt/perl.lrp perl installed. libm already installed.
The lists of Packages dependencies have been populated from the free-text "Requires" lines in the Package help text. This is pretty reliable but not guaranteed to be 100% correct. If you find that a Package fails to work because of e.g. a missing shared library then please report it so that the problem can be fixed.
Notes for Advanced Users
This magic happens because each Package now has an extra data file called /usr/lib/lrpkg/package.deplrp
which lists the names of the Packages which must also be loaded (though that file is not created if it would be empty). The code which loads Packages (/var/lib/lrpkg/root.linuxrc
and /usr/sbin/apkg
) check for the presence of that file once they have installed the requested Package and recursively process each entry listed.
This file is populated by entries which the LEAF Developer places in buildtool.cfg
, as described in the Developer Guide.
Netatalk AFP File Sharing Support
The Apple Filing Protocol (AFP) server enhancement requested in LEAF Trac ticket #54 has been addressed by adding the netatalk
Package.
See the Netatalk page on Sourceforge for general information on Netatalk and this page for specific configuration guidelines for Bering-uClibc 4.x.
Change Log
TODO
Prev | Up |