Debian Bug report logs - #585844
dpkg-cross: Please add version mangling

Package: dpkg-cross; Maintainer for dpkg-cross is Debian Embedded Group <debian-embedded@lists.debian.org>; Source for dpkg-cross is src:dpkg-cross.

Reported by: Simon Richter <sjr@debian.org>

Date: Mon, 14 Jun 2010 09:36:01 UTC

Severity: wishlist

Done: Neil Williams <codehelp@debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, sjr@debian.org, Debian Embedded Group <debian-embedded@lists.debian.org>:
Bug#585844; Package dpkg-cross. (Mon, 14 Jun 2010 09:36:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Simon Richter <sjr@debian.org>:
New Bug report received and forwarded. Copy sent to sjr@debian.org, Debian Embedded Group <debian-embedded@lists.debian.org>. (Mon, 14 Jun 2010 09:36:04 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Simon Richter <sjr@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: dpkg-cross: Please add version mangling
Date: Mon, 14 Jun 2010 11:34:21 +0200
Package: dpkg-cross
Version: 2.5.8
Severity: wishlist

Hi,

When resolving the "duplicate Provides" issue in a repository of
pre-built -cross packages, I've come across the problem that it's
difficult to generate packages with an increased version number.

It would be nice to have a way to append things to the version number,
both for the Version field and for equal-version dependencies (so -dev
packages can be transformed); the caller can be expected to provide a
list of packages where dependency versions should be mangled.

Use case:

 - zlib1g-armel-cross and zlib1g-dev-armel-cross exist in version
   1:1.2.3.4.dfsg-3, with the "duplicate Provides" bug, and zlib1g-dev
   declares a dependency on "zlib1g-armel-cross (= 1:1.2.3.4.dfsg-3)".

 - User wants to build a version "1:1.2.3.4.dfsg-3++dpkg-cross1" of both
   packages.

 - The resulting -dev package needs to declare a dependency on
   "zlib1g-dev-armel-cross (= 1:1.2.3.4.dfsg-3++dpkg-cross1)".

 - The dependency from zlib1g-armel-cross to libc6-armel-cross does not
   need to be adjusted.

The user can then call

dpkg-cross -a armel --append-version "++dpkg-cross1" -b zlib1g_1%3a1.2.3.4.dfsg-3_armel.deb
dpkg-cross -a armel --append-version "++dpkg-cross1" --mangle-dependency-version zlib1g -b zlib1g-dev1%3a1.2.3.4.dfsg-3_armel.deb

Obviously, the option names are not ideal.

   Simon 

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dpkg-cross depends on:
ii  binutils-multiarch            2.20.1-10  Binary utilities that support mult
ii  debconf [debconf-2.0]         1.5.32     Debian configuration management sy
ii  dpkg-dev                      1.15.7.2   Debian package development tools
ii  libconfig-auto-perl           0.20-2     Magical config file parser
ii  libdebian-dpkgcross-perl      2.5.8      functions to aid cross-compiling D
ii  perl                          5.10.1-13  Larry Wall's Practical Extraction 

Versions of packages dpkg-cross recommends:
ii  fakeroot                      1.14.4-1   Gives a fake root environment

dpkg-cross suggests no packages.




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Embedded Group <debian-embedded@lists.debian.org>:
Bug#585844; Package dpkg-cross. (Wed, 23 Jun 2010 15:57:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Goswin von Brederlow <goswin-v-b@web.de>:
Extra info received and forwarded to list. Copy sent to Debian Embedded Group <debian-embedded@lists.debian.org>. (Wed, 23 Jun 2010 15:57:03 GMT) Full text and rfc822 format available.

Message #10 received at submit@bugs.debian.org (full text, mbox):

From: Goswin von Brederlow <goswin-v-b@web.de>
To: Simon Richter <sjr@debian.org>
Cc: 585844@bugs.debian.org, Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Re: Bug#585844: dpkg-cross: Please add version mangling
Date: Wed, 23 Jun 2010 17:56:16 +0200
Simon Richter <sjr@debian.org> writes:

> Package: dpkg-cross
> Version: 2.5.8
> Severity: wishlist
>
> Hi,
>
> When resolving the "duplicate Provides" issue in a repository of
> pre-built -cross packages, I've come across the problem that it's
> difficult to generate packages with an increased version number.
>
> It would be nice to have a way to append things to the version number,
> both for the Version field and for equal-version dependencies (so -dev
> packages can be transformed); the caller can be expected to provide a
> list of packages where dependency versions should be mangled.
>
> Use case:
>
>  - zlib1g-armel-cross and zlib1g-dev-armel-cross exist in version
>    1:1.2.3.4.dfsg-3, with the "duplicate Provides" bug, and zlib1g-dev
>    declares a dependency on "zlib1g-armel-cross (= 1:1.2.3.4.dfsg-3)".
>
>  - User wants to build a version "1:1.2.3.4.dfsg-3++dpkg-cross1" of both
>    packages.
>
>  - The resulting -dev package needs to declare a dependency on
>    "zlib1g-dev-armel-cross (= 1:1.2.3.4.dfsg-3++dpkg-cross1)".
>
>  - The dependency from zlib1g-armel-cross to libc6-armel-cross does not
>    need to be adjusted.
>
> The user can then call
>
> dpkg-cross -a armel --append-version "++dpkg-cross1" -b zlib1g_1%3a1.2.3.4.dfsg-3_armel.deb
> dpkg-cross -a armel --append-version "++dpkg-cross1" --mangle-dependency-version zlib1g -b zlib1g-dev1%3a1.2.3.4.dfsg-3_armel.deb

What if you have libc6 with "++dpkg-cross23" and zlib1g with
"++dpkg-cross42" and want zlib1g-dev with "++dpkg-cross666"? The version
to append would be specific for each package. That quickly gets out of
hand.

> Obviously, the option names are not ideal.

In ia32-apt-get / apt-ma-emu I always mangle the version to include the
version of the mangling script, because:

1) That way updating the mangling script (dpkg-cross in this case) and
converting the zlib1g-dev again would also require converting zlib1g
itself again. Versioned depends with = require that both packages are
converted by the same version of dpkg-cross.

