]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - pkgs/webapps/mediagoblin/default.nix
Upgrade nixos-unstable
[perso/Immae/Config/Nix.git] / pkgs / webapps / mediagoblin / default.nix
index c20bcb4230e2a188c33f009a050b2869f8079907..22cb2923c8ba451a4d9e90cc6c5d640056d0df55 100644 (file)
@@ -1,4 +1,4 @@
-{ 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, fetchgit }:
 let
   overridePython = let
     packageOverrides = self: super: {
@@ -38,6 +38,7 @@ let
           inherit (old) pname;
           sha256 = "2dea4d16d073c902c3b89d9b96620fb6729ac0f7a923bbc777cb4ad827c0c61a";
         };
+        doCheck = false;
       });
       kombu = super.kombu.overridePythonAttrs(old: rec {
         version = "3.0.37";
@@ -49,6 +50,14 @@ let
         propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.anyjson ];
         doCheck = false;
       });
+      markdown = super.markdown.overridePythonAttrs(old: rec {
+        version = "3.1.1";
+        src = self.fetchPypi {
+          inherit version;
+          inherit (old) pname;
+          sha256 = "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a";
+        };
+      });
       sqlalchemy = super.sqlalchemy.overridePythonAttrs(old: rec {
         version = "1.1.18";
         src = self.fetchPypi {
@@ -74,6 +83,14 @@ let
         };
         propagatedBuildInputs = with self; [ six paste PasteDeploy ];
       });
+      werkzeug = super.werkzeug.overridePythonAttrs(old: rec {
+        version = "0.16.1";
+        src = self.fetchPypi {
+          inherit version;
+          inherit (old) pname;
+          sha256 = "b353856d37dec59d6511359f97f6a4b2468442e454bd1c98298ddce53cac1f04";
+        };
+      });
     };
     in
       python36.override { inherit packageOverrides; };
@@ -108,24 +125,39 @@ let
             load_entry_point('mediagoblin', 'console_scripts', 'gmg')()
         )
     '';
+  mediagoblinSrc = fetchgit {
+    name = "mediagoblin";
+    url = "git://git.savannah.gnu.org/mediagoblin.git";
+    rev = "cd465ebfec837a75a44c4ebd727dffe2fff6d850";
+    sha256 = "1yz4i4i97z3rxl534a6psaybyjbyp5nnc52v3nvbpzc4pd2s69mx";
+    fetchSubmodules = true; # important!
+  };
   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 = "cd465eb-stable";
+    src = mediagoblinSrc;
     preConfigure = ''
       # ./bootstrap.sh
       aclocal -I m4 --install
@@ -173,9 +205,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