summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrey Christoforo2019-09-24 10:49:18 +0100
committerGrey Christoforo2019-09-24 10:50:53 +0100
commit895b2970fa96834b63bc1137a7af2e303ea752e2 (patch)
treeb2da674302d63b17032d4d581f178ee8cb985f61
downloadaur-895b2970fa96834b63bc1137a7af2e303ea752e2.tar.gz
initial commit
add srcinfo
-rw-r--r--.SRCINFO46
-rw-r--r--.gitignore6
-rw-r--r--PKGBUILD100
-rw-r--r--arduino.install40
-rw-r--r--arduino.sh3
-rw-r--r--avr-core.patch26
-rw-r--r--build.patch239
7 files changed, 460 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..1ba21da2970b
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,46 @@
+pkgbase = arduino-rc
+ pkgdesc = Arduino prototyping platform SDK -- stable and release candidates
+ pkgver = 1.8.10
+ pkgrel = 1
+ epoch = 1
+ url = https://github.com/arduino/Arduino
+ install = arduino.install
+ arch = x86_64
+ license = GPL
+ license = LGPL
+ makedepends = java-environment>=8
+ makedepends = ant
+ makedepends = unzip
+ depends = gtk2
+ depends = desktop-file-utils
+ depends = shared-mime-info
+ depends = java-runtime>=8
+ depends = arduino-builder
+ optdepends = arduino-docs: Offline documentation for arduino
+ optdepends = arduino-avr-core: AVR core with upstream avr-gcc and avrdude
+ optdepends = python2: Intel Galileo Board installation
+ options = !strip
+ source = arduino-rc-1.8.10.tar.xz::https://github.com/arduino/Arduino/releases/download/1.8.10/arduino-1.8.10.tar.xz
+ source = arduino-rc-1.8.10.tar.xz.asc::https://github.com/arduino/Arduino/releases/download/1.8.10/arduino-1.8.10.tar.xz.asc
+ source = https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip
+ source = https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip.asc
+ source = https://downloads.arduino.cc/libastylej-2.05.1-4.zip
+ source = https://downloads.arduino.cc/libastylej-2.05.1-4.zip.asc
+ source = https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip
+ source = https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip.asc
+ source = arduino.sh
+ source = avr-core.patch
+ validpgpkeys = 326567C1C6B288DF32CB061A95FA6F43E21188C4
+ sha512sums = 7ab27c4a0b7dc5b6e264360fcb90bac9c5a67a2297c241ecd672fe75aff8145ed2372741d6dfc571cf1074ee6105c2fe5f7dff64ed0db5df987c1f06ab34aeb8
+ sha512sums = SKIP
+ sha512sums = 9ddece48bf5c2c73b8e95b7e017894b7ed9341dafbe37fd4bffd6faa65def29b7578e5860b4dfbfac0a3f738c3907d2073891d47f57b41b416c9a7d068f57af1
+ sha512sums = SKIP
+ sha512sums = 92ecaf24c64aaefafffe7bcdb6ae327f61dc6b9952546cb8cfad51aa1d01be7e1f5c33138f1bd2cd7cd466820ea991e0e5ad3cca62de7a543971aacbe33b06ac
+ sha512sums = SKIP
+ sha512sums = 80f27ef196a205dc512f0aebb426765f2536a00059a633929bbdcfea81d7fb9fec31b27322c534a3e5953240a2906e89914562b0be0649053206a1941f659b58
+ sha512sums = SKIP
+ sha512sums = d10fae26d9f7c162c8c46e15c2d8d98a222a05c69463e2646e8e12f5b32e8c2673d4684ea01adc81d5da9c7f4edab2e4f83b77214b6fe24b232a1590f62ced2f
+ sha512sums = 98acc50198334cd2e9c91a1265d9bacd95998bb2a1926141e94311defc0ef77c24e3653c77591055ee5695b7fb8cefd1b12c339a9d0167d4ae8581b2f780f0ef
+
+pkgname = arduino-rc
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..ac1ac99a9881
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+src/
+pkg/
+*.zip
+*.asc
+*.tar.gz
+*.tar.xz
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..de404377523a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,100 @@
+
+pkgname=arduino-rc
+pkgver=1.8.10
+pkgrel=1
+epoch=1
+pkgdesc="Arduino prototyping platform SDK -- stable and release candidates"
+arch=('x86_64')
+url="https://github.com/arduino/Arduino"
+license=('GPL' 'LGPL')
+depends=('gtk2' 'desktop-file-utils' 'shared-mime-info' 'java-runtime>=8' 'arduino-builder')
+makedepends=('java-environment>=8' 'ant' 'unzip')
+optdepends=('arduino-docs: Offline documentation for arduino'
+ 'arduino-avr-core: AVR core with upstream avr-gcc and avrdude'
+ 'python2: Intel Galileo Board installation')
+options=(!strip)
+install="arduino.install"
+source=("${pkgname}-${pkgver}.tar.xz::https://github.com/arduino/Arduino/releases/download/${pkgver}/arduino-${pkgver}.tar.xz"
+ "${pkgname}-${pkgver}.tar.xz.asc::https://github.com/arduino/Arduino/releases/download/${pkgver}/arduino-${pkgver}.tar.xz.asc"
+ "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip"
+ "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip.asc"
+ "https://downloads.arduino.cc/libastylej-2.05.1-4.zip"
+ "https://downloads.arduino.cc/libastylej-2.05.1-4.zip.asc"
+ "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip"
+ "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip.asc"
+ "arduino.sh"
+ "avr-core.patch")
+sha512sums=('7ab27c4a0b7dc5b6e264360fcb90bac9c5a67a2297c241ecd672fe75aff8145ed2372741d6dfc571cf1074ee6105c2fe5f7dff64ed0db5df987c1f06ab34aeb8'
+ 'SKIP'
+ '9ddece48bf5c2c73b8e95b7e017894b7ed9341dafbe37fd4bffd6faa65def29b7578e5860b4dfbfac0a3f738c3907d2073891d47f57b41b416c9a7d068f57af1'
+ 'SKIP'
+ '92ecaf24c64aaefafffe7bcdb6ae327f61dc6b9952546cb8cfad51aa1d01be7e1f5c33138f1bd2cd7cd466820ea991e0e5ad3cca62de7a543971aacbe33b06ac'
+ 'SKIP'
+ '80f27ef196a205dc512f0aebb426765f2536a00059a633929bbdcfea81d7fb9fec31b27322c534a3e5953240a2906e89914562b0be0649053206a1941f659b58'
+ 'SKIP'
+ 'd10fae26d9f7c162c8c46e15c2d8d98a222a05c69463e2646e8e12f5b32e8c2673d4684ea01adc81d5da9c7f4edab2e4f83b77214b6fe24b232a1590f62ced2f'
+ '98acc50198334cd2e9c91a1265d9bacd95998bb2a1926141e94311defc0ef77c24e3653c77591055ee5695b7fb8cefd1b12c339a9d0167d4ae8581b2f780f0ef')
+validpgpkeys=('326567C1C6B288DF32CB061A95FA6F43E21188C4') # Arduino Packages <support@arduino.cc>
+
+prepare()
+{
+ patch --strip=1 < avr-core.patch
+}
+
+build() {
+ cd "Arduino-master-${pkgver}/build"
+
+ # Compile with java8
+ export PATH=/usr/lib/jvm/default/bin/:"$PATH"
+
+ # Do not include their avr-core + tools and no docs. We build them seperately
+ ant clean dist -Dversion="${pkgver}" build -Dlight_bundle=true \
+ -Dno_docs=true \
+ -Dlocal_sources=true \
+ -Dno_arduino_builder=true
+}
+
+package() {
+ cd "Arduino-master-${pkgver}/build/linux/work"
+
+ # Create directories
+ install -dm755 "${pkgdir}/usr/share/"{doc,icons/hicolor,applications,mime/packages}
+
+ # Copy the whole SDK
+ cp -a . "${pkgdir}/usr/share/arduino"
+
+ # Create wrapper for java8 + buider and documentation symlink
+ install -Dm755 "${srcdir}/arduino.sh" "${pkgdir}/usr/bin/arduino"
+
+ # Link arduino-builder, libastylej, libserialport and docs
+ # TODO astyle libserialport do not work yet
+ # TODO remove unzip dependency once all deps are resolved
+ # https://github.com/arduino/ctags/issues/12
+ # https://github.com/arduino/Arduino/issues/5538
+ # https://github.com/arduino/listSerialPortsC/issues/9
+
+ # Arduino-builder
+ # https://bugs.archlinux.org/task/52377
+ # https://github.com/arduino/arduino-builder/issues/209
+ ln -s /usr/bin/arduino-builder "${pkgdir}/usr/share/arduino/arduino-builder"
+ install -dm755 "${pkgdir}/usr/share/arduino/tools-builder"
+
+ #rm "${pkgdir}/usr/share/arduino/lib/libastylej.so"
+ #ln -s /usr/lib/libastyle-2.05.1.so "${pkgdir}/usr/share/arduino/lib/libastylej.so"
+ #rm "${pkgdir}/usr/share/arduino/lib/liblistSerialsj.so"
+ #ln -s /usr/lib/libserialport.so "${pkgdir}/usr/share/arduino/lib/liblistSerialsj.so"
+ rm -r "${pkgdir}/usr/share/arduino/reference"
+ ln -s /usr/share/doc/arduino "${pkgdir}/usr/share/arduino/reference"
+
+ # Install desktop icons (keep a symlink for the arduino binary)
+ cp -a lib/icons/* "${pkgdir}/usr/share/icons/hicolor"
+ rm -rf "${pkgdir}/usr/share/arduino/lib/icons"
+ ln -s /usr/share/icons/hicolor "${pkgdir}/usr/share/arduino/lib/icons"
+
+ # Create desktop file using existing template
+ sed "s,<BINARY_LOCATION>,arduino %U,g;s,<ICON_NAME>,arduino,g" "lib/desktop.template" \
+ > "${pkgdir}/usr/share/applications/arduino.desktop"
+
+ # Install Arduino mime type
+ ln -s /usr/share/arduino/lib/arduino-arduinoide.xml "${pkgdir}/usr/share/mime/packages/arduino.xml"
+}
diff --git a/arduino.install b/arduino.install
new file mode 100644
index 000000000000..1634f6036117
--- /dev/null
+++ b/arduino.install
@@ -0,0 +1,40 @@
+post_install() {
+ echo ":: Add yourself to the uucp group to access the serial ports:"
+ echo " sudo usermod -a -G uucp <user>"
+ echo " Please checkout the wiki for further information."
+}
+
+pre_upgrade() {
+ if [[ $(vercmp 1:1.6.12-1 "$2") -eq 1 ]]; then
+ echo "If arduino fails to install try to manually remove it first:"
+ echo "sudo pacman -Rs arduino"
+ fi
+}
+
+_1:1.6.12_1_changes() {
+ echo ":: arduino is now split into arduino-builder, arduino-avr-core and arduino-docs"
+ echo " If arduino fails to run, check for a zombie folder:"
+ echo " ls -la /usr/share/arduino/hardware/avr"
+ echo " It might be left from a very old upgrade. Please remove it."
+}
+
+_1:1.8.2_1_changes() {
+ echo ":: Setting new permissions (775 -> 755) for /usr/share/arduino/tools/WiFi101/ and subfolders"
+ chmod 755 /usr/share/arduino/tools/WiFi101/
+ chmod 755 /usr/share/arduino/tools/WiFi101/tool/
+ chmod 755 /usr/share/arduino/tools/WiFi101/tool/firmwares/
+ chmod 755 /usr/share/arduino/tools/WiFi101/tool/firmwares/19.4.4/
+}
+
+post_upgrade() {
+ local v upgrades=(
+ 1:1.6.12-1
+ 1:1.8.2-1
+ )
+
+ for v in "${upgrades[@]}"; do
+ if [[ $(vercmp "$v" "$2") -eq 1 ]]; then
+ "_${v//-/_}_changes"
+ fi
+ done
+}
diff --git a/arduino.sh b/arduino.sh
new file mode 100644
index 000000000000..cde41c8992fe
--- /dev/null
+++ b/arduino.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+export PATH=/usr/lib/jvm/default-runtime/bin/:"$PATH"
+exec /usr/share/arduino/arduino "$@"
diff --git a/avr-core.patch b/avr-core.patch
new file mode 100644
index 000000000000..ca31be8a9468
--- /dev/null
+++ b/avr-core.patch
@@ -0,0 +1,26 @@
+diff --unified --recursive --text src.ori/Arduino-master-1.8.9/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java src.new/Arduino-master-1.8.9/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java
+--- src.ori/Arduino-master-1.8.9/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java 2019-03-15 15:14:01.000000000 +0100
++++ src.new/Arduino-master-1.8.9/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java 2019-05-20 17:20:47.402857561 +0200
+@@ -215,7 +215,7 @@
+ }
+
+ private void syncBuiltInHardware() throws IOException {
+- if (index == null) {
++ if (index == null || builtInHardwareFolder == null) {
+ return;
+ }
+ for (File folder : builtInHardwareFolder.listFiles(ONLY_DIRS)) {
+diff --unified --recursive --text src.ori/Arduino-master-1.8.9/arduino-core/src/processing/app/BaseNoGui.java src.new/Arduino-master-1.8.9/arduino-core/src/processing/app/BaseNoGui.java
+--- src.ori/Arduino-master-1.8.9/arduino-core/src/processing/app/BaseNoGui.java 2019-03-15 15:14:01.000000000 +0100
++++ src.new/Arduino-master-1.8.9/arduino-core/src/processing/app/BaseNoGui.java 2019-05-20 17:21:55.776950094 +0200
+@@ -676,7 +676,9 @@
+ // Libraries located in the latest folders on the list can override
+ // other libraries with the same name.
+ librariesIndexer.setLibrariesFolders(librariesFolders);
+- librariesIndexer.setArchitecturePriority(getTargetPlatform().getId());
++ if (getTargetPlatform() != null) {
++ librariesIndexer.setArchitecturePriority(getTargetPlatform().getId());
++ }
+ librariesIndexer.rescanLibraries();
+
+ populateImportToLibraryTable();
diff --git a/build.patch b/build.patch
new file mode 100644
index 000000000000..cb333b0266f8
--- /dev/null
+++ b/build.patch
@@ -0,0 +1,239 @@
+diff -aur Arduino-1.8.0/build/build.xml Arduino-1.8.0_new/build/build.xml
+--- Arduino-1.8.0/build/build.xml 2016-12-21 16:12:44.000000000 +0100
++++ Arduino-1.8.0_new/build/build.xml 2016-12-23 23:20:06.520217000 +0100
+@@ -178,29 +178,7 @@
+
+ <mkdir dir="${target.path}/reference"/>
+
+- <!-- Unzip documentation -->
+- <antcall target="unzip">
+- <param name="archive_file" value="shared/reference-1.6.6-3.zip" />
+- <param name="archive_url" value="http://downloads.arduino.cc/reference-1.6.6-3.zip" />
+- <param name="final_folder" value="${target.path}/reference/www.arduino.cc" />
+- <param name="dest_folder" value="${target.path}/reference/" />
+- </antcall>
+- <antcall target="unzip">
+- <param name="archive_file" value="shared/Galileo_help_files-1.6.2.zip" />
+- <param name="archive_url" value="http://downloads.arduino.cc/Galileo_help_files-1.6.2.zip" />
+- <param name="final_folder" value="${target.path}/reference/Galileo_help_files" />
+- <param name="dest_folder" value="${target.path}/reference/" />
+- </antcall>
+- <antcall target="unzip">
+- <param name="archive_file" value="shared/Edison_help_files-1.6.2.zip" />
+- <param name="archive_url" value="http://downloads.arduino.cc/Edison_help_files-1.6.2.zip" />
+- <param name="final_folder" value="${target.path}/reference/Edison_help_files" />
+- <param name="dest_folder" value="${target.path}/reference/" />
+- </antcall>
+-
+- <!-- Fix wrong permissions from zip file root folder -->
+- <chmod perm="755" dir="${target.path}/reference/Galileo_help_files" />
+- <chmod perm="755" dir="${target.path}/reference/Edison_help_files" />
++ <antcall target="assemble-docs" />
+
+ <!-- Write the revision file! -->
+ <echo file="${target.path}/lib/version.txt" message="${version}" />
+@@ -216,8 +194,35 @@
+ </antcall>
+ </target>
+
++ <target name="assemble-docs" unless="no_docs">
++ <!-- Unzip documentation -->
++ <antcall target="unzip">
++ <param name="archive_file" value="shared/reference-1.6.6-3.zip" />
++ <param name="archive_url" value="http://downloads.arduino.cc/reference-1.6.6-3.zip" />
++ <param name="final_folder" value="${target.path}/reference/www.arduino.cc" />
++ <param name="dest_folder" value="${target.path}/reference/" />
++ </antcall>
++ <antcall target="unzip">
++ <param name="archive_file" value="shared/Galileo_help_files-1.6.2.zip" />
++ <param name="archive_url" value="http://downloads.arduino.cc/Galileo_help_files-1.6.2.zip" />
++ <param name="final_folder" value="${target.path}/reference/Galileo_help_files" />
++ <param name="dest_folder" value="${target.path}/reference/" />
++ </antcall>
++ <antcall target="unzip">
++ <param name="archive_file" value="shared/Edison_help_files-1.6.2.zip" />
++ <param name="archive_url" value="http://downloads.arduino.cc/Edison_help_files-1.6.2.zip" />
++ <param name="final_folder" value="${target.path}/reference/Edison_help_files" />
++ <param name="dest_folder" value="${target.path}/reference/" />
++ </antcall>
++
++ <!-- Fix wrong permissions from zip file root folder -->
++ <chmod perm="755" dir="${target.path}/reference/Galileo_help_files" />
++ <chmod perm="755" dir="${target.path}/reference/Edison_help_files" />
++ </target>
++
+ <!-- copy library folder -->
+- <target name="assemble-libraries" unless="light_bundle">
++ <target name="assemble-libraries" depends="assemble-libraries-full, assemble-libraries-light" />
++ <target name="assemble-libraries-full" unless="light_bundle">
+ <copy todir="${target.path}/libraries">
+ <fileset dir="../libraries"/>
+ </copy>
+@@ -235,6 +240,9 @@
+ <download-library name="SD" version="1.1.0"/>
+ <download-library githubuser="Adafruit" name="Adafruit_CircuitPlayground" version="1.6.4"/>
+ </target>
++ <target name="assemble-libraries-light" if="light_bundle">
++ <mkdir dir="${target.path}/libraries" />
++ </target>
+
+ <macrodef name="download-library">
+ <attribute name="name"/>
+@@ -253,13 +261,17 @@
+ </macrodef>
+
+ <!-- copy hardware folder -->
+- <target name="assemble-hardware" unless="light_bundle">
++ <target name="assemble-hardware" depends="assemble-hardware-full, assemble-hardware-light" />
++ <target name="assemble-hardware-full" unless="light_bundle">
+ <copy todir="${target.path}/hardware">
+ <fileset dir="../hardware">
+ <exclude name="arduino/sam/**"/>
+ </fileset>
+ </copy>
+ </target>
++ <target name="assemble-hardware-light" if="light_bundle">
++ <copy file="../hardware/package_index_bundled.json" todir="${target.path}/hardware" />
++ </target>
+
+ <!-- - - - - - - - - -->
+ <!-- Revision check -->
+@@ -468,21 +480,7 @@
+ <copy file="macosx/liblistSerials-${LIBLISTSERIAL-VERSION}/osx/liblistSerialsj.dylib" todir="macosx/work/${staging_hardware_folder}/../lib/" />
+ <chmod perm="755" file="macosx/work/${staging_hardware_folder}/../lib/liblistSerialsj.dylib" />
+
+- <delete dir="${staging_folder}/arduino-builder-macosx" includeemptydirs="true"/>
+- <mkdir dir="${staging_folder}/arduino-builder-macosx"/>
+- <antcall target="untar">
+- <param name="archive_file" value="./arduino-builder-macosx-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="archive_url" value="http://downloads.arduino.cc/tools/arduino-builder-macosx-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="final_folder" value="${staging_folder}/arduino-builder-macosx/arduino-builder" />
+- <param name="dest_folder" value="${staging_folder}/arduino-builder-macosx" />
+- </antcall>
+- <copy file="${staging_folder}/arduino-builder-macosx/arduino-builder" tofile="macosx/work/${staging_hardware_folder}/../arduino-builder" />
+- <chmod perm="755" file="macosx/work/${staging_hardware_folder}/../arduino-builder" />
+- <move file="${staging_folder}/arduino-builder-macosx/tools" tofile="macosx/work/${staging_hardware_folder}/../tools-builder"/>
+- <copy todir="macosx/work/${staging_hardware_folder}" overwrite="true">
+- <fileset dir="${staging_folder}/arduino-builder-macosx/hardware" includes="*.txt"/>
+- </copy>
+- <delete dir="${staging_folder}/arduino-builder-macosx" includeemptydirs="true"/>
++ <antcall target="build-arduino-builder" />
+
+ <antcall target="portable-${portable}">
+ <param name="parentdir" value="macosx/work/${staging_hardware_folder}/.." />
+@@ -702,21 +700,7 @@
+ <param name="JVM" value="${LINUXARM_BUNDLED_JVM}"/>
+ </antcall>
+
+- <delete dir="${staging_folder}/arduino-builder-arm" includeemptydirs="true"/>
+- <mkdir dir="${staging_folder}/arduino-builder-arm"/>
+- <antcall target="untar">
+- <param name="archive_file" value="./arduino-builder-arm-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="archive_url" value="http://downloads.arduino.cc/tools/arduino-builder-arm-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="final_folder" value="${staging_folder}/arduino-builder-arm/arduino-builder" />
+- <param name="dest_folder" value="${staging_folder}/arduino-builder-arm" />
+- </antcall>
+- <copy file="${staging_folder}/arduino-builder-arm/arduino-builder" tofile="linux/work/arduino-builder" />
+- <chmod perm="755" file="linux/work/arduino-builder" />
+- <move file="${staging_folder}/arduino-builder-arm/tools" tofile="linux/work/tools-builder"/>
+- <copy todir="linux/work/hardware" overwrite="true">
+- <fileset dir="${staging_folder}/arduino-builder-arm/hardware" includes="*.txt"/>
+- </copy>
+- <delete dir="${staging_folder}/arduino-builder-arm" includeemptydirs="true"/>
++ <antcall target="build-arduino-builder" />
+
+ <antcall target="avr-toolchain-bundle">
+ <param name="unpack_target" value="untar"/>
+@@ -734,21 +718,7 @@
+ <param name="JVM" value="${LINUX32_BUNDLED_JVM}"/>
+ </antcall>
+
+- <delete dir="${staging_folder}/arduino-builder-linux32" includeemptydirs="true"/>
+- <mkdir dir="${staging_folder}/arduino-builder-linux32"/>
+- <antcall target="untar">
+- <param name="archive_file" value="./arduino-builder-linux32-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="archive_url" value="http://downloads.arduino.cc/tools/arduino-builder-linux32-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="final_folder" value="${staging_folder}/arduino-builder-linux32/arduino-builder" />
+- <param name="dest_folder" value="${staging_folder}/arduino-builder-linux32" />
+- </antcall>
+- <copy file="${staging_folder}/arduino-builder-linux32/arduino-builder" tofile="linux/work/arduino-builder" />
+- <chmod perm="755" file="linux/work/arduino-builder" />
+- <move file="${staging_folder}/arduino-builder-linux32/tools" tofile="linux/work/tools-builder"/>
+- <copy todir="linux/work/hardware" overwrite="true">
+- <fileset dir="${staging_folder}/arduino-builder-linux32/hardware" includes="*.txt"/>
+- </copy>
+- <delete dir="${staging_folder}/arduino-builder-linux32" includeemptydirs="true"/>
++ <antcall target="build-arduino-builder" />
+
+ <antcall target="avr-toolchain-bundle">
+ <param name="unpack_target" value="untar"/>
+@@ -766,21 +736,7 @@
+ <param name="JVM" value="${LINUX64_BUNDLED_JVM}"/>
+ </antcall>
+
+- <delete dir="${staging_folder}/arduino-builder-linux64" includeemptydirs="true"/>
+- <mkdir dir="${staging_folder}/arduino-builder-linux64"/>
+- <antcall target="untar">
+- <param name="archive_file" value="./arduino-builder-linux64-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="archive_url" value="http://downloads.arduino.cc/tools/arduino-builder-linux64-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
+- <param name="final_folder" value="${staging_folder}/arduino-builder-linux64/arduino-builder" />
+- <param name="dest_folder" value="${staging_folder}/arduino-builder-linux64" />
+- </antcall>
+- <copy file="${staging_folder}/arduino-builder-linux64/arduino-builder" tofile="linux/work/arduino-builder" />
+- <chmod perm="755" file="linux/work/arduino-builder" />
+- <move file="${staging_folder}/arduino-builder-linux64/tools" tofile="linux/work/tools-builder"/>
+- <copy todir="linux/work/hardware" overwrite="true">
+- <fileset dir="${staging_folder}/arduino-builder-linux64/hardware" includes="*.txt"/>
+- </copy>
+- <delete dir="${staging_folder}/arduino-builder-linux64" includeemptydirs="true"/>
++ <antcall target="build-arduino-builder" />
+
+ <antcall target="avr-toolchain-bundle">
+ <param name="unpack_target" value="untar"/>
+@@ -823,6 +779,24 @@
+ <exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
+ </target>
+
++ <target name="build-arduino-builder" unless="no_arduino_builder">
++ <delete dir="${staging_folder}/arduino-builder-${platform}" includeemptydirs="true"/>
++ <mkdir dir="${staging_folder}/arduino-builder-${platform}"/>
++ <antcall target="untar">
++ <param name="archive_file" value="./arduino-builder-${platform}-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
++ <param name="archive_url" value="https://downloads.arduino.cc/tools/arduino-builder-${platform}-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
++ <param name="final_folder" value="${staging_folder}/arduino-builder-${platform}/arduino-builder" />
++ <param name="dest_folder" value="${staging_folder}/arduino-builder-${platform}" />
++ </antcall>
++ <copy file="${staging_folder}/arduino-builder-${platform}/arduino-builder" tofile="linux/work/arduino-builder" />
++ <chmod perm="755" file="linux/work/arduino-builder" />
++ <move file="${staging_folder}/arduino-builder-${platform}/tools" tofile="linux/work/tools-builder"/>
++ <copy todir="linux/work/hardware" overwrite="true">
++ <fileset dir="${staging_folder}/arduino-builder-${platform}/hardware" includes="*.txt"/>
++ </copy>
++ <delete dir="${staging_folder}/arduino-builder-${platform}" includeemptydirs="true"/>
++ </target>
++
+ <!-- Set '${dist_file}_available' property if toolchain dist_file is downloaded -->
+ <!-- Set '${dist_file}_installed' property if toolchain is installed in working directory -->
+ <!-- hardware/tools/${dist_check_file} is checked for existence -->
+@@ -833,8 +807,21 @@
+
+ <!-- Retrieve tool -->
+ <target name="untar-unzip-download" depends="untar-unzip-check" unless="${archive_file}_available">
++ <antcall target="untar-unzip-download-web" />
++ <antcall target="untar-unzip-download-local" />
++ </target>
++ <target name="untar-unzip-download-web" unless="local_sources">
+ <get src="${archive_url}" dest="${archive_file}" verbose="true" ignoreerrors="true" />
+ </target>
++ <target name="untar-unzip-download-local" if="local_sources">
++ <basename file="${archive_file}" property="basename" />
++ <echo>Skipping download of ${archive_url}, using makepkg downloaded ${basename}</echo>
++ <exec executable="ln" failonerror="true">
++ <arg value="-s" />
++ <arg value="${basedir}/../../${basename}" />
++ <arg value="${archive_file}" />
++ </exec>
++ </target>
+
+ <target name="untar-unzip-checksum" depends="untar-unzip-download">
+ <echo>Testing checksum of "${archive_file}"</echo>