2020.08, released September 1st, 2020

	Various fixes.

	Updated/fixed packages: am33x-cm3, avahi, bluez-tools,
	busybox, chocolate-doom, collectd, dhcp, docker-cli, domoticz,
	gobject-introspection, graphite2, haproxy, ibm-sw-tpm2,
	imagemagick, libeXosip2, libressl, lxc, mbedtls, menu-cache,
	mongodb, mosquitto, nvidia-driver, paho-mqtt-c, pixz,
	postgresql, python-django, rtty, squid, stress-ng, systemd,
	trousers, uclibc, wireshark, wolfssl, zbar

2020.08-rc3, released August 28th, 2020

	Fixes all over the tree.

	Infrastructure: Ensure RPATH entries that may be needed for
	dlopen() are not dropped by patchelf.

	Toolchain: Drop old GCC 6 based external Sourcery AMD64
	toolchain.

	Updated/fixed packages: assimp, davfs2, dillo, glibc,
	gnuradio, hostapd, ibm-sw-tpm2, ipmitool, json-c, libroxml,
	linux, mender, netopeer2, openal, openjpeg, python-matplotlib,
	ripgrep, shadowsocks-libev, trousers, xlib_libX11,
	xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#13141: Target-finalize fail with "depmod: ERROR: Bad version passed"

2020.08-rc2, released August 24th, 2020

	Fixes all over the tree, including a number of fixes for
	compilation with GCC-10.

	Toolchain: Disallow building uClibc-ng for RISC-V 64-bit,
	because of issues with a missing __riscv_flush_icache()
	implementation.

	Defconfigs: CI20: Use mainline Linux and U-boot. Update
	Microchip sama5d27_wlsom1_ek_mmc_dev to use bluez5-utils
	instead of (the removed) legacy bluez-utils

	Updated/fixed packages: 18xx-ti-utils, aircrack-ng, apache,
	atest, bandwidthd, bellagio, bind, bird, bluez-alsa, boost,
	c-periphery, capnproto, chrony, collectd, cpio, cvs,
	dieharder, domoticz, dovecot, dovecot-pigeonhole, drbd-utils,
	dump1090, efl, elixir, f2fs-tools, feh, fluidsynth, fping,
	gdbm, gdk-pixbuf, ghostscript, gst1-plugins-bad,
	gstreamer1-editing-services, htop, ibm-sw-tpm2, ifplugd,
	iftop, igd2-for-linux, ima-evm-utils, iprutils, iputils,
	keepalived, kmsxx, libabseil-cpp, libcamera, libcurl,
	libfuse3, libnss, librtlsdr, libubox, libunwind, live555,
	lttng-tools, luabitop, mender-artifact, minizip,
	mjpg-streamer, mpd, mpv, mtd, ncftp, open-lldp, openal,
	opencv, opencv3, openfpgaloader, optee-os, owfs, php,
	pistache, prosody, pulseview, python-decorator,
	python-gunicorn, python-rpi-gpio, python-spidev,
	python3-decorator, python3-mako, python3-pyselftools, qt5,
	qt5webengine, rauc, redis, ripgrep, rtl8188eu, rtl8821au,
	setools, smstools3, supertux, tftpd, tpm2-abrmd,
	wpa_supplicant, xen, xlib_libX11, xserver_xorg-server

	New packages: python3-cython, python3-pycryptodomex

	Issues resolved (http://bugs.uclibc.org):

	#12876: nodejs fails to build when host-icu has been built before
	#13111: python-gunicorn: missing dependency on python-setuptools
	#13121: wpa_supplicant fails to build without libopenssl enabled
	#13146: raspberrypi3_defconfig: "Inappropriate ioctl for device"..
	#13156: package live555 new license
	#13166: python-rpi-gpio: does not work against aarch64, unint..

2020.08-rc1, released August 6th, 2020

	Toolchain:

	- GCC 10.x added, GCC 9.x is the default
	- binutils 2.34 added, binutils 2.33 is the default, binutils
          2.31 removed
	- glibc updated to 2.31
	- ARC toolchain components updated to 2020.03-release.
	- Enable uClibc-ng usage for RISC-V 64-bit

	Infrastructure:

	- qmake-package was fixed to be compatible with
          BR2_PER_PACKAGE_DIRECTORIES
	- complete rewrite of the Gitlab CI Yaml configuration file,
          now generated directly by the Gitlab CI pipeline itselfs

	Misc:

	- cargo and cargo-bin packages removed, as cargo is now part
          of Rust itself

	Filesystem: ubinize configuration files can now use
	BINARIES_DIR to refer to the $(O)/images directory.

	New packages: bitwise, earlyoom, fuse-overlayfs, gloox,
	kodi-pvr-octonet, kodi-pvr-zattoo, libabseil-cpp, libcutl,
	libnids, libnpupnp, libodb, libodb-boost, libodb-mysql,
	libodb-pgsql, mbpfan, netopeer2, odb, parprouted,
	python-colorzero, python-gpiozero, python-pybind, python-yatl,
	python3-decorator, qt5quicktimeline, resiprocate, ttyd,
	unclutter-xfixes, urandom-scripts,

	New defconfigs: bananapi_m2_zero, freescale_imx8mnevk,
	globalscale_espressobin, imx6ullevk,
	microchip_sama5d27_wlsom1_ek, rock_pi_4, rock_pi_n10

	Removed packages: cargo, cargo-bin,
	kodi-peripheral-steamcontroller

	Issues resolved (http://bugs.uclibc.org):

	#12941: Python GObject fails to build when using  BR2_PER_PACKAGE_DIRECTORIES
	#12946: Grub: Decompressor is too big.
	#12986: Mtools: Error converting to codepage 850
	#13001: openjdk-bin replaces libfreetype.so from  host-freetype
	#13011: Incorrect selection of gcc version
	#13021: Minor code error when building granite-0.4.1
	#13026: rpi-firmware: must not rename start files
	#13046: Optimize for fast -Ofast is not compliant
	#13081: host-e2fsprogs attempts to create udev  rules.d on build host if not exists
	#13101: BR audit2allow support

2020.05.2, released August 29th, 2020

	Important / security related fixes.

	Infrastructure: Ensure RPATH entries that may be needed for
	dlopen() are not dropped by patchelf.

	BR_VERSION_FULL/setlocalversion (used by make print-version
	and /etc/os-release): Properly handle local git tags

	Updated/fixed packages: apache, assimp, at91bootstrap3, bind,
	boost, busybox, capnproto, cegui, chrony, collectd, cpio,
	cryptsetup, cups, cvs, dbus, docker-engine, domoticz, dovecot,
	dovecot-pigeonhole, dropbear, efl, elixir, f2fs-tools, ffmpeg,
	gd, gdk-pixbuf, ghostscript, glibc, gnuradio, grub2,
	gst1-plugins-bad, gstreamer1-editing-services, hostapd,
	ibm-sw-tpm2, iputils, jasper, json-c, libcurl, libressl,
	libwebsockets, linux, live555, mesa3d, mongodb, mosquitto,
	mpv, nodejs, opencv, opencv3, openfpgaloader, openjpeg,
	patchelf, perl, php, postgresql, prosody, python-django,
	python-gunicorn, python-matplotlib, ripgrep, rtl8188eu,
	rtl8821au, ruby, shadowsocks-libev, squid, systemd,
	tpm2-abrmd, tpm2-tools, trousers, uboot, webkitgtk, wireshark,
	wolfssl, wpa_supplicant, wpewebkit, xen, xlib_libX11,
	xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#12876: nodejs fails to build when host-icu has been built before
	#13111: python-gunicorn: missing dependency on python-setuptools
	#13121: wpa_supplicant fails to build without libopenssl enabled
	#13141: Target-finalize fail with "depmod: ERROR: Bad version passed"
	#13156: package live555 new license

2020.05.1, released July 25th, 2020

	Important / security related fixes.

	Toolchain:
	- Make external toolchain version check also work for
	  toolchains configured with --with-gcc-major-version-only

	- Do not handle SOURCE_DATE_EPOCH in toolchain wrapper if the
	  compiler supports it, fixing an issue with precompiled
	  headers

	- Ensure debug libs from external toolchains are not installed
          into target if debugging is disabled

	Download:
	- Correct reproducibility issue in handling of git submodules
	  for older git versions.

	- Fix file locking over NFS

	fs: Ensure cpio archive element order is reproducible

	Br2-external: Fix error reporting for invalid br2-external trees

	Per-package:
	- Fix an issue with python3 sysconfig data not getting
	correctly expanded

	- Fix per-package building for packages using the qmake
          infrastructure

	Updated/fixed packages: a10disp, asterisk, bind, brltty,
	cdrkit, clamav, cryptodev-linux, dbus, docker-cli,
	docker-engine, dvb-apps, e2fsprogs, exim, exiv2, freerdp, gdb,
	gdk-pixbuf, gerbera, gnutls, go, granite, grub2, gssdp,
	gst1-plugins-good, gst1-plugins-ugly, gupnp, intel-microcode,
	iproute2, irrlicht, iwd, jq, kodi, libcamera, libcec,
	libconfuse, libcurl, libevdev, libhttpserver, libmicrohttpd,
	libnss, libressl, libvncserver, libxml2, libxmlrpc, lxc,
	mbedtls, mediastreamer, mesa3d, meson, minizip, mongodb,
	mtools, mutt, nano, network-manager, nghttp2, ngircd, nodejs,
	ntp, open-plc-utils, open2300, openjdk-bin, openssh,
	oracle-mysql, paho-mqtt-c, pango, php, poco, prosody, putty,
	python-greenlet, python-urllib3, python-validators, python3,
	readline, redis, rpi-firmware, rtl8821au, samba4, sdl2,
	sqlite, squid, strace, sunxi-mali-mainline-driver, syslog-ng,
	systemd, tcpreplay, tinydtls, upmpdcli, upx, vlc, webkitgtk,
	wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit,
	x11vnc, znc, zstd

	Issues resolved (http://bugs.uclibc.org):

	#12941: Python GObject fails to build when using BR2_PER_PACKAGE_..
	#12946: Grub: Decompressor is too big.
	#12986: Mtools: Error converting to codepage 850
	#13001: openjdk-bin replaces libfreetype.so from host-freetype
	#13011: Incorrect selection of gcc version
	#13021: Minor code error when building granite-0.4.1
	#13026: rpi-firmware: must not rename start files
	#13031: nodejs: RangeError at new ArrayBuffer()
	#13046: Optimize for fast -Ofast is not compliant

2020.05, released June 1st, 2020

	Various fixes.

	Updated/fixed packages: arm-trusted-firmware, gcc, mp4v2, fmc,
	fmlib, glib-networking, libusb-compat, linux, qt5webengine,
	sysrepo, wampcc, xen

2020.05-rc3, released May 29th, 2020

	Fixes all over the tree.

	Infrastructure: Support checking download hashes for packages
	coming from Subversion.

	Defconfigs: Increase boot partition size to 64MB for Freescale
	boards to allow space for bigger kernels.

	Updated/fixed packages: audit, bind, dovecot, efl, erlang,
	ffmpeg, fio, gerbera, gnupg, leveldb, lrzip, ltrace, matio,
	mesa3d, mp4v2, prosody, qemu, qt5declarative, speexdsp,
	systemd, tremor, uboot-tools, unbound, wireshark

	Removed packages: wiringpi

	Issues resolved (http://bugs.uclibc.org):

	#12361: Init system (systemd) kills login on Raspberry Pi Zero
	#12686: recipe for target 'install_dev' failed (libcrypto.so..)

2020.05-rc2, released May 22nd 2020

	Fixes all over the tree.

	U-Boot: Support building with Python 3.x instead of Python
	2.x. Since U-Boot 2020.01, various U-Boot build scripts use
	Python 3.x instead of Python 2.x, so add an option to pull in
	host-python3 rather than host-python. Also fix a number of
	defconfigs to use this new option.

	Updated/fixed packages: apparmor, binutils, bison, brltty,
	c-icap, cegui, checkpolicy, clamav, crda, cvs, docker-cli,
	docker-engine, domoticz, elf2flt, exfatprogs, fakeroot,
	ffmpeg, freerdp, gcc, glibc, gnuconfig, irrlicht, kmod,
	libexif, libpam-tacplus, libssh2, libv4l, libvncserver,
	localedef, lrzip, mariadb, matchbox, mbuffer, mesa3d,
	mesa3d-headers, meson, netsniff-ng, openldap, openocd,
	optee-os, p7zip, paho-mqtt-c, php, piglit, pigz,
	python-argon2-cffi, python-attrs, python-future,
	python-markdown, python-pycryptodomex, python-pyqt5, qt5base,
	rpi-firmware, rustc, squashfs, squid, stella, suricata,
	systemd, uacme, uclibc, util-linux, vboot-utils

	New packages: python3-pyelftools

	Removed packages: ezxml, mtdev2tuio, python-pycrypto

	Issues resolved (http://bugs.uclibc.org):

	#10551: PowerPC SPE and Musl
	#12256: package tar is outdated (1.29 is 3 years old)
	#12271: python-iptables runtime dependencies
	#12321: host-generic-package: PKG_DL_OPTS not used for host package
	#12391: CMake-based host package fails to include output/host/include
	#12431: ethernet no detected on nanopi neo 2
	#12521: RISCV RV32IA selected, RV64GC output
	#12586: avahi failure
	#12596: host-e2fsprogs: tune2fs incompatibility on older glibc..
	#12611: ntp hash is not matching with upstream 4.2.8p13
	#12626: PHP missing header files within 2020.02
	#12631: glibc support Power-PC SPE
	#12656: bison fails to relocate with relocate-sdk.sh
	#12661: cups problems in buildroot
	#12686: recipe for target 'install_dev' failed (libcrypto.so:..
	#12691: host-rust build fails
	#12761: Buildroot fails when building GCNano binaries for the STM..
	#12786: Systemd spawns two getty processes when the getty port..
	#12806: There are multiple issues in buildroot that faults cups..
	#12826: nodejs-12.16.1: error: 'uv_sleep' was not declared in..
	#12831: RPI-firmware package: DTB-overlay dependency
	#12836: libunwind: package does not show up in menuconfig for..
	#12841: util-linux/sfdisk 2.35.1 fails on sector-size header
	#12866: should we be disabling bash executable path caching?
	#12886: GMP built in wrong order (?)
	#12891: QEMU, libvirt-bin, qemu-kvm Package Support required
	#12901: GStreamer doesn't build on 2020-05 rc1 with GObject..
	#12906: qt PrefixPath is wrong on 2020.05-rc1
	#12921: nodejs-12.16.1: error: overriding 'virtual icu_65::..

2020.05-rc1, released May 7th 2020

	Addition of support for gobject-introspection: both the
	gobject-introspection package itself, but also introspection
	support was enabled in a number of other packages.

	Support for Qt 5.6 was dropped as its support was dropped
	upstream, only one version of Qt is supported at the moment:
	Qt 5.14.2.

	Addition of support for the apparmor Linux security module, by
	adding the necessary user-space packages.

	Addition of a qmake package infrastructure, now used by most
	Qt-related packages.

	The Luarocks package infrastructure has been extended to
	support build host packages.

	The package infrastructure was improved to allow each package
	to indicate the Linux kernel configuration options it needs.

	Addition of support for generating filesystem images using the
	EROFS filesystem.

	The logic that calculates the list of files installed by each
	package was reworked to be compatible with the top-level
	parallel build functionality.

	Addition of a package for a pre-compiled ARM32 bare-metal
	toolchain, which can be used to build ARM32 code in ARM64
	configurations, such as firmware/bootloader code.

	The Qemu defconfigs are now boot-tested in Qemu as part of the
	Gitlab continuous integration.

	Toolchain: gcc 9.x bumped to 9.3.0, gcc 8.x bumped to 8.4.0,
	gdb bumped to 8.3.1.

	New packages: apcupsd, apparmor, arm-gnu-a-toolchain, bearssl,
	belle-sip, belr, cage, chartjs, erofs-utils, exfatprogs,
	gobject-introspection, ibm-sw-tpm2, imx-seco, jbig2dec,
	libapparmor, libiberty, libfuse3, libtextstyle, libudfread,
	libuhttpd, libuwsc, lua-lyaml, matio, mbuffer, netdata,
	openfpgaloader, perl-i18n, perl-locale-maketext-lexicon,
	perl-lwp-protocol-https,
	perl-mojolicious-plugin-authorization,
	perl-mojolicious-plugin-cspheader,
	perl-mojolicious-plugin-i18n,
	perl-mojolicious-plugin-securityheader, perl-mozilla-ca,
	perl-path-class, pistache, pkcs11-helper, prelink-cross,
	python-argon2-cffi, python-canopen, python-cbor2,
	python-filelock, python-flatbuffers, python-greenlet,
	python-modbus-tk, python-pyalsa, python-pysftp, python-regex,
	python-snappy, rtty, tinyproxy, udev-gentoo-scripts, unbound,
	vuejs, wlroots.

	New defconfigs: freescale_imx6ullevk, freescale_imx8qmmek,
	nanopi_neo4, nanopi_r1, nitrogen8mm, nitrogen8mn, olpc_xo1,
	olpc_xo175, roc_rk3399_pc, stm32mp157a_dk1, zynq_qmtech

	Issues resolved (http://bugs.uclibc.org):

	#10386: Add an option to put all compiled executables that
		show up on target/ in staging/ as well
	#11866: iniramfs file system fails to boot using  Grub on EFI x86_64
	#12666: Doesn't pick up a custom bash profile
	#12696: Uboot 2020.01 Problem loading Linux kernel  on Nano PI NEO
	#12701: [patch] wpa_supplicant must depend on  openssl
	#12711: host-localedef 2.30-20 fails to compile on  fedora 32 (gcc 10.0.1)
	#12716: bio.h not found
	#12726: systemctl preset-all failed for	 ctrl-alt-del.target
	#12731: rtl8188eu not buildung for banana pi M1	 (glib, systemd, 4.18.12)
	#12746: "sysdig" package description points to
		http://sysdig.org, which bounces to malware site
	#12751: OpenJdk package installation issues on	target
	#12796: Update OpenSSL to Version 1.1.1g to patch  CVE-2020-1967
	#12811: bootstrap stuck and no login prompt

2020.02.5, released August 29th, 2020

	Important / security related fixes.

	Infrastructure: Ensure RPATH entries that may be needed for
	dlopen() are not dropped by patchelf.

	BR_VERSION_FULL/setlocalversion (used by make print-version
	and /etc/os-release): Properly handle local git tags

	Updated/fixed packages: apache, at91bootstrap3, bind, boost,
	busybox, capnproto, chrony, collectd, cpio, cryptsetup, cups,
	cvs, dbus, docker-engine, domoticz, dovecot,
	dovecot-pigeonhole, dropbear, efl, elixir, f2fs-tools, ffmpeg,
	gd, gdk-pixbuf, ghostscript, glibc, grub2, gst1-plugins-bad,
	hostapd, iputils, jasper, json-c, libcurl, libwebsockets,
	linux, live555, mesa3d, mosquitto, mpv, nodejs, opencv,
	opencv3, openjpeg, patchelf, perl, php, postgresql,
	python-django, python-gunicorn, python-matplotlib, ripgrep,
	rtl8188eu, rtl8821au, ruby, shadowsocks-libev, squid,
	tpm2-abrmd, tpm2-tools, trousers, uacme, webkitgtk, wireshark,
	wolfssl, wpa_supplicant, wpewebkit, xen, xlib_libX11,
	xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#12876: nodejs fails to build when host-icu has been built before
	#13111: python-gunicorn: missing dependency on python-setuptools
	#13121: wpa_supplicant fails to build without libopenssl enabled
	#13141: Target-finalize fail with "depmod: ERROR: Bad version passed"
	#13156: package live555 new license

2020.02.4, released July 26th, 2020

	Important / security related fixes.

	Toolchain:
	- Make external toolchain version check also work for
	  toolchains configured with --with-gcc-major-version-only

	- Do not handle SOURCE_DATE_EPOCH in toolchain wrapper if the
	  compiler supports it, fixing an issue with precompiled
	  headers

	- Ensure debug libs from external toolchains are not installed
          into target if debugging is disabled

	Download:
	- Correct reproducibility issue in handling of git submodules
	  for older git versions.

	- Fix file locking over NFS

	fs: Ensure cpio archive element order is reproducible

	Br2-external: Fix error reporting for invalid br2-external trees

	Per-package:
	- Fix an issue with python3 sysconfig data not getting
	correctly expanded

	- Fix per-package building for packages using the qmake
          infrastructure

	Updated/fixed packages: a10disp, asterisk, bind, cdrkit,
	checkpolicy, clamav, dbus, docker-cli, docker-engine,
	dvb-apps, e2fsprogs, exim, exiv2, freerdp, gnutls, go, grub2,
	gssdp, gst1-plugins-good, gst1-plugins-ugly, gupnp,
	intel-microcode, iproute2, irrlicht, iwd, jq, kodi, libcamera,
	libconfuse, libcurl, libglib2, libhttpserver, libmicrohttpd,
	libopenssl, libvncserver, libxml2, libxmlrpc, lxc, mbedtls,
	mesa3d, meson, mongodb, mtools, mutt, nghttp2, ngircd, nodejs,
	ntp, open-plc-utils, open2300, openjdk-bin, openssh,
	oracle-mysql, paho-mqtt-c, pcre, php, poco, prosody, putty,
	python-twisted, python-urllib3, python-validators, python3,
	qt5xmlpatterns, redis, rpi-firmware, rtl8821au, samba4, sdl2,
	sqlite, squid, syslog-ng, systemd, tcpreplay, tinydtls,
	upmpdcli, upx, vlc, webkitgtk, wireguard-linux-compat,
	wireshark, wpebackend-fdo, wpewebkit, zstd

	Issues resolved (http://bugs.uclibc.org):

	#12941: Python GObject fails to build when using BR2_PER_PACKAGE_..
	#12946: Grub: Decompressor is too big.
	#12986: Mtools: Error converting to codepage 850
	#13001: openjdk-bin replaces libfreetype.so from host-freetype
	#13011: Incorrect selection of gcc version
	#13026: rpi-firmware: must not rename start files
	#13031: nodejs: RangeError at new ArrayBuffer()
	#13046: Optimize for fast -Ofast is not compliant

2020.02.3, released June 3rd, 2020

	Important / security related fixes.

	Fix various build issues of host packages on hosts using GCC
	10.

	Updated/fixed packages: arm-trusted-firmware, audit, bind,
	binutils, bison, clamav, crda, dovecot, dtc, efl, elf2flt,
	erlang, fakeroot, ffmpeg, fmc, fmlib, freerdp, gcc, git,
	glib-networking, gnupg, leveldb, libexif, libssh2,
	libusb-compat, linux-headers, lrzip, ltrace, mariadb, mesa3d,
	mp4v2, openldap, openocd, perl, php, prosody,
	python-pycryptodomex, python-pyqt5, qemu, rpi-firmware, rustc,
	speexdsp, sysrepo, systemd, tremor, vboot-utils, wireshark,
	xen

	Removed packages: python-pycrypto

	Issues resolved (http://bugs.uclibc.org):

	#12361: Init system (systemd) kills login on Raspberry Pi Zero
	#12656: bison fails to relocate with relocate-sdk.sh
	#12671: leveldb won't detect that snappy is present (static..
	#12691: host-rust build fails
	#12831: RPI-firmware package: DTB-overlay dependency

2020.02.2, released May 12th, 2020

	Important / security related fixes.

	Musl: Disallow on PPC64 cores without AltiVec support
	(E.G. e5500).

	fs/cpio: Correctly handle booting with 'console='

	release: Ensure temporary .br2-external.* files are not
	included in the release tarball

	Defconfigs: Fix various mistyped config options, or config
	options where the dependencies were no longer met.

	Updated/fixed packages: apache, azure-iot-sdk-c, binutils,
	boinc, c-ares, cvs, docker-cli, docker-containerd,
	docker-engine, domoticz, e2fsprogs, efl, evtest, exim, ffmpeg,
	freerdp, gcc, gflags, glibc, gnuconfig, haproxy, imx-gpu-2d,
	irrlicht, jpeg kodi-pvr-vuplus, libarchive, libcoap,
	libfpm-extra, libglib2, libhtp, libid3tag, libinput, libmad,
	libopenssl, libsepol, libssh, libv4l, libvncserver, libwpe,
	localedef, mariadb, matchbox, mbedtls, mc, mesa3d-headers,
	meson, midori, msgpack, netsnmp, nginx, ogre, openjdk,
	openldap, openvpn, p7zip, paho-mqtt-c, php, polkit, python,
	python-attrs, python-crossbar, python-dpkt, python-flask,
	python-future, python-iptables, python-jedi, python-markdown2,
	python3, qemu, qpdf, qt5, samba4, squashfs, squid, strongswan,
	suricata, tzdata, util-linux, vlc, wget, webkitgtk,
	wireguard-linux-compat, wireshark, wpebackend-fdo, wpewebkit,
	zic

	Issues resolved (http://bugs.uclibc.org):

	#11866: initramfs file system fails to boot using Grub on EFI x86_64
	#12271: python-iptables runtime dependencies
	#12726: systemctl preset-all failed for ctrl-alt-del.target
	#12751: OpenJdk package installation issues on target
	#12796: Update OpenSSL to Version 1.1.1g to patch CVE-2020-1967
	#12811: bootstrap stuck and no login prompt
	#12841: util-linux/sfdisk 2.35.1 fails on sector-size header

2020.02.1, released April 10th, 2020

	Important / security related fixes.

	core: Also fixup /lib references in libtool .la files, similar
	to how it is done for /usr/*.

	Various fixes for builds with per-package target/host
	directories.

	toolchain: Fix kernel headers validation check for external
	toolchains. Fix make 4.3+ compatibility in external toolchain
	logic.

	fs/initramfs: fix show-info so it also shows the usual
	rootfs-related variables.

	Updated/fixed packages: arm-trusted-firmware, barebox-aux,
	bluez5_utils, bubblewrap, busybox, civetweb, cog, collectd,
	ffmpeg, gcc, gnutls, gssdp, gvfs, haproxy, hiredis, hostapd,
	kmscube, kodi-screensaver-rsxs, libical, libinput, libexif,
	libopenssl, libsndfile, linux, linux-tools, llvm, localedef,
	mcrypt, mesa3d, meson, monit, nftables, ntp, opencv3,
	oprofile, php, pinentry, polkit, pure-ftpd, python-pyyaml,
	qt5, quagga, radvd, rcw, redis, rocksdb, samba4, screen,
	sdbusplus, swupdate, sysdig, sysklogd, syslinux, syslog-ng,
	tor, tslib, uacme, util-linux, vala, vlc,
	wireguard-linux-compat, wireguard-tools, wireshark,
	wpa_supplicant, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#12711: host-localedef 2.30-20 fails to compile on fedora 32
	#12746: "sysdig" package description points to http://sysdig.org, ..

2020.02, released March 8th, 2020

	Various fixes.

	br2-external: Fix compatibility with make 4.3+

	Updated/fixed packages: bash, bcm2835, binutils, cups,
	erlang-p1-acme, fbgrab, gr-osmosdr, gst1-plugins-base,
	gst1-validate, gstreamer1, guile, jhead, libdrm, libevdev,
	libinput, libnss, libsndfile, libvncserver, linux-firmware,
	mesa3d, nodejs, openjdk-bin, openvmtools, optee-test, patch,
	php, piglit, pppd, python-django, qemu, qt5base, ruby,
	ser2net, swupdate, thrift, zziplib

	Removed packages: classpath, jamvm

	Issues resolved (http://bugs.uclibc.org):

	#12606: fbgrab location has changed

2020.02-rc3, released March 2nd, 2020

	Fixes all over the tree.

	Infrastructure: Rework file list handling to fix race
	conditions when building with per-package target and host
	directories and top-level parallel builds.

	Updated/fixed packages: aufs, binutils, blktrace, brltty,
	cairo, dnsmasq, docker-compose, elf2flt, exim, exiv2, git,
	kodi-inputstream-adaptive, libarchive, libcgroup, libgdiplus,
	libssh2, libvncserver, libvorbis, linknx, linux-firmware, lxc,
	lz4, mosquitto, openjpeg, openrc, poco, proftpd, pure-ftpd,
	python3, python-multidict, python-setuptools-scm-git-archive,
	qpdf, qt5tools, rdesktop, rocksdb, shellinabox, squid,
	suricata, swig, systemd, taglib, util-linux, wireshark, zsh

	Issues resolved (http://bugs.uclibc.org):

	#12571: ltp-testsuite : Build failure
	#12576: 2020.02-RC1: error while loading shared libraries: ...
	#12581: 2020.02-rc1 glibc failing to build on fedora 31

2020.02-rc2, released February 26th, 2020

	Fixes all over the tree.

	Toolchain: Ensure strong SSP can only be enabled if the
	(external) toolchain supports it.

	Fix a race condition related to creating the output/staging
	symlink on systems with coreutils < 8.27.

	Drop support for the (end of life) Qt 5.6 variant.

	Updated/fixed packages: at, armadillo, audiofile, bash,
	busybox, erlang, fail2ban, fluidsynth, ipsec-tools, jpeg-turbo,
	kvm-unit-tests, libftdi1, libinput, libsvgtiny, libtomcrypt,
	libupnpp, libxml2, linux-tools, luv, mbedtls, mesa3d, minicom,
	openvmtools, php, qt5, qt5webengine, qwt, radvd, rcw,
	sdbusplus, systemd, tpm2-tss, vorbis-tools

	Issues resolved (http://bugs.uclibc.org):

	#12581: 2020.02-rc1 glibc failing to build on fedora 31

2020.02-rc1, released February 18th, 2020

	Fixes all over the tree and new features.

	Add experimental support for building with a per-package
	target and host directory. This still has some rough edges,
	but brings a number of advantages:

	- Packages will only be able to access the explicitly listed
          dependencies and not any other packages that happen to be
          built before, ensuring correct dependency information in
          Buildroot.

	- Possibility for top-level parallel builds, speeding up
          builds on multicore machines.

	Core: Ensure package-file-lists data is correct after
	incremental builds as well.

	Architecture: Add support for ARC-HS38 with 64bit multiplier
	variant, allow building glibc for big endian ARC, handle 16KB
	MMU page size for ARC in toolchain wrapper.

	Toolchain: Add binutils 2.33.1, GCC 7.5.0, Arm 9.2-2019.12
	toolchains, ARC 2019.09 toolchain. Allow using custom kernel
	headers newer than what is known by Buildroot.

	pkg-stats: Support for CVE vulnerability reporting by
	comparing to NVD database.

	Reproducible builds: The go -trimpath option is now used to
	get rid of absolute build paths, __FILE__ and __BASE_FILE__
	defines are now handled in the toolchain wrapper.

	Systemd: Build host variant and use systemctl to automatically
	enable unit files rather than manually managing symlinks.

	Util-linux: Ensure that hwclock is built without GPLv3
	code. Notice that builds with hwclock has contained
	GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+)

	New defconfigs: Beelink GS1, Raspberrypi4 64bit

	New packages: alura, avro-c, bubblewrap, cctz, cereal,
	cpuburn-arm, elixir, erlang-base64url, erlang-idna,
	erlang-jose, erlang-p1-acme, erlang-p1-mqtree,
	erlang-p1-yconf, fluid-soundfont, fluidsynth, gcnano-binaries,
	gensio, glslsandbox-player, libargon2, libmodsecurity,
	libpam-nfc, libtelnet, lua-codegen, lua-livr, lua-livr-extra,
	lua-rotas, lua-silva, mfoc, network-manager-openvpn,
	nginx-modsecurity, perl-crypt-openssl-aes,
	perl-math-prime-util, pipewire, ptm2human, python-aenum,
	python-aiohttp-debugtoolbar, python-aiohttp-mako,
	python-aiologstash, python-aiosignal, python-aiozipkin,
	python-async-lru, python-avro, python-bunch, python-crontab,
	python-dnspython, python-entrypoints, python-esptool,
	python-frozenlist, python-future, python-gitdb, python-janus,
	python-lockfile, python-logstash, python-nested-dict,
	python-pbr, python-pyaes, python-pydantic, python-smmap2,
	python-sockjs, python-zc-lockfile, raspi-gpio, rocksdb,
	sdbusplus, spidermonkey, thermald, ti-sgx-libgbm, tinyssh,
	tio, umtprd, weston-imx, wireguard-linux-compat,
	wireguard-tools, xdg-dbus-proxy

	Removed packages: bluez_utils, celt051, erlang-p1-iconv, fis,
	gadgetfs-test, libplayer, gstreamer, gst-ffmpeg,
	gst-fsl-plugins, gst-omapfb, gst-plugins-bad,
	gst-plugins-base, gst-plugins-good, gst-plugins-ugly,
	perl-digest-md5, perl-mime-base64, perl-net-ping,
	python-scapy3k, wireguard

	Issues resolved (http://bugs.uclibc.org):

	#11906: the new version of mesa3d cannot support etnaviv when..
	#11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16
	#12121: PyQt5.QtSerialPort and other modules not being built
	#12256: package tar is outdated (1.29 is 3 years old
	#12286: Can't import gobject in python 3.8
	#12376: python-scapy3k is deprecated
	#12386: carriage return issue when "make menuconfig"
	#12441: qt5webengine build error: asm/errno.h: No such file or..
	#12446: Buildroot fails to finish installing packages
	#12456: qtvirtualkeyboard: No such file or directory
	#12461: libglib2 build files with deep directory structure
	#12481: minicom fails when output directory path contains "m4"
	#12501: libnss-3.49.1: ld error: multiple definition of `gcm_..
	#12526: host-nodejs 12.14.1: configure fail: AttributeError: ..
	#12536: Linux-Headers extracting failure
	#12546: Ninja 1.10 build Error

2019.11.3, released April 10th, 2020

	Important / security related fixes.

	core: Fix compatibility with make 4.3+. Also fixup /lib
	references in libtool .la files, similar to how it is done for
	/usr/*.

	toolchain: Fix kernel headers validation check for external
	toolchains.

	fs/initramfs: fix show-info so it also shows the usual
	rootfs-related variables.

	Updated/fixed packages: barebox-aux, bluez5_utils, busybox,
	civetweb, cog, collectd, ffmpeg, gcc, gnutls, gssdp, gvfs, haproxy,
	hiredis, hostapd, kmscube, libical, libopenssl, libsndfile,
	linux-tools, llvm, monit, ntp, php, pure-ftpd, radvd, redis,
	samba4, screen, sysdig, syslinux, syslog-ng, tor, uacme,
	util-linux, vala, vlc, wpa_supplicant, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#12746: "sysdig" package description points to http://sysdig.org, ..

2019.11.2, released March 16th, 2020

	Important / security related fixes.

	Core: Ensure package-file-lists data is correct after
	incremental builds as well.

	Fix a race condition related to creating the output/staging
	symlink on systems with coreutils < 8.27.

	Toolchain: ARC tools bumped to arc-2019.09.

	Br2-external: Fix patch handling when external linux-extension
	packages are used. Fix compatibility with make 4.3+

	Util-linux: Ensure that hwclock is built without GPLv3
	code. Notice that builds with hwclock has contained
	GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+)

	Updated/fixed packages: armadillo, at, bcm2835, binutils,
	blktrace, bluez-alsa, bootstrap, brltty, busybox, cairo,
	clamav, cog, cups, czmq, dnsmasq, docker-containerd, dovecot,
	dovecot-pigeonhole, e2fsprogs, elf2flt, eudev, exim, exiv2,
	fbgrab, gettext-tiny, glibc, go, grep, gst1-validate, guile,
	imagemagick, jhead, jpeg-turbo, kvm-unit-tests, lapack,
	libarchive, libcgroup, libdrm, libevent, libexif, libftdi1,
	libgdiplus, libjpeg, libsigrok, libsndfile, libssh2,
	libsvgtiny, libvncserver, libvorbis, libxml2, libxslt, linknx,
	lxc, lz4, mariadb, mbedtls, meson, mongoose, mosquitto, musl,
	ncurses, nodejs, ntfs-3g, ogre, opencv3, openjdk, openjpeg,
	openrc, openswan, openvmtools, optee-test, patch, php, piglet,
	postgresql, pppd, proftpd, pure-ftpd, python-django,
	python-pyqt5, python-setuptools-scm-git-archive, python3,
	qemu, qt5base, qt5tools, qt5virtualkeyboard, qt5webengine,
	qwt, rdesktop, ruby, runc, samba4, shellinabox,
	skeleton-init-openrc, smartmontools, spdlog, sqlcipher, squid,
	suricata, swig, swupdate, sysklogd, taglib, thrift,
	ti-cgt-pru, uclibc, util-linux, vorbis-tools, webkitgtk,
	wireshark, wpebackend-fdo, wpewebkit, xen,
	xserver_xorg-server, zeromq, zsh, zziplib

	Issues resolved (http://bugs.uclibc.org):

	#11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16
	#12331: meson issue
	#12456: qtvirtualkeyboard: No such file or directory
	#12461: libglib2 build files with deep directory structure
	#12481: minicom fails when output directory path contains "m4"
	#12606: fbgrab location has changed

2019.11.1, released January 12th, 2020

	Important / security related fixes.

	Infrastructure: kconfig: Fix reconfigure logic, python: Ensure
	correct compiler and linker flags are used for compiled code

	utils/scanpypi: Remind users to update DEVELOPERS

	Defconfigs: imx6-sabresd: Fix the Qt5 display names,
	imx8: Drop extra copy of U-Boot DTB

	Updated/fixed packages: acsccid, bitcoin, boost, busybox,
	cc-tool, cmocka, cpio, cups, dante, dialog, dillo, docker-cli,
	docker-containerd, docker-engine, easy-rsa, ebtables,
	ecryptfs-utils, efl, ffmpeg, gdb, git, glibc, gnupg2, go,
	gpsd, grpc, gst1-plugins-bad, iputils, jasper,
	kf5-kcoreaddons, leveldb, libarchive, libfribi, libgit2,
	libkrb5, libp11, librsvg, libssh, libtomcrypt, libuio, libv4l,
	lirc-tools, log4cplus, lrzip, lvm2, mali-t76x,
	matchbox-desktop, mender-grubenv, mmc-utils, mosquitto,
	nodejs, ntp, openipmi, opencv3, openpowerlink, openrc, pango,
	perl-sys-cpu, pimd, postgresql, pulseaudio, python-brotli,
	python-coherence, python-crc16, python-django, python-dpkt,
	python-gobject, python-pyasn-modules, python-pypcap,
	python-pyqt5, python-subprocess32, python3, qpdf,
	qt-webkit-kiosk, qt5virtualkeyboard, qt5webengine, quota,
	rabbitmq-c, rauc, rpcbind, rtl8821au, runc, rygel, samba4,
	sdl2, setserial, snort, spidev_test,
	sunxi-mali-mainline-driver, syslog-ng, sysrepo, tcllib, tftpd,
	usbmount, w_scan, wavpack, wsapi, wsapi-fcgi, wsapi-xavante,
	x265, xserver_xorg-server, ytree, zip

	Issues resolved (http://bugs.uclibc.org):

	#12121: PyQt5.QtSerialPort and other modules not being built
	#12286: Can't import gobject in python 3.8

2019.11, released December 1st, 2019

	Various fixes.

	Infrastructure: Make HOST_<pkg>_DL_OPTS inherit from
	<pkg>_DL_OPTS by default, just like it is done for a number of
	other package variables.

	Add <pkg>_KEEP_PY_FILES to exclude specific python .py files
	from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for
	the (rare) case where the .py files are needed at runtime
	rather than .pyc.

	Updated/fixed packages: am33x-cm3, bind, collectd, go, gob2,
	gst1-plugins-bad, haproxy, jasper, jpeg-turbo, libdrm,
	libftdi, libftdi1, libnss, libselinux, libstrophe, lzma,
	minicom, network-manager, nodejs, oniguruma, opencv3,
	openvmtools, perl-gdgraph, perl-gdtextutil, prosody,
	python-cchardet, systemd, tiff, wolfssl,

	Issues resolved (http://bugs.uclibc.org):

	#11416: check-uniq-files staging issue
	#12146: Oprofile runtime issue
	#12166: Compiling nodejs for SAMA5D3 always crash with illegal inst..
	#12171: Python-opencv needs config.py and config-3.7.py to run..
	#12196: duma package
	#12211: host-nodejs 10.15.3 package fail to build
	#12316: tzdata fails to install with empty "default local time"
	#12326: network-manager build fails with missing glib error
	#12366: Gstreamer1 gst1-plugins-bad do not compile with RPI-Userland

2019.11-rc3, released November 24th, 2019

	Fixes all over the tree.

	Updated/fixed packages: asterisk, clamav, domoticz, faifa,
	gerbera, kmod, kvm-unit-tests, libupnp18, linux-serial-test,
	lsof, ltp-testsuite, lxc, mesa3d, mesa3d-headers, perl, php,
	postgresql, qemu, rauc, redis, rpcbind, spice, spice-protocol,
	systemd, tftpd, waylandpp, webkitgtk, zip

2019.11-rc2, released November 16th, 2019

	Fixes all over the tree.

	Toolchain: ARC tools bumped to arc-2019.09-rc1, ensure
	external toolchain kernel headers version check correctly stop
	the build on mismatch

	Meson: Fix generation of global cross-compilation.conf

	Download: Also use the package download method for extra
	downloads from the same site, so it does not get confused by
	URLs containing '+'

	Defconfigs: Fix boot issue for beaglebone

	Updated/fixed packages: bird, chrony, connman, dhcp, domoticz,
	dropwatch, dtc, elf2flt, gettext-tiny, glog, intel-microcode,
	ipsec-tools, jailhouse, kodi, libfribi, libmbim, libressl,
	libsigrokdecode, libsvgtiny, linux-serial-test, ltp-testsuite,
	lvm2, lxc, mariadb, mesa3d, minizip, ndisc6, neardal, ninja,
	ofono, openvmtools, oracle-mysql, qt5wayland, safeclib, socat,
	sudo, systemd, wpewebkit, xserver_xorg-server

2019.11-rc1, released November 5th, 2019

	Fixes all over the tree and new features.

	Dependencies: Gcc/g++ 4.8 or newer is now required on the
	build host.
	Ensure host has JSON::PP perl module installed if
	webkitgtk/wpewebkit packages are enabled as it is needed
	during their build process.

	Toolchain: Add support for the D programming language (GCC
	9.x, Glibc).
	GCC 9.x updated to 9.2.0, Glibc updated to 2.30, Musl updated
	to 1.1.24, uClibc-ng updated to 1.0.32, ARC toolchain updated
	to arc-2019.09-eng002.
	Musl: Add a patch to add support for
	sched_{get,set}scheduler() and sched_{get,set}param() for
	compatibility.
	Generate check-headers program under BUILD_DIR rather than
	/tmp to fix issues with distributions mounting /tmp noexec.
	Also copy libssp.so for external toolchains if SSP
	to handle toolchains providing SSP support in libssp rather
	than in the C library

	New defconfigs: Beaglebone AI, FriendlyARM Nanopi NEO Plus2,
	Libre Computer "La Frite", QEMU Armv7-A with trustzone/OP-TEE,
	STM32MP157 Discovery Kit

	Arch: RISC-V: Default to a sensible floating point ABI based
	on the selected ISA extensions rather than always defaulting
	to ILP32/64

	Graph-size: Package sizes are now shown in human readable form
	(Kib/Mib/Gib) rather than always in Kib. Binary (KB/MB/GB)
	format can be selected using the --binary option. The cut-off
	limit for classifying packages as "other" is now configurable
	using the --size-limit option.

	Br2-external: Linux kernel extensions can now also be provided
	in an external tree by adding packages under
	linux/linux-ext-*.mk. See the manual for details.

	Fakeroot now works correctly under Microsoft Windows 10
	Services for Linux, which does not provide SYSV IPC support

	The check-uniq-files logic which would complain if multiple
	packages would touch the same files has been removed as it
	causes issues in certain situations (when packages are
	rebuilt) and the issue is no longer considered a problem for
	toplevel parallel builds as those will use a per-package
	staging/target directory.
	With this removed, Python is no longer required for a basic
	build (only for optional scripts).

	support/scripts/genimage.sh will no longer make a copy of
	TARGET_DIR, speeding up post-build/image scripts.

	The runtime test logic now uses Python 3.x.

	A 'v' prefix has been dropped from the <pkg>_SOURCE variable
	for a number of packages to match the version numbers used by
	https://release-monitoring.org

	New packages: caps, collectl, dav1d, fstrcmp, ima-evm-utils,
	jitterentropy-library, kodi-vfs-rar, kodi-vfs-sftp, libavl,
	libhttpserver, libmspack, libnetconf2, libolm, libyang,
	linux-serial-test, lrzip, mdevd, minimodem, musl-fts, netifrc,
	ogre, openlayers, python-aioredis, python-asgiref,
	python-backports-functools-lru-cache, python-bluezero,
	python-brotli, python-channels, python-channels-redis,
	python-colorlog, python-daphne, python-django-enumfields,
	python-jaraco-functools, python-kiwisolver, python-msgfy,
	python-rpi-ws281x, python-setuptools-scm-git-archive,
	python-simplelogging, python-soupsieve, python-sqliteschema,
	python-sqlparse, python-tqdm, python-webencodings, qt5webview,
	restclient-cpp, ripgrep, snmpclitools, sunwait, sysrepo,
	uacme, utf8proc, uvw, ytree

	Removed packages: alljoyn, alljoyn-base, alljoyn-tcl-base,
	devmem2, eventlog, kodi-audiodecoder-opus,
	kodi-screensaver-planestate, kodi-visualisation-waveforhue,
	python-pysnmp-apps, riscv-pk, ustr

	Issues resolved (http://bugs.uclibc.org):

	#9881:  systemd-resolved not setting resolv.conf link
	#10171: devmem2 w (word) is 8 bytes in x86 64 systems
	#10586: musl gcc has ifunc enabled when musl doesn't support it
	#10806: Allow nfs-utils to use ipv6
	#11366: [2018.08] SysV IPC not available for fakeroot on WSL
	#11411: check-uniq-files target issue
	#11766: Console (getty) issues with systemd
	#11781: mariadb build error
	#12031: Build of cups-filters fails while linking, apparently due..
	#12116: console prompt does not appear after login
	#12141: eudev package is missing "render" and "kvm" groups
	#12181: dropbear: norootlogin (-w) no longer works when PAM is enabled
	#12186: Raspberry Pi Zero-W build fails on newer kernel versions
	#12191: cmake BUILDDIR
	#12241: Permission denied while running "make"
	#12261: sudo versions prior to 1.8.28 are affected.
	#12276: make clean/distclean does not remove BR2_DL_DIR and BR2_HOST_DIR
	#12281: Custom configuration fails to build (based on raspberrypi3_..

2019.08.3, released December 7th, 2019

	Important / security related fixes.

	Infrastructure: Make HOST_<pkg>_DL_OPTS inherit from
	<pkg>_DL_OPTS by default, just like it is done for a number of
	other package variables

	Add <pkg>_KEEP_PY_FILES to exclude specific python .py files
	from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for
	the (rare) case where the .py files are needed at runtime
	rather than .pyc.

	Fix <pkg>-reconfigure handling for packages using the kconfig
	infrastructure.

	Toolchain: ensure external toolchain kernel headers version
	check correctly stop the build on mismatch

	Deconfigs: beaglebone: fix boot issue

	Updated/fixed packages: am33x-cm3, asterisk, bind, chrony,
	clamav, cmocka, collectd, connman, dhcp, dropwatch, faifa,
	gettext-tiny, gob2, haproxy, intel-microcode, ipsec-tools,
	jailhouse, jasper, jpeg-turbo, kodi, kvm-unit-tests, libftdi,
	libftdi1, libnss, libressl, libstrophe, libsvgtiny, lvm2,
	lzma, mariadb, minicom, mosquitto, neardal, ninja, nodejs,
	oniguruma, openvmtools, oracle-mysql, perl-gdgraph,
	perl-gdtextutil, php, postgresql, prosody, python-cchardet,
	python-django, qt5wayland, rabbitmq, rauc, redis, rpcbind,
	socat, spice, spice-protocol, tftpd, tiff, webkitgtk

	New packages: libmspack

	Issues resolved (http://bugs.uclibc.org):

	#12166: Compiling nodejs for SAMA5D3 always crash with illegal inst..
	#12171: Python-opencv needs config.py and config-3.7.py to run..
	#12211: host-nodejs 10.15.3 package fail to build
	#12316: tzdata fails to install with empty "default local time"

2019.08.2, released November 9th, 2019

	Important / security related fixes.

	Toolchain: Also copy libssp.so for external toolchains if SSP
	to handle toolchains providing SSP support in libssp rather
	than in the C library

	Download: Also use the package download method for extra
	downloads from the same site, so it does not get confused by
	URLs containing '+'

	Fakeroot now works correctly under Microsoft Windows 10
	Services for Linux, which does not provide SYSV IPC support

	utils/test-pkg: ensure to exit with an error upon failure

	Updated/fixed packages: asterisk, azmq, binutils,
	cups-filters, domoticz, dtc, duma, elf2flt, eudev, exfat,
	exfat-utils, fakeroot, fdk-aac, file, freerdp, gcc, gd,
	ghostscript, go, gpsd, grpc, gst1-plugins-base, gvfs, icu,
	intel-microcode, kvm-unit-tests, libfribidi, libnspr, libnss,
	libopenssl, libpcap, libpciaccess, librsvg, libseccomp,
	libsigrok, libtorrent, libunwind, libva, linux-tools,
	lua-sdl2, lxc, minizip, mjpegtools, mongoose, mono, nbd,
	nfs-utils, php, piglit, python, python-autobahn,
	python-pysnmp-apps, python-tornado, python3, qemu, qt5base,
	ruby, safeclib, samba4, sdl_mixer, sox, sudo, suricata,
	systemd, tcpdump, unscd, util-linux, vdr-plugin-vnsiserver,
	vtun, wireshark, xvisor, yaffs2utils

	Issues resolved (http://bugs.uclibc.org):

	#11366: [2018.08] SysV IPC not available for fakeroot on WSL
	#12261: sudo versions prior to 1.8.28 are affected

2019.08.1, released October 3rd, 2019

	Important / security related fixes.

	Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone:
	Use default console settings

	Dependencies: Ensure host has JSON::PP perl module installed
	if webkitgtk/wpewebkit packages are enabled as it is needed
	during their build process.

	Toolchain: Generate check-headers program under BUILD_DIR
	rather than /tmp to fix issues with distributions mounting
	/tmp noexec.

	Updated/fixed packages: asterisk, augeas, axel, bind, bwm-ng,
	cups, cups-filters, docker-cli, docker-engine, docker-proxy,
	e2fsprogs, eudev, exim, expat, gcc, go, haveged, ifplugd, joe,
	kf5-extra-cmake-modules, kf5-modemmanager-qt,
	kf5-networkmanager-qt, libcamera, libcurl, libgcrypt,
	libglib2, libgpg-error, libnspr, libnss, libopenssl,
	logrotate, luksmeta, mariadb, mbedtls, mongodb, mosquitto,
	ncurses, nfs-utils, nghttp2, nodejs, openvmtools, php,
	protobuf, putty, qemu, samba4, snort, swupdate,
	systemd-bootchart, thttpd, uclibc, unzip, util-linux,
	wireshark

	Issues resolved (http://bugs.uclibc.org):

	#10806: Allow nfs-utils to use ipv6
	#11781: mariadb build error
	#12031: Build of cups-filters fails while linking, apparently due..
	#12141: eudev package is missing "render" and "kvm" groups
	#12241: Permission denied while running "make"

2019.08, released September 1st, 2019

	Various fixes.

	Defconfigs: Removed nanopc t4, nanopi m4 and neo4, pine64
	rockpro64 and raxda rock pi4 as they rely on a ARM32 toolchain
	on the build host to build ATF. These defconfigs will be added
	back once a package providing such toolchain is
	available. Also dropped ts4800 defconfig as it does not build
	with GCC >= 8.x.

	Updated/fixed packages: libxcb, php, python-numpy, webkitgtk,
	wpewebkit, xfont_font-util

	Issues resolved (http://bugs.uclibc.org):

	#12156:	buildroot-2019.08-rc3 does not build for Pi Zero W

2019.08-rc3, released August 28th, 2019

	Fixes all over the tree.

	Updated/fixed packages: clamav, dovecot, dovecot-pigeonhole,
	gcc, intel-microcode, libmicrohttpd, libmodplug, mpg123,
	nginx, openldap, python, qemu, samba4, squid, strace, vlc

	Issues resolved (http://bugs.uclibc.org):

	#11686: fbdev_drv.so: undefined symbol: shadowUpdatePackedWeak,..

2019.08-rc2, released August 20th, 2019

	Fixes all over the tree.

	Compile fixes for a number of defconfigs.

	Updated/fixed packages: apache, autofs, batctl, batman-adv,
	bind, collectd, cwiid, dahdi-linux, dahdi-tools, daq,
	dehydrated, dhcp, dtc, efl, enlightenment, evtest, giflib,
	gnutls, go, gst-plugins-bad, gst-plugins-base,
	gst1-plugins-bad, gst1-plugins-base, gst1-rtsp-server, gtkmm3,
	gupnp, harfbuzz, imagemagick, lftp, libbsd, libcpprestsdk,
	libdnet, libfm, libgit2, libgtk2, libgtk3, libpri, librsvg,
	libss7, libssh2, libwpe, lua-cqueues, metacity, micropython,
	mpd, mpg123, musl, mpv, openblas, openbox, opencv, pango,
	pcmanfm, piglit, pigpio, pinentry, postgresql, qemu, qt5base,
	qt5enginio, qt5multimedia, qt5serialbus, quagga, quazip,
	rrdtool, rygel, samba4, stellarium, tcpreplay, ti-gfx, vte,
	wampcc, wilink-bt-firmware, wireless-regdb, wpebackend-fdo,
	xscreensaver

	Removed packages: libamcodec, odroid-mali, odroid-scripts

	Issues resolved (http://bugs.uclibc.org):

	#9481:  NetworkManager/Ping unable to resolve domains
	#10566: php.mk is missing option --with-pgsql
	#10861: Package batman_adv Makefile is missing include header direct..
	#11641: linux kernel .config timestamp always out of date fixed with..
	#11671: russian locale ru_RU:145: LC_TIME: syntax error
	#11701: recuuring of usr and in bin shortcuts are created
	#11741: pigpio does not build host-pigpio
	#11876: automount using host mount/umount
	#11881: Build breaks with lftp package enabled and libexpat1-dev inst..
	#11921: dahdi fails to build
	#11936: libcpprestsdk should install to staging
	#11946: wilink-bt-firmware: moved from github to http://git.ti.com/ti-bt
	#11961: libpri build failure
	#12086: dhcp shared libraries not installed to target
	#12096: tcpreplay: build fails if libdumbnet-dev is installed in the..
	#12106: daq: build fails if libdumbnet-dev is installed in the host
	#12126: vc4 has neon as hard dependency

2019.08-rc1, released August 9th, 2019

	Fixes all over the tree and new features.

	toolchain: ARC toolchain updated to 2019.03 (binutils 2.32.51
	/ GCC 8.3.1 / glibc 2.29), ARM AAarch64/ARM toolchains updated
	to 2019.03. Add GCC 9.1.0, remove GCC 4.9 and 6.5, add GDB
	8.3, remove GDB 7.12 and 8.0.1, default to GDB 8.2, GCC
	8.3.0. Musl updated to 1.1.23, bringing support for RISC-V 64.

	Architectures: Internal toolchain support for C-SKY, support
	for ARC HS48 v3.1 and HS38 with Quad MAC & FPU, support for
	ARM A76,  A76/A55 big.LITTLE, emag, neoverse-N1, phecda and
	tsv110.

	Filesystems: Pass extra pax options to tar for binary
	reproducibility. Build host-cpio for the --reproducible option
	support when BR2_REPRODUCIBLE is enabled. Genimage updated to
	version 11, bringing GPT support.

	Br2-external: Add support for injecting additional options to
	the list of preconfigured external toolchains and libjpeg and
	openssl providers using files under provides/. See the manual
	for details.

	Ensure custom <pkg>_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS are
	passed before the standard exclusions so they are not ignored
	by rsync when using override-srcdir.

	Gnuconfig updated to 2019-05-28, adding C-SKY support.

	test-pkg: Correct long option handling and clean output dir
	after a successful build to save disk space.

	support/testing: Emulate a machine with 256MB RAM to fix
	issues with certain tests running out of memory, use
	virtio-rng to provide needed entrophy.

	pkg-stats: support outputting in JSON format with --json for
	easier post processing. The classic HTML output is still
	available with --html. Parallelize access to
	release-monitoring.org to speed up runtime.

	Drop non-conventional version prefix/suffix/separators for
	packages for better compatibility with release-monitoring.org

	Packages:
	Init systems: Add basic openrc support and
	<pkg>_INSTALL_INIT_OPENRC variable in the infrastructure to
	install openrc service scripts if enabled.

	busybox: Build each applet as a separate binary when SELinux
	is enabled for more finegrained policy control. Use daemon
	mode for mdev rather than legacy hotplug.

	linux: Workaround -Werror related build failure on powerpc,
	by forcing CONFIG_PPC_DISABLE_WERROR on.

	Defconfigs: QEMU: use 'rootwait' kernel option to ensure root
	partition is available before mounting.

	New defconfigs: HiFive Unleashed, I.MX8MM EVK and Pico, Nanopi
	m4 and neo4, Nanopc t4, Olimex A33 olinuxino, Pine64
	Rockpro64, PowerPC mac99, QEMU C-SKY 610/807/810/860 virt,
	Raspberry Pi 4, Raxda rock pi4, Solidrun Clearfog GT-8K

	Removed defconfigs: Odroid C2

	New packages: bitcoin, c-capnproto, fatcat, ifmetric, jack1,
	jailhouse, libubootenv, luasyslog, mender-grubenv,
	murata-cyw-fw, openrc, piglit, python-colorama, python-cycler,
	python-hiredis, python-ifaddr, python-inflection,
	python-iptables, python-matplotlib, python-periphery,
	python-pycairo, python-redis, python-termcolor,
	python-tinyrpc, python-txdbus, skeleton-init-openrc, spdlog,
	sshguard, stellarium, zziplib

	Removed packages: xapp_mkfontdir

	Issues resolved (http://bugs.uclibc.org):

	#11096: Upgrade from glibc 2.26 to 2.27 broke some locales...
	#11271: utils/check-package fails with exception depending on..
	#11991: [numpy] segfault when compiling for RPi3 64bits
	#12016: Grub fails to boot bzImage after upgrade to 2019.05
	#12046: Can’t login as root user after upgrading to buildroot..
	#12051: package/dhcp installs libtool wrapper scripts on tar...
	#12076: Patchelf can link against an incompatible libc++ ver...

2019.05.3, Released October 3rd, 2019

	Important / security related fixes.

	Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone:
	Use default console settings

	Dependencies: Ensure host has JSON::PP perl module installed
	if webkitgtk/wpewebkit packages are enabled as it is needed
	during their build process.

	Toolchain: Generate check-headers program under BUILD_DIR
	rather than /tmp to fix issues with distributions mounting
	/tmp noexec.

	Updated/fixed packages: asterisk, augeas, bind, bwm-ng, cups,
	cups-filters, docker-cli, docker-engine, docker-proxy,
	e2fsprogs, eudev, exim, expat, gcc, go, haveged, ifplugd,
	iptables, joe, kf5-extra-cmake-modules, kf5-modemmanager-qt,
	kf5-networkmanager-qtlibcamera, libcurl, libgcrypt,
	libgpg-error, libnftl, libnspr, libnss, libopenssl,
	libtorrent-rasterbar, luksmeta, mariadb, mbedtls, mongodb,
	mosquitto, ncurses, nfs-utils, nghttp2, nodejs, openvmtools,
	php, protobuf, putty, qemu, samba4, swupdate,
	systemd-bootchart, thttpd, uclibc, unzip, util-linux,
	wireshark

	Issues resolved (http://bugs.uclibc.org):

	#10806: Allow nfs-utils to use ipv6
	#11781: mariadb build error
	#12031: Build of cups-filters fails while linking, apparently due..
	#12141: eudev package is missing "render" and "kvm" groups
	#12241: Permission denied while running "make"

2019.05.2, Released September 3rd, 2019

	Important / security related fixes.

	Filesystems: Pass extra pax options to tar for binary
	reproducibility.

	Updated/fixed packages: apache, arm-trusted-firmware,
	asterisk, atk, autofs, batctl, batman-adv, berkeleydb,
	busybox, bzip2, clamav, cloop, cmake, collectd, connman-gtk,
	dahdi-linux, dahdi-tools, daq, dehydrated, dhcp, dovecot,
	dovecot-pigeonhole,, elfutils, evtest, exim, expect, giflib,
	git, glib-networking, glibc, gnupg2, gnutls, go,
	gst1-rtsp-server, gtkperf, gupnp-tools, gvfs, imagemagick,
	imx-uuc, intel-microcode, json-glib, lftp, libbsd, libcurl,
	libgit2, libgtk2, libgtk3, libmodplug, libnss, libpri,
	libshout, libss7, libssh2, libvips, libxcb, linux-headers,
	mdadm, mesa3d, metacity, mpg123, mosquitto, musl, nginx,
	oniguruma, openblas, opencv3, openjdk, openjdk-bin, openldap,
	openvmtools, pcmanfm, php, pigpio, postgresql, prboom,
	proftpd, proj, python, python-django, python-idna,
	python-numpy, python-urllib3, python3, qemu, qt5, qt5base,
	qt5enginio, quagga, rygel, squid, subversion, tcpreplay,
	unzip, vlc, vte, webkitgtk, wireless-regdb, xen,
	xfont_font-util, xlib_libICE, xlib_libXfont, xlib_libXfont2,
	yad, zeromq

	Issues resolved (http://bugs.uclibc.org):

	#11741: pigpio does not build host-pigpio
	#11876: automount using host mount/umount
	#11881: Build breaks with lftp package enabled and libexpat1-dev inst..
	#11921: dahdi fails to build
	#11961: libpri build failure
	#12086: (dhcpd-missing-libs) - dhcp shared libraries not installed to..
	#12096: tcpreplay: build fails if libdumbnet-dev is installed in the..
	#12106: daq: build fails if libdumbnet-dev is installed in the host
	#12126: vc4 has neon as hard dependency

2019.05.1, Released July 7th, 2019

	Important / security related fixes.

	arch: x86: Fix typo breaking 'core-avx2' variant

	linux: Workaround -Werror related build failure on powerpc,
	by forcing CONFIG_PPC_DISABLE_WERROR on.

	support/testing: Emulate a machine with 256MB RAM to fix
	issues with certain tests running out of memory.

	test-pkg: Correct long option handling and clean output dir
	after a successful build to save disk space.

	Defconfigs: QEMU: use 'rootwait' kernel option to ensure root
	partition is available before mounting.

	Updated/fixed packages: barebox, busybox, bzip2, davfs2,
	dialog, docker-cli, docker-engine, exim, expat, faad2,
	haveged, irssi, libcamera, libcdaudio, libcurl, libglib2,
	libressl, libsecret, lmbench, meson, monit, php, postgresql,
	psplash, python-django, qt5base, tvheadend, webkitgtk,
	xserver_xorg-server, znc

2019.05, released June 2nd, 2019

	Various fixes.

	Toolchain: Ensure pre-built Andes toolchains can only be
	selected when x86 32bit support is available on the host.
	Disallow PowerPC SPE ABI for GCC >= 8.x, as it is no longer
	supported.

	Infra: pkg-config: Use a dedicated timestamp file rather than
	.config as that gets touched by linux-4.19+, causing repeated
	builds.

	Add C-SKY support to our config.sub (gnuconfig)

	Updated/fixed packages: dosfstools, botan, brotli, dropbear,
	flare-engine, gst1-plugins-bad, libhtp, libnss, libopenssl,
	linuxptp, matchbox-panel, mender, mutt, netsurf,
	network-manager, opencv3, openjdk, openmpi, php,
	python-cython, qt5multimedia, qtwayland, qt5webkit-examples,
	supertux, suricata, tpm2-totp, v4l2loopback, wireshark,
	wpewebkit

2019.05-rc3, released May 25th, 2019

	Fixes all over the tree.

	check-bin-arch: Ignore /usr/lib/grub, similar to how /lib/grub
	is ignored.

	check-package: Warn about utf-8 characters in .mk files

	Linux: Default to 5.1.x series

	Updated/fixed packages: assimp, atop, chocolate-doom, cjson,
	ddrescue, dhcp, ffmpeg, gerbera, glibmm, gpsd, gst-ffmpeg,
	intel-microcode, jasper, keepalived, kismet, libcpprestsdk,
	libcurl, libssh2, libupnp18, luarocks, mono-gtksharp3, opus,
	postgresql, pcsc-lite, python, tslib, webkitgtk,
	wpebackend-fdo, wpewebkit

2019.05-rc2, released May 15th, 2019

	Fixes all over the tree.

	Updated/fixed packages: bind, bullet, ca-certificates,
	collectd, cracklib, dhcp, gdb, libinput, libtorrent-rasterbar,
	linknx, lynx, mono, netsurf, optee-os, postgresql, qt5enginio,
	qt5multimedia, rpm, samba4, sqlite, strace, uclibc, woff2

	Issues resolved (http://bugs.uclibc.org):

	#11841: grub-efi.cfg not used when building EFI disk image

2019.05-rc1, Released May 8th, 2019

	Fixes all over the tree and new features.

	Architecture: Andes 32-bit (nds32) support added.

	Only build host-lzip / host-xz when really needed by packages,
	not just when not available on the build host.

	Toolchain: Glibc bumped to 2.29, musl bumped to 1.1.22,
	binutils 2.32 added, 2.28/2.29 removed, default changed to
	2.31.1.

	fs: Set FAKEROOTDONTTRYCHOWN environment variable to not
	forward {f,l,}chown calls to libc when running under fakeroot
	to fix issues when building in restricted environments
	(E.G. user namespace with bubblewrap).

	Linux: Also build default make target to ensure extra files
	like the gdb scripts enabled by CONFIG_GDB_SCRIPTS are also
	built. Notice: This may mean that extra host utilities like
	uboot-mkimage are needed.

	Infrastructure: show-info and <pkg>-show-info make targets
	added to output package metadata in JSON format for external
	use.

	pkg-generic: Only tweak .la files needing it to ensure they
	are not included in subsequent package file lists.

	test-pkg: Generate a basic package config if none is
	specified.

	Gettext-tiny package added as an lightweight replacement for
	GNU gettext for situations where NLS support is not needed.

	New defconfigs: Andes AE3XX, Freescale imx8mpico / imx8qxpmek
	/ T2080 QDS RDB, Licheepi zero, Orangepi R1

	Removed defconfigs: Olimx A20 Olinuxino Lime legacy

	New packages: bats-core, bayer2rgb-neon, brickd, cog, dacapo,
	enet, gettext-tiny, gli, gst1-plugins-bayer2rgb-neon,
	imx-sc-firmware, intel-mediadriver, intel-mediasdk, libcamera,
	libhtp, libp11, libwpe, lua-binaryheap, lua-gd, lua-lunitx,
	mender-artifact, most, oniguruma, openjdk, openjdk-bin,
	opensbi, optee-benchmark, optee-client, optee-examples,
	optee-os, optee-test, paho-mqtt-cpp, python-aioblescan,
	python-aioconsole, python-aiohttp-cors, python-aiomonitor,
	python-backcall, python-jedi, python-parso, python-pyjwt,
	python-terminaltables, suricata, tpm2-totp, uftp,
	wpebackend-fdo, wpewebkit

	Removed packages: libump, lunit, sunxi-mali

	Issues resolved (http://bugs.uclibc.org):

	#11716: Typo on website, saying latest release is 2018.2.11
	#11756: package/syslinux: MBR's don't fit because of binutils..
	#11761: Building custom kernel 5.1-rc3 or later breaks on objtool
	#11816: Only selected coreutils binaries are installed

2019.02.11, released April 9th, 2020

	Important / security related fixes.

	core: Fix compatibility with make 4.3+. Also fixup /lib
	references in libtool .la files, similar to how it is done for
	/usr/*.

	toolchain: Fix kernel headers validation check for external
	toolchains.

	Updated/fixed packages: barebox-aux, bluez5_utils, busybox,
	civetweb, collectd, ffmpeg, gcc, gnutls, gvfs, haproxy,
	hiredis, kmscube, libical, libopenssl, libsndfile,
	linux-tools, ntp, php, pure-ftpd, screen, sysdig, tor,
	util-linux, vala, vlc, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#12746: "sysdig" package description points to http://sysdig.org, ..

2019.02.10, released March 16th, 2020

	Important / security related fixes.

	Core: Ensure package-file-lists data is correct after
	incremental builds as well.

	Fix a race condition related to creating the output/staging
	symlink on systems with coreutils < 8.27.

	Br2-external: Fix compatibility with make 4.3+

	Util-linux: Ensure that hwclock is built without GPLv3
	code. Notice that builds with hwclock has contained
	GPLv3-licensed code since util-linux 2.30 (Buildroot 2017.08+)

	Updated/fixed packages: armadillo, at, binutils, blktrace,
	bootstrap, busybox, cairo, cups, czmq, dnsmasq,
	docker-containerd, dovecot, dovecot-pigeonhole, e2fsprogs,
	eudev, exim, exiv2, fbgrab, grep, gst1-validate, guile,
	imagemagick, jhead, kvm-unit-tests, lapack, libcgroup,
	libftdi1, libjpeg, libsigrok, libsndfile, libssh2, libsvgtiny,
	libvncserver, libvorbis, libxml2, libxslt, linux, lz4,
	mariadb, mbedtls, meson, mfgtools, mongoose, ncurses, ntfs-3g,
	opencv3, openjpeg, openswan, openvmtools, patch, php,
	postgresql, pppd, proftpd, pure-ftpd, python-django,
	python-pyqt5, python3, qemu, qt5base, qt5webengine, qwt,
	rdesktop, ruby, runc, samba4, shellinabox, smartmontools,
	sqlcipher, squid, swupdate, sysklogd, taglib, thrift,
	ti-cgt-pru, uboot, util-linux, vorbis-tools, webkitgtk,
	wireshark, xen, xserver_xorg-server, zeromq, zsh

	Issues resolved (http://bugs.uclibc.org):

	#11996: opencv3 SIGILL on Cortex-A5 with VFPv4-D16
	#12331: meson issue
	#12461: libglib2 build files with deep directory structure
	#12606: fbgrab location has changed

2019.02.9, released January 12th, 2020

	Important / security related fixes.

	pkg-python infrastructure: Ensure correct compiler and linker
	flags are used for compiled code

	utils/scanpypi: Remind users to update DEVELOPERS

	Updated/fixed packages: busybox, cc-tool, cpio, cups, dante,
	dillo, docker-cli, docker-containerd, docker-engine, easy-rsa,
	ecryptfs-utils, efl, git, glibc, gnupg2, gst1-plugins-bad,
	kf5-kcoreaddons, libarchive, libgit2, libkrb5, librsvg,
	libssh, libtomcrypt, libuio, lirc-tools, lvm2,
	matchbox-desktop, nodejs, ntp, opencv3, openpowerlink,
	python-django, python-ecdsa, python-pyasn-modules,
	python-pyqt5, python-subprocess32, python3, qpdf, runc, rygel,
	samba4, sdl2, wavpack, xserver_xorg-server, zip

	Issues resolved (http://bugs.uclibc.org):

	#12121: PyQt5.QtSerialPort and other modules not being built

2019.02.8, released December 7th, 2019

	Important / security related fixes.

	Infrastructure: Make HOST_<pkg>_DL_OPTS inherit from
	<pkg>_DL_OPTS by default, just like it is done for a number of
	other package variables

	Add <pkg>_KEEP_PY_FILES to exclude specific python .py files
	from the removal done by BR2_PACKAGE_PYTHON{,3}_PYC_ONLY for
	the (rare) case where the .py files are needed at runtime
	rather than .pyc.

	Fix <pkg>-reconfigure handling for packages using the kconfig
	infrastructure.

	Toolchain: ensure external toolchain kernel headers version
	check correctly stop the build on mismatch

	Deconfigs: beaglebone: fix boot issue

	Updated/fixed packages: am33x-cm3, asterisk, bind, chrony,
	clamav, collectd, connman, faifa, gob2, haproxy,
	intel-microcode, ipsec-tools, jasper, jpeg-turbo, kodi,
	kvm-unit-tests, libftdi, libftdi1, libnss, libstrophe,
	libsvgtiny, lvm2, lzma, mariadb, minicom, neardal, nodejs,
	opencv3, openvmtools, oracle-mysql, perl-gdgraph,
	perl-gdtextutil, php, postgresql, prosody, python-django,
	rabbitmq-c, rauc, redis, rpcbind, socat, spice,
	spice-protocol, tftpd, tiff, webkitgtk

	New packages: libmspack

	Issues resolved (http://bugs.uclibc.org):

	#12166: Compiling nodejs for SAMA5D3 always crash with illegal inst..
	#12171: Python-opencv needs config.py and config-3.7.py to run..
	#12211: host-nodejs 10.15.3 package fail to build
	#12316: tzdata fails to install with empty "default local time"

2019.02.7, Released November 10th, 2019

	Important / security related fixes.

	support/testing: use a kernel with HW_RANDOM_VIRTIO to work
	around issues with lack of entrophy

	Toolchain: Also copy libssp.so for external toolchains if SSP
	is enabled to handle toolchains providing SSP support in
	libssp rather than in the C library

	Download: Also use the package download method for extra
	downloads from the same site, so it does not get confused by
	URLs containing '+'

	Fakeroot now works correctly under Microsoft Windows 10
	Services for Linux, which does not provide SYSV IPC support

	utils/test-pkg: ensure to exit with an error upon failure

	Updated/fixed packages: asterisk, azmq, cups-filters,
	domoticz, duma, elf2flt, eudev, exfat, exfat-utils, fakeroot,
	file, freerdp, gd, ghostscript, go, gvfs, intel-microcode,
	kvm-unit-tests, libarchive, libnspr, libnss, libopenssl,
	libpcap, libpciaccess, librsvg, libseccomp, libsigrok,
	libtorrent, libunwind, linux-tools, lua-sdl2, lxc, minizip,
	mjpegtools, mongoose, php, python, python-pysnmp-apps,
	python3, qemu, qt5base, ruby, safeclib, samba4, sdl_mixer,
	sox, sudo, systemd, tcpdump, unscd, util-lkinux, vtun, xvisor,
	yaffs2utils

	Issues resolved (http://bugs.uclibc.org):

	#11366: [2018.08] SysV IPC not available for fakeroot on WSL
	#12261: sudo versions prior to 1.8.28 are affected

2019.02.6, Released October 3rd, 2019

	Important / security related fixes.

	Defconfigs: AArch64-efi: Fix grub configuration, Beaglebone:
	Use default console settings

	Dependencies: Ensure host has JSON::PP perl module installed
	if webkitgtk/wpewebkit packages are enabled as it is needed
	during their build process.

	Toolchain: Generate check-headers program under BUILD_DIR
	rather than /tmp to fix issues with distributions mounting
	/tmp noexec.

	Updated/fixed packages: asterisk, augeas, bind, bwm-ng, cups,
	cups-filters, docker-cli, docker-engine, docker-proxy,
	dropbear, e2fsprogs, eudev, exim, expat, gcc, go, ifplugd,
	haveged, iptables, joe, kf5-extra-cmake-modules,
	kf5-modemmanager-qt, kf5-networkmanager-qt, libcurl,
	libgcrypt, libgpg-error, libnftl, libnspr, libnss, libopenssl,
	luksmeta, mariadb, mbedtls, mongodb, mosquitto, ncurses,
	nfs-utils, nghttp2, nodejs, openvmtools, php, protobuf, putty,
	qemu, qt5base, samba4, swupdate, systemd-bootchart, thttpd,
	uclibc, unzip, util-linux, wireshark

	Issues resolved (http://bugs.uclibc.org):

	#10806: Allow nfs-utils to use ipv6
	#11781: mariadb build error
	#12031: Build of cups-filters fails while linking, apparently due..
	#12141: eudev package is missing "render" and "kvm" groups
	#12181: dropbear: norootlogin (-w) no longer works when PAM is enabled
	#12241: Permission denied while running "make"

2019.02.5, Released September 2nd, 2019

	Important / security related fixes.

	Filesystems: Pass extra pax options to tar for binary
	reproducibility.

	Updated/fixed packages: apache, arm-trusted-firmware,
	asterisk, atk, autofs, batctl, batman-adv, berkeleydb, brotli,
	busybox, bzip2, clamav, cloop, cmake, collectd, connman-gtk,
	cryptopp, dahdi-linux, dahdi-tools, daq, dehydrated, dovecot,
	dovecot-pigeonhole,, elfutils, evtest, exim, expect, giflib,
	git, glib-networking, glibc, gnupg2, gnutls, go,
	gst1-rtsp-server, gtkperf, gupnp-tools, gvfs, imagemagick,
	imx-uuc, intel-microcode, json-glib, lftp, libbsd, libcurl,
	libgit2, libgtk3, libmodplug, libnss, libpri, libshout,
	libss7, libssh2, libvips, libxcb, linux-headers, mdadm,
	mesa3d, metacity, mpg123, mosquitto, musl, nginx, openblas,
	opencv3, openldap, openvmtools, pcmanfm, php, pigpio,
	postgresql, prboom, proftpd, proj, python, python-django,
	python-idna, python-numpy, python-urllib3, python3, qemu, qt5,
	qt5base, qt5enginio, quagga, rygel, squid, subversion,
	tcpreplay, unzip, vlc, vte, webkitgtk, weston, wireless-regdb,
	xen, xfont_font-util, xlib_libICE, xlib_libXfont,
	xlib_libXfont2, yad, zeromq

	Issues resolved (http://bugs.uclibc.org):

	#11741: pigpio does not build host-pigpio
	#11876: automount using host mount/umount
	#11881: Build breaks with lftp package enabled and libexpat1-dev inst..
	#11921: dahdi fails to build
	#11961: libpri build failure
	#12096: tcpreplay: build fails if libdumbnet-dev is installed in the..
	#12106: daq: build fails if libdumbnet-dev is installed in the host
	#12126: vc4 has neon as hard dependency

2019.02.4, Released July 10th, 2019

	Important / security related fixes.

	arch: x86: Fix typo breaking 'core-avx2' variant, add Westmere
	variant.

	linux: Workaround -Werror related build failure on powerpc,
	by forcing CONFIG_PPC_DISABLE_WERROR on.

	support/testing: Emulate a machine with 256MB RAM to fix
	issues with certain tests running out of memory.

	test-pkg: Correct long option handling and clean output dir
	after a successful build to save disk space.

	Ensure custom <pkg>_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS are
	passed before the standard exclusions so they are not ignored
	by rsync when using override-srcdir.

	Defconfigs: QEMU: use 'rootwait' kernel option to ensure root
	partition is available before mounting.

	Updated/fixed packages: barebox, bzip2, davfs2, dbus, dialog,
	docker-cli, docker-engine, expat, faad2, ffmpeg, freeswitch,
	gerbera, haveged, irssi, libcdadio, libgit2, libglib2,
	libsecret, libvncserver, lmbench, logrotate, mariadb, meson,
	mongoose, monit, mpd, openblas, php, postgresql, psplash,
	python, python-django, python3, qt5base, samba4, taglib,
	tvheadend, vlc, webkitgtk, xserver_xorg-server, znc

2019.02.3, Released June 7th, 2019

	Important / security related fixes.

	Infra: pkg-config: Use a dedicated timestamp file rather than
	.config as that gets touched by linux-4.19+, causing repeated
	builds.

	check-bin-arch: Also ignore /usr/lib/grub to support merged
	/usr setups, similar to how /lib/grub is ignored.

	gnuconfig/config.sub: Add C-SKY architecture support.

	Updated/fixed packages: assimp, atftp, atop, botan, busybox,
	ca-certificates, chocolate-doom, cjson, coreutils, cracklib,
	ddrescue, dhcp, docker-cli, docker-containerd, docker-engine,
	dosfstools, dovecot, dovecot-pigeonhole, dropbear, exim,
	ffmpeg, flare-engine, gcc, gdb, gerbera, glibmm, go, gpsd,
	gst-ffmpeg, gst1-plugins-bad, gst1-plugins-base, imagemagick,
	intel-microcode, jasper, kf5-kcoreaddons, kismet, libcurl,
	libglib2, libnss, libopenssl, libsigrok, libssh2, libupnp18,
	linuxptp, luajit, lynx, matchbox-panel, mender,
	netcat-openbsd, netsurf, nfs-utils, opus, orc, owfs,
	pcsc-lite, php, popt, postgresql, python, python-cython,
	python-django, python-ply, qt5enginio, rpm, runc, samba4,
	sqlite, subversion, supertux, systemd, tslib, uclibc,
	v4l2loopback, webkitgtk, woff2

	Issues resolved (http://bugs.uclibc.org):

	#11816: Only selected coreutils binaries are installed
	#11841: grub-efi.cfg not used when building EFI disk image
	#11911: systemd v240 memory leak in systemd-journald

2019.02.2, Released April 29th, 2019

	Important / security related fixes.

	Only build host-lzip / host-xz when really needed by packages,
	not just when not available on the build host.

	fs: Set FAKEROOTDONTTRYCHOWN environment variable to not
	forward {f,l,}chown calls to libc when running under fakeroot
	to fix issues when building in restricted environments
	(E.G. user namespace with bubblewrap).

	Linux: Also build default make target to ensure extra files
	like the gdb scripts enabled by CONFIG_GDB_SCRIPTS are also
	built. Notice: This may mean that extra host utilities like
	uboot-mkimage are needed.

	Defconfigs: ASUS tinker and Amarula vyasa rk3822: Support
	larger kernel images, Atmel SAM5D27, SAM5D2,3,4 xplained:
	Increase rootfs size to fit utilities, Raspberry Pi 64bit:
	Include overlays in sdcard image

	Updated/fixed packages: android-tools, apache, bind, binutils,
	busybox, civetweb, cjson, copas, davfs2, docker-cli,
	docker-containerd, docker-engine, dovecot, dovecot-pigeonhole,
	freerdp, gerbera, ghostscript, git, gnutls, go, gst-omx,
	gst1-plugins-base, gst1-plugins-ugly, haproxy, hostapd,
	ipsec-tools, libfreefare, libfuse, libkrb5, libpng, libxml2,
	libxslt, linknx, linux, linux-firmware, linux-tools, live555,
	lldp, lrzsz, lynx, madplay, make, minicom, mongodb, msmtp,
	musl, mutt, neon, netsnmp, numactl, opus, perl, php,
	postgresql, pure-ftpd, python-urllib3, python3, qt5base,
	rapidxml, rpm, rsyslog, ruby, runc, samba4, sane-backends,
	softether, stunnel, sysklogd, syslinux, syslog-ng,
	systemd-bootchart, thttpd, thrift, tiff, tor, tpm2-tools,
	tpm2-tss, webkitgtk, yaffs2utils, wget, wpa_supplicant, wsapi,
	xapp_xfd, xapp_xload, xlib_libXpm, xserver_xorg-server, xz,
	znc

	Issues resolved (http://bugs.uclibc.org):

	#11756: package/syslinux: MBR's don't fit because of binutils..
	#11761: Building custom kernel 5.1-rc3 or later breaks on objtool

2019.02.1, Released March 29th, 2019

	Important / security related fixes.

	pkg-generic: Only tweak .la files needing it to ensure they
	are not included in subsequent package file lists.

	test-pkg: Generate a basic package config if none is
	specified.

	Updated/fixed packages: asterisk, avahi, bash, beecrypt,
	binutils, busybox, clamav, cups, efl, eigen, fetchmail, file,
	flashrom, fltk, gerbera, git, glibc, gnuradio, go,
	gst-plugins-bad, intel-gmmlib, jq, kexec, kf5-modemmanager-qt,
	leveldb, libcurl, libdrm, libftdi1, libglib2, libiio, libpcap,
	libseccomp, libssh2, log4cplus, lvm2, mariadb, mender,
	mongodb, mosquitto, musl, nodejs, ntp, openjpeg, owfs, php,
	pure-ftpd, putty, python-aiojobs, qt5webkit, rdesktop, samba4,
	sunxi-tools, supertux, swupdate, tpm2-abrmd, tpm2-tss,
	wavemon, wireshark, vsftpd, xapp_xdm, xen,
	xdriver_xf86-video-fbdev, xlib_libXdmcp

	Issues resolved (http://bugs.uclibc.org):

	#11716: Typo on website, saying latest release is 2018.2.11

2019.02, released March 4th, 2019

	Minor fixes.

	Libressl support added for Qt 5.6 as a replacement for
	openssl, as 5.6 is not compatible with openssl 1.1.x.

	Updated/fixed packages: cutelyst, devmem2, gqrx,
	gst-plugins-bad, libraw, libsoxr, qt5base, runc, systemd, tor

2019.02-rc3, released March 1st, 2019

	Fixes all over the tree.

	Openssl support dropped from Qt 5.6, as it isn't compatible
	with openssl 1.1.x.

	Toolchain: GCC 8.x updated to 8.3.0, fixing a number of
	issues.

	Dependencies: Require CMake 3.8 or newer to fix compilation
	issue with certain packages. If not available, host-cmake will
	instead be built.

	Printvars: Fix performance regression since 2018.02

	Scanypi: Correctly handle underscores in python package names.

	Updated/fixed packages: botan, clamav, cryptopp, i2pd,
	ibrcommon, iproute2, libcpprestsdk, libssh, lua-curl,
	luaexpat, qt5base, runc, stress-ng, syslinux, systemd,
	upmpdcli, zbar

	Issues resolved (http://bugs.uclibc.org):

	#9966: util-linux-2.30/.stamp_built' failed
	#11696: possible typo in board/pc/post-build.sh

2019.02-rc2, released February 23th, 2019

	Fixes all over the tree.

	Removed zynq_zybo defconfig, as it hasn't seen any update
	since it was added in 2016, and uses a U-Boot version not
	compatible with openssl-1.1.x.

	Linux: Ignore user supplied downloadable hashes, as no hash
	checksums are available for those.

	Updated/fixed packages: bind, cryptopp, docker-containerd,
	dtc, efivar, gdb, imagemagick, ipmiutil, libcpprestsdk,
	libcurl, libgpiod, libid3tag, libv4l, log4cplus, luvi,
	madplay, mender, mosquitto, poco, postgresql, proftpd,
	pulseaudio, python-django, qemu, qt5base, qwt, rabbitmq-c,
	reaver, safeclip, stress-ng, swupdate, syslog-ng, systemd,
	tor, unzip, xenomai

	Issues resolved (http://bugs.uclibc.org):

	#11501: compile sdl2 with enable wayland
	#11681: .. unable to initialize decompress status for section..

2019.02-rc1, released February 13th, 2019

	Fixes all over the tree and new features.


	Dependencies:

	Require Python >= 2.7 as it is needed for E.G. building
	libglib2.

	Ensure GNU gzip is used for reproducible tarballs (instead of
	pigz)


	Infrastucture:

	Ensure the PLATFORM and OS environment variables are not set,
	as they cause build issues for some packages.

	The package list infrastructure now correctly handles packages
	installing files with old mtime.

	Add a config option to force all optional host utilities to be
	built, even if suitable versions are available on the build
	machine.

	graph-build-time: Also show time spent downloading

	Download: fixes for SSH/SCP support

	Ensure user provided permissions override permissions from
	packages.

	SDK: Fix handling of relative symlinks (targets starting with
	'.' or '..')

	BR2_SYSTEM_DEFAULT_PATH setting to customize the default path
	for processes.

	The custom skeleton logic will now populate the needed /bin,
	/lib, /sbin directories/symlinks if not present. Merged /usr
	can now be used with a custom skeleton.

	Rootfs overlays can now override symbolic links from
	packages. This was disabled to ensure the correct symbolic
	links are present when merged /usr is used. Instead validate
	that the rootfs overlays do not include invalid /bin, /sbin
	and /lib entries.

	The waf infrastructure now support the <pkg>_SUBDIR variable,
	similar to the other package types.

	cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake

	Various improvements to the meson infrastructure.

	Luarocks: A Buildroot addon has been added to automate
	creating a Buildroot package from luarocks, similar to
	scancpan and scanpypi.

	scanpypi: protect against zip-slip vulnerability in zip/tar
	handling

	check-package: fix Python 3 support

	get-developers: Fix behaviour when called from elsewhere than
	the toplevel directory.

	pkg-stats: Show latest upstream version of each package, based
	on data from release-monitoring.org

	kconfig: Fix for make linux-menuconfig / uboot-menuconfig from
	a clean tree when ccache is enabled.

	Default to sha256 password encoding, drop md5 support.


	Architecture:

	Support for RISC-V 32bit architecture, ARM A55, 75 and Saphira
	variants, MIPS support for mips32r3, mips64r3 and Marvell
	Octeon II/III variants.


	Toolchain:

	ARC toolchain 2018.09, ARM 8.2-2018.11, Codescape IMG/MTI MIPS
	2018.09-02, MUSL 1.1.21, GCC 6.5.0 / 7.4.0, GDB 8.2.1


	Packages:

	openssl: Bump to 1.1.1x series, bringing TLSv1.3 support and
	long term support.

	fftw: Split into fftw-{single,double,long-double,quad}
	packages for the different data precision options.

	libcurl: Now has explicit TLS backend selection options.

	linux: Support building device tree blobs with the -@ option
	for device tree overlays.

	weston: The weston-imx i.MX variant is now used when
	imx-gpu-viv is enabled

	pkgconf: Update to 1.5.3, which brings support for
	--define-prefix (used by GStreamer)

	Add host-python3-setuptools package to handle host python
	packages needing python3 with setuptools support.


	New defconfigs: Aarch64 EFI, Orangepi one plus, Orangepi lite
	2, QEMU RISC-V 32bit virt, Rock64


	New packages: brcm-patchram-plus, clinfo, cunit, docker-cli,
	erlang-p1-eimp, exempi, fail2ban, fftw-double,
	fftw-double-long, fftw-quad, fftw-single, gerbera, grpc,
	gst1-shark, intel-gmmlib, iwd, kf5-kcoreaddons, libeastl,
	libpackagekite, libtorrent-rasterbar, lua-std-debug,
	lua-std-normalize, mini-snmpd, netsurf, pamtester, pcm-tools,
	python-aiodns, python-aiohttp, python-aiohttp-jinja2,
	python-aiohttp-remotes, python-aiohttp-security,
	python-aiohttp-session, python-aiohttpd-sse, python-aiojobs,
	python-cchardet, python-pycares, python-sentry-sdk,
	python-wtforms, python3-setuptools, rcw, rtc-tools, shim,
	utp_com, vmtouch, websocketpp

	Removed packages: fftw, lua 5.2.x, luacrypto, perl-time-hires,
	python-pyqt, qt, qtuio, tn5250

	Issues resolved (http://bugs.uclibc.org):

	#10851: Patch to handle numpad Enter key properly
	#11066: x11r7 X11 S40xorg leads to a black screen on QEMU x86..
	#11126: Bash Shell Programming using Buildroot
	#11426: pps-tools bash dependency
	#11476: stdio2.h error invalid use of __builtin_va_arg_pack
	#11536: dt-utils building fails with glibc 2.28
	#11546: open-vm-tools with glibc 2.28
	#11566: Fix init script
	#11576: Unable to start apache with event MPM on raspberry pi 3
	#11591: [pkgconf 1.5.3] xserver OpenGL support is missing
	#11606: libjpeg has no Config.in
	#11616: 2018.02.09 fails to build libzlib with full RELRO..
	#11656: Custom device tree and u-boot boot.scr not integrated..
	#11666: Touchscreen with (Py)Qt5 should use tslib instead of evdev

2018.11.4, Released March 28th, 2019

	Important / security related fixes.

	Updated/fixed packages: avahi, beecrypt, binutils, botan,
	busybox, clamav, cups, devmem2, efl, fetchmail, file, fltk,
	gcc, gdb, git, go, gst-plugins-bad, iproute2, jq,
	kf5-modemmanager-qt, leveldb, libopenssl, libraw, libseccomp,
	libsoxr, libssh2, mariadb, mosquitto, nodejs, ntp, openjpeg,
	perl, php, putty, qt5webkit, rdesktop, runc, samba4, swupdate,
	systemd, tor, vsftpd, wireshark, xapp_xdm, xen, xlib_libXdmcp

2018.11.3, Released February 23th, 2019

	Important / security related fixes.

	Ensure the PLATFORM and OS environment variables are not set,
	as they cause build issues for some packages.

	The package list infrastructure now correctly handles packages
	installing files with old mtime.

	Linux: Skip hash checks for user supplied downloadable
	patches, as no hash checksums are available for those.

	scanpypi: protect against zip-slip vulnerability in zip/tar
	handling

	Download: fixes for SSH/SCP support

	SDK: Fix handling of relative symlinks (targets starting with
	'.' or '..')

	Updated/fixed packages: bind, dhcpcd, docker-compose,
	docker-containerd, docker-engine, dovecot, dovecot-pigeonhole,
	dtc, efivar, ghostscript, gnuradio, imagemagick, jpeg-turbo,
	libarchive, libb64, libcurl, libgeotiff, libgpiod, libid3tag,
	libupnp18, log4cplus, madplay, meson, mosquitto, openssh, php,
	poco, postgresql, proftpd, pulseaudio, python, python-django,
	python3, qt5base, reaver, runc, sg3_utils, sqlcipher,
	swupdate, systemd, unzip, webkitgtk, xenomai

2018.11.2, Released January 30th, 2019

	Important / security related fixes.

	Defconfigs: Fixes for imx6slevk, imx7dsabresd, imx8mqevk, Lego
	EV3, QEMU AArch64-virt

	Download: Fix scp download handling

	check-package: fix Python 3 support

	get-developers: Fix behaviour when called from elsewhere than
	the toplevel directory.

	kconfig: Fix for make linux-menuconfig / uboot-menuconfig from
	a clean tree when ccache is enabled.

	cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake

	Updated/fixed packages: acpica, apache, apr, avrdude, cargo,
	cc-tool, dash, dhcpdump, dmalloc, docker-containerd, efivar,
	fwts, glibc, gnuchess, gnupg2, go, leveldb, libarchive,
	libassuan, libftdi1, libgpg-error, libhttpparser, libkcapi,
	libmad, libsndfile, libsquish, liburiparser, libwebsock,
	libxml2, lighttpd, llvm, lm-sensors, lua-msgpack-native, lxc,
	mariadb, mbedtls, meson, mosquitto, netatalk, nodejs, odhcp6c,
	openresolv, openssh, pango, patchelf, php, python-django,
	python-numpy, python-pyyaml, rauc, rp-pppoe, s6-networking,
	samba4, sdl_sound, shairport-sync, sqlite, subversion,
	sunxi-cedarx, swupdate, systemd, tcpreplay, tekui, tmp2-abrmd,
	tpm2-tools, tpm2-tss, udisks, unixodbc, usb_modeswitch,
	webkitgtk, wireshark, wolfssl, xapp_rgb, xenomai, xerces

	Issues resolved (http://bugs.uclibc.org):

	#11576: Unable to start apache with event MPM on raspberry pi 3

2018.11.1, Released December 20th, 2018

	Important / security related fixes.

	defconfigs: Fixes for bananapi m2 ultra, ci20

	Download wrapper: Fix for urlencode handling

	Updated/fixed packages: asterisk, docker-compose,
	docker-engine, dt-utils, gnutls, go, grub, libbsd, libcurl,
	libpgpme, libiscsi, liblo, libmpd, libopenssl, liboping,
	libpam-tacplus, libpjsip, linux-firmware, liquid-dsp,
	lua-cqueue, luvi, lxc, lynx, nginx, nodejs, openzwave, php,
	pps-tools, proftpd, prosody, sdl2_net, squashfs, swupdate,
	uclibc, vtu, webkitgtk, wine, xen

	New packages: docker-cli

	Issues resolved (http://bugs.uclibc.org):

	#11426: pps-tools bash dependency
	#11536: dt-utils building fails with glibc 2.28

2018.11, Released December 1st, 2018

	Minor fixes.

	Updated/fixed packages: c-ares, quagga, squid

2018.11-rc3, released November 30th, 2018

	Fixes all over the tree.

	Defconfigs: Fixes for Armadeus APF27, imx6sabre, Olimex A20
	olinuxino lime legacy, Orangepi zero plus 2, PC, Riotboard.

	graph-depends: Fix for package names starting with a non-alpha
	character.

	Updated/fixed packages: alsa-utils, botan, dante, domoticz,
	dtc, freetype, gauche, gcc, gdb, ghostscript, glibc,
	imx-usb-loader, libbsd, libid3tag, libkrb5, libmicrohttpd,
	libopenssl, libsoxr, linux, motion, msgpack, mtd,
	perl-net-ssleay, php, popt, python-numpy, qt5declarative,
	samba4, shadowsocks-libev, stress-ng, systemd, usb_modeswitch,
	webkitgtk, valgrind, weston, xfsprogs

2018.11-rc2, released November 21th, 2018

	Fixes all over the tree.

	fs: Drop intermediate tarball from the filesystem handling to
	fix an issue with xattrs handling related to fakeroot. Ensure
	tarball target includes xattrs.

	download: Fix confusion in git submodule handling if dl/ is a
	symlink.

	genrandconfig: Fix missing newline in BR2_WGET handling,
	causing the following line to be ignored. This would affect
	BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD,
	BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or
	BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization.

	show-build-order: Also include the dependencies of
	rootfs-common.

	Fix a number of build issues in packages for the recently
	merged RISC-V architecture support.

	Updated/fixed packages: dt-utils, easydbus, elfutils,
	flare-engine, flatcc, glibc, gstreamer, gstreamer1, imx-uuc,
	libassuan, libcorrect, libiscsi, libkrb5, libmicrohttpd,
	libnftnl, libnspr, libnss, libsemanage, libsigsegv, libv4l,
	ltp-testsuite, luv, luvi, make, ncmpc, netplug, openocd,
	prosody, qemu, rpm, sconeserver, shadowsocks-libev,
	supertuxcart, syslinux, systemd, trace-cmd, uclibc,
	uclibc-ng-test, vtun, webkitgtk, weston, wireshark, xen,
	xlib_libfontenc

	Issues resolved (http://bugs.uclibc.org):

	#11086: download/git submodule breaks on symlinked dl folder
	#11216: Capabilities not applied to filesystem

2018.11-rc1, released November 9th, 2018

	Fixes all over the tree and new features.

	Architecture: RISC-V support (64bit) added.

	Toolchain: Glibc bumped to 2.28. Fortran support for external
	toolchains. ARM (Linaro) toolchains updated to 8.2-2018.08.

	Hardening flags (RELRO) are now handled by the toolchain
	wrapper instead of explicitly through CFLAGS/LDFLAGS, fixing a
	number of issues.

	Filesystems: Support for creating btrfs and f2fs filesystems
	added.

	Add a number of patches to fix build errors for host utilities
	on modern distributions using glibc-2.28.

	mkusers: Ensure existing group members are preserved when a
	group is reprocessed.

	printvars: Fix issue with exceeding shell command line length
	limits for certain setups.

	Workaround added for incompatibility issues between host-dtc
	and older U-Boot and Linux kernel versions.

	Detect and reject build paths containing '@', as this confuses
	a number of packages, including GCC.

	utils/diffconfig: Make it work for (non-Buildroot) config
	files not using the BR2_ prefix.

	New defconfigs: Amarula a64-relic, Bananapi m2 ultra, Embest
	riotboard, Hardkernel Odroid XU-4, QEMU riscv64-virt.
	olimex_a20_olinuxion_lime_mali is renamed to _legacy.

	OpenCL infrastructure support added, similar to how OpenGL is
	handled.

	Linux-headers: Support for kernel headers from a custom
	tarball / git repo added.

	New packages: bird, bluez5_utils-headers, btrfs-progs,
	checksec, davici, duktape, ell, haproxy, libclc, libcorrect,
	libopencl, libopenresolv, nss-myhostname,
	perl-apache-logformat-compiler, perl-appconfig,
	perl-astro-suntime, perl-class-inspector, perl-class-load,
	perl-class-method-modifiers, perl-class-std,
	perl-class-std-fast, perl-cookie-baker, perl-data-dump,
	perl-data-optlist, perl-data-uuid, perl-data-manip,
	perl-dbd-mysql, perl-dbi, perl-devel-globaldestruction,
	perl-devel-stacktrace, perl-devel-stacktrace-ashtml,
	perl-device-serialport, perl-dist-checkconflicts,
	perl-exporter-tiny, perl-file-sharedir, perl-file-slurp,
	perl-filesys-notify-simple, perl-hash-multivalue,
	perl-http-entity-parser, perl-http-headers-fast,
	perl-http-multipartparser, perl-io-interface,
	perl-io-socket-multicast, perl-json-maybexs, perl-mime-tools,
	perl-module-implementation, perl-module-runtime, perl-moo,
	perl-number-bytes-human, perl-package-stash, perl-params-util,
	perl-plack, perl-posix-strftime-compiler, perl-role-tiny,
	perl-streams-buffered, perl-sub-exporter-progressive,
	perl-sub-install, perl-sub-quote, perl-sys-cpu,
	perl-sys-meminfo, perl-sys-mmap, perl-time-parsedate,
	perl-type-tiny, perl-www-form-urlencoded, perl-x10, pigpio,
	python-async-timeout, python-falcon, python-fire,
	python-mimeparse, python-multidict, python-passlib,
	python-pigpio, python-pip, python-ply, python-py,
	python-pyasn1, python-pyasn1-modules, python-pycryptodomex,
	python-pyhamcrest, python-pysmi, python-scapy, python-semver,
	python-serial-asyncio, python-typing, python-uvloop,
	pythonwrapt, python-yarl, python-zeroconf, riscv-pk, sedutil,
	spandsp, tini, waffle, xapian

	Removed packages: bootutils, dsp-tools, expedite, gst-dsp,
	xloader

	Issues resolved (http://bugs.uclibc.org):

	#11116: Buildroot should set PYTHON_EGG_CACHE instead of writing ..
	#11156: In python3 module 'socket' has no attribute 'AF_BLUETOOTH'
	#11166: Erlang bad argument on valid uint64 when crosscompiled on..
	#11206: zlib: fails to build with Linaro toolchain, BR2_RELRO_FULL..
	#11241: ACPID shouldn't depend on BR2_x86_64 || BR2_i386
	#11251: Util scanpypi failes when package change - to _ in tar file
	#11266: qt5base-5.11.1 does not compile with musl, complains about..
	#11286: python-rpi-gpio only should depend on BR2_arm || BR2_aarch64
	#11321: Latest master fails to build readline with RELRO FULL
	#11326: sysvinit fails to build in latest GIT master
	#11331: Internal application no longer builds with latest GIT master
	#11336: nfs-utils fails to build in latest GIT master
	#11351: build root-2018-08, linaro aarch64 compile error
	#11376: mdmon binary missing
	#11391: Valgind availability on ARM
	#11396: uboot environment image checksum invalid if target is big endian
	#11421: GCC error message for ARM Cortex-A9/ARM.V7
	#11451: Can't find libmpfr.so.4 when using external toolchain on ubuntu..
	#11481: Docs: Is external.desc required?

2018.08.4, Released December 20th, 2018

	Important / security related fixes.

	Defconfigs: Fixes for ci20, orangepi zero plus 2

	Download wrapper: Fix for urlencode handling

	Updated/fixed packages: c-ares, dante, docker-compose,
	domoticz, freetype, ghostscript, gnutls, libcurl, libgpgme,
	libid3tag, libiscsi, libmpd, libopenssl, liboping, libpjsip,
	linux-firmware, liquid-dsp, luvi, lynx, msgpack, nginx,
	nodejs, php, popt, pps-tools, prosody, python-numpy,
	python-requests, samba4, sdl2_net, squashfs, swupdate,
	systemd, uclibc, vte, webkitgtk, wine, xfsprogs

	Issues resolved (http://bugs.uclibc.org):

	#11426: pps-tools bash dependency

2018.08.3, Released November 26th, 2018

	Important / security related fixes.

	fs: Drop intermediate tarball from the filesystem handling to
	fix an issue with xattrs handling related to fakeroot. Ensure
	tarball target includes xattrs.

	download: Fix confusion in git submodule handling if dl/ is a
	symlink.

	toolchain: Only allow enabling stack protection on
	architectures with control flow integrity (CFI) support. Only
	allow FORTIFY_SOURCE support on gcc >= 6.

	genrandconfig: Fix missing newline in BR2_WGET handling,
	causing the following line to be ignored. This would affect
	BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD,
	BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or
	BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization.

	show-build-order: Also include the dependencies of
	rootfs-common.

	Defconfigs: Fixes for Armadeus APF27, imx6sabre, Olimex A20
	olinuxino lime legacy, Orangepi zero plus 2.

	graph-depends: Fix for package names starting with a non-alpha
	character.

	Updated/fixed packages: attr, audit, bind, brotli, busybox,
	dtc, easydbus, elfutils, flare-engine, flatcc, gauche, gcc,
	giflib, gpsd, lcdproc, libcurl, libiscsi, libkcapi, libnfs,
	libnspr, libnss, libsemanage, liburiparser, lighttpd,
	lua-curl, mariadb, mmc, mosquitto, mysql, ncmpc, neardal,
	netplug, network-manager, nfs-utils, nginx, openocd, openswan,
	p11-kit, postgresql, prosody, qemu, qt, rpm, ruby, samba4,
	squid, supertuxkart, systemd, tar, trace-cmd, traceroute,
	twolame, uclibc, usb_modeswitch, vtun, webkitgtk, weston,
	xdriver_xf86-video-geode, xlib_libfontenc, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#11086: download/git submodule breaks on symlinked dl folder
	#11481: Docs: Is external.desc required?

2018.08.2, Released October 25th, 2018

	Important / security related fixes.

	Workaround added for incompatibility issues between host-dtc
	and older U-Boot and Linux kernel versions.

	Detect and reject build paths containing '@', as this confuses
	a number of packages, including GCC.

	utils/get-developers: Add -e option for use with git
	send-email.

	utils/diffconfig: Make it work for (non-Buildroot) config
	files not using the BR2_ prefix.

	u-boot: Fix for environment image handling on big endian
	systems.

	Updated/fixed packages: binutils, ca-certificates,
	cups-filters, dtc, erlang, file, freetype, gcc, git, gvfs,
	jasper, leveldb, libarchive, libssh, live555, ljlinenoise,
	mariadb, mongoose, netsnmp, nmap, nodejs, ntp, open-plc-utils,
	poco, psmisc, ptpd2, python-enum34, qemu, qt, qt5base,
	setools, spice, spice-protocol, tinc, ustr, wireshark,

	Issues resolved (http://bugs.uclibc.org):

	#11396: uboot environment image checksum invalid if target is big endian

2018.08.1, Released October 7th, 2018

	Important / security related fixes.

	Add a number of patches to fix build errors for host utilities
	on modern distributions using glibc-2.28.

	mkusers: Ensure existing group members are preserved when a
	group is reprocessed.

	printvars: Fix issue with exceeding shell command line length
	limits for certain setups.

	Updated/fixed packages: acpid, android-tools, apache,
	arp-scan, bandwidthd, bind, brltty, clamav, connman, cppcms,
	domoticz, dtc, fio, gcc, gdb, ghostscript, gnupg, httpping,
	igmpproxy, imlib2, ipsec-tools, libesmtp, libnfs, libxslt,
	links, lua, mosquitto, nilfs-utils, ocrad, parted, php,
	python-django, screen, shairport-sync, strongswan,
	vboot-utils, webkitgtk, wireguard, x265 xen, xlib_libXdmcp,
	xlib_libXfont, xlib_libXft, xlib_libxshmfence,
	xutil_makedepend, zeromq

2018.08, Released September 6th, 2018

	Minor fixes.

	Known issues:

	- Glibc 2.28 on the build host breaks compilation of a number
	  of host packages. 2018.08 contains fixes for some of these
	  packages, but not all. Consider building on hosts (or in
	  containers) using older Glibc versions.

	- host-dtc 1.4.7 breaks compilation of older U-Boot and Linux
          kernel configurations using FDT/DTC. Consider updating the
          Linux kernel to >= 4.17 and U-Boot to >= 2018.07 or
          backporting commit 9130ba8846 (scripts/dtc: Update to
          upstream version v1.4.6-9-gaadd0b65c987) for the Linux
          kernel / commit db405d1980 for U-Boot.
	  Alternatively revert commit 7b929ddcf0 (dtc: bump version to
          1.4.7) and ensure your build host does not have the libfdt
          development headers installed.

	Updated/fixed packages: busybox, chipmunk, cutelyst,
	domoticz, gcc, imagemagick, lcms2, libcurl, mediastreamer,
	moarvm, php, qt, qt5virtualkeyboard, qt5webengine, screen,
	sdl2, squashfs, uboot, xen

	Issues resolved (http://bugs.uclibc.org):

	#11261: ccache using wrong cached objects
	#11276: Understanding the patch for kernel-4.9 and other..

2018.08-rc3, Released August 31th, 2018

	Fixes all over the tree.

	linux: additional improvements to the flex / bison dependency
	handling, use system provided variant if available. Ensure
	toolchain is available when configuring for 4.18+ support.

	Download: Fix handling of primary sites using file://

	Toolchain: Correct external toolchain musl detection for
	static toolchains.

	Updated/fixed packages: aircrack-ng, bison, brltty, busybox,
	cutelyst, dropbear, gr-osmosdr, i2c-tools, json-c, libconfuse,
	libkcapi, libsoup, libssh, liburiparser, mbedtls, mender,
	mesa3d, minicom, mjpegtools, mutt, openpowerlink, openssh,
	oracle-mysql, php, postgresql, pv, qt5base, qt5quickcontrols,
	rauc, shairport-sync, systemd, xlib_libX11, zeromq,

	Issues resolved (http://bugs.uclibc.org):

	#11091: BR2_PRIMARY_SITE doesn't work (wget is selected...
	#11141: WF111 package no longer available
	#11211: Internal compiler error: Killed (program cc1plus)..
	#11236: util-linux fails to build on Travis CI when python..
	#11246: Glibc 2.28 - fails to build host-bison and host-m4
	#11256: Add python-falcon and python-mimeparse packages

2018.08-rc2, Released August 20th, 2018

	Fixes all over the tree.

	pkg-kconfig: Support dependencies needed to run the
	configurator, E.G. recent Linux kernel versions needing flex
	and bison.

	Defconfigs: ARM Juno: Bump ATF to fix a build
	issue. Raspberrypi2: Bump rootfs size. Snps_archs38_vdk:
	Correct /etc/inittab. Technologic ts7680: Correct genimage
	configuration. Orange PI PC / Zero, Sheevaplug: Bump U-boot to
	2018.07 to fix build issue. Ensure host-openssl is pulled in
	for kernel builds where needed.

	Updated/fixed packages: aircrack-ng, bind, boost,
	boot-wrapper-aarch64, bzip2, busybox, chrony, cryptsetup,
	dahdi-tools, dbus, domoticz, eigen, ipsec-tools, libarchive,
	libfuse, libgit2, libopenssl, libselinux, lighttpd, lvm2, m4,
	makedevs, mariadb, mesa3d-headers, mono, ncmpc, ncurses,
	nodejs, php, python-django, python-pyqt5, qt5base,
	qt5serialbus, ruby, samba4, uboot-tools, uclibc, vlc,
	waylandpp, wireless_tools, wireshark, wpa_supplicant, mtd,
	xdriver_xf86-video-ati, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#10781: cryptsetup luksOpen container_file container causes..
	#10996: bogus musl ARM toolchain
	#11191: xattr and check-package issue

2018.08-rc1, Released August 5th, 2018

	Toolchain:

	- add support for gcc 8.x, switch to gcc 7.x as the default
	  version
	- add support for gdb 8.1, switch to gdb 8.0 as the default
	  and remove gdb 7.10/7.11
	- add support for binutils 2.31
	- NIOSII CodeSourcery toolchain updated
	- Linaro AArch64 BE toolchain added, and other Linaro
	  toolchains updated
	- Synopsys ARC pre-built toolchain updated

	Architecture: add support for ARM Cortex-M7

	Major updates:

	- systemd bumped to 239
	- Qt5 bumped to 5.11.1
	- Rust bumped to 1.27
	- GStreamer stack bumped to 1.14.2
	- X.org server bumped to 1.20, and all X.org proto packages
	  replaced by the single xorgproto package
	- i.MX6 support packages bumped to 6.2.4
	- i.MX Vivante graphics version bumped to 6.2.4.p1.2,
	  adding support for Wayland and i.MX8MQ platforms

	Linux: bumped to 4.17 by default.

	Infrastructure: new package infrastructure added for packages
	using the Meson build system

	New packages: at-spi2-atk, at-spi2-core, capnproto, cmocka,
	corkscrew, cutelyst, davfs2, flatcc, libidn2, libgit2,
	libopusenc, mender, nghttp2, perl-convert-asn1, perl-crypt-blowfish,
	perl-crypt-cbc, perl-digest-md5, perl-mime-base64-urlsafe,
	perl-mojolicious-plugin-authentication, perl-net-ping,
	perl-net-snmp, perl-net-ssh2, perl-net-telnet, pigz,
	python-reentry, python-request-id, python-validators,
	python-webob, shadowsocks-libev, speexdsp, xorgproto, wampcc

	New defconfigs: NXP i.MX7D SDB, Boundary Devices Nitrogen 8M,
	Olimex A10 OLinuxino, ZynqMP ZCU106

	Removed packages: all xproto_* have been removed and replaced
	by xorgproto

	Issues resolved (http://bugs.uclibc.org):

	#9411:	MUSL build with RT Error relocating /lib/libgcc_s.so.1:
		__cpu_indicator_init: symbol not found
	#9921: lockfile module within python-daemon not	 available
	#10341: gdb install of py files when using buildroot toolchain
		includes build path
	#10661: /etc/init.d/S29netplug starts multiple	instances of netplugd
	#10751: Missing dependency in pulseaudio package
	#10811: kodi-17.6-Krypton does not compile for	freescale_* devices
	#10856: openblas on qemu_x86_64_defconfig fails with
		"sgemm_kernel.o: No such file or directory"
	#11056: Compiling a file that uses libdrm headers fails with:
		fatal error: drm.h: No such file or directory
	#11061: support/download: git version=master broken
	#11071: Building postgresql package on Debian 9.4  x64 for armel target fails
	#11076: Docker containerd installed to incorrect  path
	#11101: host-patchelf Endian Issue with relative  RPATH
	#11111: raspberry pi 3 b+: missing BSP for 64-bit  kernel
	#11121: statfs call corrupts memory struct statfs  too small
	#11181: Switching toolchain does not work

2018.05.3, Released October 6th, 2018

	Important / security related fixes.

	Add a number of patches to fix build errors for host utilities
	on modern distributions using glibc-2.28.

	mkusers: Ensure existing group members are preserved when a
	group is reprocessed.

	printvars: Fix issue with exceeding shell command line length
	limits for certain setups.

	Updated/fixed packages: acpid, android-tools, apache,
	arp-scan, bandwidthd, bind, bison, brltty, chipmunk, connman,
	cppcms, fio, gcc, ghostscript, gnupg, httping, igmpproxy,
	imagemagick, imlib2, ipsec-tools, lcm2, libcurl, libesmtp,
	libnfs, libssh, libxslt, links, mediastreamer, minicom,
	moarvm, nilfs-utils, ocrad, parted, php, postgresql, pv,
	python-django, qt, qt5quickcontrols, qt5webengine, screen,
	sdl2, shairport-sync, squashfs, strongswan, vboot-utils,
	webkitgtk, wireguard, x265, xen, xlib_libXfont, xlib_libXft,
	xlib_libxshmfence, zeromq

2018.05.2, Released August 28th, 2018

	Important / security related fixes.

	Defconfigs: Raspberrypi2: Bump rootfs size, T7680: Fix
	genimage.cfg issue, ARM Juno: Bump ATF to v1.3 to fix build
	issue.

	Updated/fixed packages: acl, attr, apache, bind,
	boot-wrapper-aarch64, brltty, bzip2, chrony, crda, cryptsetup,
	dahdi-tools, dmidecode, dropbear, eigen, ffmpeg, gawk, gcc,
	ghostscript, gnutls, imx-gpu-viv, ipsec-tools, libarchive,
	libfuse, libglib2, libopenssl, libselinux, libsoup, lighttpd,
	linuxptp, lttng-modules, lttng-tools, lua-flu, lvm2, m4,
	makedevs, mariadb, mbedtls, mesa3d-heders, mtd, ncurses,
	nodejs, openssh, php, python-django, rauc, ruby, samba4,
	stress-ng, ti-utils, uboot-tools, uclibc, vim, waylandpp,
	wireless_tools, wireless-regdb, wireshark, wpa_supplicant,
	xorriso, znc

	Issues resolved (http://bugs.uclibc.org):

	#10781: cryptsetup luksOpen container_file container causes..
	#10986: Installing package attr when already supplied by..
	#11191: xattr and check-package issue

2018.05.1, Released July 20th, 2018

	Important / security related fixes.

	U-Boot: Ensure host version of ncurses is picked up and not
	host-ncurses built by buildroot, as that otherwise causes
	widechar/non-widechar conflicts and corrupted menuconfig
	menus.

	Linux: Enable CONFIG_PERF_EVENTS when perf is enabled.

	Toolchain: ARC tools updated to arc-2018.03.

	pkg-stats: Fix python 3.x compatibility.

	dl-wrapper: Fix support for URIs containing '+', fix
	no-check-hash for inferred site method.

	Defconfigs: Raspberrypi3: Bump rootfs size, Minnowboard-max:
	Support ethernet on Turbot variant.

	Updated/fixed packages: audit, bind, btrfs-progs, cifs-utils,
	clamav, collectd, coreutils, docker-containerd, dos2unix,
	edid-decode, file, gcc, gdb, gnupg, gnupg2, heimdal, hidapi,
	imagemagick, libcurl, libgcrypt, libglib2, liblogging,
	libostree, libressl, libsoup, libv4l, libvncserver, libvorbis,
	libwebsockets, libxslt, lm-sensors, mariadb, mpg123, ncurses,
	network-manager, nodejs, patchelf, perl, php-amqp, pinentry,
	pixiewps, qpdf, qt53d, qt5base, qt5charts, qt5script, redis,
	systemd, triggerhappy, uboot, wireguard, wireless-regdb,
	wireshark

2018.05, Released June 1st, 2018

	Minor fixes.

	Download: Work around for hanging connections for packages
	from CVS, by adding a 10 minute max timeout.

	Updated/fixed packages: binutils, clang, dash, expect, git,
	glibc, jpeg-turbo, libjpeg, log4cplus, openvmtools, xen,

	Issues resolved (http://bugs.uclibc.org):

	#11051: runtime issue on STM32 with usage of binutils 2.29.x

2018.05-rc3, Released May 28th, 2018

	Fixes all over the tree.

	Toolchain: ARC tools updated to arc-2018.03-rc2.

	Fs: Ensure hard links in TARGET_DIR are correctly copied for
	filesystem input. With the recent changes to the file system
	generation logic, hard links were "expanded" in file system
	images leading to bloated rootfs images for setups with hard
	links.

	Infrastructure: Error out for packages using the 'local'
	method but forgetting to specify <pkg>_SITE.

	Build rpcgen for the host when needed to support distributions
	no longer shipping rpcgen with glibc (E.G. recent Fedora).

	Updated/fixed packages: autofs, bash-completion, binutils,
	busybox, cjson, elf2flt, libcoap, libcurl, libtirpc, lrzsz,
	poppler, procps-ng, qt-webkit-kiosk, quota, samba4, xfsprogs

	Issues resolved (http://bugs.uclibc.org):

	#11031: ld-elf2flt: host/bin/ld.real': execvp: No such file..
	#11036: C compiler cannot create executables
	#11046: Git package binaries are ~180MB (compared to ~20MB in..

2018.05-rc2, Released May 22nd, 2018

	Fixes all over the tree.

	Dependencies: Check that the current working directory (.)
	isn't listed in PATH as that causes various build issues.

	Manual: Clarify that git branch names may not be used as
	version identifiers. This has never been supported, but was
	kind of working (with some limitations) before the git
	download rework - Now it does not work at all.

	Linux: Ensure host version of ncurses is picked up and not
	host-ncurses built by buildroot, as that otherwise causes
	widechar/non-widechar conflicts and corrupted menuconfig
	menus.

	Packages: Renamed a number of package options not prefixed
	with BR2_PACKAGE_<pkg> for consstency.

	Download infrastructure: Fix file:// protocol handling after
	download rework.

	Updated/fixed packages: acl, apr-util, asterisk, attr,
	bluez5_utils, cifs-utils, clamav, clang, cups-filters,
	dahdi-linux, exim, faketime, gdb, go, gst1-plugins-bad,
	imx-mkimage, ipsec-tools, jamvm, janus-gateway,
	jquery-ui-themes, libcap, libcurl, libftdi, libkcapi, libkrb5,
	libmediaart, libmodbus, libmodplug, libmpd,
	libnetfilter_cthelper, libnetfilter_cttimeout, libnfc,
	libnfnetlink, libnss, liboauth, libogg, libosip2,
	libpam-radius-auth, libpcap, libpciaccess, llvm, log4cplus,
	ltrace, lynx, mbedtls, modem-manager, nfs-utils,
	python-cython, python-websockets, qt5cinex, qt5wayland, rauc,
	snort, strace, ti-sgx-km, transmission, wavpack, wget, woff2,
	xen, zmqpp, znc, zstd

	Issues resolved (http://bugs.uclibc.org):

	#10986: Installing package attr when already supplied by...
	#11011: BUildroot for Raspberry Pi 2
	#11016: Wrong compiler used for external user host packages

2018.05-rc1, Released May 9th, 2018

	Toolchain: glibc bumped to 2.27, musl bumped to 1.1.19,
	uClibc-ng 1.0.30, Linux kernel headers bumped to 4.16.x.

	Architecture: support for the Blackfin architecture has been
	removed, as it was removed from Linux upstream, poorly
	maintained in binutils/gdb, and abandoned by Analog Devices.

	Numerous packages updated to have hashes for their license
	files.

	Systemd can now be built with uClibc toolchains.

	Linux: addition of BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF and
	BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL to support building Linux
	kernel configurations that need libelf on the host or openssl
	on the host.

	Coding style:
	- all Python scripts are now verified with flake8
	- check-package extended to check all Config.in and .mk files
	  in tree, not only the ones in package/

	Infrastructure:

	- The download infrastructure has seen a major overhaul, with
	  the main visible new feature being Git caching: a package
	  fetched from Git no longer needs to be re-cloned entirely
	  everytime its version is changed. Anoter visible change is
	  that the download folder now has subfolders per package. See
	  http://lists.busybox.net/pipermail/buildroot/2018-April/217923.html
	  for more details about those changes.

	- The logic that generates the root filesystem images has been
	  reworked, with the main goal of allowing several filesystem
	  images to be produced in parallel, also a requirement for
	  top-level parallel build. Now, a .tar filesystem image is
	  always created, and re-extracted in a private directory to
	  create each format-specific filesystem image.

	- A new package infrastructure was introduced for Go-based
	  packages: golang-package.

	- Dependencies on extraction tools are now handled as proper
	  per-package dependencies, using
	  <pkg>_EXTRACT_DEPENDENCIES. Beyond a cleanup, this is also a
	  preparation step for top-level parallel build support.

	- When a file being downloaded is part of a package with a
	  .hash file, but there is no hash listed for this file, the
	  file is now preserved in the download directory rather than
	  removed. This helps when updating a package, as it gives the
	  ability to easily calculate the hash of the file.

	- Addition of '<pkg>-show-recursive-depends' and
	  '<pkg>-show-recursive-rdepends' make targets, to
	  respectively display the recursive list of dependencies and
	  the recursive list of reverse dependencies of a given
	  package.

	- The /etc/shells file is now automatically generated with the
	  list of shell programs installed on the system.

	- Addition of -Ofast optimization level as an available
	  option.

	Major updates: Go updated to 1.10, Erlang bumped to 20.3, Qt5
	bumped to 5.10.1.

	New packages: 18xx-ti-utils, abootimg, bluez-alsa, brotli,
	chipmunk, clang, docker-compose, docker-proxy, flare-engine,
	flare-game, gst1-interpipe, gstreamer1-editing-services,
	hackrf, i2pd, imx-alsa-plugins, imx-mkimage, libcdio-paranoia,
	libkrb5, llvm, pixiewps, python-backports-ssl-match-hostname,
	python-cached-property, python-cython, python-docker,
	python-dockerpty, python-docker-pycreds,
	python-flask-sqlalchemy, python-functools32, python-influxdb,
	python-json-models, python-libusb1, python-networkx,
	python-psycopg2, python-pymodbus, python-sqlalchemy,
	python-subprocess32, python-texttable,
	python-websocket-client, python-yieldfrom, quotatool, reaver,
	snort, sunxi-mali-mainline, sunxi-mali-mainline-driver, tk,
	tpm2-abrmd, tpm2-tools, tpm2-tss, udftools, vte, woff2.

	New defconfigs: ARC HS Development Kit, Arcturus ucls1012a,
	Freescale i.MX6UL EVK (with vendor kernel), Freescale i.MX6
	SoloLite EVK (with vendor kernel), Freescale i.MX31 3Stack,
	Freescale i.MX8Q EVK Freescale p1025twr, Freescale t1040d4rdb,
	Qemu PPC64 E5500, SolidRun ClearFog Base, Tinker RK3288, Vyasa
	RK3288,

	Removed packages: iqvlinux, kodi-adsp-*, mplayer

	Removed defconfigs: ci40, firefly_rk3288,
	freescale_p1010rdb_pa, freescale_mpc8315erdb, riotboard,
	teliv_evk_pro3

	Issues resolved (http://bugs.uclibc.org):

	#10151: toolchain eclipse register : fails with a custom
		BR2_HOST_DIR
	#10511: Packages get downloaded uncompressed with wget
	#10531: QtWebengine doesn't build if the host hasn't a 32 bits
		C++ compiler working
	#10846: error in compiling gnutls
	#10886: openssl-1.0.2n fails to build
	#10896: /bin/sh not in /etc/shells
	#10961: Grub2 fails to build for x86_64 when BR2_SSP_ALL is
		enabled

2018.02.12, Released March 29th, 2019

	Important / security related fixes.

	Updated/fixed packages: avahi, beecrypt, busybox, clamav,
	cups, devmem2, fetchmail, file, fltk, gcc, gdb, git, jq,
	leveldb, libopenssl, libraw, libseccomp, libssh2,
	libunistring, mariadb, mosquitto, nodejs, ntp, openjpeg, perl,
	php, putty, qt5webkit, rdesktop, systemd, wireshark, vsftpd,
	xapp_xdm, xlib_libXdmcp

2018.02.11, Released February 23th, 2019

	Important / security related fixes.

	Ensure the PLATFORM and OS environment variables are not set,
	as they cause build issues for some packages.

	The package list infrastructure now correctly handles packages
	installing files with old mtime.

	Linux: Skip hash checks for user supplied downloadable
	patches, as no hash checksums are available for those.

	scanpypi: protect against zip-slip vulnerability in zip/tar
	handling

	Updated/fixed packages: bind, dhcpcd, dovecot, ghostscript,
	gnuradio, imagemagick, jpeg-turbo, libarchive, libb64,
	libcurl, libid3tag, madplay, mosquitto, openssh, php,
	postgresql, proftpd, python, python-django, python3, qt5base,
	sqlcipher, swupdate, systemd, unzip, webkitgtk

2018.02.10, Released January 31th, 2019

	Important / security related fixes.

	Defconfigs: Fixes for Lego EV3, QEMU AArch64-virt

	check-package: fix Python 3 support

	get-developers: Fix behaviour when called from elsewhere than
	the toplevel directory.

	cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake

	Updated/fixed packages: acpica, apache, apr, asterisk,
	avrdude, cargo, cc-tool, dash, dhcpdump, dmalloc, gnuchess,
	gnupg2, leveldb, libarchive, libassuan, libftdi1,
	libgpg-error, libhttpparser, libmad, libsndfile, libsquish,
	liburiparser, libwebsock, libxml2, lighttpd, lm-sensors,
	lua-msgpack-native, mbedtls, mosquitto, netatalk, nodejs,
	openssh, pango, patchelf, php, python-django, python-pyyaml,
	rauc, rp-pppoe, s6-networking, samba4, sdl_sound,
	shairport-sync, sqlite, subversion, sunxi-cedarx, tcpreplay,
	tekui, usb_modeswitch, webkitgtk, wireshark, wolfssl,
	xapp_rgb, xenomai, xerces

	Issues resolved (http://bugs.uclibc.org):

	#11576: Unable to start apache with event MPM on raspberry pi 3

2018.02.9, Released December 20th, 2018

	Important / security related fixes.

	defconfigs: Fixes for ci20

	Updated/fixed packages: c-ares, dante, freetype, ghostscript,
	glibc, gnutls, go, libcurl, libgpgme, libid3tag, libiscsi,
	libmpd, libopenssl, libpjsip, linux, liquid-dsp, luvi, lynx,
	msgpack, nginx, nodejs, php, popt, pps-tools, python-numpy,
	python-requests, samba4, sdl2_net, squashfs, swupdate, uclibc,
	wine, webkitgtk, xfsprogs

	Issues resolved (http://bugs.uclibc.org):

	#11426: pps-tools bash dependency

2018.02.8, Released November 26th, 2018

	Important / security related fixes.

	fs: Drop intermediate tarball from the filesystem handling to
	fix an issue with xattrs handling related to fakeroot. Ensure
	tarball target includes xattrs.

	download: Fix confusion in git submodule handling if dl/ is a
	symlink.

	toolchain: Only allow enabling stack protection on
	architectures with control flow integrity (CFI) support. Only
	allow FORTIFY_SOURCE support on gcc >= 6.

	genrandconfig: Fix missing newline in BR2_WGET handling,
	causing the following line to be ignored. This would affect
	BR2_ENABLE_DEBUG, BR2_INIT_BUSYBOX, BR2_INIT_SYSTEMD,
	BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV, BR2_STATIC_LIBS or
	BR2_PACKAGE_PYTHON_PY_ONLY depending on the randomization.

	show-build-order: Also include the dependencies of
	rootfs-common.

	Defconfigs: Fixes for Armadeus APF27, imx6sabre.

	graph-depends: Fix for package names starting with a non-alpha
	character.

	Updated/fixed packages: attr, audit, bind, brotli, easydbus,
	elfutils, gauche, gcc, giflib, gpsd, lcdproc, libcurl,
	libiscsi, libnfs, libnspr, libnss, libkcapi, libsemanage,
	liburiparser, lighttpd, linux, lua-curl, mariadb, mmc-utils,
	mosquitto, mysql, neardal, netplug, network-manager,
	nfs-utils, nginx, openocd, openswan, p11-kit, postgresql,
	prosody, qemu, qt, rpm, ruby, samba4, squid, supertuxkart,
	systemd, tar, trace-cmd, traceroute, twolame, uclibc,
	usb_modeswitch, vtun, webkitgtk, xdriver_xf86-video-geode,
	xlib_libfontenc, xproto_inputproto, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#11086: download/git submodule breaks on symlinked dl folder
	#11251: Util scanpypi failes when package change - to _ in..
	#11476: stdio2.h error invalid use of __builtin_va_arg_pack
	#11481: Docs: Is external.desc required?

2018.02.7, Released October 25th, 2018

	Important / security related fixes.

	Detect and reject build paths containing '@', as this confuses
	a number of packages, including GCC.

	utils/get-developers: Add -e option for use with git
	send-email.

	utils/diffconfig: Make it work for (non-Buildroot) config
	files not using the BR2_ prefix.

	u-boot: Fix for environment image handling on big endian
	systems.

	Updated/fixed packages: binutils, ca-certificates,
	cups-filters, erlang, file, freetype, gcc, git, gvfs, leveldb,
	libarchive, libcurl, libssh, live555, ljlinenoise, mariadb,
	mongoose, netsnmp, nmap, nodejs, ntp, open-plc-utils, poco,
	psmisc, ptpd2, python-enum34, qemu, qt, qt5base, setools,
	spice, spice-protocol, tinc, ustr, wireshark

	Issues resolved (http://bugs.uclibc.org):

	#11396: uboot environment image checksum invalid if target is big endian

2018.02.6, Released October 7th, 2018

	Important / security related fixes.

	Add a number of patches to fix build errors for host utilities
	on modern distributions using glibc-2.28.

	mkusers: Ensure existing group members are preserved when a
	group is reprocessed.

	printvars: Fix issue with exceeding shell command line length
	limits for certain setups.

	Updated/fixes packages: acpid, android-tools, apache,
	arp-scan, bandwidthd, bind, bison, clamav, connman, cppcms,
	cramfs, fio, gcc, ghostscript, glibc, gnupg, httping,
	igmpproxy, imagemagick, imlib2, ipsec-tools, lcms2, libcurl,
	libesmtp, libnfs, libssh, libxslt, links, linuxptp,
	mediastreamer, minicom, moarvm, nilfs-utils, ocrad, parted,
	php, pv, python-django, qt, qt5quickcontrols, qt5webengine,
	screen, sdl2, shairport-sync, squashfs, strongswan,
	vboot-utils, webkitgtk, wireguard, x265, xen, xlib_libXfont,
	xlib_libXft

	New packages: brotli, woff2

2018.02.5, Released August 29th, 2018

	Important / security related fixes.

	Defconfigs: Raspberrypi2: Bump rootfs size, T7680: Fix
	genimage.cfg issue, ARM Juno: Bump ATF to v1.3 to fix build
	issue.

	Updated/fixed packages: acl, apache, attr, bind,
	boot-wrapper-aarch64, brltty, bzip2, chrony, crda, cryptsetup,
	dahdi-tools, dmidecode, dropbear, eigen, erlang, ffmpeg, gawk,
	gcc, ghostscript, gnutls, ipsec-tools, libarchive, libfuse,
	libopenssl, libselinux, libsoup, lighttpd, linuxptp,
	lttng-modules, lttng-tools, lua-flu, lvm2, m4, makedevs,
	mariadb, mbedtls, mesa3d-headers, mtd, ncurses, nodejs,
	openssh, php, postgresql, python-django, qt5xmlpatterns, ruby,
	samba4, shairport-sync, stress-ng, ti-utils, uboot-tools, vim,
	waylandpp, wireless_tools, wireshark, wpa_supplicant, xorriso,
	znc

	Issues resolved (http://bugs.uclibc.org):

	#10781: cryptsetup luksOpen container_file container causes..
	#10986: Installing package attr when already supplied by..
	#11191: xattr and check-package issue

2018.02.4, Released July 21th, 2018

	Important / security related fixes.

	U-Boot: Ensure host version of ncurses is picked up and not
	host-ncurses built by buildroot, as that otherwise causes
	widechar/non-widechar conflicts and corrupted menuconfig
	menus.

	Linux: Enable CONFIG_PERF_EVENTS when perf is enabled.

	Defconfigs: Raspberrypi3: Bump rootfs size, Minnowboard-max:
	Support ethernet on Turbot variant.

	Updated/fixed packages: bind, clamav, collectd, dos2unix,
	edid-decode, gcc, gdb, heimdal, hidapi, imx-gpu-viv, libcurl,
	libglib2, liblogging, libostree, libsoup, libv4l, lm-sensors,
	ncurses, network-manager, patchelf, pinentry, procps-ng, qpdf,
	qt5, qt53d, qt5base, qt5charts, qt5script, qt5serialport,
	systemd, wireguard, wireless-regdb

	Issues resolved (http://bugs.uclibc.org):

	#11101: host-patchelf Endian Issue with relative RPATH

2018.02.3, Released June 18th, 2018

	Important / security related fixes.

	Various fixes for building on modern distributions (GCC 8.x,
	no rpcgen utility).

	ARM: Default to binutils 2.28 and warn about newer binutils
	versions, which are known to cause boot failures for Linux
	kernels built in thumb mode.

	Busybox/mdev: Fix module autoloading.

	Busybox/sysvinit: inittab: Add /dev/{stdin,stdout,stderr}
	symlinks, call swapon -a to activate any configured swap
	devices.

	Dependencies: Check that PATH does not contain current working
	directory, which triggers a number of build failures.

	Infrastructure: Error out for packages erroneously using the
	'local' site method but not defining a _SITE.

	Linux: Fix cuImage.<dtb> / simpleImage.<dtb> handling.  Ensure
	kconfig uses ncurses from the host to fix a ncurses/ncursesw
	mixup, causing menuconfig display corruption.

	Toolchain: Workarounds for fix-rpath issues with binutils and
	elf2flt.

	Util-linux: Fix blocking on getrandom() issue with recent
	kernels.

	Remove broken freescale_imx31_3stack,
	freescale_imx6sololiteevk and freescale_imx6ulevk defconfigs.

	Updated/fixed packages: apr-util, asterisk, attr, audit,
	autofs, binutils, busybox, cifs-utils, cups-filters, dash,
	ebtables, exim, expect, f2fs-tools, faketime, file, gdb, git,
	glibc, gnupg, gnupg2, gst1-plugins-bad, imagemagick, jamvm,
	jpeg-turbo, libcap, libcoap, libcurl, libgcrypt, libjpeg,
	libnss, libressl, libtirpc, libvncserver, libvorbis, libxslt,
	log4cplus, lrzsz, ltrace, lynx, mariadb, mbedtls, mpg123,
	nasm, netplug, network-manager, nfs-utils, nodejs,
	openvmtools, patch, perl, php-amqp, poppler, procps-ng,
	python, python-websockets, quota, redis, samba4, sysvinit,
	transmission, triggerhappy, util-linux, wavpack, wget,
	wireshark, xen, zmqpp

	Issues resolved (http://bugs.uclibc.org):

	#10986: Installing package attr when already supplied by busybox..
	#11031: ld-elf2flt: host/bin/ld.real': execvp: No such file or..

2018.02.2, Released May 4th, 2018

	Important / security related fixes.

	Tweak package size/file instrumentation to better handle
	package rebuilds.

	Revert /etc/shells creation when bash is enabled.

	Exclude /lib/firmware from the rpath fixup logic, as it may
	contain non-native ELF files.

	Scanpypi: Support the new PyPi infrastructure.

	Handle GCC 8.x on the host.

	Ensure timestamp of /usr is updated to support the systemd
	ConditionNeedsUpdate option.

	Updated/fixed packages: bluez5_utils, flann, gdb, gnupg2,
	grub2, libcec, libcgi, libglib2, libgpg-error, libgpgme,
	libtomcrypt, mbedtls, mkpasswd, php, python, python-requests,
	python-watchdog, qt53d, qt5websockets, sdl2, sdl2_image,
	syslog-ng, systemd, tcl, tcllib, uclibc, usb_modeswitch,
	wireguard, wmctrl

	Issues resolved (http://bugs.uclibc.org):

	#10896: /bin/sh not in /etc/shells
	#10961: Grub2 fails to build for x86_64 when BR2_SSP_ALL is enabled

2018.02.1, Released April 9th, 2018

	Important / security related fixes.

	Removed unmaintained defconfigs: Creator Ci40, Firefly rk3288,
	Freescale mpc8315erdb / p1010rdb_pa, Riotboard, Teliv EVK
	Pro3.

	Infrastructure: Speed up instrumentation for package size by
	comparing timestamps instead of md5 checksums, as doing
	checksums could lead to up to 25% longer build time for big
	configurations.

	Rename the internal <pkg>_BASE_NAME variable to <pkg>_NASENAME
	to avoid name clashes with packages ending on '-base'.

	Add a better fix for build issues for autotools based packages
	checking for C++ support on toolchains without C++ support.

	Build host-tar if tar is older than 1.27 on the build machine
	to work around reproducibility issues with git archives
	containing long paths.

	check-unique-files: Fix for filenames not representable in the
	users' locale.

	Check-bin-arch: Add support for per-package ignore paths
	(<pkg>_BIN_ARCH_EXCLUDE).

	Toolchain: Fix SSP support detection for external toolchains.

	linux: Add _NEEDS_HOST_OPENSSL / LIBELF options to ensure
	these dependencies are available for Linux configurations
	needed these dependencies, similar to how it is done for
	U-Boot.

	Support custom (not in tree) device tree files in addition to
	in-tree ones.

	U-Boot / uboot-tools: Fix header conflict with libfdt-devel
	installed on host.

	Updated/fixed packages: apache, busybox, c-ares, cmake,
	docker-engine, enlightenment, eudev, fbgrab, freescale-imx,
	gtest, imagemagick, intel-microcode, irssi, jimtcl, kmod,
	kodi, ktap, libcoap, libcurl, libfcgi, libhttpparser,
	libminiupnpc, libopenssl, libpjsip, libss7, libssh2, libupnp
	libupnpp, libuv, libvorbis, memcached, motion, musl, nodejs,
	ntp, openblas, opencv3, openocd, opus-tools, patch, php,
	pkgconf, postgresql, powerpc-utils, python-jsonschema,
	python-webpy, qemu, qt5bsae, qt5script, qt5webkit, rapidjson,
	rauc, sam-ba, samba4, sngrep, systemd, tremor, uboot-tools,
	uclibc-ng-test, upmpdcli, wireshark, xerces, xterm, zstd

	New packages: docker-proxy, python-functools32

	Issues resolved (http://bugs.uclibc.org):

	#10766: upmpdcli: Segmentation fault
	#10776: ktap fails to build
	#10846: error in compiling gnutls
	#10856: openblas on qemu_x86_64_defconfig fails with "sgemm_..

2018.02, Released March 4th, 2018

	Fixes all over the tree.

	Issues with systemd with a readonly rootfs and DBus fixed.

	Instructure:
	- check-uniq-files: fix Python 2.6 compatibility.
	- dependencies.sh: check for external argparse module for
	  Python 2.6.
	- Add infrastructure to detect and use a UTF-8 locale on the
	  host, needed by systemd.

	Update/fixed packages: clamav, dash, dhcp, dovecot, efl,
	ffmpeg, libv4l, mono, mosquitto, php, postgresql, qt,
	scanpypi, sdl2, systemd, tor, tvheadend, uboot, wavpack

	Issues resolved (http://bugs.uclibc.org):

	#10831: qemu_x86_64_defconfig build fails on linux-headers..

2018.02-rc3, Released February 27th, 2018

	Fixes all over the tree.

	check-bin-arch: skip /lib/modules to allow 32-bit userland
	with 64bit kernel.

	dependencies: Blacklist tar 1.30+ and build our own host-tar
	if needed as tar 1.30+ changed the --numeric-owner output for
	long path names. Build host-tar before other host-dependencies
	as they need it to extract their source tarballs.

	Update/fixed packages: asterisk, azmq, bluez5_utils, domoticz,
	e2fsprogs, erlang, exim, glibc, gpsd, jq, libglib2, libvorbis,
	mariadb, mbedtls, mesa3d, mesa3d-headers, mpv, patch, pcre2,
	php, qt5, qt5multimedia, qt5wayland, qt5webengine, qt5webkit,
	systemd, quagga, rustc, uboot, wireguard, zic, zlib-ng

	Issues resolved (http://bugs.uclibc.org):

	#10726: Current libglib2.mk creates broken libglib2 binary...
	#10786: Linux fails to build unless make linux-menuconfig...
	#10796: Cannot generate cpio image without selecting CON...

2018.02-rc2, Released February 15th, 2018

	Fixes all over the tree.

	Dependencies: Ensure C++ support is available like for C
	support for packages needing 32bit host support.

	utils/genrandconfig: Check host dependencies for config.

	Updated/fixed packages: busybox, dnsmasq, dropbear, ffmpeg,
	glibc, keepalived, libcpprestsdk, libgpiod, libmaxminddb,
	librsvg, libtasn1, libv4l, libxml2, lightning, ltp-testsuite,
	mesa3d, mesa3d-demos, mesa3d-headers, nftables, open-lldp,
	php, postgresql, python-crossbar, qt5, qt53d, qt5enginio,
	qt5tools, qt5webengine, qt5webkit, rsync, rust-bin, rustc,
	systemd

	Issues resolved (http://bugs.uclibc.org):

	#9781: ti-sgx-km build on kernel >4.1
	#10141: Squashfs extended attribute failures

2018.02-rc1, Released February 5th, 2018

	The global source-check and per-package <pkg>-source-check
	targets have been removed.

	Architecture: Add x86 Silvermont variant. Add several new ARM
	variants, rework MIPS NaN logic. Support mainline binutils/gcc
	for ARC.

	Toolchains: Linaro toolchains upgraded to 2017.11 release, ARC
	external toolchains upgraded to arc-2017.09. Libatomic is now
	also copied for external musl based toolchains.
	Add binutils 2.30.x and switch to binutils 2.29.x by default.

	Added hardening options to build with RELRO and FORTITY.

	New defconfigs: Bananapi M64, FriendlyARM Nanopi A64 & NEO2,
	imx6slevk, imx6sx-sdb, imx6ulevk, Olimex A64-OLinuXino,
	Orangepi lite / pc plus / pc / prime / win / win plus / zero
	plus2, Pine64, Solidrun MacchiatoBin. Sopine.

	Add utils/diffconfig, a simple utility for comparing
	configuration files - Adapted from the version in the
	Linux kernel.

	Infrastructure: Check that the same file is not touched by
	multiple packages, as a preparation for toplevel parallel
	builds.

	Hashes for the license files for a large number of packages
	have been added, ensuring that license changes will not be
	missed when packages are bumped.

	Fix build issue for autotools based packages checking for C++
	support on toolchains without C++ support and on a distro
	lacking /lib/cpp (E.G. Arch Linux).

	Support for the meson build system.

	Pie charts generated by 'graph-build' or 'graph-size' are now
	sorted according to the size of each piece.

	System: Only show getty options when busybox init or sysvinit
	are used.

	ARM-trusted-firmware: Support ATF bundled in U-Boot as
	well as U-Boot bundled in ATF.

	Zlib is now a virtual package, provided by either libzlib or
	zlib-ng, similar to openssl.

	Support for the Rust programming language.

	New packages: aoetools, armbian-firmware, binaries-marvell,
	brltty, cargo, cargo-bin, cups-filters, curlpp, daq,
	flatbuffers, gconf, glorytun, gstreamer1-mm, imx-m4fwloader,
	imx-gpu-g2d, json-for-modern-cpp, libcpprestsdk, libgta,
	libostree, libupnp18, luadbi, luadbi-sqlite3, lua-utf8, lynx,
	meson, mv-ddr-marvell, nilfs-utils, opentracing-cpp,
	open-lldp, pimd, proj, python-flask-cors,
	python-jaraco-classes, python-more-itertools, python-oauthlib,
	python-raven, python-remi, python-requests-oauthlib,
	python-schedule, python-secretstorage, python-see,
	python-tabledata, python-txtorcon, python-xlib, qt5charts,
	rtl8189fs, rtl8723bu, rust, rustc, rust-bin, rygel, safeclib,
	solatus, tcf-agent, traceroute, waylandpp, wolfssl,
	zisofs-tools, zlib-ng

	Removed packages: eeprog

2017.11.2, Released January 21st, 2018

	Important / security related fixes.

	External toolchain: libatomic is now also copied for musl
	based toolchains.

	nconfig: Fix for ncurses/ncursesw linking issue causing crashes.

	System: Only show getty options when busybox init or sysvinit
	are used.

	Infrastructure: Fix build issue for autotools based packages
	checking for C++ support on toolchains without C++ support and
	on a distro lacking /lib/cpp (E.G. Arch Linux).

	Pie charts generated by 'graph-build' or 'graph-size' are now
	sorted according to the size of each piece.

	Updated/fixed packages: asterisk, avahi, bind, busybox,
	coreutils, eeprog, intel-microcode, iputils, irssi, kmsxx,
	libiio, linux-firmware, lz4, mariadb, matchbox-lib, mcookie,
	ntp, php, pound, rpcbind, tar, ti-cgt-pru, webkitgtk, xen,
	xlib_libXpm

	Issues resolved (http://bugs.buildroot.org):

	#9996: lz4 package does not install lz4 binaries in target
	#10176: Rsyslog's S01logging is deleted by Busybox.mk from...
	#10216: package/x11r7/mcookie/mcookie.c:207: bad size ?
	#10301: systemd/getty unused options
	#10331: kmsxx, host installation fails with BR2_SHARED_...
	#10556: Building ntp package with SSL library libressl...
	#10641: avahi-autoipd not starting when using systemd-tmpfiles

2017.11.1, Released December 31th, 2017

	Important / security related fixes.

	Updated/fixed packages: asterisk, checkpolicy, dhcp, flann,
	gdb, glibc, heimdal, kodi-pvr-mediaportal-tvserver,
	kodi-pvr-stalker, libcue, libopenssl, libpqxx, libsoxr,
	linknx, linux-tools, lldpd, ltp-testsuite, mariadb, mfgtools,
	nodejs, nut, pulseaudio, python-cffi, qemu, rsync, tor, uboot,
	uboot-tools, vlc, webkitgtk, weston, wireguard, wireshark,
	xenomai, xfsprogs

2017.11, Released November 30, 2017

	Fixes all over the tree.

	Toolchain: Use github mirror for Glibc.

	Defconfigs: Correct boot.cmd for bananapi-m1.

	Makefiles: Workaround include order issues for certain make
	versions by explicitly sorting the result of wildcard where it
	matters.

	Download: Ensure subversion runs in non-interactive mode.

	Updated/fixed packages: asterisk, boost, chrony, dovecot,
	dvb-apps, exim, feh, freerdp, fwup, google-breakpad, jose,
	kvm-unit-test, lftp, libcurl, libevent, libfastjson, libpjsip,
	libupnp, linphone, localedef, lttng-tools, mp4v2, mtools,
	ndisc6, oracle-mysql, parted, pdbg, qt, qt5connectivity,
	qt5declarative, qt5webkit, rauc, runc, samba4, shairport-sync,
	systemd-bootchart, webkitgtk, wireguard, xlib_libXcursor,
	xlib_libXfont, xlib_libXfont2,

	Issues resolved (http://bugs.buildroot.org):

	10501: host-localedef fails to compile on Ubuntu 17.10
	10506: Changed kernel image type (e.g. zImage to uImage)...

2017.11-rc2, Released November 13th, 2017

	Fixes all over the tree.

	Updated/fixed packages: collectd, ffmpeg, freerdp,
	go-bootstrap, imagemagick, jimtcl, libpjsip, libplist, libuv,
	mesa3d, nodejs, ntp, openjpeg, postgresql, python-numpy, ruby,
	snmp++, usb_modeswitch, util-linux, vboot-utils, webkitgtk,
	wireshark, wpa_supplicant, xapp_xdriinfo

	Issues resolved (http://bugs.buildroot.org):

	#10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y
	#10491: Cannot output security warning when compiled with buildroot..

2017.11-rc1, Released November 6th, 2017

	Fixes all over the tree and new features.

	Openssl is now a virtual package, which may be provided by
	OpenSSL (now renamed to libopenssl) or LibreSSL.

	libssh2: there is now an explicit choice of the backend to use
	(mbedtls, gnutls or openssl). Previously, the choice was implicit
	based on the TLS library that was selected. Now, it is possible to
	choose the backend, which is important if several TLS libraries are
	selected.

	netsnmp: all MIB files are now installed, making the target filesystem a
	bit bigger than before. To remove unneeded MIBS, you should use a
	post-build script.

	Toolchain: Linaro toolchains updated to 2017.08, ARC toolchain
	updated to 2017.09, Glibc updated to 2.26, Glibc support for
	ARCv2. The toolchain wrapper now handles SOURCE_DATE_EPOCH for
	older (pre-gcc7.x) toolchains for BR2_REPRODUCIBLE.

	New defconfigs: Atmel SAM45D27, Bananapi M1 and M2 Plus,
	Engicam i.CoreM6 Qt5 configuration, i.MX6 sabreauto (mainline
	kernel/u-boot), i.MX6Q sabresd Qt5 configuration, i.MX7d-pico,
	QEMU ppc64le, Raspberry pi3 Qt5 webengine configuration,
	Technologic TS-7680.

	New packages: asterisk, azmq, bcg729, boinc, dahdi-linux,
	dahdi-tools, freeswitch-mod-bcg729, fscryptctl, libb64,
	libpri, libss7, lua-basexx, lua-compat53, lua-cqueues,
	lua-curl, lua-datafile, lua-fifo, lua-httpd,
	lua-lpeg-patterns, lua-markdown, lua-sailor, lua-value,
	luksmeta, minetest, minetest-game, pdmenu, prosody,
	python-aiocoap, python-automat, python-ibmiotf,
	python-iso8601, python-m2r, python-simplesqlite,
	python-websockets, python-xmltodict, qt5wayland, qt5webengine,
	restorecond, selinux-python, semodule-utils, uhubctl,
	wireguard, wsapi-fcgi, wsapi-xavante

	Removed packages: aiccu, rfkill, sepolgen

	Issues resolved (http://bugs.buildroot.org):

	#10281: lsblk does not compile for util-linux
	#10336: lttng compilation fails : linking error
	#10351: glibc missing in rootfs
	#10356: nfs-utils missing header
	#10361: python3 python-config script generates invalid includes
	#10366: dropbear download url has changed
	#10391: WiringPi retrieves wrong (old) version
	#10406: Beaglebone black: Buggy SGX driver version, swapped...
	#10426: uboot-tools' fw_setenv does not update the redundant...
	#10451: libpcap 1.8.x and 1.7x does not compile on PPC

2017.08.2, Released November 28th, 2017

	Important / security related fixes.

	Qt: 5.6 version updated to 5.6.3.

	Reproducible: Do not override SOURCE_DATE_EPOCH if already set
	in the environment.

	Makefiles: Workaround include order issues for certain make
	versions by explicitly sorting the result of wildcard where it
	matters.

	Updated/fixed packages: apr, apr-util, arqp-standalone,
	azure-iot-sdk-c, collectd, dvb-apps, ffmpeg, go-bootstrap,
	google-breakpad, gstreamer, imagemagick, irssi, jimtcl,
	kvm-unit-test, libcurl, libfastjson, libglib2, libidn,
	libpjsip, libplist, localedef, lttng-tools, luajit, mesa3d,
	moarvm, mp4v2, openssh, openssl, oracle-mysql, postgresql,
	python3, python-pyqt5, qt, qt5base, qt5canvas3d,
	qt5connectivity, qt5declarative, qt5engineio,
	qt5graphicaleffects, qt5imageformats, qt5location,
	qt5multimedia, qt5quickcontrols, qt5quickcontrols2, qt5script,
	qt5sensors, qt5serialbus, qt5serialport, qt5svg, qt5tools,
	qt5webchannel, qt5webkit, qt5websockets, qt5x11extras,
	qt5xmlpatterns, quagga, redis, ruby, samba4, sdl2, snmppp,
	swupdate, ti-gfx, uboot-tools, usb_modeswitch, vboot-utils,
	webkitgtk, wget, wireshark, xapp_xdriinfo.

	Issues resolved (http://bugs.buildroot.org):

	10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y
	10361: python3 python-config script generates invalid includes
	10501: host-localedef fails to compile on Ubuntu 17.10

2017.08.1, Released October 23rd, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.18.x series, fixing a large number
	of security issues.

	Defconfigs: galileo: fix ext4 related kernel config, bump
	kernel for gcc 6.x compatibility, enable wchar support for
	grub2. wandboard: correct rootfs offset

	support: Ensure gzip compression level 6 is used for git
	tarballs. check-bin-arch: Correctly handle (ignore) symbolic
	links. check-rpath: Also handle PIE binaries

	External toolchain: Correctly handle glibc Buildroot
	toolchains built with merged /usr

	musl: fix ARMv4 build with binutils 2.27.51+, fix for
	CVE-2017-15650

	Updated/fixed packages: apache, augeas, bind, bluez5_utils,
	busybox, bzip2, cmake, dnsmasq, ejabberd, gcc, git, go, ffmpeg, file,
	flashrom, gd, gdk-pixbug, gnupg2, hostapd, ifupdown-scripts,
	imagemagick, iucode-tool, kernel-module-imx-gpu-viv, lame,
	libarchive, libcurl, libffi, libidn, libmbim, libnspr, libnss,
	libressl, librsync, libsoup, libxml2, libzip, mbedtls, musl,
	netplug, nginx, openvpn, pkgconf, poppler, proxychains-ng,
	qemu, qt, rpi-userland, syslog, ruby, samba4, softether,
	sqlite, strongswan, subversion, supertuxkart, supervisor, tcpdump,
	tor, unrar, urq, vboot-utils, webkitgtk, wpa_supplicant, xen,
	xmlstarlet, xlib_libXfont, xlib_libXfont2,
	xserver_xorg-server, zsh

2017.08, Released September 1st, 2017

	Minor fixes.

	Toolchain: Don't allow internal toolchain builds for MIPS
	M6201/P6600, as support for these are not yet in mainline GCC.

	Updated/fixed packages: bcusdk, connman, dialog, dnsmasq,
	gnupg, grub2, iostat, iucode-tool, libgcrypt, libkcapi,
	libphidget, libv4l, linux-tools, mediastreamer, minidlna,
	nss-pam-ldapd, nvidia-driver, qt-webkit-kiosk, rpcbind, squid,
	transmission, vde2, vim

	Updated/fixed defconfigs:

	Removed packages: simicfs.

	Issues resolved (http://bugs.buildroot.org):

	#10261: Grub2 fails to build for x86_64

2017.08-rc3, Released August 23rd, 2017

	Fixes all over the tree.

	Updated/fixed packages: alsa-lib, alsa-utils, cc-tool,
	dbus-cpp, e2fsprogs, elf2flt, faad2, fakeroot, gcc, git, gpsd,
	gst1-validate, kvmtool, libconfuse, libepoxy, librsync,
	libspatialindex, libunwind, linux, linux-headers, lua,
	mariadb, mesa3d, mtd, openocd, python3, syslinux, sysvinit,
	whois, xen, zmqpp.

	Updated/fixed defconfigs: ci20, socrates_cyclone5,
	toradex_apalis_imx6.

	Removed defconfig: Armadeus APF9328.

	skeleton-* packages introduced in -rc1 have been renamed to
	skeleton-init-* instead.

	Issues resolved (http://bugs.buildroot.org):

	#10141: Squashfs extended attribute failures

2017.08-rc2, Released August 11th, 2017

	Fixes all over the tree.

	Updated/fixed packages: bind, dbus, erlang-p1-xml, faad2,
	ficl, gcc, gdb, glibc, jack2, libcurl, linux, linux-headers,
	lua, mutt, nvme, qt5base, skeleton-common, snappy, stella,
	swupdate, uclibc, valgrind, webkitgtk.

	Updated/fixed defconfigs: beaglebone_qt5, minnowboard_max,
	nanopi_m1{, _plus}, olimex_a20_olinuxino_lime, qemu_sparc,
	qemu_sparc64.

	The cmake-package infrastructure for host packages has been
	fixed to not incorrectly detect target packages through
	pkg-config.

	Issues resolved (http://bugs.buildroot.org):

	#9926:  systemd-resolved.service: Failed at step NAMESPACE (systemd 233)
	#10021: libqeglfs-viv-integration.so file is missing for qt5 on armv7
	#10026: lua-5.3.4: fix lua linker error in swupdate
	#10146: package/skeleton-common fix recursive variable
	#10156: glibc compilation fails for X86 32bits (i386)
	#10201: toolchain-wrapper.c:192: (error) Memory leak:
	#10221: Buildroot Support

2017.08-rc1, Released August 2nd, 2017

	Infrastructure:

	- The skeleton package has been split into multiple packages:
	  skeleton-sysv (when Busybox or SysV init are used),
	  skeleton-systemd (when systemd is used), skeleton-none (when
	  no init system is used) and skeleton-custom (when a custom
	  skeleton is used). Those packages, except skeleton-custom,
	  share common logic and data in a new package called
	  skeleton-common. The skeleton package becomes a virtual
	  package. This change allows to generate a filesystem that is
	  compliant with systemd expectations.

	- Support for using a read-only filesystem with systemd has
	  been fixed.

	- Major revamp of the gettext handling, with user-visible
	  effect:

	  - prior to this revamp, when BR2_ENABLE_LOCALE=y, each
	    package could decide to enable or not NLS support. When
	    BR2_ENABLE_LOCALE was disabled, NLS support was forced off
	    by passing --disable-nls to packages.

	  - after this revamp, a new BR2_SYSTEM_ENABLE_NLS option
	    controls whether NLS support should be enabled or not in
	    packages. This option defaults to disabled, which means
	    that now, NLS support is by default disabled in all
	    packages.

	  Therefore, if you need NLS support in packages, you must now
	  explicitly enable the BR2_SYSTEM_ENABLE_NLS option.

	- The host directory no longer has a usr/ component. This
	  makes it much more natural to use that directory as an
	  externally used toolchain. For compatibility with existing
	  scripts, a usr -> . link is still added.

	- Hashes are now checked on tarballs by Buildroot when a
	  package is sourced from a Git repository.

	- Patches are no longer being downloaded from Github, since
	  auto-generated patches could change over time, and break
	  hashes. All patches that were downloaded from Github are now
	  stored in their respective package directories.

	- Hash files in packages can now contain hashes for the
	  license files contained in the package source code. This
	  allows to detect changes in such license files.

	- Binaries in $(TARGET_DIR) are now cleaned up from invalid
	  RPATHs at the end of the build.

	- A new "make sdk" target prepares $(HOST_DIR) to be
	  relocatable: turns RPATHs in host binaries into relocatable
	  ones, removes bogus RPATHs from staging binaries/libraries,
	  and provides a relocate-sdk script that can be executed to
	  relocate the SDK after installation.

	- Addition of utils/genrandconfig which generates a random
	  configuration based on a set of pre-defined toolchain
	  configurations (support/config-fragments/autobuild/) and a
	  random selection of packages. It is now used by the
	  autobuilders to generate the random configurations.

	Filesystems:

	- ext2/3/4 filesystems are now generated using mkfs.ext from
	  e2fsprogs instead of using genext2fs.

	Architecture:

	- Addition of support for ARM big.LITTLE variants
	- Improved MIPS support, with options to select NaN encoding
	  and FP32 mode.

	Toolchain:

	- Switch to gcc 6.x as the default gcc version, add support
	  for gcc 7.x, remove support for gcc 4.8
	- Switch to binutils 2.28 as the default binutils version, add
	  support for binutils 2.29, remove support for binutils 2.26
	- Support added for gdb 8.0
	- uClibc-ng bumped to 1.0.26
	- CodeSourcery toolchains for x86 and SuperH have been
	  removed, they were using a too old glibc version
	  (2.17). External toolchains with glibc 2.17 or earlier are
	  no longer supported.
	- The version selection in the glibc package has been
	  removed. Like musl and uClibc-ng, we now use the latest
	  glibc version.
	- Improved support for Xtensa toolchain overlays, which can
	  now be downloaded.

	Tools:

	- Numerous improvements to the runtime test infrastructure
	- Tests are now executed by Gitlab CI on a regular basis
	- Tools that are directly useful to the user have been moved
	  from support/scripts/ to utils/: brmake, check-package,
	  get-developers, scancpan, scanpipy, size-stats-compare,
	  test-pkg.

	New defconfigs: A13 Olinuxino, Engicam platforms (i.CoreM6
	Solo/Dual/DualLite/Quad, RQS SOM, GEAM6UL SOM, Is.IoT MX6UL
	SOM), Nano Pi M1 (Plus), OrangePi Zero and Plus.

	New packages: azure-iot-sdk-c, cracklib, dt-utils, easy-rsa,
	erlang-jiffy, erlang-p1-oauth2, erlang-p1-xmpp,
	ifupdown-scripts, irrlicht, kodi-inputstream-adaptive,
	kodi-inputstream-rtmp, kvazaar, let-me-create, libloki,
	libpwquality, libressl, libspatialindex, libva-utils,
	linuxconsoletools, linuxptp, luaossl, lua-sdl2, lua-stdlib,
	lsscsi, paxtest, pcre2, pixz, python-asn1crypto,
	python-backports-shutil-get-terminal-size, python-bcrypt,
	python-cheroot, python-h2, python-hpack, python-hyperframe,
	python-hyperlink, python-ipython-genutils, python-pathlib2,
	python-pickleshare, python-priority, python-portend,
	python-scandir, python-systemd, python-tempora,
	python-traitlets, python-typepy, qt5virtualkeyboard,
	ratpoison, rauc, refpolicy, rhash, sdl2_mixer, sdl2_net,
	xr819-xradio, zstd

	Removed packages: cloog, input-tools, mke2img

	Issues resolved (http://bugs.buildroot.org):

	#7892: systemd-journald is broken
	#9341: avahi-utils does not compile with uClibc +  libglib2
	#9441: Link BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY to
	       BR2_ENABLE_DEBUG
	#9746: ext4 image generated by Buildroot is not working
	       properly with U-Boot
	#9886: Build fails with "unexpected EOF while looking for
	       matching `"'" if PATH contains a newline
	#9891: parted 3.1 => 3.2?
	#9911: qt5 does not build on sparc
	#9916: qt5 does not build on
	       arm-buildroot-linux-uclibcgnueabihf for ARMv8 cores
	#9936: Host QEMU does not build with SDL support because of
	       pkg-config
	#9941: nodejs option disappears for arm
	#9951: SCANCPAN failure
	#9966: util-linux-2.30/.stamp_built' failed
	#9976: License file for package 'rtl8821au' incorrect
	#9991: SGX Error implicit declaration of function
	       ‘dmac_map_area’
	#10011: wget does not work from Buildroot
	#10036: Buildroot builds Raspbian Jessie headless image
		presenting incorrect prompt
	#10051: make: *** No rule to make target
		'raspberrpi3_defconfig'. Stop reported with Buildroot
		v2017.05.1
	#10056: No .config file was produced in /buildroot folder
	#10061: gcc5.4 buildroot toolchain for powerpc libsanitizer
		failure
	#10071: fakeroot: replace hard-coded paths in post install
	#10076: Makefile:4113: recipe for target 'all-gcc'  failed
	#10091: gcc7.1 does not build with graphite support due to old
		isl
	#10121: webkit without the multimedia option causes build
		error

2017.05.2, Released July 27th, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.16.x series, fixing a large number
	of security issues.

	host-aespipe compile fix for Debian/Gentoo/Ubuntu toolchains
	which default to PIE mode.

	Updated/fixed packages: aespipe, apache, bind, binutils,
	busybox, ccache, collectd, dieharder, efibootmgr, efivar,
	expat, ffmpeg, gcc, heimdal, iproute2, irssi, libglib2,
	libmemcached, libosip2, libtirpc, libxml-parser-perl,
	linux-fusion, linux-zigbee, mpg123, orc, pcre, php, protobuf,
	pulseaudio, python-setproctitle, qt5base, rpi-firmware,
	samba4, syslinux, systemd, spice, tcpdump, tiff, uboot-tools,
	webkitgtk, x265, xserver_xorg-server, xvisor

	Issues resolved (http://bugs.buildroot.org):

	#10061: gcc5.4 buildroot toolchain for powerpc libsanitizer...

2017.05.1, Released July 4th, 2017

	Important / security related fixes.

	Update support/scripts/scancpan to use METACPAN v1 API as v0
	has been shutdown.

	Update support/scripts/mkusers to handle setups where
	/etc/shadow is a symlink.

	External toolchain: Don't create musl dynamic loader symlink
	for static builds.

	Setlocalversion: Correct detection of mercurial revisions for
	non-tagged versions.

	Defconfigs: at91sam9x5ek_mmc: workaround boot rom issue.

	Updated/fixed packages: apache, automake, bind, botan, c-ares,
	dhcp, expat, fcgiwrap, gcc, gdb, gesftpserver, glibc, glmark2,
	gnutls, gst1-plugins-bad, imagemagick, imx-uuc, intltool,
	iperf, ipsec-tools, irssi, kmod, libcurl, libgcrypt, libmad,
	libnl, lugaro, mosquitto, mpg123, ncurses, nodejs, ntp,
	openssh, openvpn, pngquant, python-simplegeneric, qt5base,
	qt5multimedia, rtl8821au, socat, spice, systemd, tor, trinity,
	tslib, vlc, x264, xen, xlib_libxshmfenc, xserver_xorg-server

	Issues resolved (http://bugs.buildroot.org):

	#9976: License file for package 'rtl8821au' incorrect

2017.05, Released May 31st, 2017

	Minor fixes.

	External toolchain: musl dynamic linker symlink for mips-sf
	corrected.

	Updated/fixed packages: agentpp, bash, exim, hans, madplay,
	qpid-proton, rtl8188eu, snmppp, stm32flash, strongswan, sudo,
	xen

	Issues resolved (http://bugs.buildroot.org):

	#9906: genimage: Disk full

2017.05-rc3, Released May 30th, 2017

	Fixes all over the tree.

	ARC toolchain bumped to 2017.03

	Runtime testing improvements and cleanups.

	Updated/fixed packages: acpica, armadillo, audiofile, c-icap,
	cppcms, dhcp, docker-engine, dropbear, elfutils, erlang,
	fbgrab, ffmpeg, flashrom, ftop, gnutls, google-breakpad,
	keepalived, kodi, libcdio, libepoxy, libev, libminiupnpc,
	libqmi, libtasn1, libv4l, mariadb, mono, mosh, mosquitto,
	mxml, ntp, opencv, openpowerlink, oracle-mysql, popt,
	pulseview, python-enum34, rabbitmq-c, redis, samba4, stella,
	xen

	Removed packages: firejail, ola

	Issues resolved (http://bugs.buildroot.org):

	#9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set
	#9876: aarch64 support with gcc 4.8 toolchain
	#9896: host-gcc-initial error downloading because incorrect URL

2017.05-rc2, Released May 17th, 2017

	Fixes all over the tree.

	ARC toolchain bumped to 2017.03-rc2

	Updated/fixed packages: bluez_utils, boost, clamav, daemon,
	efibootmgr, efl, espeak, expedite, faketime, ffmpeg, fxload,
	git, gpsd, kvm-unit-tests, libcdio, libv4l, lua, mke2img,
	mpir, mpv, odroid-scripts, openblas, opencv3, openvpn, php,
	postgresql, protobuf, qt5declarative, qwt, radvd, rpcbind,
	rtmpdump, strongswan, sudo, ltp-testsuite, uclibc-ng-test,
	vlc, x11vnc, xfsprogs

	Issues resolved (http://bugs.buildroot.org):

	#9796: source-check broken for Git downloads
	#9866: BASE_DIR usage

2017.05-rc1, Released May 8th, 2017

	Fixes all over the tree and new features.

	Infrastructure:

	- Installed binaries are now checked for correct architecture
	  to catch natively built binaries or binaries built for other
	  architecture variants.

	- Luarocks infrastructure improvements to extraction handling,
	  support for upstream name != Buildroot package name.

	- 'make printvars' output format has changed to make it easier
	  to use in scripts. It now has options to quote the variables
	  and to show the expanded/unexpanded values.

	- Automatic ext2 rootfs size calculation has been removed. The
	  logic was not working working reliable in all setups as it
	  depends on the host filesystem behaviour, so instead now the
	  size has to be specified explicitly (defaults to 60MB).

	- The git download infrastructure now ensures that GNU format
	  tar files are created.

	- Fixed a variable clashing issue in the mkusers script with
	  internal bash variables.

	- Fakeroot now links against libacl to fix issues on
	  distributions using acls.

	- Correct permissions for /dev/pts/ptmx when systemd is used
	  with recent glibc versions.

	- br2-external: Improve error reporting.

	- A wrapper script for genimage has been added in
	  support/scripts/genimage.sh for easy use of genimage from
	  post-image scripts.

	- A script to check for common style issues in new packages
	  before submitting has been added in support/scripts/check-package

	- Defconfigs are now tested by gitlab-CI instead of Travis:
	  https://gitlab.com/buildroot.org/buildroot

	- Infrastructure for runtime testing has been added to
          support/testing

	Toolchain:

	- External linaro toolchains updated to 2017.02, ARC toolchain
          updated to 2017.03-rc1, NIOSII CodeSourcery to 2017.05

	- A number of fixes and improvements to the external toolchain
	  handling, including C library detection, multilib and ld.so
	  handling

	- Glibc 2.25 and uClibc-ng 1.0.24 added, wordexp support enabled
          for uClibc-ng

	- Binutils 2.28 added and default changed to 2.27


	Architectures:

	- Support for the C-SKY architecture has been added.


	License handling:

	- The package license markings for legal info now uses the
	  SPDX short identifiers for the license string where possible.

	- License info has been improved / added for a number of packages.


	Misc:

	- Cmake 3.7.x installed on the host is no longer ignored as a
          workaround for the RPATH issues has been implemented.

	- Docker-engine can now be built statically on an otherwise
	  dynamic linked build for docker-in-docker setups.

	- U-Boot now supports out-of-tree device trees, similar to
          Linux

	- Nodejs 0.10.x support (and with it, support for <ARMv6) has
          been removed as this is now EOL upstream.

	New defconfigs: AT91sam9x5ek dev/mmc/mmc-dev, banana pro,
	Nationalchip gx6605s, MIPS creator ci40, nexbox a95x, 64bit
	defconfig for raspberry pi 3, stm32f429-disc1.

	The raspberry pi zero-w and rpi3 compute module are now also
	supported by the rpi0 / rpi3 defconfigs, beaglebone green is
	supported by the beaglebone defconfig.

	Removed defconfig: minnowboard, via imx6 vab820, altera
	socdk/sockit

	New packages: arp-scan, atest, augeas, bluez-tools, daemon,
	dc3dd, dieharder, execline, fmt, ghostscript, gqrx,
	gst1-vaapi, jo, keepalived, kmscube, kodi-jsonschemabuilder,
	kodi-skin-confluence, kodi-texturepacker, lensfun, leptonica,
	libbson, libcsv, libgphoto2, libkcapi, libmaxminddb,
	libmediaart, libnpth, libscrypt, lua-bit32, lua-resty-http,
	lugaru, memtool, mpir, nanomsg, physfs, phytool, pngquant,
	python-decorator, python-simplegeneric,
	python-sortedcontainers, rpi-bt-firmware, rpi-wifi-firmware,
	s6, s6-dns, s6-linux-init, s6-linux-utils, s6-networking,
	s6-portable-utils, s6-rc, supertux, tesseract-ocr,
	uccp420wlan, wilink-bt-firmware

	Broken packages: ola

	Removed packages: cosmo, kodi-visualisation-fountain,
	polarssl, portmap, xdriver_xf86-video-glide,
	xdriver_xf86-video-v4l, xdriver_xf86-video-wsfb

	Issues resolved (http://bugs.buildroot.org):

	#8831: image generation fails on host ZFS due to "no free space"
	#9436: e2fsprogs remove busybox applets even of unselected e2fs..
	#9456: mkusers script bash errors
	#9496: mke2img fails during build on ntfs-3g host partition
	#9531: NPM fails to build embedded modules
	#9596: KODI: --enable-lirc needs "HAVE_LIRC" compiler definition..
	#9691: Wrong cryptsetup package include files location
	#9696: Wrong cryptsetup package include files location
	#9706: Can't download newer revisions of package from PyPI
	#9711: Recent libCEC version bump seems to break kodi package
	#9716: exit, shutdown, reboot from kodi
	#9721: version 2017.02: no acceptable m4 could be found in $PATH
	#9726: Raspberry Pi version B - Problems with UART speed in..
	#9751: expat legal info - manifest.csv: GPLv2 Source site: MIT..
	#9756: glibc fails to build on buildroot-sh4*-buildroot-linux-gnu
	#9766: support/scripts/pkgutil.py conflicts with the pkgutil.py..
	#9776: libubox build failed
	#9791: Python searches for packages in the user site directory
	#9806: libseccomp is not available when BR2_arm=y
	#9826: post-build scritp - symlinks created in post-build script..
	#9836: triggerhappy: systemd unit broken
	#9846: musl libc not installed correctly in target folder
	#9856: build libubox failed on ubuntu 17.04 64bit

2017.02.11, Released April 11th, 2018

	Important / security related fixes.

	dependencies: Blacklist tar 1.30+ and build our own host-tar
	if needed as tar 1.30+ changed the --numeric-owner output for
	long path names. Build host-tar before other host-dependencies
	as they need it to extract their source tarballs.

	Updated/fixed packages: apache, busybox, clamav, dhcp,
	dnsmasq, dovecot, exim, imagemagick, irssi, jq, libcurl,
	libpjsip, librsvg, libtasn1, libvorbis, libxml2, lz4, mariadb,
	mbedtls, mosquitto, ntp, openblas, opencv3, openssl, patch,
	postgresql, python-webpy, qt53d, qt5tools, quagga, rsync,
	samba4, sngrep, tremor, wavpack, wireshark, xerces, xterm

	Issues resolved (http://bugs.uclibc.org):

	#10856: openblas on qemu_x86_64_defconfig fails with "sgemm_..

2017.02.10, Released January 31st, 2018

	Important / security related fixes.

	nconfig: Fix for ncurses/ncursesw linking issue causing crashes.

	System: Only show getty options when busybox init or sysvinit
	are used.

	Infrastructure: Fix build issue for autotools based packages
	checking for C++ support on toolchains without C++ support and
	on a distro lacking /lib/cpp (E.G. Arch Linux).

	Updated/fixed packages: avahi, berkeleydb, bind, busybox,
	ccache, clamav, coreutils, dovecot, eeprog, eudev, fis,
	intel-microcode, iputils, irssi, kmsxx, libcurl, liberation,
	libiio, lz4, mariadb, matchbox-lib, mcookie, openocd, php,
	pound, rpcbind, squid, tar, ti-cgt-pru, transmission,
	util-linux, webkitgtk, wireshark, xen

	Issues resolved (http://bugs.buildroot.org):

	#9996: lz4 package does not install lz4 binaries in target
	#10176: Rsyslog's S01logging is deleted by Busybox.mk from...
	#10216: package/x11r7/mcookie/mcookie.c:207: bad size ?
	#10301: systemd/getty unused options
	#10331: kmsxx, host installation fails with BR2_SHARED_...
	#10536: Finding non-relative paths in the ccache
	#10641: avahi-autoipd not starting when using systemd-tmpfiles

2017.02.9, Released January 1st, 2018

	Important / security related fixes.

	Fix divide by zero issue in size-stats script.

	Fix makefile include ordering issue with certain make versions
	in the external toolchain handling.

	Updated/fixed packages: dhcp, exim, flann, gdb, heimdal,
	libcue, libcurl, libevent, libpqxx, libsoxr, linphone, lldpd,
	mariadb, mfgtools, mtools, nodejs, nut, openssl, rsync,
	samba4, tor, vlc, webkitgtk, wireshark, xfsprogs,
	xlib_libXcursor, xlib_libXfont, xlib_libXfont2

2017.02.8, Released November 27th, 2017

	Important / security related fixes.

	Qt: 5.6 version updated to 5.6.3.

	Reproducible: Do not override SOURCE_DATE_EPOCH if already set
	in the environment.

	Updated/fixed packages: apr, apr-util, arqp-standalone,
	collectd, dvb-apps, ffmpeg, google-breakpad, gstreamer,
	imagemagick, libfastjson, libglib2, libpjsip, libplist,
	localedef, luajit, mesa3d, openssh, openssl, postgresql,
	python3, python-pyqt5, qt5base, qt5canvas3d, qt5connectivity,
	qt5declarative, qt5engineio, qt5graphicaleffects,
	qt5imageformats, qt5location, qt5multimedia, qt5quickcontrols,
	qt5quickcontrols2, qt5script, qt5sensors, qt5serialbus,
	qt5serialport, qt5svg, qt5tools, qt5webchannel, qt5webkit,
	qt5websockets, qt5x11extras, qt5xmlpatterns, quagga, ruby,
	samba4, snmppp, ti-gfx, vboot-utils, webkitgtk, wireshark,
	xapp_xdriinfo.

	Issues resolved (http://bugs.buildroot.org):

	10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y
	10361: python3 python-config script generates invalid includes
	10501: host-localedef fails to compile on Ubuntu 17.10

2017.02.7, Released October 28th, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.18.x series, fixing a large number
	of security issues.

	Defconfigs: wandboard: Correct rootfs offset

	Toolchain: Linaro toolchains updated to 2017.08 release,
	fixing a number of issues. Musl: fix for CVE-2017-15650.

	Updated/fixed packages: busybox, bzip2, dnsmasq, git, go,
	hostapd, irssi, iucode-tool, lame, libcurl, libffi, libnspr,
	libnss, nodejs, openssh, openvpn, qemu, qt, redis, sdl2,
	webkitgtk, wget, wpa_supplicant, xen, xlib_libXfont,
	xlib_libXfont2, xserver_xorg-server

2017.02.6, Released September 24th, 2017

	Important / security related fixes.

	Cmake: Ensure correct pkg-config is used when building host
	packages

	fs/iso9660: Ensure files from earlier builds are not included.

	Updated/fixed packages: apache, bcusdk, bind, binutils,
	bluez5_utils, botan, cmake, connman, dbus, dialog, e2fsprogs,
	faad2, fakeroot, ffmpeg, file, flashrom, gcc, gd, gdb,
	gdk-pixbuf, git, gnupg, gpsd, grub2, gst1-plugins-bad,
	imagemagick, iostat, iucode-tool, jack2, libarchive, libcurl,
	libgcrypt, libidn, libphidget, librsync, librsvg, libsoup,
	libxml2, linux-tools, lua, mariadb, mbedtls, mediastreamer,
	minidlna, netplug, nss-pam-ldapd, nvidia-driver, openjpeg,
	postgresql, proxychains-ng, python-libconfig,
	python-service-identity, qt, rpcbind, ruby, samba4, squashfs,
	squid, strongswan, subversion, supervisor, sysvinit, tcpdump,
	tor, transmission, unrar, valgrind, vim, webkitgtk, whois,
	xen, zmqpp

	Issues resolved (http://bugs.buildroot.org):

	#10141: Squashfs extended attribute failures
	#10261: Grub2 fails to build for x86_64
	#10276: BR2_PACKAGE_LINUX_TOOLS_GPIO fails for MIPS with...

2017.02.5, Released July 27th, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.16.x series, fixing a large number
	of security issues.

	host-aespipe compile fix for Debian/Gentoo/Ubuntu toolchains
	which default to PIE mode.

	Updated/fixed packages: aespipe, apache, bind, binutils,
	busybox, ccache, collectd, efibootmgr, efivar, expat, ffmpeg,
	gcc, heimdal, iproute2, irssi, libglib2, libmemcached,
	libosip2, libtirpc, libxml-parser-perl, linux-fusion,
	linux-zigbee, mpg123, nodejs, orc, pcre, php, pulseaudio,
	python-setproctitle, qt5base, rpi-firmware, samba4, syslinux,
	systemd, spice, tcpdump, tiff, webkitgtk, x265, xen,
	xserver_xorg-server, xvisor

	Issues resolved (http://bugs.buildroot.org):

	#10061: gcc5.4 buildroot toolchain for powerpc libsanitizer...

2017.02.4, Released July 4th, 2017

	Important / security related fixes.

	Update support/scripts/scancpan to use METACPAN v1 API as v0
	has been shutdown.

	Update support/scripts/mkusers to handle setups where
	/etc/shadow is a symlink.

	External toolchain: Don't create musl dynamic loader symlink
	for static builds.

	Setlocalversion: Correct detection of mercurial revisions for
	non-tagged versions.

	Updated/fixed packages: apache, automake, bind, botan, c-ares,
	dhcp, expat, fcgiwrap, gcc, gdb, gesftpserver, glibc, gnutls,
	gst1-plugins-bad, imagemagick, imx-uuc, intltool, iperf,
	ipsec-tools, irssi, libgcrypt, libmad, libnl, mosquitto,
	mpg123, ncurses, nodejs, ntp, openssh, openvpn, qt5base,
	qt5multimedia, rtl8821au, socat, spice, systemd, tor, tslib,
	vlc, x264, xserver_xorg-server

	Issues resolved (http://bugs.buildroot.org):

	#9976: License file for package 'rtl8821au' incorrect

2017.02.3, Released June 2nd, 2017

	Important / security related fixes.

	Download: <pkg>-source-check fixed for packages from git.

	External toolchain: musl dynamic linker symlink for mips-sf
	corrected.

	Updated/fixed packages: armadillo, audiofile, bash,
	bluez_utils, cppcms, dbus, dhcp, dropbear, efibootmgr, efl,
	elfutils, faketime, fbgrab, flashrom, ftop, gdb, git,
	google-breakpad, gpsd, hans, kvm-unit-tests, kyua, libev,
	libmicrohttpd, libminiupnpc, libtasn1, libubox, ltp-testsuite,
	lua, madplay, mariadb, mono, mosquitto, mxml, ntp,
	nvidia-driver, openblas, openvpn, oracle-mysql, picocom, popt,
	postgresql, pulseview, qt5base, qwt, rabbitmq-c, redis,
	rpcbind, rtmpdump, samba4, strongswan, sudo, vlc

	Issues resolved (http://bugs.buildroot.org):

	#9796: source-check broken for Git downloads
	#9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set

2017.02.2, Released May 1st, 2017

	Important / security related fixes.

	Use HTTPS for the Codesourcery external toolchains as the HTTP
	URLs no longer work.

	Updated/fixed packages: bind, busybox, dovecot, freetype,
	ghostscript, glibc, granite, hiredis, icu, imagemagick,
	gst-plugins-base, gst1-plugins-base, libcroco, libcurl, libnl,
	libnspr, libnss, libsamplerate, libsndfile, libunwind,
	minicom, mplayer, mpv, nodejs, python-django, python-pyyaml,
	python-web2py, samba4, syslinux, systemd, tiff, trinity,
	uboot, wireshark, xen

	Issues resolved (http://bugs.buildroot.org):

	#9791: Python searches for packages in the user site directory

2017.02.1, Released April 4th, 2017

	Important / security related fixes.

	Fix a variable clashing issue in the mkusers script with
	internal bash variables.

	Improve external toolchain version detection.

	Correct permissions for /dev/pts/ptmx when systemd is used
	with recent glibc versions.

	Fix python module name clash for graph-depends.

	Fakeroot now links against libacl to fix issues on
	distributions using acls.

	Ensure that the git download infrastructure creates GNU format
	tar files.

	br2-external: Improve error reporting.

	Updated/fixed packages: acl, apr, audiofile, busybox, cairo,
	dbus-cpp, dbus-glib, dbus-triggerd, domoticz, elfutils,
	fakeroot, filemq, fmc, gdb, git, gnutls, gst-ffmpeg,
	gst1-plygins-bad, harfbuzz, htop, imagemagick, jasper, libcec,
	libiio, libplatform, librsvg, libselinux, libsidplay2, libsoc,
	libwebsockets, libxkbcommon, linux-firmware, logrotate,
	lpt-testsuite, lttng-libust, mariadb, mbedtls, memcached,
	mesa3d, mpd, mplayer, nbd, ncftp, ntp, openssh, opentyrian,
	pcre, perl-gd, python, qt5base, rpi-userland, rpm, samba4,
	skalibs, slang, sngrep, squashfs, syslog-ng, taglib,
	tcpreplay, tor, upmpdcli, wget, wireshark,
	xdriver_xf86-video-vmware, xlib_libXv, zmqpp

	Issues resolved (http://bugs.buildroot.org):

	#9456: mkusers script bash errors

2017.02, Released February 28th, 2017

	Minor fixes, mainly fixing autobuilder issues.

	Don't use cmake 3.7.x from the build host as it is also
	affected by the RPATH handling issues, and instead build our
	own if needed.

	Updated/fixed packages: assimp, classpath, genimage, mplayer,
	mpv, openocd, python-libconfig, qt5base, qt5quickcontrols,
	vlc, xterm

2017.02-rc3, Released February 26th, 2017

	Fixes all over the tree.

	Cmake reverted to version 3.6.3 to workaround regressions
	related to RPATH handling.

	Updated/fixed packages: bctoolbox, berkeleydb, binutils,
	btrfs-progs, classpath, directfb, glibc, gstreamer1,
	gst1-plugins-{base,good,bad,ugly}, gst1-libav,
	gst1-rtsp-server, gst1-validate, gst-omx, htop, libcurl,
	libepoxy, libimxvpuapi, libpcap, libuv, ncurses, openssh,
	oracle-mysql, poco, python, qt5base, qt5webkit, sslh, synergy,
	trousers, uclibc-ng-test, util-linux, vlc, xfsprogs

	Issues resolved (http://bugs.buildroot.org):

	#9251: Shared C++ libraries for Microblaze results in Segmentation...
	#9456: mkusers script bash errors
	#9506: Collectd 5.7.0 fails to build with libcrypt
	#9581: VagrantFile provisioning step fails due to issue with grub-pc
	#9586: usbmount: usbmount slows down the system... to a state of...
	#9616: CMake host packages cannot provide CONF_ENV
	#9641: Need raptor package installed in staging
	#9671: stunnel build error

2017.02-rc2, Released February 20th, 2017

	Fixes all over the tree.

	Support for SOURCE_DATE_EPOCH in the toolchain wrapper for
	older gcc versions for reproducible builds has been
	(temporarily) reverted because of licensing compatiblity
	concerns.

	Defconfigs: SD card generation fix for the Udoo Neo board

	Infrastructure to handle .lz compressed tarballs added, and
	affected packages updated to use it.

	Updated/fixed packages: bctoolbox, bind, canelloni,
	cbootimage, ccache, classpath, cups, dbus, ddrescue, directfb,
	ed, erlang, gcc, gdb, glmark2, gstreamer, gstreamer1, hiredis,
	kmod, kmsxx, lcdapi, libasplib, libgpiod, libnss, libraw,
	libv4l, mesa3d-headers, mosquitto, mpd, mpv, musl, ntfs-3g,
	ocrad, openswan, postgresql, qt5base, qt5quickcontrols, redis,
	riemann-c-client, samba4, sunxi-mali, tcping, trousers,
	uclibc, util-linux, vim, wavpack, wget, wiringpi, xfsprogs,
	xserver_xorg-server

	Issues resolved (http://bugs.buildroot.org):

	#8941: Valgrind fails to build with stack protection turned on
	#9291: perl: SysV message queues not configured, even if available
	#9651: libxcb-1.12 built Error
	#9656: util-linux: schedutils doesn't build on target w/o enabl...
	#9666: qt5quickcontrols install fails

2017.02-rc1, Released February 11th, 2017

	Fixes all over the tree and new features.

	Infrastructure:

	  - numerous improvements to support reproducible builds

	  - new waf-package package infrastructure to support packages
	    that use the Waf build system. 6 packages converted to
	    this infrastructure.

	  - add option <pkg>_PREFER_INSTALLER to the perl package
	    infrastructure

	Architecture:

	  - add support for the OpenRISC CPU architecture

	  - merge description of the ARM and ARM64 options, and add
	    support for selecting a specific ARM64 core

	Toolchain:

	  - major rework of the external toolchain support. It is now
	    split into several packages, one per external toolchain,
	    and a common infrastructure.

	  - important fix for musl to prevent a conflict between musl
	    and kernel headers (fixes the build of numerous packages
	    with musl)

	  - uClibc-ng bumped to 1.0.22, and therefore enable uClibc
	    for ARM64, mips32r6 and mips64r6

	  - add gdb 7.12.1, and switch 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

	  - remove Analog Devices toolchain for the Blackfin
	    architecture, remove pre-built musl toolchains from
	    musl.codu.org

	New defconfigs: Freescale i.MX23EVK, Qemu OpenRISC emulation,
	Qemu NIOS2 emulation, Grinn chiliBoard, Freescale i.MX6Q
	SabreSD, BeagleBoard X15, OrangePi One, ARC HS38 HAPS

	New packages: angular-websocket, aubio, bctoolbox, darkhttpd,
	ddrescue, easydbus, fakedate, git-crypt, hiredis, ifenslave,
	jsmn, libgpiod, libgsm, linux-syscall-support, mariadb, mimic,
	nginx-dav-ext, nmon, opkg-utils, policycoreutils,
	pru-software-support, python-arrow, python-attrs,
	python-babel, python-bitstring, python-chardet,
	python-constantly, python-flask-babel, python-gunicorn,
	python-incremental, python-jsonschema, python-logbook,
	python-markdown2, python-mbstrdecoder, python-mutagen,
	python-pathpy, python-pudb, python-pyqrcode,
	python-pytablereader, python-setuptools-scm, python-sh,
	python-toml, python-vcversioner, python-whoosh,
	raspberrypi-usbboot, riemann-c-client, rtl8723bs, skalibs,
	sslh, sngrep, ti-cgt-pru, uclibc-ng-test, udpxy, uhttpd,
	upower, ustream-ssl, waf, xlib_libXfont2

	Removed packages: perl-db-file, snowball-hdmiservice,
	snowball-init

	Tooling: addition of a test-pkg script to help contributors
	build test their package.

	Issues resolved (http://bugs.buildroot.org):

	#8946: Valgrind fails to build with stack protection turned on
	#9461: odroidc2 - toolchain Linaro AArch64 2016.11 compile error
	#9466: VIM_REMOVE_DOCS removes rgb.txt
	#9486: xorg-server 1.19 fails to compile for glibc with systemd init (x86_64)
	#9501: eudev fails to build with older kernel headers
	#9526: Embedded NPM fails to start with "no such file or directory" error
	#9541: Platform drivers autoloading from info in device tree does not work
	#9546: seems BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS do nothing
	#9551: Coreutils fails to build target src/src_libsinglebin_pinky_a-pinky.o
	#9566: [kmod] Compilation fails with uclibc
	#9571: buildroot fails while building opencv for arm64 platform
	#9576: External tree with BR 2016.11 does not work anymore
	#9606: xorg-server cannot build for ARM target

2016.11.3, Released March 9th, 2017

	Important / security related fixes.

	Updated/fixed packages: bind, dbus, gnutls, imagemagick,
	lcms2, libcurl, ntfs-3g, ntp, openssl, php, quagga, redis,
	squid, stunnel, tcpdump, vim, wavpack, wireshark, xlib_libXpm

2016.11.2, Released January 25th, 2017

	Important / security related fixes.

	A fix for BR2_EXTERNAL trees referenced using relative paths,
	which broke in 2016.11.

	Updated/fixed packages: bind, docker-engine, gd, gnutls, go,
	imagemagick, irssi, libpng, libvncserver, musl, opus, php,
	php-imagick, rabbitmq-server, runc, wireshark,

	Issues resolved (http://bugs.buildroot.org):

	#9576: External tree with BR 2016.11 does not work anymore

2016.11.1, Released December 29th, 2016

	Important / security related fixes.

	Updated/fixed packages: apache, cryptopp, docker-engine,
	dovecot, exim, gdk-pixbuf, libcurl, libupnp, links, monit,
	nodejs, openssh, php, python, python-bottle, samba4, squid,
	uboot, vim, wireshark, xorg-server uboot

	Issues resolved (http://bugs.buildroot.org):

	#9466: VIM_REMOVE_DOCS removes rgb.txt

2016.11, Released November 30th, 2016

	Minor fixes.

	Updated/fixed packages: bzip2, gcc, jasper, sane-backends,
	uboot, uclibc

	Issues resolved (http://bugs.buildroot.org):

	#9451: packages/postgresql/postgresql.mk contains wrong POST...

2016.11-rc3, Released November 28th, 2016

	Fixes all over the tree, including a number of security fixes.

	The move from fakeroot to pseudo unfortunately brought a
	number of issues.  The SELinux issue described in #9386 which
	triggered the move to pseudo has been investigated further and
	a workaround implemented and the pseudo changes reverted.

	Linux kernel: update default to 4.8.11.

	Defconfigs: Updates/fixes for imx28ek, mx6udoo, imx6ulpico,
	olimex a20 olinuxino lime mali, roseapplepi, synopsis aarch64
	vdk, axs101, axs103 and hs38 smd vdk.

	Updated/fixed packages: autossh, chrony, dosfstools,
	dtv-scan-tables, e2fsprogs, gcc, gdb, gnuchess, gnuradio,
	gpsd, gst1-plugins-bad, gst1-plugins-good, imagemagick,
	kvm-unit-tests, libfribi, libuv, mesa3d, mpfr, mplayer, mpv,
	ntp, ola, olsr, openblas, openjpeg, openssh, postgresql,
	ptpd2python3, qemu, qextserialport, qt5base, quagga, xqwt,
	taskd, tiff, tremor, trousers, udisks, uclibc, wireshark,
	xapp_xload, xenomai, xmlstarlet

	Issues resolved (http://bugs.buildroot.org):

	#9386: ubinize fails with or without custom config
	#9431: A misspelling
	#9446: make raspberrypi3_defconfig compilation failure

2016.11-rc2, Released November 13th, 2016

	Fixes all over the tree.

	Architecture: add support for MIPS XBurst cores; remove MIPS
	support for M5100 cores.

	Updated/fixed packages: mesa3d, lttng-babeltrace, tinyalsa, pseudo,
	czmq, libxml2, makedevs, binutils, kvm-unit-tests, libnss, privoxy,
	qemu, ser2net, net-tools, ffmpeg, assimp, libmpeg2, ccache, mpv,
	libxslt, python, python3, php, valgrind, guile, domoticz, efl,
	jasper, kvmtool, go, wget, sane-backends, weston, tinymembench,
	strace, openjpeg, lcms2, quota.

	Linux kernel: update default to 4.8.7.

	CMake support: fix cmake wrapper to properly pass NDEBUG flag.

	Filesystems: use a wrapper to pseudo, to better mimick the behaviour
	of fakeroot; makedevs no longer breaks of the destination already
	exists and is of the correct type/major/minor.

	Defconfigs: a few legacy and broken defconfigs have been removed
	because they now fail to build: kb9202_defconfig, mini2440_defconfig,
	freescale_p2020ds, qmx6, calao*, atmel_sama5d4ek. Other defconfigs
	have been updated: nanopi-neo, olimex_a20_olinuxino_lime_mali,
	armadeus_apf51, armadeus_apf28, freescale_imx31_3stack, ci20,
	olimex_a20_olinuxino_lime2, atmel_at91sam9260eknf,
	atmel_at91sam9rlek, atmel_at91sam9g20dfc, atmel_at91sam9g45m10ek,
	atmel_sama5d3xek.

2016.11-rc1, Released November 3rd, 2016

	Fixes all over the tree and new features.

	It is now possible to specify multiple BR2_EXTERNAL
	directories. The required files in a BR2_EXTERNAL directory
	have changed to accomodate this feature. Refer to the
	documentation for details of how to update them. External
	trees now have a name and a description. Also, it is possible
	to override a defconfig in the external tree.

	The default skeleton now uses UID 65534 for the "nobody"
	user instead of UID 99, like most distros do. See
	https://lwn.net/Articles/695478/ for a complete discussion.
	Programs and configuration files that explicitly refer to UID
	99 will have to be updated.

	When the build environment already has a suitable cmake version
	(3.1 or later), that one will be used instead of building
	host-cmake. This can speed up the build significantly.

	The ExtUtils::MakeMaker perl module is now required in the
	build environment.

	An additional check is done during the build that files are
	not installed in the output directory within the output
	directory. This happens e.g. when the target directory is
	contained both in --prefix and in DESTDIR. The build will
	terminate with an error message that specifies which package
	and which file caused the failure.

	The concept of "deprecated packages" and the BR2_DEPRECATED
	option have been removed. Instead, packages are removed
	immediately. Packages are only removed when they don't work
	for some reason. If you still need a removed package and
	you have a solution for the problem(s) that caused the
	removal, please contribute it.

	Architecture: support for sh64 removed, improved support for
	MIPS core selection.

	Toolchain: support for musl powerpc64le, mips64 and mipsr6
	toolchains, ARC toolchain components updates, gcc 6.x series
	bumped to 6.2.0, default binutils version switched to 2.26,
	default gcc version switched to gcc 5.x, Linaro toolchains
	updated, uclibc-ng bumped to 1.0.19. GCC is now always built
	with TLS support. Checking of unsafe compiler options (that
	point to host directories) has been extended with -isystem,
	-idirafter and -iquote.

	Package infrastructure: new variable $(PKG)_DL_OPTS, addition
	of <pkg>-show-rdepends to list reverse dependencies, and
	<pkg>-graph-rdepends to graph reverse dependencies. Linux tools
	are now in a separate linux-tools package instead of in the
	kernel build. Fakeroot has been replaced by pseudo.

	CMake support: the toolchainfile.cmake file now provides a
	definition of the CMAKE_BUILD_TYPE variable. The
	toolchainfile.cmake also no longer forces the compiler/linker
	flags defined by Buildroot.

	New defconfigs: WaRP7, Solidrun's MX6 Cubox/Hummingboard,
	TS-4900, Grinn's liteBoard, Udoo MX6Q/DL, Qemu ARM noMMU,
	BeagleBone Qt5 demo, Digilent Zybo, FriendlyARM Nanopi NEO.

	New packages: arm-trusted-firmware, amd-catalyst, atop, aufs,
	aufs-util, fwts, gst1-rtsp-server, libglob, libite, mfgtools,
	mksh, motion, paho-mqtt-c, php-amqp, pseudo, python-couchdb,
	python-crcmod, python-cssutils, python-docutils,
	python-futures, python-mwclient, python-mwscrape,
	python-mwscrape2slob, python-pyelftools, python-pyicu,
	python-pylru, python-pyqt5, python-requests-toolbelt,
	python-simpleaudio, python-slob, rabbitmq-server, shapelib,
	vdr, vdr-plugin-vnsiserver, vexpress-firmware, xvisor, iio and
	gpio linux tools.

	Removed packages: binutils 2.24, fakeroot, gcc 4.7, ipkg,
	kodi-addon-xvdr, libgail, sstrip, torsmo, webkit, webkitgtk24,
	wvdial, wvstreams.

	Documentation: the list of packages that was present in the
	Buildroot manual has been removed.

	Legal info: the "licenses.txt" file that concatenates all
	license texts is no longer generated - it was not considered
	useful. The manifest.csv contains an empty cell instead of
	"not saved" when no license file is available.

	Other: addition of a DEVELOPERS file listing developers taking
	care of packages or architectures.

	Issues resolved (http://bugs.buildroot.org):

	#7802: host-python build hangs compiling getbuildinfo.o
	#8206: mplayer uses host xorg development files
	#8516: mkcubiecard.sh uses outdated sfdisk switch -D
	#8536: Building sudo with PAM results in unusable sudo
	#8646: check-host-rpath script returns false positives when rpath
	       contains symlink
	#8696: xdriver_xf86-input-mouse install header files in target
	       directory
	#8811: rp-pppoe - generated scripts commands use HOST pathnames,
	       not necessarily TARGET
	#8846: Orphaned/missing toolchain borks eclipse plugin
	#8856: python tornado runtime wasn't met on buildroot 2016.02
	#8901: gcc failes to build if fortran is enabled
	#8916: LDFLAGS pass to openssh
	#8941: "ls" of an NFSv4 share only works when pumped through strace
	#8946: Valgrind fails to build with stack protection turned on
	#9021: Kodi - Broken: Illegal instruction (core dumped)
	#9096: rootfs.ubi not created
	#9111: glibc 2.23: libmvec.so not copied
	#9176: minnowboard : USB not mounted
	#9196: raspberry pi 3 default build seem broken
	#9201: Permission denied make: *** [core-dependencies] Error 126 in
	       Buildroot-2015.08.1
	#9216: log4cpp package build fails to build within install
	#9221: Kodi needs "Python .py and .pyc support" otherwise it crashes when
	       pressing buttons.
	#9229: Firefly boot fails with: "failed to find part:boot"
	#9256: [Config file] New device: Odroid-U2/U3
	#9296: Buildroot Fails on applying patches
	#9301: U-boot fails to build with default zynq_zed_defconfig configuration
	#9316: U-boot fails to build if libssl-dev is not installed
	#9321: Vanilla libcrypt++ v5.6.3 doesn't allow to work Nvidia Tegra's
	       flash utility (tegrarcm)
	#9326: Odroid-C2 build results in non-bootable image
	#9336: Improve iconv support for external toolchain based builds
	#9356: gdb package
	#9366: no link rootfs.ext4 -> rootfs.ext2
	#9371: openssl: download failes with "Only allow downloads from primary
	       download site" + local server
	#9381: check-host-rpath issues
	#9386: ubinize fails with or without custom config

2016.08, Released September 1st, 2016

	Minor fixes.

	Toolchain: ARC tools updated to arc-2016.09-eng010.

	Updated/fixed packages: libshout, luajit, mpd, mplayer

	Issues resolved (http://bugs.buildroot.org):

	#7520: CodeSourcery toolchain ARM: C++11 std::exception_ptr..
	#8341: Getting EGL Error: Could not create the egl surface:..
	#9121: gst1-imx for i.MX6 compile failed, cannot find PXP, ..

2016.08-rc3, Released August 29th, 2016

	Fixes all over the tree.

	Toolchain: C++ support for the internal blackfin toolchain
	re-enabled.

	Architecture: Default to bf532 CPU variant for blackfin,
	Fix flat one memory region support for m68k and disable flat
	seperate data support because of compatibility issues.

	Defconfigs: Minnowboard and Raspberrypi: Fix errors with
	post-build scripts when systemd is used.
	Zynq microzed/zc706/zed: Fix u-booot configuration.

	netbsd-queue package extended and renamed to
	musl-compat-headers. With this, a number of musl compatibility
	patches are no longer needed.

	Updated/fixed packages: aircrack-ng, android-tools, babeld,
	bcusdk, binutils, boa, busybox, connman, cpupower,
	docker-engine, domoticz, elf2flt, ffmpeg, fwup, gcc,
	glib-networking, gnupg, hplip, igd2-for-linux, imagemagick,
	imx-uuc, iputils, jack2, kismet, kmsxx, libaio, libamcodec,
	libconfuse, libffi, libfreeimage, libgcrypt, libgpg-error,
	libiio, libraw, libsepol, libserialport, libxmlrpc, linknx,
	linux-pam, lirc-tools, lldpd, logrotate, lshw, musl, ncurses,
	neon, nettle, norm, ntfs-3g, openblas, openmpi, openswan,
	pinentry, pixman, protobuf, python-meld3, qlibc, qt, qt5base,
	quagga, rpcbind, rt-tests, runc, sane-backends, sconeserver,
	squeezelite, stella, tftpd, tinycbor, tinydtls, trace-cmd,
	trousers, tstools, uboot-tools, uclibc, ulogd, ustr, vlc,
	webkitgtk, wireshark, xdriver_xf86-video-intel

	Issues resolved (http://bugs.buildroot.org):

	#9101: Error on support/download/git with system git older than 1.8.4
	#9181: Compiling linux kernel fails if BR2_LINUX_KERNEL_TOOL_CPU..

2016.08-rc2, Released August 17th, 2016

	Fixes all over the tree.

	Toolchain: disable broken C++ support for internal blackfin
	toolchains, ARC toolchain bumped to arc-2016.09-eng008 (GCC 6)
	to fix various issues.

	System: Zoneinfo is available for the musl C library as well.

	Updated/fixed packages: am33x-cm3, axel, barebox, bdwgc,
	blktrace, cairo, dante, enlightenment, fbterm, ffmpeg, flex,
	fontconfig, gcc, gmp, gnuplot, gnuradio, gst1-imx, hidapi,
	inotify_tools, iproute2, kmsxx, lftp, libaio, libcofi,
	libical, libpjsip, libsidplay2, libunwindow, libxml2,
	linux-zigbee, lttng-libust, mpv, mtd, ncdu, netplug, ntp,
	openblas, openipmi, owfs, php, poco, procps, qt, quota,
	sg3_utils, spidev_test, systemd-bootchart, thrift,
	uboot-tools, uclibc, webrtc-audio-processing, wayland, weston,
	xdriver_xf86-video-savage, xserver_xorg-server, xen

	Issues resolved (http://bugs.buildroot.org):

	#9136: make graph-size fails with "ValueError: too many values to..
	#9151: qt: fix build with ALSA >= 1.1.x
	#9156: qt: Fix missing runtime Qt3Support dependency
	#9161: modsetting patch not applied to xserver 1.18.4
	#9166: Missing overlays directory in VFAT image for raspberry pi 3

2016.08-rc1, Released August 6th, 2016

	Fixes all over the tree and new features.

	Toolchain: Fortran support added. eglibc support removed, musl
	support no longer experimental. Blackfin and Microblaze
	support for internal uClibc-ng toolchain, m68k/coldfire
	improvements. The check for unsafe (build host) directories
	access (/usr/include and /usr/lib) is now enabled by default.
	Unused locales are now purged by default to save space (and
	the default list of locales shrunk). The option to control
	this has now moved from the toolchain menu to system
	configuration.

	Legal info improvements: sources are now hardlinked instead of
	copied if possible to save space. Patches and extra downloads
	are also saved.

	An experimental configuration knob (BR2_REPRODUCIBLE) has been
	added to make the builds more reproducible (E.G. less
	differences in the binary output between builds of the same
	configuration). This is still work in progress.

	An option to execute a custom script inside the fakeroot
	environment used to the generate the filesystem (E.G. to tweak
	permissions or similar) has been added.

	Git support now supports git submodules if
	<pkg>_GIT_SUBMODULES is enabled.

	Hash files for integritry validation have been added for all
	packages.

	Scanpypi utility to help creating packages from the Python
	package index (pypi) has been added.

	The makedevs utility now has support for adding file
	capabilities using extended attributes.

	New defconfigs: Arcturus uCP1020, Atmel sama5d{2,3,4} xplained
	development configs, Blackfin GDB simulator, Linksprite
	pcDuino, Minnow Board Max graphical demo, NXP i.MX25 PDK,
	i.MX51 EVK, i.MX6UL Pico, i.MX7 sabresd, QEMU MIPS32r6{,el} and
	MIPS64r6{,el} malta, Roseapple Pi, Samsung Snow chromebook,
	Toradex Apalis i.MX6 COM, TS-4800, x86-64 PC BIOS and EFI
	demos. A number of defconfigs have been updated and extended
	to generate SD card images. Synopsys HS38 VDK defconfig removed.

	New packages: 4th, acpica, acpitool, alljoyn, alljoyn-base,
	alljoyn-tcl, alljoyn-tcl-base, argparse, babeld, batman-adv,
	circus, dante, docker-containerd, docker-engine, domoticz,
	efibootmgr, efivar, ficl, fwup, gsettings-desktop-schemas,
	gtksourceview, gupnp-dlna, gupnp-tools, igd2-for-linux,
	jemalloc, kmsxx, lapack, lft, libaacs, libamcodec, libbdplus,
	libcoap, libdvdcss, libebur128, libfastjson, libminiupnpc,
	libnatpmp, libpqxx, libuio, libvdpau, log4cpp, minissdpd,
	mxsldr, nginx-nasxi, nginx-upload, ninja, nodm, odroid-mali,
	odroid-scripts, omxplayer, openblas, openmpi, openzwave,
	p7zip, pdbg, python-argh, python-dataproperty,
	python-dateutil, python-dialog3, python-dicttoxml,
	python-dominate, python-engineio, python-flask-jsonrpc,
	python-flask-login, python-humanize, python-pathtools,
	python-pathvalidate, python-pillow, python-prompt-toolkit,
	python-pytablewriter, python-pytz, python-scapy3k,
	python-sdnotify, python-socketio, python-tomako,
	python-ubjson, python-u-msgpack, python-watchdog,
	python-wcwidth, python-xlrd, python-xlsxwriter,
	python-xlutils, python-xlwt, rs485conf, runc, sdl2_gfx,
	sdl2_image, sdl2_ttf, shellinabox, sphinxbase, stella,
	supertuxkart, systemd-bootchart, tekui, terminology, tinycbor,
	tinydtls, ti-sgx-demos, ti-sgx-km, ti-sgx-um, tunctl, wavemon,
	wiringpi, xen

	Deprecated packages: ipkg, sstrip

	Removed packages: sunxi-mali-prop

	Issues resolved (http://bugs.buildroot.org):

	#8931: segment fault when compile argp-help.c using aarch64-bu...
	#8966: eglfs error. buildroot don't compile the library libeglfs.so
	#8971: build for beaglebone fails
	#8986: qt5imageformats fails to build on AArch64
	#8991: grub2 fails to compile
	#9001: Nodejs option not available
	#9006: gcc with c++ support v4 and v5 fail to compile on fedora 24
	#9016: arceb-buildroot-linux-uclibc ld uses incorrect default format
	#9066: 8139TOO - faulty behaviour
	#9086: Syntax Error (missing ")" in boot/uboot/uboot.mk on line 203)
	#9091: U-Boot fails to boot with large ramdisk

2016.05, Released May 31st, 2016

	Minor fixes.

	External toolchain: Fix for symlink handling when copying
	links to target.

	Updated/fixed packages: gcc, grantlee, gst-ffmpeg,
	ipsec-tools, iptraf-ng, libcurl, libdrm, libsigsegv, ltris,
	lttng-babeltrace, mbedtls, mesa3d, moarvm, mplayer, mtools,
	net-tools, openpowerlink, pulseview, rpm, tinyalsa,
	xdriver_xf86-video-fbturbo, xserver_xorg-server

2016.05-rc3, Released May 26th, 2016

	Fixes all over the tree.

	Tweaks for SSP handling for external toolchains.

	Updated/fixed packages: aircrack-ng, bluez5_utils, connman,
	cups, erlang-p1-stringprep, expat, ffmpeg, flann, flannel, go,
	gst1-libav, hidapi, hplip, iptraf-ng, jamvm, kodi,
	kodi-screensaver-matrixtrails, libcurl, libepoxy, libgpgme,
	libsemanage, libxslt, liquid-dsp, ltris, lxc, mesa3d, midori,
	mpg123, mtr, openpgm, openpowerlink, oprofile, php,
	postgresql, putty, python-service-identity, python-treq,
	qlibc, qt5serialbus, ruby, stress-ng, strongswan, time, tinc,
	ustr, valgrind, webkitgtk, libxml2, xorriso,
	xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#8936: Aircrack-ng - Alot of missing dependencies

2016.05-rc2, Released May 17th, 2016

	Fixes all over the tree.

	Rootfs overlay handling now refuses to overwrite
	/{usr,bin,sbin,lib} symlinks from BR2_ROOTFS_MERGED_USR option
	even if these directories are present in the overlay.

	External toolchain: Unbreak user provided libraries deployment
	(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS) handling after refactoring.

	QEMU coldfire: Fix for signal handling kernel issue, enable
	networking support.

	Updated/fixed packages: android-tools, assimp, boost, gcc,
	glibc, glmark2, gmrender-resurrect, go, go-bootstrap, iputils,
	jack2, kodi-screensaver-asterwave, kodi-screensaver-rsxs,
	kodi-visualisation-shadertoy, libarchive, libinput, libpjsip,
	mali-t76x, mtr, nginx, opencv, openvpn, python-coherence,
	qt5multimeda, quagga, samba4, sg3-utils, stress-ng, turbolua

2016.05-rc1, Released May 10th, 2016

	Fixes all over the tree and new features.

	Architectures: new ARM variants: Cortex A17 and M4, improved
	nonmmu (cortex-M) support, m68k has been re-enabled with
	support for ColdFire. For x86, support for the i386 variant
	has been dropped.

	Toolchain: Add GCC 6 support, remove GCC 4.5, mark GCC 4.7 as
	deprecated. Go programming language support, Add Binutils 2.26
	support. Old Sourcery PowerPC external toolchains removed,
	Sourcery MIPS 2016.06-8, AMD64 2015.11-139, NiosII 2015.11-130
	added, Linaro ARM/ARMeb/Aarch64 toolchains updated.

	New defconfigs: Firefly RK3288, Boundary Devices i.MX7 Nitrogen7,
	STM32F429 and STM32F469 Discovery boards, Hardkernel ODROID-C2,
	Raspberry Pi Zero and Raspberry Pi 3. Some Qemu defconfigs were
	added for m68k, eXtensa-nommu and ColdFire.

	Linux: use zImage by default on ARM, subversion repository
	support (for u-boot as well).

	New packages: aer-inject, android-tools, cannelloni,
	cbootimage, cgroupfs-mount, connman-gtk, crudini, dt,
	gmrender-resurrect, flannel, font-awesome, freeswitch, go,
	go-bootstrap, gr-osmosdr, granite, i7z, imx-uuc,
	kodi-adsp-basic, kodi-adsp-freesurround,
	kodi-audiodecoder-opus, kodi-pvr-hdhomerun,
	kodi-screensaver-asterwave, kodi-screensaver-cpblobs,
	kodi-screensaver-matrixtrails, kodi-screensaver-planestate,
	kodi-screensaver-rsxs, kodi-visualisation-fishbmc,
	kodi-visualisation-fountain, kodi-visualisation-goom, libgee,
	libimxvpuapi, libpjsip, libtomcrypt, libtommath, libusbgx,
	lksctp-tools, mali-t76x, mkpimage, mpv, msr-tools, nload,
	norm, nvme, owfs, pound, privoxy, procrank_linux, putty,
	python-autobahn, python-characteristic, python-crossbar,
	python-cryptography, python-iniparse, python-iowait,
	python-lmdb, python-pexpect, python-ptyprocess,
	python-pyasn-modules, python-pygments, python-pymysql,
	python-pynacl, python-pyopenssl, python-pysocks,
	python-pytrie, python-rpi-gpio, python-service-identity,
	python-setproctitle, python-shutilwhich, python-treq,
	python-txaio, python-ujson, python-wsaccel, qt5canvas3d,
	qt5location, qt5quickcontrols2, qt5serialbus, qt5tools,
	raptor, scrub, taskd, tegrarcm, turbolua, valijson,
	wayland-protocols, webkitgtk, wilc1000-firmware, wpan-tools,
	xdriver_xf86-video-amdgpu

	Removed packages: foomatic-filters, python-m2crypto,
	qt5quick1, qt5webkit-examples, samba, xdriver_xf86-input-void

	Issues resolved (http://bugs.buildroot.org):

	#6830: Qt5: no fonts are installed
	#7562: musl buildroot-toolchain and BR2_MIPS_SOFT_FLOAT break
	#7580: Invalid filesystem in Pandaboard defconfig
	#8346: wf111 package removes all kernel module dependencies
	#8436: xserver_xorg-server Segmentation fault
	#8736: IPV6 forced on in busybox
	#8746: At startup system stops with 'cannot set terminal proces..
	#8751: make fail [fio does not build on sh]
	#8766: Compiling host-gcc-final-4.9.3 broken on i386
	#8771: make savedefconfig modifies sources
	#8781: Unable to build uboot for imx28evk
	#8786: gdb fails to build with xz and expat support at the same
	#8801: Compilation of Buildroot 2016.2 for Raspberry Pi with...
	#8806: Buildroot 2016.2 for Raspberry Pi requires that ext4...
	#8836: Can't select Vim in menuconfig
	#8851: Make sure fio can compile with libaio support if it...
	#8861: With buildroot 2016.02 trying to build for corei7-avx
	       fails while trying to build host-binutils
	#8866: Making an USB flash bootable with extlinux build with
	        buildroot does not work

2016.02, Released March 1st, 2016

	Minor fixes, mostly security related.

	Circular dependency issue with same-as-kernel linux-headers
	option fixed.

	Updated/fixed packages: bluez5_utils, heirloom-mailx,
	imx-gpu-viv, kodi-pvr-argustv, kodi-pvr-mediaportal-tvserver,
	kodi-pvr-nextpvr, libfcgi, openssl, pifmrds, powerpc-utils,
	python-m2crypto, slang, sox, squid, tn5250, xerces, zsh

2016.02-rc3, Released February 27th, 2016

	Fixes all over the tree.

	Defconfigs: Ensure EABIhf is correctly enabled for ARM cores
	where VFP is optional (but present on the specific hw). Fix
	ARM variant selection for freescale_imx31_3stack_defconfig.

	Ensure tarballs of downloaded git trees do not contain a
	timestamp.

	Clarify license of patches in COPYING.

	Updated/fixed package: avahi, binutils, cairo, can-festival,
	chrony, cifs-utils, dnsmasq, dvdauthor, e2fsprogs, efl,
	erlang-rebar, eudev, fbterm, gawk, gnupg2, gnuradio, gpm,
	gst1-plugins-good, hostapd, imagemagick, iproute2, iputils,
	jack2, kexec, kismet, lftp, libarchive, libeXosip2, libfm,
	libglib2, libsoil, libssh, libssh2, libuci, links, lshw, lxc,
	mediastreamer, mono, mraa, mutt, nfs-utils, numactl, ofono,
	omniorb, openipmi, openobex, patch, pax-utils, perf,
	pulseaudio, pure-ftp, qhull, qt, quagga, quota, sdl_sound,
	shairport-sync, spice, sysklogd, syslog-ng, trace-cmd,
	trousers, tvheadend, util-linux, vim, webkitgtk24, wireshark,
	wpa_supplicant, xerces, zsh

	Issues resolved (http://bugs.uclibc.org):

	#8651: libMonoPosixHelper.so wrong link reference in buildroot..

2016.02-rc2, Released February 18th, 2016

	Fixes all over the tree.

	Toolchain: PR19405 backport to binutils 2.25.1 to fix NIOS ld
	crash, backport of Xtensa .init/.fini literals handling.
	glibc security patches for CVE-2014-8121, CVE-2015-1781
	and CVE-2015-7547.

	Defconfigs for Acmesystems Arietta g25 added.

	Updated/fixed packages: binutils, boost, chrony, dovecot,
	e2fsprogs, fio, gdb, glibc, graphite2, icu, kbd, libbsd,
	libcue, libgcrypt, libraw, links, mc, mosquitto, nodejs,
	postgresql, pptp-linux, pulseaudio, samba4, spice, squid,
	sysklogd, systemd, tiff, uclibc, ulogd, util-linux, valgrind.

	Issues resolved (http://bugs.uclibc.org):

	#8576: Building embedded Linux for Atmel SAMA5D4_Xplained...
	#8606: Problem compiling on Arch Linux
	#8681: kbd 2.0.3 does not build on rpi

2016.02-rc1, Released February 10th, 2016

	Fixes all over the tree and new features.

	Toolchain: Support for GCC 5.3.x. ARC toolchain updated to
	arc-2015.12. Support for legacy uClibc dropped, default to
	uClibc-ng instead. Added sys/queue.h implementation for MUSL
	for compatibility. Updated versions of Code sourcery and
	Linaro toolchains. MIPS Codescape toolchains added. Version
	selection for preconfigured external toolchains removed.

	New Defconfigs: ARM Juno r0/r1 development boards, Freescale
	i.MX6UL Evaluation Kit, Intel Galileo Gen 2, Orange Pi PC.
	A number of defconfigs have been extended to generate complete
	system images using genimage.

	Linux: Automatically patch timeconst.pl for <3.9 kernels,
	which isn't compatible with modern perl versions, breaking the
	build when building on recent (Fedora 23, Debian
	Testing/Unstable, ..) distributions.

	Makedevs utility now accepts textual (non-numerical) user and
	group names.

	Vagrant file to easily setup a working development environment
	in a VM has been added.

	Size-stats-compare script to compare rootfs sizes between
	builds has been added.

	Infozip package renamed to zip. EFL packages restructured.

	Updated/fixed packages: aespipe, aiccu, alsa-lib, alsa-utils,
	angularjs, apache, apr, argp-standalone, armadillo, arptables,
	at, atk, audiofile, aumix, autoconf-archive, avahi, bash, bc,
	bcache-tools, bdwgc, beecrypt, bind, binutils, bluez5_utils,
	bluez_utils, bonnie, boost, busybox, cairo, cdrkit, chrony,
	clamav, cmake, collectd, connman, coreutils, cppcms, crda,
	cryptodev-linux, cryptsetup, cups, cwiid, cxxtest, dbus,
	dbus-cpp, dbus-glib, debianutils, dhcp, dhcpcd, dhrystone,
	dillo, directfb, directfb-examples, dmraid, dnsmasq, doom-wad,
	dovecot, dovecot-pigeonhole, dropbear, dtv-scan-tables,
	dvb-apps, dvbsnoop, ecryptfs-utils, eigen, ejabberd,
	elementary, elfutils, enlightenment, erlang, espeak, eudev,
	eventlog, exfat, exfat-utils, exiv2, expedite, faifa,
	fakeroot, fastd, fbgrab, fetchmail, ffmpeg, findutils, fio,
	firmware-imx, flann, flashrom, flite, flot, fmlib, freerdp,
	freescale-imx, freetype, gauche, gawk, gcc, gcc-final, gcr,
	gdb, gdk-pixbuf, geoip, gesftpserver, gettext, giflib, git,
	glibc, glibmm, glog, gmp, gnupg, gnupg2, gnutls, gob2, gpsd,
	gptfdisk, grep, gst1-libav, gst1-plugins-{bad,base,good,ugly},
	gst-ffmpeg, gst-plugins-{bad,base,good,ugly}, gstreamer,
	gstreamer1, guile, gvfs, gzip, harfbuzz, haserl, hiawatha,
	hostapd, hplip, icu, ifupdown, imagemagick, imx-gpu-viv,
	imx-kobs, imx-lib, input-tools, intel-microcode, iperf3,
	ipmitool, iproute2, iprutils, ipsec-tools, ipset, iptables,
	iputils, irda-utils, irssi, iucode-tool, jack2, janus-gateway,
	jpeg-turbo, jquery-datetimepicker, jquery-keyboard,
	jquery-sparkline, jquery-ui, jquery-ui-themes,
	jquery-validation, json-c, kbd, kernel-module-imx-gpu-viv,
	keyutils, kmod, knock, kodi, lcdproc, lcms2, leafnode2,
	leafpad, libass, libatomic_ops, libbroadvoice, libbsd,
	libcap-ng, libcdaudio, libcue, libcurl, libdrm, libecore,
	libedbus, libedit, libedje, libeet, libefreet, libeina,
	libeio, libelementary, libembryo, libepoxy, libethumb, libev,
	libevas, libevas-generic-loaders, libevdev, libevent, libffi,
	libfm, libfribidi, libfslcodec, libfslparser, libfslvpuwrap,
	libftdi, libfuse, libgail, libglew, libglib2, libgtk2,
	libgtk3, libgudev, libhttpparser, libidn, libinput, libiscsi,
	libjpeg, liblinear, libmbim, libmicrohttpd, libndp, libnspr,
	libnss, liboauth, liboping, libpciaccess, libplist, libpng,
	libraw, libraw1394, librsvg, libseccomp, libsecret,
	libserialport, libsigc, libsigrok, libsigrokdecode,
	libsndfile, libsoc, libsodium, libsoup, libssh2, libsvg,
	libsvg-cairo, libtasn1, libtirpc, libtorrent, libungif,
	libunwind, libupnpp, liburcu, libuv, libv4l, libva,
	libva-intel-driver, libvips, libvncserver, libxml2, libxmlpp,
	lightning, lighttpd, linknx, linux-firmware, linux-fusion,
	linux-headers, liquid-dsp, lirc-tools, live555, lm-sensors,
	lockdev, lshw, ltp-testsuite, ltrace, lttng-babeltrace,
	lttng-libust, lttng-modules, lttng-tools, lua, luabitop,
	luarocks, luv, lvm2, lxc, makedevs, mc, memcached, memtest86,
	mesa3d, mesa3d-demos, mesa3d-headers, micropython,
	micropython-lib, minicom, minidlna, mjpg-streamer, mke2img,
	moarvm, modem-manager, mongoose, mongrel2, monkey, mono,
	monolite, mosh, mosquitto, mpd, mplayer, msgpack, mtdev2tuio,
	musepack, musl, mysql, nano, nasm, nbd, neard, netatalk,
	netsnmp, nettle, net-tools, network-manager, nfs-utils, nginx,
	nmap, nodejs, ntfs-3g, ntp, numactl, nut, nvidia-driver,
	odhcp6c, ofono, ola, olsr, omniorb, opencv, opencv3, openipmi,
	openldap, openntpd, openobex, openocd, openpgm,
	open-plc-utils, openpowerlink, openssh, openssl, openswan,
	openvpn, opkg, oprofile, opus, opusfile, p11-kit, package,
	pango, pax-utils, pciutils, pcmanfm, perl, perl-db-file,
	perl-io-socket-ssl, perl-libwww-perl, perl-net-dns, perl-uri,
	perl-xml-libxml, php, php-ssh2, picocom, pinentry, pixman,
	polarssl, popt, portaudio, pppd, procps-ng, proftpd, protobuf,
	psmisc, ptpd2, pulseaudio, pulseview, pv, python, python3,
	python-alsaaudio, python-can, python-cffi, python-cherrypy,
	python-httplib2, python-jinja2, python-lxml, python-m2crypto,
	python-mako, python-msgpack, python-psutil, python-pyasn,
	python-pycparser, python-pydal, python-pyftpdlib,
	python-pyroute2, python-pyxml, python-pyzmq, python-requests,
	python-serial, python-setuptools, python-six, python-spidev,
	python-tornado, python-twisted, python-web2py, python-webpy,
	python-werkzeug, python-zope-interface, qemu, qhull, qpdf, qt,
	qt5, qt5base, qt5connectivity, qt5declarative, qt5enginio,
	qt5graphicaleffects, qt5imageformats, qt5multimedia,
	qt5quick1, qt5quickcontrols, qt5script, qt5sensors,
	qt5serialport, qt5svg, qt5webchannel, qt5webkit,
	qt5webkit-examples, qt5websockets, qt5x11extras,
	qt5xmlpatterns, qt-webkit-kiosk, racehound, radvd, read-edid,
	readline, redis, rpcbind, rpi-firmware, rpi-userland, rrdtool,
	rsync, rsyslog, rtai, rtorrent, rt-tests, rubix, ruby, samba4,
	sconeserver, setools, shairport-sync, sigrok-cli, skeleton,
	smack, snowball-init, socat, sp-oops-extract, sqlite,
	squashfs, squeezelite, squid, sredird, sshfs,
	start-stop-daemon, strace, strongswan, stunnel, subversion,
	sunxi-tools, swig, sysdig, syslog-ng, sysstat, systemd,
	sysvinit, taglib, tcl, tcpreplay, thrift, ti-gfx, tinyalsa,
	tor, torsmo, trace-cmd, transmission, tremor, triggerhappy,
	trinity, tvheadend, tzdata, uboot-tools, uclibc, udisks,
	udpcast, unionfs, upmpdcli, usb_modeswitch,
	usb_modeswitch_data, ustr, util-linux, vala, valgrind,
	vboot-utils, vde2, vlc, vnstat, webkit, webkitgtk24, weston,
	wget, whetstone, whois, wine, wipe, wireless-regdb, wireshark,
	wpa_supplicant, w_scan, x11r7, xapp_xbacklight, xapp_xcompmgr,
	xapp_xinput, xapp_xkbcomp, xdriver_xf86-input-evdev,
	xdriver_xf86-input-libinput, xdriver_xf86-input-synaptics,
	xdriver_xf86-video-ati, xdriver_xf86-video-fbturbo,
	xdriver_xf86-video-imx-viv, xdriver_xf86-video-intel,
	xfont_encodings, xfont_font-adobe-100dpi,
	xfont_font-adobe-75dpi, xfont_font-adobe-utopia-100dpi,
	xfont_font-adobe-utopia-75dpi, xfont_font-adobe-utopia-type1,
	xfont_font-alias, xfont_font-arabic-misc,
	xfont_font-bh-100dpi, xfont_font-bh-75dpi,
	xfont_font-bh-lucidatypewriter-100dpi,
	xfont_font-bh-lucidatypewriter-75dpi, xfont_font-bh-ttf,
	xfont_font-bh-type1, xfont_font-bitstream-100dpi,
	xfont_font-bitstream-75dpi, xfont_font-bitstream-type1,
	xfont_font-cronyx-cyrillic, xfont_font-cursor-misc,
	xfont_font-daewoo-misc, xfont_font-dec-misc,
	xfont_font-ibm-type1, xfont_font-isas-misc,
	xfont_font-jis-misc, xfont_font-micro-misc,
	xfont_font-misc-cyrillic, xfont_font-misc-ethiopic,
	xfont_font-misc-meltho, xfont_font-misc-misc,
	xfont_font-mutt-misc, xfont_font-schumacher-misc,
	xfont_font-screen-cyrillic, xfont_font-sony-misc,
	xfont_font-sun-misc, xfont_font-winitzki-cyrillic,
	xfont_font-xfree86-type1, xfsprogs, xkeyboard-config, xl2tp,
	xlib_libfontenc, xlib_libXi, xmlstarlet, xscreensaver,
	xserver_xorg-server, xtables-addons, xvkbd, xz, yad, yasm,
	ympd, zeromq, zic, znc, zsh,

	New packages: acsccid, assimp, atkmm, autofs, bcm2835,
	cairomm, cantarell, chocolate-doom, comix-cursors, cxxtest,
	edid-decode, emlog, gcr, gtkmm3, hidapi, jquery-sidebar,
	kernel-module-imx-gpu-viv, libasplib, libcroco, libdvbpsi,
	libfreeglut, libgdiplus, libglfw, libhdhomerun, libnet,
	libsoil, lldpd, luvi, mbedtls, minizip, miraclecast, mongodb,
	mraa, netbsd-queue, netsniff-ng, nss-pam-ldapd,
	obsidian-cursors, openal, openbox, pangomm,
	python-backports-abc, python-beautifulsoup4, python-cbor,
	python-click, python-cssselect, python-ecdsa, python-html5lib,
	python-idna, python-ipaddress, python-mistune, python-netaddr,
	python-paho-mqtt, python-paramiko, python-pyparted,
	python-pysmb, python-pyudev, python-singledispatch,
	python-smbus-cffi, python-urllib3, qt53d, rabbitmq-c, rfkill,
	sbc, spi-tools, tpm-tools, trousers, ubus, unrar, unscd,
	unzip, v4l2grab, xdriver_xf86-video-nouveau, xdotool, zbar

	Removed packages: libungif, python-pyxml,

	Issues resolved (http://bugs.uclibc.org):

	#7886: gettext: link failure with locally-installed libxml2
	#7892: systemd-journald is broken
	#8066: nodejs crashes when built with gcc 4.9
	#8296: nodejs 0.12.7 - npm crashes (seg core dump)
	#8501: gunzip fails to uncompress files
	#8541: fail to build host-fakeroot-1.20.2
	#8546: build instructions for raspberry pi don't work
	#8571: strace for ARC compile error
	#8581: pciutils.mk PCIUTILS_MAKE_OPTS typo
	#8616: Fail to build for raspberrypi_defconfig with big endian
	#8621: sqlite package, properly enable readline

2015.11, Released November 30th, 2015

	Minor fixes.

	Merged/seperate /usr handling is now also performed for
	staging so cross-gdb / gdbserver can find the libraries.

	Updated/fixed packages: autossh, conntrack-tools, dcron,
	espeak, gcc, glmark2, gpsd, gstreamer1, libglib2, libsigsegv,
	libsoc, libv4l, minidlna, mongrel2, opencv, polarssl,
	rpi-userland, rubix, skeleton, tovid, uemacs, valgrind, yad,
	zmqpp

	Issues resolved (http://bugs.uclibc.org):

	#8441: Invalid directory for X11 fonts in target (RPi2)
	#8491: libglib2 2.46.1 not Building for armv5 on 2015.11-rc3

2015.11-rc3, Released November 26th, 2015

	Fixes all over the tree.

	We have a new modern website!

	Updated/fixed packages: apitrace, audiofile, autossh, bullet,
	c-ares, collectd, conntrack-tools, cryptodev-linux, dropbear,
	fastd, gmp, gpsd, gst-plugins-bad, gst-plugins-base,
	gst-plugins-good, gst-plugins-ugly, gstreamer, gstreamer1,
	guile, iodine, iproute2, jimtcl, kompexsqlite, libethumb,
	libfreeimage, libgsasl, libgtk3, libxml2, localedef,
	lttng-tools, macchanger, mongrel2, mpd, openntpd, openssl,
	oprofile, pcre, qt5base, quagga, rpi-userland, sconeserver,
	sdl, spidev_test, sqlite, strongswan, ustr, xapp_sessreg,
	yajl, zmqpp

	Issues resolved (http://bugs.uclibc.org):

	#6872: gpsd: disabled on microblaze
	#8321: invalid opcode error with minidlna and ffmpeg
	#8336: Default systemd configuration fails to boot correctly in 2015-08
	#8446: rpi-userland failed to build with glibc 2.22

2015.11-rc2, Released November 19th, 2015

	Fixes all over the tree.

	LD_LIBRARY_PATH is no longer used to ensure host binaries find
	their libraries, fixing issues on recent Fedora.

	Toolchain fixes for powerpc e5500 / e6500. Fix for an issue
	with ${TARGET}-cc after the move to use a toolchain wrapper
	for the internal toolchain.

	Appy-patches.sh now correctly applies all files listed in
	series files.

	Fixes for merged /usr handling when a custom skeleton is used.

	Updated/fixed packages: axfsutils, boost, busybox, dhcp,
	directfb, dropbear, ebtables, fastd, ffmpeg, gauche, gcc,
	gettext, gst1-plugins-bad, hostapd, ibrdtnd, libcurl,
	libecore, libgudev, libnss, libpng, libserial, libssh2,
	libuecc, libxml2, linux-headers, liquid-dsp, ltris,
	lua-periphery, minidlna, mongrel2, mpd, mpg123, mplayer,
	mysql, opencv, opencv3, package, perl-file-util, php-ssh2,
	polarssl, pulseaudio, python-protobuf, qemu, qt5base, ranger,
	ruby, skeleton, slang, squeezelite, strongswan, tovid, uclibc,
	ushare, wine, wpa_supplicant, x265,
	xdriver_xf86-video-siliconmotion, zxing-cpp

	Issues resolved (http://bugs.uclibc.org):

	#4790: Running udhcpc on a system with NFS root kills NFS
	#8456: Building host-pkgconf on Fedora 23 fails due to..

2015.11-rc1, Released November, 7th 2015

	Fixes all over the tree and new features.

	Architectures:

	- Support for sparc64 added (internal toolchain with glibc
	  only).

	- Support for mips32r6 and mips64r6 added.

	- Support for Intel Quark X1000 CPU.

	- Switch to EABIhf by default on ARM when a VFP is available.

	Toolchains:

	- glibc 2.22, gdb 7.10, use gdb 7.9 by default, musl 1.1.12,
	  uclibc-ng 1.0.8, host-gdb enabled on AArch64.

	- The toolchain wrapper which was used only for external
	  toolchains is now also used for Buildroot internal
	  toolchains. This allowed to fix the ccache support, prepare
	  the way for top-level parallel build support and remove gcc
	  patches used to detect header/library path poisoning.

	- Remove Analog Devices Blackfin toolchain 2012R2.

	- Fix several Xtensa build failures by switching from
	  text-section-literals to auto-litpools.

	- Enable MIPS64 support in uClibc-ng, use uClibc on ARC
	  rather than a specific fork.

	- Linaro toolchains for ARM, ARMeb and AArch64 updated to
	  2015.08. 2014.09 version is kept since 2015.08 only runs on
	  x86_64 hosts.

	Bootloaders:

	- Fix ARM64 support in U-Boot.

	Defconfigs:

	- Added: ARC HS38 VDK virtual boards, Avnet Microzed, Boundary
	  Devices Nitrogen SoloX, Freescale i.MX6 SoloX Sabre SD,
	  OLinuxino A20 Lime2, Qemu Sparc64, Qemu SuperH 4 big endian,
	  Synopsys AArch64 VDK virtual platform.

	- Updated: calao_qil_a9260, calao_usb_a9g20_lpw, ci20,
	  cubieboad, freescale_imx6_*, imx53loco, imx6_vab820,
	  mpc8315erdb, qmx6, p1010rdb, qemu, raspberrypi,
	  raspberrypi2, riotboard, snps_axs10*, wandboard.

	- Removed: at91rm9200df, at91sam9260dfc, at91sam9263ek,
	  calao_snowball_defconfig, gnublin, integrator926_defconfig.

	Infrastructure:

	- Support for fetching from Mercurial tags fixed.

	- Introduce LINUX_NEEDS_MODULES, which allows to enforce
	  module support to be enabled in the kernel when a package
	  builds out-of-tree kernel modules (through the
	  pkg-kernel-module infrastructure or on its own).

	- Improve the perl package infrastructure to automatically add
	  the dependency to the perl interpreter to target perl module
	  packages.

	- Remove trailing slashes in <pkg>_SITE and addition of a
	  check to ensure such trailing slashes are no longer added.

	- Extend the legal infrastructure to allow packages to declare
	  their actual source code. This is useful for packages for
	  which <pkg>_SOURCE points to pre-built binaries (as is the
	  case for external toolchains). The new <pkg>_ACTUAL_SOURCE
	  variable allows to point to the source code in such cases.

	- Improved ccache support, thanks to the usage of a toolchain
	  wrapper for internal toolchain. Now a single cache directory
	  can be shared between different Buildroot builds.

	- Addition of a 'graph-size' make targets, which generates a
	  PDF graph of per-package size of the root filesystem.

	- Addition of <pkg>_EXCLUDES so that packages can request
	  certain parts of the source code tarball to not be
	  extracted. This feature is currently used by gcc and
	  toolchain-external.

	- Packages can now use the <pkg>_PKGDIR variable, provided by
	  the package infrastructure, to reference their package
	  directory, instead of explicitly using package/<pkg>/.

	Filesystems:

	- Add high lz4 compression to squashfs.

	- Simplification of shell profile files in the default
	  skeleton.

	- Remove ftp user and /home/ftp from the skeleton, and let ftp
	  server packages create these when needed.

	- Add support for /bin, /sbin and /lib to be symlinks to their
	  corresponding directories in /usr. This is enforced for
	  systemd configurations, and optional for other
	  configurations.

	- Support for AXFS filesystem image generation added.

	- New options to add extra space/inodes to ext2/3/4 images.

	Updated/fixed packages:

	adwaita-icon-theme, apache, apitrace, atk, audit, avahi,
	barebox, bash, batctl, bind, binutils, bluez_utils, boost,
	bridge-utils, cairo, ccache, chrony, clapack, cloog, cmake,
	collectd, connman, conntrack-tools, coreutils, cpio,
	cryptsetup, dbus, dbus-cpp, devmem2, dhcp, dhcpcd, dhcpdump,
	dhrystone, dillo, directfb, directfb-examples, dmraid,
	dos2unix, dovecot, dovecot-pigeonhole, drbd-utils, dropbear,
	dropwatch, dtc, e2fsprogs, ebtables, efl, eigen, ejabberd,
	elf2flt, elfutils, erlang, ethtool, eudev, evemu, exfat,
	exfat-utils, expat, faifa, fbterm, fdk-aac, feh, ffmpeg, file,
	flashrom, fping, freerdp, freescale-imx, freetype, gdk-pixbuf,
	genimage, gettext, git, glib-networking, glmark2, gnupg2,
	gnuradio, gnutls, gpsd, grep, grub2, gst1-imx, gst1-libav,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst1-validate, gst-fsl-plugins,
	gst-plugins-bad, gstreamer1, guile, gvfs, harfbuzz, haveged,
	hostapd, icu, imagemagick, impiutil, imx-gpu-viv, imx-vpu,
	inadyn, intltool, iostat, iperf3, ipmiutil, iproute2,
	iptables, iw, jpeg-turbo, jq, jsoncpp, kexec-lite, kmod, kodi,
	kodi-audioencoder-flac, kodi-pvr-argustv, kodi-pvr-filmon,
	kodi-pvr-hts, kodi-pvr-mythtv, kodi-pvr-pctv,
	kodi-pvr-stalker, kodi-pvr-vbox,
	kodi-visualisation-waveforhue, less, lftp, libbluray,
	libcgroup, libconfuse, libcurl, libdcadec, libdrm, libevdev,
	libffi, libfribidi, libfslcodec, libfslparser, libfslvpuwrap,
	libgcrypt, libglew, libglib2, libgtk3, libidn, liblinear,
	liblockfile, libmicrohttpd, libnetfilter_conntrack, libnfs,
	libnftnl, libnl, libnspr, libnss, libpcap, libpfm4, libpng,
	libselinux, libserial, libsoup, libsoxr, libstrophe, libtasn1,
	libtirpc, libtorrent, libupnpp, liburcu, libusb-compat, libuv,
	libv4l, libva, libva-intel-driver, libxcb, lighttpd, links,
	linux, linux-firmware, linux-fusion, linux-headers,
	lirc-tools, localedef, lpeg, lsof, ltp-testsuite,
	lttng-libust, lttng-tools, lua-periphery, luaposix, lvm2, lxc,
	lz4, mdadm, mesa3d, mesa3d-headers, minicom, minidlna, moarvm,
	modem-manager, mosquitto, mpd, mpdecimal, mpg123, mplayer,
	mrouted, msmtp, mtd, mutt, nettle, network-manager, nfs-utils,
	nftables, nginx, nodejs, noip, ntp, ofono, opencv3, openpgm,
	openssl, openswan, openvpn, pango, parted, perl, perl-cross,
	perl-crypt-openssl-random, perl-http-message,
	perl-io-socket-ssl, perl-module-build, perl-mojolicious,
	perl-netaddr-ip, perl-net-dns, perl-net-http, perl-net-ssleay,
	perl-uri, perl-xml-libxml, php, picocom, pixman, pkgconf,
	poco, polarssl, portaudio, portmap, postgresql, proftpd,
	protobuf, protobuf-c, pulseaudio, python-configshell-fb,
	python-networkmanager, python-numpy, python-pyparsing,
	python-pypcap, python-rtslib-fb, python-spidev, python-urwid,
	python-web2py, qemu, qt5base, redis, rngtools, rng-tools,
	rpi-firmware, rpi-userland, rtmpdump, rtorrent, ruby, samba,
	samba4, sane-backends, sconeserver, sdl, sed, setools,
	shairport-sync, shared-mime-info, sland, smartmontools,
	softether, spice-protocol, sqlcipher, sqlite, squid,
	strongswan, stunnel, subversion, sudo, sunxi-tools,
	supervisor, systemd, tar, targetcli-fb, tcpdump, tiff, tor,
	tvheadend, tzdata, uboot-tools, udisks, unionfs, upmpdcli,
	util-linux, vala, valgrind, vim, vlc, vorbis-tools, vsftpd,
	vtun, wavpack, webkitgtk24, weston, whois, wireless-regdb,
	wireshark, wpa_supplicant, xdriver_xf86-input-vmmouse,
	xdriver_xf86-video-imx-viv, xdriver_xf86-video-intel,
	xdriver_xf86-video-sis, xlib_libXi, xorg-server,
	xtables-addons, xterm, xz, zic, znc, zsh

	New packages:

	axfsutils, bitstream, check, dvblast, eventlog, fastd, gauche,
	gmock, graphite2, gssdp, gupnp, gupnp-av, ibrcommon, ibrdtn,
	ibrdtnd, ibrdtn-tools, imx-kobs, iqvlinux, irssi,
	kompexsqlite, libbroadvoice, libcddb, libcodec2, libcrossguid,
	libg7221, libhttpparser, libilbc, libldns, libmng,
	libopenh264, libpam-radius-auth, libpam-tacplus, libsilk,
	libsoundtouch, libssh, libuecc, libyuv, liquid-dsp, luv,
	micropython, micropython-libs, python-pyratemp,
	python-pyroute2, python-ranger, rapidxml, scrypt, sdl2,
	sp-oops-extract, squeezelite, stress-ng, swupdate, syslog-ng,
	x265, xdriver_xf86-video-fbturbo, xxhash, yad, zxing-cpp

	Removed packages:

	blackbox (was deprecated), divine (merged in directfb),
	kobs-ng (replaced by imx-kobs), mediactl (merged in libv4l),
	sawman (merged in directfb), schifra (marked broken since a
	long time), texinfo (host variant only, no longer used), zxing
	(replaced by zxing-cpp),

	Issues resolved (http://bugs.uclibc.org):

	#4099: cut utility from GNU coreutils works incorrect
	#7772: libxml-parser-perl build failure: missing dependency
	       ExtUtils/MakeMaker
	#7931: Default configuration for Cubieboard v1 is outdated
	#8116: 2015.05-rc2 raspberrypi2_defconfig network interface
	       not coming up
	#8246: X.org DRI2 build issue
	#8256: pointing to /usr/bin/objcopy old version (x86) instead
	       of the generated one
	#8266: mplayer build issue
	#8281: pyrexc fails to run when path is too long
	#8316: lttng-tools and lttng-babeltrace executables contain
	       bad RPATH pointing to host machine
	#8331: kexec wants shutdown in /sbin, but systemd installs it
	       in /usr/sbin
	#8361: Buildroot 2015.08.1 skeleton inittab overwritten by
	       busybox's version
	#8366: libevent does not build
	#8386: build failed with external toolchain
	#8391: Node.js 0.12.7 fails to build on raspberry_pi defconfig
	#8396: CCACHE initialization
	#8401: gpsd 3.15 NMEA support
	#8416: cups depends on BR2_DEPRECATED_SINCE_2015_05
	#8421: util-linux installs systemd files in output/target/home/

2015.08, Released August 31st, 2015

	Minor fixes.

	OpenCV 3.x package renamed to opencv3. OpenCV 2.4.x
	reintroduced as opencv.

	Updated/fixed packages: bootutils, canfestival, cppcms,
	curlftpfs, dhcpdump, dropbear, erlang-p1-tls, exfat, gnuradio,
	ipkg, libgudev, libmbim, libwebsock, linux-pam, lm-sensors,
	ltrace, midori, network-manager, openssh, perl-file-listing,
	perl-http-cookies, perl-http-daemon, perl-http-negotiate,
	perl-www-robotrules, python-can, qt5base, qt5multimedia,
	setools, sysvinit, tinyalsa, tn5250, tvheadend, uboot, vlc,
	x264, xserver_xorg-server, zyre

2015.08-rc2, Released August, 24th 2015

	Fixes all over the tree.

	Toolchain: fix gcc build on NIOS-II.

	Infrastructure: add <fs>_POST_GEN_HOOKS mechanism to fix
	hybrid ISO image generation.

	Architectures: add arm1136j-s variant.

	Updated/fixed packages: apitrace, audit, bcusdk, bdwgc,
	beecrypt, boost, bwm-ng, cdrkit, c-icap, cifs-utils, clapack,
	c-periphery, cpio, cramfs, czmq, dawgdic, dnsmasq, dosfstools,
	dropbear, elfutils, empty, eudev, fan-ctrl, filemq, gnutls,
	guile, haveged, imlib2, libcec, libepoxy, libev, libgpgme,
	libiio, libnetfilter_queue, libnfnetlink, libpfm4, libpthsem,
	librtas, libselinux, libsigsegv, libsodium, libv4l, lightning,
	linux, lirc-tools, lrzsz, mono, mosh, mpd, msmtp, nbd,
	netatalk, nodejs, ola, opencv, oprofile, php, poco,
	postgresql, powertop, protobuf, protobuf-c, qt5base,
	qt5quickcontrols, rapidjson, rng-tools, squid, sysdig,
	sysstat, tftpd, tinc, tz, util-linux, webkitgtk24, weston,
	wireshark, wvstreams, xdriver_xf86-input-synaptics, zyre.

	Issues resolved (http://bugs.uclibc.org):

	#8276: package/dropbear: symlink resolution incorrect
	#8286: Error with buildroot
	#8301: ldconfig parameter in Makefile

2015.08-rc1, Released August, 5th 2015

	Fixes all over the tree and new features.

	Architectures:

	 - Refactor how the availability of an MMU is described.
	 - Minimal support for Cortex-M3
	 - Minimal support for AArch64 big-endian

	Toolchains:

	 - Add CodeSourcery MIPS 2015.05, remove MIPS 2013.11
	 - Use uClibc-ng as the default uClibc version, instead of the
	   official uClibc, which hasn't done any release since 3+
	   years
	 - eglibc is now marked as deprecated
	 - GCC: gcc 4.9.x is now the default and was updated to 4.9.3,
	   support for gcc 5.x added.
	 - Binutils: use Binutils 2.24 as the default, 2.25.x series
	   bumped to 2.25.1, remove old Binutils 2.22.
	 - Update ARC toolchain components to 2015.06
	 - Add support for Fortran when building gcc

	Bootloaders:

	 - Support for using the kconfig configuration system in
	   U-Boot

	New Defconfigs:

	 - VIA VAB-820/AMOS-820
	 - OLimex OLinuxino A20 Lime
	 - Many new defconfigs for Atmel evaluation boards:
	   at91sam9rlek, at91sam9x5ek, sama5d3xek, sama5d4ek, sama5d4
	   Xplained Ultra, sama5d3 Xplained.
	 - ACME Systems Aria G25
	 - WarPboard
	 - Altera Cyclone 5 Development Board
	 - Xilinx zc706
	 - ARC AXS101 and AXS103 Software Development Platforms
	 - Significant updates to Raspberry Pi / Raspberry Pi 2

	Infrastructure:

	 - Buildroot takes better care now of generating predictable
	   permissions in the target filesystem. However, existing
	   permissions on a custom skeleton or rootfs overlay will no
	   longer be preserved. Therefore, it is necessary to add a
	   permission table (BR2_ROOTFS_DEVICE_TABLE) to set the
	   required permissions.
	 - Add support for kconfig fragments.
	 - No longer pass --{enable,disable}-debug to autotools
	   packages depending on the value of
	   BR2_ENABLE_DEBUG. BR2_ENABLE_DEBUG now only controls
	   whether we build with -g or not.
	 - Support for extracting archives in .lzma in the generic
	   package infrastructure.
	 - Remove random-seed file from the default skeleton, since
	   seeding the entropy pool with a known seed makes more harm
	   than good.
	 - In the CVS download helper, add support to use a date as
	   the version.
	 - Add support for a per-package <pkg>_STRIP_COMPONENTS
	   variable, which packages can use to specify how many path
	   components should be stripped when extracting the tarball.
	 - Addition of a 'kernel-module' package infrastructure, which
	   simplifies the packaging of external kernel modules. Many
	   existing packages are converted to use it.
	 - Allow bootloaders to be implemented in $(BR2_EXTERNAL)
	 - Remove /etc/securetty from the default skeleton.
	 - Migration of sysV initscripts from the default skeleton to
	   a package called 'initscripts', installed only when Busbox
	   init or sysvinit are used.
	 - Migration of the skeleton logic to a proper 'skeleton'
	   package.
	 - Addition of a 'linux-tools' infrastructure in the 'linux'
	   package, to support building user-space tools bundled
	   within the Linux kernel sources, such as perf and cpupower.
	 - Usage of backticks instead of make $(shell ...) to execute
	   shell commands. This allows to delay the evaluation of such
	   commands when actually needed, and not when expanding the
	   variables. It is useful to make 'make printvars' less
	   noisy, and as a preparation to support top-level parallel
	   build.
	 - Libtool .la files are not mungled for all package types,
	   instead of being handled only for packages using the
	   autotools-package infrastructure.
	 - Add mechanism to allow packages to express a dependency on
	   gcc versions. This is needed for packages that use C++11 or
	   C11 support for example.

	Important package updates:

	 - Complete rework of the matchbox packaging
	 - Lots of fixes in packages for compatibility with musl and
	   gcc 5.
	 - Hash files added to a large number of packages.
	 - Update a significant number of packages to use a new
	   hosting, after the announcement of Google Code and
	   Gitorious closing.
	 - Major packages needed for SELinux support have been merged,
	   but the support is not complete yet.
	 - Significant update of OpenCV to version 3.0, and addition
	   of lots of eatures.
	 - Significant update of all packages supporting the GPU and
	   VPU of i.MX ARM processors.
	 - Addition of systemd support in a significant number of
	   packages.
	 - Qt5 updated to 5.5.0
	 - Use modular X.org server by default instead of KDrive

	Filesystems:

	 - Complete overhaul of the iso9660 support. Now allows to use
	   directly IS9660 as the root filesystem format and not only
	   an initrd, and supports Grub 2 and isolinux in addition to
	   Grub.

	Updated packages: a10disp, agentpp, apache, at91bootstrap3,
	audit, barebox, bc, bind, bmon, boost, btrfs-progs,
	ca-certificates, can-utils, ccache, cloog, collectd, connman,
	coreutils, c-periphery, cryptsetup, dado, dbus, dejavu,
	dhcpcd, dnsmasq, dosfstools, dovecot, dovecot-pigeonhole,
	e2fsprogs, ejabberd, erlang-p1-cache-tab, erlang-p1-sip,
	erlang-p1-stringprep, erlang-p1-stun, erlang-p1-tls,
	erlang-p1-utils, erlang-p1-xml, erlang-p1-yaml, ethtool,
	eudev, evtest, exim, expect, explorercanvas, feh, ffmpeg,
	file, flashrom, freescale-imx, freetype, gawk, gcc, gdb,
	gettext, git, glib-networking, gnupg2, gnutls, gpsd, gptfdisk,
	gpu-viv-bin-mx6q, gst-fsl-plugins, harfbuzz, hdparm, heimdal,
	i2c-tools, imagemagick, imx-vpu, iproute2, ipset, isl, iw,
	kodi, kodi-addon-xvdr, kodi-audioencoder-flac,
	kodi-audioencoder-lame, kodi-audioencoder-vorbis,
	kodi-audioencoder-wav, lftp, libass, libassuan, libcec,
	libconfi, libcurl, libdrm, libevdev, libfreefare, libfslcodec,
	libfslparser, libfslvpuwrap, libfuse, libglib2, libgpgme,
	libgtk2, libgtk3, libical, libidn, libiio, libinput, libiscsi,
	libllcp, libmicrohttpd, libnfc, libnss, libpcap, libpciaccess,
	libpng, libserialport, libsigrok, libsoc, libtirpc, libubox,
	libunistring, libupnp, libuv, libv4l, libva,
	libva-intel-driver, libXrandr, lighttpd, linenoise, linux,
	linux-firmware, linux-headers, live555, ltrace, lua,
	lua-csnappy, lua-ev, luajit, lua-messagepack, luaperiphery,
	lvm2, lxc, lzo, mesa3d, mesa3d-headers, midori, mmc-utils,
	modem-manager, mono, mosquitto, mpd, mpd-mpc, mpfr, mpg123,
	mtd, musl, nano, netperf, network-manager, nfs-utils, nginx,
	nodejs, ntp, ola, opencv, openldap, openssh, openssl,
	openswan, openvmtools, openvpn, opkg, orbit, orc, pcmanfm,
	perl-cross, perl-encode-locale, perl-io-socket-ssl,
	perl-mojolicious, perl-net-ssleay, perl-path-tiny, perl-uri,
	perl-xml-libxml, php, pinentry, polarssl, postgresql,
	pulseview, pure-ftpd, python, python-dpkt, python-lxml,
	python-networkmanager, python-pyinotify, python-pypcap,
	python-tornado, qextserialport, qt, qt5, rapidjson, redis,
	rpcbind, rpi-firmware, rpi-userland, samba4, shairport-sync,
	snmpp, sqlite, squid, strongswan, stunnel, sudo, sunxi-boards,
	sunxi-mali, sysdig, sysstat, systemd, tcpdump, tiff, tmux,
	tor, txheadend, tzdata, uboot, uclibc, ulogd, upmpdcli,
	usb_modeswitch, usb_modeswitch_data, vala, vsftpd, wayland,
	weston, whois, wireless-regdb, wireshark, x264, xapp_xvinfo,
	xdriver_xf86-input-libinput, xdriver_xf86-input-vmmouse,
	xdriver_xf86-video-cirrus, xdriver_xf86-video-geode,
	xdriver_xf86-video-imx-viv, xdriver_xf86-video-mach64,
	xdriver_xf86-video-neomagic, xdriver_xf86-video-r128,
	xdriver_xf86-video-savage, xdriver_xf86-video-siliconmotion,
	xdriver_xf86-video-vesa, xkeyboard-config, xlib_libfontenc,
	xlib_libFS, xlib_libXaw, xlib_libxkbfile, xlib_libXrender,
	xlib_libXt, xproto_kbproto, xproto_xproto, xproto_xrandrproto,
	xscreensaver, xserver_xorg-server, xtables-addons, yaml-cpp,
	zic.

	New packages: angularjs, atf, audit, c-icap, c-icap-modules,
	cpio, dawgdic, faketime, fcgiwrap, gflags, glog, initscripts,
	jquery-datetimepicker, kodi-audioencoder-modplug,
	kodi-audioencoder-nosefar, kodi-audioencoder-sidplay,
	kodi-audioencoder-snesapu, kodi-audioencoder-stsound,
	kodi-audioencoder-timidity, kodi-audioencoder-vgmstream,
	kodi-platform, kodi-pvr-argustv, kodi-pvr-dvblink,
	kodi-pvr-dvbviewer, kodi-pvr-filmon, kodi-pvr-hts,
	kodi-pvr-iptvsimple, kodi-pvr-mediaportal-tvserver,
	kodi-pvr-mythtv, kodi-pvr-nextpvr, kodi-pvr-njoy,
	kodi-pvr-pctv, kodi-pvr-stalker, kodi-pvr-vbox,
	kodi-pvr-vdr-vnsi, kodi-pvr-vuplus, kodi-pvr-wmc,
	kodi-screensaver-asteroids, kodi-screensaver-biogenesis,
	kodi-screensaver-crystalmorph, kodi-screensaver-greynetic,
	kodi-screensaver-pingpong, kodi-screensaver-pyro,
	kodi-screensaver-stars, kodi-visualisation-shadertoy,
	kodi-visualisation-spectrum, kodi-visualisation-waveforhue,
	kodi-visualisation-waveform, kvmtool, kyua, libfm,
	libfm-extra, libplatform, librtas, libsodium, libsquish,
	libucl, libump, linux-backports, lua-iconv, lutok, menu-cache,
	moarvm, monkey, mono-gtksharp3, mosh, openipmi, python-can,
	python-pycli, python-pydal, python-pyyaml, python-web2py,
	qpid-proton, qt5webchannel, quazip, racehound, rtl8188eu,
	rtl8821au, sepolgen, setools, skeleton, stm32flash,
	webkitgtk24, xdriver_xf86-video-qxl, zynq-boot-bin.

	Deprecated packages: webkitgtk, libgail, eglibc support in
	glibc package.

	Issues resolved (http://bugs.uclibc.org):

	#4291: Segmentation fault with all binaries that use threads
               when compiled with gcc 4.6
	#6944: building toolchain for sh4 fails
	#7592: Buildroot GCC: -lto requires plugin support in ranlib
	#7628: Python SSL does not get built for Raspberry Pi
	#7682: Missing dependencies for NFS
	#7742: dhcp lacks important features when BR2_ENABLE_DEBUG
	#7754: make: *** [/..../buildroot-2014.11/output/build/host-gcc-initial-4.8.3/.stamp_built] Error 2
	#7946: libglib2-2.42.2 fails to build for sparc-buildroot-linux-gnu
	#7956: glibc 2.20 and 2.21 fail to build for sh64-buildroot-linux-gnu
	#7971: python-flask, python-werkzeug. No module named zlib
	#7981: Target file system skeleton permissions hazard
	#8006: rpcdebug in nfs-utils built for the host
	#8036: alsa-lib headers problem that prevents to compile alsa
               dependent projects
	#8081: systemd init system: /tmp is not mode 1777
	#8121: php opcache extension doesn't get installed
	#8151: x86-64 make fails with ncurses 5.9
	#8156: pkg-kconfig infra broken for *-update-{config, defconfig}
	#8161: default /bin/sh symlink to busybox is full path and not relative
	#8171: glamor missing
	#8191: Request update support for the cubieboard series
	#8201: Important security upgrades for node.js

2015.05, Released May 31st, 2015

	Minor fixes.

	Updated/fixed packages: conntrack-tools, directfb, fio, flite,
	gptfdisk, ipmiutil, iproute2, janus-gateway, keyutils, knock,
	libelementary, libgcrypt, libgsasl, libjpeg, libstrophe,
	lttng-libust, nbd, ncurses, nmap, php, postgresql, python,
	python3, sconeserver, udpcast, upmpdcli

2015.05-rc3, Released May 22nd, 2015

	Several fixes, mainly related to static linking.

	Updated/fixed packages: acl, alsa-utils, apr, armadillo, attr,
	autoconf-archive, binutils, boost, czmq, dhcpcd, duma,
	enlightenment, exim, fbterm, freerdp, gcc, gdk-pixbuf,
	google-breakpad, gpsd, heirloom-mailx, hwloc, ipmiutil,
	iproute2, jack2, jasper, kmod, lcdproc, leafnode2, libcap-ng,
	libftdi1, libmatroska, libmemcached, libmodbus, libnftnl,
	libsigrok, libupnpp, libuv, libxml-parser-perl, linux,
	linux-headers, lirc-tools, lua-periphery, lxc, mongoose, mono,
	mpg123, mosquitto, neardal, newt, ntp, ola, openldap, opencv,
	php, postgresql, protobuf, pulseaudio, python-pyqt, qemu, qt,
	qt5base, rpi-userland, rsyslog, snmppp, sqlite, tiff,
	tinyxml2, uboot-tools, unionfs, ux5000-firmware, usbredir,
	ushare, vpnc, vsftpd, wavpack, wireless_tools, wsapi,
	wvstreams, xmlstarlet, zeromq, zmqpp

	New packages: c-periphery

	Issues resolved (http://bugs.uclibc.org):

	#8106: mkfs.jffs2 uses the --pagesize parameter incorrectly
	#8111: 2015.05.rc2 LIBFOO_CONF_OPTS not working
	#8126: exim lacks plaintext and cram-md5 auth

2015.05-rc2, Released May 11th, 2015

	Minor fixes.

	Toolchain: PR56780 backport to GCC 4.8.4 to fix GDB linking
	issues. Context functions enabled for uClibc snapshot /
	uClibc-NG.

	Architectures: Endian handling symbol for Xtensa, binutils
	fixes.

	Infrastructure: Fix for kernel module stripping when
	localversion contains spaces.

	Updated/fixed packages: at, autoconf-archive, binutils,
	cc-tool, cryptsetup, dstat, expedite, freerdp, giflib,
	gnuchess, guile, ipmiutil, iproute2, mono, monolite, neard,
	ola, poppler, postgresql, python-qt, qt, sqlite, valgrind,
	xlib_libXfont

	Issues resolved (http://bugs.uclibc.org):

	#8086: Cannot select systemd as init with Linaro 2014.09...

2015.05-rc1, Released May 4th, 2015

	Fixes all over the tree and new features.

	Architectures: Removed AVR32 support, deprecate SH64, added
	support for steamroller, corei7-avx and core-avx2 x86
	variants.

	Toolchains: IPv6 and Largefile support now enforced for
	uClibc. Corresponding Kconfig symbols removed.

	External CodeSourcery AMD64 2014.05, MUSL-cross 1.1.6 added,
	CS sh2, Xilinx microblaze v2/14.3 removed. Distro-class
	external toolchains are now detected and blacklisted.

	Internal toolchain support for Nios2 added, Blackfin
	removed. Aarch64 and sh musl support. uClibc-ng support added.

	Libatomic is now handled for internal and external
	toolchains. Link time optimization (LTO) support.

	New Defconfigs: Freescale i.MX28 EVK, i.MX31 PDK and SABRE
	Auto, Raspberry Pi 2, RIoTboard,

	Infrastructure: Hashes for a large number of packages have
	been added. Missing hashes now stop the build unless
	explicitly disabled.

	Spaces and colons (:) are now supported in package
	versions. Dependencies can now be listed for the patch step
	(<PKG>_PATCH_DEPENDENCIES). Kconfig and Linux kernel
	extensions infrastructure has been added.

	Makedevs now has a recursive (r) option.

	The variable containing the list of packages to build has been
	renamed from TARGETS to PACKAGES.

	Make external-deps / legal-info / source / source-check have
	been reimplemented using the package infrastructure, so their
	output/behaviour may differ from earlier (some packages were
	not included in the past).

	The old insecure DES password encoding is no longer supported.

	U-Boot patch option now support direct references to patch
	files and URLs in addition to directories of patches. The
	i.MX28 SD format (u-boot.sd) is now supported.

	Updated/fixed packages: agentpp, aircrack-ng, alsa-lib,
	alsa-utils, apr-util, apr, atk, autossh, avahi, avrdude,
	bcusdk, bdwgc, bind, binutils, bmon, boost, botan,
	btrfs-progs, busybox, ca-certificates, cairo, can-utils,
	canfestival, ccache, chrony, civetweb, clamav, cmake,
	collectd, connman, copas, crda, cryptodev-linux, cryptsetup,
	cups, czmq, dbus-cpp, dbus-glib, dbus-python, dbus, dfu-util,
	dhcp, dhcpcd, dialog, dillo, dmraid, dnsmasq, dos2unix,
	dosfstools, dovecot-pigeonhole, dovecot, dropbear, dropwatch,
	dtv-scan-tables, dvdauthor, e2fsprogs, ecryptfs-utils,
	libevas, elfutils, enscript, erlang, espeak, eudev, evemu,
	exfat-utils, exim, f2fs-tools, feh, ffmpeg, fftw, flickcurl,
	fltk, fluxbox, fmlib, fmtools, freeradius-client, freerdp,
	gamin, gawk, gcc-final, gcc, gd, gdb, gengetopt, geoip, git,
	glib-networking, gnu-efi, gnuchess, gnutls, gpsd, gptfdisk,
	gpu-viv-bin-mx6q, gst-plugin-bad, gstreamer, gstreamer1,
	gtest, gvfs, harfbuzz, haserl, haveged, hiawatha,
	hicolor-icon-theme, hostapd, hplip, httping, i2c-tools, icu,
	ifplugd, imagemagick, imlib2, iozone, iproute2, iptables,
	iputils, irqbalance, iw, jack2, jhead, jimtcl, json-c, kexec,
	kismet, kmod, kodi-audioencoder-flac,
	kodi-audioencoder-vorbis, kodi-pvr-addons, kodi, ktap, lcms2,
	libass, libatomic_ops, libbluray, libcap, libcgroup, libcurl,
	libdrm, libdvbsi, libebml, libecore, libedit, liberation,
	libev, libevas, libevdev, libftdi, libgcrypt, libglib2,
	libgpgme, libgtk2, libgtk3, libiconv, libidn, libiio,
	libinput, libiscsi, libksba, liblinear, libmatroska,
	libmicrohttpd, libmodbus, libmpdclient, libnice, libnl,
	libnspr, libnss, libpcap, libpciaccess, libphidget, libplayer,
	libpthsem, libqmi, librsvg, libseccomp, libsigrok, libsoup,
	libsrtp, libssh2, libtasn1, libtool, libunistring, liburcu,
	libusb, libuv, libva-intel-driver, libva, libvncserver,
	libvorbis, libvpx, libwebsockets, libxml2, libzip, lightning,
	lighttpd, linknx, linphone, linux-firmware, linux-headers,
	linux-pam, live555, ljsyscall, lmbench, lockdev, logrotate,
	lpc3250loader, lpeg, lsof, lttng-libust, lttng-modules,
	lttng-tools, lua, luacrypto, luafilesystem, luajit, luaposix,
	luarocks, lvm2, lxc, make,
	matchbox-{common,desktop,fakekey,keyboard,lib,startup-monitor,vm},
	matchbox, mcelog, memcached, memstat, memtest86, mesa3d,
	minidlna, mjpegtools, mjpg-streamer, modem-manager, mongoose,
	monit, mono, monolite, mp4v2, mpc, mpd, mpdecimal, mpg123,
	mplayer, musl, nano, nbd, ncftp, ncmpc, ncurses, ne10, neard,
	neardal, net-tools, netatalk, netsnmp, network-manager, nginx,
	nodejs, ntfs-3g, ntp, numactl, odhcp6c, ofono, open2300,
	opencv, openldap, openntpd, openocd, openssh, openssl,
	openswan, opentyrian, openvmtools, openvpn, oprofile, p11-kit,
	pango, patch, patchelf, pciutils, pcre, perf, perl-gdgraph,
	perl-io-socket-ssl, perl-json-tiny, perl-module-build,
	perl-mojolicious, perl-net-ssleay, perl-path-tiny,
	perl-xml-libxml, perl, phidgetwebservice, php-gnupg, php,
	pkgconf, polarssl, poppler, popt, postgresql, powerpc-utils,
	pppd, prboom, procps-ng, proftpd, psplash, ptpd2,
	python-{cheetah,coherence,django,markdown,netifaces,pam,six},
	python-tornado, python-twisted, python-zope-interface, python,
	python3, qemu, qt, qt5, qt5base, qt5multimedia,
	qt5xmlpatterns, qt5cinex, quagga, qwt, radvd, readline,
	rng-tools, rpcbind, rpi-firmware, rpi-userland, rsync,
	rsyslog, rtai, rtmpdump, ruby, sam-ba, samba, samba4,
	sane-backends, sconeserver, shairport-sync, sigrok-cli, slang,
	smcroute, snmppp, socat, socketcand, sofia-sip, sox,
	spawn-fcgi, speex, sqlcipher, sqlite, squid, strace,
	strongswan, stunnel, sudo, sunxi-boards, swig, sysstat,
	systemd, tcpdump, tftpd, thrift, thttpd, ti-gfx, ti-utils,
	tiff, tinyalsa, tn5250, transmission, trinity, tslib,
	tvheadend, tzdata, uboot-tools, uclibc, ulogd, usb_modeswitch,
	usbutils, ustr, util-linux, vala, valgrind, vlc, wayland,
	webp, weston, wget, which, whois, wireless-regdb,
	wireless_tools, wireshark, wpa_supplicant, wvstreams,
	xapp_{bdftopcf,bitmap,fonttosfnt,fslsfonts},
	xapp_{fstobdf,iceauth,mkfontscale,oclock,rgb,sessreg,setxkbmap},
	xapp_{showfont,smproxy,twm,x11perf,xcalc,xclipboard,xcmsdb},
	xapp_{xdbedizzy,xditview,xdpyinfo,xdriinfo,xedit,xev,xeyes},
	xapp_{xf86dga,xfsinfo,xgamma,xgc,xhost,xinit,xinput,xkbcomp},
	xapp_{xkbevd,xkbprint,xlsatoms,xlsfonts,xmag,xman,xmh,xmodmap},
	xapp_xmore, xcb-util-image, xcb-util-keysyms,
	xdata_xcursor-themes,
	xdriver_xf86-input-{evdev,keyboard,synaptics,void},
	xdriver_xf86-video-{ati,cirrus,geode,mach64,mga,neomagic},
	xdriver_xf86-video-{r128,savage,siliconmotion,sis,tdfx},
	xdriver_xf86-video-{trident,vmware,voodoo}, xenomai,
	xfont_font-util, xkeyboard-config,
	xlib_lib{ICE,X11,Xdmcp,Xfont,Xpm,XvMC},
	xlib_lib{Xxf86vm,xshmfence,xtrans}, xproto_randrproto,
	xproto_xproto, xserver_xorg-server, x11vnc, x264, xerces,
	xorriso, xterm, xz, yaml-cpp, zeromq, zic, zmqpp

	New packages: apache, autoconf-archive, batctl,
	bitstream-vera, bullet, cc-tool, doxygen, drbd-utils,
	dvdrw-tools, gnuradio, gst1-imx, hans, hwloc, ijs,
	imx-usb-loader, inconsolata, iodine, iotop, ipmiutil, jsoncpp,
	leveldb, libdcadec, libdri2, libfreeimage, libftdi1,
	libsidplay2, lirc-tools, lua-periphery, mc, mesa3d-headers,
	mosquitto, nvidia-driver, nvidia-tegra23{,-binaries,-codecs},
	openjpeg, opusfile, perl-crypt-openssl-{random,rsa},
	perl-db-file, perl-digest-{hmac,sha1},
	perl-encode-{detect,locale}, perl-file-{listing,util},
	perl-html-{parser,tagset}, perl-http-cookies,
	perl-http-{daemon,date,message,negotiate}, perl-io-html,
	perl-libwww-perl, perl-lwp-mediatypes, perl-mail-dkim,
	perl-mailtools, perl-mime-base64, perl-net-{dns,http},
	perl-netaddr-ip, perl-time-hires, perl-timedate, perl-uri,
	perl-www-robotrules, powertop, pulseview,
	python-{cherrypy,lxml,mako,pyqt,pyxml,sip,spidev,ws4py}, qpdf,
	qt-webkit-kiosk, sl, softether, sysdig, tinyxml2, tor, tovid,
	unixodbc, wf111, wine, libepoxy, xapp_xcompmgr,
	xapp_xfindproxy, xcb-util-cursor, xcb-util-renderutil,
	xdriver_xf86-input-libinput, xdriver_xf86-video-imx{,-viv},
	xproto_xproxymanagementprotocol

	Removed packages: gtk2-theme-hicolor

	Deprecated packages: samba

	Issues resolved (http://bugs.uclibc.org):

	#7478: Multiple chosen python modules are not built due to...
	#7508: Use of BR2_EXTERNAL and dependencies to existing packages
	#7676: Package procps-ng installs binaries to nonsensical folder
	#7724: Startx is not installed in the target
	#7760: botan: wrong prefix in botan-1.10.pc
	#7826: Building of cdparanoia
	#7844: Lua with hard-float on MIPS by buildroot doesn't work
	#7874: X.org configure error
	#7941: glibc-2.20 fails to build for sparc-buildroot-linux-gnu
	#7951: gcc 4.9.2 fails to build for sparc-buildroot-linux-gnu
	#7961: Qt5 fails to build for xtensa-buildroot-linux-uclibc
	#7976: mkuser script fails with: user already exists with...
	#8011: When building only busybox and strace, strace fails...
	#8016: collectd fails to build, network.c:171:19: error:...
	#8041: error on building libcurl7.42.0

2015.02, Released March 1st, 2015

	Minor fixes.

	Updated/fixed packages: civetweb, ding-libs,
	directfb-examples, glibc, gnupg, gnupg2, gpm,
	gst-plugins-good, gst1-plugins-good, freetype, libao, libevas,
	libevent, libfribidi, libgcrypt, libgtk2, libshout, libsrtp,
	libtheora, libupnpp, libxmlrpc, linux, make, opus, pinentry,
	rpi-firmware, shared-mime-info, vlc, vorbis-tools,
	xcb-util-keysyms

	Removed packages: libgc

2015.02-rc3, Released February 24th, 2015

	Minor fixes.

	Cmake and rebar (erlang) infrastructure fixes.

	Updated/fixed packages: bind, btrfs-progs, busybox, e2fsprogs,
	evtest, ffmpeg, fltk, gnutls, i2c-tools, imagemagick, libxcb,
	make, mjpg-streamer, netsnmp, opentyrian, php, polarssl,
	qt5base, samba, samba4, sudo, util-linux, xserver_xorg-server

2015.02-rc2, Released February 15th, 2015

	Minor fixes.

	raspberrypi: fix kernel sha1 for DT variant.

	Updated/fixed packages: dbus, dvdauthor, git, libsemanage,
	libsepol, libssh2, mplayer, ntp, openvmtools, python3,
	qt5base, qt5connectivity, xserver_xorg-server

2015.02-rc1, Released February 8th, 2015

	Fixes all over the tree and new features.

	Static/shared library handling reworked. This is now a
	tristate (shared only / shared and static / static
	only). Default is now shared only to speed up the
	build. BR2_PREFER_STATIC_LIB is now called BR2_STATIC_LIBS.

	The toolchain (internal and external) will now warn when an
	unsafe library or header path is used (such as /usr/include or
	/usr/lib). If BR2_COMPILER_PARANOID_UNSAFE_PATH is enabled
	under build options this instead becomes an error.

	A installation path issue with the internal musl toolchain
	support has been fixed so it is now possible to reuse it as an
	external toolchain.

	Architectures: Freescale E5500 and E6500 PowerPC support
	added, deprecated MIPS 1/2/3/4 support removed.

	New defconfigs: Freescale p2020ds, MIPS creator CI20,
	Raspberrypi with DT, UDOO Quad.

	'make <foo>_defconfig' now saves the path to the defconfig in
	the .config, so a 'make savedefconfig' automatically updates
	it.

	Infrastructure for packages using the Erland rebar tool has
	been added.

	Hashes for a large number of packages have been added. Hashes
	are now checked for both target and host packages.

	The system menu now has an option to automatically configure a
	network interface through DHCP at bootup.

	The default filesystem skeleton now uses a separate tmpfs for
	/run instead of a symlink to /tmp/ for security reasons / to
	protect against conflicts with user generated temporary files.

	BR2_EXTERNAL is now exported to post-build and post-image
	scripts.

	New packages: bdwgc, benejson, blktrace, bootstrap, cgic,
	ding-libs, dvdauthor, ejabberd, erlang-goldrush, erlang-lager,
	erlang-p1-cache-tab, erlang-p1-iconv, erlang-p1-sip,
	erlang-p1-stringprep, erlang-p1-stun, erlang-p1-tls,
	erlang-p1-utils, erlang-p1-xml, erlang-p1-yaml,
	erlang-p1-zlib, exiv2, freeradius-client, gengetopt, glmark2,
	gpu-amd-bin-mx51, guile, host-qemu, ifupdown, iperf3,
	janus-gateway, kodi, kodi-audioencoder-flac,
	kodi-audioencoder-lame, kodi-audioencoder-vorbis,
	kodi-audioencoder-wav, libcli, libiio, liblinear, libnice,
	libselinux, libsemanage, libserialport, libsigro,
	libsigrokdecode, libsrtp, liburiparser, libvips, libwebsock,
	libz160, libzip, lightning, mcelog, memtest86, mjpegtools,
	mjpg-streamer, mke2img, mpd-mpc, netsurf-buildsystem, odhcp6c,
	openldap, python-alsaaudio, python-certifi, python-cheetah,
	python-coherence, python-django, python-docopt, python-enum,
	python-enum34, python-flask, python-gobject, python-httplib2,
	python-ipaddr, python-itsdangerous, python-jinja,
	python-markdown, python-markupsafe, python-networkmanager,
	python-pam, python-psutil, python-pyftpdlib, python-pyinotify,
	python-pysendfile, python-pyxb, python-requests, python-six,
	python-twisted, python-webpy, python-werkzeug,
	python-zope-interface, qt5cinex, sigrok-cli, sofia-sip,
	start-stop-daemon, szip, triggerhappy, ustr, vnstat, xorriso,
	xtables-addons

	Removed packages (target): bison, distcc, gob2, m4

	Issues resolved (http://bugs.uclibc.org):

	#7556: make interactive CLI optional for nftables
	#7730: Error while connecting Qt Cretaor to device
	#7766: logrotate default gzip path is usually wrong
	#7790: Invalid ext4 image generated by Buildroot

2014.11, Released December 1st, 2014

	Minor fixes.

	Infrastructure: LD_LIBRARY_PATH handling tweak to ensure
	current working directory isn't searched.

	Updated/fixed packages: gd, gdb, libwebsockets, luajit, mono,
	parted, shairport-sync, util-linux, xapp_bdftopcf,
	xserver_xorg-server

2014.11-rc3, Released November 28th, 2014

	Fixes all over the tree.

	System: File permissions of /etc/random-seed made more
	restrictive.

	Toolchain: Various fixes related to locale handling, a fix for
	building the toolchain wrapper on MIPS.

	Updated/fixed packages: bind, binutils. botan, btrfsprogs,
	clamav, czmq, dhcp, dillo, dovecot, erlang, flac, gd, glibc,
	gptfdisk, gst1-validate, heirloom-mailx, lame, libksba,
	libllcp, libnspr, libpng, libshairplay, libtirpc, linux,
	linux-headers, mpdecimal, mpg123, network-manager, nfstables,
	nfs-utils, openssl, pcituils, qt, radvd, rtai, sqlcipher,
	sstrip, tcpdump, uclibc, uemacs, ushare, wayland, weston,
	xl2tp, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#7670: Fails to build mpc-1.0.2 on latest Cygwin

2014.11-rc2, Released November 21st, 2014

	Fixes all over the tree.

	Inittab tweaks for shutdown handling (busybox and sysvinit).

	Updated/fixed packages: aircrack-ng, botan, canfestival,
	clamav, coreutils, czmq, dbus, dovecot, duma, e2fsprogs,
	erlang, gcc, iputils, libcap, libgcrypt, libmemcached,
	libssh2, libunwind, libv4l, linux-headers, mesa3d-demos, mutt,
	mysql, ndisc6, nodejs, omniorb, perl-cross, php,
	python-tornado, python3, qemu, qt5base, qt5webkit, rpm,
	rt-tests, ruby, schifra, sdl_sound, shairport-sync, sysvinit,
	tstools, tzdata, wireshark, x264

	Issues resolved (http://bugs.uclibc.org):

	#7646: strftime on datetime not works on python3

2014.11-rc1, Released November 12th, 2014

	Fixes all over the tree and new features.

	Toolchains: Use -mcpu / -march instead of -mtune. Support
	additional ARC and sparc variants. Updated Code sourcery
	and Linaro external toolchains.

	Defconfigs: Freescale iMX6DL SabreSD, Minnowboard MAX, QEMU
	powerpc64 pseries added and a number of updates to the
	existing configurations.

	Infrastructure: Buildroot is now less noisy when built with
	the silent option (make -s).
	A number of package infrastructure variables have been renamed
	from *_OPT to *_OPTS for constency. Buildroot will complain if
	the old names are used to assist in updating out of tree
	packages.
	Fixes for host systems where bash isn't located in /bin, and
	older systems not supporting mktemp --tmpdir.
	Various cleanups of users/groups in the default skeleton.
	There is now an option to choose what shell /bin/sh points to.

	Documentation: Various updates to the user manual. The
	asciidoc documentation handling has now been extended so it
	can be used by (BR2_EXTERNAL) packages.

	Updated/fixed packages: acl, acpid, agentpp, aircrack-ng,
	alsa-lib, alsamixergui, alsa-utils, apitrace, apr, apr-util,
	argus, arptables, at, atftp, atk, attr, audiofile, aumix,
	automake, autossh, avahi, avrdude, axel, bandwidthd, bash,
	bcusdk, beecrypt, bind, binutils, blackbox, bluez5_utils,
	bluez_utils, bmon, boost, bootutils, bridge-utils,
	btrfs-progs, busybox, bwm-ng, bzip2, ca-certificates, cairo,
	ccache, ccid, ccrypt, cdrkit, cegui06, celt051, chrony,
	cifs-utils, civetweb, cjson, clapack, classpath, cloog, cmake,
	collectd, connman, copas, coreutils, coxpcall, cppcms, cppdb,
	cppzmq, cramfs, crda, cryptsetup, ctorrent, cups, cvs, cwiid,
	czmq, dash, dbus, dbus-cpp, dbus-glib, dbus-python, dejavu,
	dhcp, dhcpcd, dhcpdump, dialog, dillo, directfb, distcc,
	dmalloc, dmidecode, dmraid, dnsmasq, doc-asciidoc.mk,
	dosfstools, dropbear, dropwatch, dstat, dtach, dtc, dvbsnoop,
	e2fsprogs, ecryptfs-utils, ed, efl, eigen, elf2flt, elfutils,
	enlightenment, enscript, erlang, espeak, ethtool, eudev,
	evemu, evtest, exfat, exfat-utils, exim, expat, expect,
	explorercanvas, faifa, fakeroot, fan-ctrl, fbdump,
	fb-test-app, fetchmail, ffmpeg, file, filemq, findutils, flac,
	flann, flickcurl, flite, fltk, fluxbox, fmc, fmlib,
	fontconfig, foomatic-filters, freerdp, freescale-imx,
	freetype, ftop, fxload, gamin, gcc, gd, gdb, gdk-pixbuf,
	genimage, genpart, genromfs, geoip, gettext, giblib, git,
	glibc, glib-networking, gmp, gmpc, gnu-efi, gnupg, gnupg2,
	gnuplot, gnutls, google-breakpad, gpm, gpsd, gptfdisk,
	gpu-viv-bin-mx6q, grantlee, grep, gsl, gst1-libav,
	gst1-plugins-{bad,base,good,ugly}, gst-ffmpeg,
	gst-fsl-plugins, gst-omx, gst-plugins-{bad,base,good,ugly},
	gst-plugin-x170, gstreamer, gstreamer1, gtest, gtk2-engines,
	gutenprint, gvfs, harfbuzz, haserl, haveged, hdparm, heimdal,
	heirloom-mailx, hiawatha, hostapd, hplip, htop, httping,
	hwdata, i2c-tools, icu, ifplugd, igh-ethercat, imagemagick,
	imlib2, imx-lib, imx-vpu, inadyn, inotify-tools, input-tools,
	intltool, iperf, iproute2, iprutils, ipsec-tools, ipset,
	iptables, iputils, iw, jamvm, jansson, jasper, jimtcl, joe,
	jpeg-turbo, jq, jquery-keyboard, jquery-mobile, jquery-ui,
	jquery-ui-themes, jquery-validation, jsmin, json-c,
	json-javascript, kbd, kexec, kexec-lite, keyutils, kismet,
	kmod, knock, ktap, lame, lbase64, lbreakout2, lcdproc, lcms2,
	lesstif, lftp, libaio, libao, libarchive, libargtable2,
	libass, libassuan, libatasmart, libbluray, libbsd, libcap,
	libcap-ng, libcdio, libcec, libcgicc, libcgroup, libcofi,
	libconfig, libconfuse, libcurl, libdaemon, libdnet, libdrm,
	libdvdnav, libecore, libedbus, libedit, libedje, libeet,
	libelementary, libelf, libenca, libethumb, libevas,
	libevas-generic-loaders, libevent, libexif, libeXosip2,
	libffi, libftdi, libfuse, libgail, libgcrypt, libgeotiff,
	libglade, libglib2, libgpgme, libgtk2, libhid, libidn,
	libinput, libiscsi, libjson, libksba, liblockfile,
	liblog4c-localtime, liblogging, libmad, libmatroska, libmbim,
	libmemcached, libmicrohttpd, libmpdclient, libmpeg2, libndp,
	libnfc, libnfs, libnftnl, libnl, libnspr, libnss, liboauth,
	libogg, liboping, libosip2, libpcap, libpciaccess, libpfm4,
	libplayer, libplist, libpng, libpthsem, libqmi, libqrencode,
	libraw, libreplaygain, libroxml, librsvg, librtlsdr,
	libsamplerate, libseccomp, libsecret, libshairplay, libsoc,
	libsoup, libsoxr, libssh2, libstrophe, libsvg, libsvg-cairo,
	libtasn1, libtheora, libtirpc, libtorrent, libubox, libuci,
	libungif, liburcu, libusb, libuv, libv4l, libva,
	libva-intel-driver, libvncserver, libvorbis, libvpx,
	libwebsockets, libxcb, libxml2, libxml-parser-perl, libxmlrpc,
	libxslt, lighttpd, linenoise, linknx, links, linphone,
	linux-firmware, linux-fusion, linux-headers, linux-pam,
	linux-zigbee, lite, live555, ljlinenoise, lmbench, lm-sensors,
	localedef, lockdev, lockfile-progs, log4cxx, lpty, lrandom,
	lrzsz, lshw, lsof, lsqlite3, ltp-testsuite, ltrace, ltris,
	lttng-babeltrace, lttng-libust, lttng-modules, lttng-tools,
	lua, luabitop, lua-coat, lua-coatpersistent, lua-csnappy,
	lua-ev, luajit, luajson, lualogging, lua-messagepack,
	lua-msgpack-native, luaposix, luarocks, luasec, luasocket,
	luasql-sqlite3, lua-testmore, lunit, lvm2, lxc, lz4, lzlib,
	lzma, m4, madplay, make, makedevs, Makefile.in,
	matchbox-common, matchbox-desktop, matchbox-fakekey,
	matchbox-keyboard, matchbox-lib, matchbox-panel,
	matchbox-startup-monitor, matchbox-wm, mcrypt, mdadm,
	media-ctl, mediastreamer, memcached, memstat, memtester,
	mesa3d, metacity, midori, mii-diag, minidlna, mmc-utils,
	modem-manager, mongoose, mongrel2, monit, mpc, mpd, mpdecimal,
	mpfr, mpg123, mplayer, mrouted, msmtp, mtd, mtools, mtr,
	musepack, musl, mutt, mxml, mysql, nano, nanocom, nbd, ncftp,
	ncurses, ndisc6, ne10, neard, neon, netatalk, netperf,
	netsnmp, nettle, net-tools, network-manager, newt, nfs-utils,
	ngrep, nmap, nodejs, nss-mdns, ntfs-3g, ntp, numactl, nut,
	nuttcp, ofono, ola, omap-u-boot-utils, omniorb,
	on2-8170-modules, opencore-amr, opencv, openntpd, openobex,
	openocd, openpowerlink, openssh, openssl, openswan,
	opentyrian, opentyrian-data, openvpn, opkg, oprofile, opus,
	opus-tools, orbit, orc, ortp, p11-kit, pango, parted,
	pciutils, pcmanfm, pcre, pcsc-lite, perf, perl, perl-gd,
	perl-gdgraph, perl-io-socket-ssl, perl-json-tiny,
	perl-module-build, perl-mojolicious, perl-net-ssleay,
	perl-path-tiny, perl-xml-libxml, perl-xml-parser, php,
	php-geoip, php-gnupg, php-imagick, php-memcached, php-ssh2,
	php-yaml, php-zmq, picocom, pifmrds, pinentry, pixman,
	pkg-autotools.mk, pkg-cmake.mk, pkg-download.mk,
	pkg-generic.mk, pkg-kconfig.mk, pkg-luarocks.mk, pkg-perl.mk,
	pkg-python.mk, pkg-utils.mk, poco, polarssl, polkit, poppler,
	popt, portaudio, portmap, postgresql, powerpc-utils, pppd,
	pptp-linux, prboom, procps-ng, proftpd, protobuf, protobuf-c,
	psmisc, ptpd2, pulseaudio, pv, pwgen, python, python3,
	python-dialog, python-ipy, python-keyring, python-mad,
	python-netifaces, python-numpy, python-protobuf, python-pyasn,
	python-pyparsing, python-pyro, python-pyusb, python-serial,
	python-setuptools, qdecoder, qemu, qextserialport, qjson, qt,
	qt5, qt5base, qt5connectivity, qt5declarative, qt5enginio,
	qt5graphicaleffects, qt5imageformats, qt5multimedia,
	qt5quick1, qt5quickcontrols, qt5script, qt5sensors,
	qt5serialport, qt5svg, qt5webkit, qt5webkit-examples,
	qt5websockets, qt5x11extras, qt5xmlpatterns, qtuio, quagga,
	quota, qwt, radvd, rapidjson, rdesktop, redis, rings, rpcbind,
	rpi-firmware, rpi-userland, rpm, rp-pppoe, rrdtool,
	rsh-redone, rsync, rsyslog, rtai, rtmpdump, rt-tests, rubix,
	ruby, samba, sam-ba, samba4, sane-backends, schifra,
	sconeserver, scons, screen, sdl, sdl_gfx, sdl_image,
	sdl_mixer, sdl_net, sdl_sound, sdl_ttf, sed, ser2net,
	setserial, sg3_utils, shared-mime-info, simicsfs, sispmctl,
	slang, slirp, smcroute, smstools3, snmppp,
	snowball-hdmiservice, socat, socketcand, sox, spawn-fcgi,
	speex, spice, spice-protocol, sqlcipher, sqlite, squashfs,
	squid, sredird, startup-notification, strace, stress,
	strongswan, stunnel, subversion, sudo, sunxi-boards,
	sunxi-cedarx, swig, sylpheed, synergy, sysklogd, sysstat,
	systemd, sysvinit, taglib, tar, tcl, tcllib, tcpdump,
	tcpreplay, texinfo, tftpd, thrift, thttpd, tiff, ti-utils,
	tn5250, torsmo, trace-cmd, transmission, tslib, tstools,
	tvheadend, twolame, tz, uboot-tools, uclibc, udisks, ulogd,
	upmpdcli, upx, urg, usb_modeswitch, usbmount, usbredir,
	usbutils, util-linux, valgrind, vde2, vim, vlc, vo-aacenc,
	vorbis-tools, vpnc, vsftpd, vtun, wayland, webkit, webp,
	webrtc-audio-processing, weston, wget, whois, wireless-regdb,
	wireshark, wpa_supplicant, wvstreams, x11r7, x11vnc,
	xapp_xcalc, xapp_xdm, xapp_xdpyinfo, xapp_xf86dga, xapp_xfs,
	xapp_xinit, xapp_xkbevd, xapp_xmh, xapp_xrandr, xapp_xsm,
	xbmc, xbmc-pvr-addons, xcb-proto, xcursor-transparent-theme,
	xdriver_xf86-input-mouse, xdriver_xf86-video-{ast,intel},
	xdriver_xf86-video-vmware, xenomai, xerces,
	xfont_font-adobe-{100,75}dpi,
	xfont_font-adobe-utopia-{100dpi,75dpi,type1},
	xfont_font-alias, xfont_font-arabic-misc,
	xfont_font-bh-100dpi, xfont_font-bh-75dpi,
	xfont_font-bh-lucidatypewriter-100dpi,
	xfont_font-bh-lucidatypewriter-75dpi, xfont_font-bh-ttf,
	xfont_font-bh-type1, xfont_font-bitstream-100dpi,
	xfont_font-bitstream-75dpi, xfont_font-bitstream-type1,
	xfont_font-cronyx-cyrillic, xfont_font-cursor-misc,
	xfont_font-daewoo-misc, xfont_font-dec-misc,
	xfont_font-ibm-type1, xfont_font-isas-misc,
	xfont_font-jis-misc, xfont_font-micro-misc,
	xfont_font-misc-cyrillic, xfont_font-misc-ethiopic,
	xfont_font-misc-meltho, xfont_font-misc-misc,
	xfont_font-mutt-misc, xfont_font-schumacher-misc,
	xfont_font-screen-cyrillic, xfont_font-sony-misc,
	xfont_font-sun-misc, xfont_font-winitzki-cyrillic,
	xfont_font-xfree86-type1, xfsprogs, xinetd, xkeyboard-config,
	xlib_libdmx, xlib_libFS, xlib_libpciaccess, xlib_libSM,
	xlib_libX11, xlib_libXaw, xlib_libXext, xlib_libXfont,
	xlib_libXi, xlib_libXinerama, xlib_libXrandr, xlib_libXrender,
	xlib_libXres, xlib_libXScrnSaver, xlib_libXt, xlib_libXv,
	xlib_libXvMC, xlib_libXxf86dga, xlib_libXxf86vm, xmlstarlet,
	xproto_xcmiscproto, xproto_xextproto, xscreensaver,
	xserver_xorg-server, xterm, xz, zeromq, zlib, zlog, zmqpp,
	znc, zsh, zxing

	New packages: adwaita-icon-theme, am335x-pru-package,
	bcache-tools, biosdevname, botan, canfestival, clamav,
	cppunit, dos2unix, dovecot, dovecot-pigeonhole, getent, glm,
	gst1-validate, hicolor-icon-theme, ipmitool, leafnode2,
	libdvbcsa, libgtk3, libphidget, libshout, libunistring,
	libupnpp, mesa3d-demos, modplugtools, mono, monolite, mp4v2,
	netcat-openbsd, nginx, odhcploc, openvmtools,
	phidgetwebservice, pps-tools, pure-ftpd,
	python-configshell-fb, python-rtslib-fb, python-urwid, qlibc,
	qt5location, shairport-sync, spidev_test, targetcli-fb,
	tinyalsa, trinity, x264, yaml-cpp, ympd

	Removed packages: libelf

	Issues resolved (http://bugs.uclibc.org):

	#261: New package: wxWidgets
	#325: New package: ratpoison
	#405: New package: OpenVZ tools
	#1309: New package: rdiff-backup
	#3427: New package: nginx
	#3655: New package: libav
	#3991: New Package: open-vm-tools (Vmware Tools)
	#6878: dmraid: disabled on ARC
	#6950: Full unicode support in ncurses
	#7010: jamvm builds and runs fine under mips (be)
	#7088: elfutils on Blackfin doesn't build
	#7142: ecryptfs needs getent to run
	#7280: CMake toolchain file uses the FORCE attribute on CMAKE_CXX_FLAGS
	#7346: [2014.08rc3] vim-8ae50e3ef8bf.tar.gz can not be downloaded, ...
	#7352: [2014.08-rc3] diffutils-3.3 failed on building
	#7358: rpi-userland: linking with bcm_host doesn't give vc_dispmanx_*
	#7364: monit builds a static application, even though BR2_PREFER_...
	#7370: ngrep - requires --with-pcap-includes fully defined to find...
	#7442: rootfs remount does not work as expected with sysvinit
	#7448: Having export MACHINE="something" breaks glibc build on IMX6...
	#7568: musl buildroot-toolchain does not put libgcc_s.so.1 into place
	#7574: quota-4.01 fails to build statically

2014.08, Released September 1st, 2014

	Minor manual fixes/additions.

	Updated/fixed packages: btrfs-progs, cmake, cppcms, exim,
	lftp, libdaemon, libev, libgpgme, libiqrf, libnl, libplist,
	libroxml, libwebsockets, mesa3d, mpd, mtdev2tuio, musepack,
	perl-gd, php-geoip, php-gnupg, php-imagick, php-memcached,
	php-ssh2, php-yaml, php-zmq, polarssl, ruby, systemd, taglib,
	uboot-tools, upmpdcli, webkit, xapp_xfs, xapp_luit,
	xscreensaver, yajl

	Issues resolved (http://bugs.uclibc.org):

	#7346: vim-8ae50e3ef8bf.tar.gz can not be downloaded, 404 not found

2014.08-rc3, Released August 26th, 2014

	Minor fixes.

	User manual update / restructuring.

	Updated/fixed packages: cairo, ecryptfs-utils, gettext,
	gstreamer, gstreamer1, gutenprint, icu, imagemagick, jack2,
	lbreakout2, libevas-generic-loaders, libftdi, libinput,
	libtorrent, ltris, msgpack, ntp, php, procps-ng, pulseaudio,
	thrift, tvheadend, usb_modeswitch, xmlstarlet,

	Issues resolved (http://bugs.uclibc.org):

	#7136: ecryptfs-utils needs gettext to run when glibc/eglibc...
	#7322: libgomp dependency issue with imagemagick
	#7328: Git dl of versions in x/y broken

2014.08-rc2, Released August 18th, 2014

	Fixes all over the tree.

	User manual restructured / reworked.

	Toolchain: Fix for C++ exceptions / pthread_exit() on
	uClibc/glibc, C++-11 features with uClibc.

	Updated/fixed packages: bandwidthd, bluez5_utils, empty,
	espeak, fbv, ffmpeg, gd, gnupg2, gst1-plugin-good, iftop,
	infozip, libcuefile, libeml, libnftl, localedef, ltrace,
	matchbox, mpd, network-manager, nftables, ngrep, nut, openssl,
	oprofile, perl, perl-net-ssleay, postgresql, pppd, procps-ng,
	qt, subversion, synergy, systemd, tar, tftpd, webkit,
	xapp_rstart, xbmc, xbmc-pvr-addons

	Issues resolved (http://bugs.uclibc.org):

	#7124: Use BR toolchain externally results a non-bootable...
	#7208: Glibc C++ aplications crash if they use exceptions
	#7250: Cannot build with -std=c++11
	#7262: Generating locale en_US.UTF-8 fails on 64bit fedora..
	#7286: systemd 215 doesn't build

2014.08-rc1, Released August 8th, 2014

	Fixes all over the tree and new features.

	Architecture: Powerpc64 BE/LE added, AVR32 deprecated.
	Improved altivec / SPE /atomic instructions
	handling. Additional PowerPC CPU variants added.

	Defconfigs: Atmel SAMA5D3, Congatec QMX6, Lego ev3, TS-5x00,
	qemu-system-xtensa, qemu-aarch64-virt added. A number of
	tweaks to existing ones. lpc32xx defconfigs removed.

	Toolchain: Microblaze support for internal musl toolchain.
	Default to GCC 4.8 for internal toolchain, remove deprecated
	4.3 and 4.6 versions.
	External CodeSourcery / Linaro toolchain updates, option to
	copy gconv libraries for external toolchains.

	Infrastructure: graph-depends: misc fixes, transitive
	dependencies are not drawn by default. Download handling is
	now done using helper scripts. Integrity of downloads can now
	be verified using sha* hashes. Subversion download now uses
	peg revisions for robustness.
	Legal-info: License info of local or overridden packages are
	saved as well. Toolchain packages are also taken into account.
	autotools: Static linking with libtool / v1.5 improvements.
	Gettextize support, similar to autoreconf.
	kconfig package infrastructure added.

	Misc: Version selection for busybox dropped.

	Updated/fixed packages: aespipe, aiccu, alsa-lib, alsa-utils,
	alsamixergui, argus, armadillo, at, atftp, atk, avahi,
	avrdude, axel, b43-firmware, b43-fwcutter, bandwidthd, bc,
	bcusdk, beecrypt, bind, binutils, blackbox, bluez5_utils,
	bmon, boa, bonnie, bootutils, bsdiff, btrfs-progs, bustle,
	busybox, bwm-ng, bzip2, ca-certificates, cairo, can-utils,
	ccache, ccrypt, chrony, cifs-utils, classpath, cloog, cmake,
	collectd, connman, coreutils, cosmo, cppcms, cramfs, crda,
	cryptodev-linux, cryptodev, ctorrent, cvs, dbus-cpp,
	dbus-glib, dbus-python, dbus, dcron, dejavu, devmem2,
	dfu-util, dhcp, dhcpcd, dhcpdump, dhrystone, dialog, dillo,
	distcc, dmidecode, dmraid, dnsmasq, doom-wad, dropbear,
	dropwatch, dsp-tools, dtv-scan-tables, dvb-apps, e2fsprogs,
	e2tools, eeprog, eigen, elf2flt, elftosb, enlightenment,
	enscript, espeak, ethtool, eudev, evemu, exim, expedite,
	explorercanvas, ezxml, faifa, fan-ctrl, fconfig, feh,
	fetchmail, ffmpeg, fftw, file, fio, fis, flann, flashrom,
	flex, flot, fltk, fontconfig, freerdp, freescale-imx,
	freetype, ftop, gcc, gd, gdb, genimage, genromfs, gettext,
	giblib, glib-networking, glibc, gmp, gnupg, gnutls, gpm, gpsd,
	gptfdisk, gpu-viv-bin-imx6q, gqview, grantlee, gst-ffmpeg,
	gst-fsl-plugins, gst1-libav, gst1-plugins-bad,
	gst1-plugins-ugly, gtk2-engines, gtk2-theme-hicolor, gtkperf,
	gvfs, haserl, hdparm, hostapd, httping, i2c-tools, icu,
	imagemagick, imx-lib, inadyn, inotify-tools, input-tools,
	ipkg, iproute2, iputils, irda-utils, iw, jack2, jpeg, jquery,
	jquery-keyboard, jquery-mobile, jquery-validation, jsmin, kbd,
	kexec, kmod, knock, latencytop, lcdapi, leafpad, lesstif,
	lftp, libaio, libarchive, libargtable2, libart, libatasmart,
	libatomic_ops, libbsd, libcap-ng, libcec, libcgicc, libcgroup,
	libconfuse, libcurl, libdrm, libdvdnav, libdvdread,
	libeXosip2, libedit, liberation, libesmtp, libev, libevas,
	libevdev, libevent, libfcgi, libffi, libfreefare, libfslcodec,
	libfslparser, libfslvpuwrap, libgail, libgcrypt, libglade,
	libglib2, libgpgme, libgtk2, libhid, libical, libiconv,
	libiqrf, libjpeg, liblog4c-localtime, libmbus, libmicrohttpd,
	libmms, libndp, libnftnl, libnl, libnspr, libnss, liboauth,
	libpcap, libpng, libpthsem, libqmi, libraw, libraw1394,
	librsvg, libsoc, libsoup, libsvgtiny, libsysfs, libtasn1,
	libtirpc, libtorrent, libusb, libv4l, libwebsockets, libxcb,
	libxml2, libyaml, links, linux-firmware, linux-fusion,
	linux-headers, linux-pam, lite, live555, lm-sensors,
	lockfile-progs, lpc3250loader, lshw, lsof, lsuio, ltrace,
	ltris, lua-messagepack, luainterpreter, luajit, luaposix,
	luarocks, lvm2, lxc, lz4, lzo, make, makedevs, mdadm,
	mediastreamer, mesa3d, metacity, minidlna, mkpasswd,
	modem-manager, mongoose, mpd, mpg123, msgpack, mtd, mtools,
	mtr, musepack, musl, mysql, nano, nasm, nbd, ncurses, ndisc6,
	netatalk, netplug, network-manager, nftables, ngircd, nodejs,
	nss-mdns, ntp, nut, olsr, open2300, opencv, openntpd, openocd,
	openpgm, openpowerlink, openssh, openssl, openswan, openvpn,
	opkg, oprofile, opus-tools, orc, p910nd, pango, parted,
	pax-utils, pcmanfm, perf, perl, perl-module-build, php,
	pixman, pkgconf, poco, polarssl, popt, portmap, postgresql,
	prboom, protobuf-c, proxychains-ng, psmisc, psplash, ptpd2,
	python,
	python-{bottle,dpkt,id3,mad,msgpack,nfc,pygame,pyzmq,simplejson},
	python3, qhull, qt, qt5base, qt5connectivity, qt5declarative,
	qt5graphicaleffects, qt5multimedia, qt5quickcontrols,
	qt5sensors, qt5svg, qt5webkit, quagga, quota, radvd, rdesktop,
	read-edid, rpcbind, rpi-firmware, rpi-userland, rpm,
	rsh-redone, rsync, rt-tests, rtmpdump, rtorrent, rubix, ruby,
	samba, samba4, sane-backends, sawman, sconeserver, setserial,
	sg3_utils, shared-mime-info, smartmontools, smcroute, snappy,
	socketcand, spawn-fcgi, sqlite, squashfs, squid, sredird,
	startup-notification, statserial, strongswan, stunnel,
	sunxi-mali, supervisor, synergy, sysklogd, sysprof, sysstat,
	systemd, tcpdump, tcpreplay, texinfo, thrift, thttpd, ti-gfx,
	ti-utils, tinyhttpd, torsmo, trace-cmd, transmission, tslib,
	tstools, tvheadend, tzdata, uboot-tools, uclibc, udev,
	udpcast, usb_modeswitch, usbmount, util-linux, valgrind, vim,
	vlc, w_scan, wayland, webrtc-audio-processing, weston, wget,
	wireless-regdb, wireless_tools, wireshark, wpa_supplicant,
	xapp_{twm,xconsole,xcursorgen,xedit,xfs,xinit,xrandr},
	xdriver_xf86-video-intel, xlib_lib{FS,ICE,Xext,Xfont,Xft,Xi},
	xproto_fontsproto, xproto_inputproto, xserver_xorg-server,
	x11vnc, xbmc, xbmc-addon-xvdr, xbmc-pvr-addons, xterm, xvkbd,
	xz

	New packages: flickcurl, fmc, fmlib, geoip, gnupg2,
	google-breakpad, imx-vpu, isl, kexec-lite, libglew, libglu,
	libinput, libksba, libmemcached, libmpdclient, librtlsdr,
	libuv, libva, libva-intel-driver, linux-zigbee, memcached,
	mpdecimal, ncmpc, opencore-amr, patchelf, perl-datetime-tiny,
	perl-gd, perl-gdgraph, perl-gdtextutil, perl-io-socket-ssl,
	perl-json-tiny, perl-mojolicious, perl-net-ssleay,
	perl-path-tiny, perl-try-tiny, perl-xml-libxml,
	perl-xml-namespacesupport, perl-xml-sax, perl-xml-sax-base,
	php-geoip, php-memcached, pifmrds, pinentry, powerpc-utils,
	procps-ng, pwgen, python-cffi, python-daemon, python-flup,
	python-ipython, python-numpy, qt5enginio, qt5webkit-examples,
	qt5websockets, simicsfs, sispmctl, sox, sshpass, tclap,
	twolame, upmpdcli, whois, xlib_libxshmfence, xproto_dri3proto

	Removed packages: procps

	Issues resolved (http://bugs.uclibc.org):

	#5750: Doing a Buildroot build from /usr doesn't work
	#5900: config flags to the Xenomai build system
	#6230: Cannot compile gcc without threads (uClibc-based)
	#6626: procps Unknown HZ value! (XX) Assume 100
	#7118: Package "thrift" requires atomic operations
	#7154: Local uClibc config file gets overwritten using ...
	#7160: host-xz not built
	#7166: hostapd: segfault when using RT5370
	#7172: Name collision of rpath token expansion and internal..
	#7178: NTPd package cannot sync time without a proper ntp.conf
	#7184: supervisord depends on libxml2 implicitly
	#7196: Unable to build on UBUNTU13.10
	#7268: python 2.7 compilation issue on a Debian/Ubuntu ...

2014.05, Released May 31st, 2014

	Minor fixes.

	Minor manual fixes. U-Boot now defaults to spl/u-boot-spl.bin
	for the spl file.

	Updated/fixed packages: exim, glibc, gnutls, libfribidi,
	qt5base, qt5webkit, sysklogd, thrift, u-boot

2014.05-rc3, Released May 28th, 2014

	Minor fixes.

	Updated/fixed packages: acl, attr, connman, dosfstools,
	dropbear, dvb-apps, exim, flite, gdb, httping, hwdata,
	lesstif, libnss, libv4l, lttng-babeltrace, midori, monit,
	mplayer, php, python2, rdesktop, rpi-userland, ruby, samba,
	samba4, slang, xbmc

	Issues resolved (http://bugs.uclibc.org):

	#7100: license info for package 'acl' missing
	#7106: license info for package 'attr' missing
	#7112: license info for package 'hwdata'

2014.05-rc2, Released May 21st, 2014

	Fixes all over the tree.

	Stripping using sstrip has been deprecated.

	BR2_EXTERNAL can now also be used to implement custom
	filesystem types.

	The newly added BR2_GRAPH_DEPTH variable to limit the depth of
	the generated dependency graph has been renamed to
	BR2_GRAPH_DEPS_OPTS, so additional options can be supported in
	the future.

	The virtual package infrastructure will now error out early
	if multiple packages providing the same virtual package has
	been enabled (E.G. opengl). This change requires that the
	packages explicitly declare what virtual package(s) they
	provide.

	Updated/fixed packages: acpid, armadillo, avahi, bellagio,
	btrfs-progs, cairo, clapack, directfb, duma, ecryptfs-utils,
	elfutils, eudev, fbgrab, fio, flann, fluxbox, gdb, gpm,
	gpu-viv-bin-mx6q, gst1-plugins-good, gst-plugins-good,
	imagemagick, iprutils, ipsec-tools, jack2, libdvdnav,
	libdvdread, libnss, libunwind, linux-headers, lsof, lua,
	luajit, matchbox-keyboard, mesa3d, mpd, mplayer, mtr, mysql,
	netsnmp, nodejs, openpowerlink, openvpn, pciutils,
	php-imagick, postgresql, pulseaudio, qt5quick1, rpi-userland,
	rsyslog, samba, samba4, sane-backends, sunxi-mali, systemd,
	ti-gfx, tstools, udev, webkit, wpa_supplicant, xbmc,
	xlib_libXpm, xserver_xorg-server, zyre

	Issues resolved (http://bugs.uclibc.org):

	#5396: Boot hangs when starting samba if BR2_ENABLE_LOCALE...
	#7016: Git issues in resulting buildroot tar
	#7094: pciutils doesn't build on Blackfin

2014.05-rc1, Released May 13th, 2014

	Fixes all over the tree and new features.

	Architectures: Support for MIPS o32 ABI on MIPS-64 targets has
	been removed. Building o32 ELF files for MIPS64 is an exotic
	configuration that nobody should be using. If o32 is required,
	then is better if it's built for MIPS 32-bit cores so only
	32-bit instructions will be used leading to a more efficient
	o32 usage.
	Support for the ARM A12 variant and Intel corei7.

	Configs: Minnowboard and Altera SoCkit added, QEMU updates.

	Bootloaders: Grub2 and gummiboot support, syslinux support
	extended.

	Toolchains: GCC 4.9. Glibc 2.19. Support for the musl C
	library for internal and external toolchains. 4.8-R3 support
	for ARC, Internal toolchain support for Aarch64 and
	Microblaze. Environment variable to control debug output of
	toolchain wrapper renamed to BR2_DEBUG_WRAPPER to match the
	other variables. Toolchain tuple vendor name can now be
	customized. Updated external Linaro ARM/Aarch64
	toolchains. Added external Linaro ARMEB toolchain.
	A GDB gdbinit file is now generated for external toolchains to
	automatically set the correct sysroot.

	Kconfig handling for minimum kernel headers version required
	for packages. Now packages needing specific kernel header
	features can specify these requirements in Kconfig.

	Infrastructure: Support for (but disabled as it leads to
	unreproducible builds) toplevel parallel builds. See the
	comment at the top of Makefile for details about how to enable
	it and what the problems are if you want to test it.
	Python package infrastructure extended to support Python 3.x
	Perl and virtual package infrastructure support added.
	PRE_*_HOOKS support for all build steps.

	Updated/fixed packages: acpid, agentpp, aiccu, apr, avahi,
	barebox, bash, beecrypt, bellagio, binutils, boost,
	boot-wrapper-aarch64, bustle, busybox, ca-certificates, cairo,
	ccache, ccid, cgilua, chrony, cifs-utils, civetweb, cmake,
	collectd, connman, coreutils, coxpcall, cppcms, cppzmq, crda,
	cryptodev, cryptsetup, cups, czmq, dbus, dhcpdump, directfb,
	dmalloc, dmraid, dnsmasq, dosfstools, dsp-tools, dtc,
	dvb-apps, ebtables, ecryptfs-utils, eigen, erlang, ethtool,
	evemu, evtest, f2fs-tools, fdk-aac, feh, ffmpeg, file, filemq,
	flac, flot, fmtools, fping, freetype, fswebcam, gcc, gd, gdb,
	gettext, giblib, git, glibc, glibmm, glib-networking, gmp,
	gnutls, gpm, gpsd, gpu-viv-bin-mx6q, grep, gst1-libav,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst-ffmpeg, gst-fsl-plugins, gst-omx,
	gst-plugins-good, gstreamer1, gvfs, harfbuzz, haveged,
	hostapd, htop, httping, ifplugd, iftop, igmpproxy,
	imagemagick, imlib2, imx-lib, infozip, intltool, iproute2,
	ipsec-tools, ipset, jansson, jpeg, jpeg-turbo, jquery,
	jquery-keyboard, jquery-ui, jquery-ui-themes, json-glib,
	json-javascript, kexec, kmod, lame, lbase64, lbreakout2,
	lcdproc, lftp, libao, libatasmart, libatomic_ops, libcap,
	libcdio, libcec, libcgicc, libcgroup, libcurl, libdrm,
	libdvdnav, libdvdread, libegl, libeio, libenca, libesmtp,
	libevas, libevdev, libfribidi, libfslcodec, libfslparser,
	libfslvpuwrap, libgail, libgles, libglib2, libgtk2, libhid,
	libjpeg, libmbim, libmicrohttpd, libmodplug, libnftnl,
	libnspr, libogg, libopenmax, libopenvg, libpcap, libplayer,
	libpng, libpthread-stubs, librsvg, libsigsegv, libsocketcan,
	libsoup, libtasn1, libtool, libtpl, libunwind, liburcu,
	libusb, libwebsockets, libxcb, libxml2, libxmlpp, libyaml,
	lighttpd, linphone, linux-firmware, linux-headers, ljsyscall,
	lmbench, lsof, ltp-testsuite, ltris, lttng-babeltrace,
	lttng-libust, lttng-modules, lttng-tools, lua, lua-cjson,
	luacrypto, lua-ev, luaexpat, luaexpatutils, luafilesystem,
	luainterpreter, luajit, lua-msgpack-native, luaposix,
	luarocks, luasec, luasocket, luasql-sqlite3, lvm2, macchanger,
	memstat, mesa3d, metacity, minidlna, mmc-utils,
	mobile-broadband-provider-info, modem-manager, mongrel2,
	monit, mpd, mplayer, msmtp, mtd, mtools, mutt, mysql, nasm,
	ncurses, ne10, netatalk, netsnmp, nettle, network-manager,
	newt, nfs-utils, nmap, nodejs, ntfs-3g, ntp, nut, ofono, ola,
	olsr, omniorb, opencv, opengl, openpgm, openssh, openssl,
	openswan, openvpn, orbit, orc, p11-kit, pango, parted,
	pciutils, pcre, pcsc-lite, perf, perl, perl-xml-parser, php,
	picocom, pixman, pkgconf, poppler, popt, portmap, powervr,
	pppd, pptp-linux, proftpd, protobuf, protobuf-c, ptpd2,
	pulseaudio, python, python3, python-bottle, python-m2crypto,
	python-netifaces, python-pyasn, python-pycrypto,
	python-pygame, python-pysnmp, python-pysnmp-apps,
	python-pysnmp-mibs, python-serial, python-setuptools,
	qextserialport, qt, qt5, qt5base, qt5connectivity,
	qt5declarative, qt5graphicaleffects, qt5imageformats,
	qt5multimedia, qt5quick1, qt5quickcontrols, qt5script,
	qt5sensors, qt5serialport, qt5svg, qt5webkit, qt5x11extras,
	qt5xmlpatterns, qtuio, qwt, radvd, readline, rings,
	rpi-firmware, rpi-userland, rsh-redone, rsync, rsyslog, rtai,
	rtmpdump, rt-tests, ruby, samba, sconeserver, scons, sdl,
	sdl_image, sdl_mixer, sg3_utils, slang, smstools3, snmppp,
	socat, speex, sqlcipher, sqlite, squashfs, squid, strongswan,
	stunnel, sunxi-boards, sunxi-mali, sunxi-tools, sylpheed,
	syslinux, sysstat, systemd, taglib, tcl, tcllib, tcpreplay,
	tidsp-binaries, ti-gfx, tmux, tvheadend, tzdata, uboot,
	uboot-tools, uclibc, udev, udisks, ulogd, usb_modeswitch,
	usb_modeswitch_data, usbmount, util-linux, valgrind, vlc,
	webkit, weston, wget, wireshark, wpa_supplicant, wsapi,
	w_scan, xapp_appres, xapp_bdftopcf, xapp_beforelight,
	xapp_bitmap, xapp_editres, xapp_fslsfonts, xapp_fstobdf,
	xapp_iceauth, xapp_ico, xapp_mkfontscale, xapp_rgb,
	xapp_rstart, xapp_sessreg, xapp_showfont, xapp_twm,
	xapp_viewres, xapp_xauth, xapp_xbacklight, xapp_xcalc,
	xapp_xclock, xapp_xditview, xapp_xdpyinfo, xapp_xdriinfo,
	xapp_xev, xapp_xfd, xapp_xfontsel, xapp_xfs, xapp_xfsinfo,
	xapp_xgc, xapp_xhost, xapp_xinit, xapp_xkbutils, xapp_xkill,
	xapp_xload, xapp_xlsclients, xapp_xlsfonts, xapp_xmag,
	xapp_xman, xapp_xmessage, xapp_xmodmap, xapp_xprop,
	xapp_xrandr, xapp_xrdb, xapp_xrefresh, xapp_xset,
	xapp_xsetroot, xapp_xsm, xapp_xstdcmap, xapp_xvidtune,
	xapp_xvinfo, xapp_xwd, xapp_xwininfo, xcb-util-wm,
	xdriver_xf86-input-evdev, xdriver_xf86-input-joystick,
	xdriver_xf86-input-keyboard, xdriver_xf86-input-mouse,
	xdriver_xf86-input-synaptics, xdriver_xf86-input-vmmouse,
	xdriver_xf86-video-ark, xdriver_xf86-video-ast,
	xdriver_xf86-video-ati, xdriver_xf86-video-cirrus,
	xdriver_xf86-video-dummy, xdriver_xf86-video-fbdev,
	xdriver_xf86-video-geode, xdriver_xf86-video-glide,
	xdriver_xf86-video-glint, xdriver_xf86-video-i128,
	xdriver_xf86-video-intel, xdriver_xf86-video-mach64,
	xdriver_xf86-video-mga, xdriver_xf86-video-neomagic,
	xdriver_xf86-video-newport, xdriver_xf86-video-nv,
	xdriver_xf86-video-openchrome, xdriver_xf86-video-r128,
	xdriver_xf86-video-savage, xdriver_xf86-video-siliconmotion,
	xdriver_xf86-video-sis, xdriver_xf86-video-tdfx,
	xdriver_xf86-video-tga, xdriver_xf86-video-trident,
	xdriver_xf86-video-vesa, xdriver_xf86-video-vmware,
	xdriver_xf86-video-voodoo, xenomai, xerces, xl2tp, xlib_libFS,
	xlib_xtrans, xproto_xproto, xserver_xorg-server,
	xutil_util-macros, zeromq, zic, zmqpp, zyre

	New packages: armadillo, btrfs-progs, clapack, cosmo, dado,
	dbus-triggerd, dtv-scan-tables, e2tools, eudev, exim, expect,
	fetchmail, flann, flite, gnu-efi, grub2, gummiboot, heimdal,
	iprutils, iptraf-ng, jack2, jquery-mobile, libee, libestr,
	libgc, libgl, liblogging, libndp, libsoxr, libstrophe,
	libubox, libuci, libxmlrpc, ljlinenoise, lpeg, lpty, lrandom,
	lsqlite3, lua-coat, lua-coatpersistent, lua-csnappy, luajson,
	lualogging, lua-messagepack, lua-testmore, lunit, lzip, lzlib,
	musl, nftables, opentyrian, opentyrian-data,
	perl-module-build, php-gnupg, php-imagick, php-ssh2, php-yaml,
	php-zmq, postgresql, python-libconfig, python-pypcap,
	python-pyrex, qdecoder, qhull, samba4, smack, tz, tzdump, ucl,
	upx, vo-aacenc, xbmc, xbmc-addon-xvdr, xbmc-pvr-addons,
	yaffs2utils, zlog, znc

	Removed packages: crosstool-ng, python-distutilscross, vala

	Issues resolved (http://bugs.uclibc.org):

	#6842: Checking external toolchain for eabihf
	#6956: Packaging libsoxr
	#6986: Make legal-info fails on uboot versions before 2014.01
	#6992: Incorrect installation rights on external kernel module..

2014.02, Released February 27th, 2014

	Minor fixes.

	Updated/fixed packages: cegui06, cppdb, e2fsprogs, gcc, gdb,
	gst1-plugins-bad, gstreamer, gstreamer1, haserl, imagemagick,
	libpng, libxml2, lua, luajit, luarock, ncftp, openswan,
	pcsc-lite, qt5connectivity, ramsmp, strongswan, vlc

	Issues resolved (http://bugs.uclibc.org):

	#6938: mkuser script generates wrong password for new user in..

2014.02-rc3, Released February 25th, 2014

	Minor fixes.

	Updated/fixed packages: aiccu, ala-lib, alsa-utils, binutils,
	cairo, coreutils, dhcpcd, distcc, efl, evas, iputils, gdb,
	gpsd, gst-fsl-plugins, icu, libcec, libcgi, libplayer,
	libsecret, libsepol, libsigsegv, libtool, libv4l,
	linux-headers, matchbox-lib, mpg123, ncftp, opencv, pcmanfm,
	pixman, pv, qt, rt-tests, sawman, sconeserver, sdl, thrift,
	tvheadend, util-linux, webkit, xscreensaver

	Issues resolved (http://bugs.uclibc.org):

	#4706: Removing .stamp_target_installed does not trigger...
	#5030: busybox built fails if we use an override src dir...
	#5420: Dbus and /var/run management
	#5768: Not able to build ALSA-Lib for static build
	#5774: Not able to build ALSA-Utils for static build
	#6542: external python modules fail to compile to pyc if...
	#6764: Support for kernel signed modules
	#6794: Busybox compiled from buildroot hangs on pass from...

2014.02-rc2, Released February 20th, 2014

	Fixes all over the tree. Static linking / nommu fixes and
	annotations for several packages.

	Updated/fixed packages: boost, busybox, collectd, coreutils,
	dropbear, elfutils, feh, gcc, gst1-libav, imagemagick, iozone,
	jimtcl, kexec, libvncserver, lvm2, lxc, mplayer, netsnmp, nut,
	opencv, python, python3, qtuio, systemd, thrift, transmission,
	uclibc, vlc, webkit

	Issues resolved (http://bugs.uclibc.org):

	#5450: AT91SAM9260 Bootstrap compilation problem
	#5582: libiconv 1.14 failed to build
	#5624: When building directfb, BR2_TARGET_LDFLAGS not used by..
	#5852: [2012.11] usb_modeswitch should depends of "BR2_PACK..
	#6218: binutils-2.23.2/gas fails with undefined reference to..
	#6236: binutils-2.23.2/bfd fails with undefined reference to..
	#6470: If the build directory is a child of /usr, the build..
	#6776: systemd error: static declaration of 'execvpe' follows..
	#6818: toolchainfile.cmake has absolut path references

2014.02-rc1, Released February 11th, 2014

	Fixes all over the tree and new features.

	Support for external packages/defconfigs (BR2_EXTERNAL). See
	user manual for details.

	Cleanup of environment variable names for consistency. The
	download directory location override (BUILDROOT_DL_DIR) is now
	called BR2_DL_DIR. Likewise the name of the current .config is
	renamed from BUILDROOT_CONFIG to BR2_CONFIG. Please update
	your post build scripts if you use this! BUILD_DIR is now also
	exported to the post build/image scripts.

	Toolchain: GCC 4.8 fix for ARM stack corruption, reverted
	uClibc pread/pwrite backport as they cause issues on certain
	architectures, new Linaro and Sourcery Codebench toolchains.
	x86: Support for AMD Jaguar cores, SSE4.x, SH: SH2/SH3/SH3EB
	variants removed, Microblaze: Internal toolchain support

	Legal infrastructure: Info is now split between host and
	target packages, large number of license annotations.

	Lua: selection between lua 5.1 / 5.2, luarocks support

	Python: package infrastructure, many new packages.

	Defconfigs: Armadeus APF51 + Zedboard added, apf27, apf28,
	beaglebone, microblaze, pandaboard, qemu, raspberry pi
	updated.

	Updated/fixed packages: aiccu, alsa-lib, alsa-utils,
	am33x-cm3, aumix, autoconf, automake, barebox, bellagio,
	berkeleydb, binutils, bison, blackbox, bluez_utils, boost,
	bustle, busybox, cairo, can-utils, ccache, ccid, cgilua,
	cifs-utils, civetweb, cmake, collectd, connman, copas,
	coreutils, coxpcall, cppzmq, cramfs, crda, cryptodev-linux,
	cryptsetup, cups, czmq, dhcpcd, dhcpdump, dhrystone, dialog,
	dmraid, dnsmasq, dosfstools, dropbear, dropwatch, dtc, duma,
	dvb-apps, e2fsprogs, eglibc, eigen, elf2flt, erlang, ethtool,
	f2fs-tools, ffmpeg, file, filemq, fio, flashrom, flex,
	fluxbox, fontconfig freerdp, freetype, gadgetfs-test, gawk,
	gcc, gdb, gdbm, gettext, git, glibc, gnupg, gnutls, gob2,
	gpsd, grep, grub, gst-ffmpeg, gst-plugins-good,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gstreamer, gstreamer1, gtest, icu, iftop,
	imagemagick, inadyn, infozip, iozone, iproute2, iptables, iw,
	jpeg, jpeg-turbo, jq, kexec, kmod, knock, lbase64, lcdapi,
	lftp, libcdaudio, libcgi, libcgicc, libcuefile, libcurl,
	libdmtx, libdrm, libdvdnav, libdvdread, libegl, libevent,
	libexif, libfcgi, libfreefare, libgles, libglib2, libllcp,
	libmicrohttpd, libmpd, libnfc, libnl, libnss, libopenmax,
	libopenvg, libpcap, libpfm4, libplayer, libpng, libqmi,
	libreplaygain, libroxml, libsamplerate, libsexy, libsigsegv,
	libsndfile, libsoc, libtasn1, libtorrent, libtpl, libupnp,
	libusb, libusb-compat, libvorbis, libxcb, libxml2, libxmlpp,
	libyaml, lighttpd, linknx, linux-firmware, linux-pam, live555,
	lm_sensors, lmbench, lockdev, logrotate, lrzsz, ltrace, lua,
	lua-ev, lua-msgpack-native, luabitop, luaexpat, luaexpatutils,
	luafilesystem, luajit, luaposix, luasec, luasocket,
	luasql-sqlite3, m4, matchbox, mdadm, minicom, mongrel2, mpc,
	mpd, mpg123, mplayer, mtd, mysql, lvm2, mxml, ncurses, ne10,
	neard, neardal, netsnmp, netstat-nat, network-manager, nodejs,
	numactl, ofone, ola, olsr, omniorb, open2300, opencv,
	openpowerlink, openssh, openssl, openvpn, oprofile, opus,
	opus-tools, orbit, p11-kit, parted, pcre, pcsc-lite, perl,
	php, poco, poppler, powervr, protobuf-c, psplash, python,
	python-bottle,
	python-{crc16,distutilscross,dpkt,id3,ipy,m2crypto,mad,meld},
	python-{netifaces,nfc,protobuf,pygame,pyparsing,pyro,pyzmq},
	python-{serial,setuptools}, qt, qt5base, qt5connectivity,
	qt5declarative, qt5graphicaleffects, qt5jsbackend,
	qt5multimedia, qt5quick1, qt5quickcontrols, qt5script,
	qt5webkit, radvd, redis, rings, rng-tools, rpcbind,
	rpi-firmware, rpi-userland, rt-tests, sam-ba, samba, sawman,
	sconeserver, scons, sdl, sg3_utils, snappy, snmppp,
	socketcand, spice, spice-protocol, sqlcipher, sqlite, squid,
	sshfs, strace, subversion, sunxi-mali, supervisor, sysklogd,
	sysprof, sysstat, systemd, sysvinit, taglib, tar, tcpdump,
	ti-gfx, ti-utils, tinymembench, tn5250, trace-cmd,
	transmission, tvheadend, tzdata, zxing, uboot, uboot-tools,
	uclibc, udev, udpcast, ulogd, urg, usb_modeswitch_data,
	util-linux, vala, valgrind, vorbis-tools, wavpack, wayland,
	weston, wget, wireless-regdb, wireshark, wpa_supplicant,
	wsapi, xavante, xapp_xdpyinfo, xapp_xrandr, xcb-proto,
	xdriver_xf86-video-intel, xenomai, xkeyboard-config, xl2tp,
	xlib_lib{FS,SM,X11},
	xlib_libX{au,aw,composite,cursor,damage,ext,fixes,font,i},
	xlib_libX{inerama,mu,pm,randr,render,res,t,tst,v,xf86dga},
	xlib_libXxf86vm, xlib_libdmx, xlib_libfontenc,
	xlib_libpciaccess, xlib_xtrans, xproto_dri2proto,
	xproto_{glproto,inputproto,presentproto,randrproto,videoproto},
	xproto_xextproto, xproto_xproto, xutil_util-macros,
	xutil_makedepend, zic, zmqpp, zxing, zsh, zyre

	New packages: apitrace, avrdude, c-ares, ca-certificates,
	cwiid, dbus-cpp, evemu, fping, fswebcam, gpm, gst1-libav,
	haveged, intel-microcode, iucode-tools, jasper, joe, ktap,
	lbreakout2, libass, libbluray, libcdio, libenca, libevdev,
	libmbim, libmodplug, libnfs, libnftnl, libplist, libshairplay,
	libsocketcan, ljsyscall, log4cplus, ltris, luainterpreter,
	luarocks, minidlna, mmc-utils, modemmanager, mtr, net-tools,
	python-configobj, python-dialog, python-json-schema-validator,
	python-keyring, python-msgpack, python-posix-ipc,
	python-pyasn, python-pycrypto, python-pysnmp,
	python-pysnmp-apps, python-pysnmp-mibs, python-pyusb,
	python-simplejson, python-tornado, python-versiontools,
	rtmpdump, rtptools, smcroute, smstools3, tcpreplay, thrift,
	ti-uim, tinyxml, tmux, vlc, wmctrl, xconsole

	Removed packages: autoconf, automake, ccache, cpanminus, lzma,
	netkitbase, netkittelnet, pkg-config, squashfs3, ttcp, xstroke

	Issues resolved (http://bugs.uclibc.org):

	#65:   new package: dbus c++ language bindings
	#769:  Update configuration menu for MIPS target
	#2419: Add a bundle of Lua modules
	#2629: Segmentation faults and division by zero in Grub on ext2
	#3811: Added auto-mount for USB and SD Card (mdev) (for 2011.05)
	#4339: Allow override of DL_DIR in extract step
	#4363: Make sure that copied linux and busybox defconfig are...
	#4454: There should be simple way to update image, when chang...
	#5024: grub fails to build for x86_64 target architecture
	#5066: New-Package: net-tools
	#5072: ncurses: add ncurses-progs to target
	#5294: uclibc build ignores target CFLAGS and LDFLAGS
	#5366: Login doesn't work with util-linux versions of login/agetty
	#5378: dropbear Makefile broken
	#5390: System banner - change to empty doesn't remove /etc/issue
	#5780: spurious build failure because it cannot remove ubinize.cfg
	#5798: ncurses-5.9 fails to compile statically
	#5810: Buildroot 2012.11: Additional GCC option "-msoft-float" ...
	#6080: Git fetch caching
	#6092: Bootable ISO image creation seems to have stopped working..
	#6272: coreutils build fails
	#6434: apply-patches.sh does not work recursively
	#6446: eglibc doesn't install ldconfig to target
	#6484: Add c-ares
	#6596: Slow bootup if mdev is chosen
	#6656: Build Qt5 with ccache
	#6662: internal compiler error: Segmentation fault during making..
	#6722: Usage of $($(PKG)_DIR_PREFIX) is an issue with linux package
	#6752: genext2fs: e2fsck must run before tunefs -U random
	#6770: openssl 1.0.1f fails with ccache
	#6830: Qt5: no fonts are installed
	#6848: Qt5: no text shown in simple QWidget / frame-buffer setup
	#6854: Update to Qt 5.2.1

2013.11, Released November 30th, 2013:

	Minor fixes.

	Updated/fixed packages: apr, binutils, dbus-python, dropwatch,
	ecryptfs-utils, eglibc, gdb, gpsd, grantlee, hostapd,
	iptables, qlibiscsi, libnspr, libnss, libpfm4, libtool,
	lua-ev, lvm2, mplayer, qt, qt5, quagga, ruby, tinymembench,
	tvheadend, util-linux, wpa_supplicant

	Issues resolved (http://bugs.uclibc.org):

	#1279: Buildroot compiled Busybox and Coreutils LFS issues
	#2995: -fstack-protector-all causes ssh to SIGSEGV
	#5570: Cannot compile software on the target machine
	#6428: util-linux libmount segfaults with patch from buildroot
	#6500: php fails to build for armel
	#6554: gdb needs to dependents on host texinfo
	#6692: GNU nano fails to compile for x86_64
	#6704: wpa_supplicant: fix wrong path to executable file in D-Bus

2013.11-rc3, Released November 26th, 2013

	Fixes all over the tree.

	Architecture: Mark MIPS I, II, III and IV as deprecated.

	Updated/fixed packages: beecrypt, dbus, e2fsprogs, libcap-ng,
	libglib2, libroxml, libsigsegv, libvncserver, lxc, mdadm,
	mongoose, nut, ola, omniorb, openssl, pcre, php, poco,
	protobuf-c, pv, qt5base, ruby, schifra, squid, sunxi-mail,
	swig, ti-gfx, tinymembench, uclibc, udisks, vim

2013.11-rc2, Released November 18th, 2013

	Fixes all over the tree.

	Defconfigs: qemu_arm_versatile, qemu_arm_nuri, sheevaplug:
	Adjust kernel versions.

	Toolchain: avr32: fix for modern kernel headers

	Bootloader: Barebox updated to 2013.10.1

	Updated/fixed packages: dhcp, e2fsprogs, gst1-plugins-bad,
	libcurl, libvncserver, nano, pc, qt5base, squashfs, ttcp,
	wayland, wvstreams

	Issues resolved (http://bugs.uclibc.org):

	#3601: DHCPD S80dhcp-server startup script issues
	#6320: Fix kernel compile issue if BR2_LINUX_KERNEL_CUSTOM_GIT_VERS..
	#6416: Xenomai package, patch alternative
	#6590: directfb-examples build failed whit linaro toolchain

2013.11-rc1, Released November 12th, 2013

	Architectures: Nios-II support, MIPS arch handling fixes

	Defconfigs: cubieboard2, freescale i.MX 6sololite evk,
	sabre-sd, wandboard added, rpi renamed to raspberrypi_defconfig

	Toolchain: glibc support, upstream uClibc fixes, uClibc 0.9.31
	for avr32, crosstool-ng backend removed, external musl
	toolchain support, gcc 4.8.2, updated Linaro external
	toolchains. Fortran and objective-C support deprecated,
	mudflap support

	Bootloaders: U-Boot: u-boot.imx support, version bumps

	Linux: use kmod instead of module-init-tools

	System: default to devtmpfs for /dev

	Infrastructure: Make 3.82 fixes, locales generation fixes, CVS
	download support, post-rsync hooks

	Fs: u-boot image support for cpio

	Updated/fixed packages: aircrack-ng, alsamixergui, apr,
	apr-util, atk, automake, bellagio, berkeleydb, bind, binutils,
	bison, boost, busybox, can-utils, ccache, ccid, cgilua,
	chrony, cifs-utils, cjson, collectd, connman, conntrack-tools,
	copas, cppcms, cppzmq, czmq, dash, dbus, dhcpcd, diffutils,
	directfb, dmidecode, dnsmaqs, docker, dosfstools, dropbear,
	dropwatch, ebtables, eglibc, elf2flt, empty, enchant, erlang,
	ethtool, fbgrab, fbv, fdk-aac, feh, ffmpeg, file, findutils,
	fltk, fmtools, freetype, gdk-pixbuf, gettext, git,
	glib-networking, gmp, gnupg, gnutls, gpu-viv-bin-mx6q, gsl,
	gstreamer, gstreamer1, gst1-plugins-{bad,base,good,ugly},
	gtest, gutenprint, hplip, i2c-tools, icu, ifplugd,
	imagemagick, iozone, iproute2, ipset, iptables, iw, jamvm,
	jansson, jpeg-turbo, kismet, kmod, lcms2, libassuan, libcap,
	libcap-ng, libcdaudio, libcec, libcue, libcurl, libdrm,
	libedit, libevas, libevent, libfreefare, libfuse,
	libgpg-error, libiconv, liblog4c-localtime, libmicrohttpd,
	libmnl, libmodbus,
	libnetfilter_{acct,conntrack,cthelper,cttimeout,log,queue},
	libnfnetlink, libnl, libpng, libqmi, libqrencode, libroxml,
	libsecret, libsigsegv, libsoup, libtirpc, libunwind, libusb,
	libvpx, lighttpd, linphone, linux-pam, lmbench,
	lockfile-progs, log4cxx, logrotate, logsurfer, ltp-testsuite,
	ltrace, luacrypto, luaposix, lvm2, m4, matchbox-lib,
	media-ctl, mediastreamer, minicom, minidlna, mongoose, monit,
	mpc, mpd, mpg123, mplayer, mrouted, mtdev, mutt, mysql_client,
	nano, ncftp, ndisc6, neard, neardal, neon, net-snmp, netatalk,
	netcat, netkitbase, netperf, netplug, nettle, nfacct,
	nfs-utils, ngircd, ngrep, noip, nuttcp, olsr, openssh, opkg,
	oprofile, opus-tools, orc, ortp, pciutils, pcre, pcsc-lite,
	perf, perl, perl-cross, php, picocom, pkgconf, polarssl,
	poppler, pppd, proftpd, protobuf, proxychains-ng, pulseaudio,
	pv, qemu, qt, qt5base, qt5webkit, quagga, radvd, redis,
	rpi-{firmware,userland}, rrdtool, rsync, rtorrent, ruby,
	samba, scons, screen, sdl_sound, ser2net, setserial,
	smartmontools, socat, socketcand, sqlcipher, sqlite, squid,
	stress, strongswan, stunnel, sudo, syslinux, systemd,
	sysvinit, tcl, ti-gfx, time, transmission, tremor, tslib,
	tstools, tvheadend, tzdata, uboot-tools, uclibc, udpcast,
	uemacs, ulogd, usb_modeswitch{,_data}, util-linux, vala,
	valgrind, vde2, vorbus-tools, vpnc, vsftpd, vtun, wayland,
	webkit, webp, webrtc-audio-processing, weston, wget,
	wireshark, wsapi, xavante, xdriver_xf86-video-geode, xenomai,
	xinetd, xlib_libpthread-stubs, xl2tp, xmlstarlet,
	xserver_xorg-server, xz, zeromq, zic, zmqpp

	New packages: aiccu, autossh, bc, civetweb, cppdb, cryptsetup,
	duma, eigen, harfbuzz, igmpproxy, iputils, jq, knock, kobs-ng,
	lesstif, libcgroup, libsepol, libsoc, libssh2, luasec, luasql,
	lxc, nut, ola, omniorb, openpowerlink, orbit, p910nd, psplash,
	python-crc16, python-ipy, python-pyzmq, qt5sensors,
	qt5serialport, qt5x11extras, snmppp, subversion, tcping,
	trace-cmd, xscreensaver, zsh

	Removed packages: module-init-tools

	Issues resolved (http://bugs.uclibc.org):

	#1138: Buildroot fails to build packages if BR2_GCC_SHARED_LIBGCC=y
	#5408: qt build failure with Sourcery CodeBench ARM 2010.09
	#5630: makefile error with toolchain helpers.mk
	#5672: htop: remove X11 stuff
	#5678: linux.mk: linux-menuconfig fails
	#5696: python3 installation is too large, patches from python2 needed
	#5978: Erlang does not build for arm in 2013.02-rc3
	#6392: Extended ARM uImage kernel options
	#6404: Buildroot's coreutils 'uname -p' reports 'Unknown' on recent..
	#6428: util-linux libmount segfaults with patch from buildroot
	#6452: eglibc from Linaro 2013.07 not copied to target correctly
	#6566: PHP segfault when crosscompiled to mips64 - patch included
	#6572: [PowerPC] Buildroot uses wrong external toolchain libraries..
	#6578: udisks package broken
	#6602: ebtables 64 bit kernel + 32 bit userland alignment error..
	#6608: ebtables missing ethertypes - fix included
	#6620: Sysvinit package missing killall5 and symlinks - patch included
	#6632: CMake use host pkg-config
	#6638: pkgconf doesn't download
	#6644: "all" target doesn't work in out-of-tree builds
	#6650: Segmentation fault when trying to build latest buildroot
	#6668: iptables limit module alignment problem on mips64

2013.08, Released August 31th, 2013:

	Minor fixes.

	Documentation build fixed.

	Updated/fixed packages: ltrace, strongswan

2013.08-rc3, Released August 29th, 2013:

	Fixes all over the tree.

	External toolchain lib32/lib64 handling, ABI name for EABIhf,
	misc fixes for generatelocales, apply-patches and module
	stripping.

	Top level menu names reordered and renamed for clarity.

	Updated/fixed packages: acl, attr, bash, dbus, directfb,
	dvb-apps, kexec, kmod, libbsd, linux-fusion, mesa3d, minidlna,
	openssh, openssl, pulseaudio, python-setuptools, qt5,
	qt5webkit, redis, strongswan, sunxi-mali

	Issues resolved (http://bugs.uclibc.org):

	#6464: dbus-daemon-launch-helper needs setuid

2013.08-rc2, Released August 16th 2013:

	Documentation improvements.

	External toolchains fixes.

	Updated/fixed packages: aircrack-ng, bash, boost, cairo,
	cppcms, eglibc, ffmpeg, gcc, git, gnupg, imagemagick, libcec,
	libffi, libgcrypt, linux, linux-headers, ltrace, netatalk,
	opencv, opengl, readline, samba, strongswan, sunxi-cedarx,
	uclibc, udev, wayland, webkit, zeromq.

	Issues resolved (http://bugs.uclibc.org):

	#6440: typo in ffmpeg makefile

2013.08-rc1, Released August 5th, 2013:

	Architectures:
	 - improved support for floating point on ARM and Thumb/Thumb2
	 - support for ARM OABI removed

	Toolchains:
         - support added for Sourcery CodeBench ARM and MIPS 2013.05
         - Linaro ARM and Aarch64 toolchains updated
	 - support added for the Arago ARMv5 and ARMv7 toolchains
	 - gcc 4.8.x version bumped
	 - support for installing both FDPIC and FLAT libraries on
	   Blackfin
	 - support for uClibc 0.9.31 removed,
	 - convert the internal toolchain backend to use the package
	   infrastructure
	 - support added for eglibc in the internal toolchain backend
	 - toolchain components for the ARC architecture updated and
           gdb for ARC added.
	 - support for Blackfin in the internal toolchain fixed

	Defconfigs: beaglebone_defconfig updated, new defconfig for
	CubieBoard, for Olimex mx233 Olinuxino, for Calao Systems
	TNY-A9G20-LPW.

	A number of packages have been fixed to use the
	<pkg>_CONFIG_SCRIPTS mechanism to get their <pkg>-config shell
	script installed and modified properly. Licensing informations
	has been added to a number of packages.

	Use XZ tarballs for a number of packages.

	Noticeable package changes/additions:
         - The glib2/libgtk2/webkit stack has been updated to recent
           versions.
	 - Support for Gstreamer 1.x has been added.
	 - OpenGL support for TI OMAP platforms has been added.
	 - OpenGL support for Allwinner platforms has been added.
	 - OpenMAX support for RasberryPi has been added.

	Updated/fixed packages: acl, attr, autoconf, avahi, barebox,
	bind, binutils, busybox, bwm-ng, bzip2, cifs-utils, colletctd,
	cpanminus, cups, curl, dash, dbus, dhcp, directfb,
	directfb-examples, dnsmasq, dosfstools, dropbear, dtc,
	e2fsprogs, ed, efl, enlightenment, erlang, ethtool, fbgrab,
	fftw, firmware-imx, flot, fltk, freetype, gawk, gdk-pixbuf,
	gettext, gmp, gnutls, gsl, gutenprint, gvfs, gzip, haserl,
	hiawatha, httping, icu, imagemagick, imlib2, imx-lib,
	intltool, iozone, ipset, iptables, jquery, jquery-keyboard,
	jquery-sparkline, kmod, less, libart, libcdaudio, libcgicc,
	libesmtp, libftdi, libfuse, libglib2, libgtk, libgtk2, libidn,
	libiqrf, liblog4c-localtime, libnspr, libnss, libpcap,
	libroxml, libserial, libsigsev, libsoup, libtool, libtpl,
	libvncserver, libxml2, linphone, lm_sensors, logrotate,
	ltrace, lttng, luafilesystem, luajit, minicom, monit, mpg123,
	mtd, mutt, mxml, neard, netatask, netsnmp, nettle,
	network-manager, nodejs, nss-mdns, openssh, openswan, openvpn,
	opkg, opus, pcre, perl-cross, php, pixman, poco, polarssl,
	pulseaudio, pv, python, python3, qt, qt5, qt5declarative,
	qt5jsbackend, qt5quick1, readline, rpi-firmware, ruby, samba,
	sane-backends, sconeserver, sdl_image, sdparm, ser2net,
	socketcand, sqlite, squid, strace, tcl, tcpdump, tinyhttpd,
	tvheadend, tzdata, uboot, udpcast, usb_modeswitch,
	usb_modeswitch_data, usbutils, webkit, wireshark, wvstreams,
	xapp_luit, xapp_xmodmap, xenomai, xfsprogs, xlib_libX11, zic,
	zlib.

	New packages: a10disp, aespipe, am33x-cm3, cppcms, dhcpcd,
	dropwatch, dtc, ecryptfs-utils, eglibc, elf2flt, fdk-aac,
	gcc-final, gcc-initial, gcc-intermediate, git,
	gpu-viv-bin-mx6q, gst1-plugins-bad, gst1-plugins-base,
	gst1-plugins-good, gst1-plugins-ugly, gst-omx,
	gst-plugin-x170, gstreamer1, jimtcl, lbase64, libassuan,
	libbsd, libcec, libdvbsi, libedit, libgpgme, libqmi,
	libqrencode, libsvg, libsvg-cairo, libunwind, libvpx,
	linux-headers, lockdev, luabitop, luacrypto, lua-ev,
	luaexpatutils, msgpack, ocrad, on2-8170-libs,
	on2-8170-modules, p11-kit, pax-utils, ptpd, ptpd2,
	python-pyro, ramspeed/smp, snappy, strongswan, sunxi-boards,
	sunxi-cedarx, sunxi-mali, sunxi-tools, ti-gfx, tinymembench,
	tree, tstools, uclibc, w_scan.

	Issues resolved (http://bugs.uclibc.org):

	#4718: python (built for powerpc) distutils has paths to host
               compiler toolchain
	#5516: appended device tree blobs on uImage fails
	#6302: Versions of packages retrieved from github.com are wrong
	#6308: dosfstools download link is wrong
	#6326: Dropbear: Add options to allow better config for
               different target devices (e.g. routers)
	#6338: Wrong download link for minicom package
	#6344: Wrong handling of license text files with same name and
               different directory
	#6374: gnutls package broken if linux cryptodev module
               selected
	#6410: omap3_beagle has uimage error load address error

2013.05, Released May 31th, 2013:

	Minor fixes.

	External toolchain wrapper fix for if host/usr/bin is placed
	in the patch.

	Updated/fixed packages: acpid, at91bootstrap, czmq, elf2flt,
	flex, jamvm, kmod, libplayer, libtirpc, libv4,
	lttng-babeltrace, opengl, qt5jsbackend, udpcast, wvstreams

	Issues resolved (http://bugs.uclibc.org):

	#4868: Buildroot compile failure for toolchain/gdb-7.4/intl/reloc...
	#4988: flex and m4 problems
	#5912: obsolete CVS files

2013.05-rc3, Released May 25th, 2013:

	Minor fixes.

	Updated/fixed packages: aircrack-ng, bellagio, boost, crda,
	dvb-apps, flot, libatomic_ops, libeXosip2, libosip2, libxml2,
	mongrel2, poco, portaudio, pptp-linux, tvheadend, urg, weston,
	wireshark

2013.05-rc2, Released May 15th, 2013:

	Fixes all over the tree.

	Default number of parallel jobs is now number of CPUs + 1.

	Defconfigs: Add Telit EVK-PRO3, AT91SAM9260-EK Nand flash.

	Updated/fixed packages: aircrack-ng, busybox, cairo,
	classpath, curlftpfs, czmq, dbus, f2fs-tools, fan-ctrl,
	filemq, gst-plugin-bad, gutenprint, hplip, json-c,
	libatomic_ops, libcurl, libdrm, libglib2, libnspr, libnss,
	libsha1, libsigsegv, libxcb, linknx, linux-pam, lttng-modules,
	lttng-tools, matchbox-lib, mcookie, mesa3d, neon, pixman,
	pulseaudio, python-nfc, qt5imageformats, quota, openssl,
	sconeserver, strace, sylpheed, wvstreams,
	xapp_{appres,bdftopcf,beforelight,bitmap,edires,fonttosfnt},
	xapp_{fslsfonts,fstobdf,iceauth,ico,listres,luit,mkfontdir},
	xapp_{mkfontscale,oclock,rgb,rstart,scripts,sessreg,setxkbmap},
	xapp_{showfont,smproxy,twm,viewres,x11perf,xauth,xbacklight},
	xapp_x{biff,calc,clipboard,clock,cmsdb,cursorgen,dbedizzy,ditview},
	xapp_x{dm,dpyinfo,driinfo,edit,ev,eyes,f86dga,fd,fontsel,fs,fsinfo},
	xapp_x{gamma,gc,host,input-calibrator,input,kbcomp,kbevd,kbprint},
	xapp_x{kbutils,kill,load,logo,lsatoms,lsclients,lsfonts,mag,man},
	xapp_x{message,mh,modmap,more,pr,prop,randr,rdb,refresh,set,setmode},
	xapp_x{setpointer,setroot,sm,stdcmap,vidtune,vinfo,wd,wininfo,wud},
	xcb-util, xcursor-transparent-theme, xdata_xbitmaps,
	xdata_xcursor-themes,
	xdriver_xf86-input-{evdev,joystick,keyboard,mouse,synaptics},
	xdriver_xf86-input-{tslib,vmmouse,void},
	xdriver_xf86-video-{ark,ast,ati,cirrus,dummy,fbdev,geode,glide},
	xdriver_xf86-video-{glint,i128,intel,mach64,mga,neomagic,newport},
	xdriver_xf86-video-{nv,openchrome,r128,savage,siliconmotion,sis},
	xdriver_xf86-video-{tdfx,tga,trident,v4l,vesa,vmware,voodoo,wsfb},
	xfont_encodings, xfont_font-adobe-{100,75}dpi,
	xfont_font-utopia-{100dpi,75dpi,type1},
	xfont_font-{alias,arabic-misc,bh-100dpi,bh-75dpi},
	xfont_font-bh-lucidatypewriter-{100,75}dpi, xfont_font-bh-{ttf,type1},
	xfont_font-bitstream-{100dpi,75dpi,type1}, xfont_font-cronyx-cyrillic,
	xfont_font-{cursor,daewoo,dec,isas,jis,micro}-misc,
	xfont_font-ibm-type1, xfont_font-misc-{cyrillic,ethiopic,meltho,misc},
	xfont_font-{mutt,schumacher}-misc,
	xfont_font-{screen-cyrillic,sony-misc,sun-misc,util},
	xfont_font-winitzki-cyrillic, xfont_font-xfree86-type1,
	xlib_lib{FS,ICE,SM,X11,XScrnSaver,Xau,Xaw,Xcomposite,Xcursor},
	xlib_libX{damage,dmcp,ext,fixes,font,ft,i,inerama,mu,pm,randr},
	xlib_libX{render,res,t,tst,v,vMC,xf86dga,xf86vm},
	xlib_lib{dmx,fontenc,pciaccess,pthread-stubs,xkbfile}, xlib_xtrans,
	xproto_{applewm,bigreqs,composite,damage,dmx,dri2,fixes}proto,
	xproto_{fontcache,font,gl,input,kb,randr,record,render}proto,
	xproto_{resource,scrnsaver,video,windowswm,xcmisc,xext}proto,
	xproto_{xf86bigfont,xf86dga,xf86dri,xf86vidmode,xinerama,x}proto,
	xserver_xorg-server, xutil_{makedepend,util-macros}

	Readded Packages: xapp_xinit

	Issues resolved (http://bugs.uclibc.org):

	#5054: amd64: cannot find init - due to missing /lib64 folder

2013.05-rc1, Released May 8th, 2013:

	Architectures: ARC support, Blackfin support, FLAT binary
	format, ARM: Drop old CPU variants, add fa526/626, Marvell PJ4

	Toolchains: Add new Microblaze external toolchains, Linaro
	ARM/Aarch64 updates, GCC 4.6.4 / 4.7.3 / 4.8.0 added to
	internal toolchain, default to GCC 4.7.x. Internal
	Crosstool-ng backend deprecated.

	Defconfigs: Add Atmel at91sam9g45m10ek, freescale mpc8315erdb
	& p1010rdb, Armadeus apf27 / apf28, Openblocks A6, Raspberry
	pi, gnublin board.

	FS: LZO and XZ compression methods, extra ubifs options,
	ext2 rev 0/1 and ext3/4 support.

	Patch handling: apply-patches now has .patch.xz support,
	Patch logic reworked as discussed during Febrary dev days:
	http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013

	<pkg>-rsync now excludes version control files.

	linux: uImage load address for ARM multiplatform kernels

	Infrastructure for multiple OpenGL / ES / EGL / OpenVG
	providers, similar to how libjpeg / libjpeg-turbo is handled.

	Infrastructure for packages to add system users.

	kconfig: updated to 3.9-rc2, support make olddefconfig

	Updated/fixed packages: alsa-lib, alsa-utils, apr, apr-util,
	argp-standalone, at, at91bootstrap, audiofile, aumix, avahi,
	bash, blackbox, bind, binutils, bison, boost, bridge-utils,
	busybox, ccache, cifs-utils, cmake, collectd, connman,
	conntrack-tools, cpanminus, crosstool-ng, diffutils, directfb,
	directfb-examples, divine, dmalloc, dnsmasq, dosfstools,
	dropbear, e2fsprogs, ebtables, eeprog, erlang, ethtool,
	fb-test-app, fbset, feh, ffmpeg, file, flex, flot, foomatic,
	fxload, gd, gdb, gdisk, genimage, gettext, gmp, gnuchess,
	gnutls, gob2, gperf, gpsd, gstreamer, haserl, hiawatha, htop,
	httping, icu, inotify-tools, intltool, iproute2, ipset,
	iptables, iw, jpeg, jquery, jquery-{sparkline,validation},
	json-c, kbd, kexec, kismet, kmod, lcdproc, libarchive,
	libatasmart, libcap, libconfig, libconfuse, libcurl, libdrm,
	libeet, libev, libevas, libeXosip2, libffi, libfribi, libfuse,
	libgcrypt, libglib2, libgtk2, libid3tag, libmicrohttpd,
	libnetfilter_acct, libnetfilter_conntrack, libnl, libpcap,
	libplayer, libsigc, libv4l, libxcb, linenoise, linux-pam,
	lm_sensors, ltp-testsuite, luajit, lzop, madplay, make, mdadm,
	mediastreamer, memtester, mesa3d,
	mobile-broadband-provider-info, monit, mpd, mpfr, mpg123,
	mrouted, msmtp, nbd, ncurses, ndisc6, neard, neardal, neon,
	netperf, netsnmp, nettle, nfacct, ntfs-3g, ofono, olsr,
	omap-u-boot-utils, openssh, openssl, openswan, openvpn,
	oprofile, orc, patch, pciutils, pcre, perl, php, poco,
	polarssl, proftpd, psmisc, pulseaudio, python,
	python-{bottle,netifaces,serial,setuptools}, qt, quagga,
	quota, radvd, rpi-firmware, rpi-userland, rt-tests, sam-ba,
	samba, sawman, sdl, ser2net, smartmontools, socat, socketcand,
	speex, squid, stress, stunnel, sudo, syslinux, sysstat,
	sysvinit, tcl, tcprelay, tinyhttpd, tslib, tvheadend,
	uboot-tools, udev, ulogd, util-linux, vala, vtun, webkit,
	xapp_{iceauth,luit,makefontscale,sessreg,setxkbmap,smproxy},
	xapp_{xauth,xcmsdb,xdpyinfo,xev,xgamma,xhost,xinput,xkbcomp},
	xapp_{xkbevd,xlsatoms,xlsclients,xmodmap,xpr,xprop,xrandr,xrdb},
	xapp_{xset,xwd,xwininfo}, xcb-{proto,util},
	xdriver_xf86-input-{evdev,joystick,keyboard,mouse,synptics},
	xdriver_xf86-input-{tslib,vmmouse,void},
	xdriver_xf86-video-{ark,ast,ati,cirrus,dummy,geode,glide,glint},
	xdriver_xf86-video-{i128,intel,mach64,mga,neomagic,newport},
	xdriver_xf86-video-{openchrome,r128,savage,siliconmotion,sis},
	xdriver_xf86-video-{tdfx,trident,vesa,vmware,wsfb}, xenomai,
	xfont, xinetd, xkeyboard-config, xlib_lib{FS,ICE,SM,X11},
	xlib_libX{scrnSaver,au,aw,cursor,dmcp,ext,fixes,font,ft,i},
	xlib_libX{inerama,mu,pm,randr,res,tst,v,vMC,xf86dga,xf86vm},
	xlib_lib{dmx,fontenc,pciaccess,xkbfile}, xlib_xtrans,
	xproto_{applevm,bigreqs,dri2,fonts,gl,input,kbd,record}proto,
	xproto_{resource,scrnsaver,xcmisc,xext,x}proto,
	xserver_xorg-server, xutil_makedepend, xz, zeromq

	New packages: aircrack-ng, bcusdk, chrony, crda,
	cryptodev-linux, cppzmq, czmq, dtach, enscript, exfat,
	exfat-utils, f2fs-tools, fan-ctrl, filemq, foomatic-filters,
	genimage, genpart, glibmm, gnuplot, gtest, gutenprint, hplip,
	iozone, jansson, jhead, jquery-keyboard, jquery-ui,
	jquery-ui-themes, json-glib, json-javascript, lcms2, libpfm4,
	libpthsem, libserial, libsigsegv, libtasn1, libwebsockets,
	libxkbcommon, libxml++, linknx, log4cxx, mongoose, mongrel2,
	mtools, ne10, nmap, nodejs, openobex, openpgm, poppler,
	protobuf-c, python-m2crypto, python-thrift, qjson, qt5base,
	qt5declarative, qt5graphicaleffects, qt5imageformats,
	qt5jsbackend, qt5multimedia, qt5quick1, qt5script, qt5svg,
	qt5webkit qt5xmlpatterns, rapidjson, redis, swig, texinfo,
	tzdata, urg, ussp-push, wayland, webp, weston, wireless-regdb,
	wireshark, wvdial, wvstreams, xcb-util-image, xcb-util-wm,
	xcursor-transparent-theme, zic, zmqpp, zyre

	Removed packages: microperl, ocf-linux, xapp_xinit,
	xapp_xplsprinters, xapp_xprehashprinterlist,
	xfont_font-bitstream-speedo,
	xlib_lib{Xfontcache,XprintAppUtil,XprintUtil,Xp,oldX,xkbui},
	xproto_{print,xf86rush}proto

	Deprecated packages: vala

	Issues resolved (http://bugs.uclibc.org):

	#1291: Add support for Faraday 526 arm processor (fa526)
	#2683: cups does not install correctly to target
	#3313: mesa3d fails to build
	#5186: initramfs/cpio should support lzo compression
	#5636: agetty - cannot get controlling tty error - need updated...
	#5906: collectd client headers not exported
	#5966: bison unnecessarily required as build dependency
	#6140: --enable-fileinfo not applied for php package
	#6164: openvpn usage of ip tool from Busybox

2013.02, Released February 28th, 2013:

	Misc manual updates.

	Updated/fixed packages: busybox, collectd, flashbench,
	libgtk2, libupnp, mii-diag, quota

2013.02-rc3, Released February 26th, 2013

	Minor fixes.

	Updated/fixed packages: conntrack-tools, dialog,
	enlightenment, haserl, keyutils, libfif, libmad,
	linux-firmware, linux-fusion, matchbox-desktop, matchbox-wm,
	ruby, spawn-fcgi, vtun

	Issues resolved (http://bugs.uclibc.org):

	#5960: fusion.ko driver does not install to target rootfs

2013.02-rc2, Released February 19th, 2013

	Fixes all over the tree.

	Various manual updates and fixes.

	Updated/fixed packages: busybox, collectd, gesftpserver,
	glib-networking, gnutls, inotify-tools, libcurl, libffi,
	libglib2, libtorrent, libvorbis, neard, network-manager,
	ntfs-3g, openssl, qt, rpi-userland, rtorrent, thttpd, vim.

	Issues resolved (http://bugs.uclibc.org):

	#5906: collectd client headers not exported

2013.02-rc1, Released February 10th, 2013

	Toolchain: Crosstool-ng 1.17.0, default to GCC 4.6.3, target
	libraries install fixed. Add Linaro ARM
	2012.11/2012.12/2013.01, AArch64 12.11/12.12/13.01. Sourcery
	CodeBench MIPS 2012.03/09. Infrastructure to warn about
	missing 32bit support for binary toolchains. Toolchain wrapper
	is now relocatable. Add GDB 7.5.1 / Remove 6.8 / 7.0 /
	7.1. Deprecate uClibc 0.9.31.

	Architecture: Xtensa fixes, add missing powerpc variants, arm
	1136jf-s rev1, add A5/A15, neon support toggle, OABI
	deprecated. Sparc: drop old unused variants

	Bootloaders: At91bootstap: fix upstream URL, Barebox: add
	2012.12/2013.01/2013.02, remove 2012.08/09/10, lzop fixes,
	environment image support, U-Boot: add 2013.01.01

	Linux: fix appended dtb handling for v3.8+ kernels, support
	multiple device trees

	Defconfigs: calao USB-A9260, snowball, QEMU PPC440 on ML507
	board, QEMU ARM Exynos4210, Kernel version in QEMU defconfigs
	updated, at91rm9200df: misc fixes. Lock kernel headers to
	match kernel.

	Infrastructure: Git download fixes. Toolchain make target
	renamed from 'cross' to 'toolchain'. Eclipse integration
	support. Option to set root password, post image scripts,
	config scripts handling.

	Updated/fixed packages: alsa-lib, argp-standalone, argus,
	arptables, atk, audiofile, axel, beecrypt, bind, bison,
	bluez_utils, boost, cairo, can-utils, bmon, boa, busybox,
	cairo, ccache, cdrkit, cifs-utils, cjson, cmake, collectd,
	connman, coreutils, cpanminus, cups, dbus, dhcp, dialog,
	diffutils, directfb, distcc, divine, dnsmasq, docker,
	dosfstools, dstat, e2fsprogs, ebtables, ed, empty, ethtool,
	expedite, fbset, fbv, ffmpeg, flex, fltk, fluxbox, freetype,
	gadget-test, gawk, gdb, genext2fs, gettext, giblib,
	glib-networking, gmp, gmpc, gnupg, gnutls, gpsd,
	gst-plugins-{bad,base,good}, gstreamer, gzip, haserl, hdparm,
	heirloom-mailx, hiawanta, hostapd, icu, imagemagick, imlib2,
	inadyn, infozip, iproute2, ipset, iptables, iw, jpeg, jquery,
	jquery-sparklines, jqeury-validation, kismet, kmod, lame,
	libao, libcap, libcurl, libdvdnav, libdvdread, libecore,
	libedbus, libedje, libeet, libefreet, libeina, libeio,
	liberation, libelementary, libembryo, libethumb, libev,
	libevas, libffi, libfribidi, libfuse, libgcrypt, libglib2,
	libgpg-error, libgtk2, libhid, libidn, libmicrohttpd, libmpd,
	libnl, libnspr, libnss, libogg, libpcap, libplayer, libpng,
	libroxml, librsvg, libseccomp, libsigc, libsndfile, libungif,
	libupnp, liburcu, libusb-compat, libvncserver, libvorbis,
	libxml2, libxslt, lighttpd, links, linux-firmware,
	linux-fusion, ltp-testsuite, ltrace,
	lttng-{babel,libust,modules,tools}, lvm2, lua, luajit, lzop,
	matchbox-{desktop,lib}, mdadm, metacity, midori, minicom, mpd,
	mpfr, mplayer, mtd, mysql_client, ncurses, neon, netatalk,
	networkmanager, nspr, ntfs-3g, nuttcp, ofone, olsr, openssl,
	openvpn, opkg, oprofile, opus, opus-tools, orc, ortp, pango,
	pciutils, pcmanfm, pcre, pcsc-lite, perl, php, pixman,
	pkgconf, polarssl, pptp-linux, proxychains, pulseaudio,
	python, python3, qemu, qextserialport, qt, quagga, radvd,
	readline, rng-tools, rt-tests, rubix, ruby, sam-ba, samba,
	sane-backends, sconeserver, scons, screen, sdl, sdl_gfx,
	sdl_mixer, sdl_ttf, sdparm, sed, ser2net, smartmontools,
	speex, sqlite, squid, sshfs, strace, sudo, sylpheed, tn5250,
	taglib, tar, torsmo, transmission, tslib, uboot-tools, ulogd,
	usb_modeswitch, util-linux, valgrind, vim, vsftpd, wavpack,
	webkit, wipe, wireless_tools, wpa_supplicant, xapp_xinit,
	xapp_xinput-calibrator, xapp_xman, xapp_xmh, xlib_libX11,
	xlib_libXdmcp, xlib_libXft, xlib_libpthread-stubs,
	xlib_xtrans, xproto_xcmiscproto, xproto_xextproto,
	xserver_xorg-server, xstroke, xvkbd, xz

	New packages: b43-firmware, b43-fwcutter, bustle,
	cache-calibrator, cegui06, celt051, classpath, curlftpfs,
	dvb-apps, dvbsnoop, elfutils, enlightenment, firmware-imx,
	flashbench, gd, gesftpserver, gst-fsl-plugins, httping, iftop,
	imx-lib, jamvm, jpeg-turbo, keyutils, libatasmart, libcofi,
	libebml, libevas-generic-loaders, libfslcodec, libfslparser,
	libfslvpuwrap, libgsasl, libiscsi, libmatroska, libmcrypt,
	libmhash, libqwt, libseccomp, libsha1, linenoise, mcrypt,
	media-ctl, ncdu, neard, neardal, nettle, perf, polkit,
	proxychains, python-bottle, python-pyparsing, rpi-firmware,
	rpi-userland, sg3_utils, slirp, snowball-hdmiservice, spice,
	spice-protocol, tcllib, tvheadend, udisks, usbredir
	ux500-firmware, vde2, xcb-utils-keysyms, yavta,
	zd1211-firmware

	Removed packages: customize, xdriver_xf86-input-{acecad,aiptek},
	xdriver_xf86-video-{apm,chips,i740,rendition,s3,s3virge,sisusb},
	xdriver_xf86-video-sun{cg14,cg3,cg6,ffb,leo,tcx},
	xdriver_xf86-video-{tsend,xgi,xgixp}

	Deprecated packages: xstroke

	Issues resolved (http://bugs.uclibc.org):

	#4237: building shared openssl w/-Os fails due to gcc bug
	#5690: python3 does not obey to BR2_PACKAGE_PYTHON3_PYC_ONLY=y
	#5602: python3 should install a "python" symbolic link
	#5846: Extra slash added to last slash in URL

2012.11.1, Released January 3rd, 2013:

	Toolchain: Fixed non-largefile builds on recent Ubuntu
	versions.

	Arch: fix missing x86/generic handling, Build for Xtensa with
	longcalls option.

	Updated/fixed packages: dosfstools, qt

2012.11, Released December 2nd, 2012:

	Git shallow clone fix for older git version.

	Updated/fixed packages: ctuio, libtool

	Issues resolved (http://bugs.uclibc.org):

	#5726: List all the available hook points

2012.11-rc2, Released November 30th, 2012:

	Minor fixes around the tree.

	Various manual updates and fixes.

	Add checks for legacy features.

	Updated/fixed packages: acpid, alsa-lib, arptables, binutils,
	busybox, ccache, cjson, cramfs, directfb, flex, fluxbox, gdb,
	hiawatha, igh-ethercat, imagemagick, imlib2, lcdproc,
	libdaemon, libecore, libhid, libmad, libpcap, libsigc, libusb,
	linux-fusion, matchbox, ocf-linux, owl-linux, python, rrdtool,
	scons, strace, sylpheed

	Issues resolved (http://bugs.uclibc.org):

	#5732: Error : package/alsa-lib/alsa-lib.mk

2012.11-rc1, Released November 17th, 2012

	Fixes all over the tree and new features.

	Defconfigs: use u-boot 2012.10 on at91 and beaglebone,
	sheevaplug + qemu: bump kernel version, add qemu-mips64-malta
	+ nitrogen6x defconfigs.

	Bootloaders: add u-boot 2012.07/10, ais target format, add
	barebox 2012.08/09/10/11, linker overlap issue fix for
	at91bootstrap, mxs-bootlets updated for new Barebox versions.

	Toolchains: binutils 2.23.1, gcc 4.7.2, default to gcc 4.6.x,
	Codebench arm/sh/x86 2012.03/09, Linaro 2012.08/09/10.
	Libtirpc support for modern glibc variants. Toolchain on
	target has been deprecated.

	Initial Aarch64 support, Xtensa support re-added.

	Infrastructure: Use shallow git clone when possible, use
	tarballs rather than git URLs for github. Moved to pkgconf
	rather than pkg-config. System directory added, default
	skeleton/device tables moved. More than 1 post-build script
	can now be used. output/target now contains a
	THIS_IS_NOT_YOUR_ROOT_FILESYSTEM warning, to help people
	understand how to (not) use it.

	Manual has been reworked and extended.

	Legal-info: Lots of package annotations, CSV file fixes,
	_LICENSE / _REDISTRIBUTE splitup, per-package hooks.

	Updated/fixed packages: acpid, alsa-lib, alsa-utils,
	alsamixergui, attr, autoconf, automake, bash, bind, binutils,
	bison, blackbox, bluez-utils, busybox, cairo, can-utils,
	cifs-utils, cjson, cmake, collectd, connman, conntrack-tools,
	coreutils, cups, cvs, dbus, dhcp, directfb, dmalloc, dnsmasq,
	dropbear, e2fsprogs, ethtool, fbdump, feh, fftw, file,
	flashrom, fluxbox, gdb, gdisk, gdk-pixbuf, genext2fs, gettext,
	gnutls, gpsd, gqview, grep, gsl, gst-plugins-{bad,good},
	hdparm, hiawatha, hostapd, input-tools, iproute2, ipset,
	iptables, iw, json-c, kexec, kmod, lcdproc, leafpad, less,
	libcurl, libdrm, libdvdnav, libdvdread, libffi, libfuse,
	libglib2, libhid, liblockfile, libmad, libmbus, libmnl,
	libnetfilter_{acct,conntrack,cthelper,cttimeout,queue},
	libnfc, libnfc-llcp, libnfnetlink, libnl, libnspr, libnss,
	libpcap, libplayer, libtool, libtorrent, liburcu, libv4l,
	libxcb, libxml2, libxslt, links, linux-firmware, lm-sensors,
	lmbench, lockfile-progs, logrotate, lshw, lsof,
	lttng-babeltrace, lttng-tools, lua, luajit, mesa3d, microperl,
	mii-diag, module-init-tools, mpc, mpd, mpg123, mplayer,
	mtd-utils, mysql_client, nbd, ncurses, netatalk, netkitbase,
	netkittelnet, netsnmp, newt, nfs-utils, openntpd, openssh,
	openssl, opkg, patch, pciutils, pcre, php, poco, polarssl,
	popt, portmap, pppd, procps, pulseaudio, python, python-nfc,
	python-protobuf, qt, quota, rp-pppoe, rtorrent, sam-ba, samba,
	scons, sdl_gfx, smartmontools, sqlite, squid, strace, sudo,
	sylpheed, tcpdump, tremor, ttcp, tiff, unionfs,
	usb_modeswitch, usbutils, util-linux, vala, valgrind, vpnc,
	vsftpd, webkit, wget, which, wpa_supplicant, x11vnc, xapp_*,
	xdriver_*, xenomai, xfont_*, xinetd, xl2tp, xlib_*, xlsclient,
	xproto_*, xserver_xorg-server, xutil_util-macros, xz, zeromq

	New packages: arptables, at91bootstrap3, boot-wrapper-aarch64,
	ccid, cpanminus, cpuload, erlang, evtest, fb-test-apps,
	fxload, gdbm, gnupg, googlefontdirectory, grantlee, gsl,
	lcdapi, liblo, liblog4c-localtime, libtirpc, linux-pam,
	lua-msgpack-native, macchanger, mtdev, mtdev2tuio, nfacct,
	opus, opus-tools, pcsc-lite, perl, pkgconf, python-meld3,
	python3, qemu, qextserialport, qtuio, rpcbind, schifra,
	sconeserver, supervisor, time, ulogd, usb_modeswitch_data,
	yasm

	Deprecated packages: netkitbase, netkittelnet

	Issues resolved (http://bugs.uclibc.org):

	#807:  [PATCH] samba - make iconv and smbd optional
	#3049: binutils have a sysroot bug in ld
	#5330: update vsftpd to 3.0.0
	#5486: libglib2 build fails on: libs/libglib-2.0.so: undefined...
	#5666: Fails to build python 2.7.2 for 2440 arm

2012.08, Release August 31th, 2012

	Updated/fixed packages: microperl, cups, luajit, rrdtool,
	prboom, oprofile.

	Added license information for: sqlite.

	Changed the source URLs of all packages located on Sourceforge
	in order to use the automatic mirror selection URL
	downloads.sourceforge.net, and get rid of the
	BR2_SOURCEFORGE_MIRROR option.

2012.08-rc3, Released August 25th, 2012

	Updated/fixed packages: libglib2, netsnmp, freetype, libfuse,
	libpng, x11vnc, zlib, gpsd, ifplugd, bash, distcc.

	Added license informations for: barebox, grub, syslinux,
	uboot, xloader, yajl, zlib, zxing, alsa-lib, alsa-utils,
	faad2, nano, fbdump, rsync, librsync, fontconfig,
	inotify-tools,

2012.08-rc2, Released August 15th, 2012

	Updated/fixed packages: imagemagick, sudo, crosstool-ng.

	Added license informations for: mxml, nanocom, empty, expat,
	lua, lucjson, xinetd, cjson, luaexpat, lmbench, bwm-ng,
	input-event-daemon, luajit, cgilua, copas, coxpcall,
	luafilesystem, luasocket, rings, wsapi, xavante, libtpl,
	avahi, busybox, libfcgi, ifplugd, libcgicc, libcurl,
	libdaemon, libdnet, libgpg-error, libpcap, libpng, lighttpd,
	mtd, openssl, psmisc, socat, spawn-fcgi.

	Fixes to Microblaze external toolchains
	configuration. Improvements of the pkg-stats
	script. Out-of-tree fix for the graph-depends script.

	Kernel headers version bump.

2012.08-rc1, Released August 1st, 2012

	Fixes all over the tree and new features.

	Integration of a legal information reporting infrastructure,
	which allows to generate detailed informations about the
	licenses and source code of all components of a system
	generated by Buildroot. License information will progressively
	be added on packages.

	Default configuration files added for Calao-systems USB-A9263
	and Calao-systems USB-A9G20-LPW.

	External toolchains update: allow download of a custom
	toolchain, add Linaro 2012.05 and 2012.06 for ARM, add
	Blackfin toolchain 2012R1-BETA1, add Sourcery CodeBench MIPS
	2011.09.

	Allow the restriction of downloads to the primary site only.
        This is useful for project developers who want to ensure that
        the project can be built even if the upstream tarball
        locations disappear.

	Add a 'System configuration' choice to select between 3
	different init systems: Busybox init, SysV init and Systemd
	init.

	Cleanups to the package infrastructure. The visible change to
	developers is that $(eval $(call AUTOTARGETS)) is now $(eval
	$(autotools-package)), and similarly for other package
	infrastructures and host packages. Refer to the documentation
	for details.

	By default, automatic detection of the number of compilation
	jobs to use, depending on the number of CPUs available.

	Improvements to generate systems with static libraries only
	(infrastructure and package fixes).

	Add proper support in the Linux kernel package to generate
	Device Tree Blobs or combined Device Tree / Kernel
	images. This will be useful on Microblaze, PowerPC and ARM,
	which are architectures making extensive use of the Device
	Tree.

	Updated/fixed packages: audiofile, autoconf, automake, axel,
	barebox, bash, beecrypt, berkeleydb, bind, bison, bluez_utils,
	bonnie, boost, busybox, bsdiff, bwm-ng, bzip2, cifs-utils,
	cgilua, cmake, connman, conntrack-tools, crosstool-ng, cups,
	dbus, dhcp, dnsmasq, e2fsprogs, eeprog, ethtool, faad2, fbv,
	ffmpeg, freetype, gmp, gnutls, gob2, gpsd, grep,
	gst-plugins-base, gst-plugins-good, gzip, hiawatha, hostapd,
	htop, icu, igh-ethercat, imagemagick, input-tools, iostat,
	iproute2, ipset, iptables, iw, kmod, less, libcap, libgci,
	libconfig, libcurl, libelf, libevas, libeXosip2, libexif,
	libfuse, libidn, libmad, libmbus, libmnl,
	libnetfilter-conntrack, libnl, libnspr, libnss, libogg,
	libosip2, libpcap, libpng, libroxml, liburcu, libusb, libxml2,
	libxslt, lighttpd, linux, ltrace, lttng-libust, lttng-modules,
	lttng-tools, lua, m4, memtester, midori, mii-diag,
	module-init-tools, mpfr, mpg123, mrouted, msmtp, mtd, mxml,
	mysql_client, nasm, nbd, ncurses, nfs-utils, opencv, openocd,
	openssl, pciutils, php, polarssl, portaudio, pppd,
	pthread-stubs, pulseaudio, qt, quagga, quota, radvd, rpm,
	rrdtool, samba, sam-ba, scons, sdl_gfx, sdl_sound, speex,
	sqlite, squashfs, squid, sudo, synergy, syslinux, systemd,
	tar, tcpdump, tcpreplay, udev, usbutils, valgrind, wget,
	wpa_supplicant, wsapi, xavante, xserver_xorg-server, zlib

	New packages: cjson, collectd, dfu-util, dmidecode, elftosb,
	fbterm, flashrom, freerdp, inadyn, libfreefare,
	libnetfilter_cttimeout, libnfc, libnfc-llcp, liboping,
	libtorrent, linphone, logsurfer, lshw, luacjson, luaexpat,
	luajit, mediastreamer, mobile-broadband-provider-info, monit,
	mxs-bootlets, nanocom, nss-mdns, ofone, omap-u-boot-utils,
	opkg, ortp, owl-linux, python-id3, python-nfc, quota,
	ramspeed, rtorrent, sound-theme-borealis,
	sound-theme-freedesktop, sysprof, webrtc-audio-processing,
	xinetd, zxing

	Issues resolved (http://bugs.uclibc.org):

	#1315: Allow use of older external toolchains without sysroot
               support [won't fix]
	#5276: Hiawatha needs to manage IPV6 if so [fixed]
	#5360: buildroot fails when building "host-libglib2 2.30.2
               Building" [won't fix, upstream problem]
	#5384: Can't build packages relying on gets on newer glibc
               [fixed]

2012.05, Released May 30th, 2012:

	Updated/fixed packages: busybox, netsnmp, pptp-linux

2012.05-rc3, Released May 25th, 2012:

	Minor fixes around the tree.

	Infra: Fix for DOWNLOAD macro when using primary mirrors with
	scp targets.

	Toolchain: Kernel headers 3.2.18 / 3.3.7.

	Updated/fixed packages: binutils, bison, busybox, cifs-utils,
	gnuchess, gpsd, iperf, libmpeg2, mtd, ntfs-3g, oprofile,
	xserver-xorg

2012.05-rc2, Released May 18th, 2012:

	Fixes all over the tree.

	Toolchain: uClibc: Use 0.9.33.2, Crosstool-ng: fix gperf
	dependency, disable decimal floats support, Linux 3.2.17 /
	3.3.6 kernel headers. Fix sysroot copy handling for toolchains
	without C++ support.

	Updated/fixed packages: apr, apr-util, ccache, dnsmasq,
	heirloom-mailx, gdb, ndisc6, opencv, openssl, socat, vala

2012.05-rc1, Released May 10th, 2012:

	Fixes all over the tree and new features.

	Use /etc/os-release for version info rather than
	/etc/br-version.

	CMake toolchain file moved to $HOST_DIR/usr/share/buildroot.

	Apply-patches.sh: cleanups, archived patches handling fixes,
	support series files.

	Defconfigs: beaglebone, mx53qsb, pandaboard, qemu configs for
	arm-vexpress/microblaze/ppc-mpc88544ds, use 3.2.x for
	atngw100, use 3.3.x for qemu configs.

	Menu structure: Libraries moved out of multimedia section

	Atom processor support. Prescott fix, blackfin ABI fix,
	Microblaze architecture support (using ext toolchain). Cleanup
	architecture names, deprecate Xtensa support.

	Toolchain: Add GCC 4.4.7, 4.6.3, 4.7.0. uClibc 0.9.33.1,
	default to uClibc 0.9.33.x, enable
	UCLIBC_SUPPORT_AI_ADDRCONFIG by default, static and 64bit
	fixes for external toolchains, linaro ext toolchains, new
	sourcery codebench ext toolchains, GDB 7.4.1, crosstool-ng
	1.15.2.

	Bootloaders: U-Boot: add 2012.04.01, SPL and u-boot.img
	support. Barebox: add 2012.04, remove 2011.12.

	Updated/fixed packages: alsa-lib, alsa-utils, at, atk, avahi,
	barebox, berkeleydb, bind, bluez_utils, boost, busybox,
	can-utils, ccache, cifs-utils, coreutils, cups, dbus, dhcp,
	directfb, dnsmasq, doom-wad, dosfstools, e2fsprogs, expat,
	fakeroot, feh, ffmpeg, file, fis, freetype, gamin, gawk,
	gdk-pixbuf, gettext, giblib, glib-networking, gmp, gnutls,
	gpsd, grep, gstreamer, gst-plugins-{bad,base,good,ugly},
	haserl, hdparm, imagemagick, iproute2, iptable, iw, kexec,
	kmod, lame, libaio, libarchive, libatomic_ops, libconfig,
	libcurl, libdvdnav, libdvdread, libedbus, libethumb, libffi,
	libfuse, libglib2, libgtk2, libhid, libmad, libmbus, libmpeg2,
	libnl, libplayer, libpng, libsigc, libsoup, libupnp, liburcu,
	libusb, libusb-compat, libxml2, libxml-parser-perl, libxslt,
	lighttpd, linux-firmware, linux-fusion, lite, lsof, ltrace,
	lttng-libust, lua, m4, makedevs, microperl, mpd, mpfr, mpg123,
	mrouted, mtd, mysql_client, nbd, ncftp, ncurses, neon,
	netsnmp, network-manager, nfs-utils, ngrep, ntfs-3g, openntpd,
	openssh, openssl, parted, pango, pcre, php, pixman, poco,
	psmisc, pulseaudio, python, qt, quagga, radvd, rpm, rsync,
	ruby, samba, sam-ba, sane-backends, sawman, screen, sdl_net,
	smartmontools, speex, sqlite, squashfs3, squid, sshfs, sudo,
	syslinux, sysstat, taglib, tcpdump, tftp-hpa, transmission,
	tiff, tinyhttpd, uboot-tools, udev, uemacs, unionfs, usbutils,
	util-linux, vala, valgrind, vim, vsftpd, wget, wipe,
	wpa_supplicant, xdriver_xf86-{input-vmmouse,video-fbdev},
	xfsprogs, zlib

	New packages: apr, apr-util, audiofile, bellagio,
	conntrack-tools, empty, fmtools, glib-networking,
	heirloom-mailx, hiawatha, latencytop, lcdproc, libcap-ng,
	libdmtx, libfcgi, libnetfilter_conntrack, libnfnetlink,
	libtpl, localedef, minicom, msmtp, ndisc6, netatalk,
	ocf-linux, openswan, parted, polarssl, protobuf, read-edid,
	socketcand, stress, systemd, ushare, zeromq

	Deprecated packages: ttcp

	Removed packages: ntfsprogs

	Issues resolved (http://bugs.uclibc.org):

	#2353: [lua] fix build with 2010.08-rc1
	#2503: Microperl fails build on MIPSel or with Fedora13.x86_64
	#2557: [PATCH] mkfs.xfs complains about missing libxfs.so.0
	#2881: Can't build project statically with external toolchain
	#3751: MIPS: fix BR2_GCC_TARGET_ABI for MIPS n64
	#4808: ccache may build against wrong zlib
	#4880: New package lcdproc
	#4886: New package protobuf
	#4892: build fails on ltp-testsuite-20101031/testcases/kernel/fs/...
	#4898: * make: [target-finalize] Error 1 (ignored)*
	#4985: Qt 4.7.4 build crashes with Linux 2.6.29
	#4970: udev 181 fails to build if kernel version 3.3 is selected
	#5018: dialog broken: exits with assert in uClibc
	#5102: qt package moc, uic, rcc read from wrong place
	#5144: Patch to fix ixon bug in uemacs
	#5198: Line graphics output is broken in GNU Screen
	#5204: Missing terminfo file(s) for GNU screen terminal type

2012.02, Released February 29th, 2012:

	Updated/fixed packages: libecore

2012.02-rc3, Released February 27th, 2012:

	Fixes all over the tree.

	Automatic host dependencies handling for cmake packages
	fixed. Customize package deprecated as using a post-build
	script is nowadays the preferred way of adding extra stuff to
	the rootfs.

	Linux-headers 3.0.x / 3.2.x stable version bumped.

	QEMU defconfigs updated to 3.2.x kernels and readme fixed.

	Updated/fixed packages: dropbear, ffmpeg, libpng

2012.02-rc2, Released February 19th, 2012:

	Fixes all over the tree.

	Toolchain: uClibc: Added upstream post-0.9.33 fixes, Bump
	linux-headers 3.0.x / 3.2.x stable versions.

	Documentation: Added makedev / <pkg>_DEVICES /
	<pkg>_PERMISSIONS documentation.

	Updated/fixed packages: busybox, ffmpeg, gst-dsp, libecore,
	libvncserver, mxml, python.

2012.02-rc1, Released February 12th, 2012:

	Fixes all over the tree and new features.

	Toolchain: Default to GCC 4.5.x, add binutils 2.22. Java
	support removed, Powerpc SPE ABI support. GDB ELF support fix,
	GDB 7.4, crosstool-NG 1.13.4.

	Gentargets: scp and mercurial support.
	Autotools: derive host dependencies from target by default.
	Packages can now declare device table snippets.

	Host utilities menu with commonly used host tools.

	defconfigs: qemu configs for x86-64, mips and sparc, at91
	defconfigs now use modern U-Boot / mainline Linux, added
	lpc3250 defconfigs.

	uClibc: remove 0.9.30, backport unshare() support, add
	0.9.32.1 / 0.9.33, use same config for ctng.

	Bootloaders: U-Boot: add 2011.12, remove 2010.xx versions,
	Barebox: add 2012.01/02, remove 2011.10/11, LPC32xx
	bootloaders added.

	Various manual updates. Release tarballs now contain generated
	manual in text/html/pdf formats.

	Buildroot now calls the stop function of scripts in
	/etc/init.d at shutdown.

	Updated/fixed packages: atk, avahi, barebox, bash, beecrypt,
	bind, binutils, bison, bluez_utils, bzip2, busybox, cairo,
	ccache, cdrkit, coreutils, cramfs, dbus, dbus-glib, dialog,
	diffutils, dmalloc, dropbear, e2fsprogs, ebtables, ed,
	ethtool, expat, ffmpeg, file, fis, flex, fluxbox, fontconfig,
	freetype, gawk, grep, gst-dsp, gst-ffmpeg, gst-plugins-base,
	hdparm, hostapd, htop, i2c-tools, icu, iproute2, ipsec-tools,
	ipset, iptables, iw, jpeg, kismet, lame, libcap, libcgi,
	libev, libeXosip2, libffi, libftdi, libgpg-error, libgtk2,
	libidn, libmms, libmnl, libmodbus, libnl, libogg, libosip,
	libpcap, libpng, libraw1394, libroxml, libusb, libusb-compat,
	libv4l, libvorbis, libxcb, libxml-parser-perl, libxslt,
	lighttpd, links, lm-sensors, lua, m4, module-init-tools, mpc,
	mesa3d, mpd, mpfr, mplayer, mtd-utils, nano, nbd, ncurses,
	netperf, netsnmp, ntp, opencv, openocd, openssl, openvpn, orc,
	pciutils, pcre, pixman, pkg-config, poco, popt, proftpd,
	python, python-serial, qt, ruby, samba, sdl, sdparm,
	squashfs3, sshfs, sqlite, squid, sudo, syslinux, tcl, tcpdump,
	ti-utils, tiff, tremor, uboot, uboot-tools, udev, usbmount,
	util-linux, vala, valgrind, vsftpd, wpa_supplicant,
	xapp_{bdftopcf,mkfontdir,mkfontscale,xkbcomp,xcursorgen,xinit},
	xapp_xinput, xapp_xman, xcb-util, xdm, xenomai,
	xf86-video-sis, xfont_{encodings,font-util},
	xlib_lib{fontenc,X11,Xau,Xcursor,Xdmcp,Xfixes,Xfont,Xrender},
	xlib_libxkbfile, xterm, xutil_makedepend, yajl

	New packages: boost, connman, dstat, expedite, explorercanvas,
	feh, flot, giblib, igh-ethercat, imlib2, jquery,
	jquery-sparklines, jquery-validation, jsmin, kmod, libecore,
	libedbus, libedje, libeet, libeina, libelementary, libesmtp,
	libethumb, libevas, libical, libmbus, liboauth, liburcu,
	libvncserver, linux-firmware,
	lttng-{babeltrace,libust,modules,tools}, NetworkManager,
	open2300, python-distutilscross, python-dpkt,
	python-netifaces, python-pygame, python-setuptools, rt-tests,
	sam-ba, sane-backends, sqlcipher, transmission, unionfs,
	xf86-input-tslib, xinput-calibrator

	Issues resolved (http://bugs.uclibc.org):

	#743:  Add Transmission bit torrent option to buildroot
	#755:  Add Boost libraries as a package
	#2299: Add crypto support to libsoup
	#2617: Pixman 0.19.2 & Cairo 1.10.0
	#3403: libgpg-error: bump to version 1.10
	#3409: libgpg-error: download from gnupg.org
	#3421: nano: make tiny flag optional
	#3691: New EFL packages
	#4664: Cannot patch AT91Bootstrap
	#4700: setlocalversion not working for combination svn/ubuntu 11.10...
	#4760: Qt: add host-pkg-config to dependency-list

2011.11, Released November 30th, 2011:

	Fixes all over the tree.

	Bump kernel headers / default Linux version to 3.1.4.

	Updated/fixed packages: ruby

2011.11-rc3, Released November 26th, 2011:

	Fixes all over the tree.

	Toolchain: Fix gdb dependencies for external toolchains,
	adjust uClibc patches so they don't confuse modern versions of
	patch, bump crosstool-ng, kernel headers and linux versions.

	Updated/fixed packages: busybox, freetype, mplayer, opencv,
	php, rsyslog, ruby, thttpd, xapp_xf86dga

	Issues resolved (http://bugs.uclibc.org):

	#4357: Prevent patch commands from accessing source control
	#4369: Fix permissions on untared lsof archive

2011.11-rc2, Released November 18th, 2011:

	Fixes all over the tree and new features.

	Updated asciidoc documentation

	Toolchain: Bumped 3.x stable kernel headers, use wget in
	crosstool-ng as well, bump crosstool-ng version, gdb fixes,
	uClibc sparc fix.

	Updated/fixed packages: distcc, file, gst-plugins-bad, libxcb,
	mplayer, newt, qt, rpm, rrdtool, tar, tftpd

	Issues resolved (http://bugs.uclibc.org):

	#3355: mplayer fails to build
	#4021: uClibc: undefined reference to `__GI___errno_location'
	#4297: Qt's qmake uses wrong pkg-config

2011.11-rc1, Released November 11th, 2011:

	Fixes all over the tree and new features.

	Moved misc scripts and support stuff to support/. Renamed
	patch-kernel.sh to support/scripts/apply-patches.sh.

	Documentation: Moved to asciidoc format, make targets to
	generate text/html/pdf/epub output added.

	Defconfigs: Qemu configs updated to 3.1 kernel and readmes
	added.

	Bootloaders: Add support for custom git tree / tarballs for
	barebox, similar to how it's handled for u-boot. Clean up
	menuconfig options.

	Toolchain: Update external codesourcery toolchain download
	URLs after Codesourcery got bought by Mentor, add x86
	toolchain, update toolchain versions and optimize toolchain
	sysroot copying. Fix uClibc 0.9.32 builds for e500 PPC,
	updated GDB versions / download URLs. Binutils
	libbfd/libopcodes static/dynamic linking fix. GCC 4.6.2 added,
	use ctng-1.13.0.

	Package infrastructure: Support for local packages /
	overrides, package dir / name arguments dropped from
	{GEN,AUTO,CMAKE}TARGETS.

	Linux: Kernel extensions infrastructure support, Xenomai +
	RTAI support.

	Updated/fixed packages: acpid, bind, busybox, dash, dbus,
	dbus-glib, directfb, dnsmasq, drystone, e2fsprogs, ethtool,
	fakeroot, fbdump, file, freetype, fuse, gamin, gmp, gmpc,
	gnutls, gob2, gst-plugins-{base,bad,good,ugly}, gstreamer,
	hostapd, ifplugd, imagemagick, intltool, ipsec-tools, ipset,
	iptables, iw, jpeg, kexec, leafpad, less, libargtable2, libao,
	libconfuse, libcuefile, libcurl, libdaemon, libevent,
	libglib2, libiconv, libmpd, libreplaygain, libroxml,
	libsamplerate, libsndfile, libsoup, libsvgtiny, libtool,
	libxcb, lighttpd, links, linux-fusion, lite, lrzsz, lsof, lzo,
	lzop, makedevs, mcookie, mpg123, mpd, mpfr, mtd, musepack,
	mutt, mysql_client, ncftp, ncurses, neon, netcat, netsnmp,
	ntfs-3g, ntfsprogs, ntp, openntpd, openssh, openssl, oprofile,
	orc, pciutils, psmisc, python, qt, quagga, radvd, rpm, rsync,
	samba, sawman, sdl_sound, smartmontools, sqlite, squid,
	stunnel, sudo, sylpheed, sysstat, taglib, tar, tcpreplay,
	tslib, usbutils, util-linux, valgrind, wget, whetstone, which,
	wpa-supplicant, xdata_xcursor-themes, xmlstarlet, xterm

	New packages: bluez-utils, cifs-utils, fftw, fluxbox, json-c,
	libev, libftdi, libgeotiff, libmodbus, libplayer, live555,
	ngrep, noip, opencv, openocd, picocom, poco, portaudio,
	pulseaudio, pv, rtai, vala, xenomai.

	Removed packages: liboil, sfdisk, swfdec, webif

	Issues resolved (http://bugs.uclibc.org):

	#505:  live555: new package
	#507:  Enable live and tv options in MPlayer-1.0rc2
	#531:  let e2fsprogs package to export headers to staging dir if needed
	#1171: Linuxthreads new cannot find sysdep.h
	#1357: Add bluez to buildroot system
	#2107: New package: input-event-daemon
	#2599: New package: orc (Oil Runtime Compiler)
	#2605: gstreamer: Update to 0.10.30
	#2677: introducing util-linux-ng as replacement for util-linux
	#2917: Qt: Add declarative module
	#3145: jffs2 image generation fails
	#3271: netperf-2.4.5 fails to compile
	#3331: xdata_xcursor-themes depends on xcursorgen
	#3343: Add file:// download SITE_METHOD
	#3391: Add support for specifying an external kernel tree
	#3631: Error while compiling with Xorg
	#3709: oprofile doesn't build for mipsel
	#3925: midori not getting compile
	#4045: Add support for downloading i386 toolchains from codesourcery
	#4165: lrzsz-fix-symlink-at-rebuild.patch
	#4171: makedevs-unused-but-set-variable.patch
	#4183: Codesourcery toolchain download site has changed
	#4231: libneon.so: undefined reference to `SSL_SESSION_cmp'
	#4381: Add option to lighttpd to enable Lua support
	#4387: Make sure that dest dir exists before installing mtd files

2011.08, Released August 31th, 2011:

	Fixes all over the tree.

	Toolchain: Fix codesourcery 2009q3 ARM download, Linux 3.0.4
	kernel headers.

	Updated/fixed packages: ipset, python

2011.08-rc2, Released August 29th, 2011:

	Fixes all over the tree.

	Toolchain: crosstool-NG 1.12.1, use binutils 2.21 on
	mips/sh/older uClibc, disallow uClibc 0.9.32 on avr32/sh
	(broken).

	Defconfigs: kernel updates, fix mini2440 serial port config,
	remove old arm toolchain configs.

	Bootloaders: Fix grub patching, add barebox-{n,x,menuconfig}
	targets similar to linux/busybox.

	Updated/fixed packages: barebox, directfb, libsoup,
	libxml-parser-perl, mtd, ncurses, python, ti-utils, udev,
	usbmount, util-linux, xfont_font-misc-misc

	Issues resolved (http://bugs.uclibc.org):

	#3685: ncurses installation hangs due to old version of tic
	#4093: Grub fails to install bz2 patch after conversion to...

2011.08-rc1, Released August 4th, 2011:

	Fixes all over the tree and new features.

	Toolchain: uClibc 0.9.32 / NPTL support, 0.9.29 removed,
	ext-toolchain-wrapper improvements, improved non-MMU
	support. GCC 4.3.6 / 4.6.1.

	GENTARGETS infrastructure extended to cover bootloaders and
	Linux kernel as well. Options to retrive Linux/U-Boot from a
	custom git repo instead of upstream tarballs.
	Support for Linux 3.x and release candidate tarballs.
	X-Loader bootloader for omap added.

	Make source/external-deps now also works for external
	toolchains / crosstool-ng backend.

	Updated/fixed packages: autoconf, berkeleydb, bind, binutils,
	bmon, bridge-utils, busybox, cmake, dbus, dbus-glib,
	e2fsprogs, ethtool, ffmpeg, gst-plugins-{bad,base,good,ugly},
	gvfs, hostapd, iproute2, iptables, iw, jpeg, lame, libarchive,
	libdnet, libdrm, libgcrypt, libgtk2, libmpeg2, libpng,
	libsoup, lighttpd, linux-fusion, lzo, midori, mtd-utils,
	nfs-utils, openvpn, oprofile, orc, pkg-config, proftpd, qt,
	ruby, samba, sdl, shared-mime-info, sudo, sqlite, squid,
	synergy, udev, usbmount, usbutils, util-linux, valgrind,
	webkit, xorg-xserver, xz, zlib

	New packages: acl, attr, ebtables, gnutls, inotify-tools,
	ipset, libargtable2, libiqrf, libmnl, libnspr, libnss,
	libroxml, libyaml, live555, mxml, orc, rsyslog, sredird,
	statserial, stunnel, ti-utils, uboot-tools, yajl

	Deprecated packages: liboil, swfdec

	Removed packages: hal

	Issues resolved (http://bugs.uclibc.org):

	#3559: libnspr: Add new package
	#3595: patch to add libroxml
	#3565: libnss: Add new package
	#3583: xfonts_font-adobe-100dpi fails due to missing map file
	#3649: [PATCH] Add mapdir to existing pkg-config patch
	#3907: 2011.05 - Qt 4.7.3 not building on ARM
	#3961: Nfs-utils: Remove SUSv3-function index
	#3985: "help" target's defconfig list needs sort
	#3997: bump libroxml to v2.1.0

2011.05, Released May 27th, 2011:

	Updated/fixed packages: makedevs

2011.05-rc2, Released May 24th, 2011:

	Fixes all over the tree.

	Toolchain: Code sourcery ARM 2009q1 download URL fixed /
	2009q3 external toolchains added. Crosstool-NG bumped to
	1.11.3, eglic/glibc configuration fixes. Linux kernel 2.6.38.x
	bumped to 2.6.38.7.

	Updated/fixed packages: bind, fakeroot, kbd, psmisc, qt

2011.05-rc1, Released May 18th, 2011:

	Fixes all over the tree and new features.

	External toolchain improvements: We now build a binary
	toolchain wrapper and install it into HOST_DIR/usr/bin, which
	enforces the correct compiler arguments, making an external
	toolchain as easy to use outside of Buildroot as the internal
	ones are. This also brought a cleanup of CFLAGS, making the
	Buildroot build output easier to read.

	Rootfs device handling improvements: Choice between static
	/dev, devtmpfs and devtmpfs with either mdev or udev.

	Toolchain: More preconfigured codesourcery external
	toolchains, improved Crosstool-NG support, fix for GCC
	snapshot versions, GCC 4.4.6 / 4.5.3, experimental GCC 4.6.0
	support, target-GCC fixes, uClibc fixes, 0.9.32-rc3 support.

	Bootloaders: U-boot 2011.03, Barebox 2011.05.0

	Linux: support for custom kernel image targets, E.G. for
	powerpc builds with embedded device trees.

	Misc fixes for qemu defconfigs, ensuring correct serial
	terminal setup out of the box.

	Misc gentarget / autotools handling fixes.

	Updated/fixed packages: alsa-lib, alsa-utils, alsamixergui,
	atk, avahi, bind, bison, busybox, copas, dbus-glib, dhcp,
	dhcpdump, dnsmasq, dropbear, ethtool, fakeroot, ffmpeg, file,
	gamin, gnuconfig, gst-ffmpeg, gst-plugins-good, gtk2-engines,
	haserl, hostapd, icu, imagemagick, iproute2, iw, kismet, less,
	libcap, libdnet, libglade, libglib2, libgtk2, libnl, libpng,
	libxml2, libxml2, libxslt, lighttpd, lockfile-progs, makedevs,
	midori, mpg123, mpc, mpd, mpfr, mplayer, mtd-utils, ncurses,
	netsnmp, openssh, openssl, openvpn, pango, pkg-config, popt,
	procps, proftpd, qt, quagga, readline, rsync, samba, sdl,
	socat, squashfs, squid, sudo, tslib, udev, usbutils, webkit,
	wpa_supplicant, xerces, xfont_font-misc-misc, xlib_libX11,
	xlib_libXfont, xlib_xtrans, xorg-server, xterm, xz

	New packages: bonnie++, can-utils, gdisk, htop,
	input-event-daemon, libexif, libraw, libv4l, ngircd

	Removed packages: festival

	Issues resolved (http://bugs.uclibc.org):

	#2131: Add OpenMP support to the toolchain
	#3379: New Package: bonnie++
	#3445: Not working openssl-10.0.0d on 386sx
	#3451: fakeroot package: wrong FAKEROOT_SITE variable
	#3457: alsamixergui: broken URL
	#3475: Calling sync on large filesystems when not always necessary
	#3511: make busybox-menuconfig does not download busybox package
	#3541: Quotes in the top Makefile:217 break buildroot/kernel config...
	#3571: u-boot: fw_printenv does not build
	#3643: popt source url is not responding
	#3733: dropbear: make zlib optional
	#3757: Buildroot can't build mplayer with libmad

2011.02, Released February 28th, 2011:

	Fixes all over the tree.

	Updated/fixed packages: alsamixergui, avahi, ffmpeg, icu, mpd,
	nuttcp, qt, slang, squashfs, sylpheed, synergy, xerces

	Deprecated packages: devmem2, webif

	Issues resolved (http://bugs.uclibc.org):

	#2911: Qt: Disable qt3support-option, if gui-module isn't selected
	#3259: Unable to build webkit (on arm)
	#3295: slang fails to build on mipsel
	#3325: ffmpeg fails to build

2011.02-rc2, Released February 24th, 2011:

	Fixes all over the tree.

	Festival packages marked as broken. Unless someone steps up
	to support them, they will be removed during the 2011.05
	development cycle.

	Updated/fixed packages: atk, avahi, bind, cairo, dbus,
	enchant, fakeroot, gmpc, gpsd, gvfs, iperf, jpeg, libarchive,
	libcgicc, libdaemon, libdrm, libevent, libgail, libglib2,
	libgpg-error, libmicrohttpd, librsvg, libsoup, libxcp,
	makedevs, matchbox-fakekey, matchbox-startup-monitor, mdadm,
	metacity, mpd, nasm, nfs-utils, olsr, openssl, popt,
	pthread-stubs, quagga, rpm, samba, sdl, sdl_gfx, sdl_image,
	sdl_mixer, sdl_sound, sdl_ttf, squashfs, synergy, taglib,
	tcpreplay, tiff, wpa_supplicant, xcb-util,
	xdriver_xf86-input-{acepad,aiptek,evdev,joystick,keyboard},
	xdriver_xf86-input-{mouse,synaptics,void},
	xdriver_xf86-video-{chips,dummy,geode,glide,intel,nv,wsfb},
	xlib_lib{ICE,SM,XScrnSaver,Xau,Xcursor,Xdmcp,Xi,Xinerama},
	xlib_lib{Xrandr,Xt,Xtst,Xxf86dga,Xxf86vm,dmx,fontenc,pciaccess},
	xserver_xorg-server, xz

	Removed packages: ace_of_penguins, vlc

	Issues resolved (http://bugs.uclibc.org):

	#3205: Failing chmod when running "make" in buildroot (openssl)...
	#3277: quagga fails to build with SNMP support
	#3283: See why nfs-utils needs fakeroot, and convert to autotools
	#3307: synergy fails to build due to missing XTest library

2011.02-rc1, Released February 14th, 2011:

	Fixes all over the tree and new features.

	External toolchain improvements: clarification of the options,
	and introduction of the toolchain profile concept, for
	well-known toolchains. Buildroot is now capable of
	automatically downloading and extracting well-known toolchains
	(for the moment, CodeSourcery ARM, PowerPC, MIPS and SuperH
	toolchains are supported). Crosstool-NG backend updated and
	improved.

	Complete rework of how hardware boards are supported.
	Each board now only has a single defconfig file, and all
	board-specific options have been removed. See
	docs/buildroot.html#board_support for details.

	Added support for the following boards: Mini2440, Qemu ARM
	Versatile, Qemu MIPSel Malta, Qemu PowerPC G3beige, Qemu SH4
	r2d and Qemu x86. The Qemu boards support allows to easily
	build systems that are known to work under Qemu.

	Initial support for Blackfin processors.

	Staging directory moved into $(O)/host/usr/<tuple>/sysroot, in
	preparation for support of SDK. For the same reason, the
	toolchain binaries (cross-compiler and other related tools)
	are now installed in $(O)/host/usr/bin/. The cross pkg-config
	now also automatically returns correct values for cross
	compilation, without needing any environment variables to be
	set.

	Ccache support reworked. Now used for both host and target
	compilation, and cache is stored in ~/.buildroot-ccache.

	Toolchain: uClibc 0.9.32-rc2, several components moved to
	normal AUTOTARGET packages.

	Generic cmake infrastructure, similar to the existing
	GENTARGETS/AUTOTARGETS.

	Support for bzr downloads, next to the existing git/svn support.

	Kconfig infrastructure rebased against 2.6.38-rc3, bringing
	misc fixes. 'xconfig' now uses Qt4 rather than Qt3.

	EXT2 file system size handling improved, UBI image support, fs
	configuration options cleanup, U-Boot/Barebox version bumps.

	Updated/fixed packages: alsa-utils, at, autoconf, automake,
	bash, binutils, bison, busybox, bzip2, cdrkit, cloop, cmake,
	coreutils, cups, dbus, dbus-python, dhcp, directfb,
	direcfb-examples, dmalloc, dnsmasq, dosfstools, e2fsprogs, ed,
	fbset, ffmpeg, findutils, flac, freetype, gdk-pixbuf, gmp,
	grep, gperf, gst-ffmpeg, gst-plugins-bad, gst-plugins-base,
	gst-plugins-good, gst-plugins-ugly, gstreamer, gvfs, hdparm,
	hostapd, i2c-tools, icu, imagemagick, input-tools, iproute2,
	iptables, iw, jpeg, kexec, libaio, libart, libcap, libconfig,
	libfuse, libglib2, libidn, libmad, libogg, libpcap, libpng,
	libsndfile, libtheora, libtool, libusb-compat, libvorbis,
	libxcb, libxml2, libxslt, links, linux-fusion, lm-sensors,
	lsof, ltp-testsuite, ltrace, lvm2, lzo, m4, makedevs,
	memtester, mesa3d, mii-diag, mpc, mpfr, mpg123, mplayer,
	mrouted, mtd-utils, nano, netperf, netplug, ntfs-3g, ntp,
	openssh, openssl, openvpn, oprofile, pango, patch, pciutils,
	php, pkgconfig, portmap, psmisc, python, qt, rsync, ruby,
	sawman, screen, sdl_gfx, sdl_sound, smartmontools, socat,
	sqlite, squid, sshfs, sstrip, sysklogd, sysstat, sysvinit,
	tar, tcpdump, tslib, udev, usbutils, vim, vtun, webkit, wipe,
	x11vnc, xapp_xlogo, xcb-proto, xfont_font-util,
	xkeyboard-config, xlib_libX11, xz, zlib

	New packages: dhrystone, dsp-tools, faad2, fbgrab, gst-dsp,
	gst-omapfb, irda-utils, lame, libao, libcue, libcuefile,
	libffi, libhid, libreplaygain, libsamplerate, libsigc++,
	lsuio, mpd, musepack, python-mad, python-serial, rsh-redone,
	sdparm, tidsp-binaries, vorbis-tools, wavpack, whetstone,
	xl2tp, xmlstarlet

	Removed packages: hotplug, l2tp, libfloat, microcom,
	ng-spice-rework

	Issues resolved (http://bugs.uclibc.org):

	#267:  The make target: cross fails because toolchain_build_...
	#415:  Berkeley DB: mut_pthread.o: relocation R_X86_64_32 against...
	#561:  ltp-testsuite failed to install
	#1447: Installing gfortran on PowerPC
	#1651: Build fail caused by ccache in module-init-tools
	#1681: Cross-compiled binaries shouldn't be installed into staging
	#1723: [PATCH] axel: convert to generic package infrastructure and...
	#1735: [PATCH] mplayer: convert to autotools infrastructure
	#2551: [PATCH] native toolchain in the target filesystem fails
	#2623: buildroot-snapshot-20100922 fails when compiling development...
	#2647: makedevs package lacks support for 16-bit major/minor numbers
	#2371: QT MYSQL Module does not build when MySQL installed on the host
	#2839: compile fails in various packages with a odd message "error:...
	#2887: tar "buffer overflow detected" error
	#2893: Broken "make source" with external toolchain
	#2905: Qt: Speed up compilation, if gui-module isn't selected
	#2929: genext2fs: couldn't allocate a block (no free space)
	#2935: Ntpdate isn't installed
	#2965: Broken linkage to xkbcomp (blocking X server startup)
	#2983: xlib_libX11 build failed
	#3007: kexec doesn't build: Missing regdef.h file
	#3085: Init scripts are not compatible with sysVinit (when busybox...
	#3103: make external-deps wants to download gcc-.tar.bz2 when...
	#3109: abnormal `make busybox-menuconfig`
	#3115: How about board specific makefiles?
	#3169: python patch has typo, aborts build in scenario
	#3181: dhcp.mk copies S80dhcp-server to etc/init.d, not etc/init.d/

2010.11, Released November 30th, 2010:

	Fixes all over the tree.

	Updated/fixed packages: libgcrypt, qt, squid, sysstat, tcpdump,
	xserver-xorg

	Issues resolved (http://bugs.uclibc.org):

	#2773: squid with openssl support needs openssl on the host
	#2857: OBJDUMP definition is missing from TARGET_CONFIGURE_OPTS

2010.11-rc2, Released November 25th, 2010:

	Fixes all over the tree.

	Add support for LEON Sparc architecture variants. Fix make
	source/external-deps for host packages.

	Updated/fixed packages: bash, bind, busybox, dialog, gpsd,
	libglib2, libcurl, libmad, lrzsz, midori, module-init-tools,
	mtd-utils, openssh, openssl, pciutils, php, qt, sqlite,
	sysstat, webkit, zlib

	Issues resolved (http://bugs.uclibc.org):

	#759:  Sysstat build broken without libintl
	#2479: host-module-init-tools 3.11 fails to build
	#2725: Buildroot overrides kernel config
	#2785: mtd-utils build fails due to missing libmtd
	#2791: Added PHP-Process Control to the PHP-Package
	#2797: pciutils dependencies on zlib not taken into account
	#2809: failed to compile libglib2
	#2821: [PATCH] Patch for JavaScriptCore in QtWebKit module
	#2827: qt-4.7.0-pthread_getattr_np.patch invalid for qt 4.6...
	#2833: Failed to compile webkit without X11

2010.11-rc1, Released November 8th, 2010:

	Fixes all over the tree and new features.

	Kconfig infrastructure rebased against 2.6.36-rc1, bringing
	misc fixes + nconfig and savedefconfig targets.

	Toolchain: ARM cortex A9 support, experimental crosstool-ng
	backend, GCC 4.5.x.

	Fs: Squashfs 4.1 with lzo support

	Old-style package hooks (*_HOOK_POST_*) removed. Use the more
	generic new-style ones instead.

	Download handling reworked and support for git/svn downloads
	added.

	Removed experimental shared config.cache support, as it is
	too unreliable.

	A convenience Makefile wrapper is created when using
	out-of-tree building, similar to how it is done for the kernel.

	Alpha, Cris, IA64 and Sparc64 architecture support removed.

	New packages: argp-standalone, gdk-pixbuf, gpsd, gst-ffmpeg,
	libmpeg2, kbd, librsvg, nuttcp, rng-tools, rrdtool, xz

	Updated/fixed packages: acpid, alsa-lib, argus, at, autoconf,
	automake, avahi, axel, beecrypt, berkeleydb, bind, bmon, boa,
	bootutils, bridge-utils, bsdiff, busybox, cvs, dbus, directfb,
	dmraid, docker, dosfstools, dropbear, e2fsprogs, ethtool,
	expat, ezxml, fbset, fconfig, ffmpeg, freetype, gadgetfs-test,
	gamin, gawk, genext2fs, gperf, gst-plugins-base,
	gst-plugins-ugly, gtk2-themes, gtkperf, gvfs, haserl, hdparm,
	hostapd, hwdata, ifplugd, imagemagick, iperf, ipsec-tools,
	iproute2, iptables, iw, jpeg, kexec, kismet, less, libcgi,
	libcurl, libdaemon, libdnet, liberation, libevent, libeXosip2,
	libglade, libgtk2, libiconv, libidn, libintl, libmms, libmpd,
	libnl, liboil, libosip2, libpcap, libpng, libtool, libungif,
	libxml2, libxslt, lighttpd, lite, lm-sensors, lockfile-progs,
	logrotate, m4, matchbox, mdadm, mesa3d, metacity, mplayer,
	mtd-utils, mysql_client, nano, nbd, ncftp, neon, netperf,
	netsnmp, ng-spice-rework, ntfsprogs, ntp, openntpd, openssh,
	openssl, openvpn, oprofile, pango, patch, pcre, php,
	pkg-config, portmap, pppd, pptp-linux, prboom, proftpd, radvd,
	rdesktop, readline, rp-pppoe, ruby, qt, quagga, samba, sawman,
	sdl_mixer, sdl_sound, sed, setserial, shared-mime-info, slang,
	speex, sqlite, squashfs, startup-notification, strace,
	sylpheed, sysstat, taglib, tcpdump, thttpd, tiff, tn5250,
	torsmo, tslib, udev, udpcast, usbmount, usbutils, vsftpd,
	vtun, which, wireless-tools, wpa_supplicant, xapp_twm,
	xapp_xbacklight, xapp_xcursorgen, xapp_xinit, xapp_xinput,
	xapp_xmore,
	xdriver_xf86-input-{acecad,aiptek,evdev,joystick,keyboard},
	xdriver-xf86-input-{mouse,synaptics,vmmouse,void},
	xdriver-xf86-video-{apm,ark,ast,ati,chips,cirrus,dummy,fbdev},
	xdriver-xf86-video-{geode,glide,glint,i128,i740,intel,mach64},
	xdriver-xf86-video-{mga,neomagic,newport,nv,openchrome,r128},
	xdriver-xf86-video-{rendition,s3,s3virge,savage,siliconmotion},
	xdriver-xf86-video-{sis,sisusb,suncg3,suncg6,suncg14,sunffb},
	xdriver-xf86-video-{sunleo,suntcx,tdfx,tga,trident,v4l,vesa},
	xdriver-xf86-video-{vmware,voodeo,wsfb,xgi,xgixp},
	xkeyboard-config, xlib_libX11, xserver_xorg-server, xstroke,
	xterm, xvkbd, zlib

	Deprecated packages: hotplug, lzma, ng-spice-rework, sfdisk

	Removed packages: dillo, libglib12, libgtk12, microwin,
	pcmcia

	Issues resolved (http://bugs.uclibc.org):

	#901:  new package: gpsd
	#2389: Generate a Makefile wrapper in $(O)
	#2461: wireless_tools: install shared library if needed
	#2521: Can't compile sdl_mixer, mikmod.h can't be found
	#2533: xserver_xorg-server: Enable glx, if mesa3d is built
	#2563: [PATCH] cairo: Expose the configure option to disable some...
	#2581: libmms: Update to 0.6, and patch to work on architectures...
	#2707: Can't compile linux kernel using buildroot + crosstool-ng
	#2731: Build order
	#2737: buildroot configuration tool crashing when the path exceeds...
	#2767: Build for lsof broken in buildroot-2010.08

2010.08: Released August 31th, 2010:

	Fixes all over the tree.

	Updated/fixed packages: atk, xstroke

	Removed packages: lxdoom

2010.08-rc2, Released August 30th, 2010:

	Fixes all over the tree.

	Mark the combination of uClibc 0.9.31, gcc 4.2.x, C++ and
	locale support as broken. Remove deprecated GCC 4.2.[1-3]
	versions.

	Mark CRIS architecture as deprecated, as it is discontinued
	upstream.

	Marked shared config.cache as experimental and disabled by
	default as it is known to break with certain package
	combinations.

	Toolchain: fixed gcc 4.2.x build after uClibc NPTL support got
	added.

	fs: old-style squashfs for big endian archs fixed.

	Updated/fixed packages: busybox, gst-plugins-base,
	imagemagick, kismet, libgail, libglib2, libgtk2, lua,
	luafilesystem, lzo, ncurses, netcat, pango, php, pppd,
	proftpd, qt, samba, startup-notification, swfdec, sysvinit,
	util-linux

	Removed packages: stunnel

	Issues resolved (http://bugs.uclibc.org):

	#635:  util-linux fails to build in 2009.08
	#2239: netcat package installs its binary to target as avr32-linux...
	#2395: libglib2-2.24.1 and libxml2-2.7.7 fails build on MIPS because...
	#2443: Initramfs: Don't overwrite $(TARGET_DIR)/init if it exists
	#2449: Minor fixes for squashfs makefile and correct PowerPC e500 ...

2010.08-rc1, Released July 30th, 2010:

	Fixes all over the tree and new features.

	Toolchain: GCC 4.3.5, older 4.3.x versions removed. GCC 4.1.2
	and non-sysroot support removed. Added support for (snapshot)
	NPTL in uClibc, 0.9.28.3 removed,

	Bootloaders: Various cleanups, moved to boot/, added Barebox,
	removed yaboot. Support building u-boot from custom tarball,
	u-boot 2010.06.

	New GTK-based configurator, usable using 'make gconfig'.

	Java packages marked as broken. Unless someone steps up to
	support this, they will be removed during the 2010.11
	development cycle.

	Alpha, IA64 and Sparc64 architectures marked as deprecated.
	GTK+ on DirectFB has also been marked as deprecated, as it is
	not supported in recent GTK+ versions, and more and more
	packages depends on the new versions.
	Unless someone steps up to support them, they will be removed
	during the 2010.11 development cycle.

	New packages: cgilua, copas, coxpcall, ffmpeg, libsvgtiny,
	libgail, luafilesystem, luasocket, rings, wsapi, xavante, xterm

	Updated/fixed packages: alsa-lib, alsamixergui, at, atk,
	avahi, berkeleydb, bash, blackbox, busybox, bzip2, cairo,
	cdrkit, cmake, dash, dhcp, dialog, diffutils, distcc, dmalloc,
	dnsmasq, dropbear, e2fsprogs, fbv, file, flex, fontconfig,
	gawk, gmpc, gnuchess, gst-plugins-base, gst-plugins-good,
	gstreamer, gzip, icu, intltool, iostat, ipsec-tools, iptables,
	iw, libart, libcgi, libcurl, libdrm, libeXosip, libfuse,
	libglib2, libgpg-error, libiconv, libidn, liblockfile, libpng,
	libsoup, lighttpd, links, linux-fusion, lmbench, lrzsz,
	ltrace, make, midori, module-init-tools, mplayer,
	mysql_client, nbd, ncurses, neon, netcat, netperf, netsnmp,
	ntfsprogs, openssl, oprofile, pango, php, qt, quagga, samba,
	setserial, sdl, sdl_mixer, sdl_sound, sdl_ttf, speech-tools,
	sqlite, squashfs, swfdec, tftpd, thttpd, tn5250, tremor,
	usbutils, webif, webkit, wireless_tools, xerces,
	xkeyboard-config, xserver_xorg-server, xvkbd, zlib

	Removed packages: modutils, portage, rxvt

	Deprecated packages: dillo, libglib12, libgtk12, microwin, pcmcia

	Issues resolved (http://bugs.uclibc.org):

	#321:  alsa-lib uses host include files for python which breaks ...
	#361:  linux kernel configuration choice works incorrectly
	#387:  Tremor not installed to toolchain
	#401:  new package: ffmpeg
	#475:  uImage target for U-boot failed generating
	#543:  ATK requires X11 on DirectFB target
	#575:  webkit: Buildroot Libtool Patch Fails
	#583:  build fails with external x86_64 toolchain
	#729:  sstrip creates corrupted headers
	#829:  Webkit r44552 needs libXt
	#835:  Package Dataflashboot-1.05 does not compile with buildroot...
	#847:  Compiling target-gcc v4.4 fails with "libc.so.0: cannot open...
	#859:  Add (head of) nptl branch to list of uClibc versions
	#949:  compile with debug info
	#955:  Grub fails to build with External Toolchain
	#1051: Webkit doesn't compile (Linuxthreads new, x86)
	#1213: Move .config into output directory
	#1225: Buildroot fails to account for "nof" subdirectory (no float...
	#1231: (sparc) Linux kernel fails to build
	#1261: The getline() in output/build/linux-2.6.28/scripts/unifdef.c...
	#1339: Busybox needs -fno-strict-aliasing to compile cleanly
	#1393: neon config fails libxml/parser.h: libxml2 requires, but not ...
	#1405: WebKit fails to build because pthread_getattr_np is not impl...
	#1675: GMP Error during buildroot make process
	#1741: external toolchain linking error
	#1753: lmbench: convert to generic package infrastructure
	#1771: Fakeroot and the target/generic/device_table.txt create bad...
	#1807: LZMA 4.32.7, Required header file(s) are missing
	#1813: xkeyboard-config fails to build because of intltool problem
	#1879: Bump iptables to 1.4.8
	#1885: Add a bunch of lua modules
	#1897: Bump libusb to 1.0.7
	#1903: Bump tn5250 to 0.17.4 and migrate to autotargets
	#1909: netperf-2.4.5 fails to build because of undeclared SOCK_DCCP
	#1927: Bump file to 5.03 and migrate to autotargets
	#1933: Bump gawk to 3.1.8 and migrate to autotargets
	#1945: PHP: add sqlite3 dependency when using external lib
	#1951: Bump openssl to 0.9.8o
	#1957: Bump sqlite to 3.6.23.1
	#1975: Package removal/deprecation
	#1981: zlib: bump to 1.2.5
	#1987: intltool: Fix spelling mistake
	#1993: Bump bash to 4.1.7(1) and migrate to autotargets
	#1999: Typo in path checking
	#2005: Bump dnsmasq to 2.55 and migrate to gentargets
	#2035: ipsec-tools-0.7.2 fails to build with gcc-4.4.x
	#2038: Bump ncurses to 5.7
	#2095: make gconfig: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
	#2101: blackbox depends on locale support
	#2119: Tries to build kernel, although disabled in config
	#2125: libXfont build fail
	#2143: buildroot compiler generates segfaulting statically linked exe..
	#2149: xterm build failure
	#2155: Compression lzo don't set for ubifs
	#2161: [SECURITY] Update libpng to 1.2.44
	#2167: Bump busybox to 1.17.0, convert to gentargets, drop 1.12, ...
	#2181: pixman can't apply pixman-0.10.0-no-tests.patch
	#2191: linux-fusion build fail
	#2221: Qt does not compile (dependencies not taken into account?)
	#2233: Atmel atstk target skeletons have /etc/mtab as a file, not ...
	#2245: Netcat does not work due to incorrect assumptions about signed..
	#2251: directory output/build after make *_defconfig not found
	#2257: Convert netsnmp package to autotargets
	#2263: Bump samba to 3.3.13
	#2269: setserial causes make error

2010.05, Released May 30th, 2010:

	Fixes all over the tree.

	Updated/fixed packages: coreutils, hal, libcap,
	lockfile-progs, ncftp, xserver_xorg-server

	Issues resolved (http://bugs.uclibc.org):

	#1789: binutils fails to build for i386
	#1843: Fix libcap build failure
	#1855: XORG Keyboard driver fails to compile

2010.05-rc3, Released May 27th, 2010:

	Fixes all over the tree.

	Updated/fixed packages: aumix, atk, avahi, bmon, busybox, cairo,
	cdrkit, dbus-glib, dbus-python, docker, enchant, fltk, gamin,
	gettext, gmpc, gob2, grep, gstreamer, gst-plugins-bad,
	gst-plugins-base, gvfs, hal, iconv, icu, iperf, libcgicc,
	libdvdnav, libdvdread, libglade, libglib2, libgtk2, libidn,
	libmms, libmpd, libpcap, libsoup, lmbench, lsof, ltrace, lvm2,
	make, metacity, microperl, mtd-utils, mutt, nbd, netsnmp,
	ntfsprogs, ntp, olsr, pango, pciutils, pcmanfm, php,
	pkg-config, psmisc, qt, samba, shared-mime-info, squashfs,
	squashfs3, sshfs, startup-notification, swfdec, sylpheed,
	uemacs, util-linux, valgrind, vpnc, vsftpd, webkit, xstroke

	Issues resolved (http://bugs.uclibc.org):

	#75: arm buildroot "unrecognized option" error
	#699: Buildroot fails to copy libstdc++ to target when using external...
	#1693: NTP trys IPV6 even if not configured error: 'IPV6_MULTICAST...
	#1729: alsamixergui fails to build
	#1801: Avahi-autoipd doesn't create TARGET_DIR/var/lib
	#1819: pciutils small bugs
	#2065: Internal toolchain: bump gcc 4.3.x series to 4.3.5

2010.05-rc2, Released May 11th, 2010:

	Fixes all over the tree.

	Updated/fixed packages: busybox, customize, gawk, gnuchess,
	hal, hostapd, less, libgcrypt, libnl, libxcb, linux-fusion,
	ltp-testsuite, mplayer, netplug, pciutils, php, sed,
	shared-mime-info usb_modeswitch, usbutils, vlc wpa_supplicant,
	xapp_bdftopcf, xapp_mkfontdir, xdriver_xf86-video-openchrome,
	xfont_encodings, xlib_libX11, xlib_libXfont, xlib_xtrans,
	xproto_fontcacheproto, xproto_fontsproto, xvkbd

	Removed packages: vice

	Issues resolved (http://bugs.uclibc.org):

	#849: "customize" package copies files to wrong place in target tree
	#985: Bump usb_modeswitch package to 1.1.0
	#1135: Package customize. Wrong copying
	#1525: Package hal deletes a whole <target>/etc/rc.d directory
	#1531: libxcb 1.5 build fails, due to missing xcbgen Python module
	#1669: Busybox failed to compile when using an external toolchain
	#1699: Fix usbutils dependencies and bump
	#1705: Fix pciutils broken cross compiling
	#1717: External toolchain fixes for hostapd & wpa_supplicant

2010.05-rc1, Released May 3rd, 2010:

	Cleaned up / restructured package menu.

	Toolchain: uClibc 0.9.30.3 / 0.9.31, older 0.9.30.x removed.
	2.6.33 kernel headers, binutils 2.20.1, GCC 4.4.4,
	removed broken nios2 support, ppc e300cX/e500mc support,
	improved external toolchain support, GDB 7.x support.

	X.org updated to 7.5.

	New packages: cdrkit, cramfs, genext2fs, genromfs,
	libatomic_ops, librsync, libusb-compat, lmbench, netperf,
	squashfs, squashfs3, squid

	Updated/fixed packages: alsa-utils, argus, autoconf, bison,
	busybox, bzip2, directfb, dnsmasq, dosfstools, e2fsprogs,
	eeprog, fakeroot, fbv, findutils, freetype, haserl, hostapd,
	iperf, iptables, iw, less, libaio, libcgi, libcgicc, libdrm,
	libgcrypt, libglib2, libid3tag, libmad, liboil, libosip2,
	libpng, libraw1394, libsysfs, libxml2, libxslt, linux-fusion,
	ltrace, lua, lzma, madplay, makedevs, matchbox, mdadm,
	memstat, mesa3d, mtd-utils, nano, ncurses, openssl, patch,
	pciutils, php, pixman, portage, pppd, pthread-stubs, python,
	qt, radvd, samba, setserial, smartmontools, tar, tslib,
	udpcast, usb_modeswith, vtun, wget, xdata_xcursor-themes,
	xdriver_xf86-video-intel, xkeyboard-config, xlib_libX11,
	xlib_libXaw, xlib_libXfont, xlib_libXfontcache,
	xlib_libXxf86misc, xlib_libXtst, xlib_libpciaccess,
	xproto_dri2proto, xproto_eviext, xproto_fontcacheproto,
	xproto_xf86miscproto, xserver_xorg-server

	Removed packages: xapp_xtrap, xlib_libXTrap, xlib_libXevie,
	xlib_libXxf86misc, xxproto_evieext, proto_trapproto,
	xproto_xf86miscproto

	Issues resolved (http://bugs.uclibc.org):

	#513: Add new squid package
	#661: lmbench: new package
	#719: Add lua option to haserl
	#800: [PATCH] iperf update to 2.0.4
	#803: [PATCH] lua - add shared library patch and config option for...
	#805: [PATCH] mdadm - version update
	#817: integrator926_defconfig uses unsupported uboot board name
	#851: Add option to specify --sysroot value for external toolchain
	#1093: Upgrade libusb to v1.0.3 and add new libusb-compat
               package for compatibility with old packages that expect
               the pre-1.0 API.
	#1105: Add new netperf package
	#1111: Bump wget to 1.12 and migrate to Makefile.autotools.in
	#1117: Bump nano to 2.2.3 and migrate to Makefile.autotools.in
	#1123: Bump less to 436 and migrate to Makefile.autotools.in
	#1129: Bump memstat to 0.8 and migrate to Makefile.package.in
	#1189: Wrong u-boot configuration name for integrator926 target
	#1219: kernel headers not correctly installed into toolchain/staging
	#1267: Wrong BR2_EXTRA_VERSION
	#1273: BR2_INET_IPV6 does not enable IPv6 in pppd
	#1303: Add librsync package
	#1321: Busybox link fails due to lack of --sysroot option
	#1327: mtd-utils compile failure due to lack of --sysroot in CFLAGS
	#1345: Bump pppd to 2.4.5 and convert to Makefile.autotools.in
	#1369: cannot build radvd (flex problem)
	#1387: xlib_libX11-1.3.2 can't find libjpeg
	#1411: [SECURITY] Update openssl package to 0.9.8n
	#1417: Bump iptables to 1.4.7
	#1423: Bump e2fsprogs to 1.41.11
	#1429: [SECURITY] Update php to 5.2.13
	#1441: Add binutils 2.20.1
	#1447: Package installation on target with debug symbols is broken
	#1459: Misc QA fixes
	#1489: radvd update to 1.6
	#1513: Enable powerpc e300c2, e300c3 and e500mc optimization
	#1537: dev entries not created anymore
	#1555: Fix default uclibc-0.9.31 configuration
	#1561: [SECURITY] Update samba to 3.3.12
	#1567: openssl0.9.8n fails to compile
	#1573: Alsa-utils alsactl/init/* not installed to target
	#1591: portmap fails to compile
	#1615: Convert eeprog package to gentargets
	#1645: Bump hostapd package to 0.7.2

2010.02, Release February 26th, 2010:

	Fixes all over the tree.

	Updated/fixed packages: avahi, busybox, cramfs, ipsec-tools, libcgicc,
	libgtk2, libraw1394, madplay, netsnmp, pango, squashfs, sylpheed, qt,
	xfont_font-util

	Removed packages: hostap, openmotif, xpdf

	Issues resolved (http://bugs.uclibc.org):

	#165: openmotif does not build
	#1147: Remove obsolete hostap package
	#1183: make source fails to download gmp, mpfr and patches

2010.02-rc2, Released February 23th, 2010:

	Fixes all over the tree and new features.

	New packages: intltool

	Updated/fixed packages: ace_of_penguins, alsa-lib, alsa-utils, argus,
	at, automake, ccache, dosfstools, e2fsprogs, flex, gob2, gmpc,
	gst-plugins-good, imagemagick, iw, kexec, libeXosip, libgtk2,
	libpcap, libpng, libsoup, libxcb, libxml-parser-perl, libxml2,
	libxslt, lvm2, matchbox, mplayer, rsync, rubix, shared-mime-info,
	tcl, webkit, xapp_mkfontscale, xfont_encodings, xfont_font-util,
	xlib_libfontenc, xproto_trapproto, zlib

	Removed package: xboard

	Issues resolved (http://bugs.uclibc.org):

	#335: atk looks for the path to the gnome library on the host
	#355: Please update WebKit - it doesn't compile!
	#453: libglib2 autoreconf
	#457: e2fsprogs link problem
	#459: libgtk2 autoreconf
	#469: build of libgtk2 for host incorrectly assumes that X.org ...
	#671: Bash fails to build when building buildront on Ubuntu 9.04
	#711: WebKit host dependencies problems
	#821: cp: illegal operation
	#1039: Not compiled on ubuntu karmic
	#1069: [PATCH] The AT91BOOTSTRAP makefile contains a typo

2010.02-rc1, Released February 9th, 2010:

	Fixes all over the tree and new features.

	Generalized autotools infrastructure to be usable for
	non-autotools packages, see package/Makefile.package.in for
	details.

	Cleaned up avr32 toolchain config, external source-based
	toolchain support is gone.

	Dependency checks: Also check for makeinfo, only print output
	on errors.

	Toolchain: uClibc 0.9.30.2, gcc 4.4.3

	New packages: libcdaudio, libdvdnav, libdvdread, hostapd, ser2net,
	tcpreplay

	Updated/fixed packages: alsa-lib, alsa-utils, at, autoconf, bash,
	bind, binutils, bootutils, busybox, dbus, directfb, dnsmasq,
	e2fsprogs, gstreamer, gperf, gst-plugins-bad, gvfs, fbdump, flex,
	hal, iptables, iw, jpeg, kismet, libfuse, libglib2, liboil, libpcap,
	libungif, libxml2, libxslt, lighttpd, mesa, mpg123, mtd-utils, nbd,
	neon, netstat-nat, newt, openvpn, pcre, php, qt, rdesktop, readline,
	rpm, sawman, sdl, sdl_ttf, sqlite, sshfs, tremor, u-boot,
	usb_modeswitch, usbutils, webkit, wpa_supplicant, xfsprogs, zlib

	Removed package: asterisk, openswan

	Issues resolved (http://bugs.uclibc.org):

	#515: tcpreplay: new package
	#553: Wrong DirectFB ps2mouse limitation
	#559: mesa3d build fails
	#679: Autoconf cannot find M4
	#739: New/updated hostapd package
	#749: Bump usbutils package to version 0.86
	#751: Kernel 2.6 snapshot fetch fail
	#753: Bump lighttpd package to 1.4.25
	#757: U-Boot: mkimage cannot be installed using external toolchain
	#761: Add binutils 2.20 to toolchain options
	#763: [SECURITY] Update pcre to 7.9
	#765: Add buildroot branding to gcc
	#767: Bump iw package to 0.9.18
	#773: [SECURITY] Update bind to 9.5.2-P1
	#795: Minor edits to fix typos, grammar, spelling, usage in documen...
	#813: Drop not very useful generic package selection options ...
	#823: Editor backup files (~) is copied from the target_skeleton
	#827: Bump mtd-utils package to version 1.2.0
	#841: Build error
	#913: Bump iptables to 1.4.6
	#919: Bump usb_modeswitch package to 1.0.7
	#925: Bump wpa_supplicant package to 0.6.10
	#931: Bump kismet package to 2010-01-R1
	#937: Bump openvpn package to 2.1.1
	#943: Bump sqlite package to 3.6.22
	#961: Bump dnsmasq to 2.52
	#967: Bump netstat-nat to 1.4.10
	#973: Bump iw to 0.9.19
	#1003: DHCP options disabled with busybox-1.16.0
	#1009: [SECURITY] Bump php to 5.2.12
	#1015: [SECURITY] Bump bind to 9.5.1-P2
	#1027: Busybox flash commands conflict with those from mtd-utils
	#1063: [SECURITY] Update lighttpd to 1.4.26

2009.11, Released December 1st, 2009:

	Additional fixes and cleanups.

	Updated/fixed packages: alsamixergui, autoconf, coreutils, fltk,
	microperl, ncurses, vim

	Issues resolved (http://bugs.uclibc.org):

	#707: Cant configure fltk-1.1.7. configure: error: Configure could ...

2009.11-rc2, Released November 29th, 2009:

	Additional fixes and cleanups.

	Updated/fixed packages: busybox, dbus, fltk, gvfs, ltrace

2009.11-rc1, Released November 23rd, 2009:

	Fixes all over the tree and new features.

	Cleaned up / Simplified build directory layout. Refer to
	docs/buildroot.html#using for details.

	Target defconfig files moved to configs/ and listed in 'make help'
	output.

	Fixed *clean targets. Now clean removes everything generated,
	so you can do a fresh rebuild. Distclean furthermore removes
	kbuild tools and .config, bringing the source tree back in a
	pristine state.

	Toolchain: ARM cortex A8 support, GCC 4.4.2, sensible default
	soft / hardfloat setting for architecture, ensure target-ldd
	gets installed.

	New packages: divine, gvfs, libarchive, libmicrohttpd,
	sdl_sound, swfdec, sysstat

	Updated/fixed packages: alsa-lib, alsamixergui, autoconf, bootutils,
	busybox, gcc, directfb, dnsmasq, e2fsprogs, festival, gamin, gperf,
	gqview, gstreamer, gst-plugins-bad, gst-plugins-base, gst-plugins-good,
	imagemagick, ipkg, iptables, iw, kernel-headers, kismet, leafpad,
	libelf, libevent, libglib2, libidn, liblockfile, libmad, libpcap,
	libupnp, libuuid, libxml2, lighttpd, ltrace, lua, lzma, magiccube4d,
	matchbox, mdadm, nbd, ncftp, ncurses, netkittelnet, netsnmp,
	ng-spice-rework, ntfs-3g, openntp, openssl, pcmanfm, php, psmisc,
	python, quagga, radvd, rpm, rsync, rubix, samba, sawman, sdl, sdl_image,
	shared-mime-info, sfdisk, spawn-fcgi, speech-tools, sqlite, squashfs,
	synergy, syslinux, sysklogd, target-binutils, tcpdump, torsmo, u-boot,
	udpcast, util-linux, valgrind, vsftpd, wipe, wpa-supplicant, x11vnc,
	xdata_xcursor-themes, xboard, xfsprogs, xstroke, zlib[5~

	Removed package: mdnsresponder, mpatrol, gcc 3.4.6 + 4.0.4, vice

	Issues resolved (http://bugs.uclibc.org):

	#301: allow to install libsmbclient
	#303: add gvfs package
	#477: Add sdl_sound package
	#487: Make kismet package sexier
	#511: New package usb_modeswitch
	#527: misc fixes for dnsmasq package
	#565: libevent: Bump version and clean up makefile
	#587: Use iptables multipurpose binaries and bump to 1.4.4
	#593: Missing early check for patch(1)
	#597: (REOP)  Selecting busybox in buildroot's config clobbers ar ...
	#609: libmicrohttpd: New package
	#615: python: Don't delete .py files unless asked
	#617: netkit/inetd requires RPC and fails to build if RPC is disabled
	#619: netkittelnet requires netkitbase to install, but there's no ...
	#645: allow to build nbd-server with NBD package
	#653: [SECURITY] Update php package to version 5.2.11
	#655: Update sqlite package to version 3.6.18
	#657: Bug in imagemagick-clean target
	#663: Add option for NAND flash with 512B Page and 16 kB erasesize ...
	#665: [PATCH] Samba package
	#667: [PATCH] e2fsprogs
	#683: SDL-dfb does not select directfb
	#701: make install problem with unstripped binaries
	#703: [SECURITY] Update openssl package to 0.9.8l
	#705: Bump spawn-fcgi package to 1.6.3
	#709: Bump lighttpd package to 1.4.24
	#713: Migrate openntpd package to Makefile.autotools.in
	#715: Bump libidn package to 1.15 and other fixes
	#717: Bump dnsmasq to 2.51 and introduce new IDN option
	#731: Bump iw package to 0.9.17

2009.08, Released August 31th, 2009:

	Additional fixes and cleanups.

	Updated/fixed packages: ctorrent, saveconfig/getconfig,
	sdl_net, util-linux.

	Issues resolved (http://bugs.uclibc.org):

	#529: util-linux doesn't find headers and include libs correctly
	#557: Build ctorrent with SSL support if available

2009.08-rc3, Released August 26th, 2009:

	Additional fixes and cleanups.

	Updated/fixed packages: alsa-utils, berkeleydb, busybox, dbus,
	directfb, enchant, kernel headers.

	Issues resolved (http://bugs.uclibc.org):

	#471: Allow directfb compilation with debug
	#541: Removal of CVS directories in target filesystem broken
	#547: berkeleydb: Update config.{sub, guess}
	#549: enchant: Fix dependencies.
	#569: Fix alsa-utils build for x86 on x86-64

2009.08-rc2, Released August 6th, 2009:

	Additional fixes and new features.

	New packages: libuuid, gcc 4.3.4.

	Updated/fixed packages: busybox, classpath, gzip, ipsec-tools,
	jamvm, libusb, microperl, neon, popt, sed, webkit.

	Fixed issue with 'make oldconfig'

	Issues resolved (http://bugs.uclibc.org):

	#525: sed broken with external toolchain
	#537: Fix gzip build with recent glibc

2009.08-rc1, Released August 2nd, 2009:

	Fixes all over the tree and new features.

	Improvement of external toolchain support:
	  - Support for glibc toolchains.
	  - The toolchain configuration announced to Buildroot is
	    verified against the real toolchain configuration.
	  - Fixes, documentation.

	Cleanup X.org support: clarified configuration options, and
	removed mandatory dependency on useless libraries such as
	libXt or libXaw.

	New QT-based configurator, usable using 'make xconfig'.

	Support for the Xtensa architecture.

	Toolchain: GCC 4.4.1, 2.6.30 kernel headers, removed < 2.6.26
	headers.

	New packages: bmon, ctorrent, dosfstools, enchant,
	gst-plugins-bad, iw, libmms, libnl, netstat-nat, ntfsprogs,
	sdl_gfx, spawn-fcgi.

	Updated packages: bind, busybox, coreutils, sqlite, directfb,
	expat, gamin, gnuconfig, haserl, ipsec-tools, classpath,
	libcurl, libglib2, liblockfile, libpng, libsoup, libxml2,
	lighttpd, ltp-testsuite, lvm2, matchbox, memstat,
	gst-plugins-good, gstreamer, libogg, libvorbis, mplayer,
	neon, openssl, pciutils, php, qt, ruby, sawman, webkit,
	wpa-supplicant, xdriver_xf86-input-synaptics,
	xdriver_xf86-video-intel, xlib_libXfont, xlib_libXft,
	xlib_libXt, xproto_xproto, xserver-xorg, xutil_makedepend,
	xutil_util-macros.

	Issues resolved (http://bugs.uclibc.org):

	#83: liblockfile fails to compile due to eaccess redefinition
	#163: Xtensa architecture port
	#171: xorg-server / kernel headers 2.6.26 - vm86.c compilation issue
	#241: device mapper + lvm2: build together
	#243: ctorrent: new package
	#247: ntfsprogs: new package
	#271: Library 'libgcc_s.so.1' not installed in search path
	#287: New package libnl
	#289: New package iw
	#331: Update MPlayer to version 1.0rc2
	#333: Bump sqlite package to 3.6.15
	#349: update libsoup to version 2.26.2
	#357: New package netstat-nat
	#359,#413: Upgrade openvpn to Makefile.autotools.in
	#367: linux kernel compile error for arm926t
	#369: Add SDL_gfx package
	#373: Support for building gstreamer without libxml
	#379: update DirectFB to version 1.4.0
	#383: gst-plugins-good: Allow soup plugin to be configured
	#385: neon: Fix pkgconfig dependency
	#387: Tremor not installed to toolchain
	#389: New package bmon
	#391: gstreamer: Bump version to 0.10.23
	#393: gst-plugins-base: Bump version to 0.10.23
	#395: gst-plugins-bad: New package
	#403: Error while building iso9660 image
	#409: Bump php package to 5.2.10
	#411: ipsec-tools: Bump version to 0.7.2
	#417: New package spawn-fcgi
	#419: Bump lighttpd package to 1.4.23
	#421: toolchain: Clean up toolchain locale support menu
	#427: webkit: Update to WebKit svn r44552
	#437: ltp-testsuite: Bump version to 20090630
	#451: Upgrade from unmaintained dosfstools-2.11 to dosfstools-3.0.3
	#467: DirectFB 1.4.1
	#473: memstat_0.5.tar.gz has install with -D and that fails "make"
	#491: libxml2: Bump version to 0.7.3
	#495: Bump bind package to 9.5.1-P3 (security)
	#497: OpenSSL RSA key generation hangs on x86_64
	#509: Bump sqlite package to 3.6.16
	#523: pciutils broken with external toolchain
	#533: Update gamin to 0.1.10 to fix compilation

2009.05, Released June 1st, 2009:

	Fixes for dropbear & diffutils, bump linux-advanced 2.6.29.x
	version and marked ubifsroot as broken.

2009.05-rc3, Released May 27th, 2009:

	Fixes for toolchain (gcc arm pr37436), stable kernel versions,
	busybox, curl, libusb, readline, python and strace.

	Issues resolved (http://bugs.uclibc.org):

	#345: libcurl package needs a urandom fix

2009.05-rc2, Released May 19th, 2009:

	Fixes for toolchain (gcc w/softfloat on ppc, 3.4.6 buildfix
	for newer hosts), stable kernel versions, busybox, cups,
	dmraid, docker, mesa3d, rsync and updated defconfigs.

	xserver marked as broken on AVR32 and atngw100-expanded
	config removed.

	Issues resolved (http://bugs.uclibc.org):

	#167: metacity does not build
	#295: gamin installs python support even if python is disabled
	#323: gen_matypes fails to execute during build of Mesa when us...

2009.05-rc1, Released May 5th, 2009:

	Fixes all over the tree, further conversion of packages to
	Makefile.autotools.in and we now build host versions of
	packages where needed for build time dependencies instead of
	relying on the correct versions being available on the build
	host. Ancient toolchain / busybox versions have furthermore
	been removed as announced in the 2009.02 release notes.

	New packages: flac, gob2, lzop, taglib, wpa_supplicant

	Updated packages: avahi, bind, binutils, busybox, dbus, dbus-glib,
	directfb, dnsmasq, freetype, gcc, gmp, gstreamer, iptables, kernel
	headers, kexec, libglib2, libpng, libsndfile, lua, mpfr, ntfs-3g,
	openssl, php, qtopia4, rsync, samba, sqlite, tar, uboot, uclibc,
	util-linux, xorg7, xerces

	Issues resolved (http://bugs.uclibc.org):

	#5,#77,#141,#143: Convert php package to Makefile.autotools.in
         and a ton of other improvements
	#19: page.h missing by util-linux
	#37: update libglib2 to version 2.18.4
	#61: tslib puts staging_dir into pkgconfig file
	#69: tar refuses to build
	#71,#175: ./wchar.h:41:12: error: empty filename in #include
	#73: Bump openssl package to the latest version
	#81: New package wpa_supplicant
	#99: new package: flac
	#101: update gstreamer packages
	#105,#313: menuconfig segfaults on tinyx if wchar is not
         selected
	#107: convert libvorbis to Makefile.autotools.in
	#109: Make pppd package avoid bsd err
	#111: binutils 2.17 fails to build when texinfo >= 4.10
	#133: Modify ncurses5-config to get correct include path
	#137: Bump php to version 5.2.9
	#139: Bump sqlite to 3.6.11 and convert to
         Makefile.autotools.in
	#145: Bump bind package to 9.5.1-P1 (security)
	#147: buildroot toolchain fails to build w/binutils-2.19.1
	#151: openssl package trivial fixes
	#161: vim fails on patching with errors in configure.patch
	#169: blackbox-0.70.1 does not build
	#177: xdriver_xf86-input-keyboard does not build
	#179: Upgrade dropbear to Makefile.autotools.in
	#181: Update to Xorg 7.4
	#187: ntfs-3g: could not build cross
	#191: alsa-lib ARM binaries always built with EABI
	#213: Bump wpa_supplicant package to version 0.6.9
	#217: Bump openssl package to 0.9.8k (security)
	#219: Toolchain build fails on m4
	#225: m4 macros are out of place
	#233: make ipv6 optional in iptables
	#237: ncftp: convert to Makefile.autotools.in
	#239: ntfs-3g: convert to Makefile.autotools.in
	#245: lzop: new package
	#271: Bump bind package to 9.5.1-P2 (security)
	#277: Bump sqlite package to 3.6.16
	#279: update libglib2 to version 2.20.1
	#281: update DirectFB to version 1.2.8
	#283: add taglib
	#285: compilation of samba fails if IPV6 support is missing
	#293: update samba to version 3.3.3
	#299: add shared-mime-info package
	#307: make openssl package respect build flags
