Slackware 15.0+ after updates no libicuuc.so.74

For discussion of topics specific to MythTV on linux
Post Reply
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

Hell-o, I am running a Slackware 15.0+ distro with Mythtv

Code: Select all


root@robrutrm:/usr/lib64# mythbackend --version
Please attach all output as a file in bug reports.
MythTV Version : v34.0-c63d023aa8e
MythTV Branch : fixes/34
Network Protocol : 91
Library API : 34.20220913-1
QT Version : 5.15.14
Options compiled in:
 linux profile use_hidesyms using_alsa using_jack using_oss using_pulse using_pulseoutput using_backend using_bindings_perl using_bindings_python using_bindings_php using_dvb using_firewire using_frontend using_hdhomerun using_satip using_vbox using_ceton using_joystick_menu using_libcrypto using_gnutls using_libxml2 using_lirc using_mheg using_opengl using_egl using_qtwebkit using_qtscript using_qtdbus using_sqlite3 using_taglib using_v4l2 using_v4l2prime using_x11 using_system_libbluray using_drm using_bindings_perl using_bindings_python using_bindings_php using_freetype2 using_mythtranscode using_opengl using_egl using_drm using_vaapi using_nvdec using_vdpau using_waylandextras using_qtprivateheaders using_ffmpeg_threads using_mheg using_libass using_libxml2

The mythbackend was running successfully tonight when I shut it down to install updates on my Slackware box. After the updates were completed I tried to start mythbackend and got this:

Code: Select all


root@robrutrm:~# mythbackend --user=mythtv  -d --logpath=/var/log/mythtv
mythbackend: error while loading shared libraries: libicuuc.so.74: cannot open shared object file: No such file or directory

So here is the output from /var/lib64 for this library:

Code: Select all


root@robrutrm:/usr/lib64# ls -l | grep libicuuc
lrwxrwxrwx   1 root root        16 Nov  1 17:43 libicuuc.so -> libicuuc.so.76.1*
lrwxrwxrwx   1 root root        16 Nov  1 17:43 libicuuc.so.76 -> libicuuc.so.76.1*
-rwxr-xr-x   1 root root   2194080 Oct 27 18:54 libicuuc.so.76.1*

I have another Slackware box that I haven't updated yet and this is the output from /var/lib64 for it:

Code: Select all


root@robrutrm:/usr/lib64# ls -l | grep libicuuc
lrwxrwxrwx   1 root root        16 Nov  1 17:43 libicuuc.so -> libicuuc.so.76.1*
lrwxrwxrwx   1 root root        16 Nov  1 17:43 libicuuc.so.74 -> libicuuc.so.74.2*
-rwxr-xr-x   1 root root   2095640 Nov 21 20:22 libicuuc.so.74.2*
lrwxrwxrwx   1 root root        16 Nov  1 17:43 libicuuc.so.76 -> libicuuc.so.76.1*
-rwxr-xr-x   1 root root   2194080 Oct 27 18:54 libicuuc.so.76.1*

This second box has the mythbackend running right now so it must have the right libicuuc.so.74. Therefore I am assuming that libicuuc was upgraded to ver 76 from 74. Do I need to re-compile MythTV and/or recompile a dependency for it? I evidently can't set up a symlink from .74 to .76 since .74 is no longer there on the updated box anymore.

Thanks for any and all help.
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

I tried to recompile and ran into issues. First on the ./configure I got the error of no python binding because of missing MySQLdb. I ran

pip install mysqlclient

and I got the python bindings okay. Then when I ran make I got this at the end:

Code: Select all


collect2: error: ld returned 1 exit status
distcc[16984] ERROR: compile (null) on localhost failed
make[2]: *** [Makefile:788: mythfrontend] Error 1
make[2]: Leaving directory '/home/robby/src/build_mythtv_34/mythtv-fixes-34/mythtv/programs/mythfrontend'
make[1]: *** [Makefile:92: sub-mythfrontend-make_first] Error 2
make[1]: Leaving directory '/home/robby/src/build_mythtv_34/mythtv-fixes-34/mythtv/programs'
make: *** [Makefile:66: programs] Error 2
root@robrutrm:/home/robby/src/build_mythtv_34/mythtv-fixes-34/mythtv#

Now I'm not sure what to do. I don't understand what these errors are telling me at the make stage.
white_haired_uncle
Senior
Posts: 563
Joined: Thu Feb 23, 2023 8:55 pm
Location: Safe outside my gilded cage
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by white_haired_uncle »

So, a couple things.

I haven't used Slackware in about 30 years (seriously, it'll be 30 in a few months, how did that happen???), so I'm probably a bit rusty, but I found your original configuration curious. One of your systems seems to have both libicuuc.so.74 and .76 installed. I'm not sure how that happened, perhaps one or both were installed manually, or maybe whatever package manager SW might be able to be configured to allow it. Might be the easier course of action, though personally I'd go with new build option because I hate one-offs.

Now, as far as your build goes:
collect2: error: ld returned 1 exit status
This is important. It tells us that the linker failed. But we really need to see what it failed on. Most likely you either need to run ldconfig after installing something, or you're building in the same directory you've built myth before but you need to run something like 'make clean' (say, to pick up the changes to libicuuc). But without seeing more of that compile output it's hard to do much more than guess.

Oh, and might want to mention the steps you're taking to build as well.
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

white_haired_uncle...the reason that one of the systems still has .74 and .76 installed is because the first output I listed is from the Slack box that was updated yesterday and the second output, that has .74 and .76, is a slack box I have not updated yet because this issue popped up. I have not installed either one of libicuuc manually on either system, it is just how things worked with the updates every week. The steps I use to build are

./configure
make -j 5
sudo make install

and this is how I have always done it and it has worked.
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

