From 724e8c92ab400451eddde8682f55a514eb26704c Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Mon, 28 Sep 2020 14:52:32 +0200 Subject: [PATCH 1/8] Add Help field to PlatformRelease struct --- arduino/cores/cores.go | 6 ++++++ arduino/cores/packageindex/index.go | 1 + 2 files changed, 7 insertions(+) diff --git a/arduino/cores/cores.go b/arduino/cores/cores.go index 9b90bc84744..71f7cdea621 100644 --- a/arduino/cores/cores.go +++ b/arduino/cores/cores.go @@ -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:"-"` diff --git a/arduino/cores/packageindex/index.go b/arduino/cores/packageindex/index.go index c3ec676bc30..b35206cbb4b 100644 --- a/arduino/cores/packageindex/index.go +++ b/arduino/cores/packageindex/index.go @@ -144,6 +144,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 From 7e059cf7f27c500e500c9112f14abe6c19ad26b5 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Tue, 29 Sep 2020 16:23:19 +0200 Subject: [PATCH 2/8] Boards are now extracted from index file when creating PlatformRelease --- arduino/cores/packageindex/index.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arduino/cores/packageindex/index.go b/arduino/cores/packageindex/index.go index b35206cbb4b..dc2de79ebab 100644 --- a/arduino/cores/packageindex/index.go +++ b/arduino/cores/packageindex/index.go @@ -23,6 +23,7 @@ import ( "github.com/arduino/arduino-cli/arduino/resources" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/go-paths-helper" + "github.com/arduino/go-properties-orderedmap" "github.com/sirupsen/logrus" semver "go.bug.st/relaxed-semver" ) @@ -145,6 +146,15 @@ func (inPlatformRelease indexPlatformRelease) extractPlatformIn(outPackage *core CachePath: "packages", } outPlatformRelease.Help = cores.PlatformReleaseHelp{Online: inPlatformRelease.Help.Online} + outPlatformRelease.Boards = map[string]*cores.Board{} + for _, board := range inPlatformRelease.Boards { + outPlatformRelease.Boards[board.Name] = &cores.Board{ + Properties: properties.NewFromHashmap(map[string]string{ + "name": board.Name, + }), + PlatformRelease: outPlatformRelease, + } + } outPlatformRelease.BoardsManifest = inPlatformRelease.extractBoardsManifest() if deps, err := inPlatformRelease.extractDeps(); err == nil { outPlatformRelease.Dependencies = deps From 88e0ad66c6507258d2b5a2e78fee6f84c8ae35a6 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Tue, 29 Sep 2020 17:12:28 +0200 Subject: [PATCH 3/8] Changed some packageindex structs visibility --- arduino/cores/packageindex/index.go | 59 +++++++++++++++-------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/arduino/cores/packageindex/index.go b/arduino/cores/packageindex/index.go index dc2de79ebab..921d948d44a 100644 --- a/arduino/cores/packageindex/index.go +++ b/arduino/cores/packageindex/index.go @@ -30,24 +30,24 @@ import ( // Index represents Cores and Tools struct as seen from package_index.json file. type Index struct { - Packages []*indexPackage `json:"packages"` + Packages []*IndexPackage `json:"packages"` IsTrusted bool } -// indexPackage represents a single entry from package_index.json file. -type indexPackage struct { +// IndexPackage represents a single entry from package_index.json file. +type IndexPackage struct { Name string `json:"name,required"` Maintainer string `json:"maintainer,required"` WebsiteURL string `json:"websiteUrl"` URL string `json:"Url"` Email string `json:"email"` - Platforms []*indexPlatformRelease `json:"platforms,required"` - Tools []*indexToolRelease `json:"tools,required"` - Help indexHelp `json:"help,omitempty"` + Platforms []*IndexPlatformRelease `json:"platforms,required"` + Tools []*IndexToolRelease `json:"tools,required"` + Help IndexHelp `json:"help,omitempty"` } -// indexPlatformRelease represents a single Core Platform from package_index.json file. -type indexPlatformRelease struct { +// IndexPlatformRelease represents a single Core Platform from package_index.json file. +type IndexPlatformRelease struct { Name string `json:"name,required"` Architecture string `json:"architecture"` Version *semver.Version `json:"version,required"` @@ -56,27 +56,27 @@ type indexPlatformRelease struct { ArchiveFileName string `json:"archiveFileName,required"` Checksum string `json:"checksum,required"` Size json.Number `json:"size,required"` - Boards []indexBoard `json:"boards"` - Help indexHelp `json:"help,omitempty"` - ToolDependencies []indexToolDependency `json:"toolsDependencies,required"` + Boards []IndexBoard `json:"boards"` + Help IndexHelp `json:"help,omitempty"` + ToolDependencies []IndexToolDependency `json:"toolsDependencies,required"` } -// indexToolDependency represents a single dependency of a core from a tool. -type indexToolDependency struct { +// IndexToolDependency represents a single dependency of a core from a tool. +type IndexToolDependency struct { Packager string `json:"packager,required"` Name string `json:"name,required"` Version *semver.RelaxedVersion `json:"version,required"` } -// indexToolRelease represents a single Tool from package_index.json file. -type indexToolRelease struct { +// IndexToolRelease represents a single Tool from package_index.json file. +type IndexToolRelease struct { Name string `json:"name,required"` Version *semver.RelaxedVersion `json:"version,required"` - Systems []indexToolReleaseFlavour `json:"systems,required"` + Systems []IndexToolReleaseFlavour `json:"systems,required"` } -// indexToolReleaseFlavour represents a single tool flavor in the package_index.json file. -type indexToolReleaseFlavour struct { +// IndexToolReleaseFlavour represents a single tool flavor in the package_index.json file. +type IndexToolReleaseFlavour struct { OS string `json:"host,required"` URL string `json:"url,required"` ArchiveFileName string `json:"archiveFileName,required"` @@ -84,17 +84,18 @@ type indexToolReleaseFlavour struct { Checksum string `json:"checksum,required"` } -// indexBoard represents a single Board as written in package_index.json file. -type indexBoard 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"` } type indexBoardID struct { USB string `json:"usb"` } -type indexHelp struct { +// IndexHelp represents the help URL +type IndexHelp struct { Online string `json:"online,omitempty"` } @@ -106,7 +107,7 @@ func (index Index) MergeIntoPackages(outPackages cores.Packages) { } } -func (inPackage indexPackage) extractPackageIn(outPackages cores.Packages, trusted bool) { +func (inPackage IndexPackage) extractPackageIn(outPackages cores.Packages, trusted bool) { outPackage := outPackages.GetOrCreatePackage(inPackage.Name) outPackage.Maintainer = inPackage.Maintainer outPackage.WebsiteURL = inPackage.WebsiteURL @@ -123,7 +124,7 @@ func (inPackage indexPackage) extractPackageIn(outPackages cores.Packages, trust } } -func (inPlatformRelease indexPlatformRelease) extractPlatformIn(outPackage *cores.Package, trusted bool) error { +func (inPlatformRelease IndexPlatformRelease) extractPlatformIn(outPackage *cores.Package, trusted bool) error { outPlatform := outPackage.GetOrCreatePlatform(inPlatformRelease.Architecture) // FIXME: shall we use the Name and Category of the latest release? or maybe move Name and Category in PlatformRelease? outPlatform.Name = inPlatformRelease.Name @@ -164,7 +165,7 @@ func (inPlatformRelease indexPlatformRelease) extractPlatformIn(outPackage *core return nil } -func (inPlatformRelease indexPlatformRelease) extractDeps() (cores.ToolDependencies, error) { +func (inPlatformRelease IndexPlatformRelease) extractDeps() (cores.ToolDependencies, error) { ret := make(cores.ToolDependencies, len(inPlatformRelease.ToolDependencies)) for i, dep := range inPlatformRelease.ToolDependencies { ret[i] = &cores.ToolDependency{ @@ -176,7 +177,7 @@ func (inPlatformRelease indexPlatformRelease) extractDeps() (cores.ToolDependenc return ret, nil } -func (inPlatformRelease indexPlatformRelease) extractBoardsManifest() []*cores.BoardManifest { +func (inPlatformRelease IndexPlatformRelease) extractBoardsManifest() []*cores.BoardManifest { boards := make([]*cores.BoardManifest, len(inPlatformRelease.Boards)) for i, board := range inPlatformRelease.Boards { manifest := &cores.BoardManifest{Name: board.Name} @@ -190,15 +191,15 @@ func (inPlatformRelease indexPlatformRelease) extractBoardsManifest() []*cores.B return boards } -func (inToolRelease indexToolRelease) extractToolIn(outPackage *cores.Package) { +func (inToolRelease IndexToolRelease) extractToolIn(outPackage *cores.Package) { outTool := outPackage.GetOrCreateTool(inToolRelease.Name) outToolRelease := outTool.GetOrCreateRelease(inToolRelease.Version) outToolRelease.Flavors = inToolRelease.extractFlavours() } -// extractFlavours extracts a map[OS]Flavor object from an indexToolRelease entry. -func (inToolRelease indexToolRelease) extractFlavours() []*cores.Flavor { +// extractFlavours extracts a map[OS]Flavor object from an IndexToolRelease entry. +func (inToolRelease IndexToolRelease) extractFlavours() []*cores.Flavor { ret := make([]*cores.Flavor, len(inToolRelease.Systems)) for i, flavour := range inToolRelease.Systems { size, _ := flavour.Size.Int64() From a1baefc67116c026c9fd054cb53c483df66ee248 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Tue, 29 Sep 2020 16:26:55 +0200 Subject: [PATCH 4/8] Installing a Platform saves a json file with all its info --- .../cores/packagemanager/install_uninstall.go | 89 +++++++++ .../packagemanager/install_uninstall_test.go | 170 ++++++++++++++++++ 2 files changed, 259 insertions(+) create mode 100644 arduino/cores/packagemanager/install_uninstall_test.go diff --git a/arduino/cores/packagemanager/install_uninstall.go b/arduino/cores/packagemanager/install_uninstall.go index adbfba51261..a88a5681cd9 100644 --- a/arduino/cores/packagemanager/install_uninstall.go +++ b/arduino/cores/packagemanager/install_uninstall.go @@ -16,10 +16,13 @@ package packagemanager import ( + "encoding/json" "fmt" "runtime" + "strconv" "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 +42,92 @@ 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 platformReleaseToIndex(pr *cores.PlatformRelease) packageindex.IndexPlatformRelease { + boards := []packageindex.IndexBoard{} + for name := range pr.Boards { + boards = append(boards, packageindex.IndexBoard{ + Name: name, + }) + } + + tools := []packageindex.IndexToolDependency{} + for _, t := range pr.Dependencies { + tools = append(tools, packageindex.IndexToolDependency{ + Packager: t.ToolPackager, + Name: t.ToolName, + Version: t.ToolVersion, + }) + } + return packageindex.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(strconv.FormatInt(pr.Resource.Size, 10)), + Boards: boards, + Help: packageindex.IndexHelp{Online: pr.Help.Online}, + ToolDependencies: tools, + } +} + +func packageToolsToIndex(tools map[string]*cores.Tool) []*packageindex.IndexToolRelease { + ret := []*packageindex.IndexToolRelease{} + for name, tool := range tools { + for _, toolRelease := range tool.Releases { + flavours := []packageindex.IndexToolReleaseFlavour{} + for _, flavour := range toolRelease.Flavors { + flavours = append(flavours, packageindex.IndexToolReleaseFlavour{ + OS: flavour.OS, + URL: flavour.Resource.URL, + ArchiveFileName: flavour.Resource.ArchiveFileName, + Size: json.Number(strconv.FormatInt(flavour.Resource.Size, 10)), + Checksum: flavour.Resource.Checksum, + }) + } + ret = append(ret, &packageindex.IndexToolRelease{ + Name: name, + Version: toolRelease.Version, + Systems: flavours, + }) + } + } + return ret +} + +func (pm *PackageManager) cacheInstalledJSON(platformRelease *cores.PlatformRelease) error { + indexPlatformRelease := platformReleaseToIndex(platformRelease) + indexPackageToolReleases := packageToolsToIndex(platformRelease.Platform.Package.Tools) + + index := packageindex.Index{ + IsTrusted: platformRelease.IsTrusted, + Packages: []*packageindex.IndexPackage{ + { + Name: platformRelease.Platform.Package.Name, + Maintainer: platformRelease.Platform.Package.Maintainer, + WebsiteURL: platformRelease.Platform.Package.WebsiteURL, + URL: platformRelease.Platform.Package.URL, + Email: platformRelease.Platform.Package.Email, + Platforms: []*packageindex.IndexPlatformRelease{&indexPlatformRelease}, + Tools: indexPackageToolReleases, + Help: packageindex.IndexHelp{Online: platformRelease.Platform.Package.Help.Online}, + }, + }, + } + platformJSON, err := json.MarshalIndent(index, "", " ") + if err != nil { + return err + } + installedJSON := platformRelease.InstallDir.Join("installed.json") + installedJSON.WriteFile(platformJSON) return nil } diff --git a/arduino/cores/packagemanager/install_uninstall_test.go b/arduino/cores/packagemanager/install_uninstall_test.go new file mode 100644 index 00000000000..97b13ecdf82 --- /dev/null +++ b/arduino/cores/packagemanager/install_uninstall_test.go @@ -0,0 +1,170 @@ +package packagemanager_test + +import ( + "encoding/json" + "testing" + + "github.com/arduino/arduino-cli/arduino/cores/packageindex" + "github.com/arduino/arduino-cli/arduino/cores/packagemanager" + "github.com/arduino/arduino-cli/cli/output" + "github.com/arduino/arduino-cli/commands" + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" + semver "go.bug.st/relaxed-semver" +) + +func TestInstallPlatform(t *testing.T) { + dataDir := paths.New("testdata", "data_dir_1") + packageDir := paths.TempDir().Join("test", "packages") + downloadDir := paths.TempDir().Join("test", "staging") + tmpDir := paths.TempDir().Join("test", "tmp") + packageDir.MkdirAll() + downloadDir.MkdirAll() + tmpDir.MkdirAll() + defer paths.TempDir().Join("test").RemoveAll() + + pm := packagemanager.NewPackageManager(dataDir, packageDir, downloadDir, tmpDir) + pm.LoadPackageIndexFromFile(dataDir.Join("package_index.json")) + + platformRelease, tools, err := pm.FindPlatformReleaseDependencies(&packagemanager.PlatformReference{ + Package: "arduino", + PlatformArchitecture: "avr", + PlatformVersion: semver.MustParse("1.6.23"), + }) + require.NotNil(t, platformRelease) + require.NotNil(t, tools) + require.Nil(t, err) + + downloaderConfig, err := commands.GetDownloaderConfig() + require.NotNil(t, downloaderConfig) + require.Nil(t, err) + downloader, err := pm.DownloadPlatformRelease(platformRelease, downloaderConfig) + require.NotNil(t, downloader) + require.Nil(t, err) + err = commands.Download(downloader, platformRelease.String(), output.NewNullDownloadProgressCB()) + require.Nil(t, err) + + err = pm.InstallPlatform(platformRelease) + require.Nil(t, err) + + destDir := packageDir.Join("arduino", "hardware", "avr", "1.6.23") + require.True(t, destDir.IsDir()) + + installedJSON := destDir.Join("installed.json") + require.True(t, installedJSON.Exist()) + + bt, err := installedJSON.ReadFile() + require.Nil(t, err) + + index := &packageindex.Index{} + err = json.Unmarshal(bt, index) + require.Nil(t, err) + + require.Equal(t, 1, len(index.Packages)) + indexPackage := index.Packages[0] + require.Equal(t, "arduino", indexPackage.Name) + require.Equal(t, "Arduino", indexPackage.Maintainer) + require.Equal(t, "http://www.arduino.cc/", indexPackage.WebsiteURL) + require.Equal(t, "packages@arduino.cc", indexPackage.Email) + require.Equal(t, 1, len(indexPackage.Platforms)) + require.Equal(t, "http://www.arduino.cc/en/Reference/HomePage", indexPackage.Help.Online) + + indexPackageTools := indexPackage.Tools + require.Equal(t, 44, len(indexPackageTools)) + // Just check one to verifies it's actually correct + require.Contains(t, indexPackageTools, &packageindex.IndexToolRelease{ + Name: "arm-none-eabi-gcc", + Version: semver.ParseRelaxed("4.8.3-2014q1"), + Systems: []packageindex.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", + }, + { + OS: "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", + }, + { + OS: "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", + }, + { + OS: "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", + }, + }}) + + indexPlatformRelease := indexPackage.Platforms[0] + require.Equal(t, "Arduino AVR Boards", indexPlatformRelease.Name) + require.Equal(t, "avr", indexPlatformRelease.Architecture) + require.Equal(t, "1.6.23", indexPlatformRelease.Version.String()) + require.Equal(t, "Arduino", indexPlatformRelease.Category) + require.Equal(t, "http://www.arduino.cc/en/Reference/HomePage", indexPlatformRelease.Help.Online) + require.Equal(t, "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", indexPlatformRelease.URL) + require.Equal(t, "avr-1.6.23.tar.bz2", indexPlatformRelease.ArchiveFileName) + require.Equal(t, "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", indexPlatformRelease.Checksum) + require.Equal(t, json.Number("5001988"), indexPlatformRelease.Size) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Yún"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino/Genuino Uno"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Uno WiFi"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Diecimila"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Nano"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino/Genuino Mega"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino MegaADK"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Leonardo"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Leonardo Ethernet"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino/Genuino Micro"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Esplora"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Mini"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Ethernet"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Fio"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino BT"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino LilyPadUSB"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Lilypad"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Pro"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino ATMegaNG"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Robot Control"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Robot Motor"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Gemma"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Adafruit Circuit Playground"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Yún Mini"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Industrial 101"}) + require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Linino One"}) + require.Contains(t, indexPlatformRelease.ToolDependencies, + packageindex.IndexToolDependency{ + Packager: "arduino", + Name: "avr-gcc", + Version: semver.ParseRelaxed("5.4.0-atmel3.6.1-arduino2"), + }) + require.Contains(t, indexPlatformRelease.ToolDependencies, + packageindex.IndexToolDependency{ + Packager: "arduino", + Name: "avrdude", + Version: semver.ParseRelaxed("6.3.0-arduino14"), + }) + require.Contains(t, indexPlatformRelease.ToolDependencies, + packageindex.IndexToolDependency{ + Packager: "arduino", + Name: "arduinoOTA", + Version: semver.ParseRelaxed("1.2.1"), + }) +} From 68d37ebbe71f3c348fafdd87d3f1c2f158abbe0e Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Wed, 30 Sep 2020 14:32:52 +0200 Subject: [PATCH 5/8] Platform's installed.json is now loaded if found --- arduino/cores/packagemanager/loader.go | 10 ++++++++++ test/test_core.py | 11 +++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/arduino/cores/packagemanager/loader.go b/arduino/cores/packagemanager/loader.go index 6d97f8ef66c..c690496405c 100644 --- a/arduino/cores/packagemanager/loader.go +++ b/arduino/cores/packagemanager/loader.go @@ -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 { diff --git a/test/test_core.py b/test/test_core.py index 950f73265f2..d7a587deb10 100644 --- a/test/test_core.py +++ b/test/test_core.py @@ -64,17 +64,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 From f2bd18a46729590ddd98535a33e49256efc6e058 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Thu, 1 Oct 2020 18:04:58 +0200 Subject: [PATCH 6/8] Fix issue with board listall --- arduino/cores/packageindex/index.go | 15 +- .../cores/packagemanager/install_uninstall.go | 14 +- commands/board/listall_test.go | 197 ++ commands/board/testdata/package_index.json | 2523 +++++++++++++++++ 4 files changed, 2733 insertions(+), 16 deletions(-) create mode 100644 commands/board/listall_test.go create mode 100644 commands/board/testdata/package_index.json diff --git a/arduino/cores/packageindex/index.go b/arduino/cores/packageindex/index.go index 921d948d44a..9f0912ee302 100644 --- a/arduino/cores/packageindex/index.go +++ b/arduino/cores/packageindex/index.go @@ -23,7 +23,6 @@ import ( "github.com/arduino/arduino-cli/arduino/resources" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/go-paths-helper" - "github.com/arduino/go-properties-orderedmap" "github.com/sirupsen/logrus" semver "go.bug.st/relaxed-semver" ) @@ -87,10 +86,11 @@ 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,omitempty"` + ID []IndexBoardID `json:"id,omitempty"` } -type indexBoardID struct { +// IndexBoardID represents the ID of a single board. i.e. uno, yun, diecimila, micro and the likes +type IndexBoardID struct { USB string `json:"usb"` } @@ -147,15 +147,6 @@ func (inPlatformRelease IndexPlatformRelease) extractPlatformIn(outPackage *core CachePath: "packages", } outPlatformRelease.Help = cores.PlatformReleaseHelp{Online: inPlatformRelease.Help.Online} - outPlatformRelease.Boards = map[string]*cores.Board{} - for _, board := range inPlatformRelease.Boards { - outPlatformRelease.Boards[board.Name] = &cores.Board{ - Properties: properties.NewFromHashmap(map[string]string{ - "name": board.Name, - }), - PlatformRelease: outPlatformRelease, - } - } outPlatformRelease.BoardsManifest = inPlatformRelease.extractBoardsManifest() if deps, err := inPlatformRelease.extractDeps(); err == nil { outPlatformRelease.Dependencies = deps diff --git a/arduino/cores/packagemanager/install_uninstall.go b/arduino/cores/packagemanager/install_uninstall.go index a88a5681cd9..5f8d47d4873 100644 --- a/arduino/cores/packagemanager/install_uninstall.go +++ b/arduino/cores/packagemanager/install_uninstall.go @@ -50,10 +50,16 @@ func (pm *PackageManager) InstallPlatform(platformRelease *cores.PlatformRelease func platformReleaseToIndex(pr *cores.PlatformRelease) packageindex.IndexPlatformRelease { boards := []packageindex.IndexBoard{} - for name := range pr.Boards { - boards = append(boards, packageindex.IndexBoard{ - Name: name, - }) + for _, manifest := range pr.BoardsManifest { + board := packageindex.IndexBoard{ + Name: manifest.Name, + } + for _, id := range manifest.ID { + if id.USB != "" { + board.ID = []packageindex.IndexBoardID{{USB: id.USB}} + } + } + boards = append(boards, board) } tools := []packageindex.IndexToolDependency{} diff --git a/commands/board/listall_test.go b/commands/board/listall_test.go new file mode 100644 index 00000000000..b5702c8ad2b --- /dev/null +++ b/commands/board/listall_test.go @@ -0,0 +1,197 @@ +// This file is part of arduino-cli. +// +// Copyright 2020 ARDUINO SA (http://www.arduino.cc/) +// +// This software is released under the GNU General Public License version 3, +// which covers the main part of arduino-cli. +// The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to +// modify or 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. + +package board + +import ( + "context" + "os" + "testing" + + "github.com/arduino/arduino-cli/cli/instance" + "github.com/arduino/arduino-cli/cli/output" + "github.com/arduino/arduino-cli/commands/core" + "github.com/arduino/arduino-cli/configuration" + rpc "github.com/arduino/arduino-cli/rpc/commands" + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" +) + +func TestListAll(t *testing.T) { + dataDir := paths.TempDir().Join("test", "data_dir") + downloadDir := paths.TempDir().Join("test", "staging") + os.Setenv("ARDUINO_DATA_DIR", dataDir.String()) + os.Setenv("ARDUINO_DOWNLOADS_DIR", downloadDir.String()) + dataDir.MkdirAll() + downloadDir.MkdirAll() + defer paths.TempDir().Join("test").RemoveAll() + err := paths.New("testdata").Join("package_index.json").CopyTo(dataDir.Join("package_index.json")) + require.Nil(t, err) + + configuration.Init(paths.TempDir().Join("test", "arduino-cli.yaml").String()) + + inst, err := instance.CreateInstance() + require.Nil(t, err) + + _, err = core.PlatformInstall(context.Background(), + &rpc.PlatformInstallReq{ + Instance: inst, + PlatformPackage: "arduino", + Architecture: "avr", + Version: "1.8.3", + SkipPostInstall: true, + }, output.NewDownloadProgressBarCB(), output.NewTaskProgressCB()) + require.Nil(t, err) + + res, err := ListAll(context.Background(), &rpc.BoardListAllReq{ + Instance: inst, + SearchArgs: []string{}, + IncludeHiddenBoards: true, + }) + require.Nil(t, err) + require.NotNil(t, res) + require.Equal(t, 26, len(res.Boards)) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Yún", + FQBN: "arduino:avr:yun", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Uno", + FQBN: "arduino:avr:uno", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Duemilanove or Diecimila", + FQBN: "arduino:avr:diecimila", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Nano", + FQBN: "arduino:avr:nano", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Mega or Mega 2560", + FQBN: "arduino:avr:mega", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Mega ADK", + FQBN: "arduino:avr:megaADK", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Leonardo", + FQBN: "arduino:avr:leonardo", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Leonardo ETH", + FQBN: "arduino:avr:leonardoeth", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Micro", + FQBN: "arduino:avr:micro", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Esplora", + FQBN: "arduino:avr:esplora", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Mini", + FQBN: "arduino:avr:mini", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Ethernet", + FQBN: "arduino:avr:ethernet", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Fio", + FQBN: "arduino:avr:fio", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino BT", + FQBN: "arduino:avr:bt", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "LilyPad Arduino USB", + FQBN: "arduino:avr:LilyPadUSB", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "LilyPad Arduino", + FQBN: "arduino:avr:lilypad", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Pro or Pro Mini", + FQBN: "arduino:avr:pro", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino NG or older", + FQBN: "arduino:avr:atmegang", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Robot Control", + FQBN: "arduino:avr:robotControl", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Robot Motor", + FQBN: "arduino:avr:robotMotor", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Gemma", + FQBN: "arduino:avr:gemma", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Adafruit Circuit Playground", + FQBN: "arduino:avr:circuitplay32u4cat", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Yún Mini", + FQBN: "arduino:avr:yunmini", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Industrial 101", + FQBN: "arduino:avr:chiwawa", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Linino One", + FQBN: "arduino:avr:one", + IsHidden: false, + }) + require.Contains(t, res.Boards, &rpc.BoardListItem{ + Name: "Arduino Uno WiFi", + FQBN: "arduino:avr:unowifi", + IsHidden: false, + }) + +} diff --git a/commands/board/testdata/package_index.json b/commands/board/testdata/package_index.json new file mode 100644 index 00000000000..e36f45cb5b0 --- /dev/null +++ b/commands/board/testdata/package_index.json @@ -0,0 +1,2523 @@ +{ + "packages": [ + { + "name": "arduino", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2", + "archiveFileName": "avr-1.8.3.tar.bz2", + "checksum": "SHA-256:de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14", + "size": "4941548", + "boards": [ + { "name": "Arduino Yún" }, + { "name": "Arduino Uno" }, + { "name": "Arduino Uno WiFi" }, + { "name": "Arduino Diecimila" }, + { "name": "Arduino Nano" }, + { "name": "Arduino Mega" }, + { "name": "Arduino MegaADK" }, + { "name": "Arduino Leonardo" }, + { "name": "Arduino Leonardo Ethernet" }, + { "name": "Arduino 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" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + } + ], + "tools": [ + { + "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", + "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", + "size": "44423906" + }, + { + "host": "i686-mingw32", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", + "size": "84537449" + }, + { + "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", + "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", + "size": "52518522" + }, + { + "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", + "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", + "size": "51395093" + }, + { + "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", + "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", + "size": "51029223" + } + ] + }, + { + "name": "arm-none-eabi-gcc", + "version": "7-2017q4", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "checksum": "SHA-256:34180943d95f759c66444a40b032f7dd9159a562670fc334f049567de140c51b", + "size": "96613739" + }, + { + "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", + "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", + "size": "99558726" + }, + { + "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", + "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", + "size": "131761924" + }, + { + "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", + "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", + "size": "104550003" + }, + { + "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", + "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", + "size": "99857645" + }, + { + "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", + "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", + "size": "97427309" + } + ] + }, + { + "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", + "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", + "size": "147359" + }, + { + "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", + "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", + "size": "26179" + }, + { + "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", + "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", + "size": "265647" + }, + { + "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", + "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", + "size": "39475" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino2", + "systems": [ + { + "size": "24443285", + "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27152002", + "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25876628", + "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046691", + "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino2", + "systems": [ + { + "size": "264965", + "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292541", + "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283209", + "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241618", + "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino3", + "systems": [ + { + "size": "24447175", + "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "30556996", + "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "28768022", + "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046917", + "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino3", + "systems": [ + { + "size": "264682", + "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "748634", + "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "495482", + "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241619", + "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino5", + "systems": [ + { + "size": "24403768", + "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "24437400", + "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27093036", + "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25882375", + "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46044779", + "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino5", + "systems": [ + { + "size": "267095", + "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "264894", + "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292629", + "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283121", + "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241634", + "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino", + "systems": [ + { + "size": "27046965", + "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27400001", + "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "29904544", + "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "29077606", + "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "43847566", + "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2", + "systems": [ + { + "size": "27400889", + "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "27048070", + "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "43847945", + "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" + }, + { + "size": "29292729", + "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "29882960", + "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2", + "systems": [ + { + "size": "27764772", + "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "28574644", + "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "44386446", + "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" + }, + { + "size": "29723974", + "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "30374404", + "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2", + "systems": [ + { + "size": "31449123", + "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "33141295", + "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "31894498", + "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "45923772", + "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" + }, + { + "size": "33022916", + "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "33522375", + "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5", + "systems": [ + { + "size": "34462042", + "checksum": "SHA-256:f4acd5531c6b82c715e2edfa0aadb13fb718b4095b3ea1aa1f7fbde680069639", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "39381972", + "checksum": "SHA-256:dd9c70190be370a44fb47dab1514de6d8852b861dfa527964b65c740d8d50c10", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "38492678", + "checksum": "SHA-256:f48706317f04452544ab90e75bd1bb193f8af2cb1002f53aa702f27202c1b38f", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "53727984", + "checksum": "SHA-256:6d4a5d089a36e5b5252befc73da204555b49e376ce7577ee19ca7f028b295830", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip" + }, + { + "size": "38710087", + "checksum": "SHA-256:2ff12739d7ed09688d6b3c2c126e8df69b5bda1a07ab558799f0e576571e0e1d", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "39114120", + "checksum": "SHA-256:3effed8ffa1978b6e4a46f1aa2acc629e440b4d77244f71f9b79a916025206fb", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7", + "systems": [ + { + "size": "34683056", + "checksum": "SHA-256:3903553d035da59e33cff9941b857c3cb379cb0638105dfdf69c97f0acc8e7b5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "38045723", + "checksum": "SHA-256:03d322b9df6da17289e9e7c6233c34a8535d9c645c19efc772ba19e56914f339", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "36684546", + "checksum": "SHA-256:f6ed2346953fcf88df223469088633eb86de997fa27ece117fd1ef170d69c1f8", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "52519412", + "checksum": "SHA-256:a54f64755fff4cb792a1495e5defdd789902a2a3503982e81b898299cf39800e", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip" + }, + { + "size": "37176991", + "checksum": "SHA-256:954bbffb33545bcdcd473af993da2980bf32e8461ff55a18e0eebc7b2ef69a4c", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "37630618", + "checksum": "SHA-256:bd8c37f6952a2130ac9ee32c53f6a660feb79bee8353c8e289eb60fdcefed91e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino2", + "systems": [ + { + "size": "643484", + "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "653968", + "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "745081", + "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "731802", + "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "608496", + "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino6", + "systems": [ + { + "size": "644600", + "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "696273", + "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" + }, + { + "size": "746653", + "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "733127", + "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645859", + "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino8", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697268", + "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711544", + "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701718", + "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645996", + "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino9", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697309", + "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711229", + "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701590", + "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645974", + "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino14", + "systems": [ + { + "size": "219616", + "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229688", + "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "256917", + "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" + }, + { + "size": "253366", + "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244293", + "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328363", + "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino16", + "systems": [ + { + "size": "219642", + "checksum": "SHA-256:6fc443445440f0e2d95d70013ed075bceffc2a1babc1e7d4f1ae69c3fe268c57", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229997", + "checksum": "SHA-256:7a2726ab2fd18b910abc3d9dd33c4b40d18c34cf12c46f3367932e7fd87c0197", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279172", + "checksum": "SHA-256:f93dc12a4b30a335ab24b3c628e6cad0ebf2f8adfb7ef50f87c0fc17165b2156", + "host": "x86_64-apple-darwin15", + "archiveFileName": "avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2" + }, + { + "size": "254085", + "checksum": "SHA-256:57856d6e388d333d924afa3e2d5525161dbe0dc670e7caae2720e249606175a7", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244393", + "checksum": "SHA-256:bdf73358991243a9a8de11a42c80c4ec4b14c82f2222cb0c3c181f62656c41fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328456", + "checksum": "SHA-256:781c16a8bf813fa68fc0f47d427279053c9e098c3aed7165449ac4f0137304dd", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino17", + "systems": [ + { + "size": "219631", + "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229852", + "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279045", + "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254271", + "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244550", + "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328460", + "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.0.0", + "systems": [ + { + "size": "2044124", + "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" + }, + { + "size": "2178772", + "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" + }, + { + "size": "1961623", + "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" + }, + { + "size": "2180617", + "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" + }, + { + "size": "2247970", + "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.0.0-windows.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.1.1", + "systems": [ + { + "size": "2045036", + "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" + }, + { + "size": "2178288", + "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" + }, + { + "size": "1962115", + "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" + }, + { + "size": "2181376", + "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" + }, + { + "size": "2248431", + "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.0", + "systems": [ + { + "size": "1839854", + "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" + }, + { + "size": "1974030", + "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" + }, + { + "size": "1787138", + "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" + }, + { + "size": "1992476", + "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" + }, + { + "size": "2003964", + "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.1", + "systems": [ + { + "size": "2133779", + "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" + }, + { + "size": "2257689", + "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2244088", + "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" + }, + { + "size": "2237511", + "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.3.0", + "systems": [ + { + "size": "2633516", + "checksum": "SHA-256:3e7f59d6fbc7a724598303f0d3289d0c4fd137a8973437980658379a024887b2", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2" + }, + { + "size": "2716248", + "checksum": "SHA-256:aa45ee2441ffc3a122daec5802941d1fa2ac47adf5c5c481b5e0daa4dc259ffa", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2" + }, + { + "size": "2567435", + "checksum": "SHA-256:1888587409b56aef4ba0ab0e6703b3dccba7cc3a022756ba9b908247e5d5a656", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2" + }, + { + "size": "2472427", + "checksum": "SHA-256:835ed8f37cffac37e979d1b0f6041559592d3d98be52f0e8611b76c4858e4113", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm64.tar.bz2" + }, + { + "size": "2766116", + "checksum": "SHA-256:d5d0f82ff829c0e434d12a2ee640a6fbd78f893ab37782edbb8b5bf2359d119e", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.3.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64.tar.bz2" + }, + { + "size": "2768948", + "checksum": "SHA-256:051943844eee442460d2c709edefadca184287fffd2b6c100dd53aa742aa05f6", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.3.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-windows_386.zip" + } + ] + }, + { + "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", + "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", + "size": "199550" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", + "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", + "size": "222283" + }, + { + "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", + "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", + "size": "64120" + }, + { + "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", + "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", + "size": "30431" + }, + { + "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", + "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", + "size": "29783" + } + ] + }, + { + "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", + "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", + "size": "222517" + }, + { + "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", + "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", + "size": "64538" + }, + { + "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", + "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", + "size": "30649" + }, + { + "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", + "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", + "size": "30072" + } + ] + }, + { + "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", + "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", + "size": "201341" + }, + { + "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", + "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", + "size": "222918" + }, + { + "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", + "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", + "size": "64587" + }, + { + "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", + "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", + "size": "30869" + }, + { + "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", + "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", + "size": "30320" + } + ] + }, + { + "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", + "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", + "size": "243066" + }, + { + "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", + "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", + "size": "63822" + }, + { + "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", + "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", + "size": "31373" + }, + { + "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", + "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", + "size": "31086" + }, + { + "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", + "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", + "size": "27382" + } + ] + }, + { + "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", + "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + "size": "3607421" + }, + { + "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", + "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + "size": "75510" + }, + { + "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", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "size": "207271" + }, + { + "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", + "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + "size": "193577" + }, + { + "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", + "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + "size": "193941" + }, + { + "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", + "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + "size": "268365" + } + ] + }, + { + "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", + "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", + "size": "91219" + }, + { + "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", + "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", + "size": "39150" + }, + { + "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", + "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", + "size": "37798" + }, + { + "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", + "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", + "size": "37374" + }, + { + "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", + "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", + "size": "34825" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino1", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-windows.tar.gz", + "checksum": "SHA-256:fe2d6ef78ca711c78e104e258357ed06b09e95e9356dc72d8d2c9f6670af4b7a", + "size": "1260118" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-osx.tar.gz", + "checksum": "SHA-256:c356632f98d5bae9b4f5d3ad823a5ee89b23078c2b835e8ac39a208f4855b0e6", + "size": "47835" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux64.tar.gz", + "checksum": "SHA-256:d3d324a3503a8db825c01f3b38519e4d4824c4d0e42cb399a16c1e074f9a9a86", + "size": "399453" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux32.tar.gz", + "checksum": "SHA-256:eec622b8b5a8642af94ec23febfe14c928edd734f144db73b146bf6708d2057f", + "size": "384792" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxarm.tar.gz", + "checksum": "SHA-256:b42061d2fa2dbd6910d0d295e024f2cff7bb44f3e2ecc0bc2fe71a1f31b0ecba", + "size": "361799" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "checksum": "SHA-256:b271013841e1e25ee55f241e8c50a56ed775d3b322844e1e3099231ba17f3868", + "size": "442657" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino2", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", + "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", + "size": "1260628" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", + "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", + "size": "47870" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", + "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", + "size": "399532" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", + "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", + "size": "384951" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", + "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", + "size": "361915" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", + "size": "442853" + } + ] + }, + { + "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", + "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", + "size": "1402283" + }, + { + "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", + "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", + "size": "2360705" + }, + { + "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", + "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", + "size": "2275101" + }, + { + "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", + "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", + "size": "1210796" + }, + { + "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", + "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", + "size": "1129654" + } + ] + }, + { + "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", + "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", + "size": "1319000" + }, + { + "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", + "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", + "size": "1641209" + }, + { + "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", + "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", + "size": "1235752" + }, + { + "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", + "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", + "size": "1393855" + }, + { + "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", + "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", + "size": "1341739" + } + ] + }, + { + "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", + "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", + "size": "1319020" + }, + { + "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", + "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", + "size": "1641514" + }, + { + "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", + "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", + "size": "1222523" + }, + { + "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", + "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", + "size": "1394293" + }, + { + "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", + "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", + "size": "1340444" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino7", + "systems": [ + { + "size": "1638575", + "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1580739", + "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1498970", + "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1701581", + "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1626347", + "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2016965", + "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino8", + "systems": [ + { + "size": "1714346", + "checksum": "SHA-256:86c4ea3086b4a1475fd8a1e1daf4585748be093dad4160e816b1bf2502501fb2", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1778371", + "checksum": "SHA-256:500cb112ee92092bbfce69649b90d0284752c5766f5aaf5c24dc754100788ef9", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1653652", + "checksum": "SHA-256:584b513ebbc4a645a68234d964ba56f042aaf7668d84ba47398a07a294516cc4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1845547", + "checksum": "SHA-256:455d4123146bf6b4b095de86d3340fd01e39bba9c70b2f0bb8e979ac4dddac39", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1781892", + "checksum": "SHA-256:5b44889984daefa966b8251edb98445169107ca32f974ca598d4c59e7d2c8901", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190397", + "checksum": "SHA-256:35a92f32f2762ef9405d2c684ec7bea2e70c01068f380251aecd9290f5bd5b24", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino9", + "systems": [ + { + "size": "1714657", + "checksum": "SHA-256:b814b16b52cef21eacf456cc7a89d7b5d4cb1385bfb8fb82963b7d8151824d93", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1778177", + "checksum": "SHA-256:f0443e771f5e3a779949498d3c9bfffd1dd27cdf0ad7136a2db5e80447a7175a", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1782958", + "checksum": "SHA-256:a22872918df899cb808f9286141d42438ae5611156c143cfb692069f52a2bddd", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190484", + "checksum": "SHA-256:f53f9a2b7f48a2ebc00ea9196bf559d15987d3779bcea4118ebec8925da5a1f6", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip" + }, + { + "size": "1655311", + "checksum": "SHA-256:6d47f97919f317bb6e5f1f903127604271d66d149f4625f29b8e0eb5f6c94c64", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1844365", + "checksum": "SHA-256:f624552b5ba56aa78d0c1a0e5d18cf2b5694db2ed44080968e22aa1af8f23c1b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino12", + "systems": [ + { + "size": "1778706", + "checksum": "SHA-256:86e15186a44b87c00f5ddd9c05849d2ec107783dd18a5ac984ce2a71e34084ed", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1855234", + "checksum": "SHA-256:5c6ca6189f61894ee77b29bc342f96cd14e4d7627fabeb2a8d2e2c534316cc38", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1844359", + "checksum": "SHA-256:4938742d3fec62941187666b8ded44d8f6c7a404920ff49d97fca484b9fd08af", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2276602", + "checksum": "SHA-256:1e23c0f1f809725db3e1f8d1e1f460a37fb7b2cf95e93c6e328e527501ab084c", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip" + }, + { + "size": "1723600", + "checksum": "SHA-256:b40d135449401870302bec073326d6f1df79da38d9dd21326314a5a90189a06e", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1918845", + "checksum": "SHA-256:bc48be10916f69f3a4b050f04babc14ee99dad1fc5da55ce606077991edab1d0", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino13", + "systems": [ + { + "size": "1820630", + "checksum": "SHA-256:47ae7a1a7961ac9daef001b011505b38777baac3c02dd7e673f62601df841427", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1896478", + "checksum": "SHA-256:4dd38b701019ad2fbb58173a3bc6c58effd39501a4a8266256dfe169e7516655", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1883854", + "checksum": "SHA-256:788093504b25d2b9b772657215254ba178ed37773364ce240de68281efe40bd5", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2334654", + "checksum": "SHA-256:2f3b87c644569f47780b16b071cd0929a64a8899ec769f4ca7480d20d5503365", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip" + }, + { + "size": "1767137", + "checksum": "SHA-256:0f3f6e5e03355ffbbc84c4b4750e63c9315b7638c56d63df1b7795968208e6ba", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1955043", + "checksum": "SHA-256:e4b2ffbc9a29be21c32c6921c2e7c0ee39c664c4faca28a5f839c1df32d3bd24", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "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", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + } + ] + }, + { + "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", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + } + ] + }, + { + "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", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "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", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "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", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "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", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + } + ] + }, + { + "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", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "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", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "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", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "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", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + } + ] + }, + { + "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", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "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", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "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", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "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", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "all", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + } + ] + }, + { + "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.9.0-arduino2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-osx.tar.bz2", + "size": "65137", + "checksum": "SHA-256:00e87178b81d5721f334d4b688267f19f36eed1d9710a912c9e44bb1a748f766" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-arm.tar.bz2", + "size": "198568", + "checksum": "SHA-256:b364a8fe1de697d7dd6c4135d341ddff6dbda7e33c707321c7dceab85dfc560b" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "size": "70996", + "checksum": "SHA-256:628e01772007e622dff6af82220c27bcdf1d0726ba886bd2b36807601f66e4e8" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "size": "71002", + "checksum": "SHA-256:7a6cec3d89c65119c52b6109cd92a9ec84bdf8a9d12083444d2c89e7ac16c84b" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-windows.tar.bz2", + "size": "394993", + "checksum": "SHA-256:8ec0e66acdc41941b6e25545f8c12e7eb7ba01a0bafae0b4ab4c99a70deb2ea5" + } + ] + }, + { + "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", + "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", + "size": "7071714" + } + ] + }, + { + "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", + "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", + "size": "16302148" + } + ] + }, + { + "name": "dfu-util", + "version": "0.8.0-stm32-arduino1", + "systems": [ + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", + "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", + "host": "i386-apple-darwin11", + "size": "68381", + "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-linux_arm.tar.bz2", + "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", + "host": "arm-linux-gnueabihf", + "size": "213760", + "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-stm32-linux_amd64.tar.bz2", + "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", + "host": "x86_64-linux-gnu", + "size": "68575", + "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-linux_386.tar.bz2", + "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", + "host": "i686-linux-gnu", + "size": "69097", + "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-windows_386.tar.bz2", + "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", + "host": "i686-mingw32", + "size": "159753", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" + } + ] + }, + { + "name": "arduinoSTM32load", + "version": "2.0.0", + "systems": [ + { + "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", + "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", + "host": "i386-apple-darwin11", + "size": "807514", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", + "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", + "host": "arm-linux-gnueabihf", + "size": "809480", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", + "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", + "host": "x86_64-linux-gnu", + "size": "818885", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", + "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", + "host": "i686-linux-gnu", + "size": "814283", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", + "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", + "host": "i686-mingw32", + "size": "786335", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" + } + ] + }, + { + "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": "fwupdater", + "version": "0.0.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux32.tar.bz2", + "checksum": "SHA-256:8c4e562a8e6fa3d916c4bf6bb24d7eec0df013d8cc45dff187e5c63086a92c11", + "size": "7334059" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux64.tar.bz2", + "checksum": "SHA-256:0e9132518acfe66e5a4e17ba4b6dd0c89dbd90cc0d9b4a54e007ac24d51fd36a", + "size": "7383853" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.6-windows.zip", + "checksum": "SHA-256:33a92661f43b8d025ca5f57be1116537ed153703067d9c86297619d58988feff", + "size": "7580663" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-osx.tar.bz2", + "checksum": "SHA-256:3584d7581ff2469bdfde9de6f57d87b2a0370de5c902e9df687b7322a5405018", + "size": "7368819" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "checksum": "SHA-256:276f027e552eb620064b09591c7a7c79927c93c017428436c81f71bad666803c", + "size": "7180391" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "checksum": "SHA-256:d6a2e72b4869c031b434380da6e6a8a4a6269f8ee6312a3d23e85ea133a37ae9", + "size": "7149332" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux32.tar.bz2", + "checksum": "SHA-256:05e26d5df253246cf68ba8a8f5f2de1032ac6f4d7af5310b8080ef6f54030fb4", + "size": "13077590" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux64.tar.bz2", + "checksum": "SHA-256:e8a36b7ae19060748b8b0540c9c0c9341d8d4c7a630441922a030223f767258d", + "size": "13134534" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.7-windows.zip", + "checksum": "SHA-256:e881dd8a4bbb35f7271157e8dd226c2e032ac1115106170b0aaf9c969817df86", + "size": "13337495" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-osx.tar.bz2", + "checksum": "SHA-256:647ad713d68a1531ba56c88e5b3db9516cc0072ca1d401de5142d85ffcfd931a", + "size": "13064291" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "checksum": "SHA-256:b6e09c07e816a35935585db07e07437023d44e66d1d2f05861708ea6ceff7629", + "size": "12929770" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "checksum": "SHA-256:620f81148b13f70cdecbe59bbcbf605c7e0aae85f9cbee8ec48202f6018f23ce", + "size": "12897349" + } + ] + }, + { + "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" + } + ] + } + ] + } + ] +} From 8bfdfc3054f57823d129ba818c411536d4e41ac6 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Fri, 9 Oct 2020 12:20:37 +0200 Subject: [PATCH 7/8] Reverted packageindex structs visibility --- arduino/cores/packageindex/index.go | 140 +- .../cores/packagemanager/install_uninstall.go | 81 +- .../packagemanager/install_uninstall_test.go | 146 +- .../packagemanager/testdata/installed.json | 1912 +++++++++++++++++ 4 files changed, 2060 insertions(+), 219 deletions(-) create mode 100644 arduino/cores/packagemanager/testdata/installed.json diff --git a/arduino/cores/packageindex/index.go b/arduino/cores/packageindex/index.go index 9f0912ee302..11ceb05bafd 100644 --- a/arduino/cores/packageindex/index.go +++ b/arduino/cores/packageindex/index.go @@ -29,24 +29,24 @@ import ( // Index represents Cores and Tools struct as seen from package_index.json file. type Index struct { - Packages []*IndexPackage `json:"packages"` + Packages []*indexPackage `json:"packages"` IsTrusted bool } -// IndexPackage represents a single entry from package_index.json file. -type IndexPackage struct { +// indexPackage represents a single entry from package_index.json file. +type indexPackage struct { Name string `json:"name,required"` Maintainer string `json:"maintainer,required"` WebsiteURL string `json:"websiteUrl"` URL string `json:"Url"` Email string `json:"email"` - Platforms []*IndexPlatformRelease `json:"platforms,required"` - Tools []*IndexToolRelease `json:"tools,required"` - Help IndexHelp `json:"help,omitempty"` + Platforms []*indexPlatformRelease `json:"platforms,required"` + Tools []*indexToolRelease `json:"tools,required"` + Help indexHelp `json:"help,omitempty"` } -// IndexPlatformRelease represents a single Core Platform from package_index.json file. -type IndexPlatformRelease struct { +// indexPlatformRelease represents a single Core Platform from package_index.json file. +type indexPlatformRelease struct { Name string `json:"name,required"` Architecture string `json:"architecture"` Version *semver.Version `json:"version,required"` @@ -55,27 +55,27 @@ type IndexPlatformRelease struct { ArchiveFileName string `json:"archiveFileName,required"` Checksum string `json:"checksum,required"` Size json.Number `json:"size,required"` - Boards []IndexBoard `json:"boards"` - Help IndexHelp `json:"help,omitempty"` - ToolDependencies []IndexToolDependency `json:"toolsDependencies,required"` + Boards []indexBoard `json:"boards"` + Help indexHelp `json:"help,omitempty"` + ToolDependencies []indexToolDependency `json:"toolsDependencies,required"` } -// IndexToolDependency represents a single dependency of a core from a tool. -type IndexToolDependency struct { +// indexToolDependency represents a single dependency of a core from a tool. +type indexToolDependency struct { Packager string `json:"packager,required"` Name string `json:"name,required"` Version *semver.RelaxedVersion `json:"version,required"` } -// IndexToolRelease represents a single Tool from package_index.json file. -type IndexToolRelease struct { +// indexToolRelease represents a single Tool from package_index.json file. +type indexToolRelease struct { Name string `json:"name,required"` Version *semver.RelaxedVersion `json:"version,required"` - Systems []IndexToolReleaseFlavour `json:"systems,required"` + Systems []indexToolReleaseFlavour `json:"systems,required"` } -// IndexToolReleaseFlavour represents a single tool flavor in the package_index.json file. -type IndexToolReleaseFlavour struct { +// indexToolReleaseFlavour represents a single tool flavor in the package_index.json file. +type indexToolReleaseFlavour struct { OS string `json:"host,required"` URL string `json:"url,required"` ArchiveFileName string `json:"archiveFileName,required"` @@ -83,19 +83,19 @@ type IndexToolReleaseFlavour struct { Checksum string `json:"checksum,required"` } -// IndexBoard represents a single Board as written in package_index.json file. -type IndexBoard struct { +// indexBoard represents a single Board as written in package_index.json file. +type indexBoard struct { Name string `json:"name"` - ID []IndexBoardID `json:"id,omitempty"` + 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 { +// 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 { +// indexHelp represents the help URL +type indexHelp struct { Online string `json:"online,omitempty"` } @@ -107,7 +107,83 @@ func (index Index) MergeIntoPackages(outPackages cores.Packages) { } } -func (inPackage IndexPackage) extractPackageIn(outPackages cores.Packages, trusted bool) { +// 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 outPackage.WebsiteURL = inPackage.WebsiteURL @@ -124,7 +200,7 @@ func (inPackage IndexPackage) extractPackageIn(outPackages cores.Packages, trust } } -func (inPlatformRelease IndexPlatformRelease) extractPlatformIn(outPackage *cores.Package, trusted bool) error { +func (inPlatformRelease indexPlatformRelease) extractPlatformIn(outPackage *cores.Package, trusted bool) error { outPlatform := outPackage.GetOrCreatePlatform(inPlatformRelease.Architecture) // FIXME: shall we use the Name and Category of the latest release? or maybe move Name and Category in PlatformRelease? outPlatform.Name = inPlatformRelease.Name @@ -156,7 +232,7 @@ func (inPlatformRelease IndexPlatformRelease) extractPlatformIn(outPackage *core return nil } -func (inPlatformRelease IndexPlatformRelease) extractDeps() (cores.ToolDependencies, error) { +func (inPlatformRelease indexPlatformRelease) extractDeps() (cores.ToolDependencies, error) { ret := make(cores.ToolDependencies, len(inPlatformRelease.ToolDependencies)) for i, dep := range inPlatformRelease.ToolDependencies { ret[i] = &cores.ToolDependency{ @@ -168,7 +244,7 @@ func (inPlatformRelease IndexPlatformRelease) extractDeps() (cores.ToolDependenc return ret, nil } -func (inPlatformRelease IndexPlatformRelease) extractBoardsManifest() []*cores.BoardManifest { +func (inPlatformRelease indexPlatformRelease) extractBoardsManifest() []*cores.BoardManifest { boards := make([]*cores.BoardManifest, len(inPlatformRelease.Boards)) for i, board := range inPlatformRelease.Boards { manifest := &cores.BoardManifest{Name: board.Name} @@ -182,15 +258,15 @@ func (inPlatformRelease IndexPlatformRelease) extractBoardsManifest() []*cores.B return boards } -func (inToolRelease IndexToolRelease) extractToolIn(outPackage *cores.Package) { +func (inToolRelease indexToolRelease) extractToolIn(outPackage *cores.Package) { outTool := outPackage.GetOrCreateTool(inToolRelease.Name) outToolRelease := outTool.GetOrCreateRelease(inToolRelease.Version) outToolRelease.Flavors = inToolRelease.extractFlavours() } -// extractFlavours extracts a map[OS]Flavor object from an IndexToolRelease entry. -func (inToolRelease IndexToolRelease) extractFlavours() []*cores.Flavor { +// extractFlavours extracts a map[OS]Flavor object from an indexToolRelease entry. +func (inToolRelease indexToolRelease) extractFlavours() []*cores.Flavor { ret := make([]*cores.Flavor, len(inToolRelease.Systems)) for i, flavour := range inToolRelease.Systems { size, _ := flavour.Size.Int64() diff --git a/arduino/cores/packagemanager/install_uninstall.go b/arduino/cores/packagemanager/install_uninstall.go index 5f8d47d4873..63c548c958e 100644 --- a/arduino/cores/packagemanager/install_uninstall.go +++ b/arduino/cores/packagemanager/install_uninstall.go @@ -19,7 +19,6 @@ import ( "encoding/json" "fmt" "runtime" - "strconv" "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/cores/packageindex" @@ -48,86 +47,8 @@ func (pm *PackageManager) InstallPlatform(platformRelease *cores.PlatformRelease return nil } -func platformReleaseToIndex(pr *cores.PlatformRelease) packageindex.IndexPlatformRelease { - boards := []packageindex.IndexBoard{} - for _, manifest := range pr.BoardsManifest { - board := packageindex.IndexBoard{ - Name: manifest.Name, - } - for _, id := range manifest.ID { - if id.USB != "" { - board.ID = []packageindex.IndexBoardID{{USB: id.USB}} - } - } - boards = append(boards, board) - } - - tools := []packageindex.IndexToolDependency{} - for _, t := range pr.Dependencies { - tools = append(tools, packageindex.IndexToolDependency{ - Packager: t.ToolPackager, - Name: t.ToolName, - Version: t.ToolVersion, - }) - } - return packageindex.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(strconv.FormatInt(pr.Resource.Size, 10)), - Boards: boards, - Help: packageindex.IndexHelp{Online: pr.Help.Online}, - ToolDependencies: tools, - } -} - -func packageToolsToIndex(tools map[string]*cores.Tool) []*packageindex.IndexToolRelease { - ret := []*packageindex.IndexToolRelease{} - for name, tool := range tools { - for _, toolRelease := range tool.Releases { - flavours := []packageindex.IndexToolReleaseFlavour{} - for _, flavour := range toolRelease.Flavors { - flavours = append(flavours, packageindex.IndexToolReleaseFlavour{ - OS: flavour.OS, - URL: flavour.Resource.URL, - ArchiveFileName: flavour.Resource.ArchiveFileName, - Size: json.Number(strconv.FormatInt(flavour.Resource.Size, 10)), - Checksum: flavour.Resource.Checksum, - }) - } - ret = append(ret, &packageindex.IndexToolRelease{ - Name: name, - Version: toolRelease.Version, - Systems: flavours, - }) - } - } - return ret -} - func (pm *PackageManager) cacheInstalledJSON(platformRelease *cores.PlatformRelease) error { - indexPlatformRelease := platformReleaseToIndex(platformRelease) - indexPackageToolReleases := packageToolsToIndex(platformRelease.Platform.Package.Tools) - - index := packageindex.Index{ - IsTrusted: platformRelease.IsTrusted, - Packages: []*packageindex.IndexPackage{ - { - Name: platformRelease.Platform.Package.Name, - Maintainer: platformRelease.Platform.Package.Maintainer, - WebsiteURL: platformRelease.Platform.Package.WebsiteURL, - URL: platformRelease.Platform.Package.URL, - Email: platformRelease.Platform.Package.Email, - Platforms: []*packageindex.IndexPlatformRelease{&indexPlatformRelease}, - Tools: indexPackageToolReleases, - Help: packageindex.IndexHelp{Online: platformRelease.Platform.Package.Help.Online}, - }, - }, - } + index := packageindex.IndexFromPlatformRelease(platformRelease) platformJSON, err := json.MarshalIndent(index, "", " ") if err != nil { return err diff --git a/arduino/cores/packagemanager/install_uninstall_test.go b/arduino/cores/packagemanager/install_uninstall_test.go index 97b13ecdf82..b03f9ef2523 100644 --- a/arduino/cores/packagemanager/install_uninstall_test.go +++ b/arduino/cores/packagemanager/install_uninstall_test.go @@ -60,111 +60,43 @@ func TestInstallPlatform(t *testing.T) { err = json.Unmarshal(bt, index) require.Nil(t, err) - require.Equal(t, 1, len(index.Packages)) - indexPackage := index.Packages[0] - require.Equal(t, "arduino", indexPackage.Name) - require.Equal(t, "Arduino", indexPackage.Maintainer) - require.Equal(t, "http://www.arduino.cc/", indexPackage.WebsiteURL) - require.Equal(t, "packages@arduino.cc", indexPackage.Email) - require.Equal(t, 1, len(indexPackage.Platforms)) - require.Equal(t, "http://www.arduino.cc/en/Reference/HomePage", indexPackage.Help.Online) - - indexPackageTools := indexPackage.Tools - require.Equal(t, 44, len(indexPackageTools)) - // Just check one to verifies it's actually correct - require.Contains(t, indexPackageTools, &packageindex.IndexToolRelease{ - Name: "arm-none-eabi-gcc", - Version: semver.ParseRelaxed("4.8.3-2014q1"), - Systems: []packageindex.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", - }, - { - OS: "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", - }, - { - OS: "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", - }, - { - OS: "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", - }, - }}) - - indexPlatformRelease := indexPackage.Platforms[0] - require.Equal(t, "Arduino AVR Boards", indexPlatformRelease.Name) - require.Equal(t, "avr", indexPlatformRelease.Architecture) - require.Equal(t, "1.6.23", indexPlatformRelease.Version.String()) - require.Equal(t, "Arduino", indexPlatformRelease.Category) - require.Equal(t, "http://www.arduino.cc/en/Reference/HomePage", indexPlatformRelease.Help.Online) - require.Equal(t, "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", indexPlatformRelease.URL) - require.Equal(t, "avr-1.6.23.tar.bz2", indexPlatformRelease.ArchiveFileName) - require.Equal(t, "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", indexPlatformRelease.Checksum) - require.Equal(t, json.Number("5001988"), indexPlatformRelease.Size) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Yún"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino/Genuino Uno"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Uno WiFi"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Diecimila"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Nano"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino/Genuino Mega"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino MegaADK"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Leonardo"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Leonardo Ethernet"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino/Genuino Micro"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Esplora"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Mini"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Ethernet"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Fio"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino BT"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino LilyPadUSB"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Lilypad"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Pro"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino ATMegaNG"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Robot Control"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Robot Motor"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Gemma"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Adafruit Circuit Playground"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Yún Mini"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Arduino Industrial 101"}) - require.Contains(t, indexPlatformRelease.Boards, packageindex.IndexBoard{Name: "Linino One"}) - require.Contains(t, indexPlatformRelease.ToolDependencies, - packageindex.IndexToolDependency{ - Packager: "arduino", - Name: "avr-gcc", - Version: semver.ParseRelaxed("5.4.0-atmel3.6.1-arduino2"), - }) - require.Contains(t, indexPlatformRelease.ToolDependencies, - packageindex.IndexToolDependency{ - Packager: "arduino", - Name: "avrdude", - Version: semver.ParseRelaxed("6.3.0-arduino14"), - }) - require.Contains(t, indexPlatformRelease.ToolDependencies, - packageindex.IndexToolDependency{ - Packager: "arduino", - Name: "arduinoOTA", - Version: semver.ParseRelaxed("1.2.1"), - }) + expectedJSON := paths.New("testdata", "installed.json") + expectedBt, err := expectedJSON.ReadFile() + require.Nil(t, err) + + expectedIndex := &packageindex.Index{} + err = json.Unmarshal(expectedBt, expectedIndex) + require.Nil(t, err) + + require.Equal(t, expectedIndex.IsTrusted, index.IsTrusted) + require.Equal(t, len(expectedIndex.Packages), len(index.Packages)) + + for i := range expectedIndex.Packages { + expectedPackage := expectedIndex.Packages[i] + indexPackage := index.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) + } + } } diff --git a/arduino/cores/packagemanager/testdata/installed.json b/arduino/cores/packagemanager/testdata/installed.json new file mode 100644 index 00000000000..2b3b098455e --- /dev/null +++ b/arduino/cores/packagemanager/testdata/installed.json @@ -0,0 +1,1912 @@ +{ + "packages": [ + { + "name": "arduino", + "maintainer": "Arduino", + "websiteUrl": "http://www.arduino.cc/", + "Url": "", + "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": false +} From ad59b73154863c579c10eee909247db8b3930896 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Tue, 13 Oct 2020 15:22:44 +0200 Subject: [PATCH 8/8] Reworked tests --- arduino/cores/packageindex/index_test.go | 316 + .../packagemanager/install_uninstall_test.go | 102 - .../testdata/data_dir_1/package_index.json | 5769 ----------------- commands/board/listall_test.go | 197 - test/conftest.py | 2 +- test/test_board.py | 39 +- test/test_core.py | 21 + .../testdata/installed.json | 4 +- 8 files changed, 372 insertions(+), 6078 deletions(-) delete mode 100644 arduino/cores/packagemanager/install_uninstall_test.go delete mode 100644 arduino/cores/packagemanager/testdata/data_dir_1/package_index.json delete mode 100644 commands/board/listall_test.go rename {arduino/cores/packagemanager => test}/testdata/installed.json (99%) diff --git a/arduino/cores/packageindex/index_test.go b/arduino/cores/packageindex/index_test.go index e0b1b2e4d19..c39c5304d27 100644 --- a/arduino/cores/packageindex/index_test.go +++ b/arduino/cores/packageindex/index_test.go @@ -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) + } + } +} diff --git a/arduino/cores/packagemanager/install_uninstall_test.go b/arduino/cores/packagemanager/install_uninstall_test.go deleted file mode 100644 index b03f9ef2523..00000000000 --- a/arduino/cores/packagemanager/install_uninstall_test.go +++ /dev/null @@ -1,102 +0,0 @@ -package packagemanager_test - -import ( - "encoding/json" - "testing" - - "github.com/arduino/arduino-cli/arduino/cores/packageindex" - "github.com/arduino/arduino-cli/arduino/cores/packagemanager" - "github.com/arduino/arduino-cli/cli/output" - "github.com/arduino/arduino-cli/commands" - "github.com/arduino/go-paths-helper" - "github.com/stretchr/testify/require" - semver "go.bug.st/relaxed-semver" -) - -func TestInstallPlatform(t *testing.T) { - dataDir := paths.New("testdata", "data_dir_1") - packageDir := paths.TempDir().Join("test", "packages") - downloadDir := paths.TempDir().Join("test", "staging") - tmpDir := paths.TempDir().Join("test", "tmp") - packageDir.MkdirAll() - downloadDir.MkdirAll() - tmpDir.MkdirAll() - defer paths.TempDir().Join("test").RemoveAll() - - pm := packagemanager.NewPackageManager(dataDir, packageDir, downloadDir, tmpDir) - pm.LoadPackageIndexFromFile(dataDir.Join("package_index.json")) - - platformRelease, tools, err := pm.FindPlatformReleaseDependencies(&packagemanager.PlatformReference{ - Package: "arduino", - PlatformArchitecture: "avr", - PlatformVersion: semver.MustParse("1.6.23"), - }) - require.NotNil(t, platformRelease) - require.NotNil(t, tools) - require.Nil(t, err) - - downloaderConfig, err := commands.GetDownloaderConfig() - require.NotNil(t, downloaderConfig) - require.Nil(t, err) - downloader, err := pm.DownloadPlatformRelease(platformRelease, downloaderConfig) - require.NotNil(t, downloader) - require.Nil(t, err) - err = commands.Download(downloader, platformRelease.String(), output.NewNullDownloadProgressCB()) - require.Nil(t, err) - - err = pm.InstallPlatform(platformRelease) - require.Nil(t, err) - - destDir := packageDir.Join("arduino", "hardware", "avr", "1.6.23") - require.True(t, destDir.IsDir()) - - installedJSON := destDir.Join("installed.json") - require.True(t, installedJSON.Exist()) - - bt, err := installedJSON.ReadFile() - require.Nil(t, err) - - index := &packageindex.Index{} - err = json.Unmarshal(bt, index) - require.Nil(t, err) - - expectedJSON := paths.New("testdata", "installed.json") - expectedBt, err := expectedJSON.ReadFile() - require.Nil(t, err) - - expectedIndex := &packageindex.Index{} - err = json.Unmarshal(expectedBt, expectedIndex) - require.Nil(t, err) - - require.Equal(t, expectedIndex.IsTrusted, index.IsTrusted) - require.Equal(t, len(expectedIndex.Packages), len(index.Packages)) - - for i := range expectedIndex.Packages { - expectedPackage := expectedIndex.Packages[i] - indexPackage := index.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) - } - } -} diff --git a/arduino/cores/packagemanager/testdata/data_dir_1/package_index.json b/arduino/cores/packagemanager/testdata/data_dir_1/package_index.json deleted file mode 100644 index 30b5b05feee..00000000000 --- a/arduino/cores/packagemanager/testdata/data_dir_1/package_index.json +++ /dev/null @@ -1,5769 +0,0 @@ -{ - "packages": [ - { - "name": "arduino", - "maintainer": "Arduino", - "websiteURL": "http://www.arduino.cc/", - "email": "packages@arduino.cc", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "platforms": [ - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/avr-1.6.2.tar.bz2", - "archiveFileName": "avr-1.6.2.tar.bz2", - "checksum": "SHA-256:2909a4c6dd6d7497e7e1b5fcaa2f66a100271417510f3a68593b65af8ff78c1c", - "size": "4877442", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino 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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino2" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.3", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.3.tar.bz2", - "archiveFileName": "avr-1.6.3.tar.bz2", - "checksum": "SHA-256:c30033ba70cbb2d46ee0901a331b0f83be082f9110eda0464b624fdbb51b3c7b", - "size": "4876816", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino 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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino3" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino3" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.4", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.4.tar.bz2", - "archiveFileName": "avr-1.6.4.tar.bz2", - "checksum": "SHA-256:8a243410aeded6dbcbc4b134ba10be5c2562d137bfcf3ac97abdc5844933b363", - "size": "4780884", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino 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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.5", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.5.tar.bz2", - "archiveFileName": "avr-1.6.5.tar.bz2", - "checksum": "SHA-256:c72d890aa605add677634c6b25ebc3b2ed9e44c38805b95c47eab17a1ca72db6", - "size": "4876957", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino 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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.6", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.6.tar.bz2", - "archiveFileName": "avr-1.6.6.tar.bz2", - "checksum": "SHA-256:08ad5db4978ebea22344edc5d77dce0923d8a644da7a14dc8072e883c76058d8", - "size": "4876916", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino 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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.7", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.7.tar.bz2", - "archiveFileName": "avr-1.6.7.tar.bz2", - "checksum": "SHA-256:e112992c59c0d826db9a63967679854a96b3c7b970f788a03834e211f6390caa", - "size": "4904283", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino 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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.8", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.8.tar.bz2", - "archiveFileName": "avr-1.6.8.tar.bz2", - "checksum": "SHA-256:0e0775347baf0d93ef344bcd851e7d8d0af2bda7916c119fa3a4ff9b984c575b", - "size": "4885536", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.9", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.9.tar.bz2", - "archiveFileName": "avr-1.6.9.tar.bz2", - "checksum": "SHA-256:eb8bc661162bc689b3ed02c4d24f6ff964e91ace890b7d3db2e316c84ba235f0", - "size": "4890702", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.10", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.10.tar.bz2", - "archiveFileName": "avr-1.6.10.tar.bz2", - "checksum": "SHA-256:92cad999335198f875bdaec5de0169991bee19e0058c623d2cdd0835bb26eeaa", - "size": "4991331", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.11", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.11.tar.bz2", - "archiveFileName": "avr-1.6.11.tar.bz2", - "checksum": "SHA-256:5292d3559de74eb990ff570df43887b44d4e3c6b80ab4ab0f945e94dd68d8210", - "size": "4991634", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.12", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.12.tar.bz2", - "archiveFileName": "avr-1.6.12.tar.bz2", - "checksum": "SHA-256:4a296a3304a51d820e680e2022fb9b9f5706144abf1e5d60c7876a0f9fc7e6d9", - "size": "4993586", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino2" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.13", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.13.tar.bz2", - "archiveFileName": "avr-1.6.13.tar.bz2", - "checksum": "SHA-256:617f458dd3507072b9a6f9fdc78888c66aa420a2fb081c4c1556598a2d69d643", - "size": "4993644", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.14", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.14.tar.bz2", - "archiveFileName": "avr-1.6.14.tar.bz2", - "checksum": "SHA-256:a5f7d66c83e3d4722f4c8dab42bdbcf5af98c611ffca1802ef3d1957b894bd92", - "size": "4993455", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino6" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.15", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.15.tar.bz2", - "archiveFileName": "avr-1.6.15.tar.bz2", - "checksum": "SHA-256:c222efcabbdf6fa63ba3d64afb8d149f83fa73693c413aa05a2ccd9f986ed2fa", - "size": "4993959", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino6" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.16", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.16.tar.bz2", - "archiveFileName": "avr-1.6.16.tar.bz2", - "checksum": "SHA-256:2e2e7a7b8ec321b62c54237e8cb03384fc434f3692c47a524e23e61df868ed9a", - "size": "5011829", - "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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.17", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.17.tar.bz2", - "archiveFileName": "avr-1.6.17.tar.bz2", - "checksum": "SHA-256:ecf63bb02d8f647f720be64b4bf235e0ca37b3180b90d816cbff1886f6744833", - "size": "5011912", - "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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.18", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.18.tar.bz2", - "archiveFileName": "avr-1.6.18.tar.bz2", - "checksum": "SHA-256:7c56e381602b779e8e81ec46deb5c8b82e1c84c134c3c1b672d0b43f5e45ee13", - "size": "4897659", - "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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.19", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.19.tar.bz2", - "archiveFileName": "avr-1.6.19.tar.bz2", - "checksum": "SHA-256:1c544db39f36a8468f585d6338343718c2892526227fa04805339084dd0ab4ff", - "size": "4959420", - "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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.20", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.20.tar.bz2", - "archiveFileName": "avr-1.6.20.tar.bz2", - "checksum": "SHA-256:61f3d59a2ab2e9191230e91e79ee91c05f32b32c33129d34d76ef87e56d257e1", - "size": "4897949", - "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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.21", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.21.tar.bz2", - "archiveFileName": "avr-1.6.21.tar.bz2", - "checksum": "SHA-256:7e5440b0902733f82956c89e554106f25c2ad540ac36286ccba3ceac785bcbba", - "size": "4897460", - "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"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.22", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.22.tar.bz2", - "archiveFileName": "avr-1.6.22.tar.bz2", - "checksum": "SHA-256:e6399b2a687dd8485cbbfcbfbbd4f8e2e15fe535bbcfd1d81bf93d01e31f7d76", - "size": "4907422", - "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"} - ], - "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" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "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"} - ], - "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" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.23.tar.bz2", - "archiveFileName": "megaavr-1.6.23.tar.bz2", - "checksum": "SHA-256:fd19ed3a52f6de289f46c9b5f65e19bc5c3df95358f18693cfaf25bdfb86f43c", - "size": "717681", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "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" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.2.tar.bz2", - "archiveFileName": "sam-1.6.2.tar.bz2", - "checksum": "SHA-256:2d3c8a90bc214947cff1b816d0c2706441398efc78af7984d5250f2e50eddd5f", - "size": "16174730", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.3", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.3.tar.bz2", - "archiveFileName": "sam-1.6.3.tar.bz2", - "checksum": "SHA-256:0a6e1d5542790e38ba454c796aabbd0e48b07635a5b4d8adc044a4eba959ca27", - "size": "16174017", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.4", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.4.tar.bz2", - "archiveFileName": "sam-1.6.4.tar.bz2", - "checksum": "SHA-256:e0dc94d8ad0756b79838e99ad7409b08b07e40ed667ebe86eae11644ef7bec0d", - "size": "16174992", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.5", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.5.tar.bz2", - "archiveFileName": "sam-1.6.5.tar.bz2", - "checksum": "SHA-256:1bde19e3af3887dbc3afda46754e1136fb5a3bc535b8de9862ad7753d93902b7", - "size": "16529130", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.6", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.6.tar.bz2", - "archiveFileName": "sam-1.6.6.tar.bz2", - "checksum": "SHA-256:7694b698bb24cd87d7d0b2b4caa09dc6039591868e735b0bf385299aea24c3e4", - "size": "16528101", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.7.tar.bz2", - "archiveFileName": "sam-1.6.7.tar.bz2", - "checksum": "SHA-256:62d8bde9bf92502aeeaaf5031ed841e4e4c241fe66fc8cb23625349e6129a1ea", - "size": "16473479", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.8", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.8.tar.bz2", - "archiveFileName": "sam-1.6.8.tar.bz2", - "checksum": "SHA-256:cc95b49b7dfe4138687a559d963db09b9b85352051173d93ad8c272aa23c2337", - "size": "16471779", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.9", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.9.tar.bz2", - "archiveFileName": "sam-1.6.9.tar.bz2", - "checksum": "SHA-256:a5eaf60b5845599c24229456d6f5cd2254a275c8b34cac9d5330e4cfab6b0aa7", - "size": "16473503", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.10", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.10.tar.bz2", - "archiveFileName": "sam-1.6.10.tar.bz2", - "checksum": "SHA-256:c53afc342c4017a4f67b96826ace41653f795f4a82e648eb9a190ad995388906", - "size": "16474738", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", - "archiveFileName": "samd-1.6.0.tar.bz2", - "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", - "size": "177135", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.11", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.11.tar.bz2", - "archiveFileName": "sam-1.6.11.tar.bz2", - "checksum": "SHA-256:fb8e275f39622a5574a11cef85be3ed36a6995c38a19b20de6fb48e9c7f88b70", - "size": "16474757", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", - "archiveFileName": "samd-1.6.0.tar.bz2", - "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", - "size": "177135", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.1.tar.bz2", - "archiveFileName": "samd-1.6.1.tar.bz2", - "checksum": "SHA-256:dddd0f906a7c470a1dc7ef5b024e34c24b915020fabb5903b7313246955514a2", - "size": "178354", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.2.tar.bz2", - "archiveFileName": "samd-1.6.2.tar.bz2", - "checksum": "SHA-256:fad804d8fbd2f2b5f0e876708f953b9afd28513d794c6a973825582f1d6bacde", - "size": "179578", - "boards": [ - { - "name": "Arduino/Genuino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.3", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.3.tar.bz2", - "archiveFileName": "samd-1.6.3.tar.bz2", - "checksum": "SHA-256:f3fb17d593cdf5986c201fe3639d71cc1149b43e996a3afa5533c3b4b0c5a532", - "size": "978163", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.4", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.4.tar.bz2", - "archiveFileName": "samd-1.6.4.tar.bz2", - "checksum": "SHA-256:02c788e0ae786cabf31c5c27b64d60906d4038f56ee2df689022e32525be7b70", - "size": "977481", - "boards": [ - { "name": "Arduino/Genuino Zero" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.5", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.5.tar.bz2", - "archiveFileName": "samd-1.6.5.tar.bz2", - "checksum": "SHA-256:3f3d70b4081b11ab07fc209702604f2ac3a52bb193b7f0d9fa5bb31071b2b34c", - "size": "979548", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.6", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.6.tar.bz2", - "archiveFileName": "samd-1.6.6.tar.bz2", - "checksum": "SHA-256:08e97127acf41ac28c195803be1d22a5cbf720d4cff58db9458af9255d6ee7b3", - "size": "997331", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.7.tar.bz2", - "archiveFileName": "samd-1.6.7.tar.bz2", - "checksum": "SHA-256:7342d0d127b1facdfbe8801759368bb0e6939b8e9a7db86eefb23135e3c701a8", - "size": "841503", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.8", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.8.tar.bz2", - "archiveFileName": "samd-1.6.8.tar.bz2", - "checksum": "SHA-256:05bff70561e5f10e86d1d890f647614aac989c4b2c384fc1b568e7d8c96b8267", - "size": "841801", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.9", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.9.tar.bz2", - "archiveFileName": "samd-1.6.9.tar.bz2", - "checksum": "SHA-256:404f64575182e3a21fbf38a729d56d50782754c1d0c5bfe17d4c9155dd84d3d2", - "size": "855221", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.10", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.10.tar.bz2", - "archiveFileName": "samd-1.6.10.tar.bz2", - "checksum": "SHA-256:b2b47e12ae032e7929d33b13b42033fca15de7ef0d5ea90dab68ebf65e6b4f6b", - "size": "2765368", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.11", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.11.tar.bz2", - "archiveFileName": "samd-1.6.11.tar.bz2", - "checksum": "SHA-256:3ace3a7850e9052f51b819dbf5c09ea487f8bbbdf3c28d5d4709137b18f12bb7", - "size": "2764312", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0" }, - { "name": "Arduino M0 Pro" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.12", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.12.tar.bz2", - "archiveFileName": "samd-1.6.12.tar.bz2", - "checksum": "SHA-256:18803709c1024c2fb122430949df06ee316d7971552ef81c430cba14be673f24", - "size": "2754767", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruti Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino5-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.13", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.13.tar.bz2", - "archiveFileName": "samd-1.6.13.tar.bz2", - "checksum": "SHA-256:217f4e0f3c5f2c1a0d74d1b78559aa6f598aeae33ad7fd06ec79eb7294552db2", - "size": "2777384", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.14", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.14.tar.bz2", - "archiveFileName": "samd-1.6.14.tar.bz2", - "checksum": "SHA-256:bb5f9c69530906cba51641a94e3e195deafafe9d6673c90eda544535f02bb7bf", - "size": "2746416", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.15", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.15.tar.bz2", - "archiveFileName": "samd-1.6.15.tar.bz2", - "checksum": "SHA-256:938b0528dddb66ebb3564dc0b6d01206498d2a1abea90a269ce59ee9dae2753d", - "size": "2795099", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.16", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.16.tar.bz2", - "archiveFileName": "samd-1.6.16.tar.bz2", - "checksum": "SHA-256:d44e32b07642f6dc5e480068f52966113baa912f3b5fa6d39cfa4112c4a25e53", - "size": "2796651", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.17", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.17.tar.bz2", - "archiveFileName": "samd-1.6.17.tar.bz2", - "checksum": "SHA-256:2c691c23cdf9974526ff33f19b7b060b5c03b7cb4708f61f8eb2629666c3c278", - "size": "2849852", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.18", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.18.tar.bz2", - "archiveFileName": "samd-1.6.18.tar.bz2", - "checksum": "SHA-256:adbc464106abcfb031aeaa8c73ce09340f5aec8805e83bbe6f7a7da974321fa7", - "size": "2808624", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.19", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.19.tar.bz2", - "archiveFileName": "samd-1.6.19.tar.bz2", - "checksum": "SHA-256:959c10af4413455edf914ad426e18d7f2fbf0a38ce5e9d44232cc95b3d0a8a02", - "size": "2844050", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.22", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.22.tar.bz2", - "archiveFileName": "samd-beta-1.6.22.tar.bz2", - "checksum": "SHA-256:f9be59deae12889c79900774b6b236da0aa3b8ecc615f91d1cf061b3c63c4531", - "size": "2880064", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.23.tar.gz", - "archiveFileName": "samd-beta-1.6.23.tar.gz", - "checksum": "SHA-256:5ff9b77ef8044613604d5e915e8e2e69362241b489c1c2bf06f008a5150e1162", - "size": "3634633", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.24", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.24.tar.bz2", - "archiveFileName": "samd-beta-1.6.24.tar.bz2", - "checksum": "SHA-256:922c42decf1088aaaef473f26b9630ebda63cf2ec4db52a39c3eadef45cb7e4a", - "size": "2885903", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino STM32F4 Boards", - "architecture": "stm32f4", - "version": "1.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_stm32f4_1.0.0.tar.bz2", - "archiveFileName": "package_arduino_stm32f4_1.0.0.tar.bz2", - "size": "20499005", - "checksum": "SHA-256:79a67167bff45c34a4addf29a4c84904d0dc114c19220bfd204a65e51688b3d1", - "boards": [ - { - "name": "Arduino Star OTTO" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "version": "0.8.0-stm32-arduino1", - "name": "dfu-util" - } - ] - }, - { - "name": "Arduino STM32F4 Boards", - "architecture": "stm32f4", - "version": "1.0.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_stm32f4_1.0.1.tar.bz2", - "archiveFileName": "package_arduino_stm32f4_1.0.1.tar.bz2", - "checksum": "SHA-256:e66dd40f8b9faeb6c7400b48745c023aacb65a6d5c700395edc9dd89d2d150c0", - "size": "20495225", - "boards": [ - { - "name": "Arduino Star OTTO" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "dfu-util", - "version": "0.9.0-arduino1" - }, - { - "packager": "arduino", - "name": "arduinoSTM32load", - "version": "2.0.0" - } - ] - }, - { - "name": "Arduino NRF52 Boards", - "architecture": "nrf52", - "version": "1.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.0.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.0.tar.bz2", - "checksum": "SHA-256:d95cf5a1a3794512fd428f00f71c1e334d2fcf6e261bb22e4bbaa64143205de6", - "size": "2438905", - "boards": [ - { - "name": "Arduino Primo" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - }, - { - "name": "Arduino nRF52 Boards", - "architecture": "nrf52", - "version": "1.0.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.1.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.1.tar.bz2", - "checksum": "SHA-256:f6c5b66a1257188a2e6cab3df8ec373777f62c3abb29f7196d571d221a5c75ff", - "size": "2262233", - "boards": [ - { - "name": "Arduino Primo" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - }, - { - "name": "Arduino nRF52 Boards", - "architecture": "nrf52", - "version": "1.0.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.2.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.2.tar.bz2", - "checksum": "SHA-256:3a96c9476e567b7bca6f0201fcd6a4dbc97bddfbce70bc2d96f5f33a59265163", - "size": "2308695", - "boards": [ - { "name": "Arduino Primo" }, - { "name": "Arduino Primo Core" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - } - ], - "tools": [ - { - "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", - "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", - "size": "44423906" - }, - { - "host": "i686-mingw32", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", - "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", - "size": "84537449" - }, - { - "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", - "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", - "size": "52518522" - }, - { - "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", - "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", - "size": "51395093" - }, - { - "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", - "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", - "size": "51029223" - } - ] - }, - { - "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", - "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", - "size": "44423906" - }, - { - "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", - "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", - "size": "99558726" - }, - { - "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", - "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", - "size": "131761924" - }, - { - "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", - "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", - "size": "104550003" - }, - { - "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", - "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", - "size": "99857645" - }, - { - "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", - "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", - "size": "97427309" - } - ] - }, - { - "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", - "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", - "size": "147359" - }, - { - "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", - "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", - "size": "26179" - }, - { - "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", - "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", - "size": "265647" - }, - { - "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", - "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", - "size": "39475" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino2", - "systems": [ - { - "size": "24443285", - "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27152002", - "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "25876628", - "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46046691", - "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino2", - "systems": [ - { - "size": "264965", - "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "292541", - "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "283209", - "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241618", - "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino3", - "systems": [ - { - "size": "24447175", - "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" - }, - { - "size": "30556996", - "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "28768022", - "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46046917", - "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino3", - "systems": [ - { - "size": "264682", - "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" - }, - { - "size": "748634", - "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "495482", - "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241619", - "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino5", - "systems": [ - { - "size": "24403768", - "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "24437400", - "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27093036", - "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "25882375", - "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46044779", - "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino5", - "systems": [ - { - "size": "267095", - "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "264894", - "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" - }, - { - "size": "292629", - "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "283121", - "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241634", - "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino", - "systems": [ - { - "size": "27046965", - "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27400001", - "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "29904544", - "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "29077606", - "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "43847566", - "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2", - "systems": [ - { - "size": "27400889", - "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "27048070", - "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "43847945", - "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" - }, - { - "size": "29292729", - "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "29882960", - "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2", - "systems": [ - { - "size": "27764772", - "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "28574644", - "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "44386446", - "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" - }, - { - "size": "29723974", - "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "30374404", - "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2", - "systems": [ - { - "size": "31449123", - "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "33141295", - "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", - "host": "aarch64-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "31894498", - "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "45923772", - "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" - }, - { - "size": "33022916", - "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "33522375", - "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino2", - "systems": [ - { - "size": "643484", - "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "653968", - "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "745081", - "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "731802", - "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "608496", - "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino6", - "systems": [ - { - "size": "644600", - "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "696273", - "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" - }, - { - "size": "746653", - "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "733127", - "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645859", - "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino8", - "systems": [ - { - "size": "644550", - "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "697268", - "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" - }, - { - "size": "711544", - "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "701718", - "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645996", - "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino9", - "systems": [ - { - "size": "644550", - "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "697309", - "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" - }, - { - "size": "711229", - "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "701590", - "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645974", - "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino14", - "systems": [ - { - "size": "219616", - "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "229688", - "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", - "host": "aarch64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "256917", - "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" - }, - { - "size": "253366", - "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "244293", - "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "328363", - "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.0.0", - "systems": [ - { - "size": "2044124", - "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" - }, - { - "size": "2178772", - "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" - }, - { - "size": "1961623", - "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" - }, - { - "size": "2180617", - "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" - }, - { - "size": "2247970", - "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.0.0-windows.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.1.1", - "systems": [ - { - "size": "2045036", - "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" - }, - { - "size": "2178288", - "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" - }, - { - "size": "1962115", - "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" - }, - { - "size": "2181376", - "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" - }, - { - "size": "2248431", - "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.2.0", - "systems": [ - { - "size": "1839854", - "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" - }, - { - "size": "1974030", - "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" - }, - { - "size": "1787138", - "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" - }, - { - "size": "1992476", - "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" - }, - { - "size": "2003964", - "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.2.1", - "systems": [ - { - "size": "2133779", - "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" - }, - { - "size": "2257689", - "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" - }, - { - "size": "2093132", - "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" - }, - { - "size": "2093132", - "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", - "host": "aarch64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" - }, - { - "size": "2244088", - "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" - }, - { - "size": "2237511", - "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" - } - ] - }, - { - "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", - "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", - "size": "199550" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", - "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", - "size": "222283" - }, - { - "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", - "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", - "size": "64120" - }, - { - "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", - "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", - "size": "30431" - }, - { - "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", - "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", - "size": "29783" - } - ] - }, - { - "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", - "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", - "size": "222517" - }, - { - "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", - "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", - "size": "64538" - }, - { - "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", - "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", - "size": "30649" - }, - { - "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", - "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", - "size": "30072" - } - ] - }, - { - "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", - "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", - "size": "201341" - }, - { - "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", - "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", - "size": "222918" - }, - { - "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", - "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", - "size": "64587" - }, - { - "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", - "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", - "size": "30869" - }, - { - "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", - "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", - "size": "30320" - } - ] - }, - { - "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", - "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", - "size": "243066" - }, - { - "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", - "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", - "size": "63822" - }, - { - "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", - "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", - "size": "31373" - }, - { - "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", - "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", - "size": "31086" - }, - { - "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", - "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", - "size": "27382" - } - ] - }, - { - "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", - "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", - "size": "3607421" - }, - { - "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", - "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", - "size": "75510" - }, - { - "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", - "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", - "size": "207271" - }, - { - "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", - "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", - "size": "193577" - }, - { - "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", - "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", - "size": "193941" - }, - { - "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", - "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", - "size": "268365" - } - ] - }, - { - "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", - "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", - "size": "91219" - }, - { - "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", - "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", - "size": "39150" - }, - { - "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", - "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", - "size": "37798" - }, - { - "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", - "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", - "size": "37374" - }, - { - "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", - "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", - "size": "34825" - } - ] - }, - { - "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", - "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", - "size": "1402283" - }, - { - "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", - "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", - "size": "2360705" - }, - { - "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", - "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", - "size": "2275101" - }, - { - "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", - "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", - "size": "1210796" - }, - { - "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", - "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", - "size": "1129654" - } - ] - }, - { - "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", - "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", - "size": "1319000" - }, - { - "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", - "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", - "size": "1641209" - }, - { - "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", - "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", - "size": "1235752" - }, - { - "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", - "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", - "size": "1393855" - }, - { - "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", - "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", - "size": "1341739" - } - ] - }, - { - "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", - "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", - "size": "1319020" - }, - { - "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", - "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", - "size": "1641514" - }, - { - "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", - "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", - "size": "1222523" - }, - { - "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", - "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", - "size": "1394293" - }, - { - "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", - "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", - "size": "1340444" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino7", - "systems": [ - { - "size": "1638575", - "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1580739", - "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1498970", - "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1701581", - "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "1626347", - "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2016965", - "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" - } - ] - }, - { - "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", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - } - ] - }, - { - "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", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - } - ] - }, - { - "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", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "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", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "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", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "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", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - } - ] - }, - { - "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", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "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", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "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", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "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", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - } - ] - }, - { - "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", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "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", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "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", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "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", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "aarch64-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "all", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - } - ] - }, - { - "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": "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", - "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", - "size": "7071714" - } - ] - }, - { - "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", - "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", - "size": "16302148" - } - ] - }, - { - "name": "dfu-util", - "version": "0.8.0-stm32-arduino1", - "systems": [ - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", - "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", - "host": "i386-apple-darwin11", - "size": "68381", - "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-linux_arm.tar.bz2", - "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", - "host": "arm-linux-gnueabihf", - "size": "213760", - "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-stm32-linux_amd64.tar.bz2", - "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", - "host": "x86_64-linux-gnu", - "size": "68575", - "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-linux_386.tar.bz2", - "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", - "host": "i686-linux-gnu", - "size": "69097", - "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-windows_386.tar.bz2", - "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", - "host": "i686-mingw32", - "size": "159753", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" - } - ] - }, - { - "name": "arduinoSTM32load", - "version": "2.0.0", - "systems": [ - { - "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", - "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", - "host": "i386-apple-darwin11", - "size": "807514", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", - "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", - "host": "arm-linux-gnueabihf", - "size": "809480", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", - "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", - "host": "x86_64-linux-gnu", - "size": "818885", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", - "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", - "host": "i686-linux-gnu", - "size": "814283", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", - "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", - "host": "i686-mingw32", - "size": "786335", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" - } - ] - }, - { - "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": "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" - } - ] - } - ] - }, - { - "email": "support@intel.com", - "maintainer": "Intel", - "websiteURL": "http://maker.intel.com/", - "name": "Intel", - "platforms": [ - { - "name": "Intel i586 Boards", - "version": "1.6.2+1.0", - "category": "Arduino Certified", - "architecture": "i586", - "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz", - "archiveFileName": "corelibs-galileo-1.6.2.tar.gz", - "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a", - "size": "272961", - "boards": [ - { - "name": "Galileo" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i686 Boards", - "version": "1.6.2+1.0", - "category": "Arduino Certified", - "architecture": "i686", - "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz", - "archiveFileName": "corelibs-edison-1.6.2.tar.gz", - "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8", - "size": "271420", - "boards": [ - { - "name": "Edison" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i586 Boards", - "version": "1.6.7+1.0", - "category": "Arduino Certified", - "architecture": "i586", - "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz", - "archiveFileName": "corelibs-galileo-1.6.7.tar.gz", - "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028", - "size": "273392", - "boards": [ - { - "name": "Galileo" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i686 Boards", - "version": "1.6.7+1.0", - "category": "Arduino Certified", - "architecture": "i686", - "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz", - "archiveFileName": "corelibs-edison-1.6.7.tar.gz", - "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1", - "size": "272002", - "boards": [ - { - "name": "Edison" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.4", - "category": "Arduino Certified", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.59.zip", - "archiveFileName": "arduino101-1.0.4.zip", - "checksum": "SHA-256:f440078eaf664d171180dda4264e8f2cf7b840e251c48f80e1ea9cfca6074fb1", - "size": "806100", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.4+1.0", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.4+1.14", - "name": "sketchUploader" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.5", - "category": "Arduino Certified", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.68.zip", - "archiveFileName": "arduino101-1.0.5.zip", - "checksum": "SHA-256:8c26b92491b12a9498453ed90a1178f47e9a7229fbfe129737f02ed24f55b542", - "size": "776592", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.4+1.0", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.4+1.18", - "name": "arduino101load" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.6", - "category": "Arduino Certified", - "archiveFileName": "arduino101-1.0.6.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.9+1.74.zip", - "checksum": "SHA-256:166c5d0f3c60c77495a08fe7d2debffb52195139854b3a42cfb6ae23b2fa2023", - "size": "672314", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.9+1.24", - "name": "arduino101load" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.7", - "category": "Arduino Certified", - "archiveFileName": "arduino101-1.0.7.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.11+1.83.zip", - "checksum": "SHA-256:e0fcc5175f00c521b5ed1fd3c78198bdb5fc43b8306247c62c83183572e1af8e", - "size": "729297", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.9+1.28", - "name": "arduino101load" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "1.0.0", - "name": "flashpack" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "2.0.2", - "category": "Arduino Certified", - "archiveFileName": "corelibs-arduino101-2.0.2.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.2.zip", - "checksum": "SHA-256:2cea02dee6959f784c6bb6bdb2dc0eafa4c4d0ce5539da9cfa64dd6ce50939fe", - "size": "6242776", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "2.0.1", - "name": "arduino101load" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "2.0.0", - "name": "flashpack" - } - ] - } - ], - "tools": [ - { - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "30587705", - "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c", - "host": "i386-apple-darwin11", - "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2" - }, - { - "size": "45948648", - "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56", - "host": "i686-mingw32", - "archiveFileName": "galileo-toolchain-20150323-windows.zip", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip" - }, - { - "size": "56227185", - "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72", - "host": "x86_64-linux-gnu", - "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2" - }, - { - "size": "55098166", - "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03", - "host": "i686-linux-gnu", - "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2" - } - ] - }, - { - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "42720934", - "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d", - "host": "i386-apple-darwin11", - "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2" - }, - { - "size": "56683094", - "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5", - "host": "i686-mingw32", - "archiveFileName": "edison-toolchain-20150323-windows.zip", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip" - }, - { - "size": "78998436", - "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193", - "host": "x86_64-linux-gnu", - "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2" - }, - { - "size": "76488215", - "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7", - "host": "i686-linux-gnu", - "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2" - } - ] - }, - { - "name": "arc-elf32", - "version": "1.6.4+1.0", - "systems": [ - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip", - "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435", - "host": "i686-mingw32", - "archiveFileName": "arc-toolchain-windows-arcem.zip", - "size": "218816528" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2", - "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1", - "host": "i386-apple-darwin11", - "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2", - "size": "78371400" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2", - "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663", - "host": "i686-linux-gnu", - "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2", - "size": "182899676" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2", - "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8", - "host": "x86_64-linux-gnu", - "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2", - "size": "177840353" - } - ] - }, - { - "name": "arc-elf32", - "version": "1.6.9+1.0.1", - "systems": [ - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem-1.0.1.zip", - "checksum": "SHA-256:59614534473a55b1d964e1f4fa14f5e01e6aaa426d1e8319a8293ffa6576f58e", - "host": "i686-mingw32", - "archiveFileName": "arc-toolchain-windows-arcem-1.0.1.zip", - "size": "172455793" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:456995157cf1549073b9330a114abb25f056352278c107e25b3cc79443040a44", - "host": "i386-apple-darwin11", - "archiveFileName": "arc-toolchain-osx-arcem-1.0.1.tar.bz2", - "size": "30014953" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:6aa92f239998d10992592cc16a16352bb1cce75a6bff1c72b8be18d939182915", - "host": "i686-linux-gnu", - "archiveFileName": "arc-toolchain-linux32-arcem-1.0.1.tar.bz2", - "size": "116481978" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:0ee03cecc27471eae58cb557a105c5edaea45b49557c86867fa436a13681392c", - "host": "x86_64-linux-gnu", - "archiveFileName": "arc-toolchain-linux64-arcem-1.0.1.tar.bz2", - "size": "129250679" - } - ] - }, - { - "name": "sketchUploader", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "61789", - "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad", - "host": "i386-apple-darwin11", - "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz" - }, - { - "size": "2534586", - "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5", - "host": "i686-mingw32", - "archiveFileName": "intel-arduino-tools-20150316-windows.zip", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip" - }, - { - "size": "178239", - "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca", - "host": "x86_64-linux-gnu", - "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz" - }, - { - "size": "187995", - "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c", - "host": "i686-linux-gnu", - "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz" - } - ] - }, - { - "version": "1.6.4+1.14", - "name": "sketchUploader", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip", - "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb", - "host": "i686-mingw32", - "archiveFileName": "1.6.4+1.14-windows.zip", - "size": "8239124" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz", - "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61", - "host": "i386-apple-darwin11", - "archiveFileName": "1.6.4+1.14-osx.tar.gz", - "size": "324645" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz", - "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b", - "host": "i686-linux-gnu", - "archiveFileName": "1.6.4+1.14-linux32.tar.gz", - "size": "224137" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz", - "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038", - "host": "x86_64-linux-gnu", - "archiveFileName": "1.6.4+1.14-linux64.tar.gz", - "size": "216542" - } - ] - }, - { - "version": "1.6.4+1.18", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.19-windows.zip", - "checksum": "SHA-256:66c184ed5b045ba262ee86e17eb00280ebb6407b73b21979186ccc2270624bf7", - "host": "i686-mingw32", - "archiveFileName": "1.6.4+1.19-windows.zip", - "size": "9367650" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-osx.tar.gz", - "checksum": "SHA-256:c698ced53fe27030dfae9d198cc550357bf130ede204d6ccac5eaac8c15e159a", - "host": "i386-apple-darwin11", - "archiveFileName": "1.6.4+1.18-osx.tar.gz", - "size": "1236355" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux32.tar.gz", - "checksum": "SHA-256:96a9a3c9306b2ddcdecf96db64d7640c76422626a12488ef90ecd1ecdf451f3c", - "host": "i686-linux-gnu", - "archiveFileName": "1.6.4+1.18-linux32.tar.gz", - "size": "1269508" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux64.tar.gz", - "checksum": "SHA-256:0e7a9c95a4b8ed9dbd9b3e2dcd00cb22c0f41a0090efe7f144cdf6fc94eb2a19", - "host": "x86_64-linux-gnu", - "archiveFileName": "1.6.4+1.18-linux64.tar.gz", - "size": "1467166" - } - ] - }, - { - "version": "1.6.9+1.24", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-windows.zip", - "checksum": "SHA-256:b531d93a8aa5dcb3e9338c553060f71835e6530639106e6976ca8d9dea0039b0", - "host": "i686-mingw32", - "archiveFileName": "arduino101load-1.6.9+1.24-windows.zip", - "size": "9418690" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-osx.tar.gz", - "checksum": "SHA-256:b927e7996f48d861d803b911317062b345fa631c4fbe2f85f2a0dcb651508e92", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101load-1.6.9+1.24-osx.tar.gz", - "size": "1241701" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux32.tar.gz", - "checksum": "SHA-256:db418197f6b4fbdc104b682fc4137cd955681af1d12147a663054e7f352a3785", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.24-linux32.tar.gz", - "size": "1305107" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux64.tar.gz", - "checksum": "SHA-256:b7723d8edac0ed957304dc2e275a5628f6602962b93863f32cc1986e1c2ee6ab", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101-1.6.9+1.24-linux64.tar.gz", - "size": "1507392" - } - ] - }, - { - "version": "1.6.9+1.28", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-windows.zip", - "checksum": "SHA-256:0847ba5466ad97c4624c7b76c84aea036f24f1189828274310f52b86e6c3de1e", - "host": "i686-mingw32", - "archiveFileName": "arduino101load-1.6.9+1.28-windows.zip", - "size": "9331111" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-osx.tar.gz", - "checksum": "SHA-256:011fcb145728842aa6dc7a2332a12b7cd0d0e4f9eae7e9c35400d3727eb33db9", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101load-1.6.9+1.28-osx.tar.gz", - "size": "1134614" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux32.tar.gz", - "checksum": "SHA-256:36681f3dbe4edc04c0f6c3888ab7787c8015b0fce2d9cffccd17d7ec5fb1204d", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.28-linux32.tar.gz", - "size": "1202482" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux64.tar.gz", - "checksum": "SHA-256:c691e2f077771b18a83b61c1cda96608150c80707adb7bac6b9665232bc74d4b", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.28-linux64.tar.gz", - "size": "1411007" - } - ] - }, - { - "name": "arduino101load", - "version": "2.0.0", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-darwin_amd64.tar.bz2", - "size": "1115949", - "checksum": "SHA-256:1adc2bb7ae5c12dabd2ce62a281285557d85d694d88e3578176a26a892546bff" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_arm.tar.bz2", - "size": "992362", - "checksum": "SHA-256:ce5bc6598481cbf058a86695f4661f4b9f3a37481a8a1401bc8aa6e38055c13f" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_amd64.tar.bz2", - "size": "1111450", - "checksum": "SHA-256:70965f1830e97bb8eafe1a4cea59a202aeb7c08dd2e9f46eb6a658d382cbf3fe" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_386.tar.bz2", - "size": "1002073", - "checksum": "SHA-256:3a0880cbfc795a94cbc90e8c5e6bcf3dc47b893be8b61ba8657f009fdec364a0" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-windows_386.tar.bz2", - "size": "1046285", - "checksum": "SHA-256:90923d95f3d30fe3161fa0fcac344db12f99e2bfba396a48bec596d1870370ce" - } - ] - }, - { - "name": "arduino101load", - "version": "2.0.1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-darwin_amd64.tar.bz2", - "size": "1114375", - "checksum": "SHA-256:1f96480028a2aaa9475a1f44c5912236b6a039fced948fe2042a0353c88c1fb0" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_arm.tar.bz2", - "size": "992557", - "checksum": "SHA-256:ff02bc7b64dd2f6a526fd283c55b36cab15297d045ccd214ec70d12067ce0991" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_amd64.tar.bz2", - "size": "1111519", - "checksum": "SHA-256:b15a213b495e599b76ecd68253602b56ff5eebda4fadc53442e8c1917964a45e" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_386.tar.bz2", - "size": "1001211", - "checksum": "SHA-256:2941d1f2f726ca1dd3789a744a2084e8f9000912bdaf25ef888c90fd454057e9" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-windows_386.tar.bz2", - "size": "1046214", - "checksum": "SHA-256:932373b6da9a8ad8ee9051937ea42cedde604fa8437050dcf7baa29564fc4547" - } - ] - }, - { - "name": "arduino101load", - "version": "2.1.0", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-darwin_amd64.tar.bz2", - "size": "1188264", - "checksum": "SHA-256:068310277e032df5e36bd7cf351680462bd14f667536baf0b46e0f98e88a5616" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_arm.tar.bz2", - "size": "1110912", - "checksum": "SHA-256:440c407d3fcca28333830891550bd4ed62ff4a6fb54a488330291bb79e737e97" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_amd64.tar.bz2", - "size": "1184509", - "checksum": "SHA-256:c86f707914c733f51d705b32d45ade9d708913f458382f30b7436bdcdc9bb514" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_386.tar.bz2", - "size": "1065618", - "checksum": "SHA-256:b17ce537f26e6ececf176585859594e1a66dfb788f074711d0be4a563c1815d8" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-windows_386.tar.bz2", - "size": "1078361", - "checksum": "SHA-256:32ff223937fbf747f1c552256627dfcb8eeccb4903342a9e8ac8b3e6d89cb4a7" - } - ] - }, - { - "version": "0.9.0+0.1", - "name": "openocd", - "systems": [ - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-windows.zip", - "checksum": "SHA-256:95accfa22294cf150f33fba3cac45e6aa6857ebc2ba5dacebc2963b4a6021962", - "host": "i686-mingw32", - "archiveFileName": "openocd-windows-0.9.0.zip", - "size": "9181935" - }, - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-osx.tar.bz2", - "checksum": "SHA-256:57083e887ba77826a5f532f4b1ca4b7390cb7a2e2744583576a72f28a77dcc44", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-osx-0.9.0.tar.bz2", - "size": "896625" - }, - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-linux32.tar.bz2", - "checksum": "SHA-256:49d2a220e4b25eead4fe03d2ffa339ed946abef9cb718debdc7369f7b3c70534", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-linux32-0.9.0.tar.bz2", - "size": "3923308" - }, - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-linux64.tar.bz2", - "checksum": "SHA-256:4df6d3d387b45fa6214145f736c48c95109871fcd85fa81b81c01b533097a031", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-linux64-0.9.0.tar.bz2", - "size": "4010990" - } - ] - }, - { - "version": "1.0.0", - "name": "flashpack", - "systems": [ - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i686-mingw32", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - } - ] - }, - { - "version": "2.0.0", - "name": "flashpack", - "systems": [ - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i686-mingw32", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i386-apple-darwin11", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i686-linux-gnu", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "x86_64-linux-gnu", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - } - ] - } - ] - }, - { - "name": "atmel-avr-xminis", - "maintainer": "Atmel University France", - "websiteURL": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/wiki", - "help": - { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "platforms": - [ - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.3.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.3.0/atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", - "checksum": "SHA-256:3bf7739682bdd86c8e8e566769429e424859f23022664295f800df489c782f18", - "size": "95352", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.4.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.4.0/atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", - "checksum": "SHA-256:36e09208c91071ff2fce4a7ed06463cf820c867d9f59477192d18965c0830ed5", - "size": "95452", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.5.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.5.0/atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", - "checksum": "SHA-256:e2e401fc30f8e8519bcd628884699373dc386d83a366c740b1895aa9b8cc30f4", - "size": "95573", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.6.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.6.0/atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", - "checksum": "SHA-256:60bcb315a33056fac9b1d626ac039b3439efdae821ba91b70e09dc5ce8e07f88", - "size": "95447", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - } - ], - "tools": - [ - ] - }, - { - "name":"littleBits", - "maintainer":"littleBits Electronics", - "websiteURL":"http://www.littlebits.cc/bits/w6-arduino", - "email":"support@littlebits.cc", - "help":{ - "online":"http://www.littlebits.cc/arduino-help" - }, - "platforms":[ - { - "name":"littleBits Arduino AVR Modules", - "architecture":"avr", - "version":"1.0.0", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/littlebits-avr-1.0.0.tar.bz2", - "archiveFileName":"littlebits-avr-1.0.0.tar.bz2", - "checksum":"SHA-256:8B867B8E89718B405231681CF9091F24372FAEF8B5B9FFBFBCF2486E3D9B5324", - "size":"27762", - "help":{ - "online":"http://www.littlebits.cc/arduino-help" - }, - "boards":[ - { "name":"littleBits w6 Arduino module" } - ], - "toolsDependencies":[ - { "packager":"arduino", "name":"avr-gcc", "version":"4.8.1-arduino5" }, - { "packager":"arduino", "name":"avrdude", "version":"6.0.1-arduino5" } - ] - } - ], - "tools":[] - }, - { - "name": "Microsoft", - "maintainer": "Microsoft.IoT", - "websiteURL": "https://github.com/ms-iot/iot-utilities/tree/master/IotCoreAppDeployment/ArduinoIde/", - "email": "bfjelds@microsoft.com", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "platforms": [ - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.0.0", - "category": "Contributed", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.0.0_ide-1.6.6.zip", - "archiveFileName": "win10_iotcore-1.0.0_ide-1.6.6.zip", - "checksum": "SHA-256:ed1b42b396217e242cd3a5b597ad5dad5957cb8117dd0f972376bafab7d8a0e5", - "size": "47325480", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.0", - "category": "Contributed", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.0_ide-1.6.6.zip", - "archiveFileName": "win10_iotcore-1.1.0_ide-1.6.6.zip", - "checksum": "SHA-256:683dcb0a72e80b9d21117f6471e0860d8cc35cd9b86557ba6fd1ed255952413e", - "size": "48316890", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.1", - "category": "Contributed", - "help": { - "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.1_ide-1.6.11.zip", - "archiveFileName": "win10_iotcore-1.1.1_ide-1.6.11.zip", - "checksum": "SHA-256:f455f2829164065faacde141b3c15604c51bb79b6874d55d1124c66aae372693", - "size": "48317624", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.2", - "category": "Contributed", - "help": { - "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.2_ide-1.6.11.zip", - "archiveFileName": "win10_iotcore-1.1.2_ide-1.6.11.zip", - "checksum": "SHA-256:b1c9956b46f33bcebb7f500d29931b19ed4723c713ac0439681ea1fb172722d1", - "size": "48317648", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - } - ], - "tools":[] - }, - { - "name": "Arrow", - "maintainer": "Axel Elettronica S.r.l.", - "websiteURL": "http://axelelettronica.it/", - "email": "development@axelelettronica.it", - "help": { - "online": "http://www.arrowsmarteverything.com/support/" - }, - "platforms": [ - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "1.2.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-1.2.0.tar.bz2", - "archiveFileName": "Arrow-samd-1.2.0.tar.bz2", - "checksum": "SHA-256:1d1cd66eb9986ed60a45b6554b8dcbf168401339c8a06bcf45c1b6ee2efa0943", - "size": "36575", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "2.0.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.0.0.tar.gz", - "archiveFileName": "Arrow-samd-2.0.0.tar.gz", - "checksum": "SHA-256:e0bbf85d28af03a196a625462598294f9dd30ffbc9d686cbf2cc09bc5a76421a", - "size": "772778", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartEverything Fox3"}, - {"name": "SmartEverything Lion"}, - {"name": "SmartEverything Dragonfly"}, - {"name": "Analog ADI"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - ] - }, - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "2.1.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.1.0.tar.gz", - "archiveFileName": "Arrow-samd-2.1.0.tar.gz", - "checksum": "SHA-256:fc593dba03249300a9e2cff88c06f50389681e4fe6e3c92207d3ffb8a8a673f7", - "size": "780064", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartEverything Fox3"}, - {"name": "SmartEverything Lion"}, - {"name": "SmartEverything Dragonfly"}, - {"name": "Analog ADI"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - ] - } - ], - "tools": [ - ] - }, - { - "name": "emoro", - "maintainer": "Inovatic-ICT", - "websiteURL": "http://www.emoro.eu/shop/system/download/EMoRo2560_and_GLAM_brochure.pdf.0b83da8ad90db30722cca3a5d2529494", - "email": "support@inovatic-ict.com", - "help": { - "online": "http://www.emoro.eu/shop/index.php?route=product/product&product_id=52" - }, - "platforms": [ - { - "name": "EMORO 2560", - "architecture": "avr", - "version": "3.2.1", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.1.zip", - "archiveFileName": "EMoRo_2560-3.2.1.zip", - "checksum": "SHA-256:56dd308fc2f84229688f6219a4c31629ec9b38bdadcd382c45fae9247b94f051", - "size": "846444", - "boards": [ - {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} - ], - "toolsDependencies": [ - ] - }, - { - "name": "EMORO 2560", - "architecture": "avr", - "version": "3.2.2", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.2.zip", - "archiveFileName": "EMoRo_2560-3.2.2.zip", - "checksum": "SHA-256:c67e6660af44c923c10deede252f9c46dabaf5b61d6e44f3785be688f1c9b46f", - "size": "565744", - "boards": [ - {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} - ], - "toolsDependencies": [ - ] - } - ], - "tools": [ - ] - }, - { - "name": "industruino", - "maintainer": "Industruino", - "websiteURL": "https://industruino.com/", - "email": "connect@industruino.com", - "help": { - "online": "https://github.com/Industruino/IndustruinoSAMD" - }, - "platforms": [ - { - "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.0.0", - "category": "Contributed", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.0.tar.bz2", - "archiveFileName": "industruino-samd-1.0.0.tar.bz2", - "checksum": "SHA-256:f2e03e584117474c3a6481922c7030558236588762dceea0421ea79ceec3ae11", - "size": "172665", - "boards": [ - { "name": "Industruino D21G" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "industruino", - "name": "bossac", - "version": "1.7.0-industruino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.0.1", - "category": "Contributed", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.1.tar.bz2", - "archiveFileName": "industruino-samd-1.0.1.tar.bz2", - "checksum": "SHA-256:ffd9a0d53f0e659432182987bfc70eeca8ea8cceaeac802be677614ed51c371f", - "size": "203844", - "boards": [ - { "name": "Industruino D21G" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "industruino", - "name": "bossac", - "version": "1.7.0-industruino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - } - ], - "tools": [ - { - "name": "bossac", - "version": "1.7.0-industruino", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-mingw32.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-mingw32.tar.gz", - "checksum": "SHA-256:960d91feb565e957dbac9399e16839aa4eb4400153f2373896b733eeea778ab2", - "size": "565844" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", - "checksum": "SHA-256:a2455d20fd8269d0655ebc50014e539911070a0b14964082337655f17de7cbf2", - "size": "128421" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2cbeb64a0e0a58f3b769ef6cdcfe55fa939b3015845b3081a9beebe9432ba4a6", - "size": "62348" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:77b06322da2a9bdc17ddcbc29627802e8b2bf47b5625fe6fb17d90203e4a4071", - "size": "63204" - } - ] - }, - { - "name": "windows-drivers", - "version": "0.0.1", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://static.industruino.com/downloads/drivers/drivers-industruino-windows-0.0.1.zip", - "archiveFileName": "drivers-industruino-windows-0.0.1.zip", - "checksum": "SHA-256:f1d7c7d30ca71f7224dac077f18f25f62ff97b43dd1e4a43ec4930a13a3ac484", - "size": "2545" - } - ] - } - ] - } - ] -} diff --git a/commands/board/listall_test.go b/commands/board/listall_test.go deleted file mode 100644 index b5702c8ad2b..00000000000 --- a/commands/board/listall_test.go +++ /dev/null @@ -1,197 +0,0 @@ -// This file is part of arduino-cli. -// -// Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -// -// This software is released under the GNU General Public License version 3, -// which covers the main part of arduino-cli. -// The terms of this license can be found at: -// https://www.gnu.org/licenses/gpl-3.0.en.html -// -// You can be released from the requirements of the above licenses by purchasing -// a commercial license. Buying such a license is mandatory if you want to -// modify or 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. - -package board - -import ( - "context" - "os" - "testing" - - "github.com/arduino/arduino-cli/cli/instance" - "github.com/arduino/arduino-cli/cli/output" - "github.com/arduino/arduino-cli/commands/core" - "github.com/arduino/arduino-cli/configuration" - rpc "github.com/arduino/arduino-cli/rpc/commands" - "github.com/arduino/go-paths-helper" - "github.com/stretchr/testify/require" -) - -func TestListAll(t *testing.T) { - dataDir := paths.TempDir().Join("test", "data_dir") - downloadDir := paths.TempDir().Join("test", "staging") - os.Setenv("ARDUINO_DATA_DIR", dataDir.String()) - os.Setenv("ARDUINO_DOWNLOADS_DIR", downloadDir.String()) - dataDir.MkdirAll() - downloadDir.MkdirAll() - defer paths.TempDir().Join("test").RemoveAll() - err := paths.New("testdata").Join("package_index.json").CopyTo(dataDir.Join("package_index.json")) - require.Nil(t, err) - - configuration.Init(paths.TempDir().Join("test", "arduino-cli.yaml").String()) - - inst, err := instance.CreateInstance() - require.Nil(t, err) - - _, err = core.PlatformInstall(context.Background(), - &rpc.PlatformInstallReq{ - Instance: inst, - PlatformPackage: "arduino", - Architecture: "avr", - Version: "1.8.3", - SkipPostInstall: true, - }, output.NewDownloadProgressBarCB(), output.NewTaskProgressCB()) - require.Nil(t, err) - - res, err := ListAll(context.Background(), &rpc.BoardListAllReq{ - Instance: inst, - SearchArgs: []string{}, - IncludeHiddenBoards: true, - }) - require.Nil(t, err) - require.NotNil(t, res) - require.Equal(t, 26, len(res.Boards)) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Yún", - FQBN: "arduino:avr:yun", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Uno", - FQBN: "arduino:avr:uno", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Duemilanove or Diecimila", - FQBN: "arduino:avr:diecimila", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Nano", - FQBN: "arduino:avr:nano", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Mega or Mega 2560", - FQBN: "arduino:avr:mega", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Mega ADK", - FQBN: "arduino:avr:megaADK", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Leonardo", - FQBN: "arduino:avr:leonardo", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Leonardo ETH", - FQBN: "arduino:avr:leonardoeth", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Micro", - FQBN: "arduino:avr:micro", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Esplora", - FQBN: "arduino:avr:esplora", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Mini", - FQBN: "arduino:avr:mini", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Ethernet", - FQBN: "arduino:avr:ethernet", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Fio", - FQBN: "arduino:avr:fio", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino BT", - FQBN: "arduino:avr:bt", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "LilyPad Arduino USB", - FQBN: "arduino:avr:LilyPadUSB", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "LilyPad Arduino", - FQBN: "arduino:avr:lilypad", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Pro or Pro Mini", - FQBN: "arduino:avr:pro", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino NG or older", - FQBN: "arduino:avr:atmegang", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Robot Control", - FQBN: "arduino:avr:robotControl", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Robot Motor", - FQBN: "arduino:avr:robotMotor", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Gemma", - FQBN: "arduino:avr:gemma", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Adafruit Circuit Playground", - FQBN: "arduino:avr:circuitplay32u4cat", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Yún Mini", - FQBN: "arduino:avr:yunmini", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Industrial 101", - FQBN: "arduino:avr:chiwawa", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Linino One", - FQBN: "arduino:avr:one", - IsHidden: false, - }) - require.Contains(t, res.Boards, &rpc.BoardListItem{ - Name: "Arduino Uno WiFi", - FQBN: "arduino:avr:unowifi", - IsHidden: false, - }) - -} diff --git a/test/conftest.py b/test/conftest.py index aafc0390aee..ae60b74ab21 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -131,7 +131,7 @@ def _run(cmd_string, custom_working_dir=None, custom_env=None): # 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 diff --git a/test/test_board.py b/test/test_board.py index e62ba079358..3e32e781ef7 100644 --- a/test/test_board.py +++ b/test/test_board.py @@ -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): diff --git a/test/test_core.py b/test/test_core.py index d7a587deb10..33bcaef531e 100644 --- a/test/test_core.py +++ b/test/test_core.py @@ -225,3 +225,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) diff --git a/arduino/cores/packagemanager/testdata/installed.json b/test/testdata/installed.json similarity index 99% rename from arduino/cores/packagemanager/testdata/installed.json rename to test/testdata/installed.json index 2b3b098455e..b4bbe4123b7 100644 --- a/arduino/cores/packagemanager/testdata/installed.json +++ b/test/testdata/installed.json @@ -4,7 +4,7 @@ "name": "arduino", "maintainer": "Arduino", "websiteUrl": "http://www.arduino.cc/", - "Url": "", + "Url": "https://downloads.arduino.cc/packages/package_index.json", "email": "packages@arduino.cc", "platforms": [ { @@ -1908,5 +1908,5 @@ } } ], - "IsTrusted": false + "IsTrusted": true }