summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVirgil Dupras <hsoft@hardcoded.net>2018-02-12 15:34:17 -0500
committerAmy Liffey <amynka@gentoo.org>2018-03-06 20:58:56 +0100
commit680fcc66df3489c5a3c2b5adf848c36200f6693a (patch)
treec1d509bf379ea77a4053f75b011f865a1875a57c /dev-embedded/arduino
parentdev-embedded/arduino-listserialportsc: add package (diff)
downloadgentoo-680fcc66df3489c5a3c2b5adf848c36200f6693a.tar.gz
gentoo-680fcc66df3489c5a3c2b5adf848c36200f6693a.tar.bz2
gentoo-680fcc66df3489c5a3c2b5adf848c36200f6693a.zip
dev-embedded/arduino: bump to 1.8.5
This is a major rewrite for a major bump. As we can see in the bug referred below, a *lot* of work can be poured into this ebuild but we can also see that having too large a scope makes us never bump. Thus, I opted for a bump that didn't widen the scope of the v1.0.5 ebuild. We can always improve upon this ebuild later. This work is strongly inspired by maurerpe's fine work at https://github.com/maurerpe/arduino-overlay/tree/master/dev-embedded/arduino-ide but I scaled down the unbundling effort for simplicity's sake. Closes: https://bugs.gentoo.org/525882 Closes: https://github.com/gentoo/gentoo/pull/7166 Package-Manager: Portage-2.3.19, Repoman-2.3.6
Diffstat (limited to 'dev-embedded/arduino')
-rw-r--r--dev-embedded/arduino/Manifest19
-rw-r--r--dev-embedded/arduino/arduino-1.8.5.ebuild166
-rw-r--r--dev-embedded/arduino/files/arduino-1.8.5-avr-platform.txt.patch26
-rw-r--r--dev-embedded/arduino/files/arduino-1.8.5-build.xml.patch31
-rw-r--r--dev-embedded/arduino/files/arduino-1.8.5-lib-loading.patch26
-rw-r--r--dev-embedded/arduino/metadata.xml5
6 files changed, 272 insertions, 1 deletions
diff --git a/dev-embedded/arduino/Manifest b/dev-embedded/arduino/Manifest
index 449f3db6abc3..ebb1d7f130eb 100644
--- a/dev-embedded/arduino/Manifest
+++ b/dev-embedded/arduino/Manifest
@@ -1,3 +1,22 @@
DIST arduino-1.0.5-src.tar.gz 40526292 BLAKE2B 3844d5f644af94adbb8fb6fa2f80640ae823d2455d0c2e175bc614a281ce5ece0bd111ecd3661d8ab2f2017781b8b1753b215b705090e449be0525b5ec009a4b SHA512 0401bf6051a48d343f9e4e822446a846b2c6446c68949efe5daf5f5445114312eecb9c99a4565ab2e2f80831aaa32122ecc21f81c8a97136704482cd0f1f1c00
+DIST arduino-1.8.5-Adafruit_CircuitPlayground-1.6.8.zip 404619 BLAKE2B 993ec1282cc711b814db99fe1e4b50a2a6e6559722872e8fbcbb42e022c0e3611e10a4a0285468f82241eb5e15c0f91ff49ae9f2e0190d80a674cba51c93eae6 SHA512 0f0d32841bb6987edfc0e9aa0af8d0f7cf68dd33bf07ff0ec4cdd0d9733bb092b97a4810d7a0828e1d38fb25ec58e8fd3c023f70dffa3b1397386a902c932491
+DIST arduino-1.8.5-Bridge-1.6.3.zip 64717 BLAKE2B cb20da7b1db33ad89bd5fcadd01035592b664a7aaa98c27463fad643deba0b1d7e48b341f75f2564716f5b32e800b96934202c683b9a68c628d5af01662c9b7e SHA512 6836580af17b9fbc1ce39821c2e3891bb2f240904a30e66110a03837a24979093ad88819dc333fa5b47ceff6f6ef17552004356bc71200a2e7b09d2182e91fc5
+DIST arduino-1.8.5-Edison_help_files-1.6.2.zip 3321743 BLAKE2B 5d760ba329741cac27253fb439cf98381c0c0d7327f0c22f61cffc23c48d655278280185e5a7f6c85f3d182cacad4626eb9fe6cc2aaf7d2965bb377e2f39bbaa SHA512 63d4005036b43f09347814433578e8c75a7af5caa0923516deab146ef0867af4e60aad0c9d5d47870dcec0ddb4e5396363e4312425f95a8d8da8725f77da8f3a
+DIST arduino-1.8.5-Esplora-1.0.4.zip 22985 BLAKE2B 799936d5d57b2f054e0f7daf421e9e8657b0867c8b417f28afbd3630d2a5ec08b844b855a3b003d649856713372b32861e36dc97c9bbe865c6a1ff05eac4a7ab SHA512 10665b20d907d586bbe22345799e989b835aaa188040b269ed2925a7b4990c6fb368f0e5afd6c4bed265f2baafc815839ff7c53b5da4940e5338090f39e9c13b
+DIST arduino-1.8.5-Firmata-2.5.6.zip 194883 BLAKE2B b4df63b0417fddf8e71d55373d387650afe47de59d526a0cf546b159c83f8bdeb6fc10f62cec9e7e2755e77b357708d96550071045166b7d5ac1e29ecad34506 SHA512 95ec24ebc6033d4c54ab47f306df8d6d9ab0a666ab0f0123edf8e48cbd66e8c78ccbbd4ff1a4acc0ab16f83dd04957727386ed6d8034284ceec70a0462894526
+DIST arduino-1.8.5-Galileo_help_files-1.6.2.zip 4352077 BLAKE2B 16b99a57535ed77cdd69bb60dbb17085edfb2454b81a1b55b46310aa75e797bf784e39fb4642daf281ff92d9ade6f002cf359f98b95fc5225f66e63d189305fa SHA512 411fcfad9e9877078de62c02accd66ed5e44daf2979cad38c12962c22d73412d084670db77d5b50b3a32f35977961943e90d85ac80484f926468aa994f8b107b
+DIST arduino-1.8.5-Keyboard-1.0.1.zip 5802 BLAKE2B 2fc6d86d54c28d5c1ec5656188ddc159bd0725a966d782e908f9d9bc18a4fb8aadbc09e182e47e80bd08978537bf92b94acd7f5b68c4eb524f6ec71f5a1a0feb SHA512 583328acb8e771b59f3e5bed02892740bcd840baafe63f12850e2c43ae7d05ad31bcc19c5e591e73ab29165952d2a7669bbd07b234dd3abd4c38ea54baf22eec
+DIST arduino-1.8.5-LiquidCrystal-1.0.7.zip 19035 BLAKE2B 051048c871adc34697a12b95dc178e759895fd118a1a341d123155c2807434c6c5b5327e8e9c040b2916a0f06a81e7b27879692bd5813dfe0b2040497aa5002c SHA512 352cbffeaced5e52d1e2b8f118681ce435425bf87c0d1b6c384d11127f371ebcf4a026a0d0320fc324285f959d76b6a28cadba8e038e337d020beca847fcd985
+DIST arduino-1.8.5-Mouse-1.0.1.zip 4093 BLAKE2B 6c071c0bbbea6233ddb0a8573d0c8fbf45e0e83454522eb3040006da2db6baab86bfc3003e833a10807f25b81dfa1aac091256c5e55b882f7633c15bc9122b9a SHA512 be0edd798cafa327752c2d2906193be81bcd214a0f406aca646c043ee527e1c398bde8636b35710b4d02074f01c398147fe2bab7108626d80b4181c0c40aa313
+DIST arduino-1.8.5-RobotIRremote-2.0.0.zip 22611 BLAKE2B 8e2c0bd5356116ad6773f85ec364704f4c6cfd13dce89ded762b2603d68abf0854c66e32a2f0fad470ee433b7431f7c0a878f5f1fd763a770d936264d212b248 SHA512 ad38f813825137f60610d168d6352c871da6d8a39b4378764d82a997719c07c5c314816d8384e205599fc5da198465ed334a8794e7d477d55685eb8f7672acd4
+DIST arduino-1.8.5-Robot_Control-1.0.4.zip 119715 BLAKE2B dd73fc1608b96fbc52f484ffdb7a0a40659f5b7b24546a922b742d9d9c5ff9b82fed58f352485a5b988a7ceaf3259e5aa387d198eacb17d987a3ea6b1d7449ac SHA512 45f710dfc8084f9fcf1608a67978f72885aff06e2bbbcb2613f4e337df8621b0f952383a71a55198618b145df378a94321bd5be83929be897fdd95b6bb69cfe0
+DIST arduino-1.8.5-Robot_Motor-1.0.3.zip 15106 BLAKE2B 0ece114be5c11c1e77c6a2ee524e8cac957852948cba253edec5a0d471341e059ab111310aa21715527e19de800d309fe15b98d1fa326d538cfafe585f280304 SHA512 92d108cc2ddb64e2580fab2cb3a157efb76c5204256332527c3fff67ebb8e520621cdc178738132d4e9ee9e2bcde99968b8f9d3c97c10f7d153792e57cfad111
+DIST arduino-1.8.5-SD-1.1.1.zip 60981 BLAKE2B ef6f3a7d06d76ff203fd238c91aecfa3135b3e6777d982342b11126e118ca7934228b1bd06bcbd7215bef823658c13f9d361e874c5c2ecee811457abb74c15e7 SHA512 b24c2ac276cb531043665b835a1d372294a34ddc2dda12c117b26e4ff33e31975b880e878b17d5798dc18f106091c3b60b6546a672267cf8937c4b0245a85342
+DIST arduino-1.8.5-Servo-1.1.2.zip 27659 BLAKE2B f8eb68547078fe0ba6da88cb3eacdd25440b7c48a52499951111309b5ca331f4608130a74300a063b24c5e8870a1d003c5179b0e0468bde2791326ba141a1d7d SHA512 ade1d725c071e97dc027bc654a1c4b79d3cd6c75bf45bac9c3dfed394451b1661c2488217562515fbb8e29698c7df66e30f8178cea40c7f82056546aa857e348
+DIST arduino-1.8.5-SpacebrewYun-1.0.1.zip 12100 BLAKE2B 1dd4a244cb22f2d03804694db0c7d8dbbeedac58263e80a127060eecf9980146ffca8776123b71b16068f95fb42a16940226eb4239f8a1147ec9e0a76a195e3a SHA512 ec9f499db57d3f86e8615b1a56ae61781add99e9fe4c38ba9faa85d2f7d61090e345a63e8ba4a189c62650631ea5be5cbf22dfb39920a63873408a55c40ac133
+DIST arduino-1.8.5-Temboo-1.2.1.zip 187499 BLAKE2B 4f26317b21492697fa3bbce1fe2cdb34793bd5a1b1ca139dde286185f6403bfd5807e47ac8cd4fd3a6d33791e4bd00dcfb40d430ea2791c233940d489ebbee04 SHA512 4ce89b50cb93f85416b35dc218ad4d5fe0768032d146780d82f1d5d834a24dd831ecc4f1bcfa26d740643a3a7f297cdcec4d19bbf1216482d592d44dcbe2f27c
+DIST arduino-1.8.5-WiFi101-Updater-ArduinoIDE-Plugin-0.9.1.zip 703748 BLAKE2B be9a0e2ac5a890121a0ef59700ee9a001711d7357d1c9aedfac7ca8593ed6bdef32219a88003846d4a793a532a3ebb47cde28dbe4c93dbeef8567ad6fb36bf00 SHA512 f107e5ee544450cc7cabfc7eb43462d374a59446418b5ce3a9f3eb545b03fe6383f42e79eb6919fb4b6e621902cbb84f4fa7119f23b51aa770ebd020ffffdee9
+DIST arduino-1.8.5-reference-1.6.6-3.zip 7004842 BLAKE2B 49d0d41fb499c15f06c8cb8d8211e5039ee9843a6629f305762b262a5bf199e4bbe7fea4716b7734403dc7e83ce35a963035b3a2c0d6a198a4218e7472b18d74 SHA512 65962322b6dcb15da6c119d47c382052d1183772c855b8e8fcdd108b54e730e2374d93741737f3b51e57288a0e8842a6a7f79dce4377ea3630293e6c3e7e8b73
+DIST arduino-1.8.5.tar.gz 48219839 BLAKE2B b031ccd601c42adce0ef06b69bd6103996d7a2a29a4640ab2518bb607e17d90524e1f7dc9861c096df90b0f0a439c5ee8867912b53cb925309dd7e0f6ddf3b54 SHA512 f01b0401edc7ea5d58cb475776b816d05f289060613dd452ca71ecaf4a3a95c5e9ddb5f2cf06d3c165e9e0540c895f9eaea896a7974c88834de569944c4adbd2
DIST arduino-icons.tar.bz2 58775 BLAKE2B 20f230394a8d725eaf7300f66105b09b31eb96aad8798f325d9e5eec6a1aec8319deb561d1b76d47d08dc6663ec11b6b991e057b88d6619c16a80cf0e10959e1 SHA512 b750e79d6117f5df619f2b765dad6e64f0ba4aa3314b0b6e00801577e3ea1f15951ba15efe7a00f5317285a19ac29ac41c78b71342f45cd164c794a42bafcdd9
DIST arduino-src-1.0.5.tar.gz 235284641 BLAKE2B 7e7ed1305be468dff5ee32238e51b56c214bb993531c67a5ed178a267b5ff8b0f5303aa2a539b64ac40b20278d0206513c3b26f74dd9120058d97fabbbafef27 SHA512 0a40203b8a31c4d9288500962ada7f5083c280a84d8c56ab7da2d1326e1c02a908a96db589ab10bafc115abefe010bf23f6994c08e43c86a4ac10c2d4ab93ec2
diff --git a/dev-embedded/arduino/arduino-1.8.5.ebuild b/dev-embedded/arduino/arduino-1.8.5.ebuild
new file mode 100644
index 000000000000..789545798dae
--- /dev/null
+++ b/dev-embedded/arduino/arduino-1.8.5.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit java-pkg-2 java-ant-2 gnome2-utils
+
+DESCRIPTION="An open-source AVR electronics prototyping platform"
+HOMEPAGE="http://arduino.cc/"
+
+ARDUINO_LIBRARIES=(
+ "Firmata 2.5.6"
+ "Bridge 1.6.3"
+ "Robot_Control 1.0.4"
+ "Robot_Motor 1.0.3"
+ "RobotIRremote 2.0.0"
+ "SpacebrewYun 1.0.1"
+ "Temboo 1.2.1"
+ "Esplora 1.0.4"
+ "Mouse 1.0.1"
+ "Keyboard 1.0.1"
+ "SD 1.1.1"
+ "Servo 1.1.2"
+ "LiquidCrystal 1.0.7"
+ "Adafruit_CircuitPlayground 1.6.8 https://github.com/Adafruit/Adafruit_CircuitPlayground/archive/1.6.8.zip"
+ "WiFi101-Updater-ArduinoIDE-Plugin 0.9.1 https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.9.1/WiFi101-Updater-ArduinoIDE-Plugin-0.9.1.zip build/shared/"
+)
+
+for lib in "${ARDUINO_LIBRARIES[@]}"; do
+ lib=( $lib )
+ default_url="https://github.com/arduino-libraries/${lib[0]}/archive/${lib[1]}.zip"
+ url=${lib[2]:-$default_url}
+ ARDUINO_LIBRARIES_URI+=" ${url} -> ${P}-${lib[0]}-${lib[1]}.zip"
+done
+
+ARDUINO_DOCS=(
+ "reference-1.6.6-3"
+ "Galileo_help_files-1.6.2"
+ "Edison_help_files-1.6.2"
+)
+
+for docname in "${ARDUINO_DOCS[@]}"; do
+ ARDUINO_DOCS_URI+=" https://downloads.arduino.cc/${docname}.zip -> ${P}-${docname}.zip"
+done
+
+SRC_URI="https://github.com/arduino/Arduino/archive/${PV}.tar.gz -> ${P}.tar.gz
+ ${ARDUINO_LIBRARIES_URI}
+ doc? (
+ ${ARDUINO_DOCS_URI}
+ )"
+
+LICENSE="GPL-2 LGPL-2.1 CC-BY-SA-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# bincheck RESTRICT is needed because firmware that ships with arduino contains code that makes
+# scanelf bark. It's also why we need a separate package for arduino-listserialportsc because if
+# we install it in the context of this package, we will get QA notices telling us we're doing a
+# bad thing.
+RESTRICT="strip binchecks"
+IUSE="doc"
+
+CDEPEND="dev-embedded/arduino-builder"
+
+RDEPEND="${CDEPEND}
+ >=dev-util/astyle-3.1[java]
+ dev-embedded/arduino-listserialportsc
+ >=virtual/jre-1.8"
+
+DEPEND="${CDEPEND}
+ >=virtual/jdk-1.8"
+
+EANT_BUILD_TARGET="build"
+# don't run the default "javadoc" target, we don't have one.
+EANT_DOC_TARGET=""
+EANT_BUILD_XML="build/build.xml"
+EANT_EXTRA_ARGS="-Dno_arduino_builder=1 -Dlocal_sources=1"
+
+S="${WORKDIR}/Arduino-${PV}"
+SHARE="/usr/share/${PN}"
+
+src_unpack() {
+ # We don't want to unpack libraries, just move zip files into the work dir
+ unpack `echo ${A} | cut -d ' ' -f1`
+ local lib
+ for lib in "${ARDUINO_LIBRARIES[@]}"; do
+ lib=( $lib )
+ local destfolder=${lib[3]:-build/}
+ cp "${DISTDIR}/${P}-${lib[0]}-${lib[1]}.zip" "${S}/${destfolder}/${lib[0]}-${lib[1]}.zip"
+ done
+ if use doc; then
+ local docname
+ for docname in "${ARDUINO_DOCS[@]}"; do
+ cp "${DISTDIR}/${P}-${docname}.zip" "${S}/build/shared/${docname}.zip"
+ done
+ fi
+}
+
+src_prepare() {
+ # We need to disable astyle/listserialportsc and toolchain (avr-gcc, avrdude) bundling.
+ eapply "${FILESDIR}/${PN}-1.8.5-build.xml.patch"
+
+ # We need to replace relative paths for toolchain executable by paths to system ones.
+ eapply "${FILESDIR}/${PN}-1.8.5-avr-platform.txt.patch"
+
+ # We need to load system astyle/listserialportsc instead of bundled ones.
+ eapply "${FILESDIR}/${PN}-1.8.5-lib-loading.patch"
+ default
+}
+
+src_compile() {
+ if ! use doc; then
+ EANT_EXTRA_ARGS+=" -Dno_docs=1"
+ fi
+ java-pkg-2_src_compile
+}
+
+src_install() {
+ cd "${S}"/build/linux/work || die
+
+ java-pkg_dojar lib/*.jar
+ java-pkg_dolauncher ${PN} \
+ --pwd "${SHARE}" \
+ --main "processing.app.Base" \
+ --java_args "-DAPP_DIR=${SHARE}"
+
+ # Install libraries
+ insinto "${SHARE}"
+
+ doins -r examples hardware lib libraries tools
+
+ # In upstream's build process, we copy these fiels below from the bundled arduino-builder.
+ # Here we do the same thing, but from the system arduino-builder.
+ dosym "${EPREFIX}/usr/share/arduino-builder/platform.txt" "${SHARE}/hardware/platform.txt"
+ dosym "${EPREFIX}/usr/share/arduino-builder/platform.keys.rewrite.txt" "${SHARE}/hardware/platform.keys.rewrite.txt"
+ dosym "${EPREFIX}/usr/bin/arduino-builder" "${SHARE}/arduino-builder"
+
+ # hardware/tools/avr needs to exist or arduino-builder will
+ # complain about missing required -tools arg
+ dodir "${SHARE}/hardware/tools/avr"
+
+ if use doc; then
+ HTML_DOCS=( reference )
+ einstalldocs
+
+ # arduino expects its doc in its "main" directory. symlink it.
+ dosym "${EPREFIX}/usr/share/doc/${P}/html/reference" "${SHARE}/reference"
+ fi
+
+ # Install menu and icons
+ domenu "${FILESDIR}/${PN}.desktop"
+ cd lib/icons || die
+ local icondir
+ for icondir in *; do
+ # icondir name is something like "24x24" we want the "24" part
+ local iconsize=`cut -dx -f1 <<< "${icondir}"`
+ newicon -s $iconsize \
+ "${icondir}/apps/arduino.png" \
+ "${PN}.png"
+ done
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ [[ ! -x /usr/bin/avr-g++ ]] && ewarn "Missing avr-g++; you need to crossdev -s4 avr"
+}
diff --git a/dev-embedded/arduino/files/arduino-1.8.5-avr-platform.txt.patch b/dev-embedded/arduino/files/arduino-1.8.5-avr-platform.txt.patch
new file mode 100644
index 000000000000..9903da46dc4a
--- /dev/null
+++ b/dev-embedded/arduino/files/arduino-1.8.5-avr-platform.txt.patch
@@ -0,0 +1,26 @@
+diff --git a/hardware/arduino/avr/platform.txt b/hardware/arduino/avr/platform.txt
+index f7fb447c1..8ae8b73d9 100644
+--- a/hardware/arduino/avr/platform.txt
++++ b/hardware/arduino/avr/platform.txt
+@@ -18,7 +18,7 @@ compiler.warning_flags.more=-Wall
+ compiler.warning_flags.all=-Wall -Wextra
+
+ # Default "compiler.path" is correct, change only if you want to override the initial value
+-compiler.path={runtime.tools.avr-gcc.path}/bin/
++compiler.path=/usr/bin/
+ compiler.c.cmd=avr-gcc
+ compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
+ compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections
+@@ -91,9 +91,9 @@ recipe.preproc.macros="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {
+ # AVR Uploader/Programmers tools
+ # ------------------------------
+
+-tools.avrdude.path={runtime.tools.avrdude.path}
+-tools.avrdude.cmd.path={path}/bin/avrdude
+-tools.avrdude.config.path={path}/etc/avrdude.conf
++tools.avrdude.path=/usr
++tools.avrdude.cmd.path=/usr/bin/avrdude
++tools.avrdude.config.path=/etc/avrdude.conf
+
+ tools.avrdude.network_cmd={runtime.tools.arduinoOTA.path}/bin/arduinoOTA
+
diff --git a/dev-embedded/arduino/files/arduino-1.8.5-build.xml.patch b/dev-embedded/arduino/files/arduino-1.8.5-build.xml.patch
new file mode 100644
index 000000000000..59d796ca5a7a
--- /dev/null
+++ b/dev-embedded/arduino/files/arduino-1.8.5-build.xml.patch
@@ -0,0 +1,31 @@
+diff --git a/build/build.xml b/build/build.xml
+index d95f8def6..13ba60286 100644
+--- a/build/build.xml
++++ b/build/build.xml
+@@ -641,7 +641,7 @@
+ </chmod>
+ </target>
+
+- <target name="linux-libastyle-x86" depends="linux-build" description="Download libastyle.so for x86/x64 arch">
++ <target name="linux-libastyle-x86" depends="linux-build" description="Download libastyle.so for x86/x64 arch" if="never">
+ <antcall target="unzip">
+ <param name="archive_file" value="./libastylej-2.05.1-3.zip" />
+ <param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
+@@ -666,7 +666,7 @@
+
+ </target>
+
+- <target name="linux-libastyle-arm" depends="linux-build" description="Download libastyle.so for ARM">
++ <target name="linux-libastyle-arm" depends="linux-build" description="Download libastyle.so for ARM" if="never">
+ <antcall target="unzip">
+ <param name="archive_file" value="./libastylej-2.05.1-3.zip" />
+ <param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
+@@ -1186,7 +1186,7 @@
+ depends="linux-clean, windows-clean, macosx-clean, subprojects-clean">
+ </target>
+
+- <target name="avr-toolchain-bundle" unless="light_bundle">
++ <target name="avr-toolchain-bundle" if="never">
+ <!-- Unzip AVR tools -->
+ <mkdir dir="${staging_folder}/work/${staging_hardware_folder}/tmp/gcc"/>
+
diff --git a/dev-embedded/arduino/files/arduino-1.8.5-lib-loading.patch b/dev-embedded/arduino/files/arduino-1.8.5-lib-loading.patch
new file mode 100644
index 000000000000..d2516aeb7357
--- /dev/null
+++ b/dev-embedded/arduino/files/arduino-1.8.5-lib-loading.patch
@@ -0,0 +1,26 @@
+diff --git a/app/src/cc/arduino/packages/formatter/AStyleInterface.java b/app/src/cc/arduino/packages/formatter/AStyleInterface.java
+index 4224bf164..fa92506ba 100644
+--- a/app/src/cc/arduino/packages/formatter/AStyleInterface.java
++++ b/app/src/cc/arduino/packages/formatter/AStyleInterface.java
+@@ -41,7 +41,7 @@ public class AStyleInterface {
+ loadLib(Base.getContentFile(System.mapLibraryName("msvcp100")));
+ loadLib(Base.getContentFile(System.mapLibraryName("msvcr100")));
+ }
+- loadLib(new File(Base.getContentFile("lib"), System.mapLibraryName("astylej")));
++ System.loadLibrary("astylej");
+ }
+
+ private static void loadLib(File lib) {
+diff --git a/arduino-core/src/processing/app/Platform.java b/arduino-core/src/processing/app/Platform.java
+index 28a7ba0f5..8a943a8ac 100644
+--- a/arduino-core/src/processing/app/Platform.java
++++ b/arduino-core/src/processing/app/Platform.java
+@@ -154,7 +154,7 @@ public class Platform {
+ }
+
+ static {
+- loadLib(new File(BaseNoGui.getContentFile("lib"), System.mapLibraryName("listSerialsj")));
++ System.loadLibrary("listSerialsj");
+ }
+
+ private static void loadLib(File lib) {
diff --git a/dev-embedded/arduino/metadata.xml b/dev-embedded/arduino/metadata.xml
index e3a5ffc7112d..02101dbf5664 100644
--- a/dev-embedded/arduino/metadata.xml
+++ b/dev-embedded/arduino/metadata.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
+ <maintainer type="project">
<email>embedded@gentoo.org</email>
<name>Embedded Gentoo</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">arduino/Arduino</remote-id>
+ </upstream>
</pkgmetadata>