gaia: init at 2.4.5

This commit is contained in:
Doron Behar 2019-10-04 10:13:42 +03:00
parent ea5d2a0efa
commit e86ef91b58
2 changed files with 83 additions and 0 deletions

View file

@ -0,0 +1,81 @@
{ stdenv
, lib
, fetchFromGitHub
, libyaml
, swig
, pkgconfig
, wafHook
, makeWrapper
, qt4
, python
, pythonSupport ? true
# Default to false since it brakes the build
, stlfacadeSupport ? false
, assertsSupport ? true
, cyclopsSupport ? true
}:
assert pythonSupport -> python != null;
stdenv.mkDerivation rec {
pname = "gaia";
version = "2.4.5";
src = fetchFromGitHub {
owner = "MTG";
repo = "gaia";
rev = "v${version}";
sha256 = "12jxb354s2dblr2ghnl3w05m23jgzvrrgywfj8jaa32j3gw48fv2";
};
# Fix installation error when waf tries to put files in /etc/
prePatch = ''
'' + lib.optionalString cyclopsSupport ''
substituteInPlace src/wscript \
--replace "/etc/cyclops" "$out/etc/cyclops" \
--replace "/etc/init.d" "$out/etc/init.d"
'';
# This is not exactly specified in upstream's README but it's needed by the
# resultings $out/bin/gaiafusion script
pythonEnv = (if pythonSupport then
python.withPackages(ps: with ps; [
pyyaml
])
else null);
nativeBuildInputs = [
wafHook
pkgconfig
swig
makeWrapper
];
buildInputs = [
libyaml
qt4
]
++ lib.optionals (pythonSupport) [
pythonEnv
]
;
wafConfigureFlags = [
]
++ lib.optionals (pythonSupport) [ "--with-python-bindings" ]
++ lib.optionals (stlfacadeSupport) [ "--with-stlfacade" ]
++ lib.optionals (assertsSupport) [ "--with-asserts" ]
++ lib.optionals (cyclopsSupport) [ "--with-cyclops" ]
;
# only gaiafusion is a python executable that needs patchShebangs
postInstall = (if pythonSupport then ''
# We can't use patchShebangs because it will use bare bones $python/bin/python
# and we need a python environment with pyyaml
wrapProgram $out/bin/gaiafusion --prefix PYTHONPATH : $out/${python.sitePackages}:${pythonEnv}/${python.sitePackages}
'' else "");
meta = with lib; {
homepage = "https://github.com/MTG/gaia";
description = "C++ library with python bindings which implements similarity measures and classications on the results of audio analysis, and generates classication models that Essentia can use to compute high-level description of music";
maintainers = with maintainers; [ doronbehar ];
license = licenses.agpl3;
};
}

View file

@ -841,6 +841,8 @@ in
genymotion = callPackage ../development/mobile/genymotion { };
gaia = callPackage ../development/libraries/gaia { };
gamecube-tools = callPackage ../development/tools/gamecube-tools { };
gams = callPackage ../tools/misc/gams (config.gams or {});