Bug 2241245 - Review Request: rust-gst-plugin-gtk4 - GStreamer GTK 4 Sink element and Paintable widget
Summary: Review Request: rust-gst-plugin-gtk4 - GStreamer GTK 4 Sink element and Paint...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Fabio Valentini
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2241237 2241239 2241242 2241244
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-09-28 19:48 UTC by Kalev Lember
Modified: 2023-09-30 16:31 UTC (History)
2 users (show)

Fixed In Version: rust-gst-plugin-gtk4-0.11.0-2.fc39 rust-gst-plugin-gtk4-0.11.0-2.fc40
Clone Of:
Environment:
Last Closed: 2023-09-30 16:31:22 UTC
Type: ---
Embargoed:
decathorpe: fedora-review+


Attachments (Terms of Use)

Description Kalev Lember 2023-09-28 19:48:46 UTC
Spec URL: https://kalev.fedorapeople.org/rust-gst-plugin-gtk4.spec
SRPM URL: https://kalev.fedorapeople.org/rust-gst-plugin-gtk4-0.10.10-1.fc40.src.rpm
Description:
GStreamer GTK 4 Sink element and Paintable widget.

Fedora Account System Username: kalev

Comment 1 Fabio Valentini 2023-09-28 22:36:43 UTC
Hm, this currently doesn't build, because it depends on gdk4-wayland / gdk4-x11 v0.6, but we have v0.7 in Fedora.

It might be better to update all the GStreamer bindings and package the latest version of gst-plugin-gtk4 than to create even more compat packages?

Comment 2 Kalev Lember 2023-09-28 22:42:26 UTC
Ah sorry, I already requested the missing compat packages and the builds just finished for rawhide and f39-build-side-74672

Comment 3 Fabio Valentini 2023-09-28 22:45:27 UTC
*sigh* oh, well

I'll finish up the review tomorrow then.

Comment 4 Kalev Lember 2023-09-28 22:55:55 UTC
Awesome! I really appreciate all the reviews.

Comment 5 Kalev Lember 2023-09-28 23:38:41 UTC
Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=106862047

Comment 6 Kalev Lember 2023-09-29 15:15:49 UTC
Now that the rust gstreamer bindings are updated to 0.21.x, I was able to update gst-plugin-gtk4 to the latest version as well:

* Fri Sep 29 2023 Kalev Lember <klember> - 0.11.0-1
- Update to 0.11.0
- Downgrade cargo-c dep to the version available in Fedora

Spec URL: https://kalev.fedorapeople.org/rust-gst-plugin-gtk4.spec
SRPM URL: https://kalev.fedorapeople.org/rust-gst-plugin-gtk4-0.11.0-1.fc40.src.rpm

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=106885848

Comment 7 Fabio Valentini 2023-09-29 17:46:36 UTC
Some minor issues:

1. The License tag for the "source" package in line 26 should only contain the license of the project itself (MPL-2.0).
The licenses for statically linked Rust dependencies should only go into the License tag for the gstreamer1-plugin-gtk4 subpackage.

2. You can use the %cargo_cbuild and %cargo_install macros instead of using the "private" %__cargo macro to manually call these commands.
I recently added them to the cargo-c package and haven't yet had the opportunity to switch the gst-plugin-reqwest package to them.

3. Why do you use the `-a` (--all-features) flag for %cargo_generate_buildrequires / %cargo_build / %cargo_install / %cargo_test?
It doesn't look like the shared object is built with "--all-features", so I don't see why it should be necessary. Or did you *want* to build the plugin with all features enabled? Then the "--all-features" is missing from cbuild / cinstall calls *and* from the %cargo_license_summary / %cargo_license macro calls.

4. It would be great if you could add virtual Provides for the upstream name to the plugin subpackage as well, similar to what we've done in gst-plugin-reqwest. The naming convention for GStreamer plugins in Fedora is rather weird since it doesn't match upstream names at all, so providing the upstream name can prevent some confusion here, I think.

Comment 8 Kalev Lember 2023-09-29 19:20:44 UTC
(In reply to Fabio Valentini from comment #7)
> Some minor issues:
> 
> 1. The License tag for the "source" package in line 26 should only contain
> the license of the project itself (MPL-2.0).
> The licenses for statically linked Rust dependencies should only go into the
> License tag for the gstreamer1-plugin-gtk4 subpackage.

Ohh, oops, I had added it to the wrong package. Fixed!


> 2. You can use the %cargo_cbuild and %cargo_install macros instead of using
> the "private" %__cargo macro to manually call these commands.
> I recently added them to the cargo-c package and haven't yet had the
> opportunity to switch the gst-plugin-reqwest package to them.

Nice, I didn't know about the new macros! That makes it much cleaner.


> 3. Why do you use the `-a` (--all-features) flag for
> %cargo_generate_buildrequires / %cargo_build / %cargo_install / %cargo_test?
> It doesn't look like the shared object is built with "--all-features", so I
> don't see why it should be necessary. Or did you *want* to build the plugin
> with all features enabled? Then the "--all-features" is missing from cbuild
> / cinstall calls *and* from the %cargo_license_summary / %cargo_license
> macro calls.

I was working around a build failure without really understanding what --all-features does. Looks like updated 0.11.0 builds fine without it so I just went ahead and removed -a from everywhere :)

I'll ask you if the issue should resurface. Not entirely sure what was going on there.


> 4. It would be great if you could add virtual Provides for the upstream name
> to the plugin subpackage as well, similar to what we've done in
> gst-plugin-reqwest. The naming convention for GStreamer plugins in Fedora is
> rather weird since it doesn't match upstream names at all, so providing the
> upstream name can prevent some confusion here, I think.

Sure, added.


* Fri Sep 29 2023 Kalev Lember <klember> - 0.11.0-2
- Package review fixes (#2241245)
- Fix source package license to only contain the license of the project
  itself
- Add virtual provides for gst-plugin-gtk4 to gstreamer1-plugin-gtk4
  subpackage
- Use cargo_cbuild and cargo_cinstall macros
- Drop inadvertent --all-features flag

Spec URL: https://kalev.fedorapeople.org/rust-gst-plugin-gtk4.spec
SRPM URL: https://kalev.fedorapeople.org/rust-gst-plugin-gtk4-0.11.0-2.fc40.src.rpm

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=106892373

Diff with the latest changes if it makes it easier for you to review changes: https://paste.centos.org/view/97e99661

Comment 9 Fabio Valentini 2023-09-29 22:14:48 UTC
Thanks, the diff makes it easy indeed.
Package looks good to me (not pasting the complete checklist here since it would now be all [x]s anyway).

APPROVED

Comment 10 Kalev Lember 2023-09-29 22:18:18 UTC
Thanks a lot for the review!

Comment 11 Fedora Admin user for bugzilla script actions 2023-09-29 22:19:03 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-gst-plugin-gtk4

Comment 12 Kalev Lember 2023-09-30 16:31:22 UTC
Package imported and built.


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