2024.05.2, released August 14th, 2024

	Important / security related fixes.

	Various minor improvements to utils/check-package

	Defconfigs: Add download hashes for chromebook-elm,
	chromebook-snow and stm32mp157a_dk1

	Updated/fixed packages: android-tools, bcc, bitcoin, boost,
	btrfs-progs, c-ares, cdrkit, check, containerd, directfb,
	dump1090, ed, exim, fail2ban, frotz, fwts, gcc, gdb, go, gpm,
	kexec, libarchive, libgeos, libressl, llvm, mupdf, ncftp,
	nodejs, ntpsec, octave, openssh, pppd, python-mupdf,
	python-ruamel-yaml, qt5webkit, rawk-hawkbit-updater,
	rtl8188eu, snappy, squid, sunxi-tools, syslinux, systemd,
	tcf-agent, tftpd, ubus, util-linux, uvw, webkitgtk, wolfssl,
	wpewebkit, x265, xlib_libxshmfence, xvisor

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

	#15231: gcc --help -v doesn't work correctly with gcc>=10 and..

2024.05.1, released July 13th, 2024

	Important / security related fixes.

	Infrastructure: Ensure support/scripts/apply-patches can be
	used outside Buildroot (regression in 2024.05).

	Defconfig: Pine64 rockpro64: Build ethernet driver in kernel
	rather than as module. QEMU sh4: Change to initramfs to
	workaround regression in QEMU. Visionfive2: Correct kernel
	headers version

	Updated/fixed packages: apache, avro-c, daq, dav1d,
	fluent-bit, ghostscript, glibc, libmad, libopenssl,
	linux-firmware, mesa3d, network-manager, ntp, nut, octave,
	openssh, openvpn, php, raspberrypi-usbboot, redis, sentry-cli,
	tor, uuu, vlc, xmrig, znc

2024.05, released June 12th, 2024

	Various fixes.

	Infrastructure: Ensure a custom tar program specified with
	make TAR=/path/to/custom/tar is used everwhere.

	Defconfigs: Fix build issues and runtime warnings for
	Beaglebone qt5, Qemu ppc64/le pseries, TI am62x/am64x.

	Add hashes for Beaglebone qt5, imx8mn bsh sm s2 / pro,
	stm32f429 disco XIP, stm32f769 disco sd.

	Updated/fixed packages: bc, collectd, composer, cvs,
	docker-compose, flutter-engine, git, liblockfile, libzenoh-c,
	lightning, nginx, p11-kit, python-lxml, python3, qt6base,
	rrdtool, sofia-sip, syslog-ng, systemd, uclibc, unixodbc

2024.05-rc2, released June 4th, 2024

	Fixes all over the tree.

	Download:
	- Dropped the (noop) --passive-ftp option from default wget
	  options for compatibility with wget2

	- Fixed an issue with the generated archives (for
	  git/svn/cargo/go) when multiple packages share an archive
	  (E.G. linux vs linux-headers).

	Defconfigs: Fix build issue with binutils 2.41+ for
	Acmesystems Aria / Arietta, add download hashes for a number
	of defconfigs. Fix FIT external position for i.MX8 boards

	Updated/fixed packages: dnsmasq, docker-compose, doom-wad,
	ebtables, esp-hosted, file, freeradius-client,
	freeradius-server, go, kmod, libmnl, libnetfilter_acct,
	libnetfilter_log, linux, luarocks, lynx, makedumpfile,
	micropython, mtd, ncftp, newlib-bare-metal, nfacct, ntp,
	octave, proftpd, qt5base, systemd, tpm2-tss, uboot-tools,
	ulogd, vala, zip

	Removed packages: at91bootstrap, at91dataflashboot,
	on2-8170-libs, on2-8170-modules

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

	#15973: imx8m bootloader image generation broken since update..
	#16093: kmod and gcc-14 build error

2024.05-rc1, released May 30th, 2024

	Fixes all over the tree and new features.

        Toolchains:
        - Binutils 2.24 added, 2.39 dropped, 2.41 is now default
        - GCC 14.x added, 11.x dropped, 13.x is now default
        - uClibc-ng bumped to 1.0.48
        - Musl bumped to 1.2.5, adds riscv32 support
        - Glibc bumped to 2.39, libcrypt no longer available (see
          libxcrypt package)
        - External glibc based toolchains no longer install libcrypt
          files (except for libcrypt.so.1) to not conflict with the
          libxcrypt package
        - Bootlin external toolchains updated to 2024.02
        - Support for external toolchains using GCC version 14
        - Old external Codesourcery ARM/AARCH64 toolchains removed
        - Old external Codesourcery niosII toolchain removed
        - Old external Codescape mips toolchains removed
        - Support for Linux 6.7 / 6.8 kernel headers added

	Architecture:
        - Support for riscv32 noMMU added
        - Internal toolchains for SPARC (re-)added
        - Support for the Motorola m68k specific shared library
	  support for the FLAT binary format dropped, as support has
	  been removed from the Linux kernel as of v5.19.

        Download (notice, Buildroot generated tarballs have changed):
        - Tar 1.35 is now required (will be automatically built if not
          available on the host). Notice that tar 1.35 changes the way
          devmajor/minor is stored, so tarballs created with 1.35 are
          not binary identical to <1.35
        - The tarball creation logic has now been extended to
          correctly handle when ACLs are set on the download
          directory.
        - An issue with conflicting git tags between (different
          versions of) a package has been fixes
        - Git attributes are now handled correctly

        Security:
        - The /dev/shm entry in the default /etc/fstab used for
          busybox and sysv init systems was missing the sticky bit,
          allowing users to delete and replace other users files.

        Infrastructure:
        - kconfig/menuconfig can now be built with GCC 14.x
        - Git is now used to to fetch CVE data from the FKIE
	  repository to work around an issue with missing meta files
	  in the releases.
        - utils/check-package now also checks if defconfigs use
          BR2_DOWNLOAD_FORCE_CHECK_HASHES to ensure custom
          bootloader/kernels are correctly downloaded.

        New defconfigs: Beagleboneai64, Orangepi Zero2w, Pine64 star64

	New packages: basu, bats-assert, bats-file, bats-support, bcc,
	bpftrace, export-subst, flutter-adaptive-scaffold-example,
	flutter-animations-example, flutter-dynamic-layouts-example,
	flutter-go-router-example, flutter-image-example,
	flutter-markdown-example, flutter-packages,
	flutter-rfw-local-example, go-bootstrap-stage3, igt-gpu-tools,
	libgpiod2, libxmlb, libzenoh-c, lmdb, lua-lightningmdb,
	lua-lsdbus, mokutil, python-email-validator,
	python-expandvars, python-fastui, python-hid, python-jc,
	python-mpmath, python-poetry-core, python-sympy,
	python-yamllint, qbee-agent, starfive-spltool, ustreamer

	Removed packages: flutter-gallery, omxplayer, ti-k3-image-gen

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

        #14416: Mesa3D missing DRI3 support for various Gallium drivers
        #15766: BR2_PACKAGE_WESTON_XWAYLAND -- 12.0.1 -- fails to build..
        #15997: Build Squid with GCC12.3 in Buildroot 2024.02 will fail
        #16009: 'select' does not work with 'choice'
        #16036: android-tools version is too old
        #16075: Cannot use linux kernel extensions from external tree..

2024.02.3, released June 10th, 2024

	Important / security related fixes.

	Misc:
	- Fixed a number of compilation issues for hosts using GCC
          14.x, including for kconfig.

	Download:
	- Drop redundant --passive-ftp from default wget options and
	  migrate a number of packages using FTP upstreams to HTTP(S)
	  for compatibility with wget2 which does not have FTP support

	- Ensure downloads are correctly shared for host packages that
	  try to do so using <pkg>_DL_SUBDIR and ensure the correct
	  toplevel directory name is used in generated tarballs when
	  downloads are shared.

	Arch: Enable SSE2 support for x86 Pentium M variant.

	Defconfigs: Orangepi PC/R1, Raspberrypi zero2w, Sipeed
	licheepi nano, Wandboard: Fix compilation issues. PC x86-64
	bios/efi: add wireless regdb to fix kernel warning during
	boot, iMX.8 boards: Adjust FIT external data position to match
	imx-mkimage changes, fixing boot issues.

	Updated/fixed packages: am33x-cm, apcupsd,
	arm-trusted-firmware, binutils-bare-metal, bpftool, catch2,
	ccache, cjson, clamav, cog, coreutils, cryptodev-linux,
	dhcpcd, dmraid, dnsmasq, docker-cli, docker-compose,
	docker-engine, doom-wad, duma, elf2flt, ebtables, elfutils,
	evemu, file, fluidsynth, freeradius-client, freeradius-server,
	freerdp, fwts, gcc, gcc-bare-metal, git, gnuplot, go,
	gr-osmosdr, gst1-plugins-good, hidapi, imagemagick,
	intel-gmmlib, ivi-homescreen, janus-gateway, kexec, kmod,
	kodi, libarchive, libdrm, libedit, libffi, libglib2, libhtp,
	libjwt, libkrb5, libmanette, libmdbx, libmnl,
	libnetfilter_acct, libnetfilter_log, libnpth, libopenssl,
	libpng, libuhttpd, liburiparser, libutempter, libvncserver,
	libwpe, lightning, linux-firmware, linux-pam, lua-cffi,
	luajit, lvm2, lynx, mariadb, mesa3d, micropython, minisign,
	musl, mutt, ncftp, network-manager, newlib-bare-metal, nfacct,
	nfs-utils, octave, openjpeg, openocd, oprofile,
	perl-dbd-mysql, php, postgresql, pppd, privoxy, procps-ng,
	proftpd, proj, putty, python-ml-dtypes, python-pillow,
	python-rds-py, qemu, qt5base, redis-plus-plus, rtl8189fs,
	ruby, samba4, shadow, smcroute, speech, squid, sscep,
	suricata, swupdate, systemd, ti-sgx-km, tinycbor, tinyproxy,
	tor, tpm2-tss, ttyd, uboot-tools, ulogd, vala, weston,
	wpewebkit, x11vnc, zbar, zeromq, zfs, zip, zxing-cpp

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

        #15766: BR2_PACKAGE_WESTON_XWAYLAND -- 12.0.1 -- fails to build..
	#15973: imx8m bootloader image generation broken since update..
        #16075: Cannot use linux kernel extensions from external tree..
	#16093: kmod and gcc-14 build error

2024.02.2, released May 7th, 2024

	Important / security related fixes.

        Security: The /dev/shm entry in the default /etc/fstab used
        for busybox and sysv init systems was missing the sticky bit,
        allowing users to delete and replace other users files.

        Defconfigs: Mangopi mq1rdw1: Lock kernel headers to 6.6.x.

	Updated/fixed packages: apache, botan,
	brcmfmac_sdio-firmware-rpi, clamav, cmake, containerd,
	crucible, dmenu-wayland, dmraid, docker-cli, docker-engine,
	domoticz, fmc, freeipmi, gdal, gdb, giflib, gnupg2, go,
	google-breakpad, googlefontdirectory, imx-gpu-viv, inih,
	libassuan, libblockdev, libcurl, libdrm, libgpg-error,
	libksba, libnpth, libressl, libtracefs, lxc, mbedtls, mesa3d,
	oatpp, opensc, oprofile, perl-net-ssleay, petitboot,
	php-xdebug, psplash, python-pypng, python-segno,
	python-service-identity, python3, skeleton-init-sysv, systemd,
	tcf-agent, tiff, uuu, wolfssl, xmrig, zic

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

        #14416: Mesa3D missing DRI3 support for various Gallium drivers
        #16009: 'select' does not work with 'choice'
        #16036: android-tools version is too old

2024.02.1, released March 26th, 2024

	Important / security related fixes.

	Toolchain: Dropped old Codesourcery ARM / AARCH64 and
	Codescape MIPS external toolchains as they use old Glibc
	versions not compatible with 64-bit time_t

	Defconfigs: Starfive visionfive2: Use correct genimage
	configuration. TI am62x_sk / am64_sk: Use correct optee-os
	platform setting and use a fixed ti-k3-r5-loader version.

	Infrastructure: Use git to fetch CVE data from the FKIE
	repository to work around an issue with missing meta files in
	the releases.

	Updated/fixed packages: axel, bash, bitcoin, botan, busybox,
	containerd, cryptsetup, cvs, docker-compose, docker-engine,
	ell, expat, giflib, gmp, go, harfbuzz, intel-gmmlib,
	intel-mediadriver, iwd, kodi, kodi-pvr-hts, libcgroup, libdrm,
	libgit2, libkrb5, libnfs, libunwind, libvpl,
	libtorrent-rasterbar, libxml2, linux, mariadb, mesa3d,
	mmc-utils, msmtp, multipath-tools, neon, onevpl-intel-gpu,
	openssh, openvpn, osm2pgsql, owfs, php, poco, policycoreutils,
	postgis, privoxy, pulseaudio, pure-ftpd, putty,
	python-configshell-fb, python-rtslib-fb, rauc, restorecond,
	spice, squid, targetcli-fb, tzdata, util-linux, vdr, xmrig,
	xvisor, zic

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

	#15997: Build Squid with GCC12.3 in Buildroot 2024.02 will fail

2024.02, released March 5th, 2024

	Various fixes.

	Updated/fixed packages: botan, conmon, dash, efivar, expat,
	fluent-bit, gcc, gst1-vaapi, libcoap, libselinux, liburing,
	libva, libxml2, ltp-testsuite, luvi, newlib-bare-metal,
	nginx-naxsi, octave, openblas, openvmtools, parted, poco,
	powertop, python-aiohttp, python-cheroot, python-django,
	python-grpcio, rauc, rauc-hawkbit-updater, rtl8822cs, rust,
	sdl2, shadow, spirv-tools, strace, strongswan, tar, tllist,
	vim

	Removed packages: mysql (virtual), oracle-mysql,
	python-setuptools-scm-git-archive

2024.02-rc2, released March 1st, 2024

	Fixes all over the tree.

	Infrastructure: Various fixes for pkg-stats after moving to
	the FKIE CVE feed and support for older python/ijson versions.

	Updated/fixed packages: ccache, dracut, erlang, freetype,
	libheif, libpthsem, micropython, newlib-bare-metal, openssh,
	poco, python3, redis, rhash, shim, squid, syslinux

2024.02-rc1, released February 25th, 2024

	Fixes all over the tree and new features.

	Toolchain:

	- GDB: Add version 14.1, default to 13.2.

	- uClibc-ng updated to 1.0.45

	- Bootlin external toolchains updated to 2023.11-1, moving the
          stable toolchains to GCC 12.3 / binutils 2.40 / GDB 13.2 /
          glibc 2.38 / musl 1.2.4 / uClibc-ng 1.0.45

	- Add support for building a bare metal toolchain suitable for
	  building firmware for certain (co-)processors, possibly
	  using a different CPU architecture than the main Buildroot
	  configuration.

	Default optimization level changed from optimize for size
        (-Os) to optimize for speed (-O2).

	Support: Use the Fraunhofer FKIE JSON files for CVE matching
	now that NVD is about to deprecate its feeds.

	New defconfigs: AMD Zynqmp kria kd240 and kr260, zcu104, Avnet
	RZBoard V2L, Mangopi MQ1RDW2, NXP i.MX 93 11x11 EVK, QEMU
	Riscv64 virt-efi, TI AM574x Industrial Development Kit

	Removed defconfigs: Zynq qmtech

	New packages: binutils-bare-metal, dmenu-wayland, fcft, foot,
	firmware-ele-imx, ivi-homescreen, libjwt, libtraceevent,
	libtracefs, libutempter, lua-ansicolors, lua-argparse,
	lua-conciseserialization, lua-ubjson, minisign,
	newlib-bare-metal, python-aiosqlite, python-annotated-types,
	python-anyio, python-asyncssh, python-bitarray,
	python-cachetools, python-contourpy, python-decouple,
	python-fastapi-sessions, python-fastapi,
	python-google-api-core, python-google-auth,
	python-googleapis-common-protos, python-grpc-requests,
	python-grpcio-reflection, python-grpcio, python-httpcore,
	python-httpx, python-matplotlib-inline, python-ml-dtypes,
	python-multipart, python-pydantic-core, python-pypng,
	python-starlette, python-tcolorpy, python-trafaret,
	python-urwid-readline, python-uvicorn, rlwrap, tllist

	Removed packages: davinci-bootcount (renamed to
	uboot-bootcount), flickcurl, gmpc, libmpd, micropython-lib,
	python-crossbar, python-pygame, tinymembench

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

	#10096: SH4 toolchain does not build Linux kernel magicpanelr2_..
	#15889: please update meson
	#15898: Unable to boot syslinux.efi produced by buildroot (EFI 64-..
	#15910: USB keyboard is not working by default "raspberrypicm4io_..
	#15952: Grub fails to load large rootfs files

2023.11.3, released March 26th, 2024

	Important / security related fixes.

	Defconfigs: Starfive visionfive2: Use correct genimage
	configuration.

	Updated/fixed packages: bind, bitcoin, botan, c-ares, clamav,
	conmon, containerd, cvs, dash, dnsmasq, docker-engine, dracut,
	ell, expat, fluent-bit, freetype, gcc, ghostscript, gmp,
	gnupg2, go, google-breakpad, gst1-python, gst1-vaapi, iwd,
	libcoap, libcurl, libdnet, libgit2, libheif, libkrb5,
	libmodsecurity, libnfs, libopenssl, libselinux, libunwind,
	liburing, libuv, libva, libxml2, ltris, lua-http, luvi,
	mmc-utils, nginx-naxsi, nodejs, octave, openssh, openvmtools,
	parted, petitboot, php, poco, postgresql, powertop, privoxy,
	pure-ftpd, putty, python-cheroot, python-configshell-fb,
	python-django, python-rtslib-fb, python3,
	rauc-hawkbit-updater, redis, redis-plus-plus, rsync,
	s390-tools, sdl2, shim, spice, spirv-tools, squid, strace,
	strongswan, sudo, systemd, targetcli-fb, uhd, unbound,
	util-linux, v4l2loopback, vim, webkitgtk, wpewebkit, xvisor,
	zlib-ng

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

	#15997: Build Squid with GCC12.3 in Buildroot 2024.02 will fail

2023.11.2, released March 1st, 2024

	Important / security related fixes.

	Added CPE identifiers for a large number of packages.

	Updated/fixed packages: bayer2rgb-neon, brltty, c-ares, cog,
	containerd, cpio, crda, criu, darkhttpd, davinci-bootcount,
	dbus, depot-tools, dhcpcd, domoticz, environment-setup, expat,
	faad2, falcosecurity-libs, flex, flutter-engine,
	flutter-gallery, flutter-pi, flutter-sdk-bin,
	freeradius-server, freerdp, frr, gesftpserver, glibc, gnutls,
	go, gst1-devtools, gst1-libav, gst1-python, gst1-vaapi,
	gst-omx, gstreamer1, haproxy, hiredis, joe, json-c, leptonica,
	libcurl, libp11, libuwsc, libvips, libzenoh-pico,
	linux-firmware, linux-headers, localedef, lua-http, lvm2,
	lynx, mbedtls, micropython, minizip, mpfr, netatalk, ngrep,
	onevpl, opencv4, opencv4-contrib, openssh, opus, petitboot,
	php, python-aiohttp, python-bitarray, python-bitstring,
	python-esptool, python-gunicorn, python-hpack,
	python-html5lib, python-lmdb, python-mako, python-numpy,
	python-oauthlib, python-sqlparse, python-wheel, qt5base,
	qt6base, redis, runc, sdl2, sqlite, syslog-ng, sysstat,
	util-linux, vulkan-loader, webkitgtk, weston, wireless-regdb,
	wlroots, wpewebkit, xlib_libXpm, xterm, xwayland, yasm

	New packages: python-bitarray

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

	#10096: SH4 toolchain does not build Linux kernel magicpa..
	#15952: Grub fails to load large rootfs files

2023.11.1, released January 15th, 2024

	Important / security related fixes.

	Infrastructure:

	- Download: Revert a permission fixup step in the tarball
	  creation logic, which lead to a hash mismatch issue in two
	  cargo-vendored packages, ripgrep and sentry-cli.

	- Build: Pass GIT_DIR=. in the environment (through
	  HOST_MAKE_ENV/TARGET_MAKE_ENV) to the build steps to
	  workaround packages trying to detect if they are building in
	  a git checkout and getting confused when building in a sub
	  directory of a Buildroot git checkout.

	Defconfigs: Rock5b: Add download hashes for U-Boot and Linux

	Updated/fixed packages: apcupsd, arm-trusted-firmware, botan,
	cjson, criu, cryptodev-linux, cups, dahdi-linux, dahdi-tools,
	dbus, docker, dropbear, duktape, edk2, erlang, exim, faad2,
	freeswitch, gcc, gdal, gdb, giflib, glibc, gnuplot, gnutls,
	go, google-breakpad, gst-omx, gstd, gst1-devtools, gst1-libav,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi,
	gstreamer1, gstreamer1-editing-services, ipcalc, jq,
	json-for-modern-cpp, ksmbd-tools, libaio, libarchive,
	libcamera, libcamera-apps, libcap-ng, libcgroup, libcurl,
	libde265, libebml, libgtk3, libheif, libiec61850, libndns,
	libostree, libraw, libsigsegv, libssh, libssh2, libuev,
	libwebsockets, libzenoh-pico, liquid-dsp, lvm2, madplay,
	mesa3d, micropython, minizip, mp4v2, nushell,
	onevpl-intel-gpu, opensc, openssh, optee-client, orc, php,
	pipewire, postgis, postgresql, proftpd, putty, python-brotli,
	python-pysensors, python-sip, python-werkzeug, shim, squid,
	strongswan, sway, tinyssh, tor, transmission, tree, udev,
	uftp, valijson, wireshark, wlroots, wolfssl,
	xserver_xorg-server, xwayland,

2023.11, released December 4th, 2023

	Various fixes.

	Defconfigs: Toradex apalis i.mx6: Add download hashes for
	Linux and U-Boot.

	Updated/fixed packages: cog, freescale-imx, imagemagick,
	libde265, libmemcached, libpjsip, libusb-compat,
	libzenoh-pico, linux-tools, lttng-modules, mariadb, monit,
	openfpgaloader, perl, putty, python-numpy, rtty, speechd,
	wireshark, xenomai, xtables-addons, zfs

2023.11-rc2, released November 29th, 2023

	Fixes all over the tree.

	Defconfigs: Raspberry pi: Fix bluetooth autoprobing,
	rockpro64: Fix U-Boot build, bump rootfs size, vim3: Use
	device tree from Linux rather than from U-Boot.

	Updated/fixed packages: erlang, exfatprogs, flutter-engine,
	flutter-sdk-bin, gcc, gsl, intel-microcode, janet,
	kodi-pvr-hts, libgdiplus, libpam-tacplus, libxml2,
	libzenoh-pico, memcached, motion, netsnmp, nodejs, oatpp,
	openrc, opensc, perl, postgresql, python-msgpack, qemu,
	refpolicy, samba4, squid, vim, vlc, xwayland, zfs

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

	#15856: Using BR2_CONFIG= on a different file-system...

2023.11-rc1, released November 14th, 2023

	Fixes all over the tree and new features.

	Architecture: MIPS IV (re-)added. The mutually exclusive ABI
	selection dropped for PowerPC.

	Toolchain:

	- Support for GDB 13.2, make GDB 12.x the default

	- Glibc bumped to 2.38

	- Bootlin external toolchains updated to 2023.08, bringing
          support for Aarch64 BE with musl.

	- Motorola 68K w/MMU support added for glibc and musl.

	- License info added for GCC

	Infrastructure:

	- The CMake infrastructure now supports building packages with
          ninja instead of make (based on <pkg>_CMAKE_BACKEND).

	- The RPATH fixup done at the end of the build is now done in
          parallel (according to BR2_JLEVEL).

	- Packages downloaded from Subversion repos no longer
          retrieves svn:externals unless <pkg>_SVN_EXTERNALS is set to
          YES.

	- Packages where a free-form version/site can be specified
          (E.G. Linux, U-Boot, ..) can now have the corresponding
          tarballs of these custom downloads checked by the download
          infrastructure based on .hash files in the global patch
          directory. These hashes are optional unless
          BR2_DOWNLOAD_FORCE_CHECK_HASHES is enabled.

	  A utils/add-custom-hashes helper script has been added to
          assist in managing such hash files.

	- Various improvements to utils/docker-run to handle external
          (BR2_DL_DIR defined in environment) download directory,
          proxy configuration, SELinux and out of tree (O=) builds.

	New defconfigs: AMD Zynq ZC702, ASUS Tinker-s rk3288, ICnova
	A20-adb4006, Khadas vim3, Libre Computer ROC-RK3399-PC,
	Microchip PolarFire SoC Icicle Kit, NXP imxrt1050-evk, Pine64
	pinecube, Sipeed LicheePi Nano, Synopsys ARC700 nSIM, TI
	SK-AM62 and TI SK-AM64

	New packages: ti-k3-boot-firmware, ti-k3-image-gen,
	amlogic-boot-fip, criu, cutekeyboard, depot-tools, fft-eval,
	firewalld, flutter-engine, flutter-gallery, flutter-pi,
	flutter-sdk-bin, ledmon, libcanberra, libnvme, libsoup3,
	libspdm, libucontext, libzenoh-pico,
	microchip-hss-payload-generator, nodejs-bin, nushell,
	nvidia-persistenced, oatpp, onevpl-intel-gpu, onevpl,
	python-calver, python-distlib, python-jeepney,
	python-jsonschema-specifications, python-kmod,
	python-pysensors, python-referencing, python-segno,
	python-tftpy, python-trove-classifiers,
	python-types-python-dateutil, python-versioneer,
	qoriq-fm-ucode, qt6core5compat, rauc-hawkbit-updater,
	rust-bindgen, spirv-headers, spirv-tools, vulkan-loader,
	vulkan-tools

	Removed packages: google-material-design-icons, libtextstyle,
	python-pyxb

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

	#14366: Nodejs fails with "version `GLIBC_2.34' not found"..
	#14741: e2fsck is failing during cronjob build where fail...
	#15628: Missing dependencies in BR2_PACKAGE_PYTHON_MAKO
	#15733: xfsprogs outdated
	#15772: lz4 failed to compile with gcc 10.4.0
	#15778: strace comilation fails on Fedora39/gcc13
	#15787: atmel_sama5d3_xplained_mmc_defconfig: Missing...
	#15790: at91sam9x5ek_dev_defconfig: Missing...
	#15808: connman is not supported on musl
	#15814: C++ not supported by bootlin toolchain
	#15820: make linux-menuconfig does not modify correct .config..
	#15823: Installing nodejs modules with native extensions ...
	#15826: nodejs modules with native extensions fail to install
	#15835: Incompatibility between network-manager and libcurl 8.4

2023.08.4, released December 4th, 2023

	Important / security related fixes.

	Defconfigs: Raspberrypi: Fix DT overlay for autoproving of
	bluetooth driver, Toradex apalis i.mx6: Add download hashes
	for Linux and U-Boot.

	Updated/fixed packages: gcc, erlang, exfatprogs, gsl,
	imagemagick, intel-microcode, libde265, libmemcached,
	libpjsip, libxml2, mariadb, memcached, motion, netsnmp, perl,
	postgresql, putty, rtty, samba4, speechd, squid, vim, vlc,
	xenomai, xtables-addons, zfs

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

	#15856: Using BR2_CONFIG= on a different file-system...

2023.08.3, released November 14th, 2023

	Important / security related fixes.

	Per-package builds: Unbreak SDK relocation logic. Only drop
	the hard links for the final host / target directory, fixing a
	build time / size regression in 2023.08.2.

	Packages where a free-form version/site can be specified
	(E.G. Linux, U-Boot, ..) can now have the corresponding
	tarballs of these custom downloads checked by the download
	infrastructure based on .hash files in the global patch
	directory. These hashes are optional unless
	BR2_DOWNLOAD_FORCE_CHECK_HASHES is enabled.

	A utils/add-custom-hashes helper script has been added to
	assist in managing such hash files.

	Defconfigs: Avenger96: Downgrade to TF-A v2.5 to fix boot
	issue since 2023.08, stm32mp157a-dk1, stm32mp157c-dk2: Unbreak
	TF-A build, stm32mp157c-odessey: Use a fixed TF-A version for
	reproducibility

	Updated/fixed packages: apache, arm-trusted-firmware, aufs,
	aufs-util, azure-iot-sdk, casync, cjson, clamav, conmon,
	cups-filters, dhcpcd, docker-cli, docker-engine,
	freeradius-server, go, inadyn, ksmbd-tools, kvmtool,
	libgdiplus, libgeos, libmemcached, libmdbx, libopenssl,
	libosmium, libtommath, libupnp, libzlib, lightning, linux-pam,
	lxc, mender, minizip-zlib, mpd, mxsldr, nano, nettle,
	network-manager, nghttp2, nodejs-src, opencv4,
	opencv4-contrib, openjdk-bin, openvpn, opusfile, paho-mqtt-c,
	pango, perl-lwp-protocol-https, petitboot, php, pistache,
	python-django, python-pycryptodomex, python-urllib3,
	python-web2py, rabbitmq-c, redis, reproc,
	riscv64-elf-toolchain, sedutil, snort3, suricata, tar, tiff,
	tor, traceroute, vim, websocketpp, wireshark, wolfssl,
	xdg-dbus-proxy, xen, xlib_libX11, xlib_libXpm, zabbix, zchunk

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

	#14741: e2fsck is failing during cronjob build where fail...
	#15772: lz4 failed to compile with gcc 10.4.0
	#15787: atmel_sama5d3_xplained_mmc_defconfig: Missing...
	#15790: at91sam9x5ek_dev_defconfig: Missing...
	#15820: make linux-menuconfig does not modify correct .config..
	#15823: Installing nodejs modules with native extensions ...
	#15835: Incompatibility between network-manager and libcurl 8.4

2023.08.2, released October 15th, 2023

	Important / security related fixes.

	Defconfigs: Freescale ARM: Add ATF patch to fix build issue
	with binutils 2.39+.  QEMU Aarch64-virt: Enable ACPI support
	for EDK2. Visionfive2: Bump kernel to fix build issue with GCC
	13.

	Per-package builds: Do not use hard links for host / target
	dirs, fixing issues with package rebuilds or post-build
	scripts modifications.

	Infrastructure: Explicitly disable shuffle mode for Make >=
	4.4 where needed.

	Urandom-scripts: Move seedrng init script to S01 for earlier
	random number entrophy initialization.

	Updated/fixed packages: at91bootstrap, batman-adv, bind, cups,
	efl, enlightenment, exim, gcc, glibc, gnu-efi, go, gptfdisk,
	grub2, gst-omx, gst1-devtools, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rstp-server, gst1-rtsp-vaapi, gstreamer1,
	gstreamer1-editing-services, gtkmm3, libcue, libcurl,
	libfastjson, libhtp, libmodplug, librsvg, libvpx, libyang,
	linux-pam, linux-tools, mbedtls, mosquitto, mutt, neon,
	netsnmp, nmap, nodejs, olsr, openblas, opkg-utils, php, pound,
	powertop, python-mako, python3, rauc, rockchip-mali, samba4,
	sslh, stress-ng, suricata, syslog-ng, systemd, tar, unifdef,
	urandom-scripts, usbguard, webkitgtk, wilc-driver,
	wireless-regdb, wpewebkit

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

	#15628: Missing dependencies in BR2_PACKAGE_PYTHON_MAKO
	#15808: connman is not supported on musl
	#15814: C++ not supported by bootlin toolchain

