Skip to content
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

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

Open
Jose4romSandwichVision opened this issue Aug 14, 2024 · 9 comments

Comments

@Jose4romSandwichVision
Copy link

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:

  • Providing source code
  • Preserving copyright notices
  • Stating any modifications
  • Licensing our derivative work under GPLv2
  • Maintaining a public repository with any updates or changes we make

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
Copy link
Collaborator

MichaelBuckley commented Aug 14, 2024

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
Copy link
Collaborator

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
Copy link
Author

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

@bearoso
Copy link
Collaborator

bearoso commented Aug 14, 2024

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
Copy link
Collaborator

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
Copy link
Collaborator

bearoso commented Aug 14, 2024

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
Copy link
Collaborator

OV2 commented Aug 14, 2024

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
Copy link
Collaborator

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
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants