summaryrefslogtreecommitdiffstats
path: root/dhpython/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'dhpython/__init__.py')
-rw-r--r--dhpython/__init__.py113
1 files changed, 113 insertions, 0 deletions
diff --git a/dhpython/__init__.py b/dhpython/__init__.py
new file mode 100644
index 0000000..338eb17
--- /dev/null
+++ b/dhpython/__init__.py
@@ -0,0 +1,113 @@
+# Copyright © 2010-2013 Piotr Ożarowski <piotr@debian.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+import re
+
+PKG_PREFIX_MAP = {'cpython2': 'python',
+ 'cpython3': 'python3',
+ 'pypy': 'pypy'}
+
+# minimum version required for compile/clean scripts:
+MINPYCDEP = {'cpython2': 'python2:any',
+ 'cpython3': 'python3:any',
+ 'pypy': 'pypy'}
+
+PUBLIC_DIR_RE = {
+ 'cpython2': re.compile(r'.*?/usr/lib/python(2\.\d)(?:/|$)'),
+ 'cpython3': re.compile(r'.*?/usr/lib/python(3(?:\.\d+)?)(?:/|$)'),
+ 'pypy': re.compile(r'.*?/usr/lib/pypy(?:/|$)')}
+
+INTERPRETER_DIR_TPLS = {
+ 'cpython2': r'.*/python2\.\d/',
+ 'cpython3': r'.*/python3(?:\.\d+)?/',
+ 'pypy': r'.*/pypy/'}
+
+MULTIARCH_DIR_TPL = re.compile(
+ '.*/([a-z][^/-]+-(?:linux|kfreebsd|gnu)(?:-[^/-]+)?)(?:/.*|$)')
+
+# Interpreter site-directories
+OLD_SITE_DIRS = {
+ 'cpython2': [
+ '/usr/local/lib/python{}/site-packages',
+ '/usr/local/lib/python{}/dist-packages',
+ '/var/lib/python-support/python{}',
+ '/usr/lib/pymodules/python{}',
+ lambda version: '/usr/lib/python{}/site-packages'.format(version)
+ if version >= '2.6' else None],
+ 'cpython3': [
+ '/usr/local/lib/python{}/site-packages',
+ '/usr/local/lib/python{}/dist-packages',
+ '/usr/lib/python{}/site-packages',
+ '/usr/lib/python{}/dist-packages',
+ '/var/lib/python-support/python{}',
+ '/usr/lib/pymodules/python{}'],
+ 'pypy': [
+ '/usr/local/lib/pypy/site-packages',
+ '/usr/local/lib/pypy/dist-packages',
+ '/usr/lib/pypy/site-packages']}
+
+# PyDist related
+PYDIST_DIRS = {
+ 'cpython2': '/usr/share/python/dist/',
+ 'cpython3': '/usr/share/python3/dist/',
+ 'pypy': '/usr/share/pypy/dist/'}
+
+PYDIST_OVERRIDES_FNAMES = {
+ 'cpython2': 'debian/pydist-overrides',
+ 'cpython3': 'debian/py3dist-overrides',
+ 'pypy': 'debian/pypydist-overrides'}
+
+PYDIST_DPKG_SEARCH_TPLS = {
+ # implementation: (dpkg -S query, regex filter)
+ 'cpython2': ('*/{}-?*.*-info',
+ r'/(python2\..|pyshared)/.*.(egg|dist)-info$'),
+ 'cpython3': ('*python3/*/{}-?*.*-info', r'.(egg|dist)-info$'),
+ 'pypy': ('*/pypy/dist-packages/{}-?*.*-info', r'.(egg|dist)-info$'),
+}
+
+# DebHelper related
+DEPENDS_SUBSTVARS = {
+ 'cpython2': '${python:Depends}',
+ 'cpython3': '${python3:Depends}',
+ 'pypy': '${pypy:Depends}',
+}
+PKG_NAME_TPLS = {
+ 'cpython2': ('python-', 'python2.'),
+ 'cpython3': ('python3-', 'python3.'),
+ 'pypy': ('pypy-',)
+}
+RT_LOCATIONS = {
+ 'cpython2': '/usr/share/python/runtime.d/',
+ 'cpython3': '/usr/share/python3/runtime.d/',
+ 'pypy': '/usr/share/pypy/runtime.d/',
+}
+RT_TPLS = {
+ 'cpython2': '''
+if [ "$1" = rtupdate ]; then
+\tpyclean {pkg_arg} {dname}
+\tpycompile {pkg_arg} {args} {dname}
+fi''',
+ 'cpython3': '''
+if [ "$1" = rtupdate ]; then
+\tpy3clean {pkg_arg} {dname}
+\tpy3compile {pkg_arg} {args} {dname}
+fi''',
+ 'pypy': ''
+}