LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 01-09-2018, 01:21 PM   #1
rpedrica
Member
 
Registered: Nov 2008
Location: Cape Town
Distribution: Slackware64 -current
Posts: 233

Rep: Reputation: 32
No libicule.* in icu4c 60.2 in -current


I'm trying to rebuild handbrake on -current (updated as of today) but it's complaining there is no longer a libicule library available. I've checked the -current package (icu4c-60.2-x86_64-1) and there is no lib there. I regen'd the package from the slack source and still the same.

The slackware 14.2 package (56) has this lib ...

Any ideas?

Regards, Robby
 
Old 01-09-2018, 01:50 PM   #2
gmgf
Senior Member
 
Registered: Jun 2012
Location: Bergerac, France
Distribution: Slackware
Posts: 1,652

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Probably that you have an installed dependence of handbrake who is compiled with a old version of icu4c.

Last edited by gmgf; 01-09-2018 at 01:53 PM.
 
Old 01-09-2018, 02:08 PM   #3
rpedrica
Member
 
Registered: Nov 2008
Location: Cape Town
Distribution: Slackware64 -current
Posts: 233

Original Poster
Rep: Reputation: 32
Thanks @gmgf but to clarify, I'm trying to rebuild/recompile handbrake. This is not an existing handbrake that was previously compiled against an older icu4c.

Here is the compile-time error:

Quote:
/usr/lib64/gcc/x86_64-slackware-linux/7.2.0/../../../../x86_64-slackware-linux/bin/ld: cannot find -licule

Last edited by rpedrica; 01-09-2018 at 02:10 PM.
 
Old 01-09-2018, 03:02 PM   #4
volkerdi
Slackware Maintainer
 
Registered: Dec 2002
Location: Minnesota
Distribution: Slackware! :-)
Posts: 1,602

Rep: Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872Reputation: 4872
Quote:
Originally Posted by rpedrica View Post
Thanks @gmgf but to clarify, I'm trying to rebuild/recompile handbrake. This is not an existing handbrake that was previously compiled against an older icu4c.

Here is the compile-time error:
Any chance that something else compiled on the machine embedded a libicule dependency in an .la file? I hate those things. :-)

