From 1bf18a589c1bbe0f405e353592201caeef084125 Mon Sep 17 00:00:00 2001 From: Antono Vasiljev Date: Wed, 28 Nov 2012 04:55:24 +0300 Subject: [PATCH 1/5] arduino-core libraries +inotool --- .../arduino/arduino-core/default.nix | 41 +++++++++++++++++++ pkgs/development/arduino/ino/default.nix | 27 ++++++++++++ pkgs/top-level/all-packages.nix | 7 ++++ 3 files changed, 75 insertions(+) create mode 100644 pkgs/development/arduino/arduino-core/default.nix create mode 100644 pkgs/development/arduino/ino/default.nix diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix new file mode 100644 index 00000000000..27d71227424 --- /dev/null +++ b/pkgs/development/arduino/arduino-core/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, jdk, jre, ant, coreutils, gnugrep }: + +stdenv.mkDerivation rec { + + version = "1.0.2"; + name = "arduino-core"; + + src = fetchurl { + url = "http://arduino.googlecode.com/files/arduino-${version}-src.tar.gz"; + sha256 = "0nszl2hdjjgxk87gyk0xi0ww9grbq83hch3iqmpaf9yp4y9bra0x"; + }; + + buildInputs = [ jdk ant ]; + + phases = "unpackPhase patchPhase buildPhase installPhase"; + + patchPhase = '' + # + ''; + + buildPhase = '' + cd ./core && ant + cd ../build && ant + cd .. + ''; + + 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 + echo ${version} > $out/share/arduino/lib/version.txt + ''; + + meta = { + description = "Arduino libraries"; + homepage = http://arduino.cc/; + license = "GPL"; + }; +} diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix new file mode 100644 index 00000000000..d63a610666d --- /dev/null +++ b/pkgs/development/arduino/ino/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core }: + +buildPythonPackage { + name = "ino-0.3.4"; + namePrefix = ""; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/i/ino/ino-0.3.4.tar.gz"; + sha256 = "1v7z3da31cv212k28aci269qkg92p377fm7i76rymjjpjra7payv"; + }; + + propagatedBuildInputs = [ minicom avrdude arduino_core ]; + + patchPhase = '' + echo "Patching Arduino distribution path" + sed -i 's@/usr/local/share/arduino@${arduino_core}/share/arduino@g' ino/environment.py + ''; + + doCheck = false; + + meta = { + description = "Command line toolkit for working with Arduino hardware"; + homepage = http://inotool.org/; + license = "MIT"; + maintainers = [ stdenv.lib.maintainers.antono ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e5945703c6c..e8bb9d0a07b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -373,6 +373,11 @@ let archivemount = callPackage ../tools/filesystems/archivemount { }; + arduino_core = callPackage ../development/arduino/arduino-core { + jdk = jdk; + jre = jdk; + }; + asymptote = builderDefsPackage ../tools/graphics/asymptote { inherit freeglut ghostscriptX imagemagick fftw boehmgc mesa ncurses readline gsl libsigsegv python zlib perl @@ -3164,6 +3169,8 @@ let indent = callPackage ../development/tools/misc/indent { }; + ino = callPackage ../development/arduino/ino { }; + inotifyTools = callPackage ../development/tools/misc/inotify-tools { }; intelgen4asm = callPackage ../development/misc/intelgen4asm { }; From 25f0472564d13933b36c9bbba84bda00776f0f12 Mon Sep 17 00:00:00 2001 From: Antono Vasiljev Date: Wed, 28 Nov 2012 17:37:11 +0300 Subject: [PATCH 2/5] Improved arduino-core and ino --- pkgs/development/arduino/arduino-core/default.nix | 1 + pkgs/development/arduino/ino/default.nix | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix index 27d71227424..f1be290b190 100644 --- a/pkgs/development/arduino/arduino-core/default.nix +++ b/pkgs/development/arduino/arduino-core/default.nix @@ -37,5 +37,6 @@ stdenv.mkDerivation rec { description = "Arduino libraries"; homepage = http://arduino.cc/; license = "GPL"; + maintainers = [ stdenv.lib.maintainers.antono ]; }; } diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix index d63a610666d..84961f2af59 100644 --- a/pkgs/development/arduino/ino/default.nix +++ b/pkgs/development/arduino/ino/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core }: +{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core, avrgcclibc }: buildPythonPackage { name = "ino-0.3.4"; @@ -9,7 +9,7 @@ buildPythonPackage { sha256 = "1v7z3da31cv212k28aci269qkg92p377fm7i76rymjjpjra7payv"; }; - propagatedBuildInputs = [ minicom avrdude arduino_core ]; + propagatedBuildInputs = [ minicom avrdude arduino_core avrgcclibc ]; patchPhase = '' echo "Patching Arduino distribution path" From 495f4c597f664be45049d625d7d9a6ae5dddd5ca Mon Sep 17 00:00:00 2001 From: Antono Vasiljev Date: Sat, 1 Dec 2012 05:00:45 +0300 Subject: [PATCH 3/5] remove avr gcc from inputs (it should be rebuit with C++ support) --- pkgs/development/arduino/ino/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix index 84961f2af59..dc658016acb 100644 --- a/pkgs/development/arduino/ino/default.nix +++ b/pkgs/development/arduino/ino/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core, avrgcclibc }: +{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core }: buildPythonPackage { name = "ino-0.3.4"; @@ -9,7 +9,8 @@ buildPythonPackage { sha256 = "1v7z3da31cv212k28aci269qkg92p377fm7i76rymjjpjra7payv"; }; - propagatedBuildInputs = [ minicom avrdude arduino_core avrgcclibc ]; + # TODO: add avrgcclibc, it must be rebuild with C++ support + propagatedBuildInputs = [ minicom avrdude arduino_core ]; patchPhase = '' echo "Patching Arduino distribution path" From 4403215806855c6eaf16e9a20f7a5ebc36dc364f Mon Sep 17 00:00:00 2001 From: Antono Vasiljev Date: Sun, 23 Dec 2012 18:20:34 +0200 Subject: [PATCH 4/5] AVR GCC: enable C++ support (makes it usable with Arduino) - GCC version bumped, 4.6.1 had some arduino related bug --- .../misc/avr-gcc-with-avr-libc/default.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix index 83e800faa2c..3c28ed04dba 100644 --- a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix +++ b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix @@ -6,13 +6,18 @@ stdenv.mkDerivation { name = "avr-gcc-libc"; srcBinutils = fetchurl { - url = "mirror://gnu/binutils/binutils-2.21.tar.bz2"; - sha256 = "1iyhc42zfa0j2gaxy4zvpk47sdqj4rqvib0mb8597ss8yidyrav0"; + url = "mirror://gnu/binutils/binutils-2.21.1.tar.bz2"; + sha256 = "0m7nmd7gc9d9md43wbrv65hz6lbi2crqwryzpigv19ray1lzmv6d"; }; srcGCC = fetchurl { - url = "mirror://gcc/releases/gcc-4.6.1/gcc-core-4.6.1.tar.bz2"; - sha256 = "0bbb8f754a31f29013f6e9ad4c755d92bb0f154a665c4b623e86ae7174d98e33"; + url = "mirror://gcc/releases/gcc-4.6.3/gcc-core-4.6.3.tar.bz2"; + sha256 = "1hai090f0svf886nyhn4glmfw54v9lz88w2izkx5iqhd3j400gi8"; + }; + + srcGCCGPP = fetchurl { + url = "mirror://gcc/releases/gcc-4.6.3/gcc-g++-4.6.3.tar.bz2"; + sha256 = "1s199gb6p65r5k69cdfqqcz5hgifw9bhyj65n2b91s80x4rwgq5k"; }; srcAVRLibc = fetchurl { @@ -55,10 +60,11 @@ stdenv.mkDerivation { cd $TMP tar jxf $srcGCC + tar jxf $srcGCCGPP cd gcc-* mkdir obj-avr cd obj-avr - ../configure --target=avr --prefix="$prefix" --disable-nls --enable-languages=c --disable-libssp --with-dwarf2 + ../configure --target=avr --prefix="$prefix" --disable-nls --enable-languages=c,c++ --disable-libssp --with-dwarf2 make $MAKE_FLAGS make install From dde7b978d6acc6189f11dfff724c0d495457e53e Mon Sep 17 00:00:00 2001 From: Antono Vasiljev Date: Sun, 23 Dec 2012 18:21:51 +0200 Subject: [PATCH 5/5] inotool: add avr-gcc-libc to inputs --- pkgs/development/arduino/ino/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix index dc658016acb..6b88a8deaea 100644 --- a/pkgs/development/arduino/ino/default.nix +++ b/pkgs/development/arduino/ino/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core }: +{ stdenv, fetchurl, buildPythonPackage, minicom, avrdude, arduino_core, avrgcclibc }: buildPythonPackage { name = "ino-0.3.4"; @@ -16,7 +16,7 @@ buildPythonPackage { echo "Patching Arduino distribution path" sed -i 's@/usr/local/share/arduino@${arduino_core}/share/arduino@g' ino/environment.py ''; - + doCheck = false; meta = {