# Changelog
## v0.14.1
This is a security/bug fix patch release. It should be safe to update for
everyone.
* Updated dependencies
* [nerves_system_br v1.17.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.17.1)
* [Buildroot 2021.08.1](http://lists.busybox.net/pipermail/buildroot/2021-October/625642.html)
* [Erlang/OTP 24.1.2](https://erlang.org/download/OTP-24.1.2.README)
* Improvements
* Include software versioning and licensing info (see legal-info directory in
artifact)
## v0.14.0
This release updates to Buildroot 2021.08 and OTP 24.1. If you have made a
custom system off this one, please review the `nerves_system_br v1.17.0` release
notes.
* Updated dependencies
* [nerves_system_br v1.17.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.17.0)
* [Buildroot 2021.08](http://lists.busybox.net/pipermail/buildroot/2021-September/622072.html)
* [Erlang/OTP 24.1](https://erlang.org/download/OTP-24.1.README)
## v0.13.2
This release updates Erlang/OTP from 24.0.3 to 24.0.5 and Buildroot from 2021.05
to 2021.05.1. Both of these are security/bug fix updates. This is expected to be
a safe upgrade from v1.16.1 for all users.
* Updated dependencies
* [nerves_system_br v1.16.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.16.1)
* [Erlang/OTP 24.0.5](https://erlang.org/download/OTP-24.0.5.README)
* Improvements
* Beta support for using a `runtime.exs` script for runtime configuration.
* Added a `provision` task to the `fwup.config` to enable re-provisioning a
MicroSD card without changing its contents.
* Adds a default `/etc/sysctl.conf` that enables use of ICMP in Erlang. This
requires `nerves_runtime v0.11.5` or later to automatically load the sysctl
variables. With it using `:gen_udp` to send/receive ICMP will "just work".
It also makes it easier to add other sysctl variables if needed.
## v0.13.1
This release updates Nerves Toolchains to v1.4.3 and OTP 24.0.3. It should be safe for everyone to apply.
* Updated dependencies
* [nerves_system_br v1.16.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.16.1)
* [Erlang/OTP 24.0.3](https://erlang.org/download/OTP-24.0.3.README)
* [nerves toolchains v1.4.3](https://github.com/nerves-project/toolchains/releases/tag/v1.4.3)
## v0.13.0
This release updates to Buildroot 2021.05 and OTP 24.0.2. If you have made a
custom system off this one, please review the `nerves_system_br v1.16.0` release
notes.
* Updated dependencies
* [nerves_system_br v1.16.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.16.0)
* [Buildroot 2021.05](http://lists.busybox.net/pipermail/buildroot/2021-June/311946.html)
* [Erlang/OTP 24.0.2](https://erlang.org/download/OTP-24.0.2.README)
* Improvements
* This release now contains debug symbols and includes the Build-ID in the
ELF headers. This makes it easier to get stack traces from C programs. As
before, the Nerves tooling strips all symbols from firmware images, so this
won't make programs bigger.
## v0.12.1
This is a security/bug fix release that updates to Buildroot 2021.02.1 and OTP
23.3.1. It should be safe for everyone to apply.
* Updated dependencies
* [nerves_system_br v1.15.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.15.1)
* [Buildroot 2021.02](http://lists.busybox.net/pipermail/buildroot/2021-April/307970.html)
* [Erlang/OTP 23.3.1](https://erlang.org/download/OTP-23.3.1.README)
## v0.12.0
This release updates to Buildroot 2021.02 and OTP 23.2.7. If you have made a
custom system off this one, please review the `nerves_system_br v1.15.0` release
notes.
The Nerves toolchain has also been updated to v1.4.2. This brings in Linux 4.14
headers to enable use of cdev and eBPF. This won't affect most users.
* Updated dependencies
* [nerves_system_br v1.15.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.15.0)
* [Buildroot 2021.02](http://lists.busybox.net/pipermail/buildroot/2021-March/305168.html)
* [Erlang/OTP 23.2.7](https://erlang.org/download/OTP-23.2.7.README)
* [nerves toolchains v1.4.2](https://github.com/nerves-project/toolchains/releases/tag/v1.4.2)
## v0.11.0
This release updates to Buildroot 2020.11.2, GCC 10.2 and OTP 23.2.4.
When migrating custom systems based, please be aware of the following important
changes:
* The GCC 10.2.0 toolchain has a different name that calls out "nerves" as the
vendor and the naming is now more consistent with other toolchain providers.
* Experimental support for tooling that requires more information about the
target has been added. The initial support focuses on zigler.
* Updated dependencies
* [nerves_system_br: bump to v1.14.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.14.4)
* [Buildroot 2020.11.2](http://lists.busybox.net/pipermail/buildroot/2021-January/302574.html)
* [Erlang/OTP 23.2.4](https://erlang.org/download/OTP-23.2.4.README)
* [Nerves toolchains 1.4.1](https://github.com/nerves-project/toolchains/releases/tag/v1.4.1)
## v0.10.4
This is a bug fix release and contains no major changes.
* Updated dependencies
* [nerves_system_br: bump to v1.13.7](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.13.7)
* [Erlang/OTP 23.1.5](https://erlang.org/download/OTP-23.1.5.README)
## v0.10.3
This release includes a patch release update to
[Buildroot 2020.08.2](http://lists.busybox.net/pipermail/buildroot/2020-November/296830.html).
* Updated dependencies
* [nerves_system_br: bump to v1.13.5](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.13.5)
* [erlinit 1.9.0](https://github.com/nerves-project/erlinit/releases/tag/v1.9.0)
* Improvements
* Switched source for built-in WiFi module firmware. This pulls in newer
firmware versions that were found to fix issues on the Raspberry Pi 4. It
may improve built-in WiFi on other Raspberry Pis.
## v0.10.2
* Fixes
* Adds `libnl` back to support VintageNet
## v0.10.1
The main change in this release is to bump the Linux kernel to 5.4. This follows
similar updates to Linux 5.4 across the official Nerves systems. Please review
the `linux-5.4.defconfig` for changes.
* Updated dependencies
* [nerves_system_br: bump to v1.13.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.13.4)
* [Erlang/OTP 23.1.4](https://erlang.org/download/OTP-23.1.4.README)
* [boardid 1.10.0](https://github.com/nerves-project/boardid/releases/tag/v1.10.0)
* Improvements
* Enabled reproducible builds in Buildroot to remove some timestamp and build
path differences in firmware images. This helps delta firmware updates.
## v0.10.0
This release updates to [Buildroot
2020.08](http://lists.busybox.net/pipermail/buildroot/2020-September/290797.html) and OTP 23.1.1.
* Updated dependencies
* [nerves_system_br: bump to v1.13.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.13.2)
* [Erlang/OTP 23.1.1](https://erlang.org/download/OTP-23.1.1.README)
* [erlinit 1.8.0](https://github.com/nerves-project/erlinit/releases/tag/v1.8.0)
* [nerves 1.7.0](https://github.com/nerves-project/nerves/releases/tag/v1.7.0)
## v0.9.2
This release updates to [Buildroot
2020.05.1](http://lists.busybox.net/pipermail/buildroot/2020-July/287824.html)
and OTP 23.0.3 which are both bug fix releases.
* Updated dependencies
* [nerves_system_br: bump to v1.12.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.12.4)
* [Erlang/OTP 23.0.3](https://erlang.org/download/OTP-23.0.3.README)
* [nerves_heart v0.3.0](https://github.com/nerves-project/nerves_heart/releases/tag/v0.3.0)
* New features
* The `/data` directory now exists for storing application-specific data. It
is currently a symlink to `/root`. Using `/data` will eventually be
encouraged over `/root` even though currently there is no advantage. This
change makes it possible to start migrating paths in applications and
libraries.
* Fixes
* Fixed old references to the `-Os` compiler flag. All C/C++ code will default
to using `-O2` now.
## v0.9.1
* Fixes
* Remove `nerves_system_linter` from hex package. This fixes mix dependency
errors in projects that reference systems with different
`nerves_system_linter` dependency specs.
## v0.9.0
This release updates the system to use Buildroot 2020.05 and Erlang/OTP 23.
Please see the respective release notes for updates and deprecations in both
projects for changes that may affect your application.
* Updated dependencies
* [nerves_system_br v1.12.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.12.0)
* [Erlang/OTP 23.0.2](https://erlang.org/download/OTP-23.0.2.README)
## v0.8.2
* Updated dependencies
* [nerves_system_br v1.11.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.11.4)
* Erlang 22.3.4.1
* fwup 1.7.0
## v0.8.1
* Updated dependencies
* [nerves_system_br v1.11.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.11.2)
* Erlang 22.3.1
* erlinit 1.7.0 - tty initialization support
* fwup 1.6.0 - xdelta3/VCDIFF patch support
* Enable unixodbc so that Erlang's odbc application can be used in projects
## v0.8.0
This release updates Buildroot to 2020.02 and upgrades gcc from 8.3 to 9.2.
While this is a minor version bump due to the Buildroot release update, barring
advanced usage of Nerves, this is a straightforward update from v0.7.2.
* Updated dependencies
* [nerves_system_br v1.11.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.11.0)
* linux 4.19.108
* Erlang 22.2.8
## v0.7.2
* Updated dependencies
* [nerves_system_br v1.10.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.10.2)
* Erlang 22.2.4
## v0.7.1
* Enhancements
* Set `expand=true` on the application data partition. This will only take
effect for users running the complete task, fwup will not expand application
data partitions that exist during upgrade tasks.
* Updated dependencies
* [nerves_system_br v1.10.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.10.1)
* Erlang 22.2.3
## v0.7.0
This release updates Buildroot to 2019.11 with security and bug fix updates
across Linux packages. Enables dnsd, udhcpd and ifconfig in the default
Busybox configuration to support `vintage_net` and `vintage_net_wizard`.
See the `nerves_system_br` notes for details.
* Updated dependencies
* [nerves_system_br v1.10.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.10.0)
* Erlang 22.1.8
## v0.6.2
This release updates Buildroot to 2019.08.2 with security and bug fix updates
across Linux packages. See the `nerves_system_br` notes for details.
Erlang/OTP is now at 22.1.7.
* Updated dependencies
* [nerves_system_br v1.9.5](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.9.5)
## v0.6.1
This release pulls in security and bug fix updates from `nerves_system_br`.
Erlang/OTP is now at 22.1.1.
* Updated dependencies
* [nerves_system_br v1.9.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.9.4)
## v0.6.0
This release updates Buildroot to 2019.08 with security and bug fix updates
across Linux packages. See the `nerves_system_br` notes for details.
* Updated dependencies
* [nerves_system_br v1.9.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.9.2)
## v0.5.2
* Updated dependencies
* [nerves_system_br v1.8.5](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.8.5)
## v0.5.1
* Updated dependencies
* [nerves_system_br v1.8.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.8.4)
## v0.5.0
This release
This release updates Erlang to OTP 22 and gcc from version 7.3.0 to 8.3.0.
See the nerves_system_br and toolchain release notes for more information.
* Enhancements
* Enable source-based routing in the Linux kernel to support [vintage_net](https://github.com/nerves-networking/vintage_net)
* Updated dependencies
* Erlang 22.0.4
* [nerves_system_br v1.8.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.8.2)
* [nerves_toolchain_arm_unknown_linux_gnueabihf v1.2.0](https://github.com/nerves-project/toolchains/releases/tag/v1.2.0)
## v0.4.2
* Bux fixes
* Add TAR option `--no-same-owner` to fix errors when untarring artifacts as
the root user.
* Updated dependencies
* [nerves_system_br v1.7.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.7.2)
## v0.4.1
* Improvements
* Bump C compiler options to `-O2` from `-Os`. This provides a small, but
measurable performance improvement (500ms at boot in a trivial project
tested on [nerves_system_rpi0](https://github.com/nerves-project/nerves_system_rpi0)).
* Updated dependencies
* [nerves_system_br v1.7.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.7.1)
## v0.4.0
* Updated dependencies
* [nerves_system_br v1.7.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.7.0)
* Erlang 21.2.7
* Linux 4.19.29
## v0.3.0
**Host requirements**
Building firmware using this system requires `fwup` to be updated on your
host computer to at least `v1.2.5`. The target minimum version requirement
has not changed from `0.15.0`.
**Serial numbers**
Device serial numbers are now set using `NERVES_SERIAL_NUMBER` instead of
`SERIAL_NUMBER`. This is to reduce ambiguity on the source of the serial
by name spacing it along side other Nerves variables. The U-Boot environment
key has also changed from `serial_number` to `nerves_serial_number`. The
erlinit.config has been updated to provide backwards compatibility for setting
the hostname from the serial number by checking for `nerves_serial_number`
and falling back to `serial_number`.
**Custom provisioning**
Provisioning data is applied at the time of calling the `fwup` task `complete`.
The `complete` task is executed when writing the firmware to the target disk.
During this time, `fwup` will include the contents of a provisioning file
located at `${NERVES_SYSTEM}/images/fwup_include/provisioning.conf`. By default,
this file only sets `nerves_serial_number`. You can add additional provisioning
data by overriding the location of this file to include your own by setting
the environment variable `NERVES_PROVISIONING`. If you override this variable
you will be responsible for also setting `nerves_serial_number`.
* Updated dependencies
* [nerves_system_br v1.6.5](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.6.5)
* Erlang 21.2.2
* boardid 1.5.2
* erlinit 1.4.9
* OpenSSL 1.1.1a
* Linux 4.18
* Enhancements
* Moved boardid config from inside erlinit.config to /etc/boardid.config
## v0.2.1
* Fix up toolchain references
## v0.2.0
* Switch from glibc to muslc to reduce image size
* Update to nerves_system_br v0.14.0
## v0.1.0
* Initial release