Commit 119a5219 authored by Andrew Childs's avatar Andrew Childs
Browse files

platformio-core: expose unwrapped platformio as platformio-core

PlatformIO is a pure python package that is in turn a package
manager. In a pure NixOS environment, this means that any downloaded
binary packages will not run. To make PlatformIO usable, there's a
chrootenv wrapper. However, in a mixed environment like other linux or
darwin, the pure python version will work, and in the case of darwin
only the pure version will work, since the chrootenv wrapper is not
supported.

To handle the above use cases we have:

 * platformio -- unwrapped on darwin, wrapped on linux. Should always
                 provide a functional platformio.

 * platformio-core -- always unwrapped (like "bintools-unwrapped") for
                      when the wrapper is explicitly not required. For
                      example, on other linux where the chrootenv is
                      not supported.
parent dd3dfc46
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@ let
  pio-pkgs = pkgs:
    let
      python = pkgs.python3;
      platformio = python.pkgs.callPackage ./core.nix { inherit version src; };
    in
    (with pkgs; [
      platformio-core
      zlib
      git
      xdg-user-dirs
@@ -15,7 +15,6 @@ let
      setuptools
      pip
      bottle
      platformio
    ]);

in
+3 −1
Original line number Diff line number Diff line
{ newScope, fetchFromGitHub }:
{ newScope, fetchFromGitHub, python3Packages }:

let
  callPackage = newScope self;
@@ -14,6 +14,8 @@ let
  };

  self = {
    platformio-core = python3Packages.callPackage ./core.nix { inherit version src; };

    platformio-chrootenv = callPackage ./chrootenv.nix { inherit version src; };
  };

+2 −1
Original line number Diff line number Diff line
@@ -11105,7 +11105,8 @@ with pkgs;
  };
  platformioPackages = dontRecurseIntoAttrs (callPackage ../development/embedded/platformio { });
  platformio = platformioPackages.platformio-chrootenv;
  platformio = if stdenv.isLinux then platformioPackages.platformio-chrootenv else platformioPackages.platformio-core;
  platformio-core = platformioPackages.platformio-core;
  platinum-searcher = callPackage ../tools/text/platinum-searcher { };