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 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 bowerComponents = buildBowerComponents {
112 name = "mediagoblin-bower-components";
113 generated = ./bower-packages.nix;
114 src = (mylibs.fetchedGit ./mediagoblin.json).src;
116 withPlugins = plugins: package.overrideAttrs(old: {
117 name = "${old.name}-with-plugins";
118 postBuild = old.postBuild + (
119 builtins.concatStringsSep "\n" (
120 map (value: "ln -s ${value} mediagoblin/plugins/${value.pluginName}") plugins
123 passthru = old.passthru // {
125 withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
128 package = stdenv.mkDerivation (mylibs.fetchedGit ./mediagoblin.json // rec {
131 aclocal -I m4 --install
136 configureFlags = [ "--with-python3" "--without-virtualenv" ];
138 cp -a ${bowerComponents}/bower_components/* extlib
143 libpaths = with gst_all_1; [
152 plugin_paths = builtins.concatStringsSep ":" (map (x: "${x}/lib") libpaths);
153 typelib_paths = with gst_all_1; "${gstreamer}/lib/girepository-1.0:${gst-plugins-base}/lib/girepository-1.0";
155 sed -i "s/registry.has_key(current_theme_name)/current_theme_name in registry/" mediagoblin/tools/theme.py
156 sed -i -e "s@\[DEFAULT\]@[DEFAULT]\nhere = $out@" mediagoblin/config_spec.ini
157 sed -i -e "/from gi.repository import GstPbutils/s/^/gi.require_version('GstPbutils', '1.0')\n/" mediagoblin/media_types/video/transcoders.py
158 cp ${./ldap_fix.py} mediagoblin/plugins/ldap/tools.py
159 find . -name '*.pyc' -delete
160 find . -type f -exec sed -i "s|$PWD|$out|g" {} \;
161 python setup.py build
164 makeWrapper ${gmg} $out/bin/gmg --prefix PYTHONPATH : "$out:$PYTHONPATH" \
165 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
166 --prefix GI_TYPELIB_PATH : ${typelib_paths}
167 makeWrapper ${python}/bin/paster $out/bin/paster --prefix PYTHONPATH : "$out:$PYTHONPATH" \
168 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
169 --prefix GI_TYPELIB_PATH : ${typelib_paths}
170 makeWrapper ${python}/bin/celery $out/bin/celery --prefix PYTHONPATH : "$out:$PYTHONPATH" \
171 --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
172 --prefix GI_TYPELIB_PATH : ${typelib_paths}
174 buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
175 propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];