Slashdot Mirror


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?

18 of 526 comments (clear)

  1. Answers by rilak · · Score: 5, Informative

    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

    1. Re:Answers by tokul · · Score: 3, Informative

      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
      Even BSD OSes have some code licensed under GPL.
    2. Re:Answers by SLi · · Score: 5, Informative

      4. Could I be forced to publish this code by some 3-d party? Not if you do it right

      More clear answer: No.

      Even if you publish proprietary code linked to GPL code and swear you are aware of the violation, nobody can force you to disclose your code. It's a copyright violation, and forcing to publish code is not a remedy for copyright violation. In that hypothetical case the most a court would probably do is force you to stop distributing, and perhaps if it's that obvious you knew you were in violation it could order some punitive damages.

    3. Re:Answers by julesh · · Score: 5, Informative

      2. Yes if they are LGPL. Which includes the standard C++ libraries. Some components such as the kernel also have certain binary waivers.

      No if they are LGPL. LGPL requires you to be able to update the LGPL'd license, which effectively means it must either be dynamically linked, or you must distribute your .o files and a script to link them. glibc is not LGPL, though -- it is "GPL with the libc exception" which does allow you to link an application statically against it. Check other libraries for their own terms.

      4. Could I be forced to publish this code by some 3-d party?
      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.


      This isn't an expected outcome. Nobody can force you to release your source, even if you violate the GPL. Of course you can be forced to pay compensation to the GPL developers whose IP rights you have violated, and they may be prepared to negotiate if you choose to release your source.

    4. Re:Answers by julesh · · Score: 5, Informative

      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

      LGPL does not allow you to statically link the code. One of the terms of the LGPL requires that it be possible to make modifications to the LGPL'd code and incorporate these into the distributed program. This cannot be done with a statically linked executable (unless you're also distributing linkable object files).

    5. Re:Answers by x_MeRLiN_x · · Score: 3, Informative

      '3' was the next question number..

    6. Re:Answers by TheRaven64 · · Score: 4, Informative

      The LGPL explicitly does permit static linking. In the case of static linking, however, it requires that you also distribute your object code so that your customers can re-link it against their own version of the library.

      --
      I am TheRaven on Soylent News
  2. Sounds OK to me by MichaelSmith · · Score: 3, Informative

    I am not a GPL guru and not a software freedom fighter.

    OK but if you want to sell software you need to understand licensing.

    2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)

    Yes, glibc is licensed under the LGPL which is compatible with non-free software.

    3. Can I obfuscate my code (e.g. encode it)?

    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.

  3. Answers by DrXym · · Score: 5, Informative

    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.

  4. Tentative answer by JanneM · · Score: 3, Informative

    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.
  5. Hmm by Anonymous Coward · · Score: 3, Informative

    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.

  6. Don't statically link libraries by geoff+lane · · Score: 3, Informative

    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.

  7. LGPLv3 by tepples · · Score: 4, Informative

    On point 2, you're incorrect. There is no LGPL 3 Yet, just as there is no GPLv3 yet. But here's a draft of GNU Lesser General Public License version 3, which will be released at the same time GPLv3 is released.
  8. Obfuscated != source by FuzzyDaddy · · Score: 3, Informative
    Releasing obfuscated source code does not count as releasing source code under the terms of the GPL. From section 3 of GPLv2:

    "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.
  9. Re:Hardware gives you a leg up, though in that cas by jythie · · Score: 5, Informative

    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.

  10. Re:Uh, guess what by Jack9 · · Score: 4, Informative

    I don't see how he is a troll. The fact people ask questions that could be answered by doing the proper research (how would you qualify what is proper in many cases, specifically the legalities of licensing?) does not mean they are trolling, they are simply asking in a forum they are comfortable with. What's your problem with that?

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
  11. Re:Ok thanks... by IdleTime · · Score: 4, Informative

    Oracle is running it's products under Linux and it is all closed source.

    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. html

    --
    If you mod me down, I *will* introduce you to my sister!
  12. Re:Even so, by darnok · · Score: 5, Informative

    > But as a small developer, he's pretty screwed anyway...

    > If his product becomes popular, it's likely to get cloned either by a larger company selling a commercial version, or by a group of
    > enthusiasts making a free version. Either way, he has no control over the situation and the clones will ultimately take over
    > because they have more developers and in the case of the commercial company, greater marketting clout.

    Come on - it's quite possible to make a popular product and derive a quite nice income from it, without attracting the attention of cloners and large companies.

    Big Co are only interested if they're going to make mega millions out of it - if you're making a few hundred thousand a year, you won't even show up on their radar. There's an awful lot of software out there that falls into that category.

    If you're selling to a tight niche of customers, then only people in and around that niche are likely to even be aware that your product exists, never mind want to clone it themselves. If you're building software for e.g. dentists, while a few dentists may want to add new shiny features to your product, it's highly likely that they'd want YOU to do it for them, rather than track down some software developer, pay him to clone your software and add their desired features to it. Conversely, while a random software developer might come across your software and think he can clone & extend it, he then also has to create a means of distributing his software (no, dentists won't downloaded their critical software from SourceForge), building relationships with an existing base of dentists, then providing support to those dentists (with all the associated issues of dealing with non-IT literate users).

    I've got a mate who runs a garbage collection business. Many years ago, he paid a student to create software to allow him to manage his business - sort of a highly-customised piece of accounting software. He still uses that software, still engages that ex-student (now working in IT) to support & extend it, and is extremely happy with it. Shock, horror - it runs on MS Access. He's very happy with the software, and the guy who wrote it has both made a nice side income from it and sold it to a bunch of other garbos - I wouldn't be surprised if he's collectively made a tidy sum from it over a period of several years. Nobody's gonna clone this software, and no big company's gonna be interested in it either.