tag 368827 confirmed -moreinfo
thanks

Hi Helge,

Helge Kreutzmann [2006-06-16 16:46 +0200]:
> rc  postgresql               7.4.7-6sarge1  object-relational SQL database 
> management system
> ii  postgresql-8.1           8.1.4-2        object-relational SQL database, 
> version 8.1 serv
> rc  postgresql-client        7.4.7-6sarge1  front-end programs for PostgreSQL
> ii  postgresql-client-8.1    8.1.4-2        front-end programs for PostgreSQL 
> 8.1

Alright, as I suspected.

> So if I had dist-upgraded without side effects, I would have ended up
> on 8.1 as well? 

No, you would have ended up with postgresql-7.4 installed, the
existing cluster properly migrated, and the cruft from the sarge
packages removed.

> What I don't understand is why is the log rotation still active, if
> the package is removed?

The conffile for log rotation is still present, and both the old and
the new infrastructure use /var/log/postgresql for log files.

> But I see the problem here. You are not allowed to "mess" with other
> packages (from a POV of dpkg, 7.4 and 8.1 are distinct packages, not
> simply newer versions). But a solution should be found, for example I
> and other people sometimes test different services, to see how they
> work for a particular scenario. Since there are several databases in
> Debian, this testing might take some time. So in Sarge I could have
> tried 7.4, removed it, and then a different database but at some point
> after upgrading to Etch I read that 8.4 is vastly better and try that
> again. I think this is a valid scenario[1]. 

Ok, since you weren't the first who had this case, I agree that
something needs to be done about that.

> So I see five possibility (the favorite up front, the least favorite in
> the end):
> a) 8.1 is, despite the different package name, considered just a later
>    version (from the POV of policy). If, upon installation, 8.1 sees
>    the "cruft" from 7.4, it does the migration automatically (assuming
>    that 7.4(sarge) is not installed of course, but for this the conflict is
>    in place)

postgresql-8.1 is completely independent of postgresql-7.4, and I
would like to completely drop the knowledge (and code) to support the
old sarge layout at some point.

> b) 8.1 detects the broken logrotate upon installation and offers the
>    user to fix this (peferrably via debconf). This is how tetex is
>    dealing with similar problems (see the changelog or talk to Frank
>    Küster).

This seems like a horrible code duplication, given that the
transitional packages already take care of that.

> c) 8.1 detects the broken logrotate and informs the admin how to fix
>    it manually (again, via debconf but preferably including either d)
>    or e) as well)

This is my favourite option so far. What I would *really* want is a
Conflicts: field that says 'won't work even with the package's
conffile still in place'. Since we do not have that, my proposal is to
add a small check into postgresql-{7.4,8.1}'s preinst which
immediately fails if the old postgresql package is still present, and
tell the admin to either purge them first, or install the transitional
packages. This would avoid code duplication and more evil hacks, while
informing the admin about the situation rather than silently breaking.

Would that be ok for you?

Thank you,

Martin

-- 
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Attachment: signature.asc
Description: Digital signature

Reply via email to