Bug 2262135 - Review Request: rmtfs - Qualcomm Remote Filesystem Service Implementation
Summary: Review Request: rmtfs - Qualcomm Remote Filesystem Service Implementation
Keywords:
Status: POST
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: aarch64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Yanko Kaneti
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-01-31 18:54 UTC by Javier Martinez Canillas
Modified: 2024-03-19 10:00 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
yaneti: fedora-review+


Attachments (Terms of Use)

Description Javier Martinez Canillas 2024-01-31 18:54:16 UTC
Spec URL: https://javierm.fedorapeople.org/rpms/review/rmtfs/rmtfs.spec
SRPM URL: https://javierm.fedorapeople.org/rpms/review/rmtfs/rmtfs-1.0-1.fc40.src.rpm

Description:
Qualcomm Remote Filesystem Service Implementation.

Fedora Account System Username: javierm

Comment 1 Yanko Kaneti 2024-02-01 14:24:27 UTC
This looks ok, with perhaps the exception of the missing systemd handling of rmtfs.service

https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd

Comment 2 Javier Martinez Canillas 2024-02-06 14:01:21 UTC
(In reply to Yanko Kaneti from comment #1)
> This looks ok, with perhaps the exception of the missing systemd handling of
> rmtfs.service
> 
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/
> #_systemd

Thanks a lot for your feedback. I've added these now.

The Spec and SRPM files are in the same URL that was mentioned in Comment #0.

Comment 3 Nicolas Chauvet (kwizart) 2024-02-07 14:54:38 UTC
I don't see the service checking if it's running on any relevant device ?
Can you make the appropriate condition so that the service only enable itself on the appropriate device ?

Also despite the package built on others arches, I see little point to have it on something else than aarch64. or is there any ?

Comment 4 Javier Martinez Canillas 2024-02-07 16:05:04 UTC
(In reply to Nicolas Chauvet (kwizart) from comment #3)
> I don't see the service checking if it's running on any relevant device ?
> Can you make the appropriate condition so that the service only enable
> itself on the appropriate device ?
>

Can you give me an example of a service that does this check ? I've never
seen it.

> Also despite the package built on others arches, I see little point to have
> it on something else than aarch64. or is there any ?

The guidelines say that packagers should "Fedora packagers should make every
effort to support all primary architectures":

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_support

Yes, arch specific code like this may be restricted to aarch64, but as packager
I still find it useful to try local builds on my laptop, etc.

I don't have a strong opinion though.

Comment 5 Yanko Kaneti 2024-02-07 16:12:56 UTC
I guess stuff like this could still be useful in some testing/emulation capacity on something pretending to be a quallcom device?
In any case its small and I don't think it hurts a lot having it at least build on all..this can be changed at any point.

License is OK
Name is OK.
Builds in koji.

APPROVED

Comment 6 Nicolas Chauvet (kwizart) 2024-02-07 16:27:05 UTC
if debugging or emulating, it still good to have a local build, but the packager guideline also stipulate to have a package generally useful
Having an aarch64 only build would prevent the package to end in any non-aarch64 produced Fedora deliverable media.

For the unit file condition, you can have a look at mcelog on x86_64:
systemctl cat mcelog

Namely: ConditionPathExists=!/sys/module/edac_mce_amd/initstate

Of course, you need to find a path that can discriminate your particular device.
This is particularly useful to avoid any error on non-qcom aarch64 devices (or even qcom that do not need this driver).

An even better alternative is to use service activation with udev. (we use that for the nvidia driver at rpmfusion), like
cat /usr/lib/udev/rules.d/10-nvidia.rules
SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", ATTRS{class}=="0x030[02]00", TAG+="systemd", ENV{SYSTEMD_WANTS}="nvidia-fallback.service" 


To be adapted as appropriate...

Comment 7 Javier Martinez Canillas 2024-02-07 16:32:24 UTC
(In reply to Nicolas Chauvet (kwizart) from comment #6)
> if debugging or emulating, it still good to have a local build, but the
> packager guideline also stipulate to have a package generally useful
> Having an aarch64 only build would prevent the package to end in any
> non-aarch64 produced Fedora deliverable media.
> 
> For the unit file condition, you can have a look at mcelog on x86_64:
> systemctl cat mcelog
> 
> Namely: ConditionPathExists=!/sys/module/edac_mce_amd/initstate
> 
> Of course, you need to find a path that can discriminate your particular
> device.

This is for most Windows-on-ARM QC based laptops and QC based Chromebooks.
It would be hard to maintain the allow list of devices using a combination
of DMI information and Device Tree compatible strings (I can't think of any
other way to discriminate).

Not worth it in my opinion.

> This is particularly useful to avoid any error on non-qcom aarch64 devices
> (or even qcom that do not need this driver).
> 
> An even better alternative is to use service activation with udev. (we use
> that for the nvidia driver at rpmfusion), like
> cat /usr/lib/udev/rules.d/10-nvidia.rules
> SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", ATTRS{class}=="0x030[02]00",
> TAG+="systemd", ENV{SYSTEMD_WANTS}="nvidia-fallback.service" 
>

This is a good idea and can be done as a follow-up. For now the service files
are not enabled by default anyways and have to be manually enabled / started.

Comment 8 Javier Martinez Canillas 2024-02-07 16:33:48 UTC
(In reply to Yanko Kaneti from comment #5)
> I guess stuff like this could still be useful in some testing/emulation
> capacity on something pretending to be a quallcom device?
> In any case its small and I don't think it hurts a lot having it at least
> build on all..this can be changed at any point.
> 
> License is OK
> Name is OK.
> Builds in koji.
> 
> APPROVED

Thanks!

Comment 9 Fedora Admin user for bugzilla script actions 2024-02-07 17:59:18 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rmtfs

Comment 10 Nicolas Chauvet (kwizart) 2024-02-07 21:26:08 UTC
> This is a good idea and can be done as a follow-up. For now the service files
> are not enabled by default anyways and have to be manually enabled / started.

Right, but enabling it by default is the action right after. Then, get it into the default media.
So I don't get why it's not discussed as part of the review. This will save back and forth implementation tryouts.

My idea since it's tight to a wireless module is to activate the service only if the qcom wifi module is loaded.
That way, blacklisting the wifi module (for any reason) will also prevent this service to load the firmware.


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