Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 376473 - dev-libs/icu: use preserve_old_lib from eutils.eclass until portage-2.2 is ready to stable
Summary: dev-libs/icu: use preserve_old_lib from eutils.eclass until portage-2.2 is re...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement
Assignee: Gentoo Office Team
URL:
Whiteboard:
Keywords:
: 376581 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-07-26 11:30 UTC by Pacho Ramos
Modified: 2013-02-06 14:49 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pacho Ramos gentoo-dev 2011-07-26 11:30:19 UTC
Due icu updates requiring a lot of time for revdep-rebuild to finish recompiling anything broken, would be really nice if affected apps wouldn't be completely broken for this time. For that, please try to use preserve_old_lib feature from eutils.eclass as I don't think portage-2.2 will go to stable anytime soon (I am suffering this with icu for a long time thinking that portage-2.2 will be someday unmasked but...)

Thanks

Reproducible: Always
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2011-07-27 15:52:18 UTC
*** Bug 376581 has been marked as a duplicate of this bug. ***
Comment 2 Chí-Thanh Christopher Nguyễn gentoo-dev 2012-05-20 10:31:43 UTC
Some users even reported that revdep-rebuild didn't help (e.g. bug 416657)
Comment 3 Nikoli 2012-05-20 10:32:34 UTC
Even after revdep-rebuild a lot packages are broken: gimp, firefox, okular, dolphin, speedcrunch, stellarium, celestia. I did not find any gtk+ or qt4 app starting without such error:
Unable to load library icui18n "Cannot load library icui18n: (libicui18n.so.48: cannot open shared object file: No such file or directory)"

Seems revdep-rebuild does not detect problem because dlopen is used.
Comment 4 Pacho Ramos gentoo-dev 2012-05-20 10:43:18 UTC
That is bug 413541 I think
Comment 5 Nikoli 2012-05-20 10:59:09 UTC
Pacho, rebuilding qt-core solved my problem, thank you!
Comment 6 Pacho Ramos gentoo-dev 2012-05-27 09:56:06 UTC
As talked with Samuli, using preserve_libs for icu has the problem of needing to take care of a lot of libs and, then, needing to show a proper revdep-rebuild --library command (to not need to run it a lot of times for each lib) and to track new libs on each major version bump. He told me that this would be maintainance burden and, then, I offer myself to co-maintain icu to keep this preserve_libs stuff working (specially after my father suffering usual breakage after icu update until revdep-rebuild ends, this even having USE="-icu" in most packages)

Before manually checking each new lib provided by icu, I have tried to find some "automated" way to get icu provided libs and pass them to revdep-rebuild:


I have been working on how to generate a command to rebuild all needed
stuff after icu update now that I know the proper syntax expected by
revdep-rebuild:
https://bugs.gentoo.org/show_bug.cgi?id=416707#c1

It's:
revdep-rebuild.sh --library '/usr/lib64/libicu(data|io).so.48'

This is what I have reached:
SUFF=$(for f in $( ls /usr/lib64/libicu*.so.* ); do echo ${f##*icu};
done)
revdep-rebuild --library /usr/lib64/libicu'('$(echo $SUFF | sed
's/ /|/g')')'

And it looks to pass the following to revdep-rebuild:
 * Configuring search environment for revdep-rebuild

 * Checking reverse dependencies
 * Packages containing binaries and libraries
using /usr/lib64/libicu(data.so.49|data.so.49.1.1|i18n.so.49|
i18n.so.49.1.1|io.so.49|io.so.49.1.1|le.so.49|le.so.49.1.1|lx.so.49|
lx.so.49.1.1|test.so.49|test.so.49.1.1|tu.so.49|tu.so.49.1.1|uc.so.49|
uc.so.49.1.1)
 * will be emerged.

That looks to respect syntax pointed in above bug report :-/, but
probably this can be done in a cleaner way that I am failing to see, do
you know how could that be simplified? Also, calling revdep-rebuild
--library will cause revdep-rebuild to want to rebuild icu itself, not
sure if that is normal when using --library parameter :|

Thanks a lot for your help
Comment 7 Pacho Ramos gentoo-dev 2012-05-27 09:56:48 UTC
Well, I would use some "find" command to get new icu installed libs, that "ls" way is only for testing purposes with already installed icu
Comment 8 Arfrever Frehtes Taifersar Arahesis 2012-05-27 15:18:42 UTC
preserve_old_lib_notify() will print a different message anyway.
Comment 9 Pacho Ramos gentoo-dev 2012-05-27 15:39:11 UTC
(In reply to comment #8)
> preserve_old_lib_notify() will print a different message anyway.

Well, the idea is only use preserve_old_lib to get needed libs and then show a proper message "manually" (without using eclass for notification)
Comment 10 Tomáš Chvátal (RETIRED) gentoo-dev 2013-02-06 14:49:09 UTC
Icu now provides subslots for anyone to use.

So this bug is fixed on icu side, open bugreports on packages depending on it to use the subslot feature where needed.