Packman and Tumbleweed-OSS offer conflicting packages for identical codec libraries

As this issue is partly related to the Packman repositories it made sense not to report it on the openSUSE bug tracker. However I’m opening this thread to draw attention to the problem and ask if there’s a workaround in case others are experiencing it.

Last night’s Tumbleweed snapshot introduced a major issue with codecs, apparently due to bad package naming; The openSUSE-OSS repository offers one version of the codec files, whereas the Packman repository offers the same base version but with another number added at the end. Since the openSUSE repo only offers codecs with some formats due to ancient patent issues while Packman offers full functionality, yet both can be installed at the same time, some applications don’t know what to use as different ones are compiled / packaged to look for a different library. Currently I have both installed to avoid applications not starting up, but the Firefox web browser has issues with mp4 files including randomly not being able to play Youtube videos. A list of affected packages includes:

libavutil56
libswscale5
libswresample3
libpostproc55
libavcodec58
libavformat58
libavfilter7
libavdevice58

For example, if you open the YaST - Software Management and look for libavcodec you get two packages for the same version: “libavcodec58” (openSUSE) and “libavcodec58_91” (Packman). That extra “_91” should not exist, it should be a replacement for the same package instead of a different one entirely! Installing either one, either the other, either both will get some applications working properly but upset others. Is the issue known and a fix in the works?

https://i.imgur.com/ODu5Xh2.png

That’s also being discussed in another thread:
https://forums.opensuse.org/showthread.php/541543-Another-Problem-With-Today-s-Update

I would just wait a day or two and see if it is taken care of.

Thanks, will do. The broken Youtube videos show up in Chromium so I have a workaround for the time being.

The following versions exist and are installed:

 erlangen:~ # zypper se -is libavcodec58
Loading repository data...
Reading installed packages...

S | Name            | Type    | Version   | Arch   | Repository
--+-----------------+---------+-----------+--------+------------------
i | libavcodec58    | package | 4.2.3-4.5 | x86_64 | (System Packages)
i | libavcodec58_91 | package | 4.3.1-4.1 | x86_64 | Packman
erlangen:~ # 

libavcodec58_91 is used by vlc, all other applications use libavcodec58. Note the label “System Packages”. Currently no version is available in the repos:

erlangen:~ # zypper dup --allow-vendor-change --auto-agree-with-licenses --allow-downgrade 
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
2 Problems:
Problem: libavfilter7_85-4.3.1-4.1.x86_64 requires libavresample4_0 = 4.3.1-4.1, but this requirement cannot be provided
Problem: libavfilter7-4.2.3-4.5.x86_64 requires libavcodec58 = 4.2.3-4.5, but this requirement cannot be provided

Problem: libavfilter7_85-4.3.1-4.1.x86_64 requires libavresample4_0 = 4.3.1-4.1, but this requirement cannot be provided
  not installable providers: libavresample4_0-4.3.1-4.1.i586[Packman]
                   libavresample4_0-4.3.1-4.1.x86_64[Packman]
 Solution 1: deinstallation of handbrake-cli-1.3.3-2.2.x86_64
 Solution 2: deinstallation of libavfilter7-4.2.3-4.5.x86_64
 Solution 3: install handbrake-cli-1.3.3-3.1.i586 despite the inferior architecture
 Solution 4: keep obsolete handbrake-cli-1.3.3-2.2.x86_64
 Solution 5: break libavfilter7_85-4.3.1-4.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/5/s/r/c/d/?] (c): 
erlangen:~ # 

None of the above options is acceptable. Keeping the obsolete versions switches all packages from packman to repo-oss, resulting in crippled applications. Thus I rolled back from snapshot 20200714 to 20200710.

Snapper doesn’t seem to be helping here.
I rolled back to two days ago but found that Netflix/Disney still won’t play any content.

As well as twice trying Snapper rollback to two days ago - to no effect - i also tried updating to the latest release with the fix.
Amazon/Netflix/Disney all broken.

