Closed Source On Linux and BSD?
An anonymous reader writes "I want to start (very small) software/hardware business. The code in question will be closed source. I won't modify or use any GPL code or any 3rd-party sources. It will be my own handwritten C/C++ code from start to finish. I am planning to sell embedded-like boxes with an OS (Linux or BSD) and this code. I am more familiar with Linux but I am scared a little bit of Linux licensing, and also of Linux fanboy-ism: I personally got a 'go to hell with your @#$ closed code' slur on Slashdot. I am not a GPL guru and not a software freedom fighter. I just want to do my job and make a living." Read on for this reader's five particular questions.
My questions:
1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)
3. Can I obfuscate my code (e.g. encode it)?
4. Could I be forced to publish this code by some 3-d party?
5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
My questions:
1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)
3. Can I obfuscate my code (e.g. encode it)?
4. Could I be forced to publish this code by some 3-d party?
5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
If you want to develop a closed source product, and the product is good, it will sell. There are many successful closed source projects out there in Linux/BSD land. You have to be extra careful about bugs though. The OSS community makes more noise when your code is buggy, and they aren't allowed to come in and fix it for you. ;)
RebateFX.com - Spread rebates for Forex traders
1. If you want to start a bussiness and have legal questions, go ask a lawyer, don't ask on slashdot.
2. Even if you decide to post on slashdot, at least try to read the licenses in question before plus the many articles on the subject that are readily available online.
3. If you want to have good and honest answers, avoid the word fanboy in your original post. Starting off by insulting the very people whose help you ask for isn't a very good idea.
1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
The license for the Linux kernel is not going to change (It requires the consent of many hundreds of contributors, many of which will decline. Some are dead, others are unreachable.)
2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)
You can statically link, but why avoid dynamic linking? glibc and libstd++ are LGPL, which permits binary only distribution.
3. Can I obfuscate my code (e.g. encode it)?
Isn't compiling it enough? You can strip the compiled code or debugging symbols if you really want, but you only hurt your own ability to debug your users problems.
4. Could I be forced to publish this code by some 3-d party?
Not if you avoid linking with code which has a license that require it.
5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
Linux and the various BSD flavours both allow this sort of use. See the various wifi-routers and tivo style devices. Hell even my digital picture frames run linux.
LL
BSD is licensed to allow for people to do what you want. GPLd software is not.
I'm not opposed to proprietary software. Quite the contrary. But I do find the notion of taking an open source project, slapping on a bit of code, and trying to keep your part to yourself, to be extremely offensive. The people who contributed to GNU software did so with the expectation that their code is share and share alike. What you've described appears to run directly counter to that, completely disrespecting the wishes of the programmers involved. Unless I'm reading you wrong, you deserve a hearty "go to hell!".
BSD, on the other hand, is meant to allow for use exactly like you are proposing. Have at it. No hard feelings there as that's exactly in line with their programmers' wishes.
Because he wants to make some money out of his programming without having to work for a massive company.
He's also trying to create a product for Linux users that, I dunno, might actually make Linux more attractive to current non-Linux users, which would help defeat the Windows menace.
Take your blinkers off and look at the big picture, your zealotry is what gives the rest of us a bad name.
So you are interested in using other people's work, you are interested in getting other people's opinions, all for free, yet you contribute nothing to the community that gave you so much...
Some people would call that selfish.
Here is my advice: talk to a lawyer who is knowledgeable on licensing and IP matters.
" '2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)' Only if it's LGPL."
With an added caveat; you can statically link the code with an LGPL library, but _you have to provide the option for the recepient to dynamically link should they so desire_. Include an unsupported dynamically linked binary, or perhaps better, object files so the recepient can relink statically against another version (again, you dont have to support that, just provide the option).
This is so that if the libraries are changed and upgraded, security bugs fixed, etc, the user isnt stuck having to use that particular statically linked version.
"'Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?' You can do whatever you want with BSD code"
As long as it's only BSD code, of course. Depending on the definition of 'BSD-based boxes', they can perfectly well include GPL, LGPL, or code under any other license. Anything you link against or in any other way include you have to check for licenses, wether it's Free, free or proprietary software.
And of course, no matter how careful you are with licenses, you can get legally nuked when the USPTO with its usual competence level grants a patent on "putting obfuscated code linked with free software on an embedded device" (or whatever your device is supposed to do).
You may just want to do your job and make a living, but those the 'freedom fighters' are trying to protect you from have no interest in your wishes. They want your money if you're lucky. Or they want you off the market if you're not.
A2b. GNU/Linux (the whole system) comes with many libraries, some of them BSD-licensed, some GPL-licensed, some GPL-with-linking-exception-licensed, some LGPL-licensed, etc... it's a common interpretation of the GPL that if you link to a GPL-(no-linking-exception) library (like GNU readline or Qt) you are making a derivative work and thus, you have to license your work under the GPL. 3. Can I obfuscate my code (e.g. encode it)? A3. You can do this in any case -- except (maybe, IIRC) if you are distributing your code under the GPL/LGPL. 4. Could I be forced to publish this code by some 3-d party? A4. Not really (parent poster is right on the mark) 5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems? A5. Yes you are. BUT...
and I mean this respectfully: as you will be selling your box as an embedded utility, what do you have to lose by GPL'ing (or otherwise opening) your code? If you do things right, you will have:
I. a community of people that are willing to buy your box to start;
II. a community will want to tinker and make your product better, fast, and you get to incorporate the changes for the next versions of your product;
III. the respect of a lot of people.
Example: lots of people I know have Linksys (WRT54G[L]) wireless routers _because_ they know they can tinker with it, that there are lots of new, interesting uses to it with the alternate verstions of the software, etc. I, myself, when installing SoHo wi-fi networks _only_ recommend WRTs to my clients, as opposed to non-tinkerable D-LINKs that here in Brasil cost 30-40% less.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
You seem to be looking at it from the wrong angle.
If you don't care about the GPL, don't use GPL'd software. Simple.
The only reason we are having this discussion is because GNU/Linux has become so succesfull BECAUSE no-one has been able to hijack it and close it.
Understand now?
It's not about zealotry, it's about denying greedy, selfish people the ability to build on the shoulders of others without giving anything back.
>Example: lots of people I know have Linksys (WRT54G[L]) wireless routers _because_ they know they can
/product/ was software, I, too, would be leary about giving away the code for free.
/I/ wouldn't invest in a new product where I couldn't make any money selling the actual product but only support for it. What if everyone wants your product but no one needs or wants support? You've just invented the perfect software - but it's worthless to you.
>tinker with it, that there are lots of new, interesting uses to it with the alternate verstions of the software, etc.
I'm not in the software industry, and I don't know much about GPL.
But I do know that if my sole
In your Linksys example, there is a hardware component that is not easy to replicate - there is a barrier to duplication. So in that case it is a great benefit to create and sell the hardware, but leave the software open so that the world can improve the functionality and attractiveness of the hardware you are selling.
But I don't understand how this works with a pure software product. If you give it away to the world, then someone else is just going to take the code and make a derivative product from it that does the same thing but is free. The way I see it, the only thing authors of free software can sell is support.
I guess I just still don't understand the free software movement as a business.
A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.
Only alchemists and very poor cooks feel the need to have secret recipes. Look how little mark they leave on the world.
Nonsense. This individual has just as much right to develop closed-source software as you do open-sourced. There's nothing wrong with arguing a point, but stick to reality. Are you implying that, love them or hate them, companies like Microsoft, Apple, Oracle, IBM, et. al, haven't left a "mark on the world?" Or are you just dealing with your imaginary alchemists and poor cooks?
Do you have access to the source for every bit of embedded firmware in the electronics you own? Most likely not. Does that make you a hippocrate? (answer left as an excersise to the reader).
Yes, you may. But millions of people license software in this manner and have no problems with the arrangement. If there is a level of trust with the vendor, people don't mind having things closed source. I know a lot of folks on /. would probably use software that is GPL'ed and has major functional limitations compared to a similar commercial closed-source product. However, in the business world, the reality is, you have to use what is most efficient and works best for you, even if your up front cost is greater and the custimization of that product on a fundamental level is not an option.
But the problem is identifying the 0.1% from the 99.9%.
But I do know that if my sole
Very true I hate to admit. If there is not hardware or a service to sell then selling the program and giving away the source just will not work together. I can not tell you how I hate to admit that.
Those that do not know, pay for it.
If this person is making a pure software product, firstly it's pretty clear that he's a one man band, and secondly, since he complains about dynamic linking (which is utterly trivial to do in Linux, Windows or BSD) being too hard, it's not that hard to come to the conclusion that at most he's "ordinarily skilled in the art" - more likely, he's a candidate for an appearance on The Daily WTF.
A one man closed source project that involves no particular genius is also susceptible to being duplicated since it won't be all that much effort for someone else to write the same thing from scratch.
So he either is filling a niche where no one else is likely to go (in which case, it doesn't really matter if he uses a closed or open source approach), or it's actually not pure software - perhaps a pre-packaged OS plus hardware plus support for an appliance type system. In which case, given the resources he has to hand, it still wouldn't really make any difference whether he goes closed or open source.
Oolite: Elite-like game. For Mac, Linux and Windows
"It's not about zealotry, it's about denying greedy, selfish people the ability to build on the shoulders of others without giving anything back.
You mean companies like Google and Amazon that built their entire infrastructres on GPL code? I'm glad that I can run my highly-scalable search and shopping site using their contributions. Oh wait...
I'm sorry, but if you review the huge arguments going on about how you can release closed source on Linux, well it's no wonder a lot of vendors chose to go Windows only. I'm not saying closed source is right or wrong, I'm just saying that if the option to go close source is so tricky on Linux, well, that's a huge fucking problem.
Unless I am mistaken, those people volunteered to let their work be used by others off of which to make a living, even if they did not choose to do so themselves. As long as he is not violating any contracts, and the people who originally wrote the base code upon which he is building did so knowing the implications of their licenses, then those people cannot possibly be offended unless they are also hypocrites.
Open source is a sort of lead-by-example system. You put your code out there for everyone to see, and they use it or not, and perhaps subscribe to your system of beliefs and turn around and do the same. It is not, however, a lead-by-the-sword system. If someone out there decides to use your code (within the confines of the license) without subscribing to your system of belief then that's ok too. Acknowledgement is not even required unless mandated by the license. You can't go around placing additional arbitrary and implicit clauses in the contract, even if they are so minor as 'acknowledgement.' If you wanted acknowledgement, you should have mandated it in the first place.
If you're really writing it all yourself, none of these issues matter. If you're really writing standard C/C++ with only POSIX library functions, you're not linking against the kernel (so the kernel license doesn't matter), and you're not linking against any userspace libraries except for libgcc/libg++ (permissive license) and glibc (generally permitted). Dynamic linking is only actually a pain when either you're writing the library, or the library provider's versioning is lacking, or you've got a million libraries, or you're shipping the software not aggregated with the library you want to use.
Of course, you'll want to use other people's code for some things. You'll almost certainly want to start your program using some shell scripts, but those don't have a non-source form and are generally not worth obfuscating. If you want to use more libraries, you'll have to look at their licenses (many important Linux libraries are BSD-licensed anyway, though). If you're writing kernel code, you probably want to open-source this part and do as little of the interesting stuff there as possible (for technical reasons: kernel bugs cause a lot more damage than userspace bugs; for maintence reasons: kernel developers will maintain cleanly-written open-source code for you across trivial API changes; and for legal reasons: it's a pain to avoid making your module a derivative work of the kernel).
The ideal thing is to build a little computer running Linux with nothing in it that you wrote, and then use it to run a program that's entirely yours, and sell the whole thing to people.
1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
Yes
2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)
That's what you get for using Windows.
3. Can I obfuscate my code (e.g. encode it)?
Not if you're GPL, but you don't show any signs of wanting to.
4. Could I be forced to publish this code by some 3-d party?
No. At most you could be forced to stop distribution and pay copyright damages. And that's only if you violate the GPL or similar license. (I.e., write your own code and you're safe.)
5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
What problems?
a) None of the questions that you have raised appear to me to be a problem.
b) The base of the OS is almost irrelevant to every question that you have posed.
I think we've pushed this "anyone can grow up to be president" thing too far.
So, yes, if you distribute a linux kernel that you downloaded from "xyzzyplugh.com" you can direct people to "xyzzyplugh.com" for sources. But if "xyzzyplugh.com" goes out of business, you still need to be able to provide the sources.
The same is true if you use a BSD kernel, but include the GPL application "spork" embedded in the device. You need to be able to provide the sources to "spork" regardless of where you obtained the "spork" binary and regardless of whether the "spork" sources are available elsewhere.
No. If you statically link the Linux libraries, or any GPL licensed library, then you are obligated to license your application under the GPL. If you statically link a LGPL licensed binary, your application can remain closed source. However you must make source for the LGPL licensed library available, again for at least 3 years longer than you distribute the application. Source or object code? In either case the answer is "of course" for all licenses. But if you are under GPL or LGPL, you need to make the means to decrypt it available to anyone who wants it. No, but you could be required to cease distribution and potentially be penalized in either civil or criminal court for any copyright violations you commit. This could apply regardless of the licence of the OS kernel you use. Be sure to understand the license of any software or libraries that you distribute.Support SETI@home
>An entry-level router is NOT that hard to replicate.
99.9% of the computer using population probably can't do it, or doesn't want to. My point is, they are selling the widget, and the software basically goes along for free. They don't have to worry about people tinkering with the software, from a profit/loss perspective, because they still get to sell the widgets, which are hard enough to replicate that most people would rather just buy one.
>Yes, a competitor could undercut you by giving away a derivative product for free, but he has to play by the rules and let everyone see HIS code too,
>or you can quite rightly slap him with a copyright-infringement lawsuit. So, if that is what happens, jsut take this derivative product back,
>improve it even more and one-up him.
This makes the assumption that, 1) having lost your investment in developing the original, but now worthless (due to being ripped off) application, you have enough resources left to make improvements to it and 2) that improvements can be made that people are willing to pay for.
Sounds risky to me. I wouldn't invest a dime in such a gamble. Basically, you're spending money to develop a product that no one will pay for.
>As I said, if your business model relies on selling a copy of software like it was a widget you will be doomed to failure...
Sure sounds like it to me, too.
>In return for revenue you must add value.
But what I don't understand is how do you do this?
When I buy a VCR, I don't want to pay maintenance to make it work. I don't want to pay maintenance to have access to new and improved versions of it. I just want a stable, reliable product for X dollars, and my transaction with your company is done.
I know the big thing these days is to try and create "Revenue Steams" of perpetual "service contracts". I hate products like that. It's why I have no desire to have a Tivo. I'm not going to pay a subscription for a VCR. I bought the VCR, it should work just fine without me having to pay forever to make it go.
There is only one software application where I have ever been involved in paying maintenance, and that is for CAD (Computer Aided Design) software. The maintenance gives you access to technical support plus access to the latest revisions of the software. For a business-critical application, I can see shelling out a couple of grand a year for this.
But I can't think of any personal software application that I would be willing to pay maintenance for. When McAfee switched to a pay service, I switched to AVG. All the other software packages I have purchased outright, with no expectation of customer service or support.
>As a potential customer, I'd have to ask this guy "what happens if your outfit disappears? How do I get bug fixes? Where would I get support?"
I can't think of a single personal software application I've ever bought where I've considered those things.
For all my office applications, I assume it would be a waste of time to attempt to email or call Microsoft. I don't worry about Microsoft going away, but I've got lots of games I've bought where the company doesn't exist anymore. This isn't a concern to me, because I figure by the time the company goes under either I'm finished with the application or someone else will be making a better version. I don't worry about bug fixes but I do take whatever patches become available. Basically buying software is a crap-shoot you have to do some homework before you buy it and make sure the user community thinks it is reliable or not. I have never gotten support for any personal software package I've ever bought, and I don't expect it. I'm certainly not willing to pay for it.
>Anyways, I still can't comprehend trying to start up little "software company" around some little product you developed in this day and age--the approach is so 1980s.
Well I guess I am a child of the 80's. When I buy a thing, I want to buy the thing and be do
A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.