# Programs are still searching for libdav1d.so.4 and now libx264.so.160



## CodeJoule (Jan 12, 2021)

Hey all, it's been a while since I posted.

I upgraded my system a couple months ago and had to create a link from "libdav1d.so.4" to "libdav1d.so.5" in the same directory I found it. Otherwise some web browsers and Telegram would not work. I upgraded again today and I also had to create a link from "libx264.so.160" to "libx264.so.161" because of the same thing happening.

What is the proper way to handle this? Did I handle it well? Will these packages (notably qutebrowser and Telegram) be fixed to point to the new libraries?

Thanks in advance, to whomever may help. 

I should add that linking the libx264 files did not fix qutebrowser. It gives me this error in a window dialog about QtWebEngine: `/usr/local/lib/libavcodec.so.58: Undefined symbol "x264_encoder_open_160"`
Should I make that a new thread?


----------



## Alexander88207 (Jan 12, 2021)

Hello,



CodeJoule said:


> I upgraded my system a couple months ago and had to create a link from "libdav1d.so.4" to "libdav1d.so.5" in the same directory I found it. Otherwise some web browsers and Telegram would not work. I upgraded again today and I also had to create a link from "libx264.so.160" to "libx264.so.161" because of the same thing happening.



Seems like your applications have been not build against the newer librarys.

You have to update multimedia/dav1d and multimedia/libx264 first and then its consumers, if you update your applications from ports.


----------



## CodeJoule (Jan 12, 2021)

Alexander88207 said:


> Hello,
> 
> 
> 
> ...


Hmm. Well, I have installed everything from packages. I don't know why something went wrong. I don't use any ports, except for probably one or two unrelated programs.

I'd like to know why packages went wrong, but this may be a good time to switch to ports. I just hope ~4GB RAM is enough to build qutebrowser/Chromium or Firefox 

Thank you sir!


----------



## Alexander88207 (Jan 12, 2021)

A switch to ports should not be needed, you can do:

`pkg update  -f
pkg upgrade (just to be sure)
pkg install -f chromium qutebrowser libx264 dav1d`


----------



## CodeJoule (Jan 13, 2021)

Alexander88207 said:


> A switch to ports should not be needed, you can do:
> 
> `pkg update  -f
> pkg upgrade (just to be sure)
> pkg install -f chromium qutebrowser libx264 dav1d`


Thank you Alexander, I tried your suggestion (with -f to force reinstallaltion) on those programs and removed the library links I previously made. Qutebrowser still gives me this error in the image here, and Chromium says the same thing in the terminal. Then I tried again with `pkg upgrade -f` to reinstall all packages and I still have the same problem.

It is probably a package problem, unless I am missing something here on my side. Does anyone have Chromium or qutebrowser working after updating? By the way, I am on FreeBSD 12.1-RELEASE-p12.


----------



## Emrion (Jan 13, 2021)

I have a 12.2-RELEASE (latest patch). I upgrade all packages once a week with the latest repository. I have also a 12.1-RELEASE (latest patch) but I upgrade only once a month or so (also with the latest repository).

In both cases, Chromium run without problem or, at least, I have noticed nothing.

I will upgrade all packages on the 12.2-RELEASE tonight and I will report the result here.

Repair missing libraries by linking is rarely a good solution as the real problem remains.


----------



## Emrion (Jan 13, 2021)

So, I report back. Chromium was and is version 87.0.4280.88, before and after upgrade (all packages).
Still no problem.

`pkg info --required-shlibs chromium | grep x264` returns nothing. 
`pkg info | grep x264` gives libx264-0.161.3020.
`pkg info --required-by libx264` returns ffmpeg-4.3.1_9,1.
`pkg info --required-by ffmpeg` gives, among others, chromium.

Are you sure that you have upgraded all your packages?

This kind of mess often comes when you upgrade the softwares one by one instead of upgrading all packages at the same time.


----------



## CodeJoule (Jan 15, 2021)

Emrion said:


> So, I report back. Chromium was and is version 87.0.4280.88, before and after upgrade (all packages).
> Still no problem.
> 
> `pkg info --required-shlibs chromium | grep x264` returns nothing.
> ...


Wow! This helped a lot, thank you. I did not know about this `--required-by` switch, as I am still getting the hang of FreeBSD after about a year of using it on and off.    I realized the problem was that I locked multimedia/ffmpeg from updating via pkg, as I normally build it from ports for LAME (mp3) support. I rebuilt it and now everything is solved; I was able to remove the links I made earlier with no problem.

Thank you again.


----------



## Emrion (Jan 16, 2021)

You have all the details here: pkg-info(8).
In fact, you can also use the short version of switches (-r here). I prefer to use here the long version for some obvious pedagogical reasons.

From my little experience of FreeBSD, I can tell you that it's better to update frequently and all the third-party softwares at once. Locking a package often leads to more or less serious problems. And, of course, avoid mixing ports and packages unless you know exactly what you're doing.


----------