When I did the update yesterday to Wednesdays release, i always picked the option that suggested packman with no vendor change.
Is it better for me to simply do a clean install of tumbleweed?

https://forums.opensuse.org/entry.php/190-Handbrake-crashes-quot-Illegal-Instruction-(core-dumped)-quot

Snapshot 20200715 just fixed everything for me. Thanks everyone!

[quote="“karlmistelberger,post:7,topic:141338”]

https://forums.opensuse.org/entry.php/190-Handbrake-crashes-quot-Illegal-Instruction-(core-dumped)-quot[/QUOTE]

“As well as twice trying Snapper rollback to two days ago - to no effect - i also tried updating to the latest release with the fix.
Amazon/Netflix/Disney all broken.”

I’m running the latest release. Still bust.

Shall i just do a clean install of todays release (20200715), is that likely to fix things if an upgrade has not worked?

Repeat the switch of system packages to packman

zypper dup --from packman --allow-vendor-change

(except replace “packman” by the name that you are using for the packman repo.

Then, when done, try to remove any orphaned packages. In my opinion, the best way to do that is with Yast Software Management. Select the “Repositories” view (use the “VIew” tab to select).

Then look for “Secondary filter” and select “Unmaintained Packages”. Those are the orphans (packages not found in any enable repo). Try deleting them.

I prefer to do it this way, because Yast will present a popup with any conflicts. In case of conflicts, you might want to temporarily keep that package anyway. If you remove orphans with “zypper remove”, then sometimes “zypper” just goes ahead and also removes conflicting packages without asking for approval.

thank you.

not really knowing what i had called my packman repos i opted for the option of simply reinstalling TW 20200715 into the same mount points.
in the hope of just re-running the tumbleweed multimedia guide… but i can see it is no longer stick’ied in the \multimedia subforum.

is this deliberate, because the recent snafu has invalidated that advice for new installs?

Open Yast Software Management.

Select the Repository views. You can do that with the “View” tab.

You will see a list of repositories. When you click on one, you will get a list of what is available in that repo.

My guess is that you will quickly recognize which is packman.

Then, after selecting the packman repo, there should be a place you can click (near the top of the screen) to “Switch system packages” to that rep. So do that.

thanks, will try for next time.

from the perspective of a fresh install needing the new codecs specified from packman, is there a reason why the multimedia guid for TW which listed those codecs as konsole commands has disappeared?

zypper can be puzzling. Removed unneeded packages identified earlier by running " zypper packages --unneeded|grep Packman". Then I moved everything back to oss using " zypper dup --from openSUSE-20191106-0 --allow-vendor-change" and forward to Packman by running “zypper dup --from Packman --allow-vendor-change”. Following packages previously needed were now flagged unneeded:

erlangen:~ # zypper packages --unneeded|grep Packman
i | Packman             | libavformat56                       | 2.8.15-7.32                   | x86_64
i | Packman             | libavresample2                      | 2.8.15-7.32                   | x86_64
i | Packman             | libdca0                             | 0.0.7-1.3                     | x86_64
i | Packman             | libfaad2                            | 2.9.2-2.3                     | x86_64
i | Packman             | libpostproc53                       | 2.8.15-7.32                   | x86_64
i | Packman             | libswscale3                         | 2.8.15-7.32                   | x86_64
erlangen:~ # 

These could be safely removed. Confirmed by “zypper verify”. zypper may work different from what you are assuming it does. Anyway removing orphaned and unneeded packages helps avoiding conflicts.

Here’s part of the output from my update to 20200715:


The following 6 NEW packages are going to be installed:
  libavdevice58_10 libavfilter7_85 libavresample4_0 libcfitsio9 libxxhash0
  raleway-fonts

The following 10 packages are going to be REMOVED:
  libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4
  libavutil56 libcfitsio8 libpostproc55 libswresample3 libswscale5

I didn’t check all, but most of those NEW packages are from packman repo (I give it a better priority). Most of the REMOVED packages are one that were switched from packman to the main repo at the previous update.

The changes for the update to 20200716 did not seem relevant to the issues being discussed in this thread.