2023.08.1, released September 27th, 2023

	Important / security related fixes.

	Updated/fixed packages: agentpp, asterisk, bind, binutils,
	conmon, cpio, docker-cli, docker-engine, e2fsprogs, erlang,
	esp-hosted, expect, fail2ban, fio, freerdp, fstrcmp, gcc, gdb,
	ghostscript, go, haproxy, hwloc, icu, irssi, libcoap, libcurl,
	libde265, libheif, libiec61850, libjxl, libopenssl, libpjsip,
	libqb, libraw, libssh, libuv, lldpd, mdadm, mutt, ne10,
	netatalk, nodejs, nut, openblas, opensc, openvpn, petitboot,
	php, pound, pppd, python-pytest, python3, qt5,
	rtl8812au-aircrack-ng, sngrep, stress-ng, strongswan, sysstat,
	tar, tcl, timescaledb, util-linux, vim, webkitgtk, webp,
	wireshark, xserver_xorg-server, xterm, zbar, zxing-cpp,
	zynaddsubfx

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

	#14366: Nodejs fails with "version `GLIBC_2.34' not found"..
	#15787: atmel_sama5d3_xplained_mmc_defconfig: Missing...
	#15790: at91sam9x5ek_dev_defconfig: Missing...

2023.08, released September 6th, 2023

	Various fixes.

	Defconfigs: BeagleV: Fix build issue with binutils >=
	2.38. Hifive unleashed: U-Boot needs OpenSSL

	Updated/fixed packages: dt, grub2, heirloom-mailx, libgpgme,
	libtommath, libxcrypt, log4cxx, mesa3d-demos, openjdk,
	openjdk-bin, pam, pcm-tools, pixman, poppler, python-django,
	python-ipython, python-pip, python-tornado, zeromq

	New packages: libdecor

2023.08-rc3, released August 29th, 2023

	Fixes all over the tree.

	Defconfigs: Avenger96: Bump ATF to 2.9 to fix build warnings
	with binutils >= 2.39. CI20: Bump kernel to 5.4.254 to fix
	build issue with GCC 12. Hifive unleashed: Add missing
	pylibfdt dependency / bump kernel to 5.10.109 to fix build
	issue GCC 12. PC x86-64 bios/elf: Add missing libelf
	dependency. Sipeed maix sdcard: Fix build issues with
	binutils >= 2.38

	Updated/fixed packages: check, clamav, cups, esp-hosted,
	f2fs-tools, freeswitch, gcc, gmp, libks, libmodsecurity,
	mosquitto, mpg123, network-manager, php, postgresql, python3,
	ramspeed, rtl8189fs, rust, rust-bin, samba4, screen, zlib-ng

2023.08-rc2, released August 20th, 2023

	Fixes all over the tree.

	Toolchains: Only show external toolchains based on a GCC
	version supporting the selected architecture
	variant. Correctly mark Codescape MIPS external toolchains as
	not providing a gdbserver.

	Defconfigs: Andes ae350_45: Drop custom U-Boot march setting,
	breaking builds with GCC 12. Nitrogen*: Bump
	U-Boot/Linux. Nitrogen8*: Use ATF 2.8, fixing array bounds
	errors. QEMU m68k: Add Linux patch to fix build issue with
	binutils >= 2.41. Raspberrypi*: Enable console on HDMI when
	using systemd as well.

	Updated/fixed packages: at91dataflashboot, aubio, berkeleydb,
	bwm-ng, ccache, check, chocolate-doom, compiler-rt, composer,
	conmon, connman, dav1d, diffutils, dracut, e2fsprogs, elf2flt,
	esp-hosted, flite, gcc, gdb, go-bootstrap-stage2,
	intel-microcode, kodi-imagedecoder-heif, less, libcoap,
	libedit, libglib2, libksba, liblo, libserial, log4cxx, lsof,
	luvi, meson, mosquitto, mpd, mpv, mv-ddr-marvell, nftables,
	ntpsec, openssh, optee-test, perftest, python-botocore,
	python-docker, python-pylibfdt, python3, screenfetch,
	sentry-cli, sngrep, stellarium, trinity, tvheadend, uboot,
	uclibc, util-linux, xfsprogs, yajl

	New packages: nftables-python, xlib_libXpresent

	Removed packages: lpc32xxcdl

2023.08-rc1, released August 5, 2023

	Numerous package updates and fixes, additional runtime tests.

	Toolchain:
	- Toolchains from ARM (for ARM, AArch64 and AArch64 BE)
          updated to 12.2.
	- Support for binutils 2.40 and 2.41 added, binutils 2.37 and
          2.38 removed, binutils 2.40 is now the default
	- Support for gcc 13 added, gcc 10 removed, gcc 12 is now the
          default

	Architectures:
	- Additional x86-64 variants added
	- RISC-V vector extension support added

	Infrastructure:
	- Go now built in 3 stages to be able to update to Go 1.20.x.

	New defconfigs: rock5b

	Removed defconfigs: qemu_sparc_ss10

	New packages: composer, conmon, dfu-programmer, esp-hosted,
	kodi-imagedecoder-heif, kodi-imagedecoder-raw, libde2654,
	libdisplay-info, libheif, llvm-cmake, llvm-libunwind,
	lua-dkjson, mbpoll, mdnsd, mhz, opencsd, python-libconf,
	python-blinker, python-midiutil, python-rdps-py, python-wheel,
	qt6svg, redis-plus-plus, rockchip-rkbin, rtl8822cs, swaybg,
	swugenerator

	Removed packages: libasplib, ocf-linux, tovid

2023.05.3, released September 26th, 2023

	Important / security related fixes.

	Defconfigs: PC x86-64 bios/efi: Needs libelf. Raspberrypi:
	Also enable HDMI console when systemd is used.

	Updated/fixed packages: agentpp, asterisk, at91dataflashboot,
	aubio, berkeleydb, bind, bwm-ng, chocolate-doom, clamav,
	compiler-rt, connman, cpio, cups, dav1d, diffutils, dracut,
	dt, expect, fail2ban, fio, flite, freerdp, freeswitch,
	fstrcmp, gcc, gdb, ghostscript, gmp, go, grub2, haproxy,
	heirloom-mailx, hwloc, icu, intel-microcode, irssi, less,
	libcoap, libcurl, libglib2, libiec61850, libjxl, libks,
	libksba, libmodsecurity, libpjsip, libqb, libraw, libssh,
	libtommath, lldpd, log4cxx, lsof, mdadm, mosquitto, mpd, mpv,
	mutt, mv-ddr-marvell, ne10, netatalk, network-manager,
	nftables, nodejs, ntpsec, nut, openblas, openjdk, openjdk-bin,
	opensc, openssh, pcm-tools, perftest, petitboot, php, pixman,
	poppler, postgresql, python-django, python-ipython,
	python-pip, python-pylibfdt, python-tornado, python3, qt5,
	ramspeed, rtl8189fs, rtl8812au-aircrack-ng, samba4, screen,
	screenfetch, sngrep, sofia-sip, stellarium, stress-ng,
	strongswan, sysstat, tar, tcl, uboot, uclibc, vim, webkitgtk,
	webp, wireshark, xfsprogs, xserver_xorg-server, xterm, yajl,
	zbar, zxing-cpp

	New packages: xlib_libXpresent

2023.05.2, released August 31th, 2023

	Important / security related fixes.

	Toolchains: Correctly mark Bootlin external toolchains as
	having OpenMP support.

	Arch: Mark Alderlake x86 variants as no AVX512 support.

	Utils: Ensure utils/docker-run correctly supports git
	worktrees.

	Defconfigs: Beaglebone: U-Boot needs OpenSSL. Beaglebone qt5:
	Enable support for green wireless variant.

	Updated/fixed packages: arm-trusted-firmware, bind, cairo,
	cmocka, containerd, crudini, cryptodev-linux, dmidecode,
	ffmpeg, firmware-imx, gcc, gdb, ghostscript, gkrellm,
	gnuradio, go, igh-ethercat, iperf3, kodi, libcurl, libopenssl,
	libssh, libubootenv, libuhttpd, linux-tools, mali-driver,
	nfs-utils, ntp, openssh, php, pipewire, python-pysmb,
	python-iniparse, python-iptables, rtl8189es, rtl8189fs,
	sam-ba, samba4, seatd, shadow, speex,
	sunxi-mali-utgard-driver, supertuxkart, sysdig, systemd, tor,
	tpm2-tss, transmission, uboot, unzip, webkitgtk,
	wireless-regdb, wolfssl, wpebackend-fdo, wpewebkit, xenomai,
	yaml-cpp, yavta

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

	#15634: fluidsynths refers to missing libgomp.so.1

2023.05.1, released July 17th, 2023

	Important / security related fixes.

	Defconfigs: Chiliboard, mx53loco: fix build on hosts without
	openssl development headers.
	Nitrogen*: fix build on hosts without openssl or pylibfdt.
	Hifive unleased: Bump OpenSBI to 1.2 to fix a build issue.
	Raspberrypi: Handle DTB overlays for all variants

	Updated/fixed packages: agentpp, alsa-plugins, assimp, audit,
	bind, busybox, c-ares, check, cups, dav1d, dbus, fftw,
	fluidsynth, freetype, fwts, ghostscript, gnupg2, gnuradio,
	graphicsmagick, gupnp, haproxy, heimdal, hwdata, jhead, kodi,
	libcap, libgcrypt, libgpg-error, libgtk3, libmdbx, libxslt,
	mesa3d, mesa3d-demos, mpir, nodejs, php, pkgconf,
	python-cryptography, python-dbus-fast, python-django,
	python-docker, python-pyicu, python-requests, python3, qemu,
	qt6, quickjs, rtl8192eu, samba4, sconeserver, syslog-ng,
	taglib, tiff, wine, wireshark, xdriver_xf86-video-dummy,
	xlib_libX11,

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

	#15643: ERROR: No hash found for linux-6.3.8.tar.xz
	#15658: hifive_unleashed_defconfig: Linker errors in opensbi-0.9
	#15661: mx53loco_defconfig: Dependency on OpenSSL missing
	#15664: Can't compile mesa3d with v3d driver
	#15673: PKGCONF_SITE in pkgconf.mk points to parked domain
	#15682: pkgconf: no longer able to download source from...

2023.05, released June 7th, 2023

	Fixes all over the tree.

	Infrastructure: Add BR2_HOST_CMAKE_AT_LEAST_* for packages
	needing a newer host-cmake than what is currently enforced
	(3.18) - Up to the version provided by the cmake package (3.22).

	Defconfigs: QEMU s390x: Bump rootfs size to 120MB to make room
	for kernel modules.

	Updated/fixed packages: at-spi2-core, go, libdeflate, libjxl,
	perl-http-message, php, redis

2023.05-rc3, released June 4th, 2023

	Fixes all over the tree.

	Updated/fixed packages: bird, containerd, earlyoom, gcc,
	ipython, kexec, kodi-skin-confluence, libcurl, libopenssl,
	mesa3d, minidlna, mpd, openjdk, openjdk-bin,
	python-matplotlib, sdl2_net, vdr

	New packages: python-asttokens, python-executing,
	python-pure-eval, python-stack-data

2023.05-rc2, released May 28th, 2023

	Fixes all over the tree.

	Updated/fixed packages: busybox, clamav, crudini,
	kodi-pvr-vbox, libcurl, libmnl, libpqxx, libressl, libssh,
	llvm, lua, mesa3d, perl-http-message, python-can,
	python-django, sdl2_mixer, webkitgtk, zfs, znc

	New packages: perl-clone

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

	#15421: qemu_aarch64_ebbr_defconfig: Missing Linux kernel source..
	#15581: qemu_ppc_mpc8544ds_defconfig: Fails due to non-working patch

2023.05-rc1, released May 15th, 2023

	Fixes all over the tree and new features.

	Toolchain:
	- glibc update to 2.37, uClibc-ng updated to 1.0.43
	- suppoert 6.2.x / 6.3.x kernel headers

	Infrastucture:
	- go: Ensure go versions of os/user and net are used for
          static builds so CGO is not used

	- rust / cargo: Correctly split up rust flags for host and
          target builds

	New defconfigs: STM32F769 discovery

	New packages: petitboot, python-evdev, python-hwdata,
	python-pyproject-hooks, shadow

	Removed packages: atk, at-spi2-atk, optee-benchmark,
	python-pep517

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

	#14356: cronstamp jobs are not performed with bumped version of...
	#15191: pc_x86_64_efi_defconfig doesn't run on real hardware
	#15306: glibc build fails in Docker container
	#15321: docker-engine now requires libseccomp by default
	#15376: Libiconv config
	#15461: QtVirtualKeyboard segfaults

2023.02.11, released March 26th, 2024

	Important / security related fixes.

	Defconfigs: Starfive visionfive2: Use correct genimage
	configuration.

	Updated/fixed packages: bind, bitcoin, botan, c-ares, clamav,
	cvs, dash, dnsmasq, ell, exim, expat, freetype, ghostscript,
	gnupg2, google-breakpad, gst1-python, gst1-vaapi, iwd,
	libcoap, libcurl, libgit2, libkrb5, libmodsecurity, libunwind,
	libuv, libxml2, lua-http, luvi, nginx-naxsi, nodejs, openssh,
	openvmtools, parted, php, poco, postgresql, privoxy,
	pure-ftpd, putty, python-cheroot, python-configshell-fb,
	python-django, python-rtslib-fb, python3, rsync, sdl2, shim,
	spice, squid, strace, strongswan, sudo, systemd, targetcli-fb,
	unbound, uvw, v4l2loopback, vim, webkitgtk, wpewebkit, xvisor,
	zlib-ng

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

	#15997: Build Squid with GCC12.3 in Buildroot 2024.02 will fail

2023.02.10, released March 1st, 2024

	Important / security related fixes.

	Added CPE identifiers for a large number of packages.

	Updated/fixed packages: bayer2rgb-neon, brltty, c-ares,
	containerd, crda, darkhttpd, davinci-bootcount, dbus,
	domoticz, environment-setup, expat, faad2, falcosecurity-libs,
	flex, freeradius-server, freerdp, frr, gesftpserver, glibc,
	gnutls, go, gst1-devtools, gst1-libav, gst1-python,
	gst1-vaapi, gst-omx, gstreamer1, haproxy, joe, json-c,
	leptonica, libcurl, libuwsc, libvips, linux-firmware,
	linux-headers, localedef, lua-http, lvm2, lynx, mbedtls,
	micropython, minizip, mpfr, netatalk, ngrep, opencv4,
	opencv4-contrib, openssh, opus, php, python-aiohttp,
	python-esptool, python-gunicorn, python-hpack,
	python-html5lib, python-lmdb, python-mako, python-numpy,
	python-oauthlib, python-sqlparse, qt5base, qt6base, redis,
	runc, sdl2, sqlite, sysstat, uuu, webkitgtk, wireless-regdb,
	wpewebkit, xlib_libXpm, xterm, xwayland, yasm

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

	#10096: SH4 toolchain does not build Linux kernel magicpa..
	#15952: Grub fails to load large rootfs files

2023.02.9, released January 15th, 2024

	Important / security related fixes.

	Infrastructure:

	- Download: Revert a permission fixup step in the tarball
	  creation logic, which lead to a hash mismatch issue in two
	  cargo-vendored packages, ripgrep and sentry-cli.

	- Build: Pass GIT_DIR=. in the environment (through
	  HOST_MAKE_ENV/TARGET_MAKE_ENV) to the build steps to
	  workaround packages trying to detect if they are building in
	  a git checkout and getting confused when building in a sub
	  directory of a Buildroot git checkout.

	Updated/fixed packages: apcupsd, arm-trusted-firmware, botan,
	cjson, cups, dropbear, duktape, edk2, exim, faad2, freeswitch,
	gcc, gdal, gdb, giflib, glibc, go, google-breakpad, gst-omx,
	gstd, gst1-devtools, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, ipcalc, jq, json-for-modern-cpp,
	ksmbd-tools, libaio, libcamera, libcap-ng, libcurl, libebml,
	libgtk3, libiec61850, libraw, libsigsegv, libssh, libssh2,
	libuev, libwebsockets, liquid-dsp, lvm2, madplay, mesa3d,
	micropython, mp4v2, opensc, openssh, orc, php, pipewire,
	postgis, postgresql, proftpd, putty, python-sip,
	python-werkzeug, rng-tools, shim, squid, strongswan, sway,
	tinyssh, tor, tree, uftp, valijson, wireshark, wolfssl,
	xserver_xorg-server, xwayland

2023.02.8, released December 4th, 2023

	Important / security related fixes.

	Defconfigs: Raspberrypi: Fix DT overlay for autoproving of
	bluetooth driver, Toradex apalis i.mx6: Add download hashes
	for Linux and U-Boot.

	Updated/fixed packages: exfatprogs, gcc, imagemagick,
	intel-microcode, libpjsip, libxml2, mariadb, memcached,
	motion, netsnmp, perl, postgresql, rtty, samba4, speech,
	squid, vim, vlc, xenomai, xtables-addons, zfs

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

	#15856: Using BR2_CONFIG= on a different file-system...

2023.02.7, released November 14th, 2023

	Important / security related fixes.

	Per-package builds: Unbreak SDK relocation logic. Only drop
	the hard links for the final host / target directory, fixing a
	build time / size regression in 2023.02.6.

	Packages where a free-form version/site can be specified
	(E.G. Linux, U-Boot, ..) can now have the corresponding
	tarballs of these custom downloads checked by the download
	infrastructure based on .hash files in the global patch
	directory. These hashes are optional unless
	BR2_DOWNLOAD_FORCE_CHECK_HASHES is enabled.

	A utils/add-custom-hashes helper script has been added to
	assist in managing such hash files.

	Defconfigs: stm32mp157a-dk1, stm32mp157c-dk2: Unbreak TF-A
	build, stm32mp157c-odessey: Use a fixed TF-A version for
	reproducibility

	Updated/fixed packages: apache, arm-trusted-firmware, aufs,
	aufs-util, azure-iot-sdk, cjson, cups-filters, clamav, dhcpcd,
	freeradius-server, go, htop, ksmbd-tools, kvmtool, libgdiplus,
	libopenssl, libosmium, libtommath, libupnp, libzlib, lxc,
	mender, minizip-zlib, mpd, mxsldr, nano, nettle,
	network-manager, nghttp2, nodejs, opencv4, opencv4-contrib,
	openjdk-bin, openvpn, opusfile, paho-mqtt-c,
	perl-lwp-protocol-https, php, python-django, python-urllib3,
	python-web2py, rabbitmq-c, redis, riscv64-elf-toolchain,
	suricata, tar, tiff, tor, traceroute, vim, websocketpp,
	wireshark, wolfssl, xdg-dbus-proxy, xen, xlib_libX11,
	xlib_libXpm, zabbix, zchunk

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

	#14741: e2fsck is failing during cronjob build where fail...
	#15772: lz4 failed to compile with gcc 10.4.0
	#15787: atmel_sama5d3_xplained_mmc_defconfig: Missing...
	#15790: at91sam9x5ek_dev_defconfig: Missing...
	#15820: make linux-menuconfig does not modify correct .config..
	#15823: Installing nodejs modules with native extensions ...
	#15835: Incompatibility between network-manager and libcurl 8.4

2023.02.6, released October 16th, 2023

	Important / security related fixes.

	Per-package builds: Do not use hard links for host / target
	dirs, fixing issues with package rebuilds or post-build
	scripts modifications.

	Infrastructure: Explicitly disable shuffle mode for Make >=
	4.4 where needed.

	Urandom-scripts: Move seedrng init script to S01 for earlier
	random number entrophy initialization.

	Go: Bump to 1.20.x as 1.19.x is now EOL and affected by
	security issues.

	Updated/fixed packages: at91bootstrap, bind, cups, efl,
	enlightenment, exim, gcc, glibc, gnu-efi, go, go-bootstrap,
	gptfdisk, gst-omx, gst1-devtools, gst1-libav,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst1-python, gst1-rstp-server,
	gst1-rtsp-vaapi, gstreamer1, gstreamer1-editing-services,
	libcue, libcurl, libfastjson, libhtp, libmodplug, librsvg,
	libvpx, libyang, linux-tools, mbedtls, mosquitto, mutt, neon,
	netsnmp, nmap, nodejs, olsr, openblas, opkg-utils, php,
	powertop, python-mako, python3, rockchip-mali, samba4, sslh,
	suricata, tar, unifdef, unrandom-scripts, webkitgtk,
	wireless-regdb, wpewebkit

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

	#15628: Missing dependencies in BR2_PACKAGE_PYTHON_MAKO
	#15808: connman is not supported on musl
	#15814: C++ not supported by bootlin toolchain

2023.02.5, released September 27th, 2023

	Important / security related fixes.

	Updated/fixed packages: agentpp, asterisk, at91dataflashboot,
	aubio, berkeleydb, bind, bwm-ng, chocolate-doom, clamav,
	compiler-rt, connman, cups, dav1d, diffutils, dracut, dt,
	expect, fail2ban, fio, flite, freerdp, freeswitch, fstrcmp,
	gcc, gdb, ghostscript, gmp, go, grub2, haproxy,
	heirloom-mailx, hwloc, icu, intel-microcode, irssi, libcoap,
	libcurl, libiec61850, libjxl, libks, libksba, libmodsecurity,
	libpjsip, libqb, libraw, libssh, libtommath, less, lldpd,
	log4cxx, lsof, mdadm, mosquitto, mpd, mutt, mv-ddr-marvell,
	ne10, netatalk, network-manager, nftables, nodejs, ntpsec,
	nut, openblas, openjdk, openjdk-bin, opensc, openssh,
	pcm-tools, perftest, php, pixman, poppler, postgresql, pppd,
	python-django, python-ipython, python-pip, python-pylibfdt,
	python-tornado, python3, qt5, ramspeed, rtl8189fs, samba4,
	screen, screenfetch, sngrep, sofia-sip, stellarium,
	strongswan, sysstat, tar, tcl, uboot, uclibc, vim, webkitgtk,
	webp, wireshark, xfsprogs, xserver_xorg-server, xterm, yajl,
	zbar, zxing-cpp

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

	#14366: Nodejs fails with "version `GLIBC_2.34' not found"..
	#15754: The docker-engine and docker-cli versions are not...
	#15787: atmel_sama5d3_xplained_mmc_defconfig: Missing...
	#15790: at91sam9x5ek_dev_defconfig: Missing...

2023.02.4, released August 31th, 2023

	Important / security related fixes.

	Toolchains: Correctly mark Bootlin external toolchains as
	having OpenMP support.

	Arch: Mark Alderlake x86 variants as having no AVX512 support.

	Utils: Ensure utils/docker-run correctly supports git
	worktrees.

	Defconfigs: Beaglebone qt5: Enable support for green wireless
	variant.

	Updated/fixed packages: arm-trusted-firmware, bind, cairo,
	cmocka, containerd, crudini, dmidecode, ffmpeg, freescale-imx,
	gcc, gdb, ghostscript, gkrellm, gnuradio, go, heimdall,
	iperf3, libcurl, libmodsecurity, libopenssl, libssh,
	libubootenv, libuhttpd, linux-tools, ntp, openssh, php,
	pipewire, python-iniparse, python-iptables, python-pysmb,
	rtl8189fs, sam-ba, samba4, seatd, speex, supertuxkart, sysdig,
	tor, tpm2-tss, uboot, unzip, webkitgtk, wireless-regdb,
	wolfssl, wpebackend-fdo wpewebkit, xenomai, yaml-cpp, yavta

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

	#15634: fluidsynths refers to missing libgomp.so.1

2023.02.3, released July 17th, 2023

	Important / security related fixes.

	Defconfigs: Chiliboard: fix build on hosts without openssl
	development headers.
	Nitrogen*: fix build on hosts without openssl or pylibfdt.
	Raspberrypi: Handle DTB overlays for all variants

	Updated/fixed packages: agentpp, alsa-plugins, assimp, bind,
	busybox, dbus, c-ares, check, dav1d, fluidsynth, fftw, fwts,
	ghostscript, gnupg2, gnuradio, gupnp, haproxy, heimdal,
	hwdata, jhead, libcap, libgcrypt, libgpg-error, libgtk3,
	libxslt, mesa3d-demos, mpir, nodejs, php, pkgconf,
	python-cryptography, python-dbus-fast, python-django,
	python-pyicu, python-requests, python3, qt6, quickjs,
	sconeserver, taglib, tiff, wireshark, xdriver_xf86-video-dummy

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

	#15643: ERROR: No hash found for linux-6.3.8.tar.xz
	#15673: PKGCONF_SITE in pkgconf.mk points to parked domain
	#15682: pkgconf: no longer able to download source from...

2023.02.2, released June 16th, 2023

	Important / security related fixes.

	Infrastructure: Add BR2_HOST_CMAKE_AT_LEAST_* for packages
	needing a newer host-cmake than what is currently enforced
	(3.18) - Up to the version provided by the cmake package (3.22).

	utils/docker-run: Now correctly handles git
	workdirs/worktrees.

	Defconfigs: QEMU s390x: Bump rootfs size to make room for
	kernel modules, Stm32f4xx: Tweak config to save RAM, Xilinx
	Versal vck190: Use correct (A72) CPU variant

	Updated/fixed packages: atkmm, bird, busybox, cairomm1_14,
	cmake, containerd, crudini, cups, delve, docker-cli,
	docker-engine, earlyoom, edid-decode, fluent-bit, freeswitch,
	gcc, gdb, glibmm_2_66, gnupg2, go, gptfdisk, graphicsmagick,
	intel-microcode, libass, libcurl, libdeflate, libgeos,
	libgtk3, libjxl, libnftl, libopenssl, libressl, libssh, llvm,
	lua, mesa3d, micropython, minidlna, moby-buildkit, mpd, mupdf,
	ncurses, nftables, openjdk, openjdk-bin, php, postgresql,
	python-can, python-django, python-django, python-ipython,
	python-matplotlib, python-mupdf, python-requests, python3,
	qemu, redis, rpm, runc, sdl2_mixer, tzdata, uclibc, vdr,
	wilc-firmware, xapp_xcalc, xapp_xdpyinfo, xapp_xinput,
	xapp_xwininfo, xdata_xbitmaps, xdata_xcursor-themes,
	xdriver_xf86-input-mouse, xdriver_xf86-video-ark,
	xdriver_xf86-video-geode, xdriver_xf86-video-neomagic,
	xfont_encodings, xlib_libX11, xlib_libXaw, xlib_libXi,
	xlib_libXfixes, xlib_libXft, xlib_libXpm, zfs, znc

	New packages: perl-clone, perl-http-message, python-asttokens,
	python-executing, python-pure-eval, python-stack-data

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

	#15421: qemu_aarch64_ebbr_defconfig: Missing Linux kernel source code

2023.02.1, released May 9th, 2023

	Important / security related fixes.

	Infrastucture:
	- go: Ensure go versions of os/user and net are used for
          static builds so CGO is not used

	- rust / cargo: Correctly split up rust flags for host and
          target builds

	Defconfigs: Olimex a20 olinuxino lime*: Bring up network at
	boot, stmf469 disco sd: Lock U-Boot version

	Updated/fixed packages: agentpp, apache, bluez5_utils,
	ca-certificates, containerd, coremark, dcron, dnsmasq,
	docker-cli, docker-engine, efivar, eudev, ffmpeg, flann,
	fluidsynth, git, go, gst-omx, gst1-devtools, gst1-libav,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi,
	gstreamer1, gstreamer1-editing-services, intel-microcode,
	kexec, libcurl, libite, libgtk3, libmicrohttpd, libxml2,
	linux-tools, lua, mali-driver, matio, mdadm, nginx, openocd,
	openssh, php, poppler, postgresql, python-web2py, qt6base,
	readline, rtl8189fs, rtl8723ds, rtl8812au-aircrack-ng, runc,
	rust, rust-bin, s390-tools, samba4, sdl2, snmppp, sudo,
	systemd, tcpdump, uclibc, vim, webkitgtk, wireshark,
	wpewebkit, xr819-radio, xserver_xorg-server, zeek

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

	#14356: cronstamp jobs are not performed with bumped version of...
	#15306: glibc build fails in Docker container
	#15376: Libiconv config
	#15461: QtVirtualKeyboard segfaults

2023.02, released March 12th, 2023

	Fixes all over the tree.

	Updated/fixed packages: ace, apache, audit, bridge-utils,
	docker-engine, go, gtkmm3, janet, libbpf, libev, libgcrypt,
	libgpg-error, libmad, linux, mesa3d, network-manager, nut,
	pcre2, php, rdma-core, rsync, rtl8821cu, rtl_433,
	s6-linux-utils, speechd, uqmi, xdriver_xf86-video-qxl, znc

	New packages: atkmm2_28, cairomm1_14, glibmm2_66, libsigc2,
	pangomm2_46, python-glslang

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

	#15306: glibc build fails in Docker container
	#15321: docker-engine now requires libseccomp by default

2023.02-rc3, released March 8th, 2023

	Fixes all over the tree.

	Updated/fixed packages: apr, bash, docker-engine, exfat,
	exfat-utils, f2fs-tools, gensio, gr-osmosdr, libcurl, libglfw,
	libolm, libpcap, libpjsip, linux, mender, mpv,
	multipath-tools, opus, paho-mqtt-c, proftpd, pugixml,
	pulseaudio, qemu, quazip, quickjs, rtl8189es, rtl8821cu,
	uacme, uqmi, wpebackend-fdo,

2023.02-rc2, released February 27th, 2023

	Fixes all over the tree.

	Updated/fixed packages: asterisk, at91dataflashboot, bind,
	efivar, erlang, flac, fluent-bit, freerdp, gcc, gdal, gerbera,
	gnuradio, gqrx, haproxy, hawktracer, imx-gpu-g2d,
	intel-gmmlib, libarchive, libblockdev, libcamera-apps, libjxl,
	libmodsecurity, libsigrokdecode, lightning, lirc-tools,
	lttng-babeltrace, modem-manager, modsecurity2,
	multipath-tools, mutt, mxs-bootlets, netsurf, network-manager,
	nginx-naxsi, ntpsec, opensbi, optee-client, pcm-tools,
	php-xdebug, pistache, postgresql, proxychains-ng,
	python-m2crypto, python-numpy, python-webargs,
	python-werkzeug, rtl8723bu, rtty, speechd, sudo, systemd,
	tiff, tmux, wilc-driver, wpa_supplicant, xerces,
	xtables-addons, xwayland, zabbix

	Removed packages: uccp420wlan

