In my opinion, all these additional steps were unnecessary. I have been using Fedora Linux 42 KDE Plasma Desktop Edition for a while. As far as I can see, the noopenh264 package is only included in the live media. For now, the Fedora Linux 42 setup doesn’t have the issue that Tumbleweed users have been facing for about a month.
I’m still seeing problems, even though I thought the repos were fixed now?
$ sudo zypper dup
Refreshing service 'openSUSE'.
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: 1: problem with the installed mozilla-openh264-2.3.1-2.suse1699.101.x86_64
Problem: 2: nothing provides 'libopenh264.so.7' needed by the to be installed gstreamer-plugin-openh264-1.22.2-1.suse1699.1.i586
Problem: 1: problem with the installed mozilla-openh264-2.3.1-2.suse1699.101.x86_64
Solution 1: install mozilla-openh264-2.6.0-2.suse1699.10.x86_64 from vendor openSUSE
replacing mozilla-openh264-2.3.1-2.suse1699.101.x86_64 from vendor obs://build.opensuse.org/openSUSE:Factory
Solution 2: keep obsolete mozilla-openh264-2.3.1-2.suse1699.101.x86_64
Choose from above solutions by number or skip, retry or cancel [1/2/s/r/c/d/?] (c): s
Problem: 2: nothing provides 'libopenh264.so.7' needed by the to be installed gstreamer-plugin-openh264-1.22.2-1.suse1699.1.i586
Solution 1: install gstreamer-plugins-bad-1.26.4-2.1.x86_64 from vendor openSUSE
replacing gstreamer-plugin-openh264-1.24.12-1.suse1699.2.x86_64 from vendor obs://build.opensuse.org/openSUSE:Factory
Solution 2: keep obsolete gstreamer-plugins-bad-1.26.2-2.1.x86_64
Solution 3: break gstreamer-plugin-openh264-1.22.2-1.suse1699.1.i586 by ignoring some of its dependencies
Choose from above solutions by number or skip, retry or cancel [1/2/3/s/r/c/d/?] (c):
Two times solution 1…
Thanks. I thought the vendor change thing was supposed to have been sorted by 1247109 – vendor mismatch on nopenh264 and libopenh264 on Tumbleweed though? As discussed in https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/KKVOKIDKJGK6XOMHMNRWPK63JG3EBX4E/#4VBONKINYQ35JUZMMPGXTJL3OT2JKVXT
Also, for problem 2, won’t solution 1 mean I’ll lose gstreamer-plugin-openh264?
You cannot change vendor of the already installed packages.
So this can’t be made to be an unattended upgrade?
Define “this”. Future updates will be unattended (hopefully). You cannot go back in time and change packages released in the past.
I’m just worried that there will be thousands of Tumbleweed boxes that were previously automatically upgrading, that will be stuck in an early-July snapshot. From what I read, I thought everything was going to be automatically fixed and “dup” upgrades would once again resume seamlessly, once Cisco released their packages. I was just making sure nothing had been overlooked. If it requires a manual fix, that’s OK, but I had hoped (since I got rid of packman) that such things were behind me!
The “Vendor” in the updated package has changed so a switch is needed. Hopefully that will not change in the near future, please see bug 1247109
Eh, how was that set up? By default there is no automatic upgrading.
OK, so I’ve done two times solution 1 and mozilla-openh264 has changed vendor from obs://build.opensuse.org/openSUSE:Factory → openSUSE, and gstreamer-plugin-openh264 was removed as it said it would do.
Now if I try to install gstreamer-plugin-openh264 I get:
$ sudo zypper in gstreamer-plugin-openh264
[sudo] password for root:
Refreshing service 'openSUSE'.
Building repository 'repo-non-oss' cache ................................................................................................................................................[done]
Building repository 'repo-openh264' cache ...............................................................................................................................................[done]
Building repository 'repo-oss' cache ....................................................................................................................................................[done]
Building repository 'update-tumbleweed' cache ...........................................................................................................................................[done]
Loading repository data...
Reading installed packages...
Resolving package dependencies...
Problem: 1: the installed gstreamer-plugins-bad-1.26.4-2.1.x86_64 obsoletes 'gstreamer-plugin-openh264 < 1.26.0' provided by the to be installed gstreamer-plugin-openh264-1.22.2-1.suse1699.1.x86_64
Solution 1: do not install gstreamer-plugin-openh264-1.22.2-1.suse1699.1.x86_64
Choose the above solution using '1' or cancel using 'c' [1/c/d/?] (c):
So, um, help?
EDIT:
$ sudo zypper lr -d
# | Alias | Name | Enabled | GPG Check | Refresh | Keep | Priority | Type | URI | Service
--+----------------------------+-------------------+---------+-----------+---------+------+----------+--------+----------------------------------------------------------+---------
1 | dotnet | Microsoft .NET | Yes | (r ) Yes | No | - | 99 | rpm-md | https://packages.microsoft.com/opensuse/15/prod/ |
2 | openSUSE:repo-non-oss | repo-non-oss | Yes | (r ) Yes | Yes | - | 99 | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/non-oss | openSUSE
3 | openSUSE:repo-openh264 | repo-openh264 | Yes | (r ) Yes | Yes | - | 99 | rpm-md | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed | openSUSE
4 | openSUSE:repo-oss | repo-oss | Yes | (r ) Yes | Yes | - | 99 | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/oss | openSUSE
5 | openSUSE:repo-oss-debug | repo-oss-debug | No | ---- | ---- | - | 99 | rpm-md | http://cdn.opensuse.org/debug/tumbleweed/repo/oss | openSUSE
6 | openSUSE:repo-oss-source | repo-oss-source | No | ---- | ---- | - | 99 | rpm-md | http://cdn.opensuse.org/source/tumbleweed/repo/oss | openSUSE
7 | openSUSE:update-tumbleweed | update-tumbleweed | Yes | (r ) Yes | Yes | - | 99 | rpm-md | http://cdn.opensuse.org/update/tumbleweed | openSUSE
and I did “sudo zypper ref --force” beforehand. Maybe I should’ve waited longer before dupping…
I meant people who have configured e.g. KDE Plasma to do updates automatically.
gstreamer-plugin-openh264 was removed
This is intentional.
If that would be thousands, we’d see a lot more issues here and on other platforms
This is intentional.
OK so I’m very confused now.
The gstreamer-plugins lineup has been upgraded and streamlined, you should have most gstreamer packages at version 1.26.4-xxx now, so why are you confused if a package of the 1.22.2-xxx lineup is obsoleted and not needed anymore?
I thought I had researched this issue thoroughly, but it was not clear to me that gstreamer-plugin-openh264 was no longer needed. So, you’re saying gstreamer-plugins-bad contains openh264 now?
So, you’re saying gstreamer-plugins-bad contains openh264 now?
No, I’m saying that it is not needed anymore. The long story is here.
The problem until a couple of days ago was that a missing libopenh264-8 published by Cisco made it impossible to decode h264 videos if you uninstalled the obsolete gstreamer-plugin-openh264. That problem is fixed now.
Actually it does provide the necessary codecs.
If you look at the spec file of gstreamer-plugins-bad you can find the relevant lines:
Provides: gstreamer-plugin-openh264 = %{version}
Obsoletes: gstreamer-plugin-openh264 < 1.26.0
Provides: gstreamer-1.20-plugin-openh264 = 1.22.0
Obsoletes: gstreamer-1.20-plugin-openh264 < 1.22.0
and:
%{_libdir}/gstreamer-%{gst_branch}/libgstopenh264.so
Now that the missing libopenh264-8 is available from Cisco, which is a build requirement for those files, it can be build with that codec.
At least this is my understanding and I also found it confusing.
I’m not the best person to clear the confusion (not being a developer myself) but let’s try anyway.
gstreamer-plugins-bad version 1.26.xx has links to openh264 but the actual decoder code is (or is not) elsewhere, in a library named libopenh264 that has two versions.
If you have only the oss-repo enabled, you end up with:
LT-B:~ # zypper --no-refresh info --provides libopenh264-8-2.6.0~noopenh264-1.1
Loading repository data...
Reading installed packages...
Information for package libopenh264-8-2.6.0~noopenh264-1.1:
-----------------------------------------------------------
Repository : repo-oss
Name : libopenh264-8
Version : 2.6.0~noopenh264-1.1
Arch : x86_64
Vendor : openSUSE
Installed Size : 41.9 KiB
Installed : Yes
Status : up-to-date
Source package : noopenh264-2.6.0~noopenh264-1.1.src
Upstream URL : https://codeberg.org/distro-openh264/noopenh264
Summary : H.264 codec library (dummy implementation)
Description :
OpenH264 is a codec library which supports H.264 encoding and
decoding. It is suitable for use in real time applications such as
WebRTC.
This package contains a dummy implementation for applications to
link to OpenH264.
Provides : [3]
libopenh264.so.8()(64bit)
libopenh264-8 = 2.6.0~noopenh264-1.1
libopenh264-8(x86-64) = 2.6.0~noopenh264-1.1
LT-B:~ #
and the link ends in a stub, the actual decoder code is not there and you cannot play h264 videos.
But if you have the repo-openh264 enabled, you end up with:
LT-B:~ # zypper --no-refresh info --provides libopenh264-8-2.6.0-2.suse1699.10
Loading repository data...
Reading installed packages...
Information for package libopenh264-8-2.6.0-2.suse1699.10:
----------------------------------------------------------
Repository : repo-openh264
Name : libopenh264-8
Version : 2.6.0-2.suse1699.10
Arch : x86_64
Vendor : openSUSE
Installed Size : 1.3 MiB
Installed : Yes
Status : up-to-date
Source package : openh264-2.6.0-2.suse1699.10.src
Upstream URL : https://www.openh264.org/
Summary : H.264 codec library
Description :
OpenH264 is a codec library which supports H.264 encoding and
decoding. It is suitable for use in real time applications such as
WebRTC.
This package contains libraries used by applications that use openh264.
Provides : [3]
libopenh264.so.8()(64bit)
libopenh264-8 = 2.6.0-2.suse1699.10
libopenh264-8(x86-64) = 2.6.0-2.suse1699.10
LT-B:~ #
the link ends in the actual decoder code and you can happily watch h264 videos.
This package has a higher version and the same “vendor” so it is preferred during a zypper dup if the repo-openh264 is enabled.
Either way, the gstreamer-plugins-bad code does not change and whether or not it “contains” h264 depends on the meaning that you assign to that assertion.