Bering-uClibc 4.3

From bering-uClibc
Jump to: navigation, search
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.


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.
  • 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.

Router Advertisement and DHCPv6 Support in Dnsmasq

The latest releases of Dnsmasq (2.60 onwards) include support for IPv6 and offer a lightweight alternative to other Packages when implementing an IPv6 router.

Bering-uClibc 4.3 ships with Dnsmasq 2.62, making it possible to use this in place of other IPv6 Packages, offering a reduction in memory requirements if the Dnsmasq functionality is adequate for your purposes.

Specifically:


Change Log

TODO



Prev Up