2023.02-rc1, released February 20th, 2023

	Numerous package updates and many (62) new packages.

	Toolchain:

	- The check for access to "unsafe" (E.G. from the build host)
	  header files and libraries by the cross compiler is now
	  unconditionally enabled.

	- Bootlin external toolchains updated to 2022.08

	- The handling of the CCACHE_* environment variables by the
          toolchain wrapper is now more strict, causing the variables
          to only be exported when BR2_CCACHE is enabled.

	Infrastructure:

	- Br2-external: Fix make performance issue when many (> 6)
	  external trees are used together.

	- Legal-info: Stop warning about not saving sources for local
	  / override packages if <PKG>_REDISTRIBUTE is set to NO.

	- Go: Ensure our go build and module cache is used, even for the
	  download step.

	- Cargo: CARGO_HOME (the location where cargo stores it
          downloaded artifacts) is now located under DL_DIR rather
          than in HOST_DIR/share/cargo, ensuring it is shared between
          builds.

	Misc:

	- Erofs: Use fixed timestamp and UUID when BR2_REPRODUCIBLE is
	  used.

	- Ext2: Year 2038+ compatible inodes are now used by default,
          independently of the filesystem size.

	- Linux: Fix build of < 5.6 kernels with host-gcc >= 10.

	A large number of NXP related packages and defconfigs have
	been updated as upstream moved the git repositories to Github.

	New defconfigs: i.MX8mn BSH SMM S2 / pro, QEMU ARM EBBR,
	Sipeed Lichee rv / rv dock, Starfive Visionfive2, Xilinx Versal
	VCK190.

	New packages: catch2, cli11, dotconf, edk2-non-osi,
	fluent-bit, fxdiv, hddtemp, highway, imx-vpu-hantro-daemon,
	libjxl, libsolv, libunibreak, neon-2-sse, open-iscsi,
	opencv4-contrib, perftest, perl-image-exiftool,
	python-apispec, python-async-generator, python-cppy,
	python-dbus-fast, python-dicttoxml2, python-flask-smorest,
	python-h11, python-hkdf, python-magic-wormhole,
	python-magic-wormhole-mailbox-server,
	python-magic-wormhole-transit-relay, python-marshmallow,
	python-munch, python-outcome, python-pycrate, python-pyspnego,
	python-reedsolo, python-selenium, python-smbprotocol,
	python-sniffio, python-spake2, python-trio,
	python-trio-websocket, python-uhid, python-webargs,
	python-wsproto, qt5speech, qt6serialbus, rdma-core, reproc,
	rtl8723ds-bt, rtl8821cu, sexpect, speechd, sscep, stb, sway,
	termcolor, ti-k3-r5-loader, tl-expected, unifdef,
	versal-firmware, xwayland, z3

	Removed packages: docker-proxy, elixir, gummiboot,
	python-bunch, python-m2r, sun20i-d1-spl, ucl,
	xdriver_xf86-input-keyboard, xdriver_xf86-video-glint,
	xdriver_xf86-video-imx-viv, xdriver_xf86-video-tga

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

	#14971: Kernel 3.10.108 fail to build in Buildroot 2022.08-rc1
	#14996: Too many directories in BR2_EXTERNAL causes hang during make
	#15161: kernel can't support SUBDIR
	#15196: Setting BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE does not work
	#15226: lsblk: not found
	#15271: no start-qemu.sh
	#15281: Error compiling GDAL library for RPi-64 if libgdal-dev install..
	#15291: BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS without location
	#15301: Selecting NAND Flash boot media (NAND_BOOT) breaks the uboot..
	#15331: Warning on python-flit-core license when generating legal info

2022.11.3, released March 18th, 2023

	Important / security related fixes.

	Updated/fixed packages: ace, apache, apr, apr-util, asterisk,
	at91dataflashboot, audit, bash, bind, bridge-utils, clamav,
	dmalloc, efivar, erlang, exfat, exfat-utils, f2fs-tools, gcc,
	gdal, gensio, gerbera, git, glslsandbox-player, go, haproxy,
	hawktracer, intel-gmmlib, ipmiutil, less, libblockdev,
	libcurl, libev, libgcrypt, libglfw, libmad, libmdbx,
	libmodsecurity, libolm, libpjsip, lirc-tools,
	lttng-babeltrace, mender, mpv, mutt, mxs-bootlets, netsurf,
	ntpsec, nut, opensbi, opus, paho-mqtt-c, pcm-tools, php,
	pistache, proftpd, proxychains-ng, pulseaudio,
	python-cryptography, python-django, python-m2crypto,
	python-numpy, python-werkzeug, qemu, quazip, quickjs,
	rockchip-mali, rsync, s6-linux-utils, sudo, tiff, uacme, uqmi,
	webkitgtk, wilc-driver, wpa_supplicant, wpewebkit,
	xdriver_xf86-video-qxl, znc

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

	#15306: glibc build fails in Docker container
	#15361: Buildroot linking error on Apple Silicon

2022.11.2, released March 1st, 2023

	Important / security related fixes.

	Fix make O=..._defconfig builds (regression in 2022.11.1).

	A number of additional/stricter checks have been added to
	./utils/check-package.

	Build host dependencies check extended to check for a number
	of specific perl modules to better handle distributions (like
	Fedora) with very fine grained perl packages. Also ensure
	build host has git >= 2.0.0 when using packages written in
	go/rust because the vendoring may need it.

	Defconfigs: ASUS tinker rk3288: Fix boot issue related to TPL

	Updated/fixed packages: afboot-stm32, apache, barebox, c-ares,
	elf2flt, freeswitch, fwts, gcc, gdal, git, gitlab-runner,
	ipmitool, kodi, libgit2, libks, libopenssl, libressl, live555,
	lua, lxc, mariadb, mesa3d-headers, modsecurity2, mongoose,
	netopeer2, nodejs, openjdk, openpowerlink, openvpn, opusfile,
	postgresql, proftpd, pugixml, python-future, python-idna, qt5,
	rtl8192eu, rtl8723ds, sdl2, sofia-sip, ssdp-responder, sudo,
	sunxi-mali-utgard, thermald, ti-sgx-km, tmux, uboot, upx, vim,
	webkitgtk, wolfssl, wpewebkit, xlib_libXpm,
	xserver_xorg-server, xxhash, xz, yajl, zabbix

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

	#15271: no start-qemu.sh
	#15281: Error compiling GDAL library for RPi-64 if libgdal-dev install..
	#15291: BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS without location
	#15301: Selecting NAND Flash boot media (NAND_BOOT) breaks the uboot..
	#15331: Warning on python-flit-core license when generating legal info

2022.11.1, released January 18th, 2023

	Important / security related fixes.

	Br2-external: Fix make performance issue when many (> 6)
	external trees are used together.

	Erofs: Use fixed timestamp and UUID when BR2_REPRODUCIBLE is
	used.

	Go: Ensure our go build and module cache is used, even for the
	download step.

	Legal-info: Stop warning about not saving sources for local /
	override packages if <PKG>_REDISTRIBUTE is set to NO.

	Linux: Fix build of < 5.6 kernels with host-gcc >= 10.

	A large number of NXP related packages and defconfigs have
	been updated as upstream moved the git repositories to Github.

	Defconfigs: zcu106, kria kv260: Fix U-Boot build

	Updated/fixed packages: asterisk, bearssl, botan, cairo,
	capnproto, check, checkpolicy, connman, containerd, crun,
	dbus-cxx, docker-cli, docker-engine, exempi, exfat,
	exfat-utils, falcosecurity-libs, fluidsynth, fmc, fmlib,
	freeradius-server, gcc, glib-networking, go,
	gobject-introspection, gperf, i2pd, ima-evm-utils,
	imx-alsa-plugins, imx-kobs, imx-lib, imx-m4fwloader,
	imx-mkimage, intel-microcode, janus-gateway, libcurl,
	libdeflate, libftdi1, libkcapi, libksba, libmbim, libmng,
	libpjsip, libtalloc, libuwsc, libxkbcommon, lpeg, lrzsz,
	lttng-tools, lua-cqueues, mali-driver, mbedtls, mfgtools,
	moby-buildkit, mutt, opensc, php, policycoreutils, polkit,
	postgresql, pptp-linux, qcom-db410c-firmware, qemu, qoriq-rcw,
	qt5virtualkeyboard, redis, rhash, rtl8189es, rtl8192eu,
	rtl_433, ruby, sqlite, swupdate, tealdeer, tekui, tiff,
	tinyxml, tor, webkitgtk, wireshark, wpasupplicant, wpewebkit,
	xr819-xradio, xdriver_xf86-video-imx-viv, xserver_xorg-server,
	xxhash, zip

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

	#14971: Kernel 3.10.108 fail to build in Buildroot 2022.08-rc1
	#14996: Too many directories in BR2_EXTERNAL causes hang during make
	#15161: kernel can't support SUBDIR
	#15196: Setting BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE does not work
	#15226: lsblk: not found

2022.11, released December 5th, 2022

	Fixes all over the tree.

	Defconfigs: Nitrogen8*: Bump rootfs size, Zynqmp
	kv260/zcu102/zcu106: Update to Xilinx 2022.2,

	Updated/fixed packages: dash, dovecot, elf2flt, exim, gcc,
	gdb, git, kodi, libarchive, libmdbx, linuxptp, lxc,
	matchbox-keyboard, memcached, netsnmp, optee-client,
	python-scipy, python3, qt6base, qt6serialport, rtl8188eu,
	rtl8723bu, rtl8723ds, rtl8821au, vim, vlc, wilc-driver

	Removed packages: rabbitmq-server

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

	#15131: Target GDB uses internal zlib
	#15151: Busybox /etc/init.d scripts are not executable

2022.11-rc3, released November 24th, 2022

	Fixes all over the tree.

	Updated/fixed packages: asterisk, edk2, edk2-platforms,
	freerdp, gitlab-runner, gnupg2, gptfdisk, heimdal,
	igh-ethercat, iwd, libkrb5, libksba, libnss, libopenssl,
	mesa3d, nginx, nodejs, openpgm, python3, rsync, rtl8189es,
	rtl8723ds, samba4, sdl, sdl2, swupdate, sysstat, systemd,
	uboot, xen, xterm

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

	#15141: kernel 5.16.2 (realtime patch 19) fails to build

2022.11-rc2, released November 16th, 2022

	Fixes all over the tree.

	Removed defconfigs: Amarule a64 relic, ARM Juno, Bananapi M1 /
	M1 plus / M2 plus / M64, FriendlyARM NanoPC T4 / A64 / M1 / M1
	plus / M4 / Neo2 / Neo4 / Neo plus2 / R1 / Orangepi PC2 / Plus
	/ Prime / rk3399 / Win, Rock PC rk3399 / PI4 / N10.

	Updated/fixed packages: alsa-utils, arm-trusted-firmware,
	bdwgc, boost, botan, ca-certificates, crun, dbus-broker,
	docopt-cpp, dracut, efivar, freeipmi, gawk, gensio, gptfdisk,
	gsl, guile, imagemagick, ipmitool, libidn2, libkcapi,
	libopenssl, libqb, libuhttpd, libvncserver, linux,
	linux-tools, lxc, makedumpfile, matchbox-startup-monitor,
	mdio-tools, multipath-tools, mupdf, ntfs-3g, numactl,
	perl-net-ssleay, pixman, procps-ng, rpi-userland, rsync,
	s6-linux-init, socat, strongswan, sudo, swupdate, systemd,
	udisks, vlc, wavemon, wolfssl, zlib-ng

	Removed packages: libdcadec

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

	#15121: make nconfig failes with nvidia drivers and mesa3d selected

2022.11-rc1, released November 3rd, 2022

	Fixes all over the tree and new features.

	Architecture:

	- PowerPC: add Power9 CPU type
	- ARM: support dropped for iWMMXt processors

	Toolchain:

	- binutils 2.39 added, binutils 2.38 is now the default
	- gdb 12 added, gdb 11 is now the default
	- support for 5.18, 5.19 and 6.0 kernel headers
	- glibc updated to 2.36

	Filesystem:

	- Ability to use dracut to create an initramfs that contains a
          subset of the root filesystem contents.

	New packages: agent-proxy, catatonit, cni-plugins, crun,
	docopt-cpp, dracut, forge, kmemd, libmanette, mdio-tools,
	open-isns, python-editables, python-hatch-fancy-pypi-readme,
	python-hatch-vcs, python-hatchling, python-libevdev,
	python-minimalmodbus, python-pathspec, qt6-serialport,
	rtl8192eu, signal-estimator, slirp4netns, tinycompress

	More than 400 packages have been updated to a newer version.

	New defconfigs: ls1028ardb, qemu_aarch64_ebbr, visionfive.

	Issues resolved:

	#11776: qt5webengine 5.12.2 build failed with arm toolchain
	        and linaro toolchain
	#12131: qt5webengine builderror in the latest stable Buildroot
	        2019.05.01 version
	#13216: 2020.02.6 requires GNU find  utils
	#14601: Python build fails on 2022.02-rc2
	#14746: Lack of management after loading
	#14796: 64 bit time and seccomp conflict (OpenSSH  server crash)
	#14921: wpewebkit build fails because of internal  build order
	#14936: nodejs does not build
	#15006: toolchain Arm AArch64 toolchain 11.2-2022.02
	#15021: Buildroot not compiling with systemd  and glibc.
	#15026: package/udisks: install to staging
	#15061: Node.js Package fails to build against musl  i386
	#15071: RTL8723BS library is outdated

2022.08.3, released December 10th, 2022

	Important / security related fixes.

	Updated/fixed packages: asterisk, dash, dovecot, edk2,
	edk2-platforms, elf2flt, exim, freerdp, gcc, gdb, git, gnupg2,
	heimdal, iwd, kodi, libarchive, libkrb5, libksba, libmdbx,
	libopenssl, matchbox-keyboard, memcached, netsnmp, nginx,
	nodejs, openpgm, optee-client, python-scipy, python3, rsync,
	rtl8723bu, samba4, sdl, sdl2, swupdate, sysstat, systemd,
	uboot, vim, vlc, wilc-driver, xen, xterm

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

	15131: Target GDB uses internal zlib

2022.08.2, released November 16th, 2022

	Important / security related fixes.

	Defconfig: Aspeed ast2600evb: Correct FPU config, Kontron bl
	imx8mm: Bump U-Boot to fix build issue, Pine64: Change to
	mainline ATF to fix build issue, Zynqmp zcu102 / zcu106 / kria
	kv260: Fix pmufw reset issue

	Updated/fixed packages: arm-trusted-firmware, bind, botan,
	ca-certificates, collectd, darkhttpd, dbus, dbus-broker, dhcp,
	dnsmasq, docker-cli, docker-engine, exfatprogs, expat,
	f2fs-tools, faad2, ffmpeg, freerdp, gitlab-runner, glibc,
	gnutls, go, gpsd, gptfdisk, grub2, gsl, gst-omx,
	gst1-devtools, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, hdparm, hostapd, imagemagick,
	iwd, jack2, libbpf, libcurl, libidn2, libinput, libmdbx,
	libopenssl, libosip2, libpng, libtasn1, libtorrent-rasterbar,
	libuhttpd, libvncserver, libxml2, linux, linux-tools, lldpd,
	lrzip, lz4, matchbox-startup-monitor, meson, msmtp,
	multipath-tools, mupdf, musl, mv-ddr-marvell, mxml, nodejs,
	ntfs-3g, numactl, openssh, openvmtools, oracle-mysql,
	paho-mqtt-c, perl-net-ssleay, php, pixman, poppler, procps-ng,
	python-django, python3, qdecoder, redis, rpi-userland, rsync,
	rtl8189es, rtl8189fs, rtl8723bu, rtl8723ds,
	rtl8812au-aircrack-ng, rtl8821au, rtl_433, samba4, shapelib,
	socat, sqlite, squashfs, squid, strongswan, sudo, swupdate,
	timescaledb, uclibc-ng-test, udisks, uftp, uhd, umtprd,
	usbguard, vim, vlc, volk, wavemon, wilc-driver,
	wireguard-linux-compat, wolfssl, wpa_supplicant, wpewebkit,
	zlib-ng, zsh

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

	#14936: nodejs does not build
	#15026: package/udisks: install to staging
	#15061: Node.js Package fails to build against musl i386

2022.08.1, released October 2nd, 2022

	Important / security related fixes.

	Updated/fixed packages: botan, busybox, docker-cli,
	docker-engine, expat, git, haproxy, heirloom-mailx, icu,
	imx-gpu-viv, libconfuse, libmdbx, libupnp, libxml2,
	ltp-testsuite, m4, makedevs, mariadb, mesa3d, meson,
	mosquitto, ncurses, openssh, pango, python3, qlibc,
	qt5xmlpatterns, rtl8189es, rtl8723bu, rt8723ds,
	rtl8812au-aircrack-ng, runc, sox, tinyproxy, uacme, unbound,
	unzip, vim, xtables-addons

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

	#14796: 64 bit time and seccomp conflict (OpenSSH server crash)
	#14921: wpewebkit build fails because of internal build order

2022.08, released September 10th, 2022

	Fixes all over the tree.

	Autotools: Drop --runstatedir=/run as it causes build issues
	with older packages

	Defconfigs: rockpro64: Change to mainline ATF to fix build issue

	Updated/fixed packages: dhcpd, fwup, gcc, gdb, go, linux-tools,
	minidlna, mosquitto, mv-ddr-mervell, networkd-dispatcher,
	optee-os, polkit, python-pillow, python3, sconeserver, uuu,
	wolfssl

2022.08-rc2, released September 1st, 2022

	Fixes all over the tree.

	dependencies: Ensure 'find' and 'xargs' are available on the
	build host.

	A large number of typo fixes.

	Defconfigs: bananapi m1, olimex a20/a33/lime: Use standard FPU
	configuration, pine64_sopine: Use mainline ATF to fix build

	Updated/fixed packages: ace, alsa-utils, busybox, cups,
	dbus-broker, directfb, domoticz, drbd-utils, edk2,
	edk2-platforms, ffmpeg, freeradius-server, freeswitch, gauche,
	gcc, gdb, glibc, gnutls, gst1-plugins-bad, gst1-plugins-good,
	hawktracer, igd-ethercat, imagemagick, intel-mediadriver,
	jack2, jose, jpeg, jquery-ui-themes, kodi, libcamera, libdill,
	libgit2, libglvnd, libgpg-error, libgpgme, libinput, libp11,
	libsepol, libtirpc, libvirtd, libvncserver, libwpe, libzlib,
	linux, linux-tools-perf, llvm, lshw, makedumpfile,
	mali-driver, memcached, minetest, mutt, ne10, netsniff-ng,
	ntpsec, ocrad, ola, opencv4, openocd, opensc, optee-os,
	pcsc-lite, postgresql, protobuf, pulseaudio, python-autobahn,
	python-paho-mqtt, python-protobuf, python-pygame, python3, qemu,
	qoriq-cadence-dp-firmware, qt5doc, qt6base, ranger, rng-tools,
	rsync, rustc, sconeserver, sdl2, snort, sqlite, squid,
	stress-ng, strongswan, sunxi-mali-utgard-driver, sysdig,
	sysklogd, syslinux, syslog-ng, tcf-agent, tcpreplay,
	tesseract-ocr, uacme, uboot-tools, uclibc, udpcast, usbguard,
	v4l2loopback, vim, webkitgtk, wolftpm, wpewebkit, xenomai,
	xserver_xorg-server, zeek, zerofree

2022.08-rc1, released August 12th, 2022

	Fixes all over the tree and new features.

	Architecture

	- Support for NDS32 removed
	- Support for C-SKY removed
	- Support for configurable page size on ARM64 added
	- Architecture menu re-organized: the MMU selection now
	  appears in this architecture menu.

	Toolchain:

	- GCC 12.x support added, GCC 11.x is now the default
	  compiler, and support for building a GCC 9.x toolchain has
	  been removed.
	- glibc bumped to 2.35-134-gb6aade18a7e5719c942aa2da6cf3157aca993fa4
	- uclibc bumped to 1.0.42
	- BR2_GCC_ENABLE_LTO option removed, the toolchain is now
	  always built with LTO support. The new option BR2_ENABLE_LTO
	  enables the use of LTO in a subset of packages that have
	  explicit handling for LTO.
	- GDB enabled on OpenRISC.
	- Toolchain menu now appears before "Build options". The
	  selection of the C library now determines whether static
	  library (BR2_STATIC_LIBS) will be available or not, instead
	  of the other way around.

	Filesystem:

	- genimage.cfg files now use shortcuts from genimage for the
	  GUID of well-known GPT partitions.

	Bootloaders:

	- U-Boot can now be built with host-gnutls as a dependency,
	  needed for some configurations
	- OP-TEE can now be built with host-python-pillow as a
	  dependency, needed for some configurations.
	- OP-TEE source can now be retrieved from a custom tarball
	  URL.
	- Grub has been bumped to 2.06.

	Over 390 packages updated.

	New defconfigs: aspeed_ast2500evb, aspeed_ast2600evb,
	broadcom_northstar, canaan_kd233, qemu_riscv64_nommu_virt,
	sipeed_maix_bit, sipeed_maix_bit_sdcard, sipeed_maix_dock,
	sipeed_maix_dock_sdcard, sipeed_maix_go,
	sipeed_maix_go_sdcard, sipeed_maixduino,
	sipeed_maixduino_sdcard

	Removed defconfigs: andes_ae300, csky_gx6605s,
	friendlyarm_nanopi_neo, minnowboard_max-graphical

	New packages: clpeak, compiler-rt, crucible, dbus-broker, dht,
	double-conversion, dust, freeradius-server, gdal, hawktracer,
	hyperfine, libb2, libdeflate, libdill, mbw, mender-connect,
	minizip-zlib, nerdctl, ntpsec, opencl-hpp, opensc,
	python-alembic, python-appdirs, python-beniget,
	python-construct, python-dtschema, python-gast, python-kflash,
	python-lark, python-maturin, python-mypy-extensions,
	python-pylibfdt, python-pythran, python-pyrsistent,
	python-qrcode, python-rfc3987, python-rtoml,
	python-ruamel-yaml, python-scipy, python-typeguard,
	python-typing-inspect, python-zlmdb, qt6base, rtl8723ds,
	spirv-llvm-translator, tealdeer, uuu, vis-network, volk,
	wolftpm, zeek, zerofree

	Removed packages: rtl8723bs

	Issues resolved:

	#14556: python-crossbar fails to build
	#14951: boost compile error when running make  silently
	#14646: OpenSSH 8.9p1 compiler error under mipsel
	#14841: support/download/git fails with "fatal: No  such remote
		'origin'" due to incorrect check for origin remote
	#13356: libabseil-cpp: not building for raspberry pi
	#14911: host-python3 build needs python3 on the host
	#13831: mesa3d - kmsro driver requires dri3
	#13816: xstart failed since update the x11 libraries
	#13796: Problems compiling package gst-plugins-good
	#14191: patchelf v0.9 corrupt Nvidia shared  libraries
	#14891: sudo: group setup fails since commit  9b7f8da96b
	#14881: Watchdogd Package missing INSTALL_STAGING
	#14876: arm-trusted-firmware can no longer be  compiled with fPIE

2022.05.3, released October 2nd, 2022

	Important / security related fixes.

	Fixed compatibility issue with make 4.3 and the 'printvars' /
	'show-vars' commands.

	Dependencies: Ensure 'find' and 'xargs' are available on the
	build host.

	A large number of typo fixes.

	Defconfigs: Galileo: Fix defconfig syntax, Licheepi zero: Fix
	U-Boot dependencies, Bananapi m1, Olimx a20 olinuxino lime
	1+2, a33 olinuxino: Use standard FPU configuration, Pine 64
	sopine, Rockpro 64: Change to mainline ATF to fix build issue.

	Updated/fixed packages: ace, arm-trusted-firmware,
	babeltrace2, boost, botan, busybox, clamav, cog, containerd,
	cups, dhcpcd, directfb, docker-cli, docker-engine, connman,
	edk2, edk2-platform, elf2flt, expat, ffmpeg, ficl, freeswitch,
	gcc, gdb, git, glibc, gnutls, go, gocryptfs, graphicsmagick,
	grub2, gst1-plugins-bad, gst1-plugins-good, heirloom-mailx,
	icu, igh-ethercat, imagemagick, imx-gpu-viv, jack2, jose,
	jpeg, jquery-ui-themes, kodi, kvm-unit-tests, libcamera,
	libconfuse, libfreeimage, libglvnd, libgpg-error, libinput,
	libmdbx, libp11, libsepol, libtirpc, libupnp, libvirt,
	libvncserver, libwpe, libxml2, libzlib, linux, linux-tools,
	lshw, m4, makedevs, mali-driver, mariadb, memcached, mesa3d,
	minidlna, mosquitto, mutt, mv-ddr-marvell, ncurses, ne10,
	netsniff-ng, networkd-dispatcher, ocrad, ola, opencv4,
	openocd, openssh, openvmtools, pango, pcsc-lite, pistache,
	polkit, postgis, postgresql, python-crossbar,
	python-paho-mqtt, python-pygame, python-service-identity,
	python-txdbus, python3, qemu, qlibc,
	qoriq-cadence-dp-firmware, qt5xmlpatterns, ranger, redis,
	rng-tools, rsync, rsyslog, rtl8189es, rtl8723bu, runc, rustc,
	sconeserver, sdl2, snort, sox, sqlite, squid, stress-ng,
	strongswan, sunxi-mali-utgard-driver, sysdig, syslinux,
	syslog-ng, tcf-agent, tcpreplay, tesseract-ocr, tinyproxy,
	uacme, uboot-tools, uclibc, unzip, usbguard, v4l2loopback,
	vim, waffle, webkitgtk, weston, wolfssl, wpewebkit, xfsprogs,
	xserver_xorg-server, xtables-addons, zziplib

	Issues resolved:

	#13216: [Documentation] 2020.02.6 requires GNU find utils
	#14556: python-crossbar fails to build
	#14796: 64 bit time and seccomp conflict (OpenSSH server crash)
	#14951: boost compile error when running make  silently

2022.05.2, released August 31st, 2022

	Important / security related fixes.

	dependencies: Ensure 'cmp' is available on the build host.

	pkg-utils: The KCONFIG_ENABLE_OPT macro used to enforce a specific
	Kconfig option to be enabled (E.G. for kernel options needed by
	packages) no longer changes a =m (modular) with =y (built in).

	check-host-rpath: Silence readelf warnings when clang is used

	GCC 10.x updated to 10.4.0

	Defconfigs: Kria kv260: Fix u-boot configuration

	Updated/fixed packages: apg, arm-trusted-firmware, assimp,
	bayer2rgb-neon, bind, bird, cog, cwiid, diffutils, freerdp,
	fluidsynth, gcc, gdk-pixbuf, glibc, glslsandbox-player,
	gnupg2, gtest, i2pd, jack2, jquery-validation, jszip,
	kvm-unit-tests, libbsd, libcamera, libcurl, libest, libiio,
	libkrb5, libopenssl, libp11, libpsl, libwebsockets, localedef,
	luasyslog, lxc, mbedtls, mstpd, mutt, netdata, netsniff-ng,
	nodejs, nvidia-driver, ola, openssl, opkg-utils, paho-mqtt-c,
	pango, pcsc-lite, perl, perl-crypt-openssl-rsa, pimd, poppler,
	postgis, powerpc-utils, pppd, protobuf-c, pulseaudio,
	python-bottle, python-django, python-lxml, python3, qt5webkit,
	redis, rpi-userland, rsyslog, runc, rustc, sconeserver,
	sg3_utils, shadowsocks-libev, stellarium, suricata, swupdate,
	tcpreplay, uacme, uclibc, v4l2loopback, webkitgtk,
	wilc-driver, wine, wpewebkit, xdg-dbus-proxy,
	xserver_xorg-server, zeromq, zfs, zlib-ng

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

	#13796: Problems compiling package gst-plugins-good

2022.05.1, released July 24th, 2022

	Important / security related fixes.

	Disable big endian no-mmu on ARM as it is not supported by
	elf2flt.

	Tighten dependencies for external Bootlin toolchains to ensure
	they can only be selected in compatible configurations.

	Support external toolchains without gdbserver.

	Updated/fixed packages: apache, avahi, bdwgc, bind, bpftool,
	cups, darkhttpd, dmalloc, ecryptfs-utils, fxload, ghostscript,
	gnutls, gst-omx, gst1-devtools, gst1-libav, gst1-plugins-base,
	gst1-plugins-bad, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, gtest, iptables, keyutils, lcms2,
	libabseil-cpp, libcamera, libcurl, libeastl, libgpgme,
	libgtk3, libmdbx, libmediaart, libmodsecurity, libnetconf2,
	libopenssl, libpjsip, libsamplerate, libsndfile, libtalloc,
	logrotate, luajit, nginx, noip, paxtest, php, postgresql,
	procrank_linux, pure-ftpd, python-pillow, qdecoder,
	rabbitmq-server, rpi-userland, ruby, rustc, sofia-sip,
	systemd, tcpreplay, tinyproxy, tor, uacme, uboot-tools, vim,
	watchdogd, webkitgtk, weston, wireguard-linux-compat,
	wpa_supplicant, wpewebkit, zstd

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

	#14881: Watchdogd Package missing INSTALL_STAGING

2022.05, released June 6th, 2022

	Fixes all over the tree.

	Rework BR2_STATIC_LIBS handling to ensure it can only be
	enabled if a suitable C library is available.

	Updated/fixed packages: arm-trusted-firmware, at91bootstap,
	boinc, boost, cpulimit, diffutils, edk2, eigen, fbv, gcr,
	gensio, glibc, go, gtest, iucode-tool, kvm-unit-tests, libcec,
	libcurl, libks, linux, linux-tools, lttng-modules, mariadb,
	memcached, mono, musl, mutt, netdata, network-manager, nginx,
	ogre, openjpeg, openvpn, pipewire, python-crossbar, qemu,
	qpid-proton, rauc, rockchip-mali, rsyslog,
	rtl8812au-aircrack-ng, ruby, runc, rustc, samba4, tiff,
	uclibc, unrar, vim, webkitgtk, wpewebkit,
	xdriver_xf86-video-ati, xml-security-c, zchunk, zlib-ng

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

	#14821: Samba server is failing to compile
	#14826: make qemu_x86_64_defconfig stopped working

2022.05-rc2, released May 30th, 2022

	Fixes all over the tree.

	Defconfigs: qemu_ppc64*: Use binutils 2.36.1 to fix build
	issue, qemu_arm_vexpress_tz: Fix optee-os build issue,
	qemu_arm_versatile_nommu: Drop now that nommu for ARMv5 is no
	longer available

	Updated/fixed packages: dhcp, edk2, gcr, glibc, i2pd, janet,
	janus-gateway, libfreeimage, libnftnl, libnss, libodb-boost,
	libostree, libwebsockets, linux-tools, midori, ntfs-3g, ola,
	optee-client, pcsc-lite, pipewire, python-flask,
	python-service-identity, python-werkzeug, qemu, rng-tools,
	rockchip-mali, strace, xdriver_xf86-video-amdgpu

	Removed packages: ktap

2022.05-rc1, released May 18th, 2022

	Fixes all over the tree and new features.

	Toolchain:
	- glibc update to 2.35, musl updated to 1.2.3
	- gcc 11.x updated to 11.3, support for external gcc 12.x
	- binutils 2.38 added, 2.32/2.35.2 removed, default changed to 2.37
	- s390x Bootlin external toolchain added
	- 5.17.x kernel headers support added

	Filesystem:
	- Rework OCI entrypoint/command logic to handle command arguments
	- Squashfs block size is now configurable

	Graphs: Also generate a build time timeline graph (for top
	level parallel builds).

	scripts/pkg-stats: Optimize memory consumption for CPE parsing

	Fix compatibility issue with the fakeroot script logic and
	modern versions of dash.

	Change git:// URLs pointing to Github to https://, now that
	Github has turned off support for git://

	New defconfigs: Octavo osd32mp1_brk / osd32mp1_red

	New packages: falcosecurity-libs, lzma-alone, octave,
	python-flit-core, python-orjson, python-pydevmem,
	qt5webengine-chromium, qt5webengine-chromium-catapult, ragel,
	tbb, wilc-driver, wtfutil

	Wilc1000-firmware renamed to wilc-firmware

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

	#14596: package dialog is outdated and contains a bug
	#14651: OpenSSH 8.9p1 compiler error under ARM
	#14656: Adding dependencies from an external tree does not work
	#14661: Fakeroot script relies on bash-isms, does not work with..
	#14681: QT5WEBENGINE not building
	#14686: genimage.cfg have a hard-coded .ext4 extension which..
	#14701: Multiple unresolved symbols while building kernel ..
	#14706: nodjs build problem
	#14711: nodjs build problem missing bzip
	#14721: python-argon2_cffi no longer works
	#14731: BR2_PACKAGE_IOSTAT
	#14751: LVM2 Outdated Link

