diff options
author | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-02-01 22:52:01 +0100 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-02-04 07:22:39 +0100 |
commit | ca982158bf33cef9398f86723d862da0603466da (patch) | |
tree | 83b0b742c91bef5da0af9c4ebd28a8399dda29e5 /pkgs/development/arduino | |
parent | 83e3f38593743e9950885fbc568b458e6425a8fd (diff) |
arduino: new package
This commit adds the graphical Arduino IDE, built from the arduino-core
expression.
Also:
- Add libusb to RPATH for avrdude. Without this, avrdude is broken.
Possible TODO: replace bundled avrdude with the one from nixpkgs.
- Use "cp -r ./build/linux/work/*", so example sketeches, the HTML
reference documentation and the 'arduino' shell script that starts the
IDE gets included.
- Make meta.description slightly more generic, to cover both GUI/core
variants.
Diffstat (limited to 'pkgs/development/arduino')
-rw-r--r-- | pkgs/development/arduino/arduino-core/default.nix | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix index a5b8980e32c..7addf79a39c 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 ]; |