Might try this: grep -l libicule /usr/lib*/*.la

If you find one, you can try moving it out of the directory to see if that fixes things, but the affected file itself could be a dep for other .la files. They're a horrible virus, I tell you.
 
1 members found this post helpful.
Old 01-09-2018, 03:11 PM   #5
gmgf
Senior Member
 
Registered: Jun 2012
Location: Bergerac, France
Distribution: Slackware
Posts: 1,652

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
I have tested here on current and handbrake compil fine, i do not have the old libicule on my system

are you sure that you have a clean current system installed ?

Last edited by gmgf; 01-09-2018 at 03:14 PM.
 
Old 01-09-2018, 03:29 PM   #6
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,481

Rep: Reputation: Disabled
Quote:
Originally Posted by gmgf View Post
Probably that you have an installed dependence of handbrake who is compiled with a old version of icu4c.
my bet is on this too
 
Old 01-09-2018, 04:42 PM   #7
rpedrica
Member
 
Registered: Nov 2008
Location: Cape Town
Distribution: Slackware64 -current
Posts: 233

Original Poster
Rep: Reputation: 32
Ok sounding like a dependency somewhere. Anyone know how to work backwards from a library dependency? ie. what file(s) use a particular library?

I get the following in /usr/bin when checking all binaries there:

find /usr/bin -type f -perm /a+x -exec ldd {} \; | grep libicule
libicule.so.56 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found

So there are definitely bins there that are pointing to older/non-existent lib versions. Also, I'm wondering if it's not another library that is dependent on the missing older version libs. Did the same in /usr/lib64:

find /usr/lib64 -type f -exec ldd {} \; | grep libicule
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found
libicule.so.51 => not found

Can anyone help me with an adjustment to this cli command to identify the specific culprits? (grep is only picking out the search term and not the relevant bin or lib which would be in a line above the result)

Thanks
 
Old 01-09-2018, 05:45 PM   #8
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 5,432

Rep: Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210Reputation: 3210
Quote:
Originally Posted by rpedrica View Post
Can anyone help me with an adjustment to this cli command to identify the specific culprits? (grep is only picking out the search term and not the relevant bin or lib which would be in a line above the result)
This is going into script territory, but it can still be technically a line

Code:
for i in $(find /usr/bin -type f -perm /a+x); do if [[ $(ldd $i | grep libicule) ]]; then echo $i; ldd $i | grep libicule; fi done
In script form:

Code:
for i in $(find /usr/bin -type f -perm /a+x); do
  if [[ $(ldd $i | grep libicule) ]]; then
    echo $i
    ldd $i | grep libicule
  fi
done
 
Old 01-10-2018, 02:56 AM   #9
rpedrica
Member
 
Registered: Nov 2008
Location: Cape Town
Distribution: Slackware64 -current
Posts: 233

Original Poster
Rep: Reputation: 32
Thanks @bassmadrigal! that script has worked perfectly. I've done a few folders so far but nothing yet and looks like I may have to do / (grrrrr).
 
Old 01-10-2018, 08:31 AM   #10
Petri Kaukasoina
Member
 
Registered: Mar 2007
Posts: 353

Rep: Reputation: 199Reputation: 199
ldd gives also false positives, if the library is a dependency of a dependency. Something like this shows only direct dependecies:
Code:
for i in $(find /usr/lib64/lib*.so* -type f); do echo $i; readelf -d $i|grep NEEDED; done
 
1 members found this post helpful.
Old 01-10-2018, 09:25 PM   #11
bosth
Member
 
Registered: Apr 2011
Location: British Columbia, Canada
Posts: 271

Rep: Reputation: 104Reputation: 104
Here's what I used to find what libraries are missing dependencies:

Code:
for i in `find /usr/lib64 -name "*.so"` ; do ldd $i | grep "not found" -l --label=$i ; done
Or for just a single directory:

Code:
for i in /usr/lib64/*.so ; do ldd $i | grep "not found" -l --label=$i ; done
This just tells you where to dig deeper to find what's actually missing.
 
Old 01-12-2018, 08:13 AM   #12
rpedrica
Member
 
Registered: Nov 2008
Location: Cape Town
Distribution: Slackware64 -current
Posts: 233

Original Poster
Rep: Reputation: 32
Still dealing with this. Will take a while to sort out I think ...
 
Old 01-12-2018, 11:25 AM   #13
a4z
Senior Member
 
Registered: Feb 2009
Posts: 1,727

Rep: Reputation: 739Reputation: 739Reputation: 739Reputation: 739Reputation: 739Reputation: 739Reputation: 739
Quote:
Originally Posted by rpedrica View Post
Thanks @gmgf but to clarify, I'm trying to rebuild/recompile handbrake. This is not an existing handbrake that was previously compiled against an older icu4c.

Here is the compile-time error:
Code:
/usr/lib64/gcc/x86_64-slackware-linux/7.2.0/../../../../x86_64-slackware-linux/bin/ld: cannot find -licule

this is what's in lib64 from icu4c-60.2-x86_64-1.txz
Code:
usr/lib64/pkgconfig/icu-i18n.pc
usr/lib64/pkgconfig/icu-uc.pc
usr/lib64/pkgconfig/icu-io.pc
usr/lib64/libicutest.so.60.2
usr/lib64/libicuuc.so.60.2
usr/lib64/libicuio.so.60.2
usr/lib64/libicui18n.so.60.2
usr/lib64/libicutu.so.60.2
usr/lib64/icu/60.2/Makefile.inc
usr/lib64/icu/60.2/pkgdata.inc
usr/lib64/libicudata.so.60.2
to me it seems that '-licule' will indeed not be found
 
Old 01-13-2018, 10:56 AM   #14
rpedrica
Member
 
Registered: Nov 2008
Location: Cape Town
Distribution: Slackware64 -current
Posts: 233

Original Poster
Rep: Reputation: 32
@a4z - correct. But is it actually needed?
 
Old 01-13-2018, 11:14 AM   #15
gmgf
Senior Member
 
Registered: Jun 2012
Location: Bergerac, France
Distribution: Slackware
Posts: 1,652

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Quote:
Originally Posted by rpedrica View Post
@a4z - correct. But is it actually needed?
no in current
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Today's -current icu4c upgrade broke ktown's sddm dugan Slackware 36 12-09-2017 05:50 AM
icu4c package upgrade in -current mpv breakage & fix 1337_powerslacker Slackware 4 12-08-2017 10:39 AM
Xalan 1.11 + Xerces 3.1.1 + Icu4c not compile jotapdiez Slackware 8 01-08-2016 08:13 AM
libicule.so.51 pack is missing and I can't open google chrome anymore MattFly Slackware 2 05-30-2015 04:19 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 11:11 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration