summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/build-fhs-userenv/default.nix3
-rw-r--r--pkgs/development/arduino/platformio/chrootenv.nix33
-rw-r--r--pkgs/development/arduino/platformio/default.nix11
-rw-r--r--pkgs/top-level/all-packages.nix6
-rw-r--r--pkgs/top-level/python-packages.nix41
5 files changed, 92 insertions, 2 deletions
diff --git a/pkgs/build-support/build-fhs-userenv/default.nix b/pkgs/build-support/build-fhs-userenv/default.nix
index 54ce3e768975..5db0d98b79a8 100644
--- a/pkgs/build-support/build-fhs-userenv/default.nix
+++ b/pkgs/build-support/build-fhs-userenv/default.nix
@@ -1,5 +1,5 @@
 { runCommand, lib, writeText, writeScriptBin, stdenv, bash, ruby } :
-{ env, runScript ? "${bash}/bin/bash", extraBindMounts ? [], extraInstallCommands ? "" } :
+{ env, runScript ? "${bash}/bin/bash", extraBindMounts ? [], extraInstallCommands ? "", importMeta ? {} } :
 
 let
   name = env.pname;
@@ -26,6 +26,7 @@ let
   '';
 
 in runCommand name {
+  meta = importMeta;
   passthru.env =
     runCommand "${name}-shell-env" {
       shellHook = ''
diff --git a/pkgs/development/arduino/platformio/chrootenv.nix b/pkgs/development/arduino/platformio/chrootenv.nix
new file mode 100644
index 000000000000..4aad955ec24e
--- /dev/null
+++ b/pkgs/development/arduino/platformio/chrootenv.nix
@@ -0,0 +1,33 @@
+{ lib, buildFHSUserEnv, platformio, stdenv }:
+
+buildFHSUserEnv {
+  name = "platformio";
+
+  targetPkgs = pkgs: (with pkgs;
+    [
+      python27Packages.python
+      python27Packages.setuptools
+      python27Packages.pip
+      python27Packages.bottle
+      python27Packages.platformio
+      zlib
+    ]);
+  multiPkgs = pkgs: (with pkgs;
+    [
+      python27Packages.python
+      python27Packages.setuptools
+      python27Packages.pip
+      python27Packages.bottle
+      zlib
+      python27Packages.platformio
+    ]);
+
+   meta = with stdenv.lib; {
+     description = "An open source ecosystem for IoT development";
+     homepage = http://platformio.org;
+     maintainers = with maintainers; [ mog ];
+     license = licenses.asl20;
+  };
+
+  runScript = "platformio";
+}
diff --git a/pkgs/development/arduino/platformio/default.nix b/pkgs/development/arduino/platformio/default.nix
new file mode 100644
index 000000000000..dfdd8141aaaa
--- /dev/null
+++ b/pkgs/development/arduino/platformio/default.nix
@@ -0,0 +1,11 @@
+
+{ pkgs, newScope }:
+
+let
+  callPackage = newScope self;
+
+  self = rec {
+      platformio-chrootenv = callPackage ./chrootenv.nix { };
+  };
+
+in self
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0aea21afdcdd..3c9fda23a30e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -279,10 +279,11 @@ let
   };
 
   buildFHSUserEnv = args: userFHSEnv {
-    env = buildFHSEnv (removeAttrs args [ "runScript" "extraBindMounts" "extraInstallCommands" ]);
+    env = buildFHSEnv (removeAttrs args [ "runScript" "extraBindMounts" "extraInstallCommands" "meta" ]);
     runScript = args.runScript or "bash";
     extraBindMounts = args.extraBindMounts or [];
     extraInstallCommands = args.extraInstallCommands or "";
+    importMeta = args.meta or {};
   };
 
   buildMaven = callPackage ../build-support/build-maven.nix {};
@@ -2759,6 +2760,9 @@ let
 
   plan9port = callPackage ../tools/system/plan9port { };
 
+  platformioPackages = callPackage ../development/arduino/platformio { };
+  platformio = platformioPackages.platformio-chrootenv.override {};
+
   plex = callPackage ../servers/plex { };
 
   ploticus = callPackage ../tools/graphics/ploticus {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 474ea6a8a05f..0494c97b7e39 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2800,6 +2800,26 @@ in modules // {
     };
   };
 
+  click_5 = buildPythonPackage rec {
+    name = "click-5.1";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/c/click/${name}.tar.gz";
+      sha256 = "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337";
+    };
+
+    meta = {
+      homepage = http://click.pocoo.org/;
+      description = "Create beautiful command line interfaces in Python";
+      longDescription = ''
+        A Python package for creating beautiful command line interfaces in a
+        composable way, with as little code as necessary.
+      '';
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ mog ];
+    };
+  };
+
   click-log = buildPythonPackage rec {
     version = "0.1.1";
     name = "click-log-${version}";
@@ -14037,6 +14057,27 @@ in modules // {
     propagatedBuildInputs = with self; [ unittest2 ];
   };
 
+  platformio =  buildPythonPackage rec {
+    name = "platformio-${version}";
+    version="2.7.0";
+
+    disabled = isPy3k || isPyPy;
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/platformio/platformio-${version}.tar.gz";
+      sha256 = "0bjp8gapd8v5az0xvsgh44zyma5kazhhbq266fk092i2q348zbv6";
+     };
+
+     propagatedBuildInputs = with self; [ click_5 requests2 bottle pyserial lockfile colorama];
+
+     meta = with stdenv.lib; {
+     description = "An open source ecosystem for IoT development";
+     homepage = http://platformio.org;
+     maintainers = with maintainers; [ mog ];
+     license = licenses.asl20;
+     };
+  };
+
   pylibconfig2 = buildPythonPackage rec {
     name = "pylibconfig2-${version}";
     version = "0.2.4";