[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