1a3ea94b826556a1d53cdd50b34025f310aef674
[packages/trusty/cirros-testvm.git] / cirros-testvm / src-cirros / buildroot-2015.05 / docs / manual / manual.text
1
2 ---------------------------------------------------------------------
3
4 The Buildroot user manual
5
6 ---------------------------------------------------------------------
7 ---------------------------------------------------------------------
8
9 Table of Contents
10
11  
12 I. Getting started
13
14     1. About Buildroot
15     2. System requirements
16
17         2.1. Mandatory packages
18         2.2. Optional packages
19
20     3. Getting Buildroot
21     4. Buildroot quick start
22     5. Community resources
23
24 II. User guide
25
26     6. Buildroot configuration
27
28         6.1. Cross-compilation toolchain
29         6.2. /dev management
30         6.3. init system
31
32     7. Configuration of other components
33     8. General Buildroot usage
34
35         8.1. make tips
36         8.2. Understanding when a full rebuild is necessary
37         8.3. Understanding how to rebuild packages
38         8.4. Offline builds
39         8.5. Building out-of-tree
40         8.6. Environment variables
41         8.7. Dealing efficiently with filesystem images
42         8.8. Graphing the dependencies between packages
43         8.9. Graphing the build duration
44         8.10. Integration with Eclipse
45         8.11. Advanced usage
46
47     9. Project-specific customization
48
49         9.1. Recommended directory structure
50         9.2. Keeping customizations outside of Buildroot
51         9.3. Storing the Buildroot configuration
52         9.4. Storing the configuration of other components
53         9.5. Customizing the generated target filesystem
54         9.6. Adding custom user accounts
55         9.7. Customization after the images have been created
56         9.8. Adding project-specific patches
57         9.9. Adding project-specific packages
58         9.10. Quick guide to storing your project-specific
59             customizations
60
61     10. Frequently Asked Questions & Troubleshooting
62
63         10.1. The boot hangs after Starting network…
64         10.2. Why is there no compiler on the target?
65         10.3. Why are there no development files on the target?
66         10.4. Why is there no documentation on the target?
67         10.5. Why are some packages not visible in the Buildroot
68             config menu?
69         10.6. Why not use the target directory as a chroot directory?
70         10.7. Why doesn’t Buildroot generate binary packages (.deb,
71             .ipkg…)?
72         10.8. How to speed-up the build process?
73
74     11. Known issues
75     12. Legal notice and licensing
76
77         12.1. Complying with open source licenses
78         12.2. License abbreviations
79         12.3. Complying with the Buildroot license
80
81     13. Beyond Buildroot
82
83         13.1. Boot the generated images
84         13.2. Chroot
85
86 III. Developer guide
87
88     14. How Buildroot works
89     15. Coding style
90
91         15.1. Config.in file
92         15.2. The .mk file
93         15.3. The documentation
94
95     16. Adding support for a particular board
96     17. Adding new packages to Buildroot
97
98         17.1. Package directory
99         17.2. Config files
100         17.3. The .mk file
101         17.4. The .hash file
102         17.5. Infrastructure for packages with specific build systems
103         17.6. Infrastructure for autotools-based packages
104         17.7. Infrastructure for CMake-based packages
105         17.8. Infrastructure for Python packages
106         17.9. Infrastructure for LuaRocks-based packages
107         17.10. Infrastructure for Perl/CPAN packages
108         17.11. Infrastructure for virtual packages
109         17.12. Infrastructure for packages using kconfig for
110             configuration files
111         17.13. Infrastructure for rebar-based packages
112         17.14. Infrastructure for asciidoc documents
113         17.15. Hooks available in the various build steps
114         17.16. Gettext integration and interaction with packages
115         17.17. Tips and tricks
116         17.18. Conclusion
117
118     18. Patching a package
119
120         18.1. Providing patches
121         18.2. How patches are applied
122         18.3. Format and licensing of the package patches
123         18.4. Integrating patches found on the Web
124
125     19. Download infrastructure
126     20. Debugging Buildroot
127     21. Contributing to Buildroot
128
129         21.1. Reproducing, analyzing and fixing bugs
130         21.2. Analyzing and fixing autobuild failures
131         21.3. Reviewing and testing patches
132         21.4. Work on items from the TODO list
133         21.5. Submitting patches
134         21.6. Reporting issues/bugs or getting help
135
136 IV. Appendix
137
138     22. Makedev syntax documentation
139     23. Makeusers syntax documentation
140     24. List of target packages available in Buildroot
141     25. List of virtual packages
142     26. List of host utilities available in Buildroot
143     27. Deprecated features
144
145 List of Examples
146
147 17.1. Config script: divine package
148 17.2. Config script: imagemagick package:
149
150
151 ---------------------------------------------------------------------
152
153 ---------------------------------------------------------------------
154
155 Buildroot 2015.05 manual generated on 2015-05-31 21:28:54 UTC from
156 git revision 6d73615
157
158 The Buildroot manual is written by the Buildroot developers. It is
159 licensed under the GNU General Public License, version 2. Refer to
160 the COPYING [http://git.buildroot.org/buildroot/tree/COPYING] file in
161 the Buildroot sources for the full text of this license.
162
163 Copyright © 2004-2014 The Buildroot developers
164
165 Part I. Getting started
166
167 Table of Contents
168
169 1. About Buildroot
170 2. System requirements
171
172     2.1. Mandatory packages
173     2.2. Optional packages
174
175 3. Getting Buildroot
176 4. Buildroot quick start
177 5. Community resources
178
179 Chapter 1. About Buildroot
180
181 Buildroot is a tool that simplifies and automates the process of
182 building a complete Linux system for an embedded system, using
183 cross-compilation.
184
185 In order to achieve this, Buildroot is able to generate a
186 cross-compilation toolchain, a root filesystem, a Linux kernel image
187 and a bootloader for your target. Buildroot can be used for any
188 combination of these options, independently (you can for example use
189 an existing cross-compilation toolchain, and build only your root
190 filesystem with Buildroot).
191
192 Buildroot is useful mainly for people working with embedded systems.
193 Embedded systems often use processors that are not the regular x86
194 processors everyone is used to having in his PC. They can be PowerPC
195 processors, MIPS processors, ARM processors, etc.
196
197 Buildroot supports numerous processors and their variants; it also
198 comes with default configurations for several boards available
199 off-the-shelf. Besides this, a number of third-party projects are
200 based on, or develop their BSP ^[1] or SDK ^[2] on top of Buildroot.
201
202
203 ---------------------------------------------------------------------
204
205 ^[1] BSP: Board Support Package
206
207 ^[2] SDK: Software Development Kit
208
209 Chapter 2. System requirements
210
211 Buildroot is designed to run on Linux systems.
212
213 While Buildroot itself will build most host packages it needs for the
214 compilation, certain standard Linux utilities are expected to be
215 already installed on the host system. Below you will find an overview
216 of the mandatory and optional packages (note that package names may
217 vary between distributions).
218
219 2.1. Mandatory packages
220
221   * Build tools:
222
223       + which
224       + sed
225       + make (version 3.81 or any later)
226       + binutils
227       + build-essential (only for Debian based systems)
228       + gcc (version 2.95 or any later)
229       + g++ (version 2.95 or any later)
230       + bash
231       + patch
232       + gzip
233       + bzip2
234       + perl (version 5.8.7 or any later)
235       + tar
236       + cpio
237       + python (version 2.6 or 2.7)
238       + unzip
239       + rsync
240   * Source fetching tools:
241
242       + wget
243
244 2.2. Optional packages
245
246   * Configuration interface dependencies:
247
248     For these libraries, you need to install both runtime and
249     development data, which in many distributions are packaged
250     separately. The development packages typically have a -dev or 
251     -devel suffix.
252
253       + ncurses5 to use the menuconfig interface
254       + qt4 to use the xconfig interface
255       + glib2, gtk2 and glade2 to use the gconfig interface
256   * Source fetching tools:
257
258     In the official tree, most of the package sources are retrieved
259     using wget from ftp, http or https locations. A few packages are
260     only available through a version control system. Moreover,
261     Buildroot is capable of downloading sources via other tools, like
262     rsync or scp (refer to Chapter 19, Download infrastructure for
263     more details). If you enable packages using any of these methods,
264     you will need to install the corresponding tool on the host
265     system:
266
267       + bazaar
268       + cvs
269       + git
270       + mercurial
271       + rsync
272       + scp
273       + subversion
274   * Java-related packages, if the Java Classpath needs to be built
275     for the target system:
276
277       + The javac compiler
278       + The jar tool
279   * Documentation generation tools:
280
281       + asciidoc, version 8.6.3 or higher
282       + w3m
283       + python with the argparse module (automatically present in
284         2.7+ and 3.2+)
285       + dblatex (required for the pdf manual only)
286   * Graph generation tools:
287
288       + graphviz to use graph-depends and <pkg>-graph-depends
289       + python-matplotlib to use graph-build
290
291 Chapter 3. Getting Buildroot
292
293 Buildroot releases are made every 3 months, in February, May, August
294 and November. Release numbers are in the format YYYY.MM, so for
295 example 2013.02, 2014.08.
296
297 Release tarballs are available at http://buildroot.org/downloads/.
298
299 If you want to follow development, you can use the daily snapshots or
300 make a clone of the Git repository. Refer to the Download page [http:
301 //buildroot.org/download] of the Buildroot website for more details.
302
303 Chapter 4. Buildroot quick start
304
305 Important: you can and should build everything as a normal user.
306 There is no need to be root to configure and use Buildroot. By
307 running all commands as a regular user, you protect your system
308 against packages behaving badly during compilation and installation.
309
310 The first step when using Buildroot is to create a configuration.
311 Buildroot has a nice configuration tool similar to the one you can
312 find in the Linux kernel [http://www.kernel.org/] or in BusyBox
313 [http://www.busybox.net/].
314
315 From the buildroot directory, run
316
317  $ make menuconfig
318
319 for the original curses-based configurator, or
320
321  $ make nconfig
322
323 for the new curses-based configurator, or
324
325  $ make xconfig
326
327 for the Qt-based configurator, or
328
329  $ make gconfig
330
331 for the GTK-based configurator.
332
333 All of these "make" commands will need to build a configuration
334 utility (including the interface), so you may need to install
335 "development" packages for relevant libraries used by the
336 configuration utilities. Refer to Chapter 2, System requirements for
337 more details, specifically the optional requirements Section 2.2,
338 “Optional packages” to get the dependencies of your favorite
339 interface.
340
341 For each menu entry in the configuration tool, you can find
342 associated help that describes the purpose of the entry. Refer to
343 Chapter 6, Buildroot configuration for details on some specific
344 configuration aspects.
345
346 Once everything is configured, the configuration tool generates a
347 .config file that contains the entire configuration. This file will
348 be read by the top-level Makefile.
349
350 To start the build process, simply run:
351
352  $ make
353
354 You should never use make -jN with Buildroot: top-level parallel make
355 is currently not supported. Instead, use the BR2_JLEVEL option to
356 tell Buildroot to run the compilation of each individual package with
357 make -jN.
358
359 The make command will generally perform the following steps:
360
361   * download source files (as required);
362   * configure, build and install the cross-compilation toolchain, or
363     simply import an external toolchain;
364   * configure, build and install selected target packages;
365   * build a kernel image, if selected;
366   * build a bootloader image, if selected;
367   * create a root filesystem in selected formats.
368
369 Buildroot output is stored in a single directory, output/. This
370 directory contains several subdirectories:
371
372   * images/ where all the images (kernel image, bootloader and root
373     filesystem images) are stored. These are the files you need to
374     put on your target system.
375   * build/ where all the components are built (this includes tools
376     needed by Buildroot on the host and packages compiled for the
377     target). This directory contains one subdirectory for each of
378     these components.
379   * staging/ which contains a hierarchy similar to a root filesystem
380     hierarchy. This directory contains the headers and libraries of
381     the cross-compilation toolchain and all the userspace packages
382     selected for the target. However, this directory is not intended
383     to be the root filesystem for the target: it contains a lot of
384     development files, unstripped binaries and libraries that make it
385     far too big for an embedded system. These development files are
386     used to compile libraries and applications for the target that
387     depend on other libraries.
388   * target/ which contains almost the complete root filesystem for
389     the target: everything needed is present except the device files
390     in /dev/ (Buildroot can’t create them because Buildroot doesn’t
391     run as root and doesn’t want to run as root). Also, it doesn’t
392     have the correct permissions (e.g. setuid for the busybox
393     binary). Therefore, this directory should not be used on your
394     target. Instead, you should use one of the images built in the
395     images/ directory. If you need an extracted image of the root
396     filesystem for booting over NFS, then use the tarball image
397     generated in images/ and extract it as root. Compared to staging
398     /, target/ contains only the files and libraries needed to run
399     the selected target applications: the development files (headers,
400     etc.) are not present, the binaries are stripped.
401   * host/ contains the installation of tools compiled for the host
402     that are needed for the proper execution of Buildroot, including
403     the cross-compilation toolchain.
404
405 These commands, make menuconfig|nconfig|gconfig|xconfig and make, are
406 the basic ones that allow to easily and quickly generate images
407 fitting your needs, with all the features and applications you
408 enabled.
409
410 More details about the "make" command usage are given in Section 8.1,
411 “make tips”.
412
413 Chapter 5. Community resources
414
415 Like any open source project, Buildroot has different ways to share
416 information in its community and outside.
417
418 Each of those ways may interest you if you are looking for some help,
419 want to understand Buildroot or contribute to the project.
420
421 Mailing List
422
423     Buildroot has a mailing list for discussion and development. It
424     is the main method of interaction for Buildroot users and
425     developers.
426
427     Only subscribers to the Buildroot mailing list are allowed to
428     post to this list. You can subscribe via the mailing list info
429     page [http://lists.busybox.net/mailman/listinfo/buildroot].
430
431     Mails that are sent to the mailing list are also available in the
432     mailing list archives [http://lists.busybox.net/pipermail/
433     buildroot] and via Gmane [http://gmane.org], at
434     gmane.comp.lib.uclibc.buildroot [http://dir.gmane.org/
435     gmane.comp.lib.uclibc.buildroot]. Please search the mailing list
436     archives before asking questions, since there is a good chance
437     someone else has asked the same question before.
438
439 IRC
440
441     The Buildroot IRC channel #buildroot [irc://freenode.net/#
442     buildroot] is hosted on Freenode [http://webchat.freenode.net].
443     It is a useful place to ask quick questions or discuss on certain
444     topics.
445
446     When asking for help on IRC, share relevant logs or pieces of
447     code using a code sharing website, such as http://code.bulix.org.
448
449     Note that for certain questions, posting to the mailing list may
450     be better as it will reach more people, both developers and
451     users.
452
453 Bug tracker
454     Bugs in Buildroot can be reported via the mailing list or
455     alternatively via the Buildroot bugtracker [https://
456     bugs.busybox.net/buglist.cgi?product=buildroot]. Please refer to
457     Section 21.6, “Reporting issues/bugs or getting help” before
458     creating a bug report.
459 Wiki
460     The Buildroot wiki page [http://elinux.org/Buildroot] is hosted
461     on the eLinux [http://elinux.org] wiki. It contains some useful
462     links, an overview of past and upcoming events, and a TODO list.
463 Patchwork
464
465     Patchwork is a web-based patch tracking system designed to
466     facilitate the contribution and management of contributions to an
467     open-source project. Patches that have been sent to a mailing
468     list are 'caught' by the system, and appear on a web page. Any
469     comments posted that reference the patch are appended to the
470     patch page too. For more information on Patchwork see http://
471     jk.ozlabs.org/projects/patchwork/.
472
473     Buildroot’s Patchwork website is mainly for use by Buildroot’s
474     maintainer to ensure patches aren’t missed. It is also used by
475     Buildroot patch reviewers (see also Section 21.3.1, “Applying
476     Patches from Patchwork”). However, since the website exposes
477     patches and their corresponding review comments in a clean and
478     concise web interface, it can be useful for all Buildroot
479     developers.
480
481     The Buildroot patch management interface is available at http://
482     patchwork.buildroot.org.
483
484 Part II. User guide
485
486 Table of Contents
487
488 6. Buildroot configuration
489
490     6.1. Cross-compilation toolchain
491     6.2. /dev management
492     6.3. init system
493
494 7. Configuration of other components
495 8. General Buildroot usage
496
497     8.1. make tips
498     8.2. Understanding when a full rebuild is necessary
499     8.3. Understanding how to rebuild packages
500     8.4. Offline builds
501     8.5. Building out-of-tree
502     8.6. Environment variables
503     8.7. Dealing efficiently with filesystem images
504     8.8. Graphing the dependencies between packages
505     8.9. Graphing the build duration
506     8.10. Integration with Eclipse
507     8.11. Advanced usage
508
509 9. Project-specific customization
510
511     9.1. Recommended directory structure
512     9.2. Keeping customizations outside of Buildroot
513     9.3. Storing the Buildroot configuration
514     9.4. Storing the configuration of other components
515     9.5. Customizing the generated target filesystem
516     9.6. Adding custom user accounts
517     9.7. Customization after the images have been created
518     9.8. Adding project-specific patches
519     9.9. Adding project-specific packages
520     9.10. Quick guide to storing your project-specific customizations
521
522 10. Frequently Asked Questions & Troubleshooting
523
524     10.1. The boot hangs after Starting network…
525     10.2. Why is there no compiler on the target?
526     10.3. Why are there no development files on the target?
527     10.4. Why is there no documentation on the target?
528     10.5. Why are some packages not visible in the Buildroot config
529         menu?
530     10.6. Why not use the target directory as a chroot directory?
531     10.7. Why doesn’t Buildroot generate binary packages (.deb,
532         .ipkg…)?
533     10.8. How to speed-up the build process?
534
535 11. Known issues
536 12. Legal notice and licensing
537
538     12.1. Complying with open source licenses
539     12.2. License abbreviations
540     12.3. Complying with the Buildroot license
541
542 13. Beyond Buildroot
543
544     13.1. Boot the generated images
545     13.2. Chroot
546
547 Chapter 6. Buildroot configuration
548
549 All the configuration options in make *config have a help text
550 providing details about the option.
551
552 The make *config commands also offer a search tool. Read the help
553 message in the different frontend menus to know how to use it:
554
555   * in menuconfig, the search tool is called by pressing /;
556   * in xconfig, the search tool is called by pressing Ctrl + f.
557
558 The result of the search shows the help message of the matching
559 items. In menuconfig, numbers in the left column provide a shortcut
560 to the corresponding entry. Just type this number to directly jump to
561 the entry, or to the containing menu in case the entry is not
562 selectable due to a missing dependency.
563
564 Although the menu structure and the help text of the entries should
565 be sufficiently self-explanatory, a number of topics require
566 additional explanation that cannot easily be covered in the help text
567 and are therefore covered in the following sections.
568
569 6.1. Cross-compilation toolchain
570
571 A compilation toolchain is the set of tools that allows you to
572 compile code for your system. It consists of a compiler (in our case,
573 gcc), binary utils like assembler and linker (in our case, binutils)
574 and a C standard library (for example GNU Libc [http://www.gnu.org/
575 software/libc/libc.html], uClibc [http://www.uclibc.org/]).
576
577 The system installed on your development station certainly already
578 has a compilation toolchain that you can use to compile an
579 application that runs on your system. If you’re using a PC, your
580 compilation toolchain runs on an x86 processor and generates code for
581 an x86 processor. Under most Linux systems, the compilation toolchain
582 uses the GNU libc (glibc) as the C standard library. This compilation
583 toolchain is called the "host compilation toolchain". The machine on
584 which it is running, and on which you’re working, is called the "host
585 system" ^[3].
586
587 The compilation toolchain is provided by your distribution, and
588 Buildroot has nothing to do with it (other than using it to build a
589 cross-compilation toolchain and other tools that are run on the
590 development host).
591
592 As said above, the compilation toolchain that comes with your system
593 runs on and generates code for the processor in your host system. As
594 your embedded system has a different processor, you need a
595 cross-compilation toolchain - a compilation toolchain that runs on
596 your host system but generates code for your target system (and
597 target processor). For example, if your host system uses x86 and your
598 target system uses ARM, the regular compilation toolchain on your
599 host runs on x86 and generates code for x86, while the
600 cross-compilation toolchain runs on x86 and generates code for ARM.
601
602 Buildroot provides two solutions for the cross-compilation toolchain:
603
604   * The internal toolchain backend, called Buildroot toolchain in the
605     configuration interface.
606   * The external toolchain backend, called External toolchain in the
607     configuration interface.
608
609 The choice between these two solutions is done using the Toolchain
610 Type option in the Toolchain menu. Once one solution has been chosen,
611 a number of configuration options appear, they are detailed in the
612 following sections.
613
614 6.1.1. Internal toolchain backend
615
616 The internal toolchain backend is the backend where Buildroot builds
617 by itself a cross-compilation toolchain, before building the
618 userspace applications and libraries for your target embedded system.
619
620 This backend supports several C libraries: uClibc [http://
621 www.uclibc.org], the glibc [http://www.gnu.org/software/libc/
622 libc.html] and eglibc [http://www.eglibc.org].
623
624 Once you have selected this backend, a number of options appear. The
625 most important ones allow to:
626
627   * Change the version of the Linux kernel headers used to build the
628     toolchain. This item deserves a few explanations. In the process
629     of building a cross-compilation toolchain, the C library is being
630     built. This library provides the interface between userspace
631     applications and the Linux kernel. In order to know how to "talk"
632     to the Linux kernel, the C library needs to have access to the 
633     Linux kernel headers (i.e. the .h files from the kernel), which
634     define the interface between userspace and the kernel (system
635     calls, data structures, etc.). Since this interface is backward
636     compatible, the version of the Linux kernel headers used to build
637     your toolchain do not need to match exactly the version of the
638     Linux kernel you intend to run on your embedded system. They only
639     need to have a version equal or older to the version of the Linux
640     kernel you intend to run. If you use kernel headers that are more
641     recent than the Linux kernel you run on your embedded system,
642     then the C library might be using interfaces that are not
643     provided by your Linux kernel.
644   * Change the version of the GCC compiler, binutils and the C
645     library.
646   * Select a number of toolchain options (uClibc only): whether the
647     toolchain should have RPC support (used mainly for NFS),
648     wide-char support, locale support (for internationalization), C++
649     support or thread support. Depending on which options you choose,
650     the number of userspace applications and libraries visible in
651     Buildroot menus will change: many applications and libraries
652     require certain toolchain options to be enabled. Most packages
653     show a comment when a certain toolchain option is required to be
654     able to enable those packages. If needed, you can further refine
655     the uClibc configuration by running make uclibc-menuconfig. Note
656     however that all packages in Buildroot are tested against the
657     default uClibc configuration bundled in Buildroot: if you deviate
658     from this configuration by removing features from uClibc, some
659     packages may no longer build.
660
661 It is worth noting that whenever one of those options is modified,
662 then the entire toolchain and system must be rebuilt. See
663 Section 8.2, “Understanding when a full rebuild is necessary”.
664
665 Advantages of this backend:
666
667   * Well integrated with Buildroot
668   * Fast, only builds what’s necessary
669
670 Drawbacks of this backend:
671
672   * Rebuilding the toolchain is needed when doing make clean, which
673     takes time. If you’re trying to reduce your build time, consider
674     using the External toolchain backend.
675
676 6.1.2. External toolchain backend
677
678 The external toolchain backend allows to use existing pre-built
679 cross-compilation toolchains. Buildroot knows about a number of
680 well-known cross-compilation toolchains (from Linaro [http://
681 www.linaro.org] for ARM, Sourcery CodeBench [http://www.mentor.com/
682 embedded-software/sourcery-tools/sourcery-codebench/editions/
683 lite-edition/] for ARM, x86, x86-64, PowerPC, MIPS and SuperH,
684 Blackfin toolchains from Analog Devices [https://blackfin.uclinux.org
685 /gf/project/toolchain], etc.) and is capable of downloading them
686 automatically, or it can be pointed to a custom toolchain, either
687 available for download or installed locally.
688
689 Then, you have three solutions to use an external toolchain:
690
691   * Use a predefined external toolchain profile, and let Buildroot
692     download, extract and install the toolchain. Buildroot already
693     knows about a few CodeSourcery, Linaro, Blackfin and Xilinx
694     toolchains. Just select the toolchain profile in Toolchain from
695     the available ones. This is definitely the easiest solution.
696   * Use a predefined external toolchain profile, but instead of
697     having Buildroot download and extract the toolchain, you can tell
698     Buildroot where your toolchain is already installed on your
699     system. Just select the toolchain profile in Toolchain through
700     the available ones, unselect Download toolchain automatically,
701     and fill the Toolchain path text entry with the path to your
702     cross-compiling toolchain.
703   * Use a completely custom external toolchain. This is particularly
704     useful for toolchains generated using crosstool-NG or with
705     Buildroot itself. To do this, select the Custom toolchain
706     solution in the Toolchain list. You need to fill the Toolchain
707     path, Toolchain prefix and External toolchain C library options.
708     Then, you have to tell Buildroot what your external toolchain
709     supports. If your external toolchain uses the glibc library, you
710     only have to tell whether your toolchain supports C++ or not and
711     whether it has built-in RPC support. If your external toolchain
712     uses the uClibc library, then you have to tell Buildroot if it
713     supports RPC, wide-char, locale, program invocation, threads and
714     C++. At the beginning of the execution, Buildroot will tell you
715     if the selected options do not match the toolchain configuration.
716
717 Our external toolchain support has been tested with toolchains from
718 CodeSourcery and Linaro, toolchains generated by crosstool-NG [http:/
719 /crosstool-ng.org], and toolchains generated by Buildroot itself. In
720 general, all toolchains that support the sysroot feature should work.
721 If not, do not hesitate to contact the developers.
722
723 We do not support toolchains or SDK generated by OpenEmbedded or
724 Yocto, because these toolchains are not pure toolchains (i.e. just
725 the compiler, binutils, the C and C++ libraries). Instead these
726 toolchains come with a very large set of pre-compiled libraries and
727 programs. Therefore, Buildroot cannot import the sysroot of the
728 toolchain, as it would contain hundreds of megabytes of pre-compiled
729 libraries that are normally built by Buildroot.
730
731 We also do not support using the distribution toolchain (i.e. the gcc
732 /binutils/C library installed by your distribution) as the toolchain
733 to build software for the target. This is because your distribution
734 toolchain is not a "pure" toolchain (i.e. only with the C/C++
735 library), so we cannot import it properly into the Buildroot build
736 environment. So even if you are building a system for a x86 or x86_64
737 target, you have to generate a cross-compilation toolchain with
738 Buildroot or crosstool-NG.
739
740 If you want to generate a custom toolchain for your project, that can
741 be used as an external toolchain in Buildroot, our recommendation is
742 definitely to build it with crosstool-NG [http://crosstool-ng.org].
743 We recommend to build the toolchain separately from Buildroot, and
744 then import it in Buildroot using the external toolchain backend.
745
746 Advantages of this backend:
747
748   * Allows to use well-known and well-tested cross-compilation
749     toolchains.
750   * Avoids the build time of the cross-compilation toolchain, which
751     is often very significant in the overall build time of an
752     embedded Linux system.
753   * Not limited to uClibc: glibc and eglibc toolchains are supported.
754
755 Drawbacks of this backend:
756
757   * If your pre-built external toolchain has a bug, may be hard to
758     get a fix from the toolchain vendor, unless you build your
759     external toolchain by yourself using Crosstool-NG.
760
761 6.1.2.1. External toolchain wrapper
762
763 When using an external toolchain, Buildroot generates a wrapper
764 program, that transparently passes the appropriate options (according
765 to the configuration) to the external toolchain programs. In case you
766 need to debug this wrapper to check exactly what arguments are
767 passed, you can set the environment variable BR2_DEBUG_WRAPPER to
768 either one of:
769
770   * 0, empty or not set: no debug
771   * 1: trace all arguments on a single line
772   * 2: trace one argument per line
773
774 6.2. /dev management
775
776 On a Linux system, the /dev directory contains special files, called 
777 device files, that allow userspace applications to access the
778 hardware devices managed by the Linux kernel. Without these device
779 files, your userspace applications would not be able to use the
780 hardware devices, even if they are properly recognized by the Linux
781 kernel.
782
783 Under System configuration, /dev management, Buildroot offers four
784 different solutions to handle the /dev directory :
785
786   * The first solution is Static using device table. This is the old
787     classical way of handling device files in Linux. With this
788     method, the device files are persistently stored in the root
789     filesystem (i.e. they persist across reboots), and there is
790     nothing that will automatically create and remove those device
791     files when hardware devices are added or removed from the system.
792     Buildroot therefore creates a standard set of device files using
793     a device table, the default one being stored in system/
794     device_table_dev.txt in the Buildroot source code. This file is
795     processed when Buildroot generates the final root filesystem
796     image, and the device files are therefore not visible in the
797     output/target directory. The BR2_ROOTFS_STATIC_DEVICE_TABLE
798     option allows to change the default device table used by
799     Buildroot, or to add an additional device table, so that
800     additional device files are created by Buildroot during the
801     build. So, if you use this method, and a device file is missing
802     in your system, you can for example create a board/<yourcompany>/
803     <yourproject>/device_table_dev.txt file that contains the
804     description of your additional device files, and then you can set
805     BR2_ROOTFS_STATIC_DEVICE_TABLE to system/device_table_dev.txt
806     board/<yourcompany>/<yourproject>/device_table_dev.txt. For more
807     details about the format of the device table file, see
808     Chapter 22, Makedev syntax documentation.
809   * The second solution is Dynamic using devtmpfs only. devtmpfs is a
810     virtual filesystem inside the Linux kernel that has been
811     introduced in kernel 2.6.32 (if you use an older kernel, it is
812     not possible to use this option). When mounted in /dev, this
813     virtual filesystem will automatically make device files appear
814     and disappear as hardware devices are added and removed from the
815     system. This filesystem is not persistent across reboots: it is
816     filled dynamically by the kernel. Using devtmpfs requires the
817     following kernel configuration options to be enabled:
818     CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT. When Buildroot is in
819     charge of building the Linux kernel for your embedded device, it
820     makes sure that those two options are enabled. However, if you
821     build your Linux kernel outside of Buildroot, then it is your
822     responsibility to enable those two options (if you fail to do so,
823     your Buildroot system will not boot).
824   * The third solution is Dynamic using mdev. This method also relies
825     on the devtmpfs virtual filesystem detailed above (so the
826     requirement to have CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT
827     enabled in the kernel configuration still apply), but adds the
828     mdev userspace utility on top of it. mdev is a program part of
829     BusyBox that the kernel will call every time a device is added or
830     removed. Thanks to the /etc/mdev.conf configuration file, mdev
831     can be configured to for example, set specific permissions or
832     ownership on a device file, call a script or application whenever
833     a device appears or disappear, etc. Basically, it allows 
834     userspace to react on device addition and removal events. mdev
835     can for example be used to automatically load kernel modules when
836     devices appear on the system. mdev is also important if you have
837     devices that require a firmware, as it will be responsible for
838     pushing the firmware contents to the kernel. mdev is a
839     lightweight implementation (with fewer features) of udev. For
840     more details about mdev and the syntax of its configuration file,
841     see http://git.busybox.net/busybox/tree/docs/mdev.txt.
842   * The fourth solution is Dynamic using eudev. This method also
843     relies on the devtmpfs virtual filesystem detailed above, but
844     adds the eudev userspace daemon on top of it. eudev is a daemon
845     that runs in the background, and gets called by the kernel when a
846     device gets added or removed from the system. It is a more
847     heavyweight solution than mdev, but provides higher flexibility.
848     eudev is a standalone version of udev, the original userspace
849     daemon used in most desktop Linux distributions, which is now
850     part of Systemd. For more details, see http://en.wikipedia.org/
851     wiki/Udev.
852
853 The Buildroot developers recommendation is to start with the Dynamic
854 using devtmpfs only solution, until you have the need for userspace
855 to be notified when devices are added/removed, or if firmwares are
856 needed, in which case Dynamic using mdev is usually a good solution.
857
858 Note that if systemd is chosen as init system, /dev management will
859 be performed by the udev program provided by systemd.
860
861 6.3. init system
862
863 The init program is the first userspace program started by the kernel
864 (it carries the PID number 1), and is responsible for starting the
865 userspace services and programs (for example: web server, graphical
866 applications, other network servers, etc.).
867
868 Buildroot allows to use three different types of init systems, which
869 can be chosen from System configuration, Init system:
870
871   * The first solution is BusyBox. Amongst many programs, BusyBox has
872     an implementation of a basic init program, which is sufficient
873     for most embedded systems. Enabling the BR2_INIT_BUSYBOX will
874     ensure BusyBox will build and install its init program. This is
875     the default solution in Buildroot. The BusyBox init program will
876     read the /etc/inittab file at boot to know what to do. The syntax
877     of this file can be found in http://git.busybox.net/busybox/tree/
878     examples/inittab (note that BusyBox inittab syntax is special: do
879     not use a random inittab documentation from the Internet to learn
880     about BusyBox inittab). The default inittab in Buildroot is
881     stored in system/skeleton/etc/inittab. Apart from mounting a few
882     important filesystems, the main job the default inittab does is
883     to start the /etc/init.d/rcS shell script, and start a getty
884     program (which provides a login prompt).
885   * The second solution is systemV. This solution uses the old
886     traditional sysvinit program, packed in Buildroot in package/
887     sysvinit. This was the solution used in most desktop Linux
888     distributions, until they switched to more recent alternatives
889     such as Upstart or Systemd. sysvinit also works with an inittab
890     file (which has a slightly different syntax than the one from
891     BusyBox). The default inittab installed with this init solution
892     is located in package/sysvinit/inittab.
893   * The third solution is systemd. systemd is the new generation init
894     system for Linux. It does far more than traditional init
895     programs: aggressive parallelization capabilities, uses socket
896     and D-Bus activation for starting services, offers on-demand
897     starting of daemons, keeps track of processes using Linux control
898     groups, supports snapshotting and restoring of the system state,
899     etc. systemd will be useful on relatively complex embedded
900     systems, for example the ones requiring D-Bus and services
901     communicating between each other. It is worth noting that systemd
902     brings a fairly big number of large dependencies: dbus, udev and
903     more. For more details about systemd, see http://
904     www.freedesktop.org/wiki/Software/systemd.
905
906 The solution recommended by Buildroot developers is to use the 
907 BusyBox init as it is sufficient for most embedded systems. systemd
908 can be used for more complex situations.
909
910
911 ---------------------------------------------------------------------
912
913 ^[3] This terminology differs from what is used by GNU configure,
914 where the host is the machine on which the application will run
915 (which is usually the same as target)
916
917 Chapter 7. Configuration of other components
918
919 Before attempting to modify any of the components below, make sure
920 you have already configured Buildroot itself, and have enabled the
921 corresponding package.
922
923 BusyBox
924
925     If you already have a BusyBox configuration file, you can
926     directly specify this file in the Buildroot configuration, using
927     BR2_PACKAGE_BUSYBOX_CONFIG. Otherwise, Buildroot will start from
928     a default BusyBox configuration file.
929
930     To make subsequent changes to the configuration, use make
931     busybox-menuconfig to open the BusyBox configuration editor.
932
933     It is also possible to specify a BusyBox configuration file
934     through an environment variable, although this is not
935     recommended. Refer to Section 8.6, “Environment variables” for
936     more details.
937
938 uClibc
939     Configuration of uClibc is done in the same way as for BusyBox.
940     The configuration variable to specify an existing configuration
941     file is BR2_UCLIBC_CONFIG. The command to make subsequent changes
942     is make uclibc-menuconfig.
943 Linux kernel
944
945     If you already have a kernel configuration file, you can directly
946     specify this file in the Buildroot configuration, using
947     BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG.
948
949     If you do not yet have a kernel configuration file, you can
950     either start by specifying a defconfig in the Buildroot
951     configuration, using BR2_LINUX_KERNEL_USE_DEFCONFIG, or start by
952     creating an empty file and specifying it as custom configuration
953     file, using BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG.
954
955     To make subsequent changes to the configuration, use make
956     linux-menuconfig to open the Linux configuration editor.
957
958 Barebox
959     Configuration of Barebox is done in the same way as for the Linux
960     kernel. The corresponding configuration variables are
961     BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG and
962     BR2_TARGET_BAREBOX_USE_DEFCONFIG. To open the configuration
963     editor, use make barebox-menuconfig.
964
965 Chapter 8. General Buildroot usage
966
967 8.1. make tips
968
969 This is a collection of tips that help you make the most of
970 Buildroot.
971
972 Display all commands executed by make: 
973
974  $ make V=1 <target>
975
976 Display the list of boards with a defconfig: 
977
978  $ make list-defconfigs
979
980 Display all available targets: 
981
982  $ make help
983
984 Not all targets are always available, some settings in the .config
985 file may hide some targets:
986
987   * busybox-menuconfig only works when busybox is enabled;
988   * linux-menuconfig and linux-savedefconfig only work when linux is
989     enabled;
990   * uclibc-menuconfig is only available when the uClibc C library is
991     selected in the internal toolchain backend;
992   * barebox-menuconfig and barebox-savedefconfig only work when the
993     barebox bootloader is enabled.
994
995 Cleaning: Explicit cleaning is required when any of the architecture
996 or toolchain configuration options are changed.
997
998 To delete all build products (including build directories, host,
999 staging and target trees, the images and the toolchain):
1000
1001  $ make clean
1002
1003 Generating the manual: The present manual sources are located in the 
1004 docs/manual directory. To generate the manual:
1005
1006  $ make manual-clean
1007  $ make manual
1008
1009 The manual outputs will be generated in output/docs/manual.
1010
1011 Notes
1012
1013   * A few tools are required to build the documentation (see:
1014     Section 2.2, “Optional packages”).
1015
1016 Resetting Buildroot for a new target: To delete all build products as
1017 well as the configuration:
1018
1019  $ make distclean
1020
1021 Notes. If ccache is enabled, running make clean or distclean does not
1022 empty the compiler cache used by Buildroot. To delete it, refer to
1023 Section 8.11.3, “Using ccache in Buildroot”.
1024
1025 8.2. Understanding when a full rebuild is necessary
1026
1027 Buildroot does not attempt to detect what parts of the system should
1028 be rebuilt when the system configuration is changed through make
1029 menuconfig, make xconfig or one of the other configuration tools. In
1030 some cases, Buildroot should rebuild the entire system, in some
1031 cases, only a specific subset of packages. But detecting this in a
1032 completely reliable manner is very difficult, and therefore the
1033 Buildroot developers have decided to simply not attempt to do this.
1034
1035 Instead, it is the responsibility of the user to know when a full
1036 rebuild is necessary. As a hint, here are a few rules of thumb that
1037 can help you understand how to work with Buildroot:
1038
1039   * When the target architecture configuration is changed, a complete
1040     rebuild is needed. Changing the architecture variant, the binary
1041     format or the floating point strategy for example has an impact
1042     on the entire system.
1043   * When the toolchain configuration is changed, a complete rebuild
1044     generally is needed. Changing the toolchain configuration often
1045     involves changing the compiler version, the type of C library or
1046     its configuration, or some other fundamental configuration item,
1047     and these changes have an impact on the entire system.
1048   * When an additional package is added to the configuration, a full
1049     rebuild is not necessarily needed. Buildroot will detect that
1050     this package has never been built, and will build it. However, if
1051     this package is a library that can optionally be used by packages
1052     that have already been built, Buildroot will not automatically
1053     rebuild those. Either you know which packages should be rebuilt,
1054     and you can rebuild them manually, or you should do a full
1055     rebuild. For example, let’s suppose you have built a system with
1056     the ctorrent package, but without openssl. Your system works, but
1057     you realize you would like to have SSL support in ctorrent, so
1058     you enable the openssl package in Buildroot configuration and
1059     restart the build. Buildroot will detect that openssl should be
1060     built and will be build it, but it will not detect that ctorrent
1061     should be rebuilt to benefit from openssl to add OpenSSL support.
1062     You will either have to do a full rebuild, or rebuild ctorrent
1063     itself.
1064   * When a package is removed from the configuration, Buildroot does
1065     not do anything special. It does not remove the files installed
1066     by this package from the target root filesystem or from the
1067     toolchain sysroot. A full rebuild is needed to get rid of this
1068     package. However, generally you don’t necessarily need this
1069     package to be removed right now: you can wait for the next lunch
1070     break to restart the build from scratch.
1071   * When the sub-options of a package are changed, the package is not
1072     automatically rebuilt. After making such changes, rebuilding only
1073     this package is often sufficient, unless enabling the package
1074     sub-option adds some features to the package that are useful for
1075     another package which has already been built. Again, Buildroot
1076     does not track when a package should be rebuilt: once a package
1077     has been built, it is never rebuilt unless explicitly told to do
1078     so.
1079   * When a change to the root filesystem skeleton is made, a full
1080     rebuild is needed. However, when changes to the root filesystem
1081     overlay, a post-build script or a post-image script are made,
1082     there is no need for a full rebuild: a simple make invocation
1083     will take the changes into account.
1084
1085 Generally speaking, when you’re facing a build error and you’re
1086 unsure of the potential consequences of the configuration changes
1087 you’ve made, do a full rebuild. If you get the same build error, then
1088 you are sure that the error is not related to partial rebuilds of
1089 packages, and if this error occurs with packages from the official
1090 Buildroot, do not hesitate to report the problem! As your experience
1091 with Buildroot progresses, you will progressively learn when a full
1092 rebuild is really necessary, and you will save more and more time.
1093
1094 For reference, a full rebuild is achieved by running:
1095
1096 $ make clean all
1097
1098 8.3. Understanding how to rebuild packages
1099
1100 One of the most common questions asked by Buildroot users is how to
1101 rebuild a given package or how to remove a package without rebuilding
1102 everything from scratch.
1103
1104 Removing a package is unsupported by Buildroot without rebuilding
1105 from scratch. This is because Buildroot doesn’t keep track of which
1106 package installs what files in the output/staging and output/target
1107 directories, or which package would be compiled differently depending
1108 on the availability of another package.
1109
1110 The easiest way to rebuild a single package from scratch is to remove
1111 its build directory in output/build. Buildroot will then re-extract,
1112 re-configure, re-compile and re-install this package from scratch.
1113 You can ask buildroot to do this with the make <package>-dirclean
1114 command.
1115
1116 On the other hand, if you only want to restart the build process of a
1117 package from its compilation step, you can run make <package>
1118 -rebuild, followed by make or make <package>. It will restart the
1119 compilation and installation of the package, but not from scratch: it
1120 basically re-executes make and make install inside the package, so it
1121 will only rebuild files that changed.
1122
1123 If you want to restart the build process of a package from its
1124 configuration step, you can run make <package>-reconfigure, followed
1125 by make or make <package>. It will restart the configuration,
1126 compilation and installation of the package.
1127
1128 Internally, Buildroot creates so-called stamp files to keep track of
1129 which build steps have been completed for each package. They are
1130 stored in the package build directory, output/build/<package>-
1131 <version>/ and are named .stamp_<step-name>. The commands detailed
1132 above simply manipulate these stamp files to force Buildroot to
1133 restart a specific set of steps of a package build process.
1134
1135 Further details about package special make targets are explained in
1136 Section 8.11.5, “Package-specific make targets”.
1137
1138 8.4. Offline builds
1139
1140 If you intend to do an offline build and just want to download all
1141 sources that you previously selected in the configurator (menuconfig,
1142 nconfig, xconfig or gconfig), then issue:
1143
1144  $ make source
1145
1146 You can now disconnect or copy the content of your dl directory to
1147 the build-host.
1148
1149 8.5. Building out-of-tree
1150
1151 As default, everything built by Buildroot is stored in the directory
1152 output in the Buildroot tree.
1153
1154 Buildroot also supports building out of tree with a syntax similar to
1155 the Linux kernel. To use it, add O=<directory> to the make command
1156 line:
1157
1158  $ make O=/tmp/build
1159
1160 Or:
1161
1162  $ cd /tmp/build; make O=$PWD -C path/to/buildroot
1163
1164 All the output files will be located under /tmp/build. If the O path
1165 does not exist, Buildroot will create it.
1166
1167 Note: the O path can be either an absolute or a relative path, but if
1168 it’s passed as a relative path, it is important to note that it is
1169 interpreted relative to the main Buildroot source directory, not the
1170 current working directory.
1171
1172 When using out-of-tree builds, the Buildroot .config and temporary
1173 files are also stored in the output directory. This means that you
1174 can safely run multiple builds in parallel using the same source tree
1175 as long as they use unique output directories.
1176
1177 For ease of use, Buildroot generates a Makefile wrapper in the output
1178 directory - so after the first run, you no longer need to pass O=<…>
1179 and -C <…>, simply run (in the output directory):
1180
1181  $ make <target>
1182
1183 8.6. Environment variables
1184
1185 Buildroot also honors some environment variables, when they are
1186 passed to make or set in the environment:
1187
1188   * HOSTCXX, the host C++ compiler to use
1189   * HOSTCC, the host C compiler to use
1190   * UCLIBC_CONFIG_FILE=<path/to/.config>, path to the uClibc
1191     configuration file, used to compile uClibc, if an internal
1192     toolchain is being built. Note that the uClibc configuration file
1193     can also be set from the configuration interface, so through the
1194     Buildroot .config file; this is the recommended way of setting
1195     it.
1196   * BUSYBOX_CONFIG_FILE=<path/to/.config>, path to the BusyBox
1197     configuration file. Note that the BusyBox configuration file can
1198     also be set from the configuration interface, so through the
1199     Buildroot .config file; this is the recommended way of setting
1200     it.
1201   * BR2_DL_DIR to override the directory in which Buildroot stores/
1202     retrieves downloaded files Note that the Buildroot download
1203     directory can also be set from the configuration interface, so
1204     through the Buildroot .config file; this is the recommended way
1205     of setting it.
1206   * BR2_GRAPH_ALT, if set and non-empty, to use an alternate
1207     color-scheme in build-time graphs
1208   * BR2_GRAPH_OUT to set the filetype of generated graphs, either pdf
1209     (the default), or png.
1210   * BR2_GRAPH_DEPS_OPTS to pass extra options to the dependency
1211     graph; see Section 8.8, “Graphing the dependencies between
1212     packages” for the accepted options
1213   * BR2_GRAPH_DOT_OPTS is passed verbatim as options to the dot
1214     utility to draw the dependency graph.
1215
1216 An example that uses config files located in the toplevel directory
1217 and in your $HOME:
1218
1219  $ make UCLIBC_CONFIG_FILE=uClibc.config BUSYBOX_CONFIG_FILE=$HOME/bb.config
1220
1221 If you want to use a compiler other than the default gcc or g++ for
1222 building helper-binaries on your host, then do
1223
1224  $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD
1225
1226 8.7. Dealing efficiently with filesystem images
1227
1228 Filesystem images can get pretty big, depending on the filesystem you
1229 choose, the number of packages, whether you provisioned free space…
1230 Yet, some locations in the filesystems images may just be empty (e.g.
1231 a long run of zeroes); such a file is called a sparse file.
1232
1233 Most tools can handle sparse files efficiently, and will only store
1234 or write those parts of a sparse file that are not empty.
1235
1236 For example:
1237
1238   * tar accepts the -S option to tell it to only store non-zero
1239     blocks of sparse files:
1240
1241       + tar cf archive.tar -S [files…] will efficiently store sparse
1242         files in a tarball
1243       + tar xf archive.tar -S will efficiently store sparse files
1244         extracted from a tarball
1245   * cp accepts the --sparse=WHEN option (WHEN is one of auto, never
1246     or always):
1247
1248       + cp --sparse=always source.file dest.file will make dest.file
1249         a sparse file if source.file has long runs of zeroes
1250
1251 Other tools may have similar options. Please consult their respective
1252 man pages.
1253
1254 You can use sparse files if you need to store the filesystem images
1255 (e.g. to transfer from one machine to another), or if you need to
1256 send them (e.g. to the Q&A team).
1257
1258 Note however that flashing a filesystem image to a device while using
1259 the sparse mode of dd may result in a broken filesystem (e.g. the
1260 block bitmap of an ext2 filesystem may be corrupted; or, if you have
1261 sparse files in your filesystem, those parts may not be all-zeroes
1262 when read back). You should only use sparse files when handling files
1263 on the build machine, not when transferring them to an actual device
1264 that will be used on the target.
1265
1266 8.8. Graphing the dependencies between packages
1267
1268 One of Buildroot’s jobs is to know the dependencies between packages,
1269 and make sure they are built in the right order. These dependencies
1270 can sometimes be quite complicated, and for a given system, it is
1271 often not easy to understand why such or such package was brought
1272 into the build by Buildroot.
1273
1274 In order to help understanding the dependencies, and therefore better
1275 understand what is the role of the different components in your
1276 embedded Linux system, Buildroot is capable of generating dependency
1277 graphs.
1278
1279 To generate a dependency graph of the full system you have compiled,
1280 simply run:
1281
1282 make graph-depends
1283
1284 You will find the generated graph in output/graphs/graph-depends.pdf.
1285
1286 If your system is quite large, the dependency graph may be too
1287 complex and difficult to read. It is therefore possible to generate
1288 the dependency graph just for a given package:
1289
1290 make <pkg>-graph-depends
1291
1292 You will find the generated graph in output/graph/<pkg>
1293 -graph-depends.pdf.
1294
1295 Note that the dependency graphs are generated using the dot tool from
1296 the Graphviz project, which you must have installed on your system to
1297 use this feature. In most distributions, it is available as the
1298 graphviz package.
1299
1300 By default, the dependency graphs are generated in the PDF format.
1301 However, by passing the BR2_GRAPH_OUT environment variable, you can
1302 switch to other output formats, such as PNG, PostScript or SVG. All
1303 formats supported by the -T option of the dot tool are supported.
1304
1305 BR2_GRAPH_OUT=svg make graph-depends
1306
1307 The graph-depends behaviour can be controlled by setting options in
1308 the BR2_GRAPH_DEPS_OPTS environment variable. The accepted options
1309 are:
1310
1311   * --depth N, -d N, to limit the dependency depth to N levels. The
1312     default, 0, means no limit.
1313   * --stop-on PKG, -s PKG, to stop the graph on the package PKG. PKG
1314     can be an actual package name, a glob, or the keyword virtual (to
1315     stop on virtual packages). The package is still present on the
1316     graph, but its dependencies are not.
1317   * --exclude PKG, -x PKG, like --stop-on, but also omits PKG from
1318     the graph.
1319   * --transitive, --no-transitive, to draw (or not) the transitive
1320     dependencies. The default is to not draw transitive dependencies.
1321   * --colours R,T,H, the comma-separated list of colours to draw the
1322     root package (R), the target packages (T) and the host packages
1323     (H). Defaults to: lightblue,grey,gainsboro
1324
1325 BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colours=red,green,blue' make graph-depends
1326
1327 8.9. Graphing the build duration
1328
1329 When the build of a system takes a long time, it is sometimes useful
1330 to be able to understand which packages are the longest to build, to
1331 see if anything can be done to speed up the build. In order to help
1332 such build time analysis, Buildroot collects the build time of each
1333 step of each package, and allows to generate graphs from this data.
1334
1335 To generate the build time graph after a build, run:
1336
1337 make graph-build
1338
1339 This will generate a set of files in output/graphs :
1340
1341   * build.hist-build.pdf, a histogram of the build time for each
1342     package, ordered in the build order.
1343   * build.hist-duration.pdf, a histogram of the build time for each
1344     package, ordered by duration (longest first)
1345   * build.hist-name.pdf, a histogram of the build time for each
1346     package, order by package name.
1347   * build.pie-packages.pdf, a pie chart of the build time per package
1348   * build.pie-steps.pdf, a pie chart of the global time spent in each
1349     step of the packages build process.
1350
1351 This graph-build target requires the Python Matplotlib and Numpy
1352 libraries to be installed (python-matplotlib and python-numpy on most
1353 distributions), and also the argparse module if you’re using a Python
1354 version older than 2.7 (python-argparse on most distributions).
1355
1356 By default, the output format for the graph is PDF, but a different
1357 format can be selected using the BR2_GRAPH_OUT environment variable.
1358 The only other format supported is PNG:
1359
1360 BR2_GRAPH_OUT=png make graph-build
1361
1362 8.10. Integration with Eclipse
1363
1364 While a part of the embedded Linux developers like classical text
1365 editors like Vim or Emacs, and command-line based interfaces, a
1366 number of other embedded Linux developers like richer graphical
1367 interfaces to do their development work. Eclipse being one of the
1368 most popular Integrated Development Environment, Buildroot integrates
1369 with Eclipse in order to ease the development work of Eclipse users.
1370
1371 Our integration with Eclipse simplifies the compilation, remote
1372 execution and remote debugging of applications and libraries that are
1373 built on top of a Buildroot system. It does not integrate the
1374 Buildroot configuration and build processes themselves with Eclipse.
1375 Therefore, the typical usage model of our Eclipse integration would
1376 be:
1377
1378   * Configure your Buildroot system with make menuconfig, make
1379     xconfig or any other configuration interface provided with
1380     Buildroot.
1381   * Build your Buildroot system by running make.
1382   * Start Eclipse to develop, execute and debug your own custom
1383     applications and libraries, that will rely on the libraries built
1384     and installed by Buildroot.
1385
1386 The Buildroot Eclipse integration installation process and usage is
1387 described in detail at https://github.com/mbats/
1388 eclipse-buildroot-bundle/wiki.
1389
1390 8.11. Advanced usage
1391
1392 8.11.1. Using the generated toolchain outside Buildroot
1393
1394 You may want to compile, for your target, your own programs or other
1395 software that are not packaged in Buildroot. In order to do this you
1396 can use the toolchain that was generated by Buildroot.
1397
1398 The toolchain generated by Buildroot is located by default in output/
1399 host/. The simplest way to use it is to add output/host/usr/bin/ to
1400 your PATH environment variable and then to use ARCH-linux-gcc,
1401 ARCH-linux-objdump, ARCH-linux-ld, etc.
1402
1403 It is possible to relocate the toolchain - but then --sysroot must be
1404 passed every time the compiler is called to tell where the libraries
1405 and header files are.
1406
1407 It is also possible to generate the Buildroot toolchain in a
1408 directory other than output/host by using the Build options → Host
1409 dir option. This could be useful if the toolchain must be shared with
1410 other users.
1411
1412 8.11.2. Using gdb in Buildroot
1413
1414 Buildroot allows to do cross-debugging, where the debugger runs on
1415 the build machine and communicates with gdbserver on the target to
1416 control the execution of the program.
1417
1418 To achieve this:
1419
1420   * If you are using an internal toolchain (built by Buildroot), you
1421     must enable BR2_PACKAGE_HOST_GDB, BR2_PACKAGE_GDB and
1422     BR2_PACKAGE_GDB_SERVER. This ensures that both the cross gdb and
1423     gdbserver get built, and that gdbserver gets installed to your
1424     target.
1425   * If you are using an external toolchain, you should enable
1426     BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY, which will copy the
1427     gdbserver included with the external toolchain to the target. If
1428     your external toolchain does not have a cross gdb or gdbserver,
1429     it is also possible to let Buildroot build them, by enabling the
1430     same options as for the internal toolchain backend.
1431
1432 Now, to start debugging a program called foo, you should run on the
1433 target:
1434
1435 gdbserver :2345 foo
1436
1437 This will cause gdbserver to listen on TCP port 2345 for a connection
1438 from the cross gdb.
1439
1440 Then, on the host, you should start the cross gdb using the following
1441 command line:
1442
1443 <buildroot>/output/host/usr/bin/<tuple>-gdb -x <buildroot>/output/staging/usr/share/buildroot/gdbinit foo
1444
1445 Of course, foo must be available in the current directory, built with
1446 debugging symbols. Typically you start this command from the
1447 directory where foo is built (and not from output/target/ as the
1448 binaries in that directory are stripped).
1449
1450 The <buildroot>/output/staging/usr/share/buildroot/gdbinit file will
1451 tell the cross gdb where to find the libraries of the target.
1452
1453 Finally, to connect to the target from the cross gdb:
1454
1455 (gdb) target remote <target ip address>:2345
1456
1457 8.11.3. Using ccache in Buildroot
1458
1459 ccache [http://ccache.samba.org] is a compiler cache. It stores the
1460 object files resulting from each compilation process, and is able to
1461 skip future compilation of the same source file (with same compiler
1462 and same arguments) by using the pre-existing object files. When
1463 doing almost identical builds from scratch a number of times, it can
1464 nicely speed up the build process.
1465
1466 ccache support is integrated in Buildroot. You just have to enable
1467 Enable compiler cache in Build options. This will automatically build
1468 ccache and use it for every host and target compilation.
1469
1470 The cache is located in $HOME/.buildroot-ccache. It is stored outside
1471 of Buildroot output directory so that it can be shared by separate
1472 Buildroot builds. If you want to get rid of the cache, simply remove
1473 this directory.
1474
1475 You can get statistics on the cache (its size, number of hits,
1476 misses, etc.) by running make ccache-stats.
1477
1478 The make target ccache-options and the CCACHE_OPTIONS variable
1479 provide more generic access to the ccache. For example
1480
1481 # set cache limit size
1482 make CCACHE_OPTIONS="--max-size=5G" ccache-options
1483
1484 # zero statistics counters
1485 make CCACHE_OPTIONS="--zero-stats" ccache-options
1486
1487 8.11.4. Location of downloaded packages
1488
1489 The various tarballs that are downloaded by Buildroot are all stored
1490 in BR2_DL_DIR, which by default is the dl directory. If you want to
1491 keep a complete version of Buildroot which is known to be working
1492 with the associated tarballs, you can make a copy of this directory.
1493 This will allow you to regenerate the toolchain and the target
1494 filesystem with exactly the same versions.
1495
1496 If you maintain several Buildroot trees, it might be better to have a
1497 shared download location. This can be achieved by pointing the
1498 BR2_DL_DIR environment variable to a directory. If this is set, then
1499 the value of BR2_DL_DIR in the Buildroot configuration is overridden.
1500 The following line should be added to <~/.bashrc>.
1501
1502  $ export BR2_DL_DIR <shared download location>
1503
1504 The download location can also be set in the .config file, with the
1505 BR2_DL_DIR option. Unlike most options in the .config file, this
1506 value is overridden by the BR2_DL_DIR environment variable.
1507
1508 8.11.5. Package-specific make targets
1509
1510 Running make <package> builds and installs that particular package
1511 and its dependencies.
1512
1513 For packages relying on the Buildroot infrastructure, there are
1514 numerous special make targets that can be called independently like
1515 this:
1516
1517 make <package>-<target>
1518
1519 The package build targets are (in the order they are executed):
1520
1521 +------------------------------------------------------------+
1522 |command/target |Description                                 |
1523 |---------------+--------------------------------------------|
1524 |    source     |Fetch the source (download the tarball,     |
1525 |               |clone the source repository, etc)           |
1526 |---------------+--------------------------------------------|
1527 |    depends    |Build and install all dependencies required |
1528 |               |to build the package                        |
1529 |---------------+--------------------------------------------|
1530 |    extract    |Put the source in the package build         |
1531 |               |directory (extract the tarball, copy the    |
1532 |               |source, etc)                                |
1533 |---------------+--------------------------------------------|
1534 |     patch     |Apply the patches, if any                   |
1535 |---------------+--------------------------------------------|
1536 |   configure   |Run the configure commands, if any          |
1537 |---------------+--------------------------------------------|
1538 |     build     |Run the compilation commands                |
1539 |---------------+--------------------------------------------|
1540 |install-staging|target package: Run the installation of the |
1541 |               |package in the staging directory, if        |
1542 |               |necessary                                   |
1543 |---------------+--------------------------------------------|
1544 |install-target |target package: Run the installation of the |
1545 |               |package in the target directory, if         |
1546 |               |necessary                                   |
1547 |---------------+--------------------------------------------|
1548 |    install    |target package: Run the 2 previous          |
1549 |               |installation commands                       |
1550 |               |                                            |
1551 |               |host package: Run the installation of the   |
1552 |               |package in the host directory               |
1553 +------------------------------------------------------------+
1554
1555 Additionally, there are some other useful make targets:
1556
1557 +------------------------------------------------------------+
1558 |  command/   |Description                                   |
1559 |   target    |                                              |
1560 |-------------+----------------------------------------------|
1561 |show-depends |Displays the dependencies required to build   |
1562 |             |the package                                   |
1563 |-------------+----------------------------------------------|
1564 |graph-depends|Generate a dependency graph of the package, in|
1565 |             |the context of the current Buildroot          |
1566 |             |configuration. See this section Section 8.8,  |
1567 |             |“Graphing the dependencies between packages”  |
1568 |             |for more details about dependency graphs.     |
1569 |-------------+----------------------------------------------|
1570 |  dirclean   |Remove the whole package build directory      |
1571 |-------------+----------------------------------------------|
1572 |  reinstall  |Re-run the install commands                   |
1573 |-------------+----------------------------------------------|
1574 |   rebuild   |Re-run the compilation commands - this only   |
1575 |             |makes sense when using the OVERRIDE_SRCDIR    |
1576 |             |feature or when you modified a file directly  |
1577 |             |in the build directory                        |
1578 |-------------+----------------------------------------------|
1579 | reconfigure |Re-run the configure commands, then rebuild - |
1580 |             |this only makes sense when using the          |
1581 |             |OVERRIDE_SRCDIR feature or when you modified a|
1582 |             |file directly in the build directory          |
1583 +------------------------------------------------------------+
1584
1585 8.11.6. Using Buildroot during development
1586
1587 The normal operation of Buildroot is to download a tarball, extract
1588 it, configure, compile and install the software component found
1589 inside this tarball. The source code is extracted in output/build/
1590 <package>-<version>, which is a temporary directory: whenever make
1591 clean is used, this directory is entirely removed, and re-recreated
1592 at the next make invocation. Even when a Git or Subversion repository
1593 is used as the input for the package source code, Buildroot creates a
1594 tarball out of it, and then behaves as it normally does with
1595 tarballs.
1596
1597 This behavior is well-suited when Buildroot is used mainly as an
1598 integration tool, to build and integrate all the components of an
1599 embedded Linux system. However, if one uses Buildroot during the
1600 development of certain components of the system, this behavior is not
1601 very convenient: one would instead like to make a small change to the
1602 source code of one package, and be able to quickly rebuild the system
1603 with Buildroot.
1604
1605 Making changes directly in output/build/<package>-<version> is not an
1606 appropriate solution, because this directory is removed on make
1607 clean.
1608
1609 Therefore, Buildroot provides a specific mechanism for this use case:
1610 the <pkg>_OVERRIDE_SRCDIR mechanism. Buildroot reads an override
1611 file, which allows the user to tell Buildroot the location of the
1612 source for certain packages. By default this override file is named
1613 local.mk and located in the top directory of the Buildroot source
1614 tree, but a different location can be specified through the
1615 BR2_PACKAGE_OVERRIDE_FILE configuration option.
1616
1617 In this override file, Buildroot expects to find lines of the form:
1618
1619 <pkg1>_OVERRIDE_SRCDIR = /path/to/pkg1/sources
1620 <pkg2>_OVERRIDE_SRCDIR = /path/to/pkg2/sources
1621
1622 For example:
1623
1624 LINUX_OVERRIDE_SRCDIR = /home/bob/linux/
1625 BUSYBOX_OVERRIDE_SRCDIR = /home/bob/busybox/
1626
1627 When Buildroot finds that for a given package, an <pkg>
1628 _OVERRIDE_SRCDIR has been defined, it will no longer attempt to
1629 download, extract and patch the package. Instead, it will directly
1630 use the source code available in in the specified directory and make
1631 clean will not touch this directory. This allows to point Buildroot
1632 to your own directories, that can be managed by Git, Subversion, or
1633 any other version control system. To achieve this, Buildroot will use
1634 rsync to copy the source code of the component from the specified
1635 <pkg>_OVERRIDE_SRCDIR to output/build/<package>-custom/.
1636
1637 This mechanism is best used in conjunction with the make <pkg>
1638 -rebuild and make <pkg>-reconfigure targets. A make <pkg>-rebuild all
1639 sequence will rsync the source code from <pkg>_OVERRIDE_SRCDIR to
1640 output/build/<package>-custom (thanks to rsync, only the modified
1641 files are copied), and restart the build process of just this
1642 package.
1643
1644 In the example of the linux package above, the developer can then
1645 make a source code change in /home/bob/linux and then run:
1646
1647 make linux-rebuild all
1648
1649 and in a matter of seconds gets the updated Linux kernel image in
1650 output/images. Similarly, a change can be made to the BusyBox source
1651 code in /home/bob/busybox, and after:
1652
1653 make busybox-rebuild all
1654
1655 the root filesystem image in output/images contains the updated
1656 BusyBox.
1657
1658 Chapter 9. Project-specific customization
1659
1660 Typical actions you may need to perform for a given project are:
1661
1662   * configuring Buildroot (including build options and toolchain,
1663     bootloader, kernel, package and filesystem image type selection)
1664   * configuring other components, like the Linux kernel and BusyBox
1665   * customizing the generated target filesystem
1666
1667       + adding or overwriting files on the target filesystem (using
1668         BR2_ROOTFS_OVERLAY)
1669       + modifying or deleting files on the target filesystem (using
1670         BR2_ROOTFS_POST_BUILD_SCRIPT)
1671       + running arbitrary commands prior to generating the filesystem
1672         image (using BR2_ROOTFS_POST_BUILD_SCRIPT)
1673       + setting file permissions and ownership (using
1674         BR2_ROOTFS_DEVICE_TABLE)
1675       + adding custom devices nodes (using
1676         BR2_ROOTFS_STATIC_DEVICE_TABLE)
1677   * adding custom user accounts (using BR2_ROOTFS_USERS_TABLES)
1678   * running arbitrary commands after generating the filesystem image
1679     (using BR2_ROOTFS_POST_IMAGE_SCRIPT)
1680   * adding project-specific patches to some packages (using
1681     BR2_GLOBAL_PATCH_DIR)
1682   * adding project-specific packages
1683
1684 An important note regarding such project-specific customizations:
1685 please carefully consider which changes are indeed project-specific
1686 and which changes are also useful to developers outside your project.
1687 The Buildroot community highly recommends and encourages the
1688 upstreaming of improvements, packages and board support to the
1689 official Buildroot project. Of course, it is sometimes not possible
1690 or desirable to upstream because the changes are highly specific or
1691 proprietary.
1692
1693 This chapter describes how to make such project-specific
1694 customizations in Buildroot and how to store them in a way that you
1695 can build the same image in a reproducible way, even after running 
1696 make clean. By following the recommended strategy, you can even use
1697 the same Buildroot tree to build multiple distinct projects!
1698
1699 9.1. Recommended directory structure
1700
1701 When customizing Buildroot for your project, you will be creating one
1702 or more project-specific files that need to be stored somewhere.
1703 While most of these files could be placed in any location as their
1704 path is to be specified in the Buildroot configuration, the Buildroot
1705 developers recommend a specific directory structure which is
1706 described in this section.
1707
1708 Orthogonal to this directory structure, you can choose where you
1709 place this structure itself: either inside the Buildroot tree, or
1710 outside of it using BR2_EXTERNAL. Both options are valid, the choice
1711 is up to you.
1712
1713 +-- board/
1714 |   +-- <company>/
1715 |       +-- <boardname>/
1716 |           +-- linux.config
1717 |           +-- busybox.config
1718 |           +-- <other configuration files>
1719 |           +-- post_build.sh
1720 |           +-- post_image.sh
1721 |           +-- rootfs_overlay/
1722 |           |   +-- etc/
1723 |           |   +-- <some file>
1724 |           +-- patches/
1725 |               +-- foo/
1726 |               |   +-- <some patch>
1727 |               +-- libbar/
1728 |                   +-- <some other patches>
1729 |
1730 +-- configs/
1731 |   +-- <boardname>_defconfig
1732 |
1733 +-- package/
1734 |   +-- <company>/
1735 |       +-- Config.in (if not using BR2_EXTERNAL)
1736 |       +-- <company>.mk (if not using BR2_EXTERNAL)
1737 |       +-- package1/
1738 |       |    +-- Config.in
1739 |       |    +-- package1.mk
1740 |       +-- package2/
1741 |           +-- Config.in
1742 |           +-- package2.mk
1743 |
1744 +-- Config.in (if using BR2_EXTERNAL)
1745 +-- external.mk (if using BR2_EXTERNAL)
1746
1747 Details on the files shown above are given further in this chapter.
1748
1749 Note: if you choose to place this structure outside of the Buildroot
1750 tree using BR2_EXTERNAL, the <company> and possibly <boardname>
1751 components may be superfluous and can be left out.
1752
1753 9.1.1. Implementing layered customizations
1754
1755 It is quite common for a user to have several related projects that
1756 partly need the same customizations. Instead of duplicating these
1757 customizations for each project, it is recommended to use a layered
1758 customization approach, as explained in this section.
1759
1760 Almost all of the customization methods available in Buildroot, like
1761 post-build scripts and root filesystem overlays, accept a
1762 space-separated list of items. The specified items are always treated
1763 in order, from left to right. By creating more than one such item,
1764 one for the common customizations and another one for the really
1765 project-specific customizations, you can avoid unnecessary
1766 duplication. Each layer is typically embodied by a separate directory
1767 inside board/<company>/. Depending on your projects, you could even
1768 introduce more than two layers.
1769
1770 An example directory structure for where a user has two customization
1771 layers common and fooboard is:
1772
1773 +-- board/
1774     +-- <company>/
1775         +-- common/
1776         |   +-- post_build.sh
1777         |   +-- rootfs_overlay/
1778         |   |   +-- ...
1779         |   +-- patches/
1780         |       +-- ...
1781         |
1782         +-- fooboard/
1783             +-- linux.config
1784             +-- busybox.config
1785             +-- <other configuration files>
1786             +-- post_build.sh
1787             +-- rootfs_overlay/
1788             |   +-- ...
1789             +-- patches/
1790                 +-- ...
1791
1792 For example, if the user has the BR2_GLOBAL_PATCH_DIR configuration
1793 option set as:
1794
1795 BR2_GLOBAL_PATCH_DIR="board/<company>/common/patches board/<company>/fooboard/patches"
1796
1797 then first the patches from the common layer would be applied,
1798 followed by the patches from the fooboard layer.
1799
1800 9.2. Keeping customizations outside of Buildroot
1801
1802 As already briefly mentioned in Section 9.1, “Recommended directory
1803 structure”, you can place project-specific customizations in two
1804 locations:
1805
1806   * directly within the Buildroot tree, typically maintaining them
1807     using branches in a version control system so that upgrading to a
1808     newer Buildroot release is easy.
1809   * outside of the Buildroot tree, using the BR2_EXTERNAL mechanism.
1810     This mechanism allows to keep package recipes, board support and
1811     configuration files outside of the Buildroot tree, while still
1812     having them nicely integrated in the build logic. This section
1813     explains how to use BR2_EXTERNAL.
1814
1815 BR2_EXTERNAL is an environment variable that can be used to point to
1816 a directory that contains Buildroot customizations. It can be passed
1817 to any Buildroot make invocation. It is automatically saved in the
1818 hidden .br-external file in the output directory. Thanks to this,
1819 there is no need to pass BR2_EXTERNAL at every make invocation. It
1820 can however be changed at any time by passing a new value, and can be
1821 removed by passing an empty value.
1822
1823 Note. The BR2_EXTERNAL path can be either an absolute or a relative
1824 path, but if it’s passed as a relative path, it is important to note
1825 that it is interpreted relative to the main Buildroot source
1826 directory, not to the Buildroot output directory.
1827
1828 Some examples:
1829
1830 buildroot/ $ make BR2_EXTERNAL=/path/to/foobar menuconfig
1831
1832 From now on, external definitions from the /path/to/foobar directory
1833 will be used:
1834
1835 buildroot/ $ make
1836 buildroot/ $ make legal-info
1837
1838 We can switch to another external definitions directory at any time:
1839
1840 buildroot/ $ make BR2_EXTERNAL=/where/we/have/barfoo xconfig
1841
1842 Or disable the usage of external definitions:
1843
1844 buildroot/ $ make BR2_EXTERNAL= xconfig
1845
1846 BR2_EXTERNAL allows three different things:
1847
1848   * One can store all the board-specific configuration files there,
1849     such as the kernel configuration, the root filesystem overlay, or
1850     any other configuration file for which Buildroot allows to set
1851     its location. The BR2_EXTERNAL value is available within the
1852     Buildroot configuration using $(BR2_EXTERNAL). As an example, one
1853     could set the BR2_ROOTFS_OVERLAY Buildroot option to $
1854     (BR2_EXTERNAL)/board/<boardname>/overlay/ (to specify a root
1855     filesystem overlay), or the BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
1856     Buildroot option to $(BR2_EXTERNAL)/board/<boardname>/
1857     kernel.config (to specify the location of the kernel
1858     configuration file).
1859   * One can store package recipes (i.e. Config.in and
1860     <packagename>.mk), or even custom configuration options and make
1861     logic. Buildroot automatically includes $(BR2_EXTERNAL)/Config.in
1862     to make it appear in the top-level configuration menu, and
1863     includes $(BR2_EXTERNAL)/external.mk with the rest of the
1864     makefile logic.
1865
1866     Note. Providing Config.in and external.mk is mandatory, but they
1867     can be empty.
1868
1869     The main usage of this is to store package recipes. The
1870     recommended way to do this is to write a $(BR2_EXTERNAL)/
1871     Config.in file that looks like:
1872
1873     source "$BR2_EXTERNAL/package/package1/Config.in"
1874     source "$BR2_EXTERNAL/package/package2/Config.in"
1875
1876     Then, have a $(BR2_EXTERNAL)/external.mk file that looks like:
1877
1878     include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
1879
1880     And then in $(BR2_EXTERNAL)/package/package1 and $(BR2_EXTERNAL)/
1881     package/package2 create normal Buildroot package recipes, as
1882     explained in Chapter 17, Adding new packages to Buildroot. If you
1883     prefer, you can also group the packages in subdirectories called
1884     <boardname> and adapt the above paths accordingly.
1885
1886   * One can store Buildroot defconfigs in the configs subdirectory of
1887     $(BR2_EXTERNAL). Buildroot will automatically show them in the
1888     output of make list-defconfigs and allow them to be loaded with
1889     the normal make <name>_defconfig command. They will be visible
1890     under the User-provided configs' label in the make
1891     list-defconfigs output.
1892
1893 9.3. Storing the Buildroot configuration
1894
1895 The Buildroot configuration can be stored using the command make
1896 savedefconfig.
1897
1898 This strips the Buildroot configuration down by removing
1899 configuration options that are at their default value. The result is
1900 stored in a file called defconfig. If you want to save it in another
1901 place, change the BR2_DEFCONFIG option in the Buildroot configuration
1902 itself, or call make with make savedefconfig BR2_DEFCONFIG=
1903 <path-to-defconfig>.
1904
1905 The recommended place to store this defconfig is configs/<boardname>
1906 _defconfig. If you follow this recommendation, the configuration will
1907 be listed in make help and can be set again by running make
1908 <boardname>_defconfig.
1909
1910 Alternatively, you can copy the file to any other place and rebuild
1911 with make defconfig BR2_DEFCONFIG=<path-to-defconfig-file>.
1912
1913 9.4. Storing the configuration of other components
1914
1915 The configuration files for BusyBox, the Linux kernel, Barebox and
1916 uClibc should be stored as well if changed. For each of these
1917 components, a Buildroot configuration option exists to point to an
1918 input configuration file, e.g. BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE.
1919 To store their configuration, set these configuration options to a
1920 path where you want to save the configuration files, and then use the
1921 helper targets described below to actually store the configuration.
1922
1923 As explained in Section 9.1, “Recommended directory structure”, the
1924 recommended path to store these configuration files is board/
1925 <company>/<boardname>/foo.config.
1926
1927 Make sure that you create a configuration file before changing the
1928 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE etc. options. Otherwise,
1929 Buildroot will try to access this config file, which doesn’t exist
1930 yet, and will fail. You can create the configuration file by running
1931 make linux-menuconfig etc.
1932
1933 Buildroot provides a few helper targets to make the saving of
1934 configuration files easier.
1935
1936   * make linux-update-defconfig saves the linux configuration to the
1937     path specified by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE. It
1938     simplifies the config file by removing default values. However,
1939     this only works with kernels starting from 2.6.33. For earlier
1940     kernels, use make linux-update-config.
1941   * make busybox-update-config saves the busybox configuration to the
1942     path specified by BR2_PACKAGE_BUSYBOX_CONFIG.
1943   * make uclibc-update-config saves the uClibc configuration to the
1944     path specified by BR2_UCLIBC_CONFIG.
1945   * make barebox-update-defconfig saves the barebox configuration to
1946     the path specified by BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE.
1947   * For at91bootstrap3, no helper exists so you have to copy the
1948     config file manually to
1949     BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE.
1950
1951 9.5. Customizing the generated target filesystem
1952
1953 Besides changing the configuration through make *config, there are a
1954 few other ways to customize the resulting target filesystem.
1955
1956 The two recommended methods, which can co-exist, are root filesystem
1957 overlay(s) and post build script(s).
1958
1959 Root filesystem overlays (BR2_ROOTFS_OVERLAY)
1960
1961     A filesystem overlay is a tree of files that is copied directly
1962     over the target filesystem after it has been built. To enable
1963     this feature, set config option BR2_ROOTFS_OVERLAY (in the System
1964     configuration menu) to the root of the overlay. You can even
1965     specify multiple overlays, space-separated. If you specify a
1966     relative path, it will be relative to the root of the Buildroot
1967     tree. Hidden directories of version control systems, like .git,
1968     .svn, .hg, etc., files called .empty and files ending in ~ are
1969     excluded from the copy.
1970
1971     As shown in Section 9.1, “Recommended directory structure”, the
1972     recommended path for this overlay is board/<company>/<boardname>/
1973     rootfs-overlay.
1974
1975 Post-build scripts (BR2_ROOTFS_POST_BUILD_SCRIPT)
1976
1977     Post-build scripts are shell scripts called after Buildroot
1978     builds all the selected software, but before the rootfs images
1979     are assembled. To enable this feature, specify a space-separated
1980     list of post-build scripts in config option
1981     BR2_ROOTFS_POST_BUILD_SCRIPT (in the System configuration menu).
1982     If you specify a relative path, it will be relative to the root
1983     of the Buildroot tree.
1984
1985     Using post-build scripts, you can remove or modify any file in
1986     your target filesystem. You should, however, use this feature
1987     with care. Whenever you find that a certain package generates
1988     wrong or unneeded files, you should fix that package rather than
1989     work around it with some post-build cleanup scripts.
1990
1991     As shown in Section 9.1, “Recommended directory structure”, the
1992     recommended path for this script is board/<company>/<boardname>/
1993     post_build.sh.
1994
1995     The post-build scripts are run with the main Buildroot tree as
1996     current working directory. The path to the target filesystem is
1997     passed as the first argument to each script. If the config option
1998     BR2_ROOTFS_POST_SCRIPT_ARGS is not empty, these arguments will be
1999     passed to the script too. All the scripts will be passed the
2000     exact same set of arguments, it is not possible to pass different
2001     sets of arguments to each script.
2002
2003     In addition, you may also use these environment variables:
2004
2005       + BR2_CONFIG: the path to the Buildroot .config file
2006       + HOST_DIR, STAGING_DIR, TARGET_DIR: see Section 17.5.2,
2007         “generic-package reference”
2008       + BUILD_DIR: the directory where packages are extracted and
2009         built
2010       + BINARIES_DIR: the place where all binary files (aka images)
2011         are stored
2012       + BASE_DIR: the base output directory
2013
2014 Below two more methods of customizing the target filesystem are
2015 described, but they are not recommended.
2016
2017 Direct modification of the target filesystem
2018
2019     For temporary modifications, you can modify the target filesystem
2020     directly and rebuild the image. The target filesystem is
2021     available under output/target/. After making your changes, run
2022     make to rebuild the target filesystem image.
2023
2024     This method allows you to do anything to the target filesystem,
2025     but if you need to clean your Buildroot tree using make clean,
2026     these changes will be lost. Such cleaning is necessary in several
2027     cases, refer to Section 8.2, “Understanding when a full rebuild
2028     is necessary” for details. This solution is therefore only useful
2029     for quick tests: changes do not survive the make clean command.
2030     Once you have validated your changes, you should make sure that
2031     they will persist after a make clean, using a root filesystem
2032     overlay or a post-build script.
2033
2034 Custom target skeleton (BR2_ROOTFS_SKELETON_CUSTOM)
2035
2036     The root filesystem image is created from a target skeleton, on
2037     top of which all packages install their files. The skeleton is
2038     copied to the target directory output/target before any package
2039     is built and installed. The default target skeleton provides the
2040     standard Unix filesystem layout and some basic init scripts and
2041     configuration files.
2042
2043     If the default skeleton (available under system/skeleton) does
2044     not match your needs, you would typically use a root filesystem
2045     overlay or post-build script to adapt it. However, if the default
2046     skeleton is entirely different than what you need, using a custom
2047     skeleton may be more suitable.
2048
2049     To enable this feature, enable config option
2050     BR2_ROOTFS_SKELETON_CUSTOM and set
2051     BR2_ROOTFS_SKELETON_CUSTOM_PATH to the path of your custom
2052     skeleton. Both options are available in the System configuration
2053     menu. If you specify a relative path, it will be relative to the
2054     root of the Buildroot tree.
2055
2056     This method is not recommended because it duplicates the entire
2057     skeleton, which prevents taking advantage of the fixes or
2058     improvements brought to the default skeleton in later Buildroot
2059     releases.
2060
2061 9.5.1. Setting file permissions and ownership and adding custom
2062 devices nodes
2063
2064 Sometimes it is needed to set specific permissions or ownership on
2065 files or device nodes. For example, certain files may need to be
2066 owned by root. Since the post-build scripts are not run as root, you
2067 cannot do such changes from there unless you use an explicit fakeroot
2068 from the post-build script.
2069
2070 Instead, Buildroot provides support for so-called permission tables.
2071 To use this feature, set config option BR2_ROOTFS_DEVICE_TABLE to a
2072 space-separated list of permission tables, regular text files
2073 following the makedev syntax Chapter 22, Makedev syntax documentation
2074 .
2075
2076 If you are using a static device table (i.e. not using devtmpfs,
2077 mdev, or (e)udev) then you can add device nodes using the same
2078 syntax, in so-called device tables. To use this feature, set config
2079 option BR2_ROOTFS_STATIC_DEVICE_TABLE to a space-separated list of
2080 device tables.
2081
2082 As shown in Section 9.1, “Recommended directory structure”, the
2083 recommended location for such files is board/<company>/<boardname>/.
2084
2085 It should be noted that if the specific permissions or device nodes
2086 are related to a specific application, you should set variables
2087 FOO_PERMISSIONS and FOO_DEVICES in the package’s .mk file instead
2088 (see Section 17.5.2, “generic-package reference”).
2089
2090 9.6. Adding custom user accounts
2091
2092 Sometimes it is needed to add specific users in the target system. To
2093 cover this requirement, Buildroot provides support for so-called 
2094 users tables. To use this feature, set config option
2095 BR2_ROOTFS_USERS_TABLES to a space-separated list of users tables,
2096 regular text files following the makeusers syntax Chapter 23, 
2097 Makeusers syntax documentation.
2098
2099 As shown in Section 9.1, “Recommended directory structure”, the
2100 recommended location for such files is board/<company>/<boardname>/.
2101
2102 It should be noted that if the custom users are related to a specific
2103 application, you should set variable FOO_USERS in the package’s .mk
2104 file instead (see Section 17.5.2, “generic-package reference”).
2105
2106 9.7. Customization after the images have been created
2107
2108 While post-build scripts (Section 9.5, “Customizing the generated
2109 target filesystem”) are run before building the filesystem image,
2110 kernel and bootloader, post-image scripts can be used to perform some
2111 specific actions after all images have been created.
2112
2113 Post-image scripts can for example be used to automatically extract
2114 your root filesystem tarball in a location exported by your NFS
2115 server, or to create a special firmware image that bundles your root
2116 filesystem and kernel image, or any other custom action required for
2117 your project.
2118
2119 To enable this feature, specify a space-separated list of post-image
2120 scripts in config option BR2_ROOTFS_POST_IMAGE_SCRIPT (in the System
2121 configuration menu). If you specify a relative path, it will be
2122 relative to the root of the Buildroot tree.
2123
2124 Just like post-build scripts, post-image scripts are run with the
2125 main Buildroot tree as current working directory. The path to the
2126 images output directory is passed as the first argument to each
2127 script. If the config option BR2_ROOTFS_POST_SCRIPT_ARGS is not
2128 empty, these arguments will be passed to the script too. All the
2129 scripts will be passed the exact same set of arguments, it is not
2130 possible to pass different sets of arguments to each script.
2131
2132 Again just like for the post-build scripts, the scripts have access
2133 to the environment variables BR2_CONFIG, HOST_DIR, STAGING_DIR,
2134 TARGET_DIR, BUILD_DIR, BINARIES_DIR and BASE_DIR.
2135
2136 The post-image scripts will be executed as the user that executes
2137 Buildroot, which should normally not be the root user. Therefore, any
2138 action requiring root permissions in one of these scripts will
2139 require special handling (usage of fakeroot or sudo), which is left
2140 to the script developer.
2141
2142 9.8. Adding project-specific patches
2143
2144 It is sometimes useful to apply extra patches to packages - on top of
2145 those provided in Buildroot. This might be used to support custom
2146 features in a project, for example, or when working on a new
2147 architecture.
2148
2149 The BR2_GLOBAL_PATCH_DIR configuration option can be used to specify
2150 a space separated list of one or more directories containing package
2151 patches.
2152
2153 For a specific version <packageversion> of a specific package
2154 <packagename>, patches are applied from BR2_GLOBAL_PATCH_DIR as
2155 follows:
2156
2157  1. For every directory - <global-patch-dir> - that exists in
2158     BR2_GLOBAL_PATCH_DIR, a <package-patch-dir> will be determined as
2159     follows:
2160
2161       + <global-patch-dir>/<packagename>/<packageversion>/ if the
2162         directory exists.
2163       + Otherwise, <global-patch-dir>/<packagename> if the directory
2164         exists.
2165  2. Patches will then be applied from a <package-patch-dir> as
2166     follows:
2167
2168       + If a series file exists in the package directory, then
2169         patches are applied according to the series file;
2170       + Otherwise, patch files matching *.patch are applied in
2171         alphabetical order. So, to ensure they are applied in the
2172         right order, it is highly recommended to name the patch files
2173         like this: <number>-<description>.patch, where <number>
2174         refers to the apply order.
2175
2176 For information about how patches are applied for a package, see
2177 Section 18.2, “How patches are applied”
2178
2179 The BR2_GLOBAL_PATCH_DIR option is the preferred method for
2180 specifying a custom patch directory for packages. It can be used to
2181 specify a patch directory for any package in buildroot. It should
2182 also be used in place of the custom patch directory options that are
2183 available for packages such as U-Boot and Barebox. By doing this, it
2184 will allow a user to manage their patches from one top-level
2185 directory.
2186
2187 The exception to BR2_GLOBAL_PATCH_DIR being the preferred method for
2188 specifying custom patches is BR2_LINUX_KERNEL_PATCH.
2189 BR2_LINUX_KERNEL_PATCH should be used to specify kernel patches that
2190 are available at an URL. Note: BR2_LINUX_KERNEL_PATCH specifies
2191 kernel patches that are applied after patches available in
2192 BR2_GLOBAL_PATCH_DIR, as it is done from a post-patch hook of the
2193 Linux package.
2194
2195 9.9. Adding project-specific packages
2196
2197 In general, any new package should be added directly in the package
2198 directory and submitted to the Buildroot upstream project. How to add
2199 packages to Buildroot in general is explained in full detail in
2200 Chapter 17, Adding new packages to Buildroot and will not be repeated
2201 here. However, your project may need some proprietary packages that
2202 cannot be upstreamed. This section will explain how you can keep such
2203 project-specific packages in a project-specific directory.
2204
2205 As shown in Section 9.1, “Recommended directory structure”, the
2206 recommended location for project-specific packages is package/
2207 <company>/. If you are using the BR2_EXTERNAL feature (see
2208 Section 9.2, “Keeping customizations outside of Buildroot”) the
2209 recommended location is $(BR2_EXTERNAL)/package/.
2210
2211 However, Buildroot will not be aware of the packages in this
2212 location, unless we perform some additional steps. As explained in
2213 Chapter 17, Adding new packages to Buildroot, a package in Buildroot
2214 basically consists of two files: a .mk file (describing how to build
2215 the package) and a Config.in file (describing the configuration
2216 options for this package).
2217
2218 Buildroot will automatically include the .mk files in first-level
2219 subdirectories of the package directory (using the pattern package/*/
2220 *.mk). If we want Buildroot to include .mk files from deeper
2221 subdirectories (like package/<company>/package1/) then we simply have
2222 to add a .mk file in a first-level subdirectory that includes these
2223 additional .mk files. Therefore, create a file package/<company>/
2224 <company>.mk with following contents (assuming you have only one
2225 extra directory level below package/<company>/):
2226
2227 include $(sort $(wildcard package/<company>/*/*.mk))
2228
2229 If you are using BR2_EXTERNAL, create a file $(BR2_EXTERNAL)/
2230 external.mk with following contents (again assuming only one extra
2231 level):
2232
2233 include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
2234
2235 For the Config.in files, create a file package/<company>/Config.in
2236 that includes the Config.in files of all your packages. An exhaustive
2237 list has to be provided since wildcards are not supported in the
2238 source command of kconfig. For example:
2239
2240 source "package/<company>/package1/Config.in"
2241 source "package/<company>/package2/Config.in"
2242
2243 Include this new file package/<company>/Config.in from package/
2244 Config.in, preferably in a company-specific menu to make merges with
2245 future Buildroot versions easier.
2246
2247 If you are using BR2_EXTERNAL, create a file $(BR2_EXTERNAL)/
2248 Config.in with similar contents:
2249
2250 source "$BR2_EXTERNAL/package/package1/Config.in"
2251 source "$BR2_EXTERNAL/package/package2/Config.in"
2252
2253 You do not have to add an include for this $(BR2_EXTERNAL)/Config.in
2254 file as it is included automatically.
2255
2256 9.10. Quick guide to storing your project-specific customizations
2257
2258 Earlier in this chapter, the different methods for making
2259 project-specific customizations have been described. This section
2260 will now summarize all this by providing step-by-step instructions to
2261 storing your project-specific customizations. Clearly, the steps that
2262 are not relevant to your project can be skipped.
2263
2264  1. make menuconfig to configure toolchain, packages and kernel.
2265  2. make linux-menuconfig to update the kernel config, similar for
2266     other configuration like busybox, uclibc, …
2267  3. mkdir -p board/<manufacturer>/<boardname>
2268  4. Set the following options to board/<manufacturer>/<boardname>/
2269     <package>.config (as far as they are relevant):
2270
2271       + BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
2272       + BR2_PACKAGE_BUSYBOX_CONFIG
2273       + BR2_UCLIBC_CONFIG
2274       + BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE
2275       + BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE
2276  5. Write the configuration files:
2277
2278       + make linux-update-defconfig
2279       + make busybox-update-config
2280       + make uclibc-update-config
2281       + cp <output>/build/at91bootstrap3-*/.config board/
2282         <manufacturer>/<boardname>/at91bootstrap3.config
2283       + make barebox-update-defconfig
2284  6. Create board/<manufacturer>/<boardname>/rootfs-overlay/ and fill
2285     it with additional files you need on your rootfs, e.g. board/
2286     <manufacturer>/<boardname>/rootfs-overlay/etc/inittab. Set
2287     BR2_ROOTFS_OVERLAY to board/<manufacturer>/<boardname>/
2288     rootfs-overlay.
2289  7. Create a post-build script board/<manufacturer>/<boardname>/
2290     post_build.sh. Set BR2_ROOTFS_POST_BUILD_SCRIPT to board/
2291     <manufacturer>/<boardname>/post_build.sh
2292  8. If additional setuid permissions have to be set or device nodes
2293     have to be created, create board/<manufacturer>/<boardname>/
2294     device_table.txt and add that path to BR2_ROOTFS_DEVICE_TABLE.
2295  9. If additional user accounts have to be created, create board/
2296     <manufacturer>/<boardname>/users_table.txt and add that path to
2297     BR2_ROOTFS_USERS_TABLES.
2298 10. To add custom patches to certain packages, set
2299     BR2_GLOBAL_PATCH_DIR to board/<manufacturer>/<boardname>/patches/
2300     and add your patches for each package in a subdirectory named
2301     after the package. Each patch should be called <packagename>-
2302     <num>-<description>.patch.
2303 11. Specifically for the Linux kernel, there also exists the option
2304     BR2_LINUX_KERNEL_PATCH with as main advantage that it can also
2305     download patches from a URL. If you do not need this,
2306     BR2_GLOBAL_PATCH_DIR is preferred. U-Boot, Barebox, at91bootstrap
2307     and at91bootstrap3 also have separate options, but these do not
2308     provide any advantage over BR2_GLOBAL_PATCH_DIR and will likely
2309     be removed in the future.
2310 12. If you need to add project-specific packages, create package/
2311     <manufacturer>/ and place your packages in that directory. Create
2312     an overall <manufacturer>.mk file that includes the .mk files of
2313     all your packages. Create an overall Config.in file that sources
2314     the Config.in files of all your packages. Include this Config.in
2315     file from Buildroot’s package/Config.in file.
2316 13. make savedefconfig to save the buildroot configuration.
2317 14. cp defconfig configs/<boardname>_defconfig
2318
2319 Chapter 10. Frequently Asked Questions & Troubleshooting
2320
2321 10.1. The boot hangs after Starting network…
2322
2323 If the boot process seems to hang after the following messages
2324 (messages not necessarily exactly similar, depending on the list of
2325 packages selected):
2326
2327 Freeing init memory: 3972K
2328 Initializing random number generator... done.
2329 Starting network...
2330 Starting dropbear sshd: generating rsa key... generating dsa key... OK
2331
2332 then it means that your system is running, but didn’t start a shell
2333 on the serial console. In order to have the system start a shell on
2334 your serial console, you have to go into the Buildroot configuration,
2335 in System configuration, modify Run a getty (login prompt) after boot
2336 and set the appropriate port and baud rate in the getty options
2337 submenu. This will automatically tune the /etc/inittab file of the
2338 generated system so that a shell starts on the correct serial port.
2339
2340 10.2. Why is there no compiler on the target?
2341
2342 It has been decided that support for the native compiler on the
2343 target would be stopped from the Buildroot-2012.11 release because:
2344
2345   * this feature was neither maintained nor tested, and often broken;
2346   * this feature was only available for Buildroot toolchains;
2347   * Buildroot mostly targets small or very small target hardware with
2348     limited resource onboard (CPU, ram, mass-storage), for which
2349     compiling on the target does not make much sense;
2350   * Buildroot aims at easing the cross-compilation, making native
2351     compilation on the target unnecessary.
2352
2353 If you need a compiler on your target anyway, then Buildroot is not
2354 suitable for your purpose. In such case, you need a real distribution
2355 and you should opt for something like:
2356
2357   * openembedded [http://www.openembedded.org]
2358   * yocto [https://www.yoctoproject.org]
2359   * emdebian [http://www.emdebian.org]
2360   * Fedora [https://fedoraproject.org/wiki/Architectures]
2361   * openSUSE ARM [http://en.opensuse.org/Portal:ARM]
2362   * Arch Linux ARM [http://archlinuxarm.org]
2363   * …
2364
2365 10.3. Why are there no development files on the target?
2366
2367 Since there is no compiler available on the target (see Section 10.2,
2368 “Why is there no compiler on the target?”), it does not make sense to
2369 waste space with headers or static libraries.
2370
2371 Therefore, those files are always removed from the target since the
2372 Buildroot-2012.11 release.
2373
2374 10.4. Why is there no documentation on the target?
2375
2376 Because Buildroot mostly targets small or very small target hardware
2377 with limited resource onboard (CPU, ram, mass-storage), it does not
2378 make sense to waste space with the documentation data.
2379
2380 If you need documentation data on your target anyway, then Buildroot
2381 is not suitable for your purpose, and you should look for a real
2382 distribution (see: Section 10.2, “Why is there no compiler on the
2383 target?”).
2384
2385 10.5. Why are some packages not visible in the Buildroot config menu?
2386
2387 If a package exists in the Buildroot tree and does not appear in the
2388 config menu, this most likely means that some of the package’s
2389 dependencies are not met.
2390
2391 To know more about the dependencies of a package, search for the
2392 package symbol in the config menu (see Section 8.1, “make tips”).
2393
2394 Then, you may have to recursively enable several options (which
2395 correspond to the unmet dependencies) to finally be able to select
2396 the package.
2397
2398 If the package is not visible due to some unmet toolchain options,
2399 then you should certainly run a full rebuild (see Section 8.1, “make
2400 tips” for more explanations).
2401
2402 10.6. Why not use the target directory as a chroot directory?
2403
2404 There are plenty of reasons to not use the target directory a chroot
2405 one, among these:
2406
2407   * file ownerships, modes and permissions are not correctly set in
2408     the target directory;
2409   * device nodes are not created in the target directory.
2410
2411 For these reasons, commands run through chroot, using the target
2412 directory as the new root, will most likely fail.
2413
2414 If you want to run the target filesystem inside a chroot, or as an
2415 NFS root, then use the tarball image generated in images/ and extract
2416 it as root.
2417
2418 10.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?
2419
2420 One feature that is often discussed on the Buildroot list is the
2421 general topic of "package management". To summarize, the idea would
2422 be to add some tracking of which Buildroot package installs what
2423 files, with the goals of:
2424
2425   * being able to remove files installed by a package when this
2426     package gets unselected from the menuconfig;
2427   * being able to generate binary packages (ipk or other format) that
2428     can be installed on the target without re-generating a new root
2429     filesystem image.
2430
2431 In general, most people think it is easy to do: just track which
2432 package installed what and remove it when the package is unselected.
2433 However, it is much more complicated than that:
2434
2435   * It is not only about the target/ directory, but also the sysroot
2436     in host/usr/<tuple>/sysroot and the host/ directory itself. All
2437     files installed in those directories by various packages must be
2438     tracked.
2439   * When a package is unselected from the configuration, it is not
2440     sufficient to remove just the files it installed. One must also
2441     remove all its reverse dependencies (i.e. packages relying on it)
2442     and rebuild all those packages. For example, package A depends
2443     optionally on the OpenSSL library. Both are selected, and
2444     Buildroot is built. Package A is built with crypto support using
2445     OpenSSL. Later on, OpenSSL gets unselected from the
2446     configuration, but package A remains (since OpenSSL is an
2447     optional dependency, this is possible.) If only OpenSSL files are
2448     removed, then the files installed by package A are broken: they
2449     use a library that is no longer present on the target. Although
2450     this is technically doable, it adds a lot of complexity to
2451     Buildroot, which goes against the simplicity we try to stick to.
2452   * In addition to the previous problem, there is the case where the
2453     optional dependency is not even known to Buildroot. For example,
2454     package A in version 1.0 never used OpenSSL, but in version 2.0
2455     it automatically uses OpenSSL if available. If the Buildroot .mk
2456     file hasn’t been updated to take this into account, then package
2457     A will not be part of the reverse dependencies of OpenSSL and
2458     will not be removed and rebuilt when OpenSSL is removed. For
2459     sure, the .mk file of package A should be fixed to mention this
2460     optional dependency, but in the mean time, you can have
2461     non-reproducible behaviors.
2462   * The request is to also allow changes in the menuconfig to be
2463     applied on the output directory without having to rebuild
2464     everything from scratch. However, this is very difficult to
2465     achieve in a reliable way: what happens when the suboptions of a
2466     package are changed (we would have to detect this, and rebuild
2467     the package from scratch and potentially all its reverse
2468     dependencies), what happens if toolchain options are changed,
2469     etc. At the moment, what Buildroot does is clear and simple so
2470     its behaviour is very reliable and it is easy to support users.
2471     If configuration changes done in menuconfig are applied after the
2472     next make, then it has to work correctly and properly in all
2473     situations, and not have some bizarre corner cases. The risk is
2474     to get bug reports like "I have enabled package A, B and C, then
2475     ran make, then disabled package C and enabled package D and ran
2476     make, then re-enabled package C and enabled package E and then
2477     there is a build failure". Or worse "I did some configuration,
2478     then built, then did some changes, built, some more changes,
2479     built, some more changes, built, and now it fails, but I don’t
2480     remember all the changes I did and in which order". This will be
2481     impossible to support.
2482
2483 For all these reasons, the conclusion is that adding tracking of
2484 installed files to remove them when the package is unselected, or to
2485 generate a repository of binary packages, is something that is very
2486 hard to achieve reliably and will add a lot of complexity.
2487
2488 On this matter, the Buildroot developers make this position
2489 statement:
2490
2491   * Buildroot strives to make it easy to generate a root filesystem
2492     (hence the name, by the way.) That is what we want to make
2493     Buildroot good at: building root filesystems.
2494   * Buildroot is not meant to be a distribution (or rather, a
2495     distribution generator.) It is the opinion of most Buildroot
2496     developers that this is not a goal we should pursue. We believe
2497     that there are other tools better suited to generate a distro
2498     than Buildroot is. For example, Open Embedded [http://
2499     openembedded.org/], or openWRT [https://openwrt.org/], are such
2500     tools.
2501   * We prefer to push Buildroot in a direction that makes it easy (or
2502     even easier) to generate complete root filesystems. This is what
2503     makes Buildroot stands out in the crowd (among other things, of
2504     course!)
2505   * We believe that for most embedded Linux systems, binary packages
2506     are not necessary, and potentially harmful. When binary packages
2507     are used, it means that the system can be partially upgraded,
2508     which creates an enormous number of possible combinations of
2509     package versions that should be tested before doing the upgrade
2510     on the embedded device. On the other hand, by doing complete
2511     system upgrades by upgrading the entire root filesystem image at
2512     once, the image deployed to the embedded system is guaranteed to
2513     really be the one that has been tested and validated.
2514
2515 10.8. How to speed-up the build process?
2516
2517 Since Buildroot often involves doing full rebuilds of the entire
2518 system that can be quite long, we provide below a number of tips to
2519 help reduce the build time:
2520
2521   * Use a pre-built external toolchain instead of the default
2522     Buildroot internal toolchain. By using a pre-built Linaro
2523     toolchain (on ARM) or a Sourcery CodeBench toolchain (for ARM,
2524     x86, x86-64, MIPS, etc.), you will save the build time of the
2525     toolchain at each complete rebuild, approximately 15 to 20
2526     minutes. Note that temporarily using an external toolchain does
2527     not prevent you to switch back to an internal toolchain (that may
2528     provide a higher level of customization) once the rest of your
2529     system is working;
2530   * Use the ccache compiler cache (see: Section 8.11.3, “Using ccache
2531     in Buildroot”);
2532   * Learn about rebuilding only the few packages you actually care
2533     about (see Section 8.3, “Understanding how to rebuild packages”),
2534     but beware that sometimes full rebuilds are anyway necessary (see
2535     Section 8.2, “Understanding when a full rebuild is necessary”);
2536   * Make sure you are not using a virtual machine for the Linux
2537     system used to run Buildroot. Most of the virtual machine
2538     technologies are known to cause a significant performance impact
2539     on I/O, which is really important for building source code;
2540   * Make sure that you’re using only local files: do not attempt to
2541     do a build over NFS, which significantly slows down the build.
2542     Having the Buildroot download folder available locally also helps
2543     a bit.
2544   * Buy new hardware. SSDs and lots of RAM are key to speeding up the
2545     builds.
2546
2547 Chapter 11. Known issues
2548
2549   * It is not possible to pass extra linker options via
2550     BR2_TARGET_LDFLAGS if such options contain a $ sign. For example,
2551     the following is known to break: BR2_TARGET_LDFLAGS="-Wl,-rpath=
2552     '$ORIGIN/../lib'"
2553   * The ltp-testsuite package does not build with the default uClibc
2554     configuration used by the Buildroot toolchain backend. The LTP
2555     testsuite uses several functions that are considered obsolete,
2556     such as sigset() and others. uClibc configuration options such as
2557     DO_XSI_MATH, UCLIBC_HAS_OBSOLETE_BSD_SIGNAL and
2558     UCLIBC_SV4_DEPRECATED are needed if one wants to build the
2559     ltp-testsuite package with uClibc. You need to either use a glibc
2560     or eglibc based toolchain, or enable the appropriate options in
2561     the uClibc configuration.
2562   * The xfsprogs package does not build with the default uClibc
2563     configuration used by the Buildroot toolchain backend. You need
2564     to either use a glibc or eglibc based toolchain, or enable the
2565     appropriate options in the uClibc configuration.
2566   * The mrouted package does not build with the default uClibc
2567     configuration used by the Buildroot toolchain backend. You need
2568     to either use a glibc or eglibc based toolchain, or enable the
2569     appropriate options in the uClibc configuration.
2570   * The libffi package is not supported on the SuperH 2 and ARC
2571     architectures.
2572   * The prboom package triggers a compiler failure with the SuperH 4
2573     compiler from Sourcery CodeBench, version 2012.09.
2574
2575 Chapter 12. Legal notice and licensing
2576
2577 12.1. Complying with open source licenses
2578
2579 All of the end products of Buildroot (toolchain, root filesystem,
2580 kernel, bootloaders) contain open source software, released under
2581 various licenses.
2582
2583 Using open source software gives you the freedom to build rich
2584 embedded systems, choosing from a wide range of packages, but also
2585 imposes some obligations that you must know and honour. Some licenses
2586 require you to publish the license text in the documentation of your
2587 product. Others require you to redistribute the source code of the
2588 software to those that receive your product.
2589
2590 The exact requirements of each license are documented in each
2591 package, and it is your responsibility (or that of your legal office)
2592 to comply with those requirements. To make this easier for you,
2593 Buildroot can collect for you some material you will probably need.
2594 To produce this material, after you have configured Buildroot with
2595 make menuconfig, make xconfig or make gconfig, run:
2596
2597 make legal-info
2598
2599 Buildroot will collect legally-relevant material in your output
2600 directory, under the legal-info/ subdirectory. There you will find:
2601
2602   * A README file, that summarizes the produced material and contains
2603     warnings about material that Buildroot could not produce.
2604   * buildroot.config: this is the Buildroot configuration file that
2605     is usually produced with make menuconfig, and which is necessary
2606     to reproduce the build.
2607   * The source code for all packages; this is saved in the sources/
2608     and host-sources/ subdirectories for target and host packages
2609     respectively. The source code for packages that set <PKG>
2610     _REDISTRIBUTE = NO will not be saved. Patches applied to some
2611     packages by Buildroot are distributed with the Buildroot sources
2612     and are not duplicated in the sources/ and host-sources/
2613     subdirectories.
2614   * A manifest file (one for host and one for target packages)
2615     listing the configured packages, their version, license and
2616     related information. Some of this information might not be
2617     defined in Buildroot; such items are marked as "unknown".
2618   * The license texts of all packages, in the licenses/ and
2619     host-licenses/ subdirectories for target and host packages
2620     respectively. If the license file(s) are not defined in
2621     Buildroot, the file is not produced and a warning in the README
2622     indicates this.
2623
2624 Please note that the aim of the legal-info feature of Buildroot is to
2625 produce all the material that is somehow relevant for legal
2626 compliance with the package licenses. Buildroot does not try to
2627 produce the exact material that you must somehow make public.
2628 Certainly, more material is produced than is needed for a strict
2629 legal compliance. For example, it produces the source code for
2630 packages released under BSD-like licenses, that you are not required
2631 to redistribute in source form.
2632
2633 Moreover, due to technical limitations, Buildroot does not produce
2634 some material that you will or may need, such as the toolchain source
2635 code and the Buildroot source code itself (including patches to
2636 packages for which source distribution is required). When you run
2637 make legal-info, Buildroot produces warnings in the README file to
2638 inform you of relevant material that could not be saved.
2639
2640 12.2. License abbreviations
2641
2642 Here is a list of the licenses that are most widely used by packages
2643 in Buildroot, with the name used in the manifest files:
2644
2645   * GPLv2: GNU General Public License, version 2 [http://www.gnu.org/
2646     licenses/old-licenses/gpl-2.0.html];
2647   * GPLv2+: GNU General Public License, version 2 [http://www.gnu.org
2648     /licenses/old-licenses/gpl-2.0.html] or (at your option) any
2649     later version;
2650   * GPLv3: GNU General Public License, version 3 [http://www.gnu.org/
2651     licenses/gpl.html];
2652   * GPLv3+: GNU General Public License, version 3 [http://www.gnu.org
2653     /licenses/gpl.html] or (at your option) any later version;
2654   * GPL: GNU General Public License [http://www.gnu.org/licenses/
2655     gpl.html] (any version);
2656   * LGPLv2: GNU Library General Public License, version 2 [http://
2657     www.gnu.org/licenses/old-licenses/lgpl-2.0.html];
2658   * LGPLv2+: GNU Library General Public License, version 2 [http://
2659     www.gnu.org/licenses/old-licenses/lgpl-2.0.html] or (at your
2660     option) any later version;
2661   * LGPLv2.1: GNU Lesser General Public License, version 2.1 [http://
2662     www.gnu.org/licenses/old-licenses/lgpl-2.1.html];
2663   * LGPLv2.1+: GNU Lesser General Public License, version 2.1 [http:/
2664     /www.gnu.org/licenses/old-licenses/lgpl-2.1.html] or (at your
2665     option) any later version;
2666   * LGPLv3: GNU Lesser General Public License, version 3 [http://
2667     www.gnu.org/licenses/lgpl.html];
2668   * LGPLv3+: GNU Lesser General Public License, version 3 [http://
2669     www.gnu.org/licenses/lgpl.html] or (at your option) any later
2670     version;
2671   * LGPL: GNU Lesser General Public License [http://www.gnu.org/
2672     licenses/lgpl.html] (any version);
2673   * BSD-4c: Original BSD 4-clause license [http://directory.fsf.org/
2674     wiki/License:BSD_4Clause];
2675   * BSD-3c: BSD 3-clause license [http://opensource.org/licenses/
2676     BSD-3-Clause];
2677   * BSD-2c: BSD 2-clause license [http://opensource.org/licenses/
2678     BSD-2-Clause];
2679   * MIT: MIT-style license [http://opensource.org/licenses/
2680     mit-license.html];
2681   * Apache-2.0: Apache License, version 2.0 [http://apache.org/
2682     licenses/LICENSE-2.0.html];
2683
2684 12.3. Complying with the Buildroot license
2685
2686 Buildroot itself is an open source software, released under the GNU
2687 General Public License, version 2 [http://www.gnu.org/licenses/
2688 old-licenses/gpl-2.0.html] or (at your option) any later version.
2689 However, being a build system, it is not normally part of the end
2690 product: if you develop the root filesystem, kernel, bootloader or
2691 toolchain for a device, the code of Buildroot is only present on the
2692 development machine, not in the device storage.
2693
2694 Nevertheless, the general view of the Buildroot developers is that
2695 you should release the Buildroot source code along with the source
2696 code of other packages when releasing a product that contains
2697 GPL-licensed software. This is because the GNU GPL [http://
2698 www.gnu.org/licenses/old-licenses/gpl-2.0.html] defines the "complete
2699 source code" for an executable work as "all the source code for all
2700 modules it contains, plus any associated interface definition files,
2701 plus the scripts used to control compilation and installation of the
2702 executable". Buildroot is part of the scripts used to control
2703 compilation and installation of the executable, and as such it is
2704 considered part of the material that must be redistributed.
2705
2706 Keep in mind that this is only the Buildroot developers' opinion, and
2707 you should consult your legal department or lawyer in case of any
2708 doubt.
2709
2710 Chapter 13. Beyond Buildroot
2711
2712 13.1. Boot the generated images
2713
2714 13.1.1. NFS boot
2715
2716 To achieve NFS-boot, enable tar root filesystem in the Filesystem
2717 images menu.
2718
2719 After a complete build, just run the following commands to setup the
2720 NFS-root directory:
2721
2722 sudo tar -xavf /path/to/output_dir/rootfs.tar -C /path/to/nfs_root_dir
2723
2724 Remember to add this path to /etc/exports.
2725
2726 Then, you can execute a NFS-boot from your target.
2727
2728 13.2. Chroot
2729
2730 If you want to chroot in a generated image, then there are few thing
2731 you should be aware of:
2732
2733   * you should setup the new root from the tar root filesystem image;
2734   * either the selected target architecture is compatible with your
2735     host machine, or you should use some qemu-* binary and correctly
2736     set it within the binfmt properties to be able to run the
2737     binaries built for the target on your host machine;
2738   * Buildroot does not currently provide host-qemu and binfmt
2739     correctly built and set for that kind of use.
2740
2741 Part III. Developer guide
2742
2743 Table of Contents
2744
2745 14. How Buildroot works
2746 15. Coding style
2747
2748     15.1. Config.in file
2749     15.2. The .mk file
2750     15.3. The documentation
2751
2752 16. Adding support for a particular board
2753 17. Adding new packages to Buildroot
2754
2755     17.1. Package directory
2756     17.2. Config files
2757     17.3. The .mk file
2758     17.4. The .hash file
2759     17.5. Infrastructure for packages with specific build systems
2760     17.6. Infrastructure for autotools-based packages
2761     17.7. Infrastructure for CMake-based packages
2762     17.8. Infrastructure for Python packages
2763     17.9. Infrastructure for LuaRocks-based packages
2764     17.10. Infrastructure for Perl/CPAN packages
2765     17.11. Infrastructure for virtual packages
2766     17.12. Infrastructure for packages using kconfig for
2767         configuration files
2768     17.13. Infrastructure for rebar-based packages
2769     17.14. Infrastructure for asciidoc documents
2770     17.15. Hooks available in the various build steps
2771     17.16. Gettext integration and interaction with packages
2772     17.17. Tips and tricks
2773     17.18. Conclusion
2774
2775 18. Patching a package
2776
2777     18.1. Providing patches
2778     18.2. How patches are applied
2779     18.3. Format and licensing of the package patches
2780     18.4. Integrating patches found on the Web
2781
2782 19. Download infrastructure
2783 20. Debugging Buildroot
2784 21. Contributing to Buildroot
2785
2786     21.1. Reproducing, analyzing and fixing bugs
2787     21.2. Analyzing and fixing autobuild failures
2788     21.3. Reviewing and testing patches
2789     21.4. Work on items from the TODO list
2790     21.5. Submitting patches
2791     21.6. Reporting issues/bugs or getting help
2792
2793 Chapter 14. How Buildroot works
2794
2795 As mentioned above, Buildroot is basically a set of Makefiles that
2796 download, configure, and compile software with the correct options.
2797 It also includes patches for various software packages - mainly the
2798 ones involved in the cross-compilation toolchain (gcc, binutils and
2799 uClibc).
2800
2801 There is basically one Makefile per software package, and they are
2802 named with the .mk extension. Makefiles are split into many different
2803 parts.
2804
2805   * The toolchain/ directory contains the Makefiles and associated
2806     files for all software related to the cross-compilation
2807     toolchain: binutils, gcc, gdb, kernel-headers and uClibc.
2808   * The arch/ directory contains the definitions for all the
2809     processor architectures that are supported by Buildroot.
2810   * The package/ directory contains the Makefiles and associated
2811     files for all user-space tools and libraries that Buildroot can
2812     compile and add to the target root filesystem. There is one
2813     sub-directory per package.
2814   * The linux/ directory contains the Makefiles and associated files
2815     for the Linux kernel.
2816   * The boot/ directory contains the Makefiles and associated files
2817     for the bootloaders supported by Buildroot.
2818   * The system/ directory contains support for system integration,
2819     e.g. the target filesystem skeleton and the selection of an init
2820     system.
2821   * The fs/ directory contains the Makefiles and associated files for
2822     software related to the generation of the target root filesystem
2823     image.
2824
2825 Each directory contains at least 2 files:
2826
2827   * something.mk is the Makefile that downloads, configures, compiles
2828     and installs the package something.
2829   * Config.in is a part of the configuration tool description file.
2830     It describes the options related to the package.
2831
2832 The main Makefile performs the following steps (once the
2833 configuration is done):
2834
2835   * Create all the output directories: staging, target, build, etc.
2836     in the output directory (output/ by default, another value can be
2837     specified using O=)
2838   * Generate the toolchain target. When an internal toolchain is
2839     used, this means generating the cross-compilation toolchain. When
2840     an external toolchain is used, this means checking the features
2841     of the external toolchain and importing it into the Buildroot
2842     environment.
2843   * Generate all the targets listed in the TARGETS variable. This
2844     variable is filled by all the individual components' Makefiles.
2845     Generating these targets will trigger the compilation of the
2846     userspace packages (libraries, programs), the kernel, the
2847     bootloader and the generation of the root filesystem images,
2848     depending on the configuration.
2849
2850 Chapter 15. Coding style
2851
2852 Overall, these coding style rules are here to help you to add new
2853 files in Buildroot or refactor existing ones.
2854
2855 If you slightly modify some existing file, the important thing is to
2856 keep the consistency of the whole file, so you can:
2857
2858   * either follow the potentially deprecated coding style used in
2859     this file,
2860   * or entirely rework it in order to make it comply with these
2861     rules.
2862
2863 15.1. Config.in file
2864
2865 Config.in files contain entries for almost anything configurable in
2866 Buildroot.
2867
2868 An entry has the following pattern:
2869
2870 config BR2_PACKAGE_LIBFOO
2871         bool "libfoo"
2872         depends on BR2_PACKAGE_LIBBAZ
2873         select BR2_PACKAGE_LIBBAR
2874         help
2875           This is a comment that explains what libfoo is.
2876
2877           http://foosoftware.org/libfoo/
2878
2879   * The bool, depends on, select and help lines are indented with one
2880     tab.
2881   * The help text itself should be indented with one tab and two
2882     spaces.
2883
2884 The Config.in files are the input for the configuration tool used in
2885 Buildroot, which is the regular Kconfig. For further details about
2886 the Kconfig language, refer to http://kernel.org/doc/Documentation/
2887 kbuild/kconfig-language.txt.
2888
2889 15.2. The .mk file
2890
2891   * Header: The file starts with a header. It contains the module
2892     name, preferably in lowercase, enclosed between separators made
2893     of 80 hashes. A blank line is mandatory after the header:
2894
2895     ################################################################################
2896     #
2897     # libfoo
2898     #
2899     ################################################################################
2900
2901   * Assignment: use = preceded and followed by one space:
2902
2903     LIBFOO_VERSION = 1.0
2904     LIBFOO_CONF_OPTS += --without-python-support
2905
2906     Do not align the = signs.
2907
2908   * Indentation: use tab only:
2909
2910     define LIBFOO_REMOVE_DOC
2911             $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/doc \
2912                     $(TARGET_DIR)/usr/share/man/man3/libfoo*
2913     endef
2914
2915     Note that commands inside a define block should always start with
2916     a tab, so make recognizes them as commands.
2917
2918   * Optional dependency:
2919
2920       + Prefer multi-line syntax.
2921
2922         YES:
2923
2924         ifeq ($(BR2_PACKAGE_PYTHON),y)
2925         LIBFOO_CONF_OPTS += --with-python-support
2926         LIBFOO_DEPENDENCIES += python
2927         else
2928         LIBFOO_CONF_OPTS += --without-python-support
2929         endif
2930
2931         NO:
2932
2933         LIBFOO_CONF_OPTS += --with$(if $(BR2_PACKAGE_PYTHON),,out)-python-support
2934         LIBFOO_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,)
2935
2936       + Keep configure options and dependencies close together.
2937   * Optional hooks: keep hook definition and assignment together in
2938     one if block.
2939
2940     YES:
2941
2942     ifneq ($(BR2_LIBFOO_INSTALL_DATA),y)
2943     define LIBFOO_REMOVE_DATA
2944             $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data
2945     endef
2946     LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA
2947     endif
2948
2949     NO:
2950
2951     define LIBFOO_REMOVE_DATA
2952             $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data
2953     endef
2954
2955     ifneq ($(BR2_LIBFOO_INSTALL_DATA),y)
2956     LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA
2957     endif
2958
2959 15.3. The documentation
2960
2961 The documentation uses the asciidoc [http://www.methods.co.nz/
2962 asciidoc/] format.
2963
2964 For further details about the asciidoc [http://www.methods.co.nz/
2965 asciidoc/] syntax, refer to http://www.methods.co.nz/asciidoc/
2966 userguide.html.
2967
2968 Chapter 16. Adding support for a particular board
2969
2970 Buildroot contains basic configurations for several publicly
2971 available hardware boards, so that users of such a board can easily
2972 build a system that is known to work. You are welcome to add support
2973 for other boards to Buildroot too.
2974
2975 To do so, you need to create a normal Buildroot configuration that
2976 builds a basic system for the hardware: toolchain, kernel,
2977 bootloader, filesystem and a simple BusyBox-only userspace. No
2978 specific package should be selected: the configuration should be as
2979 minimal as possible, and should only build a working basic BusyBox
2980 system for the target platform. You can of course use more
2981 complicated configurations for your internal projects, but the
2982 Buildroot project will only integrate basic board configurations.
2983 This is because package selections are highly application-specific.
2984
2985 Once you have a known working configuration, run make savedefconfig.
2986 This will generate a minimal defconfig file at the root of the
2987 Buildroot source tree. Move this file into the configs/ directory,
2988 and rename it <boardname>_defconfig.
2989
2990 It is recommended to use as much as possible upstream versions of the
2991 Linux kernel and bootloaders, and to use as much as possible default
2992 kernel and bootloader configurations. If they are incorrect for your
2993 board, or no default exists, we encourage you to send fixes to the
2994 corresponding upstream projects.
2995
2996 However, in the mean time, you may want to store kernel or bootloader
2997 configuration or patches specific to your target platform. To do so,
2998 create a directory board/<manufacturer> and a subdirectory board/
2999 <manufacturer>/<boardname>. You can then store your patches and
3000 configurations in these directories, and reference them from the main
3001 Buildroot configuration. Refer to Chapter 9, Project-specific
3002 customization for more details.
3003
3004 Chapter 17. Adding new packages to Buildroot
3005
3006 This section covers how new packages (userspace libraries or
3007 applications) can be integrated into Buildroot. It also shows how
3008 existing packages are integrated, which is needed for fixing issues
3009 or tuning their configuration.
3010
3011 17.1. Package directory
3012
3013 First of all, create a directory under the package directory for your
3014 software, for example libfoo.
3015
3016 Some packages have been grouped by topic in a sub-directory: x11r7,
3017 efl and matchbox. If your package fits in one of these categories,
3018 then create your package directory in these. New subdirectories are
3019 discouraged, however.
3020
3021 17.2. Config files
3022
3023 For the package to be displayed in the configuration tool, you need
3024 to create a Config file in your package directory. There are two
3025 types: Config.in and Config.in.host.
3026
3027 17.2.1. Config.in file
3028
3029 For packages used on the target, create a file named Config.in. This
3030 file will contain the option descriptions related to our libfoo
3031 software that will be used and displayed in the configuration tool.
3032 It should basically contain:
3033
3034 config BR2_PACKAGE_LIBFOO
3035         bool "libfoo"
3036         help
3037           This is a comment that explains what libfoo is.
3038
3039           http://foosoftware.org/libfoo/
3040
3041 The bool line, help line and other metadata information about the
3042 configuration option must be indented with one tab. The help text
3043 itself should be indented with one tab and two spaces, and it must
3044 mention the upstream URL of the project.
3045
3046 You can add other sub-options into a if BR2_PACKAGE_LIBFOO…endif
3047 statement to configure particular things in your software. You can
3048 look at examples in other packages. The syntax of the Config.in file
3049 is the same as the one for the kernel Kconfig file. The documentation
3050 for this syntax is available at http://kernel.org/doc/Documentation/
3051 kbuild/kconfig-language.txt
3052
3053 Finally you have to add your new libfoo/Config.in to package/
3054 Config.in (or in a category subdirectory if you decided to put your
3055 package in one of the existing categories). The files included there
3056 are sorted alphabetically per category and are NOT supposed to
3057 contain anything but the bare name of the package.
3058
3059 source "package/libfoo/Config.in"
3060
3061 17.2.2. Config.in.host file
3062
3063 Some packages also need to be built for the host system. There are
3064 two options here:
3065
3066   * The host package is only required to satisfy build-time
3067     dependencies of one or more target packages. In this case, add
3068     host-foo to the target package’s BAR_DEPENDENCIES variable. No
3069     Config.in.host file should be created.
3070   * The host package should be explicitly selectable by the user from
3071     the configuration menu. In this case, create a Config.in.host
3072     file for that host package:
3073
3074     config BR2_PACKAGE_HOST_FOO
3075             bool "host foo"
3076             help
3077               This is a comment that explains what foo for the host is.
3078
3079               http://foosoftware.org/foo/
3080
3081     The same coding style and options as for the Config.in file are
3082     valid.
3083
3084     Finally you have to add your new libfoo/Config.in.host to package
3085     /Config.in.host. The files included there are sorted
3086     alphabetically and are NOT supposed to contain anything but the 
3087     bare name of the package.
3088
3089     source "package/foo/Config.in.host"
3090
3091     The host package will then be available from the Host utilities
3092     menu.
3093
3094 17.2.3. Choosing depends on or select
3095
3096 The Config.in file of your package must also ensure that dependencies
3097 are enabled. Typically, Buildroot uses the following rules:
3098
3099   * Use a select type of dependency for dependencies on libraries.
3100     These dependencies are generally not obvious and it therefore
3101     make sense to have the kconfig system ensure that the
3102     dependencies are selected. For example, the libgtk2 package uses
3103     select BR2_PACKAGE_LIBGLIB2 to make sure this library is also
3104     enabled. The select keyword expresses the dependency with a
3105     backward semantic.
3106   * Use a depends on type of dependency when the user really needs to
3107     be aware of the dependency. Typically, Buildroot uses this type
3108     of dependency for dependencies on target architecture, MMU
3109     support and toolchain options (see Section 17.2.4, “Dependencies
3110     on target and toolchain options”), or for dependencies on "big"
3111     things, such as the X.org system. The depends on keyword
3112     expresses the dependency with a forward semantic.
3113
3114 Note. The current problem with the kconfig language is that these two
3115 dependency semantics are not internally linked. Therefore, it may be
3116 possible to select a package, whom one of its dependencies/
3117 requirement is not met.
3118
3119 An example illustrates both the usage of select and depends on.
3120
3121 config BR2_PACKAGE_RRDTOOL
3122         bool "rrdtool"
3123         depends on BR2_USE_WCHAR
3124         select BR2_PACKAGE_FREETYPE
3125         select BR2_PACKAGE_LIBART
3126         select BR2_PACKAGE_LIBPNG
3127         select BR2_PACKAGE_ZLIB
3128         help
3129           RRDtool is the OpenSource industry standard, high performance
3130           data logging and graphing system for time series data.
3131
3132           http://oss.oetiker.ch/rrdtool/
3133
3134 comment "rrdtool needs a toolchain w/ wchar"
3135         depends on !BR2_USE_WCHAR
3136
3137 Note that these two dependency types are only transitive with the
3138 dependencies of the same kind.
3139
3140 This means, in the following example:
3141
3142 config BR2_PACKAGE_A
3143         bool "Package A"
3144
3145 config BR2_PACKAGE_B
3146         bool "Package B"
3147         depends on BR2_PACKAGE_A
3148
3149 config BR2_PACKAGE_C
3150         bool "Package C"
3151         depends on BR2_PACKAGE_B
3152
3153 config BR2_PACKAGE_D
3154         bool "Package D"
3155         select BR2_PACKAGE_B
3156
3157 config BR2_PACKAGE_E
3158         bool "Package E"
3159         select BR2_PACKAGE_D
3160
3161   * Selecting Package C will be visible if Package B has been
3162     selected, which in turn is only visible if Package A has been
3163     selected.
3164   * Selecting Package E will select Package D, which will select
3165     Package B, it will not check for the dependencies of Package B,
3166     so it will not select Package A.
3167   * Since Package B is selected but Package A is not, this violates
3168     the dependency of Package B on Package A. Therefore, in such a
3169     situation, the transitive dependency has to be added explicitly:
3170
3171 config BR2_PACKAGE_D
3172         bool "Package D"
3173         select BR2_PACKAGE_B
3174         depends on BR2_PACKAGE_A
3175
3176 config BR2_PACKAGE_E
3177         bool "Package E"
3178         select BR2_PACKAGE_D
3179         depends on BR2_PACKAGE_A
3180
3181 Overall, for package library dependencies, select should be
3182 preferred.
3183
3184 Note that such dependencies will ensure that the dependency option is
3185 also enabled, but not necessarily built before your package. To do
3186 so, the dependency also needs to be expressed in the .mk file of the
3187 package.
3188
3189 Further formatting details: see the coding style Section 15.1,
3190 “Config.in file”.
3191
3192 17.2.4. Dependencies on target and toolchain options
3193
3194 Many packages depend on certain options of the toolchain: the choice
3195 of C library, C++ support, thread support, RPC support, wchar
3196 support, or dynamic library support. Some packages can only be built
3197 on certain target architectures, or if an MMU is available in the
3198 processor.
3199
3200 These dependencies have to be expressed with the appropriate depends
3201 on statements in the Config.in file. Additionally, for dependencies
3202 on toolchain options, a comment should be displayed when the option
3203 is not enabled, so that the user knows why the package is not
3204 available. Dependencies on target architecture or MMU support should
3205 not be made visible in a comment: since it is unlikely that the user
3206 can freely choose another target, it makes little sense to show these
3207 dependencies explicitly.
3208
3209 The comment should only be visible if the config option itself would
3210 be visible when the toolchain option dependencies are met. This means
3211 that all other dependencies of the package (including dependencies on
3212 target architecture and MMU support) have to be repeated on the
3213 comment definition. To keep it clear, the depends on statement for
3214 these non-toolchain option should be kept separate from the depends
3215 on statement for the toolchain options. If there is a dependency on a
3216 config option in that same file (typically the main package) it is
3217 preferable to have a global if … endif construct rather than
3218 repeating the depends on statement on the comment and other config
3219 options.
3220
3221 The general format of a dependency comment for package foo is:
3222
3223 foo needs a toolchain w/ featA, featB, featC
3224
3225 for example:
3226
3227 mpd needs a toolchain w/ C++, threads, wchar
3228
3229 or
3230
3231 crda needs a toolchain w/ threads
3232
3233 Note that this text is kept brief on purpose, so that it will fit on
3234 a 80-character terminal.
3235
3236 The rest of this section enumerates the different target and
3237 toolchain options, the corresponding config symbols to depend on, and
3238 the text to use in the comment.
3239
3240   * Target architecture
3241
3242       + Dependency symbol: BR2_powerpc, BR2_mips, … (see arch/
3243         Config.in)
3244       + Comment string: no comment to be added
3245   * MMU support
3246
3247       + Dependency symbol: BR2_USE_MMU
3248       + Comment string: no comment to be added
3249   * Atomic instructions (whereby the architecture has instructions to
3250     perform some operations atomically, like LOCKCMPXCHG on x86)
3251
3252       + Dependency symbol: BR2_ARCH_HAS_ATOMICS
3253       + Comment string: no comment to be added
3254   * Kernel headers
3255
3256       + Dependency symbol: BR2_TOOLCHAIN_HEADERS_AT_LEAST_X_Y,
3257         (replace X_Y with the proper version, see toolchain/
3258         toolchain-common.in)
3259       + Comment string: headers >= X.Y and/or headers <= X.Y (replace
3260         X.Y with the proper version)
3261   * C library
3262
3263       + Dependency symbol: BR2_TOOLCHAIN_USES_GLIBC,
3264         BR2_TOOLCHAIN_USES_MUSL, BR2_TOOLCHAIN_USES_UCLIBC
3265       + Comment string: for the C library, a slightly different
3266         comment text is used: foo needs an (e)glibc toolchain, or foo
3267         needs an (e)glibc toolchain w/ C++
3268   * C++ support
3269
3270       + Dependency symbol: BR2_INSTALL_LIBSTDCPP
3271       + Comment string: C++
3272   * thread support
3273
3274       + Dependency symbol: BR2_TOOLCHAIN_HAS_THREADS
3275       + Comment string: threads (unless
3276         BR2_TOOLCHAIN_HAS_THREADS_NPTL is also needed, in which case,
3277         specifying only NPTL is sufficient)
3278   * NPTL thread support
3279
3280       + Dependency symbol: BR2_TOOLCHAIN_HAS_THREADS_NPTL
3281       + Comment string: NPTL
3282   * RPC support
3283
3284       + Dependency symbol: BR2_TOOLCHAIN_HAS_NATIVE_RPC
3285       + Comment string: RPC
3286   * wchar support
3287
3288       + Dependency symbol: BR2_USE_WCHAR
3289       + Comment string: wchar
3290   * dynamic library
3291
3292       + Dependency symbol: !BR2_STATIC_LIBS
3293       + Comment string: dynamic library
3294
3295 17.2.5. Dependencies on a Linux kernel built by buildroot
3296
3297 Some packages need a Linux kernel to be built by buildroot. These are
3298 typically kernel modules or firmware. A comment should be added in
3299 the Config.in file to express this dependency, similar to
3300 dependencies on toolchain options. The general format is:
3301
3302 foo needs a Linux kernel to be built
3303
3304 If there is a dependency on both toolchain options and the Linux
3305 kernel, use this format:
3306
3307 foo needs a toolchain w/ featA, featB, featC and a Linux kernel to be built
3308
3309 17.2.6. Dependencies on udev /dev management
3310
3311 If a package needs udev /dev management, it should depend on symbol
3312 BR2_PACKAGE_HAS_UDEV, and the following comment should be added:
3313
3314 foo needs udev /dev management
3315
3316 If there is a dependency on both toolchain options and udev /dev
3317 management, use this format:
3318
3319 foo needs udev /dev management and a toolchain w/ featA, featB, featC
3320
3321 17.2.7. Dependencies on features provided by virtual packages
3322
3323 Some features can be provided by more than one package, such as the
3324 openGL libraries.
3325
3326 See Section 17.11, “Infrastructure for virtual packages” for more on
3327 the virtual packages.
3328
3329 See Chapter 25, List of virtual packages for the symbols to depend on
3330 if your package depends on a feature provided by a virtual package.
3331
3332 17.3. The .mk file
3333
3334 Finally, here’s the hardest part. Create a file named libfoo.mk. It
3335 describes how the package should be downloaded, configured, built,
3336 installed, etc.
3337
3338 Depending on the package type, the .mk file must be written in a
3339 different way, using different infrastructures:
3340
3341   * Makefiles for generic packages (not using autotools or CMake):
3342     These are based on an infrastructure similar to the one used for
3343     autotools-based packages, but require a little more work from the
3344     developer. They specify what should be done for the
3345     configuration, compilation and installation of the package. This
3346     infrastructure must be used for all packages that do not use the
3347     autotools as their build system. In the future, other specialized
3348     infrastructures might be written for other build systems. We
3349     cover them through in a tutorial Section 17.5.1, “generic-package
3350     tutorial” and a reference Section 17.5.2, “generic-package
3351     reference”.
3352   * Makefiles for autotools-based software (autoconf, automake,
3353     etc.): We provide a dedicated infrastructure for such packages,
3354     since autotools is a very common build system. This
3355     infrastructure must be used for new packages that rely on the
3356     autotools as their build system. We cover them through a tutorial
3357     Section 17.6.1, “autotools-package tutorial” and reference
3358     Section 17.6.2, “autotools-package reference”.
3359   * Makefiles for cmake-based software: We provide a dedicated
3360     infrastructure for such packages, as CMake is a more and more
3361     commonly used build system and has a standardized behaviour. This
3362     infrastructure must be used for new packages that rely on CMake.
3363     We cover them through a tutorial Section 17.7.1, “cmake-package
3364     tutorial” and reference Section 17.7.2, “cmake-package reference”
3365     .
3366   * Makefiles for Python modules: We have a dedicated infrastructure
3367     for Python modules that use either the distutils or the
3368     setuptools mechanism. We cover them through a tutorial
3369     Section 17.8.1, “python-package tutorial” and a reference
3370     Section 17.8.2, “python-package reference”.
3371   * Makefiles for Lua modules: We have a dedicated infrastructure for
3372     Lua modules available through the LuaRocks web site. We cover
3373     them through a tutorial Section 17.9.1, “luarocks-package
3374     tutorial” and a reference Section 17.9.2, “luarocks-package
3375     reference”.
3376
3377 Further formatting details: see the writing rules Section 15.2, “The
3378 .mk file”.
3379
3380 17.4. The .hash file
3381
3382 Optionally, you can add a third file, named libfoo.hash, that
3383 contains the hashes of the downloaded files for the libfoo package.
3384
3385 The hashes stored in that file are used to validate the integrity of
3386 the downloaded files.
3387
3388 The format of this file is one line for each file for which to check
3389 the hash, each line being space-separated, with these three fields:
3390
3391   * the type of hash, one of:
3392
3393       + md5, sha1, sha224, sha256, sha384, sha512, none
3394   * the hash of the file:
3395
3396       + for none, one or more non-space chars, usually just the
3397         string xxx
3398       + for md5, 32 hexadecimal characters
3399       + for sha1, 40 hexadecimal characters
3400       + for sha224, 56 hexadecimal characters
3401       + for sha256, 64 hexadecimal characters
3402       + for sha384, 96 hexadecimal characters
3403       + for sha512, 128 hexadecimal characters
3404   * the name of the file, without any directory component
3405
3406 Lines starting with a # sign are considered comments, and ignored.
3407 Empty lines are ignored.
3408
3409 There can be more than one hash for a single file, each on its own
3410 line. In this case, all hashes must match.
3411
3412 Note. Ideally, the hashes stored in this file should match the hashes
3413 published by upstream, e.g. on their website, in the e-mail
3414 announcement… If upstream provides more than one type of hash (e.g.
3415 sha1 and sha512), then it is best to add all those hashes in the
3416 .hash file. If upstream does not provide any hash, or only provides
3417 an md5 hash, then compute at least one strong hash yourself
3418 (preferably sha256, but not md5), and mention this in a comment line
3419 above the hashes.
3420
3421 Note. If libfoo is from GitHub (see Section 17.17.2, “How to add a
3422 package from GitHub” for details), we can only accept a .hash file if
3423 the package is a released (e.g. uploaded by the maintainer) tarball.
3424 Otherwise, the automatically generated tarball may change over time,
3425 and thus its hashes may be different each time it is downloaded,
3426 causing a .hash mismatch for that tarball.
3427
3428 Note. The number of spaces does not matter, so one can use spaces (or
3429 tabs) to properly align the different fields.
3430
3431 The none hash type is reserved to those archives downloaded from a
3432 repository, like a git clone, a subversion checkout… or archives
3433 downloaded with the github helper Section 17.17.2, “How to add a
3434 package from GitHub”.
3435
3436 The example below defines a sha1 and a sha256 published by upstream
3437 for the main libfoo-1.2.3.tar.bz2 tarball, an md5 from upstream and a
3438 locally-computed sha256 hashes for a binary blob, a sha256 for a
3439 downloaded patch, and an archive with no hash:
3440
3441 # Hashes from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.{sha1,sha256}:
3442 sha1   486fb55c3efa71148fe07895fd713ea3a5ae343a                         libfoo-1.2.3.tar.bz2
3443 sha256 efc8103cc3bcb06bda6a781532d12701eb081ad83e8f90004b39ab81b65d4369 libfoo-1.2.3.tar.bz2
3444
3445 # md5 from: http://www.foosoftware.org/download/libfoo-1.2.3.tar.bz2.md5, sha256 locally computed:
3446 md5    2d608f3c318c6b7557d551a5a09314f03452f1a1                         libfoo-data.bin
3447 sha256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b libfoo-data.bin
3448
3449 # Locally computed:
3450 sha256 ff52101fb90bbfc3fe9475e425688c660f46216d7e751c4bbdb1dc85cdccacb9 libfoo-fix-blabla.patch
3451
3452 # No hash for 1234, comes from the github-helper:
3453 none   xxx                                                              libfoo-1234.tar.gz
3454
3455 If the .hash file is present, and it contains one or more hashes for
3456 a downloaded file, the hash(es) computed by Buildroot (after
3457 download) must match the hash(es) stored in the .hash file. If one or
3458 more hashes do not match, Buildroot considers this an error, deletes
3459 the downloaded file, and aborts.
3460
3461 If the .hash file is present, but it does not contain a hash for a
3462 downloaded file, Buildroot considers this an error and aborts.
3463 However, the downloaded file is left in the download directory since
3464 this typically indicates that the .hash file is wrong but the
3465 downloaded file is probably OK.
3466
3467 Sources that are downloaded from a version control system (git,
3468 subversion, etc…) can not have a hash, because the version control
3469 system and tar may not create exactly the same file (dates, files
3470 ordering…), so the hash could be wrong even for a valid download.
3471 Therefore, the hash check is entirely skipped for such sources.
3472
3473 If the .hash file is missing, then no check is done at all.
3474
3475 17.5. Infrastructure for packages with specific build systems
3476
3477 By packages with specific build systems we mean all the packages
3478 whose build system is not one of the standard ones, such as autotools
3479 or CMake. This typically includes packages whose build system is
3480 based on hand-written Makefiles or shell scripts.
3481
3482 17.5.1. generic-package tutorial
3483
3484 01: ################################################################################
3485 02: #
3486 03: # libfoo
3487 04: #
3488 05: ################################################################################
3489 06:
3490 07: LIBFOO_VERSION = 1.0
3491 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
3492 09: LIBFOO_SITE = http://www.foosoftware.org/download
3493 10: LIBFOO_LICENSE = GPLv3+
3494 11: LIBFOO_LICENSE_FILES = COPYING
3495 12: LIBFOO_INSTALL_STAGING = YES
3496 13: LIBFOO_CONFIG_SCRIPTS = libfoo-config
3497 14: LIBFOO_DEPENDENCIES = host-libaaa libbbb
3498 15:
3499 16: define LIBFOO_BUILD_CMDS
3500 17:     $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
3501 18: endef
3502 19:
3503 20: define LIBFOO_INSTALL_STAGING_CMDS
3504 21:     $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a
3505 22:     $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h
3506 23:     $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib
3507 24: endef
3508 25:
3509 26: define LIBFOO_INSTALL_TARGET_CMDS
3510 27:     $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
3511 28:     $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
3512 29: endef
3513 30:
3514 31: define LIBFOO_DEVICES
3515 32:     /dev/foo  c  666  0  0  42  0  -  -  -
3516 33: endef
3517 34:
3518 35: define LIBFOO_PERMISSIONS
3519 36:     /bin/foo  f  4755  0  0  -  -  -  -  -
3520 37: endef
3521 38:
3522 39: define LIBFOO_USERS
3523 40:     foo -1 libfoo -1 * - - - LibFoo daemon
3524 41: endef
3525 42:
3526 43: $(eval $(generic-package))
3527
3528 The Makefile begins on line 7 to 11 with metadata information: the
3529 version of the package (LIBFOO_VERSION), the name of the tarball
3530 containing the package (LIBFOO_SOURCE) (xz-ed tarball recommended)
3531 the Internet location at which the tarball can be downloaded from
3532 (LIBFOO_SITE), the license (LIBFOO_LICENSE) and file with the license
3533 text (LIBFOO_LICENSE_FILES). All variables must start with the same
3534 prefix, LIBFOO_ in this case. This prefix is always the uppercased
3535 version of the package name (see below to understand where the
3536 package name is defined).
3537
3538 On line 12, we specify that this package wants to install something
3539 to the staging space. This is often needed for libraries, since they
3540 must install header files and other development files in the staging
3541 space. This will ensure that the commands listed in the
3542 LIBFOO_INSTALL_STAGING_CMDS variable will be executed.
3543
3544 On line 13, we specify that there is some fixing to be done to some
3545 of the libfoo-config files that were installed during
3546 LIBFOO_INSTALL_STAGING_CMDS phase. These *-config files are
3547 executable shell script files that are located in $(STAGING_DIR)/usr/
3548 bin directory and are executed by other 3rd party packages to find
3549 out the location and the linking flags of this particular package.
3550
3551 The problem is that all these *-config files by default give wrong,
3552 host system linking flags that are unsuitable for cross-compiling.
3553
3554 For example: -I/usr/include instead of -I$(STAGING_DIR)/usr/include
3555 or: -L/usr/lib instead of -L$(STAGING_DIR)/usr/lib
3556
3557 So some sed magic is done to these scripts to make them give correct
3558 flags. The argument to be given to LIBFOO_CONFIG_SCRIPTS is the file
3559 name(s) of the shell script(s) needing fixing. All these names are
3560 relative to $(STAGING_DIR)/usr/bin and if needed multiple names can
3561 be given.
3562
3563 In addition, the scripts listed in LIBFOO_CONFIG_SCRIPTS are removed
3564 from $(TARGET_DIR)/usr/bin, since they are not needed on the target.
3565
3566 Example 17.1. Config script: divine package
3567
3568 Package divine installs shell script $(STAGING_DIR)/usr/bin/
3569 divine-config.
3570
3571 So its fixup would be:
3572
3573 DIVINE_CONFIG_SCRIPTS = divine-config
3574
3575
3576 Example 17.2. Config script: imagemagick package:
3577
3578 Package imagemagick installs the following scripts: $(STAGING_DIR)/
3579 usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config
3580
3581 So it’s fixup would be:
3582
3583 IMAGEMAGICK_CONFIG_SCRIPTS = \
3584    Magick-config Magick++-config \
3585    MagickCore-config MagickWand-config Wand-config
3586
3587
3588 On line 14, we specify the list of dependencies this package relies
3589 on. These dependencies are listed in terms of lower-case package
3590 names, which can be packages for the target (without the host-
3591 prefix) or packages for the host (with the host-) prefix). Buildroot
3592 will ensure that all these packages are built and installed before
3593 the current package starts its configuration.
3594
3595 The rest of the Makefile, lines 16..29, defines what should be done
3596 at the different steps of the package configuration, compilation and
3597 installation. LIBFOO_BUILD_CMDS tells what steps should be performed
3598 to build the package. LIBFOO_INSTALL_STAGING_CMDS tells what steps
3599 should be performed to install the package in the staging space.
3600 LIBFOO_INSTALL_TARGET_CMDS tells what steps should be performed to
3601 install the package in the target space.
3602
3603 All these steps rely on the $(@D) variable, which contains the
3604 directory where the source code of the package has been extracted.
3605
3606 On line 31..33, we define a device-node file used by this package
3607 (LIBFOO_DEVICES).
3608
3609 On line 35..37, we define the permissions to set to specific files
3610 installed by this package (LIBFOO_PERMISSIONS).
3611
3612 On lines 39..41, we define a user that is used by this package (e.g.
3613 to run a daemon as non-root) (LIBFOO_USERS).
3614
3615 Finally, on line 43, we call the generic-package function, which
3616 generates, according to the variables defined previously, all the
3617 Makefile code necessary to make your package working.
3618
3619 17.5.2. generic-package reference
3620
3621 There are two variants of the generic target. The generic-package
3622 macro is used for packages to be cross-compiled for the target. The
3623 host-generic-package macro is used for host packages, natively
3624 compiled for the host. It is possible to call both of them in a
3625 single .mk file: once to create the rules to generate a target
3626 package and once to create the rules to generate a host package:
3627
3628 $(eval $(generic-package))
3629 $(eval $(host-generic-package))
3630
3631 This might be useful if the compilation of the target package
3632 requires some tools to be installed on the host. If the package name
3633 is libfoo, then the name of the package for the target is also
3634 libfoo, while the name of the package for the host is host-libfoo.
3635 These names should be used in the DEPENDENCIES variables of other
3636 packages, if they depend on libfoo or host-libfoo.
3637
3638 The call to the generic-package and/or host-generic-package macro 
3639 must be at the end of the .mk file, after all variable definitions.
3640
3641 For the target package, the generic-package uses the variables
3642 defined by the .mk file and prefixed by the uppercased package name:
3643 LIBFOO_*. host-generic-package uses the HOST_LIBFOO_* variables. For 
3644 some variables, if the HOST_LIBFOO_ prefixed variable doesn’t exist,
3645 the package infrastructure uses the corresponding variable prefixed
3646 by LIBFOO_. This is done for variables that are likely to have the
3647 same value for both the target and host packages. See below for
3648 details.
3649
3650 The list of variables that can be set in a .mk file to give metadata
3651 information is (assuming the package name is libfoo) :
3652
3653   * LIBFOO_VERSION, mandatory, must contain the version of the
3654     package. Note that if HOST_LIBFOO_VERSION doesn’t exist, it is
3655     assumed to be the same as LIBFOO_VERSION. It can also be a
3656     revision number, branch or tag for packages that are fetched
3657     directly from their revision control system. Examples:
3658     LIBFOO_VERSION = 0.1.2 LIBFOO_VERSION =
3659     cb9d6aa9429e838f0e54faa3d455bcbab5eef057 LIBFOO_VERSION = stable
3660   * LIBFOO_SOURCE may contain the name of the tarball of the package,
3661     which Buildroot will use to download the tarball from
3662     LIBFOO_SITE. If HOST_LIBFOO_SOURCE is not specified, it defaults
3663     to LIBFOO_SOURCE. If none are specified, then the value is
3664     assumed to be libfoo-$(LIBFOO_VERSION).tar.gz. Example:
3665     LIBFOO_SOURCE = foobar-$(LIBFOO_VERSION).tar.bz2
3666   * LIBFOO_PATCH may contain a space-separated list of patch file
3667     names, that Buildroot will download and apply to the package
3668     source code. If an entry contains ://, then Buildroot will assume
3669     it is a full URL and download the patch from this location.
3670     Otherwise, Buildroot will assume that the patch should be
3671     downloaded from LIBFOO_SITE. If HOST_LIBFOO_PATCH is not
3672     specified, it defaults to LIBFOO_PATCH. Note that patches that
3673     are included in Buildroot itself use a different mechanism: all
3674     files of the form *.patch present in the package directory inside
3675     Buildroot will be applied to the package after extraction (see
3676     patching a package Chapter 18, Patching a package). Finally,
3677     patches listed in the LIBFOO_PATCH variable are applied before
3678     the patches stored in the Buildroot package directory.
3679   * LIBFOO_SITE provides the location of the package, which can be a
3680     URL or a local filesystem path. HTTP, FTP and SCP are supported
3681     URL types for retrieving package tarballs. Git, Subversion,
3682     Mercurial, and Bazaar are supported URL types for retrieving
3683     packages directly from source code management systems. There is a
3684     helper function to make it easier to download source tarballs
3685     from GitHub (refer to Section 17.17.2, “How to add a package from
3686     GitHub” for details). A filesystem path may be used to specify
3687     either a tarball or a directory containing the package source
3688     code. See LIBFOO_SITE_METHOD below for more details on how
3689     retrieval works. Note that SCP URLs should be of the form scp://
3690     [user@]host:filepath, and that filepath is relative to the user’s
3691     home directory, so you may want to prepend the path with a slash
3692     for absolute paths: scp://[user@]host:/absolutepath. If
3693     HOST_LIBFOO_SITE is not specified, it defaults to LIBFOO_SITE.
3694     Examples: LIBFOO_SITE=http://www.libfoosoftware.org/libfoo
3695     LIBFOO_SITE=http://svn.xiph.org/trunk/Tremor LIBFOO_SITE=/opt/
3696     software/libfoo.tar.gz LIBFOO_SITE=$(TOPDIR)/../src/libfoo/
3697   * LIBFOO_EXTRA_DOWNLOADS is a space-separated list of additional
3698     files that Buildroot should download. If an entry contains ://
3699     then Buildroot will assume it is a complete URL and will download
3700     the file using this URL. Otherwise, Buildroot will assume the
3701     file to be downloaded is located at LIBFOO_SITE. Buildroot will
3702     not do anything with those additional files, except download
3703     them: it will be up to the package recipe to use them from $
3704     (BR2_DL_DIR).
3705   * LIBFOO_SITE_METHOD determines the method used to fetch or copy
3706     the package source code. In many cases, Buildroot guesses the
3707     method from the contents of LIBFOO_SITE and setting
3708     LIBFOO_SITE_METHOD is unnecessary. When HOST_LIBFOO_SITE_METHOD
3709     is not specified, it defaults to the value of LIBFOO_SITE_METHOD.
3710     The possible values of LIBFOO_SITE_METHOD are:
3711
3712       + wget for normal FTP/HTTP downloads of tarballs. Used by
3713         default when LIBFOO_SITE begins with http://, https:// or
3714         ftp://.
3715       + scp for downloads of tarballs over SSH with scp. Used by
3716         default when LIBFOO_SITE begins with scp://.
3717       + svn for retrieving source code from a Subversion repository.
3718         Used by default when LIBFOO_SITE begins with svn://. When a
3719         http:// Subversion repository URL is specified in
3720         LIBFOO_SITE, one must specify LIBFOO_SITE_METHOD=svn.
3721         Buildroot performs a checkout which is preserved as a tarball
3722         in the download cache; subsequent builds use the tarball
3723         instead of performing another checkout.
3724       + cvs for retrieving source code from a CVS repository. Used by
3725         default when LIBFOO_SITE begins with cvs://. The downloaded
3726         source code is cached as with the svn method. Only anonymous
3727         pserver mode is supported. LIBFOO_SITE must contain the
3728         source URL as well as the remote repository directory. The
3729         module is the package name. LIBFOO_VERSION is mandatory and 
3730         must be a timestamp.
3731       + git for retrieving source code from a Git repository. Used by
3732         default when LIBFOO_SITE begins with git://. The downloaded
3733         source code is cached as with the svn method.
3734       + hg for retrieving source code from a Mercurial repository.
3735         One must specify LIBFOO_SITE_METHOD=hg when LIBFOO_SITE
3736         contains a Mercurial repository URL. The downloaded source
3737         code is cached as with the svn method.
3738       + bzr for retrieving source code from a Bazaar repository. Used
3739         by default when LIBFOO_SITE begins with bzr://. The
3740         downloaded source code is cached as with the svn method.
3741       + file for a local tarball. One should use this when
3742         LIBFOO_SITE specifies a package tarball as a local filename.
3743         Useful for software that isn’t available publicly or in
3744         version control.
3745       + local for a local source code directory. One should use this
3746         when LIBFOO_SITE specifies a local directory path containing
3747         the package source code. Buildroot copies the contents of the
3748         source directory into the package’s build directory.
3749   * LIBFOO_DEPENDENCIES lists the dependencies (in terms of package
3750     name) that are required for the current target package to
3751     compile. These dependencies are guaranteed to be compiled and
3752     installed before the configuration of the current package starts.
3753     In a similar way, HOST_LIBFOO_DEPENDENCIES lists the dependencies
3754     for the current host package.
3755   * LIBFOO_PATCH_DEPENDENCIES lists the dependencies (in terms of
3756     package name) that are required for the current package to be
3757     patched. These dependencies are guaranteed to be extracted and
3758     patched before the current package is patched. In a similar way,
3759     HOST_LIBFOO_PATCH_DEPENDENCIES lists the dependencies for the
3760     current host package. This is seldom used; usually,
3761     LIBFOO_DEPENDENCIES is what you really want to use.
3762   * LIBFOO_PROVIDES lists all the virtual packages libfoo is an
3763     implementation of. See Section 17.11, “Infrastructure for virtual
3764     packages”.
3765   * LIBFOO_INSTALL_STAGING can be set to YES or NO (default). If set
3766     to YES, then the commands in the LIBFOO_INSTALL_STAGING_CMDS
3767     variables are executed to install the package into the staging
3768     directory.
3769   * LIBFOO_INSTALL_TARGET can be set to YES (default) or NO. If set
3770     to YES, then the commands in the LIBFOO_INSTALL_TARGET_CMDS
3771     variables are executed to install the package into the target
3772     directory.
3773   * LIBFOO_INSTALL_IMAGES can be set to YES or NO (default). If set
3774     to YES, then the commands in the LIBFOO_INSTALL_IMAGES_CMDS
3775     variable are executed to install the package into the images
3776     directory.
3777   * LIBFOO_CONFIG_SCRIPTS lists the names of the files in $
3778     (STAGING_DIR)/usr/bin that need some special fixing to make them
3779     cross-compiling friendly. Multiple file names separated by space
3780     can be given and all are relative to $(STAGING_DIR)/usr/bin. The
3781     files listed in LIBFOO_CONFIG_SCRIPTS are also removed from $
3782     (TARGET_DIR)/usr/bin since they are not needed on the target.
3783   * LIBFOO_DEVICES lists the device files to be created by Buildroot
3784     when using the static device table. The syntax to use is the
3785     makedevs one. You can find some documentation for this syntax in
3786     the Chapter 22, Makedev syntax documentation. This variable is
3787     optional.
3788   * LIBFOO_PERMISSIONS lists the changes of permissions to be done at
3789     the end of the build process. The syntax is once again the
3790     makedevs one. You can find some documentation for this syntax in
3791     the Chapter 22, Makedev syntax documentation. This variable is
3792     optional.
3793   * LIBFOO_USERS lists the users to create for this package, if it
3794     installs a program you want to run as a specific user (e.g. as a
3795     daemon, or as a cron-job). The syntax is similar in spirit to the
3796     makedevs one, and is described in the Chapter 23, Makeusers
3797     syntax documentation. This variable is optional.
3798   * LIBFOO_LICENSE defines the license (or licenses) under which the
3799     package is released. This name will appear in the manifest file
3800     produced by make legal-info. If the license appears in the
3801     following list Section 12.2, “License abbreviations”, use the
3802     same string to make the manifest file uniform. Otherwise,
3803     describe the license in a precise and concise way, avoiding
3804     ambiguous names such as BSD which actually name a family of
3805     licenses. This variable is optional. If it is not defined,
3806     unknown will appear in the license field of the manifest file for
3807     this package.
3808   * LIBFOO_LICENSE_FILES is a space-separated list of files in the
3809     package tarball that contain the license(s) under which the
3810     package is released. make legal-info copies all of these files in
3811     the legal-info directory. See Chapter 12, Legal notice and
3812     licensing for more information. This variable is optional. If it
3813     is not defined, a warning will be produced to let you know, and
3814     not saved will appear in the license files field of the manifest
3815     file for this package.
3816   * LIBFOO_REDISTRIBUTE can be set to YES (default) or NO to indicate
3817     if the package source code is allowed to be redistributed. Set it
3818     to NO for non-opensource packages: Buildroot will not save the
3819     source code for this package when collecting the legal-info.
3820   * LIBFOO_FLAT_STACKSIZE defines the stack size of an application
3821     built into the FLAT binary format. The application stack size on
3822     the NOMMU architecture processors can’t be enlarged at run time.
3823     The default stack size for the FLAT binary format is only 4k
3824     bytes. If the application consumes more stack, append the
3825     required number here.
3826
3827 The recommended way to define these variables is to use the following
3828 syntax:
3829
3830 LIBFOO_VERSION = 2.32
3831
3832 Now, the variables that define what should be performed at the
3833 different steps of the build process.
3834
3835   * LIBFOO_EXTRACT_CMDS lists the actions to be performed to extract
3836     the package. This is generally not needed as tarballs are
3837     automatically handled by Buildroot. However, if the package uses
3838     a non-standard archive format, such as a ZIP or RAR file, or has
3839     a tarball with a non-standard organization, this variable allows
3840     to override the package infrastructure default behavior.
3841   * LIBFOO_CONFIGURE_CMDS lists the actions to be performed to
3842     configure the package before its compilation.
3843   * LIBFOO_BUILD_CMDS lists the actions to be performed to compile
3844     the package.
3845   * HOST_LIBFOO_INSTALL_CMDS lists the actions to be performed to
3846     install the package, when the package is a host package. The
3847     package must install its files to the directory given by $
3848     (HOST_DIR). All files, including development files such as
3849     headers should be installed, since other packages might be
3850     compiled on top of this package.
3851   * LIBFOO_INSTALL_TARGET_CMDS lists the actions to be performed to
3852     install the package to the target directory, when the package is
3853     a target package. The package must install its files to the
3854     directory given by $(TARGET_DIR). Only the files required for 
3855     execution of the package have to be installed. Header files,
3856     static libraries and documentation will be removed again when the
3857     target filesystem is finalized.
3858   * LIBFOO_INSTALL_STAGING_CMDS lists the actions to be performed to
3859     install the package to the staging directory, when the package is
3860     a target package. The package must install its files to the
3861     directory given by $(STAGING_DIR). All development files should
3862     be installed, since they might be needed to compile other
3863     packages.
3864   * LIBFOO_INSTALL_IMAGES_CMDS lists the actions to be performed to
3865     install the package to the images directory, when the package is
3866     a target package. The package must install its files to the
3867     directory given by $(BINARIES_DIR). Only files that are binary
3868     images (aka images) that do not belong in the TARGET_DIR but are
3869     necessary for booting the board should be placed here. For
3870     example, a package should utilize this step if it has binaries
3871     which would be similar to the kernel image, bootloader or root
3872     filesystem images.
3873   * LIBFOO_INSTALL_INIT_SYSV and LIBFOO_INSTALL_INIT_SYSTEMD list the
3874     actions to install init scripts either for the systemV-like init
3875     systems (busybox, sysvinit, etc.) or for the systemd units. These
3876     commands will be run only when the relevant init system is
3877     installed (i.e. if systemd is selected as the init system in the
3878     configuration, only LIBFOO_INSTALL_INIT_SYSTEMD will be run).
3879
3880 The preferred way to define these variables is:
3881
3882 define LIBFOO_CONFIGURE_CMDS
3883         action 1
3884         action 2
3885         action 3
3886 endef
3887
3888 In the action definitions, you can use the following variables:
3889
3890   * $(@D), which contains the directory in which the package source
3891     code has been uncompressed.
3892   * $(TARGET_CC), $(TARGET_LD), etc. to get the target
3893     cross-compilation utilities
3894   * $(TARGET_CROSS) to get the cross-compilation toolchain prefix
3895   * Of course the $(HOST_DIR), $(STAGING_DIR) and $(TARGET_DIR)
3896     variables to install the packages properly.
3897
3898 Finally, you can also use hooks. See Section 17.15, “Hooks available
3899 in the various build steps” for more information.
3900
3901 17.6. Infrastructure for autotools-based packages
3902
3903 17.6.1. autotools-package tutorial
3904
3905 First, let’s see how to write a .mk file for an autotools-based
3906 package, with an example :
3907
3908 01: ################################################################################
3909 02: #
3910 03: # libfoo
3911 04: #
3912 05: ################################################################################
3913 06:
3914 07: LIBFOO_VERSION = 1.0
3915 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
3916 09: LIBFOO_SITE = http://www.foosoftware.org/download
3917 10: LIBFOO_INSTALL_STAGING = YES
3918 11: LIBFOO_INSTALL_TARGET = NO
3919 12: LIBFOO_CONF_OPTS = --disable-shared
3920 13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
3921 14:
3922 15: $(eval $(autotools-package))
3923
3924 On line 7, we declare the version of the package.
3925
3926 On line 8 and 9, we declare the name of the tarball (xz-ed tarball
3927 recommended) and the location of the tarball on the Web. Buildroot
3928 will automatically download the tarball from this location.
3929
3930 On line 10, we tell Buildroot to install the package to the staging
3931 directory. The staging directory, located in output/staging/ is the
3932 directory where all the packages are installed, including their
3933 development files, etc. By default, packages are not installed to the
3934 staging directory, since usually, only libraries need to be installed
3935 in the staging directory: their development files are needed to
3936 compile other libraries or applications depending on them. Also by
3937 default, when staging installation is enabled, packages are installed
3938 in this location using the make install command.
3939
3940 On line 11, we tell Buildroot to not install the package to the
3941 target directory. This directory contains what will become the root
3942 filesystem running on the target. For purely static libraries, it is
3943 not necessary to install them in the target directory because they
3944 will not be used at runtime. By default, target installation is
3945 enabled; setting this variable to NO is almost never needed. Also by
3946 default, packages are installed in this location using the make
3947 install command.
3948
3949 On line 12, we tell Buildroot to pass a custom configure option, that
3950 will be passed to the ./configure script before configuring and
3951 building the package.
3952
3953 On line 13, we declare our dependencies, so that they are built
3954 before the build process of our package starts.
3955
3956 Finally, on line line 15, we invoke the autotools-package macro that
3957 generates all the Makefile rules that actually allows the package to
3958 be built.
3959
3960 17.6.2. autotools-package reference
3961
3962 The main macro of the autotools package infrastructure is
3963 autotools-package. It is similar to the generic-package macro. The
3964 ability to have target and host packages is also available, with the
3965 host-autotools-package macro.
3966
3967 Just like the generic infrastructure, the autotools infrastructure
3968 works by defining a number of variables before calling the
3969 autotools-package macro.
3970
3971 First, all the package metadata information variables that exist in
3972 the generic infrastructure also exist in the autotools
3973 infrastructure: LIBFOO_VERSION, LIBFOO_SOURCE, LIBFOO_PATCH,
3974 LIBFOO_SITE, LIBFOO_SUBDIR, LIBFOO_DEPENDENCIES,
3975 LIBFOO_INSTALL_STAGING, LIBFOO_INSTALL_TARGET.
3976
3977 A few additional variables, specific to the autotools infrastructure,
3978 can also be defined. Many of them are only useful in very specific
3979 cases, typical packages will therefore only use a few of them.
3980
3981   * LIBFOO_SUBDIR may contain the name of a subdirectory inside the
3982     package that contains the configure script. This is useful, if
3983     for example, the main configure script is not at the root of the
3984     tree extracted by the tarball. If HOST_LIBFOO_SUBDIR is not
3985     specified, it defaults to LIBFOO_SUBDIR.
3986   * LIBFOO_CONF_ENV, to specify additional environment variables to
3987     pass to the configure script. By default, empty.
3988   * LIBFOO_CONF_OPTS, to specify additional configure options to pass
3989     to the configure script. By default, empty.
3990   * LIBFOO_MAKE, to specify an alternate make command. This is
3991     typically useful when parallel make is enabled in the
3992     configuration (using BR2_JLEVEL) but that this feature should be
3993     disabled for the given package, for one reason or another. By
3994     default, set to $(MAKE). If parallel building is not supported by
3995     the package, then it should be set to LIBFOO_MAKE=$(MAKE1).
3996   * LIBFOO_MAKE_ENV, to specify additional environment variables to
3997     pass to make in the build step. These are passed before the make
3998     command. By default, empty.
3999   * LIBFOO_MAKE_OPTS, to specify additional variables to pass to make
4000     in the build step. These are passed after the make command. By
4001     default, empty.
4002   * LIBFOO_AUTORECONF, tells whether the package should be
4003     autoreconfigured or not (i.e. if the configure script and
4004     Makefile.in files should be re-generated by re-running autoconf,
4005     automake, libtool, etc.). Valid values are YES and NO. By
4006     default, the value is NO
4007   * LIBFOO_AUTORECONF_ENV, to specify additional environment
4008     variables to pass to the autoreconf program if LIBFOO_AUTORECONF=
4009     YES. These are passed in the environment of the autoreconf
4010     command. By default, empty.
4011   * LIBFOO_AUTORECONF_OPTS to specify additional options passed to
4012     the autoreconf program if LIBFOO_AUTORECONF=YES. By default,
4013     empty.
4014   * LIBFOO_GETTEXTIZE, tells whether the package should be
4015     gettextized or not (i.e. if the package uses a different gettext
4016     version than Buildroot provides, and it is needed to run 
4017     gettextize.) Only valid when LIBFOO_AUTORECONF=YES. Valid values
4018     are YES and NO. The default is NO.
4019   * LIBFOO_GETTEXTIZE_OPTS, to specify additional options passed to
4020     the gettextize program, if LIBFOO_GETTEXTIZE=YES. You may use
4021     that if, for example, the .po files are not located in the
4022     standard place (i.e. in po/ at the root of the package.) By
4023     default, -f.
4024   * LIBFOO_LIBTOOL_PATCH tells whether the Buildroot patch to fix
4025     libtool cross-compilation issues should be applied or not. Valid
4026     values are YES and NO. By default, the value is YES
4027   * LIBFOO_INSTALL_STAGING_OPTS contains the make options used to
4028     install the package to the staging directory. By default, the
4029     value is DESTDIR=$(STAGING_DIR) install, which is correct for
4030     most autotools packages. It is still possible to override it.
4031   * LIBFOO_INSTALL_TARGET_OPTS contains the make options used to
4032     install the package to the target directory. By default, the
4033     value is DESTDIR=$(TARGET_DIR) install. The default value is
4034     correct for most autotools packages, but it is still possible to
4035     override it if needed.
4036
4037 With the autotools infrastructure, all the steps required to build
4038 and install the packages are already defined, and they generally work
4039 well for most autotools-based packages. However, when required, it is
4040 still possible to customize what is done in any particular step:
4041
4042   * By adding a post-operation hook (after extract, patch, configure,
4043     build or install). See Section 17.15, “Hooks available in the
4044     various build steps” for details.
4045   * By overriding one of the steps. For example, even if the
4046     autotools infrastructure is used, if the package .mk file defines
4047     its own LIBFOO_CONFIGURE_CMDS variable, it will be used instead
4048     of the default autotools one. However, using this method should
4049     be restricted to very specific cases. Do not use it in the
4050     general case.
4051
4052 17.7. Infrastructure for CMake-based packages
4053
4054 17.7.1. cmake-package tutorial
4055
4056 First, let’s see how to write a .mk file for a CMake-based package,
4057 with an example :
4058
4059 01: ################################################################################
4060 02: #
4061 03: # libfoo
4062 04: #
4063 05: ################################################################################
4064 06:
4065 07: LIBFOO_VERSION = 1.0
4066 08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
4067 09: LIBFOO_SITE = http://www.foosoftware.org/download
4068 10: LIBFOO_INSTALL_STAGING = YES
4069 11: LIBFOO_INSTALL_TARGET = NO
4070 12: LIBFOO_CONF_OPTS = -DBUILD_DEMOS=ON
4071 13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
4072 14:
4073 15: $(eval $(cmake-package))
4074
4075 On line 7, we declare the version of the package.
4076
4077 On line 8 and 9, we declare the name of the tarball (xz-ed tarball
4078 recommended) and the location of the tarball on the Web. Buildroot
4079 will automatically download the tarball from this location.
4080
4081 On line 10, we tell Buildroot to install the package to the staging
4082 directory. The staging directory, located in output/staging/ is the
4083 directory where all the packages are installed, including their
4084 development files, etc. By default, packages are not installed to the
4085 staging directory, since usually, only libraries need to be installed
4086 in the staging directory: their development files are needed to
4087 compile other libraries or applications depending on them. Also by
4088 default, when staging installation is enabled, packages are installed
4089 in this location using the make install command.
4090
4091 On line 11, we tell Buildroot to not install the package to the
4092 target directory. This directory contains what will become the root
4093 filesystem running on the target. For purely static libraries, it is
4094 not necessary to install them in the target directory because they
4095 will not be used at runtime. By default, target installation is
4096 enabled; setting this variable to NO is almost never needed. Also by
4097 default, packages are installed in this location using the make
4098 install command.
4099
4100 On line 12, we tell Buildroot to pass custom options to CMake when it
4101 is configuring the package.
4102
4103 On line 13, we declare our dependencies, so that they are built
4104 before the build process of our package starts.
4105
4106 Finally, on line line 15, we invoke the cmake-package macro that
4107 generates all the Makefile rules that actually allows the package to
4108 be built.
4109
4110 17.7.2. cmake-package reference
4111
4112 The main macro of the CMake package infrastructure is cmake-package.
4113 It is similar to the generic-package macro. The ability to have
4114 target and host packages is also available, with the
4115 host-cmake-package macro.
4116
4117 Just like the generic infrastructure, the CMake infrastructure works
4118 by defining a number of variables before calling the cmake-package
4119 macro.
4120
4121 First, all the package metadata information variables that exist in
4122 the generic infrastructure also exist in the CMake infrastructure:
4123 LIBFOO_VERSION, LIBFOO_SOURCE, LIBFOO_PATCH, LIBFOO_SITE,
4124 LIBFOO_SUBDIR, LIBFOO_DEPENDENCIES, LIBFOO_INSTALL_STAGING,
4125 LIBFOO_INSTALL_TARGET.
4126
4127 A few additional variables, specific to the CMake infrastructure, can
4128 also be defined. Many of them are only useful in very specific cases,
4129 typical packages will therefore only use a few of them.
4130
4131   * LIBFOO_SUBDIR may contain the name of a subdirectory inside the
4132     package that contains the main CMakeLists.txt file. This is
4133     useful, if for example, the main CMakeLists.txt file is not at
4134     the root of the tree extracted by the tarball. If
4135     HOST_LIBFOO_SUBDIR is not specified, it defaults to
4136     LIBFOO_SUBDIR.
4137   * LIBFOO_CONF_ENV, to specify additional environment variables to
4138     pass to CMake. By default, empty.
4139   * LIBFOO_CONF_OPTS, to specify additional configure options to pass
4140     to CMake. By default, empty. A number of common CMake options are
4141     set by the cmake-package infrastructure; so it is normally not
4142     necessary to set them in the package’s *.mk file unless you want
4143     to override them:
4144
4145       + CMAKE_BUILD_TYPE is driven by BR2_ENABLE_DEBUG;
4146       + CMAKE_INSTALL_PREFIX;
4147       + BUILD_SHARED_LIBS is driven by BR2_STATIC_LIBS;
4148       + BUILD_DOC, BUILD_DOCS are disabled;
4149       + BUILD_EXAMPLE, BUILD_EXAMPLES are disabled;
4150       + BUILD_TEST, BUILD_TESTS, BUILD_TESTING are disabled.
4151   * LIBFOO_SUPPORTS_IN_SOURCE_BUILD = NO should be set when the
4152     package cannot be built inside the source tree but needs a
4153     separate build directory.
4154   * LIBFOO_MAKE, to specify an alternate make command. This is
4155     typically useful when parallel make is enabled in the
4156     configuration (using BR2_JLEVEL) but that this feature should be
4157     disabled for the given package, for one reason or another. By
4158     default, set to $(MAKE). If parallel building is not supported by
4159     the package, then it should be set to LIBFOO_MAKE=$(MAKE1).
4160   * LIBFOO_MAKE_ENV, to specify additional environment variables to
4161     pass to make in the build step. These are passed before the make
4162     command. By default, empty.
4163   * LIBFOO_MAKE_OPTS, to specify additional variables to pass to make
4164     in the build step. These are passed after the make command. By
4165     default, empty.
4166   * LIBFOO_INSTALL_STAGING_OPTS contains the make options used to
4167     install the package to the staging directory. By default, the
4168     value is DESTDIR=$(STAGING_DIR) install, which is correct for
4169     most CMake packages. It is still possible to override it.
4170   * LIBFOO_INSTALL_TARGET_OPTS contains the make options used to
4171     install the package to the target directory. By default, the
4172     value is DESTDIR=$(TARGET_DIR) install. The default value is
4173     correct for most CMake packages, but it is still possible to
4174     override it if needed.
4175
4176 With the CMake infrastructure, all the steps required to build and
4177 install the packages are already defined, and they generally work
4178 well for most CMake-based packages. However, when required, it is
4179 still possible to customize what is done in any particular step:
4180
4181   * By adding a post-operation hook (after extract, patch, configure,
4182     build or install). See Section 17.15, “Hooks available in the
4183     various build steps” for details.
4184   * By overriding one of the steps. For example, even if the CMake
4185     infrastructure is used, if the package .mk file defines its own
4186     LIBFOO_CONFIGURE_CMDS variable, it will be used instead of the
4187     default CMake one. However, using this method should be
4188     restricted to very specific cases. Do not use it in the general
4189     case.
4190
4191 17.8. Infrastructure for Python packages
4192
4193 This infrastructure applies to Python packages that use the standard
4194 Python setuptools mechanism as their build system, generally
4195 recognizable by the usage of a setup.py script.
4196
4197 17.8.1. python-package tutorial
4198
4199 First, let’s see how to write a .mk file for a Python package, with
4200 an example :
4201
4202 01: ################################################################################
4203 02: #
4204 03: # python-foo
4205 04: #
4206 05: ################################################################################
4207 06:
4208 07: PYTHON_FOO_VERSION = 1.0
4209 08: PYTHON_FOO_SOURCE = python-foo-$(PYTHON_FOO_VERSION).tar.xz
4210 09: PYTHON_FOO_SITE = http://www.foosoftware.org/download
4211 10: PYTHON_FOO_LICENSE = BSD-3c
4212 11: PYTHON_FOO_LICENSE_FILES = LICENSE
4213 12: PYTHON_FOO_ENV = SOME_VAR=1
4214 13: PYTHON_FOO_DEPENDENCIES = libmad
4215 14: PYTHON_FOO_SETUP_TYPE = distutils
4216 15:
4217 16: $(eval $(python-package))
4218
4219 On line 7, we declare the version of the package.
4220
4221 On line 8 and 9, we declare the name of the tarball (xz-ed tarball
4222 recommended) and the location of the tarball on the Web. Buildroot
4223 will automatically download the tarball from this location.
4224
4225 On line 10 and 11, we give licensing details about the package (its
4226 license on line 10, and the file containing the license text on line
4227 11).
4228
4229 On line 12, we tell Buildroot to pass custom options to the Python
4230 setup.py script when it is configuring the package.
4231
4232 On line 13, we declare our dependencies, so that they are built
4233 before the build process of our package starts.
4234
4235 On line 14, we declare the specific Python build system being used.
4236 In this case the distutils Python build system is used. The two
4237 supported ones are distutils and setuptools.
4238
4239 Finally, on line 16, we invoke the python-package macro that
4240 generates all the Makefile rules that actually allow the package to
4241 be built.
4242
4243 17.8.2. python-package reference
4244
4245 As a policy, packages that merely provide Python modules should all
4246 be named python-<something> in Buildroot. Other packages that use the
4247 Python build system, but are not Python modules, can freely choose
4248 their name (existing examples in Buildroot are scons and supervisor).
4249
4250 In their Config.in file, they should depend on BR2_PACKAGE_PYTHON so
4251 that when Buildroot will enable Python 3 usage for modules, we will
4252 be able to enable Python modules progressively on Python 3.
4253
4254 The main macro of the Python package infrastructure is
4255 python-package. It is similar to the generic-package macro. It is
4256 also possible to create Python host packages with the
4257 host-python-package macro.
4258
4259 Just like the generic infrastructure, the Python infrastructure works
4260 by defining a number of variables before calling the python-package
4261 or host-python-package macros.
4262
4263 All the package metadata information variables that exist in the
4264 generic package infrastructure Section 17.5.2, “generic-package
4265 reference” also exist in the Python infrastructure:
4266 PYTHON_FOO_VERSION, PYTHON_FOO_SOURCE, PYTHON_FOO_PATCH,
4267 PYTHON_FOO_SITE, PYTHON_FOO_SUBDIR, PYTHON_FOO_DEPENDENCIES,
4268 PYTHON_FOO_LICENSE, PYTHON_FOO_LICENSE_FILES,
4269 PYTHON_FOO_INSTALL_STAGING, etc.
4270
4271 Note that:
4272
4273   * It is not necessary to add python or host-python in the
4274     PYTHON_FOO_DEPENDENCIES variable of a package, since these basic
4275     dependencies are automatically added as needed by the Python
4276     package infrastructure.
4277   * Similarly, it is not needed to add host-setuptools and/or
4278     host-distutilscross dependencies to PYTHON_FOO_DEPENDENCIES for
4279     setuptools-based packages, since these are automatically added by
4280     the Python infrastructure as needed.
4281
4282 One variable specific to the Python infrastructure is mandatory:
4283
4284   * PYTHON_FOO_SETUP_TYPE, to define which Python build system is
4285     used by the package. The two supported values are distutils and
4286     setuptools. If you don’t know which one is used in your package,
4287     look at the setup.py file in your package source code, and see
4288     whether it imports things from the distutils module or the
4289     setuptools module.
4290
4291 A few additional variables, specific to the Python infrastructure,
4292 can optionally be defined, depending on the package’s needs. Many of
4293 them are only useful in very specific cases, typical packages will
4294 therefore only use a few of them, or none.
4295
4296   * PYTHON_FOO_ENV, to specify additional environment variables to
4297     pass to the Python setup.py script (for both the build and
4298     install steps). Note that the infrastructure is automatically
4299     passing several standard variables, defined in
4300     PKG_PYTHON_DISTUTILS_ENV (for distutils target packages),
4301     HOST_PKG_PYTHON_DISTUTILS_ENV (for distutils host packages),
4302     PKG_PYTHON_SETUPTOOLS_ENV (for setuptools target packages) and
4303     HOST_PKG_PYTHON_SETUPTOOLS_ENV (for setuptools host packages).
4304   * PYTHON_FOO_BUILD_OPTS, to specify additional options to pass to
4305     the Python setup.py script during the build step. For target
4306     distutils packages, the PKG_PYTHON_DISTUTILS_BUILD_OPTS options
4307     are already passed automatically by the infrastructure.
4308   * PYTHON_FOO_INSTALL_TARGET_OPTS, PYTHON_FOO_INSTALL_STAGING_OPTS,
4309     HOST_PYTHON_FOO_INSTALL_OPTS to specify additional options to
4310     pass to the Python setup.py script during the target installation
4311     step, the staging installation step or the host installation,
4312     respectively. Note that the infrastructure is automatically
4313     passing some options, defined in
4314     PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS or
4315     PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS (for target distutils
4316     packages), HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS (for host
4317     distutils packages), PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS or
4318     PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS (for target setuptools
4319     packages) and HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS (for host
4320     setuptools packages).
4321   * HOST_PYTHON_FOO_NEEDS_HOST_PYTHON, to define the host python
4322     interpreter. The usage of this variable is limited to host
4323     packages. The two supported value are python2 and python3. It
4324     will ensures the right host python package is available and will
4325     invoke it for the build. If some build steps are overloaded, the
4326     right python interpreter must be explicitly called in the
4327     commands.
4328
4329 With the Python infrastructure, all the steps required to build and
4330 install the packages are already defined, and they generally work
4331 well for most Python-based packages. However, when required, it is
4332 still possible to customize what is done in any particular step:
4333
4334   * By adding a post-operation hook (after extract, patch, configure,
4335     build or install). See Section 17.15, “Hooks available in the
4336     various build steps” for details.
4337   * By overriding one of the steps. For example, even if the Python
4338     infrastructure is used, if the package .mk file defines its own
4339     PYTHON_FOO_BUILD_CMDS variable, it will be used instead of the
4340     default Python one. However, using this method should be
4341     restricted to very specific cases. Do not use it in the general
4342     case.
4343
4344 17.9. Infrastructure for LuaRocks-based packages
4345
4346 17.9.1. luarocks-package tutorial
4347
4348 First, let’s see how to write a .mk file for a LuaRocks-based
4349 package, with an example :
4350
4351 01: ################################################################################
4352 02: #
4353 03: # luafoo
4354 04: #
4355 05: ################################################################################
4356 06:
4357 07: LUAFOO_VERSION = 1.0.2-1
4358 08: LUAFOO_DEPENDENCIES = foo
4359 09:
4360 10: LUAFOO_BUILD_OPTS += FOO_INCDIR=$(STAGING_DIR)/usr/include
4361 11: LUAFOO_BUILD_OPTS += FOO_LIBDIR=$(STAGING_DIR)/usr/lib
4362 12: LUAFOO_LICENSE = luaFoo license
4363 13: LUAFOO_LICENSE_FILES = COPYING
4364 14:
4365 15: $(eval $(luarocks-package))
4366
4367 On line 7, we declare the version of the package (the same as in the
4368 rockspec, which is the concatenation of the upstream version and the
4369 rockspec revision, separated by a hyphen -).
4370
4371 On line 8, we declare our dependencies against native libraries, so
4372 that they are built before the build process of our package starts.
4373
4374 On lines 10-11, we tell Buildroot to pass custom options to LuaRocks
4375 when it is building the package.
4376
4377 On lines 12-13, we specify the licensing terms for the package.
4378
4379 Finally, on line 15, we invoke the luarocks-package macro that
4380 generates all the Makefile rules that actually allows the package to
4381 be built.
4382
4383 17.9.2. luarocks-package reference
4384
4385 LuaRocks is a deployment and management system for Lua modules, and
4386 supports various build.type: builtin, make and cmake. In the context
4387 of Buildroot, the luarocks-package infrastructure only supports the
4388 builtin mode. LuaRocks packages that use the make or cmake build
4389 mechanisms should instead be packaged using the generic-package and
4390 cmake-package infrastructures in Buildroot, respectively.
4391
4392 The main macro of the LuaRocks package infrastructure is
4393 luarocks-package: like generic-package it works by defining a number
4394 of variables providing metadata information about the package, and
4395 then calling luarocks-package. It is worth mentioning that building
4396 LuaRocks packages for the host is not supported, so the macro
4397 host-luarocks-package is not implemented.
4398
4399 Just like the generic infrastructure, the LuaRocks infrastructure
4400 works by defining a number of variables before calling the
4401 luarocks-package macro.
4402
4403 First, all the package metadata information variables that exist in
4404 the generic infrastructure also exist in the LuaRocks infrastructure:
4405 LUAFOO_VERSION, LUAFOO_SOURCE, LUAFOO_SITE, LUAFOO_DEPENDENCIES,
4406 LUAFOO_LICENSE, LUAFOO_LICENSE_FILES.
4407
4408 Two of them are populated by the LuaRocks infrastructure (for the
4409 download step). If your package is not hosted on the LuaRocks mirror
4410 $(BR2_LUAROCKS_MIRROR), you can override them:
4411
4412   * LUAFOO_SITE, which defaults to $(BR2_LUAROCKS_MIRROR)
4413   * LUAFOO_SOURCE, which defaults to luafoo-$
4414     (LUAFOO_VERSION).src.rock
4415
4416 A few additional variables, specific to the LuaRocks infrastructure,
4417 are also defined. They can be overridden in specific cases.
4418
4419   * LUAFOO_ROCKSPEC, which defaults to luafoo-$
4420     (LUAFOO_VERSION).rockspec
4421   * LUAFOO_SUBDIR, which defaults to luafoo-$
4422     (LUAFOO_VERSION_WITHOUT_ROCKSPEC_REVISION)
4423   * LUAFOO_BUILD_OPTS contains additional build options for the
4424     luarocks build call.
4425
4426 17.10. Infrastructure for Perl/CPAN packages
4427
4428 17.10.1. perl-package tutorial
4429
4430 First, let’s see how to write a .mk file for a Perl/CPAN package,
4431 with an example :
4432
4433 01: ################################################################################
4434 02: #
4435 03: # perl-foo-bar
4436 04: #
4437 05: ################################################################################
4438 06:
4439 07: PERL_FOO_BAR_VERSION = 0.02
4440 08: PERL_FOO_BAR_SOURCE = Foo-Bar-$(PERL_FOO_BAR_VERSION).tar.gz
4441 09: PERL_FOO_BAR_SITE = $(BR2_CPAN_MIRROR)/authors/id/M/MO/MONGER
4442 10: PERL_FOO_BAR_DEPENDENCIES = perl-strictures
4443 11: PERL_FOO_BAR_LICENSE = Artistic or GPLv1+
4444 12: PERL_FOO_BAR_LICENSE_FILES = LICENSE
4445 13:
4446 14: $(eval $(perl-package))
4447
4448 On line 7, we declare the version of the package.
4449
4450 On line 8 and 9, we declare the name of the tarball and the location
4451 of the tarball on a CPAN server. Buildroot will automatically
4452 download the tarball from this location.
4453
4454 On line 10, we declare our dependencies, so that they are built
4455 before the build process of our package starts.
4456
4457 On line 11 and 12, we give licensing details about the package (its
4458 license on line 11, and the file containing the license text on line
4459 12).
4460
4461 Finally, on line 14, we invoke the perl-package macro that generates
4462 all the Makefile rules that actually allow the package to be built.
4463
4464 Most of these data can be retrieved from https://metacpan.org/. So,
4465 this file and the Config.in can be generated by running the script
4466 supports/scripts/scancpan Foo-Bar in the Buildroot directory (or in
4467 the BR2_EXTERNAL directory). This script creates a Config.in file and
4468 foo-bar.mk file for the requested package, and also recursively for
4469 all dependencies specified by CPAN. You should still manually edit
4470 the result. In particular, the following things should be checked.
4471
4472   * If the perl module links with a shared library that is provided
4473     by another (non-perl) package, this dependency is not added
4474     automatically. It has to be added manually to
4475     PERL_FOO_BAR_DEPENDENCIES.
4476   * The package/Config.in file has to be updated manually to include
4477     the generated Config.in files. As a hint, the scancpan script
4478     prints out the required source "…" statements, sorted
4479     alphabetically.
4480
4481 17.10.2. perl-package reference
4482
4483 As a policy, packages that provide Perl/CPAN modules should all be
4484 named perl-<something> in Buildroot.
4485
4486 This infrastructure handles various Perl build systems :
4487 ExtUtils-MakeMaker, Module-Build and Module-Build-Tiny. Build.PL is
4488 always preferred when a package provides a Makefile.PL and a
4489 Build.PL.
4490
4491 The main macro of the Perl/CPAN package infrastructure is
4492 perl-package. It is similar to the generic-package macro. The ability
4493 to have target and host packages is also available, with the
4494 host-perl-package macro.
4495
4496 Just like the generic infrastructure, the Perl/CPAN infrastructure
4497 works by defining a number of variables before calling the
4498 perl-package macro.
4499
4500 First, all the package metadata information variables that exist in
4501 the generic infrastructure also exist in the Perl/CPAN
4502 infrastructure: PERL_FOO_VERSION, PERL_FOO_SOURCE, PERL_FOO_PATCH,
4503 PERL_FOO_SITE, PERL_FOO_SUBDIR, PERL_FOO_DEPENDENCIES,
4504 PERL_FOO_INSTALL_TARGET.
4505
4506 Note that setting PERL_FOO_INSTALL_STAGING to YES has no effect
4507 unless a PERL_FOO_INSTALL_STAGING_CMDS variable is defined. The perl
4508 infrastructure doesn’t define these commands since Perl modules
4509 generally don’t need to be installed to the staging directory.
4510
4511 A few additional variables, specific to the Perl/CPAN infrastructure,
4512 can also be defined. Many of them are only useful in very specific
4513 cases, typical packages will therefore only use a few of them.
4514
4515   * PERL_FOO_CONF_ENV/HOST_PERL_FOO_CONF_ENV, to specify additional
4516     environment variables to pass to the perl Makefile.PL or perl
4517     Build.PL. By default, empty.
4518   * PERL_FOO_CONF_OPTS/HOST_PERL_FOO_CONF_OPTS, to specify additional
4519     configure options to pass to the perl Makefile.PL or perl
4520     Build.PL. By default, empty.
4521   * PERL_FOO_BUILD_OPTS/HOST_PERL_FOO_BUILD_OPTS, to specify
4522     additional options to pass to make pure_all or perl Build build
4523     in the build step. By default, empty.
4524   * PERL_FOO_INSTALL_TARGET_OPTS, to specify additional options to
4525     pass to make pure_install or perl Build install in the install
4526     step. By default, empty.
4527   * HOST_PERL_FOO_INSTALL_OPTS, to specify additional options to pass
4528     to make pure_install or perl Build install in the install step.
4529     By default, empty.
4530
4531 17.11. Infrastructure for virtual packages
4532
4533 In Buildroot, a virtual package is a package whose functionalities
4534 are provided by one or more packages, referred to as providers. The
4535 virtual package management is an extensible mechanism allowing the
4536 user to choose the provider used in the rootfs.
4537
4538 For example, OpenGL ES is an API for 2D and 3D graphics on embedded
4539 systems. The implementation of this API is different for the 
4540 Allwinner Tech Sunxi and the Texas Instruments OMAP35xx platforms. So
4541 libgles will be a virtual package and sunxi-mali and ti-gfx will be
4542 the providers.
4543
4544 17.11.1. virtual-package tutorial
4545
4546 In the following example, we will explain how to add a new virtual
4547 package (something-virtual) and a provider for it (some-provider).
4548
4549 First, let’s create the virtual package.
4550
4551 17.11.2. Virtual package’s Config.in file
4552
4553 The Config.in file of virtual package something-virtual should
4554 contain:
4555
4556 01: config BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
4557 02:     bool
4558 03:
4559 04: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL
4560 05:     depends on BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
4561 06:     string
4562
4563 In this file, we declare two options,
4564 BR2_PACKAGE_HAS_SOMETHING_VIRTUAL and
4565 BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL, whose values will be used by
4566 the providers.
4567
4568 17.11.3. Virtual package’s .mk file
4569
4570 The .mk for the virtual package should just evaluate the
4571 virtual-package macro:
4572
4573 01: ################################################################################
4574 02: #
4575 03: # something-virtual
4576 04: #
4577 05: ################################################################################
4578 06:
4579 07: $(eval $(virtual-package))
4580
4581 The ability to have target and host packages is also available, with
4582 the host-virtual-package macro.
4583
4584 17.11.4. Provider’s Config.in file
4585
4586 When adding a package as a provider, only the Config.in file requires
4587 some modifications.
4588
4589 The Config.in file of the package some-provider, which provides the
4590 functionalities of something-virtual, should contain:
4591
4592 01: config BR2_PACKAGE_SOME_PROVIDER
4593 02:     bool "some-provider"
4594 03:     select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
4595 04:     help
4596 05:       This is a comment that explains what some-provider is.
4597 06:
4598 07:       http://foosoftware.org/some-provider/
4599 08:
4600 09: if BR2_PACKAGE_SOME_PROVIDER
4601 10: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL
4602 11:     default "some-provider"
4603 12: endif
4604
4605 On line 3, we select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL, and on line
4606 11, we set the value of BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL to the
4607 name of the provider, but only if it is selected.
4608
4609 See Chapter 25, List of virtual packages for the symbols to select if
4610 you implement a new provider for an existing virtual package.
4611
4612 17.11.5. Provider’s .mk file
4613
4614 The .mk file should also declare an additional variable
4615 SOME_PROVIDER_PROVIDES to contain the names of all the virtual
4616 packages it is an implementation of:
4617
4618 01: SOME_PROVIDER_PROVIDES = something-virtual
4619
4620 Of course, do not forget to add the proper build and runtime
4621 dependencies for this package!
4622
4623 See Chapter 25, List of virtual packages for the names of virtual
4624 packages to provide if you implement a new provider for an existing
4625 virtual package.
4626
4627 17.11.6. Notes on depending on a virtual package
4628
4629 When adding a package that requires a certain FEATURE provided by a
4630 virtual package, you have to use depends on BR2_PACKAGE_HAS_FEATURE,
4631 like so:
4632
4633 config BR2_PACKAGE_HAS_FEATURE
4634     bool
4635
4636 config BR2_PACKAGE_FOO
4637     bool "foo"
4638     depends on BR2_PACKAGE_HAS_FEATURE
4639
4640 17.11.7. Notes on depending on a specific provider
4641
4642 If your package really requires a specific provider, then you’ll have
4643 to make your package depends on this provider; you can not select a
4644 provider.
4645
4646 Let’s take an example with two providers for a FEATURE:
4647
4648 config BR2_PACKAGE_HAS_FEATURE
4649     bool
4650
4651 config BR2_PACKAGE_FOO
4652     bool "foo"
4653     select BR2_PACKAGE_HAS_FEATURE
4654
4655 config BR2_PACKAGE_BAR
4656     bool "bar"
4657     select BR2_PACKAGE_HAS_FEATURE
4658
4659 And you are adding a package that needs FEATURE as provided by foo,
4660 but not as provided by bar.
4661
4662 If you were to use select BR2_PACKAGE_FOO, then the user would still
4663 be able to select BR2_PACKAGE_BAR in the menuconfig. This would
4664 create a configuration inconsistency, whereby two providers of the
4665 same FEATURE would be enabled at once, one explicitly set by the
4666 user, the other implicitly by your select.
4667
4668 Instead, you have to use depends on BR2_PACKAGE_FOO, which avoids any
4669 implicit configuration inconsistency.
4670
4671 17.12. Infrastructure for packages using kconfig for configuration
4672 files
4673
4674 A popular way for a software package to handle user-specified
4675 configuration is kconfig. Among others, it is used by the Linux
4676 kernel, Busybox, and Buildroot itself. The presence of a .config file
4677 and a menuconfig target are two well-known symptoms of kconfig being
4678 used.
4679
4680 Buildroot features an infrastructure for packages that use kconfig
4681 for their configuration. This infrastructure provides the necessary
4682 logic to expose the package’s menuconfig target as foo-menuconfig in
4683 Buildroot, and to handle the copying back and forth of the
4684 configuration file in a correct way.
4685
4686 The kconfig-package infrastructure is based on the generic-package
4687 infrastructure. All variables supported by generic-package are
4688 available in kconfig-package as well. See Section 17.5.2,
4689 “generic-package reference” for more details.
4690
4691 In order to use the kconfig-package infrastructure for a Buildroot
4692 package, the minimally required lines in the .mk file, in addition to
4693 the variables required by the generic-package infrastructure, are:
4694
4695 FOO_KCONFIG_FILE = reference-to-source-configuration-file
4696
4697 $(eval $(kconfig-package))
4698
4699 This snippet creates the following make targets:
4700
4701   * foo-menuconfig, which calls the package’s menuconfig target
4702   * foo-update-config, which copies the configuration back to the
4703     source configuration file.
4704
4705 and ensures that the source configuration file is copied to the build
4706 directory at the right moment.
4707
4708 In addition to these minimally required lines, several optional
4709 variables can be set to suit the needs of the package under
4710 consideration:
4711
4712   * FOO_KCONFIG_EDITORS: a space-separated list of kconfig editors to
4713     support, for example menuconfig xconfig. By default, menuconfig.
4714   * FOO_KCONFIG_OPTS: extra options to pass when calling the kconfig
4715     editors. This may need to include $(FOO_MAKE_OPTS), for example.
4716     By default, empty.
4717   * FOO_KCONFIG_FIXUP_CMDS: a list of shell commands needed to fixup
4718     the configuration file after copying it or running a kconfig
4719     editor. Such commands may be needed to ensure a configuration
4720     consistent with other configuration of Buildroot, for example. By
4721     default, empty.
4722
4723 17.13. Infrastructure for rebar-based packages
4724
4725 17.13.1. rebar-package tutorial
4726
4727 First, let’s see how to write a .mk file for a rebar-based package,
4728 with an example :
4729
4730 01: ################################################################################
4731 02: #
4732 03: # erlang-foobar
4733 04: #
4734 05: ################################################################################
4735 06:
4736 07: ERLANG_FOOBAR_VERSION = 1.0
4737 08: ERLANG_FOOBAR_SOURCE = erlang-foobar-$(ERLANG_FOOBAR_VERSION).tar.xz
4738 09: ERLANG_FOOBAR_SITE = http://www.foosoftware.org/download
4739 10: ERLANG_FOOBAR_DEPENDENCIES = host-libaaa libbbb
4740 11:
4741 12: $(eval $(rebar-package))
4742
4743 On line 7, we declare the version of the package.
4744
4745 On line 8 and 9, we declare the name of the tarball (xz-ed tarball
4746 recommended) and the location of the tarball on the Web. Buildroot
4747 will automatically download the tarball from this location.
4748
4749 On line 10, we declare our dependencies, so that they are built
4750 before the build process of our package starts.
4751
4752 Finally, on line 12, we invoke the rebar-package macro that generates
4753 all the Makefile rules that actually allows the package to be built.
4754
4755 17.13.2. rebar-package reference
4756
4757 The main macro of the rebar package infrastructure is rebar-package.
4758 It is similar to the generic-package macro. The ability to have host
4759 packages is also available, with the host-rebar-package macro.
4760
4761 Just like the generic infrastructure, the rebar infrastructure works
4762 by defining a number of variables before calling the rebar-package
4763 macro.
4764
4765 First, all the package metadata information variables that exist in
4766 the generic infrastructure also exist in the rebar infrastructure:
4767 ERLANG_FOOBAR_VERSION, ERLANG_FOOBAR_SOURCE, ERLANG_FOOBAR_PATCH,
4768 ERLANG_FOOBAR_SITE, ERLANG_FOOBAR_SUBDIR, ERLANG_FOOBAR_DEPENDENCIES,
4769 ERLANG_FOOBAR_INSTALL_STAGING, ERLANG_FOOBAR_INSTALL_TARGET,
4770 ERLANG_FOOBAR_LICENSE and ERLANG_FOOBAR_LICENSE_FILES.
4771
4772 A few additional variables, specific to the rebar infrastructure, can
4773 also be defined. Many of them are only useful in very specific cases,
4774 typical packages will therefore only use a few of them.
4775
4776   * ERLANG_FOOBAR_USE_AUTOCONF, to specify that the package uses 
4777     autoconf at the configuration step. When a package sets this
4778     variable to YES, the autotools infrastructure is used.
4779
4780     Note. You can also use some of the variables from the autotools
4781     infrastructure: ERLANG_FOOBAR_CONF_ENV, ERLANG_FOOBAR_CONF_OPTS,
4782     ERLANG_FOOBAR_AUTORECONF, ERLANG_FOOBAR_AUTORECONF_ENV and
4783     ERLANG_FOOBAR_AUTORECONF_OPTS.
4784
4785   * ERLANG_FOOBAR_USE_BUNDLED_REBAR, to specify that the package has
4786     a bundled version of rebar and that it shall be used. Valid
4787     values are YES or NO (the default).
4788
4789     Note. If the package bundles a rebar utility, but can use the
4790     generic one that Buildroot provides, just say NO (i.e., do not
4791     specify this variable). Only set if it is mandatory to use the 
4792     rebar utility bundled in this package.
4793
4794   * ERLANG_FOOBAR_REBAR_ENV, to specify additional environment
4795     variables to pass to the rebar utility.
4796
4797 With the rebar infrastructure, all the steps required to build and
4798 install the packages are already defined, and they generally work
4799 well for most rebar-based packages. However, when required, it is
4800 still possible to customize what is done in any particular step:
4801
4802   * By adding a post-operation hook (after extract, patch, configure,
4803     build or install). See Section 17.15, “Hooks available in the
4804     various build steps” for details.
4805   * By overriding one of the steps. For example, even if the rebar
4806     infrastructure is used, if the package .mk file defines its own
4807     ERLANG_FOOBAR_BUILD_CMDS variable, it will be used instead of the
4808     default rebar one. However, using this method should be
4809     restricted to very specific cases. Do not use it in the general
4810     case.
4811
4812 17.14. Infrastructure for asciidoc documents
4813
4814 The Buildroot manual, which you are currently reading, is entirely
4815 written using the AsciiDoc [http://asciidoc.org/] mark-up syntax. The
4816 manual is then rendered to many formats:
4817
4818   * html
4819   * split-html
4820   * pdf
4821   * epub
4822   * text
4823
4824 Although Buildroot only contains one document written in AsciiDoc,
4825 there is, as for packages, an infrastructure for rendering documents
4826 using the AsciiDoc syntax.
4827
4828 Also as for packages, the AsciiDoc infrastructure is available from
4829 BR2_EXTERNAL Section 9.2, “Keeping customizations outside of
4830 Buildroot”. This allows documentation for a BR2_EXTERNAL tree to
4831 match the Buildroot documentation, as it will be rendered to the same
4832 formats and use the same layout and theme.
4833
4834 17.14.1. asciidoc-document tutorial
4835
4836 Whereas package infrastructures are suffixed with -package, the
4837 document infrastructures are suffixed with -document. So, the
4838 AsciiDoc infrastructure is named asciidoc-document.
4839
4840 Here is an example to render a simple AsciiDoc document.
4841
4842 01: ################################################################################
4843 02: #
4844 03: # foo-document
4845 04: #
4846 05: ################################################################################
4847 06:
4848 07: FOO_SOURCES = $(sort $(wildcard $(pkgdir)/*))
4849 08: $(eval $(call asciidoc-document))
4850
4851 On line 7, the Makefile declares what the sources of the document
4852 are. Currently, it is expected that the document’s sources are only
4853 local; Buildroot will not attempt to download anything to render a
4854 document. Thus, you must indicate where the sources are. Usually, the
4855 string above is sufficient for a document with no sub-directory
4856 structure.
4857
4858 On line 8, we call the asciidoc-document function, which generates
4859 all the Makefile code necessary to render the document.
4860
4861 17.14.2. asciidoc-document reference
4862
4863 The list of variables that can be set in a .mk file to give metadata
4864 information is (assuming the document name is foo) :
4865
4866   * FOO_SOURCES, mandatory, defines the source files for the
4867     document.
4868   * FOO_RESOURCES, optional, may contain a space-separated list of
4869     paths to one or more directories containing so-called resources
4870     (like CSS or images). By default, empty.
4871
4872 There are also additional hooks (see Section 17.15, “Hooks available
4873 in the various build steps” for general information on hooks), that a
4874 document may set to define extra actions to be done at various steps:
4875
4876   * FOO_POST_RSYNC_HOOKS to run additional commands after the sources
4877     have been copied by Buildroot. This can for example be used to
4878     generate part of the manual with information extracted from the
4879     tree. As an example, Buildroot uses this hook to generate the
4880     tables in the appendices.
4881   * FOO_CHECK_DEPENDENCIES_HOOKS to run additional tests on required
4882     components to generate the document. In AsciiDoc, it is possible
4883     to call filters, that is, programs that will parse an AsciiDoc
4884     block and render it appropriately (e.g. ditaa [http://
4885     ditaa.sourceforge.net/] or aafigure [https://pythonhosted.org/
4886     aafigure/]).
4887   * FOO_CHECK_DEPENDENCIES_<FMT>_HOOKS, to run additional tests for
4888     the specified format <FMT> (see the list of rendered formats,
4889     above).
4890
4891 Here is a complete example that uses all variables and all hooks:
4892
4893 01: ################################################################################
4894 02: #
4895 03: # foo-document
4896 04: #
4897 05: ################################################################################
4898 06:
4899 07: FOO_SOURCES = $(sort $(wildcard $(pkgdir)/*))
4900 08: FOO_RESOURCES = $(sort $(wildcard $(pkgdir)/ressources))
4901 09:
4902 10: define FOO_GEN_EXTRA_DOC
4903 11:     /path/to/generate-script --outdir=$(@D)
4904 12: endef
4905 13: FOO_POST_RSYNC_HOOKS += FOO_GEN_EXTRA_DOC
4906 14:
4907 15: define FOO_CHECK_MY_PROG
4908 16:     if ! which my-prog >/dev/null 2>&1; then \
4909 17:         echo "You need my-prog to generate the foo document"; \
4910 18:         exit 1; \
4911 19:     fi
4912 20: endef
4913 21: FOO_CHECK_DEPENDENCIES_HOOKS += FOO_CHECK_MY_PROG
4914 22:
4915 23: define FOO_CHECK_MY_OTHER_PROG
4916 24:     if ! which my-other-prog >/dev/null 2>&1; then \
4917 25:         echo "You need my-other-prog to generate the foo document as PDF"; \
4918 26:         exit 1; \
4919 27:     fi
4920 28: endef
4921 29: FOO_CHECK_DEPENDENCIES_PDF_HOOKS += FOO_CHECK_MY_OTHER_PROG
4922 30:
4923 31: $(eval $(call asciidoc-document))
4924
4925 17.15. Hooks available in the various build steps
4926
4927 The generic infrastructure (and as a result also the derived
4928 autotools and cmake infrastructures) allow packages to specify hooks.
4929 These define further actions to perform after existing steps. Most
4930 hooks aren’t really useful for generic packages, since the .mk file
4931 already has full control over the actions performed in each step of
4932 the package construction.
4933
4934 The following hook points are available:
4935
4936   * LIBFOO_PRE_DOWNLOAD_HOOKS
4937   * LIBFOO_POST_DOWNLOAD_HOOKS
4938   * LIBFOO_PRE_EXTRACT_HOOKS
4939   * LIBFOO_POST_EXTRACT_HOOKS
4940   * LIBFOO_PRE_RSYNC_HOOKS
4941   * LIBFOO_POST_RSYNC_HOOKS
4942   * LIBFOO_PRE_PATCH_HOOKS
4943   * LIBFOO_POST_PATCH_HOOKS
4944   * LIBFOO_PRE_CONFIGURE_HOOKS
4945   * LIBFOO_POST_CONFIGURE_HOOKS
4946   * LIBFOO_PRE_BUILD_HOOKS
4947   * LIBFOO_POST_BUILD_HOOKS
4948   * LIBFOO_PRE_INSTALL_HOOKS (for host packages only)
4949   * LIBFOO_POST_INSTALL_HOOKS (for host packages only)
4950   * LIBFOO_PRE_INSTALL_STAGING_HOOKS (for target packages only)
4951   * LIBFOO_POST_INSTALL_STAGING_HOOKS (for target packages only)
4952   * LIBFOO_PRE_INSTALL_TARGET_HOOKS (for target packages only)
4953   * LIBFOO_POST_INSTALL_TARGET_HOOKS (for target packages only)
4954   * LIBFOO_PRE_INSTALL_IMAGES_HOOKS
4955   * LIBFOO_POST_INSTALL_IMAGES_HOOKS
4956   * LIBFOO_PRE_LEGAL_INFO_HOOKS
4957   * LIBFOO_POST_LEGAL_INFO_HOOKS
4958
4959 These variables are lists of variable names containing actions to be
4960 performed at this hook point. This allows several hooks to be
4961 registered at a given hook point. Here is an example:
4962
4963 define LIBFOO_POST_PATCH_FIXUP
4964         action1
4965         action2
4966 endef
4967
4968 LIBFOO_POST_PATCH_HOOKS += LIBFOO_POST_PATCH_FIXUP
4969
4970 17.15.1. Using the POST_RSYNC hook
4971
4972 The POST_RSYNC hook is run only for packages that use a local source,
4973 either through the local site method or the OVERRIDE_SRCDIR
4974 mechanism. In this case, package sources are copied using rsync from
4975 the local location into the buildroot build directory. The rsync
4976 command does not copy all files from the source directory, though.
4977 Files belonging to a version control system, like the directories
4978 .git, .hg, etc. are not copied. For most packages this is sufficient,
4979 but a given package can perform additional actions using the
4980 POST_RSYNC hook.
4981
4982 In principle, the hook can contain any command you want. One specific
4983 use case, though, is the intentional copying of the version control
4984 directory using rsync. The rsync command you use in the hook can,
4985 among others, use the following variables:
4986
4987   * $(SRCDIR): the path to the overridden source directory
4988   * $(@D): the path to the build directory
4989
4990 17.16. Gettext integration and interaction with packages
4991
4992 Many packages that support internationalization use the gettext
4993 library. Dependencies for this library are fairly complicated and
4994 therefore, deserve some explanation.
4995
4996 The uClibc C library doesn’t implement gettext functionality;
4997 therefore with this C library, a separate gettext must be compiled,
4998 which is provided by the additional libintl library, part of the
4999 gettext package.
5000
5001 On the other hand, the glibc C library does integrate its own gettext
5002 library functions, so it is not necessary to build a separate libintl
5003 library.
5004
5005 However, certain packages need some gettext utilities on the target,
5006 such as the gettext program itself, which allows to retrieve
5007 translated strings, from the command line.
5008
5009 Additionally, some packages (such as libglib2) do require gettext
5010 functions unconditionally, while other packages (in general, those
5011 who support --disable-nls) only require gettext functions when locale
5012 support is enabled.
5013
5014 Therefore, Buildroot defines two configuration options:
5015
5016   * BR2_NEEDS_GETTEXT, which is true as soon as the toolchain doesn’t
5017     provide its own gettext implementation
5018   * BR2_NEEDS_GETTEXT_IF_LOCALE, which is true if the toolchain
5019     doesn’t provide its own gettext implementation and if locale
5020     support is enabled
5021
5022 Packages that need gettext only when locale support is enabled
5023 should:
5024
5025   * use select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE in
5026     the Config.in file;
5027   * use $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) in the package
5028     DEPENDENCIES variable in the .mk file.
5029
5030 Packages that unconditionally need gettext (which should be very
5031 rare) should:
5032
5033   * use select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT in the
5034     Config.in file;
5035   * use $(if $(BR2_NEEDS_GETTEXT),gettext) in the package
5036     DEPENDENCIES variable in the .mk file.
5037
5038 Packages that need the gettext utilities on the target (should be
5039 rare) should:
5040
5041   * use select BR2_PACKAGE_GETTEXT in their Config.in file,
5042     indicating in a comment above that it’s a runtime dependency
5043     only.
5044   * not add any gettext dependency in the DEPENDENCIES variable of
5045     their .mk file.
5046
5047 17.17. Tips and tricks
5048
5049 17.17.1. Package name, config entry name and makefile variable
5050 relationship
5051
5052 In Buildroot, there is some relationship between:
5053
5054   * the package name, which is the package directory name (and the
5055     name of the *.mk file);
5056   * the config entry name that is declared in the Config.in file;
5057   * the makefile variable prefix.
5058
5059 It is mandatory to maintain consistency between these elements, using
5060 the following rules:
5061
5062   * the package directory and the *.mk name are the package name
5063     itself (e.g.: package/foo-bar_boo/foo-bar_boo.mk);
5064   * the make target name is the package name itself (e.g.:
5065     foo-bar_boo);
5066   * the config entry is the upper case package name with . and -
5067     characters substituted with _, prefixed with BR2_PACKAGE_ (e.g.:
5068     BR2_PACKAGE_FOO_BAR_BOO);
5069   * the *.mk file variable prefix is the upper case package name with
5070     . and - characters substituted with _ (e.g.:
5071     FOO_BAR_BOO_VERSION).
5072
5073 17.17.2. How to add a package from GitHub
5074
5075 Packages on GitHub often don’t have a download area with release
5076 tarballs. However, it is possible to download tarballs directly from
5077 the repository on GitHub. As GitHub is known to have changed download
5078 mechanisms in the past, the github helper function should be used as
5079 shown below.
5080
5081 # Use a tag or a full commit ID
5082 FOO_VERSION = v1.0
5083 FOO_SITE = $(call github,<user>,<package>,$(FOO_VERSION))
5084
5085 Notes
5086
5087   * The FOO_VERSION can either be a tag or a commit ID.
5088   * The tarball name generated by github matches the default one from
5089     Buildroot (e.g.:
5090     foo-f6fb6654af62045239caed5950bc6c7971965e60.tar.gz), so it is
5091     not necessary to specify it in the .mk file.
5092   * When using a commit ID as version, you should use the full 40 hex
5093     characters.
5094
5095 If the package you wish to add does have a release section on GitHub,
5096 the maintainer may have uploaded a release tarball, or the release
5097 may just point to the automatically generated tarball from the git
5098 tag. If there is a release tarball uploaded by the maintainer, we
5099 prefer to use that since it may be slightly different (e.g. it
5100 contains a configure script so we don’t need to do AUTORECONF).
5101
5102 You can see on the release page if it’s an uploaded tarball or a git
5103 tag:
5104
5105   * If there is a green download button, like mongrel2 [https://
5106     github.com/zedshaw/mongrel2/releases/tag/v1.9.1], then it was
5107     uploaded by the maintainer and you should use the link of that
5108     button to specify FOO_SITE, and not use the github helper.
5109   * If there is grey download button, like xbmc [https://github.com/
5110     xbmc/xbmc/releases/tag/13.2-Gotham], then it’s an automatically
5111     generated tarball and you should use the github helper function.
5112
5113 17.18. Conclusion
5114
5115 As you can see, adding a software package to Buildroot is simply a
5116 matter of writing a Makefile using an existing example and modifying
5117 it according to the compilation process required by the package.
5118
5119 If you package software that might be useful for other people, don’t
5120 forget to send a patch to the Buildroot mailing list (see
5121 Section 21.5, “Submitting patches”)!
5122
5123 Chapter 18. Patching a package
5124
5125 While integrating a new package or updating an existing one, it may
5126 be necessary to patch the source of the software to get it
5127 cross-built within Buildroot.
5128
5129 Buildroot offers an infrastructure to automatically handle this
5130 during the builds. It supports three ways of applying patch sets:
5131 downloaded patches, patches supplied within buildroot and patches
5132 located in a user-defined global patch directory.
5133
5134 18.1. Providing patches
5135
5136 18.1.1. Downloaded
5137
5138 If it is necessary to apply a patch that is available for download,
5139 then add it to the <packagename>_PATCH variable. It is downloaded
5140 from the same site as the package itself. It can be a single patch,
5141 or a tarball containing a patch series.
5142
5143 This method is typically used for packages from Debian.
5144
5145 18.1.2. Within Buildroot
5146
5147 Most patches are provided within Buildroot, in the package directory;
5148 these typically aim to fix cross-compilation, libc support, or other
5149 such issues.
5150
5151 These patch files should be named <number>-<description>.patch.
5152
5153 Notes
5154
5155   * The patch files coming with Buildroot should not contain any
5156     package version reference in their filename.
5157   * The field <number> in the patch file name refers to the apply
5158     order, and shall start at 1; It is preferred to pad the number
5159     with zeros up to 4 digits, like git-format-patch does. E.g.:
5160     0001-foobar-the-buz.patch
5161   * Previously, it was mandatory for patches to be prefixed with the
5162     name of the package, like <package>-<number>-<description>.patch,
5163     but that is no longer the case. Existing packages will be fixed
5164     as time passes. Do not prefix patches with the package name.
5165   * Previously, a series file, as used by quilt, could also be added
5166     in the package directory. In that case, the series file defines
5167     the patch application order. This is deprecated, and will be
5168     removed in the future. Do not use a series file.
5169
5170 18.1.3. Global patch directory
5171
5172 The BR2_GLOBAL_PATCH_DIR configuration file option can be used to
5173 specify a space separated list of one or more directories containing
5174 global package patches. See Section 9.8, “Adding project-specific
5175 patches” for details.
5176
5177 18.2. How patches are applied
5178
5179  1. Run the <packagename>_PRE_PATCH_HOOKS commands if defined;
5180  2. Cleanup the build directory, removing any existing *.rej files;
5181  3. If <packagename>_PATCH is defined, then patches from these
5182     tarballs are applied;
5183  4. If there are some *.patch files in the package’s Buildroot
5184     directory or in a package subdirectory named <packageversion>,
5185     then:
5186
5187       + If a series file exists in the package directory, then
5188         patches are applied according to the series file;
5189       + Otherwise, patch files matching <packagename>-*.patch are
5190         applied in alphabetical order. So, to ensure they are applied
5191         in the right order, it is highly recommended to name the
5192         patch files like this: <packagename>-<number>-
5193         <description>.patch, where <number> refers to the apply order
5194         .
5195  5. If BR2_GLOBAL_PATCH_DIR is defined, the directories will be
5196     enumerated in the order they are specified. The patches are
5197     applied as described in the previous step.
5198  6. Run the <packagename>_POST_PATCH_HOOKS commands if defined.
5199
5200 If something goes wrong in the steps 3 or 4, then the build fails.
5201
5202 18.3. Format and licensing of the package patches
5203
5204 Patches are released under the same license as the software that is
5205 modified.
5206
5207 A message explaining what the patch does, and why it is needed,
5208 should be added in the header commentary of the patch.
5209
5210 You should add a Signed-off-by statement in the header of the each
5211 patch to help with keeping track of the changes and to certify that
5212 the patch is released under the same license as the software that is
5213 modified.
5214
5215 If the software is under version control, it is recommended to use
5216 the upstream SCM software to generate the patch set.
5217
5218 Otherwise, concatenate the header with the output of the diff -purN
5219 package-version.orig/ package-version/ command.
5220
5221 At the end, the patch should look like:
5222
5223 configure.ac: add C++ support test
5224
5225 Signed-off-by: John Doe <john.doe@noname.org>
5226
5227 --- configure.ac.orig
5228 +++ configure.ac
5229 @@ -40,2 +40,12 @@
5230
5231 AC_PROG_MAKE_SET
5232 +
5233 +AC_CACHE_CHECK([whether the C++ compiler works],
5234 +               [rw_cv_prog_cxx_works],
5235 +               [AC_LANG_PUSH([C++])
5236 +                AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
5237 +                               [rw_cv_prog_cxx_works=yes],
5238 +                               [rw_cv_prog_cxx_works=no])
5239 +                AC_LANG_POP([C++])])
5240 +
5241 +AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])
5242
5243 18.4. Integrating patches found on the Web
5244
5245 When integrating a patch of which you are not the author, you have to
5246 add a few things in the header of the patch itself.
5247
5248 Depending on whether the patch has been obtained from the project
5249 repository itself, or from somewhere on the web, add one of the
5250 following tags:
5251
5252 Backported from: <some commit id>
5253
5254 or
5255
5256 Fetch from: <some url>
5257
5258 It is also sensible to add a few words about any changes to the patch
5259 that may have been necessary.
5260
5261 Chapter 19. Download infrastructure
5262
5263 TODO
5264
5265 Chapter 20. Debugging Buildroot
5266
5267 It is possible to instrument the steps Buildroot does when building
5268 packages. Define the variable BR2_INSTRUMENTATION_SCRIPTS to contain
5269 the path of one or more scripts (or other executables), in a
5270 space-separated list, you want called before and after each step. The
5271 scripts are called in sequence, with three parameters:
5272
5273   * start or end to denote the start (resp. the end) of a step;
5274   * the name of the step about to be started, or which just ended;
5275   * the name of the package.
5276
5277 For example :
5278
5279 make BR2_INSTRUMENTATION_SCRIPTS="/path/to/my/script1 /path/to/my/script2"
5280
5281 The list of steps is:
5282
5283   * extract
5284   * patch
5285   * configure
5286   * build
5287   * install-host, when a host-package is installed in $(HOST_DIR)
5288   * install-target, when a target-package is installed in $
5289     (TARGET_DIR)
5290   * install-staging, when a target-package is installed in $
5291     (STAGING_DIR)
5292   * install-image, when a target-package installs files in $
5293     (BINARIES_DIR)
5294
5295 The script has access to the following variables:
5296
5297   * BR2_CONFIG: the path to the Buildroot .config file
5298   * HOST_DIR, STAGING_DIR, TARGET_DIR: see Section 17.5.2,
5299     “generic-package reference”
5300   * BUILD_DIR: the directory where packages are extracted and built
5301   * BINARIES_DIR: the place where all binary files (aka images) are
5302     stored
5303   * BASE_DIR: the base output directory
5304
5305 Chapter 21. Contributing to Buildroot
5306
5307 There are many ways in which you can contribute to Buildroot:
5308 analyzing and fixing bugs, analyzing and fixing package build
5309 failures detected by the autobuilders, testing and reviewing patches
5310 sent by other developers, working on the items in our TODO list and
5311 sending your own improvements to Buildroot or its manual. The
5312 following sections give a little more detail on each of these items.
5313
5314 If you are interested in contributing to Buildroot, the first thing
5315 you should do is to subscribe to the Buildroot mailing list. This
5316 list is the main way of interacting with other Buildroot developers
5317 and to send contributions to. If you aren’t subscribed yet, then
5318 refer to Chapter 5, Community resources for the subscription link.
5319
5320 If you are going to touch the code, it is highly recommended to use a
5321 git repository of Buildroot, rather than starting from an extracted
5322 source code tarball. Git is the easiest way to develop from and
5323 directly send your patches to the mailing list. Refer to Chapter 3, 
5324 Getting Buildroot for more information on obtaining a Buildroot git
5325 tree.
5326
5327 21.1. Reproducing, analyzing and fixing bugs
5328
5329 A first way of contributing is to have a look at the open bug reports
5330 in the Buildroot bug tracker [https://bugs.busybox.net/buglist.cgi?
5331 product=buildroot]. As we strive to keep the bug count as small as
5332 possible, all help in reproducing, analyzing and fixing reported bugs
5333 is more than welcome. Don’t hesitate to add a comment to bug reports
5334 reporting your findings, even if you don’t yet see the full picture.
5335
5336 21.2. Analyzing and fixing autobuild failures
5337
5338 The Buildroot autobuilders are a set of build machines that
5339 continuously run Buildroot builds based on random configurations.
5340 This is done for all architectures supported by Buildroot, with
5341 various toolchains, and with a random selection of packages. With the
5342 large commit activity on Buildroot, these autobuilders are a great
5343 help in detecting problems very early after commit.
5344
5345 All build results are available at http://autobuild.buildroot.org,
5346 statistics are at http://autobuild.buildroot.org/stats.php. Every
5347 day, an overview of all failed packages is sent to the mailing list.
5348
5349 Detecting problems is great, but obviously these problems have to be
5350 fixed as well. Your contribution is very welcome here! There are
5351 basically two things that can be done:
5352
5353   * Analyzing the problems. The daily summary mails do not contain
5354     details about the actual failures: in order to see what’s going
5355     on you have to open the build log and check the last output.
5356     Having someone doing this for all packages in the mail is very
5357     useful for other developers, as they can make a quick initial
5358     analysis based on this output alone.
5359   * Fixing a problem. When fixing autobuild failures, you should
5360     follow these steps:
5361
5362      1. Check if you can reproduce the problem by building with the
5363         same configuration. You can do this manually, or use the
5364         br-reproduce-build [http://git.buildroot.org/buildroot-test/
5365         tree/utils/br-reproduce-build] script that will automatically
5366         clone a Buildroot git repository, checkout the correct
5367         revision, download and set the right configuration, and start
5368         the build.
5369      2. Analyze the problem and create a fix.
5370      3. Verify that the problem is really fixed by starting from a
5371         clean Buildroot tree and only applying your fix.
5372      4. Send the fix to the Buildroot mailing list (see Section 21.5,
5373         “Submitting patches”). In case you created a patch against
5374         the package sources, you should also send the patch upstream
5375         so that the problem will be fixed in a later release, and the
5376         patch in Buildroot can be removed. In the commit message of a
5377         patch fixing an autobuild failure, add a reference to the
5378         build result directory, as follows:
5379
5380 Fixes http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069
5381
5382 21.3. Reviewing and testing patches
5383
5384 With the amount of patches sent to the mailing list each day, the
5385 maintainer has a very hard job to judge which patches are ready to
5386 apply and which ones aren’t. Contributors can greatly help here by
5387 reviewing and testing these patches.
5388
5389 In the review process, do not hesitate to respond to patch
5390 submissions for remarks, suggestions or anything that will help
5391 everyone to understand the patches and make them better. Please use
5392 internet style replies in plain text emails when responding to patch
5393 submissions.
5394
5395 To indicate approval of a patch, there are three formal tags that
5396 keep track of this approval. To add your tag to a patch, reply to it
5397 with the approval tag below the original author’s Signed-off-by line.
5398 These tags will be picked up automatically by patchwork (see
5399 Section 21.3.1, “Applying Patches from Patchwork”) and will be part
5400 of the commit log when the patch is accepted.
5401
5402 Tested-by
5403     Indicates that the patch has been tested successfully. You are
5404     encouraged to specify what kind of testing you performed
5405     (compile-test on architecture X and Y, runtime test on target A,
5406     …). This additional information helps other testers and the
5407     maintainer.
5408 Reviewed-by
5409     Indicates that you code-reviewed the patch and did your best in
5410     spotting problems, but you are not sufficiently familiar with the
5411     area touched to provide an Acked-by tag. This means that there
5412     may be remaining problems in the patch that would be spotted by
5413     someone with more experience in that area. Should such problems
5414     be detected, your Reviewed-by tag remains appropriate and you
5415     cannot be blamed.
5416 Acked-by
5417     Indicates that you code-reviewed the patch and you are familiar
5418     enough with the area touched to feel that the patch can be
5419     committed as-is (no additional changes required). In case it
5420     later turns out that something is wrong with the patch, your
5421     Acked-by could be considered inappropriate. The difference
5422     between Acked-by and Reviewed-by is thus mainly that you are
5423     prepared to take the blame on Acked patches, but not on Reviewed
5424     ones.
5425
5426 If you reviewed a patch and have comments on it, you should simply
5427 reply to the patch stating these comments, without providing a
5428 Reviewed-by or Acked-by tag. These tags should only be provided if
5429 you judge the patch to be good as it is.
5430
5431 It is important to note that neither Reviewed-by nor Acked-by imply
5432 that testing has been performed. To indicate that you both reviewed
5433 and tested the patch, provide two separate tags (Reviewed/Acked-by
5434 and Tested-by).
5435
5436 Note also that any developer can provide Tested/Reviewed/Acked-by
5437 tags, without exception, and we encourage everyone to do this.
5438 Buildroot does not have a defined group of core developers, it just
5439 so happens that some developers are more active than others. The
5440 maintainer will value tags according to the track record of their
5441 submitter. Tags provided by a regular contributor will naturally be
5442 trusted more than tags provided by a newcomer. As you provide tags
5443 more regularly, your trustworthiness (in the eyes of the maintainer)
5444 will go up, but any tag provided is valuable.
5445
5446 Buildroot’s Patchwork website can be used to pull in patches for
5447 testing purposes. Please see Section 21.3.1, “Applying Patches from
5448 Patchwork” for more information on using Buildroot’s Patchwork
5449 website to apply patches.
5450
5451 21.3.1. Applying Patches from Patchwork
5452
5453 The main use of Buildroot’s Patchwork website for a developer is for
5454 pulling in patches into their local git repository for testing
5455 purposes.
5456
5457 When browsing patches in the patchwork management interface, an mbox
5458 link is provided at the top of the page. Copy this link address and
5459 run the following commands:
5460
5461 $ git checkout -b <test-branch-name>
5462 $ wget -O - <mbox-url> | git am
5463
5464 Another option for applying patches is to create a bundle. A bundle
5465 is a set of patches that you can group together using the patchwork
5466 interface. Once the bundle is created and the bundle is made public,
5467 you can copy the mbox link for the bundle and apply the bundle using
5468 the above commands.
5469
5470 21.4. Work on items from the TODO list
5471
5472 If you want to contribute to Buildroot but don’t know where to start,
5473 and you don’t like any of the above topics, you can always work on
5474 items from the Buildroot TODO list [http://elinux.org/Buildroot#
5475 Todo_list]. Don’t hesitate to discuss an item first on the mailing
5476 list or on IRC. Do edit the wiki to indicate when you start working
5477 on an item, so we avoid duplicate efforts.
5478
5479 21.5. Submitting patches
5480
5481 Note
5482
5483 Please, do not attach patches to bugs, send them to the mailing list
5484 instead.
5485
5486 If you made some changes to Buildroot and you would like to
5487 contribute them to the Buildroot project, proceed as follows.
5488 Starting from the changes committed in your local git view, rebase
5489 your development branch on top of the upstream tree before generating
5490 a patch set. To do so, run:
5491
5492 $ git fetch --all --tags
5493 $ git rebase origin/master
5494
5495 Now, you are ready to generate then submit your patch set.
5496
5497 To generate it, run:
5498
5499 $ git format-patch -M -n -s -o outgoing origin/master
5500
5501 This will generate patch files in the outgoing subdirectory,
5502 automatically adding the Signed-off-by line.
5503
5504 Once patch files are generated, you can review/edit the commit
5505 message before submitting them, using your favorite text editor.
5506
5507 Lastly, send/submit your patch set to the Buildroot mailing list:
5508
5509 $ git send-email --to buildroot@buildroot.org outgoing/*
5510
5511 Note that git should be configured to use your mail account. To
5512 configure git, see man git-send-email or google it.
5513
5514 If you do not use git send-email, make sure posted patches are not
5515 line-wrapped, otherwise they cannot easily be applied. In such a
5516 case, fix your e-mail client, or better yet, learn to use git
5517 send-email.
5518
5519 21.5.1. Cover letter
5520
5521 If you want to present the whole patch set in a separate mail, add
5522 --cover-letter to the git format-patch command (see man
5523 git-format-patch for further information). This will generate a
5524 template for an introduction e-mail to your patch series.
5525
5526 A cover letter may be useful to introduce the changes you propose in
5527 the following cases:
5528
5529   * large number of commits in the series;
5530   * deep impact of the changes in the rest of the project;
5531   * RFC ^[4];
5532   * whenever you feel it will help presenting your work, your
5533     choices, the review process, etc.
5534
5535 21.5.2. Patch revision changelog
5536
5537 When improvements are requested, the new revision of each commit
5538 should include a changelog of the modifications between each
5539 submission. Note that when your patch series is introduced by a cover
5540 letter, an overall changelog may be added to the cover letter in
5541 addition to the changelog in the individual commits. The best thing
5542 to rework a patch series is by interactive rebasing: git rebase -i
5543 origin/master. Consult the git manual for more information.
5544
5545 When added to the individual commits, this changelog is added when
5546 editing the commit message. Below the Signed-off-by section, add ---
5547 and your changelog.
5548
5549 Although the changelog will be visible for the reviewers in the mail
5550 thread, as well as in patchwork [http://patchwork.buildroot.org], git
5551 will automatically ignores lines below --- when the patch will be
5552 merged. This is the intended behavior: the changelog is not meant to
5553 be preserved forever in the git history of the project.
5554
5555 Hereafter the recommended layout:
5556
5557 Patch title: short explanation, max 72 chars
5558
5559 A paragraph that explains the problem, and how it manifests itself. If
5560 the problem is complex, it is OK to add more paragraphs. All paragraphs
5561 should be wrapped at 72 characters.
5562
5563 A paragraph that explains the root cause of the problem. Again, more
5564 than on paragraph is OK.
5565
5566 Finally, one or more paragraphs that explain how the problem is solved.
5567 Don't hesitate to explain complex solutions in detail.
5568
5569 Signed-off-by: John DOE <john.doe@example.net>
5570
5571 ---
5572 Changes v2 -> v3:
5573   - foo bar  (suggested by Jane)
5574   - bar buz
5575
5576 Changes v1 -> v2:
5577   - alpha bravo  (suggested by John)
5578   - charly delta
5579
5580 Any patch revision should include the version number. The version
5581 number is simply composed of the letter v followed by an integer
5582 greater or equal to two (i.e. "PATCH v2", "PATCH v3" …).
5583
5584 This can be easily handled with git format-patch by using the option
5585 --subject-prefix:
5586
5587 $ git format-patch --subject-prefix "PATCH v4" \
5588     -M -s -o outgoing origin/master
5589
5590 21.6. Reporting issues/bugs or getting help
5591
5592 Before reporting any issue, please check in the mailing list archive
5593 Chapter 5, Community resources whether someone has already reported
5594 and/or fixed a similar problem.
5595
5596 However you choose to report bugs or get help, either by opening a
5597 bug in the bug tracker Chapter 5, Community resources or by sending a
5598 mail to the mailing list Chapter 5, Community resources, there are a
5599 number of details to provide in order to help people reproduce and
5600 find a solution to the issue.
5601
5602 Try to think as if you were trying to help someone else; in that
5603 case, what would you need?
5604
5605 Here is a short list of details to provide in such case:
5606
5607   * host machine (OS/release)
5608   * version of Buildroot
5609   * target for which the build fails
5610   * package(s) for which the build fails
5611   * the command that fails and its output
5612   * any information you think that may be relevant
5613
5614 Additionally, you should add the .config file (or if you know how, a
5615 defconfig; see Section 9.3, “Storing the Buildroot configuration”).
5616
5617 If some of these details are too large, do not hesitate to use a
5618 pastebin service. Note that not all available pastebin services will
5619 preserve Unix-style line terminators when downloading raw pastes.
5620 Following pastebin services are known to work correctly: - https://
5621 gist.github.com/ - http://code.bulix.org/
5622
5623
5624 ---------------------------------------------------------------------
5625
5626 ^[4] RFC: (Request for comments) change proposal
5627
5628 Part IV. Appendix
5629
5630 Table of Contents
5631
5632 22. Makedev syntax documentation
5633 23. Makeusers syntax documentation
5634 24. List of target packages available in Buildroot
5635 25. List of virtual packages
5636 26. List of host utilities available in Buildroot
5637 27. Deprecated features
5638
5639 Chapter 22. Makedev syntax documentation
5640
5641 The makedev syntax is used in several places in Buildroot to define
5642 changes to be made for permissions, or which device files to create
5643 and how to create them, in order to avoid calls to mknod.
5644
5645 This syntax is derived from the makedev utility, and more complete
5646 documentation can be found in the package/makedevs/README file.
5647
5648 It takes the form of a space separated list of fields, one file per
5649 line; the fields are:
5650
5651 +--------------------------------------------------+
5652 |name|type|mode|uid|gid|major|minor|start|inc|count|
5653 +--------------------------------------------------+
5654
5655 There are a few non-trivial blocks:
5656
5657   * name is the path to the file you want to create/modify
5658   * type is the type of the file, being one of:
5659
5660       + f: a regular file
5661       + d: a directory
5662       + r: a directory recursively
5663       + c: a character device file
5664       + b: a block device file
5665       + p: a named pipe
5666   * mode, uid and gid are the usual permissions settings
5667   * major and minor are here for device files - set to - for other
5668     files
5669   * start, inc and count are for when you want to create a batch of
5670     files, and can be reduced to a loop, beginning at start,
5671     incrementing its counter by inc until it reaches count
5672
5673 Let’s say you want to change the permissions of a given file; using
5674 this syntax, you will need to put:
5675
5676 /usr/bin/foobar f 644 0 0 - - - - -
5677
5678 Alternatively, if you want to change owner/permission of a directory
5679 recursively, you can put:
5680
5681 /usr/share/myapp r 750 myuser myuser - - - - -
5682
5683 On the other hand, if you want to create the device file /dev/hda and
5684 the corresponding 15 files for the partitions, you will need for /dev
5685 /hda:
5686
5687 /dev/hda b 640 0 0 3 0 0 0 -
5688
5689 and then for device files corresponding to the partitions of /dev/
5690 hda, /dev/hdaX, X ranging from 1 to 15:
5691
5692 /dev/hda b 640 0 0 3 1 1 1 15
5693
5694 Chapter 23. Makeusers syntax documentation
5695
5696 The syntax to create users is inspired by the makedev syntax, above,
5697 but is specific to Buildroot.
5698
5699 The syntax for adding a user is a space-separated list of fields, one
5700 user per line; the fields are:
5701
5702 +---------------------------------------------------------+
5703 |username|uid|group|gid|password|home|shell|groups|comment|
5704 +---------------------------------------------------------+
5705
5706 Where:
5707
5708   * username is the desired user name (aka login name) for the user.
5709     It can not be root, and must be unique. If set to -, then just a
5710     group will be created.
5711   * uid is the desired UID for the user. It must be unique, and not
5712     0. If set to -1, then a unique UID will be computed by Buildroot
5713     in the range [1000…1999]
5714   * group is the desired name for the user’s main group. It can not
5715     be root. If the group does not exist, it will be created.
5716   * gid is the desired GID for the user’s main group. It must be
5717     unique, and not 0. If set to -1, and the group does not already
5718     exist, then a unique GID will be computed by Buildroot in the
5719     range [1000..1999]
5720   * password is the crypt(3)-encoded password. If prefixed with !,
5721     then login is disabled. If prefixed with =, then it is
5722     interpreted as clear-text, and will be crypt-encoded (using MD5).
5723     If prefixed with !=, then the password will be crypt-encoded
5724     (using MD5) and login will be disabled. If set to *, then login
5725     is not allowed.
5726   * home is the desired home directory for the user. If set to -, no
5727     home directory will be created, and the user’s home will be /.
5728     Explicitly setting home to / is not allowed.
5729   * shell is the desired shell for the user. If set to -, then /bin/
5730     false is set as the user’s shell.
5731   * groups is the comma-separated list of additional groups the user
5732     should be part of. If set to -, then the user will be a member of
5733     no additional group. Missing groups will be created with an
5734     arbitrary gid.
5735   * comment (aka GECOS [https://en.wikipedia.org/wiki/Gecos_field]
5736     field) is an almost-free-form text.
5737
5738 There are a few restrictions on the content of each field:
5739
5740   * except for comment, all fields are mandatory.
5741   * except for comment, fields may not contain spaces.
5742   * no field may contain a colon (:).
5743
5744 If home is not -, then the home directory, and all files below, will
5745 belong to the user and its main group.
5746
5747 Examples:
5748
5749 foo -1 bar -1 !=blabla /home/foo /bin/sh alpha,bravo Foo user
5750
5751 This will create this user:
5752
5753   * username (aka login name) is: foo
5754   * uid is computed by Buildroot
5755   * main group is: bar
5756   * main group gid is computed by Buildroot
5757   * clear-text password is: blabla, will be crypt(3)-encoded, and
5758     login is disabled.
5759   * home is: /home/foo
5760   * shell is: /bin/sh
5761   * foo is also a member of groups: alpha and bravo
5762   * comment is: Foo user
5763
5764 test 8000 wheel -1 = - /bin/sh - Test user
5765
5766 This will create this user:
5767
5768   * username (aka login name) is: test
5769   * uid is : 8000
5770   * main group is: wheel
5771   * main group gid is computed by Buildroot, and will use the value
5772     defined in the rootfs skeleton
5773   * password is empty (aka no password).
5774   * home is / but will not belong to test
5775   * shell is: /bin/sh
5776   * test is not a member of any additional groups
5777   * comment is: Test user
5778
5779 Chapter 24. List of target packages available in Buildroot
5780
5781 +-------------------------------------------------------------------+
5782 |           Packages            |Target packages → …                |
5783 |-------------------------------+-----------------------------------|
5784 |            a10disp            |→ Hardware handling                |
5785 |-------------------------------+-----------------------------------|
5786 |              acl              |→ System tools                     |
5787 |-------------------------------+-----------------------------------|
5788 |             acpid             |→ Hardware handling                |
5789 |-------------------------------+-----------------------------------|
5790 |      adwaita icon theme       |→ Fonts, icons, sounds and themes  |
5791 |-------------------------------+-----------------------------------|
5792 |            aespipe            |→ Miscellaneous                    |
5793 |-------------------------------+-----------------------------------|
5794 |            agent++            |→ Libraries → Networking           |
5795 |-------------------------------+-----------------------------------|
5796 |             aiccu             |→ Networking applications          |
5797 |-------------------------------+-----------------------------------|
5798 |          aircrack-ng          |→ Networking applications          |
5799 |-------------------------------+-----------------------------------|
5800 |           alsa-lib            |→ Libraries → Audio/Sound          |
5801 |-------------------------------+-----------------------------------|
5802 |          alsa-utils           |→ Audio and video applications     |
5803 |-------------------------------+-----------------------------------|
5804 |         alsamixergui          |→ Graphic libraries and            |
5805 |                               |applications (graphic/text)        |
5806 |-------------------------------+-----------------------------------|
5807 |      am335x-pru-package       |→ Hardware handling                |
5808 |-------------------------------+-----------------------------------|
5809 |           am33x-cm3           |→ Hardware handling → Firmware     |
5810 |-------------------------------+-----------------------------------|
5811 |            apache             |→ Networking applications          |
5812 |-------------------------------+-----------------------------------|
5813 |           apitrace            |→ Graphic libraries and            |
5814 |                               |applications (graphic/text)        |
5815 |-------------------------------+-----------------------------------|
5816 |         applewmproto          |→ Graphic libraries and            |
5817 |                               |applications (graphic/text) → X11R7|
5818 |                               |X protocols                        |
5819 |-------------------------------+-----------------------------------|
5820 |            appres             |→ Graphic libraries and            |
5821 |                               |applications (graphic/text) → X11R7|
5822 |                               |Applications                       |
5823 |-------------------------------+-----------------------------------|
5824 |              apr              |→ Libraries → Other                |
5825 |-------------------------------+-----------------------------------|
5826 |           apr-util            |→ Libraries → Other                |
5827 |-------------------------------+-----------------------------------|
5828 |        argp-standalone        |→ Libraries → Other                |
5829 |-------------------------------+-----------------------------------|
5830 |             argus             |→ Networking applications          |
5831 |-------------------------------+-----------------------------------|
5832 |           armadillo           |→ Libraries → Other                |
5833 |-------------------------------+-----------------------------------|
5834 |           arptables           |→ Networking applications          |
5835 |-------------------------------+-----------------------------------|
5836 |              at               |→ Shell and utilities              |
5837 |-------------------------------+-----------------------------------|
5838 |             atftp             |→ Networking applications          |
5839 |-------------------------------+-----------------------------------|
5840 |              atk              |→ Libraries → Graphics             |
5841 |-------------------------------+-----------------------------------|
5842 |             attr              |→ System tools                     |
5843 |-------------------------------+-----------------------------------|
5844 |           audiofile           |→ Libraries → Audio/Sound          |
5845 |-------------------------------+-----------------------------------|
5846 |             aumix             |→ Audio and video applications     |
5847 |-------------------------------+-----------------------------------|
5848 |            autossh            |→ Networking applications          |
5849 |-------------------------------+-----------------------------------|
5850 |             avahi             |→ Networking applications          |
5851 |-------------------------------+-----------------------------------|
5852 |            avrdude            |→ Hardware handling                |
5853 |-------------------------------+-----------------------------------|
5854 |             axel              |→ Networking applications          |
5855 |-------------------------------+-----------------------------------|
5856 |         b43-firmware          |→ Hardware handling → Firmware     |
5857 |-------------------------------+-----------------------------------|
5858 |          bandwidthd           |→ Networking applications          |
5859 |-------------------------------+-----------------------------------|
5860 |             bash              |→ Shell and utilities              |
5861 |-------------------------------+-----------------------------------|
5862 |            batctl             |→ Networking applications          |
5863 |-------------------------------+-----------------------------------|
5864 |              bc               |→ Miscellaneous                    |
5865 |-------------------------------+-----------------------------------|
5866 |         bcache tools          |→ Hardware handling                |
5867 |-------------------------------+-----------------------------------|
5868 |            bcusdk             |→ Networking applications          |
5869 |-------------------------------+-----------------------------------|
5870 |           bdftopcf            |→ Graphic libraries and            |
5871 |                               |applications (graphic/text) → X11R7|
5872 |                               |Applications                       |
5873 |-------------------------------+-----------------------------------|
5874 |             bdwgc             |→ Libraries → Other                |
5875 |-------------------------------+-----------------------------------|
5876 |           beecrypt            |→ Libraries → Crypto               |
5877 |-------------------------------+-----------------------------------|
5878 |          beforelight          |→ Graphic libraries and            |
5879 |                               |applications (graphic/text) → X11R7|
5880 |                               |Applications                       |
5881 |-------------------------------+-----------------------------------|
5882 |           bellagio            |→ Audio and video applications     |
5883 |-------------------------------+-----------------------------------|
5884 |           benejson            |→ Libraries → JSON/XML             |
5885 |-------------------------------+-----------------------------------|
5886 |          berkeleydb           |→ Libraries → Database             |
5887 |-------------------------------+-----------------------------------|
5888 |         bigreqsproto          |→ Graphic libraries and            |
5889 |                               |applications (graphic/text) → X11R7|
5890 |                               |X protocols                        |
5891 |-------------------------------+-----------------------------------|
5892 |             bind              |→ Networking applications          |
5893 |-------------------------------+-----------------------------------|
5894 |           binutils            |→ Development tools                |
5895 |-------------------------------+-----------------------------------|
5896 |          biosdevname          |→ Hardware handling                |
5897 |-------------------------------+-----------------------------------|
5898 |            bitmap             |→ Graphic libraries and            |
5899 |                               |applications (graphic/text) → X11R7|
5900 |                               |Applications                       |
5901 |-------------------------------+-----------------------------------|
5902 |        Bitstream Vera         |→ Fonts, icons, sounds and themes  |
5903 |-------------------------------+-----------------------------------|
5904 |     blackbox (deprecated)     |→ Graphic libraries and            |
5905 |                               |applications (graphic/text)        |
5906 |-------------------------------+-----------------------------------|
5907 |           blktrace            |→ Debugging, profiling and         |
5908 |                               |benchmark                          |
5909 |-------------------------------+-----------------------------------|
5910 |          bluez-utils          |→ Networking applications          |
5911 |-------------------------------+-----------------------------------|
5912 |        bluez-utils 5.x        |→ Networking applications          |
5913 |-------------------------------+-----------------------------------|
5914 |             bmon              |→ Networking applications          |
5915 |-------------------------------+-----------------------------------|
5916 |              boa              |→ Networking applications          |
5917 |-------------------------------+-----------------------------------|
5918 |           bonnie++            |→ Debugging, profiling and         |
5919 |                               |benchmark                          |
5920 |-------------------------------+-----------------------------------|
5921 |             boost             |→ Libraries → Other                |
5922 |-------------------------------+-----------------------------------|
5923 |           bootstrap           |→ Libraries → Javascript           |
5924 |-------------------------------+-----------------------------------|
5925 |           bootutils           |→ System tools                     |
5926 |-------------------------------+-----------------------------------|
5927 |             botan             |→ Libraries → Crypto               |
5928 |-------------------------------+-----------------------------------|
5929 |         bridge-utils          |→ Networking applications          |
5930 |-------------------------------+-----------------------------------|
5931 |            bsdiff             |→ Development tools                |
5932 |-------------------------------+-----------------------------------|
5933 |          btrfs-progs          |→ Filesystem and flash utilities   |
5934 |-------------------------------+-----------------------------------|
5935 |            bullet             |→ Libraries → Graphics             |
5936 |-------------------------------+-----------------------------------|
5937 |            bustle             |→ Development tools                |
5938 |-------------------------------+-----------------------------------|
5939 |            BusyBox            |                                   |
5940 |-------------------------------+-----------------------------------|
5941 |            bwm-ng             |→ Networking applications          |
5942 |-------------------------------+-----------------------------------|
5943 |             bzip2             |→ Compressors and decompressors    |
5944 |-------------------------------+-----------------------------------|
5945 |            c-ares             |→ Libraries → Networking           |
5946 |-------------------------------+-----------------------------------|
5947 |          c-periphery          |→ Libraries → Hardware handling    |
5948 |-------------------------------+-----------------------------------|
5949 |        CA Certificates        |→ Libraries → Crypto               |
5950 |-------------------------------+-----------------------------------|
5951 |       cache-calibrator        |→ Debugging, profiling and         |
5952 |                               |benchmark                          |
5953 |-------------------------------+-----------------------------------|
5954 |             cairo             |→ Libraries → Graphics             |
5955 |-------------------------------+-----------------------------------|
5956 |           can-utils           |→ Networking applications          |
5957 |-------------------------------+-----------------------------------|
5958 |          canfestival          |→ Libraries → Networking           |
5959 |-------------------------------+-----------------------------------|
5960 |         cblas/clapack         |→ Libraries → Other                |
5961 |-------------------------------+-----------------------------------|
5962 |            cc-tool            |→ Hardware handling                |
5963 |-------------------------------+-----------------------------------|
5964 |             ccid              |→ Libraries → Hardware handling    |
5965 |-------------------------------+-----------------------------------|
5966 |            ccrypt             |→ Shell and utilities              |
5967 |-------------------------------+-----------------------------------|
5968 |            cdrkit             |→ Hardware handling                |
5969 |-------------------------------+-----------------------------------|
5970 |            cegui06            |→ Graphic libraries and            |
5971 |                               |applications (graphic/text)        |
5972 |-------------------------------+-----------------------------------|
5973 |            celt051            |→ Libraries → Audio/Sound          |
5974 |-------------------------------+-----------------------------------|
5975 |             cgic              |→ Libraries → Networking           |
5976 |-------------------------------+-----------------------------------|
5977 |            cgilua             |→ Interpreter languages and        |
5978 |                               |scripting → Lua libraries/modules  |
5979 |-------------------------------+-----------------------------------|
5980 |            chrony             |→ Networking applications          |
5981 |-------------------------------+-----------------------------------|
5982 |          cifs-utils           |→ Filesystem and flash utilities   |
5983 |-------------------------------+-----------------------------------|
5984 |           civetweb            |→ Networking applications          |
5985 |-------------------------------+-----------------------------------|
5986 |             cJSON             |→ Libraries → JSON/XML             |
5987 |-------------------------------+-----------------------------------|
5988 |            clamav             |→ Miscellaneous                    |
5989 |-------------------------------+-----------------------------------|
5990 |           classpath           |→ Libraries → Other                |
5991 |-------------------------------+-----------------------------------|
5992 |           collectd            |→ Miscellaneous                    |
5993 |-------------------------------+-----------------------------------|
5994 |        compositeproto         |→ Graphic libraries and            |
5995 |                               |applications (graphic/text) → X11R7|
5996 |                               |X protocols                        |
5997 |-------------------------------+-----------------------------------|
5998 |            connman            |→ Networking applications          |
5999 |-------------------------------+-----------------------------------|
6000 |        conntrack-tools        |→ Networking applications          |
6001 |-------------------------------+-----------------------------------|
6002 |             copas             |→ Interpreter languages and        |
6003 |                               |scripting → Lua libraries/modules  |
6004 |-------------------------------+-----------------------------------|
6005 |           coreutils           |→ System tools                     |
6006 |-------------------------------+-----------------------------------|
6007 |             cosmo             |→ Interpreter languages and        |
6008 |                               |scripting → Lua libraries/modules  |
6009 |-------------------------------+-----------------------------------|
6010 |           coxpcall            |→ Interpreter languages and        |
6011 |                               |scripting → Lua libraries/modules  |
6012 |-------------------------------+-----------------------------------|
6013 |            cppcms             |→ Libraries → Other                |
6014 |-------------------------------+-----------------------------------|
6015 |             cppdb             |→ Libraries → Database             |
6016 |-------------------------------+-----------------------------------|
6017 |            cppunit            |→ Development tools                |
6018 |-------------------------------+-----------------------------------|
6019 |            cppzmq             |→ Libraries → Networking           |
6020 |-------------------------------+-----------------------------------|
6021 |            cpuload            |→ System tools                     |
6022 |-------------------------------+-----------------------------------|
6023 |            cramfs             |→ Filesystem and flash utilities   |
6024 |-------------------------------+-----------------------------------|
6025 |             crda              |→ Networking applications          |
6026 |-------------------------------+-----------------------------------|
6027 |        cryptodev-linux        |→ Libraries → Crypto → cryptodev   |
6028 |                               |variant                            |
6029 |-------------------------------+-----------------------------------|
6030 |          cryptsetup           |→ Hardware handling                |
6031 |-------------------------------+-----------------------------------|
6032 |           ctorrent            |→ Networking applications          |
6033 |-------------------------------+-----------------------------------|
6034 |       cups (deprecated)       |→ Networking applications          |
6035 |-------------------------------+-----------------------------------|
6036 |       curlftpfs (FUSE)        |→ Filesystem and flash utilities   |
6037 |-------------------------------+-----------------------------------|
6038 |              cvs              |→ Development tools                |
6039 |-------------------------------+-----------------------------------|
6040 |             cwiid             |→ Hardware handling                |
6041 |-------------------------------+-----------------------------------|
6042 |             czmq              |→ Libraries → Networking           |
6043 |-------------------------------+-----------------------------------|
6044 |             dado              |→ Interpreter languages and        |
6045 |                               |scripting → Lua libraries/modules  |
6046 |-------------------------------+-----------------------------------|
6047 |          damageproto          |→ Graphic libraries and            |
6048 |                               |applications (graphic/text) → X11R7|
6049 |                               |X protocols                        |
6050 |-------------------------------+-----------------------------------|
6051 |             dash              |→ Shell and utilities              |
6052 |-------------------------------+-----------------------------------|
6053 |             dbus              |→ Hardware handling                |
6054 |-------------------------------+-----------------------------------|
6055 |           dbus-c++            |→ Hardware handling                |
6056 |-------------------------------+-----------------------------------|
6057 |           dbus-glib           |→ Hardware handling                |
6058 |-------------------------------+-----------------------------------|
6059 |          dbus-python          |→ Hardware handling                |
6060 |-------------------------------+-----------------------------------|
6061 |         dbus-triggerd         |→ Hardware handling                |
6062 |-------------------------------+-----------------------------------|
6063 |             dcron             |→ System tools                     |
6064 |-------------------------------+-----------------------------------|
6065 |          debianutils          |→ System tools                     |
6066 |-------------------------------+-----------------------------------|
6067 |      Declarative module       |→ Graphic libraries and            |
6068 |                               |applications (graphic/text)        |
6069 |-------------------------------+-----------------------------------|
6070 |         DejaVu fonts          |→ Fonts, icons, sounds and themes  |
6071 |-------------------------------+-----------------------------------|
6072 |            devmem2            |→ Hardware handling                |
6073 |-------------------------------+-----------------------------------|
6074 |          dhcp (ISC)           |→ Networking applications          |
6075 |-------------------------------+-----------------------------------|
6076 |            dhcpcd             |→ Networking applications          |
6077 |-------------------------------+-----------------------------------|
6078 |           dhcpdump            |→ Networking applications          |
6079 |-------------------------------+-----------------------------------|
6080 |           dhrystone           |→ Debugging, profiling and         |
6081 |                               |benchmark                          |
6082 |-------------------------------+-----------------------------------|
6083 |            dialog             |→ Shell and utilities              |
6084 |-------------------------------+-----------------------------------|
6085 |           diffutils           |→ Development tools                |
6086 |-------------------------------+-----------------------------------|
6087 |             dillo             |→ Graphic libraries and            |
6088 |                               |applications (graphic/text)        |
6089 |-------------------------------+-----------------------------------|
6090 |           ding-libs           |→ Libraries → Other                |
6091 |-------------------------------+-----------------------------------|
6092 |           directfb            |→ Graphic libraries and            |
6093 |                               |applications (graphic/text)        |
6094 |-------------------------------+-----------------------------------|
6095 |       directfb examples       |→ Graphic libraries and            |
6096 |                               |applications (graphic/text)        |
6097 |-------------------------------+-----------------------------------|
6098 |    directfb virtual input     |→ Graphic libraries and            |
6099 |           extension           |applications (graphic/text)        |
6100 |-------------------------------+-----------------------------------|
6101 |            dmalloc            |→ Debugging, profiling and         |
6102 |                               |benchmark                          |
6103 |-------------------------------+-----------------------------------|
6104 |           dmidecode           |→ Hardware handling                |
6105 |-------------------------------+-----------------------------------|
6106 |            dmraid             |→ Hardware handling                |
6107 |-------------------------------+-----------------------------------|
6108 |           dmxproto            |→ Graphic libraries and            |
6109 |                               |applications (graphic/text) → X11R7|
6110 |                               |X protocols                        |
6111 |-------------------------------+-----------------------------------|
6112 |            dnsmasq            |→ Networking applications          |
6113 |-------------------------------+-----------------------------------|
6114 |            docker             |→ Graphic libraries and            |
6115 |                               |applications (graphic/text)        |
6116 |-------------------------------+-----------------------------------|
6117 |          dosfstools           |→ Filesystem and flash utilities   |
6118 |-------------------------------+-----------------------------------|
6119 |            dovecot            |→ Mail                             |
6120 |-------------------------------+-----------------------------------|
6121 |      dovecot-pigeonhole       |→ Mail                             |
6122 |-------------------------------+-----------------------------------|
6123 |          drbd-utils           |→ Networking applications          |
6124 |-------------------------------+-----------------------------------|
6125 |           dri2proto           |→ Graphic libraries and            |
6126 |                               |applications (graphic/text) → X11R7|
6127 |                               |X protocols                        |
6128 |-------------------------------+-----------------------------------|
6129 |           dri3proto           |→ Graphic libraries and            |
6130 |                               |applications (graphic/text) → X11R7|
6131 |                               |X protocols                        |
6132 |-------------------------------+-----------------------------------|
6133 |           dropbear            |→ Networking applications          |
6134 |-------------------------------+-----------------------------------|
6135 |           dropwatch           |→ Debugging, profiling and         |
6136 |                               |benchmark                          |
6137 |-------------------------------+-----------------------------------|
6138 |           dsp-tools           |→ System tools                     |
6139 |-------------------------------+-----------------------------------|
6140 |             dstat             |→ Debugging, profiling and         |
6141 |                               |benchmark                          |
6142 |-------------------------------+-----------------------------------|
6143 |             dtach             |→ Shell and utilities              |
6144 |-------------------------------+-----------------------------------|
6145 |         dtc (libfdt)          |→ Libraries → Hardware handling    |
6146 |-------------------------------+-----------------------------------|
6147 |        dtv-scan-tables        |→ Hardware handling                |
6148 |-------------------------------+-----------------------------------|
6149 |             duma              |→ Debugging, profiling and         |
6150 |                               |benchmark                          |
6151 |-------------------------------+-----------------------------------|
6152 |           dvb-apps            |→ Hardware handling                |
6153 |-------------------------------+-----------------------------------|
6154 |           dvbsnoop            |→ Hardware handling                |
6155 |-------------------------------+-----------------------------------|
6156 |           dvdauthor           |→ Audio and video applications     |
6157 |-------------------------------+-----------------------------------|
6158 |          dvdrw-tools          |→ Audio and video applications     |
6159 |-------------------------------+-----------------------------------|
6160 |           e2fsprogs           |→ Filesystem and flash utilities   |
6161 |-------------------------------+-----------------------------------|
6162 |            e2tools            |→ Filesystem and flash utilities   |
6163 |-------------------------------+-----------------------------------|
6164 |           ebtables            |→ Networking applications          |
6165 |-------------------------------+-----------------------------------|
6166 |        ecryptfs-utils         |→ Filesystem and flash utilities   |
6167 |-------------------------------+-----------------------------------|
6168 |              ed               |→ Text editors and viewers         |
6169 |-------------------------------+-----------------------------------|
6170 |            editres            |→ Graphic libraries and            |
6171 |                               |applications (graphic/text) → X11R7|
6172 |                               |Applications                       |
6173 |-------------------------------+-----------------------------------|
6174 |            eeprog             |→ Hardware handling                |
6175 |-------------------------------+-----------------------------------|
6176 |             eigen             |→ Libraries → Other                |
6177 |-------------------------------+-----------------------------------|
6178 |           ejabberd            |→ Networking applications          |
6179 |-------------------------------+-----------------------------------|
6180 |           elfutils            |→ Libraries → Other                |
6181 |-------------------------------+-----------------------------------|
6182 |             empty             |→ Miscellaneous                    |
6183 |-------------------------------+-----------------------------------|
6184 |            enchant            |→ Libraries → Text and terminal    |
6185 |                               |handling                           |
6186 |-------------------------------+-----------------------------------|
6187 |           encodings           |→ Graphic libraries and            |
6188 |                               |applications (graphic/text) → X11R7|
6189 |                               |Fonts                              |
6190 |-------------------------------+-----------------------------------|
6191 |         enlightenment         |→ Graphic libraries and            |
6192 |                               |applications (graphic/text)        |
6193 |-------------------------------+-----------------------------------|
6194 |   Enlightenment Foundation    |→ Graphic libraries and            |
6195 |           Libraries           |applications (graphic/text)        |
6196 |-------------------------------+-----------------------------------|
6197 |           enscript            |→ Interpreter languages and        |
6198 |                               |scripting                          |
6199 |-------------------------------+-----------------------------------|
6200 |             epoxy             |→ Graphic libraries and            |
6201 |                               |applications (graphic/text) → X11R7|
6202 |                               |Libraries                          |
6203 |-------------------------------+-----------------------------------|
6204 |            erlang             |→ Interpreter languages and        |
6205 |                               |scripting                          |
6206 |-------------------------------+-----------------------------------|
6207 |        erlang-goldrush        |→ Interpreter languages and        |
6208 |                               |scripting → Erlang libraries/      |
6209 |                               |modules                            |
6210 |-------------------------------+-----------------------------------|
6211 |         erlang-lager          |→ Interpreter languages and        |
6212 |                               |scripting → Erlang libraries/      |
6213 |                               |modules                            |
6214 |-------------------------------+-----------------------------------|
6215 |      erlang-p1-cache-tab      |→ Interpreter languages and        |
6216 |                               |scripting → Erlang libraries/      |
6217 |                               |modules                            |
6218 |-------------------------------+-----------------------------------|
6219 |        erlang-p1-iconv        |→ Interpreter languages and        |
6220 |                               |scripting → Erlang libraries/      |
6221 |                               |modules                            |
6222 |-------------------------------+-----------------------------------|
6223 |         erlang-p1-sip         |→ Interpreter languages and        |
6224 |                               |scripting → Erlang libraries/      |
6225 |                               |modules                            |
6226 |-------------------------------+-----------------------------------|
6227 |     erlang-p1-stringprep      |→ Interpreter languages and        |
6228 |                               |scripting → Erlang libraries/      |
6229 |                               |modules                            |
6230 |-------------------------------+-----------------------------------|
6231 |        erlang-p1-stun         |→ Interpreter languages and        |
6232 |                               |scripting → Erlang libraries/      |
6233 |                               |modules                            |
6234 |-------------------------------+-----------------------------------|
6235 |         erlang-p1-tls         |→ Interpreter languages and        |
6236 |                               |scripting → Erlang libraries/      |
6237 |                               |modules                            |
6238 |-------------------------------+-----------------------------------|
6239 |        erlang-p1-utils        |→ Interpreter languages and        |
6240 |                               |scripting → Erlang libraries/      |
6241 |                               |modules                            |
6242 |-------------------------------+-----------------------------------|
6243 |         erlang-p1-xml         |→ Interpreter languages and        |
6244 |                               |scripting → Erlang libraries/      |
6245 |                               |modules                            |
6246 |-------------------------------+-----------------------------------|
6247 |        erlang-p1-yaml         |→ Interpreter languages and        |
6248 |                               |scripting → Erlang libraries/      |
6249 |                               |modules                            |
6250 |-------------------------------+-----------------------------------|
6251 |        erlang-p1-zlib         |→ Interpreter languages and        |
6252 |                               |scripting → Erlang libraries/      |
6253 |                               |modules                            |
6254 |-------------------------------+-----------------------------------|
6255 |            espeak             |→ Audio and video applications     |
6256 |-------------------------------+-----------------------------------|
6257 |            ethtool            |→ Networking applications          |
6258 |-------------------------------+-----------------------------------|
6259 |             eudev             |→ Hardware handling                |
6260 |-------------------------------+-----------------------------------|
6261 |             evemu             |→ Hardware handling                |
6262 |-------------------------------+-----------------------------------|
6263 |            evtest             |→ Hardware handling                |
6264 |-------------------------------+-----------------------------------|
6265 |         exFAT (FUSE)          |→ Filesystem and flash utilities   |
6266 |-------------------------------+-----------------------------------|
6267 |          exfat-utils          |→ Filesystem and flash utilities   |
6268 |-------------------------------+-----------------------------------|
6269 |             exim              |→ Mail                             |
6270 |-------------------------------+-----------------------------------|
6271 |             exiv2             |→ Libraries → Graphics             |
6272 |-------------------------------+-----------------------------------|
6273 |             expat             |→ Libraries → JSON/XML             |
6274 |-------------------------------+-----------------------------------|
6275 |            expect             |→ Interpreter languages and        |
6276 |                               |scripting → tcl libraries/modules  |
6277 |-------------------------------+-----------------------------------|
6278 |           expedite            |→ Graphic libraries and            |
6279 |                               |applications (graphic/text)        |
6280 |-------------------------------+-----------------------------------|
6281 |        explorercanvas         |→ Libraries → Javascript           |
6282 |-------------------------------+-----------------------------------|
6283 |             ezxml             |→ Libraries → JSON/XML             |
6284 |-------------------------------+-----------------------------------|
6285 |          f2fs-tools           |→ Filesystem and flash utilities   |
6286 |-------------------------------+-----------------------------------|
6287 |             faad2             |→ Audio and video applications     |
6288 |-------------------------------+-----------------------------------|
6289 |             faifa             |→ Networking applications          |
6290 |-------------------------------+-----------------------------------|
6291 |           fan-ctrl            |→ Hardware handling                |
6292 |-------------------------------+-----------------------------------|
6293 |          fb-test-app          |→ Graphic libraries and            |
6294 |                               |applications (graphic/text)        |
6295 |-------------------------------+-----------------------------------|
6296 |  fbdump (Framebuffer Capture  |→ Graphic libraries and            |
6297 |             Tool)             |applications (graphic/text)        |
6298 |-------------------------------+-----------------------------------|
6299 |            fbgrab             |→ Graphic libraries and            |
6300 |                               |applications (graphic/text)        |
6301 |-------------------------------+-----------------------------------|
6302 |             fbset             |→ Graphic libraries and            |
6303 |                               |applications (graphic/text)        |
6304 |-------------------------------+-----------------------------------|
6305 |            fbterm             |→ Graphic libraries and            |
6306 |                               |applications (graphic/text)        |
6307 |-------------------------------+-----------------------------------|
6308 |              fbv              |→ Graphic libraries and            |
6309 |                               |applications (graphic/text)        |
6310 |-------------------------------+-----------------------------------|
6311 |            fconfig            |→ Hardware handling                |
6312 |-------------------------------+-----------------------------------|
6313 |            fdk-aac            |→ Libraries → Audio/Sound          |
6314 |-------------------------------+-----------------------------------|
6315 |              feh              |→ Graphic libraries and            |
6316 |                               |applications (graphic/text)        |
6317 |-------------------------------+-----------------------------------|
6318 |           fetchmail           |→ Mail                             |
6319 |-------------------------------+-----------------------------------|
6320 |            ffmpeg             |→ Audio and video applications     |
6321 |-------------------------------+-----------------------------------|
6322 |             fftw              |→ Libraries → Other                |
6323 |-------------------------------+-----------------------------------|
6324 |             file              |→ Shell and utilities              |
6325 |-------------------------------+-----------------------------------|
6326 |            filemq             |→ Libraries → Networking           |
6327 |-------------------------------+-----------------------------------|
6328 |           findutils           |→ Development tools                |
6329 |-------------------------------+-----------------------------------|
6330 |              fio              |→ Debugging, profiling and         |
6331 |                               |benchmark                          |
6332 |-------------------------------+-----------------------------------|
6333 |         firmware-imx          |→ Hardware handling                |
6334 |-------------------------------+-----------------------------------|
6335 |              fis              |→ Hardware handling                |
6336 |-------------------------------+-----------------------------------|
6337 |          fixesproto           |→ Graphic libraries and            |
6338 |                               |applications (graphic/text) → X11R7|
6339 |                               |X protocols                        |
6340 |-------------------------------+-----------------------------------|
6341 |             flac              |→ Audio and video applications     |
6342 |-------------------------------+-----------------------------------|
6343 |             flann             |→ Libraries → Other                |
6344 |-------------------------------+-----------------------------------|
6345 |          flashbench           |→ Filesystem and flash utilities   |
6346 |-------------------------------+-----------------------------------|
6347 |           flashrom            |→ Hardware handling                |
6348 |-------------------------------+-----------------------------------|
6349 |             flex              |→ Development tools                |
6350 |-------------------------------+-----------------------------------|
6351 |           flickcurl           |→ Libraries → Networking           |
6352 |-------------------------------+-----------------------------------|
6353 |             flite             |→ Audio and video applications     |
6354 |-------------------------------+-----------------------------------|
6355 |             flot              |→ Libraries → Javascript           |
6356 |-------------------------------+-----------------------------------|
6357 |             fltk              |→ Libraries → Graphics             |
6358 |-------------------------------+-----------------------------------|
6359 |            fluxbox            |→ Graphic libraries and            |
6360 |                               |applications (graphic/text)        |
6361 |-------------------------------+-----------------------------------|
6362 |              fmc              |→ Networking applications          |
6363 |-------------------------------+-----------------------------------|
6364 |             fmlib             |→ Libraries → Networking           |
6365 |-------------------------------+-----------------------------------|
6366 |            fmtools            |→ Hardware handling                |
6367 |-------------------------------+-----------------------------------|
6368 |       font-adobe-100dpi       |→ Graphic libraries and            |
6369 |                               |applications (graphic/text) → X11R7|
6370 |                               |Fonts                              |
6371 |-------------------------------+-----------------------------------|
6372 |       font-adobe-75dpi        |→ Graphic libraries and            |
6373 |                               |applications (graphic/text) → X11R7|
6374 |                               |Fonts                              |
6375 |-------------------------------+-----------------------------------|
6376 |   font-adobe-utopia-100dpi    |→ Graphic libraries and            |
6377 |                               |applications (graphic/text) → X11R7|
6378 |                               |Fonts                              |
6379 |-------------------------------+-----------------------------------|
6380 |    font-adobe-utopia-75dpi    |→ Graphic libraries and            |
6381 |                               |applications (graphic/text) → X11R7|
6382 |                               |Fonts                              |
6383 |-------------------------------+-----------------------------------|
6384 |    font-adobe-utopia-type1    |→ Graphic libraries and            |
6385 |                               |applications (graphic/text) → X11R7|
6386 |                               |Fonts                              |
6387 |-------------------------------+-----------------------------------|
6388 |          font-alias           |→ Graphic libraries and            |
6389 |                               |applications (graphic/text) → X11R7|
6390 |                               |Fonts                              |
6391 |-------------------------------+-----------------------------------|
6392 |       font-arabic-misc        |→ Graphic libraries and            |
6393 |                               |applications (graphic/text) → X11R7|
6394 |                               |Fonts                              |
6395 |-------------------------------+-----------------------------------|
6396 |        font-bh-100dpi         |→ Graphic libraries and            |
6397 |                               |applications (graphic/text) → X11R7|
6398 |                               |Fonts                              |
6399 |-------------------------------+-----------------------------------|
6400 |         font-bh-75dpi         |→ Graphic libraries and            |
6401 |                               |applications (graphic/text) → X11R7|
6402 |                               |Fonts                              |
6403 |-------------------------------+-----------------------------------|
6404 |font-bh-lucidatypewriter-100dpi|→ Graphic libraries and            |
6405 |                               |applications (graphic/text) → X11R7|
6406 |                               |Fonts                              |
6407 |-------------------------------+-----------------------------------|
6408 |font-bh-lucidatypewriter-75dpi |→ Graphic libraries and            |
6409 |                               |applications (graphic/text) → X11R7|
6410 |                               |Fonts                              |
6411 |-------------------------------+-----------------------------------|
6412 |          font-bh-ttf          |→ Graphic libraries and            |
6413 |                               |applications (graphic/text) → X11R7|
6414 |                               |Fonts                              |
6415 |-------------------------------+-----------------------------------|
6416 |         font-bh-type1         |→ Graphic libraries and            |
6417 |                               |applications (graphic/text) → X11R7|
6418 |                               |Fonts                              |
6419 |-------------------------------+-----------------------------------|
6420 |     font-bitstream-100dpi     |→ Graphic libraries and            |
6421 |                               |applications (graphic/text) → X11R7|
6422 |                               |Fonts                              |
6423 |-------------------------------+-----------------------------------|
6424 |     font-bitstream-75dpi      |→ Graphic libraries and            |
6425 |                               |applications (graphic/text) → X11R7|
6426 |                               |Fonts                              |
6427 |-------------------------------+-----------------------------------|
6428 |     font-bitstream-type1      |→ Graphic libraries and            |
6429 |                               |applications (graphic/text) → X11R7|
6430 |                               |Fonts                              |
6431 |-------------------------------+-----------------------------------|
6432 |     font-cronyx-cyrillic      |→ Graphic libraries and            |
6433 |                               |applications (graphic/text) → X11R7|
6434 |                               |Fonts                              |
6435 |-------------------------------+-----------------------------------|
6436 |       font-cursor-misc        |→ Graphic libraries and            |
6437 |                               |applications (graphic/text) → X11R7|
6438 |                               |Fonts                              |
6439 |-------------------------------+-----------------------------------|
6440 |       font-daewoo-misc        |→ Graphic libraries and            |
6441 |                               |applications (graphic/text) → X11R7|
6442 |                               |Fonts                              |
6443 |-------------------------------+-----------------------------------|
6444 |         font-dec-misc         |→ Graphic libraries and            |
6445 |                               |applications (graphic/text) → X11R7|
6446 |                               |Fonts                              |
6447 |-------------------------------+-----------------------------------|
6448 |        font-ibm-type1         |→ Graphic libraries and            |
6449 |                               |applications (graphic/text) → X11R7|
6450 |                               |Fonts                              |
6451 |-------------------------------+-----------------------------------|
6452 |        font-isas-misc         |→ Graphic libraries and            |
6453 |                               |applications (graphic/text) → X11R7|
6454 |                               |Fonts                              |
6455 |-------------------------------+-----------------------------------|
6456 |         font-jis-misc         |→ Graphic libraries and            |
6457 |                               |applications (graphic/text) → X11R7|
6458 |                               |Fonts                              |
6459 |-------------------------------+-----------------------------------|
6460 |        font-micro-misc        |→ Graphic libraries and            |
6461 |                               |applications (graphic/text) → X11R7|
6462 |                               |Fonts                              |
6463 |-------------------------------+-----------------------------------|
6464 |      font-misc-cyrillic       |→ Graphic libraries and            |
6465 |                               |applications (graphic/text) → X11R7|
6466 |                               |Fonts                              |
6467 |-------------------------------+-----------------------------------|
6468 |      font-misc-ethiopic       |→ Graphic libraries and            |
6469 |                               |applications (graphic/text) → X11R7|
6470 |                               |Fonts                              |
6471 |-------------------------------+-----------------------------------|
6472 |       font-misc-meltho        |→ Graphic libraries and            |
6473 |                               |applications (graphic/text) → X11R7|
6474 |                               |Fonts                              |
6475 |-------------------------------+-----------------------------------|
6476 |        font-misc-misc         |→ Graphic libraries and            |
6477 |                               |applications (graphic/text) → X11R7|
6478 |                               |Fonts                              |
6479 |-------------------------------+-----------------------------------|
6480 |        font-mutt-misc         |→ Graphic libraries and            |
6481 |                               |applications (graphic/text) → X11R7|
6482 |                               |Fonts                              |
6483 |-------------------------------+-----------------------------------|
6484 |     font-schumacher-misc      |→ Graphic libraries and            |
6485 |                               |applications (graphic/text) → X11R7|
6486 |                               |Fonts                              |
6487 |-------------------------------+-----------------------------------|
6488 |     font-screen-cyrillic      |→ Graphic libraries and            |
6489 |                               |applications (graphic/text) → X11R7|
6490 |                               |Fonts                              |
6491 |-------------------------------+-----------------------------------|
6492 |        font-sony-misc         |→ Graphic libraries and            |
6493 |                               |applications (graphic/text) → X11R7|
6494 |                               |Fonts                              |
6495 |-------------------------------+-----------------------------------|
6496 |         font-sun-misc         |→ Graphic libraries and            |
6497 |                               |applications (graphic/text) → X11R7|
6498 |                               |Fonts                              |
6499 |-------------------------------+-----------------------------------|
6500 |           font-util           |→ Graphic libraries and            |
6501 |                               |applications (graphic/text) → X11R7|
6502 |                               |Fonts                              |
6503 |-------------------------------+-----------------------------------|
6504 |    font-winitzki-cyrillic     |→ Graphic libraries and            |
6505 |                               |applications (graphic/text) → X11R7|
6506 |                               |Fonts                              |
6507 |-------------------------------+-----------------------------------|
6508 |      font-xfree86-type1       |→ Graphic libraries and            |
6509 |                               |applications (graphic/text) → X11R7|
6510 |                               |Fonts                              |
6511 |-------------------------------+-----------------------------------|
6512 |        fontcacheproto         |→ Graphic libraries and            |
6513 |                               |applications (graphic/text) → X11R7|
6514 |                               |X protocols                        |
6515 |-------------------------------+-----------------------------------|
6516 |          fontconfig           |→ Libraries → Graphics             |
6517 |-------------------------------+-----------------------------------|
6518 |          fontsproto           |→ Graphic libraries and            |
6519 |                               |applications (graphic/text) → X11R7|
6520 |                               |X protocols                        |
6521 |-------------------------------+-----------------------------------|
6522 |          fonttosfnt           |→ Graphic libraries and            |
6523 |                               |applications (graphic/text) → X11R7|
6524 |                               |Applications                       |
6525 |-------------------------------+-----------------------------------|
6526 | foomatic_filters (deprecated) |→ Networking applications          |
6527 |-------------------------------+-----------------------------------|
6528 |             fping             |→ Networking applications          |
6529 |-------------------------------+-----------------------------------|
6530 |       freeradius-client       |→ Libraries → Networking           |
6531 |-------------------------------+-----------------------------------|
6532 |            freerdp            |→ Graphic libraries and            |
6533 |                               |applications (graphic/text)        |
6534 |-------------------------------+-----------------------------------|
6535 |   Freescale i.MX libraries    |→ Hardware handling                |
6536 |-------------------------------+-----------------------------------|
6537 |           freetype            |→ Libraries → Graphics             |
6538 |-------------------------------+-----------------------------------|
6539 |           fslsfonts           |→ Graphic libraries and            |
6540 |                               |applications (graphic/text) → X11R7|
6541 |                               |Applications                       |
6542 |-------------------------------+-----------------------------------|
6543 |            fstobdf            |→ Graphic libraries and            |
6544 |                               |applications (graphic/text) → X11R7|
6545 |                               |Applications                       |
6546 |-------------------------------+-----------------------------------|
6547 |           fswebcam            |→ Graphic libraries and            |
6548 |                               |applications (graphic/text)        |
6549 |-------------------------------+-----------------------------------|
6550 |             ftop              |→ System tools                     |
6551 |-------------------------------+-----------------------------------|
6552 |            fxload             |→ Hardware handling                |
6553 |-------------------------------+-----------------------------------|
6554 |         gadgetfs-test         |→ Hardware handling                |
6555 |-------------------------------+-----------------------------------|
6556 |             gamin             |→ Libraries → Filesystem           |
6557 |-------------------------------+-----------------------------------|
6558 |             gawk              |→ Development tools                |
6559 |-------------------------------+-----------------------------------|
6560 |              gd               |→ Libraries → Graphics             |
6561 |-------------------------------+-----------------------------------|
6562 |              gdb              |→ Debugging, profiling and         |
6563 |                               |benchmark                          |
6564 |-------------------------------+-----------------------------------|
6565 |             gdbm              |→ Libraries → Database             |
6566 |-------------------------------+-----------------------------------|
6567 |          gdk-pixbuf           |→ Libraries → Graphics             |
6568 |-------------------------------+-----------------------------------|
6569 |           genext2fs           |→ Filesystem and flash utilities   |
6570 |-------------------------------+-----------------------------------|
6571 |            genpart            |→ Filesystem and flash utilities   |
6572 |-------------------------------+-----------------------------------|
6573 |           genromfs            |→ Filesystem and flash utilities   |
6574 |-------------------------------+-----------------------------------|
6575 |             geoip             |→ Libraries → Networking           |
6576 |-------------------------------+-----------------------------------|
6577 |         gesftpserver          |→ Networking applications          |
6578 |-------------------------------+-----------------------------------|
6579 |            getent             |→ System tools                     |
6580 |-------------------------------+-----------------------------------|
6581 |            gettext            |→ Development tools                |
6582 |-------------------------------+-----------------------------------|
6583 |       ghostscript-fonts       |→ Fonts, icons, sounds and themes  |
6584 |-------------------------------+-----------------------------------|
6585 |            giblib             |→ Libraries → Graphics             |
6586 |-------------------------------+-----------------------------------|
6587 |            giflib             |→ Libraries → Graphics             |
6588 |-------------------------------+-----------------------------------|
6589 |              git              |→ Development tools                |
6590 |-------------------------------+-----------------------------------|
6591 |        glib-networking        |→ Libraries → Networking           |
6592 |-------------------------------+-----------------------------------|
6593 |            glibmm             |→ Libraries → Other                |
6594 |-------------------------------+-----------------------------------|
6595 |              glm              |→ Libraries → Other                |
6596 |-------------------------------+-----------------------------------|
6597 |            glmark2            |→ Graphic libraries and            |
6598 |                               |applications (graphic/text)        |
6599 |-------------------------------+-----------------------------------|
6600 |            glproto            |→ Graphic libraries and            |
6601 |                               |applications (graphic/text) → X11R7|
6602 |                               |X protocols                        |
6603 |-------------------------------+-----------------------------------|
6604 |              gmp              |→ Libraries → Other                |
6605 |-------------------------------+-----------------------------------|
6606 |             gmpc              |→ Graphic libraries and            |
6607 |                               |applications (graphic/text)        |
6608 |-------------------------------+-----------------------------------|
6609 |            gnu-efi            |→ Libraries → Hardware handling    |
6610 |-------------------------------+-----------------------------------|
6611 |           gnuchess            |→ Games                            |
6612 |-------------------------------+-----------------------------------|
6613 |             gnupg             |→ Shell and utilities              |
6614 |-------------------------------+-----------------------------------|
6615 |            gnupg2             |→ Shell and utilities              |
6616 |-------------------------------+-----------------------------------|
6617 |            gnuplot            |→ Graphic libraries and            |
6618 |                               |applications (graphic/text)        |
6619 |-------------------------------+-----------------------------------|
6620 |           gnuradio            |→ Miscellaneous                    |
6621 |-------------------------------+-----------------------------------|
6622 |            gnutls             |→ Libraries → Crypto               |
6623 |-------------------------------+-----------------------------------|
6624 |     Google font directory     |→ Miscellaneous                    |
6625 |-------------------------------+-----------------------------------|
6626 |        google-breakpad        |→ Debugging, profiling and         |
6627 |                               |benchmark                          |
6628 |-------------------------------+-----------------------------------|
6629 |             gperf             |→ Development tools                |
6630 |-------------------------------+-----------------------------------|
6631 |              gpm              |→ Hardware handling                |
6632 |-------------------------------+-----------------------------------|
6633 |             gpsd              |→ Hardware handling                |
6634 |-------------------------------+-----------------------------------|
6635 |           gptfdisk            |→ Hardware handling                |
6636 |-------------------------------+-----------------------------------|
6637 | gpu-amd-bin-mx51 (also imx53) |→ Hardware handling                |
6638 |-------------------------------+-----------------------------------|
6639 |       gpu-viv-bin-mx6q        |→ Hardware handling                |
6640 |-------------------------------+-----------------------------------|
6641 |            gqview             |→ Graphic libraries and            |
6642 |                               |applications (graphic/text)        |
6643 |-------------------------------+-----------------------------------|
6644 |           grantlee            |→ Graphic libraries and            |
6645 |                               |applications (graphic/text)        |
6646 |-------------------------------+-----------------------------------|
6647 |             grep              |→ Development tools                |
6648 |-------------------------------+-----------------------------------|
6649 |              gsl              |→ Libraries → Other                |
6650 |-------------------------------+-----------------------------------|
6651 |            gst-dsp            |→ Audio and video applications     |
6652 |-------------------------------+-----------------------------------|
6653 |          gst-ffmpeg           |→ Audio and video applications     |
6654 |-------------------------------+-----------------------------------|
6655 |        gst-fsl-plugins        |→ Audio and video applications     |
6656 |-------------------------------+-----------------------------------|
6657 |          gst-omapfb           |→ Audio and video applications     |
6658 |-------------------------------+-----------------------------------|
6659 |            gst-omx            |→ Audio and video applications     |
6660 |-------------------------------+-----------------------------------|
6661 |        gst-plugin-x170        |→ Audio and video applications     |
6662 |-------------------------------+-----------------------------------|
6663 |        gst-plugins-bad        |→ Audio and video applications     |
6664 |-------------------------------+-----------------------------------|
6665 |       gst-plugins-base        |→ Audio and video applications     |
6666 |-------------------------------+-----------------------------------|
6667 |       gst-plugins-good        |→ Audio and video applications     |
6668 |-------------------------------+-----------------------------------|
6669 |       gst-plugins-ugly        |→ Audio and video applications     |
6670 |-------------------------------+-----------------------------------|
6671 |           gst1-imx            |→ Audio and video applications     |
6672 |-------------------------------+-----------------------------------|
6673 |          gst1-libav           |→ Audio and video applications     |
6674 |-------------------------------+-----------------------------------|
6675 |       gst1-plugins-bad        |→ Audio and video applications     |
6676 |-------------------------------+-----------------------------------|
6677 |       gst1-plugins-base       |→ Audio and video applications     |
6678 |-------------------------------+-----------------------------------|
6679 |       gst1-plugins-good       |→ Audio and video applications     |
6680 |-------------------------------+-----------------------------------|
6681 |       gst1-plugins-ugly       |→ Audio and video applications     |
6682 |-------------------------------+-----------------------------------|
6683 |         gst1-validate         |→ Audio and video applications     |
6684 |-------------------------------+-----------------------------------|
6685 |        gstreamer 0.10         |→ Audio and video applications     |
6686 |-------------------------------+-----------------------------------|
6687 |         gstreamer 1.x         |→ Audio and video applications     |
6688 |-------------------------------+-----------------------------------|
6689 |             gtest             |→ Libraries → Other                |
6690 |-------------------------------+-----------------------------------|
6691 |          gtk engines          |→ Fonts, icons, sounds and themes  |
6692 |-------------------------------+-----------------------------------|
6693 | gtkperf (performance test for |→ Graphic libraries and            |
6694 |             GTK2)             |applications (graphic/text)        |
6695 |-------------------------------+-----------------------------------|
6696 |             guile             |→ Interpreter languages and        |
6697 |                               |scripting                          |
6698 |-------------------------------+-----------------------------------|
6699 |    gutenprint (deprecated)    |→ Networking applications          |
6700 |-------------------------------+-----------------------------------|
6701 |             gvfs              |→ Hardware handling                |
6702 |-------------------------------+-----------------------------------|
6703 |             gzip              |→ Compressors and decompressors    |
6704 |-------------------------------+-----------------------------------|
6705 |             hans              |→ Networking applications          |
6706 |-------------------------------+-----------------------------------|
6707 |           harfbuzz            |→ Libraries → Graphics             |
6708 |-------------------------------+-----------------------------------|
6709 |            haserl             |→ Interpreter languages and        |
6710 |                               |scripting                          |
6711 |-------------------------------+-----------------------------------|
6712 |            haveged            |→ Miscellaneous                    |
6713 |-------------------------------+-----------------------------------|
6714 |            hdparm             |→ Hardware handling                |
6715 |-------------------------------+-----------------------------------|
6716 |        heirloom-mailx         |→ Mail                             |
6717 |-------------------------------+-----------------------------------|
6718 |           hiawatha            |→ Networking applications          |
6719 |-------------------------------+-----------------------------------|
6720 |      hicolor icon theme       |→ Fonts, icons, sounds and themes  |
6721 |-------------------------------+-----------------------------------|
6722 |            hostapd            |→ Networking applications          |
6723 |-------------------------------+-----------------------------------|
6724 |      hplip (deprecated)       |→ Networking applications          |
6725 |-------------------------------+-----------------------------------|
6726 |             htop              |→ System tools                     |
6727 |-------------------------------+-----------------------------------|
6728 |            httping            |→ Networking applications          |
6729 |-------------------------------+-----------------------------------|
6730 |            hwdata             |→ Hardware handling                |
6731 |-------------------------------+-----------------------------------|
6732 |             hwloc             |→ Hardware handling                |
6733 |-------------------------------+-----------------------------------|
6734 |           i2c-tools           |→ Hardware handling                |
6735 |-------------------------------+-----------------------------------|
6736 |            iceauth            |→ Graphic libraries and            |
6737 |                               |applications (graphic/text) → X11R7|
6738 |                               |Applications                       |
6739 |-------------------------------+-----------------------------------|
6740 |              ico              |→ Graphic libraries and            |
6741 |                               |applications (graphic/text) → X11R7|
6742 |                               |Applications                       |
6743 |-------------------------------+-----------------------------------|
6744 |              icu              |→ Libraries → Text and terminal    |
6745 |                               |handling                           |
6746 |-------------------------------+-----------------------------------|
6747 |            ifplugd            |→ Networking applications          |
6748 |-------------------------------+-----------------------------------|
6749 |             iftop             |→ Networking applications          |
6750 |-------------------------------+-----------------------------------|
6751 |           ifupdown            |→ Networking applications          |
6752 |-------------------------------+-----------------------------------|
6753 |         igh-ethercat          |→ Networking applications          |
6754 |-------------------------------+-----------------------------------|
6755 |           igmpproxy           |→ Networking applications          |
6756 |-------------------------------+-----------------------------------|
6757 |              ijs              |→ Libraries → Graphics             |
6758 |-------------------------------+-----------------------------------|
6759 |          imagemagick          |→ Graphic libraries and            |
6760 |                               |applications (graphic/text)        |
6761 |-------------------------------+-----------------------------------|
6762 |            imlib2             |→ Libraries → Graphics             |
6763 |-------------------------------+-----------------------------------|
6764 |            imx-lib            |→ Hardware handling                |
6765 |-------------------------------+-----------------------------------|
6766 |            imx-vpu            |→ Hardware handling                |
6767 |-------------------------------+-----------------------------------|
6768 |            inadyn             |→ Networking applications          |
6769 |-------------------------------+-----------------------------------|
6770 |          inconsolata          |→ Fonts, icons, sounds and themes  |
6771 |-------------------------------+-----------------------------------|
6772 |            infozip            |→ Compressors and decompressors    |
6773 |-------------------------------+-----------------------------------|
6774 |         inotify-tools         |→ Shell and utilities              |
6775 |-------------------------------+-----------------------------------|
6776 |      input-event-daemon       |→ Hardware handling                |
6777 |-------------------------------+-----------------------------------|
6778 |          input-tools          |→ Hardware handling                |
6779 |-------------------------------+-----------------------------------|
6780 |          inputproto           |→ Graphic libraries and            |
6781 |                               |applications (graphic/text) → X11R7|
6782 |                               |X protocols                        |
6783 |-------------------------------+-----------------------------------|
6784 |        intel-microcode        |→ Hardware handling                |
6785 |-------------------------------+-----------------------------------|
6786 |           intltool            |→ Development tools                |
6787 |-------------------------------+-----------------------------------|
6788 |            iodine             |→ Networking applications          |
6789 |-------------------------------+-----------------------------------|
6790 |            iostat             |→ Hardware handling                |
6791 |-------------------------------+-----------------------------------|
6792 |             iotop             |→ System tools                     |
6793 |-------------------------------+-----------------------------------|
6794 |            iozone             |→ Debugging, profiling and         |
6795 |                               |benchmark                          |
6796 |-------------------------------+-----------------------------------|
6797 |             iperf             |→ Networking applications          |
6798 |-------------------------------+-----------------------------------|
6799 |            iperf3             |→ Networking applications          |
6800 |-------------------------------+-----------------------------------|
6801 |             ipkg              |→ Package managers                 |
6802 |-------------------------------+-----------------------------------|
6803 |           ipmitool            |→ Hardware handling                |
6804 |-------------------------------+-----------------------------------|
6805 |           ipmiutil            |→ Hardware handling                |
6806 |-------------------------------+-----------------------------------|
6807 |           iproute2            |→ Networking applications          |
6808 |-------------------------------+-----------------------------------|
6809 |           iprutils            |→ System tools                     |
6810 |-------------------------------+-----------------------------------|
6811 |          ipsec-tools          |→ Networking applications          |
6812 |-------------------------------+-----------------------------------|
6813 |             ipset             |→ Networking applications          |
6814 |-------------------------------+-----------------------------------|
6815 |           iptables            |→ Networking applications          |
6816 |-------------------------------+-----------------------------------|
6817 |           iptraf-ng           |→ Networking applications          |
6818 |-------------------------------+-----------------------------------|
6819 |            iputils            |→ Networking applications          |
6820 |-------------------------------+-----------------------------------|
6821 |          irda-utils           |→ Hardware handling                |
6822 |-------------------------------+-----------------------------------|
6823 |          irqbalance           |→ System tools                     |
6824 |-------------------------------+-----------------------------------|
6825 |          iucode-tool          |→ Hardware handling                |
6826 |-------------------------------+-----------------------------------|
6827 |              iw               |→ Networking applications          |
6828 |-------------------------------+-----------------------------------|
6829 |             jack2             |→ Audio and video applications     |
6830 |-------------------------------+-----------------------------------|
6831 |             jamvm             |→ Interpreter languages and        |
6832 |                               |scripting                          |
6833 |-------------------------------+-----------------------------------|
6834 |            jansson            |→ Libraries → JSON/XML             |
6835 |-------------------------------+-----------------------------------|
6836 |         janus-gateway         |→ Networking applications          |
6837 |-------------------------------+-----------------------------------|
6838 |            jasper             |→ Libraries → Graphics             |
6839 |-------------------------------+-----------------------------------|
6840 |             jhead             |→ Graphic libraries and            |
6841 |                               |applications (graphic/text)        |
6842 |-------------------------------+-----------------------------------|
6843 |            jimtcl             |→ Interpreter languages and        |
6844 |                               |scripting                          |
6845 |-------------------------------+-----------------------------------|
6846 |              joe              |→ Text editors and viewers         |
6847 |-------------------------------+-----------------------------------|
6848 |             jpeg              |→ Libraries → Graphics → jpeg      |
6849 |                               |variant                            |
6850 |-------------------------------+-----------------------------------|
6851 |          jpeg-turbo           |→ Libraries → Graphics → jpeg      |
6852 |                               |variant                            |
6853 |-------------------------------+-----------------------------------|
6854 |              jq               |→ Development tools                |
6855 |-------------------------------+-----------------------------------|
6856 |            jQuery             |→ Libraries → Javascript           |
6857 |-------------------------------+-----------------------------------|
6858 |        jQuery keyboard        |→ Libraries → Javascript           |
6859 |-------------------------------+-----------------------------------|
6860 |           jQuery UI           |→ Libraries → Javascript           |
6861 |-------------------------------+-----------------------------------|
6862 |       jQuery UI themes        |→ Libraries → Javascript           |
6863 |-------------------------------+-----------------------------------|
6864 |         jquery-mobile         |→ Libraries → Javascript           |
6865 |-------------------------------+-----------------------------------|
6866 |       jQuery-Sparkline        |→ Libraries → Javascript           |
6867 |-------------------------------+-----------------------------------|
6868 |       jQuery-Validation       |→ Libraries → Javascript           |
6869 |-------------------------------+-----------------------------------|
6870 |             jsmin             |→ Libraries → Javascript           |
6871 |-------------------------------+-----------------------------------|
6872 |            json-c             |→ Libraries → JSON/XML             |
6873 |-------------------------------+-----------------------------------|
6874 |           json-glib           |→ Libraries → JSON/XML             |
6875 |-------------------------------+-----------------------------------|
6876 |        json-javascript        |→ Libraries → Javascript           |
6877 |-------------------------------+-----------------------------------|
6878 |            jsoncpp            |→ Libraries → JSON/XML             |
6879 |-------------------------------+-----------------------------------|
6880 |              kbd              |→ Hardware handling                |
6881 |-------------------------------+-----------------------------------|
6882 |            kbproto            |→ Graphic libraries and            |
6883 |                               |applications (graphic/text) → X11R7|
6884 |                               |X protocols                        |
6885 |-------------------------------+-----------------------------------|
6886 |             kexec             |→ Debugging, profiling and         |
6887 |                               |benchmark                          |
6888 |-------------------------------+-----------------------------------|
6889 |          kexec-lite           |→ Debugging, profiling and         |
6890 |                               |benchmark                          |
6891 |-------------------------------+-----------------------------------|
6892 |           keyutils            |→ System tools                     |
6893 |-------------------------------+-----------------------------------|
6894 |            kismet             |→ Networking applications          |
6895 |-------------------------------+-----------------------------------|
6896 |             kmod              |→ System tools                     |
6897 |-------------------------------+-----------------------------------|
6898 |             knock             |→ Networking applications          |
6899 |-------------------------------+-----------------------------------|
6900 |            kobs-ng            |→ Filesystem and flash utilities   |
6901 |-------------------------------+-----------------------------------|
6902 |             kodi              |→ Audio and video applications     |
6903 |-------------------------------+-----------------------------------|
6904 |        kodi-addon-xvdr        |→ Audio and video applications     |
6905 |-------------------------------+-----------------------------------|
6906 |    kodi-audioencoder-flac     |→ Audio and video applications     |
6907 |-------------------------------+-----------------------------------|
6908 |    kodi-audioencoder-lame     |→ Audio and video applications     |
6909 |-------------------------------+-----------------------------------|
6910 |   kodi-audioencoder-vorbis    |→ Audio and video applications     |
6911 |-------------------------------+-----------------------------------|
6912 |     kodi-audioencoder-wav     |→ Audio and video applications     |
6913 |-------------------------------+-----------------------------------|
6914 |        kodi-pvr-addons        |→ Audio and video applications     |
6915 |-------------------------------+-----------------------------------|
6916 |             ktap              |→ Debugging, profiling and         |
6917 |                               |benchmark                          |
6918 |-------------------------------+-----------------------------------|
6919 |             lame              |→ Audio and video applications     |
6920 |-------------------------------+-----------------------------------|
6921 |          latencytop           |→ Debugging, profiling and         |
6922 |                               |benchmark                          |
6923 |-------------------------------+-----------------------------------|
6924 |            lbase64            |→ Interpreter languages and        |
6925 |                               |scripting → Lua libraries/modules  |
6926 |-------------------------------+-----------------------------------|
6927 |          LBreakout2           |→ Games                            |
6928 |-------------------------------+-----------------------------------|
6929 |            lcdapi             |→ Libraries → Hardware handling    |
6930 |-------------------------------+-----------------------------------|
6931 |            lcdproc            |→ Hardware handling                |
6932 |-------------------------------+-----------------------------------|
6933 |             lcms2             |→ Libraries → Graphics             |
6934 |-------------------------------+-----------------------------------|
6935 |           leafnode2           |→ Networking applications          |
6936 |-------------------------------+-----------------------------------|
6937 |            leafpad            |→ Graphic libraries and            |
6938 |                               |applications (graphic/text)        |
6939 |-------------------------------+-----------------------------------|
6940 |             less              |→ Text editors and viewers         |
6941 |-------------------------------+-----------------------------------|
6942 |            lesstif            |→ Libraries → Graphics             |
6943 |-------------------------------+-----------------------------------|
6944 |            leveldb            |→ Libraries → Database             |
6945 |-------------------------------+-----------------------------------|
6946 |             lftp              |→ Networking applications          |
6947 |-------------------------------+-----------------------------------|
6948 |            libaio             |→ Libraries → Hardware handling    |
6949 |-------------------------------+-----------------------------------|
6950 |             libao             |→ Libraries → Audio/Sound          |
6951 |-------------------------------+-----------------------------------|
6952 |          libarchive           |→ Libraries → Compression and      |
6953 |                               |decompression                      |
6954 |-------------------------------+-----------------------------------|
6955 |         libargtable2          |→ Libraries → Other                |
6956 |-------------------------------+-----------------------------------|
6957 |            libart             |→ Libraries → Graphics             |
6958 |-------------------------------+-----------------------------------|
6959 |            libass             |→ Libraries → Multimedia           |
6960 |-------------------------------+-----------------------------------|
6961 |           libassuan           |→ Libraries → Crypto               |
6962 |-------------------------------+-----------------------------------|
6963 |          libatasmart          |→ Libraries → Hardware handling    |
6964 |-------------------------------+-----------------------------------|
6965 |         libatomic_ops         |→ Libraries → Other                |
6966 |-------------------------------+-----------------------------------|
6967 |           libbluray           |→ Libraries → Multimedia           |
6968 |-------------------------------+-----------------------------------|
6969 |            libbsd             |→ Libraries → Other                |
6970 |-------------------------------+-----------------------------------|
6971 |            libcap             |→ Libraries → Other                |
6972 |-------------------------------+-----------------------------------|
6973 |           libcap-ng           |→ Libraries → Other                |
6974 |-------------------------------+-----------------------------------|
6975 |          libcdaudio           |→ Libraries → Audio/Sound          |
6976 |-------------------------------+-----------------------------------|
6977 |            libcdio            |→ Libraries → Audio/Sound          |
6978 |-------------------------------+-----------------------------------|
6979 |            libcec             |→ Libraries → Hardware handling    |
6980 |-------------------------------+-----------------------------------|
6981 |            libcgi             |→ Libraries → Networking           |
6982 |-------------------------------+-----------------------------------|
6983 |           libcgicc            |→ Libraries → Networking           |
6984 |-------------------------------+-----------------------------------|
6985 |           libcgroup           |→ Libraries → Other                |
6986 |-------------------------------+-----------------------------------|
6987 |            libcli             |→ Libraries → Text and terminal    |
6988 |                               |handling                           |
6989 |-------------------------------+-----------------------------------|
6990 |            libcofi            |→ Libraries → Other                |
6991 |-------------------------------+-----------------------------------|
6992 |           libconfig           |→ Libraries → Filesystem           |
6993 |-------------------------------+-----------------------------------|
6994 |          libconfuse           |→ Libraries → Filesystem           |
6995 |-------------------------------+-----------------------------------|
6996 |            libcue             |→ Libraries → Audio/Sound          |
6997 |-------------------------------+-----------------------------------|
6998 |          libcuefile           |→ Libraries → Audio/Sound          |
6999 |-------------------------------+-----------------------------------|
7000 |            libcurl            |→ Libraries → Networking           |
7001 |-------------------------------+-----------------------------------|
7002 |           libdaemon           |→ Libraries → Other                |
7003 |-------------------------------+-----------------------------------|
7004 |           libdcadec           |→ Libraries → Multimedia           |
7005 |-------------------------------+-----------------------------------|
7006 |            libdmtx            |→ Libraries → Graphics             |
7007 |-------------------------------+-----------------------------------|
7008 |            libdmx             |→ Graphic libraries and            |
7009 |                               |applications (graphic/text) → X11R7|
7010 |                               |Libraries                          |
7011 |-------------------------------+-----------------------------------|
7012 |            libdnet            |→ Libraries → Networking           |
7013 |-------------------------------+-----------------------------------|
7014 |            libdri2            |→ Libraries → Graphics             |
7015 |-------------------------------+-----------------------------------|
7016 |            libdrm             |→ Libraries → Graphics             |
7017 |-------------------------------+-----------------------------------|
7018 |           libdvbcsa           |→ Libraries → Multimedia           |
7019 |-------------------------------+-----------------------------------|
7020 |           libdvbsi            |→ Libraries → Multimedia           |
7021 |-------------------------------+-----------------------------------|
7022 |           libdvdnav           |→ Libraries → Multimedia           |
7023 |-------------------------------+-----------------------------------|
7024 |          libdvdread           |→ Libraries → Multimedia           |
7025 |-------------------------------+-----------------------------------|
7026 |            libebml            |→ Libraries → Multimedia           |
7027 |-------------------------------+-----------------------------------|
7028 |           libecore            |→ Graphic libraries and            |
7029 |                               |applications (graphic/text)        |
7030 |-------------------------------+-----------------------------------|
7031 |           libedbus            |→ Graphic libraries and            |
7032 |                               |applications (graphic/text)        |
7033 |-------------------------------+-----------------------------------|
7034 |            libedit            |→ Libraries → Text and terminal    |
7035 |                               |handling                           |
7036 |-------------------------------+-----------------------------------|
7037 |            libedje            |→ Graphic libraries and            |
7038 |                               |applications (graphic/text)        |
7039 |-------------------------------+-----------------------------------|
7040 |             libee             |→ Libraries → Other                |
7041 |-------------------------------+-----------------------------------|
7042 |            libeet             |→ Graphic libraries and            |
7043 |                               |applications (graphic/text)        |
7044 |-------------------------------+-----------------------------------|
7045 |           libefreet           |→ Graphic libraries and            |
7046 |                               |applications (graphic/text)        |
7047 |-------------------------------+-----------------------------------|
7048 |            libeina            |→ Graphic libraries and            |
7049 |                               |applications (graphic/text)        |
7050 |-------------------------------+-----------------------------------|
7051 |            libeio             |→ Graphic libraries and            |
7052 |                               |applications (graphic/text)        |
7053 |-------------------------------+-----------------------------------|
7054 |         libelementary         |→ Graphic libraries and            |
7055 |                               |applications (graphic/text)        |
7056 |-------------------------------+-----------------------------------|
7057 |           libembryo           |→ Graphic libraries and            |
7058 |                               |applications (graphic/text)        |
7059 |-------------------------------+-----------------------------------|
7060 |            libenca            |→ Libraries → Text and terminal    |
7061 |                               |handling                           |
7062 |-------------------------------+-----------------------------------|
7063 |    Liberation (Free fonts)    |→ Fonts, icons, sounds and themes  |
7064 |-------------------------------+-----------------------------------|
7065 |           libesmtp            |→ Mail                             |
7066 |-------------------------------+-----------------------------------|
7067 |            libestr            |→ Libraries → Text and terminal    |
7068 |                               |handling                           |
7069 |-------------------------------+-----------------------------------|
7070 |           libethumb           |→ Graphic libraries and            |
7071 |                               |applications (graphic/text)        |
7072 |-------------------------------+-----------------------------------|
7073 |             libev             |→ Libraries → Other                |
7074 |-------------------------------+-----------------------------------|
7075 |            libevas            |→ Graphic libraries and            |
7076 |                               |applications (graphic/text)        |
7077 |-------------------------------+-----------------------------------|
7078 |    libevas generic loaders    |→ Graphic libraries and            |
7079 |                               |applications (graphic/text)        |
7080 |-------------------------------+-----------------------------------|
7081 |           libevdev            |→ Libraries → Other                |
7082 |-------------------------------+-----------------------------------|
7083 |           libevent            |→ Libraries → Other                |
7084 |-------------------------------+-----------------------------------|
7085 |            libexif            |→ Libraries → Graphics             |
7086 |-------------------------------+-----------------------------------|
7087 |          libeXosip2           |→ Libraries → Networking           |
7088 |-------------------------------+-----------------------------------|
7089 |            libfcgi            |→ Libraries → Networking           |
7090 |-------------------------------+-----------------------------------|
7091 |            libffi             |→ Libraries → Other                |
7092 |-------------------------------+-----------------------------------|
7093 |          libfontenc           |→ Graphic libraries and            |
7094 |                               |applications (graphic/text) → X11R7|
7095 |                               |Libraries                          |
7096 |-------------------------------+-----------------------------------|
7097 |          libfreefare          |→ Libraries → Hardware handling    |
7098 |-------------------------------+-----------------------------------|
7099 |         libfreeimage          |→ Libraries → Graphics             |
7100 |-------------------------------+-----------------------------------|
7101 |          libfribidi           |→ Libraries → Text and terminal    |
7102 |                               |handling                           |
7103 |-------------------------------+-----------------------------------|
7104 |             libFS             |→ Graphic libraries and            |
7105 |                               |applications (graphic/text) → X11R7|
7106 |                               |Libraries                          |
7107 |-------------------------------+-----------------------------------|
7108 |          libfslcodec          |→ Libraries → Multimedia           |
7109 |-------------------------------+-----------------------------------|
7110 |         libfslparser          |→ Libraries → Multimedia           |
7111 |-------------------------------+-----------------------------------|
7112 |         libfslvpuwrap         |→ Libraries → Multimedia           |
7113 |-------------------------------+-----------------------------------|
7114 |            libftdi            |→ Libraries → Hardware handling    |
7115 |-------------------------------+-----------------------------------|
7116 |           libftdi1            |→ Libraries → Hardware handling    |
7117 |-------------------------------+-----------------------------------|
7118 |            libfuse            |→ Libraries → Filesystem           |
7119 |-------------------------------+-----------------------------------|
7120 |            libgail            |→ Libraries → Graphics             |
7121 |-------------------------------+-----------------------------------|
7122 |           libgcrypt           |→ Libraries → Crypto               |
7123 |-------------------------------+-----------------------------------|
7124 |          libgeotiff           |→ Libraries → Graphics             |
7125 |-------------------------------+-----------------------------------|
7126 |           libglade            |→ Libraries → Graphics             |
7127 |-------------------------------+-----------------------------------|
7128 |            libglew            |→ Libraries → Graphics             |
7129 |-------------------------------+-----------------------------------|
7130 |           libglib2            |→ Libraries → Other                |
7131 |-------------------------------+-----------------------------------|
7132 |            libglu             |→ Libraries → Graphics             |
7133 |-------------------------------+-----------------------------------|
7134 |         libgpg-error          |→ Libraries → Crypto               |
7135 |-------------------------------+-----------------------------------|
7136 |           libgpgme            |→ Libraries → Crypto               |
7137 |-------------------------------+-----------------------------------|
7138 |           libgsasl            |→ Libraries → Networking           |
7139 |-------------------------------+-----------------------------------|
7140 |            libgtk2            |→ Libraries → Graphics             |
7141 |-------------------------------+-----------------------------------|
7142 |            libgtk3            |→ Libraries → Graphics             |
7143 |-------------------------------+-----------------------------------|
7144 |            libhid             |→ Libraries → Hardware handling    |
7145 |-------------------------------+-----------------------------------|
7146 |            libical            |→ Libraries → Other                |
7147 |-------------------------------+-----------------------------------|
7148 |            libICE             |→ Graphic libraries and            |
7149 |                               |applications (graphic/text) → X11R7|
7150 |                               |Libraries                          |
7151 |-------------------------------+-----------------------------------|
7152 |           libiconv            |→ Libraries → Text and terminal    |
7153 |                               |handling                           |
7154 |-------------------------------+-----------------------------------|
7155 |           libid3tag           |→ Libraries → Audio/Sound          |
7156 |-------------------------------+-----------------------------------|
7157 |            libidn             |→ Libraries → Networking           |
7158 |-------------------------------+-----------------------------------|
7159 |            libiio             |→ Libraries → Hardware handling    |
7160 |-------------------------------+-----------------------------------|
7161 |           libinput            |→ Libraries → Hardware handling    |
7162 |-------------------------------+-----------------------------------|
7163 |            libiqrf            |→ Libraries → Hardware handling    |
7164 |-------------------------------+-----------------------------------|
7165 |           libiscsi            |→ Libraries → Networking           |
7166 |-------------------------------+-----------------------------------|
7167 |            libjson            |→ Libraries → JSON/XML             |
7168 |-------------------------------+-----------------------------------|
7169 |            libksba            |→ Libraries → Crypto               |
7170 |-------------------------------+-----------------------------------|
7171 |           liblinear           |→ Libraries → Other                |
7172 |-------------------------------+-----------------------------------|
7173 |            libllcp            |→ Libraries → Hardware handling    |
7174 |-------------------------------+-----------------------------------|
7175 |             liblo             |→ Libraries → Audio/Sound          |
7176 |-------------------------------+-----------------------------------|
7177 |          liblockfile          |→ Libraries → Filesystem           |
7178 |-------------------------------+-----------------------------------|
7179 |      liblog4c-localtime       |→ Libraries → Logging              |
7180 |-------------------------------+-----------------------------------|
7181 |          liblogging           |→ Libraries → Logging              |
7182 |-------------------------------+-----------------------------------|
7183 |            libmad             |→ Libraries → Audio/Sound          |
7184 |-------------------------------+-----------------------------------|
7185 |          libmatroska          |→ Libraries → Multimedia           |
7186 |-------------------------------+-----------------------------------|
7187 |            libmbim            |→ Libraries → Hardware handling    |
7188 |-------------------------------+-----------------------------------|
7189 |            libmbus            |→ Libraries → Networking           |
7190 |-------------------------------+-----------------------------------|
7191 |           libmcrypt           |→ Libraries → Crypto               |
7192 |-------------------------------+-----------------------------------|
7193 |         libmemcached          |→ Libraries → Networking           |
7194 |-------------------------------+-----------------------------------|
7195 |           libmhash            |→ Libraries → Crypto               |
7196 |-------------------------------+-----------------------------------|
7197 |         libmicrohttpd         |→ Libraries → Networking           |
7198 |-------------------------------+-----------------------------------|
7199 |            libmms             |→ Libraries → Multimedia           |
7200 |-------------------------------+-----------------------------------|
7201 |            libmnl             |→ Libraries → Networking           |
7202 |-------------------------------+-----------------------------------|
7203 |           libmodbus           |→ Libraries → Networking           |
7204 |-------------------------------+-----------------------------------|
7205 |          libmodplug           |→ Libraries → Audio/Sound          |
7206 |-------------------------------+-----------------------------------|
7207 |            libmpd             |→ Libraries → Audio/Sound          |
7208 |-------------------------------+-----------------------------------|
7209 |         libmpdclient          |→ Libraries → Audio/Sound          |
7210 |-------------------------------+-----------------------------------|
7211 |           libmpeg2            |→ Libraries → Multimedia           |
7212 |-------------------------------+-----------------------------------|
7213 |            libndp             |→ Libraries → Networking           |
7214 |-------------------------------+-----------------------------------|
7215 |            libneon            |→ Libraries → Networking           |
7216 |-------------------------------+-----------------------------------|
7217 |       libnetfilter_acct       |→ Libraries → Networking           |
7218 |-------------------------------+-----------------------------------|
7219 |    libnetfilter_conntrack     |→ Libraries → Networking           |
7220 |-------------------------------+-----------------------------------|
7221 |     libnetfilter_cthelper     |→ Libraries → Networking           |
7222 |-------------------------------+-----------------------------------|
7223 |    libnetfilter_cttimeout     |→ Libraries → Networking           |
7224 |-------------------------------+-----------------------------------|
7225 |       libnetfilter_log        |→ Libraries → Networking           |
7226 |-------------------------------+-----------------------------------|
7227 |      libnetfilter_queue       |→ Libraries → Networking           |
7228 |-------------------------------+-----------------------------------|
7229 |            libnfc             |→ Libraries → Hardware handling    |
7230 |-------------------------------+-----------------------------------|
7231 |         libnfnetlink          |→ Libraries → Networking           |
7232 |-------------------------------+-----------------------------------|
7233 |            libnfs             |→ Libraries → Filesystem           |
7234 |-------------------------------+-----------------------------------|
7235 |           libnftnl            |→ Libraries → Networking           |
7236 |-------------------------------+-----------------------------------|
7237 |            libnice            |→ Libraries → Networking           |
7238 |-------------------------------+-----------------------------------|
7239 |             libnl             |→ Libraries → Networking           |
7240 |-------------------------------+-----------------------------------|
7241 |            libnspr            |→ Libraries → Other                |
7242 |-------------------------------+-----------------------------------|
7243 |            libnss             |→ Libraries → Crypto               |
7244 |-------------------------------+-----------------------------------|
7245 |           liboauth            |→ Libraries → Networking           |
7246 |-------------------------------+-----------------------------------|
7247 |            libogg             |→ Libraries → Multimedia           |
7248 |-------------------------------+-----------------------------------|
7249 |           liboping            |→ Libraries → Networking           |
7250 |-------------------------------+-----------------------------------|
7251 |           libosip2            |→ Libraries → Networking           |
7252 |-------------------------------+-----------------------------------|
7253 |            libpcap            |→ Libraries → Networking           |
7254 |-------------------------------+-----------------------------------|
7255 |         libpciaccess          |→ Libraries → Hardware handling    |
7256 |-------------------------------+-----------------------------------|
7257 |            libpfm4            |→ Libraries → Other                |
7258 |-------------------------------+-----------------------------------|
7259 |          libphidget           |→ Libraries → Hardware handling    |
7260 |-------------------------------+-----------------------------------|
7261 |           libplayer           |→ Libraries → Multimedia           |
7262 |-------------------------------+-----------------------------------|
7263 |           libplist            |→ Libraries → Other                |
7264 |-------------------------------+-----------------------------------|
7265 |            libpng             |→ Libraries → Graphics             |
7266 |-------------------------------+-----------------------------------|
7267 |       libpthread-stubs        |→ Libraries → Other                |
7268 |-------------------------------+-----------------------------------|
7269 |           libpthsem           |→ Libraries → Other                |
7270 |-------------------------------+-----------------------------------|
7271 |            libqmi             |→ Libraries → Hardware handling    |
7272 |-------------------------------+-----------------------------------|
7273 |          libqrencode          |→ Libraries → Graphics             |
7274 |-------------------------------+-----------------------------------|
7275 |            libraw             |→ Libraries → Graphics             |
7276 |-------------------------------+-----------------------------------|
7277 |          libraw1394           |→ Libraries → Hardware handling    |
7278 |-------------------------------+-----------------------------------|
7279 |         libreplaygain         |→ Libraries → Audio/Sound          |
7280 |-------------------------------+-----------------------------------|
7281 |            librsvg            |→ Libraries → Graphics             |
7282 |-------------------------------+-----------------------------------|
7283 |           librsync            |→ Libraries → Networking           |
7284 |-------------------------------+-----------------------------------|
7285 |           librtlsdr           |→ Libraries → Hardware handling    |
7286 |-------------------------------+-----------------------------------|
7287 |            librtmp            |→ Libraries → Networking           |
7288 |-------------------------------+-----------------------------------|
7289 |         libsamplerate         |→ Libraries → Audio/Sound          |
7290 |-------------------------------+-----------------------------------|
7291 |          libseccomp           |→ Libraries → Other                |
7292 |-------------------------------+-----------------------------------|
7293 |           libsecret           |→ Libraries → Crypto               |
7294 |-------------------------------+-----------------------------------|
7295 |          libselinux           |→ Libraries → Security             |
7296 |-------------------------------+-----------------------------------|
7297 |          libsemanage          |→ Libraries → Security             |
7298 |-------------------------------+-----------------------------------|
7299 |           libsepol            |→ Libraries → Security             |
7300 |-------------------------------+-----------------------------------|
7301 |           libserial           |→ Libraries → Hardware handling    |
7302 |-------------------------------+-----------------------------------|
7303 |         libserialport         |→ Libraries → Hardware handling    |
7304 |-------------------------------+-----------------------------------|
7305 |            libsexy            |→ Graphic libraries and            |
7306 |                               |applications (graphic/text)        |
7307 |-------------------------------+-----------------------------------|
7308 |            libsha1            |→ Libraries → Crypto               |
7309 |-------------------------------+-----------------------------------|
7310 |         libshairplay          |→ Libraries → Networking           |
7311 |-------------------------------+-----------------------------------|
7312 |           libshout            |→ Libraries → Networking           |
7313 |-------------------------------+-----------------------------------|
7314 |          libsidplay2          |→ Libraries → Audio/Sound          |
7315 |-------------------------------+-----------------------------------|
7316 |           libsigc++           |→ Libraries → Other                |
7317 |-------------------------------+-----------------------------------|
7318 |           libsigrok           |→ Libraries → Hardware handling    |
7319 |-------------------------------+-----------------------------------|
7320 |        libsigrokdecode        |→ Libraries → Hardware handling    |
7321 |-------------------------------+-----------------------------------|
7322 |          libsigsegv           |→ Libraries → Other                |
7323 |-------------------------------+-----------------------------------|
7324 |             libSM             |→ Graphic libraries and            |
7325 |                               |applications (graphic/text) → X11R7|
7326 |                               |Libraries                          |
7327 |-------------------------------+-----------------------------------|
7328 |          libsndfile           |→ Libraries → Audio/Sound          |
7329 |-------------------------------+-----------------------------------|
7330 |            libsoc             |→ Libraries → Hardware handling    |
7331 |-------------------------------+-----------------------------------|
7332 |         libsocketcan          |→ Libraries → Networking           |
7333 |-------------------------------+-----------------------------------|
7334 |            libsoup            |→ Libraries → Networking           |
7335 |-------------------------------+-----------------------------------|
7336 |            libsoxr            |→ Libraries → Audio/Sound          |
7337 |-------------------------------+-----------------------------------|
7338 |            libsrtp            |→ Libraries → Networking           |
7339 |-------------------------------+-----------------------------------|
7340 |            libssh2            |→ Libraries → Crypto               |
7341 |-------------------------------+-----------------------------------|
7342 |          libstrophe           |→ Libraries → Networking           |
7343 |-------------------------------+-----------------------------------|
7344 |            libsvg             |→ Libraries → Graphics             |
7345 |-------------------------------+-----------------------------------|
7346 |         libsvg-cairo          |→ Libraries → Graphics             |
7347 |-------------------------------+-----------------------------------|
7348 |          libsvgtiny           |→ Libraries → Graphics             |
7349 |-------------------------------+-----------------------------------|
7350 |           libsysfs            |→ Libraries → Filesystem           |
7351 |-------------------------------+-----------------------------------|
7352 |           libtasn1            |→ Libraries → Other                |
7353 |-------------------------------+-----------------------------------|
7354 |           libtheora           |→ Libraries → Multimedia           |
7355 |-------------------------------+-----------------------------------|
7356 |           libtirpc            |→ Libraries → Networking           |
7357 |-------------------------------+-----------------------------------|
7358 |            libtool            |→ Development tools                |
7359 |-------------------------------+-----------------------------------|
7360 |          libtorrent           |→ Libraries → Networking           |
7361 |-------------------------------+-----------------------------------|
7362 |            libtpl             |→ Libraries → Other                |
7363 |-------------------------------+-----------------------------------|
7364 |            libubox            |→ Libraries → Other                |
7365 |-------------------------------+-----------------------------------|
7366 |            libuci             |→ Libraries → Other                |
7367 |-------------------------------+-----------------------------------|
7368 |     libungif (deprecated)     |→ Libraries → Graphics             |
7369 |-------------------------------+-----------------------------------|
7370 |         libunistring          |→ Libraries → Text and terminal    |
7371 |                               |handling                           |
7372 |-------------------------------+-----------------------------------|
7373 |           libunwind           |→ Libraries → Other                |
7374 |-------------------------------+-----------------------------------|
7375 |            libupnp            |→ Libraries → Networking           |
7376 |-------------------------------+-----------------------------------|
7377 |           libupnpp            |→ Libraries → Networking           |
7378 |-------------------------------+-----------------------------------|
7379 |            liburcu            |→ Libraries → Other                |
7380 |-------------------------------+-----------------------------------|
7381 |         liburiparser          |→ Libraries → Networking           |
7382 |-------------------------------+-----------------------------------|
7383 |            libusb             |→ Libraries → Hardware handling    |
7384 |-------------------------------+-----------------------------------|
7385 |         libusb-compat         |→ Libraries → Hardware handling    |
7386 |-------------------------------+-----------------------------------|
7387 |             libuv             |→ Libraries → Other                |
7388 |-------------------------------+-----------------------------------|
7389 |            libv4l             |→ Libraries → Hardware handling    |
7390 |-------------------------------+-----------------------------------|
7391 |             libva             |→ Libraries → Graphics             |
7392 |-------------------------------+-----------------------------------|
7393 |      libva-intel-driver       |→ Libraries → Graphics             |
7394 |-------------------------------+-----------------------------------|
7395 |            libvips            |→ Libraries → Graphics             |
7396 |-------------------------------+-----------------------------------|
7397 |         libvncserver          |→ Libraries → Networking           |
7398 |-------------------------------+-----------------------------------|
7399 |           libvorbis           |→ Libraries → Audio/Sound          |
7400 |-------------------------------+-----------------------------------|
7401 |            libvpx             |→ Audio and video applications     |
7402 |-------------------------------+-----------------------------------|
7403 |          libwebsock           |→ Libraries → Networking           |
7404 |-------------------------------+-----------------------------------|
7405 |         libwebsockets         |→ Libraries → Networking           |
7406 |-------------------------------+-----------------------------------|
7407 |            libX11             |→ Graphic libraries and            |
7408 |                               |applications (graphic/text) → X11R7|
7409 |                               |Libraries                          |
7410 |-------------------------------+-----------------------------------|
7411 |            libXau             |→ Graphic libraries and            |
7412 |                               |applications (graphic/text) → X11R7|
7413 |                               |Libraries                          |
7414 |-------------------------------+-----------------------------------|
7415 |            libXaw             |→ Graphic libraries and            |
7416 |                               |applications (graphic/text) → X11R7|
7417 |                               |Libraries                          |
7418 |-------------------------------+-----------------------------------|
7419 |            libxcb             |→ Graphic libraries and            |
7420 |                               |applications (graphic/text) → X11R7|
7421 |                               |Libraries                          |
7422 |-------------------------------+-----------------------------------|
7423 |         libXcomposite         |→ Graphic libraries and            |
7424 |                               |applications (graphic/text) → X11R7|
7425 |                               |Libraries                          |
7426 |-------------------------------+-----------------------------------|
7427 |          libXcursor           |→ Graphic libraries and            |
7428 |                               |applications (graphic/text) → X11R7|
7429 |                               |Libraries                          |
7430 |-------------------------------+-----------------------------------|
7431 |          libXdamage           |→ Graphic libraries and            |
7432 |                               |applications (graphic/text) → X11R7|
7433 |                               |Libraries                          |
7434 |-------------------------------+-----------------------------------|
7435 |           libXdmcp            |→ Graphic libraries and            |
7436 |                               |applications (graphic/text) → X11R7|
7437 |                               |Libraries                          |
7438 |-------------------------------+-----------------------------------|
7439 |            libXext            |→ Graphic libraries and            |
7440 |                               |applications (graphic/text) → X11R7|
7441 |                               |Libraries                          |
7442 |-------------------------------+-----------------------------------|
7443 |           libXfixes           |→ Graphic libraries and            |
7444 |                               |applications (graphic/text) → X11R7|
7445 |                               |Libraries                          |
7446 |-------------------------------+-----------------------------------|
7447 |           libXfont            |→ Graphic libraries and            |
7448 |                               |applications (graphic/text) → X11R7|
7449 |                               |Libraries                          |
7450 |-------------------------------+-----------------------------------|
7451 |            libXft             |→ Graphic libraries and            |
7452 |                               |applications (graphic/text) → X11R7|
7453 |                               |Libraries                          |
7454 |-------------------------------+-----------------------------------|
7455 |             libXi             |→ Graphic libraries and            |
7456 |                               |applications (graphic/text) → X11R7|
7457 |                               |Libraries                          |
7458 |-------------------------------+-----------------------------------|
7459 |          libXinerama          |→ Graphic libraries and            |
7460 |                               |applications (graphic/text) → X11R7|
7461 |                               |Libraries                          |
7462 |-------------------------------+-----------------------------------|
7463 |         libxkbcommon          |→ Libraries → Hardware handling    |
7464 |-------------------------------+-----------------------------------|
7465 |          libxkbfile           |→ Graphic libraries and            |
7466 |                               |applications (graphic/text) → X11R7|
7467 |                               |Libraries                          |
7468 |-------------------------------+-----------------------------------|
7469 |           libxml++            |→ Libraries → JSON/XML             |
7470 |-------------------------------+-----------------------------------|
7471 |            libxml2            |→ Libraries → JSON/XML             |
7472 |-------------------------------+-----------------------------------|
7473 |           libxmlrpc           |→ Libraries → JSON/XML             |
7474 |-------------------------------+-----------------------------------|
7475 |            libXmu             |→ Graphic libraries and            |
7476 |                               |applications (graphic/text) → X11R7|
7477 |                               |Libraries                          |
7478 |-------------------------------+-----------------------------------|
7479 |            libXpm             |→ Graphic libraries and            |
7480 |                               |applications (graphic/text) → X11R7|
7481 |                               |Libraries                          |
7482 |-------------------------------+-----------------------------------|
7483 |           libXrandr           |→ Graphic libraries and            |
7484 |                               |applications (graphic/text) → X11R7|
7485 |                               |Libraries                          |
7486 |-------------------------------+-----------------------------------|
7487 |          libXrender           |→ Graphic libraries and            |
7488 |                               |applications (graphic/text) → X11R7|
7489 |                               |Libraries                          |
7490 |-------------------------------+-----------------------------------|
7491 |            libXres            |→ Graphic libraries and            |
7492 |                               |applications (graphic/text) → X11R7|
7493 |                               |Libraries                          |
7494 |-------------------------------+-----------------------------------|
7495 |         libXScrnSaver         |→ Graphic libraries and            |
7496 |                               |applications (graphic/text) → X11R7|
7497 |                               |Libraries                          |
7498 |-------------------------------+-----------------------------------|
7499 |         libxshmfence          |→ Graphic libraries and            |
7500 |                               |applications (graphic/text) → X11R7|
7501 |                               |Libraries                          |
7502 |-------------------------------+-----------------------------------|
7503 |            libxslt            |→ Libraries → JSON/XML             |
7504 |-------------------------------+-----------------------------------|
7505 |             libXt             |→ Graphic libraries and            |
7506 |                               |applications (graphic/text) → X11R7|
7507 |                               |Libraries                          |
7508 |-------------------------------+-----------------------------------|
7509 |            libXtst            |→ Graphic libraries and            |
7510 |                               |applications (graphic/text) → X11R7|
7511 |                               |Libraries                          |
7512 |-------------------------------+-----------------------------------|
7513 |             libXv             |→ Graphic libraries and            |
7514 |                               |applications (graphic/text) → X11R7|
7515 |                               |Libraries                          |
7516 |-------------------------------+-----------------------------------|
7517 |            libXvMC            |→ Graphic libraries and            |
7518 |                               |applications (graphic/text) → X11R7|
7519 |                               |Libraries                          |
7520 |-------------------------------+-----------------------------------|
7521 |          libXxf86dga          |→ Graphic libraries and            |
7522 |                               |applications (graphic/text) → X11R7|
7523 |                               |Libraries                          |
7524 |-------------------------------+-----------------------------------|
7525 |          libXxf86vm           |→ Graphic libraries and            |
7526 |                               |applications (graphic/text) → X11R7|
7527 |                               |Libraries                          |
7528 |-------------------------------+-----------------------------------|
7529 |            libyaml            |→ Libraries → JSON/XML             |
7530 |-------------------------------+-----------------------------------|
7531 |            libz160            |→ Hardware handling                |
7532 |-------------------------------+-----------------------------------|
7533 |            libzip             |→ Libraries → Compression and      |
7534 |                               |decompression                      |
7535 |-------------------------------+-----------------------------------|
7536 |           lightning           |→ Libraries → Other                |
7537 |-------------------------------+-----------------------------------|
7538 |           lighttpd            |→ Networking applications          |
7539 |-------------------------------+-----------------------------------|
7540 |           linenoise           |→ Libraries → Text and terminal    |
7541 |                               |handling                           |
7542 |-------------------------------+-----------------------------------|
7543 |            linknx             |→ Networking applications          |
7544 |-------------------------------+-----------------------------------|
7545 |             links             |→ Networking applications          |
7546 |-------------------------------+-----------------------------------|
7547 |           linphone            |→ Networking applications          |
7548 |-------------------------------+-----------------------------------|
7549 |        linux-firmware         |→ Hardware handling → Firmware     |
7550 |-------------------------------+-----------------------------------|
7551 |  linux-fusion communication   |→ Graphic libraries and            |
7552 |   layer for DirectFB multi    |applications (graphic/text)        |
7553 |-------------------------------+-----------------------------------|
7554 |           linux-pam           |→ Libraries → Other                |
7555 |-------------------------------+-----------------------------------|
7556 |         linux-zigbee          |→ Networking applications          |
7557 |-------------------------------+-----------------------------------|
7558 |          lirc-tools           |→ Hardware handling                |
7559 |-------------------------------+-----------------------------------|
7560 |            listres            |→ Graphic libraries and            |
7561 |                               |applications (graphic/text) → X11R7|
7562 |                               |Applications                       |
7563 |-------------------------------+-----------------------------------|
7564 |     LiTE (toolbox engine)     |→ Graphic libraries and            |
7565 |                               |applications (graphic/text)        |
7566 |-------------------------------+-----------------------------------|
7567 |            live555            |→ Libraries → Multimedia           |
7568 |-------------------------------+-----------------------------------|
7569 |          ljlinenoise          |→ Interpreter languages and        |
7570 |                               |scripting → Lua libraries/modules  |
7571 |-------------------------------+-----------------------------------|
7572 |           ljsyscall           |→ Interpreter languages and        |
7573 |                               |scripting → Lua libraries/modules  |
7574 |-------------------------------+-----------------------------------|
7575 |          lm-sensors           |→ Hardware handling                |
7576 |-------------------------------+-----------------------------------|
7577 |            lmbench            |→ Debugging, profiling and         |
7578 |                               |benchmark                          |
7579 |-------------------------------+-----------------------------------|
7580 |            lockdev            |→ Libraries → Filesystem           |
7581 |-------------------------------+-----------------------------------|
7582 |       lockfile programs       |→ Shell and utilities              |
7583 |-------------------------------+-----------------------------------|
7584 |           log4cplus           |→ Libraries → Logging              |
7585 |-------------------------------+-----------------------------------|
7586 |            log4cxx            |→ Libraries → Logging              |
7587 |-------------------------------+-----------------------------------|
7588 |           logrotate           |→ Shell and utilities              |
7589 |-------------------------------+-----------------------------------|
7590 |           logsurfer           |→ Shell and utilities              |
7591 |-------------------------------+-----------------------------------|
7592 |             lpeg              |→ Interpreter languages and        |
7593 |                               |scripting → Lua libraries/modules  |
7594 |-------------------------------+-----------------------------------|
7595 |             lpty              |→ Interpreter languages and        |
7596 |                               |scripting → Lua libraries/modules  |
7597 |-------------------------------+-----------------------------------|
7598 |            lrandom            |→ Interpreter languages and        |
7599 |                               |scripting → Lua libraries/modules  |
7600 |-------------------------------+-----------------------------------|
7601 |             lrzsz             |→ Networking applications          |
7602 |-------------------------------+-----------------------------------|
7603 |             lshw              |→ Hardware handling                |
7604 |-------------------------------+-----------------------------------|
7605 |             lsof              |→ Debugging, profiling and         |
7606 |                               |benchmark                          |
7607 |-------------------------------+-----------------------------------|
7608 |           lsqlite3            |→ Interpreter languages and        |
7609 |                               |scripting → Lua libraries/modules  |
7610 |-------------------------------+-----------------------------------|
7611 |             lsuio             |→ Hardware handling                |
7612 |-------------------------------+-----------------------------------|
7613 |         ltp-testsuite         |→ Debugging, profiling and         |
7614 |                               |benchmark                          |
7615 |-------------------------------+-----------------------------------|
7616 |            ltrace             |→ Debugging, profiling and         |
7617 |                               |benchmark                          |
7618 |-------------------------------+-----------------------------------|
7619 |             LTris             |→ Games                            |
7620 |-------------------------------+-----------------------------------|
7621 |       lttng-babeltrace        |→ Debugging, profiling and         |
7622 |                               |benchmark                          |
7623 |-------------------------------+-----------------------------------|
7624 |         lttng-libust          |→ Libraries → Other                |
7625 |-------------------------------+-----------------------------------|
7626 |         lttng-modules         |→ Debugging, profiling and         |
7627 |                               |benchmark                          |
7628 |-------------------------------+-----------------------------------|
7629 |          lttng-tools          |→ Debugging, profiling and         |
7630 |                               |benchmark                          |
7631 |-------------------------------+-----------------------------------|
7632 |              lua              |→ Interpreter languages and        |
7633 |                               |scripting                          |
7634 |-------------------------------+-----------------------------------|
7635 |           lua-cjson           |→ Interpreter languages and        |
7636 |                               |scripting → Lua libraries/modules  |
7637 |-------------------------------+-----------------------------------|
7638 |           lua-coat            |→ Interpreter languages and        |
7639 |                               |scripting → Lua libraries/modules  |
7640 |-------------------------------+-----------------------------------|
7641 |      lua-coatpersistent       |→ Interpreter languages and        |
7642 |                               |scripting → Lua libraries/modules  |
7643 |-------------------------------+-----------------------------------|
7644 |          lua-csnappy          |→ Interpreter languages and        |
7645 |                               |scripting → Lua libraries/modules  |
7646 |-------------------------------+-----------------------------------|
7647 |            lua-ev             |→ Interpreter languages and        |
7648 |                               |scripting → Lua libraries/modules  |
7649 |-------------------------------+-----------------------------------|
7650 |        lua-messagepack        |→ Interpreter languages and        |
7651 |                               |scripting → Lua libraries/modules  |
7652 |-------------------------------+-----------------------------------|
7653 |      lua-msgpack-native       |→ Interpreter languages and        |
7654 |                               |scripting → Lua libraries/modules  |
7655 |-------------------------------+-----------------------------------|
7656 |         lua-periphery         |→ Interpreter languages and        |
7657 |                               |scripting → Lua libraries/modules  |
7658 |-------------------------------+-----------------------------------|
7659 |         lua-testmore          |→ Interpreter languages and        |
7660 |                               |scripting → Lua libraries/modules  |
7661 |-------------------------------+-----------------------------------|
7662 |           luabitop            |→ Interpreter languages and        |
7663 |                               |scripting → Lua libraries/modules  |
7664 |-------------------------------+-----------------------------------|
7665 |           luacrypto           |→ Interpreter languages and        |
7666 |                               |scripting → Lua libraries/modules  |
7667 |-------------------------------+-----------------------------------|
7668 |           luaexpat            |→ Interpreter languages and        |
7669 |                               |scripting → Lua libraries/modules  |
7670 |-------------------------------+-----------------------------------|
7671 |         luaexpatutils         |→ Interpreter languages and        |
7672 |                               |scripting → Lua libraries/modules  |
7673 |-------------------------------+-----------------------------------|
7674 |         luafilesystem         |→ Interpreter languages and        |
7675 |                               |scripting → Lua libraries/modules  |
7676 |-------------------------------+-----------------------------------|
7677 |            luajit             |→ Interpreter languages and        |
7678 |                               |scripting                          |
7679 |-------------------------------+-----------------------------------|
7680 |            luajson            |→ Interpreter languages and        |
7681 |                               |scripting → Lua libraries/modules  |
7682 |-------------------------------+-----------------------------------|
7683 |          lualogging           |→ Interpreter languages and        |
7684 |                               |scripting → Lua libraries/modules  |
7685 |-------------------------------+-----------------------------------|
7686 |           luaposix            |→ Interpreter languages and        |
7687 |                               |scripting → Lua libraries/modules  |
7688 |-------------------------------+-----------------------------------|
7689 |            luasec             |→ Interpreter languages and        |
7690 |                               |scripting → Lua libraries/modules  |
7691 |-------------------------------+-----------------------------------|
7692 |           luasocket           |→ Interpreter languages and        |
7693 |                               |scripting → Lua libraries/modules  |
7694 |-------------------------------+-----------------------------------|
7695 |        luasql-sqlite3         |→ Interpreter languages and        |
7696 |                               |scripting → Lua libraries/modules  |
7697 |-------------------------------+-----------------------------------|
7698 |             luit              |→ Graphic libraries and            |
7699 |                               |applications (graphic/text) → X11R7|
7700 |                               |Applications                       |
7701 |-------------------------------+-----------------------------------|
7702 |             lunit             |→ Interpreter languages and        |
7703 |                               |scripting → Lua libraries/modules  |
7704 |-------------------------------+-----------------------------------|
7705 |     lvm2 & device mapper      |→ Hardware handling                |
7706 |-------------------------------+-----------------------------------|
7707 |              lxc              |→ System tools                     |
7708 |-------------------------------+-----------------------------------|
7709 |              lz4              |→ Compressors and decompressors    |
7710 |-------------------------------+-----------------------------------|
7711 |             lzip              |→ Compressors and decompressors    |
7712 |-------------------------------+-----------------------------------|
7713 |             lzlib             |→ Interpreter languages and        |
7714 |                               |scripting → Lua libraries/modules  |
7715 |-------------------------------+-----------------------------------|
7716 |              lzo              |→ Libraries → Compression and      |
7717 |                               |decompression                      |
7718 |-------------------------------+-----------------------------------|
7719 |             lzop              |→ Compressors and decompressors    |
7720 |-------------------------------+-----------------------------------|
7721 |          macchanger           |→ Networking applications          |
7722 |-------------------------------+-----------------------------------|
7723 |            madplay            |→ Audio and video applications     |
7724 |-------------------------------+-----------------------------------|
7725 |             make              |→ Development tools                |
7726 |-------------------------------+-----------------------------------|
7727 |          makedepend           |→ Graphic libraries and            |
7728 |                               |applications (graphic/text) → X11R7|
7729 |                               |Utilities                          |
7730 |-------------------------------+-----------------------------------|
7731 |           makedevs            |→ Filesystem and flash utilities   |
7732 |-------------------------------+-----------------------------------|
7733 |       Matchbox Desktop        |→ Graphic libraries and            |
7734 |                               |applications (graphic/text)        |
7735 |-------------------------------+-----------------------------------|
7736 |        Matchbox Panel         |→ Graphic libraries and            |
7737 |                               |applications (graphic/text)        |
7738 |-------------------------------+-----------------------------------|
7739 | Matchbox session common files |→ Graphic libraries and            |
7740 |                               |applications (graphic/text)        |
7741 |-------------------------------+-----------------------------------|
7742 |   Matchbox Virtual Keyboard   |→ Graphic libraries and            |
7743 |                               |applications (graphic/text)        |
7744 |-------------------------------+-----------------------------------|
7745 |    MatchBox Window Manager    |→ Graphic libraries and            |
7746 |                               |applications (graphic/text)        |
7747 |-------------------------------+-----------------------------------|
7748 |              mc               |→ Text editors and viewers         |
7749 |-------------------------------+-----------------------------------|
7750 |            mcelog             |→ Debugging, profiling and         |
7751 |                               |benchmark                          |
7752 |-------------------------------+-----------------------------------|
7753 |            mcookie            |→ Graphic libraries and            |
7754 |                               |applications (graphic/text) → X11R7|
7755 |                               |Utilities                          |
7756 |-------------------------------+-----------------------------------|
7757 |            mcrypt             |→ Miscellaneous                    |
7758 |-------------------------------+-----------------------------------|
7759 |             mdadm             |→ Hardware handling                |
7760 |-------------------------------+-----------------------------------|
7761 |           media-ctl           |→ Hardware handling                |
7762 |-------------------------------+-----------------------------------|
7763 |         mediastreamer         |→ Libraries → Multimedia           |
7764 |-------------------------------+-----------------------------------|
7765 |           memcached           |→ Networking applications          |
7766 |-------------------------------+-----------------------------------|
7767 |            memstat            |→ Debugging, profiling and         |
7768 |                               |benchmark                          |
7769 |-------------------------------+-----------------------------------|
7770 |           memtest86           |→ Hardware handling                |
7771 |-------------------------------+-----------------------------------|
7772 |           memtester           |→ Hardware handling                |
7773 |-------------------------------+-----------------------------------|
7774 |            mesa3d             |→ Graphic libraries and            |
7775 |                               |applications (graphic/text)        |
7776 |-------------------------------+-----------------------------------|
7777 |         mesa3d-demos          |→ Graphic libraries and            |
7778 |                               |applications (graphic/text)        |
7779 |-------------------------------+-----------------------------------|
7780 |           metacity            |→ Graphic libraries and            |
7781 |                               |applications (graphic/text)        |
7782 |-------------------------------+-----------------------------------|
7783 |            midori             |→ Graphic libraries and            |
7784 |                               |applications (graphic/text)        |
7785 |-------------------------------+-----------------------------------|
7786 |           mii-diag            |→ Networking applications          |
7787 |-------------------------------+-----------------------------------|
7788 |           Mini-XML            |→ Libraries → JSON/XML             |
7789 |-------------------------------+-----------------------------------|
7790 |            minicom            |→ Hardware handling                |
7791 |-------------------------------+-----------------------------------|
7792 |           minidlna            |→ Networking applications          |
7793 |-------------------------------+-----------------------------------|
7794 |          mjpegtools           |→ Audio and video applications     |
7795 |-------------------------------+-----------------------------------|
7796 |         mjpg-streamer         |→ Networking applications          |
7797 |-------------------------------+-----------------------------------|
7798 |           mkfontdir           |→ Graphic libraries and            |
7799 |                               |applications (graphic/text) → X11R7|
7800 |                               |Applications                       |
7801 |-------------------------------+-----------------------------------|
7802 |          mkfontscale          |→ Graphic libraries and            |
7803 |                               |applications (graphic/text) → X11R7|
7804 |                               |Applications                       |
7805 |-------------------------------+-----------------------------------|
7806 |           mmc-utils           |→ Filesystem and flash utilities   |
7807 |-------------------------------+-----------------------------------|
7808 |mobile-broadband-provider-info |→ Miscellaneous                    |
7809 |-------------------------------+-----------------------------------|
7810 |         modemmanager          |→ Networking applications          |
7811 |-------------------------------+-----------------------------------|
7812 |         modplugtools          |→ Audio and video applications     |
7813 |-------------------------------+-----------------------------------|
7814 |           mongoose            |→ Networking applications          |
7815 |-------------------------------+-----------------------------------|
7816 |           mongrel2            |→ Networking applications          |
7817 |-------------------------------+-----------------------------------|
7818 |             monit             |→ System tools                     |
7819 |-------------------------------+-----------------------------------|
7820 |             mono              |→ Interpreter languages and        |
7821 |                               |scripting                          |
7822 |-------------------------------+-----------------------------------|
7823 |           mosquitto           |→ Networking applications          |
7824 |-------------------------------+-----------------------------------|
7825 |             mp4v2             |→ Libraries → Audio/Sound          |
7826 |-------------------------------+-----------------------------------|
7827 |              mpc              |→ Libraries → Other                |
7828 |-------------------------------+-----------------------------------|
7829 |              mpd              |→ Audio and video applications     |
7830 |-------------------------------+-----------------------------------|
7831 |            mpd-mpc            |→ Audio and video applications     |
7832 |-------------------------------+-----------------------------------|
7833 |           mpdecimal           |→ Libraries → Other                |
7834 |-------------------------------+-----------------------------------|
7835 |             mpfr              |→ Libraries → Other                |
7836 |-------------------------------+-----------------------------------|
7837 |            mpg123             |→ Audio and video applications     |
7838 |-------------------------------+-----------------------------------|
7839 |            mplayer            |→ Audio and video applications     |
7840 |-------------------------------+-----------------------------------|
7841 |            mrouted            |→ Networking applications          |
7842 |-------------------------------+-----------------------------------|
7843 |            msgpack            |→ Libraries → Other                |
7844 |-------------------------------+-----------------------------------|
7845 |             msmtp             |→ Mail                             |
7846 |-------------------------------+-----------------------------------|
7847 |mtd, jffs2 and ubi/ubifs tools |→ Filesystem and flash utilities   |
7848 |-------------------------------+-----------------------------------|
7849 |             mtdev             |→ Libraries → Hardware handling    |
7850 |-------------------------------+-----------------------------------|
7851 |          mtdev2tuio           |→ Libraries → Other                |
7852 |-------------------------------+-----------------------------------|
7853 |            mtools             |→ Filesystem and flash utilities   |
7854 |-------------------------------+-----------------------------------|
7855 |              mtr              |→ Networking applications          |
7856 |-------------------------------+-----------------------------------|
7857 |       Multimedia Module       |→ Graphic libraries and            |
7858 |                               |applications (graphic/text)        |
7859 |-------------------------------+-----------------------------------|
7860 |           musepack            |→ Audio and video applications     |
7861 |-------------------------------+-----------------------------------|
7862 |             mutt              |→ Mail                             |
7863 |-------------------------------+-----------------------------------|
7864 |             MySQL             |→ Libraries → Database             |
7865 |-------------------------------+-----------------------------------|
7866 |             nano              |→ Text editors and viewers         |
7867 |-------------------------------+-----------------------------------|
7868 |            nanocom            |→ Hardware handling                |
7869 |-------------------------------+-----------------------------------|
7870 |              nbd              |→ Networking applications          |
7871 |-------------------------------+-----------------------------------|
7872 |             ncdu              |→ System tools                     |
7873 |-------------------------------+-----------------------------------|
7874 |             ncftp             |→ Networking applications          |
7875 |-------------------------------+-----------------------------------|
7876 |             ncmpc             |→ Audio and video applications     |
7877 |-------------------------------+-----------------------------------|
7878 |            ncurses            |→ Libraries → Text and terminal    |
7879 |                               |handling                           |
7880 |-------------------------------+-----------------------------------|
7881 |         ndisc6 tools          |→ Networking applications          |
7882 |-------------------------------+-----------------------------------|
7883 |             ne10              |→ Libraries → Hardware handling    |
7884 |-------------------------------+-----------------------------------|
7885 |             neard             |→ Hardware handling                |
7886 |-------------------------------+-----------------------------------|
7887 |            neardal            |→ Libraries → Hardware handling    |
7888 |-------------------------------+-----------------------------------|
7889 |           net-tools           |→ Networking applications          |
7890 |-------------------------------+-----------------------------------|
7891 |           netatalk            |→ Networking applications          |
7892 |-------------------------------+-----------------------------------|
7893 |            netcat             |→ Networking applications          |
7894 |-------------------------------+-----------------------------------|
7895 |        netcat-openbsd         |→ Networking applications          |
7896 |-------------------------------+-----------------------------------|
7897 |            netperf            |→ Debugging, profiling and         |
7898 |                               |benchmark                          |
7899 |-------------------------------+-----------------------------------|
7900 |            netplug            |→ Networking applications          |
7901 |-------------------------------+-----------------------------------|
7902 |            netsnmp            |→ Networking applications          |
7903 |-------------------------------+-----------------------------------|
7904 |          netstat-nat          |→ Networking applications          |
7905 |-------------------------------+-----------------------------------|
7906 |            nettle             |→ Libraries → Crypto               |
7907 |-------------------------------+-----------------------------------|
7908 |        networkmanager         |→ Networking applications          |
7909 |-------------------------------+-----------------------------------|
7910 |             newt              |→ Libraries → Text and terminal    |
7911 |                               |handling                           |
7912 |-------------------------------+-----------------------------------|
7913 |            nfacct             |→ Networking applications          |
7914 |-------------------------------+-----------------------------------|
7915 |           nfs-utils           |→ Filesystem and flash utilities   |
7916 |-------------------------------+-----------------------------------|
7917 |           nftables            |→ Networking applications          |
7918 |-------------------------------+-----------------------------------|
7919 |             nginx             |→ Networking applications          |
7920 |-------------------------------+-----------------------------------|
7921 |            ngircd             |→ Networking applications          |
7922 |-------------------------------+-----------------------------------|
7923 |             ngrep             |→ Networking applications          |
7924 |-------------------------------+-----------------------------------|
7925 |             nmap              |→ Networking applications          |
7926 |-------------------------------+-----------------------------------|
7927 |            nodejs             |→ Interpreter languages and        |
7928 |                               |scripting                          |
7929 |-------------------------------+-----------------------------------|
7930 |             noip              |→ Networking applications          |
7931 |-------------------------------+-----------------------------------|
7932 |           nss-mdns            |→ Libraries → Networking           |
7933 |-------------------------------+-----------------------------------|
7934 |            ntfs-3g            |→ Filesystem and flash utilities   |
7935 |-------------------------------+-----------------------------------|
7936 |              ntp              |→ Networking applications          |
7937 |-------------------------------+-----------------------------------|
7938 |            numactl            |→ System tools                     |
7939 |-------------------------------+-----------------------------------|
7940 |              nut              |→ System tools                     |
7941 |-------------------------------+-----------------------------------|
7942 |            nuttcp             |→ Networking applications          |
7943 |-------------------------------+-----------------------------------|
7944 |         nvidia-driver         |→ Hardware handling                |
7945 |-------------------------------+-----------------------------------|
7946 |        nvidia-tegra23         |→ Hardware handling                |
7947 |-------------------------------+-----------------------------------|
7948 |    nvidia-tegra23 binaries    |→ Hardware handling                |
7949 |-------------------------------+-----------------------------------|
7950 |     nvidia-tegra23 codecs     |→ Hardware handling                |
7951 |-------------------------------+-----------------------------------|
7952 |           ocf-linux           |→ Libraries → Crypto → cryptodev   |
7953 |                               |variant                            |
7954 |-------------------------------+-----------------------------------|
7955 |            oclock             |→ Graphic libraries and            |
7956 |                               |applications (graphic/text) → X11R7|
7957 |                               |Applications                       |
7958 |-------------------------------+-----------------------------------|
7959 |             ocrad             |→ Graphic libraries and            |
7960 |                               |applications (graphic/text)        |
7961 |-------------------------------+-----------------------------------|
7962 |            odhcp6c            |→ Networking applications          |
7963 |-------------------------------+-----------------------------------|
7964 |           odhcploc            |→ Networking applications          |
7965 |-------------------------------+-----------------------------------|
7966 |             ofono             |→ Hardware handling                |
7967 |-------------------------------+-----------------------------------|
7968 |      ola (open lighting       |→ Hardware handling                |
7969 |         architecture)         |                                   |
7970 |-------------------------------+-----------------------------------|
7971 |             olsrd             |→ Networking applications          |
7972 |-------------------------------+-----------------------------------|
7973 |            omniorb            |→ Libraries → Networking           |
7974 |-------------------------------+-----------------------------------|
7975 |         on2-8170-libs         |→ Audio and video applications     |
7976 |-------------------------------+-----------------------------------|
7977 |       on2-8170-modules        |→ Hardware handling                |
7978 |-------------------------------+-----------------------------------|
7979 |        open-plc-utils         |→ Networking applications          |
7980 |-------------------------------+-----------------------------------|
7981 |           open2300            |→ Hardware handling                |
7982 |-------------------------------+-----------------------------------|
7983 |         opencore-amr          |→ Libraries → Audio/Sound          |
7984 |-------------------------------+-----------------------------------|
7985 |            opencv             |→ Libraries → Graphics             |
7986 |-------------------------------+-----------------------------------|
7987 |           openjpeg            |→ Libraries → Graphics             |
7988 |-------------------------------+-----------------------------------|
7989 |           openldap            |→ Libraries → Networking           |
7990 |-------------------------------+-----------------------------------|
7991 |           openntpd            |→ Networking applications          |
7992 |-------------------------------+-----------------------------------|
7993 |           openobex            |→ Networking applications          |
7994 |-------------------------------+-----------------------------------|
7995 |            openocd            |→ Hardware handling                |
7996 |-------------------------------+-----------------------------------|
7997 |            openpgm            |→ Libraries → Networking           |
7998 |-------------------------------+-----------------------------------|
7999 |         openpowerlink         |→ Hardware handling                |
8000 |-------------------------------+-----------------------------------|
8001 |            openssh            |→ Networking applications          |
8002 |-------------------------------+-----------------------------------|
8003 |            openssl            |→ Libraries → Crypto               |
8004 |-------------------------------+-----------------------------------|
8005 |           openswan            |→ Networking applications          |
8006 |-------------------------------+-----------------------------------|
8007 |          OpenTyrian           |→ Games                            |
8008 |-------------------------------+-----------------------------------|
8009 |        OpenTyrian data        |→ Games                            |
8010 |-------------------------------+-----------------------------------|
8011 |          openvmtools          |→ System tools                     |
8012 |-------------------------------+-----------------------------------|
8013 |            openvpn            |→ Networking applications          |
8014 |-------------------------------+-----------------------------------|
8015 |             opkg              |→ Package managers                 |
8016 |-------------------------------+-----------------------------------|
8017 |           oprofile            |→ Debugging, profiling and         |
8018 |                               |benchmark                          |
8019 |-------------------------------+-----------------------------------|
8020 |             opus              |→ Libraries → Audio/Sound          |
8021 |-------------------------------+-----------------------------------|
8022 |          opus-tools           |→ Audio and video applications     |
8023 |-------------------------------+-----------------------------------|
8024 |           opusfile            |→ Libraries → Audio/Sound          |
8025 |-------------------------------+-----------------------------------|
8026 |             orbit             |→ Interpreter languages and        |
8027 |                               |scripting → Lua libraries/modules  |
8028 |-------------------------------+-----------------------------------|
8029 |              orc              |→ Libraries → Other                |
8030 |-------------------------------+-----------------------------------|
8031 |             oRTP              |→ Libraries → Networking           |
8032 |-------------------------------+-----------------------------------|
8033 |           owl-linux           |→ Hardware handling                |
8034 |-------------------------------+-----------------------------------|
8035 |            p11-kit            |→ Libraries → Other                |
8036 |-------------------------------+-----------------------------------|
8037 |            p910nd             |→ Networking applications          |
8038 |-------------------------------+-----------------------------------|
8039 |             pango             |→ Libraries → Graphics             |
8040 |-------------------------------+-----------------------------------|
8041 |            parted             |→ Hardware handling                |
8042 |-------------------------------+-----------------------------------|
8043 |             patch             |→ Development tools                |
8044 |-------------------------------+-----------------------------------|
8045 |           pax-utils           |→ Debugging, profiling and         |
8046 |                               |benchmark                          |
8047 |-------------------------------+-----------------------------------|
8048 |           pciutils            |→ Hardware handling                |
8049 |-------------------------------+-----------------------------------|
8050 |            pcmanfm            |→ Graphic libraries and            |
8051 |                               |applications (graphic/text)        |
8052 |-------------------------------+-----------------------------------|
8053 |             pcre              |→ Libraries → Text and terminal    |
8054 |                               |handling                           |
8055 |-------------------------------+-----------------------------------|
8056 |           pcsc-lite           |→ Libraries → Hardware handling    |
8057 |-------------------------------+-----------------------------------|
8058 |             perf              |→ Debugging, profiling and         |
8059 |                               |benchmark                          |
8060 |-------------------------------+-----------------------------------|
8061 |             perl              |→ Interpreter languages and        |
8062 |                               |scripting                          |
8063 |-------------------------------+-----------------------------------|
8064 |   perl-crypt-openssl-random   |→ Interpreter languages and        |
8065 |                               |scripting → Perl libraries/modules |
8066 |-------------------------------+-----------------------------------|
8067 |    perl-crypt-openssl-rsa     |→ Interpreter languages and        |
8068 |                               |scripting → Perl libraries/modules |
8069 |-------------------------------+-----------------------------------|
8070 |      perl-datetime-tiny       |→ Interpreter languages and        |
8071 |                               |scripting → Perl libraries/modules |
8072 |-------------------------------+-----------------------------------|
8073 |         perl-db-file          |→ Interpreter languages and        |
8074 |                               |scripting → Perl libraries/modules |
8075 |-------------------------------+-----------------------------------|
8076 |       perl-digest-hmac        |→ Interpreter languages and        |
8077 |                               |scripting → Perl libraries/modules |
8078 |-------------------------------+-----------------------------------|
8079 |       perl-digest-sha1        |→ Interpreter languages and        |
8080 |                               |scripting → Perl libraries/modules |
8081 |-------------------------------+-----------------------------------|
8082 |      perl-encode-detect       |→ Interpreter languages and        |
8083 |                               |scripting → Perl libraries/modules |
8084 |-------------------------------+-----------------------------------|
8085 |      perl-encode-locale       |→ Interpreter languages and        |
8086 |                               |scripting → Perl libraries/modules |
8087 |-------------------------------+-----------------------------------|
8088 |       perl-file-listing       |→ Interpreter languages and        |
8089 |                               |scripting → Perl libraries/modules |
8090 |-------------------------------+-----------------------------------|
8091 |        perl-file-util         |→ Interpreter languages and        |
8092 |                               |scripting → Perl libraries/modules |
8093 |-------------------------------+-----------------------------------|
8094 |            perl-gd            |→ Interpreter languages and        |
8095 |                               |scripting → Perl libraries/modules |
8096 |-------------------------------+-----------------------------------|
8097 |         perl-gdgraph          |→ Interpreter languages and        |
8098 |                               |scripting → Perl libraries/modules |
8099 |-------------------------------+-----------------------------------|
8100 |        perl-gdtextutil        |→ Interpreter languages and        |
8101 |                               |scripting → Perl libraries/modules |
8102 |-------------------------------+-----------------------------------|
8103 |       perl-html-parser        |→ Interpreter languages and        |
8104 |                               |scripting → Perl libraries/modules |
8105 |-------------------------------+-----------------------------------|
8106 |       perl-html-tagset        |→ Interpreter languages and        |
8107 |                               |scripting → Perl libraries/modules |
8108 |-------------------------------+-----------------------------------|
8109 |       perl-http-cookies       |→ Interpreter languages and        |
8110 |                               |scripting → Perl libraries/modules |
8111 |-------------------------------+-----------------------------------|
8112 |       perl-http-daemon        |→ Interpreter languages and        |
8113 |                               |scripting → Perl libraries/modules |
8114 |-------------------------------+-----------------------------------|
8115 |        perl-http-date         |→ Interpreter languages and        |
8116 |                               |scripting → Perl libraries/modules |
8117 |-------------------------------+-----------------------------------|
8118 |       perl-http-message       |→ Interpreter languages and        |
8119 |                               |scripting → Perl libraries/modules |
8120 |-------------------------------+-----------------------------------|
8121 |      perl-http-negotiate      |→ Interpreter languages and        |
8122 |                               |scripting → Perl libraries/modules |
8123 |-------------------------------+-----------------------------------|
8124 |         perl-io-html          |→ Interpreter languages and        |
8125 |                               |scripting → Perl libraries/modules |
8126 |-------------------------------+-----------------------------------|
8127 |      perl-io-socket-ssl       |→ Interpreter languages and        |
8128 |                               |scripting → Perl libraries/modules |
8129 |-------------------------------+-----------------------------------|
8130 |        perl-json-tiny         |→ Interpreter languages and        |
8131 |                               |scripting → Perl libraries/modules |
8132 |-------------------------------+-----------------------------------|
8133 |       perl-libwww-perl        |→ Interpreter languages and        |
8134 |                               |scripting → Perl libraries/modules |
8135 |-------------------------------+-----------------------------------|
8136 |      perl-lwp-mediatypes      |→ Interpreter languages and        |
8137 |                               |scripting → Perl libraries/modules |
8138 |-------------------------------+-----------------------------------|
8139 |        perl-mail-dkim         |→ Interpreter languages and        |
8140 |                               |scripting → Perl libraries/modules |
8141 |-------------------------------+-----------------------------------|
8142 |        perl-mailtools         |→ Interpreter languages and        |
8143 |                               |scripting → Perl libraries/modules |
8144 |-------------------------------+-----------------------------------|
8145 |       perl-mime-base64        |→ Interpreter languages and        |
8146 |                               |scripting → Perl libraries/modules |
8147 |-------------------------------+-----------------------------------|
8148 |       perl-mojolicious        |→ Interpreter languages and        |
8149 |                               |scripting → Perl libraries/modules |
8150 |-------------------------------+-----------------------------------|
8151 |         perl-net-dns          |→ Interpreter languages and        |
8152 |                               |scripting → Perl libraries/modules |
8153 |-------------------------------+-----------------------------------|
8154 |         perl-net-http         |→ Interpreter languages and        |
8155 |                               |scripting → Perl libraries/modules |
8156 |-------------------------------+-----------------------------------|
8157 |        perl-net-ssleay        |→ Interpreter languages and        |
8158 |                               |scripting → Perl libraries/modules |
8159 |-------------------------------+-----------------------------------|
8160 |        perl-netaddr-ip        |→ Interpreter languages and        |
8161 |                               |scripting → Perl libraries/modules |
8162 |-------------------------------+-----------------------------------|
8163 |        perl-path-tiny         |→ Interpreter languages and        |
8164 |                               |scripting → Perl libraries/modules |
8165 |-------------------------------+-----------------------------------|
8166 |        perl-time-hires        |→ Interpreter languages and        |
8167 |                               |scripting → Perl libraries/modules |
8168 |-------------------------------+-----------------------------------|
8169 |         perl-timedate         |→ Interpreter languages and        |
8170 |                               |scripting → Perl libraries/modules |
8171 |-------------------------------+-----------------------------------|
8172 |         perl-try-tiny         |→ Interpreter languages and        |
8173 |                               |scripting → Perl libraries/modules |
8174 |-------------------------------+-----------------------------------|
8175 |           perl-uri            |→ Interpreter languages and        |
8176 |                               |scripting → Perl libraries/modules |
8177 |-------------------------------+-----------------------------------|
8178 |      perl-www-robotrules      |→ Interpreter languages and        |
8179 |                               |scripting → Perl libraries/modules |
8180 |-------------------------------+-----------------------------------|
8181 |        perl-xml-libxml        |→ Interpreter languages and        |
8182 |                               |scripting → Perl libraries/modules |
8183 |-------------------------------+-----------------------------------|
8184 |   perl-xml-namespacesupport   |→ Interpreter languages and        |
8185 |                               |scripting → Perl libraries/modules |
8186 |-------------------------------+-----------------------------------|
8187 |         perl-xml-sax          |→ Interpreter languages and        |
8188 |                               |scripting → Perl libraries/modules |
8189 |-------------------------------+-----------------------------------|
8190 |       perl-xml-sax-base       |→ Interpreter languages and        |
8191 |                               |scripting → Perl libraries/modules |
8192 |-------------------------------+-----------------------------------|
8193 |       phidgetwebservice       |→ Networking applications          |
8194 |-------------------------------+-----------------------------------|
8195 |              php              |→ Interpreter languages and        |
8196 |                               |scripting                          |
8197 |-------------------------------+-----------------------------------|
8198 |           php-geoip           |→ Interpreter languages and        |
8199 |                               |scripting → External php extensions|
8200 |-------------------------------+-----------------------------------|
8201 |           php-gnupg           |→ Interpreter languages and        |
8202 |                               |scripting → External php extensions|
8203 |-------------------------------+-----------------------------------|
8204 |          php-imagick          |→ Interpreter languages and        |
8205 |                               |scripting → External php extensions|
8206 |-------------------------------+-----------------------------------|
8207 |         php-memcached         |→ Interpreter languages and        |
8208 |                               |scripting → External php extensions|
8209 |-------------------------------+-----------------------------------|
8210 |           php-ssh2            |→ Interpreter languages and        |
8211 |                               |scripting → External php extensions|
8212 |-------------------------------+-----------------------------------|
8213 |           php-yaml            |→ Interpreter languages and        |
8214 |                               |scripting → External php extensions|
8215 |-------------------------------+-----------------------------------|
8216 |            php-zmq            |→ Interpreter languages and        |
8217 |                               |scripting → External php extensions|
8218 |-------------------------------+-----------------------------------|
8219 |            picocom            |→ Hardware handling                |
8220 |-------------------------------+-----------------------------------|
8221 |            pifmrds            |→ Hardware handling                |
8222 |-------------------------------+-----------------------------------|
8223 |           pinentry            |→ Shell and utilities              |
8224 |-------------------------------+-----------------------------------|
8225 |            pixman             |→ Libraries → Graphics             |
8226 |-------------------------------+-----------------------------------|
8227 |            pkgconf            |→ Development tools                |
8228 |-------------------------------+-----------------------------------|
8229 |             poco              |→ Libraries → Other                |
8230 |-------------------------------+-----------------------------------|
8231 |           polarssl            |→ Libraries → Crypto               |
8232 |-------------------------------+-----------------------------------|
8233 |            polkit             |→ System tools                     |
8234 |-------------------------------+-----------------------------------|
8235 |            poppler            |→ Libraries → Graphics             |
8236 |-------------------------------+-----------------------------------|
8237 |             popt              |→ Libraries → Text and terminal    |
8238 |                               |handling                           |
8239 |-------------------------------+-----------------------------------|
8240 |           portaudio           |→ Libraries → Audio/Sound          |
8241 |-------------------------------+-----------------------------------|
8242 |            portmap            |→ Networking applications          |
8243 |-------------------------------+-----------------------------------|
8244 |          postgresql           |→ Libraries → Database             |
8245 |-------------------------------+-----------------------------------|
8246 |         powerpc-utils         |→ System tools                     |
8247 |-------------------------------+-----------------------------------|
8248 |           powertop            |→ Hardware handling                |
8249 |-------------------------------+-----------------------------------|
8250 |             pppd              |→ Networking applications          |
8251 |-------------------------------+-----------------------------------|
8252 |           pps-tools           |→ Hardware handling                |
8253 |-------------------------------+-----------------------------------|
8254 |          pptp-linux           |→ Networking applications          |
8255 |-------------------------------+-----------------------------------|
8256 |            prboom             |→ Games                            |
8257 |-------------------------------+-----------------------------------|
8258 |         presentproto          |→ Graphic libraries and            |
8259 |                               |applications (graphic/text) → X11R7|
8260 |                               |X protocols                        |
8261 |-------------------------------+-----------------------------------|
8262 |           procps-ng           |→ System tools                     |
8263 |-------------------------------+-----------------------------------|
8264 |            proftpd            |→ Networking applications          |
8265 |-------------------------------+-----------------------------------|
8266 |           protobuf            |→ Libraries → Other                |
8267 |-------------------------------+-----------------------------------|
8268 |          protobuf-c           |→ Libraries → Other                |
8269 |-------------------------------+-----------------------------------|
8270 |        proxychains-ng         |→ Networking applications          |
8271 |-------------------------------+-----------------------------------|
8272 |            psmisc             |→ System tools                     |
8273 |-------------------------------+-----------------------------------|
8274 |            psplash            |→ Graphic libraries and            |
8275 |                               |applications (graphic/text)        |
8276 |-------------------------------+-----------------------------------|
8277 |             ptpd              |→ Networking applications          |
8278 |-------------------------------+-----------------------------------|
8279 |             ptpd2             |→ Networking applications          |
8280 |-------------------------------+-----------------------------------|
8281 |          pulseaudio           |→ Audio and video applications     |
8282 |-------------------------------+-----------------------------------|
8283 |           pulseview           |→ Hardware handling                |
8284 |-------------------------------+-----------------------------------|
8285 |           pure-ftpd           |→ Networking applications          |
8286 |-------------------------------+-----------------------------------|
8287 |              pv               |→ Debugging, profiling and         |
8288 |                               |benchmark                          |
8289 |-------------------------------+-----------------------------------|
8290 |             pwgen             |→ System tools                     |
8291 |-------------------------------+-----------------------------------|
8292 |            python             |→ Interpreter languages and        |
8293 |                               |scripting                          |
8294 |-------------------------------+-----------------------------------|
8295 |       python-alsaaudio        |→ Interpreter languages and        |
8296 |                               |scripting → external python modules|
8297 |-------------------------------+-----------------------------------|
8298 |         python-bottle         |→ Interpreter languages and        |
8299 |                               |scripting → external python modules|
8300 |-------------------------------+-----------------------------------|
8301 |        python-certifi         |→ Interpreter languages and        |
8302 |                               |scripting → external python modules|
8303 |-------------------------------+-----------------------------------|
8304 |          python-cffi          |→ Interpreter languages and        |
8305 |                               |scripting → external python modules|
8306 |-------------------------------+-----------------------------------|
8307 |        python-cheetah         |→ Interpreter languages and        |
8308 |                               |scripting → external python modules|
8309 |-------------------------------+-----------------------------------|
8310 |        python-cherrypy        |→ Interpreter languages and        |
8311 |                               |scripting → external python modules|
8312 |-------------------------------+-----------------------------------|
8313 |       python-coherence        |→ Interpreter languages and        |
8314 |                               |scripting → external python modules|
8315 |-------------------------------+-----------------------------------|
8316 |       python-configobj        |→ Interpreter languages and        |
8317 |                               |scripting → external python modules|
8318 |-------------------------------+-----------------------------------|
8319 |     python-configshell-fb     |→ Interpreter languages and        |
8320 |                               |scripting → external python modules|
8321 |-------------------------------+-----------------------------------|
8322 |         python-crc16          |→ Interpreter languages and        |
8323 |                               |scripting → external python modules|
8324 |-------------------------------+-----------------------------------|
8325 |         python-daemon         |→ Interpreter languages and        |
8326 |                               |scripting → external python modules|
8327 |-------------------------------+-----------------------------------|
8328 |         python-dialog         |→ Interpreter languages and        |
8329 |                               |scripting → external python modules|
8330 |-------------------------------+-----------------------------------|
8331 |         python-django         |→ Interpreter languages and        |
8332 |                               |scripting → external python modules|
8333 |-------------------------------+-----------------------------------|
8334 |         python-docopt         |→ Interpreter languages and        |
8335 |                               |scripting → external python modules|
8336 |-------------------------------+-----------------------------------|
8337 |          python-dpkt          |→ Interpreter languages and        |
8338 |                               |scripting → external python modules|
8339 |-------------------------------+-----------------------------------|
8340 |          python-enum          |→ Interpreter languages and        |
8341 |                               |scripting → external python modules|
8342 |-------------------------------+-----------------------------------|
8343 |         python-enum34         |→ Interpreter languages and        |
8344 |                               |scripting → external python modules|
8345 |-------------------------------+-----------------------------------|
8346 |         python-flask          |→ Interpreter languages and        |
8347 |                               |scripting → external python modules|
8348 |-------------------------------+-----------------------------------|
8349 |          python-flup          |→ Interpreter languages and        |
8350 |                               |scripting → external python modules|
8351 |-------------------------------+-----------------------------------|
8352 |        python-gobject         |→ Interpreter languages and        |
8353 |                               |scripting → external python modules|
8354 |-------------------------------+-----------------------------------|
8355 |        python-httplib2        |→ Interpreter languages and        |
8356 |                               |scripting → external python modules|
8357 |-------------------------------+-----------------------------------|
8358 |          python-id3           |→ Interpreter languages and        |
8359 |                               |scripting → external python modules|
8360 |-------------------------------+-----------------------------------|
8361 |         python-ipaddr         |→ Interpreter languages and        |
8362 |                               |scripting → external python modules|
8363 |-------------------------------+-----------------------------------|
8364 |          python-ipy           |→ Interpreter languages and        |
8365 |                               |scripting → external python modules|
8366 |-------------------------------+-----------------------------------|
8367 |        python-ipython         |→ Interpreter languages and        |
8368 |                               |scripting → external python modules|
8369 |-------------------------------+-----------------------------------|
8370 |      python-itsdangerous      |→ Interpreter languages and        |
8371 |                               |scripting → external python modules|
8372 |-------------------------------+-----------------------------------|
8373 |         python-jinja2         |→ Interpreter languages and        |
8374 |                               |scripting → external python modules|
8375 |-------------------------------+-----------------------------------|
8376 | python-json-schema-validator  |→ Interpreter languages and        |
8377 |                               |scripting → external python modules|
8378 |-------------------------------+-----------------------------------|
8379 |        python-keyring         |→ Interpreter languages and        |
8380 |                               |scripting → external python modules|
8381 |-------------------------------+-----------------------------------|
8382 |       python-libconfig        |→ Interpreter languages and        |
8383 |                               |scripting → external python modules|
8384 |-------------------------------+-----------------------------------|
8385 |          python-lxml          |→ Interpreter languages and        |
8386 |                               |scripting → external python modules|
8387 |-------------------------------+-----------------------------------|
8388 |          python-mad           |→ Interpreter languages and        |
8389 |                               |scripting → external python modules|
8390 |-------------------------------+-----------------------------------|
8391 |          python-mako          |→ Interpreter languages and        |
8392 |                               |scripting → external python modules|
8393 |-------------------------------+-----------------------------------|
8394 |        python-markdown        |→ Interpreter languages and        |
8395 |                               |scripting → external python modules|
8396 |-------------------------------+-----------------------------------|
8397 |       python-markupsafe       |→ Interpreter languages and        |
8398 |                               |scripting → external python modules|
8399 |-------------------------------+-----------------------------------|
8400 |         python-meld3          |→ Interpreter languages and        |
8401 |                               |scripting → external python modules|
8402 |-------------------------------+-----------------------------------|
8403 |        python-msgpack         |→ Interpreter languages and        |
8404 |                               |scripting → external python modules|
8405 |-------------------------------+-----------------------------------|
8406 |       python-netifaces        |→ Interpreter languages and        |
8407 |                               |scripting → external python modules|
8408 |-------------------------------+-----------------------------------|
8409 |     python-networkmanager     |→ Interpreter languages and        |
8410 |                               |scripting → external python modules|
8411 |-------------------------------+-----------------------------------|
8412 |          python-nfc           |→ Interpreter languages and        |
8413 |                               |scripting → external python modules|
8414 |-------------------------------+-----------------------------------|
8415 |         python-numpy          |→ Interpreter languages and        |
8416 |                               |scripting → external python modules|
8417 |-------------------------------+-----------------------------------|
8418 |          python-pam           |→ Interpreter languages and        |
8419 |                               |scripting → external python modules|
8420 |-------------------------------+-----------------------------------|
8421 |       python-posix-ipc        |→ Interpreter languages and        |
8422 |                               |scripting → external python modules|
8423 |-------------------------------+-----------------------------------|
8424 |        python-protobuf        |→ Interpreter languages and        |
8425 |                               |scripting → external python modules|
8426 |-------------------------------+-----------------------------------|
8427 |         python-psutil         |→ Interpreter languages and        |
8428 |                               |scripting → external python modules|
8429 |-------------------------------+-----------------------------------|
8430 |         python-pyasn          |→ Interpreter languages and        |
8431 |                               |scripting → external python modules|
8432 |-------------------------------+-----------------------------------|
8433 |        python-pycrypto        |→ Interpreter languages and        |
8434 |                               |scripting → external python modules|
8435 |-------------------------------+-----------------------------------|
8436 |       python-pyftpdlib        |→ Interpreter languages and        |
8437 |                               |scripting → external python modules|
8438 |-------------------------------+-----------------------------------|
8439 |         python-pygame         |→ Interpreter languages and        |
8440 |                               |scripting → external python modules|
8441 |-------------------------------+-----------------------------------|
8442 |       python-pyinotify        |→ Interpreter languages and        |
8443 |                               |scripting → external python modules|
8444 |-------------------------------+-----------------------------------|
8445 |       python-pyparsing        |→ Interpreter languages and        |
8446 |                               |scripting → external python modules|
8447 |-------------------------------+-----------------------------------|
8448 |         python-pypcap         |→ Interpreter languages and        |
8449 |                               |scripting → external python modules|
8450 |-------------------------------+-----------------------------------|
8451 |          python-pyqt          |→ Interpreter languages and        |
8452 |                               |scripting → external python modules|
8453 |-------------------------------+-----------------------------------|
8454 |          python-pyro          |→ Interpreter languages and        |
8455 |                               |scripting → external python modules|
8456 |-------------------------------+-----------------------------------|
8457 |       python-pysendfile       |→ Interpreter languages and        |
8458 |                               |scripting → external python modules|
8459 |-------------------------------+-----------------------------------|
8460 |         python-pysnmp         |→ Interpreter languages and        |
8461 |                               |scripting → external python modules|
8462 |-------------------------------+-----------------------------------|
8463 |      python-pysnmp-apps       |→ Interpreter languages and        |
8464 |                               |scripting → external python modules|
8465 |-------------------------------+-----------------------------------|
8466 |      python-pysnmp-mibs       |→ Interpreter languages and        |
8467 |                               |scripting → external python modules|
8468 |-------------------------------+-----------------------------------|
8469 |         python-pyusb          |→ Interpreter languages and        |
8470 |                               |scripting → external python modules|
8471 |-------------------------------+-----------------------------------|
8472 |          python-pyxb          |→ Interpreter languages and        |
8473 |                               |scripting → external python modules|
8474 |-------------------------------+-----------------------------------|
8475 |         python-pyzmq          |→ Interpreter languages and        |
8476 |                               |scripting → external python modules|
8477 |-------------------------------+-----------------------------------|
8478 |        python-requests        |→ Interpreter languages and        |
8479 |                               |scripting → external python modules|
8480 |-------------------------------+-----------------------------------|
8481 |       python-rtslib-fb        |→ Interpreter languages and        |
8482 |                               |scripting → external python modules|
8483 |-------------------------------+-----------------------------------|
8484 |         python-serial         |→ Interpreter languages and        |
8485 |                               |scripting → external python modules|
8486 |-------------------------------+-----------------------------------|
8487 |       python-setuptools       |→ Interpreter languages and        |
8488 |                               |scripting → external python modules|
8489 |-------------------------------+-----------------------------------|
8490 |       python-simplejson       |→ Interpreter languages and        |
8491 |                               |scripting → external python modules|
8492 |-------------------------------+-----------------------------------|
8493 |          python-sip           |→ Interpreter languages and        |
8494 |                               |scripting → external python modules|
8495 |-------------------------------+-----------------------------------|
8496 |          python-six           |→ Interpreter languages and        |
8497 |                               |scripting → external python modules|
8498 |-------------------------------+-----------------------------------|
8499 |         python-spidev         |→ Interpreter languages and        |
8500 |                               |scripting → external python modules|
8501 |-------------------------------+-----------------------------------|
8502 |         python-thrift         |→ Interpreter languages and        |
8503 |                               |scripting → external python modules|
8504 |-------------------------------+-----------------------------------|
8505 |        python-tornado         |→ Interpreter languages and        |
8506 |                               |scripting → external python modules|
8507 |-------------------------------+-----------------------------------|
8508 |        python-twisted         |→ Interpreter languages and        |
8509 |                               |scripting → external python modules|
8510 |-------------------------------+-----------------------------------|
8511 |         python-urwid          |→ Interpreter languages and        |
8512 |                               |scripting → external python modules|
8513 |-------------------------------+-----------------------------------|
8514 |      python-versiontools      |→ Interpreter languages and        |
8515 |                               |scripting → external python modules|
8516 |-------------------------------+-----------------------------------|
8517 |         python-webpy          |→ Interpreter languages and        |
8518 |                               |scripting → external python modules|
8519 |-------------------------------+-----------------------------------|
8520 |        python-werkzeug        |→ Interpreter languages and        |
8521 |                               |scripting → external python modules|
8522 |-------------------------------+-----------------------------------|
8523 |         python-ws4py          |→ Interpreter languages and        |
8524 |                               |scripting → external python modules|
8525 |-------------------------------+-----------------------------------|
8526 |     python-zope-interface     |→ Interpreter languages and        |
8527 |                               |scripting → external python modules|
8528 |-------------------------------+-----------------------------------|
8529 |            python3            |→ Interpreter languages and        |
8530 |                               |scripting                          |
8531 |-------------------------------+-----------------------------------|
8532 |           qdecoder            |→ Libraries → Networking           |
8533 |-------------------------------+-----------------------------------|
8534 |             QEMU              |→ Miscellaneous                    |
8535 |-------------------------------+-----------------------------------|
8536 |        qextserialport         |→ Graphic libraries and            |
8537 |                               |applications (graphic/text)        |
8538 |-------------------------------+-----------------------------------|
8539 |             qhull             |→ Libraries → Other                |
8540 |-------------------------------+-----------------------------------|
8541 |             qjson             |→ Graphic libraries and            |
8542 |                               |applications (graphic/text)        |
8543 |-------------------------------+-----------------------------------|
8544 |             qlibc             |→ Libraries → Other                |
8545 |-------------------------------+-----------------------------------|
8546 |             qpdf              |→ Miscellaneous                    |
8547 |-------------------------------+-----------------------------------|
8548 |              Qt               |→ Graphic libraries and            |
8549 |                               |applications (graphic/text)        |
8550 |-------------------------------+-----------------------------------|
8551 |        qt-webkit-kiosk        |→ Graphic libraries and            |
8552 |                               |applications (graphic/text)        |
8553 |-------------------------------+-----------------------------------|
8554 |              Qt5              |→ Graphic libraries and            |
8555 |                               |applications (graphic/text)        |
8556 |-------------------------------+-----------------------------------|
8557 |            qt5base            |→ Graphic libraries and            |
8558 |                               |applications (graphic/text)        |
8559 |-------------------------------+-----------------------------------|
8560 |           qt5cinex            |→ Graphic libraries and            |
8561 |                               |applications (graphic/text)        |
8562 |-------------------------------+-----------------------------------|
8563 |        qt5connectivity        |→ Graphic libraries and            |
8564 |                               |applications (graphic/text)        |
8565 |-------------------------------+-----------------------------------|
8566 |        qt5declarative         |→ Graphic libraries and            |
8567 |                               |applications (graphic/text)        |
8568 |-------------------------------+-----------------------------------|
8569 |          qt5enginio           |→ Graphic libraries and            |
8570 |                               |applications (graphic/text)        |
8571 |-------------------------------+-----------------------------------|
8572 |      qt5graphicaleffects      |→ Graphic libraries and            |
8573 |                               |applications (graphic/text)        |
8574 |-------------------------------+-----------------------------------|
8575 |        qt5imageformats        |→ Graphic libraries and            |
8576 |                               |applications (graphic/text)        |
8577 |-------------------------------+-----------------------------------|
8578 |         qt5multimedia         |→ Graphic libraries and            |
8579 |                               |applications (graphic/text)        |
8580 |-------------------------------+-----------------------------------|
8581 |           qt5quick1           |→ Graphic libraries and            |
8582 |                               |applications (graphic/text)        |
8583 |-------------------------------+-----------------------------------|
8584 |       qt5quickcontrols        |→ Graphic libraries and            |
8585 |                               |applications (graphic/text)        |
8586 |-------------------------------+-----------------------------------|
8587 |           qt5script           |→ Graphic libraries and            |
8588 |                               |applications (graphic/text)        |
8589 |-------------------------------+-----------------------------------|
8590 |          qt5sensors           |→ Graphic libraries and            |
8591 |                               |applications (graphic/text)        |
8592 |-------------------------------+-----------------------------------|
8593 |         qt5serialport         |→ Graphic libraries and            |
8594 |                               |applications (graphic/text)        |
8595 |-------------------------------+-----------------------------------|
8596 |            qt5svg             |→ Graphic libraries and            |
8597 |                               |applications (graphic/text)        |
8598 |-------------------------------+-----------------------------------|
8599 |           qt5webkit           |→ Graphic libraries and            |
8600 |                               |applications (graphic/text)        |
8601 |-------------------------------+-----------------------------------|
8602 |      qt5webkit examples       |→ Graphic libraries and            |
8603 |                               |applications (graphic/text)        |
8604 |-------------------------------+-----------------------------------|
8605 |         qt5websockets         |→ Graphic libraries and            |
8606 |                               |applications (graphic/text)        |
8607 |-------------------------------+-----------------------------------|
8608 |         qt5x11extras          |→ Graphic libraries and            |
8609 |                               |applications (graphic/text)        |
8610 |-------------------------------+-----------------------------------|
8611 |        qt5xmlpatterns         |→ Graphic libraries and            |
8612 |                               |applications (graphic/text)        |
8613 |-------------------------------+-----------------------------------|
8614 |             qtuio             |→ Graphic libraries and            |
8615 |                               |applications (graphic/text)        |
8616 |-------------------------------+-----------------------------------|
8617 |            quagga             |→ Networking applications          |
8618 |-------------------------------+-----------------------------------|
8619 |             quota             |→ System tools                     |
8620 |-------------------------------+-----------------------------------|
8621 |              qwt              |→ Graphic libraries and            |
8622 |                               |applications (graphic/text)        |
8623 |-------------------------------+-----------------------------------|
8624 |             radvd             |→ Networking applications          |
8625 |-------------------------------+-----------------------------------|
8626 |           ramspeed            |→ Debugging, profiling and         |
8627 |                               |benchmark                          |
8628 |-------------------------------+-----------------------------------|
8629 |         ramspeed/smp          |→ Debugging, profiling and         |
8630 |                               |benchmark                          |
8631 |-------------------------------+-----------------------------------|
8632 |          randrproto           |→ Graphic libraries and            |
8633 |                               |applications (graphic/text) → X11R7|
8634 |                               |X protocols                        |
8635 |-------------------------------+-----------------------------------|
8636 |           rapidjson           |→ Libraries → JSON/XML             |
8637 |-------------------------------+-----------------------------------|
8638 |           rdesktop            |→ Graphic libraries and            |
8639 |                               |applications (graphic/text)        |
8640 |-------------------------------+-----------------------------------|
8641 |           read-edid           |→ Hardware handling                |
8642 |-------------------------------+-----------------------------------|
8643 |           readline            |→ Libraries → Text and terminal    |
8644 |                               |handling                           |
8645 |-------------------------------+-----------------------------------|
8646 |          recordproto          |→ Graphic libraries and            |
8647 |                               |applications (graphic/text) → X11R7|
8648 |                               |X protocols                        |
8649 |-------------------------------+-----------------------------------|
8650 |             redis             |→ Libraries → Database             |
8651 |-------------------------------+-----------------------------------|
8652 |          renderproto          |→ Graphic libraries and            |
8653 |                               |applications (graphic/text) → X11R7|
8654 |                               |X protocols                        |
8655 |-------------------------------+-----------------------------------|
8656 |         resourceproto         |→ Graphic libraries and            |
8657 |                               |applications (graphic/text) → X11R7|
8658 |                               |X protocols                        |
8659 |-------------------------------+-----------------------------------|
8660 |              rgb              |→ Graphic libraries and            |
8661 |                               |applications (graphic/text) → X11R7|
8662 |                               |Applications                       |
8663 |-------------------------------+-----------------------------------|
8664 |             rings             |→ Interpreter languages and        |
8665 |                               |scripting → Lua libraries/modules  |
8666 |-------------------------------+-----------------------------------|
8667 |           rng-tools           |→ Hardware handling                |
8668 |-------------------------------+-----------------------------------|
8669 |             roxml             |→ Libraries → JSON/XML             |
8670 |-------------------------------+-----------------------------------|
8671 |           rp-pppoe            |→ Networking applications          |
8672 |-------------------------------+-----------------------------------|
8673 |            rpcbind            |→ Networking applications          |
8674 |-------------------------------+-----------------------------------|
8675 |         rpi-firmware          |→ Hardware handling → Firmware     |
8676 |-------------------------------+-----------------------------------|
8677 |         rpi-userland          |→ Hardware handling                |
8678 |-------------------------------+-----------------------------------|
8679 |              rpm              |→ Package managers                 |
8680 |-------------------------------+-----------------------------------|
8681 |            rrdtool            |→ Graphic libraries and            |
8682 |                               |applications (graphic/text)        |
8683 |-------------------------------+-----------------------------------|
8684 |          rsh-redone           |→ Networking applications          |
8685 |-------------------------------+-----------------------------------|
8686 |            rstart             |→ Graphic libraries and            |
8687 |                               |applications (graphic/text) → X11R7|
8688 |                               |Applications                       |
8689 |-------------------------------+-----------------------------------|
8690 |             rsync             |→ Networking applications          |
8691 |-------------------------------+-----------------------------------|
8692 |            rsyslog            |→ System tools                     |
8693 |-------------------------------+-----------------------------------|
8694 |           rt-tests            |→ Debugging, profiling and         |
8695 |                               |benchmark                          |
8696 |-------------------------------+-----------------------------------|
8697 |             rtai              |→ Real-Time                        |
8698 |-------------------------------+-----------------------------------|
8699 |           rtorrent            |→ Networking applications          |
8700 |-------------------------------+-----------------------------------|
8701 |           rtptools            |→ Networking applications          |
8702 |-------------------------------+-----------------------------------|
8703 |             rubix             |→ Games                            |
8704 |-------------------------------+-----------------------------------|
8705 |             ruby              |→ Interpreter languages and        |
8706 |                               |scripting                          |
8707 |-------------------------------+-----------------------------------|
8708 |      samba (deprecated)       |→ Networking applications          |
8709 |-------------------------------+-----------------------------------|
8710 |            samba4             |→ Networking applications          |
8711 |-------------------------------+-----------------------------------|
8712 |         sane-backends         |→ Hardware handling                |
8713 |-------------------------------+-----------------------------------|
8714 |    SawMan (Window Manager)    |→ Graphic libraries and            |
8715 |                               |applications (graphic/text)        |
8716 |-------------------------------+-----------------------------------|
8717 |            schifra            |→ Libraries → Other                |
8718 |-------------------------------+-----------------------------------|
8719 |          sconeserver          |→ Networking applications          |
8720 |-------------------------------+-----------------------------------|
8721 |            screen             |→ Shell and utilities              |
8722 |-------------------------------+-----------------------------------|
8723 |         Script Module         |→ Graphic libraries and            |
8724 |                               |applications (graphic/text)        |
8725 |-------------------------------+-----------------------------------|
8726 |            scripts            |→ Graphic libraries and            |
8727 |                               |applications (graphic/text) → X11R7|
8728 |                               |Applications                       |
8729 |-------------------------------+-----------------------------------|
8730 |        scrnsaverproto         |→ Graphic libraries and            |
8731 |                               |applications (graphic/text) → X11R7|
8732 |                               |X protocols                        |
8733 |-------------------------------+-----------------------------------|
8734 |              SDL              |→ Graphic libraries and            |
8735 |                               |applications (graphic/text)        |
8736 |-------------------------------+-----------------------------------|
8737 |            SDL_gfx            |→ Graphic libraries and            |
8738 |                               |applications (graphic/text)        |
8739 |-------------------------------+-----------------------------------|
8740 |           SDL_image           |→ Graphic libraries and            |
8741 |                               |applications (graphic/text)        |
8742 |-------------------------------+-----------------------------------|
8743 |           SDL_mixer           |→ Graphic libraries and            |
8744 |                               |applications (graphic/text)        |
8745 |-------------------------------+-----------------------------------|
8746 |            SDL_net            |→ Graphic libraries and            |
8747 |                               |applications (graphic/text)        |
8748 |-------------------------------+-----------------------------------|
8749 |           SDL_sound           |→ Graphic libraries and            |
8750 |                               |applications (graphic/text)        |
8751 |-------------------------------+-----------------------------------|
8752 |            SDL_TTF            |→ Graphic libraries and            |
8753 |                               |applications (graphic/text)        |
8754 |-------------------------------+-----------------------------------|
8755 |            sdparm             |→ Hardware handling                |
8756 |-------------------------------+-----------------------------------|
8757 |              sed              |→ Development tools                |
8758 |-------------------------------+-----------------------------------|
8759 |            ser2net            |→ Networking applications          |
8760 |-------------------------------+-----------------------------------|
8761 |            sessreg            |→ Graphic libraries and            |
8762 |                               |applications (graphic/text) → X11R7|
8763 |                               |Applications                       |
8764 |-------------------------------+-----------------------------------|
8765 |           setserial           |→ Hardware handling                |
8766 |-------------------------------+-----------------------------------|
8767 |           setxkbmap           |→ Graphic libraries and            |
8768 |                               |applications (graphic/text) → X11R7|
8769 |                               |Applications                       |
8770 |-------------------------------+-----------------------------------|
8771 |           sg3-utils           |→ Hardware handling                |
8772 |-------------------------------+-----------------------------------|
8773 |        shairport-sync         |→ Networking applications          |
8774 |-------------------------------+-----------------------------------|
8775 |       shared-mime-info        |→ Miscellaneous                    |
8776 |-------------------------------+-----------------------------------|
8777 |    shareware Doom WAD file    |→ Games                            |
8778 |-------------------------------+-----------------------------------|
8779 |           showfont            |→ Graphic libraries and            |
8780 |                               |applications (graphic/text) → X11R7|
8781 |                               |Applications                       |
8782 |-------------------------------+-----------------------------------|
8783 |          sigrok-cli           |→ Hardware handling                |
8784 |-------------------------------+-----------------------------------|
8785 |           simicsfs            |→ Filesystem and flash utilities   |
8786 |-------------------------------+-----------------------------------|
8787 |           sispmctl            |→ Hardware handling                |
8788 |-------------------------------+-----------------------------------|
8789 |              sl               |→ Games                            |
8790 |-------------------------------+-----------------------------------|
8791 |             slang             |→ Libraries → Text and terminal    |
8792 |                               |handling                           |
8793 |-------------------------------+-----------------------------------|
8794 |             slirp             |→ Libraries → Networking           |
8795 |-------------------------------+-----------------------------------|
8796 |             smack             |→ System tools                     |
8797 |-------------------------------+-----------------------------------|
8798 |         smartmontools         |→ Hardware handling                |
8799 |-------------------------------+-----------------------------------|
8800 |           smcroute            |→ Networking applications          |
8801 |-------------------------------+-----------------------------------|
8802 |            smproxy            |→ Graphic libraries and            |
8803 |                               |applications (graphic/text) → X11R7|
8804 |                               |Applications                       |
8805 |-------------------------------+-----------------------------------|
8806 |           smstools3           |→ Hardware handling                |
8807 |-------------------------------+-----------------------------------|
8808 |            snappy             |→ Libraries → Compression and      |
8809 |                               |decompression                      |
8810 |-------------------------------+-----------------------------------|
8811 |            snmp++             |→ Libraries → Networking           |
8812 |-------------------------------+-----------------------------------|
8813 |     snowball-hdmiservice      |→ Hardware handling                |
8814 |-------------------------------+-----------------------------------|
8815 |         snowball-init         |→ Miscellaneous                    |
8816 |-------------------------------+-----------------------------------|
8817 |             socat             |→ Networking applications          |
8818 |-------------------------------+-----------------------------------|
8819 |          socketcand           |→ Networking applications          |
8820 |-------------------------------+-----------------------------------|
8821 |           sofia-sip           |→ Libraries → Networking           |
8822 |-------------------------------+-----------------------------------|
8823 |           softether           |→ Networking applications          |
8824 |-------------------------------+-----------------------------------|
8825 |     sound-theme-borealis      |→ Fonts, icons, sounds and themes  |
8826 |-------------------------------+-----------------------------------|
8827 |    sound-theme-freedesktop    |→ Fonts, icons, sounds and themes  |
8828 |-------------------------------+-----------------------------------|
8829 |              sox              |→ Audio and video applications     |
8830 |-------------------------------+-----------------------------------|
8831 |          spawn-fcgi           |→ Networking applications          |
8832 |-------------------------------+-----------------------------------|
8833 |             speex             |→ Libraries → Audio/Sound          |
8834 |-------------------------------+-----------------------------------|
8835 |        spice protocol         |→ Networking applications          |
8836 |-------------------------------+-----------------------------------|
8837 |         spice server          |→ Networking applications          |
8838 |-------------------------------+-----------------------------------|
8839 |          spidev_test          |→ Debugging, profiling and         |
8840 |                               |benchmark                          |
8841 |-------------------------------+-----------------------------------|
8842 |           sqlcipher           |→ Libraries → Database             |
8843 |-------------------------------+-----------------------------------|
8844 |            sqlite             |→ Libraries → Database             |
8845 |-------------------------------+-----------------------------------|
8846 |           squashfs            |→ Filesystem and flash utilities   |
8847 |-------------------------------+-----------------------------------|
8848 |             squid             |→ Networking applications          |
8849 |-------------------------------+-----------------------------------|
8850 |            sredird            |→ Hardware handling                |
8851 |-------------------------------+-----------------------------------|
8852 |         sshfs (FUSE)          |→ Filesystem and flash utilities   |
8853 |-------------------------------+-----------------------------------|
8854 |            sshpass            |→ Networking applications          |
8855 |-------------------------------+-----------------------------------|
8856 |            sstrip             |→ Development tools                |
8857 |-------------------------------+-----------------------------------|
8858 |       start-stop-daemon       |→ System tools                     |
8859 |-------------------------------+-----------------------------------|
8860 |     startup-notification      |→ Libraries → Other                |
8861 |-------------------------------+-----------------------------------|
8862 |          statserial           |→ Hardware handling                |
8863 |-------------------------------+-----------------------------------|
8864 |            strace             |→ Debugging, profiling and         |
8865 |                               |benchmark                          |
8866 |-------------------------------+-----------------------------------|
8867 |            stress             |→ Debugging, profiling and         |
8868 |                               |benchmark                          |
8869 |-------------------------------+-----------------------------------|
8870 |          strongswan           |→ Networking applications          |
8871 |-------------------------------+-----------------------------------|
8872 |            stunnel            |→ Networking applications          |
8873 |-------------------------------+-----------------------------------|
8874 |          subversion           |→ Development tools                |
8875 |-------------------------------+-----------------------------------|
8876 |             sudo              |→ Shell and utilities              |
8877 |-------------------------------+-----------------------------------|
8878 |        sunxi nand-part        |→ Filesystem and flash utilities   |
8879 |-------------------------------+-----------------------------------|
8880 |  sunxi script.bin board file  |→ Hardware handling → Firmware     |
8881 |-------------------------------+-----------------------------------|
8882 |         sunxi-cedarx          |→ Hardware handling                |
8883 |-------------------------------+-----------------------------------|
8884 |          sunxi-mali           |→ Hardware handling                |
8885 |-------------------------------+-----------------------------------|
8886 |          supervisor           |→ System tools                     |
8887 |-------------------------------+-----------------------------------|
8888 |          SVG Module           |→ Graphic libraries and            |
8889 |                               |applications (graphic/text)        |
8890 |-------------------------------+-----------------------------------|
8891 |           sylpheed            |→ Mail                             |
8892 |-------------------------------+-----------------------------------|
8893 |            synergy            |→ Graphic libraries and            |
8894 |                               |applications (graphic/text)        |
8895 |-------------------------------+-----------------------------------|
8896 |            sysdig             |→ Debugging, profiling and         |
8897 |                               |benchmark                          |
8898 |-------------------------------+-----------------------------------|
8899 |        syslogd & klogd        |→ System tools                     |
8900 |-------------------------------+-----------------------------------|
8901 |            sysprof            |→ Debugging, profiling and         |
8902 |                               |benchmark                          |
8903 |-------------------------------+-----------------------------------|
8904 |            sysstat            |→ Hardware handling                |
8905 |-------------------------------+-----------------------------------|
8906 |            systemd            |→ System tools                     |
8907 |-------------------------------+-----------------------------------|
8908 |           sysvinit            |→ System tools                     |
8909 |-------------------------------+-----------------------------------|
8910 |             szip              |→ Libraries → Compression and      |
8911 |                               |decompression                      |
8912 |-------------------------------+-----------------------------------|
8913 |            taglib             |→ Libraries → Audio/Sound          |
8914 |-------------------------------+-----------------------------------|
8915 |              tar              |→ Development tools                |
8916 |-------------------------------+-----------------------------------|
8917 |         targetcli-fb          |→ Hardware handling                |
8918 |-------------------------------+-----------------------------------|
8919 |              tcl              |→ Interpreter languages and        |
8920 |                               |scripting                          |
8921 |-------------------------------+-----------------------------------|
8922 |             tclap             |→ Libraries → Text and terminal    |
8923 |                               |handling                           |
8924 |-------------------------------+-----------------------------------|
8925 |            tcllib             |→ Interpreter languages and        |
8926 |                               |scripting → tcl libraries/modules  |
8927 |-------------------------------+-----------------------------------|
8928 |            tcpdump            |→ Networking applications          |
8929 |-------------------------------+-----------------------------------|
8930 |            tcping             |→ Networking applications          |
8931 |-------------------------------+-----------------------------------|
8932 |           tcpreplay           |→ Networking applications          |
8933 |-------------------------------+-----------------------------------|
8934 |             tftpd             |→ Networking applications          |
8935 |-------------------------------+-----------------------------------|
8936 |            thrift             |→ Libraries → Networking           |
8937 |-------------------------------+-----------------------------------|
8938 |            thttpd             |→ Networking applications          |
8939 |-------------------------------+-----------------------------------|
8940 |            ti-gfx             |→ Hardware handling                |
8941 |-------------------------------+-----------------------------------|
8942 |            ti-uim             |→ Hardware handling                |
8943 |-------------------------------+-----------------------------------|
8944 |           ti-utils            |→ Hardware handling                |
8945 |-------------------------------+-----------------------------------|
8946 |        tidsp-binaries         |→ Audio and video applications     |
8947 |-------------------------------+-----------------------------------|
8948 |             tiff              |→ Libraries → Graphics             |
8949 |-------------------------------+-----------------------------------|
8950 |             time              |→ Shell and utilities              |
8951 |-------------------------------+-----------------------------------|
8952 |             tinc              |→ Networking applications          |
8953 |-------------------------------+-----------------------------------|
8954 |           tinyalsa            |→ Libraries → Audio/Sound          |
8955 |-------------------------------+-----------------------------------|
8956 |           tinyhttpd           |→ Networking applications          |
8957 |-------------------------------+-----------------------------------|
8958 |         tinymembench          |→ Debugging, profiling and         |
8959 |                               |benchmark                          |
8960 |-------------------------------+-----------------------------------|
8961 |            tinyxml            |→ Libraries → JSON/XML             |
8962 |-------------------------------+-----------------------------------|
8963 |           tinyxml2            |→ Libraries → JSON/XML             |
8964 |-------------------------------+-----------------------------------|
8965 |             tmux              |→ Shell and utilities              |
8966 |-------------------------------+-----------------------------------|
8967 |            tn5250             |→ Networking applications          |
8968 |-------------------------------+-----------------------------------|
8969 |              tor              |→ Networking applications          |
8970 |-------------------------------+-----------------------------------|
8971 |            torsmo             |→ Graphic libraries and            |
8972 |                               |applications (graphic/text)        |
8973 |-------------------------------+-----------------------------------|
8974 |             tovid             |→ Audio and video applications     |
8975 |-------------------------------+-----------------------------------|
8976 |           trace-cmd           |→ Debugging, profiling and         |
8977 |                               |benchmark                          |
8978 |-------------------------------+-----------------------------------|
8979 |         transmission          |→ Networking applications          |
8980 |-------------------------------+-----------------------------------|
8981 |             tree              |→ Development tools                |
8982 |-------------------------------+-----------------------------------|
8983 |  tremor (fixed point vorbis   |→ Libraries → Audio/Sound          |
8984 |           decoder)            |                                   |
8985 |-------------------------------+-----------------------------------|
8986 |         triggerhappy          |→ Hardware handling                |
8987 |-------------------------------+-----------------------------------|
8988 |            trinity            |→ Debugging, profiling and         |
8989 |                               |benchmark                          |
8990 |-------------------------------+-----------------------------------|
8991 |             tslib             |→ Libraries → Hardware handling    |
8992 |-------------------------------+-----------------------------------|
8993 |            tstools            |→ Audio and video applications     |
8994 |-------------------------------+-----------------------------------|
8995 |           tvheadend           |→ Networking applications          |
8996 |-------------------------------+-----------------------------------|
8997 |              twm              |→ Graphic libraries and            |
8998 |                               |applications (graphic/text) → X11R7|
8999 |                               |Applications                       |
9000 |-------------------------------+-----------------------------------|
9001 |            twolame            |→ Audio and video applications     |
9002 |-------------------------------+-----------------------------------|
9003 |         u-boot tools          |→ Hardware handling                |
9004 |-------------------------------+-----------------------------------|
9005 |            udisks             |→ Hardware handling                |
9006 |-------------------------------+-----------------------------------|
9007 |            udpcast            |→ Networking applications          |
9008 |-------------------------------+-----------------------------------|
9009 |            uemacs             |→ Text editors and viewers         |
9010 |-------------------------------+-----------------------------------|
9011 |             ulogd             |→ Networking applications          |
9012 |-------------------------------+-----------------------------------|
9013 |        unionfs (FUSE)         |→ Filesystem and flash utilities   |
9014 |-------------------------------+-----------------------------------|
9015 |           unixodbc            |→ Libraries → Database             |
9016 |-------------------------------+-----------------------------------|
9017 |           upmpdcli            |→ Audio and video applications     |
9018 |-------------------------------+-----------------------------------|
9019 |              urg              |→ Libraries → Hardware handling    |
9020 |-------------------------------+-----------------------------------|
9021 |        usb_modeswitch         |→ Hardware handling                |
9022 |-------------------------------+-----------------------------------|
9023 |      usb_modeswitch_data      |→ Hardware handling                |
9024 |-------------------------------+-----------------------------------|
9025 |           usbmount            |→ Hardware handling                |
9026 |-------------------------------+-----------------------------------|
9027 |           usbredir            |→ Libraries → Networking           |
9028 |-------------------------------+-----------------------------------|
9029 |           usbutils            |→ Hardware handling                |
9030 |-------------------------------+-----------------------------------|
9031 |            ushare             |→ Networking applications          |
9032 |-------------------------------+-----------------------------------|
9033 |           ussp-push           |→ Networking applications          |
9034 |-------------------------------+-----------------------------------|
9035 |             ustr              |→ Libraries → Text and terminal    |
9036 |                               |handling                           |
9037 |-------------------------------+-----------------------------------|
9038 |          util-linux           |→ System tools                     |
9039 |-------------------------------+-----------------------------------|
9040 |          util-macros          |→ Graphic libraries and            |
9041 |                               |applications (graphic/text) → X11R7|
9042 |                               |Utilities                          |
9043 |-------------------------------+-----------------------------------|
9044 |        ux500-firmware         |→ Hardware handling → Firmware     |
9045 |-------------------------------+-----------------------------------|
9046 |           valgrind            |→ Debugging, profiling and         |
9047 |                               |benchmark                          |
9048 |-------------------------------+-----------------------------------|
9049 |             vde2              |→ Networking applications          |
9050 |-------------------------------+-----------------------------------|
9051 |          videoproto           |→ Graphic libraries and            |
9052 |                               |applications (graphic/text) → X11R7|
9053 |                               |X protocols                        |
9054 |-------------------------------+-----------------------------------|
9055 |            viewres            |→ Graphic libraries and            |
9056 |                               |applications (graphic/text) → X11R7|
9057 |                               |Applications                       |
9058 |-------------------------------+-----------------------------------|
9059 |              vim              |→ Text editors and viewers         |
9060 |-------------------------------+-----------------------------------|
9061 |              vlc              |→ Audio and video applications     |
9062 |-------------------------------+-----------------------------------|
9063 |            vnstat             |→ Networking applications          |
9064 |-------------------------------+-----------------------------------|
9065 |           vo-aacenc           |→ Libraries → Audio/Sound          |
9066 |-------------------------------+-----------------------------------|
9067 |         vorbis-tools          |→ Audio and video applications     |
9068 |-------------------------------+-----------------------------------|
9069 |             vpnc              |→ Networking applications          |
9070 |-------------------------------+-----------------------------------|
9071 |            vsftpd             |→ Networking applications          |
9072 |-------------------------------+-----------------------------------|
9073 |             vtun              |→ Networking applications          |
9074 |-------------------------------+-----------------------------------|
9075 |            w_scan             |→ Hardware handling                |
9076 |-------------------------------+-----------------------------------|
9077 |            wavpack            |→ Audio and video applications     |
9078 |-------------------------------+-----------------------------------|
9079 |            wayland            |→ Libraries → Graphics             |
9080 |-------------------------------+-----------------------------------|
9081 |            webkit             |→ Libraries → Graphics             |
9082 |-------------------------------+-----------------------------------|
9083 |         WebKit Module         |→ Graphic libraries and            |
9084 |                               |applications (graphic/text)        |
9085 |-------------------------------+-----------------------------------|
9086 |             webp              |→ Libraries → Graphics             |
9087 |-------------------------------+-----------------------------------|
9088 |    webrtc-audio-processing    |→ Libraries → Audio/Sound          |
9089 |-------------------------------+-----------------------------------|
9090 |            weston             |→ Graphic libraries and            |
9091 |                               |applications (graphic/text)        |
9092 |-------------------------------+-----------------------------------|
9093 |             wf111             |→ Hardware handling                |
9094 |-------------------------------+-----------------------------------|
9095 |             wget              |→ Networking applications          |
9096 |-------------------------------+-----------------------------------|
9097 |           whetstone           |→ Debugging, profiling and         |
9098 |                               |benchmark                          |
9099 |-------------------------------+-----------------------------------|
9100 |             which             |→ Shell and utilities              |
9101 |-------------------------------+-----------------------------------|
9102 |             whois             |→ Networking applications          |
9103 |-------------------------------+-----------------------------------|
9104 |        windowswmproto         |→ Graphic libraries and            |
9105 |                               |applications (graphic/text) → X11R7|
9106 |                               |X protocols                        |
9107 |-------------------------------+-----------------------------------|
9108 |             wine              |→ Miscellaneous                    |
9109 |-------------------------------+-----------------------------------|
9110 |             wipe              |→ Hardware handling                |
9111 |-------------------------------+-----------------------------------|
9112 |        wireless tools         |→ Networking applications          |
9113 |-------------------------------+-----------------------------------|
9114 |        wireless-regdb         |→ Networking applications          |
9115 |-------------------------------+-----------------------------------|
9116 |           wireshark           |→ Networking applications          |
9117 |-------------------------------+-----------------------------------|
9118 |            wmctrl             |→ Graphic libraries and            |
9119 |                               |applications (graphic/text)        |
9120 |-------------------------------+-----------------------------------|
9121 |        wpa_supplicant         |→ Networking applications          |
9122 |-------------------------------+-----------------------------------|
9123 |             wsapi             |→ Interpreter languages and        |
9124 |                               |scripting → Lua libraries/modules  |
9125 |-------------------------------+-----------------------------------|
9126 |            wvdial             |→ Networking applications          |
9127 |-------------------------------+-----------------------------------|
9128 |           wvstreams           |→ Libraries → Networking           |
9129 |-------------------------------+-----------------------------------|
9130 |            x11perf            |→ Graphic libraries and            |
9131 |                               |applications (graphic/text) → X11R7|
9132 |                               |Applications                       |
9133 |-------------------------------+-----------------------------------|
9134 |            x11vnc             |→ Graphic libraries and            |
9135 |                               |applications (graphic/text)        |
9136 |-------------------------------+-----------------------------------|
9137 |             x264              |→ Libraries → Multimedia           |
9138 |-------------------------------+-----------------------------------|
9139 |             xauth             |→ Graphic libraries and            |
9140 |                               |applications (graphic/text) → X11R7|
9141 |                               |Applications                       |
9142 |-------------------------------+-----------------------------------|
9143 |            xavante            |→ Interpreter languages and        |
9144 |                               |scripting → Lua libraries/modules  |
9145 |-------------------------------+-----------------------------------|
9146 |          xbacklight           |→ Graphic libraries and            |
9147 |                               |applications (graphic/text) → X11R7|
9148 |                               |Applications                       |
9149 |-------------------------------+-----------------------------------|
9150 |             xbiff             |→ Graphic libraries and            |
9151 |                               |applications (graphic/text) → X11R7|
9152 |                               |Applications                       |
9153 |-------------------------------+-----------------------------------|
9154 |           xbitmaps            |→ Graphic libraries and            |
9155 |                               |applications (graphic/text) → X11R7|
9156 |                               |Other data                         |
9157 |-------------------------------+-----------------------------------|
9158 |             xcalc             |→ Graphic libraries and            |
9159 |                               |applications (graphic/text) → X11R7|
9160 |                               |Applications                       |
9161 |-------------------------------+-----------------------------------|
9162 |           xcb-proto           |→ Graphic libraries and            |
9163 |                               |applications (graphic/text) → X11R7|
9164 |                               |X protocols                        |
9165 |-------------------------------+-----------------------------------|
9166 |           xcb-util            |→ Graphic libraries and            |
9167 |                               |applications (graphic/text) → X11R7|
9168 |                               |Libraries                          |
9169 |-------------------------------+-----------------------------------|
9170 |        xcb-util-cursor        |→ Graphic libraries and            |
9171 |                               |applications (graphic/text) → X11R7|
9172 |                               |Libraries                          |
9173 |-------------------------------+-----------------------------------|
9174 |        xcb-util-image         |→ Graphic libraries and            |
9175 |                               |applications (graphic/text) → X11R7|
9176 |                               |Libraries                          |
9177 |-------------------------------+-----------------------------------|
9178 |       xcb-util-keysyms        |→ Graphic libraries and            |
9179 |                               |applications (graphic/text) → X11R7|
9180 |                               |Libraries                          |
9181 |-------------------------------+-----------------------------------|
9182 |      xcb-util-renderutil      |→ Graphic libraries and            |
9183 |                               |applications (graphic/text) → X11R7|
9184 |                               |Libraries                          |
9185 |-------------------------------+-----------------------------------|
9186 |          xcb-util-wm          |→ Graphic libraries and            |
9187 |                               |applications (graphic/text) → X11R7|
9188 |                               |Libraries                          |
9189 |-------------------------------+-----------------------------------|
9190 |          xclipboard           |→ Graphic libraries and            |
9191 |                               |applications (graphic/text) → X11R7|
9192 |                               |Applications                       |
9193 |-------------------------------+-----------------------------------|
9194 |            xclock             |→ Graphic libraries and            |
9195 |                               |applications (graphic/text) → X11R7|
9196 |                               |Applications                       |
9197 |-------------------------------+-----------------------------------|
9198 |          xcmiscproto          |→ Graphic libraries and            |
9199 |                               |applications (graphic/text) → X11R7|
9200 |                               |X protocols                        |
9201 |-------------------------------+-----------------------------------|
9202 |            xcmsdb             |→ Graphic libraries and            |
9203 |                               |applications (graphic/text) → X11R7|
9204 |                               |Applications                       |
9205 |-------------------------------+-----------------------------------|
9206 |           xcompmgr            |→ Graphic libraries and            |
9207 |                               |applications (graphic/text) → X11R7|
9208 |                               |Applications                       |
9209 |-------------------------------+-----------------------------------|
9210 |           xconsole            |→ Graphic libraries and            |
9211 |                               |applications (graphic/text) → X11R7|
9212 |                               |Applications                       |
9213 |-------------------------------+-----------------------------------|
9214 |   xcursor-transparent-theme   |→ Graphic libraries and            |
9215 |                               |applications (graphic/text) → X11R7|
9216 |                               |Other data                         |
9217 |-------------------------------+-----------------------------------|
9218 |          xcursorgen           |→ Graphic libraries and            |
9219 |                               |applications (graphic/text) → X11R7|
9220 |                               |Applications                       |
9221 |-------------------------------+-----------------------------------|
9222 |     xdata_xcursor-themes      |→ Graphic libraries and            |
9223 |                               |applications (graphic/text) → X11R7|
9224 |                               |Other data                         |
9225 |-------------------------------+-----------------------------------|
9226 |           xdbedizzy           |→ Graphic libraries and            |
9227 |                               |applications (graphic/text) → X11R7|
9228 |                               |Applications                       |
9229 |-------------------------------+-----------------------------------|
9230 |           xditview            |→ Graphic libraries and            |
9231 |                               |applications (graphic/text) → X11R7|
9232 |                               |Applications                       |
9233 |-------------------------------+-----------------------------------|
9234 |              xdm              |→ Graphic libraries and            |
9235 |                               |applications (graphic/text) → X11R7|
9236 |                               |Applications                       |
9237 |-------------------------------+-----------------------------------|
9238 |           xdpyinfo            |→ Graphic libraries and            |
9239 |                               |applications (graphic/text) → X11R7|
9240 |                               |Applications                       |
9241 |-------------------------------+-----------------------------------|
9242 |           xdriinfo            |→ Graphic libraries and            |
9243 |                               |applications (graphic/text) → X11R7|
9244 |                               |Applications                       |
9245 |-------------------------------+-----------------------------------|
9246 |             xedit             |→ Graphic libraries and            |
9247 |                               |applications (graphic/text) → X11R7|
9248 |                               |Applications                       |
9249 |-------------------------------+-----------------------------------|
9250 |       Xenomai Userspace       |→ Real-Time                        |
9251 |-------------------------------+-----------------------------------|
9252 |          xerces-c++           |→ Libraries → JSON/XML             |
9253 |-------------------------------+-----------------------------------|
9254 |              xev              |→ Graphic libraries and            |
9255 |                               |applications (graphic/text) → X11R7|
9256 |                               |Applications                       |
9257 |-------------------------------+-----------------------------------|
9258 |           xextproto           |→ Graphic libraries and            |
9259 |                               |applications (graphic/text) → X11R7|
9260 |                               |X protocols                        |
9261 |-------------------------------+-----------------------------------|
9262 |             xeyes             |→ Graphic libraries and            |
9263 |                               |applications (graphic/text) → X11R7|
9264 |                               |Applications                       |
9265 |-------------------------------+-----------------------------------|
9266 |       xf86-input-evdev        |→ Graphic libraries and            |
9267 |                               |applications (graphic/text) → X11R7|
9268 |                               |Drivers                            |
9269 |-------------------------------+-----------------------------------|
9270 |      xf86-input-joystick      |→ Graphic libraries and            |
9271 |                               |applications (graphic/text) → X11R7|
9272 |                               |Drivers                            |
9273 |-------------------------------+-----------------------------------|
9274 |      xf86-input-keyboard      |→ Graphic libraries and            |
9275 |                               |applications (graphic/text) → X11R7|
9276 |                               |Drivers                            |
9277 |-------------------------------+-----------------------------------|
9278 |      xf86-input-libinput      |→ Graphic libraries and            |
9279 |                               |applications (graphic/text) → X11R7|
9280 |                               |Drivers                            |
9281 |-------------------------------+-----------------------------------|
9282 |       xf86-input-mouse        |→ Graphic libraries and            |
9283 |                               |applications (graphic/text) → X11R7|
9284 |                               |Drivers                            |
9285 |-------------------------------+-----------------------------------|
9286 |     xf86-input-synaptics      |→ Graphic libraries and            |
9287 |                               |applications (graphic/text) → X11R7|
9288 |                               |Drivers                            |
9289 |-------------------------------+-----------------------------------|
9290 |       xf86-input-tslib        |→ Graphic libraries and            |
9291 |                               |applications (graphic/text) → X11R7|
9292 |                               |Drivers                            |
9293 |-------------------------------+-----------------------------------|
9294 |      xf86-input-vmmouse       |→ Graphic libraries and            |
9295 |                               |applications (graphic/text) → X11R7|
9296 |                               |Drivers                            |
9297 |-------------------------------+-----------------------------------|
9298 | xf86-input-void (deprecated)  |→ Graphic libraries and            |
9299 |                               |applications (graphic/text) → X11R7|
9300 |                               |Drivers                            |
9301 |-------------------------------+-----------------------------------|
9302 |        xf86-video-ark         |→ Graphic libraries and            |
9303 |                               |applications (graphic/text) → X11R7|
9304 |                               |Drivers                            |
9305 |-------------------------------+-----------------------------------|
9306 |        xf86-video-ast         |→ Graphic libraries and            |
9307 |                               |applications (graphic/text) → X11R7|
9308 |                               |Drivers                            |
9309 |-------------------------------+-----------------------------------|
9310 |        xf86-video-ati         |→ Graphic libraries and            |
9311 |                               |applications (graphic/text) → X11R7|
9312 |                               |Drivers                            |
9313 |-------------------------------+-----------------------------------|
9314 |       xf86-video-cirrus       |→ Graphic libraries and            |
9315 |                               |applications (graphic/text) → X11R7|
9316 |                               |Drivers                            |
9317 |-------------------------------+-----------------------------------|
9318 |       xf86-video-dummy        |→ Graphic libraries and            |
9319 |                               |applications (graphic/text) → X11R7|
9320 |                               |Drivers                            |
9321 |-------------------------------+-----------------------------------|
9322 |       xf86-video-fbdev        |→ Graphic libraries and            |
9323 |                               |applications (graphic/text) → X11R7|
9324 |                               |Drivers                            |
9325 |-------------------------------+-----------------------------------|
9326 |       xf86-video-geode        |→ Graphic libraries and            |
9327 |                               |applications (graphic/text) → X11R7|
9328 |                               |Drivers                            |
9329 |-------------------------------+-----------------------------------|
9330 |       xf86-video-glide        |→ Graphic libraries and            |
9331 |                               |applications (graphic/text) → X11R7|
9332 |                               |Drivers                            |
9333 |-------------------------------+-----------------------------------|
9334 |       xf86-video-glint        |→ Graphic libraries and            |
9335 |                               |applications (graphic/text) → X11R7|
9336 |                               |Drivers                            |
9337 |-------------------------------+-----------------------------------|
9338 |        xf86-video-i128        |→ Graphic libraries and            |
9339 |                               |applications (graphic/text) → X11R7|
9340 |                               |Drivers                            |
9341 |-------------------------------+-----------------------------------|
9342 |        xf86-video-imx         |→ Graphic libraries and            |
9343 |                               |applications (graphic/text) → X11R7|
9344 |                               |Drivers                            |
9345 |-------------------------------+-----------------------------------|
9346 |      xf86-video-imx-viv       |→ Graphic libraries and            |
9347 |                               |applications (graphic/text) → X11R7|
9348 |                               |Drivers                            |
9349 |-------------------------------+-----------------------------------|
9350 |       xf86-video-intel        |→ Graphic libraries and            |
9351 |                               |applications (graphic/text) → X11R7|
9352 |                               |Drivers                            |
9353 |-------------------------------+-----------------------------------|
9354 |       xf86-video-mach64       |→ Graphic libraries and            |
9355 |                               |applications (graphic/text) → X11R7|
9356 |                               |Drivers                            |
9357 |-------------------------------+-----------------------------------|
9358 |        xf86-video-mga         |→ Graphic libraries and            |
9359 |                               |applications (graphic/text) → X11R7|
9360 |                               |Drivers                            |
9361 |-------------------------------+-----------------------------------|
9362 |      xf86-video-neomagic      |→ Graphic libraries and            |
9363 |                               |applications (graphic/text) → X11R7|
9364 |                               |Drivers                            |
9365 |-------------------------------+-----------------------------------|
9366 |         xf86-video-nv         |→ Graphic libraries and            |
9367 |                               |applications (graphic/text) → X11R7|
9368 |                               |Drivers                            |
9369 |-------------------------------+-----------------------------------|
9370 |     xf86-video-openchrome     |→ Graphic libraries and            |
9371 |                               |applications (graphic/text) → X11R7|
9372 |                               |Drivers                            |
9373 |-------------------------------+-----------------------------------|
9374 |        xf86-video-r128        |→ Graphic libraries and            |
9375 |                               |applications (graphic/text) → X11R7|
9376 |                               |Drivers                            |
9377 |-------------------------------+-----------------------------------|
9378 |       xf86-video-savage       |→ Graphic libraries and            |
9379 |                               |applications (graphic/text) → X11R7|
9380 |                               |Drivers                            |
9381 |-------------------------------+-----------------------------------|
9382 |   xf86-video-siliconmotion    |→ Graphic libraries and            |
9383 |                               |applications (graphic/text) → X11R7|
9384 |                               |Drivers                            |
9385 |-------------------------------+-----------------------------------|
9386 |        xf86-video-sis         |→ Graphic libraries and            |
9387 |                               |applications (graphic/text) → X11R7|
9388 |                               |Drivers                            |
9389 |-------------------------------+-----------------------------------|
9390 |        xf86-video-tdfx        |→ Graphic libraries and            |
9391 |                               |applications (graphic/text) → X11R7|
9392 |                               |Drivers                            |
9393 |-------------------------------+-----------------------------------|
9394 |        xf86-video-tga         |→ Graphic libraries and            |
9395 |                               |applications (graphic/text) → X11R7|
9396 |                               |Drivers                            |
9397 |-------------------------------+-----------------------------------|
9398 |      xf86-video-trident       |→ Graphic libraries and            |
9399 |                               |applications (graphic/text) → X11R7|
9400 |                               |Drivers                            |
9401 |-------------------------------+-----------------------------------|
9402 |        xf86-video-v4l         |→ Graphic libraries and            |
9403 |                               |applications (graphic/text) → X11R7|
9404 |                               |Drivers                            |
9405 |-------------------------------+-----------------------------------|
9406 |        xf86-video-vesa        |→ Graphic libraries and            |
9407 |                               |applications (graphic/text) → X11R7|
9408 |                               |Drivers                            |
9409 |-------------------------------+-----------------------------------|
9410 |       xf86-video-vmware       |→ Graphic libraries and            |
9411 |                               |applications (graphic/text) → X11R7|
9412 |                               |Drivers                            |
9413 |-------------------------------+-----------------------------------|
9414 |       xf86-video-voodoo       |→ Graphic libraries and            |
9415 |                               |applications (graphic/text) → X11R7|
9416 |                               |Drivers                            |
9417 |-------------------------------+-----------------------------------|
9418 |        xf86-video-wsfb        |→ Graphic libraries and            |
9419 |                               |applications (graphic/text) → X11R7|
9420 |                               |Drivers                            |
9421 |-------------------------------+-----------------------------------|
9422 |       xf86bigfontproto        |→ Graphic libraries and            |
9423 |                               |applications (graphic/text) → X11R7|
9424 |                               |X protocols                        |
9425 |-------------------------------+-----------------------------------|
9426 |            xf86dga            |→ Graphic libraries and            |
9427 |                               |applications (graphic/text) → X11R7|
9428 |                               |Applications                       |
9429 |-------------------------------+-----------------------------------|
9430 |         xf86dgaproto          |→ Graphic libraries and            |
9431 |                               |applications (graphic/text) → X11R7|
9432 |                               |X protocols                        |
9433 |-------------------------------+-----------------------------------|
9434 |         xf86driproto          |→ Graphic libraries and            |
9435 |                               |applications (graphic/text) → X11R7|
9436 |                               |X protocols                        |
9437 |-------------------------------+-----------------------------------|
9438 |       xf86vidmodeproto        |→ Graphic libraries and            |
9439 |                               |applications (graphic/text) → X11R7|
9440 |                               |X protocols                        |
9441 |-------------------------------+-----------------------------------|
9442 |              xfd              |→ Graphic libraries and            |
9443 |                               |applications (graphic/text) → X11R7|
9444 |                               |Applications                       |
9445 |-------------------------------+-----------------------------------|
9446 |          xfindproxy           |→ Graphic libraries and            |
9447 |                               |applications (graphic/text) → X11R7|
9448 |                               |Applications                       |
9449 |-------------------------------+-----------------------------------|
9450 |           xfontsel            |→ Graphic libraries and            |
9451 |                               |applications (graphic/text) → X11R7|
9452 |                               |Applications                       |
9453 |-------------------------------+-----------------------------------|
9454 |              xfs              |→ Graphic libraries and            |
9455 |                               |applications (graphic/text) → X11R7|
9456 |                               |Applications                       |
9457 |-------------------------------+-----------------------------------|
9458 |            xfsinfo            |→ Graphic libraries and            |
9459 |                               |applications (graphic/text) → X11R7|
9460 |                               |Applications                       |
9461 |-------------------------------+-----------------------------------|
9462 |           xfsprogs            |→ Filesystem and flash utilities   |
9463 |-------------------------------+-----------------------------------|
9464 |            xgamma             |→ Graphic libraries and            |
9465 |                               |applications (graphic/text) → X11R7|
9466 |                               |Applications                       |
9467 |-------------------------------+-----------------------------------|
9468 |              xgc              |→ Graphic libraries and            |
9469 |                               |applications (graphic/text) → X11R7|
9470 |                               |Applications                       |
9471 |-------------------------------+-----------------------------------|
9472 |             xhost             |→ Graphic libraries and            |
9473 |                               |applications (graphic/text) → X11R7|
9474 |                               |Applications                       |
9475 |-------------------------------+-----------------------------------|
9476 |         xineramaproto         |→ Graphic libraries and            |
9477 |                               |applications (graphic/text) → X11R7|
9478 |                               |X protocols                        |
9479 |-------------------------------+-----------------------------------|
9480 |            xinetd             |→ Networking applications          |
9481 |-------------------------------+-----------------------------------|
9482 |             xinit             |→ Graphic libraries and            |
9483 |                               |applications (graphic/text) → X11R7|
9484 |                               |Applications                       |
9485 |-------------------------------+-----------------------------------|
9486 |            xinput             |→ Graphic libraries and            |
9487 |                               |applications (graphic/text) → X11R7|
9488 |                               |Applications                       |
9489 |-------------------------------+-----------------------------------|
9490 |       xinput-calibrator       |→ Graphic libraries and            |
9491 |                               |applications (graphic/text) → X11R7|
9492 |                               |Applications                       |
9493 |-------------------------------+-----------------------------------|
9494 |            xkbcomp            |→ Graphic libraries and            |
9495 |                               |applications (graphic/text) → X11R7|
9496 |                               |Applications                       |
9497 |-------------------------------+-----------------------------------|
9498 |            xkbevd             |→ Graphic libraries and            |
9499 |                               |applications (graphic/text) → X11R7|
9500 |                               |Applications                       |
9501 |-------------------------------+-----------------------------------|
9502 |           xkbprint            |→ Graphic libraries and            |
9503 |                               |applications (graphic/text) → X11R7|
9504 |                               |Applications                       |
9505 |-------------------------------+-----------------------------------|
9506 |           xkbutils            |→ Graphic libraries and            |
9507 |                               |applications (graphic/text) → X11R7|
9508 |                               |Applications                       |
9509 |-------------------------------+-----------------------------------|
9510 |       xkeyboard-config        |→ Graphic libraries and            |
9511 |                               |applications (graphic/text)        |
9512 |-------------------------------+-----------------------------------|
9513 |             xkill             |→ Graphic libraries and            |
9514 |                               |applications (graphic/text) → X11R7|
9515 |                               |Applications                       |
9516 |-------------------------------+-----------------------------------|
9517 |             xl2tp             |→ Networking applications          |
9518 |-------------------------------+-----------------------------------|
9519 |             xload             |→ Graphic libraries and            |
9520 |                               |applications (graphic/text) → X11R7|
9521 |                               |Applications                       |
9522 |-------------------------------+-----------------------------------|
9523 |             xlogo             |→ Graphic libraries and            |
9524 |                               |applications (graphic/text) → X11R7|
9525 |                               |Applications                       |
9526 |-------------------------------+-----------------------------------|
9527 |           xlsatoms            |→ Graphic libraries and            |
9528 |                               |applications (graphic/text) → X11R7|
9529 |                               |Applications                       |
9530 |-------------------------------+-----------------------------------|
9531 |          xlsclients           |→ Graphic libraries and            |
9532 |                               |applications (graphic/text) → X11R7|
9533 |                               |Applications                       |
9534 |-------------------------------+-----------------------------------|
9535 |           xlsfonts            |→ Graphic libraries and            |
9536 |                               |applications (graphic/text) → X11R7|
9537 |                               |Applications                       |
9538 |-------------------------------+-----------------------------------|
9539 |             xmag              |→ Graphic libraries and            |
9540 |                               |applications (graphic/text) → X11R7|
9541 |                               |Applications                       |
9542 |-------------------------------+-----------------------------------|
9543 |             xman              |→ Graphic libraries and            |
9544 |                               |applications (graphic/text) → X11R7|
9545 |                               |Applications                       |
9546 |-------------------------------+-----------------------------------|
9547 |           xmessage            |→ Graphic libraries and            |
9548 |                               |applications (graphic/text) → X11R7|
9549 |                               |Applications                       |
9550 |-------------------------------+-----------------------------------|
9551 |              xmh              |→ Graphic libraries and            |
9552 |                               |applications (graphic/text) → X11R7|
9553 |                               |Applications                       |
9554 |-------------------------------+-----------------------------------|
9555 |      XML Patterns Module      |→ Graphic libraries and            |
9556 |                               |applications (graphic/text)        |
9557 |-------------------------------+-----------------------------------|
9558 |          xmlstarlet           |→ Shell and utilities              |
9559 |-------------------------------+-----------------------------------|
9560 |            xmodmap            |→ Graphic libraries and            |
9561 |                               |applications (graphic/text) → X11R7|
9562 |                               |Applications                       |
9563 |-------------------------------+-----------------------------------|
9564 |             xmore             |→ Graphic libraries and            |
9565 |                               |applications (graphic/text) → X11R7|
9566 |                               |Applications                       |
9567 |-------------------------------+-----------------------------------|
9568 |          xorg-server          |→ Graphic libraries and            |
9569 |                               |applications (graphic/text) → X11R7|
9570 |                               |Servers                            |
9571 |-------------------------------+-----------------------------------|
9572 |            xorriso            |→ Hardware handling                |
9573 |-------------------------------+-----------------------------------|
9574 |              xpr              |→ Graphic libraries and            |
9575 |                               |applications (graphic/text) → X11R7|
9576 |                               |Applications                       |
9577 |-------------------------------+-----------------------------------|
9578 |             xprop             |→ Graphic libraries and            |
9579 |                               |applications (graphic/text) → X11R7|
9580 |                               |Applications                       |
9581 |-------------------------------+-----------------------------------|
9582 |            xproto             |→ Graphic libraries and            |
9583 |                               |applications (graphic/text) → X11R7|
9584 |                               |X protocols                        |
9585 |-------------------------------+-----------------------------------|
9586 |   xproxymanagementprotocol    |→ Graphic libraries and            |
9587 |                               |applications (graphic/text) → X11R7|
9588 |                               |X protocols                        |
9589 |-------------------------------+-----------------------------------|
9590 |            xrandr             |→ Graphic libraries and            |
9591 |                               |applications (graphic/text) → X11R7|
9592 |                               |Applications                       |
9593 |-------------------------------+-----------------------------------|
9594 |             xrdb              |→ Graphic libraries and            |
9595 |                               |applications (graphic/text) → X11R7|
9596 |                               |Applications                       |
9597 |-------------------------------+-----------------------------------|
9598 |           xrefresh            |→ Graphic libraries and            |
9599 |                               |applications (graphic/text) → X11R7|
9600 |                               |Applications                       |
9601 |-------------------------------+-----------------------------------|
9602 |         xscreensaver          |→ Graphic libraries and            |
9603 |                               |applications (graphic/text)        |
9604 |-------------------------------+-----------------------------------|
9605 |             xset              |→ Graphic libraries and            |
9606 |                               |applications (graphic/text) → X11R7|
9607 |                               |Applications                       |
9608 |-------------------------------+-----------------------------------|
9609 |           xsetmode            |→ Graphic libraries and            |
9610 |                               |applications (graphic/text) → X11R7|
9611 |                               |Applications                       |
9612 |-------------------------------+-----------------------------------|
9613 |          xsetpointer          |→ Graphic libraries and            |
9614 |                               |applications (graphic/text) → X11R7|
9615 |                               |Applications                       |
9616 |-------------------------------+-----------------------------------|
9617 |           xsetroot            |→ Graphic libraries and            |
9618 |                               |applications (graphic/text) → X11R7|
9619 |                               |Applications                       |
9620 |-------------------------------+-----------------------------------|
9621 |              xsm              |→ Graphic libraries and            |
9622 |                               |applications (graphic/text) → X11R7|
9623 |                               |Applications                       |
9624 |-------------------------------+-----------------------------------|
9625 |           xstdcmap            |→ Graphic libraries and            |
9626 |                               |applications (graphic/text) → X11R7|
9627 |                               |Applications                       |
9628 |-------------------------------+-----------------------------------|
9629 |        xtables-addons         |→ Networking applications          |
9630 |-------------------------------+-----------------------------------|
9631 |             xterm             |→ Graphic libraries and            |
9632 |                               |applications (graphic/text)        |
9633 |-------------------------------+-----------------------------------|
9634 |            xtrans             |→ Graphic libraries and            |
9635 |                               |applications (graphic/text) → X11R7|
9636 |                               |Libraries                          |
9637 |-------------------------------+-----------------------------------|
9638 |           xvidtune            |→ Graphic libraries and            |
9639 |                               |applications (graphic/text) → X11R7|
9640 |                               |Applications                       |
9641 |-------------------------------+-----------------------------------|
9642 |            xvinfo             |→ Graphic libraries and            |
9643 |                               |applications (graphic/text) → X11R7|
9644 |                               |Applications                       |
9645 |-------------------------------+-----------------------------------|
9646 |             xvkbd             |→ Graphic libraries and            |
9647 |                               |applications (graphic/text)        |
9648 |-------------------------------+-----------------------------------|
9649 |              xwd              |→ Graphic libraries and            |
9650 |                               |applications (graphic/text) → X11R7|
9651 |                               |Applications                       |
9652 |-------------------------------+-----------------------------------|
9653 |           xwininfo            |→ Graphic libraries and            |
9654 |                               |applications (graphic/text) → X11R7|
9655 |                               |Applications                       |
9656 |-------------------------------+-----------------------------------|
9657 |             xwud              |→ Graphic libraries and            |
9658 |                               |applications (graphic/text) → X11R7|
9659 |                               |Applications                       |
9660 |-------------------------------+-----------------------------------|
9661 |           xz-utils            |→ Compressors and decompressors    |
9662 |-------------------------------+-----------------------------------|
9663 |             yajl              |→ Libraries → JSON/XML             |
9664 |-------------------------------+-----------------------------------|
9665 |           yaml-cpp            |→ Libraries → JSON/XML             |
9666 |-------------------------------+-----------------------------------|
9667 |             yasm              |→ Development tools                |
9668 |-------------------------------+-----------------------------------|
9669 |             yavta             |→ Audio and video applications     |
9670 |-------------------------------+-----------------------------------|
9671 |             ympd              |→ Audio and video applications     |
9672 |-------------------------------+-----------------------------------|
9673 |        zd1211-firmware        |→ Hardware handling → Firmware     |
9674 |-------------------------------+-----------------------------------|
9675 |            zeromq             |→ Libraries → Networking           |
9676 |-------------------------------+-----------------------------------|
9677 |             zlib              |→ Libraries → Compression and      |
9678 |                               |decompression                      |
9679 |-------------------------------+-----------------------------------|
9680 |             zlog              |→ Libraries → Logging              |
9681 |-------------------------------+-----------------------------------|
9682 |             zmqpp             |→ Libraries → Networking           |
9683 |-------------------------------+-----------------------------------|
9684 |              znc              |→ Networking applications          |
9685 |-------------------------------+-----------------------------------|
9686 |              zsh              |→ Shell and utilities              |
9687 |-------------------------------+-----------------------------------|
9688 |             zxing             |→ Libraries → Graphics             |
9689 |-------------------------------+-----------------------------------|
9690 |             zyre              |→ Libraries → Networking           |
9691 +-------------------------------------------------------------------+
9692
9693 Chapter 25. List of virtual packages
9694
9695 These are the virtual packages known to Buildroot, with the
9696 corresponding symbols and providers.
9697
9698 +-------------------------------------------------------------------+
9699 |   Virtual    |Symbols                       |Providers            |
9700 |   packages   |                              |                     |
9701 |--------------+------------------------------+---------------------|
9702 |  cryptodev   |BR2_PACKAGE_HAS_CRYPTODEV     |cryptodev-linux,     |
9703 |              |                              |ocf-linux            |
9704 |--------------+------------------------------+---------------------|
9705 |     jpeg     |BR2_PACKAGE_HAS_JPEG          |jpeg, jpeg-turbo     |
9706 |--------------+------------------------------+---------------------|
9707 |    libegl    |BR2_PACKAGE_HAS_LIBEGL        |mesa3d (w/ OpenGL    |
9708 |              |                              |EGL),                |
9709 |              |                              |gpu-amd-bin-mx51     |
9710 |              |                              |(also imx53),        |
9711 |              |                              |gpu-viv-bin-mx6q,    |
9712 |              |                              |nvidia-driver (w/    |
9713 |              |                              |X.org drivers),      |
9714 |              |                              |nvidia-tegra23       |
9715 |              |                              |binaries,            |
9716 |              |                              |rpi-userland,        |
9717 |              |                              |sunxi-mali, ti-gfx   |
9718 |--------------+------------------------------+---------------------|
9719 |    libgl     |BR2_PACKAGE_HAS_LIBGL         |mesa3d (w/ DRI swrast|
9720 |              |                              |driver), mesa3d (w/  |
9721 |              |                              |DRI i915 driver),    |
9722 |              |                              |mesa3d (w/ DRI i965  |
9723 |              |                              |driver), mesa3d (w/  |
9724 |              |                              |DRI radeon driver),  |
9725 |              |                              |xf86-video-imx-viv,  |
9726 |              |                              |nvidia-driver (w/    |
9727 |              |                              |X.org drivers)       |
9728 |--------------+------------------------------+---------------------|
9729 |   libgles    |BR2_PACKAGE_HAS_LIBGLES       |mesa3d (w/ OpenGL    |
9730 |              |                              |ES), gpu-amd-bin-mx51|
9731 |              |                              |(also imx53),        |
9732 |              |                              |gpu-viv-bin-mx6q,    |
9733 |              |                              |nvidia-driver (w/    |
9734 |              |                              |X.org drivers),      |
9735 |              |                              |nvidia-tegra23       |
9736 |              |                              |binaries,            |
9737 |              |                              |rpi-userland,        |
9738 |              |                              |sunxi-mali, ti-gfx   |
9739 |--------------+------------------------------+---------------------|
9740 |  libopenmax  |BR2_PACKAGE_HAS_LIBOPENMAX    |bellagio,            |
9741 |              |                              |nvidia-tegra23       |
9742 |              |                              |binaries,            |
9743 |              |                              |rpi-userland         |
9744 |--------------+------------------------------+---------------------|
9745 |  libopenvg   |BR2_PACKAGE_HAS_LIBOPENVG     |gpu-amd-bin-mx51     |
9746 |              |                              |(also imx53),        |
9747 |              |                              |gpu-viv-bin-mx6q,    |
9748 |              |                              |rpi-userland         |
9749 |--------------+------------------------------+---------------------|
9750 |luainterpreter|BR2_PACKAGE_HAS_LUAINTERPRETER|lua, luajit          |
9751 |--------------+------------------------------+---------------------|
9752 |   powervr    |BR2_PACKAGE_HAS_POWERVR       |ti-gfx               |
9753 |--------------+------------------------------+---------------------|
9754 |     udev     |BR2_PACKAGE_HAS_UDEV          |eudev, systemd       |
9755 +-------------------------------------------------------------------+
9756
9757 Chapter 26. List of host utilities available in Buildroot
9758
9759 The following packages are all available in the menu Host utilities.
9760
9761 +------------------+
9762 |     Packages     |
9763 |------------------|
9764 | host checkpolicy |
9765 |------------------|
9766 |   host cramfs    |
9767 |------------------|
9768 |  host dfu-util   |
9769 |------------------|
9770 |  host dos2unix   |
9771 |------------------|
9772 | host dosfstools  |
9773 |------------------|
9774 |  host e2fsprogs  |
9775 |------------------|
9776 |   host e2tools   |
9777 |------------------|
9778 |  host genext2fs  |
9779 |------------------|
9780 |  host genimage   |
9781 |------------------|
9782 |   host genpart   |
9783 |------------------|
9784 |host lpc3250loader|
9785 |------------------|
9786 |   host mke2img   |
9787 |------------------|
9788 | host mtd, jffs2  |
9789 |  and ubi/ubifs   |
9790 |      tools       |
9791 |------------------|
9792 |   host mtools    |
9793 |------------------|
9794 |       host       |
9795 |omap-u-boot-utils |
9796 |------------------|
9797 |   host openocd   |
9798 |------------------|
9799 |   host parted    |
9800 |------------------|
9801 |  host patchelf   |
9802 |------------------|
9803 |    host pwgen    |
9804 |------------------|
9805 |    host qemu     |
9806 |------------------|
9807 |   host sam-ba    |
9808 |------------------|
9809 |  host squashfs   |
9810 |------------------|
9811 | host sunxi-tools |
9812 |------------------|
9813 |host u-boot tools |
9814 |------------------|
9815 | host util-linux  |
9816 |------------------|
9817 |   host-imx-usb   |
9818 |      loader      |
9819 +------------------+
9820
9821 Chapter 27. Deprecated features
9822
9823 The following features are marked as deprecated in Buildroot due to
9824 them being either too old or unmaintained. They will be removed at
9825 some point, so stop using them. Each deprecated symbol in kconfig
9826 depends on a symbol BR2_DEPRECATED_SINCE_xxxx_xx, which provides an
9827 indication of when the feature can be removed: features will not be
9828 removed within the year following deprecation. For example, a symbol
9829 depending on BR2_DEPRECATED_SINCE_2013_05 can be removed from 2014.05
9830 onwards.
9831
9832 +-------------------------------------------------------------------+
9833 |    Features    |Location                                          |
9834 |----------------+--------------------------------------------------|
9835 |    SuperH64    |Target options → Target Architecture              |
9836 |----------------+--------------------------------------------------|
9837 |     sstrip     |Build options → strip command for binaries on     |
9838 |                |target                                            |
9839 |----------------+--------------------------------------------------|
9840 |  Linux 3.0.x   |Toolchain → Kernel Headers                        |
9841 | kernel headers |                                                  |
9842 |----------------+--------------------------------------------------|
9843 |  Linux 3.11.x  |Toolchain → Kernel Headers                        |
9844 | kernel headers |                                                  |
9845 |----------------+--------------------------------------------------|
9846 |  Linux 3.13.x  |Toolchain → Kernel Headers                        |
9847 | kernel headers |                                                  |
9848 |----------------+--------------------------------------------------|
9849 |  Linux 3.15.x  |Toolchain → Kernel Headers                        |
9850 | kernel headers |                                                  |
9851 |----------------+--------------------------------------------------|
9852 |  Linux 3.16.x  |Toolchain → Kernel Headers                        |
9853 | kernel headers |                                                  |
9854 |----------------+--------------------------------------------------|
9855 |  Linux 3.17.x  |Toolchain → Kernel Headers                        |
9856 | kernel headers |                                                  |
9857 |----------------+--------------------------------------------------|
9858 |   gcc 4.5.x    |Toolchain → GCC compiler Version                  |
9859 |----------------+--------------------------------------------------|
9860 |   gdb 7.7.x    |Toolchain → GDB debugger Version                  |
9861 |----------------+--------------------------------------------------|
9862 |xf86-input-void |Target packages → Graphic libraries and           |
9863 |                |applications (graphic/text) → X11R7 Drivers       |
9864 |----------------+--------------------------------------------------|
9865 |    blackbox    |Target packages → Graphic libraries and           |
9866 |                |applications (graphic/text)                       |
9867 |----------------+--------------------------------------------------|
9868 |    libungif    |Target packages → Libraries → Graphics            |
9869 |----------------+--------------------------------------------------|
9870 |      cups      |Target packages → Networking applications         |
9871 |----------------+--------------------------------------------------|
9872 |foomatic_filters|Target packages → Networking applications         |
9873 |----------------+--------------------------------------------------|
9874 |   gutenprint   |Target packages → Networking applications         |
9875 |----------------+--------------------------------------------------|
9876 |     hplip      |Target packages → Networking applications         |
9877 |----------------+--------------------------------------------------|
9878 |     samba      |Target packages → Networking applications         |
9879 |----------------+--------------------------------------------------|
9880 |custom patch dir|Bootloaders                                       |
9881 |----------------+--------------------------------------------------|
9882 | Custom Network |Bootloaders                                       |
9883 |    Settings    |                                                  |
9884 +-------------------------------------------------------------------+