about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/embedded
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-08-23 10:09:14 +0000
committerAlyssa Ross <hi@alyssa.is>2023-08-26 09:07:03 +0000
commit63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f (patch)
treed58934cb48f9c953b19a0d0d5cffc0d0c5561471 /nixpkgs/pkgs/development/embedded
parentc4eef3dacb2a3d359561f30917d9e3cc4e041be9 (diff)
parent91a22f76cd1716f9d0149e8a5c68424bb691de15 (diff)
downloadnixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.gz
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.bz2
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.lz
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.xz
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.zst
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/pkgs/build-support/go/module.nix
	nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/embedded')
-rw-r--r--nixpkgs/pkgs/development/embedded/fpga/trellis/default.nix39
-rw-r--r--nixpkgs/pkgs/development/embedded/openocd-rp2040/default.nix81
-rw-r--r--nixpkgs/pkgs/development/embedded/openocd/default.nix10
-rw-r--r--nixpkgs/pkgs/development/embedded/teensy-cmake-macros/default.nix35
-rw-r--r--nixpkgs/pkgs/development/embedded/teensy-cmake-macros/hook.nix17
-rw-r--r--nixpkgs/pkgs/development/embedded/teensy-cmake-macros/setup-hook.sh5
6 files changed, 167 insertions, 20 deletions
diff --git a/nixpkgs/pkgs/development/embedded/fpga/trellis/default.nix b/nixpkgs/pkgs/development/embedded/fpga/trellis/default.nix
index 566bf5bdf755..f0ff4a47b4c3 100644
--- a/nixpkgs/pkgs/development/embedded/fpga/trellis/default.nix
+++ b/nixpkgs/pkgs/development/embedded/fpga/trellis/default.nix
@@ -4,28 +4,29 @@ let
   rev = "488f4e71073062de314c55a037ede7cf03a3324c";
   # git describe --tags
   realVersion = "1.2.1-14-g${builtins.substring 0 7 rev}";
