Bug#838112: uctodata: fails to upgrade from 'jessie' - trying to overwrite /etc/ucto/es.abr

Andreas Beckmann anbe at debian.org
Sun Jan 22 21:27:08 UTC 2017


On 2017-01-22 09:48, Adrian Bunk wrote:
> es.abr was a conffile in the jessie ucto, that needs additional treatment.
> 
> The solution might be using mv_conffile from dpkg-maintscript-helper(1) 
> in a .maintscript to move the conffile to the new name spa.abr and the 
> new package (es.abr is now a symlink), but Andreas should comment on 
> that since he knows this better.

TL;DR: You have an ambitious task before you.

Let me see if I understand what's going on.

Renaming conffiles and changing the owning package at the same time is a
PITA.
You add an extra point by making the old name a symlink to the new one,
owned by the new package

In jessie, everything in /etc/ucto was owned by ucto.
In sid, a lot more stuff is in /etc/ucto, and either owned by uctodata
or libucto2, a m-a:same library package. These come from 2 different
source packages.

Yuck. While putting conffiles in m-a:same packages is allowed, I highly
discourage this. Even if I haven't seen this fail once, yet. I'm just
afraid, someone has to clean up a mess caused by this at some point in
the future. and I'm afraid, I won't keep my fingers out of then :-(

Before we start: Are these really conffiles? Supposed to be modified by
the local admin? Or are these rather data files that are not supposed to
be updated locally? And would better live in /usr/share in that case?

And nearly everything from jessie's /etc/ucto content is now renamed and
a symlink.

Can't you just fork the project? I'd suggest 'hpgb' and then use
/etc/hpgb for the conffiles. Oh, I forgot: we are in freeze, so no new
source packages ...

Oh yeah, it well be a mess. But we will do it right. Including making
dpkg forget about the old conffiles.

Right now, all upgrade attempts from jessie to stretch should always
have failed, so there is no further messed up state inbetween that
should be supported for clean upgrades.

can we move the conffiles from libucto2 to a new package, e.g.
ucto-common (which would be either m-a:foreign or m-a:allowed, but I
always mess up these two, I need to look up what's right?

* Which version introduced the new layout?
* can you give me a list of
  + removed conffiles
  + renamed conffiles (old name, new name, new owning package, whether
they have a compat symlink, did the content change between jessie and sid)

Do you *really* need the compat symlinks?

OK, packaging is in git. Need to check whether I have write permissions
there ...

rough plan:

ucto uses d-m-h move-conffile (but provides no new version, so the old
conffile should "disappear" and dpkg should forget about it.
Maybe it's better to rm_conffile it instead.

uctodata will probably need a Conflicts against ucto (<< current+fixed~)


Andreas



More information about the debian-science-maintainers mailing list