Thanks. We've had this bug a ton of times, but your terminal log is minimal enough that I think I can see what's going on.
There's a trigger in monodoc-base to update the search index for the installed documentation. As you upgraded monodoc-gtk2.0-manual, this trigger was activated. That causes the postinst of monodoc-base to be called, which does:
case "$1" in
[…]
triggered)
/usr/bin/update-monodoc
;;
and update-monodoc (shipped in monodoc-base) calls
monodoc --make-index > /dev/null
which crashes because gtk-sharp has been removed from the GAC (you can see this earlier in the log)
Preparing to replace libgtk2.0-cil 2.12.10-2ubuntu3 (using .../libgtk2.0-cil_2.12.10-2ubuntu4_amd64.deb) ...
Removing libgtk2.0-cil from Mono
but the new version's postinst has not been run yet, because monodoc-base does not depend on libgtk2.0-cil.
The monodoc binary is in the monodoc-browser package, and ends up calling /usr/lib/mono/monodoc/browser.exe, which is also in monodoc-browser. monodoc-browser does correctly depend on libgtk2.0-cil.
I think we should just move the trigger across from monodoc-base to monodoc-browser, as we can't do anything if monodoc-browser is not installed anyway. AFAICS dpkg guarantees that the Depends are satisfied when processing triggers (quoting /usr/share/doc/dpkg-dev/triggers.txt.gz)
Packages in t-awaited and t-pending demand satisfaction of their dependencies just like packages in installed.
The postinst in monodoc-base tries to take care of -browser not being available
if [ ! -x /usr/lib/monodoc/browser.exe -o -z "$(dpkg-query -W -f='${Status}' monodoc-browser 2>/dev/null | grep "ok installed")" ]; then
exit 0
fi
but this clearly does not work, and the rationale for trying to keep it here is lost in the mists of time.
Thanks. We've had this bug a ton of times, but your terminal log is minimal enough that I think I can see what's going on.
There's a trigger in monodoc-base to update the search index for the installed documentation. As you upgraded monodoc- gtk2.0- manual, this trigger was activated. That causes the postinst of monodoc-base to be called, which does:
case "$1" in
[…]
triggered)
;;
and update-monodoc (shipped in monodoc-base) calls
monodoc --make-index > /dev/null
which crashes because gtk-sharp has been removed from the GAC (you can see this earlier in the log)
Preparing to replace libgtk2.0-cil 2.12.10-2ubuntu3 (using .../libgtk2. 0-cil_2. 12.10-2ubuntu4_ amd64.deb) ...
Removing libgtk2.0-cil from Mono
but the new version's postinst has not been run yet, because monodoc-base does not depend on libgtk2.0-cil.
The monodoc binary is in the monodoc-browser package, and ends up calling /usr/lib/ mono/monodoc/ browser. exe, which is also in monodoc-browser. monodoc-browser does correctly depend on libgtk2.0-cil.
I think we should just move the trigger across from monodoc-base to monodoc-browser, as we can't do anything if monodoc-browser is not installed anyway. AFAICS dpkg guarantees that the Depends are satisfied when processing triggers (quoting /usr/share/ doc/dpkg- dev/triggers. txt.gz)
Packages in t-awaited and t-pending demand satisfaction of their dependencies just like packages in installed.
The postinst in monodoc-base tries to take care of -browser not being available
if [ ! -x /usr/lib/ monodoc/ browser. exe -o -z "$(dpkg-query -W -f='${Status}' monodoc-browser 2>/dev/null | grep "ok installed")" ]; then
exit 0
fi
but this clearly does not work, and the rationale for trying to keep it here is lost in the mists of time.