[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

python2.6 related changes / note to my sponsorees

We have functional python2.6 in experimental since few days (python-support in
experimental has 2.6 in supported versions as well, BTW) and (future) 2.6
transition will require some changes (other than checking compatibility with
new Python version or building new extensions) in debian/ directory so
I'll just list them here (instead of repeating myself in RFS replies).

* python2.6 is using dist-packages instead of site-packages and it installs to
  /usr/local by default:

  + add "--install-layout=deb" option to setup.py call in debian/rules (or
    py_setup_install_args from python.mk, see below).
    Note that you can do it now, no need to wait for python2.6 to hit unstable
    or be added to supported versions)
  + if you'll use above option, remember to bump minimum required
    python{,-all,all-dev,2.4,2.5} version:
    for python{,-all,all-dev} use: (>= 2.5.4-1~)
    for python2.4: (>= 2.4.6-2~exp1)
    for python2.5: (>= 2.5.3-1~exp1)
* if you need to change something in {site,dist}-packages after setup.py call
  (remember to *never* change these files after dh_py{support,central} command!):

  + include /usr/share/python/python.mk at the top of debian/rules
  + for default Python veresion, use:

      package_dir/$(call py_libdir,$(shell pyversions -d))/yourmodule/files

    as a path (which will be used by mv/rm/sed/etc.)
  + for any other version use:

      package_dir/$(call py_libdir,$version)/yourmodule/files

  + bump minimum required python{,-all,-all-dev} version to: >= 2.5.4-1~

* if your package generates docs using Sphinx: in python-sphinx 0.6-1 (which I
  will upload to unstable this week) all themes (including .js and .css files)
  will be available in /usr/share/sphinx directory (if you're symlinking
  some files from python-sphinx package, you'll not need to use
  {site,dist,pymodules,pyshared} directory anymore)

* I will no longer sponsor packages with "current" keyword in XS-Python-Version
  [Joss: if you're reading this email, please skip next 2 lines]
  Note that you can use XS-Python-Version in pysupport based packages as well,
  and I prefer it over ugly pyversions, BTW.
  If your package really needs "current" keyword, please let me know and we'll
  do something about it (just like I took away the "but my package is using the
  same namespace as another python-central based package and thus I cannot
  convert to python-support" argument from one of my sponsorees recently)

* a propos "current", if you're packaging Python application, try to install
  its modules in private directory (--install-lib=/usr/share/foo) if these
  modules are not useful outside the app. (and thus there's no need to pollute
  the global namespace)

  Note that (if there's no name conflict[1]) you can also use
  --install-scripts=/usr/share/foo for binary scripts and then
  dh_link usr/share/foo/bar.py usr/bin/baz
  (otherwise you'll have to patch the binary to change sys.path)

  [1] if there is, just rename the binary in private directory and then symlink
      it to /usr/bin/ as in above example

Few other hints for people converting to python-support:
* if you don't rename egg-info directory anymore im debian/rules (don't delete
  this directory, it's a compromise to make Egg lovers happy ;) remember to
  have at least python-support (>= 0.6.4) in Depends(-Indep)
* python-central is partially fixed in 0.6.10 so most of the packages don't
  need preinst maintainer script, remember to test the upgrade of your
  package from previous version *and* from the one in Lenny, though.
  Make sure there are no leftovers in
  /usr/lib/python2.{4,5}/site-packages/yourmodule - specially if the list
  of files provided by your package changed from one pycentral based
  package to another pycentral based one or if you used "nomove" at some point

For DPMT / PAPT members:
* for NEW packages try to use TODO wiki pages as other DDs are crying that I'm
  stealing all the sponsorees ;-) (all other packages can go directly to
  my Debian/RFS mailbox, as usual)


* Please don't send me mails with multiple RFSs in one mail - use one
  mail per package (the Subject header is most important, mail content can be
  empty),  see my FAQ (link in the signature) for more details


Attachment: pgpG0HuMZbu3I.pgp
Description: PGP signature

Reply to: