Добавлен darknet со стабильной веткой nixpkgs 22.11
This commit is contained in:
parent
0c98ffa68b
commit
e9acb90d5b
3 changed files with 137 additions and 17 deletions
26
flake.lock
generated
26
flake.lock
generated
|
@ -17,11 +17,11 @@
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667395993,
|
"lastModified": 1676283394,
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -32,27 +32,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677021523,
|
"lastModified": 1669833724,
|
||||||
"narHash": "sha256-0EhZjJ3rq8ZTTJ6Trrf/9hYtnIry0OsyY2NKoQoOS5Q=",
|
"narHash": "sha256-/HEZNyGbnQecrgJnfE8d0WC5c1xuPSD2LUpB6YXlg4c=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5a5adc2ad7009851d7d0fc26311e42a93b171d2e",
|
"rev": "4d2b37a84fad1091b9de401eb450aae66f1a741e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "22.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1674641431,
|
"lastModified": 1678244258,
|
||||||
"narHash": "sha256-qfo19qVZBP4qn5M5gXc/h1MDgAtPA5VxJm9s8RUAkVk=",
|
"narHash": "sha256-iecrLqFb1QDgBKmC0h065ZBV6CZsigcz+1aHCv6rvfg=",
|
||||||
"owner": "lopsided98",
|
"owner": "lopsided98",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9b97ad7b4330aacda9b2343396eb3df8a853b4fc",
|
"rev": "61852b7faa8b47aad422adca0fea90fe007e9ead",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -75,11 +75,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1677031957,
|
"lastModified": 1678246785,
|
||||||
"narHash": "sha256-Fz8f3Lfgg0rcCtPxeUn+Ng6jomuJQukph7e4EGEwob8=",
|
"narHash": "sha256-ma+ToZZddLpGed7pPBfG0CFYjP66QU/m0Yn4JM1Ezl4=",
|
||||||
"owner": "lopsided98",
|
"owner": "lopsided98",
|
||||||
"repo": "nix-ros-overlay",
|
"repo": "nix-ros-overlay",
|
||||||
"rev": "ca325a145772dfce52a23359996a47899f252c37",
|
"rev": "155fc6ac233c64eb9fa07a1a81d6c6726441271c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
21
flake.nix
21
flake.nix
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
description = "Robossembler Development Environments on Nix";
|
description = "Robossembler Development Environments on Nix";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/22.11";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
ros-flake.url = "github:lopsided98/nix-ros-overlay?ref=staging";
|
ros-flake.url = "github:lopsided98/nix-ros-overlay?ref=staging";
|
||||||
};
|
};
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { };
|
bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { };
|
||||||
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
|
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
|
||||||
mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { };
|
mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { };
|
||||||
# darknet = pkgs.callPackage ./darknet.nix { };
|
darknet = pkgs.callPackage ./pkgs/misc/darknet { };
|
||||||
fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { };
|
fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
inherit mayo blender bpy pysdf fstl;
|
inherit mayo blender bpy pysdf fstl darknet;
|
||||||
gazebo = ros.humble.gazebo;
|
gazebo = ros.humble.gazebo;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -78,9 +78,22 @@
|
||||||
RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
|
RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf ]; };
|
devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf pkgs.freecad ]; };
|
||||||
devShells.mayo = pkgs.mkShell { packages = [ mayo ]; };
|
devShells.mayo = pkgs.mkShell { packages = [ mayo ]; };
|
||||||
devShells.blender = pkgs.mkShell { packages = [ blender ]; };
|
devShells.blender = pkgs.mkShell { packages = [ blender ]; };
|
||||||
|
devShells.up =
|
||||||
|
let
|
||||||
|
my-python-packages = p: with p; [
|
||||||
|
# python-gitlab
|
||||||
|
# jinja2
|
||||||
|
# unified-planning
|
||||||
|
# tamer
|
||||||
|
blenderproc
|
||||||
|
];
|
||||||
|
in
|
||||||
|
pkgs.mkShell {
|
||||||
|
packages = [ (pkgs.python3.withPackages my-python-packages) ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
107
pkgs/misc/darknet/default.nix
Normal file
107
pkgs/misc/darknet/default.nix
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake
|
||||||
|
, cudatoolkit
|
||||||
|
, opencv4
|
||||||
|
, cudaPackages
|
||||||
|
, addOpenGLRunpath
|
||||||
|
, enableCuda ? false
|
||||||
|
, cudaSupport ? true
|
||||||
|
, linkFarm
|
||||||
|
, symlinkJoin
|
||||||
|
, autoPatchelfHook
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cudaStub = linkFarm "cuda-stub" [{
|
||||||
|
name = "libcuda.so.1";
|
||||||
|
path = "${cudatoolkit}/lib/stubs/libcuda.so";
|
||||||
|
}];
|
||||||
|
|
||||||
|
cudaEnv = symlinkJoin {
|
||||||
|
name = "darknet-cuda-env";
|
||||||
|
paths = with cudaPackages; [];
|
||||||
|
postBuild = ''
|
||||||
|
ln -s ${addOpenGLRunpath.driverLink}/lib/libcuda.so $out/lib
|
||||||
|
ln -s lib $out/lib64
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
cuda-opencv = opencv4.override {
|
||||||
|
enableCuda = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "darknet";
|
||||||
|
version = "unstable";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "AlexeyAB";
|
||||||
|
repo = "darknet";
|
||||||
|
rev = "0faed3e60e52f742bbef43b83f6be51dd30f373e";
|
||||||
|
hash = "sha256-6qY1QG7Pq/d5W+BvnMD2pFdBVWdvmCP0spUAjyGWB8M=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
opencv4
|
||||||
|
autoPatchelfHook
|
||||||
|
cudaPackages.autoAddOpenGLRunpathHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
cudaPackages.cudnn
|
||||||
|
cudatoolkit
|
||||||
|
cudaEnv
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
# indefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30
|
||||||
|
|
||||||
|
# LD_LIBRARY_PATH = lib.makeLibraryPath (nativeBuildInputs ++ [ cudaStub ]);
|
||||||
|
|
||||||
|
# shellHook = ''
|
||||||
|
# export ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61
|
||||||
|
# export LDFLAGS+= `pkg-config --libs opencv4 2> /dev/null || pkg-config --libs opencv` -lstdc++
|
||||||
|
# '';
|
||||||
|
|
||||||
|
cmakeFlags =
|
||||||
|
(lib.optionals enableCuda [ "CUDA_PATH=${cudatoolkit}" ]) ++ [
|
||||||
|
"GPU=1"
|
||||||
|
"CUDNN=1"
|
||||||
|
"OPENCV=1"
|
||||||
|
"AVX=1"
|
||||||
|
"OPENMP=1"
|
||||||
|
"LIBSO=0"
|
||||||
|
"ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61"
|
||||||
|
];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
mkdir build_release
|
||||||
|
cd build_release
|
||||||
|
cmake ..
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
export LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
|
||||||
|
cmake --build . --target install --parallel 8
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp darknet $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
autoPatchelfIgnoreMissingDeps = true;
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )";
|
||||||
|
homepage = "https://github.com/AlexeyAB/darknet";
|
||||||
|
license = with licenses; [ ];
|
||||||
|
maintainers = with maintainers; [ ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue