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 = old.passthru // {
113 withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
116 package = stdenv.mkDerivation (mylibs.fetchedGit ./mediagoblin.json // rec {
119 aclocal -I m4 --install
124 configureFlags = [ "--with-python3" "--without-virtualenv" ];
126 cp -a ${bowerComponents}/bower_components/* extlib
131 libpaths = with gst_all_1; [
140 plugin_paths = builtins.concatStringsSep ":" (map (x: "${x}/lib") libpaths);
141 typelib_paths = with gst_all_1; "${gstreamer}/lib/girepository-1.0:${gst-plugins-base}/lib/girepository-1.0";
143 sed -i "s/registry.has_key(current_theme_name)/current_theme_name in registry/" mediagoblin/tools/theme.py
144 sed -i -e "s@\[DEFAULT\]@[DEFAULT]\nhere = $out@" mediagoblin/config_spec.ini
145 sed -i -e "/from gi.repository import GstPbutils/s/^/gi.require_version('GstPbutils', '1.0')\n/" mediagoblin/media_types/video/transcoders.py
146 cp ${./ldap_fix.py} mediagoblin/plugins/ldap/tools.py
147 find . -name '*.pyc' -delete
148 find . -type f -exec sed -i "s|$PWD|$out|g" {} \;
149 python setup.py build
152 makeWrapper ${gmg} $out/bin/gmg --prefix PYTHONPATH : "$out:$PYTHONPATH" \
153 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
154 --prefix GI_TYPELIB_PATH : ${typelib_paths}
155 makeWrapper ${python}/bin/paster $out/bin/paster --prefix PYTHONPATH : "$out:$PYTHONPATH" \
156 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
157 --prefix GI_TYPELIB_PATH : ${typelib_paths}
158 makeWrapper ${python}/bin/celery $out/bin/celery --prefix PYTHONPATH : "$out:$PYTHONPATH" \
159 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
160 --prefix GI_TYPELIB_PATH : ${typelib_paths}
162 buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
163 propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];