Bug 27317 - Thunderbird refuse to start (32-bit) "libldap60.so: cannot open shared object file"
Summary: Thunderbird refuse to start (32-bit) "libldap60.so: cannot open shared object...
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: i586 Linux
Priority: Normal major
Target Milestone: ---
Assignee: Base system maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 26965
Blocks:
  Show dependency treegraph
 
Reported: 2020-09-24 15:51 CEST by raoul behrend
Modified: 2020-09-29 16:43 CEST (History)
6 users (show)

See Also:
Source RPM: thunderbird-78.3.0-1.mga8.src.rpm
CVE:
Status comment:


Attachments

Description raoul behrend 2020-09-24 15:51:44 CEST
Description of problem:

Thunderbird from present RC do not start. Error messages below:

[myhome]$ thunderbird 
XPCOMGlueLoad error for file /usr/lib/thunderbird/libxul.so:
libldap60.so: cannot open shared object file: No such file or directory
Couldn't load XPCOM.
Comment 1 Aurelien Oudelet 2020-09-24 18:08:57 CEST
Hi, thanks taking time to report this.
What version of Thunderbird does not run on your system?

Have you tried:
# urpmi --replacepkgs thunderbird

CC: (none) => ouaurelien

Comment 2 Lewis Smith 2020-09-24 21:22:40 CEST
I suspect your (raoul) system is not up-to-date. After installing Mageia, you should always (at first re-boot) update the system before using it seriously.
As well as reporting the Thunderbird version,
 $ rpm -q thunderbird
can you say what desktop you are using?
On my up-to-date 64-bit Mageia 8 system, using Xfce, the fault you report does not happen. I just installed Thunderbird to try:
 thunderbird-78.3.0-1.mga8
and it starts quite correctly without any console error - which is unusual:
 $ thunderbird
 $

CC: (none) => lewyssmith
Status: NEW => UNCONFIRMED
Ever confirmed: 1 => 0

Comment 3 raoul behrend 2020-09-25 09:40:16 CEST
Hello,

I use de MATE on a i586 HP Compaq 6710b with the RC1 of Magaia 8:
5.8.11-desktop-1.mga8 #1 SMP

The system is manualy checked/updated about 2-3 times a day via mcc/mettre à jour - as well as every 3 hours by the automated process

The package I install via mcc/installer is thunderbird-78.3.0-1.mga8. Two packages are necessary for that:
- libevent7-2.1.11-1.mga8.i586
- thunderbird-fr-78.3.0-1.mga8.noarch.

During the installation, no warning is rised.
Launching from a terminal thunderbird gives always the same errormessage:

$ thunderbird 
XPCOMGlueLoad error for file /usr/lib/thunderbird/libxul.so:
libldap60.so: cannot open shared object file: No such file or directory
Couldn't load XPCOM.
$ 

Uninstalling thhunderbird followed by
#urpmi --clean && urpme --auto-orphans
do not makes the next try successful.

I'm pretty sure that it is not related to version 78.3 of thunderbird, as the last 78.2.* available gave me the same problem. 3 week ago, all was right.  
I can't find a package containing libldap60.so (but I'm not a "pro").

Merci !
Comment 4 raoul behrend 2020-09-25 09:44:20 CEST
Forget to say that it's the 32 bits version of the OS (2GB memory on this oldtimer)
Comment 5 Rolf Pedersen 2020-09-25 15:03:39 CEST
[rolf@x570i ~]$ rpm -qpl http://mirrors.kernel.org/mageia/distrib/cauldron/i586/media/core/release/thunderbird-78.3.0-1.mga8.i586.rpm | grep libldap60.so
/usr/lib/thunderbird/libldap60.so

It looks to be in that 32-bit package.  Here's another vintage troubleshooting tactic, thanks to Mandrake days!:

[rolf@x570i ~]$ rpm -V thunderbird
[rolf@x570i ~]$

From 'man rpm':

VERIFY OPTIONS
       The general form of an rpm verify command is

       rpm {-V|--verify} [select-options] [verify-options]

       Verifying a package compares information about the installed files in the package with information  about  the
       files  taken from the package metadata stored in the rpm database.  Among other things, verifying compares the
       size, digest, permissions, type, owner and group of each file.  Any discrepancies are displayed.   Files  that
       were  not  installed  from  the  package,  for example, documentation files excluded on installation using the
       "--excludedocs" option, will be silently ignored.

So, my installation is verified not to differ from what the package metadata says should be installed, as the prompt returns without displaying any discrepancy.  Might be worth a try.

CC: (none) => rolfpedersen

Comment 6 Lewis Smith 2020-09-25 21:03:43 CEST
Thanks for your comment, Rolf.

