1 { makeWrapper, stdenv, writeScript, fetchurl, buildBowerComponents, mylibs, which, python36, gst_all_1, automake, autoconf, nodejs, nodePackages }:
4 packageOverrides = self: super: {
5 celery = super.celery.overridePythonAttrs(old: rec {
6 version = "3.1.26.post2";
10 sha256 = "5493e172ae817b81ba7d09443ada114886765a8ce02f16a56e6fac68d953a9b2";
15 billiard = super.billiard.overridePythonAttrs(old: rec {
17 src = self.fetchPypi {
20 sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9";
23 amqp = super.amqp.overridePythonAttrs(old: rec {
25 src = self.fetchPypi {
28 sha256 = "2dea4d16d073c902c3b89d9b96620fb6729ac0f7a923bbc777cb4ad827c0c61a";
31 kombu = super.kombu.overridePythonAttrs(old: rec {
33 src = self.fetchPypi {
36 sha256 = "e064a00c66b4d1058cd2b0523fb8d98c82c18450244177b6c0f7913016642650";
38 propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.anyjson ];
41 sqlalchemy = super.sqlalchemy.overridePythonAttrs(old: rec {
43 src = self.fetchPypi {
46 sha256 = "8b0ec71af9291191ba83a91c03d157b19ab3e7119e27da97932a4773a3f664a9";
49 tempita_5_3_dev = super.buildPythonPackage (mylibs.fetchedGithub ./tempita.json // rec {
50 buildInputs = with self; [ nose ];
53 sqlalchemy_migrate = super.sqlalchemy_migrate.overridePythonAttrs(old: rec {
54 propagatedBuildInputs = with self; [ pbr tempita_5_3_dev decorator sqlalchemy six sqlparse ];
56 pasteScript = super.pasteScript.overridePythonAttrs(old: rec {
58 name = "PasteScript-${version}";
60 url = "mirror://pypi/P/PasteScript/${name}.tar.gz";
61 sha256 = "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0";
63 propagatedBuildInputs = with self; [ six paste PasteDeploy ];
67 python36.override { inherit packageOverrides; };
68 pythonEnv = python-pkgs: with python-pkgs; [
69 waitress alembic dateutil wtforms pybcrypt
70 pytest pytest_xdist werkzeug celery
71 kombu jinja2 Babel webtest configobj markdown
72 sqlalchemy itsdangerous pytz sphinx six
73 oauthlib unidecode jsonschema PasteDeploy
74 requests PyLD exifread
75 typing pasteScript lxml
87 python = overridePython.withPackages pythonEnv;
88 gmg = writeScript "gmg" ''
89 #!${python}/bin/python
90 __requires__ = 'mediagoblin'
92 from pkg_resources import load_entry_point
94 if __name__ == '__main__':
96 load_entry_point('mediagoblin', 'console_scripts', 'gmg')()
99 bowerComponents = buildBowerComponents {
100 name = "mediagoblin-bower-components";
101 generated = ./bower-packages.nix;
102 src = (mylibs.fetchedGit ./mediagoblin.json).src;
104 withPlugins = plugins: package.overrideAttrs(old: {
105 name = "${old.name}-with-plugins";
106 postBuild = old.postBuild + (
107 builtins.concatStringsSep "\n" (
108 map (value: "ln -s ${value} mediagoblin/plugins/${value.pluginName}") plugins
111 passthru.plugins = plugins;
112 passthru.withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
114 package = stdenv.mkDerivation (mylibs.fetchedGit ./mediagoblin.json // rec {
117 aclocal -I m4 --install
122 configureFlags = [ "--with-python3" "--without-virtualenv" ];
124 cp -a ${bowerComponents}/bower_components/* extlib
129 libpaths = with gst_all_1; [
138 plugin_paths = builtins.concatStringsSep ":" (map (x: "${x}/lib") libpaths);
139 typelib_paths = with gst_all_1; "${gstreamer}/lib/girepository-1.0:${gst-plugins-base}/lib/girepository-1.0";
141 sed -i "s/registry.has_key(current_theme_name)/current_theme_name in registry/" mediagoblin/tools/theme.py
142 sed -i -e "s@\[DEFAULT\]@[DEFAULT]\nhere = $out@" mediagoblin/config_spec.ini
143 sed -i -e "/from gi.repository import GstPbutils/s/^/gi.require_version('GstPbutils', '1.0')\n/" mediagoblin/media_types/video/transcoders.py
144 cp ${./ldap_fix.py} mediagoblin/plugins/ldap/tools.py
145 find . -name '*.pyc' -delete
146 find . -type f -exec sed -i "s|$PWD|$out|g" {} \;
147 python setup.py build
150 makeWrapper ${gmg} $out/bin/gmg --prefix PYTHONPATH : "$out:$PYTHONPATH" \
151 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
152 --prefix GI_TYPELIB_PATH : ${typelib_paths}
153 makeWrapper ${python}/bin/paster $out/bin/paster --prefix PYTHONPATH : "$out:$PYTHONPATH" \
154 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
155 --prefix GI_TYPELIB_PATH : ${typelib_paths}
156 makeWrapper ${python}/bin/celery $out/bin/celery --prefix PYTHONPATH : "$out:$PYTHONPATH" \
157 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
158 --prefix GI_TYPELIB_PATH : ${typelib_paths}
160 buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
161 propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];