diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/build.sh | 1 | ||||
| -rw-r--r-- | django/libgdal.patch | 28 | ||||
| -rw-r--r-- | django/libgeos.patch | 77 | ||||
| -rw-r--r-- | django/meta.yaml | 211 | 
4 files changed, 296 insertions, 21 deletions
diff --git a/django/build.sh b/django/build.sh deleted file mode 100644 index 5a5aeeb..0000000 --- a/django/build.sh +++ /dev/null @@ -1 +0,0 @@ -$PYTHON setup.py install diff --git a/django/libgdal.patch b/django/libgdal.patch new file mode 100644 index 0000000..56b6906 --- /dev/null +++ b/django/libgdal.patch @@ -0,0 +1,28 @@ +--- Django-2.0.orig/django/contrib/gis/gdal/libgdal.py	2017-12-02 12:36:16.000000000 -0200 ++++ Django-2.0/django/contrib/gis/gdal/libgdal.py	2017-12-06 08:14:42.730016198 -0200 +@@ -1,5 +1,6 @@ + import logging + import os ++import sys + import re + from ctypes import CDLL, CFUNCTYPE, c_char_p, c_int + from ctypes.util import find_library +@@ -10,12 +11,12 @@ + logger = logging.getLogger('django.contrib.gis') +  + # Custom library path set? +-try: +-    from django.conf import settings +-    lib_path = settings.GDAL_LIBRARY_PATH +-except (AttributeError, EnvironmentError, +-        ImportError, ImproperlyConfigured): +-    lib_path = None ++if 'linux' in sys.platform: ++    lib_path = os.path.join(sys.prefix, 'lib', 'libgdal.so') ++elif 'darwin' in sys.platform: ++    lib_path = os.path.join(sys.prefix, 'lib', 'libgdal.dylib') ++elif os.name == 'nt': ++    lib_path = os.path.join(sys.prefix, 'Library', 'bin', 'gdal201.dll') +  + if lib_path: +     lib_names = None diff --git a/django/libgeos.patch b/django/libgeos.patch new file mode 100644 index 0000000..6c8c8d6 --- /dev/null +++ b/django/libgeos.patch @@ -0,0 +1,77 @@ +--- Django-2.0.orig/django/contrib/gis/geos/libgeos.py	2017-12-02 12:36:16.000000000 -0200 ++++ Django-2.0/django/contrib/gis/geos/libgeos.py	2017-12-06 08:12:35.806014360 -0200 +@@ -8,8 +8,8 @@ + """ + import logging + import os ++import sys + from ctypes import CDLL, CFUNCTYPE, POINTER, Structure, c_char_p +-from ctypes.util import find_library +  + from django.core.exceptions import ImproperlyConfigured + from django.utils.functional import SimpleLazyObject, cached_property +@@ -19,47 +19,27 @@ +  +  + def load_geos(): +-    # Custom library path set? +-    try: +-        from django.conf import settings +-        lib_path = settings.GEOS_LIBRARY_PATH +-    except (AttributeError, EnvironmentError, +-            ImportError, ImproperlyConfigured): +-        lib_path = None +- +-    # Setting the appropriate names for the GEOS-C library. +-    if lib_path: +-        lib_names = None +-    elif os.name == 'nt': +-        # Windows NT libraries +-        lib_names = ['geos_c', 'libgeos_c-1'] +-    elif os.name == 'posix': +-        # *NIX libraries +-        lib_names = ['geos_c', 'GEOS'] +-    else: +-        raise ImportError('Unsupported OS "%s"' % os.name) +- +-    # Using the ctypes `find_library` utility to find the path to the GEOS +-    # shared library.  This is better than manually specifying each library name +-    # and extension (e.g., libgeos_c.[so|so.1|dylib].). +-    if lib_names: +-        for lib_name in lib_names: +-            lib_path = find_library(lib_name) +-            if lib_path is not None: +-                break +- +-    # No GEOS library could be found. +-    if lib_path is None: +-        raise ImportError( +-            'Could not find the GEOS library (tried "%s"). ' +-            'Try setting GEOS_LIBRARY_PATH in your settings.' % +-            '", "'.join(lib_names) +-        ) +     # Getting the GEOS C library.  The C interface (CDLL) is used for +     # both *NIX and Windows. +     # See the GEOS C API source code for more details on the library function calls: +     #  http://geos.refractions.net/ro/doxygen_docs/html/geos__c_8h-source.html +-    _lgeos = CDLL(lib_path) ++    if os.name == 'posix': ++        platform = os.uname()[0] ++        if platform == 'Linux': ++            libname = 'libgeos_c.so' ++        elif platform == 'Darwin': ++            libname = 'libgeos_c.dylib' ++        _lgeos = CDLL(os.path.join(sys.prefix, 'lib', libname)) ++    elif os.name == 'nt': ++        # On Windows, the GDAL binaries have some OSR routines exported with ++        # STDCALL, while others are not.  Thus, the library will also need to ++        # be loaded up as WinDLL for said OSR functions that require the ++        # different calling convention. ++        libname = os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll') ++        _lgeos = CDLL(libname) ++    else: ++        raise Exception('No valid platform name. Found {}'.format(os.name)) ++ +     # Here we set up the prototypes for the initGEOS_r and finishGEOS_r +     # routines.  These functions aren't actually called until they are +     # attached to a GEOS context handle -- this actually occurs in diff --git a/django/meta.yaml b/django/meta.yaml index 64baae1..9aa227a 100644 --- a/django/meta.yaml +++ b/django/meta.yaml @@ -1,43 +1,214 @@ -{% set name = 'django' %} -{% set version = '1.8.14' %} -{% set build = '0' %} +{% set version = "2.2.9" %}  package: -  name: {{ name }} +  name: django    version: {{ version }}  source: -  git_tag: {{ version }} -  git_url: https://github.com/{{ name }}/{{ name }}.git +  url: https://pypi.io/packages/source/D/Django/Django-{{ version }}.tar.gz +  sha256: 662a1ff78792e3fd77f16f71b1f31149489434de4b62a74895bd5d6534e635a5 +  patches: +    # Hard-code gdal and geos' paths to the corresponding conda packages. +    - libgdal.patch +    - libgeos.patch  build: +  number: 0 +  skip: True  # [py2k] +  script: "{{ PYTHON }} -m pip install . --no-deps -vv"    entry_points:      - django-admin = django.core.management:execute_from_command_line -    - django-admin.py = django.core.management:execute_from_command_line  requirements: -  build: +  host:      - python -    - setuptools +    - pip    run:      - python +    - pytz +    - sqlparse  test: -  commands: -    - django-admin --version +  requires: +    # Test optional dependency. +    - psycopg2  # [not win]    imports:      - django +    - django.apps +    - django.conf +    - django.conf.app_template.migrations  # [not py27] +    - django.conf.locale +    - django.conf.locale.ar +    - django.conf.locale.az +    - django.conf.locale.bg +    - django.conf.locale.bn +    - django.conf.locale.bs +    - django.conf.locale.ca +    - django.conf.locale.cs +    - django.conf.locale.cy +    - django.conf.locale.da +    - django.conf.locale.de +    - django.conf.locale.de_CH +    - django.conf.locale.el +    - django.conf.locale.en +    - django.conf.locale.en_AU +    - django.conf.locale.en_GB +    - django.conf.locale.eo +    - django.conf.locale.es +    - django.conf.locale.es_AR +    - django.conf.locale.es_MX +    - django.conf.locale.es_NI +    - django.conf.locale.es_PR +    - django.conf.locale.et +    - django.conf.locale.eu +    - django.conf.locale.fa +    - django.conf.locale.fi +    - django.conf.locale.fr +    - django.conf.locale.fy +    - django.conf.locale.ga +    - django.conf.locale.gl +    - django.conf.locale.he +    - django.conf.locale.hi +    - django.conf.locale.hr +    - django.conf.locale.hu +    - django.conf.locale.id +    - django.conf.locale.it +    - django.conf.locale.ja +    - django.conf.locale.ka +    - django.conf.locale.km +    - django.conf.locale.kn +    - django.conf.locale.ko +    - django.conf.locale.lt +    - django.conf.locale.lv +    - django.conf.locale.mk +    - django.conf.locale.ml +    - django.conf.locale.mn +    - django.conf.locale.nb +    - django.conf.locale.nl +    - django.conf.locale.nn +    - django.conf.locale.pl +    - django.conf.locale.pt +    - django.conf.locale.pt_BR +    - django.conf.locale.ro +    - django.conf.locale.ru +    - django.conf.locale.sk +    - django.conf.locale.sl +    - django.conf.locale.sq +    - django.conf.locale.sr +    - django.conf.locale.sr_Latn +    - django.conf.locale.sv +    - django.conf.locale.ta +    - django.conf.locale.te +    - django.conf.locale.th +    - django.conf.locale.tr +    - django.conf.locale.uk +    - django.conf.locale.vi +    - django.conf.locale.zh_Hans +    - django.conf.locale.zh_Hant +    - django.conf.urls +    - django.contrib +    - django.contrib.admin +    - django.contrib.admin.migrations +    - django.contrib.admin.templatetags +    - django.contrib.admin.views +    - django.contrib.admindocs +    - django.contrib.auth +    - django.contrib.auth.handlers +    - django.contrib.auth.management +    - django.contrib.auth.management.commands +    - django.contrib.auth.migrations +    - django.contrib.contenttypes +    - django.contrib.contenttypes.migrations +    - django.contrib.flatpages +    - django.contrib.flatpages.migrations +    - django.contrib.flatpages.templatetags +    - django.contrib.gis +    - django.contrib.gis.db +    - django.contrib.gis.db.backends +    - django.contrib.gis.db.backends.base +    - django.contrib.gis.db.backends.mysql +    - django.contrib.gis.db.backends.oracle +    - django.contrib.gis.db.backends.postgis +    - django.contrib.gis.db.backends.spatialite +    - django.contrib.gis.geometry  # [not win and not py2k] +    - django.contrib.gis.management  # [not win and not py2k] +    - django.contrib.gis.management.commands  # [not win and not py2k] +    - django.contrib.gis.serializers  # [not win and not py2k] +    - django.contrib.humanize +    - django.contrib.humanize.templatetags +    - django.contrib.messages +    - django.contrib.messages.storage +    - django.contrib.postgres  # [not win] +    - django.contrib.postgres.forms  # [not win] +    - django.contrib.redirects +    - django.contrib.redirects.migrations +    - django.contrib.sessions +    - django.contrib.sessions.backends +    - django.contrib.sessions.management +    - django.contrib.sessions.management.commands +    - django.contrib.sessions.migrations +    - django.contrib.sitemaps +    - django.contrib.sitemaps.management +    - django.contrib.sitemaps.management.commands +    - django.contrib.sites +    - django.contrib.sites.migrations +    - django.contrib.staticfiles +    - django.contrib.staticfiles.management +    - django.contrib.staticfiles.management.commands +    - django.contrib.staticfiles.templatetags +    - django.contrib.syndication +    - django.core +    - django.core.checks +    - django.core.checks.compatibility +    - django.core.checks.security +    - django.core.files +    - django.core.handlers +    - django.core.mail +    - django.core.mail.backends +    - django.core.management +    - django.core.management.commands +    - django.core.serializers +    - django.core.servers +    - django.db +    - django.db.backends +    - django.db.backends.base +    - django.db.backends.dummy +    - django.db.backends.mysql +    - django.db.backends.oracle +    - django.db.backends.postgresql_psycopg2  # [not win] +    - django.db.backends.sqlite3 +    - django.db.migrations +    - django.db.migrations.operations +    - django.db.models +    - django.db.models.fields +    - django.db.models.sql +    - django.dispatch +    - django.forms      - django.http +    - django.middleware +    - django.template +    - django.template.backends +    - django.template.loaders +    - django.templatetags +    - django.test +    - django.utils +    - django.utils.translation +    - django.views +    - django.views.decorators +    - django.views.generic +  commands: +    - django-admin --help  about:    home: http://www.djangoproject.com/ -  license: BSD +  license: BSD 3-Clause    license_file: LICENSE -  summary: Web framework that encourages rapid development -  description: | -    Django is a high-level Python Web framework that encourages rapid -    development and clean, pragmatic design. Built by experienced developers, it -    takes care of much of the hassle of Web development, so you can focus on -    writing your app without needing to reinvent the wheel. -  doc_url: https://docs.djangoproject.com/en/1.8/ -  dev_url: https://github.com/{{ name }} +  summary: 'A high-level Python Web framework that encourages rapid development and clean, pragmatic design.' +  dev_url: https://github.com/django/django +  doc_url: http://www.djangoproject.com/ + +extra: +  recipe-maintainers: +    - kwilcox +    - ocefpaf +    - astamminger  | 
