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.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
