Bug#682906: unblock: python-defaults/2.7.3-2
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package python-defaults
The RC bug in unstable (#680793) that prevented this from migrating with an
automatice freeze exception is fixed in this upload. Unblocking this will do
a number of beneficial things for squeeze:
- Match the version number for python and python2.7.3. Although this is
costmetic, it does cause confusion.
- Matches the feature set in squeeze between dh_python2 and dh_python3. It
would be difficult for backporters, derivatives, and third party vendors to
keep straight which did what with a skewed feature set. This is better
avoided.
This is low risk to do because the changes have already been exercised in
dh_python3. In fact, the issues it had were with dh_python2 code that had not
been completely adapted to python3. The changes in this package for python
are solid.
I am attaching both the debdiff for this upload and for testing to show the
minor nature of the changes from what already had, at one time, a freeze
exception.
unblock python-defaults/2.7.3-2
diff -Nru python-defaults-2.7.3/debian/changelog python-defaults-2.7.3/debian/changelog
--- python-defaults-2.7.3/debian/changelog 2012-06-30 14:24:03.000000000 -0400
+++ python-defaults-2.7.3/debian/changelog 2012-07-26 18:26:27.000000000 -0400
@@ -1,3 +1,15 @@
+python-defaults (2.7.3-2) unstable; urgency=low
+
+ * dh_python2: ignore empty files while trying to normalize shebangs
+ (Closes: #680793)
+ * Fix lack of python-imaging in pydist/dist_fallback
+ - Add python-imaging override to pydist/generate_fallback_list.py
+ - pydist/dist_fallback: Regenerate to add python-imaging (which wasn't
+ recognized before due to .pth file) along with a few automatic
+ adjustments
+
+ -- Piotr Ożarowski <piotr@debian.org> Thu, 26 Jul 2012 23:03:32 +0200
+
python-defaults (2.7.3-1) unstable; urgency=low
[ Piotr Ożarowski ]
diff -Nru python-defaults-2.7.3/debpython/tools.py python-defaults-2.7.3/debpython/tools.py
--- python-defaults-2.7.3/debpython/tools.py 2012-06-09 18:08:06.000000000 -0400
+++ python-defaults-2.7.3/debpython/tools.py 2012-07-26 18:26:10.000000000 -0400
@@ -100,6 +100,9 @@
try:
with open(fpath) as fp:
fcontent = fp.readlines()
+ if not fcontent:
+ log.debug('fix_shebang: ignoring empty file: %s', fpath)
+ return None
except IOError:
log.error('cannot open %s', fpath)
return False
diff -Nru python-defaults-2.7.3/pydist/dist_fallback python-defaults-2.7.3/pydist/dist_fallback
--- python-defaults-2.7.3/pydist/dist_fallback 2012-06-30 08:22:25.000000000 -0400
+++ python-defaults-2.7.3/pydist/dist_fallback 2012-07-26 18:26:10.000000000 -0400
@@ -2,6 +2,7 @@
setuptools python-pkg-resources
wsgiref python (>= 2.5) | python-wsgiref
argparse python (>= 2.7) | python-argparse
+pil python-imaging
AddOns python-peak.util
BatchModify trac-batchmodify
BitTornado bittornado
@@ -193,6 +194,7 @@
deluge deluge-common
devscripts devscripts
dicompyler dicompyler
+dispcalGUI dispcalgui
dissy dissy
djagios djagios
django_ajax_selects django-ajax-selects
@@ -372,7 +374,6 @@
osc osc
pYsearch python-yahoo
pbundler pbundler
-pdfposter pdfposter
pdfshuffler pdfshuffler
pep8 pep8
perroquet perroquet
@@ -405,7 +406,6 @@
pyacidobasic python-acidobasic
pyacoustid python-acoustid
pyalsaaudio python-alsaaudio
-pybackpack pybackpack
pybloom python-bloomfilter
pybridge pybridge
pybtex pybtex
@@ -450,7 +450,6 @@
pyrite_publisher pyrite-publisher
pysane python-imaging-sane
pysatellites python-satellites
-pysendfile python-sendfile
pyserial python-serial
pysnmp python-pysnmp4
pysnmp_apps python-pysnmp4-apps
@@ -625,9 +624,9 @@
udev_discover udev-discover
ufw ufw
unattended_upgrades unattended-upgrades
-undertaker undertaker
unittest_xml_reporting python-xmlrunner
urlscan urlscan
+vamos undertaker
vboxapi virtualbox
virtaal virtaal
virtinst virtinst
diff -Nru python-defaults-2.7.3/pydist/generate_fallback_list.py python-defaults-2.7.3/pydist/generate_fallback_list.py
--- python-defaults-2.7.3/pydist/generate_fallback_list.py 2012-06-10 08:07:25.000000000 -0400
+++ python-defaults-2.7.3/pydist/generate_fallback_list.py 2012-07-26 18:26:10.000000000 -0400
@@ -72,4 +72,6 @@
fp.write('setuptools python-pkg-resources\n')
fp.write('wsgiref python (>= 2.5) | python-wsgiref\n')
fp.write('argparse python (>= 2.7) | python-argparse\n')
+# wasn't recognized due to .pth file (egg-info is in PIL/ and not in *-packages/)
+fp.write('pil python-imaging\n')
fp.writelines(result)
diff -Nru python-defaults-2.7.3~rc2/debian/changelog python-defaults-2.7.3/debian/changelog
--- python-defaults-2.7.3~rc2/debian/changelog 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debian/changelog 2012-07-26 18:26:27.000000000 -0400
@@ -1,3 +1,46 @@
+python-defaults (2.7.3-2) unstable; urgency=low
+
+ * dh_python2: ignore empty files while trying to normalize shebangs
+ (Closes: #680793)
+ * Fix lack of python-imaging in pydist/dist_fallback
+ - Add python-imaging override to pydist/generate_fallback_list.py
+ - pydist/dist_fallback: Regenerate to add python-imaging (which wasn't
+ recognized before due to .pth file) along with a few automatic
+ adjustments
+
+ -- Piotr Ożarowski <piotr@debian.org> Thu, 26 Jul 2012 23:03:32 +0200
+
+python-defaults (2.7.3-1) unstable; urgency=low
+
+ [ Piotr Ożarowski ]
+ * dh_python2:
+ - remove even more \.so.* dangling symlinks, thanks to Stefano
+ Rivera for providing a test case
+ - rewrite shebangs by default (disable via --no-shebang-rewrite),
+ examples:
+ + "/usr/bin/env python*" → "/usr/bin/python*"
+ + "/usr/local/bin/python foo" → "/usr/bin/python foo"
+ + "/usr/bin/python2" → "/usr/bin/python"
+ - new --shebang option to replace all shebangs in bin dirs
+ (example: --shebang /usr/bin/python2.6)
+ - no longer generates python2.X | python2.Y depenendies for public modules
+ (Closes: 625740)
+ - translate Python version numbers into Debian ones for those
+ require.txt items that have a pydist file with (uscan like) rules
+ or PEP386 flag (Closes: #653740)
+ * Improve dh_python2 manpage a bit, add information about cleaning debug
+ packages (Closes: #653741)
+ * pyversions, dh_python2, pycompile: allow to override system's list of
+ supported Python versions via DEBPYTHON_SUPPORTED and default Python
+ version via DEBPYTHON_DEFAULT env. variables
+ * Debhelper's python2 sequence now inserts dh_python2 before dh_installinit
+ (closes: 670418)
+
+ [ Scott Kitterman ]
+ * Bump upstream version to match current unstable/wheezy python2.7 version
+
+ -- Piotr Ożarowski <piotr@debian.org> Sat, 30 Jun 2012 20:23:59 +0200
+
python-defaults (2.7.3~rc2-1) unstable; urgency=low
[ Scott Kitterman ]
diff -Nru python-defaults-2.7.3~rc2/debian/control python-defaults-2.7.3/debian/control
--- python-defaults-2.7.3~rc2/debian/control 2012-06-05 22:59:07.000000000 -0400
+++ python-defaults-2.7.3/debian/control 2012-07-26 18:26:10.000000000 -0400
@@ -13,7 +13,7 @@
Package: python
Architecture: all
Priority: standard
-Depends: ${misc:Depends}, python2.7 (>= 2.7.3~rc2-1~), python-minimal (= ${binary:Version})
+Depends: ${misc:Depends}, python2.7 (>= 2.7.3-1~), python-minimal (= ${binary:Version})
Suggests: python-doc (= ${binary:Version}), python-tk (= ${binary:Version})
Conflicts: python-central (<< 0.5.5)
Breaks: python-csv (<< 1.0-4), python-bz2 (<< 1.1-8), python-email (<< 2.5.5-3), update-manager-core (<< 0.200.5-2)
@@ -30,11 +30,11 @@
Package: python-minimal
Architecture: all
Priority: standard
-Depends: ${misc:Depends}, python2.7-minimal (>= 2.7.3~rc2-1~), dpkg (>= 1.13.20)
+Depends: ${misc:Depends}, python2.7-minimal (>= 2.7.3-1~), dpkg (>= 1.13.20)
Recommends: python
Conflicts: python-central (<< 0.5.5)
-Breaks: python (<= 2.7.3~rc2-1~), python-dev (<< 2.6), python-dbg (<< 2.6), python-all (<< 2.6), python-all-dev (<< 2.6), python-all-dbg (<< 2.6), python-examples (<< 2.6), idle (<< 2.6), python2.5-minimal (<< 2.5.5-7), python2.6-minimal (<< 2.6.5~rc2-2), python3.1-minimal (<< 3.1.2~rc1-2), python-support (<< 1.0.10ubuntu2)
-Replaces: python (<= 2.7.3~rc2-1~)
+Breaks: python (<= 2.7.3-1~), python-dev (<< 2.6), python-dbg (<< 2.6), python-all (<< 2.6), python-all-dev (<< 2.6), python-all-dbg (<< 2.6), python-examples (<< 2.6), idle (<< 2.6), python2.5-minimal (<< 2.5.5-7), python2.6-minimal (<< 2.6.5~rc2-2), python3.1-minimal (<< 3.1.2~rc1-2), python-support (<< 1.0.10ubuntu2)
+Replaces: python (<= 2.7.3-1~)
Description: minimal subset of the Python language (default version)
This package contains the interpreter and some essential modules. It's used
in the boot process for some basic tasks.
@@ -43,7 +43,7 @@
Package: python-examples
Architecture: all
-Depends: ${misc:Depends}, python (= ${binary:Version}), python2.7-examples (>= 2.7.3~rc2-1~)
+Depends: ${misc:Depends}, python (= ${binary:Version}), python2.7-examples (>= 2.7.3-1~)
Description: examples for the Python language (default version)
Examples, Demos and Tools for Python. These are files included in
the upstream Python distribution.
@@ -53,7 +53,7 @@
Package: python-dev
Architecture: all
-Depends: ${misc:Depends}, python (= ${binary:Version}), python2.7-dev (>= 2.7.3~rc2-1~)
+Depends: ${misc:Depends}, python (= ${binary:Version}), python2.7-dev (>= 2.7.3-1~)
Description: header files and a static library for Python (default)
Header files, a static library and development tools for building
Python modules, extending the Python interpreter or embedding Python
@@ -66,8 +66,8 @@
Architecture: all
Depends: ${misc:Depends}, python (= ${binary:Version}), python-tk (>= 2.4.3-3), idle-python2.7
Enhances: python
-Replaces: python (<< 2.7.3~rc2-1~)
-Breaks: python (<< 2.7.3~rc2-1~)
+Replaces: python (<< 2.7.3-1~)
+Breaks: python (<< 2.7.3-1~)
Description: IDE for Python using Tkinter (default version)
IDLE is an Integrated Development Environment for Python.
IDLE is written using Tkinter and therefore quite platform-independent.
@@ -78,7 +78,7 @@
Package: python-doc
Section: doc
Architecture: all
-Depends: ${misc:Depends}, python2.7-doc (>= 2.7.3~rc2-1~)
+Depends: ${misc:Depends}, python2.7-doc (>= 2.7.3-1~)
Suggests: python-examples, python (= ${binary:Version})
Breaks: python (<< 2.3.5)
Replaces: python (<< 2.3.5)
@@ -104,7 +104,7 @@
Architecture: all
Section: debug
Priority: extra
-Depends: ${misc:Depends}, python (= ${binary:Version}), python2.7-dbg (>= 2.7.3~rc2-1~)
+Depends: ${misc:Depends}, python (= ${binary:Version}), python2.7-dbg (>= 2.7.3-1~)
Provides: python-gdbm-dbg, python-tk-dbg
Description: debug build of the Python Interpreter (version 2.7)
Python interpreter configured with --pydebug. Dynamically loaded modules are
diff -Nru python-defaults-2.7.3~rc2/debian/control.in python-defaults-2.7.3/debian/control.in
--- python-defaults-2.7.3~rc2/debian/control.in 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debian/control.in 2012-07-26 18:26:10.000000000 -0400
@@ -33,8 +33,8 @@
Depends: ${misc:Depends}, @PVER@-minimal (>= @PREVVER@), dpkg (>= 1.13.20)
Recommends: python
Conflicts: python-central (<< 0.5.5)
-Breaks: python (<= 2.7.3~rc2-1~), python-dev (<< 2.6), python-dbg (<< 2.6), python-all (<< 2.6), python-all-dev (<< 2.6), python-all-dbg (<< 2.6), python-examples (<< 2.6), idle (<< 2.6), python2.5-minimal (<< 2.5.5-7), python2.6-minimal (<< 2.6.5~rc2-2), python3.1-minimal (<< 3.1.2~rc1-2), python-support (<< 1.0.10ubuntu2)
-Replaces: python (<= 2.7.3~rc2-1~)
+Breaks: python (<= 2.7.3-1~), python-dev (<< 2.6), python-dbg (<< 2.6), python-all (<< 2.6), python-all-dev (<< 2.6), python-all-dbg (<< 2.6), python-examples (<< 2.6), idle (<< 2.6), python2.5-minimal (<< 2.5.5-7), python2.6-minimal (<< 2.6.5~rc2-2), python3.1-minimal (<< 3.1.2~rc1-2), python-support (<< 1.0.10ubuntu2)
+Replaces: python (<= 2.7.3-1~)
Description: minimal subset of the Python language (default version)
This package contains the interpreter and some essential modules. It's used
in the boot process for some basic tasks.
@@ -66,8 +66,8 @@
Architecture: all
Depends: ${misc:Depends}, python (= ${binary:Version}), python-tk (>= 2.4.3-3), idle-@PVER@
Enhances: python
-Replaces: python (<< 2.7.3~rc2-1~)
-Breaks: python (<< 2.7.3~rc2-1~)
+Replaces: python (<< 2.7.3-1~)
+Breaks: python (<< 2.7.3-1~)
Description: IDE for Python using Tkinter (default version)
IDLE is an Integrated Development Environment for Python.
IDLE is written using Tkinter and therefore quite platform-independent.
diff -Nru python-defaults-2.7.3~rc2/debian/python-policy.sgml python-defaults-2.7.3/debian/python-policy.sgml
--- python-defaults-2.7.3~rc2/debian/python-policy.sgml 2012-06-05 23:07:12.000000000 -0400
+++ python-defaults-2.7.3/debian/python-policy.sgml 2012-07-26 18:26:10.000000000 -0400
@@ -330,7 +330,7 @@
<item>
<p>
/usr/share/python/runtime.d/*.rtremove: these are called when
- a runtime is installed or stops being supported. The first
+ a runtime is removed or stops being supported. The first
argument is "rtremove", and the second argument is the
affected runtime (for example
python<var>X</var>.<var>Y</var>).
diff -Nru python-defaults-2.7.3~rc2/debian/pyversions.py python-defaults-2.7.3/debian/pyversions.py
--- python-defaults-2.7.3~rc2/debian/pyversions.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debian/pyversions.py 2012-07-26 18:26:10.000000000 -0400
@@ -110,7 +110,8 @@
else:
return _unsupported_versions
-_supported_versions = None
+_supported_versions = ["python%s" % ver for ver in \
+ os.environ.get('DEBPYTHON_SUPPORTED', '').split()]
def supported_versions(version_only=False):
global _supported_versions
if not _supported_versions:
@@ -144,7 +145,9 @@
else:
return _supported_versions
-_default_version = None
+_default_version = "python%s" % os.environ.get('DEBPYTHON_DEFAULT', '')
+if _default_version == 'python':
+ _default_version = None
def default_version(version_only=False):
global _default_version
if not _default_version:
diff -Nru python-defaults-2.7.3~rc2/debian/rules python-defaults-2.7.3/debian/rules
--- python-defaults-2.7.3~rc2/debian/rules 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debian/rules 2012-07-26 18:26:10.000000000 -0400
@@ -20,7 +20,7 @@
export PVER=python2.7
PREVVER := $(shell awk '/^python/ && NR > 1 {print substr($$2,2,length($$2)-2); exit}' debian/changelog)
-PREVVER := 2.7.3~rc2-1~
+PREVVER := 2.7.3-1~
PWD := $(shell pwd)
diff -Nru python-defaults-2.7.3~rc2/debpython/debhelper.py python-defaults-2.7.3/debpython/debhelper.py
--- python-defaults-2.7.3~rc2/debpython/debhelper.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/debhelper.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
diff -Nru python-defaults-2.7.3~rc2/debpython/depends.py python-defaults-2.7.3/debpython/depends.py
--- python-defaults-2.7.3~rc2/debpython/depends.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/depends.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
@@ -94,11 +94,13 @@
tpl = 'python-dbg' if dbgpkg else 'python'
minv = pub_vers[0]
maxv = pub_vers[-1]
- if dbgpkg:
- tpl2 = 'python%d.%d-dbg'
- else:
- tpl2 = 'python%d.%d'
- self.depend(' | '.join(tpl2 % i for i in debsorted(pub_vers)))
+ # generating "python2.X | python2.Y | python2.Z" dependencies
+ # disabled (see #625740):
+ #if dbgpkg:
+ # tpl2 = 'python%d.%d-dbg'
+ #else:
+ # tpl2 = 'python%d.%d'
+ #self.depend(' | '.join(tpl2 % i for i in debsorted(pub_vers)))
# additional Depends to block python package transitions
if minv <= DEFAULT:
@@ -112,21 +114,17 @@
if stats['compile']:
self.depend(MINPYCDEP)
- if not options.ignore_shebangs:
- for interpreter, version in stats['shebangs']:
- self.depend(interpreter)
+ for interpreter, version in stats['shebangs']:
+ self.depend(interpreter)
for private_dir, details in stats['private_dirs'].iteritems():
- if options.ignore_shebangs:
- versions = []
- else:
- versions = list(v for i, v in details.get('shebangs', []) if v)
+ versions = list(v for i, v in details.get('shebangs', []) if v)
for v in versions:
if v in SUPPORTED:
self.depend("python%d.%d" % v)
else:
- log.warn('dependency on python%s (from shebang) ignored'
+ log.info('dependency on python%s (from shebang) ignored'
' - it\'s not supported anymore', vrepr(v))
# /usr/bin/python shebang → add python to Depends
if any(True for i, v in details.get('shebangs', []) if v is None):
diff -Nru python-defaults-2.7.3~rc2/debpython/files.py python-defaults-2.7.3/debpython/files.py
--- python-defaults-2.7.3~rc2/debpython/files.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/files.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
diff -Nru python-defaults-2.7.3~rc2/debpython/namespace.py python-defaults-2.7.3/debpython/namespace.py
--- python-defaults-2.7.3~rc2/debpython/namespace.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/namespace.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2011 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2011-2012 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
diff -Nru python-defaults-2.7.3~rc2/debpython/option.py python-defaults-2.7.3/debpython/option.py
--- python-defaults-2.7.3~rc2/debpython/option.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/option.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
diff -Nru python-defaults-2.7.3~rc2/debpython/pydist.py python-defaults-2.7.3/debpython/pydist.py
--- python-defaults-2.7.3~rc2/debpython/pydist.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/pydist.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
@@ -24,6 +24,7 @@
import os
import re
from os.path import exists, isdir, join
+from string import maketrans
from subprocess import PIPE, Popen
from debpython.version import vrepr, getver, get_requested_versions
from debpython.tools import memoize
@@ -41,7 +42,7 @@
;\s*
(?P<standard>PEP386)? # PEP-386 mode
\s*
- (?P<rules>s/.*)? # translator rules
+ (?P<rules>(?:s|tr|y).*)? # translator rules
)?
""", re.VERBOSE)
REQUIRES_RE = re.compile(r'''
@@ -117,13 +118,13 @@
req = safe_name(name) + rest
data = load()
- req_dict = REQUIRES_RE.match(req)
- if not req_dict:
+ req_d = REQUIRES_RE.match(req)
+ if not req_d:
log.info('please ask dh_python2 author to fix REQUIRES_RE '
'or your upstream author to fix requires.txt')
raise Exception('requirement is not valid: %s' % req)
- req_dict = req_dict.groupdict()
- name = req_dict['name']
+ req_d = req_d.groupdict()
+ name = req_d['name']
details = data.get(name.lower())
if details:
for item in details:
@@ -134,12 +135,13 @@
if not item['dependency']:
return # this requirement should be ignored
if item['dependency'].endswith(')'):
- # no need to translate versions if version is hardcoded in Debian
- # dependency
- return item['dependency']
- if req_dict['version']:
- # FIXME: translate it (rules, versions)
+ # no need to translate versions if version is hardcoded in
+ # Debian dependency
return item['dependency']
+ if req_d['version'] and (item['standard'] or item['rules']) and\
+ req_d['operator'] not in (None, '=='):
+ v = _translate(req_d['version'], item['rules'], item['standard'])
+ return "%s (%s %s)" % (item['dependency'], req_d['operator'], v)
else:
return item['dependency']
@@ -231,3 +233,53 @@
def ci_regexp(name):
"""Return case insensitive dpkg -S regexp."""
return ''.join("[%s%s]" % (i.upper(), i) if i.isalpha() else i for i in name.lower())
+
+
+PRE_VER_RE = re.compile(r'[-.]?(alpha|beta|rc|dev|a|b|c)')
+GROUP_RE = re.compile(r'\$(\d+)')
+
+
+def _pl2py(pattern):
+ """Convert Perl RE patterns used in uscan to Python's
+
+ >>> print _pl2py('foo$3')
+ foo\g<3>
+ """
+ return GROUP_RE.sub(r'\\g<\1>', pattern)
+
+
+def _translate(version, rules, standard):
+ """Translate Python version into Debian one.
+
+ >>> _translate('1.C2betac', ['s/c//gi'], None)
+ '1.2beta'
+ >>> _translate('5-fooa1.2beta3-fooD',
+ ... ['s/^/1:/', 's/-foo//g', 's:([A-Z]):+$1:'], 'PEP386')
+ '1:5~a1.2~beta3+D'
+ >>> _translate('x.y.x.z', ['tr/xy/ab/', 'y,z,Z,'], None)
+ 'a.b.a.Z'
+ """
+ for rule in rules:
+ # uscan supports s, tr and y operations
+ if rule.startswith(('tr', 'y')):
+ # Note: no support for escaped separator in the pattern
+ pos = 1 if rule.startswith('y') else 2
+ tmp = rule[pos + 1:].split(rule[pos])
+ version = version.translate(maketrans(tmp[0], tmp[1]))
+ elif rule.startswith('s'):
+ # uscan supports: g, u and x flags
+ tmp = rule[2:].split(rule[1])
+ pattern = re.compile(tmp[0])
+ count = 1
+ if tmp[2:]:
+ flags = tmp[2]
+ if 'g' in flags:
+ count = 0
+ if 'i' in flags:
+ pattern = re.compile(tmp[0], re.I)
+ version = pattern.sub(_pl2py(tmp[1]), version, count)
+ else:
+ log.warn('unknown rule ignored: %s', rule)
+ if standard == 'PEP386':
+ version = PRE_VER_RE.sub('~\g<1>', version)
+ return version
diff -Nru python-defaults-2.7.3~rc2/debpython/tools.py python-defaults-2.7.3/debpython/tools.py
--- python-defaults-2.7.3~rc2/debpython/tools.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/tools.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
@@ -33,7 +33,7 @@
log = logging.getLogger(__name__)
EGGnPTH_RE = re.compile(r'(.*?)(-py\d\.\d(?:-[^.]*)?)?(\.egg-info|\.pth)$')
-SHEBANG_RE = re.compile(r'^#!\s*/usr/bin/(?:env\s+)?(python(\d+\.\d+)?(?:-dbg)?).*')
+SHEBANG_RE = re.compile(r'^#!\s*(.*?/bin/.*?)(python(\d+\.\d+)?(?:-dbg)?)(?:\s(.*))?')
SHAREDLIB_RE = re.compile(r'NEEDED.*libpython(\d\.\d)')
INSTALL_RE = re.compile(r"""
(?P<pattern>.+?) # file pattern
@@ -92,6 +92,42 @@
return os.symlink(relpath(target, link), link)
+def fix_shebang(fpath, replacement=None):
+ """Normalize file's shebang.
+
+ :param replacement: new shebang command (path to interpreter and options)
+ """
+ try:
+ with open(fpath) as fp:
+ fcontent = fp.readlines()
+ if not fcontent:
+ log.debug('fix_shebang: ignoring empty file: %s', fpath)
+ return None
+ except IOError:
+ log.error('cannot open %s', fpath)
+ return False
+
+ match = SHEBANG_RE.match(fcontent[0])
+ if not match:
+ return None
+ if not replacement:
+ path, interpreter, version, argv = match.groups()
+ if path != '/usr/bin': # f.e. /usr/local/* or */bin/env
+ replacement = "/usr/bin/%s" % interpreter
+ if interpreter == 'python2':
+ replacement = '/usr/bin/python'
+ if replacement and argv:
+ replacement += " %s" % argv
+ if replacement:
+ log.info('replacing shebang in %s (%s)', fpath, fcontent[0])
+ # do not catch IOError here, the file is zeroed at this stage so it's
+ # better to fail dh_python2
+ with open(fpath, 'w') as fp:
+ fp.write("#! %s\n" % replacement)
+ fp.writelines(fcontent[1:])
+ return True
+
+
def shebang2pyver(fpath):
"""Check file's shebang.
@@ -105,10 +141,10 @@
if not match:
return None
res = match.groups()
- if res != (None, None):
- if res[1]:
- res = res[0], getver(res[1])
- return res
+ if res[1:3] != (None, None):
+ if res[2]:
+ return res[1], getver(res[2])
+ return res[1], None
except IOError:
log.error('cannot open %s', fpath)
diff -Nru python-defaults-2.7.3~rc2/debpython/version.py python-defaults-2.7.3/debpython/version.py
--- python-defaults-2.7.3~rc2/debpython/version.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/debpython/version.py 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
# -*- coding: UTF-8 -*-
-# Copyright © 2010 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
@@ -22,6 +22,7 @@
import logging
import re
from ConfigParser import SafeConfigParser
+from os import environ
from os.path import exists, dirname, join
from types import GeneratorType
@@ -36,18 +37,23 @@
# try to read debian_defaults and get a list of supported Python versions and
# the default one from there
-_config = SafeConfigParser()
-_config.read(['/usr/share/python/debian_defaults',
- join(dirname(__file__), '..', 'debian', 'debian_defaults')])
+_supported = environ.get('DEBPYTHON_SUPPORTED')
+_default = environ.get('DEBPYTHON_DEFAULT')
+if not _supported or not _default:
+ _config = SafeConfigParser()
+ _config.read('/usr/share/python/debian_defaults')
+ if not _default:
+ _default = _config.get('DEFAULT', 'default-version')[6:]
+ if not _supported:
+ _supported = _config.get('DEFAULT', 'supported-versions')\
+ .replace('python', '')
try:
- DEFAULT = tuple(int(i) for i in _config.get('DEFAULT',
- 'default-version')[6:].split('.'))
+ DEFAULT = tuple(int(i) for i in _default.split('.'))
except Exception:
log.exception('cannot read debian_defaults')
try:
- SUPPORTED = tuple(tuple(int(j) for j in i.strip()[6:].split('.'))\
- for i in _config.get('DEFAULT',
- 'supported-versions').split(','))
+ SUPPORTED = tuple(tuple(int(j) for j in i.strip().split('.'))
+ for i in _supported.split(','))
except Exception:
log.exception('cannot read debian_defaults')
@@ -83,10 +89,10 @@
versions = set(v for v in SUPPORTED if minv <= v < maxv)
if available:
- versions = set(v for v in versions \
+ versions = set(v for v in versions
if exists("/usr/bin/python%d.%d" % v))
elif available is False:
- versions = set(v for v in versions \
+ versions = set(v for v in versions
if not exists("/usr/bin/python%d.%d" % v))
return versions
@@ -190,7 +196,7 @@
minv = sorted(hardcoded)[0]
if current:
- versions = sorted(get("%s-%s" % (minv if minv else '', \
+ versions = sorted(get("%s-%s" % (minv if minv else '',
maxv if maxv else '')))
if not versions:
raise ValueError("version range doesn't match installed Python versions: %s" % value)
diff -Nru python-defaults-2.7.3~rc2/dh_python2 python-defaults-2.7.3/dh_python2
--- python-defaults-2.7.3~rc2/dh_python2 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/dh_python2 2012-07-26 18:26:10.000000000 -0400
@@ -1,7 +1,7 @@
#! /usr/bin/python
# -*- coding: UTF-8 -*- vim: et ts=4 sw=4
-# Copyright © 2010-2011 Piotr Ożarowski <piotr@debian.org>
+# Copyright © 2010-2012 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
@@ -42,8 +42,8 @@
from debpython.pydist import validate as validate_pydist, \
PUBLIC_DIR_RE
from debpython.tools import sitedir, relative_symlink, \
- shebang2pyver, so2pyver, \
- clean_egg_name, \
+ fix_shebang, shebang2pyver, \
+ so2pyver, clean_egg_name, \
pyinstall, pyremove
from debpython.option import Option
@@ -299,7 +299,7 @@
### PACKAGE DETAILS ############################################
-def scan(package, dname=None, clean_dbg_pkg=True):
+def scan(package, dname=None, options=None):
"""Gather statistics about Python files in given package."""
r = {'requires.txt': set(),
'nsp.txt': set(),
@@ -358,7 +358,7 @@
# handle some EGG related data (.egg-info dirs)
for name in dirs:
if name.endswith('.egg-info'):
- if dbg_package and clean_dbg_pkg:
+ if dbg_package and options.clean_dbg_pkg:
rmtree(join(root, name))
dirs.remove(name)
continue
@@ -380,6 +380,11 @@
fpath = join(root, fn)
if not exists(fpath):
# could be removed while handling .so symlinks
+ if islink(fpath) and '.so.' in split(fpath)[-1]:
+ # dangling symlink to (now removed/renamed) .so file
+ # which wasn't removed yet (see test3's quux.so.0)
+ log.info('removing symlink: %s', fpath)
+ os.remove(fpath)
continue
fext = fn.rsplit('.', 1)[-1]
if fext in ('pyc', 'pyo'):
@@ -399,18 +404,22 @@
os.remove(lpath)
log.info('renaming %s to %s', dstfpath, fn)
os.rename(dstfpath, fpath)
- if dbg_package and clean_dbg_pkg and fext not in ('so', 'h'):
+ if dbg_package and options.clean_dbg_pkg and \
+ fext not in ('so', 'h'):
os.remove(join(root, fn))
continue
elif private_dir:
- if exists(join(root, fn)):
- mode = os.stat(join(root, fn))[ST_MODE]
+ if exists(fpath):
+ mode = os.stat(fpath)[ST_MODE]
if mode & S_IXUSR or mode & S_IXGRP or mode & S_IXOTH:
- res = shebang2pyver(join(root, fn))
- if res:
- r['private_dirs'].setdefault(private_dir, {})\
- .setdefault('shebangs', set()).add(res)
+ if (options.no_shebang_rewrite or \
+ fix_shebang(fpath, options.shebang)) and \
+ not options.ignore_shebangs:
+ res = shebang2pyver(fpath)
+ if res:
+ r['private_dirs'].setdefault(private_dir, {})\
+ .setdefault('shebangs', set()).add(res)
if public_dir or private_dir:
if fext == 'so':
@@ -447,11 +456,14 @@
continue
# search for scripts in bin dirs
if bin_dir:
- res = shebang2pyver(fpath)
- if res:
- r['shebangs'].add(res)
+ if (options.no_shebang_rewrite or \
+ fix_shebang(fpath, options.shebang)) and \
+ not options.ignore_shebangs:
+ res = shebang2pyver(fpath)
+ if res:
+ r['shebangs'].add(res)
- if dbg_package and clean_dbg_pkg:
+ if dbg_package and options.clean_dbg_pkg:
# remove empty directories in -dbg packages
proot = proot + '/usr/lib'
for root, dirs, file_names in os.walk(proot, topdown=False):
@@ -468,7 +480,7 @@
################################################################
def main():
usage = '%prog -p PACKAGE [-V [X.Y][-][A.B]] DIR [-X REGEXPR]\n'
- parser = OptionParser(usage, version='%prog 2.0~beta1',
+ parser = OptionParser(usage, version='%prog 2.1',
option_class=Option)
parser.add_option('--no-guessing-versions', action='store_false',
dest='guess_versions', default=True,
@@ -514,6 +526,8 @@
help='recreate __init__.py files for given namespaces at install time')
parser.add_option('--clean-pycentral', action='store_true', default=False,
help='generate maintainer script that will remove pycentral files')
+ parser.add_option('--shebang',
+ help='use given command as shebang in scripts')
parser.add_option('--ignore-shebangs', action='store_true', default=False,
help='do not translate shebangs into Debian dependencies')
parser.add_option('--ignore-namespace', action='store_true', default=False,
@@ -521,6 +535,8 @@
parser.add_option('--no-dbg-cleaning', action='store_false',
dest='clean_dbg_pkg', default=True,
help='do not remove files from debug packages')
+ parser.add_option('--no-shebang-rewrite', action='store_true',
+ default=False, help='do not rewrite shebangs')
# ignore some debhelper options:
parser.add_option('-O', help=SUPPRESS_HELP)
@@ -588,7 +604,7 @@
if not pyremove(package, options.vrange):
exit(5)
fix_locations(package)
- stats = scan(package, private_dir, options.clean_dbg_pkg)
+ stats = scan(package, private_dir, options)
if not private_dir:
share(package, stats, options)
pyshared_dir = "debian/%s/usr/share/pyshared/" % package
diff -Nru python-defaults-2.7.3~rc2/dh_python2.rst python-defaults-2.7.3/dh_python2.rst
--- python-defaults-2.7.3~rc2/dh_python2.rst 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/dh_python2.rst 2012-07-26 18:26:10.000000000 -0400
@@ -22,13 +22,13 @@
* build module/application using its standard build system,
remember to build extensions for all supported Python versions (loop over
``pyversions -vr``),
- * install files to the *standard* locations, add ``--install-layout=deb`` to
+ * install files to the *standard* locations, add `--install-layout=deb` to
setup.py's install command if your package is using distutils,
- * add ``python2`` to dh's ``--with`` option, or:
- * include /usr/share/cdbs/1/class/python-distutils.mk in debian/rules and
- depend on cdbs (>= 0.4.90), or:
- * call dh_python2 in the binary-* target,
- * add ${python:Depends} to Depends,
+ * add `python2` to dh's --with option, or:
+ * `include /usr/share/cdbs/1/class/python-distutils.mk` in debian/rules and
+ depend on `cdbs (>= 0.4.90)`, or:
+ * call ``dh_python2`` in the `binary-*` target,
+ * add `${python:Depends}` to Depends
NOTES
-----
@@ -43,11 +43,13 @@
dependencies
~~~~~~~~~~~~
dh_python2 tries to translate Python dependencies from requires.txt file to
-Debian dependencies, use debian/pydist-overrides or --no-guessing-deps option
-to override it. If you want dh_python2 to generate more strict dependencies
-(f.e. to avoid ABI problems) create debian/python-foo.pydist file. See
-/usr/share/doc/python-doc/README.PyDist (provided by python-doc package) for
-more information.
+Debian dependencies. Use debian/pydist-overrides or --no-guessing-deps option
+to override it if the guess is incorrect. If you want dh_python2 to generate
+more strict dependencies (f.e. to avoid ABI problems) create
+debian/python-foo.pydist file. See /usr/share/doc/python-doc/README.PyDist
+(provided by python-doc package) for more information. If the pydist file
+contains PEP386 flag or set of (uscan like) rules, dh_python2 will make the
+depedency versioned (version requirements are ignored by default).
namespace feature
~~~~~~~~~~~~~~~~~
@@ -70,24 +72,33 @@
dh_python2 with --skip-private option and add another call with a path to this
directory and new options.
+debug packages
+~~~~~~~~~~~~~~
+In binary packages which name ends with `-dbg`, all files in
+`/usr/lib/python2.X/{site,dist}-packages/` directory
+that have extensions different than `so` or `h` are removed by default.
+Use --no-dbg-cleaning option to disable this feature.
+
pyinstall files
~~~~~~~~~~~~~~~
Files listed in debian/pkg.pyinstall file will be installed as public modules
for all requested Python versions (dh_install doesn't know about python's site-
vs. dist-packages issue).
-Syntax: "path/to/file [VERSION_RANGE] [NAMESPACE]". debian directory is
-automatically removed from the path, so you can place your files in debian/
-directory and install them from this location (if you want to install them in
-"debian" namespace, set NAMESPACE to debian). If NAMESPACE is set, all listed
-files will be installed in .../dist-packages/NAMESPACE/ directory.
+Syntax: ``path/to/file [VERSION_RANGE] [NAMESPACE]``
+
+debian directory is automatically removed from the path, so you can place your
+files in debian/ directory and install them from this location (if you want to
+install them in "debian" namespace, set NAMESPACE to debian). If NAMESPACE is
+set, all listed files will be installed in .../dist-packages/NAMESPACE/
+directory.
Examples:
- * `foo.py` (installs .../dist-packages/foo.py for all supported Python versions)
- * `foo/bar.py 2.6-` (installs .../dist-packages/foo/bar.py for versions >= 2.6)
- * `foo/bar.py spam` (installs .../dist-packages/spam/bar.py)
- * `debian/*.py spam.egg 2.5` (installs .../python2.5/site-packages/spam/egg/\*.py
- files)
+ * ``foo.py`` installs .../dist-packages/foo.py for all supported Python versions
+ * ``foo/bar.py 2.6-`` installs .../dist-packages/foo/bar.py for versions >= 2.6
+ * ``foo/bar.py spam`` installs .../dist-packages/spam/bar.py
+ * ``debian/*.py spam.egg 2.5`` installs .../python2.5/site-packages/spam/egg/\*.py
+ files
pyremove files
~~~~~~~~~~~~~~
@@ -96,8 +107,18 @@
debian/pkg.pyremove file.
Examples:
- * `*.pth` (removes .pth files from .../dist-packages/)
- * `bar/baz.py 2.5` (removes .../python2.5/site-packages/bar/baz.py)
+ * ``*.pth`` removes .pth files from .../dist-packages/
+ * ``bar/baz.py 2.5`` removes .../python2.5/site-packages/bar/baz.py
+
+overriding supported / default Python versions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+If you want to override system's list of supported Python versions or the
+default one (f.e. to build a package that includes symlinks for older version
+of Python or compile .py files only for given interpreter version), you can do
+that via `DEBPYTHON_SUPPORTED` and/or `DEBPYTHON_DEFAULT` env. variables.
+
+Example: ``2.5,2.7`` limits the list of supported Python versions to Python 2.5
+and Python 2.7.
OPTIONS
@@ -112,6 +133,8 @@
--no-dbg-cleaning do not remove any files from debug packages
+--no-shebang-rewrite do not rewrite shebangs
+
--skip-private don't check private directories
-v, --verbose turn verbose mode on
@@ -156,6 +179,8 @@
--clean-pycentral generate maintainer script that will remove byte code
generated by python-central helper
+--shebang=COMMAND use given command as shebang in scripts
+
--ignore-shebangs do not translate shebangs into Debian dependencies
SEE ALSO
diff -Nru python-defaults-2.7.3~rc2/Makefile python-defaults-2.7.3/Makefile
--- python-defaults-2.7.3~rc2/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -30,6 +30,9 @@
%.1: %.rst
rst2man $< > $@
+%.html: %.rst
+ rst2html $< > $@
+
manpages: $(MANPAGES)
dist_fallback:
diff -Nru python-defaults-2.7.3~rc2/pyclean python-defaults-2.7.3/pyclean
--- python-defaults-2.7.3~rc2/pyclean 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/pyclean 2012-07-26 18:26:10.000000000 -0400
@@ -1,8 +1,7 @@
#! /usr/bin/python
-# -*- coding: UTF-8 -*-
-# vim: et ts=4 sw=4
-
-# Copyright © 2010-2011 Piotr Ożarowski <piotr@debian.org>
+# -*- coding: UTF-8 -*- vim: et ts=4 sw=4
+#
+# Copyright © 2010-2012 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
diff -Nru python-defaults-2.7.3~rc2/pycompile python-defaults-2.7.3/pycompile
--- python-defaults-2.7.3~rc2/pycompile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/pycompile 2012-07-26 18:26:10.000000000 -0400
@@ -1,8 +1,7 @@
#! /usr/bin/python
-# -*- coding: utf-8 -*-
-# vim: et ts=4 sw=4
-
-# Copyright © 2010-2011 Piotr Ożarowski <piotr@debian.org>
+# -*- coding: utf-8 -*- vim: et ts=4 sw=4
+#
+# Copyright © 2010-2012 Piotr Ożarowski <piotr@debian.org>
# Copyright © 2010 Canonical Ltd
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
diff -Nru python-defaults-2.7.3~rc2/pydist/dist_fallback python-defaults-2.7.3/pydist/dist_fallback
--- python-defaults-2.7.3~rc2/pydist/dist_fallback 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/pydist/dist_fallback 2012-07-26 18:26:10.000000000 -0400
@@ -2,7 +2,9 @@
setuptools python-pkg-resources
wsgiref python (>= 2.5) | python-wsgiref
argparse python (>= 2.7) | python-argparse
+pil python-imaging
AddOns python-peak.util
+BatchModify trac-batchmodify
BitTornado bittornado
BitTorrent bittorrent
Bitten trac-bitten-slave
@@ -10,12 +12,12 @@
BytecodeAssembler python-peak.util
BzrPipeline bzr-pipeline
BzrTools bzrtools
+Calendar_and_Contacts_Server calendarserver
CedarBackup2 cedar-backup2
CherryPy python-cherrypy3
CherryTree cherrytree
ClusterShell clustershell
Codeville codeville
-Connectome_Viewer connectomeviewer
ControlAula controlaula
CoverageTestRunner python-coverage-test-runner
DITrack ditrack
@@ -36,12 +38,12 @@
GaussSum gausssum
GeoIP_Python python-geoip
GitPython python-git
-Gufw gufw
HarvestMan harvestman
ISO8583_Module python-iso8583
Ibid ibid
JCC jcc
Loom bzr-loom
+MAT mat
Magic_file_extensions python-magic
Mirage mirage
Mnemosyne mnemosyne
@@ -75,15 +77,17 @@
PyWavelets python-pywt
PyWebDAV python-webdav
PyYAML python-yaml
+Py_ python-py++
Pygmy pygmy
Pyjamas pyjamas-pyjs
Pymacs pymacs
-Pyste libboost-python1.46-dev
+Pyste libboost-python1.49-dev
PythonDaap python-daap
QuantLib_Python quantlib-python
Quixote python-quixote1
+Ren_Py python-renpy
+Roadmap_Plugin trac-roadmap
RunSnakeRun runsnakerun
-SSSDConfig python-sss
ScientificPython python-scientific
Shinken shinken-core
Sonata sonata
@@ -106,7 +110,7 @@
TracHTTPAuth trac-httpauth
TracMasterTickets trac-mastertickets
TracMercurial trac-mercurial
-TracPrivateTickets trac-privateticketsplugin
+TracPrivateTickets trac-privatetickets
TracSpamFilter trac-spamfilter
TracSubTicketsPlugin trac-subtickets
TracTags trac-tags
@@ -119,15 +123,20 @@
Turtle_Art turtleart
UNKNOWN python-pdfrw
UnknownHorizons unknown-horizons
+VirtualMailManager vmm
WikiTableMacro trac-wikitablemacro
Wikkid wikkid
+WordPress_Library python-wordpresslib
+X_Tile x-tile
ZODB3 python-zodb
_tifffile tifffile
activity_log_manager activity-log-manager
adns_python python-adns
agtl agtl
+alembic alembic
allmydata_tahoe tahoe-lafs
apache_libcloud python-libcloud
+apparmor apparmor-utils
apt_clone apt-clone
apt_p2p apt-p2p
apt_xapian_index apt-xapian-index
@@ -138,12 +147,13 @@
archmage archmage
arcjobtool arcjobtool
arista arista
-astk code-aster-run
atheist atheist
autokey autokey-common
+beautifulsoup4 python-bs4
bicyclerepair bicyclerepair
bitbake bitbake
bley bley
+bookletimposer bookletimposer
bpython bpython
buildbot buildbot
buildbot_slave buildbot-slave
@@ -159,8 +169,6 @@
bzr_git bzr-git
bzr_grep bzr-grep
bzr_gtk bzr-gtk
-bzr_hg bzr-hg
-bzr_pqm bzr-pqm
bzr_rewrite bzr-rewrite
bzr_search bzr-search
bzr_stats bzr-stats
@@ -168,6 +176,7 @@
bzr_upload bzr-upload
bzr_xmloutput bzr-xmloutput
cappuccino cappuccino
+carbon graphite-carbon
cardstories cardstories
cfget cfget
chirp chirp
@@ -176,29 +185,30 @@
cmdtest cmdtest
cpuset cpuset
cvs2svn cvs2svn
-cwm python-swap
d_feet d-feet
d_rats d-rats
+datapm datapm
+dblatex dblatex
dctrl2xml dctrl2xml
debpartial_mirror debpartial-mirror
deluge deluge-common
devscripts devscripts
dicompyler dicompyler
+dispcalGUI dispcalgui
dissy dissy
djagios djagios
django_ajax_selects django-ajax-selects
django_filter django-filter
django_openid_auth python-django-auth-openid
-django_tables django-tables
+django_tables2 django-tables
django_tastypie python-tastypie
djextdirect python-django-extdirect
+dkimpy python-dkim
dot2tex dot2tex
driconf driconf
dtrx dtrx
duplicity duplicity
dvcs_autosync dvcs-autosync
-earcandy earcandy
-ears ears
eficas eficas
elisa python-moovida
elisa_plugin_amazon moovida-plugins-bad
@@ -243,10 +253,10 @@
fontypython fontypython
frescobaldi frescobaldi
fts fts
+fts_clacks fts-clacks
fts_fai fts-fai-ldap
fts_ltsp fts-ltsp-ldap
fts_opsi fts-opsi
-funkload funkload
fuse_python python-fuse
fusil fusil
fusion_icon fusion-icon
@@ -255,16 +265,19 @@
gameclock gameclock
gaphor gaphor
gastablesgui gastables
+gbp git-buildpackage
gdevilspie gdevilspie
gdmodule python-gd
genbackupdata genbackupdata
getmail getmail4
geximon geximon
-git_build_package git-buildpackage
+git_review git-review
github_cli github-cli
giws giws
gjots2 gjots2
+glipper glipper
globs globs
+glue glue-sprite
gmobilemedia gmobilemedia
gnome_activity_journal gnome-activity-journal
gnome_app_install gnome-codec-install
@@ -286,39 +299,43 @@
hellanzb hellanzb
hgnested mercurial-nested
hgsvn hgsvn
+hitchhhiker hitchhiker
hotwire hotwire
+httpcode httpcode
+httpie httpie
hyde hyde
ibus_tegaki ibus-tegaki
icalview trac-icalviewplugin
identicurse identicurse
imposm.parser python-imposm-parser
-include_server distcc-pump
iotop iotop
ipython ipython
isoquery isoquery
jack jack
jsb jsonbot
+juju juju
kedpm kedpm
+keepnote keepnote
key_mon key-mon
keymapper keymapper
kiki kiki
lastfmsubmitd lastfmsubmitd
lazygal lazygal
+legit legit
libsbml libsbml5-python
libtpclient_py python-tp-client
libtpproto_py python-tp-netlib
lio lio-utils
-live_magic live-magic
llnl_babel python-sidl
llnl_babel_sidl_sidlx python-sidl
loggerhead loggerhead
londonlaw londonlaw
lptools lptools
lshell lshell
-lucene pylucene
ludev_t ludevit
lybniz lybniz
mayavi mayavi2
+mcomix mcomix
mecab_python python-mecab
mercurial mercurial-common
mic mic2
@@ -326,6 +343,7 @@
mingc python-ming
mini_dinstall mini-dinstall
miro miro
+mitmproxy mitmproxy
mod_python libapache2-mod-python
moin python-moinmoin
moosic moosic
@@ -333,10 +351,13 @@
mpDris mpdris
museek_python_bindings python-museek
musiclibrarian musiclibrarian
+mysql_utilities mysql-utilities
+nautilus_pastebin nautilus-pastebin
neso tryton-neso
netsnmp_python libsnmp-python
nfoview nfoview
nglister nglister
+nml nml
nsscache nsscache
nxt_python python-nxt
obMenu obmenu
@@ -352,11 +373,12 @@
openstack.common python-openstack-common
osc osc
pYsearch python-yahoo
-pdfposter pdfposter
+pbundler pbundler
pdfshuffler pdfshuffler
pep8 pep8
perroquet perroquet
-picard picard
+pgxnclient pgxnclient
+photofilmstrip photofilmstrip
pithos pithos
pkpgcounter pkpgcounter
playitslowly playitslowly
@@ -374,17 +396,16 @@
puddletag puddletag
purity_ng purity-ng
pyExcelerator python-excelerator
+pyFAI pyfai
pyLibravatar python-libravatar
pyOpenSSL python-openssl
pyPortMidi python-pypm
py_Asterisk python-asterisk
py_pypcap python-pypcap
py_rrdtool python-rrdtool
-py_sendfile python-sendfile
pyacidobasic python-acidobasic
pyacoustid python-acoustid
pyalsaaudio python-alsaaudio
-pybackpack pybackpack
pybloom python-bloomfilter
pybridge pybridge
pybtex pybtex
@@ -394,7 +415,6 @@
pychm python-chm
pycrypto python-crypto
pydicom python-dicom
-pydkim python-dkim
pydns python-dns
pyenchant python-enchant
pyepr python-epr
@@ -404,12 +424,13 @@
pygopherd pygopherd
pygpgme python-gpgme
pygpiv python-gpiv
+pygrib python-grib
pyliblo python-liblo
pyliblzma python-lzma
pylibpcap python-libpcap
-pylibssh2 python-libssh2
pylibtiff python-libtiff
pylint pylint
+pylogsparser python-logsparser
pymecavideo python-mecavideo
pymilter python-milter
pymol pymol
@@ -420,17 +441,17 @@
pynids python-nids
pynifti python-nifti
pyogg python-ogg
+pyp pyp
pyparallel python-parallel
pyppd pyppd
pyprompter pyprompter
-pyqonsole pyqonsole
pyremctl python-remctl
pyrit pyrit
pyrite_publisher pyrite-publisher
pysane python-imaging-sane
pysatellites python-satellites
pyserial python-serial
-pysnmp python-pysnmp2
+pysnmp python-pysnmp4
pysnmp_apps python-pysnmp4-apps
pysnmp_mibs python-pysnmp4-mibs
pysparse python-sparse
@@ -439,6 +460,7 @@
pysqlite python-pysqlite1.1
pystatgrab python-statgrab
pysubnettree python-subnettree
+pysurfer python-surfer
pytagsfs pytagsfs
pytcpwrap python-tcpwrap
python2_biggles python-pybiggles
@@ -468,12 +490,6 @@
qpid_python python-qpid
qpid_qmf python-qpid-extras-qmf
qpid_tools qpid-tools
-quantum_cisco_plugin quantum-plugin-cisco
-quantum_client quantum-client
-quantum_common quantum-common
-quantum_openvswitch_plugin quantum-plugin-openvswitch
-quantum_sample_plugin quantum-plugin-sample
-quantum_server quantum-server
quisk quisk
quodlibet exfalso
qweborf qweborf
@@ -489,7 +505,6 @@
relational_pyside relational
relational_readline relational-cli
remuco remuco-base
-renpy_module python-renpy
repoze.what.plugins.sql python-repoze.what-plugins
repoze.what.plugins.xml python-repoze.what-plugins
repoze.what_pylons python-repoze.what-plugins
@@ -502,19 +517,28 @@
roundup roundup
rpl rpl
rst2pdf rst2pdf
+rubber rubber
+salt salt-common
scikit_learn python-sklearn
+scikits_image python-skimage
screenlets screenlets
seivot seivot
+sensitivetickets trac-sensitivetickets
+servefile servefile
sessioninstaller sessioninstaller
shedskin shedskin
-skeinforge skeinforge
slapos.core slapos-client
+slimit slimit
smart python-smartpm
snimpy snimpy
spambayes spambayes
spectacle spectacle
specto specto
+sphinxcontrib_actdiag python-sphinxcontrib.actdiag
+sphinxcontrib_blockdiag python-sphinxcontrib.blockdiag
sphinxcontrib_issuetracker python-sphinxcontrib.issuetracker
+sphinxcontrib_nwdiag python-sphinxcontrib.nwdiag
+sphinxcontrib_seqdiag python-sphinxcontrib.seqdiag
sphinxcontrib_spelling python-sphinxcontrib.spelling
spyder python-spyderlib
sqlalchemy_migrate python-migrate
@@ -524,8 +548,7 @@
supervisor supervisor
supybot supybot
svnmailer svnmailer
-synce_kpm synce-kpm
-synce_sync_engine synce-sync-engine
+synaptiks kde-config-touchpad
tailor tailor
targetcli targetcli
tcm lio-utils
@@ -535,11 +558,12 @@
tegaki_tools python-tegakitools
tegaki_train tegaki-train
tgext.crud python-tgext.admin
+tilelite tilelite
tinyeartrainer tinyeartrainer
tortoisehg tortoisehg
transifex_client transifex-client
translate_toolkit translate-toolkit
-trash trash-cli
+trash_cli trash-cli
trimage trimage
tritium tritium
tryton tryton-client
@@ -600,9 +624,9 @@
udev_discover udev-discover
ufw ufw
unattended_upgrades unattended-upgrades
-undertaker undertaker
unittest_xml_reporting python-xmlrunner
urlscan urlscan
+vamos undertaker
vboxapi virtualbox
virtaal virtaal
virtinst virtinst
@@ -610,6 +634,7 @@
virtualenvwrapper virtualenvwrapper
wammu wammu
web.py python-webpy
+weboob python-weboob-core
whyteboard whyteboard
wikipediafs wikipediafs
winpdb winpdb
@@ -619,12 +644,10 @@
xml_marshaller python-xmlmarshaller
xmldiff xmldiff
xmms2tray xmms2tray
-xxdiff_scripts xxdiff-scripts
yagtd yagtd
yokadi yokadi
yum_metadata_parser python-sqlitecachec
zenmap zenmap
zeroinstall_injector zeroinstall-injector
-zhone zhone-illume-glue
zim zim
zinnia_python python-zinnia
diff -Nru python-defaults-2.7.3~rc2/pydist/generate_fallback_list.py python-defaults-2.7.3/pydist/generate_fallback_list.py
--- python-defaults-2.7.3~rc2/pydist/generate_fallback_list.py 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/pydist/generate_fallback_list.py 2012-07-26 18:26:10.000000000 -0400
@@ -72,4 +72,6 @@
fp.write('setuptools python-pkg-resources\n')
fp.write('wsgiref python (>= 2.5) | python-wsgiref\n')
fp.write('argparse python (>= 2.7) | python-argparse\n')
+# wasn't recognized due to .pth file (egg-info is in PIL/ and not in *-packages/)
+fp.write('pil python-imaging\n')
fp.writelines(result)
diff -Nru python-defaults-2.7.3~rc2/python2.pm python-defaults-2.7.3/python2.pm
--- python-defaults-2.7.3~rc2/python2.pm 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/python2.pm 2012-07-26 18:26:10.000000000 -0400
@@ -5,7 +5,7 @@
use strict;
use Debian::Debhelper::Dh_Lib;
-insert_after("dh_perl", "dh_python2");
+insert_before("dh_installinit", "dh_python2");
remove_command("dh_pycentral");
remove_command("dh_pysupport");
diff -Nru python-defaults-2.7.3~rc2/tests/common.mk python-defaults-2.7.3/tests/common.mk
--- python-defaults-2.7.3~rc2/tests/common.mk 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/common.mk 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,12 @@
+#!/usr/bin/make -f
+
+export DEBPYTHON_DEFAULT ?= $(shell sed -rne 's,^default-version = python(.*),\1,p' ../../debian/debian_defaults)
+export DEBPYTHON_SUPPORTED ?= $(shell sed -rne '/^supported-versions/{s/^supported-versions = (.*)/\1/g;s/python//g;s/,//g;p}' ../../debian/debian_defaults)
+
+all: run check
+
+run: clean
+ dpkg-buildpackage -b -us -uc
+
+clean-common:
+ ./debian/rules clean
diff -Nru python-defaults-2.7.3~rc2/tests/Makefile python-defaults-2.7.3/tests/Makefile
--- python-defaults-2.7.3~rc2/tests/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,7 +1,7 @@
#!/usr/bin/make -f
# enable or disable tests here:
-TESTS := test1 test2 test3 test4 test5 test6
+TESTS := test1 test2 test3 test4 test5 test6 test7
all: $(TESTS)
diff -Nru python-defaults-2.7.3~rc2/tests/t1/debian/pydist-overrides python-defaults-2.7.3/tests/t1/debian/pydist-overrides
--- python-defaults-2.7.3~rc2/tests/t1/debian/pydist-overrides 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t1/debian/pydist-overrides 2012-07-26 18:26:10.000000000 -0400
@@ -1,5 +1,5 @@
Mako python-mako (>= 0.2)
SQLAlchemy python-sqlalchemy (>= 0.6)
-Foo python-foo
+Foo python-foo; PEP386 s/^/2:/
Bar python-bar
Baz
diff -Nru python-defaults-2.7.3~rc2/tests/t1/debian/rules python-defaults-2.7.3/tests/t1/debian/rules
--- python-defaults-2.7.3~rc2/tests/t1/debian/rules 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t1/debian/rules 2012-07-26 18:26:10.000000000 -0400
@@ -12,5 +12,5 @@
DH_VERBOSE=1 ../../dh_python2\
--depends 'SQLAlchemy >= 0.6.1'\
--recommends Mako\
- --suggests 'Foo >= 0.1'\
+ --suggests 'Foo >= 0.1rc2'\
--suggests 'bar >= 1.0'
diff -Nru python-defaults-2.7.3~rc2/tests/t1/Makefile python-defaults-2.7.3/tests/t1/Makefile
--- python-defaults-2.7.3~rc2/tests/t1/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t1/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,20 +1,16 @@
#!/usr/bin/make -f
-all: run check
-
-DPY=$(shell PYTHONPATH=../../ python -c 'import debpython.version as v; print(v.vrepr(v.DEFAULT))')
-
-run: clean
- dpkg-buildpackage -b -us -uc
+include ../common.mk
+DPY=$(DEBPYTHON_DEFAULT)
check:
grep -q "Depends: .*python-mako" debian/python-foo/DEBIAN/control
+ grep -q 'python-foo (>= 2:0.1~rc2)' debian/python-foo/DEBIAN/control
test -f debian/python-foo/usr/lib/python2.6/dist-packages/foo/__init__.py
test ! -f debian/python-foo/usr/lib/python2.6/dist-packages/foo/spam.py
grep -q "Depends: .*python (<<" debian/python-foo/DEBIAN/control
[ `readlink debian/python-foo/usr/lib/python$(DPY)/dist-packages/foo/absolute_link_to_tmp` = /tmp ]
[ `readlink debian/python-foo/usr/lib/python$(DPY)/dist-packages/foo/link_to_parent_dir` = .. ]
-clean:
- ./debian/rules clean
+clean: clean-common
rm -rf lib/Foo.egg-info
diff -Nru python-defaults-2.7.3~rc2/tests/t2/Makefile python-defaults-2.7.3/tests/t2/Makefile
--- python-defaults-2.7.3~rc2/tests/t2/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t2/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,16 +1,10 @@
#!/usr/bin/make -f
-all: run check
-
-
-run: clean
- dpkg-buildpackage -b -us -uc
+include ../common.mk
+clean: clean-common
check:
test -f debian/python-foo/usr/lib/python2.6/dist-packages/foo.py
test -f debian/python-foo/usr/lib/python2.6/dist-packages/bar/bar.py
grep -q pycompile debian/python-foo/DEBIAN/postinst
grep -q pyclean debian/python-foo/DEBIAN/prerm
-
-clean:
- ./debian/rules clean
diff -Nru python-defaults-2.7.3~rc2/tests/t3/debian/rules python-defaults-2.7.3/tests/t3/debian/rules
--- python-defaults-2.7.3~rc2/tests/t3/debian/rules 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t3/debian/rules 2012-07-26 18:26:10.000000000 -0400
@@ -19,4 +19,12 @@
/usr/lib/python${DPY}/dist-packages/foo/baz.so.0.1
dh_link /usr/lib/python${DPY}/dist-packages/foo/baz.so.0.1 \
/usr/lib/python${DPY}/dist-packages/foo/baz.so
+ # ... second style of multiple symlinks
+ cp debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/bar.so \
+ debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/quux.so.0.0.0
+ dh_link /usr/lib/python${DPY}/dist-packages/foo/quux.so.0.0.0 \
+ /usr/lib/python${DPY}/dist-packages/foo/quux.so.0
+ dh_link /usr/lib/python${DPY}/dist-packages/foo/quux.so.0.0.0 \
+ /usr/lib/python${DPY}/dist-packages/foo/quux.so
+ # ... and complex multiple symlinks
DH_VERBOSE=1 ../../dh_python2
diff -Nru python-defaults-2.7.3~rc2/tests/t3/Makefile python-defaults-2.7.3/tests/t3/Makefile
--- python-defaults-2.7.3~rc2/tests/t3/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t3/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,11 +1,7 @@
#!/usr/bin/make -f
-all: run check
-
-DPY=$(shell PYTHONPATH=../../ python -c 'import debpython.version as v; print(v.vrepr(v.DEFAULT))')
-
-run: clean
- dpkg-buildpackage -b -us -uc
+include ../common.mk
+DPY=$(DEBPYTHON_DEFAULT)
check:
grep -q "pycompile -p python-foo /usr/lib/python-foo -V $(DPY)"\
@@ -17,7 +13,10 @@
test -f debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/baz.so
test ! -f debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/baz.so.0.1
test ! -f debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/baz.so.0.1.2
+ test -f debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/quux.so
+ test ! -f debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/quux.so.0
+ test ! -L debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/quux.so.0
+ test ! -f debian/python-foo/usr/lib/python${DPY}/dist-packages/foo/quux.so.0.0.0
-clean:
- ./debian/rules clean
+clean: clean-common
rm -rf lib/Foo.egg-info build
diff -Nru python-defaults-2.7.3~rc2/tests/t4/Makefile python-defaults-2.7.3/tests/t4/Makefile
--- python-defaults-2.7.3~rc2/tests/t4/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t4/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,10 +1,7 @@
#!/usr/bin/make -f
-all: run check
-
-
-run: clean
- dpkg-buildpackage -b -us -uc
+include ../common.mk
+clean: clean-common
check:
grep -q python2.6 debian/foo/usr/share/foo/foo.py
@@ -14,6 +11,3 @@
grep -q python2.4 debian/foo/usr/share/foo/baz.py
test ! -x debian/foo/usr/share/foo/baz.py
grep -q Depends:.*python2.4 debian/foo/DEBIAN/control && false || true
-
-clean:
- ./debian/rules clean
diff -Nru python-defaults-2.7.3~rc2/tests/t5/Makefile python-defaults-2.7.3/tests/t5/Makefile
--- python-defaults-2.7.3~rc2/tests/t5/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t5/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,10 +1,7 @@
#!/usr/bin/make -f
-all: run check
-
-
-run: clean
- dpkg-buildpackage -b -us -uc
+include ../common.mk
+clean: clean-common
check:
# test dh_python2
@@ -29,6 +26,3 @@
do [ `ls debian/python-foo/usr/lib/python2.*/*-packages/$$i/__init__.py 2>/dev/null || true | wc -l` = 0 ];\
[ `ls debian/python-foo/usr/lib/python2.*/*-packages/$$i/__init__.pyc 2>/dev/null || true | wc -l` = 0 ];\
done
-
-clean:
- ./debian/rules clean
diff -Nru python-defaults-2.7.3~rc2/tests/t6/Makefile python-defaults-2.7.3/tests/t6/Makefile
--- python-defaults-2.7.3~rc2/tests/t6/Makefile 2012-06-05 22:58:56.000000000 -0400
+++ python-defaults-2.7.3/tests/t6/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -1,10 +1,7 @@
#!/usr/bin/make -f
-all: run check
-
-
-run: clean
- dpkg-buildpackage -b -us -uc
+include ../common.mk
+clean: clean-common
check:
# python2.4 hardcoded via `dh_python2 -V 2.4`
@@ -19,6 +16,3 @@
grep -q Depends:.*python2.6 debian/foo/DEBIAN/control
grep -q '\-V 2.6 /usr/share/foo' debian/foo/usr/share/python/runtime.d/foo.rtupdate
grep -q '/usr/share/foo \-V 2.6' debian/foo/DEBIAN/postinst
-
-clean:
- ./debian/rules clean
diff -Nru python-defaults-2.7.3~rc2/tests/t7/bar.py python-defaults-2.7.3/tests/t7/bar.py
--- python-defaults-2.7.3~rc2/tests/t7/bar.py 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/bar.py 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,2 @@
+#!/usr/bin/env python
+"env in shebang"
diff -Nru python-defaults-2.7.3~rc2/tests/t7/baz.py python-defaults-2.7.3/tests/t7/baz.py
--- python-defaults-2.7.3~rc2/tests/t7/baz.py 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/baz.py 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,2 @@
+#!/usr/local/bin/python
+"/usr/local in shebang"
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/changelog python-defaults-2.7.3/tests/t7/debian/changelog
--- python-defaults-2.7.3~rc2/tests/t7/debian/changelog 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/changelog 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,5 @@
+foo (1.0) unstable; urgency=low
+
+ * Initial release
+
+ -- Piotr Ożarowski <piotr@debian.org> Sun, 10 Jun 2012 14:09:45 +0200
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/compat python-defaults-2.7.3/tests/t7/debian/compat
--- python-defaults-2.7.3~rc2/tests/t7/debian/compat 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/compat 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1 @@
+8
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/control python-defaults-2.7.3/tests/t7/debian/control
--- python-defaults-2.7.3~rc2/tests/t7/debian/control 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/control 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,13 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Piotr Ożarowski <piotr@debian.org>
+Build-Depends: debhelper (>= 7.0.50~)
+Build-Depends-Indep: python
+Standards-Version: 3.9.3
+
+Package: foo
+Architecture: all
+Depends: ${python:Depends}, ${misc:Depends}
+Description: example 7 - shebangs
+ exemple package #7 - shebang related tests
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/copyright python-defaults-2.7.3/tests/t7/debian/copyright
--- python-defaults-2.7.3~rc2/tests/t7/debian/copyright 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/copyright 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,2 @@
+The Debian packaging is © 2012, Piotr Ożarowski <piotr@debian.org> and
+is licensed under the MIT License.
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/install python-defaults-2.7.3/tests/t7/debian/install
--- python-defaults-2.7.3~rc2/tests/t7/debian/install 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/install 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,7 @@
+foo.py /usr/share/foo/
+baz.py /usr/share/foo/
+spam.py /usr/share/foo/
+bar.py /usr/share/bar/
+spam.py /usr/share/bar/
+baz.py /usr/share/baz24/
+spam.py /usr/share/baz24/
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/rules python-defaults-2.7.3/tests/t7/debian/rules
--- python-defaults-2.7.3~rc2/tests/t7/debian/rules 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/rules 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,11 @@
+#!/usr/bin/make -f
+%:
+ dh $@ --buildsystem=python_distutils
+
+override_dh_pysupport:
+ DH_VERBOSE=1 ../../dh_python2
+ DH_VERBOSE=1 ../../dh_python2 /usr/share/bar
+ DH_VERBOSE=1 ../../dh_python2 /usr/share/baz24 --shebang '/usr/bin/python2.4 -OO'
+
+clean:
+ dh_clean
diff -Nru python-defaults-2.7.3~rc2/tests/t7/debian/source/format python-defaults-2.7.3/tests/t7/debian/source/format
--- python-defaults-2.7.3~rc2/tests/t7/debian/source/format 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/debian/source/format 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1 @@
+3.0 (native)
diff -Nru python-defaults-2.7.3~rc2/tests/t7/foo.py python-defaults-2.7.3/tests/t7/foo.py
--- python-defaults-2.7.3~rc2/tests/t7/foo.py 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/foo.py 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,2 @@
+#!/usr/local/bin/python2.6
+"/usr/local/bin/python2.6 hardcoded in shebang"
diff -Nru python-defaults-2.7.3~rc2/tests/t7/Makefile python-defaults-2.7.3/tests/t7/Makefile
--- python-defaults-2.7.3~rc2/tests/t7/Makefile 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/Makefile 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+
+include ../common.mk
+clean: clean-common
+
+check:
+ # python2.4 hardcoded via `dh_python2 -shebang ...python2.4`
+ grep -q '\-V 2.4 /usr/share/baz24' debian/foo/usr/share/python/runtime.d/foo.rtupdate
+ grep -q '/usr/share/baz24 \-V 2.4' debian/foo/DEBIAN/postinst
+ grep -q '#! /usr/bin/python2.4 -OO' debian/foo/usr/share/baz24/baz.py
+ # python2.6 hardcoded via shebang
+ grep -q '\-V 2.6 /usr/share/foo' debian/foo/usr/share/python/runtime.d/foo.rtupdate
+ grep -q '/usr/share/foo \-V 2.6' debian/foo/DEBIAN/postinst
+ # /env removed from shebang
+ grep -q '#! /usr/bin/python' debian/foo/usr/share/bar/bar.py
+ # /local removed from shebang
+ grep -q '#! /usr/bin/python' debian/foo/usr/share/foo/baz.py
+ grep -q '#! /usr/bin/python2.6' debian/foo/usr/share/foo/foo.py
diff -Nru python-defaults-2.7.3~rc2/tests/t7/spam.py python-defaults-2.7.3/tests/t7/spam.py
--- python-defaults-2.7.3~rc2/tests/t7/spam.py 1969-12-31 19:00:00.000000000 -0500
+++ python-defaults-2.7.3/tests/t7/spam.py 2012-07-26 18:26:10.000000000 -0400
@@ -0,0 +1 @@
+print('spam')
Reply to: