Librerie ICU mancanti

OS: OpenMandriva Lx 26.02 ROME
Kernel: x86_64 Linux 7.0.3-desktop-1omv2602

~]$ otter-browser
otter-browser: error while loading shared libraries: libicui18n.so.77: 
cannot open shared object file: No such file or directory

investigando:

~]$ dnf provides libicui18n.so.77
libicui18n-78.2-1.x86_64 : Library for the International Components for Unicode - icui18n (32-bit)
Repo         : @System
Matched From : 
Provide      : libicui18n = 78.2-1

libicui18n-78.2-1.x86_64 : Library for the International Components for Unicode - icui18n (32-bit)
Repo         : rolling-x86_64
Matched From : 
Provide      : libicui18n = 78.2-1

MA … l’ ho già reisntallato 2 volte … risultato:

~]$ otter-browser
otter-browser: error while loading shared libraries: libicui18n.so.77: cannot open shared object file: No such file or directory

È evidente che questa libreria, richiesta da otter-browser (ma come vedremo dopo, non solo) non c’è in nessun pacchetto della distro.

Investigando ulteriormente con una scansione veloce per vedere se ci sono altri binari che cercano ancora la versione 77 di ICU:

# Cerca in tutti i binari di sistema chi punta ancora alla vecchia ICU 77
ldd /usr/bin/* 2>/dev/null | grep -B 5 "libicui18n.so.77"

Risultato in allegato →
libicui18n.so.77.txt (3,1 KB)

Analisi ICU 77: Non è un problema isolato

Il file libicui18n.so.77.txt mostra chiaramente che la vecchia libreria è ancora richiesta per alcuni componenti del desktop, ad esempio:

  • Audio: libpulse.so.0 (PulseAudio) la richiede.
  • Sicurezza e Password: libsecret-1.so.0 e libgssapi_krb5.so.2.
  • Email e Calendari: libcamel-1.2.so.66 e evolution-data-server.
  • Networking: libpsl.so.5 (Public Suffix List, usato da quasi tutto ciò che va online).

NOTA: un link simbolico (.so.77 → .so.78) non basta, servono proprio le vecchie librerie originali perché : “ABI Incompatibility and Symbol Versioning in ICU: the application is compiled against ICU 77 symbols, which are not present/compatible in the ICU 78 binary.”

Requested Fix: A rebuild against libicu78 or the introduction of a lib64icu77-compat package in the Rolling repositories.

Mia opinione: ricompilare non ha senso, di browser ne ho tanti, posso fare tranquillamente a meno di Otter (che essenzialmente mi è servito da “diagnostico”) però il problema riguarda anche varie componenti del DE: ora io proverò a cercare questa libreria in passate versioni di OM, quindi il problema me lo posso risolvere da me, ma a mio modesto parere sarebbe opportuno inserirle in un pacchetto ufficiale.

Che ne dite?

AGGIORNAMENTO DELLA SITUAZIONE
Ho fatto una prova pratica, testando anche altre app

sudo ln -s /usr/lib64/libicui18n.so.78.2 /usr/lib64/libicui18n.so.77
sudo ln -s /usr/lib64/libicuuc.so.78.2 /usr/lib64/libicuuc.so.77
sudo ln -s /usr/lib64/libicudata.so.78.2 /usr/lib64/libicudata.so.77
sudo ldconfig

(vedi come bisogna provare più app per fare una diagnosi il più possibile completa).

Per alcune app, il trucco .so.77 → .so.78 non funziona, vedi otter-browser, per altre funziona: bijiben (una app per annotazioni) che aveva lo stesso problema di otter, non funzionava, poi con il trucco del collegamento simbolico funziona., ovviamente la soluzione migliore rimane sempre installare le librerie originali, perché a priori non possiamo sapere come esattamente si comporteranno le app che le richiedono, però intanto qualcosa in più ho ottenuto.

Perché Bijiben sì e Otter no? Ipotesi: Bijiben, probabilmente richiama solo funzioni standard di ICU che non hanno cambiato firma o che non usano il versionamento rigido nel codice dell’app.

Otter (QtWebEngine/Chromium): I motori web usano in modo più rigoroso le librerie Unicode. Se il codice è stato compilato cercando specificamente il simbolo u_something_77, quando trova la versione 78 (anche se il file si chiama 77) oppure ne trova alcuni ma non tutti, va in “panico” e chiude il processo per evitare corruzioni di memoria.

Il fatto d’ aver trovato dipendenze anche in PulseAudio, Evolution e libsecret (come visto nel log libicui18n.so.77.txt) trasforma la necessità di ricercare le librerie originali da un’opzione a una necessità di sistema: in effetti non ho mai avuto crash di sistema ma certe app installate che in teoria dovrebbero funzionare, vanno in crash, vista la dipendenza ancora estesa dalla versione precedente di ICU, non possiamo sapere prima esattamente a cosa andiamo incontro, cosa accadrà, lo sapremo solo momento preciso in cui accade.
Cosa che in un SIstema Operativo sarebbe da evitare il più possibile.

Tradotto con Vivaldi Browser:

Anche se non hai compilato il modulo di supporto “ufficiale”, hai ovviamente già svolto una discreta quantità di ricerche.

Dato che sei già su Rome, ti suggerirei di testarlo su Cooker, in una macchina virtuale o su hardware, se puoi. Forse su un iso live.

Se il problema è stato risolto in Cooker, allora è ovvio che è stato risolto e verrà aggiornato alla prossima UM. In caso contrario, prenderei ciò che hai elencato qui e pubblicherei un post di errore su GitHub a riguardo, in modo che gli sviluppatori possano vederlo e/o menzionarlo anche sul canale di chat.

English:

While you didn’t fill out the “official” support form, you have (obviously) already done a fair amount of research.

Since you’re already on Rome, I would suggest testing this on Cooker; either in a virtual machine or on hardware if you can. Maybe on a live iso.

If it’s fixed in Cooker, then obviously it’s been fixed and will be updated at the next UM. If not, I would take what you have listed here and make a github error post about it so the devs are sure to see it and/or mention it on the chat channel as well.

2 Likes

Probabilmente otter-browser deve essere ricompilato oppure corretto e ricompilato per la versione di icu presente in ROME. Inoltre, potrebbe essere necessario aggiungere otter-browser all’elenco delle ricompilazioni per gli aggiornamenti di icu. È possibile inviare una richiesta in tal senso su OM Issues. Puoi inviare la richiesta su OM Issues. Al momento non vedo segnalazioni di bug aperte relative a otter-browser.

Probably otter-browser needs to be rebuilt or fixed and rebuilt for the version of icu that exists in ROME. Also otter-browser might need to be added to the rebuild list for icu upgrades. You can request this at OM Issues.
Currently I do not see open bug reports agains otter-browser.

1 Like

As I said before, in my opinion, it’s not worth specifically recompiling apps like otter-browser unless there’s an explicit user request. I mentioned this app only because it diagnoses a much more widespread underlying problem, which I’m still investigating (so reporting to OM issue is premature for now). That is, the lack of libraries is widespread: for example, I can’t install perl-gtk, perl-Pango (and many others) because

]$ sudo dnf install --skip-broken perl-Gtk2
Problem: Conflicting requests

  • no package provides libperl.so.5.34()(64bit) required by perl-Gtk2-1.249.930-2.x86_64 from rolling-x86_64

Otter-browser is an app like many others; I can easily do without it, but Perl-GTK, perl-Pango, etc. These are basic libraries, without which many other, even important, apps cannot be installed.

I’m reporting this informally just to let you know what the problem is. I’ll report it in detail as soon as I have a clearer picture.

1 Like

You might want to pop over to the cooker chat channel and give them a heads up that you’re doing this.

I’d hate for yuo to do a crap-ton of work only for @bero to tell you he just finished rebuilding it for cooker.

2 Likes

Sì, in realtà non si tratta di un problema da forum, ma di una questione che riguarda il canale OM Chat Cooker o di una segnalazione di bug. Il forum è pensato principalmente per consentire agli utenti di aiutarsi a vicenda.

Yes, this is not really a forum issue it is and issue for OM Chat Cooker channel or a bug report. The forum is mostly meant for users helping other users.

1 Like