Bug 2349044 - Review Request: rio - a hardware-accelerated GPU terminal emulator
Summary: Review Request: rio - a hardware-accelerated GPU terminal emulator
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-02-28 17:24 UTC by git.vmg
Modified: 2025-03-05 15:23 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description git.vmg 2025-02-28 17:24:44 UTC
Spec URL: https://raw.githubusercontent.com/vedantmgoyal9/rio-rpm/refs/heads/main/rio.spec
SRPM URL: <srpm info here>
Description: Rio terminal is a hardware-accelerated GPU terminal emulator, focusing
to run in desktops and browsers.
Fedora Account System Username: vedantmgoyal

Comment 1 Fedora Review Service 2025-02-28 17:25:03 UTC
Cannot find any valid SRPM URL for this ticket. Common causes are:

- You didn't specify `SRPM URL: ...` in the ticket description
  or any of your comments
- The URL schema isn't HTTP or HTTPS
- The SRPM package linked in your URL doesn't match the package name specified
  in the ticket summary


---
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 2 Ben Beasley 2025-03-01 14:41:50 UTC
It looks like you forgot to upload a SRPM file, which is mandatory for review.

It also looks like you forgot to deal with a missing license file in the crate:

  # FIXME: no license files detected

Finally, did you try test-building this? If I make assumptions about what rio-fix-metadata-auto.diff might have contained and try a mock-build, it looks like there are a lot of dependencies that would need to be packaged, updated, or patched to allow a slightly older or newer version:

Problem 1: nothing provides requested (crate(copa) >= 0.2.7 with crate(copa) < 0.3.0~)
 Problem 2: nothing provides requested (crate(corcovado/default) >= 0.2.7 with crate(corcovado/default) < 0.3.0~)
 Problem 3: nothing provides requested (crate(dirs/default) >= 6.0.0 with crate(dirs/default) < 7.0.0~)
 Problem 4: nothing provides requested (crate(notify/default) >= 7.0.0 with crate(notify/default) < 8.0.0~)
 Problem 5: nothing provides requested (crate(rio-backend/default) >= 0.2.7 with crate(rio-backend/default) < 0.3.0~)
 Problem 6: nothing provides requested (crate(rio-backend/wayland) >= 0.2.7 with crate(rio-backend/wayland) < 0.3.0~)
 Problem 7: nothing provides requested (crate(rio-backend/x11) >= 0.2.7 with crate(rio-backend/x11) < 0.3.0~)
 Problem 8: nothing provides requested (crate(rio-window) >= 0.2.7 with crate(rio-window) < 0.3.0~)
 Problem 9: nothing provides requested (crate(rio-window/wayland) >= 0.2.7 with crate(rio-window/wayland) < 0.3.0~)
 Problem 10: nothing provides requested (crate(rio-window/wayland-dlopen) >= 0.2.7 with crate(rio-window/wayland-dlopen) < 0.3.0~)
 Problem 11: nothing provides requested (crate(rio-window/x11) >= 0.2.7 with crate(rio-window/x11) < 0.3.0~)
 Problem 12: nothing provides requested (crate(teletypewriter/default) >= 0.2.7 with crate(teletypewriter/default) < 0.3.0~)
 Problem 13: nothing provides requested (crate(unicode-width-16/default) >= 0.1.0 with crate(unicode-width-16/default) < 0.2.0~)
 Problem 14: nothing provides requested (crate(url/default) >= 2.5.4 with crate(url/default) < 3.0.0~)
 Problem 15: nothing provides requested (crate(wgpu/default) >= 24.0.1 with crate(wgpu/default) < 25.0.0~)

Comment 3 git.vmg 2025-03-01 15:03:37 UTC
Hello,  

I need some help with missing dependencies. Should I package them individually, or is there some other way?  

Project's GitHub Repository: https://github.com/raphamorim/rio
Copr: https://copr.fedorainfracloud.org/coprs/vedantmgoyal/rio/

You can check the repository for reference. When I run `rust2rpm`, I get a license file error, and I'm unsure how to resolve it. Since I don’t know the exact issue, I’m not sure how to communicate it to the maintainer. For now, I’ve added the `--ignore-missing-license-files` flag to generate a spec file, but I’m still unable to build it successfully due to the dependency error.

Comment 4 Ben Beasley 2025-03-05 15:23:44 UTC
(In reply to git.vmg from comment #3)
> Hello,  
> 
> I need some help with missing dependencies. Should I package them
> individually, or is there some other way?

Yes, you should package them individually. See https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_vendored_dependencies. This could end up being a reasonably large number of packages, but that’s the nature of a relatively complex application like this.

In some cases, the dependency may already be in Fedora, but with a version that is older or newer than what upstream wants.

For example, the package wants (crate(dirs/default) >= 6.0.0 with crate(dirs/default) < 7.0.0~), and we have rust-dirs 5.0.1. See bug 2337230. The options would be, (1) determine by a combination of reading diffs/changelogs and practical testing that you can safely patch the version range, and do so, or (2) ask the maintainer to update, and help coordinate it if you are able. A SemVer-breaking update like that needs to be coordinated with dependent packages (possibly updating them or patching them to allow the new version), or a compat package for the old version needs to be introduced if that’s not practical.

Another example is url: upstream wants 2.5.4, but 2.5.3 switched to ICU4X as the Unicode backend, which means we have to package dozens of new crates as dependencies. This is desirable, but still a work in progress, so this is a case where you’ll have to just loosen the version bound to allow 2.5.2.

> 
> Project's GitHub Repository: https://github.com/raphamorim/rio
> Copr: https://copr.fedorainfracloud.org/coprs/vedantmgoyal/rio/
> 
> You can check the repository for reference. When I run `rust2rpm`, I get a
> license file error, and I'm unsure how to resolve it. Since I don’t know the
> exact issue, I’m not sure how to communicate it to the maintainer. For now,
> I’ve added the `--ignore-missing-license-files` flag to generate a spec
> file, but I’m still unable to build it successfully due to the dependency
> error.

I opened an upstream PR to fix missing license files in future releases: https://github.com/raphamorim/rio/pull/1003

Until that’s merged and released, you can use something like this in rust2rpm.toml to patch in the license file:

[[package.extra-sources]]
number = 10
file = "https://github.com/raphamorim/rio/raw/refs/tags/v%{version}/LICENSE"
comments = [
  """\
  Missing MIT license text; see \
  “Add missing LICENSE files to several workspace crates,” \
  https://github.com/raphamorim/rio/pull/1003\
  """,
]

[scripts.prep]
pre = [
  "cp -p '%{SOURCE10}' .",
]

Then, you’ll have to add this to "%files devel":

%license %{crate_instdir}/LICENSE


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