1 { makeWrapper, stdenv, writeScript, fetchurl, buildBowerComponents, mylibs, which, python36, gst_all_1, automake, autoconf, nodejs, nodePackages, lib, callPackage, sources }:
4 packageOverrides = self: super: {
5 pybcrypt = super.buildPythonPackage rec {
10 inherit pname version;
11 sha256 = "5fa13bce551468350d66c4883694850570f3da28d6866bb638ba44fe5eabda78";
14 celery = super.celery.overridePythonAttrs(old: rec {
15 version = "3.1.26.post2";
16 src = self.fetchPypi {
19 sha256 = "5493e172ae817b81ba7d09443ada114886765a8ce02f16a56e6fac68d953a9b2";
24 billiard = super.billiard.overridePythonAttrs(old: rec {
26 src = self.fetchPypi {
29 sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9";
32 doInstallCheck = false;
34 amqp = super.amqp.overridePythonAttrs(old: rec {
36 src = self.fetchPypi {
39 sha256 = "2dea4d16d073c902c3b89d9b96620fb6729ac0f7a923bbc777cb4ad827c0c61a";
42 kombu = super.kombu.overridePythonAttrs(old: rec {
44 src = self.fetchPypi {
47 sha256 = "e064a00c66b4d1058cd2b0523fb8d98c82c18450244177b6c0f7913016642650";
49 propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.anyjson ];
52 sqlalchemy = super.sqlalchemy.overridePythonAttrs(old: rec {
54 src = self.fetchPypi {
57 sha256 = "8b0ec71af9291191ba83a91c03d157b19ab3e7119e27da97932a4773a3f664a9";
61 tempita_5_3_dev = super.buildPythonPackage (mylibs.fetchedGithub ./tempita.json // rec {
62 buildInputs = with self; [ nose ];
65 sqlalchemy_migrate = super.sqlalchemy_migrate.overridePythonAttrs(old: rec {
66 propagatedBuildInputs = with self; [ pbr tempita_5_3_dev decorator sqlalchemy six sqlparse ];
68 pasteScript = super.pasteScript.overridePythonAttrs(old: rec {
70 name = "PasteScript-${version}";
72 url = "mirror://pypi/P/PasteScript/${name}.tar.gz";
73 sha256 = "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0";
75 propagatedBuildInputs = with self; [ six paste PasteDeploy ];
79 python36.override { inherit packageOverrides; };
80 pythonEnv = python-pkgs: with python-pkgs; [
81 waitress alembic dateutil wtforms pybcrypt
82 pytest pytest_xdist werkzeug celery
83 kombu jinja2 Babel webtest configobj markdown
84 sqlalchemy itsdangerous pytz sphinx six
85 oauthlib unidecode jsonschema PasteDeploy
86 requests PyLD exifread
87 typing pasteScript lxml
99 python = overridePython.withPackages pythonEnv;
100 gmg = writeScript "gmg" ''
101 #!${python}/bin/python
102 __requires__ = 'mediagoblin'
104 from pkg_resources import load_entry_point
106 if __name__ == '__main__':
108 load_entry_point('mediagoblin', 'console_scripts', 'gmg')()
111 mediagoblinSrc = sources.webapps-mediagoblin;
112 bowerComponents = buildBowerComponents {
113 name = "mediagoblin-bower-components";
114 generated = ./bower-packages.nix;
115 src = mediagoblinSrc;
117 pluginNames = [ "basicsearch" ];
118 allPlugins = lib.attrsets.genAttrs pluginNames
119 (name: callPackage (./plugins + "/${name}") {});
122 withPlugins = withPlugins pkg;
124 withPlugins = pkg: toPlugins:
126 plugins = toPlugins allPlugins;
127 toBuildPlugin = n: "ln -s ${n} mediagoblin/plugins/${n.pluginName}";
128 newMediagoblin = pkg.overrideAttrs(old: {
129 postBuild = old.postBuild + "\n" + builtins.concatStringsSep "\n" (map toBuildPlugin plugins);
130 passthru = toPassthru newMediagoblin;
133 package = stdenv.mkDerivation rec {
134 pname = "mediagoblin";
135 name = "${pname}-${version}";
136 version = mediagoblinSrc.version;
137 src = mediagoblinSrc;
140 aclocal -I m4 --install
145 configureFlags = [ "--with-python3" "--without-virtualenv" ];
147 cp -a ${bowerComponents}/bower_components/* extlib
152 libpaths = with gst_all_1; [
161 plugin_paths = builtins.concatStringsSep ":" (map (x: "${x}/lib") libpaths);
162 typelib_paths = with gst_all_1; "${gstreamer}/lib/girepository-1.0:${gst-plugins-base}/lib/girepository-1.0";
164 sed -i "s/registry.has_key(current_theme_name)/current_theme_name in registry/" mediagoblin/tools/theme.py
165 sed -i -e "s@\[DEFAULT\]@[DEFAULT]\nhere = $out@" mediagoblin/config_spec.ini
166 sed -i -e "/from gi.repository import GstPbutils/s/^/gi.require_version('GstPbutils', '1.0')\n/" mediagoblin/media_types/video/transcoders.py
167 cp ${./ldap_fix.py} mediagoblin/plugins/ldap/tools.py
168 find . -name '*.pyc' -delete
169 find . -type f -exec sed -i "s|$PWD|$out|g" {} \;
170 python setup.py build
173 makeWrapper ${gmg} $out/bin/gmg --prefix PYTHONPATH : "$out:$PYTHONPATH" \
174 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
175 --prefix GI_TYPELIB_PATH : ${typelib_paths}
176 makeWrapper ${python}/bin/paster $out/bin/paster --prefix PYTHONPATH : "$out:$PYTHONPATH" \
177 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
178 --prefix GI_TYPELIB_PATH : ${typelib_paths}
179 makeWrapper ${python}/bin/celery $out/bin/celery --prefix PYTHONPATH : "$out:$PYTHONPATH" \
180 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
181 --prefix GI_TYPELIB_PATH : ${typelib_paths}
183 buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
184 propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];
185 passthru = toPassthru package;