Upcoming changes in sip 4.10

Torsten Marek shlomme at gmx.net
Sun Jan 31 20:56:20 UTC 2010

Hi all,

in my investigations, I've found the following packages (maintained by
one of you) that either depend on python-sip4 or build-depend on



I'd like to inform you about some of the changes we've made in order to
have the current and upcoming API breakages of sip be smoother than the
ones on the past---ideally, they should be handled with a binNMU.

The sip 4.10 uploads (currently in experimental) introduces the
following changes in the packaging:

* python-sip4 has been renamed python-sip
* python-sip4-dev and sip4 have been merged into python-sip-dev
* python-sip now provides the current APIs as virtual packages. 
  They are of the form sip-api-x.y, currently sip-api-7.0. There might
  be more than on API that is supported, but at least according to 
  current upstream practice, they will all have the same major number. 
  If a new package is built, it always uses the highest available API.
* the tool dh_sip provides an expansion for ${sip:Depends}, which is
always the highest available API

All old packages remain as transitional packages for the time being.

In order to adapt your packages, the following needs to be done:

* The only package you need to build-depend on is python-sip-dev in
order to have a proper build environment, using the appropriate version
* If you build debug packages, also pull in python-sip-dbg
* The only way to depend on the sip runtime package is by adding
${sip:Depends} to the dependencies of the packages. This will expand to
the current sip API (sip-api-7.0 right now). 
  This needs to be added to all arch:any packages that include a module
  that has been built using sip
* dh_sip needs to be called during the build process (directly after
dh_py{support,central} is a good place)
* debug packages only need to depend on python-sip-dbg if they have a
tight dependency on their non-debug variant (which they should have

Please do keep in mind that simply depending on python-qt4 because it
pulls in python-sip is not enough. This will not keep the packages from
crashing when a new version of PyQt4 and sip is installed, unless you
lock down the version of python-qt4 you depend on really tight---which
is exactly the way in which the old system failed. 

In the future, once all packages have been upgraded to the new scheme, a
new sip upload that introduces a new major API can be handled by simply
scheduling binNMUs for all packages that depend on the old sip-api-x.y
package (if the binding code doesn't need any updates, though in my
experience that shouldn't be happening that often).

python-qt{3,4} and Qscintilla2 have already been updated to the new
scheme (latest versions on experimental), please have a look at them if
anything I said is unclear. Otherwise, please do not hesitate to ask me!

I would like to push the packages to unstable as soon as possible, i.e.
within the next days. python-sip4 4.10 will also break the current
versions of all packages I listed above so that we can avoid the flurry
of "X crashes with new version of python-qt4" bug reports.

I would appreciate it if you could update your packages accordingly. If
you don't have time, please tell me and I will create patches (and
upload NMUs, if needed) for your packages.

Thanks & best regards,


.: Torsten Marek
.: http://shlomme.diotavelli.net
.: torsten at diotavelli.net -- GnuPG: 1024D/A244C858

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20100131/9b440fbb/attachment.pgp>

More information about the debian-science-maintainers mailing list