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

Andreas Beckmann anbe at debian.org
Tue Jan 24 22:48:15 UTC 2017


Please continue discussion in this *NEW* bug.

On 2017-01-24 23:25, Maarten van Gompel wrote:
> Hi Andreas, Mattia,
> 
> Quoting Andreas Beckmann (2017-01-24 19:04:24)
>>>
>>> Oops... Well spotted, I just fixed it in git, but it is probably overkill to prepare/upload a new release just
>>> for that now I guess?
>>
>> Correct. But let me see what else I found:
>>
>> jessie-> sid upgrades:
>>
>> ucto.maintscript is missing, doing rm_conffile on the conffiles shipped
>> in jessie (use 0.9.6-2~ as prior version, if this gets fixed in -2).
>> If there was a post-jessie version shipping more conffiles in /etc,
>> clean them up as well.
>>
>>   ucto: obsolete-conffile /etc/ucto/exotic-eos.eos
>>   ucto: obsolete-conffile /etc/ucto/nl_afk.abr
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-nl
>>   ucto: obsolete-conffile /etc/ucto/smiley.rule
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-it
>>   ucto: obsolete-conffile /etc/ucto/standard-eos.eos
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-sv
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-fr
>>   ucto: obsolete-conffile /etc/ucto/exotic-quotes.quote
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-nl-twitter
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-es
>>   ucto: obsolete-conffile /etc/ucto/url.rule
>>   ucto: obsolete-conffile /etc/ucto/e-mail.rule
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-nl-sonarchat
>>   ucto: obsolete-conffile /etc/ucto/es.abr
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-fy
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-de
>>   ucto: obsolete-conffile /etc/ucto/tokconfig-en
>>   ucto: obsolete-conffile /etc/ucto/ligatures.filter
>>   ucto: obsolete-conffile /etc/ucto/standard-quotes.quote
> 
> I think I get it. Because these moved to uctodata, which did not exist yet for
> jessie (before the split), the config files are owned by ucto and uctodata can't clean
> it. Hadn't thought of that yet. I added an ucto.maintscript now for 0.9.6-2 (in
> git).

Theoretically making uctodata cleaning them up, too, is possible, but
the tasks in uctodata are already "interesting" enough. And ucto is not
going to be removed on the jessie->stretch upgrade.

>> frog looks fine
>>
>> stretch -> sid upgrades:
>>
>>   libucto2:amd64: obsolete-conffile /etc/ucto/textcat.cfg
> 
> added
> 
>>
>>   uctodata: obsolete-conffile /etc/ucto/spa.abr
>>   uctodata: obsolete-conffile /etc/ucto/por.abr
>>   uctodata: obsolete-conffile /etc/ucto/nld_afk.abr
>>
> 
> added
> 
>> frog looks fine, too
>>
>>
>> That's not RC, the upgrades went smooth, but it would still be great to
>> get this cleaned up properly.
> 
> I'm glad it went smooth in spite of this. Hopefully the next releases will
> clean it up for good.
> 
>>
>> But lets take a detailed look what happened here:
>>
>>   Unpacking uctodata (0.4-1) over (0.3.1-1) ...
>>   dpkg: warning: unable to delete old directory '/etc/ucto': Directory
>> not empty
>>   Setting up uctodata (0.4-1) ...
>>   Obsolete conffile /etc/ucto/es.abr has been modified by you.
>>   Saving as /etc/ucto/es.abr.dpkg-bak ...
>>   Removing obsolete conffile /etc/ucto/exotic-eos.eos ...
>>   Removing obsolete conffile /etc/ucto/exotic-quotes.quote ...
>>   Removing obsolete conffile /etc/ucto/ligatures.filter ...
>>   Obsolete conffile /etc/ucto/nl_afk.abr has been modified by you.
>>   Saving as /etc/ucto/nl_afk.abr.dpkg-bak ...
>>   Obsolete conffile /etc/ucto/pt.abr has been modified by you.
>>   Saving as /etc/ucto/pt.abr.dpkg-bak ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-deu ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-eng ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-spa ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-fra ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-fry ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-ita ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-nld ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-nld-sonarchat ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-nld-twitter ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-nld-withplaceholder ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-por ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-rus ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-swe ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-tur ...
>>   Processing triggers for libc-bin (2.24-9) ...
>>
>> You probably shouldn't call rm_conffile on the symlinks owned by
>> uctodata - these are no conffiles, but you seem to confuse dpkg by doing
>> this. Removing the conffiles from jessie is better left to
>> ucto.maintscript.
> 
> But before these were symlinks in uctodata, they were normal files in
> uctodata...  Only the 0.3.1 release introduced the symlinks (for a very short
> while since it was only accepted not so long ago).. Not sure how to make the
> distinction.

Hmm, interesting ... how many (and which) conffiles in uctodata (not the
ones from ucto) have become symlinks later? Which of these have been in
ucto previously?

Given that dpkg is a bit buggy in that case, maybe we have to go back to
manually maintained maintainer scripts, for these files.

Perferable solution:
Pre-depends: dpkg (>= $FIXED)

if that doesn't work out in time:

For the preinst:
if [ ! -h $file ]; then dpkg_maintscript_helper rm_conffile ...; fi
#DEBHELPER#

for the postinst:
#DEBHELPER#
if [ "$1" = "configure" ]; then
  for crap in /etc/ucto/*.dpkg-bak ; do
    if [ -h "$crap" ]; rm -fv "$crap" ; fi
  done
fi

Only 3 old releases of uctodata, these upgrade paths can be tested
manually. Wait 4, including 0.4-1

> 
>> I think you found a bug in dpkg here :-)
> 
>>
>>   Preparing to unpack .../libucto2_0.9.6-1_amd64.deb ...
>>   Unpacking libucto2:amd64 (0.9.6-1) over (0.9.5-1) ...
>>   dpkg: warning: unable to delete old directory '/etc/ucto': Directory
>> not empty
>>   Setting up libgomp1:amd64 (6.3.0-4) ...
>>   Setting up libxml2:amd64 (2.9.4+dfsg1-2.2) ...
>>   Processing triggers for libc-bin (2.24-9) ...
>>   Setting up libucto2:amd64 (0.9.6-1) ...
>>   Removing obsolete conffile /etc/ucto/e-mail.rule ...
>>   Removing obsolete conffile /etc/ucto/smiley.rule ...
>>   Removing obsolete conffile /etc/ucto/url.rule ...
>>   Removing obsolete conffile /etc/ucto/standard-eos.eos ...
>>   Removing obsolete conffile /etc/ucto/standard-quotes.quote ...
>>   Removing obsolete conffile /etc/ucto/tokconfig-generic ...
>>   Processing triggers for libc-bin (2.24-9) ...
>>
>>
>> libucto2.maintscript is missing this line:
>>
>> rm_conffile /etc/ucto/tokconfig-generic 0.9.6-2~
> 
> Really? There's a line "rm_conffile /etc/ucto/tokconfig-generic 0.9.6~"
> since the first commit. And it does say "Removing obsolete conffile
> /etc/ucto/tokconfig-generic" above.

copy+paste error, I meant /etc/ucto/textcat.cfg

Andreas



More information about the debian-science-maintainers mailing list