2022.02.12, released May 5th, 2023

	Important / security related fixes.

	Updated/fixed packages: agentpp, apache, ca-certificates,
	containerd, coremark, dcron, eudev, ffmpeg, git,
	intel-microcode, kexec, lcdproc, libmicrohttpd, libosmium,
	libxml2, linux-tools, matio, osm2pgsql, poppler, postgresql,
	protozero, python-web2py, runc, s390-tools, samba4, snmppp,
	sudo, tcpdump, uclibc, vim, webkitgtk, wpewebkit,
	xserver_xorg-server

2022.02.11, released March 19th, 2023

	Important / security related fixes.

	Updated/fixed packages: apache, apr, apr-util, asterisk,
	at91dataflashboot, audit, bash, bind, bridge-utils, clamav,
	dmalloc, exfat, exfat-utils, f2fs-tools, gcc, git,
	glslsandbox-player, go, haproxy, intel-gmmlib, ipmiutil, less,
	libblockdev, libcurl, libev, libgcrypt, libmad, libmdbx,
	libmodsecurity, libolm, libpjsip, lttng-babeltrace, mender,
	mpv, mutt, mxs-bootlets, opensbi, opus, paho-mqtt-c,
	pcm-tools, php, proxychains-ng, python-django,
	python-m2crypto, python-werkzeug, quazip, quickjs,
	rockchip-mali, rsync, sudo, tiff, uacme, uqmi, webkitgtk,
	wpebackend-fdo, wpewebkit, xdriver_xf86-video-qxl, znc

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

	#15306: glibc build fails in Docker container
	#15361: Buildroot linking error on Apple Silicon

2022.02.10, released March 1st, 2023

	Important / security related fixes.

	Fix make O=..._defconfig builds (regression in 2022.02.9).

	A number of additional/stricter checks have been added to
	./utils/check-package.

	Build host dependencies check extended to check for a number
	of specific perl modules to better handle distributions (like
	Fedora) with very fine grained perl packages. Also ensure
	build host has git >= 2.0.0 when using packages written in
	go/rust because the vendoring may need it.

	Defconfigs: ASUS tinker rk3288: Fix boot issue related to TPL

	Updated/fixed packages: afboot-stm32, apache, barebox, c-ares,
	elf2flt, freeswitch, fwts, gcc, git, kodi, libgit2, libks,
	libopenssl, live555, lua, lxc, mesa3d-headers, modsecurity2,
	netopeer2, openjdk, openpowerlink, openvpn, opusfile,
	postgresql, pugixml, python-future, qt5, sdl2, sofia-sip,
	ssdp-responder, sudo, sunxi-mali-utgard, ti-sgx-km, tmux,
	uboot, upx, vim, webkitgtk, wolfssl, wpewebkit, xlib_libXpm,
	xserver_xorg-server, xxhash, xz, yajl, zabbix

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

	#15271: no start-qemu.sh
	#15291: BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS without location
	#15301: Selecting NAND Flash boot media (NAND_BOOT) breaks the uboot..

2022.02.9, released January 18th, 2023

	Important / security related fixes.

	Br2-external: Fix make performance issue when many (> 6)
	external trees are used together.

	Erofs: Use fixed timestamp and UUID when BR2_REPRODUCIBLE is
	used.

	Go: Ensure our go build and module cache is used, even for the
	download step.

	Legal-info: Stop warning about not saving sources for local /
	override packages if <PKG>_REDISTRIBUTE is set to NO.

	Linux: Fix build of < 5.6 kernels with host-gcc >= 10.

	A large number of NXP related packages and defconfigs have
	been updated as upstream moved the git repositories to Github.

	Updated/fixed packages: asterisk, bearssl, botan, cairo,
	capnproto, check, checkpolicy, connman, containerd,
	docker-cli, docker-engine, exempi, exfat, exfat-utils, fmc,
	fmlib, glib-networking, go, gobject-introspection, gperf,
	i2pd, ima-evm-utils, imx-alsa-plugins, imx-kobs, imx-lib,
	imx-m4fwloader, imx-mkimage, intel-microcode, janus-gateway,
	libcurl, libftdi1, libksba, libmbim, libmng, libpjsip,
	libtalloc, libuwsc, libxkbcommon, linux, lpeg, lrzsz,
	lttng-tools, lua-cqueues, mbedtls, mfgtools, mutt, php,
	policycoreutils, polkit, postgresql, pptp-linux,
	qcom-db410c-firmware, qemu, qoriq-rcw, qt5virtualkeyboard,
	rhash, rtl_433, ruby, sqlite, swupdate, tekui, tiff, tinyxml,
	tor, wayland, wireshark, wpa_supplicant,
	xdriver_xf86-video-imx-viv, xserver_xorg-server, xxhash, zip

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

	#14971: Kernel 3.10.108 fail to build in Buildroot 2022.08-rc1
	#14996: Too many directories in BR2_EXTERNAL causes hang during make
	#15161: kernel can't support SUBDIR
	#15196: Setting BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE does not work
	#15226: lsblk: not found

2022.02.8, released December 10th, 2022

	Important / security related fixes.

	Updated/fixed packages: asterisk, dash, dovecot,
	dovecot-pigeonhole, edk2, edk2-platforms, elf2flt, exim,
	freerdp, gcc, gdb, git, gnupg2, heimdal, iwd, kodi,
	libarchive, libmdbx, libkrb5, libksba, libopenssl, memcached,
	netsnmp, nginx, openpgm, optee-client, python3, rsync,
	rtl8723bu, samba4, sdl, sdl2, swupdate, sysstat, systemd,
	uboot, vim, vlc, xen, xterm

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

	#15131: Target GDB uses internal zlib

2022.02.7, released November 17th, 2022

	Important / security related fixes.

	Defconfig: Pine64: Change to mainline ATF to fix build
	issue, Zynqmp zcu102 / zcu106: Fix pmufw reset issue

	Updated/fixed packages: arm-trusted-firmware, bind, botan,
	collectd, darkhttpd, dbus, dhcp, dnsmasq, docker-cli,
	docker-engine, exfatprogs, expat, f2fs-tools, faad2, ffmpeg,
	freerdp, gnutls, go, gpsd, grub2, gsl, gst-omx, gst1-devtools,
	gst1-libav, gst1-plugins-bad, gst1-plugins-base,
	gst1-plugins-good, gst1-plugins-ugly, gst1-python,
	gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, hdparm, hostapd, imagemagick,
	iwd, jack2, libbpf, libcurl, libfribi, libidn2, libinput,
	libmdbx, libopenssl, libosip2, libpng, libtasn1,
	libtorrent-rasterbar, libuhttpd, libvncserver, libxml2, linux,
	linux-tools, lldpd, lrzip, lz4, matchbox-startup-monitor,
	msmtp, multipath-tools, mupdf, musl, mv-ddr-marvell, mxml,
	nodejs, ntfs-3g, numactl, openvmtools, oracle-mysql,
	paho-mqtt-c, perl-net-ssleay, php, pixman, poppler, procps-ng,
	python-django, python3, qdecoder, rpi-userland, rsync,
	rtl8189es, rtl8189fs, rtl8723bu, rtl8812au-aircrack-ng,
	rtl8821au, rtl_433, samba4, shapelib, socat, squid, sqlite,
	squashfs, strongswan, sudo, swupdate, timescaledb, u-boot,
	uclibc-ng-test, udisks, uftp, uhd, umtprd, vim, wavemon,
	wireguard-linux-compat, wolfssl, wpa_supplicant, wpewebkit,
	zlib-ng, zsh

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

	#15026: package/udisks: install to staging
	#15061: Node.js Package fails to build against musl i386

2022.02.6, released October 2nd, 2022

	Important / security related fixes.

	Fixed compatibility issue with make 4.3 and the 'printvars' /
	'show-vars' commands.

	Dependencies: Ensure 'find' and 'xargs' are available on the
	build host.

	A large number of typo fixes.

	Defconfigs: Galileo: Fix defconfig syntax, Licheepi zero: Fix
	U-Boot dependencies, Bananapi m1, Olimx a20 olinuxino lime
	1+2, a33 olinuxino: Use standard FPU configuration, Pine 64
	sopine, Rockpro 64: Change to mainline ATF to fix build issue.

	Updated/fixed packages: ace, arm-trusted-firmware,
	babeltrace2, boost, botan, busybox, clamav, cog, connman,
	containerd, cups, dhcpcd, directfb, docker-cli, docker-engine,
	edk2, edk2-platforms, elf2flt, expat, ffmpeg, ficl,
	freeswitch, freetype, gcc, gdb, git, gnutls, go,
	graphicsmagic, grub2, gst1-plugins-bad, gst1-plugins-good,
	heirloom-mailx, icu, igh-ethercat, imagemagick, imx-gpu-viv,
	jose, jpeg, jquery-ui-themes, kodi, libconfuse, libfreeimage,
	libglvnd, libgpg-error, libinput, libmdbx, libsepol, libtirpc,
	libupnp, libvirt, libvncserver, libwpe, libxml2, libzlib,
	linux, linux-tools, lshw, m4, makedevs, makedumpfile,
	mali-driver, mariadb, memcached, mesa3d, minidlna, mosquitto,
	mutt, mv-ddr-marvell, ncurses, ne10, netsniff-ng,
	networkd-dispatcher, ocrad, opencv4, openocd, openssh, pango,
	pcsc-lite, polkit, postgis, postgresql, python-paho-mqtt,
	python-pygame, python3, qemu, qlibc,
	qoriq-cadence-dp-firmware, qt5xmlpatterns, ranger, rng-tools,
	rsync, rsyslog, rtl8189es, rtl8723be, runc, rustc,
	sconeserver, sdl2, snort, sox, sqlite, squid, stress-ng,
	strongswan, sunxi-mali-utgard-driver, syslinux, syslog-ng,
	tcf-agent, tcpreplay, tesseract-ocr, tinyproxy, uacme,
	uboot-tools, uclibc, unzip, usbguard, v4l2loopback, vim,
	webkitgtk, wolfssl, wpewebkit, xfsprogs, xserver_xorg-server,
	xtables-addons, zziplib

	Issues resolved:

	#13216: [Documentation] 2020.02.6 requires GNU find utils
	#14796: 64 bit time and seccomp conflict (OpenSSH server crash)
	#14951: boost compile error when running make silently

2022.02.5, released August 31st, 2022

	Important / security related fixes.

	dependencies: Ensure 'cmp' is available on the build host.

	pkg-utils: The KCONFIG_ENABLE_OPT macro used to enforce a specific
	Kconfig option to be enabled (E.G. for kernel options needed by
	packages) no longer changes a =m (modular) with =y (built in).

	check-host-rpath: Silence readelf warnings when clang is used

	GCC 10.x updated to 10.4.0

	Updated/fixed packages: apg, arm-trusted-firmware, assimp,
	bayer2rgb-neon, bind, bird, cog, cwiid, diffutils, fluidsynth,
	freerdp, gcc, glibc, glslsandbox-player, gdk-pixbuf, gnupg2,
	gtest, i2pd, jack2, jquery-validation, jszip, libbsd, libcamera,
	libcurl, libest, libiio, libkrb5, libopenssl, libpsl,
	luasyslog, lxc, mbedtls, mstpd, mutt, netdata, netsniff-ng,
	nodejs, nvidia-driver, openssl, opkg-utils, paho-mqtt-c,
	pango, pcsc-lite, perl, pimd, poppler, postgis, powerpc-utils,
	pppd, protobuf-c, pulseaudio, python-bottle, python-django,
	python-lxml, python3, qt5webkit, rpi-userland, rsyslog, runc,
	rustc, sconeserver, sg3_utils, shadowsocks-libev, suricata,
	tcpreplay, uacme, uclibc, v4l2loopback,, webkitgtk, wine,
	wpewebkit, xdg-dbus-proxy, xserver_xorg-server, zeromq, zfs,
	zlib-ng

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

	#13796: Problems compiling package gst-plugins-good
	#14926: package/nodejs: build for host fails with GTEST errors

2022.02.4, released July 28th, 2022

	Important / security related fixes.

	Disable big endian no-mmu on ARM as it is not supported by
	elf2flt.

	Tighten dependencies for external Bootlin toolchains to ensure
	they can only be selected in compatible configurations.

	Support external toolchains without gdbserver.

	Updated/fixed packages: apache, avahi, bdwgc, bind, bpftool,
	cups, darkhttpd, dmalloc, ecryptfs-utils, fxload, ghostscript,
	gnutls, gst-omx, gst1-devtools, gst1-libav, gst1-plugins-base,
	gst1-plugins-bad, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, gtest, iptables, keyutils, lcms2,
	libabseil-cpp, libcamera, libcurl, libeastl, libgpgme,
	libgtk3, libmdbx, libmediaart, libmodsecurity, libnetconf2,
	libopenssl, libpjsip, libsamplerate, libsndfile, libtalloc,
	logrotate, luajit, nginx, noip, paxtest, php, postgresql,
	procrank_linux, pure-ftpd, python-pillow, qdecoder,
	rabbitmq-server, rpi-userland, rustc, sofia-sip, systemd,
	tcpreplay, tinyproxy, tor, uacme, uboot-tools, vim, watchdogd,
	webkitgtk, wireguard-linux-compat, wpa_supplicant, wpewebkit,
	zstd

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

	#14881: Watchdogd Package missing INSTALL_STAGING

2022.02.3, released June 19th, 2022

	Important / security related fixes.

	Infrastructure: Fix building under paths containing regex
	characters (E.G. '+')

	Toolchain: Only allow ppc64le variants for which a
	glibc/musl/uclibc toolchain is supported.
	Mark codescape mti/img mips toolchains as shared library only
	(glibc).

	Updated/fixed packages: arm-trusted-firmware,
	at91dataflashboot, boinc, dhcp, diffutils, edk2, fbv, gensio,
	glibc, go, gtest, iucode-tool, janet, libcec, libcurl,
	libfreeimage, libnftnl, libodb-boost, linux, linux-tools,
	lttng-modules, mariadb, memcached, mono, mutt,
	network-manager, nginx, ntfs-3g, ogre, openjpeg, openvpn,
	qemu, qpid-proton, qt5webengine, rauc, rockchip-mali, rsyslog,
	ruby, runc, rustc, samba4, strace, tiff, uclibc, unrar, vim,
	webkitgtk, wpewebkit, xdriver_xf86-video-amdgpu,
	xdriver_xf86-video-ati, zlib-ng

	New packages: qt5webengine-chromium,
	qt5webengine-chromium-catapult

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

	#14766: package dhcp on buildroot 2022.02.1 failed
	#14821: Samba server is failing to compile
	#14826: make qemu_x86_64_defconfig stopped working

2022.02.2, released May 29th, 2022

	Important / security related fixes.

	Archictures: Drop sh2a, correct x86 Bonnell variant

	Toolchain: Bump GCC 11.x to 11.3, correct pre-installed
	external toolchain logic when toolchain is available in path.

	Rework OCI filesystem entrypoint/command logic to handle
	command arguments

	Defconfigs: Update Zynqmp zcu102/106 to final 2022.1 release,
	fix zcu106 PLL config

	Updated/fixed packages: adwaita-icon-theme, afboot-stm32,
	aircrack-ng, alchemy, alsa-lib, arptables, assimp, asterisk,
	aubio, avrdude, azure-iot-sdk-c, batman-adv, binutils,
	bpftool, brotli, cairo, cifs-utils, clamav, cryptodev-linux,
	dhcp, diffutils, dmalloc, duktape, e2fsprogs, elf2flt, espeak,
	expat, ffmpeg, fluidsynth, freerdp, gcc, git, glorytun,
	glslsandbox-player, gnutls, go, gst1-imx, gst1-plugins-good,
	gzip, imagemagick, janus-gateway, keepalived, kompexsqlite,
	kvm-unit-tests, libarchive, libcgi, libcurl, libevdev,
	libeXosip2, libhtp, libinput, libkcapi, libkrb5, libks,
	libmdbx, libmnl, libnpupnp, libnspr, libopenssl, liboping,
	libpjsip, libpri, libselinux, libsigsegv, libv4l,
	libwebsockets, libxml2, linux, linux-tools, ltp-testsuite,
	luajit, lvm2, mali-driver, mariadb, mc, minizip, mpd, mutt,
	netatalk, netsurf, network-manager, nodejs, numactl, nut,
	omniorb, openbox, opencv4, openjdk, openjdk-bin, openocd,
	pamtester, pango, pcre2, php, php-apcu, pinentry, pixman,
	polkit, postgis, postgresql, pure-ftpd, python-aenum,
	python-avro, python-django, python-pillow, python-simplejson,
	python-urllib3, python-zopfli, python3, qemu, qpdf, quazip,
	redis, rockchip-mali, rsync, rt-tests, rust, rtl8818eu,
	rtl8189es, rtl8189fs, rtl_433, sam-ba, samba4, sdl2_ttf,
	shadowsocks-libev, shim, subversion, sun20i-d1-spl, suricata,
	systemd, tftpd, trinity, tvheadend, udev, uftrace,
	urandom-scripts, usb_modeswitch, valgrind, vde2, vim,
	wireplumber, wolfssl, wpa_supplicant, xlib_libXfont2, xz,
	zlib, zlog

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

	#14751: LVM2 Outdated Link

2022.02.1, released April 11th, 2022

	Important / security related fixes.

	Graphs: Also generate a build time timeline graph (for top
	level parallel builds).

	scripts/pkg-stats: Optimize memory consumption for CPE parsing

	Fix compatibility issue with the fakeroot script logic and
	modern versions of dash.

	Change git:// URLs pointing to Github to https://, now that
	Github has turned off support for git://

	Updated/fixed packages: ace, apache, apr, apr-util, belr,
	bind, bluez5_utils, boinc, bpftool, busybox, cloop, cog,
	containerd, cppcms, dav1d, dhcp, dieharder, dnsmasq,
	docker-cli, docker-engine, efl, ell, fakeroot, flac,
	fluidsynth, gdk-pixbuf, glib-networking, gnutls, gst-omx,
	gst1-devtools, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, haproxy, htop, intel-gmmlib,
	ipmiutil, iwd, jack1, jack2, lftp, libabseil-cpp, libbluray,
	libcamera-apps, libcoap, libcurl, libest, libgee, libglib2,
	libgtk3, libiec61850, libkrb5, libminiupnpc, libodb,
	libodb-boost, libopenssl, libp11, libpsl, libressl, librstp,
	librtlsdr, liburing, libyang, libzlib, luasec, lxc, matio,
	meson, minidlna, minizip, mpd, mtools, netatalk, nbd, odb,
	openblas, openssh, openvpn, optee-os, opus, paho-mqtt-c,
	pango, php, pipewire, pkcs11-helper, postgresql, ppp,
	protozero, python-aioconsole, python-avro, python-brotli,
	python-greenlet, python-paramiko, python-pillow,
	python-rpi-gpio, python-treq, python-twisted, python-ujson,
	python-weasyprint, qt5base, qt5wayland, raptor, rpi-firmware,
	rpi-userland, rtl_433, runc, rust, rygel, samba4,
	shairport-sync, spice, spidev_test, stunnel, systemd,
	timescaledb, trace-cmd, trousers, ts4900-fpga, tvheadend,
	udpcast, unbound, upower, urandom-scripts, usbguard, valgrind,
	valijson, vim, wavpack, wget, wireplumber, wireshark, woff2,
	xmrig, zabbix, zlib-ng, zynaddsubfx, zziplib

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

	#13971: ip6tables-nft build does not include MASQUERADE target..
	#14651: OpenSSH 8.9p1 compiler error under ARM
	#14656: Adding dependencies from an external tree does not work
	#14661: Fakeroot script relies on bash-isms, does not work ..
	#14686: genimage.cfg have a hard-coded .ext4 extension which..
	#14701: Multiple unresolved symbols while building kernel ..
	#14711: nodjs build problem missing bzip
	#14731: BR2_PACKAGE_IOSTAT

2022.02, released March 8th, 2022

	Various fixes.

	Fixes to cargo and golang packaging infrastructure.

	Defconfigs: OrangePi RK3399: Fix genimage format

	Updated/fixed packages: azure-iot-sdk-c, bpftool, cog,
	directfb, directfb-examples, dnsmasq, docker-engine, expat,
	freerdp, frr, gdb, ghostscript, glib-networking, go, haproxy,
	hostapd, kf5-extra-cmake-modules, kf5-kcoreaddons,
	kf5-modemmanager-qt, kf5-networkmanager-qt, libcamera-apps,
	libgee, libglfw, librstp, libtorrent, libvirt, libxslt, linux,
	mariadb, oprofile, osm2pgsql, pulseview, python-cryptography,
	python-gnupg, python-treq, qt5base, qt5webkit, rauc, re2,
	rygel, safeclib, sconeserver, seatd, sord, upmpdcli,
	util-linux, weston, wpa_supplicant, xdriver_xf86-video-mach64,
	xdriver_xf86-video-nouveau, xdriver_xf86-video-qxl,
	xscreensaver, zabbix

	New packages: gdk-pixbuf-xlib

	Removed packages: python-pycli

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

	#13126: make fails - bzip2-1.0.6.tar.gz and DirectFB-1.7.7.tar..
	#14611: 2022.02-rc2: Build of BR2_x86_64 with BR2_LINUX_KERNEL_..
	#14631: host-go-bootstrap: go not being built for package in ..
	#14636: azure-iot-sdk-c: Installed headers do not compile
	#14641: oprofile can not find the events files

2022.02-rc3, released February 28th, 2022

	Fixes all over the tree.

	Defconfigs: Xilinx zynqmp zcu102/zcu106: Fix U-Boot DTS config

	Updated/fixed packages: bluez5_utils, bpftool, dbus, exempi,
	flac, freerdp, frr, gnutls, libpjsip, libxml2, mariadb,
	openssh, python-twisted, qt5webkit, samba4, vim, weston,
	wireshark, wolfssl, xdg-dbus-proxy, xterm,

2022.02-rc2, released February 20th, 2022

	Fixes all over the tree.

	Defconfigs: Friendlyarm Nanopi R2S: Fix U-Boot build, Kontron
	BL i.MX8M Mini: Fix U-Boot build, PC Engines APU2: Fix Linux
	build, ROC-RK3399-PC: Bump rootfs size to fix build

	Updated/fixed packages: apache, apparmor, apr-util, arp-scan,
	binutils, bluez5_utils, connman, cryptsetup, dnsmasq,
	dovecot-pigeonhole, expat, gdk-pixbuf, gst1-plugins-base,
	guile, keepalived, kodi, libbpf, libglvnd, libgsasl, libiconv,
	librsvg, libuhttpd, libusb, libv4l, luasyslog, mongrel2, neon,
	pcre, perl-netaddr-ip, php, psmisc, python-ipython,
	python-pycli, python-pygame, python-regex, python-twisted,
	qt5location, qt5webkit, resiprocate, rygel, safeclib,
	sdl2_ttf, socketcand, strongswan, sudo, systemd, toolchain,
	urg, webkitgtk, wireless-regdb, wpewebkit,
	xdriver_xf86-video-{ati,mach64,mga,r128,savage,tdfx}, xz, zfs,
	zsh

2022.02-rc1, released February 13th, 2022

	Numerous package updates and many (80) new packages.

	Toolchain:
	- glibc: Optional support for compatibility shims for running
          on older kernels than what glibc has been built against
	- uClibc: Use uClibc-ng 1.0.40
	- External toolchains: Update Bootlin toolchains to 2021.11-1
          version

	Python 2.7 and python 2.x specific packages removed as python
	2.x is EOL since April 2020. Likewise a number of python3
	specific host packages has been renamed (host-python-foo
	instead of host-python3-foo) now host-python is always python
	3.x.

	Cargo (Rust) package infrastructure added. Vendoring support
	added to golang package infrastructure.

	New defconfigs: FriendlyARM NanoPi R2S, Kontron BL i.MX8M
	Mini, Microchip Sama7g7ek, Olimex STMP157 OlinuXino LIME2,
	QEMU PPC Bamboo, PPC64 PowerNV, Raspberry Pi Zero 2W, Spike
	Riscv64, Xilinx zcu102

	Removed defconfigs: Synopsys arch38 VDK, aarch64 VDK

	New packages: ace, alchemy, alfred, bat, bento4, bmx7,
	bpftool, brcmfmac_sdio-firmware-rpi, cfm, cups-pk-helper,
	davinci-bootcount, dbus-cxx, embiggen-disk, freeipmi,
	gocryptfs, kodi-pvr-plutotv, kodi-pvr-waipu, ksmbd-tools,
	libcamera-apps, libest, libexecinfo, libfutils, libglvnd,
	libks, libmd, libopenaptx, libpeas, libshdata, liburing, lilv,
	lua-argon2, lua-cffi, lua-inotify, lv2, mali-driver,
	moby-buildkit, modsecurity2, networkd-dispatcher, pahole,
	php-apcu, php-lua, php-pam, python-argon2-cffi-bindings,
	python-cssselect2, python-distro, python-fonttools,
	python-gnupg, python-installer, python-memory-profiler,
	python-mpd2, python-pep517, python-pydyf, python-pypa-build,
	python-pyphen, python-tinycss2, python-tomli,
	python-weasyprint, python-zopfli, qoriq-cadence-dp-firmware,
	riscv-isa-sim, rockchip-mali, rpi-rgb-led-matrix, sdbus-cpp,
	sentry-cli, serd, simple-mail, sord, sratom,
	sunxi-mali-utgard, sunxi-mali-utgard-driver, tinifier, ulog,
	vulkan-headers, xlib_libxcvt, zabbix, zchunk, zynaddsubfx

	Removed packages: gstreamer1-mm, python, python-backports-abc,
	python-backports-functools-lru-cache,
	python-backports-shutil-get-terminal-size,
	python-backports-ssl-match-hostname, python-configobj,
	python-dialog, python-enum, python-enum34, python-functools32,
	python-futures, python-id3, python-ipaddr, python-ipaddress,
	python-mad, python-nfc, python-pam, python-pathlib2,
	python-pycap, python-pyro, python-singledispatch,
	python-subprocess32, python-typing, python-yieldfrom,
	qt5webkit-examples, rpi-bt-firmware, rpi-wifi-firmware,
	sunxi-mali-mainline, sunxi-mali-mainline-driver, zynq-boot-bin

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

	#12271: python-iptables runtime dependencies
	#13436: PPP 2.4.9 is out
	#14351: needs to mount sysfs before mount -a
	#14451: nodejs won't build on Fedora 35
	#14471: alsa_utils wrong deployment
	#14501: lttng-modules v2.11 package fails to build
	#14531: Package EFL - build error

2021.11.3, released March 24th, 2022

	Important / security related fixes.

	Updated/fixed packages: apache, azure-iot-sdk-c, boinc, dbus,
	directfb, docker-engine, exempi, expat, flac, gdb, gdk-pixbuf,
	gnutls, go, haproxy, libcurl, libiec61850, libminiupnpc,
	libodb, libodb-boost, libopenssl, libpjsip, libressl, librsvg,
	libsrtp, libvirt, libxml2, libxslt, lxc, mariadb, minidlna,
	odb, openblas, openvpn, oprofile, php, pppd, python-ipython,
	python-twisted, raptor, rpi-firmware, samba4, seatd,
	timescaledb, usbguard, util-linux, vim, wavpack,
	wireless-regdb, wireplumber, wireshark, wolfssl, xscreensaver,
	xterm, zsh

	New packages: gdk-pixbuf-xlib

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

	#13126: make fails - bzip2-1.0.6.tar.gz and DirectFB-1.7.7.tar..
	#14636: azure-iot-sdk-c: Installed headers do not compile
	#14641: oprofile can not find the events files

2021.11.2, released February 28th, 2022

	Important / security related fixes.

	Defconfigs: Andes ae3xx, Intel galileo: Fix build with host
	gcc >= 10, ROC-RK3399-PC: Bump rootfs size to fix build issue.

	Add conditional patching logic to fix build issues for older
	U-Boot / Linux kernel versions when built with a host gcc >=
	10.

	Updated/fixed packages: apitrace, binutils, casync, cgilua,
	connman, expat, gauche, gdb, gensio, glibc, go, gst-omx,
	gst1-devtools, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, kf5-extra-cmake-modules, kodi,
	libarchive, linux, lm-sensors, localedef, log4cxx, mpd,
	nfs-utils, php, pistache, pkcs11-helper, prosody,
	python-django, python-pyzmq, python-regex,
	python-sqliteschema, resiprocate, rtl8723bu, thermald, tiff,
	tor, util-linux, vim, xen

2021.11.1, released January 29th, 2022

	Important / security related fixes.

	check-package: Improve variable override check

	pkg-stats: List CVEs where the version info cannot be parsed
	as unsure rather than completely ignoring them.

	Defconfigs: Beaglebone: Support BeagleBone black wireless,
	stm32f469_xip_disco: Fix kernel boot

	Updated/fixed packages: alsa-utils, apache, binutils, cage,
	capnproto, civetweb, clamav, collectd, connman, containerd,
	coreutils, dav1d, docker-cli, docker-engine, erlang,
	erlang-rebar, expat, findutils, flare-engine, flare-game,
	font-awesome, freeswitch, gcc, ghostscript, glibc, gnuchess,
	go, grpc, gst1-interpipe, gst1-rtsp-server, gupnp-tools,
	hackrf, icu, imagemagick, janus-gateway, json-for-modern-cpp,
	keepalived, lapack, libdbi, libiio, libjpeg, libmbim, libnss,
	libopenssl, libpjsip, libqmi, liburiparser, libvirt,
	linux-pam, lxc, mbedtls, mender, mongodb, mpd-mpc, mutt,
	nodejs, openblas, pcre2, php, pipewire, polkit, privoxy,
	prosody, python-charset-normalizer, python-django,
	python-idna, python-lxml, python-pyqt5, python-requests,
	python-urllib3, python3, qt5base, qt5location, rhash,
	rng-tools, ruby, runc, rustc, samba4, sofia-sip, targetcli-fb,
	tcpreplay, tinyxml, tor, tpm2-tss, util-linux-libs, vim, vlc,
	wireshark, xapp_xauth, xapp_xinput-calibrator, xen, xenomai,
	xlib_libX11, xserver_xorg-server

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

	#14451: nodejs won't build on Fedora 35
	#14471: alsa_utils wrong deployment

2021.11, released December 5th, 2021

	Various fixes.

	Defconfigs: Grinn chiliboard/liteboard, PC x86-64 bios: Fix
	build

	Updated/fixed packages: apr, coreutils, diffutils, e2fsprogs,
	exfat, freeswitch, gnupg, grub2, gstreamer1, guile, heimdal,
	hiawatha, hplip, icu, janus-gateway,
	kodi-screensaver-asterwave, kodi-screensaver-cpblobs,
	kodi-screensaver-matrixtrails, libatomic_ops, libbson, libffi,
	libgdiplus, libgee, libhtp, libite, libnspr, libnss,
	libunwind, lynx, mender-grubenv, mkpasswd, motion, mxml,
	netdata, qemu, samba4, speex, stress-ng, tinydtls, unixodbc,
	unrar, util-linux, util-linux-libs, watchdogd, wireshark

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

	#14351: needs to mount sysfs before mount -a
	#14411: 2021.11-rc2: Samba doesn't compile

