1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-30 19:52:13 +01:00

AVR bundle: by default the IDE is built bundled with the avr toolchain and cores

By passing -Dlight_bundle=1 to ant, an light/empty IDE is built
This commit is contained in:
Federico Fissore 2015-03-05 17:42:26 +01:00
parent 562c566618
commit d050c4ee4a
15 changed files with 345 additions and 73 deletions

View File

@ -142,7 +142,7 @@ public class ContributionIndexTableModel extends FilteredAbstractTableModel {
for (ContributedPackage pack : index.getPackages()) {
for (ContributedPlatform platform : pack.getPlatforms()) {
if (category != null) {
if (!platform.getCategory().equals(category))
if (!category.equals(platform.getCategory()))
continue;
}
if (!stringContainsAll(platform.getName(), filters))

View File

@ -30,6 +30,6 @@ package cc.arduino.packages.contributions;
public interface ContributedBoard {
public String getName();
String getName();
}

View File

@ -49,9 +49,9 @@ import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS;
public class ContributionsIndexer {
private File packagesFolder;
private File stagingFolder;
private File indexFile;
private final File packagesFolder;
private final File stagingFolder;
private final File indexFile;
private ContributionsIndex index;
public ContributionsIndexer(File preferencesFolder) {
@ -75,7 +75,7 @@ public class ContributionsIndexer {
// indexer.syncWithFilesystem();
// }
public void parseIndex() throws JsonParseException, IOException {
public void parseIndex() throws IOException {
// Parse index file
parseIndex(indexFile);
@ -93,8 +93,7 @@ public class ContributionsIndexer {
index.fillCategories();
}
private void parseIndex(File indexFile) throws JsonParseException,
IOException {
private void parseIndex(File indexFile) throws IOException {
InputStream indexIn = new FileInputStream(indexFile);
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new MrBeanModule());

View File

@ -1,45 +1,30 @@
package processing.app;
import static processing.app.I18n._;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import cc.arduino.DefaultUncaughtExceptionHandler;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.apache.commons.logging.impl.NoOpLog;
import cc.arduino.libraries.contributions.LibrariesIndexer;
import cc.arduino.packages.DiscoveryManager;
import cc.arduino.packages.Uploader;
import processing.app.debug.Compiler;
import cc.arduino.libraries.contributions.LibrariesIndexer;
import cc.arduino.packages.contributions.ContributedTool;
import cc.arduino.packages.contributions.ContributionsIndexer;
import cc.arduino.utils.ArchiveExtractor;
import processing.app.debug.TargetBoard;
import processing.app.debug.LegacyTargetPackage;
import processing.app.debug.TargetPackage;
import processing.app.debug.TargetPlatform;
import processing.app.debug.TargetPlatformException;
import processing.app.helpers.BasicUserNotifier;
import processing.app.helpers.CommandlineParser;
import processing.app.helpers.OSUtils;
import processing.app.helpers.PreferencesMap;
import processing.app.helpers.UserNotifier;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.apache.commons.logging.impl.NoOpLog;
import processing.app.debug.Compiler;
import processing.app.debug.*;
import processing.app.helpers.*;
import processing.app.helpers.filefilters.OnlyDirs;
import processing.app.helpers.filefilters.OnlyFilesWithExtension;
import processing.app.legacy.PApplet;
import processing.app.packages.LibraryList;
import processing.app.packages.UserLibrary;
import java.io.*;
import java.net.URISyntaxException;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import static processing.app.I18n._;
public class BaseNoGui {
/** Version string to be used for build */
@ -594,21 +579,24 @@ public class BaseNoGui {
indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder());
File indexFile = indexer.getIndexFile();
if (!indexFile.isFile()) {
try {
File distFile = getContentFile("dist/default_package.tar.bz2");
if (distFile.isFile()) {
File distFile = findDefaultPackageFile();
if (distFile != null) {
// If present, unpack distribution file into preferences folder
ArchiveExtractor.extract(distFile, BaseNoGui.getSettingsFolder(), 1);
ArchiveExtractor.extract(distFile, BaseNoGui.getSettingsFolder(), 0);
// TODO: The first distribution file may be removed after extraction?
} else {
// Otherwise create an empty packages index
FileOutputStream out = new FileOutputStream(indexFile);
FileOutputStream out = null;
try {
out = new FileOutputStream(indexFile);
out.write("{ \"packages\" : [ ] }".getBytes());
out.close();
} finally {
if (out != null) {
out.close();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
indexer.parseIndex();
@ -635,6 +623,23 @@ public class BaseNoGui {
librariesIndexer.parseIndex();
}
private static File findDefaultPackageFile() {
File distFolder = getContentFile("dist");
if (!distFolder.exists()) {
return null;
}
File[] files = distFolder.listFiles();
if (files.length > 1) {
throw new IllegalStateException("More than one file in " + distFolder);
}
File file = files[0];
if (!file.isFile() || !(file.getName().contains(".tar.") || file.getName().endsWith(".zip"))) {
throw new IllegalStateException(file + " must be a valid .tar.* or .zip file");
}
return file;
}
static protected void initPlatform() {
try {
Class<?> platformClass = Class.forName("processing.app.Platform");

View File

@ -1,16 +1,6 @@
package processing.app.legacy;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.StringTokenizer;
@ -282,9 +272,9 @@ public class PApplet {
}
static public String[] loadStrings(InputStream input) {
BufferedReader reader = null;
try {
BufferedReader reader =
new BufferedReader(new InputStreamReader(input, "UTF-8"));
reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
String lines[] = new String[100];
int lineCount = 0;
@ -297,7 +287,6 @@ public class PApplet {
}
lines[lineCount++] = line;
}
reader.close();
if (lineCount == lines.length) {
return lines;
@ -311,6 +300,15 @@ public class PApplet {
} catch (IOException e) {
e.printStackTrace();
//throw new RuntimeException("Error inside loadStrings()");
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//ignore
}
}
}
return null;
}

View File

@ -101,14 +101,15 @@
<!-- - - - - - - - - -->
<target name="assemble">
<fail unless="target.path"
message="Do not call assemble from the command line." />
<fail unless="target.path" message="Do not call assemble from the command line." />
<!-- copy shared tools folder -->
<copy todir="${target.path}/tools">
<fileset dir="shared/tools" />
</copy>
<antcall target="assemble-hardware" />
<!-- copy shared examples folder -->
<copy todir="${target.path}/examples">
<fileset dir="shared/examples" />
@ -125,16 +126,24 @@
<!-- Write the revision file! -->
<echo file="${target.path}/lib/version.txt" message="${version}" />
<!-- copy library folder -->
<antcall target="assemble-libraries" />
</target>
<target name="assemble-libraries" if="bundle_libraries">
<!-- copy library folder -->
<target name="assemble-libraries" unless="light_bundle">
<copy todir="${target.path}/libraries">
<fileset dir="../libraries" />
</copy>
</target>
<!-- copy hardware folder -->
<target name="assemble-hardware" unless="light_bundle">
<mkdir dir="${staging_folder}/work/dist/bundled_package/packages/arduino/hardware/avr/1.6.1-beta1/"/>
<copy todir="${staging_folder}/work/dist/bundled_package/packages/arduino/hardware/avr/1.6.1-beta1/">
<fileset dir="../hardware/arduino/avr/"/>
</copy>
</target>
<!-- - - - - - - - - -->
<!-- Revision check -->
<!-- - - - - - - - - -->
@ -229,6 +238,7 @@
<target name="macosx-build" if="macosx" depends="revision-check, macosx-checkos, subprojects-build" description="Build Mac OS X version">
<fail unless="MACOSX_BUNDLED_JVM" message="MacOSX requires MACOSX_BUNDLED_JVM property set"/>
<mkdir dir="${staging_folder}/work" />
<antcall target="unzip">
<param name="archive_file" value="${staging_folder}/appbundler-1.0ea-upstream1.jar.zip" />
@ -237,9 +247,6 @@
<param name="dest_folder" value="${staging_folder}/appbundler-1.0ea-upstream1" />
</antcall>
<mkdir dir="${staging_folder}/work" />
<mkdir dir="${staging_folder}/work/${staging_hardware_folder}" />
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="${staging_folder}/appbundler-1.0ea-upstream1/appbundler-1.0ea-upstream1.jar"/>
<bundleapp
@ -298,6 +305,8 @@
</bundleapp>
<mkdir dir="${staging_folder}/work/${staging_hardware_folder}" />
<copy todir="${staging_folder}/work/${staging_hardware_folder}/../">
<fileset dir="shared" includes="lib/**" />
<fileset file="shared/revisions.txt" />
@ -308,11 +317,17 @@
</target>
<target name="macosx-build-common">
<mkdir dir="${staging_folder}/work" />
<mkdir dir="${staging_folder}/work/${staging_hardware_folder}" />
<antcall target="macosx-build-common-avr-toolchain" />
<antcall target="assemble">
<param name="target.path" value="macosx/work/${staging_hardware_folder}/../" />
<param name="target.path" value="${staging_folder}/work/${staging_hardware_folder}/.." />
</antcall>
<antcall target="macosx-assemble-bundled-toolchain"/>
<antcall target="unzip">
<param name="archive_file" value="./libastylej-2.05.zip" />
<param name="archive_url" value="http://arduino.cc/download.php?f=/libastylej-2.05.zip" />
@ -326,6 +341,37 @@
</target>
<!-- Unzip AVR tools -->
<target name="macosx-build-common-avr-toolchain" unless="light_bundle">
<antcall target="avr-toolchain-bundle">
<param name="unpack_target" value="untar"/>
<param name="gcc_archive_file" value="avr-gcc-4.8.1-arduino-i386-apple-darwin11.tar.bz2"/>
<param name="gcc_version" value="4.8.1-arduino/"/>
<param name="avrdude_archive_file" value="avrdude-6.0.1-arduino-i386-apple-darwin11.tar.bz2"/>
<param name="avrdude_version" value="6.0.1-arduino"/>
</antcall>
<chmod perm="+x">
<fileset dir="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/" includes="**/bin/*"/>
<fileset dir="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/" includes="**/libexec/gcc/avr/4.8.1/*"/>
</chmod>
</target>
<target name="macosx-assemble-bundled-toolchain" unless="light_bundle">
<exec executable="tar" dir="${staging_folder}/work/dist/bundled_package/">
<arg value="-c"/>
<arg value="-z"/>
<arg value="-f"/>
<arg value="../default_package.tar.gz"/>
<arg value="./"/>
</exec>
<mkdir dir="macosx/work/${staging_hardware_folder}/../dist"/>
<move file="${staging_folder}/work/dist/default_package.tar.gz" todir="macosx/work/${staging_hardware_folder}/../dist"/>
<delete dir="${staging_folder}/work/dist/"/>
</target>
<target name="macosx-old-run" depends="macosx-old-build" description="Run Mac OS X version">
<antcall target="macosx-run-common"/>
</target>
@ -485,6 +531,17 @@
<!--</echo>-->
<!--</target>-->
<target name="macosx-dist-old-fix-perms" unless="light_bundle">
<chmod perm="+x">
<fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin" includes="**/*" />
<fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/bin" includes="**/*" />
<fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr-3/bin" includes="**/*" />
<fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr-4/bin" includes="**/*" />
<fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/3.4.6/" includes="**/cc1*" />
<fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/4.3.2/" includes="**/cc1*" />
</chmod>
</target>
<!-- - - - - - - - -->
<!-- Linux -->
<!-- - - - - - - - -->
@ -546,9 +603,43 @@
</target>
<target name="linux32-build" depends="linux-build" description="Build linux (32-bit) version">
<antcall target="avr-toolchain-bundle">
<param name="unpack_target" value="untar"/>
<param name="gcc_archive_file" value="avr-gcc-4.8.1-arduino-i686-pc-linux-gnu.tar.bz2"/>
<param name="gcc_version" value="4.8.1-arduino/"/>
<param name="avrdude_archive_file" value="avrdude-6.0.1-arduino-i686-pc-linux-gnu.tar.bz2"/>
<param name="avrdude_version" value="6.0.1-arduino"/>
</antcall>
<exec executable="tar" dir="${staging_folder}/work/dist/bundled_package/">
<arg value="-c"/>
<arg value="-z"/>
<arg value="-f"/>
<arg value="../default_package.tar.gz"/>
<arg value="./"/>
</exec>
<delete dir="${staging_folder}/work/dist/bundled_package/"/>
</target>
<target name="linux64-build" depends="linux-build" description="Build linux (64-bit) version">
<antcall target="avr-toolchain-bundle">
<param name="unpack_target" value="untar"/>
<param name="gcc_archive_file" value="avr-gcc-4.8.1-arduino-x86_64-pc-linux-gnu.tar.bz2"/>
<param name="gcc_version" value="4.8.1-arduino/"/>
<param name="avrdude_archive_file" value="avrdude-6.0.1-arduino-x86_64-pc-linux-gnu.tar.bz2"/>
<param name="avrdude_version" value="6.0.1-arduino"/>
</antcall>
<exec executable="tar" dir="${staging_folder}/work/dist/bundled_package/">
<arg value="-c"/>
<arg value="-z"/>
<arg value="-f"/>
<arg value="../default_package.tar.gz"/>
<arg value="./"/>
</exec>
<delete dir="${staging_folder}/work/dist/bundled_package/"/>
</target>
<target name="linux32-run" depends="linux32-build" description="Run Linux (32-bit) version">
@ -587,7 +678,7 @@
<!-- Ensure that the tool is downloaded and test checksums, if everything's ok unzip it on the tools folder -->
<target name="untar" depends="untar-unzip-checksum" unless="${archive_file}_installed">
<echo>Unzipping into folder ${dest_folder}</echo>
<echo>Untarring ${archive_file} into folder ${dest_folder}</echo>
<exec executable="tar">
<arg value="xf"/>
<arg value="${archive_file}"/>
@ -596,7 +687,7 @@
</target>
<target name="unzip" depends="untar-unzip-checksum" unless="${archive_file}_installed">
<echo>Unzipping into folder ${dest_folder}</echo>
<echo>Unzipping ${archive_file} into folder ${dest_folder}</echo>
<mkdir dir="${dest_folder}" />
<exec executable="unzip">
<arg value="-q" />
@ -737,6 +828,8 @@
<fileset dir="windows/dist" includes="drivers/**" />
</copy>
<antcall target="windows-build-avr-toolchain" />
<antcall target="unzip">
<param name="archive_file" value="./libastylej-2.05.zip" />
<param name="archive_url" value="http://arduino.cc/download.php?f=/libastylej-2.05.zip" />
@ -759,6 +852,8 @@
<param name="target.path" value="windows/work" />
</antcall>
<antcall target="windows-assemble-bundled-toolchain"/>
<delete dir="windows/launcher/launch4j"/>
<antcall target="download-${launch4j-download-unpack-target-name}" />
@ -782,6 +877,24 @@
</chmod>
</target>
<target name="windows-build-avr-toolchain">
<antcall target="avr-toolchain-bundle">
<param name="unpack_target" value="unzip"/>
<param name="gcc_archive_file" value="avr-gcc-4.8.1-arduino-i686-mingw32.zip"/>
<param name="gcc_version" value="4.8.1-arduino/"/>
<param name="avrdude_archive_file" value="avrdude-6.0.1-arduino-i686-mingw32.zip"/>
<param name="avrdude_version" value="6.0.1-arduino"/>
</antcall>
</target>
<target name="windows-assemble-bundled-toolchain" unless="light_bundle">
<exec executable="zip" dir="${staging_folder}/work/dist/bundled_package/">
<arg line="-q -r ../default_package.zip ." />
</exec>
<delete dir="${staging_folder}/work/dist/bundled_package/"/>
</target>
<target name="windows-run" depends="windows-build"
description="Run windows version">
<exec executable="windows/work/arduino.exe"
@ -854,4 +967,28 @@
depends="linux-clean, windows-clean, macosx-clean, subprojects-clean">
</target>
<target name="avr-toolchain-bundle" unless="light_bundle">
<!-- Unzip AVR tools -->
<mkdir dir="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avr-gcc/"/>
<mkdir dir="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avrdude/"/>
<antcall target="${unpack_target}">
<param name="archive_file" value="${staging_folder}/${gcc_archive_file}"/>
<param name="archive_url" value="http://arduino.cc/download.php?f=/tools/${gcc_archive_file}"/>
<param name="final_folder" value="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avr-gcc/${gcc_version}/"/>
<param name="dest_folder" value="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avr-gcc/"/>
</antcall>
<move file="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avr-gcc/avr" tofile="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avr-gcc/${gcc_version}"/>
<antcall target="${unpack_target}">
<param name="archive_file" value="${staging_folder}/${avrdude_archive_file}"/>
<param name="archive_url" value="http://arduino.cc/download.php?f=/tools/${avrdude_archive_file}"/>
<param name="final_folder" value="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avrdude/${avrdude_version}"/>
<param name="dest_folder" value="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avrdude/"/>
</antcall>
<move file="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avrdude/avrdude-6.0.1" tofile="${staging_folder}/work/dist/bundled_package/packages/arduino/tools/avrdude/${avrdude_version}"/>
<copy file="shared/bundled_package_index.json" tofile="${staging_folder}/work/dist/bundled_package/package_index.json"/>
</target>
</project>

View File

@ -0,0 +1 @@
204f54ff5ef45a53f35fb9b21fcb8ea8edcb385b

View File

@ -0,0 +1 @@
eb89261725ed45b9bf57d25bd94a302adc6c928d

View File

@ -0,0 +1 @@
326899e59dec2751d6c49f96fec9680b7a5afe8a

View File

@ -0,0 +1 @@
cbaa00eb3fadc8cdd86f52d9668825755de11dde

View File

@ -0,0 +1 @@
9302d5e6a27eb194cc74e33d0f61f29b2c8d768e

View File

@ -0,0 +1 @@
b098ac2cefd32cfec3f4ed626ddb3625864fc04f

View File

@ -0,0 +1,125 @@
{
"packages": [
{
"name": "arduino",
"maintainer": "Arduino",
"websiteURL": "http://www.arduino.cc/",
"email": "packages@arduino.cc",
"platforms": [
{
"name": "Arduino AVR Boards",
"architecture": "avr",
"version": "1.6.1-beta1",
"category": "Arduino",
"url": "http://arduino.cc/download.php?f=/cores/avr-1.6.1-beta1.tar.bz2",
"archiveFileName": "avr-1.6.1-beta1.tar.bz2",
"checksum": "SHA-256:c360a8762a6c44e229b9323a4f3c0157100f842391746f15932cbec42c3f4ee1",
"size": "4860386",
"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-arduino"
},
{
"packager": "arduino",
"name": "avrdude",
"version": "6.0.1-arduino"
}
]
}
],
"tools": [
{
"name": "avr-gcc",
"version": "4.8.1-arduino",
"systems": [
{
"size": "24443508",
"checksum": "SHA-256:1285188c63efdd6de6ededbc327365b7d55466798014e170cc8351d0bbb26561",
"host": "i386-apple-darwin11",
"archiveFileName": "avr-gcc-4.8.1-arduino-i386-apple-darwin11.tar.bz2",
"url": "http://arduino.cc/download.php?f=/tools/avr-gcc-4.8.1-arduino-i386-apple-darwin11.tar.bz2"
},
{
"size": "27152089",
"checksum": "SHA-256:a4b1a2fd58c5129539d1ef466c1be6f4fb6dd141eca2f63e0c04aee0afd4d294",
"host": "x86_64-linux-gnu",
"archiveFileName": "avr-gcc-4.8.1-arduino-x86_64-pc-linux-gnu.tar.bz2",
"url": "http://arduino.cc/download.php?f=/tools/avr-gcc-4.8.1-arduino-x86_64-pc-linux-gnu.tar.bz2"
},
{
"size": "25875299",
"checksum": "SHA-256:14bc3dc08990ea1aec49335306aad9dbe9bd6751cf84ce51fad3500ec6cfbda8",
"host": "i686-linux-gnu",
"archiveFileName": "avr-gcc-4.8.1-arduino-i686-pc-linux-gnu.tar.bz2",
"url": "http://arduino.cc/download.php?f=/tools/avr-gcc-4.8.1-arduino-i686-pc-linux-gnu.tar.bz2"
},
{
"size": "46816142",
"checksum": "SHA-256:25d114605a247fd4d3ad95f73caf1a2d453b5656524c6cafc5b23cae787d104b",
"host": "i686-mingw32",
"archiveFileName": "avr-gcc-4.8.1-arduino-i686-mingw32.zip",
"url": "http://arduino.cc/download.php?f=/tools/avr-gcc-4.8.1-arduino-i686-mingw32.zip"
}
]
},
{
"name": "avrdude",
"version": "6.0.1-arduino",
"systems": [
{
"size": "264817",
"checksum": "SHA-256:310ac863267de23673a9e8164d6058b0d6a33a1e8009bbc2f34c8a09ddefe546",
"host": "i386-apple-darwin11",
"archiveFileName": "avrdude-6.0.1-arduino-i386-apple-darwin11.tar.bz2",
"url": "http://arduino.cc/download.php?f=/tools/avrdude-6.0.1-arduino-i386-apple-darwin11.tar.bz2"
},
{
"size": "292575",
"checksum": "SHA-256:914adfb769cf7e99e52601a48dccc9f8806b8768e1ceeba81f9286df13af2342",
"host": "x86_64-linux-gnu",
"archiveFileName": "avrdude-6.0.1-arduino-x86_64-pc-linux-gnu.tar.bz2",
"url": "http://arduino.cc/download.php?f=/tools/avrdude-6.0.1-arduino-x86_64-pc-linux-gnu.tar.bz2"
},
{
"size": "283166",
"checksum": "SHA-256:20f278697c1d96b9ae7cf0eecd55d128912244f88fc4e8352bf33b20ac301d4c",
"host": "i686-linux-gnu",
"archiveFileName": "avrdude-6.0.1-arduino-i686-pc-linux-gnu.tar.bz2",
"url": "http://arduino.cc/download.php?f=/tools/avrdude-6.0.1-arduino-i686-pc-linux-gnu.tar.bz2"
},
{
"size": "241621",
"checksum": "SHA-256:724c7fcfd456ec94b0041fa4e18c76fad48a57cff60681b946ae76e282583bcc",
"host": "i686-mingw32",
"archiveFileName": "avrdude-6.0.1-arduino-i686-mingw32.zip",
"url": "http://arduino.cc/download.php?f=/tools/avrdude-6.0.1-arduino-i686-mingw32.zip"
}
]
}
]
}
]
}

View File

@ -0,0 +1 @@
3df5d4c783f09c34efc5d70dd3376638dca09de2

View File

@ -0,0 +1 @@
bb7fcc3aae19f73a79b8e96d093902f7188fb57c