Difference between revisions of "Bering-uClibc 4.3"

From bering-uClibc
Jump to: navigation, search
(Created initial stub as somewhere to capture Package Dependency help text)
 
(Added notes on dnsmasq / IPv6)
 
(One intermediate revision by the same user not shown)
Line 10: Line 10:
  
 
Note that [[Bering-uClibc 4.3]] is not released yet!
 
Note that [[Bering-uClibc 4.3]] is not released yet!
These notes are being written alongside the development of the software.
+
These notes are being written alongside the development of the new release.
  
  
Line 28: Line 28:
 
Where many Packages depend on the same library (<code class="filename">libm</code> is a good example) then they '''all''' try to load <code class="filename">libm</code>. 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.
 
Where many Packages depend on the same library (<code class="filename">libm</code> is a good example) then they '''all''' try to load <code class="filename">libm</code>. 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.
  
TODO - Add examples of apkg and boot-time (dup!) messages.
+
For example, at boot time, expect to see "<tt>(dup!)</tt>" 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 <code class="command">apkg</code> expect to see "<tt>already installed</tt>" 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 "<tt>Requires</tt>" lines in the Package help text.
 
The lists of Packages dependencies have been populated from the free-text "<tt>Requires</tt>" lines in the Package help text.
Line 36: Line 44:
 
This magic happens because each Package now has an extra data file called <code class="filename">/usr/lib/lrpkg/''package''.deplrp</code> 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 (<code class="filename">/var/lib/lrpkg/root.linuxrc</code> and <code class="filename">/usr/sbin/apkg</code>) check for the presence of that file once they have installed the requested Package and recursively process each entry listed.
 
This magic happens because each Package now has an extra data file called <code class="filename">/usr/lib/lrpkg/''package''.deplrp</code> 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 (<code class="filename">/var/lib/lrpkg/root.linuxrc</code> and <code class="filename">/usr/sbin/apkg</code>) 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 <code class="filename">buildtool.cfg</code>, as described in the Developer Guide.
 
This file is populated by entries which the LEAF Developer places in <code class="filename">buildtool.cfg</code>, as described in the Developer Guide.
 +
 +
===Netatalk AFP File Sharing Support===
 +
The Apple Filing Protocol (AFP) server enhancement requested in [https://sourceforge.net/apps/trac/leaf/ticket/54 LEAF Trac ticket #54] has been addressed by adding the <code class="package">netatalk</code> Package.
 +
See [http://netatalk.sourceforge.net/ the Netatalk page on Sourceforge] for general information on Netatalk and [[Bering-uClibc 4.x - User Guide - Advanced Topics - Setting Up a File Server#AFP|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:
 +
* For Router Advertisements, dnsmasq can replace radvd. See [[Bering-uClibc 4.x - User Guide - IPv6 Networking - Configure Router Advertisements|the Router Advertisements page]] for more details.
 +
* For DHCPv6, dnsmasq can replace dibbler-server or dhcpd. See [[Bering-uClibc 4.x - User Guide - IPv6 Networking - Configure DHCPv6|the DHCPv6 page]] for more details.
  
  

Latest revision as of 15:06, 16 June 2012

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