Merge pull request #13854 from makefu/graphite-web-fix

graphite: fix carbonCache graphiteWeb graphiteApi

+24 -5
+24 -5
nixos/modules/services/monitoring/graphite.nix
··· 51 51 ''; 52 52 53 53 carbonEnv = { 54 - PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages"; 54 + PYTHONPATH = let 55 + cenv = pkgs.python.buildEnv.override { 56 + extraLibs = [ pkgs.python27Packages.carbon ]; 57 + }; 58 + cenvPack = "${cenv}/${pkgs.python.sitePackages}"; 59 + # opt/graphite/lib contains twisted.plugins.carbon-cache 60 + in "${cenvPack}/opt/graphite/lib:${cenvPack}"; 55 61 GRAPHITE_ROOT = dataDir; 56 62 GRAPHITE_CONF_DIR = configDir; 57 63 GRAPHITE_STORAGE_DIR = dataDir; ··· 445 451 after = [ "network-interfaces.target" ]; 446 452 path = [ pkgs.perl ]; 447 453 environment = { 448 - PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages"; 454 + PYTHONPATH = let 455 + penv = pkgs.python.buildEnv.override { 456 + extraLibs = [ 457 + pkgs.python27Packages.graphite_web 458 + pkgs.python27Packages.pysqlite 459 + ]; 460 + }; 461 + penvPack = "${penv}/${pkgs.python.sitePackages}"; 462 + # opt/graphite/webapp contains graphite/settings.py 463 + # explicitly adding pycairo in path because it cannot be imported via buildEnv 464 + in "${penvPack}/opt/graphite/webapp:${penvPack}:${pkgs.pycairo}/${pkgs.python.sitePackages}"; 449 465 DJANGO_SETTINGS_MODULE = "graphite.settings"; 450 466 GRAPHITE_CONF_DIR = configDir; 451 467 GRAPHITE_STORAGE_DIR = dataDir; 468 + LD_LIBRARY_PATH = "${pkgs.cairo}/lib"; 452 469 }; 453 470 serviceConfig = { 454 471 ExecStart = '' ··· 486 503 wantedBy = [ "multi-user.target" ]; 487 504 after = [ "network-interfaces.target" ]; 488 505 environment = { 489 - PYTHONPATH = 490 - "${cfg.api.package}/lib/python2.7/site-packages:" + 491 - concatMapStringsSep ":" (f: f + "/lib/python2.7/site-packages") cfg.api.finders; 506 + PYTHONPATH = let 507 + aenv = pkgs.python.buildEnv.override { 508 + extraLibs = [ cfg.api.package pkgs.cairo ] ++ cfg.api.finders; 509 + }; 510 + in "${aenv}/${pkgs.python.sitePackages}"; 492 511 GRAPHITE_API_CONFIG = graphiteApiConfig; 493 512 LD_LIBRARY_PATH = "${pkgs.cairo}/lib"; 494 513 };