Licenses problem for a new in-house developer
Now I came because I'm having a serious migraine over software licenses.
You see, licenses are easy for developer teams or companies. The former can release GPL and completely benefit from external collaboration. The later can release propietary and pay for every softwrae library they would need on the way. But I'm just me, no software team behind, and I want to collaborate to software community projects, but without losing development control.
Im in such a worry because I've been reading the licenses of the projects I want to collaborate on and things are really messy with all that "derivative work", "use the library" and "static/shared/dynamic/API/script" thing. I just don't understand how todo next.
Let me explain what I want to do, maybe some of you olde gurus can help me out.
I have experience in C++ and some specific libraries (part of Boost and SDL particulary). I like some specific projects a lot, such as XFCE, Stellarium and Code::Blocks. And I want to collaborate to them.
But I feel I can not collaborate to them because I'm just me. Based on the wording I can get from (L)GPL, if I want to collaborate I _HAVE_ to provide sources. But if I do, I'll lose control -- anyne can just take my work and fork, and then an entire group can overdevelop what I have done with effort and alone, thus I can not develop further because I will be instantly "lose" what I have done. So if I want to collaborate I would like to do this in a way that lets me retain control of development, so I can actually decide how I want my software to be and how I will develop it. Which is, essentially, either a) I don't distribute source code (thus I could freely distribute but only that, ie.: my work would be "freeely available" but not "free software") or b) I retain distribution of copies (thsu anyone wanting to collaborate my project would be forced to obtain my bless first and that would create a huge "dirty room").
The problem is, whichever I choose, my project won't be able to use existing GPL/LGPL, and those projects won't be able to use mine. Which completely defeats the purpose of collaborating in the first place. Again, that's what I "understand" from GPL, but I really have trouble making heads and tails from it.
What I want is to release software that can be freely usable, ie.: no one can prohibit you from using the program; freely distributable, ie.: no one can arrest you for having a CD with my program (excepto for a clause I want to include which explicitly forbids storing or transmiting via DRM or "crippled" media); that can be used and use free software in some manner if required; and that does not force me as a sole developer to lose control. The closest thing I've come to is the MIT License but I still don't understand it enough.
I've gone tohrough a lot of sites, from the GNU site, the FSF site, Wikipedia, Slashdot, the KDE "GPL v/s Qt" controversy, the X11 issues, etc... but all I can find is this "derivative work", "linking", "combined work" or "distributor entity" legalese and issues that no one makes UNAMBIGUOUS enough... not even their own authors such as Stallman... So, here I raise the qestions I think can better solve my problem:
1.- Have I misunderstood (L)GPL? Ie.: can I or can I not link, call or in any other way just simply use (L)GPL software in a non-GPL program? Does it REALLY matter whether you shared-link, dynamically-link, call via an API or via a script, as you're using and invoking the software anyway?
2.- If I link a program or library against GPL or LGPL, which ones must be made GPL/LGPL? All the individual constituents (including mine)? Some of them? The combination of them? All of the above? In other words, is GPL actually "viral"?
3.- Can I "use" (L)GPL libraries/programs somehow in a project that grants free usage but not the source code? SUch as a project I've been hired for by my collegue. I mean, I really don't want to have to create an entire discrete mathematics framework from zero just because some purist says I can just just use the spectacular work that Boost and the GNU Scientific Library.
4.- Let's go practical then: can I write and distribute FREEWARE (that is, non-GPL, non-propietary) that links/loads/APIs/calls a GPL or LGPL library? Can I write a _freeware_ plugin for eg.: XFCE's panel (which is GPL) that is shared-linked or dynamic linked or invokes via API or shell scripts to eg.: ncurses (which is LGPL)? I'm not including those packages into mine, I'm just calling them in some way that is allowed by the compiler toolchain. Can I do that, or I just drop programming and try to get another life?
Please understand me, it's not that I don't want to contribute to the community or that I want to take unfair advantage by using freely available code or that I want to jail my software to make money. I have all the intention to contribute, but not if that means I'm developing and instantly giving all my efforts all away just as if someone else would have done the job instead of me. After all I don't have the luxury of being paid for programming so I have to get the most profit from it that I can anyway, and in that point development control is important. What I want to develop is essentially freeware, not shareware. WHat I want to do is to be ME who decides what my simple softwae will do and be ME who gets the donations and thanks for long spent hours, not a OpenGL/OctaQuad/Petabytes hungry mob that just forks my work and sets up 30 monkeys to type "improvements" that are opposite to what I want from the software anyway.
Any comments in this line are appreciated: even negative ones, given the situation I am on. So this is a HUGE thanks in advance.

