Open darix opened 3 years ago
File list of the kmp rpm:
/lib/modules/5.13.8-1-default
/lib/modules/5.13.8-1-default/updates
/lib/modules/5.13.8-1-default/updates/razeraccessory.ko
/lib/modules/5.13.8-1-default/updates/razerkbd.ko
/lib/modules/5.13.8-1-default/updates/razerkraken.ko
/lib/modules/5.13.8-1-default/updates/razermouse.ko
Does OBS rebuild the package correctly when a new kernel version is available?
I also don't particularly like the way the packages are split with this change. In theory currently a user can just install the kernel driver package and use that standalone without the daemon (or pylib) package. So the udev rule and razer_mount script definitely need to stay in the kernel module package. Or if it's a separate package (just containing udev&mount script as a dependency of dkms/kmp package) then I also don't mind.
Also I've pushed the 3.1.0 update to this repo, I forgot to do that before, that's why there's a merge conflict now.
udev rules package done.
Thinking about it ... the current version does not have a provides/obsoletes for the dkms package in the kmp package.
Two options
which solution would you prefer?
I implemented the version where the kmp is only built additionally but the dkms is still available, the Recommends on openrazer-kmp makes zypp prefer the kmp if it is available.
Anything else you want to have changed?
Thinking about it ... the current version does not have a provides/obsoletes for the dkms package in the kmp package.
Two options
- build the kmp and dkms package for opensuse but make sure only one is installed
- add provides/obsolete for the dkms into the kmp so we would automatically upgrade users to the precompiled modules.
which solution would you prefer?
I don't know what's done normally in opensuse for out-of-tree kernel modules, so follow whatever is standard there.
I don't know what's done normally in opensuse for out-of-tree kernel modules, so follow whatever is standard there.
kmps are normal, but i left dkms in for people who prefer those. dkms have the advantage that they are not tied to the kernel that they are built against.
and it is all implemented now and i used it while testing the razer viper ultimate (still need to learn how to remap buttons on that device)
A while ago i promised a KMP port for openSUSE so we do not need build tools on the user machines.
While I did this i did some cleanup to the spec file
A more readable diff might be:
diff -urwN {hardware:razer,home:darix:playground}/openrazer/openrazer.spec
renaming main package to openrazer because the kmp packages are named-kmp
and the main package needs to be an arch specific package so the kmp
macros work. So I move the meta package to a subpackage and marked the
subpackage noarch. The 2 python packages are marked noarch for the same
reason now.
which handling of the kernel module is being used is decided with the conditional on top. to keep the configuration in one place, I also defined a variable in the same place for the driver package
so if you want to build a dkms version for opensuse:
osc build --without=openrazer_kmp openSUSE_Tumbleweed
In theory you could do a kmp build on non opensuse distros but this should just fail.
moved the udev rules and related handling to the daemon subpackage I think it makes more sense to have that here or can there be a valid use case where you want the driver but not at least the openrazer-daemon?
If there is such an use case then we should probably move the udev rules + user handling into a subpackage like openrazer-udev so that the dkms and kmp can Requires it.
generic cleanup
This fixes issue #2.