2) Converting a package with a newer version of dpkg-cross results in a
higher version of the converted package. That means that the new package
can be put into an apt repository and will update on the users
system. No need to reinstall the package manually.

3) No list of packages needed.

I also use a ~ in the mangling so the mangled version is always lower
than the original. The reason for that is that mangling a binary will
not change the name of the package and the original package should be
prefered. This is specific to multiarch use though.

Altogether the zlib1g version would be 1:1.2.3.4.dfsg-3~dpkg-cross.17.

When I fix a bug in the mangling tool (dpkg-cross in your case) I bump
the version, compile, install and then converted package automatically
get a new version. The drawback is that raising the version in dpkg-cross
means packages must be converted again to ensure version
compatibility. Every time I update ia32-apt-get / apt-ma-emu the next
apt-get upgrade always reinstalls all -cross packages that are
installed. But that is the only simple solution I found to get fixes in
the converter to get applied to the installed packages.

If you really need to reconvert a package with the same orig deb and
dpkg-cross version then a minor revision could be added much like you
suggested. But given the complexity that easily leads to I would rather
bump the dpkg-cross version instead when needed.

Note: In ia32-apt-get / apt-ma-emu I use another ~ for developement
builds (24 -> 25~1 -> 25~2 -> 25~3 ...) and then drop that for the final
build (25). Otherwise the releases would show many gaps in their
versions. Just thinking about this you can even automate it so every
build of an UNRELEASED version bumps the version automatically.

MfG
        Goswin




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Embedded Group <debian-embedded@lists.debian.org>:
Bug#585844; Package dpkg-cross. (Wed, 23 Jun 2010 15:57:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Goswin von Brederlow <goswin-v-b@web.de>:
Extra info received and forwarded to list. Copy sent to Debian Embedded Group <debian-embedded@lists.debian.org>. (Wed, 23 Jun 2010 15:57:05 GMT) Full text and rfc822 format available.

Bug No longer marked as found in versions dpkg-cross/2.5.8. Request was from Neil Williams <codehelp@debian.org> to control@bugs.debian.org. (Sun, 31 Oct 2010 12:15:06 GMT) Full text and rfc822 format available.

Reply sent to Neil Williams <codehelp@debian.org>:
You have taken responsibility. (Sun, 31 Oct 2010 12:15:12 GMT) Full text and rfc822 format available.

Notification sent to Simon Richter <sjr@debian.org>:
Bug acknowledged by developer. (Sun, 31 Oct 2010 12:15:12 GMT) Full text and rfc822 format available.

Message #22 received at 585844-done@bugs.debian.org (full text, mbox):

From: Neil Williams <codehelp@debian.org>
To: 585844-done@bugs.debian.org
Cc: control@bugs.debian.org
Subject: Unnecessary workaround
Date: Sun, 31 Oct 2010 12:11:17 +0000
[Message part 1 (text/plain, inline)]
notfound 585844 2.5.8
quit

This only arose as a result of a different bug which is now fixed.
(#578613)

In the absence of any other reason to implement this functionality, I'm
closing the bug.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

[Message part 2 (application/pgp-signature, inline)]

Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Mon, 29 Nov 2010 07:32:14 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Sat Apr 19 23:35:16 2014; Machine Name: beach.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.