The 2017.02 version of Buildroot has been released recently, and as usual Bootlin has been a significant contributor to this release. A total of 1369 commits have gone into this release, contributed by 110 different developers.
Before looking in more details at the contributions from Bootlin, let’s have a look at the main improvements provided by this release:
- The big announcement is that 2017.02 is going to be a long term support release, maintained with security and other important fixes for one year. This will allow companies, users and projects that cannot upgrade at each Buildroot release to have a stable Buildroot version to work with, coming with regular updates for security and bug fixes. A few fixes have already been collected in the 2017.02.x branch, and regular point releases will be published.
- Several improvements have been made to support reproducible builds, i.e the capability of having two builds of the same configuration provide the exact same bit-to-bit output. These are not enough to provide reproducible builds yet, but they are a piece of the puzzle, and more patches are pending for the next releases to move forward on this topic.
- A package infrastructure for packages using the waf build system has been added. Seven packages in Buildroot are using this infrastructure currently.
- Support for the OpenRISC architecture has been added, as well as improvements to the support of ARM64 (selection of ARM64 cores, possibility of building an ARM 32-bit system optimized for an ARM64 core).
- The external toolchain infrastructure, which was all implemented in a single very complicated package, has been split into one package per supported toolchain and a common infrastructure. This makes it much easier to maintain.
- A number of updates has been made to the toolchain components and capabilities: uClibc-ng bumped to 1.0.22 and enabled for ARM64, mips32r6 and mips64r6, gdb 7.12.1 added and switched to gdb 7.11 as the default, Linaro toolchains updated to 2016.11, ARC toolchain components updated to arc-2016.09, MIPS Codescape toolchains bumped to 2016.05-06, CodeSourcery AMD64 and NIOS2 toolchains bumped.
- Eight new defconfigs for various hardware platforms have been added, including defconfigs for the NIOSII and OpenRISC Qemu emulation.
- Sixty new packages have been added, and countless other packages have been updated or fixed.
More specifically, the contributions from Bootlin have been:
- Thomas Petazzoni has handled the release of the first release candidate, 2017.02-rc1, and merged 742 patches out of the 1369 commits merged in this release.
- Thomas contributed the initial work for the external toolchain infrastructure rework, which has been taken over by Romain Naour and finally merged thanks to Romain’s work.
- Thomas contributed the rework of the ARM64 architecture description, to allow building an ARM 32-bit system optimized for a 64-bit core, and to allow selecting specific ARM64 cores.
- Thomas contributed the
raspberrypi-usbboot
package, which packages a host tool that allows to boot a RaspberryPi system over USB. - Thomas fixed a large number of build issues found by the project autobuilders, contributing 41 patches to this effect.
- Mylène Josserand contributed a patch to the X.org server package, fixing an issue with the i.MX6 OpenGL acceleration.
- Gustavo Zacarias contributed a few fixes on various packages.
In addition, Bootlin sponsored the participation of Thomas to the Buildroot Developers meeting that took place after the FOSDEM conference in Brussels, early February. A report of this meeting is available on the eLinux Wiki.
The details of Bootlin contributions:
- Mylene Josserand (1)
- Thomas Petazzoni (111)
- classpath: only allow on supported architectures
- openocd: avoid documentation rebuild to fix build issues
- assimp: fix gcc version condition
- assimp: work around gcc bug on SuperH
- assimp: remove dead “depends on” dependency
- mplayer: not supported on or1k
- python-libconfig: disable on musl
- libuv: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4
- htop: work-around old uClibc issue when static linking
- pkg-cmake: pass
_CONF_ENV for the target configure step - ncurses: remove BR2_PACKAGE_NCURSES_TARGET_{FORM, MENU, PANEL} options
- util-linux: re-add
_AUTORECONF = YES - btrfs-progs: don’t use
with uClibc - trousers: update ARC comment
- gcc: add patches for or1k specific gcc version
- trousers: disable on ARC
- libraw: fix build with old glibc versions
- tcping: fix upstream location
- postgresql: disable spinlocks on openrisc
- mesa3d-headers: remove installation of OpenVG headers
- mesa3d-headers: fix installation of dri.pc
- musl: no SSP on i386 and PowerPC
- cups: add host-pkgconf as a dependency
- cbootimage: disable on musl
- wget: bump to 1.19.1 to fix build issue
- xfsprogs: needs thread support
- docs/website/news.html: fix link to 2017.02-rc1 tarball
- docs/website: update release announcement with mailing list link
- CHANGES: final updates before 2017.02-rc1
- Prepare for 2017.02-rc1
- CHANGES: prepare for 2017.02-rc1
- toolchain/toolchain-common.in: fix definition of BR2_TOOLCHAIN_HAS_GCC_BUG_64735
- systemd: add missing dhcp.network file
- openntpd: fix Config.in comment dependency
- DEVELOPERS: add Thomas De Schapheleire for opkg-utils
- docs/website/sponsors.html: Google and Mind sponsors of FOSDEM 2017 meeting
- DEVELOPERS: add Ezequiel for rtl8723bs
- DEVELOPERS: add David Bachelart for the jsmn package
- janus-gateway: add dependency of streaming plugin on headers >= 3.9
- DEVELOPERS: add Yann for libgsm
- DEVELOPERS: add David Bachelart for sslh
- sngrep: gnutls support also needs libgcrypt
- DEVELOPERS: update Adam Duskett entry
- DEVELOPERS: add entry for the udpxy package
- linux-pam: adjust login pam file for SELinux
- jack2: fix NGREG build failures
- xdriver_xf86-video-sis: use += instead of = for CONF_OPTS assignment
- DEVELOPERS: add Jörg Krause for bctoolbox
- util-linux: fix ncurses/wchar handling
- xfsprogs: disable on musl
- util-linux: attempt to fix host-util-linux build
- DEVELOPERS: add Eric Le Bihan for package/skalibs/
- uclibc: add patch to fix
- xfsprogs: remove comment about uClibc specific options
- xfsprogs: bump to version 4.8.0
- xfsprogs: turn patches into proper Git patches
- oprofile: needs libpfm4 on powerpc64(le)
- DEVELOPERS: add Romain Naour for linux-syscall-support
- Revert “package/aespipe: fix host compile”
- jpeg: fix typo introduced when fixing the indentation
- DEVELOPERS: add darkhttpd package to Eric Le Bihan
- DEVELOPERS: add Clayton Shotwell for policycoreutils
- DEVELOPERS: regroup the two entries for Clayton Shotwell
- DEVELOPERS: add Ezequiel Garcia as developer for mimic package
- rpm: add optional dependencies on elfutils and binutils
- rpm: add patches to fix bfd.h related build issues
- madplay: fix build on noMMU platforms
- uhttpd: add patch to remove -Werror
- lttng-tools: fix build on musl
- pru-software-support: fix legal info again
- php: disable FPM interface on Sparc
- cmake: adjust dependencies added for libuv
- Makefile: move SED definition into the main Makefile
- sysklogd: fix build on musl
- raspberrypi-usbboot: new package
- DEVELOPERS: remove Tom Sparks
- toolchain-external-linaro-{arm,armeb}: allow on ARMv8
- arch/Config.in.arm: add Cortex-A57 and Cortex-A72
- arch/Config.in.arm: specify ABI for ARM64
- arch/Config.in.arm: add FPU related options for ARMv8 cores
- arch/Config.in.arm: add BR2_ARM_CPU_ARMV8
- arch/Config.in.arm: prepare addition of 64 bits cores
- arch: merge Config.in.aarch64 into Config.in.arm
- vim: be more careful when removing the documentation
- pru-software-support: fix licensing information
- DEVELOPERS: add developer for nginx-dav-ext
- nginx: group the external modules enabling logic
- erlang: odbc support requires thread support
- DEVELOPERS: add Waldemar as developer for uclibc-ng-test
- lttng-libust: needs autoreconf
- lttng-babeltrace: remove patch applied upstream
- cmake: pass HOST_CONFIGURE_OPTS at configure time
- toolchain-external-arc: new package
- toolchain-external-custom: new package
- toolchain-external-musl-cross: new package
- toolchain-external-codesourcery-x86: new package
- toolchain-external-codesourcery-sh: new package
- toolchain-external-codesourcery-niosII: new package
- toolchain-external-codescape-mti-mips: new package
- toolchain-external-codescape-img-mips: new package
- toolchain-external-codesourcery-mips: new package
- toolchain-external-blackfin-uclinux: new package
- toolchain-external-linaro-armeb: new package
- toolchain-external-codesourcery-arm: new package
- toolchain-external-linaro-arm: new package
- toolchain-external-codesourcery-aarch64: new package
- toolchain-external-linaro-aarch64: new package
- xmlstarlet: use $() to reference make variables instead of ${}
- snowball-{hdmiservice, init}: remove packages
- webrtc-audio-processing: refactor architecture dependency as a blind option
- fdk-aac: refactor architecture dependency as a blind option
- Gustavo Zacarias (5)