diff options
Diffstat (limited to 'pkgs/development')
3 files changed, 54 insertions, 20 deletions
diff --git a/pkgs/development/embedded/arduino/arduino-core/chrootenv.nix b/pkgs/development/embedded/arduino/arduino-core/chrootenv.nix new file mode 100644 index 0000000000000..4c13b2493a9a4 --- /dev/null +++ b/pkgs/development/embedded/arduino/arduino-core/chrootenv.nix @@ -0,0 +1,36 @@ +{ lib, buildFHSUserEnv, arduino-core-unwrapped, withGui ? false, withTeensyduino ? false }: +let + arduino-unwrapped = arduino-core-unwrapped.override { inherit withGui withTeensyduino; }; +in +buildFHSUserEnv { + name = "arduino"; + + targetPkgs = + pkgs: (with pkgs; [ + ncurses + arduino-unwrapped + zlib + (python3.withPackages (p: with p; [ + pyserial + ])) + ]); + multiPkgs = null; + + extraInstallCommands = '' + ${lib.optionalString withGui '' + # desktop file + mkdir -p $out/share/applications + cp ${arduino-core-unwrapped.src}/build/linux/dist/desktop.template $out/share/applications/arduino.desktop + substituteInPlace $out/share/applications/arduino.desktop \ + --replace '<BINARY_LOCATION>' "$out/bin/arduino" \ + --replace '<ICON_NAME>' "$out/share/arduino/icons/128x128/apps/arduino.png" + # icon file + mkdir -p $out/share/arduino + cp -r ${arduino-core-unwrapped.src}/build/shared/icons $out/share/arduino + ''} + ''; + + runScript = "arduino"; + + meta = arduino-core-unwrapped.meta; +} diff --git a/pkgs/development/embedded/arduino/arduino-core/default.nix b/pkgs/development/embedded/arduino/arduino-core/default.nix index 25d0301d032b2..6b2c6203a3921 100644 --- a/pkgs/development/embedded/arduino/arduino-core/default.nix +++ b/pkgs/development/embedded/arduino/arduino-core/default.nix @@ -69,17 +69,16 @@ let xorg.libXxf86vm zlib ]; - teensy_architecture = if stdenv.hostPlatform.isx86_32 then "linux32" - else if stdenv.hostPlatform.isx86_64 then "linux64" - else if stdenv.hostPlatform.isAarch64 then "linuxaarch64" - else if stdenv.hostPlatform.isAarch32 then "linuxarm" - else throw "${stdenv.hostPlatform.system} is not supported in teensy"; - - pname = (if withTeensyduino then "teensyduino" else "arduino") - + lib.optionalString (!withGui) "-core"; + teensy_architecture = + if stdenv.hostPlatform.isx86_32 then "linux32" + else if stdenv.hostPlatform.isx86_64 then "linux64" + else if stdenv.hostPlatform.isAarch64 then "linuxaarch64" + else if stdenv.hostPlatform.isAarch32 then "linuxarm" + else throw "${stdenv.hostPlatform.system} is not supported in teensy"; + in stdenv.mkDerivation rec { - inherit pname; + pname = (if withTeensyduino then "teensyduino" else "arduino") + lib.optionalString (!withGui) "-core"; version = "1.8.16"; src = fetchFromGitHub { @@ -195,8 +194,8 @@ stdenv.mkDerivation rec { chmod +w ./TeensyduinoInstall.${teensy_architecture} upx -d ./TeensyduinoInstall.${teensy_architecture} patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - --set-rpath "${teensy_libpath}" \ - ./TeensyduinoInstall.${teensy_architecture} + --set-rpath "${teensy_libpath}" \ + ./TeensyduinoInstall.${teensy_architecture} chmod +x ./TeensyduinoInstall.${teensy_architecture} ./TeensyduinoInstall.${teensy_architecture} --dir=$out/share/arduino # Check for successful installation @@ -213,8 +212,8 @@ stdenv.mkDerivation rec { preFixup = '' for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true - patchelf --set-rpath ${rpath}:$out/lib $file || true + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/lib $file || true done ${lib.concatMapStringsSep "\n" @@ -235,15 +234,15 @@ stdenv.mkDerivation rec { ${lib.optionalString withTeensyduino '' # Patch the Teensy loader binary patchelf --debug \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - --set-rpath "${teensy_libpath}" \ - $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon} + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "${teensy_libpath}" \ + $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon} ''} ''; meta = with lib; { description = "Open-source electronics prototyping platform"; - homepage = "http://arduino.cc/"; + homepage = "https://www.arduino.cc/"; license = if withTeensyduino then licenses.unfreeRedistributable else licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ antono auntie robberer bjornfor bergey ]; diff --git a/pkgs/development/octave-modules/arduino/default.nix b/pkgs/development/octave-modules/arduino/default.nix index 77089827c4b73..fd97c55a40e93 100644 --- a/pkgs/development/octave-modules/arduino/default.nix +++ b/pkgs/development/octave-modules/arduino/default.nix @@ -2,7 +2,7 @@ , lib , fetchurl , instrument-control -, arduino +, arduino-core-unwrapped }: buildOctavePackage rec { @@ -18,9 +18,8 @@ buildOctavePackage rec { instrument-control ]; - # Might be able to use pkgs.arduino-core propagatedBuildInputs = [ - arduino + arduino-core-unwrapped ]; meta = with lib; { |