[python-django14] initial import

Matthias Runge mrunge at fedoraproject.org
Thu Apr 4 06:29:15 UTC 2013


commit 2654023fe865df9a9daa02703c4ad4ff0f3ff6b1
Author: Matthias Runge <mrunge at redhat.com>
Date:   Thu Apr 4 08:29:06 2013 +0200

    initial import

 .gitignore                                    |    1 +
 Django-1.4-no-egg-test.patch                  |  124 ++++++
 Django-1.4-no-internet-connection-tests.patch |   43 ++
 Django-1.4-relax-scalability-req.patch        |   11 +
 python-django14.spec                          |  519 +++++++++++++++++++++++++
 simplejson-init.py                            |    6 +
 sources                                       |    1 +
 7 files changed, 705 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..c7a60df 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/Django-1.4.5.tar.gz
diff --git a/Django-1.4-no-egg-test.patch b/Django-1.4-no-egg-test.patch
new file mode 100644
index 0000000..4cc777e
--- /dev/null
+++ b/Django-1.4-no-egg-test.patch
@@ -0,0 +1,124 @@
+diff -up ./tests/regressiontests/app_loading/tests.py.bak ./tests/regressiontests/app_loading/tests.py
+--- ./tests/regressiontests/app_loading/tests.py.bak	2013-04-03 12:15:34.038335480 +0200
++++ ./tests/regressiontests/app_loading/tests.py	2013-04-03 12:16:09.526221416 +0200
+@@ -26,45 +26,6 @@ class EggLoadingTest(TestCase):
+         cache.app_models = self.old_app_models
+         cache.app_store = self.old_app_store
+ 
+-    def test_egg1(self):
+-        """Models module can be loaded from an app in an egg"""
+-        egg_name = '%s/modelapp.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        models = load_app('app_with_models')
+-        self.assertFalse(models is None)
+-
+-    def test_egg2(self):
+-        """Loading an app from an egg that has no models returns no models (and no error)"""
+-        egg_name = '%s/nomodelapp.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        models = load_app('app_no_models')
+-        self.assertTrue(models is None)
+-
+-    def test_egg3(self):
+-        """Models module can be loaded from an app located under an egg's top-level package"""
+-        egg_name = '%s/omelet.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        models = load_app('omelet.app_with_models')
+-        self.assertFalse(models is None)
+-
+-    def test_egg4(self):
+-        """Loading an app with no models from under the top-level egg package generates no error"""
+-        egg_name = '%s/omelet.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        models = load_app('omelet.app_no_models')
+-        self.assertTrue(models is None)
+-
+-    def test_egg5(self):
+-        """Loading an app from an egg that has an import error in its models module raises that error"""
+-        egg_name = '%s/brokenapp.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        self.assertRaises(ImportError, load_app, 'broken_app')
+-        try:
+-            load_app('broken_app')
+-        except ImportError, e:
+-            # Make sure the message is indicating the actual
+-            # problem in the broken app.
+-            self.assertTrue("modelz" in e.args[0])
+ 
+ 
+ class GetModelsTest(TestCase):
+diff -up ./tests/regressiontests/templates/tests.py.bak ./tests/regressiontests/templates/tests.py
+--- ./tests/regressiontests/templates/tests.py.bak	2013-04-03 12:16:23.873175302 +0200
++++ ./tests/regressiontests/templates/tests.py	2013-04-03 12:39:35.777700936 +0200
+@@ -1718,24 +1718,7 @@ class TemplateTagLoading(unittest.TestCa
+             self.assertTrue('ImportError' in e.args[0])
+             self.assertTrue('Xtemplate' in e.args[0])
+ 
+-    def test_load_error_egg(self):
+-        ttext = "{% load broken_egg %}"
+-        egg_name = '%s/tagsegg.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        settings.INSTALLED_APPS = ('tagsegg',)
+-        self.assertRaises(template.TemplateSyntaxError, template.Template, ttext)
+-        try:
+-            template.Template(ttext)
+-        except template.TemplateSyntaxError, e:
+-            self.assertTrue('ImportError' in e.args[0])
+-            self.assertTrue('Xtemplate' in e.args[0])
+ 
+-    def test_load_working_egg(self):
+-        ttext = "{% load working_egg %}"
+-        egg_name = '%s/tagsegg.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        settings.INSTALLED_APPS = ('tagsegg',)
+-        t = template.Template(ttext)
+ 
+ 
+ class RequestContextTests(BaseTemplateResponseTest):
+diff -up ./tests/regressiontests/utils/module_loading.py.bak ./tests/regressiontests/utils/module_loading.py
+--- ./tests/regressiontests/utils/module_loading.py.bak	2013-04-03 12:17:11.144023363 +0200
++++ ./tests/regressiontests/utils/module_loading.py	2013-04-03 12:18:40.020737688 +0200
+@@ -64,43 +64,6 @@ class EggLoader(unittest.TestCase):
+         sys.modules.pop('egg_module.good_module', None)
+         sys.modules.pop('egg_module', None)
+ 
+-    def test_shallow_loader(self):
+-        "Module existence can be tested inside eggs"
+-        egg_name = '%s/test_egg.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        egg_module = import_module('egg_module')
+-
+-        # An importable child
+-        self.assertTrue(module_has_submodule(egg_module, 'good_module'))
+-        mod = import_module('egg_module.good_module')
+-        self.assertEqual(mod.content, 'Good Module')
+-
+-        # A child that exists, but will generate an import error if loaded
+-        self.assertTrue(module_has_submodule(egg_module, 'bad_module'))
+-        self.assertRaises(ImportError, import_module, 'egg_module.bad_module')
+-
+-        # A child that doesn't exist
+-        self.assertFalse(module_has_submodule(egg_module, 'no_such_module'))
+-        self.assertRaises(ImportError, import_module, 'egg_module.no_such_module')
+-
+-    def test_deep_loader(self):
+-        "Modules deep inside an egg can still be tested for existence"
+-        egg_name = '%s/test_egg.egg' % self.egg_dir
+-        sys.path.append(egg_name)
+-        egg_module = import_module('egg_module.sub1.sub2')
+-
+-        # An importable child
+-        self.assertTrue(module_has_submodule(egg_module, 'good_module'))
+-        mod = import_module('egg_module.sub1.sub2.good_module')
+-        self.assertEqual(mod.content, 'Deep Good Module')
+-
+-        # A child that exists, but will generate an import error if loaded
+-        self.assertTrue(module_has_submodule(egg_module, 'bad_module'))
+-        self.assertRaises(ImportError, import_module, 'egg_module.sub1.sub2.bad_module')
+-
+-        # A child that doesn't exist
+-        self.assertFalse(module_has_submodule(egg_module, 'no_such_module'))
+-        self.assertRaises(ImportError, import_module, 'egg_module.sub1.sub2.no_such_module')
+ 
+ class ProxyFinder(object):
+     def __init__(self):
diff --git a/Django-1.4-no-internet-connection-tests.patch b/Django-1.4-no-internet-connection-tests.patch
new file mode 100644
index 0000000..2e3df5e
--- /dev/null
+++ b/Django-1.4-no-internet-connection-tests.patch
@@ -0,0 +1,43 @@
+--- Django-1.4/tests/regressiontests/forms/tests/fields.py.no-internet-connection-tests	2012-03-23 23:59:20.000000000 +0700
++++ Django-1.4/tests/regressiontests/forms/tests/fields.py	2012-03-25 19:15:44.534220582 +0700
+@@ -653,6 +653,7 @@
+ 
+     @verify_exists_urls(('http://www.google.com/',))
+     def test_urlfield_3(self):
++        return
+         f = URLField(verify_exists=True)
+         self.assertEqual(u'http://www.google.com/', f.clean('http://www.google.com'))
+         self.assertRaisesMessage(ValidationError, "[u'Enter a valid URL.']", f.clean, 'http://example')
+@@ -670,6 +671,7 @@
+ 
+     @verify_exists_urls(('http://www.google.com/',))
+     def test_urlfield_4(self):
++        return
+         f = URLField(verify_exists=True, required=False)
+         self.assertEqual(u'', f.clean(''))
+         self.assertEqual(u'http://www.google.com/', f.clean('http://www.google.com'))
+@@ -724,6 +726,7 @@
+ 
+     @verify_exists_urls((u'http://xn--hxargifdar.idn.icann.org/%CE%91%CF%81%CF%87%CE%B9%CE%BA%CE%AE_%CF%83%CE%B5%CE%BB%CE%AF%CE%B4%CE%B1',))
+     def test_urlfield_10(self):
++        return
+         # UTF-8 in the domain.
+         f = URLField(verify_exists=True)
+         url = u'http://\u03b5\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac.idn.icann.org/\u0391\u03c1\u03c7\u03b9\u03ba\u03ae_\u03c3\u03b5\u03bb\u03af\u03b4\u03b1'
+--- Django-1.4/tests/modeltests/validation/tests.py.no-internet-connection-tests	2012-03-23 23:59:19.000000000 +0700
++++ Django-1.4/tests/modeltests/validation/tests.py	2012-03-25 14:06:07.571984910 +0700
+@@ -78,12 +78,12 @@
+     @verify_exists_urls(existing_urls=('http://www.google.com/',))
+     def test_correct_url_value_passes(self):
+         mtv = ModelToValidate(number=10, name='Some Name', url_verify='http://www.google.com/')
+-        self.assertEqual(None, mtv.full_clean()) # This will fail if there's no Internet connection
++        # self.assertEqual(None, mtv.full_clean()) # This will fail if there's no Internet connection
+ 
+     @verify_exists_urls(existing_urls=('http://qa-dev.w3.org/link-testsuite/http.php?code=301',))
+     def test_correct_url_with_redirect(self):
+         mtv = ModelToValidate(number=10, name='Some Name', url_verify='http://qa-dev.w3.org/link-testsuite/http.php?code=301') #example.com is a redirect to iana.org now
+-        self.assertEqual(None, mtv.full_clean()) # This will fail if there's no Internet connection
++        # self.assertEqual(None, mtv.full_clean()) # This will fail if there's no Internet connection
+ 
+     def test_correct_https_url_but_nonexisting(self):
+         mtv = ModelToValidate(number=10, name='Some Name', url_verify='https://www.example.com/')
diff --git a/Django-1.4-relax-scalability-req.patch b/Django-1.4-relax-scalability-req.patch
new file mode 100644
index 0000000..74aa9e4
--- /dev/null
+++ b/Django-1.4-relax-scalability-req.patch
@@ -0,0 +1,11 @@
+--- Django-1.4/tests/regressiontests/utils/crypto.py.relax-scalability-req	2012-03-23 23:59:19.000000000 +0700
++++ Django-1.4/tests/regressiontests/utils/crypto.py	2012-03-25 15:51:35.624732842 +0700
+@@ -145,6 +145,6 @@
+         t1 = elapsed('pbkdf2("password", "salt", iterations=%d)' % n1)
+         t2 = elapsed('pbkdf2("password", "salt", iterations=%d)' % n2)
+         measured_scale_exponent = math.log(t2 / t1, n2 / n1)
+-        # This should be less than 1. We allow up to 1.2 so that tests don't 
++        # This should be less than 1. We allow up to 1.4 so that tests don't 
+         # fail nondeterministically too often.
+-        self.assertLess(measured_scale_exponent, 1.2)
++        self.assertLess(measured_scale_exponent, 1.4)
diff --git a/python-django14.spec b/python-django14.spec
new file mode 100644
index 0000000..20b4ce8
--- /dev/null
+++ b/python-django14.spec
@@ -0,0 +1,519 @@
+%global         pkgname Django
+
+# Tests requiring Internet connections are disabled by default
+# pass --with internet to run them (e.g. when doing a local rebuild
+# for sanity checks before committing)
+%bcond_with internet
+
+Name:           python-django14
+Version:        1.4.5
+Release:        4%{?dist}
+Summary:        A high-level Python Web framework
+
+Group:          Development/Languages
+License:        BSD
+URL:            http://www.djangoproject.com/
+Source0:        http://pypi.python.org/packages/source/D/%{pkgname}/%{pkgname}-%{version}.tar.gz
+Source1:        simplejson-init.py
+
+# patch tests to skip tests requiring internet connection
+Patch0:         Django-1.4-no-internet-connection-tests.patch
+# patch tests to relax performance scalability requirements
+Patch1:         Django-1.4-relax-scalability-req.patch
+# skip tests requiring bundled eggs
+Patch2:         Django-1.4-no-egg-test.patch
+
+BuildArch:      noarch
+# Note: No longer required in development version > 0.95
+# BuildRequires:  python-setuptools
+BuildRequires:  python2-devel
+BuildRequires:  python-sphinx
+# for testing
+BuildRequires:  python-simplejson
+
+Requires:       python-simplejson
+
+# allow users to use django with lowercase d
+Provides:       %{pkgname} = %{version}-%{release}
+
+
+%description
+Django is a high-level Python Web framework that encourages rapid
+development and a clean, pragmatic design. It focuses on automating as
+much as possible and adhering to the DRY (Don't Repeat Yourself)
+principle.
+
+%package doc
+Summary:        Documentation for Django
+Group:          Documentation
+Requires:       %{name} = %{version}-%{release}
+
+Provides:       %{pkgname}-docs = %{version}-%{release}
+
+%description doc
+This package contains the documentation for the Django high-level
+Python Web framework.
+
+%prep
+%setup -q -n %{pkgname}-%{version}
+
+# remove bundled eggs
+find . -name "*.egg" -exec rm -f '{}' \;
+
+%if ! %{with internet}
+# patch tests to skip tests requiring internet connection
+%patch0 -p1 -b .no-internet-connection-tests
+%endif
+# patch tests to relax performance scalability requirements
+%patch1 -p1 -b .relax-scalability-req
+
+# patch tests to skip tests requiring bundled eggs
+%patch2 -p1 -b .no-egg-test.patch
+
+# empty files
+for f in \
+    django/contrib/humanize/models.py \
+    django/contrib/markup/models.py \
+    django/contrib/staticfiles/models.py \
+    django/contrib/webdesign/models.py \
+; do
+  echo "# just a comment" > $f
+done
+echo "<!-- nothing -->" > django/contrib/flatpages/tests/templates/registration/login.html
+
+# remove bundled simplejson (for tests)
+cd django/utils/simplejson
+rm -rf *
+# and put the replacement stub in place
+cp -p %{SOURCE1} __init__.py
+
+
+
+%build
+%{__python} setup.py build
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
+
+%find_lang django
+%find_lang djangojs
+# append djangojs.lang to django.lang
+cat djangojs.lang >> django.lang
+
+# build documentation
+(cd docs && mkdir djangohtml && mkdir -p _build/{doctrees,html} && make html)
+
+
+# install man pages
+mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1/
+cp -p docs/man/* $RPM_BUILD_ROOT%{_mandir}/man1/
+
+# install bash completion script
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/
+install -m 0644 -p extras/django_bash_completion \
+   $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/
+
+# Fix items in %%{_bindir}
+mv $RPM_BUILD_ROOT%{_bindir}/django-admin.py $RPM_BUILD_ROOT%{_bindir}/django-admin
+
+# remove .po files
+find $RPM_BUILD_ROOT -name "*.po" | xargs rm -f
+
+# Fix permissions
+chmod +x \
+  $RPM_BUILD_ROOT%{python_sitelib}/django/contrib/admin/static/admin/js/compress.py \
+  $RPM_BUILD_ROOT%{python_sitelib}/django/bin/profiling/gather_profile_stats.py
+
+
+
+%check
+export PYTHONPATH=$(pwd)
+export LANG=en_US.utf8
+cd tests
+./runtests.py --settings=test_sqlite
+
+
+%files -f django.lang 
+%doc AUTHORS LICENSE README django/contrib/admin/static/admin/js/LICENSE-JQUERY.txt
+%{_bindir}/django-admin
+%{_mandir}/man1/*
+%attr(0755,root,root) %{python_sitelib}/django/bin/*-messages.py*
+%attr(0755,root,root) %{python_sitelib}/django/bin/daily_cleanup.py*
+%attr(0755,root,root) %{python_sitelib}/django/bin/django-admin.py*
+%dir %{_sysconfdir}/bash_completion.d/
+%config(noreplace) %{_sysconfdir}/bash_completion.d/django_bash_completion
+%{python_sitelib}/django/bin/profiling/
+%{python_sitelib}/django/bin/__init__.py*
+# Include everything but the locale data ...
+%dir %{python_sitelib}/django
+%dir %{python_sitelib}/django/bin
+%{python_sitelib}/django/db/
+%{python_sitelib}/django/*.py*
+%{python_sitelib}/django/shortcuts/
+%{python_sitelib}/django/utils/
+%{python_sitelib}/django/dispatch/
+%{python_sitelib}/django/template/
+%{python_sitelib}/django/views/
+%dir %{python_sitelib}/django/conf/
+%dir %{python_sitelib}/django/conf/locale/
+%dir %{python_sitelib}/django/conf/locale/??/
+%dir %{python_sitelib}/django/conf/locale/??_*/
+%dir %{python_sitelib}/django/conf/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/
+%{python_sitelib}/django/contrib/*.py*
+%dir %{python_sitelib}/django/contrib/admin/
+%dir %{python_sitelib}/django/contrib/admin/locale
+%dir %{python_sitelib}/django/contrib/admin/locale/??/
+%dir %{python_sitelib}/django/contrib/admin/locale/??_*/
+%dir %{python_sitelib}/django/contrib/admin/locale/*/LC_MESSAGES
+%{python_sitelib}/django/contrib/admin/static/
+%dir %{python_sitelib}/django/contrib/admindocs/
+%dir %{python_sitelib}/django/contrib/admindocs/locale/
+%dir %{python_sitelib}/django/contrib/admindocs/locale/??/
+%dir %{python_sitelib}/django/contrib/admindocs/locale/??_*/
+%dir %{python_sitelib}/django/contrib/admindocs/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/auth/
+%dir %{python_sitelib}/django/contrib/auth/locale/
+%dir %{python_sitelib}/django/contrib/auth/locale/??/
+%dir %{python_sitelib}/django/contrib/auth/locale/??_*/
+%dir %{python_sitelib}/django/contrib/auth/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/comments/
+%dir %{python_sitelib}/django/contrib/comments/locale/
+%dir %{python_sitelib}/django/contrib/comments/locale/??/
+%dir %{python_sitelib}/django/contrib/comments/locale/??_*/
+%dir %{python_sitelib}/django/contrib/comments/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/contenttypes/
+%dir %{python_sitelib}/django/contrib/contenttypes/locale
+%dir %{python_sitelib}/django/contrib/contenttypes/locale/??/
+%dir %{python_sitelib}/django/contrib/contenttypes/locale/??_*/
+%dir %{python_sitelib}/django/contrib/contenttypes/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/databrowse/
+%dir %{python_sitelib}/django/contrib/flatpages/
+%dir %{python_sitelib}/django/contrib/flatpages/locale/
+%dir %{python_sitelib}/django/contrib/flatpages/locale/??/
+%dir %{python_sitelib}/django/contrib/flatpages/locale/??_*/
+%dir %{python_sitelib}/django/contrib/flatpages/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/formtools/
+%dir %{python_sitelib}/django/contrib/formtools/locale/
+%dir %{python_sitelib}/django/contrib/formtools/locale/??/
+%dir %{python_sitelib}/django/contrib/formtools/locale/??_*/
+%dir %{python_sitelib}/django/contrib/formtools/locale/*/LC_MESSAGES
+%{python_sitelib}/django/contrib/formtools/wizard/
+%dir %{python_sitelib}/django/contrib/gis/
+%dir %{python_sitelib}/django/contrib/gis/locale/
+%dir %{python_sitelib}/django/contrib/gis/locale/??/
+%dir %{python_sitelib}/django/contrib/gis/locale/??_*/
+%dir %{python_sitelib}/django/contrib/gis/locale/*/LC_MESSAGES
+%{python_sitelib}/django/contrib/gis/geoip/
+%dir %{python_sitelib}/django/contrib/humanize/
+%dir %{python_sitelib}/django/contrib/humanize/locale/
+%dir %{python_sitelib}/django/contrib/humanize/locale/??/
+%dir %{python_sitelib}/django/contrib/humanize/locale/??_*/
+%dir %{python_sitelib}/django/contrib/humanize/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/localflavor/
+%dir %{python_sitelib}/django/contrib/localflavor/??/
+%dir %{python_sitelib}/django/contrib/localflavor/??_??/
+%{python_sitelib}/django/contrib/localflavor/??/*
+%{python_sitelib}/django/contrib/localflavor/??_??/*
+%dir %{python_sitelib}/django/contrib/localflavor/locale
+%dir %{python_sitelib}/django/contrib/localflavor/locale/??/
+%dir %{python_sitelib}/django/contrib/localflavor/locale/??_*/
+%dir %{python_sitelib}/django/contrib/localflavor/locale/*/LC_MESSAGES/
+%dir %{python_sitelib}/django/contrib/markup/
+%dir %{python_sitelib}/django/contrib/messages/
+%dir %{python_sitelib}/django/contrib/messages/locale
+%dir %{python_sitelib}/django/contrib/messages/locale/??/
+%dir %{python_sitelib}/django/contrib/messages/locale/??_*/
+%dir %{python_sitelib}/django/contrib/messages/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/redirects
+%dir %{python_sitelib}/django/contrib/redirects/locale
+%dir %{python_sitelib}/django/contrib/redirects/locale/??/
+%dir %{python_sitelib}/django/contrib/redirects/locale/??_*/
+%dir %{python_sitelib}/django/contrib/redirects/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/sessions/
+%dir %{python_sitelib}/django/contrib/sessions/locale/
+%dir %{python_sitelib}/django/contrib/sessions/locale/??/
+%dir %{python_sitelib}/django/contrib/sessions/locale/??_*/
+%dir %{python_sitelib}/django/contrib/sessions/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/sitemaps/
+%dir %{python_sitelib}/django/contrib/sites/
+%dir %{python_sitelib}/django/contrib/sites/locale/
+%dir %{python_sitelib}/django/contrib/sites/locale/??/
+%dir %{python_sitelib}/django/contrib/sites/locale/??_*/
+%dir %{python_sitelib}/django/contrib/sites/locale/*/LC_MESSAGES
+%dir %{python_sitelib}/django/contrib/staticfiles/
+%dir %{python_sitelib}/django/contrib/syndication/
+%dir %{python_sitelib}/django/contrib/webdesign/
+%{python_sitelib}/django/contrib/*/*.py*
+%{python_sitelib}/django/contrib/*/fixtures/
+%{python_sitelib}/django/contrib/*/handlers/
+%{python_sitelib}/django/contrib/*/management/
+%{python_sitelib}/django/contrib/*/plugins/
+%{python_sitelib}/django/contrib/*/templates/
+%{python_sitelib}/django/contrib/*/templatetags/
+%{python_sitelib}/django/contrib/*/tests/
+%{python_sitelib}/django/contrib/*/views/
+%{python_sitelib}/django/contrib/gis/admin/
+%{python_sitelib}/django/contrib/gis/db/
+%{python_sitelib}/django/contrib/gis/forms/
+%{python_sitelib}/django/contrib/gis/gdal/
+%{python_sitelib}/django/contrib/gis/geometry/
+%{python_sitelib}/django/contrib/gis/geos/
+%{python_sitelib}/django/contrib/gis/maps/
+%{python_sitelib}/django/contrib/gis/sitemaps/
+%{python_sitelib}/django/contrib/gis/utils/
+%{python_sitelib}/django/contrib/localflavor/generic/
+%{python_sitelib}/django/contrib/localflavor/in_/
+%{python_sitelib}/django/contrib/localflavor/is_/
+%{python_sitelib}/django/contrib/messages/storage/
+%{python_sitelib}/django/contrib/sessions/backends/
+%{python_sitelib}/django/forms/
+%{python_sitelib}/django/templatetags/ 
+%{python_sitelib}/django/core/
+%{python_sitelib}/django/http/
+%{python_sitelib}/django/middleware/
+%{python_sitelib}/django/test/
+%{python_sitelib}/django/conf/*.py*
+%{python_sitelib}/django/conf/project_template/
+%{python_sitelib}/django/conf/app_template/
+%{python_sitelib}/django/conf/urls/
+%{python_sitelib}/django/conf/locale/*/*.py*
+%{python_sitelib}/django/conf/locale/*.py*
+
+%{python_sitelib}/*.egg-info
+
+ 
+
+%files doc
+%defattr(-,root,root,-)
+%doc docs/_build/html/*
+
+
+%changelog
+* Wed Apr 03 2013 Matthias Runge <mrunge at redhat.com> - 1.4.5-4
+- removed references to ancient Fedora releases
+- included JQUERY-LICENSE.txt
+- removed bundled eggs and skipped tests requiring bundled eggs
+
+* Thu Feb 28 2013 Matthias Runge <mrunge at redhat.com> - 1.4.5-3
+- packaging for python-django14
+
+* Thu Feb 21 2013 Matthias Runge <mrunge at redhat.com> - 1.4.5-2
+- update to latest stable upstream version
+- fix minor packaging issues introduced upstream
+
+* Wed Feb 20 2013 Matthias Runge <mrunge at redhat.com> - 1.4.4-1
+- update to 1.4.4 (rhbz #913024)
+- Data leakage via admin history log CVE-2013-0305 (rhbz #913041)
+- Formset denial-of-service CVE-2013-0306 (rhbz #913042)
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.4.3-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Thu Jan 24 2013 Matthias Runge <mrunge at redhat.com> - 1.4.3-2
+- also obsolete version 1.4.3-1
+
+* Sun Jan 13 2013 Matthias Runge <mrunge at redhat.com> - 1.4.3-2
+- own directories (rhbz#894533)
+
+* Tue Dec 11 2012 Matthias Runge <mrunge at redhat.com> - 1.4.3-1
+- security update to upstream version 1.4.3
+  https://www.djangoproject.com/weblog/2012/dec/10/security/
+
+* Fri Nov 16 2012 Bohuslav Kabrda <bkabrda at redhat.com> - 1.4.2-2
+- Bump obsoletes version, since there is still Django-1.4.2-1 out there.
+- Fix a provide that should allow users to use "django" instead of "Django".
+
+* Thu Oct 18 2012 Matthias Runge <mrunge at redhat.com> - 1.4.2-1
+- security update to upstream version 1.4.2-1
+  https://www.djangoproject.com/weblog/2012/oct/17/security/
+
+* Fri Sep 20 2012 Matthias Runge <mrunge at redhat.com> - 1.4.1-2
+- fix provides: Django
+
+* Wed Aug 01 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.4.1-1
+- update to 1.4.1 fixing CVE-2012-3442, CVE-2012-3443, and CVE-2012-3444
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.4-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed May 30 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.4-4
+- fix for FTBFS using python 2.7.3 (thanks to  M.Cepl)
+
+* Wed Mar 27 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.4-3
+- revert change from 1.4-2
+- really fix simplejson-import
+
+* Tue Mar 27 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.4-2
+- fix simplejson-import (port from django-1.3-package)
+
+* Sun Mar 25 2012 Michel Salim <salimma at fedoraproject.org> - 1.4-1
+- Update to 1.4
+
+* Mon Mar 19 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.3.1-9
+- spec cleanup
+
+* Sat Mar 17 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.3.1-8
+- patch tests to work on koji (no internet connection)
+
+* Sat Mar 10 2012 Michel Salim <salimma at fedoraproject.org> - 1.3.1-7
+- Enable tests
+- Now obsoletes (last Django release+1)
+- Mark Bash completion script as a configuration file
+
+* Fri Mar 09 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.3.1-6
+- add additional provides django = %%{version}-%%{release}
+
+* Wed Mar 07 2012 Matthias Runge <mrunge at matthias-runge.de> - 1.3.1-5
+- rename package to python-django
+
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Wed Oct 12 2011 Michel Salim <salimma at fedoraproject.org> - 1.3.1-3
+- Package bash completion script
+
+* Sat Sep 10 2011 Michel Salim <salimma at fedoraproject.org> - 1.3.1-2
+- Switch to the 'html' doc builder, for easier navigation without a web server
+
+* Sat Sep 10 2011 Michel Salim <salimma at fedoraproject.org> - 1.3.1-1
+- Update to 1.3.1
+- Remove workaround for non-functional -doc generation
+- Deduplicate file listing
+
+* Wed Mar 30 2011 Steve Milner <me at stevemilner.org> - 1.3-2
+- Fix for BZ#693865
+
+* Wed Mar 30 2011 Steve Milner <me at stevemilner.org> - 1.3-1
+- Fix for es_MX upstream bug
+- Update for upstream release
+
+* Wed Feb  9 2011 Steve Milner <me at stevemilner.org> - 1.2.5-1
+- Fix for CVE-2011-0697
+
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Jan  3 2011 Steve 'Ashcrow' Milner <me at stevemilner.org> - 1.2.4-1
+- Update for multiple security issues (see http://www.djangoproject.com/weblog/2010/dec/22/security/)
+
+* Sat Oct  9 2010 Steve 'Ashcrow' Milner <me at stevemilner.org> - 1.2.3-3
+- Now build docs for F12+
+- Added Django-remove-djangodocs-ext.patch
+
+* Sat Oct  9 2010 Steve 'Ashcrow' Milner <me at stevemilner.org> - 1.2.3-2
+- Moved to dirhtml for documentation generation
+
+* Mon Sep 13 2010 Steve 'Ashcrow' Milner <me at stevemilner.org> - 1.2.3-1
+- Update for http://www.djangoproject.com/weblog/2010/sep/10/123/
+
+* Thu Sep  9 2010 Steve 'Ashcrow' Milner <me at stevemilner.org> - 1.2.2-1
+- Update for CVE-2010-3082 (see http://www.djangoproject.com/weblog/2010/sep/08/security-release/)
+- Removed Django-hash-compat-13310.patch as it is already included in this release
+
+* Wed Jul 21 2010 David Malcolm <dmalcolm at redhat.com> - 1.2.1-6
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Tue Jun  8 2010 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.2.1-5
+- Added http://code.djangoproject.com/changeset/13310?format=diff&new=13310 per BZ#601212
+
+* Thu Jun  3 2010 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.2.1-4
+- Include egg in >= rhel6
+
+* Thu Jun  3 2010 Michel Salim <salimma at fedoraproject.org> - 1.2.1-3
+- Use generated %%{name}.lang instead of including each locale file by hand
+- Temporarily make main package provide -doc on Rawhide, to fix upgrade path
+  until upstream documentation builds with Sphinx 1.0
+
+* Thu May 27 2010 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.2.1-2
+- Allow for building docs in F13 as it's only F14 freaking out
+
+* Tue May 25 2010 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.2.1-1
+- Update for new release.
+- Added lang files per BZ#584866.
+- Changed perms on %%{python_sitelib}/django/contrib/admin/media/js/compress.py
+- Lots of explicit files listed in %%files in order to reduce duplicate file listings
+- Docs are not built on F-13 for now
+
+* Wed Oct 21 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.1.1-2
+- Removed po files per BZ#529188.
+
+* Fri Oct  9 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.1.1-1
+- Update to fix http://www.djangoproject.com/weblog/2009/oct/09/security/
+- Django-ignore-pyo-bz-495046.patch no longer needed.
+
+* Wed Aug 26 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.1-4
+- EL-4 shouldn't get the sphinx docs.
+
+* Wed Aug 26 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.1-3
+- ghosting admin py* is now FC9 and under.
+
+* Thu Aug  6 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.1-2
+- Applied Daniel Mach's patch from bz#516016.
+
+* Sat Aug  1 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.1-1
+- Update for Django 1.1 release.
+- Moved /usr/bin/django-admin.py to /usr/bin/django-admin
+- sed macro is now being used
+- Patch for bz#495046 applied.
+
+* Wed Jul 29 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.0.3-6
+- Attempted combined spec for F12/11/10 and EL5
+
+* Wed Jul 29 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.0.3-4
+- Older builds must ghost django-admin.py[c,o]
+
+* Wed Jul 29 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.0.3-3
+- Bump for tag issue.
+
+* Wed Jul 29 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.0.3-2
+- Fix changelog.
+
+* Wed Jul 29 2009 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.0.3-1
+- Upgrade for http://www.djangoproject.com/weblog/2009/jul/28/security/
+
+* Thu Mar 12 2009 Michel Salim <salimma at fedoraproject.org> - 1.0.2-3
+- Build HTML documentation (bug #484070)
+- No longer excluding *.py? in bindir, F11's Python does not optimizes these
+
+* Mon Feb 23 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Sun Dec 14 2008 Michel Salim <salimma at fedoraproject.org> - 1.0.2-1
+- Update to 1.0.2
+
+* Sat Nov  1 2008 Steve 'Ashcrow' Milner <stevem at gnulinux.net> - 1.0.1-0.1.beta1
+- Update to 1.0.1_beta_1
+
+* Sat Sep  6 2008 Michel Salim <salimma at fedoraproject.org> - 1.0-1
+- Update to final 1.0 release
+
+* Tue Sep  2 2008 Michel Salim <salimma at fedoraproject.org> - 1.0-0.1.rc1%{?dist}
+- CSRF security update: bz#460966
+
+* Wed Aug 27 2008 Michel Salim <salimma at fedoraproject.org> - 1.0-0.1.beta2
+- Update to 1.0 beta2
+
+* Sat Aug 23 2008 Michel Salim <salimma at fedoraproject.org> - 1.0-0.1.beta1
+- Update to 1.0 beta1
+
+* Mon May 19 2008 Michel Salim <salimma at fedoraproject.org> - 0.96.2-1
+- XSS security update: CVE-2008-2302 (bz# 442757-60)
+
+* Sat Apr  5 2008 Michel Salim <salimma at fedoraproject.org> - 0.96.1-2
+- Package .egg-info file on Fedora >= 9
+
+* Thu Nov  1 2007 Michel Salim <michel.sylvan at gmail.com> 0.96.1-1
+- i18n security update: CVE-2007-5712, bz#357051
+
+* Sat Mar 24 2007 Michel Salim <michel.salim at gmail.com> - 0.96-1
+- New upstream version
+
+* Sun Jan 21 2007 Michel Salim <michel.salim at gmail.com> - 0.95.1-1
+- Upstream security updates:
+  http://www.djangoproject.com/weblog/2007/jan/21/0951/
+
+* Sun Nov 12 2006 Michel Salim <michel.salim at gmail.com> - 0.95-1
+- Initial package
diff --git a/simplejson-init.py b/simplejson-init.py
new file mode 100644
index 0000000..55a3cfe
--- /dev/null
+++ b/simplejson-init.py
@@ -0,0 +1,6 @@
+"""
+Stub simplejson library that just imports the version provided by the system
+"""
+
+from simplejson import *
+from simplejson import __version__
diff --git a/sources b/sources
index e69de29..c054261 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+851d00905eb70e4aa6384b3b8b111fb7  Django-1.4.5.tar.gz


More information about the scm-commits mailing list