On Sat, Sep 19, 2009 at 12:29:38PM +0200, Mirco Bauer wrote:
> > I don't know where these files came from.

> This issue is giving me a dejavu of #457205

>  mono-addins  (0.3-2) unstable; urgency=low

>    * Users upgrading from mono-addins << 0.3-1 to 0.3.1 to 0.3-2 please
>      read the bugreport of #458443, as that contains info how to
>      unbreak the mono-gac / mono-addins upgrade!
>    * debian/control:
>      + Fixed typo in package short description. (Closes: #457205)
>    * debian/libmono-addins0.2-cil.postinst
>      debian/libmono-addins-gui0.2-cil.postinst:
>      + Remove left over GAC policy files, missed by cli-common(-dev)
>      debhelper maintainer script magic in 0.3~svn.r90520-1 to 0.3-1
>      upgrade caused by a bug of dh_cligacpolicy in cli-common-dev <<
>      0.5.4. (Closes: #458443)
>    * debian/libmono-addins0.2-cil.cligacpolicy
>      debian/libmono-addins-gui0.2-cil.cligacpolicy:
>      + Dropped, unused since 0.3-1.

>  -- Mirco Bauer <mee...@debian.org>  Tue, 01 Jan 2008 21:05:54 +0100 

> So I guess that you installed << 0.3-1 and then 0.3-1 but never
> upgraded since then? I wonder if I should relax the condition when
> the left-over fails should be deleted... in all cases a failing remove
> (postrm) of 0.3-1 can't be prevented, as it's already present (if
> installed)...

Here's the first reference to libmono-addins0.2-cil in my apt log:

 Selecting previously deselected package libmono-addins0.2-cil.
 Unpacking libmono-addins0.2-cil (from .../libmono-addins0.2-cil_0.4-5_all.deb) 
...

I must have had the package installed at one time in the past, then removed
it, and now it's been pulled in again as a dependency.

> The fix code after postinst of 0.3-1 passes looks like this:

> # policy files that were not removed in 0.3~svn.r90520-1 to 0.3-1 upgrade
> if [ "$1" = "configure" ] && dpkg --compare-versions "$2" "<=" "0.3-2"; then
>         if [ -f 
> /usr/share/cli-common/packages.d/policy.0.2.Mono.Addins.installcligac ]; then
>                 echo "Removing forgotten GAC policy file: Mono.Addins 0.2..."
>                 /usr/share/cli-common/policy-remove Mono.Addins 0.2
>         fi
>         if [ -f  
> /usr/share/cli-common/packages.d/policy.0.2.Mono.Addins.Setup.installcligac 
> ]; then
>                 echo "Removing forgotten GAC policy file: Mono.Addins.Setup 
> 0.2..."
>                 /usr/share/cli-common/policy-remove Mono.Addins.Setup 0.2
>         fi
> fi

> The bug is only triggered when mono-gac is upgraded after 0.3-1 was
> installed.

> I am not totally happy with the solution because there are cases where
> it will still fail, like in your case. Do you think there is a better
> way to solve this?

I guess the problem in my case was that the libmono-addins0.2-cil postinst
never had a chance to run, because mono-gac's postinst was being run first.

Perhaps moving this code to the preinst would help to catch more cases?

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org

Attachment: signature.asc
Description: Digital signature

Reply via email to