2021.11-rc3, released November 30th, 2021

	Fixes all over the tree.

	Defconfigs: Nitrogen8mp: Fix Linux build, Zynqmp-zxu106: Fix
	ATF build

	Updated/fixed packages: asterisk, automake, gdb, glorytun,
	gmp, hackrf, libgee, libglib2, libmodsecurity, libosmium,
	libressl, lighttpd, linux, micropython, mosquitto, mtd,
	nfs-utils, nss-myhostname, pcre, php, poco, pure-ftpd,
	python-cycler, qemu, qdecoder, smack, smcroute, spidev_test,
	strace, syslinux, toolchain, uboot, uhd, vim, websocketpp,
	wireshark, xcursor-transparent-theme, xscreensaver,
	xtables-addons

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

	#14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD..

2021.11-rc2, released November 19th, 2021

	Fixes all over the tree.

	Coding style fixes for a large number of board genimage
	configuration files for clarity and consistency.

	Defconfigs: Acmesystems Aria/Arietta g25, Armadeus
	apf28/apf51, beagleboneai, Olimx a64, rock64, sheevaplug: Fix
	build with hostcc >= 10, Nezha: Correct U-Boot dependencies

	Updated/fixed packages: alsa-lib, apparmor, binutils,
	bluez5_utils, botan, diffutils, firmware-utils, gdb, glmark2,
	glog, gpu-amd-bin-mx51, gst1-interpipe, imx-vpuwrap, iperf,
	isl, janet, libdnet, libglib2, libhtp, liburcu, log4cxx,
	luajit, luvi, meson, mksh, mongodb, mosquitto, mpd, mupdf,
	opencv4, oracle-mysql, pipewire, postgresql, python-aiohttp,
	python-pudb, python-ujson, qhull, samba4, seatd, sg3_utils,
	suricata, tpm2-tss, uboot, vim, xserver_xorg-server

	New packages: pipewire-media-session

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

	14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx)

2021.11-rc1, released November 8th, 2021

	Numerous package updates. Notable updates including numerous
	Python modules, Kodi add-ons, nodejs, OpenJDK.

	Toolchain:
	- glibc update to 2.34
	- support for gdb 11.x added, gdb 10.x now the default
	- external toolchains provided by ARM updated
	- remove support for internal toolchain on the CSKY
          architecture, as it was broken and unmaintained

	Many packages updated to enable the appropriate SELinux
	refpolicy module when SELinux support is enabled.

	Support was added in the test-pkg package testing utility for
	using Gitlab CI to run the builds.

	New libgbm virtual package to better support OpenGL
	implementations that provide a libgbm library.

	Bootloaders/firmware: grub2 extended to be able to support
	multiple platforms in the same build.

	Filesystems:
	- new OCI filesystem type, to build container images
	  compatible with the Open Container Initiative standard
	- support for hybrid ISO9660 images added, which work on
          legacy and EFI BIOS machines

	New defconfigs: Allwinner nezha, stm32mp157c_odyssey

	Removed defconfigs: qemu_csky

	New packages: dtbocfg, firmware-utils, gstd, libdbi,
	libdbi-drivers, libteam, lua-augeas, mstpd, php-pecl-dbus,
	python-aioprocessing, python-bidict,
	python-charset-normalizer, python-flask-expects-json,
	python-git, python-pyndiff, python-rsa,
	python-unitest-xml-reporting, python-xmljson,
	python3-cryptography, python3-pip, qt5opcua, rwmem,
	sloci-image, softhsm2, sun20i-d1-spl, uqmi, vuejs-router,
	watchdogd, wireplumber

	Removed packages: canfestival, python-meld3

	Work toward the removal of python 2 has progressed: many
	python modules and packages have been updated to a version
	supporting python 3.

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

	#14271: compilation error with rsync command for  permission
	#14276: Unable to get login prompt
	#14196: when using raspberrypicm4io_64_defconfig, make fails
	        with mkfs.ext4: No such file or directory while trying
	        to determine filesystem size

2021.08.3, released December 13th, 2021

	Important / security related fixes.

	Defconfigs: Various fixes for building with gcc >= 10 host or
	target compilers.

	Updated/fixed packages: alsa-lib, apparmor, apr, asterisk,
	binutils, bluez5_utils, coreutils, e2fsprogs, exfat,
	freeswitch, gdb, glmark2, glog, glorytun, gmp,
	gpu-amd-bin-mx51, gst1-interpipe, gstreamer1, guile, gupnp,
	hackrf, heimdal, hiawatha, hplip, icu, imx-vpuwrap, isl,
	janus-gateway, libatomic_ops, libbson, libdnet, libffi,
	libgdiplus, libgee, libglib2, libhtp, libmodsecurity, libnspr,
	libnss, libosmium, libunwind, linux, lynx, meson, micropython,
	mkpasswd, mksh, mosquitto, motion, mupdf, mxml, netdata,
	nfs-utils, opencv4, oracle-mysql, pcre, php, postgresql,
	pure-ftpd, python-cycler, qdecoder, rcw-smarc-sal28, samba4,
	smack, speex, stress-ng, suricata, syslinux, uboot, unixodbc,
	unrar, vim, websocketpp, wireshark

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

	#14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD..

2021.08.2, released November 10th, 2021

	Important / security related fixes.

	Updated/fixed packages: asterisk, audit, bind, bitcoin,
	containerd, cryptsetup, dahdi-linux, dbus-python, dfu-util,
	docker-cli, docker-engine, earlyoom, edk2-platforms, exiv2,
	ffmpeg, freerdp, gdb, gensio, gnupg2, go, gpsd,
	gst1-plugins-bad, gst1-plugins-ugly, gst1-vaapi, gtest,
	hiredis, lftp, libps1, libva, libva-utils, lightning,
	log4cplus, lrzip, netdata, nodejs, olsr, openjdk, openjdk-bin,
	pango, php, python3-cffi, qemu, refpolicy, rng-tools, samba4,
	snort, strongswan, sunxi-mali-mainline-driver, suricata,
	systemd, tor, vim, weston, wf111, wireguard-linux-compat,
	xerces

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

	#14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx)

2021.08.1, released October 11, 2021

	Important / security related fixes.

	gdbinit: Mark the sysroot as a "safe path" before configuring
	it, so pretty printers work correctly without having to pass
	-ix to gdb

	Updated/fixed packages: alsa-lib, apache,
	arm-trusted-firmware, atftp, bind, botan, cog, containerd,
	cryptopp, docker-cli, dash, dc3dd, docker-engine, dovecot,
	environment-setup, erlang, fetchmail, ffmpeg, fio, gcc, gd,
	gdb, ghostscript, gnuradio, gnutils, go,
	gobject-introspection, google-breakpad, gst-omx,
	gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, gupnp, haproxy, imlib2, kodi,
	kodi-pvr-octonet, kodi-visualisation-fishbmc, libcurl,
	libexif, libgcrypt, libglib2, libkrb5, libressl, librsvg,
	libsndfile, libssh, libvirt, libxcrypt, libyang, links, lvm2,
	lynx, lxc, mc, mesa3d, micropython, minicom, mono, mosquitto,
	mtr, mupdf, mv-ddr-marvell, net-tools, nginx-dav-ext, nmap,
	nodejs, ntfs-3g, openjdk, openjdk-bin, openldap, openssh,
	pcre2, php, php-gnupg, pipewire, postgis, python-aioconsole,
	python-cbor2, python-cffi, python-cython, python-dateutil,
	python-django, python-pillow, python-pip, python-texttable,
	python-urllib3, python-webob, qemu, qt5location, redis,
	refpolicy, ripgrep, ruby, runc, sispmctl, sox, squid,
	strongswan, supervisor, swupdate, syslinux, systemd, tinycbor,
	trace-cmd, uboot-tools, uclibc, udisks, uhd, vim, vsftpd,
	wavemon, webkitgtk, wget, wireless-regdb, wpewebkit,
	xapp_xrdb, xapp_xwd, xen, xlib_libXfont2, xlib_libXft,
	xserver_xorg-server, zip

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

	#14206: Kodi: even when not enabled, forcefully selects libevdev..
	#14211: libffi-3.3.tar.gz repacked
	#14221: mv-ddr-marvell fails license validation

2021.08, released September 4th, 2021

	Various fixes.

	Updated/fixed packages: gstreamer1-mm, netsniff-ng, nginx,
	openmpi, python-pyudev, python3, qt5base, wlroots, xvisor

2021.08-rc3, released August 31st, 2021

	Fixes all over the tree.

	Toolchain: Disable fortify support for Microblaze as it is not
	currently working.

	Defconfigs: Acmesystems aria/ariette g25: Fix build issue
	after at91bootstrap bump, BeagleV: Correct kernel headers
	version, PC x86-64: Bump kernel to 4.19.204 to fix build issue
	with GCC 10.x.

	Updated/fixed packages: alsa-utils, at91bootstrap3, belle-sip,
	bullet, c-ares, cjson, coreutils, cpio, eigen, fetchmail, gdb,
	haproxy, heirloom-mailx, ipmiutil, kvm-unit-tests, libarchive,
	libffi, libmodsecurity, libopenssl, libressl, libshout,
	libvirt, linux-pam, lmbench, localedef, lua-lunix, mesa3d,
	mpv, mtd, nodejs, nvidia-driver, openvmtools, php, polkit,
	python-requests, python3-requests, rust-bin, rustc, samba4,
	sdl2, snort3, ushare, xen

	Removed packages: libmcrypt, mcrypt, sentry-cli

2021.08-rc2, released August 18th, 2021

	Fixes all over the tree.

	Defconfigs: Acmesystems acqua a5: Bump at91bootstrap version
	to fix build issue with binutils >= 2.35, Microchip sam9x60ek
	mmc_dev: Add missing toolchain/system options, sama5d2-icp
	mmc: Correct at91bootstrap options

	Updated/fixed packages: arm-trusted-firmware, at91bootstrap3,
	azure-iot-sdk-c, bluez5_utils, bullet, busybox, cegui, efl,
	erlang, ffmpeg, flatbuffers, fontconfig, gcc, gd, glibc, go,
	gobject-introspection, gpsd, guile, harfbuzz, iozone, iputils,
	jszip, libargtable2, libbpf, libebml, libepoxy, libesmtp,
	libfuse3, libgeos, libnss, libodb-boost, libodb-mysql,
	libodb-pgsql, libqmi, libqrtr-glib, libuhttpd, libuwsc,
	libvirt, ltp-testsuite, luaossl, mongodb, mpd, mupdf, mutt,
	network-manager, nginx-naxsi, nodejs, ogre, openzwave,
	optee-os, osm2pgsql, pdbg, perl-net-ssh2, php, pipewire,
	pistache, pixman, poke, polkit, poppler, postgresql, postkit,
	prelink-cross, prosody, protobuf, pulseview,
	python-cryptography, python-keyring, python-matplotlib,
	python-pymupdf, python-pyopenssl, python-secretstorage,
	python-treq, python-txtorcon, python3, qemu, qpdf, qt5base,
	refpolicy, ruby, rust-bin, s390-tools, sconeserver, seatd,
	shairport-sync, sox, sqlite, sylpheed, sysdig, syslog-ng,
	system-config-printer, tar, terminology, tor, tpm2-tools, uhd,
	unbound, usbguard, wireshark, xen, xenomai, xlib_libxshmfence,
	zstd

	New packages: desktop-file-utils

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

	#13586: grub failure with BR2_OPTIMIZE_3
	#13671: openSSH server closes connection before authentication..

2021.08-rc1, released August 3rd, 2021

	Numerous package updates.

	Toolchain:

        - add support for gcc 11.x, gcc 10.x is now the default, gcc
	  9.x updated to 9.4.0, removed gcc 8.x support except for
	  PowerPC SPE

	- add support for binutils 2.37, binutils 2.36.x is now the
          default, binutils 2.34 removed.

	- glibc updated to 2.33

        - gdb enabled on NIOS II, gdbserver enabled on RISC-V.

	Bootloaders/firmware: support for building the EDK II UEFI
	firmware, support for building AT91Bootstrap 4.x.

	New BR2_ENABLE_RUNTIME_DEBUG option, that controls whether
	packages should be compiled with runtime debugging
	information (which is different than debugging symbols).

	Many features of the bluez5_utils package have been made
	optional, and default to disabled. Users of bluez5_utils are
	encouraged to review their configuration.

	Many packages (over 70) updated to enable the appropriate
	SELinux refpolicy module when SELinux support is enabled.

	Many packages updated to select the appropriate OpenSSL
	features after many OpenSSL ciphers/features have been made
	optional.

	New defconfigs: kontron_pitx_imx8m, microchip_sama5d2_icp,
	qemu_aarch64_sbsa, raspberrypicm4io, raspberrypicm4io_64,
	terasic_de10nano_cyclone5, uevm5432.

	New packages: alsa-plugins, apg, bmap-tools, daq3, edk2,
	edk2-platforms, gumbo-parser, libbpf, libosmium, libpsl,
	libqb, libtalloc, libvirt, lua-linux, lua-zlib, mupdf,
	opencv4, osm2pgsql, poke, python-augeas, python-dbus-next,
	python-pymupdf, rtl_433, rtl8812au-aircrack-ng, seatd, snort3,
	system-config-printer, usbguard, xml-security-c, xmrig.

	Removed packages: clapack, libsoil.

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

	#13326: regarding dtc error in buildroot source code
	#13661: host-python2 build fails on aarch64
	#13836: package build failure when target install set to no on
	        pkg-generic pkg types
	#13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to
	        y as before

2021.05.3, released October 11, 2021

	Important / security related fixes.

	gdbinit: Mark the sysroot as a "safe path" before configuring
	it, so pretty printers work correctly without having to pass
	-ix to gdb

	Updated/fixed packages: alsa-lib, apache,
	arm-trusted-firmware, atftp, bind, botan, containerd,
	cryptopp, dash, dc3dd, docker-cli, docker-engine, dovecot,
	erlang, fetchmail, ffmpeg, gdb, ghostscript, go, gst-omx,
	gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, kodi, kodi-pvr-octonet,
	kodi-visualisation-fishbmc, libcurl, libkrb5, libressl,
	libsndfile, libxcrypt, libyang, lxc, lynx, mesa3d,
	micropython, minicom, mono, mtr, mv-ddr-marvell, net-tools,
	nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap,
	openssh, pcre2, php, python-aioconsole, python-cffi,
	python-dateutil, python-django, python-pip, python-texttable,
	python-urllib, python-webob, qt5location, redis, refpolicy,
	ripgrep, runc, sispmctl, squid, strongswan, supervisor,
	syslinux, tinycbor, trace-cmd, uboot-tools, uclibc, wavemon,
	wget, wireless-regdb, xen, xserver_xorg-server

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

	#14206: Kodi: even when not enabled, forcefully selects libevdev..
	#14211: libffi-3.3.tar.gz repacked
	#14221: mv-ddr-marvell fails license validation

2021.05.2, released September 15th, 2021

	Important / security related fixes.

	Toolchain: Disable fortify support for Microblaze as it is not
	currently working.

	Updated/fixed packages: alsa-utils, arm-trusted-firmware,
	bayer2rgb-neon, belle-sip, bullet, busybox, c-ares, cjson,
	coreutils, cpio, eigen, environment-setup, fetchmail, ffmpeg,
	fontconfig, gd, gdb, gnuradio, gnutls, go, haproxy, ipmiutil,
	iputils, jszip, kvm-unit-tests, libarchive, libargtable2,
	libexif, libgcrypt, libmodsecurity, libopenssl, librsvg,
	libshout, libssh, libxcrypt, linux, linux-pam, localedef, mc,
	mesa3d, mosquitto, netsniff-ng, nginx, nodejs, ogre, openjdk,
	openmpi, openvmtools, perl-net-ssh2, php, pipewire,
	postgresql, prelink-cross, prosody, protobuf, python-keyring,
	python-matplotlib, python-pillow, python-pyudev,
	python-secretstorage, python3, qt5base, samba4, sdl2, sox,
	swupdate, sylpheed, tar, terminology, tor, uboot-tools, uhd,
	unbound, ushare, vim, wlroots, xapp_xrdb, xapp_xwd, xen,
	xenomai, xlib_libXfont2, xlib_libXft, zip

2021.05.1, released August 10, 2021

	Important / security related fixes.

	Toolchain: Disable PIC/PIE for Microblaze (like for NIOS II)
	as it is not currently working.

	binutils: fix linker assert failure on OpenRisc, or1k build
	issue with gcc < 5

	gdb: Enable on NIOS II

	utils/scanpypi: Various improvements

	Defconfigs: stm32f469_disco: Fix kernel boot issue, Microchip
	sam9x60ek mmc_dev: Add missing toolchain/system options

	Updated/fixed packages: arm-trusted-firmware, apache, audit,
	avahi, bind, binutils, bird, bluez5_utils, boinc, busybox,
	chrony, clamav, connman, cryptsetup, dnsmasq, docker-cli,
	docker-engine, dovecot, dovecot-pigeonhole, e2fsprogs, exiv2,
	fail2ban, fb-test-app, feh, fetchmail, ffmpeg, flac, fluxbox,
	gawk, gcc, gcr, gdb, gdk-pixbuf, gesftpserver, glibc, go,
	gptfdisk, gqrx, granite, grub2, guile, hdparm, heirloom-mailx,
	htop, ibrcommon, ibrdtn, ibrdtn-tools, ibrdtnd,
	intel-microcode, iodine, irqbalance, keepalived, kexec-tools,
	libass, libconfig, libcurl, libfreeimage, libfuse3, libgcrypt,
	libgudev, libhtp, libinput, libjson, libgtk3, libkrb5,
	libloki, libmodsecurity, libndp, libnetfilter-log,
	libnfnetlink, libnice, libodb, libodb-boost, libodb-mysql,
	libodb-pgsql, libpcap, libqmi, libqrtr-glib, libressl,
	librsvg, libtasn1, libtirpc, libuci, libxmlrpc,
	linux-firmware, linuxptp, lrzsz, lvm2, mariadb, mesa3d,
	mbedtls, monit, mono, mosquitto, mpd, mpg123, mpv, nbd,
	netsnmp, nettle, nmap, nodejs, ntp, openntpd, openpgm,
	openswan, pango, pcre2, perl-crypt-openssl-rsa, php, pixman,
	postgresql, proxychains-ng, putty, python,
	python-dataproperty, python-django, python-pysftp,
	python-urllib3, python3, qpdf, redis, ripgrep, rsync, ruby,
	samba4, sane-backends, slirp, spice, squid, suricata, tcpdump,
	tftpd, thrift, tor, tpm2-tools, trinity, uboot, uboot-tools,
	uclibc, vlc, wireless-regdb, wireshark, wolfssl,
	xapp_fonttosfnt, xlib_libX11, xlib_libxshmfence,
	xserver_xorg-server

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

	#13586: grub failure with BR2_OPTIMIZE_3
	#13661: host-python2 build fails on aarch64
	#13836: package build failure when target install set to no..
	#13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to..

2021.05, released June 6th, 2021

	Various fixes.

	Disable PIC/PIE support for Nios2 because of glibc issues

	Defconfigs: Minnowboard max: Fix X11 and mesa3d configuration

	Updated/fixed packages: apache, beaglev-ddrinit,
	beaglev-secondboot, capnproto, dc3dd, directfb, efibootmgr,
	ffmpeg, gptfdisk, go, gupnp, hostapd, iftop,
	intel-mediadriver, libcamera, libcutl, libesmtp, libkcapi,
	libraw, lttng-tools, lvm2, mimic, mono-gtksharp3, mpv,
	netperf, odb, qt5base, uclibc, uftrace, unscd, vlc,
	xdriver_xf86-video-fbturbo

	New packages: python3-cffi, python3-cryptography, python3-pip,
	python3-pycparser, python3-six

2021.05-rc3, released May 31th, 2021

	Fixes all over the tree.

	meson: Explicitly disable PIE support (b_pie) as it is handled
	by the toolchain wrapper.

	Updated/fixed packages: boost, dhcp, expat, gdb, hwloc, imagemagick,
	libcurl, libopenh264, llvm, lz4, mpv, nginx, paho-mqtt-c, pifmrds,
	pipewire, python-bluezero, python-pillow, qemu, strace, uhd, vlc,
	webkitgtk

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

	#13821: Wrong url for libnfsidmap package

2021.05-rc2, released May 22th, 2021

	Fixes all over the tree.

	support/scripts/gen-missing-cpe: A script to query the list of
	CPE IDs for the packages enabled in the current configuration and:

	- for CPE IDs that do not have any matching entry in the CPE
	  database, it emits a warning

	- for CPE IDs that do have a matching entry, but not with the same
	  version, it generates a snippet of XML that can be used to propose
	  an updated version to NIST.

	CPE meta data has been added for a large number of packages

	Updated/fixed packages: assimp, binutils, bitcoin, bullet,
	cutelyst, dhcp, dmalloc, docker-engine, ebtables,
	environment-setup, flatcc, gcc, gd, gerbera, hostapd,
	imx-gpu-viv, intel-microcode, jquery-validation, libdrm,
	libgeos, libraw, libtirpc, libxml2, libxslt, live555, lmbench,
	localedef, lvm2, mender, mender-grubenv, modem-manager, mutt,
	opensbi, openssh, opentyrian, pipewire, postgis, postgresql,
	prosody, python-bluezero, python-falcon, redis, rocksdb,
	rt-tests, runc, vlc, waylandpp, webkitgtk, wireshark,
	wpa_supplicant, wpewebkit, xlib_libX11, xterm

	New packages: jh71xx-tools

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

	#13781: isc dhcp-server package don't create file /usr/bin/dhcpd
	#13801: toolchainfile.cmake CMAKE_BUILD_TYPE
	#13806: Building host-localedef fails on fedora 34/gcc 11

2021.05-rc1, released May 12th, 2021

	Fixes all over the tree and new features.

	FORTIFY_SOURCE, PIC/PIE, RELRO and SSP security hardening
	options are now enabled by default.

	Dependencies: Explicitly detect and bail out if PATH contains
	spaces or tabs. A number of packages fail to build in such
	setups, so explicitly inform about this.

	Infrastructure: Expose CONFIG_DIR to post-build/post-image
	scripts, so they can call the Buildroot Makefile in the
	correct directory for both in-tree / out-of-tree builds.

	CMake infrastructure: Use CMAKE_EXE_LINKER_FLAGS rather than
	CMAKE_CXX_FLAGS to link with libatomic to fix an compatibility
	issue with poppler. Bump minimal host cmake version to 3.16
	(from 3.15) to fix a compatibility issue with domoticz.

	Meson: Use correct C++ host compiler (rather than C compiler)

	utils/scanpypi: Explicitly use python3 for compatibility with
	packages using python3 syntax in setup.py

	support/download: Fix tarball generation (from git/svn repos)
	including symlinks pointing to ./<something>. Fix svn download
	for <1.9 clients or repos using CVS-style keywords.

	support/scripts/cve.py: Use the (significantly) faster yajl2
	ijson backend for older (< 2.5) ijson versions rather than the
	slow python default, speeding up pkg-stats by ~2x.

	Toolchain: Add logic to work around binutils bug 21464
	(affecting OpenRISC), bug 27597 (affecting Nios II) and drop
	the now longer applicable bug 19615 / 20006 handling.

	Python{,3}: Fix byte compiling python files with short (single
	character before .py) file names.

	CPE meta data has been added for a large number of packages

	New defconfigs: Acme Systems Acqua A5 (256/512MB), Beagleboard
	BeagleV, Boundary devices Nitrogen8M Plus SOM, NXP i.MX 8M
	Plus EVK, QEMU PPC e500mc

	New packages: beaglev-ddrinit, beaglev-secondboot, janet,
	kodi-inputstream-ffmpegdirect, kodi-vfs-libarchive,
	kodi-visualisation-matrix, libxcrypt, libqrtr-glib, log4qt,
	mawk, perl-parse-yapp, postgis, protozero, python-flask-wtf,
	python-iwlib, python-semantic-version, python-setuptools-rust,
	python-toml, riscv64-elf-toolchain, siproxyd, uftrace, zfs

	Removed packages: iostat, kodi-platform,
	kodi-screensaver-crystalmorph, monkey

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

	#13271: systemd-resolved: /etc/resolv.conf link broken on per-pa..
	#13516: utils/scanpypi: Failure when parsing diffoscope
	#13551: 2021.02.rc2: Unicode not work on qt 5.15.2
	#13576: Issues compiling buildroot for 5x86
	#13601: Gen image :Iappropriate ioctl error
	#13616: tar file from git repository generation issue
	#13631: Commit 54d3d94b6e breaks packages with git download method
	#13641: glibc on raspberrypi
	#13646: Gen image version 14 error : no sub -section title/..
	#13651: pkg-golang cannot build when main.go is in the root
	#13661: host-python2 build fails on aarch64
	#13671: openSSH server closes connection before authentication..
	#13721: c-stack.c:55:26: error: missing binary operator before ..
	#13731: Readline Patch is missing Author Information
	#13741: genext2fs does not allow to set perms of root node
	#13751: libopenssl (static): huge drop in performance in newer ..
	#13771: package htop has undeclared dependency on host python

2021.02.12, released April 6th, 2022

	Important / security related fixes.

	pkg-stats: Limit memory use for CPE matching

	Updated/fixed packages: gdk-pixbuf, jack2, libzlib, matio,
	nbd, netatalk, opus, python-paramiko, python-treq,
	python-twisted, spidev_test, unbound, urandom-scripts, vim,
	wireshark, zlib-ng, zziplib

2021.02.11, released March 25th, 2022

	Important / security related fixes.

	Updated/fixed packages: apache, azure-iot-sdk-c, dbus,
	directfb, docker-engine, exempi, expat, flac, gdk-pixbuf,
	gnutls, go, haproxy, libcurl, libiec61850, libminiupnpc,
	libodb, libodb-boost, libopenssl, libpjsip, libressl, librsvg,
	libsrtp, libxml2, libxslt, lxc, mariadb, odbm openblas,
	openvpn, oprofile, php, pppd, python-ipython, python-treq,
	python-twisted, python-txbus, python-txtorcon, raptor,
	rpi-firmware, samba4, timescaledb, util-linux, vim, wavpack,
	wireless-regdb, wireshark, wolfssl, xscreensaver, xterm, zsh

	New packages: gdk-pixbuf-xlib

	Removed packages: python-coherence

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

	#13126: make fails - bzip2-1.0.6.tar.gz and DirectFB-1.7.7.tar..
	#14636: azure-iot-sdk-c: Installed headers do not compile
	#14641: oprofile can not find the events files

2021.02.10, released February 28th, 2022

	Important / security related fixes.

	Defconfigs: Andes ae3xx, Intel galileo: Fix build with host
	gcc >= 10, ROC-RK3399-PC: Bump rootfs size to fix build issue.

	Add conditional patching logic to fix build issues for older
	U-Boot / Linux kernel versions when built with a host gcc >=
	10.

	Updated/fixed packages: casync, cgilua, connman, expat,
	gauche, gensio, go, gst-omx, gst1-devtools, gst1-libav,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst1-python, gst1-rtsp-server, gst1-vaapi,
	gstreamer1, gstreamer1-editing-services,
	kf5-extra-cmake-modules, kodi, libarchive, linux, lm-sensors,
	log4cxx, mpd, nfs-utils, pistache, prosody, python-django,
	python-pyzmq, rtl8723bu, thermald, tiff, util-linux, vim, xen

2021.02.9, released January 29th, 2022

	Important / security related fixes.

	check-package: Improve variable override check

	pkg-stats: List CVEs where the version info cannot be parsed
	as unsure rather than completely ignoring them.

	Defconfigs: Beaglebone: Support BeagleBone black wireless

	Updated/fixed packages: alsa-utils, apache, cage, capnproto,
	civetweb, clamav, collectd, connman, coreutils, dav1d,
	docker-cli, docker-containerd, docker-engine, expat,
	findutils, flare-engine, flare-game, font-awesome, freeswitch,
	gcc, ghostscript, gnuchess, go, grpc, gst1-interpipe,
	gst1-plugins-bad, gst-rtsp-sever, gupnp-tools, hackrf, icu,
	imagemagick, janus-gateway, keepalived, lapack, libjpeg,
	libopenssl, libpjsip, liburiparser, linux-pam, lxc, mbedtls,
	mongodb, mpd-mpc, nodejs, openblas, pcre2, polkit, poppler,
	privoxy, prosody, python-django, python-lxml, python-pyqt5,
	python3, qt5base, qt5location, rhash, ruby, runc, samba4,
	sofia-sip, targetcli-fb, tcpreplay, tinyxml, vim, vlc,
	wireshark, xapp_xauth, xen, xlib_libX11, xserver_xorg-server

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

	#14471: alsa_utils wrong deployment

2021.02.8, released December 14th, 2021

	Important / security related fixes.

	Defconfigs: Various fixes for building with gcc >= 10 host or
	target compilers.

	Updated/fixed packages: alsa-lib, apparmor, apr, asterisk,
	binutils, bluez5_utils, busybox, coreutils, e2fsprogs, ell,
	exfat, freeswitch, gdb, glmark2, glog, glorytun, gmp,
	gpu-amd-bin-mx51, gst1-interpipe, gstreamer1, guile, gupnp,
	hackrf, heimdal, hiawatha, hplip, icu, imx-vpuwrap, isl, iwd,
	janus-gateway, libatomic_ops, libbson, libdnet, libffi,
	libgdiplus, libgee, libhtp, libmodsecurity, libnspr, libnss,
	libunwind, linux, lynx, meson, micropython, mkpasswd, mksh,
	mosquitto, motion, mxml, netdata, nfs-utils, oracle-mysql,
	pcre, pkcs11-helper, postgresql, pure-ftpd, python-cycler,
	qdecoder, rcw-smarc-sal28, samba4, smack, speex, stress-ng,
	suricata, syslinux, uboot, unixodbc, unrar, vim, websocketpp,
	wireshark

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

	#14346: BR2_PACKAGE_NFS_UTILS_RPC_NFSD does not patch CONFIG_NFSD..

2021.02.7, released November 10th, 2021

	Important / security related fixes.

	OpenJDK 16.x moved to 17.x as 16.x is EOL.

	Updated/fixed packages: asterisk, audit, bind, bitcoin,
	cryptsetup, dahdi-linux, dbus-python, dfu-util, docker-cli,
	docker-containerd, docker-engine, earlyoom, exiv2, ffmpeg,
	freerdp, gdb, gensio, gnupg2, go, gpsd, gst1-plugins-bad,
	gst1-plugins-ugly, gst1-vaapi, hiredis, lftp, lightning,
	lrzip, netdata, nodejs, olsr, openjdk, openjdk-bin, pango,
	qemu, samba4, snort, strongswan, suricata, systemd, vim,
	wf111, wireguard-linux-compat, xerces

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

	#14311: Cannot compile dahdi (part of Asterisk) for x86 (P1mmx)

2021.02.6, released October 11, 2021

	Important / security related fixes.

	gdbinit: Mark the sysroot as a "safe path" before configuring
	it, so pretty printers work correctly without having to pass
	-ix to gdb

	Updated/fixed packages: alsa-lib, apache,
	arm-trusted-firmware, atftp, bind, botan, cryptopp, dash,
	dc3dd, docker-cli, docker-containerd, docker-engine, dovecot,
	erlang, fetchmail, gdb, ghostscript, go, gst-omx,
	gst1-devtools, gst1-interpipe, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, kodi-pvr-octonet, libcurl,
	libkrb5, libressl, libsndfile, libyang, lxc, lynx, mesa3d,
	micropython, minicom, mono, mtr, mv-ddr-marvell, net-tools,
	nmap, nodejs, ntfs-3g, openjdk, openjdk-bin, openldap,
	openssh, php, python-aioconsole, python-cffi, python-dateutil,
	python-django, python-pip, python-texttable, python-urllib3,
	python-webob, qt5location, redis, refpolicy, ripgrep, runc,
	sispmctl, squid, strongswan, supervisor, syslinux, tinycbor,
	trace-cmd, uboot-tools, uclibc, wavemon, wireless-regdb, xen,
	xserver_xorg-server

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

	#14206: Kodi: even when not enabled, forcefully selects libevdev..
	#14211: libffi-3.3.tar.gz repacked
	#14221: mv-ddr-marvell fails license validation

