summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorGuillaume Maudoux <guillaume.maudoux@uclouvain.be>2017-11-01 01:09:39 +0100
committerBas van Dijk <v.dijk.bas@gmail.com>2017-11-04 17:53:35 +0100
commit7325ad9ab735424257b05a81e0c8197e4651e68f (patch)
treedc726222579ddadc371a1ef61bf615e6c3d512d4 /nixos
parentb51aa7b6d8b5d5ca207cdc6e3c515d26488de265 (diff)
downloadnixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.tar
nixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.tar.gz
nixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.tar.bz2
nixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.tar.lz
nixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.tar.xz
nixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.tar.zst
nixpkgs-7325ad9ab735424257b05a81e0c8197e4651e68f.zip
graphite: override django and django_tagging
instead of depending on specific versions in the django_tagging_0_4_3
and graphite_web derivations.

This should fix: https://github.com/NixOS/nixpkgs/pull/30277#discussion_r145393088

This was joint work of @basvandijk and @layus at NixCon 2017.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/monitoring/graphite.nix22
1 files changed, 15 insertions, 7 deletions
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index 645dfeab019..4b1ad34b3a4 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -467,7 +467,15 @@ in {
       ];
     })
 
-    (mkIf cfg.web.enable {
+    (mkIf cfg.web.enable (let
+      python27' = pkgs.python27.override {
+        packageOverrides = self: super: {
+          django = self.django_1_8;
+          django_tagging = self.django_tagging_0_4_3;
+        };
+      };
+      pythonPackages = python27'.pkgs;
+    in {
       systemd.services.graphiteWeb = {
         description = "Graphite Web Interface";
         wantedBy = [ "multi-user.target" ];
@@ -477,8 +485,8 @@ in {
           PYTHONPATH = let
               penv = pkgs.python.buildEnv.override {
                 extraLibs = [
-                  pkgs.python27Packages.graphite_web
-                  pkgs.python27Packages.pysqlite
+                  pythonPackages.graphite_web
+                  pythonPackages.pysqlite
                 ];
               };
               penvPack = "${penv}/${pkgs.python.sitePackages}";
@@ -516,17 +524,17 @@ in {
           fi
 
           # Only collect static files when graphite_web changes.
-          if ! [ "${dataDir}/current_graphite_web" -ef "${pkgs.python27Packages.graphite_web}" ]; then
+          if ! [ "${dataDir}/current_graphite_web" -ef "${pythonPackages.graphite_web}" ]; then
             mkdir -p ${staticDir}
             ${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic  --noinput --clear
             chown -R graphite:graphite ${staticDir}
-            ln -sfT "${pkgs.python27Packages.graphite_web}" "${dataDir}/current_graphite_web"
+            ln -sfT "${pythonPackages.graphite_web}" "${dataDir}/current_graphite_web"
           fi
         '';
       };
 
-      environment.systemPackages = [ pkgs.python27Packages.graphite_web ];
-    })
+      environment.systemPackages = [ pythonPackages.graphite_web ];
+    }))
 
     (mkIf cfg.api.enable {
       systemd.services.graphiteApi = {