2024.08-rc3, released September 1st, 2024

	Fixes all over the tree.

	Removed defconfigs: mx25pdk

	Updated/fixed packages: chicken, comix-cursors, dovecot,
	dovecot-pigeonhole, elf2flt, enscript, fbset, freeipmi, gcc,
	grub2, libcuefile, libcurl, libglob, libuecc, norm, php,
	postgresql, proftpd, python-sqlparse, python3, sofia-sip,
	szip, unbound, x264, xserver_xorg-server, zabbix

	Removed packages: frotz

2024.08-rc2, released August 22nd, 2024

	Fixes all over the tree.

	Infrastructure: use "-ztext" rather than "-z text" in LDFLAGS
	to work around buggy build systems

	Defconfigs: Beaglev fire / Microchip mpfs icicle: Correct
	Linux/U-Boot tarballs, Raspberryi 5: Correct CPU setting,
	Zynqmp zcu106: use v1.0 DDR config, Zynqmp zcu10* / kria*:
	Correct U-Boot dependency

	Updated/fixed packages: aer-inject, asterisk, atop, aumix,
	avahi, botan, chicken, dc3dd, ffmpeg, flashrom, gnuradio,
	gnu-efi, gnutls, hiawatha, iperf3, iproute2, ledmon, libffi,
	libgpg-error, libkcapi, libpcap, mariadb, mdadm, ncurses,
	nginx, ntpsec, python-huepy, python-tpm2-pytss,
	python-unittest-xml-reporting, qt6base, qt6tools, skopeo,
	strongswan, systemd, uboot, uclibc, unbound, vboot-utils,
	wpa_supplicant, wpebackend-fdo

	Removed packages: fan-ctrl

2024.08-rc1, released August 8th, 2024

	Fixes all over the tree (especially related to GCC 14.x
	compatibility) and package updates.

	Toolchains:
	- uClibc updated to 1.0.49
	- GDB 15.x added, GDB 14.x now the default
	- GCC 14.x updated to GCC 14.2.0
	- Support for Linux 6.9/6.10 headers added

	Infrastructure:
	- Patches on packages are now applied with -F0, which means no
	  fuzz is accepted anymore.
	- Improvements to the canonical example of SysV init script

	New defconfigs: arm_fvp_ebbr, beagleplay, beaglev_fire,
	cubieboard1, imx6ulz_bsh_smm_m2_defconfig, raspberrypi5,
	spike_riscv32. ti_am62ax_sk, versal_vpk180

	Removed defconfigs: beagleboardx15, beaglev, imx8mpico

	New packages: blake3, chicken, cloudfared, docker-cli-buildx,
	espflash, fd, freescale-imx/firmware-upower, fwupd, fwupd-efi,
	gtkiostream, graphene, kmon, libavif, libdex, libgtk4,
	libjcat, libopenmpt, libtpms, mxt-app, nethogs, openconnect,
	parsec-tool, pico-sdk, picotool, python-aerich,
	python-autocommand, python-betterproto, python-configobj,
	python-grpclib, python-inflect, python-jaraco-collections,
	python-jaraco-context, python-jaraco-text, python-pyasynchat,
	python-pyasyncore, python-dictdiffer, python-pkgconfig,
	python-pypika-tortoise, python-ruamel-yaml-clib,
	python-tomlkit, python-tomli-w, python-tpm2-pytss,
	python-tortoise-orm, python-uswid, qt6declarative,
	qt6languageserver, qt6mqtt, qt6opcua, qt6shadertools,
	qt6tools, qt6virtualkeyboard, qt6wayland, qt6websockets,
	skopeo, sqlitecpp, swipl, swtpm, tig, tipidee, tpm2-openssl,
	xilinx-prebuilt, zoxide

	Removed packages: beaglev-ddrinit, beaglev-secondboot,
	beecrypt, cgic, dvb-apps, gamin

	New runtime tests: 4th, attr, atftp, bcc, btrfs, btrfsprogs,
	dmidecode, go, gpsd, iproute2, kmod, lame, make, mariadb,
	mawk, mosquitto, nmap, ntp, python-asn1crypto, python-pymupdf,
	python-ruamel-yaml, rt-tests, swipl, vorbis-tools, xfsprogs

	Issues resolved:
	- Are there plans to add raspberrypizero2w_64_defconfig config?
	  https://gitlab.com/buildroot.org/buildroot/-/issues/1
	- Some folders can't visit and some file is missing while running
	  https://gitlab.com/buildroot.org/buildroot/-/issues/2
	- wpewebkit build fails on ARM Neon
	  https://gitlab.com/buildroot.org/buildroot/-/issues/3
	- TAR-1.35 will not build for target (host-variant will build)
	  https://gitlab.com/buildroot.org/buildroot/-/issues/4
	- package/xz without shared libraries breaks Python build
	  https://gitlab.com/buildroot.org/buildroot/-/issues/5
	- unable to build - 404 at sources.buildroot.net
	  https://gitlab.com/buildroot.org/buildroot/-/issues/10
	- OpenSSH 9.8 broken
	  https://gitlab.com/buildroot.org/buildroot/-/issues/11
	- Update Openssh to Version 9.8p1 (CVE-2024-6387) in Long Term
	  Support Release 2024.02.x
	  https://gitlab.com/buildroot.org/buildroot/-/issues/14
	- Toolchain (host-gcc-final-14.1.0) build failure with
	  y2038/BR2_TIME_BITS_64 enabled
	  https://gitlab.com/buildroot.org/buildroot/-/issues/16
	- building go/golang gives error
	  https://gitlab.com/buildroot.org/buildroot/-/issues/18
	- GCC 13.3 is missing
	  https://gitlab.com/buildroot.org/buildroot/-/issues/20
	- package containerd update to avoid hanging docker exec
	  commands
	  https://gitlab.com/buildroot.org/buildroot/-/issues/21
	- "BR2_EXTERNAL broken missing srctree error Config.in"
	  https://gitlab.com/buildroot.org/buildroot/-/issues/24
	- Can't subscribe buildroot mailing list
	  https://gitlab.com/buildroot.org/buildroot/-/issues/25

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.5, 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: bitcoin, boost, btrfs-progs, c-ares,
	cdrkit, check, containerd, directfb, ed, exim, fwts, gcc, gdb,
	go, kexec, libarchive, libgeos, libressl, mupdf, nodejs,
	ntpsec, octave, openssh, pppd, python-mupdf,
	python-ruamel-yaml, qt5webkit, rauc-hawkbit-updater, snappy,
	squid, sunxi-tools, syslinux, systemd, tcf-agent, 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.02.4, released July 13th, 2024

	Important / security related fixes.

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

	Defconfig: Pine64 rockpro64: Build ethernet driver in kernel
	rather than as module.

	Updated/fixed packages: apache, composer, daq, fluent-bit,
	ghostscript, glibc, liblockfile, libmad, libopenssl, mesa3d,
	network-manager, ntp, octave, openssh, openvpn, php, python3,
	qt6base, raspberrypi-usbboot, redis, sentry-cli, systemd, tor,
	vlc, xmrig, znc

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