2021.02.5, released September 15th, 2021

	Important / security related fixes.

	Toolchain: Disable fortify support for Microblaze as it is not
	currently working.

	Updated/fixed packages: alsa-utils, arm-trusted-firmware,
	bayer2rgb-neon, belle-sip, busybox, c-ares, cjson, coreutils,
	cpio, eigen, environt-setup, fetchmail, fluidsynth,
	fontconfig, gd, gdb, gnuradio, gnutls, go, haproxy, ipmiutil,
	iputils, jszip, kvm-unit-tests, libarchive, libexif,
	libgcrypt, libmodsecurity, libopenssl, librsvg, libshout,
	libssh, linux, localedef, mc, mesa3d, mosquitto, netsniff-ng,
	nginx, nodejs, ogre, openmpi, openvmtools, php, postgresql,
	prelink-cross, prosody, protobuf, python-keyring,
	python-matplotlib, python-pillow, python-pyudev,
	python-secretstorage, python3, qt5base, samba4, sdl2, sox,
	swupdate, sylpheed, tor, uboot-tools, uhd, unbound, vim,
	wlroots, xapp_xrdb, xapp_xwd, xen, xenomai, xlib_libXfont2,
	xlib_libXft, zip

2021.02.4, released August 10th, 2021

	Important / security related fixes.

	Toolchain: Disable PIC/PIE for Microblaze (like for NIOS II)
	as it is not currently working.

	binutils: fix linker assert failure on OpenRisc, or1k build
	issue with gcc < 5

	gdb: Enable on NIOS II

	utils/scanpypi: Various improvements

	Defconfigs: stm32f469_disco: Fix kernel boot issue, Microchip
	sam9x60ek mmc_dev: Add missing toolchain/system options

	Updated/fixed packages: apache, arm-trusted-firmware, audit,
	avahi, bind, binutils, bird, bluez5_utils, boinc, busybox,
	chrony, clamav, cryptsetup, cwiid, dnsmasq, docker-cli,
	docker-engine, dovecot, dovecot-pigeonhole, e2fsprogs, exiv2,
	fail2ban, fb-test-app, feh, fetchmail, flac, fluxbox, gawk,
	gcc, gcr, gdb, gdk-pixbuf, gesftpserver, glibc, go, gptfdisk,
	granite, grub2, gqrx, guile, hdparm, heirloom-mailx,
	ibrcommon, ibrdtn, ibrdtn-tools, ibrdtnd, intel-microcode,
	iodine, irqbalance, keepalived, libass, libconfig, libcurl,
	libfreeimage, libfuse3, libgcrypt, libgtk3, libgudev, libhtp,
	libjson, libkrb5, libloki, libmodsecurity, libndp,
	libnetfilter-log, libnfnetlink, libnice, libodb, libodb-boost,
	libodb-mysql, libodb-pgsql, libpcap, libqmi, libressl,
	librsvg, libtasn1, libtirpc, libuci, libxmlrpc,
	linux-firmware, linuxptp, lrzsz, ltp-testsuite, lvm2, mariadb,
	mbedtls, monit, mono, mosquitto, mpd, mpg123, mpv, nbd, neard,
	netsnmp, nettle, nginx-modsecurity, nmap, nodejs, ntp,
	openntpd, openpgm, openswan, pango, pcre2,
	perl-crypt-openssl-rsa, php, pixman, polkit, postgresql,
	proxychains-ng, putty, python, python-django,
	python-dataproperty, python-pysftp, python-urllib3, python3,
	qpdf, redis, ripgrep, ruby, samba4, spice, slirp, suricata,
	sysdig, tcpdump, tftpd, thrift, tor, tpm2-tools, trinity,
	uboot, uboot-tools, uclibc, util-linux, vlc, wireless-regdb,
	wireshark, wolfssl, xapp_fonttosfnt, xlib_libX11,
	xlib_libxshmfence, xserver_xorg-server

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

	#13586: grub failure with BR2_OPTIMIZE_3
	#13661: host-python2 build fails on aarch64
	#13836: package build failure when target install set to no..
	#13846: BR2_PACKAGE_LVM2_STANDARD_INSTALL should be default to..

2021.02.3, released June 12th, 2021

	Important / security related fixes.

	CPE meta data has been added for a large number of packages

	Updated/fixed packages: acpid, apache, apcupsd, assimp, bird,
	bitcoin, blktrace, boost, capnproto, chrony, dc3dd, dhcp,
	directfb, dmalloc, docker-engine, ebtables, efibootmgr,
	enlightenment, enscript, environment-setup, exempi, expat,
	findutils, flatcc, fluidsynth, frr, gdb, go, gptfdisk, grpc,
	gst1-plugins-bad, gst1-rtsp-server, gstreamer1, gupnp,
	hostapd, hwloc, i2c-tools, iftop, imagemagick, imx-gpu-viv,
	intel-mediadriver, intel-microcode, jquery-validation,
	keepalived, kodi, less, libcamera, libcurl, libcutl, libesmtp,
	libeXosip2, libffi, libfuse, libfuse3, libgeos, libgtk2,
	libgtk3, libical, libidn, libidn2, libkcapi, libldns, libmms,
	libmodbus, libmspack, libnids, libopenh264, liboping, libraw,
	librelp, libsamplerate, libtirpc, libusb, libuv, libxcb,
	libxml2, libxslt, live555, llvm, lmbench, localedef,
	lttng-tools, lvm2, lz4, mesa3d, mimic, mini-snmpd, minidlna,
	minissdpd, minizip, mono-gtksharp3, mpg123, mpv, msmtp, musl,
	mutt, nasm, nbd, netperf, netsurf, nginx, odb, opencv3,
	openssh, opentyrian, oprofile, p7zip, paho-mqtt-c, perl,
	php-imagick, pifmrds, picocom, pigz, pngquant, poco,
	postgresql, prosody, proxychains-ng, pulseaudio, putty, pwgen,
	python-autobahn, python-bluezero, python-engineio,
	python-keyring, python-pillow, python-requests, python-tqdm,
	qemu, qpdf, qt5base, redis, refpolicy, rt-tests, runc,
	shellinabox, squid, strace, supervisor, synergy, taglib,
	tclap, terminology, thermald, tini, tinyproxy, tinyxml2,
	tpm2-tss, uclibc, udisks, uhd, unscd, vlc, waylandpp,
	webkitgtk, weston, wireshark, wpa_supplicant, wpewebkit,
	xlib_libdmx, xlib_libFS, xlib_libICE, xlib_libX11,
	xlib_libXcursor, xlib_libXdmcp, xlib_libXext, xlib_libXfixes,
	xlib_libXfont2, xlib_libXinerama, xlib_libXpm, xlib_libXres,
	xlib_libXt, xlib_libXtst, xlib_libXxf86dga, xlib_libXxf86vm,
	xterm

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

	#13781: isc dhcp-server package don't create file /usr/bin/dhcpd
	#13801: toolchainfile.cmake CMAKE_BUILD_TYPE
	#13806: Building host-localedef fails on fedora 34/gcc 11

2021.02.2, released May 12th, 2021

	Important / security related fixes.

	Toolchain: Add logic to mark toolchains affected by binutils
	bug 27597 (Nios II).

	support/scripts/cve.py: Use the (significantly) faster yajl2
	ijson backend for older (< 2.5) ijson versions rather than the
	slow python default, speeding up pkg-stats by ~2x.

	CMake infrastructure: Use CMAKE_EXE_LINKER_FLAGS rather than
	CMAKE_CXX_FLAGS to link with libatomic to fix an compatibility
	issue with poppler.

	Infrastructure: Expose CONFIG_DIR to post-build/post-image
	scripts, so they can call the Buildroot Makefile in the
	correct directory for both in-tree / out-of-tree builds.

	Updated/fixed packages: at91bootstrap, avahi, bash, bind,
	bridge-utils, boost, cegui, cifs-utils, clamav, cmake,
	coremark-pro, coreutils, cryptsetup, dmalloc, dnsmasq,
	docker-cli, docker-engine, domoticz, efl, exim, ffmpeg, flex,
	gcc, genext2fs, go, gst1-interpipe, haproxy, hostapd,
	i2c-tools, imx-vpu, kexec, kf5-kcoreaddons, kismet, libcamera,
	libcurl, libdrm, libfreefare, libfuse3, libgeos, libgpiod,
	libnpupnp, libopenssl, libp11, librsync, libtomcrypt, libupnp,
	localedef, lvm2, lxc, m4, makedevs, mender, mesa3d,
	mesa3d-headers, mkpasswd, mkpimage, modem-manager, monkey,
	mpd, ncurses, nettle, network-manager, nginx, numactl,
	openjdk, openjdk-bin, openldap, openvpn, php, pipewire,
	python-aioconsole, python-asgiref, python-botocore,
	python-django, python-dnspython, python-flup, python-httplib2,
	python-markdown2, python-mbrstrdecoder, python3, quickjs,
	readline, rsyslog, ruby, rust, samba4, sconeserver, snort,
	sox, systemd, tar, timescaledb, tio, tor, usb_modeswitch,
	wpa_supplicant, xdriver_xf86-video-ati, xen, xlib_libXaw,
	xserver_xorg-server

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

	#13271: systemd-resolved: /etc/resolv.conf link broken on per-pa..
	#13551: 2021.02.rc2: Unicode not work on qt 5.15.2
	#13651: pkg-golang cannot build when main.go is in the root
	#13661: host-python2 build fails on aarch64
	#13721: c-stack.c:55:26: error: missing binary operator before ..
	#13731: Readline Patch is missing Author Information
	#13741: genext2fs does not allow to set perms of root node
	#13751: libopenssl (static): huge drop in performance in newer ..
	#13771: package htop has undeclared dependency on host python

2021.02.1, released April 7, 2021

	Important / security related fixes.

	Dependencies: Explicitly detect and bail out if PATH contains
	spaces or tabs. A number of packages fail to build in such
	setups, so explicitly inform about this.

	utils/scanpypi: Explicitly use python3 for compatibility with
	packages using python3 syntax in setup.py

	support/download: Fix tarball generation (from git/svn repos)
	including symlinks pointing to ./<something>. Fix svn download
	for <1.9 clients or repos using CVS-style keywords.

	Meson: Use correct C++ host compiler (rather than C compiler)

	Toolchain: Add logic to work around binutils bug 21464,
	affecting OpenRISC, and drop the now longer applicable bug
	19615 / 20006 handling.

	Python{,3}: Fix byte compiling python files with short (single
	character before .py) file names.

	CPE meta data has been added for a large number of packages

	Defconfigs: Correct Beaglebone QT file system overlay

	Updated/fixed packages: alsa-utils, at91bootstrap3,
	batman-adv, binutils, botan, bridge-utils, busybox,
	ca-certificates, cog, coreutils, diffutils, dmidecode,
	docker-cli, docker-containerd, docker-engine, efivar,
	fetchmail, frr, genimage, git, gnutls, go, grub2, gst-omx,
	gst1-devtools, gst1-libav, gst1-plugins-bad,
	gst1-plugins-base, gst1-plugins-good, gst1-plugins-ugly,
	gst1-python, gst1-rtsp-server, gst1-vaapi, gstreamer1,
	gstreamer1-editing-services, haproxy, haserl, hwloc,
	irqbalance, jasper, kexec, kexec-lite, kismet, kodi, libcurl,
	libfreeglut, libgcrypt, libgeos, libglib2, libopenssl, libqmi,
	libressl, libupnp, libvips, libvpx, libwebsockets, linux,
	lldpd, logrotate, lttng-libust, lttng-tools, mariadb, mbedtls,
	mcelog, mender, micropython, mongoose, mosquitto, mpd,
	netsnmp, nodejs, openmpi, openssh, openvpn, opkg-utils,
	optee-client, optee-test, perl, php, proftpd, protobuf,
	python-django, python-jinja2, python-lxml, python-paramiko,
	python-py, python-pygments, python-rpi-ws281x, python-urllib3,
	python3, qt5webkit, qwt, rpm, samba4, sconeserver, sdl2, shim,
	sqlcipher, squid, sysklogd, syslinux, sysvinit, tor,
	transmission, tzdata, uboot, uclibc, upx, webkitgtk,
	wireshark, wpebackend-fdo, wpewebkit, xen, zstd

	New packages: perl-parse-yapp

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

	#13516: utils/scanpypi: Failure when parsing diffoscope
	#13576: Issues compiling buildroot for 5x86
	#13601: Gen image :Iappropriate ioctl error
	#13616: tar file from git repository generation issue
	#13641: glibc on raspberrypi
	#13646: Gen image version 14 error : no sub -section title/..
	#13671: openSSH server closes connection before authentication..

2021.02, released March 6th, 2021

	Various fixes.

	Toolchain: Correct Bootlin xtensa-lx60 dependencies

	Updated/fixed packages: asterisk, belle-sip, bustle, dhcpcd,
	dovecot, dovecot-pigeonhole, gnuchess, gnuradio,
	gst1-plugins-bad, haproxy, jasper, kismet, libebml,
	libeXosip2, libgeos, libhtp, libjpeg, libopenssl, libshout,
	libstrophe, mosquitto, openblas, openssh, perl, privoxy,
	prosody, python-pyyaml, python3-pyyaml, quagga, redis,
	rust-bin, sox, suricata, tpm2-pkcs11, uclibc-ng-test, ushare,
	util-linux, wolfssl, wpa_supplicant

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

	#13501: 2021.02.rc2: Unicode not work on qt 5.15.2
	#13581: jpegsrc.v9d.tar.gz has changed hash

2021.02-rc3, released February 27th, 2021

	Fixes all over the tree.

	utils/scanpypi: Explicitly use python3 to ensure compatiblity
	with packages having python3-only code in setup.py

	support/download: Ensure sub-second timestamp precision is
	dropped when creating a tarball from a (subversion) repo, as
	that is not representable in the PAX tar format

	Updated/fixed packages: babeltrace2, bind, botan, brltty,
	cegui, elfutils, fakeroot, imagemagick, intel-mediasdk,
	irqbalance, libglib2, libselinux, libusb, libuwsc, nodejs,
	open62541, openldap, ply, python-aiohttp, python-django,
	python3, qemu, readline, rust, screen, taglib, unbound, xterm

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

	#13516: utils/scanpypi: Failure when parsing diffoscope
	#13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to...
	#13561: Create a new user defining users-table.txt not working..

2021.02-rc2, released February 16th, 2021

	Fixes all over the tree.

	Vulnerability scanning: cpedb.py: Drop CPE XML database
	caching, as it did not speed up processing much and uses a lot
	of additional memory.
	pkg-stats: include information about ignored CVEs in JSON
	output

	Fakeroot: Fix compatibility issue with glibc 2.33

	Updated/fixed packages: can-utils, collectd, dnsmaqs,
	docker-cli, docker-engine, ebtables, fakeroot, flashrom,
	gdk-pixbuf, go, gst1-python, jasper, kodi,
	kodi-inputstream-adaptive, lcms2, libgeos, libgpg-error,
	libopenssl, mongoose, mpd, ne10, netopeer2, openblas, orc,
	perl-gd, ply, postgresql, protobuf, subversion, tcpdump,
	tzdate, uboot-tools, wireshark, webkitgtk, wpewebkit, xterm

	New packages: perl-extutils-pkgconfig

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

	#11706: binman (U-boot tool) cannot find libfdt "binman: No mod..

2021.02-rc1, released February 9th, 2021

	Fixes all over the tree and new features.

	Toolchain: Default to binutils 2.35.2, add 2.36.1, drop
	2.33.x. Fix GCC 10.x ARC adc/sbc pattern handling, Update ARM
	toolchains to 10.2-2020.11 release.

	Architectures: ARC: add support for generic HS48 processor,
	PPC: drop PPC601 support, which was removed from Linux 5.10.

	Vulnerability scanning: The CVE checking logic has been
	extended to match packages based on CPE (Common Platform
	Enumeration) IDs for more accurate matching, and CPE
	identifiers have been added for a large amount of packages.

	Download: Rework the tarball creation logic (E.G. when a
	package is fetched from a git/svn repo) to no longer require a
	host-tar <= 1.29. To differ between the old and the new
	format, the new tarballs have gained a -br1 suffix
	(<pkg>-<version>-br1.tar.gz).

	SELinux support: A significant number of packages now pull in
	the relevant refpolicy modules when enabled.

	New defconfigs: arrow avenger96, bananapi M1+, microchip
	sam9x60ek, pine64 rock64

	Removed defconfigs: QEMU ppc virtex-ml507

	New packages: balena-engine, casync, coremark, coremark-pro,
	datatables, datatables-buttons, datatables-fixedcolumns,
	datatables-responsive, delve, frotz, gkrellm, inih, jszip,
	libgeos, libiec61850, libmdbx, lualdap, neofetch,
	nvidia-modprobe, open62541, perl-devel-cycle, perl-devel-size,
	perl-math-int64, ply, popperjs, python-bleak,
	python-defusedxml, python-pycups, python-pytest-asyncio,
	python-typing-extensions, qcom-db410c-firmware, qt5coap,
	qt5knx, qt5mqtt, quickjs, rcw-smarc-sal28, screenfetch,
	ssdp-responder, tpm2-pkcs11, wqy-zenhei, xorcurses

	Removed packages: audiofile, boa, ipsec-tools, libupnp18,
	ti-sgx-libgdbm

	Renamed rcw package to qoriq-rcw

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

	#13316: beaglebone_qt5_defconfig: PowerVR fails to start
	#13416: dhcpcd start warning message: no such user dhcpcd
	#13456: ccache prevents build
	#13471: package/mpd/mpd.conf make use of path not created
	#13506: BR2_PACKAGE_DHCPCD missing directory creation

2020.11.4, released April 5th, 2021

	Important / security related fixes.

	Dependencies: Explicitly detect and bail out if PATH contains
	spaces or tabs. A number of packages fail to build in such
	setups, so explicitly inform about this.

	utils/scanpypi: Explicitly use python3 for compatibility with
	packages using python3 syntax in setup.py

	support/download: Fix tarball generation (from git/svn repos)
	including symlinks pointing to ./<something>

	Meson: Use correct C++ host compiler (rather than C compiler)

	Updated/fixed packages: asterisk, at91bootstrap3, babeltrace2,
	batman-adv, bind, ca-certificates, cegui, cog, diffutils,
	docker-containerd, dovecot, dovecot-pigeonhole, efivar,
	elfutils, fakeroot, git, gnuchess, gnuradio, gnutls, go,
	grub2, haserl, i7z, imagemagick, intel-mediasdk, irqbalance,
	jasper, kodi, libcurl, libebml, libeXosip2, libglib2, libhtp,
	libjpeg, libopenssl, libqmi, libressl, libupnp, libuwsc,
	libvips, lldpd, mariadb, mbedtls, mender, micropython,
	mosquitto, netsnmp, nodejs, openblas, openldap, openmpi,
	openssh, opkg-utils, optee-client, optee-test, perl, php,
	privoxy, proftpd, prosody, protobuf, python-aiohttp,
	python-django, python-lxml, python-pyyaml, python-rpi-ws281x,
	python-typing-extensions, python3, quagga, qwt, redis, rpm,
	sconeserver, screen, sox, sqlcipher, squid, suricata,
	syslinux, sysvinit, tor, transmission, tzdata, uboot, unbound,
	upx, util-linux, webkitgtk, wireshark, wolfssl,
	wpebackend-fdo, wpewebkit, wpa_supplicant, zstd

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

	#13516: utils/scanpypi: Failure when parsing diffoscope
	#13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to..
	#13576: Issues compiling buildroot for 5x86
	#13581: jpegsrc.v9d.tar.gz has changed hash
	#13616: tar file from git repository generation issue

2020.11.3, released February 17th, 2021

	meson: Fix ccache detection handling when per-package builds
	are used.

	Fakeroot: Fix compatibility issue with glibc 2.33

	Updated/fixed packages: atftp, binutils, busybox, cereal,
	chartjs, connman, dhcpcd, dnsmasq, docker-cli, docker-engine,
	ebtables, fakeroot, flashrom, go, gst1-python, guile,
	intel-mediadriver, intel-microcode, jasper,
	kodi-inputstream-adaptive, lcms2, libbsd, libopenssl,
	makedumpfile, memtester, mosquitto, ne10, openblas, orc, php,
	postgresql, privoxy, pugixml, python-bottle, python-django,
	python3, rauc, sox, stress-ng, subversion, tzdata,
	uboot-tools, uclibc, webkitgtk, wireguard-linux-compat,
	wireshark, wpa_supplicant, wpewebkit, xenomai,
	xserver_xorg-server, xterm

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

	#11706: binman (U-boot tool) cannot find libfdt "binman: No mod..
	#13506: BR2_PACKAGE_DHCPCD missing directory creation

2020.11.2, released January 31st, 2021

	Important / security related fixes.

	Download: Ensure git submodules are correctly fetched if
	enabled for a package with <pkg>_GIT_SUBMODULES = YES and the
	host variant is downloaded first.

	Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not
	having libatomic. Bootlin PowerPC-440 FP toolchain updated for
	SecurePLT fix.

	pkg-stats: Fix python 3.8+ deprecation warning.

	meson: Ensure ccache is not detected and used, as it may
	conflict with the ccache handling in Buildroot.

	Updated/fixed packages: barebox, boost, brltty, dbus,
	docker-containerd, dovecot, dovecot-pigeonhole,
	environment-setup, firmware-imx, gcc, gerbera, glibc,
	gmrender-resurrect, igd2-for-linux, kodi-pvr-zattoo, libclc,
	libfuse3, libllcp, libodb-mysql, libtorrent-rasterbar,
	libupnp, lpc32xxcdl, luarocks, mpd, multipath-tools, mutt,
	nfs-utils, nodejs, openjpeg, openldap, opentracing-cpp,
	openvpn, p11-kit, paho-mqtt-c, php, poppler, postgresql,
	python3, redis, resiprocate, rpm, runc, socat, sslh, sudo,
	sunxi-mali-mainline-driver, syslog-ng, systemd, tini,
	tpm2-tss, trace-cmd, tzdata, uboot-tools, uhd, ushare,
	util-linux, vlc, wavpack, wireguard-linux-compat, wolfssl,
	xapp_xload, xorriso, zic

	Removed packages: libupnp18

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

	#13471: package/mpd/mpd.conf make use of path not created

2020.11.1, released December 27th, 2020

	Important / security related fixes.

	Infrastructure:
	- cmake: fix host ccache handling for CMake 3.19
	- meson: Forcibly disable binary stripping for
	  target builds, enable for host builds
	- golang: Fix HOST / TARGET directories for per-package builds

	Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues

	Updated/fixed packages: apitrace, arm-trusted-firmware,
	ca-certificates, cryptopp, dhcpcd, dtv-scan-tables,
	flare-engine, ghostscript, go, haproxy, imagemagick,
	imx-gpu-viv, jasper, kismet, libcurl, libglib2, libhtp,
	libopenssl, libressl, libuv, libuvw, lua, mbedtls, mongodb,
	mutt, ncurses, netsnmp, nodejs, opencv3, openldap, opkg-utils,
	paho-mqtt-c, python-crc16, python-lxml, python-pyparsing,
	python-pyqt5, qt5base, rauc, shadowsocks-libev, sqlcipher,
	suricata, ti-sgx-demos, tinycbor, uclibc-ng-test, unbound,
	webkitgtk, wpewebkit, wireshark, x11vnc, xen,
	xserver_xorg-server

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

	#13316: beaglebone_qt5_defconfig: PowerVR fails to start
	#13416: dhcpcd start warning message: no such user dhcpcd

2020.11, released December 2nd, 2020

	Various fixes.

	Updated/fixed packages: bustle, docker-containerd, gnuplot,
	gst1-plugins-good, jemalloc, kmsxx, libcap, libplist,
	libuhttpd, libxkbcommon, lynx, mariadb, netsurf, privoxy,
	s390-tools, setserial, xserver_xorg-server

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

	#13276: libcap builds libcap.pc incorrectly

2020.11-rc3, released November 28th, 2020

	Fixes all over the tree.

	Updated/fixed packages: c-ares, cage, cdrkit,
	dovecot-pigeonhole, efl, gvfs, harfbuzz, jpeg-turbo,
	libcamera, libkrb5, libpam-tacplus, libxkbcommon, minidlna,
	modem-manager, monkey, musl, ncurses, numactl, openntpd,
	openrc, postgresql, proftpd, python-flask-cors, python-pip,
	qemu, raptor, redis, slirp, spandsp, thermald, uhd, vsftpd,
	webkitgtk, wireless-regdb, wlroots, wpewebkit, xen, xinetd,
	xorriso

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

	#13296: host-libcap failed to build
	#13331: openrc-0.42.1 compilation failure on gcc-10
	#13336: thermald-1.9.1 compilation failure with musl 1.2.1
	#13341: Mistake in /etc/init.d/S70vsftpd

2020.11-rc2, released November 14th, 2020

	Fixes all over the tree.

	cve-checker script dropped. Instead the pkg-stats logic has
	been extended to be able to only generate stats for the
	configured packages using 'make pkg-stats'

	Removed defconfigs: rock64

	Updated/fixed packages: apparmor, asterisk, bitcoin, busybox,
	cups-filters, cryptsetup, davfs2, domoticz, elf2flt, freetype,
	ghostscript, glmark2, go, gst1-plugins-bad, guile, jsoncpp,
	libcap, libexif, libnetfilter_conntrack, libpam-tacplus,
	libsigrokdecode, linux-backports, linux-firmware, mesa3d,
	modem-manager, mp4v2, oniguruma, openntpd, python3,
	python-lmdb, python-m2crypto, rauc, s390-tools, slirp,
	stress-ng, suricata, systemd, tcpdump, tmux, tor, webkitgtk,
	wireguard-linux-compat, wpewebkit, xen

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

	#13281: Raspberry Pi 2: overlays folder missing in genimage-ra..
	#13291: BR2_DL_DIR is ignored when creating defconfig
	#13306: wpewebkit build problem in 2020-11-rc1

2020.11-rc1, released November 4th, 2020

	Fixes all over the tree and new features.

	Architectures: Support for IBM s390x

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2020.08.3, released December 27th, 2020

	Important / security related fixes.

	Infrastructure:
	- cmake: fix host ccache handling for CMake 3.19
	- meson: Forcibly disable binary stripping for
	  target builds, enable for host builds
	- golang: Fix HOST / TARGET directories for per-package builds

	Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues

	Updated/fixed packages: apitrace, arm-trusted-firmware,
	bustle, c-ares, ca-certificates, cage, cdrkit, cryptopp,
	dhcpcd, docker-containerd, dtv-scan-tables, flare-engine,
	ghostscript, gvfs, haproxy, imagemagick, imx-gpu-viv, jasper,
	jemalloc, jpeg-turbo, libcamera, libcap, libcurl, libglib2,
	libgpiod, libkrb5, libopenssl, libplist, libressl, libuv,
	libuvw, lynx, mariadb, mbedtls, minidlna, mongodb, monkey,
	musl, mutt, ncurses, netsnmp, netsurf, nodejs, opencv3,
	openldap, openrc, opkg-utils, paho-mqtt-c, php, privoxy,
	proftpd, python-crc16, python-flask-cors, python-lxml,
	python-pip, python-pyparsing, python-pyqt5, qemu, qt5base,
	raptor, rauc, ruby, setserial, shadowsocks-libev, slirp,
	sqlcipher, thermald, ti-sgx-demos, tinycbor, unbound, vsftpd,
	wireless-regdb, wireshark, wlroots, x11vnc, xen, xinetd,
	xserver_xorg-server

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

	#13276: libcap builds libcap.pc incorrectly
	#13316: beaglebone_qt5_defconfig: PowerVR fails to start
	#13336: thermald-1.9.1 compilation failure with musl 1.2.1
	#13341: Mistake in /etc/init.d/S70vsftpd
	#13416: dhcpcd start warning message: no such user dhcpcd

2020.08.2, released November 16th, 2020

	Important / security related fixes.

	Toolchain-wrapper: Pass -fno-tree-loop-distribute-patterns to
	fix kernel build on microblaze with gcc 10.x when
	optimizations are enabled.

	Updated/fixed packages: apparmor, argp-standalone, asterisk,
	bandwidthd, binutils, bitcoin, busybox, collectd, cryptsetup,
	cups-filters, darkhttpd, davfs2, docker-cli,
	docker-containerd, docker-engine, dovecot-pigeonhole,
	dvb-apps, elf2flt, fastd, fbset, fbtft, freetype, gcc,
	ghostscript, grpc, gst1-plugins-bad, jsoncpp,
	kernel-module-imx-gpu-viv, keepalived, kmscube, libass,
	libexif, libiqrf, libnetfilter_conntrack, libpam-tacplus,
	libraw, linux-backports, linux-firmware, lzlib, mp4v2,
	netsnmp, nginx, numactl, oniguruma, opencv3, openntpd,
	patchelf, php, pistache, postgresql, python-pyqt5, qemu,
	qt5base, rauc, redis, samba4, slirp, systemd, tcpdump,
	tinyproxy, tmux, tor, waf, webkitgtk, wine,
	wireguard-linux-compat, wireshark, wpewebkit, xen, xorriso,
	xvisor, zeromq, zxing-cpp

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

	#11931: Bugs in support/scripts/apply-patches.sh

2020.08.1, released October 12th, 2020

	Important / security related fixes.

	Fixes for various compilation issues with GCC 10.x.

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

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

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

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

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

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

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

	fs/jffs2: Now correctly handles xattrs

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

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

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

2020.08, released September 1st, 2020

	Various fixes.

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

2020.08-rc3, released August 28th, 2020

	Fixes all over the tree.

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

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

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

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

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

2020.08-rc2, released August 24th, 2020

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

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

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

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

	New packages: python3-cython, python3-pycryptodomex

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

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

2020.08-rc1, released August 6th, 2020

	Toolchain:

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

	Infrastructure:

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

	Misc:

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

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

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

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

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

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

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

2020.05.3, released October 12th, 2020

	Important / security related fixes.

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

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

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

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

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

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

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

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

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

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

2020.05.2, released August 29th, 2020

	Important / security related fixes.

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

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

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

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

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

2020.05.1, released July 25th, 2020

	Important / security related fixes.

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

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

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

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

	- Fix file locking over NFS

	fs: Ensure cpio archive element order is reproducible

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

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

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

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

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

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

2020.05, released June 1st, 2020

	Various fixes.

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

2020.05-rc3, released May 29th, 2020

	Fixes all over the tree.

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

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

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

	Removed packages: wiringpi

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

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

2020.05-rc2, released May 22nd 2020

	Fixes all over the tree.

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

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

	New packages: python3-pyelftools

	Removed packages: ezxml, mtdev2tuio, python-pycrypto

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

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

