1 { makeWrapper, stdenv, writeScript, fetchurl, buildBowerComponents, mylibs, which, python36, gst_all_1, automake, autoconf, nodejs, nodePackages }:
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 amqp = super.amqp.overridePythonAttrs(old: rec {
34 src = self.fetchPypi {
37 sha256 = "2dea4d16d073c902c3b89d9b96620fb6729ac0f7a923bbc777cb4ad827c0c61a";
40 kombu = super.kombu.overridePythonAttrs(old: rec {
42 src = self.fetchPypi {
45 sha256 = "e064a00c66b4d1058cd2b0523fb8d98c82c18450244177b6c0f7913016642650";
47 propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.anyjson ];
50 sqlalchemy = super.sqlalchemy.overridePythonAttrs(old: rec {
52 src = self.fetchPypi {
55 sha256 = "8b0ec71af9291191ba83a91c03d157b19ab3e7119e27da97932a4773a3f664a9";
59 tempita_5_3_dev = super.buildPythonPackage (mylibs.fetchedGithub ./tempita.json // rec {
60 buildInputs = with self; [ nose ];
63 sqlalchemy_migrate = super.sqlalchemy_migrate.overridePythonAttrs(old: rec {
64 propagatedBuildInputs = with self; [ pbr tempita_5_3_dev decorator sqlalchemy six sqlparse ];
66 pasteScript = super.pasteScript.overridePythonAttrs(old: rec {
68 name = "PasteScript-${version}";
70 url = "mirror://pypi/P/PasteScript/${name}.tar.gz";
71 sha256 = "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0";
73 propagatedBuildInputs = with self; [ six paste PasteDeploy ];
77 python36.override { inherit packageOverrides; };
78 pythonEnv = python-pkgs: with python-pkgs; [
79 waitress alembic dateutil wtforms pybcrypt
80 pytest pytest_xdist werkzeug celery
81 kombu jinja2 Babel webtest configobj markdown
82 sqlalchemy itsdangerous pytz sphinx six
83 oauthlib unidecode jsonschema PasteDeploy
84 requests PyLD exifread
85 typing pasteScript lxml
97 python = overridePython.withPackages pythonEnv;
98 gmg = writeScript "gmg" ''
99 #!${python}/bin/python
100 __requires__ = 'mediagoblin'
102 from pkg_resources import load_entry_point
104 if __name__ == '__main__':
106 load_entry_point('mediagoblin', 'console_scripts', 'gmg')()
109 bowerComponents = buildBowerComponents {
110 name = "mediagoblin-bower-components";
111 generated = ./bower-packages.nix;
112 src = (mylibs.fetchedGit ./mediagoblin.json).src;
114 withPlugins = plugins: package.overrideAttrs(old: {
115 name = "${old.name}-with-plugins";
116 postBuild = old.postBuild + (
117 builtins.concatStringsSep "\n" (
118 map (value: "ln -s ${value} mediagoblin/plugins/${value.pluginName}") plugins
121 passthru = old.passthru // {
123 withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
126 package = stdenv.mkDerivation (mylibs.fetchedGit ./mediagoblin.json // rec {
129 aclocal -I m4 --install
134 configureFlags = [ "--with-python3" "--without-virtualenv" ];
136 cp -a ${bowerComponents}/bower_components/* extlib
141 libpaths = with gst_all_1; [
150 plugin_paths = builtins.concatStringsSep ":" (map (x: "${x}/lib") libpaths);
151 typelib_paths = with gst_all_1; "${gstreamer}/lib/girepository-1.0:${gst-plugins-base}/lib/girepository-1.0";
153 sed -i "s/registry.has_key(current_theme_name)/current_theme_name in registry/" mediagoblin/tools/theme.py
154 sed -i -e "s@\[DEFAULT\]@[DEFAULT]\nhere = $out@" mediagoblin/config_spec.ini
155 sed -i -e "/from gi.repository import GstPbutils/s/^/gi.require_version('GstPbutils', '1.0')\n/" mediagoblin/media_types/video/transcoders.py
156 cp ${./ldap_fix.py} mediagoblin/plugins/ldap/tools.py
157 find . -name '*.pyc' -delete
158 find . -type f -exec sed -i "s|$PWD|$out|g" {} \;
159 python setup.py build
162 makeWrapper ${gmg} $out/bin/gmg --prefix PYTHONPATH : "$out:$PYTHONPATH" \
163 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
164 --prefix GI_TYPELIB_PATH : ${typelib_paths}
165 makeWrapper ${python}/bin/paster $out/bin/paster --prefix PYTHONPATH : "$out:$PYTHONPATH" \
166 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
167 --prefix GI_TYPELIB_PATH : ${typelib_paths}
168 makeWrapper ${python}/bin/celery $out/bin/celery --prefix PYTHONPATH : "$out:$PYTHONPATH" \
169 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
170 --prefix GI_TYPELIB_PATH : ${typelib_paths}
172 buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
173 propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];