Spec URL: https://kalev.fedorapeople.org/noopenh264.spec SRPM URL: https://kalev.fedorapeople.org/noopenh264-0.1-1.20231031git6be12ba.fc40.src.rpm Description: Fake implementation of the OpenH264 library we can link from regardless of the actual library being available. Fedora Account System Username: kalev Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=108373319 (Note that the resulting rpms aren't downloadable from koji because we have a redirect in place that sends *openh264* to https://fedoraproject.org/wiki/Non-distributable-rpms - we'll need to adjust it to allow this package and gstreamer1-plugin-openh264, but this can wait until after the package review is done and the infra freeze is over.)
The idea with this package is that we ship a dummy library with openh264 headers and pkg-config file that other packages in Fedora (gstreamer openh264 plugin) can use at build time, and then at run time (after first package update) the dummy implementation gets replaced by the actual openh264 library that is downloaded from Cisco.
Taking this review.
Copr build: https://copr.fedorainfracloud.org/coprs/build/6585248 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2247274-noopenh264/fedora-rawhide-x86_64/06585248-noopenh264/fedora-review/review.txt Please take a look if any issues were found. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
I'm wondering, instead of needing a replacement dance, if it would make more sense for this to be a dlopen wrapper on top of Cisco's openh264, sort of like libglvnd does on top of mesa (and/or proprietary implementations), or ocl-icd does on top of several implementations. In other words, as far as everything else is concerned, this would be "the" openh264 and provides headers, link libs, pkgconfig, etc. that ffmpeg, gstreamer1-plugins-bad-free, and mozilla-openh264 (or whatever would provide it going forward) could build against in Fedora, and then Cisco openh264 would provide (just) the actual implementation (when installed). That would probably involve renaming some packages and libraries, but it avoids the need to replace one thing with another (which seems problematic particularly wrt flatpaks, if not in general).
Oops, I just noticed that I put the pkg-config file in a wrong subpackage. That also explains why I failed to make 'Conflicts: pkg-config(openh264)' work earlier, hah! Spec URL: https://kalev.fedorapeople.org/noopenh264.spec SRPM URL: https://kalev.fedorapeople.org/noopenh264-0.1-2.20231031git6be12ba.fc40.src.rpm
Created attachment 1996403 [details] The .spec file difference from Copr build 6585248 to 6585584
Copr build: https://copr.fedorainfracloud.org/coprs/build/6585584 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2247274-noopenh264/fedora-rawhide-x86_64/06585584-noopenh264/fedora-review/review.txt Please take a look if any issues were found. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
> I'm wondering, instead of needing a replacement dance, if it would make more sense for this to be a dlopen wrapper on top of Cisco's openh264, sort of like libglvnd does on top of mesa (and/or proprietary implementations), or ocl-icd does on top of several implementations. In other words, as far as everything else is concerned, this would be "the" openh264 and provides headers, link libs, pkgconfig, etc. that ffmpeg, gstreamer1-plugins-bad-free, and mozilla-openh264 (or whatever would provide it going forward) could build against in Fedora, and then Cisco openh264 would provide (just) the actual implementation (when installed). That would probably involve renaming some packages and libraries, but it avoids the need to replace one thing with another (which seems problematic particularly wrt flatpaks, if not in general). That would certainly be an option, and a fairly good one I think! It needs a bit more work though, which I am not ready to commit to right now, but maybe we can work towards that in the future. The flatpak replacement is not an issue at all, I have it all figured out and working locally - I actually started looking into this in order to make the flatpak openh264 extension easier. If we don't go for "noopenh264" for all of Fedora, I'd like to bring it in just for Fedora flatpaks.
* Thu Nov 02 2023 Kalev Lember <klember> - 0.1.0~openh264_2.3.1-1 - Switch to using upstream openh264-2.3.1 tag - Make sure the matching openh264 version is listed as part of the rpm version tag - Stop using forge macros to get better control over the version and release tags Spec URL: https://kalev.fedorapeople.org/noopenh264.spec SRPM URL: https://kalev.fedorapeople.org/noopenh264-0.1.0~openh264_2.3.1-1.fc40.src.rpm
Created attachment 1996840 [details] The .spec file difference from Copr build 6585584 to 6592700
Copr build: https://copr.fedorainfracloud.org/coprs/build/6592700 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2247274-noopenh264/fedora-rawhide-x86_64/06592700-noopenh264/fedora-review/review.txt Please take a look if any issues were found. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Review notes: * Package follows Fedora Packaging Guidelines * Package builds and installs * Package licensing is correctly handled * No serious issues from rpmlint PACKAGE APPROVED.
Please make sure you make an EPEL 9 branch for this too, thanks!
Thanks for the review, Neal!
The Pagure repository was created at https://src.fedoraproject.org/rpms/noopenh264
I've built the package for rawhide and will follow up with epel9 once we have rawhide sorted out. So far it's parked in a side tag in order to avoid breaking composes as *openh264* downloads are blocked in kojipkgs. Here's my ansible PR to unblock it in kojipkgs: https://pagure.io/fedora-infra/ansible/pull-request/1620 - this needs to land first before we can tag noopenh264 in f40.