Deal with issues exposed/caused by Arduino AVR Boards 1.6.12 #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Removing toolsDependencies entries from package_zevero_avr_boot_index.json is required due to a bug in the Arduino IDE which causes the tool versions specified by avr_boot to be used by other platforms such as Arduino AVR Boards after Boards Manager installation of avr_boot(see
https://github.com/arduino/Arduino/issues/5168). An example of a specific issue caused by this is that Arduino AVR Boards 1.6.12 requires LTO support, which avr-gcc does not have. This will cause Arduino AVR Boards to no longer compile when the previous version of package_zevero_avr_boot_index.json was used to install avr_boot.
Removing the toolsDependencies entries causes avr_boot to use whatever tool versions were previously installed.
The disadvantages of this solution are:
There is an additional issue caused by the upgrade to avrdude 6.3.0-arduino2 in Arduino AVR Boards 1.6.12. avrdude's handling of unused fuse bits has changed since the previous version Arduino used(6.0.1-arduino5) which causes the ATmega328P extended_fuses value to fail verification(see arduino/Arduino#5175) and the unlock_bits and lock_bits values to fail verification when used with Atmel AVRISP mkII and likely any other stk500v2 based programmer(see arduino/avrdude-build-script#2). Fixing these issues while maintaining backwards compatibility with previous Arduino AVR Boards versions would be possible by adding an avrdude tool to avr_boot but the Arduino developers have decided to revert to the previous avrdude version on the soon to be released Arduino AVR Boards 1.6.13 and only upgrade to a new avrdude version once it has been modified to work with the traditional Arduino fuse values(see arduino/Arduino#5021 and arduino/Arduino#5202). This makes me think that the extra complexity of adding an avrdude tool is not worth the benefit of providing compatibility with a single buggy Arduino AVR Boards version and so have added a warning message to the installation instructions about the incompatibility. I've identified what needs to be done to add an avrdude tool and I'm willing to consider that alternative if maximum compatibility or the newer avrdude version is considered important. There is another issue caused by the avrdude 6.3.0-arduino2 build(arduino/Arduino#5173) which may affect avr_boot if that version was added as a tool. So far I've been unable to reproduce this but if so it would negate any advantages gained by the addition of the new avrdude version as an avr_dude tool.