snes9xgit / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
2.69k stars 463 forks source link

Seeking guidance on SNES9X integration in visionOS app (GPL compliance) #944

Open Jose4romSandwichVision opened 3 months ago

Jose4romSandwichVision commented 3 months ago

Hi SNES9X maintainers (BearOso, OV2, kps501, and other contributors)

We're developing an app for Apple's Vision Pro (visionOS) and would like to incorporate SNES9X. We fully intend to comply with the GPLv2 license, including:

We very much welcome your direction on what else we should do to honor the spirit and letter of your project.

Thanks for your great work on SNES9X!

MichaelBuckley commented 3 months ago

I hate to be the bearer of bad news, but GPLv2 apps are not allowed in the App Store. Not only is the App Store terms of use legally incompatible with the App Store, but Apple actually rejects (or is supposed to reject) software using any version of GPL after the FSF made a big deal of it. Famously, apps that were in the App Store at the time got pulled until they could be relicensed and resubmitted. https://www.fsf.org/blogs/licensing/more-about-the-app-store-gpl-enforcement

qwertymodo commented 3 months ago

Snes9x is not licensed under the GPLv2, and I don't believe that the license is GPL compatible, due to the non-commercial restriction. Beyond that, I can't say.

Jose4romSandwichVision commented 3 months ago

Thank you both very much! <sad trombone, for now>

bearoso commented 3 months ago

The license is more of a limited BSD-type with a noncommercial clause. As long as you follow the guidelines you listed and you're not selling it for profit or to promote a commercial entity, you're OK. Whether Apple allows it is a crapshoot, I guess.

MichaelBuckley commented 3 months ago

Oh, that's a good point. I thought OP was asking about a few of the filters and the JMA compression code that's GPL and LGPL licensed.

bearoso commented 3 months ago

The filters and JMA have exceptions to be used under the Snes9x license, even if we are complying with GPL or LGPL usage. They could just as easily be excluded, since JMA is hardly ever used any more and GPU filters are significantly better.

OV2 commented 3 months ago

You can take a look at how retroarch (GPL) provides snes9x on steam as a free DLC: https://store.steampowered.com/app/1227444/RetroArch__Snes9x/

However here the base application is also free.

If snes9x is not your main content and you do not advertise with it you might be able to do something similar.

qwertymodo commented 3 months ago

My non-authoritative read on the situation is basically this. If your project is one where having all of your ducks in a row on the licensing side is a dealbreaker, you probably don't want to deal with the mess that is the bespoke Snes9x license and its myriad of contributors. If you're just trying to do the right thing to the best of your ability, 1) keep it open source and 2) non-commercial, and you shouldn't have any problems from us. On a more technical side, if you are wanting to use the GPLv2 as your main license, you might look into trying to use the libretro dynamic library interface instead of statically compiling the code together. That way you can keep the licenses separate without the "viral" nature of the GPL kicking in.

Jose4romSandwichVision commented 3 months ago

Thank you all for your advice, we really appreciate it!