Distributing programs programmed in QB64?
#11
(07-17-2022, 01:00 PM)TempodiBasic Wrote: just to continue the talking about distribuiting only program with no source code...
If I use also one instruction about sound my code becomes LGPL  and I must share source code
if I use no instruction about sound my code is MIT license
....
if I use a different sound library my code is MIT license plus library's licence.
...
is it right?

I would make a few important distinctions:

One, code you've written can be licensed under whatever license you want, even multiple ones. This is because you own the copyright, and thus the ability to grant use of it via a license.

Two, QB64 itself does not place any requirements on what license you make your code available under, You can choose GPL, LGPL, MIT, Apache 2.0, etc. whatever you want. In particular MIT is not a requirement.

And three, regardless of the license you choose for code you personally wrote, you still have to meet the requirements of the licenses of other code used in your program:
  • For the MIT libraries, this means including a notice about the MIT license along with your distributed executable.
  • For the LGPL sound libraries, you have to meet the requirements of the LGPL, which functionally requires making the source code for the entire program (including your code) available.

In either situation, your underlying code does not have to be MIT or LGPL but just has to meet their requirements while using those libraries, and consequently be released under a compatible license. So if you write a program that uses sound and then stop using sound in the future, you would no longer have to meet the LGPL requirements and could stop publishing your source code (assuming you wrote all the code and no other libraries you're using are LGPL).

(Note that things get a bit more interesting if you're creating a library that gets linked into others, but QB64 can't currently produce libraries so it's not that important)
Reply
#12
What is specifically is LGPL in QB64 programs and why does whole source have to be posted if what one Sub or Function is used?

I am not a fan of posting code without source but why should the whole source be necessary? That doesn't sound right to me. Does that include source for all libraries and other includes say from C or C++ or Windows API? eg do I have to source all of Windows too?

Somethings wrong here!
b = b + ...
Reply
#13
(07-17-2022, 05:16 PM)bplus Wrote: What is specifically is LGPL in QB64 programs and why does whole source have to be posted if what one Sub or Function is used?

I am not a fan of posting code without source but why should the whole source be necessary? That doesn't sound right to me. Does that include source for all libraries and other includes say from C or C++ or Windows API? eg do I have to source all of Windows too?

Somethings wrong here!

Otherwise, just make your program an Include except for the one stupid Sub you use that uses this LGPL stuff.
b = b + ...
Reply
#14
LGPL is a software license, and basically it says that if code licensed under it is included in your executable then you have to release the source code for the entire thing. So whether you put in an include or etc. doesn't matter, that's still part of the source and would have to be released.

I'm regards to your other question, the requirement ends at system libraries like the windows API. LGPL is also less strict than the GPL and doesn't impose the requirement if the dependency is a dll.
Reply
#15
(07-17-2022, 06:21 PM)DSMan195276 Wrote: LGPL is a software license, and basically it says that if code licensed under it is included in your executable then you have to release the source code for the entire thing. So whether you put in an include or etc. doesn't matter, that's still part of the source and would have to be released.

I'm regards to your other question, the requirement ends at system libraries like the windows API. LGPL is also less strict than the GPL and doesn't impose the requirement if the dependency is a dll.

That seems like a requirement for QB64.exe not for the code you make with it.
b = b + ...
Reply
#16
The requirement is placed on your code when it is used with an LGPL library, which your code is if you use sound in your QB64 code.

IE. Your QB64 code is used to make an executable with an LGPL library in it (if you use sound). That means the source for the executable needs to be made available, and that source is your QB64 code.
Reply
#17
DSMan, is the sound library available as a dll ?
just realized that anyone wanting to go the dll way would need to use the dll functions and avoid the integrated QB64 sound function that use the library
Reply
#18
Probably, certainly they could be made into external libraries if they aren't currently available as one. But QB64 doesn't currently offer a way to compile your program to link it again an external version of a library it uses, so on a practical level most users can't make that happen. I am aware that the LGPL doesn't impose the GPL requirements if you link it externally.

FWIW, the is some work currently in progress on GitHub to replace the LGPL sound libraries. If that happens then this is all mostly a moot point.
Reply




Users browsing this thread: 8 Guest(s)