-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Linux PacDrive code (TESTERS NEEDED!!!) #248
base: beta
Are you sure you want to change the base?
Conversation
I think the preference is to bundle libusb as part of extern (as a submodule: https://github.com/libusb/libusb) so that we can build it along with the binary and we don't need to require system libs. |
Should I pull this in? https://github.com/libusb/libusb-cmake |
I'd like to point out that currently itgmania uses legacy libusb-0.1 so modern libusb from github won't work due to API incompatibility. It might be a good idea to upgrade to new libusb first. Or use API wrapper from here: https://github.com/libusb/libusb-compat-0.1 |
I like the idea of using a compatibility layer because it would be good to avoid rewriting any of the PacDrive stuff, especially since I don't have access to any kind of cabinet. I suppose the CMake build could also be modified so that Linux PacDrive support is one of the optional choices. |
My note on compat is that's what most (all?) linux distros are installing for 0.1 anyway - Can't remember what the changes were but I did have a 3.95 fork compile against libusb 1.0 perfectly fine, think it was mostly just including the right headers and fixing a couple function calls. Pulling in as a static lib in extern is probably best, unless there's licencing issues (there's not in this case). Making things optional I'm not sure on for itgmania - They probably should be in cmake, but having everything available by default is nice, even if it makes the binary slightly larger (perhaps as advanced options, so removing features is possible but discouraged?). (If you're picking this up though suki, thanks - One I can remove from my whiteboard, Happy to advise on cryptic linux things or test when I've got the time) |
I think in order of preference, it would be:
1 >>>> 2 >>>> 3 |
I'll change the scope of this PR accordingly:
|
Thank you so much for the work! |
I'll admit I haven't worked with CMake before starting to contribute to ITGMania, so forgive me for being unfamiliar with it, but it seems like it's reporting that libusb can't be found despite the new version being successfully pulled for the makefile. I couldn't figure out why it was saying this but it seemed to work so i went ahead on other changes for now. On both my local machine and the Github Ubuntu build test I'm seeing this in the CMake generated Makefile: and in
however
|
Here I do not know what I am doing at all: itgmania/src/arch/Lights/LightsDriver_LinuxPacDrive.cpp Lines 288 to 290 in b20ac10
Attention there would be appreciated very much. |
Is it okay if I leave this up to you? All I did as far as that goes is was change what version of libusb |
I have PacDrive at home. If you manage somehow upgrading libusb I can build your branch and test it. UPD: I've just realized, that I have linux os, so I can build and test this.. |
Might take some time for me to get around to so we'll see when this will complete. |
Thank you. if it's not done by the time anyone's able to confirm whether the new code works or not, I'll take care of it. |
Feel free to ping me (here or elsewhere) if you need a hand with this. Thank you!! |
I updated the first post of the PR to be a little more helpful. |
Update the Linux PacDrive code so that it doesn't require legacy libusb.
Once testing on a real PacDrive has been done, I will undo the libusb-1.0 bodge and properly pull it in as a submodule.