2020.11-rc1, released November 4th, 2020

	Fixes all over the tree and new features.

	Architectures: Support for IBM s390x

	Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC
	32. Binutils 2.35.1 added, now defaulting to 2.34. ARC
	2020.09-release toolchain. GCC 7.x dropped. RISC-V support for
	uclibc-ng. Support for Bootlin external toolchains.

	SELinux support improvements: File security contexts are now
	set when the file systems are created, so there is no need to
	run restorecon on first boot / read only rootfs is supported.
	An optimized / stripped refpolicy SELinux policy is now
	used. Packages can enable additional refpolicy modules using
	<pkg>_SELINUX_MODULES.

	support/scripts/cve-checker: Utility script to check for known
	CVEs in just the packages enabled in a Buildroot configuration
	rather than all packages, by passing the output of 'make
	show-info' to it.

	Go: Modules handling. The module name must be specified using
	<pkg>_GOMOD.

	BR2_EXTERNAL: Support for defining skeleton and init system
	packages in external trees.

	meson: Correct SDK cross-compilation.conf file when
	per-package builds were used to build SDK.

	systemd: Use /run rather than /var/run for PID files in units.

	Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run
	after all finalization hooks (including pre-rootfs) to ensure
	they can override any late configuration done by packages.

	support/script/pycompile: Rework logic to ensure .pyc files
	contain absolute target paths, fixing code inspection at
	runtime when executed with cwd != '/'.

	support/scripts/setlocalversion: Correct Mercurial output to
	match behaviour with Git.

	support/scripts/apply-patches.sh: Use patch
	--no-backup-if-mismatch, so we no longer blindly have to
	remove *.orig files after patching, fixing issues with
	packages containing such files.

	New defconfigs: Acer chromebook elm, Friendlyarm nanopc-t4 and
	nanopi-m4, Hardkernel odroid-c2, Kontron SMARC-sAL28, NXP
	imx8mqevk, Orangepi RK3399 and zero+, PCengines APU2, Pine64
	rockpro64, QEMU s390x, Raxda rockpi-n8,

	New packages: altera-stapl, asn1c, babeltrace2, cukinia,
	easyframes, environment-setup, frr, graphicsmagick, htpdate,
	ipcalc, libbacktrace, libblockdev, libbytesize, librelp,
	libuev, makedumpfile, meson-tools, mg, mrp, multipath-tools,
	netcalc, odroidc2-firmware, php-xdebug, python-aiofiles,
	python-ansicolors, python-boto3, python-botocore,
	python-bsdiff4, python-crayons, python-iniconfig,
	python-intelhex, python-ipdb, python-jmespath,
	python-m2crypto, python-opcua-asyncio, python-packaging,
	python-piexif, python-pluggy, python-pytest,
	python-s3transfer, python-xmodem, qprint, qt5lottie,
	qt5remoteobjects, re2, redir, s390-tools, sentry-cli,
	sentry-native, timescaledb, tinyhttpd, uhd, uredir, watchdog,
	wayland-utils, weston-imx

	Removed packages: amd-catalyst, bellagio, gqview, libcroco,
	nvidia-tegra23, opencv

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

	#11811: lsblk (util-linux) should depend on libudev if available
	#11931: Bugs in support/scripts/apply-patches.sh
	#12301: systemd-journal-gatewayd: config options broken
	#12911: usb_modeswitch installation race condition
	#13236: Can't compile linux 5.4.8 (with gcc 10 on host)
	#13286: The system hangs in vmware workstation on the line..