2020.05-rc1, released May 7th 2020

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2020.02.12, released April 5, 2021

	Important / security related fixes.

	Dependencies: Explicitly detect and bail out if PATH contains
	spaces or tabs. A number of packages fail to build in such
	setups, so explicitly inform about this.

	utils/scanpypi: Explicitly use python3 for compatibility with
	packages using python3 syntax in setup.py

	support/download: Fix tarball generation (from git/svn repos)
	including symlinks pointing to ./<something>

	Meson: Use correct C++ host compiler (rather than C compiler)

	Updated/fixed packages: asterisk, batman-adv, bind,
	ca-certificates, docker-containerd, dovecot,
	dovecot-pigeonhole, diffutils, efivar, git, gnuchess, gnutls,
	grub2, fakeroot, haserl, imagemagick, irqbalance, jasper,
	kodi, libcurl, libebml, libglib2, libjpeg, libopenssl,
	libupnp, libvips, lldpd, mariadb, mbedtls, mosquitto, nodejs,
	netsnmp, nettle, openldap, openmpi, openssh, opkg-utils, perl,
	php, privoxy, prosody, protobuf, python-aiohttp,
	python-django, python-lxml, python-pyyaml, python-rpi-ws281x,
	python3, redis, rpm, sconeserver, screen, sox, sqlcipher,
	squid, sysvinit, tor, transmission, tzdata, uboot, upx,
	util-linux, wireshark, wolfssl, wpa_supplicant, zstd

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

	#13516: utils/scanpypi: Failure when parsing diffoscope
	#13541: 2021.02.rc2: irqbalance: Daemon couldn't be bound to..
	#13576: Issues compiling buildroot for 5x86
	#13581: jpegsrc.v9d.tar.gz has changed hash
	#13616: tar file from git repository generation issue

2020.02.11, released February 17, 2021

	Important / security related fixes.

	meson: Fix ccache detection handling when per-package builds
	are used.

	Fakeroot: Fix compatibility issue with glibc 2.33

	Updated/fixed packages: atftp, busybox, cereal, connman,
	dhcpcd, dnsmasq, docker-cli, docker-engine, fakeroot,
	intel-mediadriver, intel-microcode, jasper,
	kodi-inputstream-adaptive, libbsd, libopenssl, linux-headers,
	mosquitto, orc, php, postgresql, privoxy, pugixml,
	python-bottle, python-django, python3, rauc, sox, subversion,
	tzdata, wireguard-linux-compat, wpa_supplicant, xenomai, xterm

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

	#13506: BR2_PACKAGE_DHCPCD missing directory creation

2020.02.10, released January 31st, 2021

	Important / security related fixes.

	Download: Ensure git submodules are correctly fetched if
	enabled for a package with <pkg>_GIT_SUBMODULES = YES and the
	host variant is downloaded first.

	Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not
	having libatomic.

	pkg-stats: Fix python 3.8+ deprecation warning.

	meson: Ensure ccache is not detected and used, as it may
	conflict with the ccache handling in Buildroot.

	New packages: libnpupnp

	Updated/fixed packages: bctoolbox, brltty, dbus, dovecot,
	dovecot-pigeonhole, gcc, gerbera, gmrender-resurrect, gst-omx,
	gst1-plugins-bad, gst1-plugins-base, gst1-plugins-good,
	gst1-plugins-ugly, gst1-rtsp-server, gst1-vaapi,
	gst1-validate, gstreamer1, gstreamer1-editing-services,
	igd2-for-linux, libclc, libllcp, libtorrent-rasterbar,
	libupnp, libupnpp, lpc32xxcdl, luarocks, mpd, nfs-utils,
	nodejs, openjpeg, openldap, opentracing-cpp, openvpn, p11-kit,
	paho-mqtt-c, php, poppler, postgresql, python3, runc, sudo,
	syslog-ng, systemd, tini, trace-cmd, tzdata, ushare, vlc,
	wavpack, wireguard-linux-compat, wolfssl, xapp_xload, xorriso,
	zic

	Removed packages: libupnp18

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

	#13471: package/mpd/mpd.conf make use of path not created

2020.02.9, released December 27th, 2020

	Important / security related fixes.

	Infrastructure:
	- cmake: fix host ccache handling for CMake 3.19
	- meson: Forcibly disable binary stripping for
	  target builds, enable for host builds
	- golang: Fix HOST / TARGET directories for per-package builds

	Defconfigs: Beaglebone Qt5: Fix ti-sgx related issues

	Updated/fixed packages: apitrace, arm-trusted-firmware,
	bustle, c-ares, ca-certificates, cdrkit, cryptopp, dhcpcd,
	docker-containerd, dtv-scan-tables, flare-engine, ghostscript,
	haproxy, imagemagick, imx-gpu-viv, jasper, jemalloc,
	jpeg-turbo, libcap, libcurl, libglib2, libgpiod, libkrb5,
	libopenssl, libplist, libressl, libuv, libuvw, lynx, mariadb,
	mbedtls, minidlna, monkey, musl, mutt, ncurses, netsnmp,
	nodejs, opencv3, openldap, openrc, opkg-utils, paho-mqtt-c,
	php, privoxy, proftpd, python-crc16, python-flask-cors,
	python-lxml, python-pip, python-pyparsing, python-pyqt5, qemu,
	qt5base, raptor, rauc, ruby, setserial, shadowsocks-libev,
	slirp, sqlcipher, ti-sgx-demos, tinycbor, vsftpd,
	wireless-regdb, wireshark, x11vnc, xen, xinetd,
	xserver_xorg-server

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

	#13276: libcap builds libcap.pc incorrectly
	#13316: beaglebone_qt5_defconfig: PowerVR fails to start
	#13341: Mistake in /etc/init.d/S70vsftpd

2020.02.8, released November 16th, 2020

	Important / security related fixes.

	Updated/fixed packages: angularjs, argp-standalone, asterisk,
	bandwidthd, bitcoin, busybox, cryptsetup, darkhttpd, davfs2,
	docker-cli, docker-containerd, docker-engine,
	dovecot-pigeonhole, fastd, fbset, fbtft, freetype, gcc,
	ghostscript, gnuradio, grpc, gst1-plugins-bad, jsoncpp,
	keepalived, libass, libexif, libiqrf, libpam-tacplus, libraw,
	linux-backports, linux-firmware, lzlib, netsnmp, nginx,
	oniguruma, opencv3, openntpd, patchelf, php, postgresql,
	python-pyqt5, qt5base, rauc, redis, samba4, slirp, systemd,
	tcpdump, tmux, tor, webkitgtk, wireguard-linux-compat,
	wireshark, wpewebkit, xen, xorriso, zeromq, zxing-cpp

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

	#11931: Bugs in support/scripts/apply-patches.sh

2020.02.7, released October 12th, 2020

	Important / security related fixes.

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

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

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

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

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

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

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

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

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

2020.02.6, released September 5th, 2020

	Important / security related fixes.

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

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

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

	#12911: usb_modeswitch installation race condition

2020.02.5, released August 29th, 2020

	Important / security related fixes.

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

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

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

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

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

2020.02.4, released July 26th, 2020

	Important / security related fixes.

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

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

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

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

	- Fix file locking over NFS

	fs: Ensure cpio archive element order is reproducible

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

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

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

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

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

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

2020.02.3, released June 3rd, 2020

	Important / security related fixes.

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

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

	Removed packages: python-pycrypto

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

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

2020.02.2, released May 12th, 2020

	Important / security related fixes.

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

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

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

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

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

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

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

2020.02.1, released April 10th, 2020

	Important / security related fixes.

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

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

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

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

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

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

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

2020.02, released March 8th, 2020

	Various fixes.

	br2-external: Fix compatibility with make 4.3+

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

	Removed packages: classpath, jamvm

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

	#12606: fbgrab location has changed

2020.02-rc3, released March 2nd, 2020

	Fixes all over the tree.

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

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

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

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

2020.02-rc2, released February 26th, 2020

	Fixes all over the tree.

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

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

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

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

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

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

2020.02-rc1, released February 18th, 2020

	Fixes all over the tree and new features.

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

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

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

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

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

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

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

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

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

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

	New defconfigs: Beelink GS1, Raspberrypi4 64bit

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

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

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

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

2019.11.3, released April 10th, 2020

	Important / security related fixes.

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

	toolchain: Fix kernel headers validation check for external
	toolchains.

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

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

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

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

2019.11.2, released March 16th, 2020

	Important / security related fixes.

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

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

	Toolchain: ARC tools bumped to arc-2019.09.

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

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

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

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

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

2019.11.1, released January 12th, 2020

	Important / security related fixes.

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

	utils/scanpypi: Remind users to update DEVELOPERS

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

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

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

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

2019.11, released December 1st, 2019

	Various fixes.

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

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

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

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

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

2019.11-rc3, released November 24th, 2019

	Fixes all over the tree.

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

2019.11-rc2, released November 16th, 2019

	Fixes all over the tree.

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

	Meson: Fix generation of global cross-compilation.conf

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

	Defconfigs: Fix boot issue for beaglebone

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

2019.11-rc1, released November 5th, 2019

	Fixes all over the tree and new features.

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

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

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

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

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

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

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

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

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

	The runtime test logic now uses Python 3.x.

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

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

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

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

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

2019.08.3, released December 7th, 2019

	Important / security related fixes.

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

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

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

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

	Deconfigs: beaglebone: fix boot issue

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

	New packages: libmspack

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

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

2019.08.2, released November 9th, 2019

	Important / security related fixes.

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

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

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

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

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

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

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

2019.08.1, released October 3rd, 2019

	Important / security related fixes.

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

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

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

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

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

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

2019.08, released September 1st, 2019

	Various fixes.

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

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

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

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

2019.08-rc3, released August 28th, 2019

	Fixes all over the tree.

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

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

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

2019.08-rc2, released August 20th, 2019

	Fixes all over the tree.

	Compile fixes for a number of defconfigs.

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

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

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

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

2019.08-rc1, released August 9th, 2019

	Fixes all over the tree and new features.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Removed defconfigs: Odroid C2

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

	Removed packages: xapp_mkfontdir

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

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

2019.05.3, Released October 3rd, 2019

	Important / security related fixes.

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

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

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

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

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

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

2019.05.2, Released September 3rd, 2019

	Important / security related fixes.

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

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

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

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

2019.05.1, Released July 7th, 2019

	Important / security related fixes.

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

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

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

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

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

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

2019.05, released June 2nd, 2019

	Various fixes.

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

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

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

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

2019.05-rc3, released May 25th, 2019

	Fixes all over the tree.

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

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

	Linux: Default to 5.1.x series

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

2019.05-rc2, released May 15th, 2019

	Fixes all over the tree.

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

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

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

2019.05-rc1, Released May 8th, 2019

	Fixes all over the tree and new features.

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

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

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

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

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

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

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

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

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

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

	Removed defconfigs: Olimx A20 Olinuxino Lime legacy

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

	Removed packages: libump, lunit, sunxi-mali

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

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

2019.02.11, released April 9th, 2020

	Important / security related fixes.

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

	toolchain: Fix kernel headers validation check for external
	toolchains.

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

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

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

2019.02.10, released March 16th, 2020

	Important / security related fixes.

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

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

	Br2-external: Fix compatibility with make 4.3+

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

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

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

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

2019.02.9, released January 12th, 2020

	Important / security related fixes.

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

	utils/scanpypi: Remind users to update DEVELOPERS

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

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

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

2019.02.8, released December 7th, 2019

	Important / security related fixes.

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

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

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

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

	Deconfigs: beaglebone: fix boot issue

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

	New packages: libmspack

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

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

2019.02.7, Released November 10th, 2019

	Important / security related fixes.

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

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

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

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

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

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

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

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

2019.02.6, Released October 3rd, 2019

	Important / security related fixes.

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

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

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

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

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

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

2019.02.5, Released September 2nd, 2019

	Important / security related fixes.

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

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

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

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

2019.02.4, Released July 10th, 2019

	Important / security related fixes.

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

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

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

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

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

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

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

2019.02.3, Released June 7th, 2019

	Important / security related fixes.

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

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

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

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

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

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

2019.02.2, Released April 29th, 2019

	Important / security related fixes.

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

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

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

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

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

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

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

2019.02.1, Released March 29th, 2019

	Important / security related fixes.

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

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

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

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

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

2019.02, released March 4th, 2019

	Minor fixes.

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

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

2019.02-rc3, released March 1st, 2019

	Fixes all over the tree.

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

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

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

	Printvars: Fix performance regression since 2018.02

	Scanypi: Correctly handle underscores in python package names.

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

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

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

2019.02-rc2, released February 23th, 2019

	Fixes all over the tree.

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

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

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

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

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

2019.02-rc1, released February 13th, 2019

	Fixes all over the tree and new features.


	Dependencies:

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

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


	Infrastucture:

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

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

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

	graph-build-time: Also show time spent downloading

	Download: fixes for SSH/SCP support

	Ensure user provided permissions override permissions from
	packages.

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

	BR2_SYSTEM_DEFAULT_PATH setting to customize the default path
	for processes.

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

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

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

	cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake

	Various improvements to the meson infrastructure.

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

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

	check-package: fix Python 3 support

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

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

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

	Default to sha256 password encoding, drop md5 support.


	Architecture:

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


	Toolchain:

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


	Packages:

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

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

	libcurl: Now has explicit TLS backend selection options.

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

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

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

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


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


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

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

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

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

2018.11.4, Released March 28th, 2019

	Important / security related fixes.

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

2018.11.3, Released February 23th, 2019

	Important / security related fixes.

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

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

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

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

	Download: fixes for SSH/SCP support

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

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

2018.11.2, Released January 30th, 2019

	Important / security related fixes.

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

	Download: Fix scp download handling

	check-package: fix Python 3 support

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

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

	cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake

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

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

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

2018.11.1, Released December 20th, 2018

	Important / security related fixes.

	defconfigs: Fixes for bananapi m2 ultra, ci20

	Download wrapper: Fix for urlencode handling

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

	New packages: docker-cli

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

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

2018.11, Released December 1st, 2018

	Minor fixes.

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

2018.11-rc3, released November 30th, 2018

	Fixes all over the tree.

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

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

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

2018.11-rc2, released November 21th, 2018

	Fixes all over the tree.

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

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

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

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

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

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

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

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

2018.11-rc1, released November 9th, 2018

	Fixes all over the tree and new features.

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

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

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

	Filesystems: Support for creating btrfs and f2fs filesystems
	added.

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

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

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

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

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

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

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

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

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

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

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

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

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

2018.08.4, Released December 20th, 2018

	Important / security related fixes.

	Defconfigs: Fixes for ci20, orangepi zero plus 2

	Download wrapper: Fix for urlencode handling

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

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

	#11426: pps-tools bash dependency

2018.08.3, Released November 26th, 2018

	Important / security related fixes.

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

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

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

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

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

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

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

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

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

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

2018.08.2, Released October 25th, 2018

	Important / security related fixes.

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

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

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

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

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

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

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

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

2018.08.1, Released October 7th, 2018

	Important / security related fixes.

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

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

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

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

2018.08, Released September 6th, 2018

	Minor fixes.

	Known issues:

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

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

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

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

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

2018.08-rc3, Released August 31th, 2018

	Fixes all over the tree.

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

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

	Toolchain: Correct external toolchain musl detection for
	static toolchains.

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

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

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

2018.08-rc2, Released August 20th, 2018

	Fixes all over the tree.

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

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

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

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

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

2018.08-rc1, Released August 5th, 2018

	Toolchain:

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

	Architecture: add support for ARM Cortex-M7

	Major updates:

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

	Linux: bumped to 4.17 by default.

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

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

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

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

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

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

2018.05.3, Released October 6th, 2018

	Important / security related fixes.

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

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

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

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

2018.05.2, Released August 28th, 2018

	Important / security related fixes.

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

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

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

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

2018.05.1, Released July 20th, 2018

	Important / security related fixes.

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

	Linux: Enable CONFIG_PERF_EVENTS when perf is enabled.

	Toolchain: ARC tools updated to arc-2018.03.

	pkg-stats: Fix python 3.x compatibility.

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

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

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

2018.05, Released June 1st, 2018

	Minor fixes.

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

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

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

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

2018.05-rc3, Released May 28th, 2018

	Fixes all over the tree.

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

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

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

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

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

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

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

2018.05-rc2, Released May 22nd, 2018

	Fixes all over the tree.

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

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

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

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

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

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

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

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

2018.05-rc1, Released May 9th, 2018

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

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

	Numerous packages updated to have hashes for their license
	files.

	Systemd can now be built with uClibc toolchains.

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

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

	Infrastructure:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2018.02.12, Released March 29th, 2019

	Important / security related fixes.

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

2018.02.11, Released February 23th, 2019

	Important / security related fixes.

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

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

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

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

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

2018.02.10, Released January 31th, 2019

	Important / security related fixes.

	Defconfigs: Fixes for Lego EV3, QEMU AArch64-virt

	check-package: fix Python 3 support

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

	cmake: Also set CMAKE_SYSTEM_VERSION in toolchainfile.cmake

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

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

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

2018.02.9, Released December 20th, 2018

	Important / security related fixes.

	defconfigs: Fixes for ci20

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

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

	#11426: pps-tools bash dependency

2018.02.8, Released November 26th, 2018

	Important / security related fixes.

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

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

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

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

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

	Defconfigs: Fixes for Armadeus APF27, imx6sabre.

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

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

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

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

2018.02.7, Released October 25th, 2018

	Important / security related fixes.

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

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

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

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

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

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

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

2018.02.6, Released October 7th, 2018

	Important / security related fixes.

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

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

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

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

	New packages: brotli, woff2

2018.02.5, Released August 29th, 2018

	Important / security related fixes.

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

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

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

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

2018.02.4, Released July 21th, 2018

	Important / security related fixes.

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

	Linux: Enable CONFIG_PERF_EVENTS when perf is enabled.

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

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

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

	#11101: host-patchelf Endian Issue with relative RPATH

2018.02.3, Released June 18th, 2018

	Important / security related fixes.

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

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

	Busybox/mdev: Fix module autoloading.

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

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

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

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

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

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

	Remove broken freescale_imx31_3stack,
	freescale_imx6sololiteevk and freescale_imx6ulevk defconfigs.

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

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

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

2018.02.2, Released May 4th, 2018

	Important / security related fixes.

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

	Revert /etc/shells creation when bash is enabled.

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

	Scanpypi: Support the new PyPi infrastructure.

	Handle GCC 8.x on the host.

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

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

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

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

2018.02.1, Released April 9th, 2018

	Important / security related fixes.

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

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

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

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

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

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

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

	Toolchain: Fix SSP support detection for external toolchains.

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

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

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

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

	New packages: docker-proxy, python-functools32

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

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

2018.02, Released March 4th, 2018

	Fixes all over the tree.

	Issues with systemd with a readonly rootfs and DBus fixed.

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

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

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

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

2018.02-rc3, Released February 27th, 2018

	Fixes all over the tree.

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

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

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

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

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

2018.02-rc2, Released February 15th, 2018

	Fixes all over the tree.

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

	utils/genrandconfig: Check host dependencies for config.

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

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

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

2018.02-rc1, Released February 5th, 2018

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

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

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

	Added hardening options to build with RELRO and FORTITY.

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

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

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

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

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

	Support for the meson build system.

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

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

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

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

	Support for the Rust programming language.

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

	Removed packages: eeprog

2017.11.2, Released January 21st, 2018

	Important / security related fixes.

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

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

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

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

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

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

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

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

2017.11.1, Released December 31th, 2017

	Important / security related fixes.

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

2017.11, Released November 30, 2017

	Fixes all over the tree.

	Toolchain: Use github mirror for Glibc.

	Defconfigs: Correct boot.cmd for bananapi-m1.

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

	Download: Ensure subversion runs in non-interactive mode.

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

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

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

2017.11-rc2, Released November 13th, 2017

	Fixes all over the tree.

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

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

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

2017.11-rc1, Released November 6th, 2017

	Fixes all over the tree and new features.

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

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

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

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

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

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

	Removed packages: aiccu, rfkill, sepolgen

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

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

2017.08.2, Released November 28th, 2017

	Important / security related fixes.

	Qt: 5.6 version updated to 5.6.3.

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

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

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

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

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

2017.08.1, Released October 23rd, 2017

	Important / security related fixes.

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

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

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

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

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

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

2017.08, Released September 1st, 2017

	Minor fixes.

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

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

	Updated/fixed defconfigs:

	Removed packages: simicfs.

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

	#10261: Grub2 fails to build for x86_64

2017.08-rc3, Released August 23rd, 2017

	Fixes all over the tree.

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

	Updated/fixed defconfigs: ci20, socrates_cyclone5,
	toradex_apalis_imx6.

	Removed defconfig: Armadeus APF9328.

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

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

	#10141: Squashfs extended attribute failures

2017.08-rc2, Released August 11th, 2017

	Fixes all over the tree.

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

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

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

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

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

