Bug 2247274 - Review Request: noopenh264 - Fake implementation of the OpenH264 library
Summary: Review Request: noopenh264 - Fake implementation of the OpenH264 library
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
URL: https://gitlab.com/freedesktop-sdk/no...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-10-31 16:12 UTC by Kalev Lember
Modified: 2023-11-06 11:08 UTC (History)
3 users (show)

Fixed In Version: noopenh264-0.1.0~openh264_2.3.1-1.fc40
Clone Of:
Environment:
Last Closed: 2023-11-06 11:08:25 UTC
Type: ---
Embargoed:
ngompa13: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 6585248 to 6585584 (953 bytes, patch)
2023-10-31 17:36 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 6585584 to 6592700 (1.97 KB, patch)
2023-11-02 21:42 UTC, Fedora Review Service
no flags Details | Diff

Description Kalev Lember 2023-10-31 16:12:58 UTC
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.)

Comment 1 Kalev Lember 2023-10-31 16:14:23 UTC
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.

Comment 2 Neal Gompa 2023-10-31 16:17:04 UTC
Taking this review.

Comment 3 Fedora Review Service 2023-10-31 16:18:57 UTC
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.

Comment 4 Yaakov Selkowitz 2023-10-31 17:28:56 UTC
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).

Comment 5 Kalev Lember 2023-10-31 17:29:57 UTC
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

Comment 6 Fedora Review Service 2023-10-31 17:36:14 UTC
Created attachment 1996403 [details]
The .spec file difference from Copr build 6585248 to 6585584

Comment 7 Fedora Review Service 2023-10-31 17:36:18 UTC
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.

Comment 8 Kalev Lember 2023-10-31 17:37:50 UTC
> 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.

Comment 9 Kalev Lember 2023-11-02 21:37:35 UTC
* 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

Comment 10 Fedora Review Service 2023-11-02 21:42:23 UTC
Created attachment 1996840 [details]
The .spec file difference from Copr build 6585584 to 6592700

Comment 11 Fedora Review Service 2023-11-02 21:42:26 UTC
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.

Comment 12 Neal Gompa 2023-11-04 13:49:53 UTC
Review notes:

* Package follows Fedora Packaging Guidelines
* Package builds and installs
* Package licensing is correctly handled
* No serious issues from rpmlint

PACKAGE APPROVED.

Comment 13 Neal Gompa 2023-11-04 13:50:20 UTC
Please make sure you make an EPEL 9 branch for this too, thanks!

Comment 14 Kalev Lember 2023-11-06 07:06:17 UTC
Thanks for the review, Neal!

Comment 15 Fedora Admin user for bugzilla script actions 2023-11-06 07:06:58 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/noopenh264

Comment 16 Kalev Lember 2023-11-06 11:08:25 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.