]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - pkgs/webapps/mediagoblin/default.nix
Migrate mylibs to niv (work in progress)
[perso/Immae/Config/Nix.git] / pkgs / webapps / mediagoblin / default.nix
index 643daedfa18cd8ff80737bfdbf5894d44c9c351e..29c1981b3ffe243af0aedbd7bdbfe160d1840cdc 100644 (file)
@@ -1,7 +1,16 @@
-{ makeWrapper, stdenv, writeScript, fetchurl, buildBowerComponents, mylibs, which, python36, gst_all_1, automake, autoconf, nodejs, nodePackages }:
+{ makeWrapper, stdenv, writeScript, fetchurl, buildBowerComponents, mylibs, which, python36, gst_all_1, automake, autoconf, nodejs, nodePackages, lib, callPackage, sources }:
 let
   overridePython = let
     packageOverrides = self: super: {
+      pybcrypt = super.buildPythonPackage rec {
+        pname = "pybcrypt";
+        version = "0.4";
+
+        src = self.fetchPypi {
+          inherit pname version;
+          sha256 = "5fa13bce551468350d66c4883694850570f3da28d6866bb638ba44fe5eabda78";
+        };
+      };
       celery = super.celery.overridePythonAttrs(old: rec {
         version = "3.1.26.post2";
         src = self.fetchPypi {
@@ -19,6 +28,8 @@ let
           inherit (old) pname;
           sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9";
         };
+        doCheck = false;
+        doInstallCheck = false;
       });
       amqp = super.amqp.overridePythonAttrs(old: rec {
         version = "1.4.9";
@@ -45,6 +56,7 @@ let
           inherit (old) pname;
           sha256 = "8b0ec71af9291191ba83a91c03d157b19ab3e7119e27da97932a4773a3f664a9";
         };
+        doCheck = false;
       });
       tempita_5_3_dev = super.buildPythonPackage (mylibs.fetchedGithub ./tempita.json // rec {
         buildInputs = with self; [ nose ];
@@ -96,24 +108,33 @@ let
             load_entry_point('mediagoblin', 'console_scripts', 'gmg')()
         )
     '';
+  mediagoblinSrc = sources.webapps-mediagoblin;
   bowerComponents = buildBowerComponents {
     name = "mediagoblin-bower-components";
     generated = ./bower-packages.nix;
-    src = (mylibs.fetchedGit ./mediagoblin.json).src;
+    src = mediagoblinSrc;
   };
-  withPlugins = plugins: package.overrideAttrs(old: {
-    name = "${old.name}-with-plugins";
-    postBuild = old.postBuild + (
-      builtins.concatStringsSep "\n" (
-        map (value: "ln -s ${value} mediagoblin/plugins/${value.pluginName}") plugins
-        )
-      );
-    passthru = old.passthru // {
-      inherit plugins;
-      withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
-    };
-  });
-  package = stdenv.mkDerivation (mylibs.fetchedGit ./mediagoblin.json // rec {
+  pluginNames = [ "basicsearch" ];
+  allPlugins = lib.attrsets.genAttrs pluginNames
+    (name: callPackage (./plugins + "/${name}") {});
+  toPassthru = pkg: {
+    inherit allPlugins;
+    withPlugins = withPlugins pkg;
+  };
+  withPlugins = pkg: toPlugins:
+    let
+      plugins = toPlugins allPlugins;
+      toBuildPlugin = n: "ln -s ${n} mediagoblin/plugins/${n.pluginName}";
+      newMediagoblin = pkg.overrideAttrs(old: {
+        postBuild = old.postBuild + "\n" + builtins.concatStringsSep "\n" (map toBuildPlugin plugins);
+        passthru = toPassthru newMediagoblin;
+      });
+    in newMediagoblin;
+  package = stdenv.mkDerivation rec {
+    pname = "mediagoblin";
+    name = "${pname}-${version}";
+    version = mediagoblinSrc.version;
+    src = mediagoblinSrc;
     preConfigure = ''
       # ./bootstrap.sh
       aclocal -I m4 --install
@@ -161,9 +182,6 @@ let
       '';
     buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
     propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];
-    passthru = {
-      plugins = [];
-      inherit withPlugins;
-    };
-  });
+    passthru = toPassthru package;
+  };
 in package