Package: python-defaults Version: 2.5.4-9 Severity: minor Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu ubuntu-patch lucid
Hi dpkg-dev allows declaring information to copy in the source package control file (.dsc, Sources.gz) such as XS-Python-Version in any paragraph of debian/control, and similarly allows declaring information to copy in the binary package control file (DEBIAN/control, Packages.gz) in any paragraph of debian/control. That is, this debian/control file: Source: foo Build-Depends: bar XB-Python-Version: baz Package: coin XS-Python-Version: pouet would actually output a X-Python-Version field in source and binary package files. In the Debian Policy, the paragraphs of debian/control files are described individually: http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles So for instance Build-Depends might only appear in the first paragraph, and wont be taken into account if these appear in a later paragraph. I realize this request might seem overly pedantic, but I need this in policy to implement the proper behavior in tools such as dh_pysupport and dh_pycentral. One thing these typically are debian/control files starting with newlines. For instance, we got this bug in Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-central/+bug/507842 and the diff of the fix looks as follows: - local $/ = ""; # Grab until empty line open(CONTROL, "debian/control"); # Can't fail, dh_testdir has already been called - my $source = <CONTROL>; - close(CONTROL); - if ($source =~ m/^XS-Python-Version: \s*(.*)$/m) { + while (my $source = <CONTROL>) { + if ($source =~ m/^XS-Python-Version: \s*(.*)$/m) { $python_header = $1; chomp($python_header); $pyversions_field = convert_python_header($python_header); + } } + close(CONTROL); } this means that dh_pycentral will correctly skip newlines at the beginning of the debian/control files, but might pickup a XS-Python-Version: anywhere in debian/control. I would like to fix dh_pycentral and dh_pysupport (and perhaps other tools) to handle newlines at the beginning of debian/control and to read XS-PV from the first paragraph and from nowhere else and to read XB-PV from binary package paragraphs and from nowhere else. However I think this should be in policy first. I'm attaching a patch against latest python-defaults package. Thanks, -- Loïc Minier
>From 7fc9a00bec0ce36f8473650adf65bd8d0c3c5a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <l...@dooz.org> Date: Mon, 1 Feb 2010 11:58:06 +0100 Subject: [PATCH] Clarify the control paragraphs of XS- and XB-PV --- debian/python-policy.sgml | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/debian/python-policy.sgml b/debian/python-policy.sgml index 2676bf7..43b8cf5 100644 --- a/debian/python-policy.sgml +++ b/debian/python-policy.sgml @@ -421,9 +421,10 @@ import foo <heading>Specifying Supported Versions</heading> <p> The optional <tt>XS-Python-Version</tt> field - in <file>debian/control</file> specifies the versions of - Python supported by the source package. When not specified, it - defaults to all currently supported Python versions. + in the general paragraph (the first one, for the source package) of + <file>debian/control</file> specifies the versions of Python + supported by the source package. When not specified, it defaults to + all currently supported Python versions. It is notably used to track packages during Python transitions, and is also used by some packaging scripts to automatically @@ -445,7 +446,8 @@ XS-Python-Version: all across default version changes). </p> <p> - Your control file should also have a line: + The binary package paragraphs of your debian/control file should + also have a line: <example> XB-Python-Version: ${python:Versions} </example> -- 1.6.5