summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cerbero/build/filesprovider.py43
-rw-r--r--cerbero/commands/gensdkshell.py3
-rw-r--r--cerbero/config.py15
-rw-r--r--cerbero/enums.py2
-rw-r--r--packages/python3.package22
-rw-r--r--recipes/glib.recipe3
-rw-r--r--recipes/gobject-introspection.recipe10
-rw-r--r--recipes/pango.recipe1
-rw-r--r--recipes/pycairo.recipe26
-rw-r--r--recipes/pygobject.recipe12
-rw-r--r--recipes/python3.recipe802
-rw-r--r--recipes/sqlite.recipe25
12 files changed, 953 insertions, 11 deletions
diff --git a/cerbero/build/filesprovider.py b/cerbero/build/filesprovider.py
index 86c0a4da..832b8854 100644
--- a/cerbero/build/filesprovider.py
+++ b/cerbero/build/filesprovider.py
@@ -211,6 +211,36 @@ class FilesProvider(object):
return shell.ls_files(libsmatch, self.config.prefix) + dlls
+ def _pyfile_get_name(self, f):
+ if os.path.exists(os.path.join(self.config.prefix, f)):
+ return f
+ else:
+ pydir = os.path.basename(os.path.normpath(self.config.py_prefix))
+ pyversioname = re.sub("python|\.", '', pydir)
+ cpythonname = "cpython-" + pyversioname
+
+ splitedext = os.path.splitext(f)
+ for ex in ['', 'm']:
+ f = splitedext[0] + '.' + cpythonname + ex + splitedext[1]
+ if os.path.exists(os.path.join(self.config.prefix, f)):
+ return f
+ return None
+
+ def _pyfile_get_cached(self, f):
+ pyfiles = []
+ pycachedir = os.path.join(os.path.dirname(f), "__pycache__")
+ for e in ['o', 'c']:
+ fe = self._pyfile_get_name(f + e)
+ if fe:
+ pyfiles.append(fe)
+ else:
+ cached = os.path.join(pycachedir, os.path.basename(f))
+ fe = self._pyfile_get_name(os.path.join(self.config.prefix, cached))
+ if fe:
+ pyfiles.append(fe)
+
+ return pyfiles
+
def _search_pyfiles(self, files):
'''
Search for python files in the prefix. This function doesn't do any
@@ -221,12 +251,15 @@ class FilesProvider(object):
for f in files:
f = f % self.extensions
f = '%s/%s' % (self.py_prefix, f)
- pyfiles.append(f)
+ real_name = self._pyfile_get_name(f)
+ if real_name:
+ pyfiles.append(real_name)
+ else:
+ # Adding it so we notice there is a problem in the recipe
+ pyfiles.append(f)
if f.endswith('.py'):
- for e in ['o', 'c']:
- fe = f + e
- if os.path.exists(os.path.join(self.config.prefix, fe)):
- pyfiles.append(fe)
+ cached_files = self._pyfile_get_cached(f)
+ pyfiles.extend(cached_files)
return pyfiles
def _search_langfiles(self, files):
diff --git a/cerbero/commands/gensdkshell.py b/cerbero/commands/gensdkshell.py
index bdb68c78..3bd3c7e8 100644
--- a/cerbero/commands/gensdkshell.py
+++ b/cerbero/commands/gensdkshell.py
@@ -98,6 +98,9 @@ class GenSdkShell(Command):
self._putvar('LDFLAGS', '-L%s ${LDFLAGS}' % libdir, " ")
self._putvar('GIO_EXTRA_MODULES', '%s/gio/modules' % libdir)
self._putvar('GI_TYPELIB_PATH', '%s/girepository-1.0' % libdir)
+ if config.variants.python3:
+ self._putvar('PYTHONHOME', prefix_env)
+ self._putvar('PYTHON', "python3", None)
if config.variants.gtk:
self._putvar('GTK_PATH', '%s/gtk-3.0' % libdir, None)
self._putvar('GTK_DATA_PREFIX', prefix_env, None)
diff --git a/cerbero/config.py b/cerbero/config.py
index 61b15125..a44c5efc 100644
--- a/cerbero/config.py
+++ b/cerbero/config.py
@@ -49,7 +49,7 @@ License = enums.License
class Variants(object):
__disabled_variants = ['x11', 'alsa', 'pulse', 'cdparanoia', 'v4l2', 'sdl',
- 'gi']
+ 'gi', 'python3']
__enabled_variants = ['debug', 'gtk', 'clutter', 'python', 'testspackage']
def __init__(self, variants):
@@ -116,6 +116,12 @@ class Config (object):
# from the main configuration file
self._load_cmd_config(filename)
+ # We need to set py_prefix as soon as possible
+ if "python3" in self.variants:
+ # FIXME Find a smarter way to figure out what version of python3
+ # is built.
+ self.py_prefix = 'lib/python3.3'
+
# Create a copy of the config for each architecture in case we are
# building Universal binaries
if self.target_arch == Architecture.UNIVERSAL:
@@ -151,6 +157,7 @@ class Config (object):
m.warning(_("gobject introspection is not supported "
"cross-compiling, 'gi' variant will be removed"))
self.variants.gi = False
+
for c in self.arch_config.values():
c.variants = self.variants
@@ -266,6 +273,12 @@ class Config (object):
'MONO_GAC_PREFIX': prefix,
'GSTREAMER_ROOT': prefix
}
+
+ if self.variants.python3:
+ env['PYTHON'] = "python3"
+ elif self.variants.python:
+ env['PYTHON'] = "python2"
+
return env
def load_defaults(self):
diff --git a/cerbero/enums.py b/cerbero/enums.py
index 5c26ef2d..33aac8b5 100644
--- a/cerbero/enums.py
+++ b/cerbero/enums.py
@@ -157,5 +157,7 @@ class License:
'LibPNG License')
MIT = LicenseDescription('MIT',
'MIT License')
+ PUBLIC_DOMAIN = LicenseDescription('PublicDomain',
+ 'Public domain')
Proprietary = LicenseDescription('Proprietary',
'Proprietary License')
diff --git a/packages/python3.package b/packages/python3.package
new file mode 100644
index 00000000..7c56ce0e
--- /dev/null
+++ b/packages/python3.package
@@ -0,0 +1,22 @@
+# vi:si:et:sw=4:sts=4:ts=4:syntax=python
+# -*- Mode: Python -*-
+
+
+class Package(package.Package):
+ name = 'python3'
+ shortdesc = 'python3'
+ longdesc = 'Python 3'
+ url = "http://python.org/"
+ version = '3.3'
+ codename = 'Congo'
+ # Python Software Foundation License
+ licenses = [License.BSD_like]
+ vendor = 'Python Project'
+ org = 'python.org'
+
+ files = ['Python',
+ 'gobject-introspection',
+ 'sqlite',
+ ]
+
+
diff --git a/recipes/glib.recipe b/recipes/glib.recipe
index 6e03ab5c..6bdd2282 100644
--- a/recipes/glib.recipe
+++ b/recipes/glib.recipe
@@ -92,6 +92,9 @@ class Recipe(recipe.Recipe):
return flags
def prepare(self):
+ if self.config.variants.python3 is True:
+ self.deps.append("Python")
+
if self.config.target_platform != Platform.WINDOWS:
self.configure_options += ' --enable-static'
if self.config.target_platform != Platform.LINUX:
diff --git a/recipes/gobject-introspection.recipe b/recipes/gobject-introspection.recipe
index d3445fc8..4e3a499b 100644
--- a/recipes/gobject-introspection.recipe
+++ b/recipes/gobject-introspection.recipe
@@ -1,4 +1,5 @@
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+import sys
class Recipe(recipe.Recipe):
@@ -69,8 +70,14 @@ class Recipe(recipe.Recipe):
'share/gobject-introspection-1.0'
]
- # TODO: catch the share/man stuff like man1/g-ir* ?
+ def prepare(self):
+ if self.config.variants.python3:
+ # cerbero is python2 only, same as gobject-introspection,
+ # make sure gobject-introspection is built against the same interpretter
+ # as we are
+ self.config_sh = "PYTHON=%s %s" %(sys.executable, self.config_sh)
+ # TODO: catch the share/man stuff like man1/g-ir* ?
def configure(self):
if self.config.target_platform in [Platform.IOS, Platform.DARWIN]:
if Architecture.is_arm(self.config.target_arch):
@@ -86,4 +93,3 @@ class Recipe(recipe.Recipe):
self.configure_options += ' --with-typelib-dir=$CERBERO_PREFIX/lib/%s ' % arch
self.configure_options += ' --with-gir-dir=$CERBERO_PREFIX/share/gir-1.0/%s ' % arch
super(Recipe, self).configure()
-
diff --git a/recipes/pango.recipe b/recipes/pango.recipe
index 8127f3db..93e67e81 100644
--- a/recipes/pango.recipe
+++ b/recipes/pango.recipe
@@ -19,7 +19,6 @@ class Recipe(recipe.Recipe):
'lib/pkgconfig/pangocairo.pc']
platform_files_libs = {
Platform.WINDOWS: ['libpangowin32-1.0'],
- Platform.LINUX: ['libpango-1.0'],
}
platform_files_devel = {
Platform.WINDOWS: ['lib/pkgconfig/pangowin32.pc'],
diff --git a/recipes/pycairo.recipe b/recipes/pycairo.recipe
new file mode 100644
index 00000000..fb63c9b3
--- /dev/null
+++ b/recipes/pycairo.recipe
@@ -0,0 +1,26 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.build.build import MakefilesBase
+
+class Recipe(recipe.Recipe):
+ name = 'pycairo'
+ version = '1.10.0'
+ # either LGPLv2.1 or MPLv1.1
+ licenses = [License.LGPLv2_1]
+ deps = ['cairo']
+
+ files_python = [
+ 'site-packages/cairo/_cairo%(pext)s',
+ 'site-packages/cairo/__init__.py',
+ ]
+ files_devel = ['include/pycairo', 'lib/pkgconfig/pycairo.pc']
+
+ config_sh = './waf configure'
+
+ make = './waf build'
+ make_install = './waf install'
+
+ stype = SourceType.TARBALL
+ url = "http://cairographics.org/releases/pycairo-%(version)s.tar.bz2"
+
+ def configure(self):
+ MakefilesBase.configure(self)
diff --git a/recipes/pygobject.recipe b/recipes/pygobject.recipe
index ba445eef..8f3d0092 100644
--- a/recipes/pygobject.recipe
+++ b/recipes/pygobject.recipe
@@ -7,9 +7,8 @@ class Recipe(recipe.Recipe):
stype = SourceType.TARBALL
url = 'http://ftp.gnome.org/pub/GNOME/sources/pygobject/3.12/pygobject-%(version)s.tar.xz'
licenses = [License.LGPLv2_1Plus]
- deps = ['glib', 'py2cairo']
+ deps = ['glib']
make_check = None # disabled until we fix the checks
-
files_python = [
'site-packages/gi/_gi%(pext)s',
'site-packages/gi/_gi_cairo%(pext)s',
@@ -41,3 +40,12 @@ class Recipe(recipe.Recipe):
files_devel = ['include/pygobject-3.0/pygobject.h',
'lib/pkgconfig/pygobject-3.0.pc',
]
+
+ def prepare(self):
+ if self.config.variants.python3:
+ self.deps.append("Python")
+ self.deps.append('pycairo')
+ self.configure_options = '--with-python=python3'
+ else:
+ self.deps.append('py2cairo')
+ self.configure_options = '--with-python=python2'
diff --git a/recipes/python3.recipe b/recipes/python3.recipe
new file mode 100644
index 00000000..77c776da
--- /dev/null
+++ b/recipes/python3.recipe
@@ -0,0 +1,802 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'Python'
+ version = '3.3.5'
+ stype = SourceType.TARBALL
+ url = 'https://www.python.org/ftp/python/%(version)s/Python-%(version)s.tar.xz'
+ # Python Software Foundation License
+ licenses = [License.BSD_like]
+ deps = ['libffi', 'sqlite']
+ configure_options = '--enable-loadable-sqlite-extensions --enable-shared '
+
+ files_python = [
+ 'plistlib.py',
+ 'functools.py',
+ 'nntplib.py',
+ '_dummy_thread.py',
+ 'glob.py',
+ 'ntpath.py',
+ '_markupbase.py',
+ '_compat_pickle.py',
+ 'sndhdr.py',
+ 'site.py',
+ 'numbers.py',
+ 'LICENSE.txt',
+ 'formatter.py',
+ 'mimetypes.py',
+ 'csv.py',
+ 'modulefinder.py',
+ 'getpass.py',
+ 'pkgutil.py',
+ 'optparse.py',
+ 'ipaddress.py',
+ 'struct.py',
+ 'pipes.py',
+ 'macurl2path.py',
+ 'quopri.py',
+ 'xdrlib.py',
+ 'dis.py',
+ 'crypt.py',
+ 'lzma.py',
+ 'telnetlib.py',
+ 'shelve.py',
+ 'reprlib.py',
+ 'cProfile.py',
+ 're.py',
+ 'cgitb.py',
+ 'socket.py',
+ 'gzip.py',
+ 'inspect.py',
+ 'codeop.py',
+ 'queue.py',
+ 'textwrap.py',
+ 'genericpath.py',
+ 'dummy_threading.py',
+ 'ast.py',
+ 'symtable.py',
+ 'threading.py',
+ 'weakref.py',
+ 'string.py',
+ 'fileinput.py',
+ 'keyword.py',
+ 'cmd.py',
+ 'asyncore.py',
+ 'smtplib.py',
+ 'os2emxpath.py',
+ 'py_compile.py',
+ 'zipfile.py',
+ 'getopt.py',
+ '__future__.py',
+ 'stat.py',
+ 'aifc.py',
+ 'locale.py',
+ 'contextlib.py',
+ 'os.py',
+ 'trace.py',
+ 'pickletools.py',
+ '_sysconfigdata.py',
+ 'shlex.py',
+ 'this.py',
+ 'pyclbr.py',
+ 'hmac.py',
+ 'fnmatch.py',
+ 'socketserver.py',
+ '_strptime.py',
+ 'sre_compile.py',
+ 'gettext.py',
+ 'code.py',
+ 'colorsys.py',
+ 'binhex.py',
+ 'mailcap.py',
+ 'compileall.py',
+ 'stringprep.py',
+ 'codecs.py',
+ 'subprocess.py',
+ 'bz2.py',
+ 'sysconfig.py',
+ '_weakrefset.py',
+ 'asynchat.py',
+ '_pyio.py',
+ 'pydoc.py',
+ 'fractions.py',
+ 'filecmp.py',
+ 'symbol.py',
+ 'tarfile.py',
+ 'copyreg.py',
+ 'wave.py',
+ 'uuid.py',
+ 'bisect.py',
+ 'io.py',
+ '_osx_support.py',
+ 'argparse.py',
+ 'sre_parse.py',
+ 'sunau.py',
+ 'cgi.py',
+ 'imaplib.py',
+ 'datetime.py',
+ 'pty.py',
+ 'timeit.py',
+ 'chunk.py',
+ 'doctest.py',
+ 'pprint.py',
+ 'runpy.py',
+ 'pickle.py',
+ 'tempfile.py',
+ 'calendar.py',
+ 'tty.py',
+ 'opcode.py',
+ 'traceback.py',
+ 'tabnanny.py',
+ 'poplib.py',
+ 'macpath.py',
+ 'mailbox.py',
+ 'tokenize.py',
+ 'decimal.py',
+ '_threading_local.py',
+ 'turtle.py',
+ 'copy.py',
+ 'sched.py',
+ 'antigravity.py',
+ 'heapq.py',
+ 'pdb.py',
+ 'platform.py',
+ 'random.py',
+ 'ssl.py',
+ 'ftplib.py',
+ 'imp.py',
+ 'base64.py',
+ 'netrc.py',
+ 'webbrowser.py',
+ 'sre_constants.py',
+ 'hashlib.py',
+ 'difflib.py',
+ 'linecache.py',
+ 'imghdr.py',
+ 'shutil.py',
+ 'configparser.py',
+ 'posixpath.py',
+ 'abc.py',
+ 'profile.py',
+ 'smtpd.py',
+ 'pstats.py',
+ 'types.py',
+ 'nturl2path.py',
+ '__phello__.foo.py',
+ 'rlcompleter.py',
+ 'uu.py',
+ 'warnings.py',
+ 'bdb.py',
+ 'token.py',
+ 'wsgiref/headers.py',
+ 'wsgiref/util.py',
+ 'wsgiref/__init__.py',
+ 'wsgiref/handlers.py',
+ 'wsgiref/simple_server.py',
+ 'wsgiref/validate.py',
+ 'dbm/dumb.py',
+ 'dbm/gnu.py',
+ 'dbm/__init__.py',
+ 'dbm/ndbm.py',
+ 'urllib/request.py',
+ 'urllib/__init__.py',
+ 'urllib/robotparser.py',
+ 'urllib/parse.py',
+ 'urllib/error.py',
+ 'urllib/response.py',
+ 'lib-dynload/_sha1%(pext)s',
+ 'lib-dynload/resource%(pext)s',
+ 'lib-dynload/_bz2%(pext)s',
+ 'lib-dynload/_lzma%(pext)s',
+ 'lib-dynload/zlib%(pext)s',
+ 'lib-dynload/_codecs_cn%(pext)s',
+ 'lib-dynload/array%(pext)s',
+ 'lib-dynload/_heapq%(pext)s',
+ 'lib-dynload/_pickle%(pext)s',
+ 'lib-dynload/_dbm%(pext)s',
+ 'lib-dynload/_sqlite3%(pext)s',
+ 'lib-dynload/cmath%(pext)s',
+ 'lib-dynload/_lsprof%(pext)s',
+ 'lib-dynload/_json%(pext)s',
+ 'lib-dynload/_codecs_jp%(pext)s',
+ 'lib-dynload/_sha512%(pext)s',
+ 'lib-dynload/atexit%(pext)s',
+ 'lib-dynload/xxlimited%(pext)s',
+ 'lib-dynload/_multibytecodec%(pext)s',
+ 'lib-dynload/parser%(pext)s',
+ 'lib-dynload/_md5%(pext)s',
+ 'lib-dynload/_csv%(pext)s',
+ 'lib-dynload/grp%(pext)s',
+ 'lib-dynload/select%(pext)s',
+ 'lib-dynload/_elementtree%(pext)s',
+ 'lib-dynload/_posixsubprocess%(pext)s',
+ 'lib-dynload/_codecs_kr%(pext)s',
+ 'lib-dynload/time%(pext)s',
+ 'lib-dynload/binascii%(pext)s',
+ 'lib-dynload/termios%(pext)s',
+ 'lib-dynload/_sha256%(pext)s',
+ 'lib-dynload/_ctypes%(pext)s',
+ 'lib-dynload/_multiprocessing%(pext)s',
+ 'lib-dynload/ossaudiodev%(pext)s',
+ 'lib-dynload/pyexpat%(pext)s',
+ 'lib-dynload/math%(pext)s',
+ 'lib-dynload/_ctypes_test%(pext)s',
+ 'lib-dynload/_crypt%(pext)s',
+ 'lib-dynload/_datetime%(pext)s',
+ 'lib-dynload/mmap%(pext)s',
+ 'lib-dynload/_codecs_hk%(pext)s',
+ 'lib-dynload/_gdbm%(pext)s',
+ 'lib-dynload/_bisect%(pext)s',
+ 'lib-dynload/spwd%(pext)s',
+ 'lib-dynload/_testbuffer%(pext)s',
+ 'lib-dynload/_testcapi%(pext)s',
+ 'lib-dynload/nis%(pext)s',
+ 'lib-dynload/audioop%(pext)s',
+ 'lib-dynload/_decimal%(pext)s',
+ 'lib-dynload/_socket%(pext)s',
+ 'lib-dynload/syslog%(pext)s',
+ 'lib-dynload/_codecs_iso2022%(pext)s',
+ 'lib-dynload/_random%(pext)s',
+ 'lib-dynload/_struct%(pext)s',
+ 'lib-dynload/_codecs_tw%(pext)s',
+ 'lib-dynload/unicodedata%(pext)s',
+ 'lib-dynload/fcntl%(pext)s',
+ 'multiprocessing/reduction.py',
+ 'multiprocessing/util.py',
+ 'multiprocessing/heap.py',
+ 'multiprocessing/managers.py',
+ 'multiprocessing/__init__.py',
+ 'multiprocessing/queues.py',
+ 'multiprocessing/synchronize.py',
+ 'multiprocessing/sharedctypes.py',
+ 'multiprocessing/process.py',
+ 'multiprocessing/pool.py',
+ 'multiprocessing/forking.py',
+ 'multiprocessing/connection.py',
+ 'multiprocessing/dummy/__init__.py',
+ 'multiprocessing/dummy/connection.py',
+ 'ctypes/wintypes.py',
+ 'ctypes/util.py',
+ 'ctypes/_endian.py',
+ 'ctypes/__init__.py',
+ 'ctypes/macholib/fetch_macholib.bat',
+ 'ctypes/macholib/README.ctypes',
+ 'ctypes/macholib/__init__.py',
+ 'ctypes/macholib/dylib.py',
+ 'ctypes/macholib/dyld.py',
+ 'ctypes/macholib/framework.py',
+ 'ctypes/macholib/fetch_macholib',
+ 'xml/__init__.py',
+ 'xml/etree/ElementInclude.py',
+ 'xml/etree/ElementPath.py',
+ 'xml/etree/__init__.py',
+ 'xml/etree/ElementTree.py',
+ 'xml/etree/cElementTree.py',
+ 'xml/dom/minidom.py',
+ 'xml/dom/__init__.py',
+ 'xml/dom/NodeFilter.py',
+ 'xml/dom/xmlbuilder.py',
+ 'xml/dom/pulldom.py',
+ 'xml/dom/minicompat.py',
+ 'xml/dom/expatbuilder.py',
+ 'xml/dom/domreg.py',
+ 'xml/sax/xmlreader.py',
+ 'xml/sax/saxutils.py',
+ 'xml/sax/handler.py',
+ 'xml/sax/__init__.py',
+ 'xml/sax/expatreader.py',
+ 'xml/sax/_exceptions.py',
+ 'xml/parsers/__init__.py',
+ 'xml/parsers/expat.py',
+ 'http/server.py',
+ 'http/__init__.py',
+ 'http/cookies.py',
+ 'http/client.py',
+ 'http/cookiejar.py',
+ 'idlelib/config-main.def',
+ 'idlelib/ToolTip.py',
+ 'idlelib/extend.txt',
+ 'idlelib/idle.pyw',
+ 'idlelib/help.txt',
+ 'idlelib/ObjectBrowser.py',
+ 'idlelib/configSectionNameDialog.py',
+ 'idlelib/MultiStatusBar.py',
+ 'idlelib/config-extensions.def',
+ 'idlelib/TODO.txt',
+ 'idlelib/dynOptionMenuWidget.py',
+ 'idlelib/AutoComplete.py',
+ 'idlelib/idlever.py',
+ 'idlelib/SearchEngine.py',
+ 'idlelib/AutoExpand.py',
+ 'idlelib/UndoDelegator.py',
+ 'idlelib/__main__.py',
+ 'idlelib/configHandler.py',
+ 'idlelib/AutoCompleteWindow.py',
+ 'idlelib/FormatParagraph.py',
+ 'idlelib/tabbedpages.py',
+ 'idlelib/CREDITS.txt',
+ 'idlelib/RstripExtension.py',
+ 'idlelib/WindowList.py',
+ 'idlelib/PyParse.py',
+ 'idlelib/aboutDialog.py',
+ 'idlelib/TreeWidget.py',
+ 'idlelib/PyShell.py',
+ 'idlelib/__init__.py',
+ 'idlelib/config-keys.def',
+ 'idlelib/EditorWindow.py',
+ 'idlelib/StackViewer.py',
+ 'idlelib/ReplaceDialog.py',
+ 'idlelib/run.py',
+ 'idlelib/CodeContext.py',
+ 'idlelib/idle.py',
+ 'idlelib/RemoteObjectBrowser.py',
+ 'idlelib/WidgetRedirector.py',
+ 'idlelib/OutputWindow.py',
+ 'idlelib/MultiCall.py',
+ 'idlelib/IOBinding.py',
+ 'idlelib/textView.py',
+ 'idlelib/ScrolledList.py',
+ 'idlelib/config-highlight.def',
+ 'idlelib/IdleHistory.py',
+ 'idlelib/ScriptBinding.py',
+ 'idlelib/Percolator.py',
+ 'idlelib/HISTORY.txt',
+ 'idlelib/Bindings.py',
+ 'idlelib/CallTips.py',
+ 'idlelib/keybindingDialog.py',
+ 'idlelib/HyperParser.py',
+ 'idlelib/ParenMatch.py',
+ 'idlelib/PathBrowser.py',
+ 'idlelib/Delegator.py',
+ 'idlelib/configHelpSourceEdit.py',
+ 'idlelib/NEWS.txt',
+ 'idlelib/ChangeLog',
+ 'idlelib/CallTipWindow.py',
+ 'idlelib/SearchDialog.py',
+ 'idlelib/README.txt',
+ 'idlelib/macosxSupport.py',
+ 'idlelib/FileList.py',
+ 'idlelib/rpc.py',
+ 'idlelib/GrepDialog.py',
+ 'idlelib/ClassBrowser.py',
+ 'idlelib/SearchDialogBase.py',
+ 'idlelib/ZoomHeight.py',
+ 'idlelib/ColorDelegator.py',
+ 'idlelib/idle.bat',
+ 'idlelib/Debugger.py',
+ 'idlelib/RemoteDebugger.py',
+ 'idlelib/configDialog.py',
+ 'idlelib/Icons/python.gif',
+ 'idlelib/Icons/idle.ico',
+ 'idlelib/Icons/idle_48.gif',
+ 'idlelib/Icons/idle.icns',
+ 'idlelib/Icons/idle_16.png',
+ 'idlelib/Icons/idle_32.png',
+ 'idlelib/Icons/idle_48.png',
+ 'idlelib/Icons/tk.gif',
+ 'idlelib/Icons/idle_16.gif',
+ 'idlelib/Icons/folder.gif',
+ 'idlelib/Icons/minusnode.gif',
+ 'idlelib/Icons/openfolder.gif',
+ 'idlelib/Icons/idle_32.gif',
+ 'idlelib/Icons/plusnode.gif',
+ 'idlelib/idle_test/mock_tk.py',
+ 'idlelib/idle_test/__init__.py',
+ 'idlelib/idle_test/mock_idle.py',
+ 'idlelib/idle_test/README.txt',
+ 'sqlite3/dbapi2.py',
+ 'sqlite3/__init__.py',
+ 'sqlite3/dump.py',
+ 'xmlrpc/server.py',
+ 'xmlrpc/__init__.py',
+ 'xmlrpc/client.py',
+ 'concurrent/__init__.py',
+ 'concurrent/futures/_base.py',
+ 'concurrent/futures/thread.py',
+ 'concurrent/futures/__init__.py',
+ 'concurrent/futures/process.py',
+ 'tkinter/dialog.py',
+ 'tkinter/constants.py',
+ 'tkinter/font.py',
+ 'tkinter/colorchooser.py',
+ 'tkinter/__main__.py',
+ 'tkinter/scrolledtext.py',
+ 'tkinter/__init__.py',
+ 'tkinter/_fix.py',
+ 'tkinter/simpledialog.py',
+ 'tkinter/tix.py',
+ 'tkinter/commondialog.py',
+ 'tkinter/messagebox.py',
+ 'tkinter/filedialog.py',
+ 'tkinter/dnd.py',
+ 'tkinter/ttk.py',
+ 'config-3.3m/Makefile',
+ 'config-3.3m/config.c',
+ 'config-3.3m/install-sh',
+ 'config-3.3m/Setup',
+ 'config-3.3m/Setup.config',
+ 'config-3.3m/config.c.in',
+ 'config-3.3m/Setup.local',
+ 'config-3.3m/makesetup',
+ 'json/encoder.py',
+ 'json/__init__.py',
+ 'json/decoder.py',
+ 'json/scanner.py',
+ 'json/tool.py',
+ 'importlib/util.py',
+ 'importlib/__init__.py',
+ 'importlib/_bootstrap.py',
+ 'importlib/machinery.py',
+ 'importlib/abc.py',
+ 'html/parser.py',
+ 'html/__init__.py',
+ 'html/entities.py',
+ 'distutils/text_file.py',
+ 'distutils/log.py',
+ 'distutils/README',
+ 'distutils/dist.py',
+ 'distutils/fancy_getopt.py',
+ 'distutils/util.py',
+ 'distutils/core.py',
+ 'distutils/cygwinccompiler.py',
+ 'distutils/emxccompiler.py',
+ 'distutils/cmd.py',
+ 'distutils/msvc9compiler.py',
+ 'distutils/spawn.py',
+ 'distutils/msvccompiler.py',
+ 'distutils/__init__.py',
+ 'distutils/archive_util.py',
+ 'distutils/extension.py',
+ 'distutils/dir_util.py',
+ 'distutils/versionpredicate.py',
+ 'distutils/sysconfig.py',
+ 'distutils/file_util.py',
+ 'distutils/version.py',
+ 'distutils/unixccompiler.py',
+ 'distutils/errors.py',
+ 'distutils/config.py',
+ 'distutils/debug.py',
+ 'distutils/ccompiler.py',
+ 'distutils/dep_util.py',
+ 'distutils/bcppcompiler.py',
+ 'distutils/filelist.py',
+ 'distutils/command/register.py',
+ 'distutils/command/install_headers.py',
+ 'distutils/command/build_clib.py',
+ 'distutils/command/install_scripts.py',
+ 'distutils/command/bdist_dumb.py',
+ 'distutils/command/wininst-9.0.exe',
+ 'distutils/command/wininst-7.1.exe',
+ 'distutils/command/bdist_rpm.py',
+ 'distutils/command/bdist.py',
+ 'distutils/command/wininst-6.0.exe',
+ 'distutils/command/build.py',
+ 'distutils/command/clean.py',
+ 'distutils/command/build_ext.py',
+ 'distutils/command/install_egg_info.py',
+ 'distutils/command/command_template',
+ 'distutils/command/wininst-9.0-amd64.exe',
+ 'distutils/command/__init__.py',
+ 'distutils/command/install.py',
+ 'distutils/command/wininst-8.0.exe',
+ 'distutils/command/wininst-10.0.exe',
+ 'distutils/command/sdist.py',
+ 'distutils/command/install_data.py',
+ 'distutils/command/wininst-10.0-amd64.exe',
+ 'distutils/command/config.py',
+ 'distutils/command/bdist_msi.py',
+ 'distutils/command/check.py',
+ 'distutils/command/upload.py',
+ 'distutils/command/build_py.py',
+ 'distutils/command/install_lib.py',
+ 'distutils/command/bdist_wininst.py',
+ 'distutils/command/build_scripts.py',
+ 'turtledemo/chaos.py',
+ 'turtledemo/fractalcurves.py',
+ 'turtledemo/colormixer.py',
+ 'turtledemo/round_dance.py',
+ 'turtledemo/__main__.py',
+ 'turtledemo/paint.py',
+ 'turtledemo/yinyang.py',
+ 'turtledemo/about_turtle.txt',
+ 'turtledemo/__init__.py',
+ 'turtledemo/tree.py',
+ 'turtledemo/wikipedia.py',
+ 'turtledemo/penrose.py',
+ 'turtledemo/bytedesign.py',
+ 'turtledemo/minimal_hanoi.py',
+ 'turtledemo/clock.py',
+ 'turtledemo/two_canvases.py',
+ 'turtledemo/demohelp.txt',
+ 'turtledemo/turtle.cfg',
+ 'turtledemo/lindenmayer.py',
+ 'turtledemo/planet_and_moon.py',
+ 'turtledemo/forest.py',
+ 'turtledemo/nim.py',
+ 'turtledemo/about_turtledemo.txt',
+ 'turtledemo/peace.py',
+ 'unittest/loader.py',
+ 'unittest/suite.py',
+ 'unittest/__main__.py',
+ 'unittest/result.py',
+ 'unittest/util.py',
+ 'unittest/main.py',
+ 'unittest/signals.py',
+ 'unittest/mock.py',
+ 'unittest/__init__.py',
+ 'unittest/case.py',
+ 'unittest/runner.py',
+ 'logging/__init__.py',
+ 'logging/handlers.py',
+ 'logging/config.py',
+ 'site-packages/README',
+ 'lib2to3/__main__.py',
+ 'lib2to3/btm_matcher.py',
+ 'lib2to3/main.py',
+ 'lib2to3/btm_utils.py',
+ 'lib2to3/fixer_base.py',
+ 'lib2to3/pygram.py',
+ 'lib2to3/__init__.py',
+ 'lib2to3/pytree.py',
+ 'lib2to3/fixer_util.py',
+ 'lib2to3/patcomp.py',
+ 'lib2to3/Grammar3.3.5.final.0.pickle',
+ 'lib2to3/PatternGrammar3.3.5.final.0.pickle',
+ 'lib2to3/PatternGrammar.txt',
+ 'lib2to3/Grammar.txt',
+ 'lib2to3/refactor.py',
+ 'lib2to3/fixes/fix_metaclass.py',
+ 'lib2to3/fixes/fix_throw.py',
+ 'lib2to3/fixes/fix_callable.py',
+ 'lib2to3/fixes/fix_urllib.py',
+ 'lib2to3/fixes/fix_execfile.py',
+ 'lib2to3/fixes/fix_exitfunc.py',
+ 'lib2to3/fixes/fix_map.py',
+ 'lib2to3/fixes/fix_xrange.py',
+ 'lib2to3/fixes/fix_renames.py',
+ 'lib2to3/fixes/fix_numliterals.py',
+ 'lib2to3/fixes/fix_input.py',
+ 'lib2to3/fixes/fix_print.py',
+ 'lib2to3/fixes/fix_operator.py',
+ 'lib2to3/fixes/fix_next.py',
+ 'lib2to3/fixes/fix_import.py',
+ 'lib2to3/fixes/fix_ne.py',
+ 'lib2to3/fixes/fix_long.py',
+ 'lib2to3/fixes/fix_paren.py',
+ 'lib2to3/fixes/fix_sys_exc.py',
+ 'lib2to3/fixes/fix_repr.py',
+ 'lib2to3/fixes/__init__.py',
+ 'lib2to3/fixes/fix_xreadlines.py',
+ 'lib2to3/fixes/fix_standarderror.py',
+ 'lib2to3/fixes/fix_itertools.py',
+ 'lib2to3/fixes/fix_types.py',
+ 'lib2to3/fixes/fix_raise.py',
+ 'lib2to3/fixes/fix_unicode.py',
+ 'lib2to3/fixes/fix_tuple_params.py',
+ 'lib2to3/fixes/fix_imports2.py',
+ 'lib2to3/fixes/fix_basestring.py',
+ 'lib2to3/fixes/fix_dict.py',
+ 'lib2to3/fixes/fix_nonzero.py',
+ 'lib2to3/fixes/fix_future.py',
+ 'lib2to3/fixes/fix_intern.py',
+ 'lib2to3/fixes/fix_idioms.py',
+ 'lib2to3/fixes/fix_raw_input.py',
+ 'lib2to3/fixes/fix_set_literal.py',
+ 'lib2to3/fixes/fix_filter.py',
+ 'lib2to3/fixes/fix_itertools_imports.py',
+ 'lib2to3/fixes/fix_zip.py',
+ 'lib2to3/fixes/fix_methodattrs.py',
+ 'lib2to3/fixes/fix_isinstance.py',
+ 'lib2to3/fixes/fix_ws_comma.py',
+ 'lib2to3/fixes/fix_getcwdu.py',
+ 'lib2to3/fixes/fix_imports.py',
+ 'lib2to3/fixes/fix_buffer.py',
+ 'lib2to3/fixes/fix_apply.py',
+ 'lib2to3/fixes/fix_except.py',
+ 'lib2to3/fixes/fix_exec.py',
+ 'lib2to3/fixes/fix_has_key.py',
+ 'lib2to3/fixes/fix_funcattrs.py',
+ 'lib2to3/fixes/fix_reduce.py',
+ 'lib2to3/pgen2/grammar.py',
+ 'lib2to3/pgen2/literals.py',
+ 'lib2to3/pgen2/__init__.py',
+ 'lib2to3/pgen2/conv.py',
+ 'lib2to3/pgen2/driver.py',
+ 'lib2to3/pgen2/tokenize.py',
+ 'lib2to3/pgen2/parse.py',
+ 'lib2to3/pgen2/pgen.py',
+ 'lib2to3/pgen2/token.py',
+ 'curses/textpad.py',
+ 'curses/__init__.py',
+ 'curses/panel.py',
+ 'curses/has_key.py',
+ 'curses/ascii.py',
+ 'venv/__main__.py',
+ 'venv/__init__.py',
+ 'venv/scripts/posix/activate',
+ 'encodings/johab.py',
+ 'encodings/base64_codec.py',
+ 'encodings/cp424.py',
+ 'encodings/iso2022_jp_2.py',
+ 'encodings/euc_kr.py',
+ 'encodings/bz2_codec.py',
+ 'encodings/cp855.py',
+ 'encodings/iso8859_13.py',
+ 'encodings/iso2022_jp_1.py',
+ 'encodings/mbcs.py',
+ 'encodings/cp858.py',
+ 'encodings/utf_7.py',
+ 'encodings/mac_arabic.py',
+ 'encodings/raw_unicode_escape.py',
+ 'encodings/unicode_internal.py',
+ 'encodings/iso8859_11.py',
+ 'encodings/cp863.py',
+ 'encodings/cp1006.py',
+ 'encodings/cp949.py',
+ 'encodings/cp1257.py',
+ 'encodings/cp500.py',
+ 'encodings/iso2022_jp_3.py',
+ 'encodings/iso8859_8.py',
+ 'encodings/zlib_codec.py',
+ 'encodings/cp950.py',
+ 'encodings/latin_1.py',
+ 'encodings/iso8859_1.py',
+ 'encodings/palmos.py',
+ 'encodings/iso8859_4.py',
+ 'encodings/cp852.py',
+ 'encodings/gbk.py',
+ 'encodings/mac_iceland.py',
+ 'encodings/cp720.py',
+ 'encodings/utf_8_sig.py',
+ 'encodings/iso8859_15.py',
+ 'encodings/hz.py',
+ 'encodings/charmap.py',
+ 'encodings/cp866.py',
+ 'encodings/iso8859_3.py',
+ 'encodings/mac_centeuro.py',
+ 'encodings/mac_turkish.py',
+ 'encodings/mac_farsi.py',
+ 'encodings/cp857.py',
+ 'encodings/utf_8.py',
+ 'encodings/iso2022_jp_ext.py',
+ 'encodings/uu_codec.py',
+ 'encodings/iso8859_2.py',
+ 'encodings/mac_greek.py',
+ 'encodings/cp1251.py',
+ 'encodings/__init__.py',
+ 'encodings/big5hkscs.py',
+ 'encodings/iso8859_7.py',
+ 'encodings/utf_16.py',
+ 'encodings/cp860.py',
+ 'encodings/hex_codec.py',
+ 'encodings/ptcp154.py',
+ 'encodings/big5.py',
+ 'encodings/iso8859_9.py',
+ 'encodings/shift_jis_2004.py',
+ 'encodings/cp874.py',
+ 'encodings/cp932.py',
+ 'encodings/hp_roman8.py',
+ 'encodings/cp862.py',
+ 'encodings/utf_16_be.py',
+ 'encodings/cp869.py',
+ 'encodings/unicode_escape.py',
+ 'encodings/cp1026.py',
+ 'encodings/cp1256.py',
+ 'encodings/cp856.py',
+ 'encodings/cp1252.py',
+ 'encodings/cp1253.py',
+ 'encodings/utf_32.py',
+ 'encodings/punycode.py',
+ 'encodings/tis_620.py',
+ 'encodings/cp737.py',
+ 'encodings/cp1254.py',
+ 'encodings/cp850.py',
+ 'encodings/cp861.py',
+ 'encodings/rot_13.py',
+ 'encodings/mac_roman.py',
+ 'encodings/cp1250.py',
+ 'encodings/euc_jisx0213.py',
+ 'encodings/aliases.py',
+ 'encodings/utf_16_le.py',
+ 'encodings/cp775.py',
+ 'encodings/utf_32_be.py',
+ 'encodings/euc_jp.py',
+ 'encodings/iso8859_6.py',
+ 'encodings/mac_croatian.py',
+ 'encodings/cp1258.py',
+ 'encodings/cp1140.py',
+ 'encodings/shift_jisx0213.py',
+ 'encodings/idna.py',
+ 'encodings/euc_jis_2004.py',
+ 'encodings/cp037.py',
+ 'encodings/ascii.py',
+ 'encodings/cp875.py',
+ 'encodings/cp65001.py',
+ 'encodings/quopri_codec.py',
+ 'encodings/utf_32_le.py',
+ 'encodings/cp1255.py',
+ 'encodings/cp865.py',
+ 'encodings/gb18030.py',
+ 'encodings/iso2022_jp_2004.py',
+ 'encodings/iso2022_jp.py',
+ 'encodings/shift_jis.py',
+ 'encodings/mac_cyrillic.py',
+ 'encodings/koi8_r.py',
+ 'encodings/undefined.py',
+ 'encodings/mac_latin2.py',
+ 'encodings/mac_romanian.py',
+ 'encodings/gb2312.py',
+ 'encodings/cp864.py',
+ 'encodings/iso2022_kr.py',
+ 'encodings/iso8859_14.py',
+ 'encodings/koi8_u.py',
+ 'encodings/iso8859_5.py',
+ 'encodings/iso8859_10.py',
+ 'encodings/iso8859_16.py',
+ 'encodings/cp437.py',
+ 'pydoc_data/_pydoc.css',
+ 'pydoc_data/__init__.py',
+ 'pydoc_data/topics.py',
+ 'collections/__main__.py',
+ 'collections/__init__.py',
+ 'collections/abc.py',
+ 'plat-linux/regen',
+ 'plat-linux/IN.py',
+ 'plat-linux/DLFCN.py',
+ 'plat-linux/TYPES.py',
+ 'plat-linux/CDROM.py',
+ 'email/_encoded_words.py',
+ 'email/_policybase.py',
+ 'email/header.py',
+ 'email/charset.py',
+ 'email/feedparser.py',
+ 'email/headerregistry.py',
+ 'email/architecture.rst',
+ 'email/message.py',
+ 'email/parser.py',
+ 'email/_parseaddr.py',
+ 'email/__init__.py',
+ 'email/encoders.py',
+ 'email/utils.py',
+ 'email/policy.py',
+ 'email/generator.py',
+ 'email/base64mime.py',
+ 'email/_header_value_parser.py',
+ 'email/errors.py',
+ 'email/iterators.py',
+ 'email/quoprimime.py',
+ 'email/mime/image.py',
+ 'email/mime/audio.py',
+ 'email/mime/application.py',
+ 'email/mime/base.py',
+ 'email/mime/message.py',
+ 'email/mime/__init__.py',
+ 'email/mime/multipart.py',
+ 'email/mime/nonmultipart.py',
+ 'email/mime/text.py',
+ ]
+
+
+ files_libs = ['libpython3.3m']
+
+ files_devel = [
+ '*.h', 'lib/libpython3.3m.a',
+ 'lib/pkgconfig/python-3.3.pc',
+ ]
+
+ files_bins = [
+ '2to3', 'pyvenv-3.3', 'pydoc3', 'python3.3', 'python3.3m-config',
+ 'python3', '2to3-3.3', 'python3.3-config', 'idle3', 'pydoc3.3', 'idle3.3',
+ 'python3-config', 'python3.3m', 'pyvenv', 'python'
+ ]
+
+
+
+ def post_install(self):
+ # Make sure it is the default python in our environment
+ try:
+ os.symlink(os.path.join(self.config.prefix, "bin", "python3"),
+ os.path.join(self.config.prefix, "bin", "python"))
+ except OSError:
+ pass
diff --git a/recipes/sqlite.recipe b/recipes/sqlite.recipe
new file mode 100644
index 00000000..b6395adb
--- /dev/null
+++ b/recipes/sqlite.recipe
@@ -0,0 +1,25 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'sqlite'
+ version = '3080402'
+ stype = SourceType.TARBALL
+ srcdir = '../sqlite-autoconf-%s' % version
+ url = 'https://sqlite.org/2014/sqlite-autoconf-%(version)s.tar.gz'
+ # either LGPLv2.1 or MPLv1.1
+ licenses = License.PUBLIC_DOMAIN
+ deps = []
+
+ files_devel = [
+ 'lib/pkgconfig/sqlite3.pc', 'lib/libsqlite3.la',
+ 'lib/libsqlite3.a', 'include/*.h',
+ ]
+
+ files_libs = [
+ 'libsqlite3',
+ ]
+
+ files_bins = [
+ 'sqlite3',
+ ]