Добавлен darknet со стабильной веткой nixpkgs 22.11

This commit is contained in:
movefasta 2023-03-09 18:57:20 +03:00
parent 0c98ffa68b
commit e9acb90d5b
No known key found for this signature in database
GPG key ID: 74C6469794E996AD
3 changed files with 137 additions and 17 deletions

26
flake.lock generated
View file

@ -17,11 +17,11 @@
},
"flake-utils_2": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
"type": "github"
},
"original": {
@ -32,27 +32,27 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1677021523,
"narHash": "sha256-0EhZjJ3rq8ZTTJ6Trrf/9hYtnIry0OsyY2NKoQoOS5Q=",
"lastModified": 1669833724,
"narHash": "sha256-/HEZNyGbnQecrgJnfE8d0WC5c1xuPSD2LUpB6YXlg4c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5a5adc2ad7009851d7d0fc26311e42a93b171d2e",
"rev": "4d2b37a84fad1091b9de401eb450aae66f1a741e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"ref": "22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1674641431,
"narHash": "sha256-qfo19qVZBP4qn5M5gXc/h1MDgAtPA5VxJm9s8RUAkVk=",
"lastModified": 1678244258,
"narHash": "sha256-iecrLqFb1QDgBKmC0h065ZBV6CZsigcz+1aHCv6rvfg=",
"owner": "lopsided98",
"repo": "nixpkgs",
"rev": "9b97ad7b4330aacda9b2343396eb3df8a853b4fc",
"rev": "61852b7faa8b47aad422adca0fea90fe007e9ead",
"type": "github"
},
"original": {
@ -75,11 +75,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1677031957,
"narHash": "sha256-Fz8f3Lfgg0rcCtPxeUn+Ng6jomuJQukph7e4EGEwob8=",
"lastModified": 1678246785,
"narHash": "sha256-ma+ToZZddLpGed7pPBfG0CFYjP66QU/m0Yn4JM1Ezl4=",
"owner": "lopsided98",
"repo": "nix-ros-overlay",
"rev": "ca325a145772dfce52a23359996a47899f252c37",
"rev": "155fc6ac233c64eb9fa07a1a81d6c6726441271c",
"type": "github"
},
"original": {

View file

@ -1,7 +1,7 @@
{
description = "Robossembler Development Environments on Nix";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixpkgs.url = "github:NixOS/nixpkgs/22.11";
flake-utils.url = "github:numtide/flake-utils";
ros-flake.url = "github:lopsided98/nix-ros-overlay?ref=staging";
};
@ -24,7 +24,7 @@
bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { };
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
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 { };
in
{
@ -38,7 +38,7 @@
};
packages = {
inherit mayo blender bpy pysdf fstl;
inherit mayo blender bpy pysdf fstl darknet;
gazebo = ros.humble.gazebo;
};
@ -78,9 +78,22 @@
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.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) ];
};
}
);
}

View 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; [ ];
};
}