2020.08.1, released October 12th, 2020

	Important / security related fixes.

	Fixes for various compilation issues with GCC 10.x.

	meson: Correct SDK cross-compilation.conf file when
	per-package builds were used to build SDK.

	systemd: Use /run rather than /var/run for PID files in units.

	Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32.

	Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run
	after all finalization hooks (including pre-rootfs) to ensure
	they can override any late configuration done by packages.

	support/script/pycompile: Rework logic to ensure .pyc files
	contain absolute target paths, fixing code inspection at
	runtime when executed with cwd != '/'.

	support/scripts/setlocalversion: Correct Mercurial output to
	match behaviour with Git.

	support/scripts/apply-patches.sh: Use patch
	--no-backup-if-mismatch, so we no longer blindly have to
	remove *.orig files after patching, fixing issues with
	packages containing such files.

	fs/jffs2: Now correctly handles xattrs

	Updated/fixed packages: acpica, afboot-stm32, alsa-utils,
	apparmor, bandwidthd, barebox, bash, bison, brotli,
	cifs-utils, cups, dhcpcd, dhcpdump, docker-cli, docker-engine,
	ecryptfs-utils, efl, fail2ban, fbterm, ffmpeg, fontconfig,
	freetype, gcc, gdb, ghostscript, gnupg2, gnutls, go, gqview,
	gst1-plugins-base, gst1-plugins-ugly, ipmitool, jbig2dec,
	kexec, lcdproc, libcamera, libhtp, libnetconf2, libraw,
	libssh, libxml2, libxml-parser-perl, libzip, linux-headers,
	live555, localedef, ltp-testsuite, lua, matchbox, memcached,
	memtester, mesa3d, meson, minidlna, mongodb, mongrel2, motion,
	mraa, mtd, musepack, neardal, netatalk, netperf, netsniff-ng,
	nginx, nodejs, nss-pam-ldapd, open-plc-utils, openswan,
	opentyrian, openvmtools, php, postgresql, python,
	python-aenum, python-cycler, python-engineio, python-fire,
	python-pymodbus, python-scapy, python-semver,
	python-sentry-sdk, python-socketio, python-texttable,
	python-tinyrpc, python-txtorcon, python3, qt5base, quagga,
	read-edid, redis, rsh-redone, runc, samba4, socketcand,
	strace, supertux, suricata, systemd, ti-utils, trinity,
	uclibc, usb_modeswitch, vlc, vsftpd, wampcc,
	wayland-protocols, wireguard-linux-compat, wireshark, wlroots,
	wolfssl, w_scan, xerces, xfsprogs, xdriver-xf86-video-ati,
	xserver_xorg-server, ympd, zeromq, zlib-ng, zstd

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

	#12911: usb_modeswitch installation race condition
	#13236: Can't compile linux 5.4.8 (with gcc 10 on host)

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.3, released October 12th, 2020

	Important / security related fixes.

	meson: Correct SDK cross-compilation.conf file when
	per-package builds were used to build SDK.

	systemd: Use /run rather than /var/run for PID files in units.

	Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32.

	Fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) are now run
	after all finalization hooks (including pre-rootfs) to ensure
	they can override any late configuration done by packages.

	support/script/pycompile: Rework logic to ensure .pyc files
	contain absolute target paths, fixing code inspection at
	runtime when executed with cwd != '/'.

	support/scripts/setlocalversion: Correct Mercurial output to
	match behaviour with Git.

	support/scripts/apply-patches.sh: Use patch
	--no-backup-if-mismatch, so we no longer blindly have to
	remove *.orig files after patching, fixing issues with
	packages containing such files.

	Updated/fixed packages: alsa-utils, apparmor, avahi,
	bandwidthd, barebox, bash, bison, brotli, busybox, cifs-utils,
	cryptsetup, cups, dhcpcd, dhcpdump, docker-cli, docker-engine,
	ecryptfs-utils, efl, fail2ban, freetype, gcc, gdb,
	ghostscript, gnutls, go, graphite2, gst1-plugins-base,
	gst1-plugins-ugly, imagemagick, ipmitool, jbig2dec, libhtp,
	libraw, libssh, libxml2, libxml-parser-perl, linux-headers,
	localedef, lua, mbedtls, memcached, mesa3d, meson, minidlna,
	mongodb, nginx, nodejs, nss-pam-ldapd, openvmtools,
	paho-mqtt-c, php, postgresql, python, python-aenum,
	python-django, python-engineio, python-fire, python-pymodbus,
	python-scapy, python-semver, python-sentry-sdk,
	python-socketio, python-texttable, python-tinyrpc,
	python-txtorcon, python3, qt5base, rsh-redone, runc, samba4,
	strace, supertux, suricata, systemd, uclibc, usb_modeswitch,
	vlc, vsftpd, wayland-protocols, wireguard-linux-compat,
	wireshark, wlroots, wolfssl, xserver_xorg-server, ympd,
	zeromq, zstd

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

	#12911: usb_modeswitch installation race condition
	#13251: cryptsetup does not work on branch 2020.02 following..

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.7, released October 12th, 2020

	Important / security related fixes.

	meson: Correct SDK cross-compilation.conf file when
	per-package builds were used to build SDK.

	systemd: Use /run rather than /var/run for PID files in units.

	Toolchain: use Secure-PLT rather than BSS-PLT for PowerPC 32.

	support/script/pycompile: Rework logic to ensure .pyc files
	contain absolute target paths, fixing code inspection at
	runtime when executed with cwd != '/'.

	support/scripts/setlocalversion: Correct Mercurial output to
	match behaviour with Git.

	support/scripts/apply-patches.sh: Use patch
	--no-backup-if-mismatch, so we no longer blindly have to
	remove *.orig files after patching, fixing issues with
	packages containing such files.

	Updated/fixed packages: bandwidthd, barebox, bash, bison,
	brotli, cifs-utils, cryptsetup, dhcpcd, dhcpdump, docker-cli,
	docker-engine, ecryptfs-utils, efl, fail2ban, freetype, gcc,
	gdb, ghostscript, gnutls, go, gst1-plugins-base,
	gst1-plugins-ugly, ipmitool, libhtp, libraw, libssh, libxml2,
	libxml-parser-perl, localedef, lua, memcached, mesa3d, meson,
	minidlna, nginx, nodejs, nss-pam-ldapd, openvmtools, php,
	postgresql, python, python-aenum, python-autobahn,
	python-engineio, python-fire, python-pymodbus, python-scapy,
	python-semver, python-sentry-sdk, python-socketio,
	python-texttable, python-tinyrpc, python-txtorcon, python3,
	qt5base, runc, samba4, strace, supertux, suricata, systemd,
	vlc, wayland-protocols, wireguard-linux-compat, wireshark,
	xserver_xorg-server, zeromq, zstd

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

	#12911: usb_modeswitch installation race condition
	#13251: cryptsetup does not work on branch 2020.02 following..

2020.02.6, released September 5th, 2020

	Important / security related fixes.

	Fix a 2020.02.5 build regression in busybox when systemd (and
	not less) are enabled because of missing infrastructure.

	Updated/fixed packages: alsa-utils, avahi, busybox, cups,
	docker-cli, graphite2, imagemagick, libeXosip2, mbedtls,
	nvidia-driver, paho-mqtt-c, python-django, systemd, uclibc,
	usb_modeswitch, wolfssl

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

	#12911: usb_modeswitch installation race condition

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
