I had the same problem (on a different computer) and found that there was an unused copy of the cisco repo config file suffixed “rpmnew”, apparently added by an update, which contains a different domain for the repository url: mirrors.fedoraproject.org
instead of codecs.fedoraproject.org
TLDR; try this:
sudo cp --backup /etc/yum.repos.d/fedora-cisco-openh264.repo.rpmnew /etc/yum.repos.d/fedora-cisco-openh264.repo
And even though the old domain is still valid, it’s even an alias, it fails because the old address is missing “os/”.
$ sudo dnf update openh264
Fedora 39 openh264 (From Cisco) - x86_64 338 B/s | 271 B 00:00
Errors during downloading metadata for repository 'fedora-cisco-openh264':
- Status code: 404 for https://codecs.fedoraproject.org/openh264/39/x86_64/repodata/repomd.xml
If I query the new repo address, I get sent to (note the difference after “x86_64/”):
https://codecs.fedoraproject.org/openh264/39/x86_64/os/repodata/repomd.xml
There was a new version of that config file (fedora-cisco-openh264.repo.rpmnew
) but the old config file which contains the old repository address has not been replaced and is still in use:
$ grep -E baseurl\|metalink /etc/yum.repos.d/fedora-cisco-openh264.repo /etc/yum.repos.d/fedora-cisco-openh264.repo.rpmnew
/etc/yum.repos.d/fedora-cisco-openh264.repo:baseurl=https://codecs.fedoraproject.org/openh264/$releasever/$basearch/
/etc/yum.repos.d/fedora-cisco-openh264.repo:baseurl=https://codecs.fedoraproject.org/openh264/$releasever/$basearch/debug/
/etc/yum.repos.d/fedora-cisco-openh264.repo.rpmnew:metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-$releasever&arch=$basearch
/etc/yum.repos.d/fedora-cisco-openh264.repo.rpmnew:metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-debug-$releasever&arch=$basearch
So if you have that “rpmnew” file too, just copy it:
# cp -via /etc/yum.repos.d/fedora-cisco-openh264.repo /etc/yum.repos.d/fedora-cisco-openh264.repo.old
'/etc/yum.repos.d/fedora-cisco-openh264.repo' -> '/etc/yum.repos.d/fedora-cisco-openh264.repo.old'
# cp -vi /etc/yum.repos.d/fedora-cisco-openh264.repo.rpmnew /etc/yum.repos.d/fedora-cisco-openh264.repo
'/etc/yum.repos.d/fedora-cisco-openh264.repo.rpmnew' -> '/etc/yum.repos.d/fedora-cisco-openh264.repo'
If you don’t have that “.rpmnew” file, edit the “.repo” file and replace the “baseurl” line with the “metalink” line in the first section (after making a backup copy of the file, see command above).
The new repo file should look like this (/etc/yum.repos.d/fedora-cisco-openh264.repo
):
[fedora-cisco-openh264]
name=Fedora $releasever openh264 (From Cisco) - $basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-$releasever&arch=$basearch
type=rpm
enabled=1
metadata_expire=14d
repo_gpgcheck=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=True
[fedora-cisco-openh264-debuginfo]
name=Fedora $releasever openh264 (From Cisco) - $basearch - Debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-debug-$releasever&arch=$basearch
type=rpm
enabled=0
metadata_expire=14d
repo_gpgcheck=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=True