Your message dated Fri, 8 Feb 2013 23:29:53 +0100 with message-id <20130208222953.GU8837@radis.cristau.org> and subject line Re: Bug#682906: unblock: python-defaults/2.7.3-2 has caused the Debian Bug report #682906, regarding unblock: python-defaults/2.7.3-2 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 682906: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682906 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock: python-defaults/2.7.3-2
- From: Scott Kitterman <debian@kitterman.com>
- Date: Thu, 26 Jul 2012 18:50:29 -0400
- Message-id: <20120726225029.618.66204.reportbug@Scott-Latitude-E6320>
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-2diff -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')
--- End Message ---
--- Begin Message ---
- To: Scott Kitterman <debian@kitterman.com>, 682906-done@bugs.debian.org
- Cc: Dmitry Shachnev <mitya57@gmail.com>
- Subject: Re: Bug#682906: unblock: python-defaults/2.7.3-2
- From: Julien Cristau <jcristau@debian.org>
- Date: Fri, 8 Feb 2013 23:29:53 +0100
- Message-id: <20130208222953.GU8837@radis.cristau.org>
- In-reply-to: <6746175.aVbSQbXsdt@scott-latitude-e6320>
- References: <20120726225029.618.66204.reportbug@Scott-Latitude-E6320> <20130207211859.GR8837@radis.cristau.org> <1360302829.4817.5.camel@eeepc> <6746175.aVbSQbXsdt@scott-latitude-e6320>
On Fri, Feb 8, 2013 at 16:31:25 -0500, Scott Kitterman wrote: > On Friday, February 08, 2013 09:53:49 AM Dmitry Shachnev wrote: > ... > > The revert is attached and alternatively available at > ... > Thanks. Uploaded. > And unblocked. Cheers, JulienAttachment: signature.asc
Description: Digital signature
--- End Message ---