2017.08-rc1, Released August 2nd, 2017

	Infrastructure:

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

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

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

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

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

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

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

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

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

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

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

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

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

	Filesystems:

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

	Architecture:

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

	Toolchain:

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

	Tools:

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

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

	New packages: azure-iot-sdk-c, cracklib, dt-utils, easy-rsa,
	erlang-jiffy, erlang-p1-oauth2, erlang-p1-xmpp,
	ifupdown-scripts, irrlicht, kodi-inputstream-adaptive,
	kodi-inputstream-rtmp, kvazaar, let-me-create, libloki,
	libpwquality, libressl, libspatialindex, libva-utils,
	linuxconsoletools, linuxptp, luaossl, lua-sdl2, lua-stdlib,
	lsscsi, paxtest, pcre2, pixz, python-asn1crypto,
	python-backports-shutil-get-terminal-size, python-bcrypt,
	python-cheroot, python-h2, python-hpack, python-hyperframe,
	python-hyperlink, python-ipython-genutils, python-pathlib2,
	python-pickleshare, python-priority, python-portend,
	python-scandir, python-systemd, python-tempora,
	python-traitlets, python-typepy, qt5virtualkeyboard,
	ratpoison, rauc, refpolicy, rhash, sdl2_mixer, sdl2_net,
	xr819-xradio, zstd

	Removed packages: cloog, input-tools, mke2img

	Issues resolved (http://bugs.buildroot.org):

	#7892: systemd-journald is broken
	#9341: avahi-utils does not compile with uClibc +  libglib2
	#9441: Link BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY to
	       BR2_ENABLE_DEBUG
	#9746: ext4 image generated by Buildroot is not working
	       properly with U-Boot
	#9886: Build fails with "unexpected EOF while looking for
	       matching `"'" if PATH contains a newline
	#9891: parted 3.1 => 3.2?
	#9911: qt5 does not build on sparc
	#9916: qt5 does not build on
	       arm-buildroot-linux-uclibcgnueabihf for ARMv8 cores
	#9936: Host QEMU does not build with SDL support because of
	       pkg-config
	#9941: nodejs option disappears for arm
	#9951: SCANCPAN failure
	#9966: util-linux-2.30/.stamp_built' failed
	#9976: License file for package 'rtl8821au' incorrect
	#9991: SGX Error implicit declaration of function
	       ‘dmac_map_area’
	#10011: wget does not work from Buildroot
	#10036: Buildroot builds Raspbian Jessie headless image
		presenting incorrect prompt
	#10051: make: *** No rule to make target
		'raspberrpi3_defconfig'. Stop reported with Buildroot
		v2017.05.1
	#10056: No .config file was produced in /buildroot folder
	#10061: gcc5.4 buildroot toolchain for powerpc libsanitizer
		failure
	#10071: fakeroot: replace hard-coded paths in post install
	#10076: Makefile:4113: recipe for target 'all-gcc'  failed
	#10091: gcc7.1 does not build with graphite support due to old
		isl
	#10121: webkit without the multimedia option causes build
		error

2017.05.2, Released July 27th, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.16.x series, fixing a large number
	of security issues.

	host-aespipe compile fix for Debian/Gentoo/Ubuntu toolchains
	which default to PIE mode.

	Updated/fixed packages: aespipe, apache, bind, binutils,
	busybox, ccache, collectd, dieharder, efibootmgr, efivar,
	expat, ffmpeg, gcc, heimdal, iproute2, irssi, libglib2,
	libmemcached, libosip2, libtirpc, libxml-parser-perl,
	linux-fusion, linux-zigbee, mpg123, orc, pcre, php, protobuf,
	pulseaudio, python-setproctitle, qt5base, rpi-firmware,
	samba4, syslinux, systemd, spice, tcpdump, tiff, uboot-tools,
	webkitgtk, x265, xserver_xorg-server, xvisor

	Issues resolved (http://bugs.buildroot.org):

	#10061: gcc5.4 buildroot toolchain for powerpc libsanitizer...

2017.05.1, Released July 4th, 2017

	Important / security related fixes.

	Update support/scripts/scancpan to use METACPAN v1 API as v0
	has been shutdown.

	Update support/scripts/mkusers to handle setups where
	/etc/shadow is a symlink.

	External toolchain: Don't create musl dynamic loader symlink
	for static builds.

	Setlocalversion: Correct detection of mercurial revisions for
	non-tagged versions.

	Defconfigs: at91sam9x5ek_mmc: workaround boot rom issue.

	Updated/fixed packages: apache, automake, bind, botan, c-ares,
	dhcp, expat, fcgiwrap, gcc, gdb, gesftpserver, glibc, glmark2,
	gnutls, gst1-plugins-bad, imagemagick, imx-uuc, intltool,
	iperf, ipsec-tools, irssi, kmod, libcurl, libgcrypt, libmad,
	libnl, lugaro, mosquitto, mpg123, ncurses, nodejs, ntp,
	openssh, openvpn, pngquant, python-simplegeneric, qt5base,
	qt5multimedia, rtl8821au, socat, spice, systemd, tor, trinity,
	tslib, vlc, x264, xen, xlib_libxshmfenc, xserver_xorg-server

	Issues resolved (http://bugs.buildroot.org):

	#9976: License file for package 'rtl8821au' incorrect

2017.05, Released May 31st, 2017

	Minor fixes.

	External toolchain: musl dynamic linker symlink for mips-sf
	corrected.

	Updated/fixed packages: agentpp, bash, exim, hans, madplay,
	qpid-proton, rtl8188eu, snmppp, stm32flash, strongswan, sudo,
	xen

	Issues resolved (http://bugs.buildroot.org):

	#9906: genimage: Disk full

2017.05-rc3, Released May 30th, 2017

	Fixes all over the tree.

	ARC toolchain bumped to 2017.03

	Runtime testing improvements and cleanups.

	Updated/fixed packages: acpica, armadillo, audiofile, c-icap,
	cppcms, dhcp, docker-engine, dropbear, elfutils, erlang,
	fbgrab, ffmpeg, flashrom, ftop, gnutls, google-breakpad,
	keepalived, kodi, libcdio, libepoxy, libev, libminiupnpc,
	libqmi, libtasn1, libv4l, mariadb, mono, mosh, mosquitto,
	mxml, ntp, opencv, openpowerlink, oracle-mysql, popt,
	pulseview, python-enum34, rabbitmq-c, redis, samba4, stella,
	xen

	Removed packages: firejail, ola

	Issues resolved (http://bugs.buildroot.org):

	#9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set
	#9876: aarch64 support with gcc 4.8 toolchain
	#9896: host-gcc-initial error downloading because incorrect URL

2017.05-rc2, Released May 17th, 2017

	Fixes all over the tree.

	ARC toolchain bumped to 2017.03-rc2

	Updated/fixed packages: bluez_utils, boost, clamav, daemon,
	efibootmgr, efl, espeak, expedite, faketime, ffmpeg, fxload,
	git, gpsd, kvm-unit-tests, libcdio, libv4l, lua, mke2img,
	mpir, mpv, odroid-scripts, openblas, opencv3, openvpn, php,
	postgresql, protobuf, qt5declarative, qwt, radvd, rpcbind,
	rtmpdump, strongswan, sudo, ltp-testsuite, uclibc-ng-test,
	vlc, x11vnc, xfsprogs

	Issues resolved (http://bugs.buildroot.org):

	#9796: source-check broken for Git downloads
	#9866: BASE_DIR usage

2017.05-rc1, Released May 8th, 2017

	Fixes all over the tree and new features.

	Infrastructure:

	- Installed binaries are now checked for correct architecture
	  to catch natively built binaries or binaries built for other
	  architecture variants.

	- Luarocks infrastructure improvements to extraction handling,
	  support for upstream name != Buildroot package name.

	- 'make printvars' output format has changed to make it easier
	  to use in scripts. It now has options to quote the variables
	  and to show the expanded/unexpanded values.

	- Automatic ext2 rootfs size calculation has been removed. The
	  logic was not working working reliable in all setups as it
	  depends on the host filesystem behaviour, so instead now the
	  size has to be specified explicitly (defaults to 60MB).

	- The git download infrastructure now ensures that GNU format
	  tar files are created.

	- Fixed a variable clashing issue in the mkusers script with
	  internal bash variables.

	- Fakeroot now links against libacl to fix issues on
	  distributions using acls.

	- Correct permissions for /dev/pts/ptmx when systemd is used
	  with recent glibc versions.

	- br2-external: Improve error reporting.

	- A wrapper script for genimage has been added in
	  support/scripts/genimage.sh for easy use of genimage from
	  post-image scripts.

	- A script to check for common style issues in new packages
	  before submitting has been added in support/scripts/check-package

	- Defconfigs are now tested by gitlab-CI instead of Travis:
	  https://gitlab.com/buildroot.org/buildroot

	- Infrastructure for runtime testing has been added to
          support/testing

	Toolchain:

	- External linaro toolchains updated to 2017.02, ARC toolchain
          updated to 2017.03-rc1, NIOSII CodeSourcery to 2017.05

	- A number of fixes and improvements to the external toolchain
	  handling, including C library detection, multilib and ld.so
	  handling

	- Glibc 2.25 and uClibc-ng 1.0.24 added, wordexp support enabled
          for uClibc-ng

	- Binutils 2.28 added and default changed to 2.27


	Architectures:

	- Support for the C-SKY architecture has been added.


	License handling:

	- The package license markings for legal info now uses the
	  SPDX short identifiers for the license string where possible.

	- License info has been improved / added for a number of packages.


	Misc:

	- Cmake 3.7.x installed on the host is no longer ignored as a
          workaround for the RPATH issues has been implemented.

	- Docker-engine can now be built statically on an otherwise
	  dynamic linked build for docker-in-docker setups.

	- U-Boot now supports out-of-tree device trees, similar to
          Linux

	- Nodejs 0.10.x support (and with it, support for <ARMv6) has
          been removed as this is now EOL upstream.

	New defconfigs: AT91sam9x5ek dev/mmc/mmc-dev, banana pro,
	Nationalchip gx6605s, MIPS creator ci40, nexbox a95x, 64bit
	defconfig for raspberry pi 3, stm32f429-disc1.

	The raspberry pi zero-w and rpi3 compute module are now also
	supported by the rpi0 / rpi3 defconfigs, beaglebone green is
	supported by the beaglebone defconfig.

	Removed defconfig: minnowboard, via imx6 vab820, altera
	socdk/sockit

	New packages: arp-scan, atest, augeas, bluez-tools, daemon,
	dc3dd, dieharder, execline, fmt, ghostscript, gqrx,
	gst1-vaapi, jo, keepalived, kmscube, kodi-jsonschemabuilder,
	kodi-skin-confluence, kodi-texturepacker, lensfun, leptonica,
	libbson, libcsv, libgphoto2, libkcapi, libmaxminddb,
	libmediaart, libnpth, libscrypt, lua-bit32, lua-resty-http,
	lugaru, memtool, mpir, nanomsg, physfs, phytool, pngquant,
	python-decorator, python-simplegeneric,
	python-sortedcontainers, rpi-bt-firmware, rpi-wifi-firmware,
	s6, s6-dns, s6-linux-init, s6-linux-utils, s6-networking,
	s6-portable-utils, s6-rc, supertux, tesseract-ocr,
	uccp420wlan, wilink-bt-firmware

	Broken packages: ola

	Removed packages: cosmo, kodi-visualisation-fountain,
	polarssl, portmap, xdriver_xf86-video-glide,
	xdriver_xf86-video-v4l, xdriver_xf86-video-wsfb

	Issues resolved (http://bugs.buildroot.org):

	#8831: image generation fails on host ZFS due to "no free space"
	#9436: e2fsprogs remove busybox applets even of unselected e2fs..
	#9456: mkusers script bash errors
	#9496: mke2img fails during build on ntfs-3g host partition
	#9531: NPM fails to build embedded modules
	#9596: KODI: --enable-lirc needs "HAVE_LIRC" compiler definition..
	#9691: Wrong cryptsetup package include files location
	#9696: Wrong cryptsetup package include files location
	#9706: Can't download newer revisions of package from PyPI
	#9711: Recent libCEC version bump seems to break kodi package
	#9716: exit, shutdown, reboot from kodi
	#9721: version 2017.02: no acceptable m4 could be found in $PATH
	#9726: Raspberry Pi version B - Problems with UART speed in..
	#9751: expat legal info - manifest.csv: GPLv2 Source site: MIT..
	#9756: glibc fails to build on buildroot-sh4*-buildroot-linux-gnu
	#9766: support/scripts/pkgutil.py conflicts with the pkgutil.py..
	#9776: libubox build failed
	#9791: Python searches for packages in the user site directory
	#9806: libseccomp is not available when BR2_arm=y
	#9826: post-build scritp - symlinks created in post-build script..
	#9836: triggerhappy: systemd unit broken
	#9846: musl libc not installed correctly in target folder
	#9856: build libubox failed on ubuntu 17.04 64bit

2017.02.11, Released April 11th, 2018

	Important / security related fixes.

	dependencies: Blacklist tar 1.30+ and build our own host-tar
	if needed as tar 1.30+ changed the --numeric-owner output for
	long path names. Build host-tar before other host-dependencies
	as they need it to extract their source tarballs.

	Updated/fixed packages: apache, busybox, clamav, dhcp,
	dnsmasq, dovecot, exim, imagemagick, irssi, jq, libcurl,
	libpjsip, librsvg, libtasn1, libvorbis, libxml2, lz4, mariadb,
	mbedtls, mosquitto, ntp, openblas, opencv3, openssl, patch,
	postgresql, python-webpy, qt53d, qt5tools, quagga, rsync,
	samba4, sngrep, tremor, wavpack, wireshark, xerces, xterm

	Issues resolved (http://bugs.uclibc.org):

	#10856: openblas on qemu_x86_64_defconfig fails with "sgemm_..

2017.02.10, Released January 31st, 2018

	Important / security related fixes.

	nconfig: Fix for ncurses/ncursesw linking issue causing crashes.

	System: Only show getty options when busybox init or sysvinit
	are used.

	Infrastructure: Fix build issue for autotools based packages
	checking for C++ support on toolchains without C++ support and
	on a distro lacking /lib/cpp (E.G. Arch Linux).

	Updated/fixed packages: avahi, berkeleydb, bind, busybox,
	ccache, clamav, coreutils, dovecot, eeprog, eudev, fis,
	intel-microcode, iputils, irssi, kmsxx, libcurl, liberation,
	libiio, lz4, mariadb, matchbox-lib, mcookie, openocd, php,
	pound, rpcbind, squid, tar, ti-cgt-pru, transmission,
	util-linux, webkitgtk, wireshark, xen

	Issues resolved (http://bugs.buildroot.org):

	#9996: lz4 package does not install lz4 binaries in target
	#10176: Rsyslog's S01logging is deleted by Busybox.mk from...
	#10216: package/x11r7/mcookie/mcookie.c:207: bad size ?
	#10301: systemd/getty unused options
	#10331: kmsxx, host installation fails with BR2_SHARED_...
	#10536: Finding non-relative paths in the ccache
	#10641: avahi-autoipd not starting when using systemd-tmpfiles

2017.02.9, Released January 1st, 2018

	Important / security related fixes.

	Fix divide by zero issue in size-stats script.

	Fix makefile include ordering issue with certain make versions
	in the external toolchain handling.

	Updated/fixed packages: dhcp, exim, flann, gdb, heimdal,
	libcue, libcurl, libevent, libpqxx, libsoxr, linphone, lldpd,
	mariadb, mfgtools, mtools, nodejs, nut, openssl, rsync,
	samba4, tor, vlc, webkitgtk, wireshark, xfsprogs,
	xlib_libXcursor, xlib_libXfont, xlib_libXfont2

2017.02.8, Released November 27th, 2017

	Important / security related fixes.

	Qt: 5.6 version updated to 5.6.3.

	Reproducible: Do not override SOURCE_DATE_EPOCH if already set
	in the environment.

	Updated/fixed packages: apr, apr-util, arqp-standalone,
	collectd, dvb-apps, ffmpeg, google-breakpad, gstreamer,
	imagemagick, libfastjson, libglib2, libpjsip, libplist,
	localedef, luajit, mesa3d, openssh, openssl, postgresql,
	python3, python-pyqt5, qt5base, qt5canvas3d, qt5connectivity,
	qt5declarative, qt5engineio, qt5graphicaleffects,
	qt5imageformats, qt5location, qt5multimedia, qt5quickcontrols,
	qt5quickcontrols2, qt5script, qt5sensors, qt5serialbus,
	qt5serialport, qt5svg, qt5tools, qt5webchannel, qt5webkit,
	qt5websockets, qt5x11extras, qt5xmlpatterns, quagga, ruby,
	samba4, snmppp, ti-gfx, vboot-utils, webkitgtk, wireshark,
	xapp_xdriinfo.

	Issues resolved (http://bugs.buildroot.org):

	10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y
	10361: python3 python-config script generates invalid includes
	10501: host-localedef fails to compile on Ubuntu 17.10

2017.02.7, Released October 28th, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.18.x series, fixing a large number
	of security issues.

	Defconfigs: wandboard: Correct rootfs offset

	Toolchain: Linaro toolchains updated to 2017.08 release,
	fixing a number of issues. Musl: fix for CVE-2017-15650.

	Updated/fixed packages: busybox, bzip2, dnsmasq, git, go,
	hostapd, irssi, iucode-tool, lame, libcurl, libffi, libnspr,
	libnss, nodejs, openssh, openvpn, qemu, qt, redis, sdl2,
	webkitgtk, wget, wpa_supplicant, xen, xlib_libXfont,
	xlib_libXfont2, xserver_xorg-server

2017.02.6, Released September 24th, 2017

	Important / security related fixes.

	Cmake: Ensure correct pkg-config is used when building host
	packages

	fs/iso9660: Ensure files from earlier builds are not included.

	Updated/fixed packages: apache, bcusdk, bind, binutils,
	bluez5_utils, botan, cmake, connman, dbus, dialog, e2fsprogs,
	faad2, fakeroot, ffmpeg, file, flashrom, gcc, gd, gdb,
	gdk-pixbuf, git, gnupg, gpsd, grub2, gst1-plugins-bad,
	imagemagick, iostat, iucode-tool, jack2, libarchive, libcurl,
	libgcrypt, libidn, libphidget, librsync, librsvg, libsoup,
	libxml2, linux-tools, lua, mariadb, mbedtls, mediastreamer,
	minidlna, netplug, nss-pam-ldapd, nvidia-driver, openjpeg,
	postgresql, proxychains-ng, python-libconfig,
	python-service-identity, qt, rpcbind, ruby, samba4, squashfs,
	squid, strongswan, subversion, supervisor, sysvinit, tcpdump,
	tor, transmission, unrar, valgrind, vim, webkitgtk, whois,
	xen, zmqpp

	Issues resolved (http://bugs.buildroot.org):

	#10141: Squashfs extended attribute failures
	#10261: Grub2 fails to build for x86_64
	#10276: BR2_PACKAGE_LINUX_TOOLS_GPIO fails for MIPS with...

2017.02.5, Released July 27th, 2017

	Important / security related fixes.

	Webkitgtk bumped to the 2.16.x series, fixing a large number
	of security issues.

	host-aespipe compile fix for Debian/Gentoo/Ubuntu toolchains
	which default to PIE mode.

	Updated/fixed packages: aespipe, apache, bind, binutils,
	busybox, ccache, collectd, efibootmgr, efivar, expat, ffmpeg,
	gcc, heimdal, iproute2, irssi, libglib2, libmemcached,
	libosip2, libtirpc, libxml-parser-perl, linux-fusion,
	linux-zigbee, mpg123, nodejs, orc, pcre, php, pulseaudio,
	python-setproctitle, qt5base, rpi-firmware, samba4, syslinux,
	systemd, spice, tcpdump, tiff, webkitgtk, x265, xen,
	xserver_xorg-server, xvisor

	Issues resolved (http://bugs.buildroot.org):

	#10061: gcc5.4 buildroot toolchain for powerpc libsanitizer...

2017.02.4, Released July 4th, 2017

	Important / security related fixes.

	Update support/scripts/scancpan to use METACPAN v1 API as v0
	has been shutdown.

	Update support/scripts/mkusers to handle setups where
	/etc/shadow is a symlink.

	External toolchain: Don't create musl dynamic loader symlink
	for static builds.

	Setlocalversion: Correct detection of mercurial revisions for
	non-tagged versions.

	Updated/fixed packages: apache, automake, bind, botan, c-ares,
	dhcp, expat, fcgiwrap, gcc, gdb, gesftpserver, glibc, gnutls,
	gst1-plugins-bad, imagemagick, imx-uuc, intltool, iperf,
	ipsec-tools, irssi, libgcrypt, libmad, libnl, mosquitto,
	mpg123, ncurses, nodejs, ntp, openssh, openvpn, qt5base,
	qt5multimedia, rtl8821au, socat, spice, systemd, tor, tslib,
	vlc, x264, xserver_xorg-server

	Issues resolved (http://bugs.buildroot.org):

	#9976: License file for package 'rtl8821au' incorrect

2017.02.3, Released June 2nd, 2017

	Important / security related fixes.

	Download: <pkg>-source-check fixed for packages from git.

	External toolchain: musl dynamic linker symlink for mips-sf
	corrected.

	Updated/fixed packages: armadillo, audiofile, bash,
	bluez_utils, cppcms, dbus, dhcp, dropbear, efibootmgr, efl,
	elfutils, faketime, fbgrab, flashrom, ftop, gdb, git,
	google-breakpad, gpsd, hans, kvm-unit-tests, kyua, libev,
	libmicrohttpd, libminiupnpc, libtasn1, libubox, ltp-testsuite,
	lua, madplay, mariadb, mono, mosquitto, mxml, ntp,
	nvidia-driver, openblas, openvpn, oracle-mysql, picocom, popt,
	postgresql, pulseview, qt5base, qwt, rabbitmq-c, redis,
	rpcbind, rtmpdump, samba4, strongswan, sudo, vlc

	Issues resolved (http://bugs.buildroot.org):

	#9796: source-check broken for Git downloads
	#9871: fbgrab 1.3 won't build with BR2_REPRODUCIBLE set

2017.02.2, Released May 1st, 2017

	Important / security related fixes.

	Use HTTPS for the Codesourcery external toolchains as the HTTP
	URLs no longer work.

	Updated/fixed packages: bind, busybox, dovecot, freetype,
	ghostscript, glibc, granite, hiredis, icu, imagemagick,
	gst-plugins-base, gst1-plugins-base, libcroco, libcurl, libnl,
	libnspr, libnss, libsamplerate, libsndfile, libunwind,
	minicom, mplayer, mpv, nodejs, python-django, python-pyyaml,
	python-web2py, samba4, syslinux, systemd, tiff, trinity,
	uboot, wireshark, xen

	Issues resolved (http://bugs.buildroot.org):

	#9791: Python searches for packages in the user site directory

2017.02.1, Released April 4th, 2017

	Important / security related fixes.

	Fix a variable clashing issue in the mkusers script with
	internal bash variables.

	Improve external toolchain version detection.

	Correct permissions for /dev/pts/ptmx when systemd is used
	with recent glibc versions.

	Fix python module name clash for graph-depends.

	Fakeroot now links against libacl to fix issues on
	distributions using acls.

	Ensure that the git download infrastructure creates GNU format
	tar files.

	br2-external: Improve error reporting.

	Updated/fixed packages: acl, apr, audiofile, busybox, cairo,
	dbus-cpp, dbus-glib, dbus-triggerd, domoticz, elfutils,
	fakeroot, filemq, fmc, gdb, git, gnutls, gst-ffmpeg,
	gst1-plygins-bad, harfbuzz, htop, imagemagick, jasper, libcec,
	libiio, libplatform, librsvg, libselinux, libsidplay2, libsoc,
	libwebsockets, libxkbcommon, linux-firmware, logrotate,
	lpt-testsuite, lttng-libust, mariadb, mbedtls, memcached,
	mesa3d, mpd, mplayer, nbd, ncftp, ntp, openssh, opentyrian,
	pcre, perl-gd, python, qt5base, rpi-userland, rpm, samba4,
	skalibs, slang, sngrep, squashfs, syslog-ng, taglib,
	tcpreplay, tor, upmpdcli, wget, wireshark,
	xdriver_xf86-video-vmware, xlib_libXv, zmqpp

	Issues resolved (http://bugs.buildroot.org):

	#9456: mkusers script bash errors

2017.02, Released February 28th, 2017

	Minor fixes, mainly fixing autobuilder issues.

	Don't use cmake 3.7.x from the build host as it is also
	affected by the RPATH handling issues, and instead build our
	own if needed.

	Updated/fixed packages: assimp, classpath, genimage, mplayer,
	mpv, openocd, python-libconfig, qt5base, qt5quickcontrols,
	vlc, xterm

2017.02-rc3, Released February 26th, 2017

	Fixes all over the tree.

	Cmake reverted to version 3.6.3 to workaround regressions
	related to RPATH handling.

	Updated/fixed packages: bctoolbox, berkeleydb, binutils,
	btrfs-progs, classpath, directfb, glibc, gstreamer1,
	gst1-plugins-{base,good,bad,ugly}, gst1-libav,
	gst1-rtsp-server, gst1-validate, gst-omx, htop, libcurl,
	libepoxy, libimxvpuapi, libpcap, libuv, ncurses, openssh,
	oracle-mysql, poco, python, qt5base, qt5webkit, sslh, synergy,
	trousers, uclibc-ng-test, util-linux, vlc, xfsprogs

	Issues resolved (http://bugs.buildroot.org):

	#9251: Shared C++ libraries for Microblaze results in Segmentation...
	#9456: mkusers script bash errors
	#9506: Collectd 5.7.0 fails to build with libcrypt
	#9581: VagrantFile provisioning step fails due to issue with grub-pc
	#9586: usbmount: usbmount slows down the system... to a state of...
	#9616: CMake host packages cannot provide CONF_ENV
	#9641: Need raptor package installed in staging
	#9671: stunnel build error

2017.02-rc2, Released February 20th, 2017

	Fixes all over the tree.

	Support for SOURCE_DATE_EPOCH in the toolchain wrapper for
	older gcc versions for reproducible builds has been
	(temporarily) reverted because of licensing compatiblity
	concerns.

	Defconfigs: SD card generation fix for the Udoo Neo board

	Infrastructure to handle .lz compressed tarballs added, and
	affected packages updated to use it.

	Updated/fixed packages: bctoolbox, bind, canelloni,
	cbootimage, ccache, classpath, cups, dbus, ddrescue, directfb,
	ed, erlang, gcc, gdb, glmark2, gstreamer, gstreamer1, hiredis,
	kmod, kmsxx, lcdapi, libasplib, libgpiod, libnss, libraw,
	libv4l, mesa3d-headers, mosquitto, mpd, mpv, musl, ntfs-3g,
	ocrad, openswan, postgresql, qt5base, qt5quickcontrols, redis,
	riemann-c-client, samba4, sunxi-mali, tcping, trousers,
	uclibc, util-linux, vim, wavpack, wget, wiringpi, xfsprogs,
	xserver_xorg-server

	Issues resolved (http://bugs.buildroot.org):

	#8941: Valgrind fails to build with stack protection turned on
	#9291: perl: SysV message queues not configured, even if available
	#9651: libxcb-1.12 built Error
	#9656: util-linux: schedutils doesn't build on target w/o enabl...
	#9666: qt5quickcontrols install fails

2017.02-rc1, Released February 11th, 2017

	Fixes all over the tree and new features.

	Infrastructure:

	  - numerous improvements to support reproducible builds

	  - new waf-package package infrastructure to support packages
	    that use the Waf build system. 6 packages converted to
	    this infrastructure.

	  - add option <pkg>_PREFER_INSTALLER to the perl package
	    infrastructure

	Architecture:

	  - add support for the OpenRISC CPU architecture

	  - merge description of the ARM and ARM64 options, and add
	    support for selecting a specific ARM64 core

	Toolchain:

	  - major rework of the external toolchain support. It is now
	    split into several packages, one per external toolchain,
	    and a common infrastructure.

	  - important fix for musl to prevent a conflict between musl
	    and kernel headers (fixes the build of numerous packages
	    with musl)

	  - uClibc-ng bumped to 1.0.22, and therefore enable uClibc
	    for ARM64, mips32r6 and mips64r6

	  - add gdb 7.12.1, and switch to gdb 7.11 as the default

	  - Linaro toolchains updated to 2016.11, ARC toolchain
	    components updated to arc-2016.09, MIPS Codescape
	    toolchains bumped to 2016.05-06, CodeSourcery AMD64 and
	    NIOS2 toolchains bumped

	  - remove Analog Devices toolchain for the Blackfin
	    architecture, remove pre-built musl toolchains from
	    musl.codu.org

	New defconfigs: Freescale i.MX23EVK, Qemu OpenRISC emulation,
	Qemu NIOS2 emulation, Grinn chiliBoard, Freescale i.MX6Q
	SabreSD, BeagleBoard X15, OrangePi One, ARC HS38 HAPS

	New packages: angular-websocket, aubio, bctoolbox, darkhttpd,
	ddrescue, easydbus, fakedate, git-crypt, hiredis, ifenslave,
	jsmn, libgpiod, libgsm, linux-syscall-support, mariadb, mimic,
	nginx-dav-ext, nmon, opkg-utils, policycoreutils,
	pru-software-support, python-arrow, python-attrs,
	python-babel, python-bitstring, python-chardet,
	python-constantly, python-flask-babel, python-gunicorn,
	python-incremental, python-jsonschema, python-logbook,
	python-markdown2, python-mbstrdecoder, python-mutagen,
	python-pathpy, python-pudb, python-pyqrcode,
	python-pytablereader, python-setuptools-scm, python-sh,
	python-toml, python-vcversioner, python-whoosh,
	raspberrypi-usbboot, riemann-c-client, rtl8723bs, skalibs,
	sslh, sngrep, ti-cgt-pru, uclibc-ng-test, udpxy, uhttpd,
	upower, ustream-ssl, waf, xlib_libXfont2

	Removed packages: perl-db-file, snowball-hdmiservice,
	snowball-init

	Tooling: addition of a test-pkg script to help contributors
	build test their package.

	Issues resolved (http://bugs.buildroot.org):

	#8946: Valgrind fails to build with stack protection turned on
	#9461: odroidc2 - toolchain Linaro AArch64 2016.11 compile error
	#9466: VIM_REMOVE_DOCS removes rgb.txt
	#9486: xorg-server 1.19 fails to compile for glibc with systemd init (x86_64)
	#9501: eudev fails to build with older kernel headers
	#9526: Embedded NPM fails to start with "no such file or directory" error
	#9541: Platform drivers autoloading from info in device tree does not work
	#9546: seems BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS do nothing
	#9551: Coreutils fails to build target src/src_libsinglebin_pinky_a-pinky.o
	#9566: [kmod] Compilation fails with uclibc
	#9571: buildroot fails while building opencv for arm64 platform
	#9576: External tree with BR 2016.11 does not work anymore
	#9606: xorg-server cannot build for ARM target

2016.11.3, Released March 9th, 2017

	Important / security related fixes.

	Updated/fixed packages: bind, dbus, gnutls, imagemagick,
	lcms2, libcurl, ntfs-3g, ntp, openssl, php, quagga, redis,
	squid, stunnel, tcpdump, vim, wavpack, wireshark, xlib_libXpm

2016.11.2, Released January 25th, 2017

	Important / security related fixes.

	A fix for BR2_EXTERNAL trees referenced using relative paths,
	which broke in 2016.11.

	Updated/fixed packages: bind, docker-engine, gd, gnutls, go,
	imagemagick, irssi, libpng, libvncserver, musl, opus, php,
	php-imagick, rabbitmq-server, runc, wireshark,

	Issues resolved (http://bugs.buildroot.org):

	#9576: External tree with BR 2016.11 does not work anymore

2016.11.1, Released December 29th, 2016

	Important / security related fixes.

	Updated/fixed packages: apache, cryptopp, docker-engine,
	dovecot, exim, gdk-pixbuf, libcurl, libupnp, links, monit,
	nodejs, openssh, php, python, python-bottle, samba4, squid,
	uboot, vim, wireshark, xorg-server uboot

	Issues resolved (http://bugs.buildroot.org):

	#9466: VIM_REMOVE_DOCS removes rgb.txt

2016.11, Released November 30th, 2016

	Minor fixes.

	Updated/fixed packages: bzip2, gcc, jasper, sane-backends,
	uboot, uclibc

	Issues resolved (http://bugs.buildroot.org):

	#9451: packages/postgresql/postgresql.mk contains wrong POST...

2016.11-rc3, Released November 28th, 2016

	Fixes all over the tree, including a number of security fixes.

	The move from fakeroot to pseudo unfortunately brought a
	number of issues.  The SELinux issue described in #9386 which
	triggered the move to pseudo has been investigated further and
	a workaround implemented and the pseudo changes reverted.

	Linux kernel: update default to 4.8.11.

	Defconfigs: Updates/fixes for imx28ek, mx6udoo, imx6ulpico,
	olimex a20 olinuxino lime mali, roseapplepi, synopsis aarch64
	vdk, axs101, axs103 and hs38 smd vdk.

	Updated/fixed packages: autossh, chrony, dosfstools,
	dtv-scan-tables, e2fsprogs, gcc, gdb, gnuchess, gnuradio,
	gpsd, gst1-plugins-bad, gst1-plugins-good, imagemagick,
	kvm-unit-tests, libfribi, libuv, mesa3d, mpfr, mplayer, mpv,
	ntp, ola, olsr, openblas, openjpeg, openssh, postgresql,
	ptpd2python3, qemu, qextserialport, qt5base, quagga, xqwt,
	taskd, tiff, tremor, trousers, udisks, uclibc, wireshark,
	xapp_xload, xenomai, xmlstarlet

	Issues resolved (http://bugs.buildroot.org):

	#9386: ubinize fails with or without custom config
	#9431: A misspelling
	#9446: make raspberrypi3_defconfig compilation failure

2016.11-rc2, Released November 13th, 2016

	Fixes all over the tree.

	Architecture: add support for MIPS XBurst cores; remove MIPS
	support for M5100 cores.

	Updated/fixed packages: mesa3d, lttng-babeltrace, tinyalsa, pseudo,
	czmq, libxml2, makedevs, binutils, kvm-unit-tests, libnss, privoxy,
	qemu, ser2net, net-tools, ffmpeg, assimp, libmpeg2, ccache, mpv,
	libxslt, python, python3, php, valgrind, guile, domoticz, efl,
	jasper, kvmtool, go, wget, sane-backends, weston, tinymembench,
	strace, openjpeg, lcms2, quota.

	Linux kernel: update default to 4.8.7.

	CMake support: fix cmake wrapper to properly pass NDEBUG flag.

	Filesystems: use a wrapper to pseudo, to better mimick the behaviour
	of fakeroot; makedevs no longer breaks of the destination already
	exists and is of the correct type/major/minor.

	Defconfigs: a few legacy and broken defconfigs have been removed
	because they now fail to build: kb9202_defconfig, mini2440_defconfig,
	freescale_p2020ds, qmx6, calao*, atmel_sama5d4ek. Other defconfigs
	have been updated: nanopi-neo, olimex_a20_olinuxino_lime_mali,
	armadeus_apf51, armadeus_apf28, freescale_imx31_3stack, ci20,
	olimex_a20_olinuxino_lime2, atmel_at91sam9260eknf,
	atmel_at91sam9rlek, atmel_at91sam9g20dfc, atmel_at91sam9g45m10ek,
	atmel_sama5d3xek.

2016.11-rc1, Released November 3rd, 2016

	Fixes all over the tree and new features.

	It is now possible to specify multiple BR2_EXTERNAL
	directories. The required files in a BR2_EXTERNAL directory
	have changed to accomodate this feature. Refer to the
	documentation for details of how to update them. External
	trees now have a name and a description. Also, it is possible
	to override a defconfig in the external tree.

	The default skeleton now uses UID 65534 for the "nobody"
	user instead of UID 99, like most distros do. See
	https://lwn.net/Articles/695478/ for a complete discussion.
	Programs and configuration files that explicitly refer to UID
	99 will have to be updated.

	When the build environment already has a suitable cmake version
	(3.1 or later), that one will be used instead of building
	host-cmake. This can speed up the build significantly.

	The ExtUtils::MakeMaker perl module is now required in the
	build environment.

	An additional check is done during the build that files are
	not installed in the output directory within the output
	directory. This happens e.g. when the target directory is
	contained both in --prefix and in DESTDIR. The build will
	terminate with an error message that specifies which package
	and which file caused the failure.

	The concept of "deprecated packages" and the BR2_DEPRECATED
	option have been removed. Instead, packages are removed
	immediately. Packages are only removed when they don't work
	for some reason. If you still need a removed package and
	you have a solution for the problem(s) that caused the
	removal, please contribute it.

	Architecture: support for sh64 removed, improved support for
	MIPS core selection.

	Toolchain: support for musl powerpc64le, mips64 and mipsr6
	toolchains, ARC toolchain components updates, gcc 6.x series
	bumped to 6.2.0, default binutils version switched to 2.26,
	default gcc version switched to gcc 5.x, Linaro toolchains
	updated, uclibc-ng bumped to 1.0.19. GCC is now always built
	with TLS support. Checking of unsafe compiler options (that
	point to host directories) has been extended with -isystem,
	-idirafter and -iquote.

	Package infrastructure: new variable $(PKG)_DL_OPTS, addition
	of <pkg>-show-rdepends to list reverse dependencies, and
	<pkg>-graph-rdepends to graph reverse dependencies. Linux tools
	are now in a separate linux-tools package instead of in the
	kernel build. Fakeroot has been replaced by pseudo.

	CMake support: the toolchainfile.cmake file now provides a
	definition of the CMAKE_BUILD_TYPE variable. The
	toolchainfile.cmake also no longer forces the compiler/linker
	flags defined by Buildroot.

	New defconfigs: WaRP7, Solidrun's MX6 Cubox/Hummingboard,
	TS-4900, Grinn's liteBoard, Udoo MX6Q/DL, Qemu ARM noMMU,
	BeagleBone Qt5 demo, Digilent Zybo, FriendlyARM Nanopi NEO.

	New packages: arm-trusted-firmware, amd-catalyst, atop, aufs,
	aufs-util, fwts, gst1-rtsp-server, libglob, libite, mfgtools,
	mksh, motion, paho-mqtt-c, php-amqp, pseudo, python-couchdb,
	python-crcmod, python-cssutils, python-docutils,
	python-futures, python-mwclient, python-mwscrape,
	python-mwscrape2slob, python-pyelftools, python-pyicu,
	python-pylru, python-pyqt5, python-requests-toolbelt,
	python-simpleaudio, python-slob, rabbitmq-server, shapelib,
	vdr, vdr-plugin-vnsiserver, vexpress-firmware, xvisor, iio and
	gpio linux tools.

	Removed packages: binutils 2.24, fakeroot, gcc 4.7, ipkg,
	kodi-addon-xvdr, libgail, sstrip, torsmo, webkit, webkitgtk24,
	wvdial, wvstreams.

	Documentation: the list of packages that was present in the
	Buildroot manual has been removed.

	Legal info: the "licenses.txt" file that concatenates all
	license texts is no longer generated - it was not considered
	useful. The manifest.csv contains an empty cell instead of
	"not saved" when no license file is available.

	Other: addition of a DEVELOPERS file listing developers taking
	care of packages or architectures.

	Issues resolved (http://bugs.buildroot.org):

	#7802: host-python build hangs compiling getbuildinfo.o
	#8206: mplayer uses host xorg development files
	#8516: mkcubiecard.sh uses outdated sfdisk switch -D
	#8536: Building sudo with PAM results in unusable sudo
	#8646: check-host-rpath script returns false positives when rpath
	       contains symlink
	#8696: xdriver_xf86-input-mouse install header files in target
	       directory
	#8811: rp-pppoe - generated scripts commands use HOST pathnames,
	       not necessarily TARGET
	#8846: Orphaned/missing toolchain borks eclipse plugin
	#8856: python tornado runtime wasn't met on buildroot 2016.02
	#8901: gcc failes to build if fortran is enabled
	#8916: LDFLAGS pass to openssh
	#8941: "ls" of an NFSv4 share only works when pumped through strace
	#8946: Valgrind fails to build with stack protection turned on
	#9021: Kodi - Broken: Illegal instruction (core dumped)
	#9096: rootfs.ubi not created
	#9111: glibc 2.23: libmvec.so not copied
	#9176: minnowboard : USB not mounted
	#9196: raspberry pi 3 default build seem broken
	#9201: Permission denied make: *** [core-dependencies] Error 126 in
	       Buildroot-2015.08.1
	#9216: log4cpp package build fails to build within install
	#9221: Kodi needs "Python .py and .pyc support" otherwise it crashes when
	       pressing buttons.
	#9229: Firefly boot fails with: "failed to find part:boot"
	#9256: [Config file] New device: Odroid-U2/U3
	#9296: Buildroot Fails on applying patches
	#9301: U-boot fails to build with default zynq_zed_defconfig configuration
	#9316: U-boot fails to build if libssl-dev is not installed
	#9321: Vanilla libcrypt++ v5.6.3 doesn't allow to work Nvidia Tegra's
	       flash utility (tegrarcm)
	#9326: Odroid-C2 build results in non-bootable image
	#9336: Improve iconv support for external toolchain based builds
	#9356: gdb package
	#9366: no link rootfs.ext4 -> rootfs.ext2
	#9371: openssl: download failes with "Only allow downloads from primary
	       download site" + local server
	#9381: check-host-rpath issues
	#9386: ubinize fails with or without custom config

2016.08, Released September 1st, 2016

	Minor fixes.

	Toolchain: ARC tools updated to arc-2016.09-eng010.

	Updated/fixed packages: libshout, luajit, mpd, mplayer

	Issues resolved (http://bugs.buildroot.org):

	#7520: CodeSourcery toolchain ARM: C++11 std::exception_ptr..
	#8341: Getting EGL Error: Could not create the egl surface:..
	#9121: gst1-imx for i.MX6 compile failed, cannot find PXP, ..

2016.08-rc3, Released August 29th, 2016

	Fixes all over the tree.

	Toolchain: C++ support for the internal blackfin toolchain
	re-enabled.

	Architecture: Default to bf532 CPU variant for blackfin,
	Fix flat one memory region support for m68k and disable flat
	separate 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/separate /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
