X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=pkgs%2Fwebapps%2Fmediagoblin%2Fdefault.nix;h=22cb2923c8ba451a4d9e90cc6c5d640056d0df55;hb=2053ddac783c931053676ebc2b02bc8b82d89399;hp=c20bcb4230e2a188c33f009a050b2869f8079907;hpb=258dd18bac4bf5dd03cf1098ffa35cb954f9e015;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/pkgs/webapps/mediagoblin/default.nix b/pkgs/webapps/mediagoblin/default.nix index c20bcb4..22cb292 100644 --- a/pkgs/webapps/mediagoblin/default.nix +++ b/pkgs/webapps/mediagoblin/default.nix @@ -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