Debian Bug report logs - #495394
perl: Install of different versions in parallel alternatives (libperl and PostgreSQL)

Package: libperl5.10; Maintainer for libperl5.10 is Niko Tyni <ntyni@debian.org>;

Reported by: Peter Niebling <peter@popsel.de>

Date: Sat, 16 Aug 2008 23:57:01 UTC

Severity: important

Tags: confirmed

Reply or subscribe to this bug.

Toggle useless messages

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


Report forwarded to debian-bugs-dist@lists.debian.org, peter@popsel.de, Brendan O'Dea <bod@debian.org>:
Bug#495394; Package perl. Full text and rfc822 format available.

Acknowledgement sent to Peter Niebling <peter@popsel.de>:
New Bug report received and forwarded. Copy sent to peter@popsel.de, Brendan O'Dea <bod@debian.org>. Full text and rfc822 format available.

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

From: Peter Niebling <peter@popsel.de>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: perl: Install of diffrent versions in parallel alternatives
Date: Sun, 17 Aug 2008 01:54:58 +0200
Package: perl
Version: 5.8.8-12
Severity: wishlist

It should be possible to have different perl versions installed in parallel.

This concerns also perl-base and perl-modules.

Actually, postgresql-plperl-8.1 is going to be removed when upgrading perl to 5.10.
This MUST NOT happen.

The reason:
libperl5.8 depends on perl-base (= 5.8.8-12)
libperl5.10 depends on perl-base (= 5.10.0-13)

The solution:
perl, perl-base and perl-modules (maybe others) should have versioned names and corresponding metapackages.
The dependencies in other packages have to reflect the changes as well.

There are only a few files under /usr/bin which have to wrappers to alternatives.

Am i wrong ?

