From 4f95fba7a7d1101bb8acdeb51e4609686449701e Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Fri, 12 Dec 2025 20:31:40 +0100 Subject: [PATCH] [darknet] Update to some commit from hank-ai (#48312) --- ports/darknet/installation.diff | 29 ++++++++ ports/darknet/portfile.cmake | 78 ++++++++++++++------- ports/darknet/purely-openmp_cxx-target.diff | 29 ++++++++ ports/darknet/system-processor.diff | 35 +++++++++ ports/darknet/vcpkg.json | 69 +++++------------- ports/darknet/version-info.diff | 18 +++++ ports/darknet/windows-getopt.diff | 12 ++++ scripts/ci.feature.baseline.txt | 1 + versions/baseline.json | 4 +- versions/d-/darknet.json | 5 ++ 10 files changed, 202 insertions(+), 78 deletions(-) create mode 100644 ports/darknet/installation.diff create mode 100644 ports/darknet/purely-openmp_cxx-target.diff create mode 100644 ports/darknet/system-processor.diff create mode 100644 ports/darknet/version-info.diff create mode 100644 ports/darknet/windows-getopt.diff diff --git a/ports/darknet/installation.diff b/ports/darknet/installation.diff new file mode 100644 index 0000000000..c91186d2d8 --- /dev/null +++ b/ports/darknet/installation.diff @@ -0,0 +1,29 @@ +diff --git a/cfg/CMakeLists.txt b/cfg/CMakeLists.txt +index b4d7898..2374cee 100644 +--- a/cfg/CMakeLists.txt ++++ b/cfg/CMakeLists.txt +@@ -3,8 +3,4 @@ + + FILE (GLOB CFG *.cfg *.names) + +-IF (UNIX) +- INSTALL (FILES ${CFG} DESTINATION /opt/darknet/cfg/) +-ELSE () +- INSTALL (FILES ${CFG} DESTINATION cfg/) +-ENDIF () ++INSTALL (FILES ${CFG} DESTINATION share/darknet/cfg/) +diff --git a/src-cli/CMakeLists.txt b/src-cli/CMakeLists.txt +index 4124877..e23ed14 100644 +--- a/src-cli/CMakeLists.txt ++++ b/src-cli/CMakeLists.txt +@@ -32,10 +32,6 @@ ELSE () + # https://stackoverflow.com/a/72088102/13022 + INSTALL (TARGETS darknetcli + DESTINATION bin +- RUNTIME_DEPENDENCIES +- PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-" "wpaxholder" "HvsiFileTrust" "PdmUtilities" +- POST_EXCLUDE_REGEXES ".*system32/.*\\.dll" +- DIRECTORIES ${CMAKE_BINARY_DIR}/bin + RUNTIME DESTINATION bin + ) + ENDIF () diff --git a/ports/darknet/portfile.cmake b/ports/darknet/portfile.cmake index 5290f5bddd..846c61ce69 100644 --- a/ports/darknet/portfile.cmake +++ b/ports/darknet/portfile.cmake @@ -1,51 +1,77 @@ +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +# There are no curated versions. +# Port updates must checkout the master branch, run +# git describe --tags --dirty --long +# and put the result into this variable. +set(darknet_version_string "v5.0-167-gfc780f8a") + +string(REGEX REPLACE "^.*-g" "" ref "${darknet_version_string}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO AlexeyAB/darknet - REF 19dde2f296941a75b0b9202cccd59528bde7f65a - SHA512 3f24fd5c69a00032e63fc8479d46dedf9008909c5e0f37847f0427c39f35e68f35a5ee89820cd0a179cb282e49730e6b1465a027d89bef585e9a1cfca6e3d3a2 + REPO hank-ai/darknet + REF "${ref}" + SHA512 4403922273526862d6e899bfe4de2bc1205d004e8eb58f2a5837fda913565eff970405692d69f7c0155182a688d1ee91ca67f79edd1eae8c03228cdd24acac53 HEAD_REF master PATCHES - android.diff - msvc-names.diff + installation.diff + purely-openmp_cxx-target.diff + version-info.diff + system-processor.diff + windows-getopt.diff +) +file(WRITE "${SOURCE_PATH}/src-examples/CMakeLists.txt" "# disabled by vcpkg") +file(REMOVE_RECURSE "${SOURCE_PATH}/src-other") + +# src-lib/col2im_kernels.cu, src-lib/gemm.cpp, src-lib/im2col.cpp, src-lib/im2col_kernels.cu +vcpkg_download_distfile(caffe_license_file + URLS "https://github.com/BVLC/caffe/raw/9ab67099e08c03bf57e6a67538ca4746365beda8/LICENSE" + FILENAME "hunk-ai-darknet-caffe-LICENSE-9ab6709" + SHA512 333129c62f7c45df992ea4638d2b879608c1d01db80a5a6ce3e93970b414976374ef3e7b670f655b62f6fc4f8eb8c7ba17e94aad197e5e1a7ae8c0ef0b3587ba ) -file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty") -file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/Modules") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES - cuda ENABLE_CUDA - cudnn ENABLE_CUDNN - opencv-base ENABLE_OPENCV + cuda DARKNET_TRY_CUDA + openmp VCPKG_LOCK_FIND_PACKAGE_OpenMP ) if("cuda" IN_LIST FEATURES) - vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) - list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}") + vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) + list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}") + if(DEFINED CUDA_ARCHITECTURES) + list(APPEND FEATURE_OPTIONS "-DDARKNET_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES}") + else() + message(STATUS "CUDA_ARCHITECTURES is not set. Choice is made by darknet.") + endif() + + if(NOT "cudnn" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS "-Dcudnn=OFF") # disable find_library + endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" - DISABLE_PARALLEL_CONFIGURE + DISABLE_PARALLEL_CONFIGURE # configuring darknet_version.h OPTIONS ${FEATURE_OPTIONS} - -DINSTALL_BIN_DIR:STRING=bin - -DINSTALL_LIB_DIR:STRING=lib - -DSKIP_INSTALL_RUNTIME_LIBS:BOOL=ON + -DDARKNET_BRANCH_NAME=vcpkg # actually master with extra patches. + -DDARKNET_VERSION_STRING=${darknet_version_string} + -DDARKNET_TRY_ONNX=OFF + -DDARKNET_TRY_OPENBLAS=OFF + -DDARKNET_TRY_ROCM=OFF + -DGTEST=OFF # disable find_library + -DVCPKG_LOCK_FIND_PACKAGE_Doxygen=OFF + MAYBE_UNUSED_VARIABLES + DARKNET_TRY_OPENBLAS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() -vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES darknet uselib kmeansiou) -if ("opencv-cuda" IN_LIST FEATURES) - vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES uselib_track) -endif() -file(COPY "${SOURCE_PATH}/cfg" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") -file(COPY "${SOURCE_PATH}/data" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") -file(INSTALL "${SOURCE_PATH}/scripts/download_weights.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/scripts") +vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES darknet) +file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/cfg" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") -message(STATUS "To download weight files, please go to ${CURRENT_INSTALLED_DIR}/tools/${PORT}/scripts and run ./download_weights.ps1") - -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${caffe_license_file}") diff --git a/ports/darknet/purely-openmp_cxx-target.diff b/ports/darknet/purely-openmp_cxx-target.diff new file mode 100644 index 0000000000..6a94165f72 --- /dev/null +++ b/ports/darknet/purely-openmp_cxx-target.diff @@ -0,0 +1,29 @@ +diff --git a/CM_dependencies.cmake b/CM_dependencies.cmake +index 1462d195..e26dc7d1 100644 +--- a/CM_dependencies.cmake ++++ b/CM_dependencies.cmake +@@ -239,6 +239,7 @@ LIST (APPEND DARKNET_LINK_LIBS ${OpenCV_LIBS}) + # ============ + # == OpenMP == + # ============ ++set(OpenMP_RUNTIME_MSVC experimental) + FIND_PACKAGE (OpenMP QUIET) # optional + IF (NOT OPENMP_FOUND) + MESSAGE (WARNING "OpenMP not found. Building Darknet without support for OpenMP.") +@@ -248,15 +249,7 @@ ELSEIF (DARKNET_USE_ROCM) + ELSE () + MESSAGE (STATUS "Found OpenMP ${OpenMP_VERSION}") + ADD_COMPILE_DEFINITIONS (DARKNET_OPENMP) +- LIST (APPEND DARKNET_LINK_LIBS OpenMP::OpenMP_CXX OpenMP::OpenMP_C) +- IF (WIN32) +- ADD_COMPILE_OPTIONS (/openmp:experimental) +- ELSE () +- ADD_COMPILE_DEFINITIONS (_GLIBCXX_PARALLEL) +- ADD_COMPILE_OPTIONS (-fopenmp) +- ADD_COMPILE_OPTIONS (${OpenMP_C_FLAGS}) +- ADD_COMPILE_OPTIONS (${OpenMP_CXX_FLAGS}) +- ENDIF() ++ LIST (APPEND DARKNET_LINK_LIBS OpenMP::OpenMP_CXX) + ENDIF () + + diff --git a/ports/darknet/system-processor.diff b/ports/darknet/system-processor.diff new file mode 100644 index 0000000000..1ea0e889aa --- /dev/null +++ b/ports/darknet/system-processor.diff @@ -0,0 +1,35 @@ +diff --git a/CM_dependencies.cmake b/CM_dependencies.cmake +index 53699a9b..1462d195 100644 +--- a/CM_dependencies.cmake ++++ b/CM_dependencies.cmake +@@ -151,15 +151,15 @@ ENDIF () + # ======================== + # == Intel/AMD Hardware == + # ======================== +-IF (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86" OR +- CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_32" OR +- CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64" OR +- CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "AMD64") ++IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86" OR ++ CMAKE_SYSTEM_PROCESSOR MATCHES "x86_32" OR ++ CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR ++ CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64") + SET (HARDWARE_IS_X86 TRUE) +- MESSAGE (STATUS "Hardware is 32-bit or 64-bit, and seems to be Intel or AMD: ${CMAKE_HOST_SYSTEM_PROCESSOR}") ++ MESSAGE (STATUS "Hardware is 32-bit or 64-bit, and seems to be Intel or AMD: ${CMAKE_SYSTEM_PROCESSOR}") + ELSE () + SET (HARDWARE_IS_X86 FALSE) +- MESSAGE (STATUS "Hardware does not appear to be 32-bit or 64-bit, Intel or AMD: ${CMAKE_HOST_SYSTEM_PROCESSOR}") ++ MESSAGE (STATUS "Hardware does not appear to be 32-bit or 64-bit, Intel or AMD: ${CMAKE_SYSTEM_PROCESSOR}") + ENDIF () + + +@@ -277,7 +277,7 @@ ELSE () + ADD_COMPILE_OPTIONS(-msse4.2) + ADD_COMPILE_OPTIONS(-msse4a) + ELSE () +- LIST (APPEND CMAKE_CXX_FLAGS /arch:AVX2) ++ STRING (APPEND CMAKE_CXX_FLAGS " /arch:AVX2") + ENDIF() + ENDIF () + diff --git a/ports/darknet/vcpkg.json b/ports/darknet/vcpkg.json index 106986c39d..628af48fb1 100644 --- a/ports/darknet/vcpkg.json +++ b/ports/darknet/vcpkg.json @@ -1,17 +1,18 @@ { "name": "darknet", - "version-date": "2024-10-10", - "port-version": 1, - "description": "Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities.", - "homepage": "https://github.com/alexeyab/darknet", - "license": null, + "version-date": "2025-10-24", + "description": "Darknet is an open source neural network framework written in C and CUDA for processing images or video frames in computer vision.", + "homepage": "https://darknetcv.ai/", + "license": "Apache-2.0 AND BSD-2-Clause", + "supports": "!android & !uwp & !(static & staticcrt)", "dependencies": [ { - "name": "getopt", - "platform": "windows & !mingw" + "name": "opencv", + "default-features": false, + "features": [ + "highgui" + ] }, - "pthreads", - "stb", { "name": "vcpkg-cmake", "host": true @@ -25,59 +26,27 @@ "cuda": { "description": "Build darknet with support for CUDA", "dependencies": [ - "cuda" + "cuda", + { + "name": "opencv", + "default-features": false + } ] }, "cudnn": { "description": "Build darknet with support for cuDNN", "dependencies": [ - "cuda", - "cudnn" - ] - }, - "full": { - "description": "Build darknet fully featured", - "dependencies": [ + "cudnn", { "name": "darknet", "features": [ - "cuda", - "cudnn", - "opencv-cuda" + "cuda" ] } ] }, - "opencv-base": { - "description": "Build darknet with support for latest version of OpenCV", - "dependencies": [ - { - "name": "opencv", - "features": [ - "ffmpeg" - ] - } - ] - }, - "opencv-cuda": { - "description": "Build darknet with support for latest version of CUDA-enabled OpenCV", - "dependencies": [ - { - "name": "darknet", - "features": [ - "cuda", - "opencv-base" - ] - }, - { - "name": "opencv", - "features": [ - "contrib", - "cuda", - "dnn" - ] - } - ] + "openmp": { + "description": "Build darknet with support for OpenMP" } } } diff --git a/ports/darknet/version-info.diff b/ports/darknet/version-info.diff new file mode 100644 index 0000000000..b589e1afd0 --- /dev/null +++ b/ports/darknet/version-info.diff @@ -0,0 +1,18 @@ +diff --git a/CM_version.cmake b/CM_version.cmake +index 95f29db2..115cb043 100644 +--- a/CM_version.cmake ++++ b/CM_version.cmake +@@ -6,7 +6,6 @@ + # + # v1.99-63-gc5c3569 + # +-EXECUTE_PROCESS (COMMAND git describe --tags --dirty --long OUTPUT_VARIABLE DARKNET_VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE) + MESSAGE (STATUS "Darknet ${DARKNET_VERSION_STRING}") + + STRING (REGEX MATCH "v([0-9]+)\.([0-9]+)-([0-9]+)-g([0-9a-fA-F]+)" _ ${DARKNET_VERSION_STRING}) +@@ -14,5 +13,4 @@ STRING (REGEX MATCH "v([0-9]+)\.([0-9]+)-([0-9]+)-g([0-9a-fA-F]+)" _ ${DARKNET_V + + SET (DARKNET_VERSION_SHORT ${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}) + +-EXECUTE_PROCESS (COMMAND git branch --show-current OUTPUT_VARIABLE DARKNET_BRANCH_NAME OUTPUT_STRIP_TRAILING_WHITESPACE) + MESSAGE (STATUS "Darknet branch name: ${DARKNET_BRANCH_NAME}") diff --git a/ports/darknet/windows-getopt.diff b/ports/darknet/windows-getopt.diff new file mode 100644 index 0000000000..30580bc650 --- /dev/null +++ b/ports/darknet/windows-getopt.diff @@ -0,0 +1,12 @@ +diff --git a/src-lib/darkunistd.hpp b/src-lib/darkunistd.hpp +index 6c06aef..5f9c970 100644 +--- a/src-lib/darkunistd.hpp ++++ b/src-lib/darkunistd.hpp +@@ -9,7 +9,6 @@ + + #include + #include /* for _getcwd() and _chdir() */ +-#include "getopt.h" + #include + #include /* for getpid() and the exec..() family */ + #include diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index c1ca65113b..5b6cf18eb9 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -1629,6 +1629,7 @@ cgns[fortran](windows | android) = feature-fails # No fortran compiler installed coroutine(osx) = fail # requires c++20 crashrpt(windows) = fail # precompiled header errors. See https://github.com/microsoft/vcpkg/issues/33470 ctbench(osx) = fail # requires C++ 20 +darknet[openmp](osx) = feature-fails # openmp setup needed date[remote-api](uwp) = feature-fails # error C2065: 'FOLDERID_ProgramFiles': undeclared identifier. See https://github.com/microsoft/vcpkg/issues/33610 dcmtk[core,iconv,icu,openssl,png,tiff,tools,xml2,zlib](osx) = combination-fails # missing symbols from libtiff. See https://github.com/microsoft/vcpkg/issues/33512 dcmtk[iconv](arm64 & windows & !uwp) = feature-fails # try_run diff --git a/versions/baseline.json b/versions/baseline.json index 4cb73b9a5f..ef44d0d8d5 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2325,8 +2325,8 @@ "port-version": 0 }, "darknet": { - "baseline": "2024-10-10", - "port-version": 1 + "baseline": "2025-10-24", + "port-version": 0 }, "darts-clone": { "baseline": "1767ab87cffe", diff --git a/versions/d-/darknet.json b/versions/d-/darknet.json index 756f007d71..5b1c76926e 100644 --- a/versions/d-/darknet.json +++ b/versions/d-/darknet.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c9739d219193a43a3aff009726de3925f369f1e4", + "version-date": "2025-10-24", + "port-version": 0 + }, { "git-tree": "d78bba83f11a5d8d42c46768e3703cf5bea3a384", "version-date": "2024-10-10",