This causes collisions when NixOS is configured like
``` nix
{ pkgs, ... }:
{
services.udev.packages = [ pkgs.platformio ];
}
```
and would also cause a regression having to add the subirectory to the udev packages path:
``` nix
{ pkgs, ... }:
{
services.udev.packages = [ (pkgs.platformio-core.udev + "/99-platformio-udev.rules") ];
}
```
Currently udev rules symlinks against platformio sources, pulling in the platformio source tree into the runtime closure.
Previous to platformio-core being exposed separately from platformio this also meant that you had no ergonomic way to avoid platformio in the system closure, even though you only wanted the udev rules.
We can avoid this by making platformio-core multi output, making it trivial to depend only on the udev rules.
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.
This adds edl, a tool for interfacing with the low-level flashing and
recovery interface embedded in the Boot ROM of a lot of Qualcomm SoCs.
An unreleased version is used as the last released version is very old
and does not properly install itself.
Removed configure flags no longer present in openocd 0.12, and allows
easy configuration of boards. Also removes the two boards that were
enabled before.
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
Subtools such as pnmainc rely on libraries in the diamond/bin/lin64 and
diamond/ispfpga/bin/lin64 directories, but they don't set LD_LIBRARY_PATH as
would be needed.
To make things work, simply include these two directories in the RPATH that is
patched into Diamond binaries.
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.