feat: add jlink for embed
This commit is contained in:
parent
0ee5cfd879
commit
021595100c
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -55,6 +56,10 @@
|
||||||
boot.binfmt.emulatedSystems = ["aarch64-linux" "riscv64-linux"];
|
boot.binfmt.emulatedSystems = ["aarch64-linux" "riscv64-linux"];
|
||||||
nix.settings.system-features = ["kvm" "nixos-test"];
|
nix.settings.system-features = ["kvm" "nixos-test"];
|
||||||
|
|
||||||
|
# for embedded
|
||||||
|
services.udev.packages = [pkgs.j-link];
|
||||||
|
environment.systemPackages = [pkgs.j-link];
|
||||||
|
|
||||||
services.netbird.enable = true;
|
services.netbird.enable = true;
|
||||||
# Do not cleanup nix store to prevent having to rebuild packages onca a month
|
# Do not cleanup nix store to prevent having to rebuild packages onca a month
|
||||||
nix.gc.automatic = lib.mkForce false;
|
nix.gc.automatic = lib.mkForce false;
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
actual = super.callPackage ./actual.nix {};
|
actual = super.callPackage ./actual.nix {};
|
||||||
deploy = super.callPackage ./deploy.nix {};
|
deploy = super.callPackage ./deploy.nix {};
|
||||||
minify = super.callPackage ./minify {};
|
minify = super.callPackage ./minify {};
|
||||||
|
j-link = super.callPackage ./jlink.nix {};
|
||||||
mongodb-bin = super.callPackage ./mongodb-bin.nix {};
|
mongodb-bin = super.callPackage ./mongodb-bin.nix {};
|
||||||
awakened-poe-trade = super.callPackage ./awakened-poe-trade.nix {};
|
awakened-poe-trade = super.callPackage ./awakened-poe-trade.nix {};
|
||||||
neovim-clean = super.neovim-unwrapped.overrideAttrs (_neovimFinal: neovimPrev: {
|
neovim-clean = super.neovim-unwrapped.overrideAttrs (_neovimFinal: neovimPrev: {
|
||||||
|
|
99
pkgs/jlink.nix
Normal file
99
pkgs/jlink.nix
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
lib,
|
||||||
|
requireFile,
|
||||||
|
autoPatchelfHook,
|
||||||
|
makeWrapper,
|
||||||
|
copyDesktopItems,
|
||||||
|
fontconfig,
|
||||||
|
freetype,
|
||||||
|
libICE,
|
||||||
|
libSM,
|
||||||
|
udev,
|
||||||
|
libX11,
|
||||||
|
libXext,
|
||||||
|
libXcursor,
|
||||||
|
libXfixes,
|
||||||
|
libXrender,
|
||||||
|
libXrandr,
|
||||||
|
}: let
|
||||||
|
version = "796f";
|
||||||
|
url = "https://www.segger.com/downloads/jlink/JLink_Linux_V${version}_x86_64.tgz";
|
||||||
|
hash = "02ahzj6dwxh15bnk2468zidi78vyiyp9v3bkq7rfijmasl73ybhr";
|
||||||
|
archiveFilename = "JLink_Linux_V${version}_x86_64.tgz";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "j-link";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = requireFile {
|
||||||
|
name = archiveFilename;
|
||||||
|
url = "https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack";
|
||||||
|
sha256 = hash;
|
||||||
|
};
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
dontStrip = true;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [copyDesktopItems autoPatchelfHook makeWrapper];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
udev
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
libICE
|
||||||
|
libSM
|
||||||
|
libX11
|
||||||
|
libXext
|
||||||
|
libXcursor
|
||||||
|
libXfixes
|
||||||
|
libXrender
|
||||||
|
libXrandr
|
||||||
|
];
|
||||||
|
|
||||||
|
runtimeDependencies = [udev];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p "$out/lib/JLink" "$out/share/doc" "$out/bin"
|
||||||
|
|
||||||
|
cp -R * "$out/lib/JLink"
|
||||||
|
rm "$out/lib/JLink/99-jlink.rules"
|
||||||
|
|
||||||
|
for f in "$out/lib/JLink"/J*; do
|
||||||
|
if [[ -L $f ]]; then
|
||||||
|
mv "$f" "$out/bin/"
|
||||||
|
elif [[ -x $f ]]; then
|
||||||
|
makeWrapper "$f" "$out/bin/$(basename "$f")"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
mv "$out/lib/JLink/Doc" "$out/share/doc/JLink"
|
||||||
|
mv \
|
||||||
|
"$out/lib/JLink"/README* \
|
||||||
|
"$out/lib/JLink/Samples" \
|
||||||
|
"$out/lib/JLink/GDBServer"/Readme* \
|
||||||
|
"$out/share/doc/JLink/"
|
||||||
|
|
||||||
|
install -D -t "$out/lib/udev/rules.d" 99-jlink.rules
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
patchelf --add-needed libudev.so.1 $out/lib/JLink/libjlinkarm.so
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://www.segger.com/downloads/jlink";
|
||||||
|
description = "SEGGER J-Link";
|
||||||
|
license = licenses.unfree;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [liff];
|
||||||
|
mainProgram = "JLinkExe";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue