From afeef4cb9ec6924ad0d3ce8c184809060e537140 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Wed, 15 Jul 2015 10:58:01 -0400 Subject: [PATCH] Fix setuptools infinite loop bug triggered by python-saml --- pavelib/prereqs.py | 1 + requirements/edx/base.txt | 5 +++-- requirements/edx/post.txt | 12 ++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 requirements/edx/post.txt diff --git a/pavelib/prereqs.py b/pavelib/prereqs.py index 4219a9a58b..220a5387c4 100644 --- a/pavelib/prereqs.py +++ b/pavelib/prereqs.py @@ -16,6 +16,7 @@ PYTHON_REQ_FILES = [ 'requirements/edx/github.txt', 'requirements/edx/local.txt', 'requirements/edx/base.txt', + 'requirements/edx/post.txt', ] # Developers can have private requirements, for local copies of github repos, diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 7361f5de46..2032e331ab 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -44,7 +44,6 @@ glob2==0.3 gunicorn==0.17.4 httpretty==0.8.3 lazy==1.1 -lxml==3.4.4 mako==0.9.1 Markdown==2.2.1 --allow-external meliae @@ -69,7 +68,6 @@ python-memcached==1.48 python-openid==2.2.5 python-dateutil==2.1 python-social-auth==0.2.11 -python-saml==2.1.3 pytz==2015.2 pysrt==0.4.7 PyYAML==3.10 @@ -90,6 +88,9 @@ unicodecsv==0.9.4 django-require==1.0.6 pyuca==1.1 +# This needs to be installed *after* Cython, which is in pre.txt +lxml==3.4.4 + # Used for shopping cart's pdf invoice/receipt generation reportlab==3.1.44 diff --git a/requirements/edx/post.txt b/requirements/edx/post.txt new file mode 100644 index 0000000000..30c479b3d2 --- /dev/null +++ b/requirements/edx/post.txt @@ -0,0 +1,12 @@ +# DON'T JUST ADD NEW DEPENDENCIES!!! +# +# If you open a pull request that adds a new dependency, you should notify: +# * @mollydb - to check licensing +# * support@edx.org - to check system requirements + +# This needs to be installed *after* lxml, which is in base.txt. +# python-saml pulls in lxml as a dependency, and due to a bug in setuptools, +# trying to compile lxml as a dependency causes setuptools to go into an +# infinite loop and run out of memory. Because why would you trust a +# dependency management tool to manage dependencies for you? +python-saml==2.1.3