[Checkins] SVN: zope.ucol/trunk/icu/ Created recipe for installing
icu.
Jim Fulton
jim at zope.com
Mon Oct 16 06:40:25 EDT 2006
Log message for revision 70677:
Created recipe for installing icu.
Changed:
A zope.ucol/trunk/icu/
A zope.ucol/trunk/icu/README.txt
A zope.ucol/trunk/icu/setup.py
A zope.ucol/trunk/icu/src/
A zope.ucol/trunk/icu/src/zc/
A zope.ucol/trunk/icu/src/zc/__init__.py
A zope.ucol/trunk/icu/src/zc/recipe/
A zope.ucol/trunk/icu/src/zc/recipe/__init__.py
A zope.ucol/trunk/icu/src/zc/recipe/icu/
A zope.ucol/trunk/icu/src/zc/recipe/icu/__init__.py
-=-
Added: zope.ucol/trunk/icu/README.txt
===================================================================
--- zope.ucol/trunk/icu/README.txt 2006-10-16 09:43:41 UTC (rev 70676)
+++ zope.ucol/trunk/icu/README.txt 2006-10-16 10:40:24 UTC (rev 70677)
@@ -0,0 +1,14 @@
+Recipe for installing ICU into a buildout
+=========================================
+
+The zc.recipe.icu recipe installs the International Component for
+Unicode (ICU) library into a `buildout
+<http://www.python.org/pypi/zc.buildout>`_.
+
+The recipe takes a single option, version::
+
+ [icu]
+ recipe = zc.recipe.icu
+ version = 3.2
+
+
Property changes on: zope.ucol/trunk/icu/README.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zope.ucol/trunk/icu/setup.py
===================================================================
--- zope.ucol/trunk/icu/setup.py 2006-10-16 09:43:41 UTC (rev 70676)
+++ zope.ucol/trunk/icu/setup.py 2006-10-16 10:40:24 UTC (rev 70677)
@@ -0,0 +1,32 @@
+import os
+from setuptools import setup, find_packages
+
+def read(*rnames):
+ return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+name = "zc.recipe.icu"
+setup(
+ name = name,
+ version = "1.0.0b1",
+ author = "Jim Fulton",
+ author_email = "jim at zope.com",
+ description = ("ZC Buildout recipe for installing the ICU library"
+ " into a buildout"),
+ long_description= read('README.txt'),
+ license = "ZPL 2.1",
+ keywords = "development build internationalization",
+ url='http://www.python.org/pypi/'+name,
+
+ packages = find_packages('src'),
+ include_package_data = True,
+ package_dir = {'':'src'},
+ namespace_packages = ['zc', 'zc.recipe'],
+ install_requires = ['setuptools'],
+ entry_points = {'zc.buildout': ['default = %s:Recipe' % name]},
+ classifiers = [
+ 'Framework :: Buildout',
+ 'Development Status :: 4 - Beta',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Zope Public License',
+ ],
+ )
Property changes on: zope.ucol/trunk/icu/setup.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added: zope.ucol/trunk/icu/src/zc/__init__.py
===================================================================
--- zope.ucol/trunk/icu/src/zc/__init__.py 2006-10-16 09:43:41 UTC (rev 70676)
+++ zope.ucol/trunk/icu/src/zc/__init__.py 2006-10-16 10:40:24 UTC (rev 70677)
@@ -0,0 +1 @@
+__import__('pkg_resources').declare_namespace(__name__)
Property changes on: zope.ucol/trunk/icu/src/zc/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added: zope.ucol/trunk/icu/src/zc/recipe/__init__.py
===================================================================
--- zope.ucol/trunk/icu/src/zc/recipe/__init__.py 2006-10-16 09:43:41 UTC (rev 70676)
+++ zope.ucol/trunk/icu/src/zc/recipe/__init__.py 2006-10-16 10:40:24 UTC (rev 70677)
@@ -0,0 +1 @@
+__import__('pkg_resources').declare_namespace(__name__)
Property changes on: zope.ucol/trunk/icu/src/zc/recipe/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added: zope.ucol/trunk/icu/src/zc/recipe/icu/__init__.py
===================================================================
--- zope.ucol/trunk/icu/src/zc/recipe/icu/__init__.py 2006-10-16 09:43:41 UTC (rev 70676)
+++ zope.ucol/trunk/icu/src/zc/recipe/icu/__init__.py 2006-10-16 10:40:24 UTC (rev 70677)
@@ -0,0 +1,79 @@
+import os, sys, shutil, tempfile, urllib2
+import setuptools.archive_util
+
+class Recipe:
+
+ def __init__(self, buildout, name, options):
+ self.name = name
+ self.options = options
+ self.location = os.path.join(
+ buildout['buildout']['parts-directory'],
+ self.name)
+ options['location'] = self.location
+ if sys.platform.startswith('linux'):
+ platform = 'LinuxRedHat'
+ elif sys.platform.startswith('darwin'):
+ platform = 'MacOSX'
+ elif sys.platform.startswith('win32'):
+ platform = 'win32'
+ else:
+ raise SystemError("Can't guess an ICU platform")
+ options['platform'] = platform
+
+ def install(self):
+ options = self.options
+ dest = options['location']
+ if os.path.exists(dest):
+ return dest
+
+ if options['platform'] == 'win32':
+ return self.install_win32(options, dest)
+
+ here = os.getcwd()
+ tmp = tempfile.mkdtemp()
+ try:
+ f = urllib2.urlopen(
+ 'ftp://ftp.software.ibm.com/software/globalization/icu/'
+ '%(version)s/icu-%(version)s.tgz'
+ % dict(version=options['version'])
+ )
+ open(os.path.join(tmp, 'arch'), 'w').write(f.read())
+ f.close()
+ setuptools.archive_util.unpack_archive(
+ os.path.join(tmp, 'arch'),
+ tmp,
+ )
+ os.chdir(os.path.join(tmp, 'icu', 'source'))
+ assert os.spawnl(
+ os.P_WAIT,
+ os.path.join(tmp, 'icu', 'source', 'runConfigureICU'),
+ os.path.join(tmp, 'icu', 'source', 'runConfigureICU'),
+ options['platform'],
+ '--prefix='+dest,
+ ) == 0
+ assert os.spawnlp(os.P_WAIT, 'make', 'make', 'install') == 0
+ finally:
+ os.chdir(here)
+ shutil.rmtree(tmp)
+
+ return dest
+
+ def update(self):
+ pass
+
+ def install_win32(self, options, dest):
+ tmp = tempfile.mkstemp()
+ try:
+ f = urllib2.urlopen(
+ 'ftp://ftp.software.ibm.com/software/globalization/icu/'
+ '%(version)s/icu-%(version)s-Win32-msvc7.1.zip'
+ % dict(version=options['version'])
+ )
+ open(tmp, 'w').write(f.read())
+ f.close()
+ setuptools.archive_util.unpack_archive(tmp, dest)
+ finally:
+ shutil.rmfile(tmp)
+
+ return dest
+
Property changes on: zope.ucol/trunk/icu/src/zc/recipe/icu/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
More information about the Checkins
mailing list