diff --git a/pkgs/development/embedded/platformio/chrootenv.nix b/pkgs/development/embedded/platformio/chrootenv.nix index 9e84a8d6ba45..3f4a7e7385dc 100644 --- a/pkgs/development/embedded/platformio/chrootenv.nix +++ b/pkgs/development/embedded/platformio/chrootenv.nix @@ -1,4 +1,4 @@ -{ lib, buildFHSUserEnv, version, src }: +{ lib, buildFHSUserEnv, platformio-core }: let pio-pkgs = pkgs: @@ -34,10 +34,8 @@ buildFHSUserEnv { }; extraInstallCommands = '' - mkdir -p $out/lib/udev/rules.d - ln -s $out/bin/platformio $out/bin/pio - ln -s ${src}/platformio/assets/system/99-platformio-udev.rules $out/lib/udev/rules.d/99-platformio-udev.rules + ln -s ${platformio-core.udev}/lib $out/lib ''; runScript = "platformio"; diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix index 00ee07a5fc5b..c0127fae5acb 100644 --- a/pkgs/development/embedded/platformio/core.nix +++ b/pkgs/development/embedded/platformio/core.nix @@ -10,6 +10,8 @@ with python3.pkgs; buildPythonApplication rec { pname = "platformio"; inherit version src; + outputs = [ "out" "udev" ]; + patches = [ ./fix-searchpath.patch ./use-local-spdx-license-list.patch @@ -60,6 +62,13 @@ with python3.pkgs; buildPythonApplication rec { pytestCheckHook ]; + # Install udev rules into a separate output so all of platformio-core is not a dependency if + # you want to use the udev rules on NixOS but not install platformio in your system packages. + postInstall = '' + mkdir -p $udev/lib/udev/rules.d/99-platformio-udev.rules + cp platformio/assets/system/99-platformio-udev.rules $udev/lib/udev/rules.d/99-platformio-udev.rules + ''; + disabledTestPaths = [ "tests/commands/pkg/test_install.py" "tests/commands/pkg/test_list.py" diff --git a/pkgs/development/embedded/platformio/default.nix b/pkgs/development/embedded/platformio/default.nix index fbcce7eae60e..70a11f5736f3 100644 --- a/pkgs/development/embedded/platformio/default.nix +++ b/pkgs/development/embedded/platformio/default.nix @@ -16,7 +16,7 @@ let self = { platformio-core = python3Packages.callPackage ./core.nix { inherit version src; }; - platformio-chrootenv = callPackage ./chrootenv.nix { inherit version src; }; + platformio-chrootenv = callPackage ./chrootenv.nix { }; }; in diff --git a/pkgs/development/embedded/platformio/missing-udev-rules-nixos.patch b/pkgs/development/embedded/platformio/missing-udev-rules-nixos.patch index 2a978496a19b..4be06ceac8b1 100644 --- a/pkgs/development/embedded/platformio/missing-udev-rules-nixos.patch +++ b/pkgs/development/embedded/platformio/missing-udev-rules-nixos.patch @@ -6,7 +6,5 @@ index ef1d3bab..445174fc 100644 MESSAGE = ( "Warning! Please install `99-platformio-udev.rules`. \nMore details: " "https://docs.platformio.org/en/latest/core/installation/udev-rules.html" -+ "On NixOS add the platformio package to services.udev.packages" ++ "On NixOS add the platformio-core.udev package to services.udev.packages" ) - -