@raoul :
Thank you for your explanations in comment 3. You are doing the right things. Note that the examples which follow are often 64-bit specific, but you should see the same things for 32-bit.

Thunderbird requires a lot more packages than the two you cite; never mind.
 $ urpmq --requires thunderbird
shows them all, but libraries are shown in a way which disguises their rpm:
 libldap60.so()(64bit)
If you know what you are looking for, this sort of thing is more concise:
 $ urpmq --requires thunderbird | grep ldap
 libldap60.so()(64bit)           ***
 libprldap60.so()(64bit)
So, Thunderbird requires the missing library.

To find the rpm(s) referencing it:
 $ urpmf libldap60.so
 mozldap:/usr/lib64/libldap60.so
 thunderbird:/usr/lib64/thunderbird/libldap60.so         ***
shows it is provided by two rpms.
To see whether thunderbird really does provide the library:
 $ urpmq -l thunderbird | grep ldap
 /usr/lib64/thunderbird/libldap60.so         ***
 /usr/lib64/thunderbird/libprldap60.so
suggests that the thunderbird package itself provides (or should) your missing library.

Do you have the library? (I looked for both in case one was a symbolic link to the other):
 $ ls -l /usr/lib64/thunderbird/libldap60.so       [from thunderbird]
-rwxr-xr-x 1 root root 224176 Med  24 10:18 /usr/lib64/thunderbird/libldap60.so*
 $ ls -l /usr/lib64/libldap60.so        [from mozldap, not in my system]
ls: cannot access '/usr/lib64/libldap60.so': No such file or directory

So can you please try:
 $ urpmq --requires thunderbird | grep ldap
to confirm that the 32-bit Thunderbird requires the library.
 $ urpmq -l thunderbird | grep ldap
to check that the 32-bit thunderbird package provides it.
 $ ls -l /usr/lib/thunderbird/libldap60.so     [path from previous commands]
to see whether it really exists.
If it does not, the previous commands should show where it is missing.
If it does exist, the problem is different.

I will try it under Mate to see whether that changes anything.

TIA

Status: UNCONFIRMED => NEW
Summary: Thunderbird refuse to start => Thunderbird refuse to start (32-bit) "libldap60.so: cannot open shared object file"
Ever confirmed: 0 => 1

Comment 7 Aurelien Oudelet 2020-09-26 00:12:27 CEST
Add SRPM.

Trying a freshly M8 i586 Plasma on a VBOX from Beta 1 iso Classic Installer. (It is not even in RC state).
Updating it from ftp.free.fr mirror + reboot

Thunderbird-78.3 launches itself: good.

What is your RPM media configuration? $MIRRORLIST or specific mirror?
When Thunderbird-78.3 gets installed, is there a complain from urpmi?

NEEDFINFO and further TESTS.

Keywords: (none) => NEEDINFO, NEEDTEST
Severity: normal => major
Source RPM: (none) => thunderbird-78.3.0-1.mga8.src.rpm

