I installed x11-misc/shared-mime-info-0.51 when it went stable. An elog message was shown, which said:
The database format has changed between 0.30 and 0.40.
You may need to update all your local databases and caches.
To do so, please run the following commands:
(for each user) $ update-mime-database ~/.local/share/mime/
(as root) # update-mime-database /usr/local/share/mime/
This is all well and good. But at the time (after compilation), I didn't realize that the stable upgrade had jumped from 0.30 to 0.51. I assumed that I was going from 0.40 to 0.51. There was no way for me to check this assumption (what version I was going from/to) at the end of my emerge. So I didn't run the update. Obviously, this caused annoying little problems.
As a user, I would suggest one of two things. One possibility is for the ebuild to run this database update for me, at least partially. If it's a required step, why do I have to do it manually for the system-wide MIME database? I don't see any drawback to this option, but I'm no developer.
The other possibility is to change the elog message so that it's more obvious that this database update step is required. That I should do it even though I'm NOT upgrading to 0.40, I'm upgrading to 0.51. Maybe include language about the effects of not updating the database, so that I'll know what to look for when this stops working.
A corrollary issue. The system MIME database on my machine is in /usr/share/mime, not the location mentioned in the elog message.
Reproducible: Didn't try
Steps to Reproduce:
After reading bug 228885 I understand some of what happened a bit better.
There's still one part of my bug that is relevant. The ewarn message should be changed so that it's more obvious that this database update step is required, because it's not obvious at the ewarn stage that I'm crossing the 0.30 to 0.40 barrier.
well there is nothing mandatory here. Portage updates what it has control over, path mentionned in the ewarn are there because they are under the user's responsability. I really don't see what could be changed to better reflect the fact that the user needs to know a bit how his system works.
I guess this goes back to inconsistencies I've seen in Gentoo as a whole. I've seen packages (ebuilds?) like Python give me ewarns that I need to run update tools if I'm upgrading... when they're clearly not necessary.
I upgraded maybe 12 other ebuilds at the same time. As a user, I did not and could not remember the old version of every single one by the time the compile was finished. When I saw the ewarn for shared-mime-info-0.51, I thought that it was unnecessary. I wasn't aware until much later (by searching gentoo-portage.com) that release 0.40 was skipped, and the message was relevant to me.
I'm just saying that, as a user of the stable tree, it would be helpful to me if I knew that the ewarn applies to those who did stable upgrades to 0.51. At THAT point in the process, I don't know that I upgraded from 0.30 to 0.51. Looking at bug histories, it seems the ewarn was added when 0.40 was the latest thing, and was considered for stable. But now, it's applicable to more people than just those who unmasked and installed 0.40.
Maybe change the message to say that the database format changed between 0.30 to 0.40 / 0.51?
Though I am a non-developer, I enjoy learning how my system works. And I know about the MIME system. I've even fixed a few local problems with mine. But I believe this problem is a result of insufficient verbage in the ewarn. That's the only change I'm asking for now. :-)
reassigning to proper herd.
Please provide a proposal of what you would expect. Simply adding 0.51 in the list of versions affected in the message won't change anything because we would need to add more over time. If the user can't figure out that it just crossed the 0.30 to 0.40 line, I don't know what we can do...
Marking cantfix for now. If you can come up with a better message, we can revise status.
It could be written as "if upgrading from 0.30 then..."
Also is there any potential harm in running the update? If not then as message saying something like: "if unsure, then it should be safe to run the update anyway". If there is potential for harm, then a message like: "be sure that you really are upgrading from 0.30 before running the update".
Well, maybe this is showcasing a limitation of Portage that needs to be addressed? An upgrade will show the old/new version numbers BEFORE the emerge... If it showed the old/new version numbers AFTER the emerge as well, this wouldn't have been an issue.