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?
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.) Only if it's LGPL 3. Can I obfuscate my code (e.g. encode it)? It doesn't really help, but go ahead 4. Could I be forced to publish this code by some 3-d party? Not if you do it right 5. 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
(Pre-Slashdot conversation ...)
"Hi, this is Bob from Smith, Smith and Wendell returning your call. I'm afraid we're not interested in advising you on matters of software licensing and distribution, but have you considered asking a few hundred thousand opinionated geeks in a public forum? Because that's what we advise most of our potential clients to try first. Here, let me get the URL for you ..."
OK but if you want to sell software you need to understand licensing.
Yes, glibc is licensed under the LGPL which is compatible with non-free software.
I suppose so, but unless you are some kind of algorithm genius (and I don't think you are) it is not really going to be worth anybody's while to do reverse engineer it.
http://michaelsmith.id.au
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
A large number of people who subscribe here are against proprietary software on principal. I am not (although I choose to pay for and support open source), although I can almost assure you using a BSD-based OS will allow you to develop and release your product w/o fear.
DP
1. Yes. GPL3 is not retroactive to existing source. Even if you used GPL3 stuff, I don't think it has any impact on your own code if it is distinct.
2. Yes if they are LGPL. Which includes the standard C++ libraries. Some components such as the kernel also have certain binary waivers.
3. Yes but why bother if you're not releasing the source. And if you are releasing the source, then there are benefits to not obfuscating it (e.g. helpful customers fixing your bugs).
4. Not unless a court says. Obviously if you violate the GPL you are taking a major risk of somebody finding out and forcing your code out into the open.
5. Yes, but neither will you have a problem with Linux. However you would have to supply the sources to the GPL / LGPL components of your system upon demand. Most people stick the source up on a web site or link to where they found it, but the latter may not absolve you of not providing it if somebody comes asking for it. Also BSD systems can contain GPL software too (e.g. if you use gcc as your compiler for the C++)
I think if you're in doubt you should probably go look at some existing Linux dist designed for embedded systems. They're bound to have a FAQ that covers most of this.
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
She is the world's expert on software licencing.
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.)
AFAIK, no. Static linking is incorporating code directly. If you link dynamically then any library that is LGPL (not GPL) is fine, but for static linking I believe you need to have an open license on your own code as well.
3. Can I obfuscate my code (e.g. encode it)?
It's your code - do anything you want. If you're not open-sourcing it, just don't ship the source.
4. Could I be forced to publish this code by some 3-d party?
No. Again, when people have been found to have violated the terms of the license, they've had to stop selling and distributing the stuff. I can imagine cases where someone may have to retroactively pay for the illegal use of code. But I can't see a situation where'd you actually had to open your code.
5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
Well, 1, 3 and 4 isn't a problem under Linux either. 2 - for BSD-licensed libraries you could link statically. But a lot of libs (user-interface stuff and higher-level libs) in BSD systems are LGPL as well - everything in a BSD-based system isn't BSD-licensed.
Trust the Computer. The Computer is your friend.
aside from the fact that all your questions can be answered by doing a little research that you *should* be doing yourself, I see one problem.
Your code will be closed source? Fine, I don't have much of a care about such, dig out, I plan to do a game, and that will be closed source at first. But your planned software will run on linux, and that gives rise to the problem.
Just say your project proves popular. Well in that case the chances are very high that you will find yourself in competition with an open source equivalent, either existing or created specifically because your software revealed a new need.
You need to look closely at the closed source rationale. It can work, but not everywhere. You could be beaten to a pulp by a small group of co-operating people out to do better then you. There have been some successes with closed software on embedded systems, but those have been heavily invested in, with lots of developers.
To be perfectly honest, I have to question whether it's wise to enter a market where a) you don't have familiarity with the platform (there are long established answers to most of these questions) and b) don't know anybody you could ask. Having said that...
1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
Today, yes, provided you comply with the terms of the license. Tomorrow, it depends on exactly what you are doing.
2. Can I statically link the code with Linux libraries?
That contradicts your earlier claim that you "won't modify or use any GPL code or any 3rd-party sources". The term "Linux libraries" is meaningless. What libraries are we talking about? By statically linking a library, you make your application a derivative work and you are also distributing the library itself, which means you need to make sure that the library's license allows this and that you comply with its terms.
(My own experience shows that dynamic linking is too much to bear.)
Your own experience is probably wrong.
3. Can I obfuscate my code (e.g. encode it)?
So long as it's entirely your code, although I don't see the point. Of course, if the reason you are obfuscating the code is because it's a derivative work and you are required to provide the source, then no, you probably can't.
4. Could I be forced to publish this code by some 3-d party?
At worst, if you infringe on somebody's copyrights, then you could be offered this as an alternative to being sued.
See, this is the kind of question that makes me think you don't even have the remotest familiarity with Linux. You seriously think somebody can just shake you down for source? Huh? Or are you just spreading FUD?
5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
Ah, that answers my question. Fuck off. You aren't genuinely asking these questions, you're just a BSD troll spreading FUD.
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.
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.
He could easily sell his boxes while providing code: the markets for the boxes and the code just need to be separated enough. An example: digital picture frames could be running GPL code: the buyers of those don't quite intersect with the people who want the code, and even in that case, they normally wouldn't be interested in the hassle of reproducing the product.
This assumes two things:
1) The complete package is worth more than the code.
2) You don't sell it exclusively to potential competitors.
In these cases, it should be possible to make a living out of it.
"I think it would be a good idea!"
Gandhi, about Internet Security
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 _really_ don't want to statically link libraries. If you do, any security problems with the libraries become security problems with your code that can only be fixed by patching all your binaries and not just the library with the problem.
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.
Obfuscation of binaries is, regrettably, an increasingly refined art. I would take a look at this, a presentation about how Skype does a lot of it's obfuscation, to see the state of the art today. Admittedly, this is Skype, with resources, know-how and a lot of people, but it's quite possible to make reverse engineering difficult. It's just usually not worth it.
groupthink: It's good for self-esteem.
>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).
Slashdot is a forum for legal research, not legal advice. So is Groklaw. The point is to get the legal research out of the way so that you don't have to pay an attorney to pay his paralegals to do it. Then you show the research to the attorney, and checking the references that Slashdotters provided goes faster than doing the research from square one, saving the project money.
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.
"The source code for a work means the preferred form of the work for making modifications to it."
It doesn't seem that this guy needs to release his code in any event, however.
It's not wasting time, I'm educating myself.
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.
Open source is given away freely,
It doesn't have to be. You can sell it if you want. Normally I wouldn't mention this because It's a bit pedantic, but it's relevent to my next point.
and if you believe in that freedom, you also believe in others having the freedom to choose differently.
But doesn't this mean that if you believe in freedom, then others should also have the freedom to do what they want with your code?
The thing is, the GPL doesn't require that you give the source to the community. It does require that you give it to the customer and it does prevent you from stopping them giving the source to the community. The only significant freedom that the GPL removes is the freedom to publish the binaries without the source. It's not hugely inconsistent to believe that people should be able to do what they want with software.
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
I think that really depends on the product and target audience. IE most software projects probably never get noticed on a big enough scale to wory about posting your code to sourceforge, etc. Esentually it would be free advertising for your product, ie the people who find it their would never have otherwise found it and been customers, but some will contribute to a paypal link, some may contribute with enhancements adding value to your paying audience. With any consumer level product, 99% of (non corprate) customers will never do anything with source code given to them, even those that would know how.
Of course if the only people who would use your product are geeks already running linux, then ya back to the hope of paypal. Also if your product really takes off after you sell say 5000 units a competitor will likely say, hey I got the source code, I can enter that market too, You still got the advantage of first entry, track record, name (you did copyright your product name right?.)
> But I do know that if my sole /product/ was software, I, too, would be leary about giving away the code for free.
If I had a software house, I wouldn't base my business off the code I just downloaded from someone else's FTP and of which I do not know anything (e.g. I am not contributing to). What would happen if something breaks or there's a bug? Or if the customer asks some extra features (cause, with big companies, it's what _every_ customer does, in my own experience)?
I would be royally screwed, the customers will be pissed, demand back his money, I would fail.
IMHO, if you are a small shop, you should try to focus on providing services rather than products.
The problem with the normal product development, these days, is that you need a huge initial investment, that you're going to get back into it only in a long time span, and that you also need a huge marketing effort to convince people they need the features you offer (look at Apple, where they rebrand everything they do as completely revolutionary).
Selling services, as hookers have known for centuries, is just a way more sane business model.
nbody2002:If you can read this you may be addicted to the internet
This 'guy' doesn;t actually exist in reality, he is a hypothetical invention, or in laymans terms, a troll. Anybody who actually wanted to find this information out would be able to get it much easier from one of about a million faqs on the web.
my password really is 'stinkypants'
If you want to continue on Linux, try Prelinking the libraries (see 'man prelink' and Google for more information). It resolves a lot of the performance issues with dynamically linked libraries, without actually statically linking them. Not only does this resolve the GPL issues, it also removes problems with, for example, being able to update OS libraries independently of your application.
Of course, BSD is a fine OS as well, and I've had good experiences with both platforms. Good luck!
Write good software, make it open source, then:
1) Sell service/support contracts to businesses that use it.
2) Sell conversion consultation services to help businesses convert from their old product to yours.
3) Sell code customization services, working out in your contracts whether or not the code customization in question is for that business only (they will keep the code and not distribute it in any way, and it will not become part of the source tree) or a paid modification of the core source (you own it and open source it and distribute it with the base product).
4) Publish and sell books on how to use your product. You could also sell training classes on how to use it.
5) Consult as a specialist with domain knowledge in the industry to which your product caters.
6) Profit!
If you can't do this sort of thing with your product, then it may be that the open source business model is not suitable for what you have in mind, in which case you will either have to work within a closed-source OS (so there will be no licensing conflicts), or be very careful in what your product links to (LGPL and BSD style stuff are fine, pure GPL and similar may not be so fine). Be aware, however, that selling closed-source code to an open-source crowd doesn't always go so well.
If all else fails, your product could be the demonstration of skill that lands you a job at Google.
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.
The view from between the lines is somewhat less rosy. Your questions (2) and (3) suggest that you don't know very much about programming, and the fact that you want to keep your Source Code closed at all suggests that whatever you're doing isn't actually going to be all that special. So, be warned: some third party is most probably going to come along and blow you out of the water, offering a superior and True Open Source solution to whatever problem you are trying to solve. In fact, if and when they do just that, they can probably expect a hefty wodge of donations from Slashdot readers eager to see a closed-source product fail spectacularly.
Je fume. Tu fumes. Nous fûmes!
I have to say this has been a very interesting thread and it does ask some questions I have been wondering about as of late as well. First I would like to say that up til this point all software that I have written to run on Linux is on a freely useable license, therefore I feel that I have contributed to the open source movement, these include various emulators, games, and development tools and libraries, all are not necessarily on the GPL but much closer to the BSD license, I have granted free rights to modify and distribute so long as it is not used for comercial use.
But at the same time I do have to earn a living and I have decided to take one of my previous open-source projects and enhance it with the purpose of selling it. The original version will remain freely available, only the new one will be closed. I know I do not run afoul of any of the licenses since the only library I use is libc, everything else in my projects are my own libraries, but at the same time over the years I have benefited from the open source model (not financially, but availability of a solid platform and development tools) and I feel that I have given much back in that I have distributed most of my software on an open-source model. Would I still get the evil eye from the OSS world under this circumstance??? What is the opinion if most of my software is open-source and 1 or 2 projects are not???
IANAL seems to rule my life, so much so i really dont often know whether to unleash something i do upon the general public because i dont know (even though everything i do is completely free and OSS):
a) who's feet i might tred on
b) if my project really is GPL'able
c) how i release it in such a way as to make it GPL'able.
Its really quite hard to comprehend. As an example, i had a project that i wrote that combined a nice firewall gui with a bunch of projects of various licenses. It had QOS, load balancing, routing and alot of other features with software provided by a tonne of other projects. I wanted to release a binary image (iso) of it, and then release the build code. This is where i got very lost. I eventually decided that i'd release the code i'd written without any of the code from the other OSS projects plus the binary iso and as part of the INSTALL for people who wanted to build the project they'd have to download the original source themselves, put them into the tree and hit make.
But i didnt cause i didnt know how right or proper it was to release any of this, and i wasnt in a position to take (or even want) money for it, which resulted in one thing - i abandoned the project. Even more frustrating, i didnt even know where i could turn to find out how to do it aside from "ask slashdot".
I read 'too much to bear' as taking too much system resources rather then 'too hard'.
In an embedded system dynamic linking can eat up scarce resources. Static linking is faster to load, faster to run, and takes up less ram.
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.
From all the other comments it appears that you should have no problem given your current expected deployment.
However, have you considered future possibilities where you may have to tinker with L/GPL code. For example if you discover a bug in a GPL/LGPL library or in the kernel and need to fix it for your purposes. Do you think releasing the fix would pose a problem for you?
If the answer is that you think releasing the fix is against your best interest, you should go the BSD route. Otherwise, L/GPL is probably fine.
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.
Oracle is running it's products under Linux and it is all closed source.
. html
In fact, development of new versions are done on Linux and then ported to other platforms. Here is a good starting page if you are interested in seeing how and what s done by Oracle on Linux, both closed and open source: http://www.oracle.com/technology/tech/linux/index
If you mod me down, I *will* introduce you to my sister!
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.
Add to that duel licensed libraries. Last I heard Trolltech was still in business.
The GPL does not mean you are giving away your source code, it means you are charging the right to see changes in return for your code. So....
Service: I charge one person for my code, and frankly release it under BSD if you are thinking Give it Away, GPL if you want to see improvements back.
Hardware: I'm not charging for my code, but I very much want to see improvements back... go GPL. (iRex iLiad, asked the community for calibration code, most of their own under GPL).
Duel License: I either want money from people not willing to publish their changes or changes from people not wanting to give me money.
And there is probably some other method of making money while still publishing code under the GPL that I haven't listed. The trick is to remember that GPL code is not code given away, its code sold for changes in return, a barter. Saying that GPLing code is giving it away kinda misses the whole point of the GPL.
Back to the poster. The GPL isn't as bad as it seems to cash development. Like I said, you are not giving your code away, you are asking for something different back. Be very clear over who will give you money and what they want.
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
On the other side we have free open source OSs with free open source development tools. People who have spare time write open software so that anyone with enough money for a computer can get a working OS and some application programs and enjoy computing.
What is missing here is something in the middle where people who have committed their lives to software engineering can write useful software, make some money, and survive in a world where it takes money to live. I remember when their were a dozen commercial Unix versions we asked for a unified API so that we could write software that would just run. I am truly sorry that Java wasn't it. I am sick to my core that Microsoft says .NET is it.
It is great that RMS (and other people) worked hard and their is an alternative to Windows and SCO Unix/Xenix. While RMS was busy making sure there would be some free software, he made very few allowances for how motivated skillful people could write software and distribute it, and profit from their knowledge, skill, and efforts.
I have never pirated source code in my life and I have worked for hundreds of companies as a consulting engineer. I don't need to hide my code to hide unethical behavior. But around the time people started talking about reverse engineering as a legitimate competitive engineering technique, I fell of the cabbage cart and couldn't keep up with what they were thinking. Over my career, I have bought dozens of proprietary language compilers for various operating systems. That was how I worked for thirty years. It was a required tool of the trade. If I want to write a unique contemporary software product, and sell it to assure my financial stability in my old age, it is very unclear how to do that any more when the big players have patent portfolios, and the small players insist on an open software world. RMS says programmer's art should belong to the world. To the best of my knowledge, he has plenty of money, so he figured out how to leverage the marketplace and make a living. I am not a devious businessman who knows how to leverage everyone to make a fortune. Just a hard working engineer who solves technical problems one at a time for people who have problems.
I am clinically depressed about the current state of the computer industry, and my pride of being part of an unfolding technological society has faded as my talents and experience become worthless in the current marketplace where saving a few dollars on engineers results in technical jobs being sent offshore, and marketing costs are so high you have to sell the majority interests out to make a visible mark in the marketplace. When I started programming, hardly anyone even knew what that was, and I thought I hade found a good niche. I read that soon there will be a billion personal computers. I guess that means there will be some part of a billion people who think they are programmers cluttering up the product space too.
Things have really gone to hell. Bill Gates is the richest man in the world. Computers are so cheap that they aren't worth fixing any more. People expect that they should be entitled to all the software they need for free. I know that releasing your hobby code into the free software world is a good way to let people see how smart you are. I don't know what else to say, and that's saying something. I usually have something to say about everything. Douglas Goodall (Internic nicname DG223) SNMP Private Enterprise number 204, goodall.com domain registered in 1991. Started on 1620s and 360/20s. Worked at arpa host #1 network measurement center.
>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.