Comment 8 Lewis Smith 2020-09-26 09:27:40 CEST
(In reply to Aurelien Oudelet from comment #7)
> When Thunderbird-78.3 gets installed, is there a complain from urpmi?
raoul says in comment 3: "During the installation, no warning is rised"

Also, "I use de MATE".
Just tried it under Mate, it starts without any error.
Comment 9 raoul behrend 2020-09-26 11:15:14 CEST
For Rolf                (comment 5)
--------

I run as said :
rpm -qpl http://mirrors.kernel.org/mageia/distrib/cauldron/i586/media/core/release/thunderbird-78.3.0-1.mga8.i586.rpm | grep libldap60.so
Result: 
/usr/lib/thunderbird/libldap60.so
This file exists with a length of 256052 bytes.

When running :
$rpm -V thunderbird
$
No comment as in your case



$ urpmq --requires thunderbird | grep ldap
--requires behaviour changed, use --requires-recursive to get the old behaviour
libldap60.so
libprldap60.so

$ urpmq --requires-recursive thunderbird | grep ldap
libldap2.4_2
openldap


For Lewis             (comemnt 6)
---------


$urpmf libldap60.so
    $MIRRORLIST: media/core/release/media_info/20200925-224529-files.xml.lzma
mozldap:/usr/lib/libldap60.so                                                                                                 
thunderbird:/usr/lib/thunderbird/libldap60.so
    $MIRRORLIST: media/core/updates/media_info/20190801-133903-files.xml.lzma
    $MIRRORLIST: media/nonfree/release/media_info/20200924-151453-files.xml.lzma                                              
    $MIRRORLIST: media/nonfree/updates/media_info/20190628-001231-files.xml.lzma                                              
    $MIRRORLIST: media/tainted/release/media_info/20200925-112109-files.xml.lzma                                              
    $MIRRORLIST: media/debug/tainted/updates/media_info/20190628-001407-files.xml.lzma
Except for the $MIRROR line, it is similar as your output, but lib64->lib as I run a 32bits OS



$urpmq -l thunderbird | grep ldap
/usr/lib/thunderbird/libldap60.so
/usr/lib/thunderbird/libprldap60.so
Same similarty as for the  previous test




$ls -l /usr/lib/thunderbird/libldap60.so
-rwxr-xr-x 1 root root 256052 sep 24 08:37 /usr/lib/thunderbird/libldap60.so*

$ls -l /usr/lib/libldap60.so
ls: impossible d'accéder à '/usr/lib/libldap60.so': Aucun fichier ou dossier de ce type

$ls -l /usr/lib/libldap*
lrwxrwxrwx 1 root root     21 sep  7 22:07 /usr/lib/libldap-2.4.so.2 -> libldap-2.4.so.2.11.1*
-rwxr-xr-x 1 root root 361216 sep  7 22:07 /usr/lib/libldap-2.4.so.2.11.1*
lrwxrwxrwx 1 root root     23 sep  7 22:07 /usr/lib/libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.11.1*
-rwxr-xr-x 1 root root 390240 sep  7 22:07 /usr/lib/libldap_r-2.4.so.2.11.1*



Many thanks for your support, Rolf and Lewis
Comment 10 raoul behrend 2020-09-26 11:40:56 CEST
$ls -l /usr/lib/thunderbird/
total 200820
-rw-r--r-- 1 root root       486 sep 24 07:01 application.ini
drwxr-xr-x 3 root root      4096 sep 26 08:45 chrome/
drwxr-xr-x 4 root root      4096 sep 26 08:45 defaults/
-rw-r--r-- 1 root root        10 sep 24 08:32 dependentlibs.list
lrwxrwxrwx 1 root root        27 sep 24 08:37 dictionaries -> ../../../usr/share/hunspell/
drwxr-xr-x 2 root root      4096 sep 26 08:45 features/
drwxr-xr-x 2 root root      4096 sep 26 08:45 fonts/
drwxr-xr-x 2 root root      4096 sep 26 08:45 gtk2/
drwxr-xr-x 2 root root      4096 sep 26 08:45 isp/
-rwxr-xr-x 1 root root    256052 sep 24 08:37 libldap60.so*
-rwxr-xr-x 1 root root     14636 sep 24 08:37 libldif60.so*
-rwxr-xr-x 1 root root     48524 sep 24 08:37 liblgpllibs.so*
-rwxr-xr-x 1 root root     14472 sep 24 08:37 libmozgtk.so*
-rwxr-xr-x 1 root root    163072 sep 24 08:37 libmozsandbox.so*
-rwxr-xr-x 1 root root   1075548 sep 24 08:37 libmozsqlite3.so*
-rwxr-xr-x 1 root root     14384 sep 24 08:37 libmozwayland.so*
-rwxr-xr-x 1 root root     31484 sep 24 08:37 libprldap60.so*
-rwxr-xr-x 1 root root   2835020 sep 24 08:37 librnp.so*
-rwxr-xr-x 1 root root 134110880 sep 24 08:37 libxul.so*
-rw-r--r-- 1 root root  63981212 sep 24 08:33 omni.ja
-rwxr-xr-x 1 root root    760512 sep 24 08:37 pingsender*
-rw-r--r-- 1 root root       168 sep 24 08:33 platform.ini
-rwxr-xr-x 1 root root    747776 sep 24 08:37 plugin-container*
-rw-r--r-- 1 root root       171 sep 24 08:33 removed-files
-rwxr-xr-x 1 root root    756336 sep 24 08:37 thunderbird*
-rwxr-xr-x 1 root root    756340 sep 24 08:37 thunderbird-bin*
Comment 11 Morgan Leijström 2020-09-26 12:19:57 CEST
Running fine here,
64 bit, i7, Plasma, Nvidia, Swedish.
System is fully updated to testing per yesterday.
Sending using SMTP, receiving and storing using offline IMAP.
Using offline IMAP i moved several thousand mails from one folder to another.

CC: (none) => fri

Comment 12 Morgan Leijström 2020-09-26 12:20:19 CEST
Sorry wrong bug...
Comment 13 Dave Hodgins 2020-09-26 16:13:20 CEST
Try creating the file ...
# cat /etc/ld.so.conf.d/thunderbird.conf 
/usr/lib/thunderbird

and then running ldconfig (as root).

CC: (none) => davidwhodgins

Comment 14 Lewis Smith 2020-09-27 11:59:13 CEST
Thanks for your intervention. But, on my 64-bit system, there is no sign of the file you suggest:
 $ tree /etc/ld.so.conf.d/
 /etc/ld.so.conf.d/
 ├── GL
 │   └── standard.conf
 └── GL.conf -> /etc/alternatives/gl_conf

And for the record:
 $ sudo cat /etc/ld.so.conf
 include /etc/ld.so.conf.d/*.conf

If the ruse you suggest comment 13 fixes the problem, is there something there which should be in the package?

[ldconfig unusually has no man page, do '# ldconfig --help']
Comment 15 raoul behrend 2020-09-27 14:13:37 CEST
For Dave and Lewis, 


$more /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

So this file already exists and is rigth.


I go in the /etc/ld.so.conf.d directory
There is no thunderbird.conf file
So I try the following as suggested by Dave:

# echo "/usr/lib/thunderbird" > thunderbird.conf
# ldconfig

And then "Bingo" ! Thunderbird works again on this 32bits OS, even when not root !

*Thank you very very much* for making me super-happy with a working computer !!!

Now, I can't say why this file was missing... How did you arrive to this action, Dave ?
Comment 16 Dave Hodgins 2020-09-27 17:55:39 CEST
I've seen this type of problem in the past with other packages where sub
directories of /usr/lib are not searched by libc for dynamically loaded
modules. The change suggested in comment 13 was to confirm that is what
is causing the problem.

What I don't know is why thunderbird is working without the ld.so.conf.d
file in a 64 bit install, but not in a 32 bit install.

This may be a bug in glibc-2.31-14.mga8.src.rpm rather then thunderbird itself.

Adding basesystem group and Martin to cc list.

CC: (none) => basesystem, mageia
Keywords: NEEDINFO, NEEDTEST => (none)

Comment 17 raoul behrend 2020-09-27 20:56:59 CEST
I have a second i586 oldtimer on which I installed Mageia8 RC in 32bits. I recently updated the OS by mcc/mise à jour .
I just installed thunderbird via mcc/installer and the same problem arrived when starting Thunderbird from a terminal/for the MATE menu. But... the same trick as in comment 15 made a working thunderbird :) That's very good news. Many thanks to Dave and Lewis
Comment 18 Lewis Smith 2020-09-27 21:18:29 CEST
Thank you everybody for the constructive & informative comments.
There is no more Bugsquad can do with this. Following comment 16, assigning this to Basesystem group.
CC'ing NicolasS who has done the recent commits for the SRPM. If only to check that the build for 32-bit does not differ in any way from 64-bit that might explain the error.

Assignee: bugsquad => basesystem
CC: basesystem, lewyssmith => nicolas.salguero

Comment 19 Martin Whitaker 2020-09-27 23:58:13 CEST
The reason it works on a 64-bit system but fails on a 32-bit system is that on a 64-bit system, /usr/lib64/thunderbird/dependentlibs.list contains

libldap60.so
libprldap60.so
libmozsandbox.so
liblgpllibs.so
libmozsqlite3.so
libmozgtk.so
libmozwayland.so
libxul.so


but on a 32-bit system, /usr/lib/thunderbird/dependentlibs.list only contains

libxul.so

Adding the missing entries on a 32-bit system allows thunderbird to start without modifying the ld config.
Nicolas Salguero 2020-09-28 09:01:59 CEST

Depends on: (none) => 26965

Comment 20 Martin Whitaker 2020-09-28 19:14:08 CEST
dependentlibs.list is automatically generated during the build, based on the dependencies of libxul.so. On a 32-bit build the generator script is failing due to the following errors:

85:39.60 /usr/bin/ld: error: libxul.so(.debug_info) is too large (0x53fd1b17 bytes)
85:43.68 readelf: libxul.so: Error: Unable to seek to 0x930b1744 for section headers
85:43.68 readelf: libxul.so: Error: Out of memory allocating 2466969212 bytes for symbols
85:43.68 readelf: libxul.so: Error: Unable to determine the number of symbols to load
85:43.68 readelf: libxul.so: Error: Unable to determine the length of the dynamic string table
85:43.68 readelf: libxul.so: Error: Unable to seek to 0x930b1744 for section headers
85:43.68 readelf: libxul.so: Error: Out of memory allocating 2466969212 bytes for symbols
85:43.68 readelf: libxul.so: Error: Unable to determine the number of symbols to load
85:43.68 readelf: libxul.so: Error: Unable to determine the length of the dynamic string table
Comment 21 Nicolas Salguero 2020-09-29 14:33:32 CEST
Hi,

That problem will be solved with thunderbird-78.3.1-4.mga8 and thunderbird-78.3.1-2.mga7.

Best regards,

Nico.
Comment 22 Nicolas Salguero 2020-09-29 16:43:07 CEST
Done

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.