Thx in advance
and for doing a good job on my favorite distribution!

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/2 CPU cores)
Locale: LANG=de_DE, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages perl depends on:
ii  libc6                         2.7-13     GNU C Library: Shared libraries
ii  libdb4.6                      4.6.21-10  Berkeley v4.6 Database Libraries [
ii  libgdbm3                      1.8.3-3    GNU dbm database routines (runtime
ii  perl-base                     5.8.8-12   The Pathologically Eclectic Rubbis
ii  perl-modules                  5.8.8-12   Core Perl modules

Versions of packages perl recommends:
ii  perl-doc                      5.8.8-12   Perl documentation

Versions of packages perl suggests:
pn  libterm-readline-gnu-perl | l <none>     (no description available)

-- no debconf information




Information forwarded to debian-bugs-dist@lists.debian.org, Brendan O'Dea <bod@debian.org>:
Bug#495394; Package perl. Full text and rfc822 format available.

Acknowledgement sent to "Brendan O'Dea" <bod@debian.org>:
Extra info received and forwarded to list. Copy sent to Brendan O'Dea <bod@debian.org>. Full text and rfc822 format available.

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

From: "Brendan O'Dea" <bod@debian.org>
To: "Peter Niebling" <peter@popsel.de>, 495394@bugs.debian.org
Subject: Re: Bug#495394: perl: Install of diffrent versions in parallel alternatives
Date: Sun, 17 Aug 2008 12:17:51 +1000
reassign 495394 postgresql-plperl-8.1
thanks

On Sun, Aug 17, 2008 at 9:54 AM, Peter Niebling <peter@popsel.de> wrote:
> It should be possible to have different perl versions installed in parallel.
> This concerns also perl-base and perl-modules.

This is somewhat more complicated than you might expect, given that it
would require not only multiple versions of the Perl package set, but
also of all binary modules and a number of pure Perl modules.

> Actually, postgresql-plperl-8.1 is going to be removed when upgrading perl to 5.10.
> This MUST NOT happen.
>
> The reason:
> libperl5.8 depends on perl-base (= 5.8.8-12)
> libperl5.10 depends on perl-base (= 5.10.0-13)
>
> The solution:
> perl, perl-base and perl-modules (maybe others) should have versioned names and corresponding metapackages.
> The dependencies in other packages have to reflect the changes as well.

Actually, the solution is that postgresql-plperl-8.1 needs to be
re-built for 5.10.

> There are only a few files under /usr/bin which have to wrappers to alternatives.

Some years ago there were multiple Perl packages, with /usr/bin/perl
managed by update-alternatives.  There were a number of problems with
this situation, not least of which was that using update-alternatives,
which requires /usr/bin/perl to operate, to manage that same pathname
caused some entertaining failures during upgrades.

Reassigning to postgresql-plperl-8.1.




Bug reassigned from package `perl' to `postgresql-plperl-8.1'. Request was from "Brendan O'Dea" <bod@debian.org> to control@bugs.debian.org. (Sun, 17 Aug 2008 02:21:04 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Martin Pitt <mpitt@debian.org>:
Bug#495394; Package postgresql-plperl-8.1. Full text and rfc822 format available.

Acknowledgement sent to Peter Eisentraut <petere@debian.org>:
Extra info received and forwarded to list. Copy sent to Martin Pitt <mpitt@debian.org>. Full text and rfc822 format available.

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

From: Peter Eisentraut <petere@debian.org>
To: "Brendan O'Dea" <bod@debian.org>
Cc: 495394@bugs.debian.org
Subject: Re: Bug#495394: perl: Install of diffrent versions in parallel alternatives
Date: Sun, 17 Aug 2008 12:02:50 +0300
> Actually, the solution is that postgresql-plperl-8.1 needs to be
> re-built for 5.10.

That is not possible, because postgresql-plperl-8.1 is part of etch.

What is in perl-base that libperl needs anyway?




Information forwarded to debian-bugs-dist@lists.debian.org, Martin Pitt <mpitt@debian.org>:
Bug#495394; Package postgresql-plperl-8.1. Full text and rfc822 format available.

Acknowledgement sent to "Brendan O'Dea" <bod@debian.org>:
Extra info received and forwarded to list. Copy sent to Martin Pitt <mpitt@debian.org>. Full text and rfc822 format available.

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

From: "Brendan O'Dea" <bod@debian.org>
To: "Peter Eisentraut" <petere@debian.org>
Cc: 495394@bugs.debian.org
Subject: Re: Bug#495394: perl: Install of diffrent versions in parallel alternatives
Date: Mon, 18 Aug 2008 00:23:57 +1000
On Sun, Aug 17, 2008 at 7:02 PM, Peter Eisentraut <petere@debian.org> wrote:
>> Actually, the solution is that postgresql-plperl-8.1 needs to be
>> re-built for 5.10.
>
> That is not possible, because postgresql-plperl-8.1 is part of etch.

Ah, it was not clear that you were trying to do a partial upgrade.  If
you are trying to mix lenny/sid Perl with etch Postgres, then you will
need to manually rebuild at least one.

> What is in perl-base that libperl needs anyway?

A Perl interpreter requires at least some of the standard library to
run any non-trivial program.




Information forwarded to debian-bugs-dist@lists.debian.org:
Bug#495394; Package postgresql-plperl-8.1. Full text and rfc822 format available.

Acknowledgement sent to Martin Pitt <mpitt@debian.org>:
Extra info received and forwarded to list. Full text and rfc822 format available.

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

From: Martin Pitt <mpitt@debian.org>
To: Peter Eisentraut <petere@debian.org>, 495394@bugs.debian.org, Brendan O'Dea <bod@debian.org>
Subject: Re: Bug#495394: perl: Install of diffrent versions in parallel alternatives
Date: Mon, 1 Sep 2008 21:43:45 +0200
[Message part 1 (text/plain, inline)]
reassign 495394 libperl5.10
severity important
thanks

Peter Eisentraut [2008-08-17 12:02 +0300]:
> > Actually, the solution is that postgresql-plperl-8.1 needs to be
> > re-built for 5.10.
> 
> That is not possible, because postgresql-plperl-8.1 is part of etch.

Indeed this is a tricky situation. -8.1 is *only* in etch, lenny has
-8.3 (which of course uses Perl 5.10). The intended procedure is that
the -8.1 packages stay around, the user installs -8.3, uses
pg_upgradecluster for doing the upgrade (after the dist-upgrade to
lenny), and if all is well, removes the psql 8.1 related packages
(this is explained in debconf, README, manpages, etc.)

So we can't rebuild -8.1 in etch against 5.10, and can't provide an
-8.1 package in lenny against 5.10, since we can't support old
versions forever.

> What is in perl-base that libperl needs anyway?

I actually wondered about the same. The entire idea of SONAMEs is that
you can install multiple libfoo* in parallel. In this case you cannot
install libperl5.8 and libperl5.10 in parallel, since they both have a
strict versioned dependency on perl-base.

As a shared library, ideally libperl5.x would only depend on the
shared libs it links to, i. e. libc6. If the library really calls
programs from perl-base, then maybe the dependency could at least be
unversioned?

This doesn't only break older postgresql versions, but any third-party
or locally installed package which links against libperl5.8, thus
raising the severity (I was inclined to set it to serious, but not
without discussing it first).

Thanks for any insight,

Martin

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
[signature.asc (application/pgp-signature, inline)]

Bug reassigned from package `postgresql-plperl-8.1' to `libperl5.10'. Request was from Martin Pitt <mpitt@debian.org> to control@bugs.debian.org. (Mon, 01 Sep 2008 19:45:06 GMT) Full text and rfc822 format available.

Severity set to `important' from `wishlist' Request was from Martin Pitt <mpitt@debian.org> to control@bugs.debian.org. (Tue, 02 Sep 2008 05:57:02 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Brendan O'Dea <bod@debian.org>:
Bug#495394; Package libperl5.10. Full text and rfc822 format available.

Acknowledgement sent to Niko Tyni <ntyni@debian.org>:
Extra info received and forwarded to list. Copy sent to Brendan O'Dea <bod@debian.org>. Full text and rfc822 format available.

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

From: Niko Tyni <ntyni@debian.org>
To: Martin Pitt <mpitt@debian.org>, 495394@bugs.debian.org
Cc: Peter Eisentraut <petere@debian.org>
Subject: Re: Bug#495394: perl: Install of diffrent versions in parallel alternatives
Date: Sat, 13 Sep 2008 14:30:25 +0300
On Mon, Sep 01, 2008 at 09:43:45PM +0200, Martin Pitt wrote:
> reassign 495394 libperl5.10
> severity important
> thanks
> 
> Peter Eisentraut [2008-08-17 12:02 +0300]:
> > > Actually, the solution is that postgresql-plperl-8.1 needs to be
> > > re-built for 5.10.
> > 
> > That is not possible, because postgresql-plperl-8.1 is part of etch.
> 
> Indeed this is a tricky situation. -8.1 is *only* in etch, lenny has
> -8.3 (which of course uses Perl 5.10). The intended procedure is that
> the -8.1 packages stay around, the user installs -8.3, uses
> pg_upgradecluster for doing the upgrade (after the dist-upgrade to
> lenny), and if all is well, removes the psql 8.1 related packages
> (this is explained in debconf, README, manpages, etc.)
> 
> So we can't rebuild -8.1 in etch against 5.10, and can't provide an
> -8.1 package in lenny against 5.10, since we can't support old
> versions forever.

Sorry for the delay, I was hoping for Brendan to carry on with this.
I certainly agree that this is a problem for the upgrades.

> > What is in perl-base that libperl needs anyway?

For starters, on !i386 /usr/lib/libperl.so.5.x is actually in perl-base.
The i386 architecture is a special case because dynamic linking of
/usr/bin/perl would cause a performance hit due to register starvation
(AIUI), so the perl binary there is statically linked against libperl.

As there's nothing to be done about this for Etch anymore, what is needed
is a libperl5.10 package that actually contains /usr/lib/libperl.so.5.10
and can be installed on an Etch system without upgrading perl-base.

I think this is doable. It would require making the Lenny perl-base
package (which is Essential:yes) Pre-Depend on libperl5.10 (at least
on !i386).

However, as Brendan said, a Perl interpreter requires at least some of the
standard library to run any non-trivial program. So the next thing would
be to move all of the modules in perl-base into libperl5.10, and
leave perl-base with (approximately) just the /usr/bin/perl binary.

Getting the rest of the standard library co-installable means a
further step in complexity: we'd need something like perl-5.10 and
perl-modules-5.10 with the actual content, and perl and perl-modules
depending on those. There are probably unexpected traps that come
with this.

> As a shared library, ideally libperl5.x would only depend on the
> shared libs it links to, i. e. libc6. If the library really calls
> programs from perl-base, then maybe the dependency could at least be
> unversioned?

As perl-base is Essential:yes, that would be a no-op.

> This doesn't only break older postgresql versions, but any third-party
> or locally installed package which links against libperl5.8, thus
> raising the severity (I was inclined to set it to serious, but not
> without discussing it first).

I think this is all too intrusive for Lenny at this point, but the
release team has the final call on the 'serious' part of course.
I might be willing to implement the libperl5.10/perl-base reworking
given their (and Brendan's) blessing, but the rest makes me uneasy.

Brendan, please let me know your opinion on this.
-- 
Niko Tyni   ntyni@debian.org




Changed Bug title to 'perl: Install of different versions in parallel alternatives (libperl and PostgreSQL)' from 'perl: Install of diffrent versions in parallel alternatives' Request was from Dominic Hargreaves <dom@earth.li> to control@bugs.debian.org. (Sun, 31 Mar 2013 22:57:04 GMT) Full text and rfc822 format available.

Added tag(s) confirmed. Request was from Dominic Hargreaves <dom@earth.li> to control@bugs.debian.org. (Sun, 31 Mar 2013 22:57:05 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: Wed Apr 16 19:38:13 2014; Machine Name: buxtehude.debian.org

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