getting_oe.xml: Update getting openembedded section.
[openembedded.git] / docs / usermanual / chapters / features.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <chapter id="chapter_special_features">
3   <title>Special features</title>
4
5   <section id="special_debian_naming">
6     <title>Debian package naming <anchor id="debian" /></title>
7
8     <screen>INHERIT += "debian"</screen>
9
10     <para>Placing the above line into your <emphasis>${DISTRO}.conf</emphasis>
11     or <emphasis>local.conf</emphasis> will trigger renaming of packages if
12     they only ship one library. Imagine a package where the package name
13     (<command>PN</command>) is foo and this packages ships a file named
14     <command>libfoo.so.1.2.3</command>. Now this package will be renamed to
15     <command>libfoo1</command> to follow the Debian package naming
16     policy.</para>
17   </section>
18
19   <section id="special_shlibs">
20     <title>Shared Library handling (shlibs) <anchor id="shlibs" /></title>
21
22     <para>Run-time Dependencies (<command>RDEPENDS</command>) will be added
23     when packaging the software. They should only contain the minimal
24     dependencies to run the program. OpenEmbedded will analyze each packaged
25     binary and search for <command>SO_NEEDED</command> libraries. The
26     libraries are absolutely required by the program then OpenEmbedded is
27     searching for packages that installs these libraries. these packages are
28     automatically added to the <command>RDEPENDS</command>. As a packager you
29     don't need to worry about shared libraries anymore they will be added
30     automatically.</para>
31
32     <remark>NOTE: This does not apply to plug-ins used by the
33     program.</remark>
34   </section>
35
36   <section id="special_bitbake_collections">
37     <title>BitBake Collections <anchor id="collections" /></title>
38
39     <para>This section is a stub, help us by expanding it</para>
40
41     <para><screen>
42 BBFILES := "${OEDIR}/openembedded/packages/*/*.bb ${LOCALDIR}/packages/*/*.bb"
43 BBFILE_COLLECTIONS = "upstream local"
44 BBFILE_PATTERN_upstream = "^${OEDIR}/openembedded/packages/"
45 BBFILE_PATTERN_local = "^${LOCALDIR}/packages/"
46 BBFILE_PRIORITY_upstream = "5"
47 BBFILE_PRIORITY_local = "10"
48 </screen></para>
49   </section>
50
51   <section id="special_task_base">
52     <title>Task-base <anchor id="task-base" /></title>
53
54     <para>Task-base is new way of creating basic root filesystems. Instead of
55     having each machine setting a ton of duplicate variables, this allow a
56     machine to specify its features and <command>task-base</command> builds it
57     a customised package based on what the machine needs along with what the
58     distro supports.</para>
59
60     <para>To illustrate, the distro config file can say: <screen>
61 DISTRO_FEATURES = "nfs smbfs ipsec wifi ppp alsa bluetooth ext2 irda pcmcia usbgadget usbhost"
62 </screen> and the machine config: <screen>
63 MACHINE_FEATURES = "kernel26 apm alsa pcmcia bluetooth irda usbgadget"
64 </screen> and the resulting <command>task-base</command> would support pcmcia
65     but not usbhost.</para>
66
67     <para>Task-base details exactly which options are either machine or distro
68     settings (or need to be in both). Machine options are meant to reflect
69     capabilities of the machine, distro options list things distribution
70     maintainers might want to add or remove from their distros images.</para>
71   </section>
72
73   <section id="special_overrides">
74     <title>Overrides <anchor id="overrides" /></title>
75
76     <para>This section is a stub, help us by expanding it</para>
77   </section>
78 </chapter>