Package: python3
Version: 3.2.3-5
Followup-For: Bug #672178

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dear Maintainer,

The attached patch fixes both bug 672178 and 690259.  It should allow
python3-defaults to be compatible with Python 3.3 now.


- -- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python3 depends on:
ii  python3-minimal  3.2.3-5
ii  python3.2        3.2.3-2

python3 recommends no packages.

Versions of packages python3 suggests:
pn  python3-doc  <none>
pn  python3-tk   <none>

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJQd0bXAAoJEBJutWOnSwa/51kP/2T6pYPY65NLDuON4VH8JlYy
uR017VxOGPbaLR++ahZorjawoiQxqtfWAsjnrB61of/xGt3ixz20/hDkB5TEyFF5
WOHv87cxTNaFMbKbetX6WDUg2FXI8pQtb2sLt9iBH7JjY5S6yp1pztfrG2L1q3ra
Relqi59ChmI2W5F1qSkVRDiMHtkGnag6J2um5+RJ09vFHdw+MlwrvO5gt/LJyFAB
qu5c1K0uIu744WQMdRbsz7O+Rq5QqAKqPmwcAzPLZ7tOC+iOJJE6V+vNdi32h2V6
HFyisGcIcEO0c+mrEy/wdqzhJRSRdsNgbvOFG+6PMhX/T2MOGP7BWfhPq61AvEGv
GsN+vlM3yEY5oRKG+bfHWhTKf76+6PDh8ET18YXw44YT2itTnQ3DU12dy1s8RZxg
lh/cRgagNE5ku7vIto7SPsO3QqotXN6zabrz5k4NTEjj0oR+TDjsbQftiRsNNOSj
A5515TGRK0l7yyeRTakWWU4jLbmTk1xmYhDHyEwNsgT9Sedq7R3BgE8MDONwXOt0
fXhAmaUXEQjbisLJCS76YCXeEVU0sO7cb+zMEXoLevX4jsglXFLIwGJ43LPSenZ8
PWGFBxwfs7XasH1YxKcHMJib395jUTrVdkc8YBSYiwZPB7jGQ8zG4DeTMydUjXIF
hJPgq9KZZHrAix5FIB63
=hf+j
-----END PGP SIGNATURE-----
=== modified file 'Makefile'
--- Makefile	2012-06-30 19:32:37 +0000
+++ Makefile	2012-10-11 19:08:03 +0000
@@ -35,7 +35,7 @@
 
 # TESTS
 nose:
-	nosetests-3 --with-doctest --with-coverage
+	nosetests3 --with-doctest --with-coverage
 
 tests: nose
 	make -C tests

=== modified file 'README.derivatives'
--- README.derivatives	2011-03-13 22:13:08 +0000
+++ README.derivatives	2012-10-11 21:33:21 +0000
@@ -1,7 +1,8 @@
 How to change a list of supported Python versions?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* Open debian/debian_defaults file and change `supported-versions` variable
+* Open debian/debian_defaults file and change `supported-versions` variable,
+  separating multiple values by comma
 * Open debian/control.in file and edit python3-all, python3-all-dev and
   python3-all-dbg's Depends line (add or remove pythonX.Y packages)
 * Open debpython/versions.py file and edit `SUPPORTED` list around
@@ -14,8 +15,6 @@
 * Open debian/debian_defaults file and change `default-version` variable
 * Open debian/rules file and edit `VER` variable (default version), `NVER`
   (default + 1 version) and `PVER` (default version with "python" prefix)
-* Open debian/py3versions.py file and edit `debian_default` variable around
-  line 171
 * Open debpython/versions.py file and edit `DEFAULT` variable around line 27
 
 

=== modified file 'debian/changelog'
--- debian/changelog	2012-09-19 22:17:51 +0000
+++ debian/changelog	2012-10-11 21:44:11 +0000
@@ -1,3 +1,17 @@
+python3-defaults (3.2.3-7) UNRELEASED; urgency=low
+
+  * dh_python3: Rework calculation of extension tags to add support for
+    Python 3.3's different suffixes, and to allow for unadorned .so files
+    to assume they are built with the default Python 3 version.
+    Closes: 672178
+  * README.derivatives: It is no longer necessary to edit
+    debian/py3versions.py since the values are taken from
+    debian_defaults.  Also added some text on how to separate the
+    specification when multiple versions are supported.
+  * Makefile: Fix the nosetests3 command.  Closes: 690259
+
+ -- Barry Warsaw <ba...@python.org>  Thu, 11 Oct 2012 15:09:02 -0400
+
 python3-defaults (3.2.3-6) unstable; urgency=low
 
   [ Piotr Ożarowski ]

=== modified file 'dh_python3'
--- dh_python3	2012-06-30 19:15:05 +0000
+++ dh_python3	2012-10-11 19:04:38 +0000
@@ -47,9 +47,17 @@
 log = logging.getLogger(__name__)
 os.umask(0o22)
 
-# tag that will be added to .so files without one
-EXTENSION_TAG = 'cpython-%smu'
-DBG_EXTENSION_TAG = 'cpython-%sdmu'
+# Tag that will be added to .so files without one.  Because these values are
+# different between versions of Python 3 (e.g. 3.2 has dmu but 3.3 only has
+# dm), this maps vrepr()'s to extension templates.
+EXTENSION_TAGS = {
+    '3.2': 'cpython-%smu',
+    '3.3': 'cpython-%sm',
+    }
+DBG_EXTENSION_TAGS = {
+    '3.2': 'cpython-%sdmu',
+    '3.3': 'cpython-%sdm',
+    }
 TAG_RE = re.compile(r'-([0-9]{2})[^-.]*\.so$')
 
 # naming conventions used in the file:
@@ -132,17 +140,23 @@
 ### PACKAGE DETAILS ############################################
 def tagged_extname(fname, version, dbg_package=False):
     """Return tagged extension name for given file & version."""
-    vers = vrepr(version)  # make sure it's a string
-    vers = vers.replace('.', '')
+    extkey = vrepr(version)  # make sure it's a string
+    vers = extkey.replace('.', '')
     if vers == '3':
-        # assume .so files without tag in /usr/lib/python3/ are build for Python 3.2
-        vers = '32'
+        # Assume that .so files without tags in /usr/lib/python3 are built for
+        # the default Python 3 version.
+        vers = ''.join(str(digit) for digit in DEFAULT)
+    try:
+        ext_tag = EXTENSION_TAGS[extkey]
+        dbg_tag = DBG_EXTENSION_TAGS[extkey]
+    except KeyError:
+        raise ValueError('No known tag for Python version {}'.format(extkey))
     if fname.endswith('_d.so'):
-        fname = "%s.%s.so" % (fname[:-5], DBG_EXTENSION_TAG % vers)
+        fname = "%s.%s.so" % (fname[:-5], dbg_tag % vers)
     elif dbg_package:
-        fname = "%s.%s.so" % (fname[:-3], DBG_EXTENSION_TAG % vers)
+        fname = "%s.%s.so" % (fname[:-3], dbg_tag % vers)
     else:
-        fname = "%s.%s.so" % (fname[:-3], EXTENSION_TAG % vers)
+        fname = "%s.%s.so" % (fname[:-3], ext_tag % vers)
     return fname
 
 

Reply via email to