Difference between revisions of "Buildroot"

From eLinux.org
Jump to: navigation, search
(Important: nfs-utils bumped and upstreamed)
(Important links: Add language package managers)
(5 intermediate revisions by 3 users not shown)
Line 9: Line 9:
 
* [[Buildroot:ReproducibleBuilds | The reproducible builds work]]
 
* [[Buildroot:ReproducibleBuilds | The reproducible builds work]]
 
* [[Buildroot:Top_Level_Parallel_Build | The top-level parallel build work]]
 
* [[Buildroot:Top_Level_Parallel_Build | The top-level parallel build work]]
 +
* [[Buildroot:Security_Vulnerability_Management | Security Vulnerability Management]]
 +
* [[Buildroot:Language_package_managers_and_dependencies | Language package managers and downloading dependencies (go mod, cargo, php compose)]]
  
 
== Developer days ==
 
== Developer days ==
  
 
Upcoming:
 
Upcoming:
 +
* [[Buildroot:RegularVirtualMeeting | Regular virtual meeting]], starting September 2020
  
 +
Past:
 +
* [[Buildroot:VirtualDeveloperDaysSummer2020 | Virtual Buildroot Developer Days]], July 27, August 28, August 29, 2020
 
* [[Buildroot:DeveloperDaysFOSDEM2020 | Buildroot Developer Days]], 3-5 February 2020, Brussels, Belgium, after [http://fosdem.org FOSDEM]
 
* [[Buildroot:DeveloperDaysFOSDEM2020 | Buildroot Developer Days]], 3-5 February 2020, Brussels, Belgium, after [http://fosdem.org FOSDEM]
 
Past:
 
 
* [[Buildroot:DeveloperDaysELCE2019 | Buildroot Developer Days]], 25-27 October 2019, Lyon, France, before [https://events19.linuxfoundation.org/events/embedded-linux-conference-europe-2019/ ELCE]
 
* [[Buildroot:DeveloperDaysELCE2019 | Buildroot Developer Days]], 25-27 October 2019, Lyon, France, before [https://events19.linuxfoundation.org/events/embedded-linux-conference-europe-2019/ ELCE]
 
* [[Buildroot:DeveloperDaysFOSDEM2019 | Buildroot Developer Days]], 4-6 February 2019, Brussels, Belgium, after [http://fosdem.org FOSDEM]
 
* [[Buildroot:DeveloperDaysFOSDEM2019 | Buildroot Developer Days]], 4-6 February 2019, Brussels, Belgium, after [http://fosdem.org FOSDEM]
Line 61: Line 64:
 
==List of forks==
 
==List of forks==
  
 +
* [https://github.com/openil/openil OpenIL]. OpenIL is an open source project based on Buildroot and designed for embedded industrial solution.
 
* [https://github.com/nezticle/RaspberryPi-BuildRoot Bsquask SDK]. A Rasberry-Pi related fork.
 
* [https://github.com/nezticle/RaspberryPi-BuildRoot Bsquask SDK]. A Rasberry-Pi related fork.
 
* [https://github.com/NextThingCo/CHIP-buildroot C.H.I.P. Buildroot] NextThing fork for the 9$ computer
 
* [https://github.com/NextThingCo/CHIP-buildroot C.H.I.P. Buildroot] NextThing fork for the 9$ computer

Revision as of 11:39, 15 September 2020

Buildroot is a nice, simple, and efficient embedded Linux build system.

Important links

Developer days

Upcoming:

Past:

Talks

This section gathers the list of talks given about Buildroot, as well as the slides and video when available.

Past:

Accounting

This section gathers all the income and expenses of the Buildroot project.

Current balance: + €381.04

  • 2015-01-08: + €423.14 : Google paid €423.14 ($500) for mentoring a student for the GSoC 2014
  • 2016-02-07: - € 42.10 : thank-you gift to Niel for helping host the DevDays in Brussels the past few years (T-Shirt: €24.50, Mug: €10.00, shipping: €14.50, rebate: €6.90)

Notes: until we have a legal entity representing Buildroot, that money is held by Yann E. MORIN on behalf the Buildroot project. Accounting is handled in Euro. Update 2017-05-14: funds have been transfered to the association's account.

List of forks

Todo list

This is a list of improvements that we would like to see in buildroot. Feel free to add suggestions here. If you're working on one of these items, put your name and the date behind it, to avoid duplicate work.

There are a number of patches that have been determined to be useful but for various reasons nobody currently has time to review or test them. Anybody, especially a person new to buildroot, is welcome to adopt these patches and resubmit them to the mailing list. These patches can be viewed by looking at the following link - http://patchwork.ozlabs.org/project/buildroot/list/?state=1&delegate=7151

Packages

Note: if you start working on any of these packages, please edit this section to indicate it. If the package is proposed in a bug report, please also update the bug report. Sending a mail to the mailing list also never hurts, you never know that someone else started working on it without following this guideline.

Important

Nice to have

Toolchain

Documentation

Core Buildroot infrastructure

  • Several improvements are possible in the download infrastructure (even after all the improvements that were already done):
    • Rename the downloaded files so they include the package name and version. Special care has to be taken for primary and secondary sites, and for extra downloads (including patches).
    • Split between FOO_SITE and FOO_SOURCE shouldn't be necessary. Or it could be made optional, i.e. make it possible to specify the full path in FOO_SOURCE.
  • It would be nice to add a br-configure script in host/usr/bin for autotools-based packages. Run ...BUILDROOTSDK/usr/bin/br-configure --enable-foo --disable-bar, and the br-configure script would call the ./configure script in the current directory passing all the right options (--host, and all environment variables CC, LD, AS, AR and such).
  • Add instrumentation scripts to analyse package installed files:
    • find libraries with wrong RPATH/RUNPATH tags
    • detect unused .so libs (eg. shared libs that are not DT_NEEDED by anything - note: only detect those libs, don't remove: can be used as plugin (dlopen), or used by an application built outside Buildroot)
  • A script that checks consistency of depends/select for packages. Maybe it can be integrated to the current check-package.

Testing infrastructure

  • Fix run-tests to use a config file for download and output directories, can be overridden in the environment
  • Documentation on how to add a test, including naming convention

TODO items under discussion

Here are some nice-to-have's for which it is not entirely clear if and how they could be implemented:

  • Out-of-tree builds, which allows the package source to be shared between different output directories and between host and target compiles.
  • It would be nice if you could run a buildroot command that prepares a local copy of a package's source, and allows you to generate patches for it later. This could use git or quilt to keep track of the patches.
  • It would be nice if there was a make target to reinstall everything to the target (i.e. remove all the target-installed stamps, remove the root stamp, maybe remove the target too). However, what is missing is the copying of the toolchain support files (libc.so etc.). It's not obvious that this can be done in a reliable way.
  • To facilitate debugging, all packages should be installed to the staging directory. The target directory should in fact be a subset of the staging directory. See the FOSDEM 2013 discussion at http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013, and the discussion around patch http://patchwork.ozlabs.org/patch/252718/. This is however a significant change in Buildroot, so probably difficult to implement, and will raise a number of quite complicated questions.

Web site

Do we want to extend https://buildroot.org/support.html to promote consultants or companies that are involved in the development of Buildroot? Something like https://www.yoctoproject.org/community/consultants . What would be the selection criteria?