Unverified Commit 03b77381 authored by Silvano Cerza's avatar Silvano Cerza Committed by GitHub

Enhances tracking of installed platforms (#998)

parent 44446539
......@@ -35,12 +35,18 @@ type Platform struct {
Package *Package `json:"-"`
}
// PlatformReleaseHelp represents the help URL for this Platform release
type PlatformReleaseHelp struct {
Online string `json:"-"`
}
// PlatformRelease represents a release of a plaform package.
type PlatformRelease struct {
Resource *resources.DownloadResource
Version *semver.Version
BoardsManifest []*BoardManifest
Dependencies ToolDependencies // The Dependency entries to load tools.
Help PlatformReleaseHelp `json:"-"`
Platform *Platform `json:"-"`
Properties *properties.Map `json:"-"`
Boards map[string]*Board `json:"-"`
......
......@@ -86,13 +86,15 @@ type indexToolReleaseFlavour struct {
// indexBoard represents a single Board as written in package_index.json file.
type indexBoard struct {
Name string `json:"name"`
ID []indexBoardID `json:"id"`
ID []indexBoardID `json:"id,omitempty"`
}
// indexBoardID represents the ID of a single board. i.e. uno, yun, diecimila, micro and the likes
type indexBoardID struct {
USB string `json:"usb"`
}
// indexHelp represents the help URL
type indexHelp struct {
Online string `json:"online,omitempty"`
}
......@@ -105,6 +107,82 @@ func (index Index) MergeIntoPackages(outPackages cores.Packages) {
}
}
// IndexFromPlatformRelease creates an Index that contains a single indexPackage
// which in turn contains a single indexPlatformRelease converted from the one
// passed as argument
func IndexFromPlatformRelease(pr *cores.PlatformRelease) Index {
boards := []indexBoard{}
for _, manifest := range pr.BoardsManifest {
board := indexBoard{
Name: manifest.Name,
}
for _, id := range manifest.ID {
if id.USB != "" {
board.ID = []indexBoardID{{USB: id.USB}}
}
}
boards = append(boards, board)
}
tools := []indexToolDependency{}
for _, t := range pr.Dependencies {
tools = append(tools, indexToolDependency{
Packager: t.ToolPackager,
Name: t.ToolName,
Version: t.ToolVersion,
})
}
packageTools := []*indexToolRelease{}
for name, tool := range pr.Platform.Package.Tools {
for _, toolRelease := range tool.Releases {
flavours := []indexToolReleaseFlavour{}
for _, flavour := range toolRelease.Flavors {
flavours = append(flavours, indexToolReleaseFlavour{
OS: flavour.OS,
URL: flavour.Resource.URL,
ArchiveFileName: flavour.Resource.ArchiveFileName,
Size: json.Number(fmt.Sprintf("%d", flavour.Resource.Size)),
Checksum: flavour.Resource.Checksum,
})
}
packageTools = append(packageTools, &indexToolRelease{
Name: name,
Version: toolRelease.Version,
Systems: flavours,
})
}
}
return Index{
IsTrusted: pr.IsTrusted,
Packages: []*indexPackage{
{
Name: pr.Platform.Package.Name,
Maintainer: pr.Platform.Package.Maintainer,
WebsiteURL: pr.Platform.Package.WebsiteURL,
URL: pr.Platform.Package.URL,
Email: pr.Platform.Package.Email,
Platforms: []*indexPlatformRelease{{
Name: pr.Platform.Name,
Architecture: pr.Platform.Architecture,
Version: pr.Version,
Category: pr.Platform.Category,
URL: pr.Resource.URL,
ArchiveFileName: pr.Resource.ArchiveFileName,
Checksum: pr.Resource.Checksum,
Size: json.Number(fmt.Sprintf("%d", pr.Resource.Size)),
Boards: boards,
Help: indexHelp{Online: pr.Help.Online},
ToolDependencies: tools,
}},
Tools: packageTools,
Help: indexHelp{Online: pr.Platform.Package.Help.Online},
},
},
}
}
func (inPackage indexPackage) extractPackageIn(outPackages cores.Packages, trusted bool) {
outPackage := outPackages.GetOrCreatePackage(inPackage.Name)
outPackage.Maintainer = inPackage.Maintainer
......@@ -144,6 +222,7 @@ func (inPlatformRelease indexPlatformRelease) extractPlatformIn(outPackage *core
URL: inPlatformRelease.URL,
CachePath: "packages",
}
outPlatformRelease.Help = cores.PlatformReleaseHelp{Online: inPlatformRelease.Help.Online}
outPlatformRelease.BoardsManifest = inPlatformRelease.extractBoardsManifest()
if deps, err := inPlatformRelease.extractDeps(); err == nil {
outPlatformRelease.Dependencies = deps
......
......@@ -18,6 +18,8 @@ package packageindex
import (
"testing"
"github.com/arduino/arduino-cli/arduino/cores"
"github.com/arduino/arduino-cli/arduino/resources"
"github.com/arduino/go-paths-helper"
"github.com/stretchr/testify/require"
semver "go.bug.st/relaxed-semver"
......@@ -36,3 +38,317 @@ func TestIndexParsing(t *testing.T) {
require.NoError(t, err)
}
}
func TestIndexFromPlatformRelease(t *testing.T) {
pr := &cores.PlatformRelease{
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2",
ArchiveFileName: "avr-1.6.23.tar.bz2",
Checksum: "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa",
Size: 5001988,
},
Version: semver.MustParse("1.8.3"),
Help: cores.PlatformReleaseHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
BoardsManifest: []*cores.BoardManifest{
{Name: "Arduino Yún"},
{Name: "Arduino/Genuino Uno"},
{Name: "Arduino Uno WiFi"},
},
Dependencies: cores.ToolDependencies{
{
ToolPackager: "arduino",
ToolName: "avr-gcc",
ToolVersion: semver.ParseRelaxed("5.4.0-atmel3.6.1-arduino2"),
},
{
ToolPackager: "arduino",
ToolName: "avrdude",
ToolVersion: semver.ParseRelaxed("6.3.0-arduino14"),
},
{
ToolPackager: "arduino",
ToolName: "arduinoOTA",
ToolVersion: semver.ParseRelaxed("1.2.1"),
},
},
Platform: &cores.Platform{
Name: "Arduino AVR Boards",
Architecture: "avr",
Category: "Arduino",
Package: &cores.Package{
Name: "arduino",
Maintainer: "Arduino",
WebsiteURL: "https://arduino.cc/",
URL: "",
Email: "packages@arduino.cc",
Help: cores.PackageHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
Tools: map[string]*cores.Tool{
"bossac": {
Name: "bossac",
Releases: map[string]*cores.ToolRelease{
"1.6.1-arduino": {
Version: semver.ParseRelaxed("1.6.1-arduino"),
Flavors: []*cores.Flavor{
{
OS: "arm-linux-gnueabihf",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
ArchiveFileName: "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
Checksum: "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391",
Size: 201341,
},
},
{
OS: "i686-mingw32",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz",
ArchiveFileName: "bossac-1.6.1-arduino-mingw32.tar.gz",
Checksum: "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b",
Size: 222918,
},
},
},
},
"1.7.0": {
Version: semver.ParseRelaxed("1.7.0"),
Flavors: []*cores.Flavor{
{
OS: "i686-mingw32",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-mingw32.tar.bz2",
ArchiveFileName: "bossac-1.7.0-arduino-mingw32.tar.bz2",
Checksum: "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2",
Size: 243066,
},
},
{
OS: "x86_64-apple-darwin",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
ArchiveFileName: "bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
Checksum: "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2",
Size: 63822,
},
},
},
},
},
},
"arm-none-eabi-gcc": {
Name: "arm-none-eabi-gcc",
Releases: map[string]*cores.ToolRelease{
"4.8.3-2014q1": {
Version: semver.ParseRelaxed("4.8.3-2014q1"),
Flavors: []*cores.Flavor{
{
OS: "arm-linux-gnueabihf",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
Size: 44423906,
},
},
{
OS: "i686-mingw32",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
Checksum: "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2",
Size: 84537449,
},
},
},
},
"7-2017q4": {
Version: semver.ParseRelaxed("7-2017q4"),
Flavors: []*cores.Flavor{
{
OS: "arm-linux-gnueabihf",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
Size: 44423906,
},
},
{
OS: "aarch64-linux-gnu",
Resource: &resources.DownloadResource{
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
ArchiveFileName: "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
Checksum: "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76",
Size: 99558726,
},
},
},
},
},
},
},
},
},
}
expectedIndex := Index{
IsTrusted: false,
Packages: []*indexPackage{{
Name: "arduino",
Maintainer: "Arduino",
WebsiteURL: "https://arduino.cc/",
URL: "",
Email: "packages@arduino.cc",
Help: indexHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
Platforms: []*indexPlatformRelease{{
Name: "Arduino AVR Boards",
Architecture: "avr",
Version: semver.MustParse("1.8.3"),
Category: "Arduino",
URL: "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2",
ArchiveFileName: "avr-1.6.23.tar.bz2",
Checksum: "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa",
Size: "5001988",
Boards: []indexBoard{
{Name: "Arduino Yún"},
{Name: "Arduino/Genuino Uno"},
{Name: "Arduino Uno WiFi"},
},
Help: indexHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
ToolDependencies: []indexToolDependency{
{
Packager: "arduino",
Name: "avr-gcc",
Version: semver.ParseRelaxed("5.4.0-atmel3.6.1-arduino2"),
},
{
Packager: "arduino",
Name: "avrdude",
Version: semver.ParseRelaxed("6.3.0-arduino14"),
},
{
Packager: "arduino",
Name: "arduinoOTA",
Version: semver.ParseRelaxed("1.2.1"),
},
},
}},
Tools: []*indexToolRelease{
{
Name: "bossac",
Version: semver.ParseRelaxed("1.6.1-arduino"),
Systems: []indexToolReleaseFlavour{
{
OS: "arm-linux-gnueabihf",
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
ArchiveFileName: "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
Size: "201341",
Checksum: "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391",
},
{
OS: "i686-mingw32",
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz",
ArchiveFileName: "bossac-1.6.1-arduino-mingw32.tar.gz",
Size: "222918",
Checksum: "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b",
},
},
},
{
Name: "bossac",
Version: semver.ParseRelaxed("1.7.0"),
Systems: []indexToolReleaseFlavour{
{
OS: "i686-mingw32",
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-mingw32.tar.bz2",
ArchiveFileName: "bossac-1.7.0-arduino-mingw32.tar.bz2",
Size: "243066",
Checksum: "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2",
},
{
OS: "x86_64-apple-darwin",
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
ArchiveFileName: "bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
Size: "63822",
Checksum: "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2",
},
},
},
{
Name: "arm-none-eabi-gcc",
Version: semver.ParseRelaxed("4.8.3-2014q1"),
Systems: []indexToolReleaseFlavour{
{
OS: "arm-linux-gnueabihf",
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
Size: "44423906",
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
},
{
OS: "i686-mingw32",
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
Size: "84537449",
Checksum: "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2",
},
},
},
{
Name: "arm-none-eabi-gcc",
Version: semver.ParseRelaxed("7-2017q4"),
Systems: []indexToolReleaseFlavour{
{
OS: "arm-linux-gnueabihf",
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
Size: "44423906",
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
},
{
OS: "aarch64-linux-gnu",
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
ArchiveFileName: "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
Size: "99558726",
Checksum: "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76",
},
},
},
},
}},
}
in := IndexFromPlatformRelease(pr)
require.Equal(t, expectedIndex.IsTrusted, in.IsTrusted)
require.Equal(t, len(expectedIndex.Packages), len(in.Packages))
for i := range expectedIndex.Packages {
expectedPackage := expectedIndex.Packages[i]
indexPackage := in.Packages[i]
require.Equal(t, expectedPackage.Name, indexPackage.Name)
require.Equal(t, expectedPackage.Maintainer, indexPackage.Maintainer)
require.Equal(t, expectedPackage.WebsiteURL, indexPackage.WebsiteURL)
require.Equal(t, expectedPackage.Email, indexPackage.Email)
require.Equal(t, expectedPackage.Help.Online, indexPackage.Help.Online)
require.Equal(t, len(expectedPackage.Tools), len(indexPackage.Tools))
require.ElementsMatch(t, expectedPackage.Tools, indexPackage.Tools)
require.Equal(t, len(expectedPackage.Platforms), len(indexPackage.Platforms))
for n := range expectedPackage.Platforms {
expectedPlatform := expectedPackage.Platforms[n]
indexPlatform := indexPackage.Platforms[n]
require.Equal(t, expectedPlatform.Name, indexPlatform.Name)
require.Equal(t, expectedPlatform.Architecture, indexPlatform.Architecture)
require.Equal(t, expectedPlatform.Version.String(), indexPlatform.Version.String())
require.Equal(t, expectedPlatform.Category, indexPlatform.Category)
require.Equal(t, expectedPlatform.Help.Online, indexPlatform.Help.Online)
require.Equal(t, expectedPlatform.URL, indexPlatform.URL)
require.Equal(t, expectedPlatform.ArchiveFileName, indexPlatform.ArchiveFileName)
require.Equal(t, expectedPlatform.Checksum, indexPlatform.Checksum)
require.Equal(t, expectedPlatform.Size, indexPlatform.Size)
require.ElementsMatch(t, expectedPlatform.Boards, indexPlatform.Boards)
require.ElementsMatch(t, expectedPlatform.ToolDependencies, indexPlatform.ToolDependencies)
}
}
}
......@@ -16,10 +16,12 @@
package packagemanager
import (
"encoding/json"
"fmt"
"runtime"
"github.com/arduino/arduino-cli/arduino/cores"
"github.com/arduino/arduino-cli/arduino/cores/packageindex"
"github.com/arduino/arduino-cli/executils"
"github.com/pkg/errors"
)
......@@ -39,6 +41,20 @@ func (pm *PackageManager) InstallPlatform(platformRelease *cores.PlatformRelease
} else {
return err
}
if err := pm.cacheInstalledJSON(platformRelease); err != nil {
return errors.Errorf("creating installed.json in %s: %s", platformRelease.InstallDir, err)
}
return nil
}
func (pm *PackageManager) cacheInstalledJSON(platformRelease *cores.PlatformRelease) error {
index := packageindex.IndexFromPlatformRelease(platformRelease)
platformJSON, err := json.MarshalIndent(index, "", " ")
if err != nil {
return err
}
installedJSON := platformRelease.InstallDir.Join("installed.json")
installedJSON.WriteFile(platformJSON)
return nil
}
......
......@@ -265,10 +265,20 @@ func (pm *PackageManager) loadPlatformRelease(platform *cores.PlatformRelease, p
platform.InstallDir = path
// Some useful paths
installedJSONPath := path.Join("installed.json")
platformTxtPath := path.Join("platform.txt")
platformTxtLocalPath := path.Join("platform.local.txt")
programmersTxtPath := path.Join("programmers.txt")
// If the installed.json file is found load it, this is done to handle the
// case in which the platform's index and its url have been deleted locally,
// if we don't load it some information about the platform is lost
if installedJSONPath.Exist() {
if _, err := pm.LoadPackageIndexFromFile(installedJSONPath); err != nil {
return fmt.Errorf("loading %s: %s", installedJSONPath, err)
}
}
// Create platform properties
platform.Properties = platform.Properties.Clone() // TODO: why CLONE?
if p, err := properties.SafeLoad(platformTxtPath.String()); err == nil {
......
......@@ -131,7 +131,7 @@ def run_command(pytestconfig, data_dir, downloads_dir, working_dir):
# It escapes spaces in the path using "\ " but it doesn't always work,
# wrapping the path in quotation marks is the safest approach
with run_context.prefix(f'{cd_command} "{custom_working_dir}"'):
return run_context.run(cli_full_line, echo=False, hide=True, warn=True, env=custom_env)
return run_context.run(cli_full_line, echo=False, hide=True, warn=True, env=custom_env, encoding="utf-8")
return _run
......
......@@ -12,11 +12,8 @@
# otherwise use the software for commercial activities involving the Arduino
# software without disclosing the source code of your own applications. To purchase
# a commercial license, send an email to license@arduino.cc.
import pytest
import simplejson as json
from .common import running_on_ci
gold_board = """
{
......@@ -401,12 +398,40 @@ def test_board_list(run_command):
assert "protocol_label" in port
@pytest.mark.skipif(running_on_ci(), reason="VMs have no serial ports")
def test_board_listall(run_command):
run_command("core update-index")
result = run_command("board listall")
assert result.ok
assert ["Board", "Name", "FQBN"] == result.stdout.splitlines()[0].strip().split()
run_command("core install arduino:avr@1.8.3")
res = run_command("board listall")
assert res.ok
lines = [l.rsplit(maxsplit=1) for l in res.stdout.strip().splitlines()]
assert len(lines) == 27
assert ["Board Name", "FQBN"] in lines
assert ["Arduino Yún", "arduino:avr:yun"] in lines
assert ["Arduino Uno", "arduino:avr:uno"] in lines
assert ["Arduino Duemilanove or Diecimila", "arduino:avr:diecimila"] in lines
assert ["Arduino Nano", "arduino:avr:nano"] in lines
assert ["Arduino Mega or Mega 2560", "arduino:avr:mega"] in lines
assert ["Arduino Mega ADK", "arduino:avr:megaADK"] in lines
assert ["Arduino Leonardo", "arduino:avr:leonardo"] in lines
assert ["Arduino Leonardo ETH", "arduino:avr:leonardoeth"] in lines
assert ["Arduino Micro", "arduino:avr:micro"] in lines
assert ["Arduino Esplora", "arduino:avr:esplora"] in lines
assert ["Arduino Mini", "arduino:avr:mini"] in lines
assert ["Arduino Ethernet", "arduino:avr:ethernet"] in lines
assert ["Arduino Fio", "arduino:avr:fio"] in lines
assert ["Arduino BT", "arduino:avr:bt"] in lines
assert ["LilyPad Arduino USB", "arduino:avr:LilyPadUSB"] in lines
assert ["LilyPad Arduino", "arduino:avr:lilypad"] in lines
assert ["Arduino Pro or Pro Mini", "arduino:avr:pro"] in lines
assert ["Arduino NG or older", "arduino:avr:atmegang"] in lines
assert ["Arduino Robot Control", "arduino:avr:robotControl"] in lines
assert ["Arduino Robot Motor", "arduino:avr:robotMotor"] in lines
assert ["Arduino Gemma", "arduino:avr:gemma"] in lines
assert ["Adafruit Circuit Playground", "arduino:avr:circuitplay32u4cat"] in lines
assert ["Arduino Yún Mini", "arduino:avr:yunmini"] in lines
assert ["Arduino Industrial 101", "arduino:avr:chiwawa"] in lines
assert ["Linino One", "arduino:avr:one"] in lines
assert ["Arduino Uno WiFi", "arduino:avr:unowifi"] in lines
def test_board_details(run_command):
......
......@@ -95,17 +95,24 @@ def test_core_search_no_args(run_command, httpserver):
result = run_command("core search")
assert result.ok
num_platforms = 0
found = False
for l in result.stdout.splitlines()[1:]: # ignore the header on first line
if l: # ignore empty lines
assert not l.startswith("test:x86")
if l.startswith("test:x86"):
found = True
num_platforms += 1
# same thing in JSON format, also check the number of platforms found is the same
result = run_command("core search --format json")
assert result.ok
platforms = json.loads(result.stdout)
found = False
platforms = json.loads(result.stdout)
for elem in platforms:
assert elem.get("Name") != "test_core"
if elem.get("Name") == "test_core":
found = True
break
assert found
assert len(platforms) == num_platforms
# list all with additional urls, check the test core is there
......@@ -270,3 +277,24 @@ def test_core_broken_install(run_command):
url = "https://raw.githubusercontent.com/arduino/arduino-cli/master/test/testdata/test_index.json"
assert run_command("core update-index --additional-urls={}".format(url))
assert not run_command("core install brokenchecksum:x86 --additional-urls={}".format(url))
def test_core_install_creates_installed_json(run_command, data_dir):
assert run_command("core update-index")
assert run_command("core install arduino:avr@1.6.23")
installed_json_file = Path(data_dir, "packages", "arduino", "hardware", "avr", "1.6.23", "installed.json")
assert installed_json_file.exists()
installed_json = json.load(installed_json_file.open("r"))
expected_installed_json = json.load((Path(__file__).parent / "testdata" / "installed.json").open("r"))
def ordered(obj):
if isinstance(obj, dict):
return sorted({k: ordered(v) for k, v in obj.items()})
if isinstance(obj, list):
return sorted(ordered(x) for x in obj)
else:
return obj
assert ordered(installed_json) == ordered(expected_installed_json)
{
"packages": [
{
"name": "arduino",
"maintainer": "Arduino",
"websiteUrl": "http://www.arduino.cc/",
"Url": "https://downloads.arduino.cc/packages/package_index.json",
"email": "packages@arduino.cc",
"platforms": [
{
"name": "Arduino AVR Boards",
"architecture": "avr",
"version": "1.6.23",
"category": "Arduino",
"url": "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2",
"archiveFileName": "avr-1.6.23.tar.bz2",
"checksum": "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa",
"size": 5001988,
"boards": [
{
"name": "Arduino Yún"
},
{
"name": "Arduino/Genuino Uno"
},
{
"name": "Arduino Uno WiFi"
},
{
"name": "Arduino Diecimila"
},
{
"name": "Arduino Nano"
},
{
"name": "Arduino/Genuino Mega"
},
{
"name": "Arduino MegaADK"
},
{
"name": "Arduino Leonardo"
},
{
"name": "Arduino Leonardo Ethernet"
},
{
"name": "Arduino/Genuino Micro"
},
{
"name": "Arduino Esplora"
},
{
"name": "Arduino Mini"
},
{
"name": "Arduino Ethernet"
},
{
"name": "Arduino Fio"
},
{
"name": "Arduino BT"
},
{
"name": "Arduino LilyPadUSB"
},
{
"name": "Arduino Lilypad"
},
{
"name": "Arduino Pro"
},
{
"name": "Arduino ATMegaNG"
},
{
"name": "Arduino Robot Control"
},
{
"name": "Arduino Robot Motor"
},
{
"name": "Arduino Gemma"
},
{
"name": "Adafruit Circuit Playground"
},
{
"name": "Arduino Yún Mini"
},
{
"name": "Arduino Industrial 101"
},
{
"name": "Linino One"
}
],
"help": {
"online": "http://www.arduino.cc/en/Reference/HomePage"
},
"toolsDependencies": [
{
"packager": "arduino",
"name": "avr-gcc",
"version": "5.4.0-atmel3.6.1-arduino2"
},
{
"packager": "arduino",
"name": "avrdude",
"version": "6.3.0-arduino14"
},
{
"packager": "arduino",
"name": "arduinoOTA",
"version": "1.2.1"
}
]
}
],
"tools": [
{
"name": "windows-drivers",
"version": "1.6.9",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.6.9.zip",
"archiveFileName": "drivers-arduino-windows-1.6.9.zip",
"size": 7071714,
"checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac"
}
]
},
{
"name": "windows-drivers",
"version": "1.8.0",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.8.0.zip",
"archiveFileName": "drivers-arduino-windows-1.8.0.zip",
"size": 16302148,
"checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec"
}
]
},
{
"name": "arduinoSTM32load",
"version": "2.0.0",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2",
"archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2",
"size": 807514,
"checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2",
"archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2",
"size": 809480,
"checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2",
"archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2",
"size": 818885,
"checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2",
"archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2",
"size": 814283,
"checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2",
"archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2",
"size": 786335,
"checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085"
}
]
},
{
"name": "nrf5x-cl-tools",
"version": "9.3.1",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2",
"archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2",
"size": 341674,
"checksum": "SHA-256:41e4580271b39459a7ef1b078d11ee08d8f4f23fab7ff03f3fe8c3bc986a0ed4"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2",
"archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2",
"size": 167414,
"checksum": "SHA-256:4074fffe678d60968006a72edd182c6506b264472c9957bc3eaa39336bfcf972"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2",
"archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2",
"size": 155680,
"checksum": "SHA-256:e880059b303e5aad3a8b34c83dfd8c22beee77ae2074fbd37511e3baa91464a5"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2",
"archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2",
"size": 812257,
"checksum": "SHA-256:a4467350e39314690cec2e96b80e7e3cab463c84eff9b81593ad57754d76ee00"
}
]
},
{
"name": "arm-none-eabi-gcc",
"version": "4.8.3-2014q1",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
"size": 44423906,
"checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
"archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
"size": 84537449,
"checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz",
"archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz",
"size": 52518522,
"checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz",
"archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz",
"size": 51395093,
"checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz",
"archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz",
"size": 51029223,
"checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498"
}
]
},
{
"name": "arm-none-eabi-gcc",
"version": "7-2017q4",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
"size": 44423906,
"checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
"size": 99558726,
"checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip",
"archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip",
"size": 131761924,
"checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2",
"size": 104550003,
"checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2",
"size": 99857645,
"checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2",
"size": 97427309,
"checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3"
}
]
},
{
"name": "bossac",
"version": "1.6.1-arduino",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
"archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
"size": 201341,
"checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz",
"archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz",
"size": 222918,
"checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz",
"archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz",
"size": 64587,
"checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz",
"size": 30869,
"checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz",
"size": 30320,
"checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92"
}
]
},
{
"name": "bossac",
"version": "1.7.0",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-mingw32.tar.gz",
"archiveFileName": "bossac-1.7.0-mingw32.tar.gz",
"size": 243066,
"checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz",
"archiveFileName": "bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz",
"size": 63822,
"checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-x86_64-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.7.0-x86_64-linux-gnu.tar.gz",
"size": 31373,
"checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i686-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.7.0-i686-linux-gnu.tar.gz",
"size": 31086,
"checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arm-linux-gnueabihf.tar.gz",
"archiveFileName": "bossac-1.7.0-arm-linux-gnueabihf.tar.gz",
"size": 27382,
"checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0"
}
]
},
{
"name": "bossac",
"version": "1.7.0-arduino3",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz",
"archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz",
"size": 3607421,
"checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz",
"archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz",
"size": 75510,
"checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz",
"archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz",
"size": 207271,
"checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz",
"archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz",
"size": 193577,
"checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz",
"archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz",
"size": 193941,
"checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz",
"archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz",
"size": 268365,
"checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b"
}
]
},
{
"name": "bossac",
"version": "1.8.0-48-gb176eee",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz",
"archiveFileName": "bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz",
"size": 91219,
"checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz",
"archiveFileName": "bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz",
"size": 39150,
"checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz",
"size": 37798,
"checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz",
"size": 37374,
"checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz",
"archiveFileName": "bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz",
"size": 34825,
"checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed"
}
]
},
{
"name": "bossac",
"version": "1.3-arduino",
"systems": [
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-linux-gnu.tar.bz2",
"archiveFileName": "bossac-1.3a-arduino-i686-linux-gnu.tar.bz2",
"size": 147359,
"checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2",
"size": 26179,
"checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-mingw32.tar.bz2",
"archiveFileName": "bossac-1.3a-arduino-i686-mingw32.tar.bz2",
"size": 265647,
"checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2",
"archiveFileName": "bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2",
"size": 39475,
"checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6"
}
]
},
{
"name": "bossac",
"version": "1.5-arduino",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2",
"archiveFileName": "bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2",
"size": 199550,
"checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz",
"archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz",
"size": 222283,
"checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz",
"archiveFileName": "bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz",
"size": 64120,
"checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz",
"size": 30431,
"checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i486-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.5-arduino2-i486-linux-gnu.tar.gz",
"size": 29783,
"checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6"
}
]
},
{
"name": "bossac",
"version": "1.6-arduino",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-mingw32.tar.gz",
"archiveFileName": "bossac-1.6-arduino-mingw32.tar.gz",
"size": 222517,
"checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz",
"archiveFileName": "bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz",
"size": 64538,
"checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-x86_64-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.6-arduino-x86_64-linux-gnu.tar.gz",
"size": 30649,
"checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i486-linux-gnu.tar.gz",
"archiveFileName": "bossac-1.6-arduino-i486-linux-gnu.tar.gz",
"size": 30072,
"checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2"
}
]
},
{
"name": "arduinoOTA",
"version": "1.0.0",
"systems": [
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2",
"archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2",
"size": 2044124,
"checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2",
"archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2",
"size": 2178772,
"checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2",
"archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2",
"size": 1961623,
"checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2",
"archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2",
"size": 2180617,
"checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip",
"archiveFileName": "arduinoOTA-1.0.0-windows.zip",
"size": 2247970,
"checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1"
}
]
},
{
"name": "arduinoOTA",
"version": "1.1.1",
"systems": [
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2",
"archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2",
"size": 2045036,
"checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2",
"archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2",
"size": 2178288,
"checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2",
"archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2",
"size": 1962115,
"checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2",
"archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2",
"size": 2181376,
"checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip",
"archiveFileName": "arduinoOTA-1.1.1-windows_386.zip",
"size": 2248431,
"checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006"
}
]
},
{
"name": "arduinoOTA",
"version": "1.2.0",
"systems": [
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2",
"size": 1839854,
"checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2",
"size": 1974030,
"checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2",
"size": 1787138,
"checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2",
"size": 1992476,
"checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip",
"archiveFileName": "arduinoOTA-1.2.0-windows_386.zip",
"size": 2003964,
"checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f"
}
]
},
{
"name": "arduinoOTA",
"version": "1.2.1",
"systems": [
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2",
"size": 2133779,
"checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2",
"size": 2257689,
"checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2",
"size": 2093132,
"checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2",
"size": 2093132,
"checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2",
"archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2",
"size": 2244088,
"checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip",
"archiveFileName": "arduinoOTA-1.2.1-windows_386.zip",
"size": 2237511,
"checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5"
}
]
},
{
"name": "CMSIS",
"version": "4.0.0-atmel",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2",
"archiveFileName": "CMSIS-4.0.0.tar.bz2",
"size": 17642623,
"checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2",
"archiveFileName": "CMSIS-4.0.0.tar.bz2",
"size": 17642623,
"checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2",
"archiveFileName": "CMSIS-4.0.0.tar.bz2",
"size": 17642623,
"checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2",
"archiveFileName": "CMSIS-4.0.0.tar.bz2",
"size": 17642623,
"checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2",
"archiveFileName": "CMSIS-4.0.0.tar.bz2",
"size": 17642623,
"checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7"
}
]
},
{
"name": "CMSIS",
"version": "4.5.0",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
},
{
"host": "all",
"url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2",
"archiveFileName": "CMSIS-4.5.0.tar.bz2",
"size": 31525196,
"checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d"
}
]
},
{
"name": "CMSIS-Atmel",
"version": "1.0.0",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2",
"size": 1281654,
"checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2",
"size": 1281654,
"checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2",
"size": 1281654,
"checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2",
"size": 1281654,
"checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2",
"size": 1281654,
"checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256"
},
{
"host": "all",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2",
"size": 1281654,
"checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256"
}
]
},
{
"name": "CMSIS-Atmel",
"version": "1.1.0",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2",
"size": 1659108,
"checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2",
"size": 1659108,
"checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2",
"size": 1659108,
"checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2",
"size": 1659108,
"checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2",
"size": 1659108,
"checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b"
},
{
"host": "all",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2",
"size": 1659108,
"checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b"
}
]
},
{
"name": "CMSIS-Atmel",
"version": "1.2.0",
"systems": [
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
},
{
"host": "aarch64-linux-gnu",
"url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
},
{
"host": "all",
"url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2",
"archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2",
"size": 2221805,
"checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5"
}
]
},
{
"name": "dfu-util",
"version": "0.9.0-arduino1",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-osx.tar.bz2",
"archiveFileName": "dfu-util-0.9.0-arduino1-osx.tar.bz2",
"size": 68361,
"checksum": "SHA-256:ea9216c627b7aa2d3a9bffab97df937e3c580cce66753c428dc697c854a35271"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-arm.tar.bz2",
"archiveFileName": "dfu-util-0.9.0-arduino1-arm.tar.bz2",
"size": 194826,
"checksum": "SHA-256:480637bf578e74b19753666a049f267d8ebcd9dfc8660d48f246bb76d5b806f9"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux64.tar.bz2",
"archiveFileName": "dfu-util-0.9.0-arduino1-linux64.tar.bz2",
"size": 66230,
"checksum": "SHA-256:e8a4d5477ab8c44d8528f35bc7dfafa5f3f04dace513906514aea31adc6fd3ba"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux32.tar.bz2",
"archiveFileName": "dfu-util-0.9.0-arduino1-linux32.tar.bz2",
"size": 62608,
"checksum": "SHA-256:17d69213914da04dadd6464d8adbcd3581dd930eb666b8f3336ab5383ce2127f"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-windows.tar.bz2",
"archiveFileName": "dfu-util-0.9.0-arduino1-windows.tar.bz2",
"size": 377537,
"checksum": "SHA-256:29be01b298348be8b822391be7147b71a969d47bd5457d5b24cfa5981dbce78e"
}
]
},
{
"name": "dfu-util",
"version": "0.8.0-stm32-arduino1",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2",
"archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2",
"size": 68381,
"checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2",
"archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2",
"size": 213760,
"checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_amd64.tar.bz2",
"archiveFileName": "dfu-util-0.8.0-stm32-arduino1-stm32-linux_amd64.tar.bz2",
"size": 68575,
"checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2",
"archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2",
"size": 69097,
"checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2",
"archiveFileName": "dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2",
"size": 159753,
"checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55"
}
]
},
{
"name": "avr-gcc",
"version": "4.9.2-atmel3.5.3-arduino",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2",
"size": 27046965,
"checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2",
"size": 27400001,
"checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2",
"size": 29904544,
"checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2",
"size": 29077606,
"checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip",
"size": 43847566,
"checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469"
}
]
},
{
"name": "avr-gcc",
"version": "4.9.2-atmel3.5.3-arduino2",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2",
"size": 27400889,
"checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2",
"size": 27048070,
"checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip",
"size": 43847945,
"checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2",
"size": 29292729,
"checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"size": 29882960,
"checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188"
}
]
},
{
"name": "avr-gcc",
"version": "4.9.2-atmel3.5.4-arduino2",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2",
"size": 27764772,
"checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2",
"size": 28574644,
"checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip",
"size": 44386446,
"checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2",
"size": 29723974,
"checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"size": 30374404,
"checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c"
}
]
},
{
"name": "avr-gcc",
"version": "5.4.0-atmel3.6.1-arduino2",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2",
"size": 31449123,
"checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2",
"size": 33141295,
"checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2",
"size": 31894498,
"checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip",
"archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip",
"size": 45923772,
"checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2",
"size": 33022916,
"checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"size": 33522375,
"checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185"
}
]
},
{
"name": "avr-gcc",
"version": "4.8.1-arduino2",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2",
"size": 24443285,
"checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"size": 27152002,
"checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2",
"size": 25876628,
"checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip",
"archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip",
"size": 46046691,
"checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000"
}
]
},
{
"name": "avr-gcc",
"version": "4.8.1-arduino3",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2",
"size": 24447175,
"checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2",
"size": 30556996,
"checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2",
"size": 28768022,
"checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip",
"archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip",
"size": 46046917,
"checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f"
}
]
},
{
"name": "avr-gcc",
"version": "4.8.1-arduino5",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2",
"size": 24403768,
"checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2",
"size": 24437400,
"checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2",
"size": 27093036,
"checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2",
"size": 25882375,
"checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip",
"archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip",
"size": 46044779,
"checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d"
}
]
},
{
"name": "avrdude",
"version": "6.0.1-arduino3",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2",
"size": 264682,
"checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2",
"size": 748634,
"checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2",
"size": 495482,
"checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip",
"archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip",
"size": 241619,
"checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9"
}
]
},
{
"name": "avrdude",
"version": "6.0.1-arduino5",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2",
"size": 267095,
"checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2",
"size": 264894,
"checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2",
"size": 292629,
"checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2",
"size": 283121,
"checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip",
"archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip",
"size": 241634,
"checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44"
}
]
},
{
"name": "avrdude",
"version": "6.3.0-arduino2",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2",
"size": 643484,
"checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2",
"size": 653968,
"checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"size": 745081,
"checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2",
"size": 731802,
"checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip",
"archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip",
"size": 608496,
"checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30"
}
]
},
{
"name": "avrdude",
"version": "6.3.0-arduino6",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2",
"size": 644600,
"checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2",
"size": 696273,
"checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2",
"size": 746653,
"checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2",
"size": 733127,
"checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip",
"archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip",
"size": 645859,
"checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc"
}
]
},
{
"name": "avrdude",
"version": "6.3.0-arduino8",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2",
"size": 644550,
"checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2",
"size": 697268,
"checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2",
"size": 711544,
"checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2",
"size": 701718,
"checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip",
"archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip",
"size": 645996,
"checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e"
}
]
},
{
"name": "avrdude",
"version": "6.3.0-arduino9",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2",
"size": 644550,
"checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2",
"size": 697309,
"checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2",
"size": 711229,
"checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2",
"size": 701590,
"checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip",
"archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip",
"size": 645974,
"checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f"
}
]
},
{
"name": "avrdude",
"version": "6.3.0-arduino14",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2",
"size": 219616,
"checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2",
"size": 229688,
"checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2",
"size": 256917,
"checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2",
"size": 253366,
"checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2",
"size": 244293,
"checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip",
"archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip",
"size": 328363,
"checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297"
}
]
},
{
"name": "avrdude",
"version": "6.0.1-arduino2",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2",
"size": 264965,
"checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2",
"size": 292541,
"checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2",
"archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2",
"size": 283209,
"checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip",
"archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip",
"size": 241618,
"checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae"
}
]
},
{
"name": "openocd",
"version": "0.9.0-arduino5-static",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2",
"size": 1319000,
"checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip",
"archiveFileName": "openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip",
"size": 1641209,
"checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2",
"size": 1235752,
"checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2",
"size": 1393855,
"checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2",
"size": 1341739,
"checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd"
}
]
},
{
"name": "openocd",
"version": "0.9.0-arduino6-static",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2",
"size": 1319020,
"checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip",
"archiveFileName": "openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip",
"size": 1641514,
"checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2",
"size": 1222523,
"checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2",
"size": 1394293,
"checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2",
"size": 1340444,
"checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9"
}
]
},
{
"name": "openocd",
"version": "0.10.0-arduino7",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2",
"archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2",
"size": 1638575,
"checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06"
},
{
"host": "aarch64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2",
"size": 1580739,
"checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0"
},
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2",
"archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2",
"size": 1498970,
"checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2",
"size": 1701581,
"checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2",
"archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2",
"size": 1626347,
"checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip",
"archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip",
"size": 2016965,
"checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5"
}
]
},
{
"name": "openocd",
"version": "0.10.0-arduino1-static",
"systems": [
{
"host": "i386-apple-darwin11",
"url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz",
"archiveFileName": "OpenOCD-0.10.0-nrf52-osx-static.tar.gz",
"size": 1529841,
"checksum": "SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d"
},
{
"host": "x86_64-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz",
"archiveFileName": "OpenOCD-0.10.0-nrf52-linux64-static.tar.gz",
"size": 1777984,
"checksum": "SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a"
},
{
"host": "i686-linux-gnu",
"url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux32-static.tar.gz",
"archiveFileName": "OpenOCD-0.10.0-nrf52-linux32-static.tar.gz",
"size": 1713236,
"checksum": "SHA-256:777371df34828810e1bea623b0f7c98f28fedf30fd3bc8e7d8f0a5745fb4e258"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-win32-static.zip",
"archiveFileName": "OpenOCD-0.10.0-nrf52-win32-static.zip",
"size": 1773642,
"checksum": "SHA-256:9371b25d000bd589c058a5bf10720617adb91fd8b8a21d2e887cf45eaa2df93c"
},
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-arm-static.tar.gz",
"archiveFileName": "OpenOCD-0.10.0-nrf52-arm-static.tar.gz",
"size": 1526863,
"checksum": "SHA-256:b5172422077f87ff05b76ff40034979678c9c640e9d08cee15ce55e40dd8c929"
}
]
},
{
"name": "openocd",
"version": "0.9.0-arduino",
"systems": [
{
"host": "arm-linux-gnueabihf",
"url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-arm-linux-gnueabihf.tar.bz2",
"archiveFileName": "OpenOCD-0.9.0-dev-arduino-arm-linux-gnueabihf.tar.bz2",
"size": 1402283,
"checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18"
},
{
"host": "i686-mingw32",
"url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2",
"archiveFileName": "OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2",
"size": 2360705,
"checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd"
},
{
"host": "x86_64-apple-darwin",
"url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2",
"archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2",
"size": 2275101,
"checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2",
"archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2",
"size": 1210796,
"checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3"
},
{
"host": "i686-pc-linux-gnu",
"url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2",
"archiveFileName": "OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2",
"size": 1129654,
"checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a"
}
]
}
],
"help": {
"online": "http://www.arduino.cc/en/Reference/HomePage"
}
}
],
"IsTrusted": true
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment