Hi Scott, First, a disclaimer: I'm not a python expert or a member of the release team, so please take anything I say with a grain of salt. This review is mostly meant to help get this unstuck.
Scott Kitterman wrote: > - Match the version number for python and python2.7.3. Although this is > costmetic, it does cause confusion. This is why the unblock is blocked by #683053, right? > - 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. The diff is (including changelog and tests) 45 files changed, 466 insertions(+), 205 deletions(-) including dh_python2 | 52 +++++++++++++------- As we've seen shebang normalization is not without complications. So at this stage in the freeze, this wouldn't be the usual candidate for an unblock. On the other hand: (1) The impact is mostly at build time for rbuilddeps, and this change has been in sid for half a year already. Any damage it causes has probably already been done. :) (2) Worse, most packages are built in unstable and only migrate to testing later, except for tpu, spu, and security uploads. Some source packages could be relying on the effect of this upload already and in that case _not_ migrating would just make trouble for stable maintenance and security updates. (3) On the bright side, it's had half a year of testing. So I am (reluctantly) in favor of including most of these changes in wheezy, at least in principle. On to the diff. [...] > --- 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}) [... etc ...] > -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~) Not currently satisfied by python2.7 in wheezy. Would a tpu upload that makes the other changes but leaves this one out make sense to you? Then the bulk of this upload could cleanly migrate to wheezy and the python2.7 update could be considered separately and still could happen if it seems appropriate. > --- 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 Sure. [...] > --- 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()] That's * 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 Do any packages in wheezy use these envvars? What will happen if they are rebuilt against python-defaults from wheezy? [...] > --- 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 [...] > @@ -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))) If I understand #625740 correctly, without this change, dh_python2 generates "python2.6 | python2.7" dependencies which apt (sometimes?) takes as defaulting to python2.6. I think this change should be included in wheezy. [...] > @@ -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) [...] Shebang rewriting changes. I assume wheezy should have them, since there isn't time to track down rbuilddeps that might be relying on this for appropriate shebangs. > --- 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 [...] > @@ -41,7 +42,7 @@ > ;\s* > (?P<standard>PEP386)? # PEP-386 mode > \s* > - (?P<rules>s/.*)? # translator rules > + (?P<rules>(?:s|tr|y).*)? # translator rules > )? Do source packages in wheezy use this feature? [...] > +++ python-defaults-2.7.3/dh_python2 2012-07-26 18:26:10.000000000 -0400 [...] > @@ -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) Makes sense. [...] > --- 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 These changes look fine. [...] > --- 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 $< > $@ Doesn't seem necessary for wheezy. [...] > --- 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 [etc] > --- 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') Am I correct in guessing these are needed in wheezy? > 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"); For #670418. Makes sense. [...] > --- 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 Thanks for including tests along with the fixes. \o/ To summarize: most of this looks good. I think it would be best to decouple all these good changes from the bump to the required python2.7 version to make the release team's life easier. (They can still happen in separate tpu uploads or a tpu upload followed by an unblock if both approved.) Regards, Jonathan -- To UNSUBSCRIBE, email to debian-release-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20121209202523.GA3740@elie.Belkin