Ticket #2527: setuptools_optional.patch.txt

File setuptools_optional.patch.txt, 7.9 kB (added by zooko, 2 years ago)

setuptools_optional.patch.txt

Line 
1 Index: setup.py
2 ===================================================================
3 --- setup.py    (revision 15040)
4 +++ setup.py    (working copy)
5 @@ -1,50 +1,111 @@
6 -#!/usr/bin/python
7 +#!/usr/bin/env python
8  # -*- test-case-name: "nevow.test -xformless.test" -*-
9  
10 -import os.path
11 -from distutils.core import setup
12 -import glob
13 -import sys
14 -import setupcommon
15 +from nevow import __version__ as version
16  
17 -# Where should our data files go?
18 -# They want to go in our package directory , which is under site-packages.
19 -# We determine the location of site-packages here, for later use. It will be
20 -# interpreted as relative to sys.prefix.
21 -# This junk can go once we decide to drop Python 2.3 support or switch to
22 -# setuptools. package_data is a much cleaner solution.
23 -if sys.platform.lower().startswith('win'):
24 -    site_packages = 'Lib/site-packages/'
25 +try:
26 +    import setuptools
27 +except ImportError:
28 +    setuptools = None
29 +
30 +
31 +setupdict = {
32 +    'name': 'Nevow',
33 +    'version': version,
34 +    'maintainer': 'Divmod, Inc.',
35 +    'maintainer_email': 'support@divmod.org',
36 +    'description': 'Web Application Construction Kit',
37 +    'url': 'http://divmod.org/trac/wiki/DivmodNevow',
38 +    'license': 'MIT',
39 +    'platforms': ["any"],
40 +    'classifiers': [
41 +        "Intended Audience :: Developers",
42 +        "Programming Language :: Python",
43 +        "Development Status :: 4 - Beta",
44 +        "Topic :: Internet :: WWW/HTTP :: Dynamic Content"],
45 +    'scripts': ['bin/nevow-xmlgettext', 'bin/nit'],
46 +    'package_data': {
47 +            'formless': [
48 +                'freeform-default.css'
49 +                ],
50 +            'nevow': [
51 +                'Canvas.swf',
52 +                '*.css',
53 +                '*.js',
54 +                'js/Divmod/*.js',
55 +                'js/Nevow/*.js',
56 +                'js/Nevow/Test/*.js',
57 +                'js/Nevow/Athena/Tests/*.js',
58 +                'js/Divmod/Runtime/*.js',
59 +                'js/Nevow/Athena/*.js',
60 +                'js/Nevow/TagLibrary/*.js',
61 +                'js/Divmod/Test/*.js',
62 +                'js/PythonTestSupport/*.js',
63 +                ],
64 +            'nevow.athena_private': [
65 +                '*.png'
66 +                ],
67 +            'nevow.taglibrary': [
68 +                '*.css',
69 +                '*.js'
70 +                ],
71 +            'nevow.livetrial': [
72 +                '*.css',
73 +                '*.js'
74 +                ],
75 +            'nevow.test': [
76 +                '*.js'
77 +                ],
78 +            'nevow.test.test_package.Foo': [
79 +                '*.js'
80 +                ],
81 +            'nevow.test.test_package.Foo.Baz': [
82 +                '*.js'
83 +                ],
84 +            }
85 +}
86 +
87 +if setuptools:
88 +    # Importing setuptools worked -- then we do the following setup script:
89 +    from setuptools import setup, find_packages
90 +
91 +    setupdict['packages'] = find_packages()
92  else:
93 -    version = '.'.join([str(i) for i in sys.version_info[:2]])
94 -    site_packages = 'lib/python' + version + '/site-packages/'
95 +    # No setuptools -- decide where the data files should go and explicitly list
96 +    # the packages.
97  
98 -# Turn the package_data into a data_files for 2.3 compatability
99 -data_files = []
100 -for pkg, patterns in setupcommon.package_data.items():
101 -    pkgdir = os.path.join(*pkg.split('.'))
102 -    for pattern in patterns:
103 -        globdir = os.path.dirname(pattern)
104 -        files = glob.glob(os.path.join(pkgdir, pattern))
105 -        data_files.append((os.path.join(site_packages,pkgdir,globdir),files))
106 +    from distutils.core import setup
107  
108 -# We need to list the packages explicitly.
109 -packages = [
110 -    'formless', 'formless.test', 'nevow', 'nevow.flat',
111 -    'nevow.scripts', 'nevow.test', 'nevow.taglibrary',
112 -    'nevow.plugins', 'nevow.livetrial', 'twisted.plugins']
113 +    import os.path
114 +    import glob
115 +    import sys
116  
117 -setup(
118 -    name=setupcommon.name,
119 -    version=setupcommon.version,
120 -    maintainer=setupcommon.maintainer,
121 -    maintainer_email=setupcommon.maintainer_email,
122 -    description=setupcommon.description,
123 -    url=setupcommon.url,
124 -    license=setupcommon.license,
125 -    platforms=setupcommon.platforms,
126 -    classifiers=setupcommon.classifiers,
127 -    packages=packages,
128 -    scripts=setupcommon.scripts,
129 -    data_files=data_files,
130 -    )
131 +    # Where should our data files go?
132 +    # They want to go in our package directory , which is under site-packages.
133 +    # We determine the location of site-packages here, for later use. It will be
134 +    # interpreted as relative to sys.prefix.
135 +
136 +    if sys.platform.lower().startswith('win'):
137 +        site_packages = 'Lib/site-packages/'
138 +    else:
139 +        version = '.'.join([str(i) for i in sys.version_info[:2]])
140 +        site_packages = 'lib/python' + version + '/site-packages/'
141 +
142 +    # Turn the package_data into a data_files for 2.3 compatability
143 +    setupdict['data_files'] = []
144 +    for pkg, patterns in setupdict['package_data'].items():
145 +        pkgdir = os.path.join(*pkg.split('.'))
146 +        for pattern in patterns:
147 +            globdir = os.path.dirname(pattern)
148 +            files = glob.glob(os.path.join(pkgdir, pattern))
149 +            setupdict['data_files'].append((os.path.join(site_packages,pkgdir,globdir),files))
150 +
151 +    # We need to list the packages explicitly.
152 +    setupdict['packages'] = [
153 +        'formless', 'formless.test', 'nevow', 'nevow.flat',
154 +        'nevow.scripts', 'nevow.test', 'nevow.taglibrary',
155 +        'nevow.plugins', 'nevow.livetrial', 'twisted.plugins']
156 +
157 +
158 +setup(**setupdict)
159 +
160 Index: setupcommon.py
161 ===================================================================
162 --- setupcommon.py      (revision 15040)
163 +++ setupcommon.py      (working copy)
164 @@ -1,53 +0,0 @@
165 -name='Nevow'
166 -from nevow import __version__ as version
167 -maintainer = 'Divmod, Inc.'
168 -maintainer_email = 'support@divmod.org'
169 -description = 'Web Application Construction Kit'
170 -url='http://divmod.org/trac/wiki/DivmodNevow'
171 -license='MIT'
172 -platforms=["any"]
173 -classifiers=[
174 -    "Intended Audience :: Developers",
175 -    "Programming Language :: Python",
176 -    "Development Status :: 4 - Beta",
177 -    "Topic :: Internet :: WWW/HTTP :: Dynamic Content"]
178 -scripts=['bin/nevow-xmlgettext', 'bin/nit']
179 -package_data={
180 -        'formless': [
181 -            'freeform-default.css'
182 -            ],
183 -        'nevow': [
184 -            'Canvas.swf',
185 -            '*.css',
186 -            '*.js',
187 -            'js/Divmod/*.js',
188 -            'js/Nevow/*.js',
189 -            'js/Nevow/Test/*.js',
190 -            'js/Nevow/Athena/Tests/*.js',
191 -            'js/Divmod/Runtime/*.js',
192 -            'js/Nevow/Athena/*.js',
193 -            'js/Nevow/TagLibrary/*.js',
194 -            'js/Divmod/Test/*.js',
195 -            'js/PythonTestSupport/*.js',
196 -            ],
197 -        'nevow.athena_private': [
198 -            '*.png'
199 -            ],
200 -        'nevow.taglibrary': [
201 -            '*.css',
202 -            '*.js'
203 -            ],
204 -        'nevow.livetrial': [
205 -            '*.css',
206 -            '*.js'
207 -            ],
208 -        'nevow.test': [
209 -            '*.js'
210 -            ],
211 -        'nevow.test.test_package.Foo': [
212 -            '*.js'
213 -            ],
214 -        'nevow.test.test_package.Foo.Baz': [
215 -            '*.js'
216 -            ],
217 -        }
218 Index: setup_egg.py
219 ===================================================================
220 --- setup_egg.py        (revision 15040)
221 +++ setup_egg.py        (working copy)
222 @@ -1,28 +0,0 @@
223 -#!/usr/bin/env python
224 -# -*- test-case-name: "nevow.test -xformless.test" -*-
225 -
226 -# Use setuptools, it's easier
227 -from ez_setup import use_setuptools
228 -use_setuptools()
229 -from setuptools import setup, find_packages
230 -import setupcommon
231 -
232 -# Import Nevow for the version string
233 -import nevow
234 -
235 -setup(
236 -    name=setupcommon.name,
237 -    version=setupcommon.version,
238 -    maintainer=setupcommon.maintainer,
239 -    maintainer_email=setupcommon.maintainer_email,
240 -    description=setupcommon.description,
241 -    url=setupcommon.url,
242 -    license=setupcommon.license,
243 -    platforms=setupcommon.platforms,
244 -    classifiers=setupcommon.classifiers,
245 -    packages=find_packages(),
246 -    scripts=setupcommon.scripts,
247 -    package_data=setupcommon.package_data,
248 -    zip_safe = True,
249 -    )
250 -
jethro@divmod.org