summary refs log tree commit diff
path: root/pkgs/development/arduino
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2016-05-08 00:14:39 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2016-05-08 22:02:56 -0400
commit6ff886e539fb2b2017ad3866f068db9368a038d5 (patch)
tree340ebd5360d349e8c57a4796c3ff3119546239d5 /pkgs/development/arduino
parent135fe56183a2c125a777ce59aa5e78f51f3dfec2 (diff)
downloadnixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.tar
nixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.tar.gz
nixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.tar.bz2
nixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.tar.lz
nixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.tar.xz
nixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.tar.zst
nixpkgs-6ff886e539fb2b2017ad3866f068db9368a038d5.zip
arduino: 1.0.6 -> 1.6.6
Diffstat (limited to 'pkgs/development/arduino')
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix28
1 files changed, 17 insertions, 11 deletions
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index 37947c804b8..8059879dc47 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -1,45 +1,51 @@
 { stdenv, fetchFromGitHub, jdk, jre, ant, coreutils, gnugrep, file, libusb
-, withGui ? false, gtk2 ? null
-}:
+, unzip, zlib, readline, ncurses, withGui ? false, gtk2 ? null }:
 
 assert withGui -> gtk2 != null;
 
 stdenv.mkDerivation rec {
 
-  version = "1.0.6";
+  version = "1.6.6";
   name = "arduino${stdenv.lib.optionalString (withGui == false) "-core"}-${version}";
 
   src = fetchFromGitHub {
     owner = "arduino";
     repo = "Arduino";
     rev = "${version}";
-    sha256 = "0nr5b719qi03rcmx6swbhccv6kihxz3b8b6y46bc2j348rja5332";
+    sha256 = "1gm3sjjs149r2d82ynx25qlg31bbird1zr4x01qi4ybk3gp0268v";
   };
 
-  buildInputs = [ jdk ant file ];
+  buildInputs = [ jdk ant file unzip ];
 
   buildPhase = ''
-    cd ./core && ant 
+    cd ./arduino-core && ant 
     cd ../build && ant 
     cd ..
   '';
 
+  libPath = stdenv.lib.makeLibraryPath (builtins.filter (l: l != null) [
+    gtk2 stdenv.cc.cc zlib readline libusb ncurses]) + ":$out/lib";
+
   installPhase = ''
     mkdir -p $out/share/arduino
     cp -r ./build/linux/work/* "$out/share/arduino/"
     echo ${version} > $out/share/arduino/lib/version.txt
 
+    # Hack around lack of libtinfo in NixOS
+    mkdir -p $out/lib
+    ln -s ${ncurses.out}/lib/libncursesw.so.5 $out/lib/libtinfo.so.5
+
     ${stdenv.lib.optionalString withGui ''
       mkdir -p "$out/bin"
-      sed -i -e "s|^java|${jdk}/bin/java|" "$out/share/arduino/arduino"
-      sed -i -e "s|^LD_LIBRARY_PATH=|LD_LIBRARY_PATH=${gtk2}/lib:|" "$out/share/arduino/arduino"
+      sed -i -e "s|^JAVA=.*|JAVA=${jdk}/bin/java|" "$out/share/arduino/arduino"
+      sed -i -e "s|^LD_LIBRARY_PATH=|LD_LIBRARY_PATH=${libPath}:|" "$out/share/arduino/arduino"
       ln -sr "$out/share/arduino/arduino" "$out/bin/arduino"
     ''}
 
     # Fixup "/lib64/ld-linux-x86-64.so.2" like references in ELF executables.
     echo "running patchelf on prebuilt binaries:"
     find "$out" | while read filepath; do
-        if file "$filepath" | grep -q "ELF.*executable"; then
+        if file "$filepath" | grep -q "ELF.*executable.*dynamic"; then
             # skip target firmware files
             if echo "$filepath" | grep -q "\.elf$"; then
                 continue
@@ -50,8 +56,8 @@ stdenv.mkDerivation rec {
         fi
     done
 
-    patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ libusb ]} \
-        "$out/share/arduino/hardware/tools/avrdude"
+    patchelf --set-rpath ${libPath} \
+        "$out/share/arduino/hardware/tools/avr/bin/avrdude_bin"
   '';
 
   meta = with stdenv.lib; {