kode54 / Game_Music_Emu

Game Music Emu - Multi-purpose console music emulator and player library
80 stars 16 forks source link

LGPL version #9

Closed MickGyver closed 5 years ago

MickGyver commented 6 years ago

I would prefer to use this version of GME instead of an older (0.6.1) that I currently use. The problem is that this version uses some GPL code. It would be very nice if you could make a LGPL version (removing everything that is not LGPL licensed). Would this be possible? Thanks a lot in advance!

kode54 commented 6 years ago

Maybe just use the "master" branch? I don't know if I've added any GPL code to that branch. Or just eliminate all the VGM format support, since that requires so much GPL code. I'm sure you don't need that.

Oops, forgot about the SPC player I use. So swap in the old snes_spc player, and eliminate the SFM format support as well.

MickGyver commented 6 years ago

Thank you for the clarification, will do that!

pinobatch commented 6 years ago

Could you provide both the old and new SPC engine as a configure option, analogous to FFmpeg --enable-gpl, so that users of the library don't have to frankenstein a complete library from multiple branches?

kode54 commented 6 years ago

How about I just rip out that unsightly GPL code that is causing so much trouble for people so terribly concerned about licenses? Or you could provide that option for me, care of a pull request.

Oh, and by the way, the older VGM code was using massive parts of MAME, so that's not compatible either. I'll just have to reduce it to the version of VGM that came with Game_Music_Emu originally, which was only compatible with Sega Genesis and Sega Master System VGMs, but was definitely LGPL compatible.

There was also the matter of the MAME FM core, which I can also eliminate for total LGPL compatibility.

Just remember that LGPL does not protect you from having to release the source code to your software. You'll at the very least need to share the means of rebuilding the LGPL components, and if that requires building and linking your whole app, you'll need to share binary objects for your entire project so it can be linked together by anyone wanting to replace the LGPL elements. Upon request, of course.

kode54 commented 6 years ago

In fact, pretty much, most of the changes I've made to the library itself have been at odds with the LGPL licensing. So basically, if you want LGPL, use Blargg's original 0.6.0 release, and ignore this repository.