+
+  main_src = fetchFromGitHub {
+    owner  = "YosysHQ";
+    repo   = "prjtrellis";
+    inherit rev;
+    hash   = "sha256-Blbu+0rlM/3izbF0XCvkNpSAND0IclWEwK7anzyrpvw=";
+    name   = "trellis";
+  };
+
+  database_src = fetchFromGitHub {
+    owner  = "YosysHQ";
+    repo   = "prjtrellis-db";
+    rev    = "35d900a94ff0db152679a67bf6e4fbf40ebc34aa";
+    hash   = "sha256-r6viR8y9ZjURGNbsa0/YY8lzy9kGzjuu408ntxwpqm0=";
+    name   = "trellis-database";
+  };
+
 in stdenv.mkDerivation rec {
   pname = "trellis";
   version = "unstable-2022-09-14";
 
-  srcs = [
-    (fetchFromGitHub {
-       owner  = "YosysHQ";
-       repo   = "prjtrellis";
-       inherit rev;
-       hash   = "sha256-Blbu+0rlM/3izbF0XCvkNpSAND0IclWEwK7anzyrpvw=";
-       name   = "trellis";
-     })
-
-    (fetchFromGitHub {
-      owner  = "YosysHQ";
-      repo   = "prjtrellis-db";
-      rev    = "35d900a94ff0db152679a67bf6e4fbf40ebc34aa";
-      hash   = "sha256-r6viR8y9ZjURGNbsa0/YY8lzy9kGzjuu408ntxwpqm0=";
-      name   = "trellis-database";
-    })
-  ];
-  sourceRoot = "trellis";
+  srcs = [ main_src database_src ];
+  sourceRoot = main_src.name;
 
   buildInputs = [ boost ];
   nativeBuildInputs = [ cmake python3 ];
@@ -36,7 +37,7 @@ in stdenv.mkDerivation rec {
   ];
 
   preConfigure = ''
-    rmdir database && ln -sfv ${builtins.elemAt srcs 1} ./database
+    rmdir database && ln -sfv ${database_src} ./database
 
     cd libtrellis
   '';
diff --git a/nixpkgs/pkgs/development/embedded/openocd-rp2040/default.nix b/nixpkgs/pkgs/development/embedded/openocd-rp2040/default.nix
new file mode 100644
index 000000000000..a7e2bb65953c
--- /dev/null
+++ b/nixpkgs/pkgs/development/embedded/openocd-rp2040/default.nix
@@ -0,0 +1,81 @@
+{ lib
+, stdenv
+, fetchgit
+, fetchurl
+, pkg-config
+, hidapi
+, libftdi1
+, libusb1
+, which
+, libtool
+, autoconf
+, automake
+, texinfo
+, git
+, libgpiod
+}:
+
+stdenv.mkDerivation {
+  pname = "openocd-rp2040";
+  version = "0.12.0";
+  src = fetchgit {
+    url = "https://github.com/raspberrypi/openocd";
+    rev = "4d87f6dcae77d3cbcd8ac3f7dc887adf46ffa504";
+    sha256 = "sha256-SYC0qqNx09yO/qeKDDN8dF/9d/dofJ5B1h/PofhG8Jw=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    hidapi
+    libftdi1
+    libusb1
+    which
+    libtool
+    autoconf
+    automake
+    texinfo
+    git
+  ]
+    ++
+    # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/
+    lib.optional stdenv.isLinux (libgpiod.overrideAttrs (old: rec {
+      version = "1.6.4";
+      src = fetchurl {
+        url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
+        sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo=";
+      };
+    }));
+
+  configurePhase = ''
+    SKIP_SUBMODULE=1 ./bootstrap
+    ./configure --prefix=$out
+  '';
+
+  enableParallelBuilding = true;
+
+  postInstall = lib.optionalString stdenv.isLinux ''
+    mkdir -p "$out/etc/udev/rules.d"
+    rules="$out/share/openocd/contrib/60-openocd.rules"
+    if [ ! -f "$rules" ]; then
+        echo "$rules is missing, must update the Nix file."
+        exit 1
+    fi
+    ln -s "$rules" "$out/etc/udev/rules.d/"
+  '';
+
+  meta = with lib; {
+    description = "OpenOCD fork for rp2040 microcontroller";
+    longDescription = ''
+      This is a fork of OpenOCD by Raspberry Pi,
+      which brings support to the rp2040 microcontroller.
+    '';
+    homepage = "https://github.com/raspberrypi/openocd";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ lu15w1r7h ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/embedded/openocd/default.nix b/nixpkgs/pkgs/development/embedded/openocd/default.nix
index 204d5794a304..954f043a2ade 100644
--- a/nixpkgs/pkgs/development/embedded/openocd/default.nix
+++ b/nixpkgs/pkgs/development/embedded/openocd/default.nix
@@ -25,7 +25,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ hidapi jimtcl libftdi1 libjaylink libusb1 ]
-    ++ lib.optional stdenv.isLinux libgpiod;
+    ++
+    # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/
+    lib.optional stdenv.isLinux (libgpiod.overrideAttrs (old: rec {
+      version = "1.6.4";
+      src = fetchurl {
+        url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
+        sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo=";
+      };
+    }));
 
   configureFlags = [
     "--disable-werror"
diff --git a/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/default.nix b/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/default.nix
new file mode 100644
index 000000000000..7254becdbce7
--- /dev/null
+++ b/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, callPackage
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "teensy-cmake-macros";
+  version = "unstable-2023-04-15";
+
+  src = fetchFromGitHub {
+    owner = "newdigate";
+    repo = "teensy-cmake-macros";
+    rev = "dc401ed23e6e13a9db3cd2a65f611a4738df3b0e";
+    hash = "sha256-E+BOlsCJtOScr3B5GSv1WM6rFv6cFYvm/iJ893fsmXM=";
+  };
+
+  propagatedBuildInputs = [ cmake pkg-config ];
+
+  passthru = {
+    hook = callPackage ./hook.nix {
+      teensy-cmake-macros = finalAttrs.finalPackage;
+    };
+  };
+
+  meta = with lib; {
+    description = "CMake macros for building teensy projects";
+    platforms = platforms.all;
+    homepage = "https://github.com/newdigate/teensy-cmake-macros";
+    license = licenses.mit;
+    maintainers = [ maintainers.michaeldonovan ];
+  };
+})
diff --git a/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/hook.nix b/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/hook.nix
new file mode 100644
index 000000000000..83a4e6828d4a
--- /dev/null
+++ b/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/hook.nix
@@ -0,0 +1,17 @@
+{ lib
+, makeSetupHook
+, teensy-cmake-macros
+}:
+
+makeSetupHook {
+  name = "teensy-cmake-macros-hook";
+
+  propagatedBuildInputs = [ teensy-cmake-macros ];
+
+  passthru = { inherit teensy-cmake-macros; };
+
+  meta = {
+    description = "A setup hook for teensy-cmake-macros";
+    inherit (teensy-cmake-macros.meta) maintainers platforms broken;
+  };
+} ./setup-hook.sh
diff --git a/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/setup-hook.sh b/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/setup-hook.sh
new file mode 100644
index 000000000000..71026eedcf65
--- /dev/null
+++ b/nixpkgs/pkgs/development/embedded/teensy-cmake-macros/setup-hook.sh
@@ -0,0 +1,5 @@
+teensyCMakeMacrosEnvHook() {
+  cmakeFlagsArray+=(-DCMAKE_MODULE_PATH=@out@/lib/cmake)
+}
+
+addEnvHooks "$targetOffset" teensyCMakeMacrosEnvHook