Sorry, let me backtrack...when I first installed mythtv, many moons ago, I did install all, or most of the dependencies manually. That is probably how this library was installed initially. These are the dependencies I installed at first:

MySQL-python, lame, libass, x264, xvidcore, urlgrabber, perl-Net-UPnP, lxml, faac, perl-IO-Socket-INET6, perl-http-message, libwww-perl

before I could get mythtv to compile. Most of these packages had their own dependencies, but I am not sure which would have installed libicuuc. I may have to drill down to each one again to see if I can figure that out.

As a sidebar I looked up the purpose of libicuuc:

"libicuuc":
This is the filename of the library belonging to the ICU (International Components for Unicode) project, which provides functions for handling different character sets and text processing across various languages.

so I am not sure how critical this library is because I only use English.

Is it possible that mythtv 34 should be configured to work with libicuuc.so.76 instead of .74 and/or backwards compatible with .74?
User avatar
bill6502
Developer
Posts: 2439
Joined: Fri Feb 07, 2014 5:28 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by bill6502 »

Info only: libicuuc doesn't exist in the MythTV code base. Nor, is it in the tool that adds packages used by MythTV (https://github.com/MythTV/ansible).

Edit: Yes it does, in cmake here for example

Code: Select all

cmake/platform/AndroidCrossCustomization.cmake:set(QT5_PLATFORM_LIBS_ARGS "ICU_LIBS=-licui18n -licuuc -licudata")
white_haired_uncle
Senior
Posts: 563
Joined: Thu Feb 23, 2023 8:55 pm
Location: Safe outside my gilded cage
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by white_haired_uncle »

Are you trying to build myth in the same directory that you have in the past, and if so did you do a 'make clean' before you started?
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

bill6502...I don't know how to answer:
libicuuc doesn't exist in the MythTV code base
All I know is that it gives me an error message and bombs off if it is not there. As a sidenote I tried using ansible when I first starting trying to install mythtv on my original Slackware box and I couldn't get ansible to work with Slackware.

white_haired_uncle ...I was trying to compile mythtv in the same original directory so I went back and tried again with

make distclean
./configure
make -j 5

and I still got the same error at the make step. I then created a new directory, downloaded mythtv source from mythtv.org, tried from scratch, and still got the same error message at the make step. (Should I get a pull from github rather than mythtv.org?) I know all worked to install/compile mythtv 34 back in July so I'm still not sure why the make is not completing.

I then tried something cludgey...I ftped libicuuc.so.74, libicuuc.so.74.2, and libicuuc.so from the working Slackware box to the one that is not working for mythtv anymore and copied the files to usr/lib64. When I tried to start the backend again I got a message about missing shared library libicuiln8n.so.74. I did the same thing, ftped libicui8n.so, libicui18n.so.74, and libicui18n.so.74.2 from the working Slackware box to the one that is not working. After trying to start mythbackend again I got an error message about missing shared library libicudata.so.74. I did the same thing again with libicudata.so, libicudata.so.74, and libicudata.so.74.2 and now the backend started. I have tried a couple of recordings and it seems to work ok.

I am not sure if this is a good "fix" though as what happens down the road if I want to upgrade to a newer version of mythtv and it won't compile.
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

And just to pass on another aha moment...after ftping over the libicu files and placing them in /usr/lib64 of the box where MythTV was not working MythTV 34 succesfully installs/compiles again...and in addition I saw references to the three libicu files in the make install process that referenced these files and advised they were symlinks.
User avatar
bill6502
Developer
Posts: 2439
Joined: Fri Feb 07, 2014 5:28 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by bill6502 »

I see it and edited my earlier response to say it exists. Thanks.
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

Thanks bill6502...does that mean I will need to keep the libicu..so.74 libraries on hand in the event the reference to .so.74 is overwritten again so I can add them back? ...or another question is I see from your edit:
"ICU_LIBS=-licui18n -licuuc -licudata")
references generic libraries for the ICU_LIBS. Why doesn't mythtv work with the .76 versions?
white_haired_uncle
Senior
Posts: 563
Joined: Thu Feb 23, 2023 8:55 pm
Location: Safe outside my gilded cage
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by white_haired_uncle »

I took a look at this last night, built a slack15 system and started looking at building myth, first with ansible. I quickly determined that either I'm completely missing something in the "package management" (quotes added for a reason), or using slack is just intentionally making things hard on yourself.
rocknrobin72
Junior
Posts: 88
Joined: Thu Mar 26, 2020 8:07 pm
United States of America

Re: Slackware 15.0+ after updates no libicuuc.so.74

Post by rocknrobin72 »

white_haired_uncle...Yes several years ago when I started to install MythTV on my Slack box it did turn into a daunting task. As I said I could not get Ansible to work with the current Slackware so I gave up and went the way as I mentioned, installing
MySQL-python, lame, libass, x264, xvidcore, urlgrabber, perl-Net-UPnP, lxml, faac, perl-IO-Socket-INET6, perl-http-message, libwww-perl all manually through Slackbuilds.org. Also as I mentioned each one of these has its own dependencies which had to be installed first so it was an intense afternoon. Slackware is not the easiest as you say "package management", but I have been using it since about 2013 or 2014 and have gotten comfortable with its idiosyncrasies. So MythTV is working now that I was able to retrieve the required libicu libraries and transfer them to the problem box. Luckily I run 4 instances of Slackware, in some respects just so I have a "dev" box, so if I hadn't had others running where I hadn't done updates I don't know what I would have done. I have two thumb drives running one ea. Lubuntu and Ubuntu and I will agree Ubuntu's package management is a little easier, especially for the beginner, but once again I am comfortable with Slackware and Slackware is a very stable platform.
Post Reply