Can I use ViGEm Bus Driver and ViGEmClient in propietary app



  • Hello, i was wondering if i can use ViGEmClient library in propietary app? It is under MIT license so i can use it am i right?
    Another question is about ViGEm Bus Driver which is under GPL3 license, and I am not sure if I can add its installer into my app installer? In this situation should i expose installer code as GPL3 or a whole app code as GPL3? Or should i only inform user that he need to download and install driver from ViGEm Bus Driver installation page? Or maybe I can't make any of these, but if i cant than why ViGEmClient is under MIT?
    I am a bit confused 🙂



  • Hello!

    Yes, you absolutely can and also statically link against the client code, that's why it's under MIT.

    The driver sources are GPL3 and the binaries I provide on GitHub in the official installer are based upon those, tested and WHQL certified. You can look at it as a dependency, like .NET or Qt or... and are very welcome to either direct users to the setup (preferably) or if you need some automatism the setup can also be invoked with a /quiet flag to run silently.

    In case you wanna build and ship the driver by yourself I request the license to be honored and any changes being made (especially improvements and fixes) open to the public. It's the least I can expect from a free product with hundreds of hours flown into 😉

    Hope this helps, cheers!



  • Cool!
    And I dont wanna build it by mysylef. In case any bug fixes i prefer to make a pull-request in original repo rather than setting up all builds from scratch.
    Thanks! 🙂



  • I've had a few "incidents" in the past so I had to be more restrictive, for 99% of the user-base it should be fine. I plan on keeping this ride going for as long as I can 😛



  • Hello once again, i have created a Wix Bootstraper project where i have added mine MSI and Vigem Bus installer exe, and it looks like this:

    instalation step 1 instalation step 2 instalation step 2

    Is it ok to use it like this? I dont want to use /quiet flag, because as a user i dont like any hidden installations,
    but I have another question, is there any flag that I can use during uninstalation, to call to uninstall Vigem Bus? I was blindly trying /uninstall, /remove but its not working.



  • Well in that case why not let the user download it themselves? Then you'd also not need to track if you are packaging the latest setup. Beware that a driver is a delicate piece of software, if I publish an update it should make its way out there 😉

    Silent un-installation currently must be done via msiexec, you'd find plenty examples on that on the net.

    Cheers!



  • I dont want to ask a user to download this from here and that from there and in the end it will work. I would like to use it just like a .net or directx, and add it into installation flow. So can i stay with an installation wizard or this is a violation of rights?

    On the other hand there is something like this in Wix, that it can download a package automaticly during an installation flow, but in this case i need to hardcode there an URL, which is different for different versions of Vigem Bus Driver releases, so in the end I still need to update installer to have the newest version of a driver. I can try to use it to not deliver driver inside an exe, but it wont change anything from installer perspective. Still it need to be updated when Vigem will have a new version

    Cheers 🙂



  • Understandable, I could set up a reverse proxied URL to the latest GitHub executable if that helps. Otherwise be my guest to bundle it, I just wanted to point out that more or less critical updates might surface in the future.

    Cheers



  • Ok i have checked it, and maybe somebody will need it. If anybody would like to use VigemBusDriver installer in Wix Bootstraper project, there is a possibility to attach only URL, but Wix requires much more than URL to allow to download VigemBusDriver.exe

    It requires RemotePayload information, and part of this payload is a Hash="SHA-1-checksum-here" so its tightly coupled to specific exe file. So You can't link it with an URL where exe file will be changed, for example with always the newest version of VigemBusDriver.

    Instead of filling all RemotePayload properties, Wix can do it for you. You need only have VigemBusDriver.exe locally, put its path under SourceFile key and set Compressed to "no", like in example:

    <ExePackage
            Id="ViGemBus"
    	DownloadUrl="http://github.com/ViGEm/ViGEmBus/releases/download/v1.16.112/ViGEmBus_Setup_1.16.115.exe"
    	SourceFile="$(var.ProjectDir)\..\Libs\ViGEmBus_Setup_1.16.115.exe"
    	Compressed="no"
    	Cache="yes"
    	PerMachine="yes"
    	Permanent="yes"
    	Vital="yes"/>
    

    In the end Wix wont pack exe file into installer and will try to download it directly from DownloadUrl



  • Cool, I can easily craft a permanent URL to the latest binary, will add that to the TODO 🙂


Log in to reply