Bug 1315023

Summary: joystick-support should install kernel-modules-extra
Product: [Fedora] Fedora Reporter: Jehan <jehan.marmottard>
Component: joystick-supportAssignee: Bruno Wolff III <bruno>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 23CC: bruno, scorpy_sk
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-20 19:15:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jehan 2016-03-05 20:40:10 UTC
Description of problem:

My gamepad was not working (even though it used to, but at the time I was probably on Fedora 22) even though `joystick-support` package is installed.

After checking the conf file in the package (`/usr/lib/modules-load.d/joystick.conf`) I realize it should also load the module `analog` which was not installed on my system. This module is provided by `kernel-modules-extra`, which had not been pulled by `joystick-support`.

Version-Release number of selected component:

joystick-support-1.0.0-14.fc23.noarch
kernel-modules-extra-4.4.3-300.fc23.x86_64

How reproducible:

This has been reproduced on 2 machines with Fedora 23, one of them being an upgrade from Fedora 22, the other being a fresh Fedora 23 installation.

Steps to Reproduce:
1. Install `joystick-support`

Actual results: `kernel-modules-extra` is not installed.

Expected results: `kernel-modules-extra` should get pulled and installed.


Additional info:

The following command seems to say that `kernel-modules-extra` is a dependency:

> $ dnf repoquery --requires --resolve joystick-support
> Last metadata expiration check performed 0:17:45 ago on Sat Mar  5 21:08:10 2016.
> kernel-core-0:4.4.3-300.fc23.x86_64
> kernel-debug-core-0:4.4.3-300.fc23.x86_64
> kernel-debug-modules-extra-0:4.4.3-300.fc23.x86_64
> kernel-modules-extra-0:4.4.3-300.fc23.x86_64
> systemd-0:222-14.fc23.x86_64

But the fact is that it didn't get installed together. I had to install it manually myself after investigating why my gamepad was not working. So I guess something is wrong here, but I don't know what exactly.

Comment 1 Bruno Wolff III 2016-03-06 16:01:28 UTC
kernel-modules-extra isn't supposed to get pulled in directly. The module is supposed to be required. And if the module is in extras, then extras would get pulled in.
So there may be a problem with the correct version of extras getting pulled in. 
It is also possible joystick support isn't requiring all of the needed modoules 
(as different joystick devices might need different modules). Currently kmod(joydev.ko) and kmod(analog.ko) are required.
PAE wouldn't cause a problem in your case, but maybe kernel-debug-modules-extra got installed and satisified the module requirement?

Comment 2 Jehan 2016-03-06 16:41:08 UTC
kernel-debug-modules-extra for my kernel (4.4.3-300.fc23.x86_64) is not installed. So that's not it.

As for my specific joystick, this is a Xbox 360 controller, plugged in USB. When plugging it, the light would just blink but it would not work. It did work fine after I installed kernel-modules-extra and ran manually:

> sudo modprobe analog

(I understand reading https://apps.fedoraproject.org/packages/joystick-support/sources/spec that this would have been run by joystick-support package, but since it was already installed in my case, I had to load it myself…)

Checking `dnf history`, no other packages had been pulled in and installed when installing kernel-modules-extra.

So the problem really seems to be related to the absence of the analog kernel module. Unless other modules used by `analog` and loaded in same time were my solution. I see for instance that `analog` uses `gameport`. I don't have the gamepad with me right now to check if just loading `gameport` is enough to have it working.

In any cases, even if some joystick devices may not need all the modules, some need these, right? So the fact that kernel-modules-extra was not pulled in (even not directly, but as a requirement) on 2 machines yesterday is still a problem, right?

Comment 3 Bruno Wolff III 2016-03-08 03:42:50 UTC
There is an oddity if you have multiple kernels installed and only some have kernel-modules-extra. kernel-modules-extra from a non-running kernel can satisfy the dependency even though the module was not available for the running kernel. Could this apply in your case? Smoething should be providing kmod(analog) unless there is an rpm or dnf bug.

Comment 4 Jehan 2016-03-08 15:35:58 UTC
> There is an oddity if you have multiple kernels installed and only some have kernel-modules-extra.

I said `kernel-debug-modules-extra` was not installed, not `kernel-modules-extra` (since this is what fixed my problem, so this last one was definitely installed).

Also yes, `kernel-debug-modules-extra` was not installed for my specific kernel though it was installed for previous kernels. I just did an update today, and the kernel-debug-modules-extra for 4.4.3-300.fc23 got installed while making the update. Is that normally supposed to be impossible to get a new kernel update while not getting the update for kernel-debug-modules-extra?

Comment 5 Bruno Wolff III 2016-03-09 00:45:39 UTC
Sorry, I misread your question. I would not expect kernel-debug-modules-extra to get pulled in by joystick support. I would expect it to get updated if it was already installed.

Comment 6 Jehan 2016-03-09 00:55:34 UTC
Ok. Anyway I am a little lost here. Is there anything needed to be tested, or logs to be checked or whatever?

For me, the facts are simply that installing joystick-support was not enough to have my gamepad working, but installing also kernel-modules-extra (not pulled by joystick-support) did the trick. Now I am not sure if the rpm spec has a bug, or something else. But I would think something is wrong somewhere and should be fixed for the next guy who will try to have one's joystick working on Fedora.

So just tell me if you need anything to diagnose and fix the issue. And I'll try and get the info. :-)

Comment 7 Bruno Wolff III 2016-03-09 04:09:46 UTC
There is a limitation of requires for packages that can have multiple versions installed at once. Any version will satisfy the requirement unless it is tied to a specific version here. So if you had kernel-modules-extra installed for an older kernel, but not the running kernel, installing joystick-support would not pull in kernel-modules-extra for the running kernel. Normally that isn't a problem, because updating when you have kernel-modules-extra installed will normally install it for the new kernel. I am not sure why this didn't happen in your case. I don't think there is a good way to handle this.

Comment 8 Štefan Gurský 2016-06-26 00:29:49 UTC
When I installed joystick-support (on F23), it installed kernel-debug-modules and kernel-debug-modules-extra but not those without debug.

Comment 9 Bruno Wolff III 2016-06-26 06:56:31 UTC
Did you already have a debug kernel installed? joystick support requires a specific module that is provided by both kernel-modules-extra and kernel-debug-modules-extra. I suspect something changed with dnf to make it easier to get the debug versions pulled in, but I don't know the exact circumstances under which the debug versions get used.

Comment 10 Fedora End Of Life 2016-11-24 15:56:30 UTC
This message is a reminder that Fedora 23 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 23. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '23'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 23 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 11 Fedora End Of Life 2016-12-20 19:15:33 UTC
Fedora 23 changed to end-of-life (EOL) status on 2016-12-20. Fedora 23 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.