mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
dlib: 19.9 -> 19.13 (#41953)
This fixes the latest `dlib` build for `nixpkgs` compliancy: * Patched `setup.py` to use number of jobs defined in `$NIX_BUILD_CORES` rather than using all available cores. * Bumped `dlib` to latest version (v19.13 ATM). * Dropped `openblas` build input, `cblas` which actually works lives in `dlib/external`. Otherwise the test suite runs into segfaults (see https://github.com/NixOS/nixpkgs/pull/39255#issuecomment-384535129 for further reference). * Added myself as maintainer in case of any further breakage in the future. Closes #39255 /cc @dotlambda @ryantm
This commit is contained in:
parent
56a7ea6fbe
commit
ccdd229d21
@ -1,16 +1,16 @@
|
||||
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, openblas, libpng, libjpeg
|
||||
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, libpng, libjpeg
|
||||
, guiSupport ? false, libX11
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "19.9";
|
||||
version = "19.13";
|
||||
name = "dlib-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "davisking";
|
||||
repo = "dlib";
|
||||
rev ="v${version}";
|
||||
sha256 = "0lc54r928j9dg7f2wn25m887z24d31wrc14v2hn6aknp1z084lrc";
|
||||
sha256 = "11ia4pd2lm2s9hzwrdvimj3r2qcnvjdp3g4fry2j1a6z9f99zvz3";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -19,14 +19,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
buildInputs = [ openblas libpng libjpeg ] ++ lib.optional guiSupport libX11;
|
||||
buildInputs = [ libpng libjpeg ] ++ lib.optional guiSupport libX11;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A general purpose cross-platform C++ machine learning library";
|
||||
homepage = http://www.dlib.net;
|
||||
license = licenses.boost;
|
||||
maintainers = with maintainers; [ christopherpoole ];
|
||||
maintainers = with maintainers; [ christopherpoole ma27 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
|
27
pkgs/development/python-modules/dlib/build-cores.patch
Normal file
27
pkgs/development/python-modules/dlib/build-cores.patch
Normal file
@ -0,0 +1,27 @@
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 0c8d8f16..565ef8ef 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -172,21 +172,7 @@ class CMakeBuild(build_ext):
|
||||
subprocess.check_call(cmake_build, cwd=build_folder)
|
||||
|
||||
def num_available_cpu_cores(ram_per_build_process_in_gb):
|
||||
- if 'TRAVIS' in os.environ and os.environ['TRAVIS']=='true':
|
||||
- # When building on travis-ci, just use 2 cores since travis-ci limits
|
||||
- # you to that regardless of what the hardware might suggest.
|
||||
- return 2
|
||||
- try:
|
||||
- mem_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')
|
||||
- mem_gib = mem_bytes/(1024.**3)
|
||||
- num_cores = multiprocessing.cpu_count()
|
||||
- # make sure we have enough ram for each build process.
|
||||
- mem_cores = int(floor(mem_gib/float(ram_per_build_process_in_gb)+0.5));
|
||||
- # We are limited either by RAM or CPU cores. So pick the limiting amount
|
||||
- # and return that.
|
||||
- return max(min(num_cores, mem_cores), 1)
|
||||
- except ValueError:
|
||||
- return 2 # just assume 2 if we can't get the os to tell us the right answer.
|
||||
+ return os.getenv("NIX_BUILD_CORES", 1)
|
||||
|
||||
|
||||
from setuptools.command.test import test as TestCommand
|
@ -1239,9 +1239,9 @@ in {
|
||||
cypari2 = callPackage ../development/python-modules/cypari2 { };
|
||||
|
||||
dlib = buildPythonPackage rec {
|
||||
inherit (pkgs.dlib) name src nativeBuildInputs meta;
|
||||
inherit (pkgs.dlib) name src nativeBuildInputs meta buildInputs;
|
||||
|
||||
buildInputs = pkgs.dlib.buildInputs ++ [ self.boost ];
|
||||
patches = [ ../development/python-modules/dlib/build-cores.patch ];
|
||||
|
||||
checkInputs = with self; [ pytest ];
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user