about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix25
-rw-r--r--pkgs/development/arduino/ino/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix6
3 files changed, 26 insertions, 11 deletions
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index a5b8980e32cf..7addf79a39c6 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -1,9 +1,13 @@
-{ stdenv, fetchFromGitHub, jdk, jre, ant, coreutils, gnugrep, file }:
+{ stdenv, fetchFromGitHub, jdk, jre, ant, coreutils, gnugrep, file, libusb
+, withGui ? false, gtk2 ? null
+}:
+
+assert withGui -> gtk2 != null;
 
 stdenv.mkDerivation rec {
 
   version = "1.0.6";
-  name = "arduino-core";
+  name = "arduino${stdenv.lib.optionalString (withGui == false) "-core"}";
 
   src = fetchFromGitHub {
     owner = "arduino";
@@ -22,12 +26,16 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/share/arduino
-    cp -r ./build/linux/work/hardware/ $out/share/arduino
-    cp -r ./build/linux/work/libraries/ $out/share/arduino
-    cp -r ./build/linux/work/tools/ $out/share/arduino
-    cp -r ./build/linux/work/lib/ $out/share/arduino
+    cp -r ./build/linux/work/* "$out/share/arduino/"
     echo ${version} > $out/share/arduino/lib/version.txt
 
+    ${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"
+      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
@@ -41,10 +49,13 @@ stdenv.mkDerivation rec {
             test $? -eq 0 || { echo "patchelf failed to process $filepath"; exit 1; }
         fi
     done
+
+    patchelf --set-rpath ${stdenv.lib.makeSearchPath "lib" [ stdenv.glibc libusb ]} \
+        "$out/share/arduino/hardware/tools/avrdude"
   '';
 
   meta = {
-    description = "Libraries for the open-source electronics prototyping platform";
+    description = "Open-source electronics prototyping platform";
     homepage = http://arduino.cc/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ stdenv.lib.maintainers.antono stdenv.lib.maintainers.robberer ];
diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix
index be3799d01968..47c7c68c1ab2 100644
--- a/pkgs/development/arduino/ino/default.nix
+++ b/pkgs/development/arduino/ino/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, buildPythonPackage, pythonPackages, picocom
-, avrdude, arduino_core, avrgcclibc }:
+, avrdude, arduino-core, avrgcclibc }:
 
 buildPythonPackage rec {
   name = "ino-0.3.6";
@@ -12,12 +12,12 @@ buildPythonPackage rec {
 
   # TODO: add avrgcclibc, it must be rebuild with C++ support
   propagatedBuildInputs =
-    [ arduino_core avrdude picocom pythonPackages.configobj
+    [ arduino-core avrdude picocom pythonPackages.configobj
       pythonPackages.jinja2 pythonPackages.pyserial pythonPackages.six ];
 
   patchPhase = ''
     echo "Patching Arduino distribution path"
-    sed -i 's@/usr/local/share/arduino@${arduino_core}/share/arduino@g' \
+    sed -i 's@/usr/local/share/arduino@${arduino-core}/share/arduino@g' \
         ino/environment.py
     sed -i -e 's@argparse@@' -e 's@ordereddict@@' \
         requirements.txt
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c6ae8dcb0bb1..734a5c873b2a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -499,9 +499,12 @@ let
 
   arcanist = callPackage ../development/tools/misc/arcanist {};
 
-  arduino_core = callPackage ../development/arduino/arduino-core {
+  arduino = arduino-core.override { withGui = true; };
+
+  arduino-core = callPackage ../development/arduino/arduino-core {
     jdk = jdk;
     jre = jdk;
+    withGui = false;
   };
 
   apitrace = callPackage ../applications/graphics/apitrace {};
@@ -13399,6 +13402,7 @@ let
 
   # Attributes for backward compatibility.
   adobeReader = adobe-reader;
+  arduino_core = arduino-core;  # added 2015-02-04
   asciidocFull = asciidoc-full;  # added 2014-06-22
   lttngTools = lttng-tools;  # added 2014-07-31
   lttngUst = lttng-ust;  # added 2014-07-31