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?

80 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 Anonymous Coward · · Score: 5, Funny

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


      Hmmmm, maybe you could compile it.
    2. 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.
    3. 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.

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

    5. 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).

    6. Re:Answers by Znork · · Score: 5, Insightful

      " '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.

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

      '3' was the next question number..

    8. 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
    9. Re:Answers by samkass · · Score: 3, Interesting

      Interestingly, Apple is working on a C/C++/ObjC front-end for LLVM so that they can do away with GCC as well. It should be possible to use and develop on an open-source BSD without any GPL code whatsoever in the not-too-distant future.

      --
      E pluribus unum
    10. Re:Answers by Arancaytar · · Score: 4, Funny

      Indeed. Select "Plain Old Text" in the list below (it's actually default for me).

      See?

      Linebreak!

      It's magic. :)

    11. Re:Answers by Znork · · Score: 2, Interesting

      Mmm, ought to teach me to write complicated sentances :). Reread it. I was referring to patent trolls and various other 'IP' parasites that the 'freedom fighters' fight. The Free software crowds may respect a desire to be left alone and just write code and support yourself, but various segments in the proprietary 'IP' business will find ways to get at you no matter what you do.

      As long as 'intellectual property' remain implemented as legalized monopoly rights, for a private entrepreneur there really is no hiding on the sidelines trying to ignore the legal and political issues.

    12. Re:Answers by thogard · · Score: 2

      I've wondered if that point is invalid since no one knows what the later versions state. Paragraphs in contracts agreeing to unspecified and arbitrary terms later tends to not go over so well with judges. In the case of the GPL, the intent of the GPL can be applied to that claim maybe and I think its a big maybe.

    13. Re:Answers by nschubach · · Score: 2, Funny

      You stick to English as your primary language, and I'll stick to C.

      </Just playing> ;)

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    14. Re:Answers by samkass · · Score: 2, Informative

      Apple had originally been working on merging GCC and LLVM. I'm not at the WWDC this week, but from what I've heard they have decided to do away with the GCC bit and write their own front-end called "clang". Slides are available in the "Using LLVM" section of this presentation. They also further discuss their OpenGL shading language front-end for LLVM.

      --
      E pluribus unum
  2. Legal advice by Random+BedHead+Ed · · Score: 5, Funny

    (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 ..."

    1. Re:Legal advice by nomadic · · Score: 3, Funny

      Seriously, every time we've asked a lawyer about anything IT related the answer has been a definitive "maybe".

      Well that's the nature of the law, every time someone asks me a legal question it starts up a little dialogue in my head; "Well I think the law says this. But what if the other side argues that other thing. And could there be a statutory claim there? Wait, that one issue is federal, could they remove the case to federal court? Damn, this guy is expecting an answer. Well I guess I can say maybe but that usually annoys them. Is it lunchtime yet?"

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

    1. Re:Sounds OK to me by julesh · · Score: 2, Informative
      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.


      You cannot freely statically link non-free code to LGPL code. See section 6:

      As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. [....] Also, you must do one of these things:

            1. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work [...] and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink [...]
            2. Use a suitable shared library mechanism for linking with the Library. [...]
            3. Accompany the work with a written offer [to fulfil section 1 ...]
            4. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
            5. Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
      [...]

  4. Go for it by Jafar00 · · Score: 4, Insightful

    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
  5. In Response to Your Questions by dpninerSLASH · · Score: 2, Informative

    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. Re:In Response to Your Questions by chrb · · Score: 2, Interesting

      I can almost assure you using a BSD-based OS will allow you to develop and release your product w/o fear Do BSD based distributions only ship BSD licensed code? No GPL software at all?
      And do BSD based distributions indemnify you against patent claims?

      If not, there are still reasons to fear.
  6. 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.

  7. Some answers by Anonymous Coward · · Score: 5, Insightful

    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. Re:Some answers by PopeRatzo · · Score: 3, Insightful

      1. If you want to start a business and have legal questions, go ask a lawyer, don't ask on slashdot.

      He probably will ask a lawyer, but that doesn't minimize the value of asking on Slashdot. One of the concerns the guy had was about the Linux fanboy community, and the rich community of /. has one or two of those.

      If you've ever prepared to start a major project, you know that sometimes getting advice from a wide range of sources is valuable. Personally, I've gotten some extraordinarily valuable information here on Slashdot that's directly helped me with my own projects. There was a recent article about video codecs that was a huge help to me.

      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.

      I've seen a few of these scoldings around here lately, this notion that you should do research online before you do research online. One of the reasons you ask a question on Slashdot is because you're not an expert in that particular subject and you're looking for opinion.

      Plus, reading TFA is against the Slashdot EULA.

      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.

      "Fanboy" is an insult? I actually think it's a highly descriptive and precise term. Anyway, he wasn't referring to Slashdot readers as fanboys, he was describing a subset that would rip somebody for trying to make a living by making a product and not giving it away. If the shoe fits...

      I hate the very idea of IP, but not everyone can live out here where the air is thin.
      --
      You are welcome on my lawn.
    2. Re:Some answers by maxwell+demon · · Score: 2, Insightful

      That's exactly what he meant with "tamper resistance". Note that as long as your device allows modified software to be installed, this clause doesn't affect you.

      BTW, an interesting question would be if it would violate the GPLv3 if a networked box would run modified software quite fine, but always transmit a checksum of the running code to the server it connects to (done directly by the hardware, so no modification of the software can change that), and that server would then deny to serve the box if it doesn't run the original software. Technically, the box wouldn't be tamper-resistant (after all, the modified code works just fine, and if you'd connect to a different server which doesn't care about the checksum, there would be no problem), but it might make the box useless anyway (because the service you get from that server might not be available otherwise).

      --
      The Tao of math: The numbers you can count are not the real numbers.
  8. Closed code by LLuthor · · Score: 4, Insightful

    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
    1. Re:Closed code by julesh · · Score: 2, Informative

      glibc and libstd++ are LGPL, which permits binary only distribution.

      Not of statically linked code. See section 6, which requires that enough materials be given (or offered) to the user to make a version of the program that uses a modified copy of the library.

  9. Have you asked PJ? by Anonymous Coward · · Score: 2, Funny

    She is the world's expert on software licencing.

  10. 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.
  11. not to disparage, but by rucs_hack · · Score: 4, Interesting

    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.

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

  13. Just use BSD by node+3 · · Score: 3, Insightful

    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.

    1. Re:Just use BSD by kripkenstein · · Score: 2, Informative

      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.
      In some way, yes, they did expect 'share and share alike'. But not entirely. Linux kernel developers explicitly allow you to do whatever you want in userspace; they don't expect anything from you if you use their kernel and 'slap' a proprietary app on top of it. Likewise GTK+ devs don't expect anything if all you do is use GTK+ as your GUI toolkit, i.e., just link to it externally. And in fact a lot of proprietary development prefers GTK+ (which is LGPL in the relevant part) over Qt, which is more problematic for them.

      In fact this is the explicit reason for the LGPL being different from the GPL, and similar things (GPL+exceptions, etc.). To return to the GNOME/GTK+ example, the (GNU!) licensing allows proprietary apps to run on their platform; in that sense this is a very business-friendly license (to FOSS and proprietary businesses alike). And this makes sense: even if apps developed on top of GNOME/GTK+ are proprietary, often during their development some contribution is made back to GNOME/GTK+, in the form of bug reports, patches, and perhaps other things; in addition, if the app is widely-used then it gets more people familiar with the platform underneath it, opening more potential avenues for benefit to GNOME/GTK+ (and of course this example is relevant to other projects as well: the Linux kernel, languages/runtimes like Python, etc.).
    2. Re:Just use BSD by asninn · · Score: 2, Informative

      Um, no. The guy who asked these questions, while clearly being extremely clueless, is not actually ripping anyone off. There's nothing that says you can't run closed-source software on a Linux system - quite the opposite -, and it's absolutely not contrary to either the letter or the spirit of the license or the wishes of the programmers in question.

      I suppose you could still be opposed to closed-source software in principle, but you're not - what you seem to be doing (intentionally or not, I can't tell) is put up a strawman of "you're violating the GPL folks feelings by doing this!", even though it is patently untrue, and then use that to justify advising the guy to use BSD instead.

      Are you sure you're not a particularly sophisticated BSD troll? :P OK, no need to answer that, but either you're extremely clueless, or your post was a particularly sneaky and underhanded attempt to discredit the GPL.

      --
      butter the donkey
    3. Re:Just use BSD by marcovje · · Score: 2, Informative


      First, BSD has some limitations (like carry notice and not misrepresent its origin).

      Second, one must separate BSD licensed software from BSD based OSes. To my knowledge, all modern BSDs extensively use GNU software to create binaries, libgcc among others.

      Third, one can link to GPL, LGPL code, as long as it is for own use (not redistributed).

      Fourth, hardly any libraries come as GPL. Nearly all come with LGPL. Moreover, (L)GPL is a bit defanged if it comes with the distro. But static linking is still an issue.

  14. Take, take, take? by winchester · · Score: 5, Insightful

    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.

    1. Re:Take, take, take? by bestalexguy · · Score: 2, Insightful

      We all use English language, most of the time without addressing grateful thoughts to Chaucer, Shakespeare, Joyce and many others.

      Many of us don't contribute to this "other people's work" (too many do and should not).

  15. Re:Why closed? by moranar · · Score: 2, Interesting

    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
  16. Even so, by hummassa · · Score: 5, Insightful

    1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)? A1. Yes -- unless you are making some kernel module that is a derivative work of the kernel, where your kernel module will have to be licensed under the GPLv2.

    2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.) A2a. Linux (the kernel) does not come with any libraries for you to link.
    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
    1. Re:Even so, by Anonymous Coward · · Score: 5, Insightful

      Yeah but Cisco makes money off of the hardware. This guy doesn't sound like he's going to be doing that. I think his concern is if his code is open, what stops someone else from adopting the same business model?

    2. Re:Even so, by MindStalker · · Score: 2, Informative

      Thing is linksys is using custom hardware. This guy is probably using commodity hardware, so what he is selling is his software, bundled with hardware. If people could buy the WRT54G routers as commodity hardware they would.

    3. Re:Even so, by demallien2 · · Score: 2, Interesting

      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. Yeeeessssss, but, I'm guessing he's going to have some DRM in there, hence the interest in obfuscation.
    4. Re:Even so, by reanjr · · Score: 2

      Or - and this one's radical, I know - he could sell the closed Software!!!

      It's his software, he should make money off of it as he wants. Do you have evidence that shows that opening up the software on an embedded device would make more moeny for the software developer? Because I'm pretty sure that's his main concern. Not whether random people can get his software for free and tinker with it.

    5. Re:Even so, by Bert64 · · Score: 3, Insightful

      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.

      If it fails to become popular, he will eventually tire of maintaining it for little/no profit, and it will die off... The few customers he does have, will be screwed.

      If he opens it, and it fails to become popular he's no worse off than if he left it closed. However, the few customers he does get are better off, because when he gets tired of pushing an unsuccessful product and gives up, they still have the code and can maintain it in their little niche.

      If he opens it and it becomes popular, he will attract more developers who will help improve the code. He is still in a good position to provide support, and bundled ready to go versions. Especially if the software is tied to a piece of hardware he produces, as people will buy the hardware to hack on it.
      Even if his software is available for free, many companies and end users will buy a commercially supported version instead of the free version anyway. Conversely, an increasing number of businesses will not buy a product that is tied to a single supplier, because of the risks of losing support if that supplier disappears.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    6. 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.

    7. Re:Even so, by Gorshkov · · Score: 2, Insightful

      Already its a -4 by most reasonable standards. I browse at -1, but this ... its utter crap. Anyone who thinks that calling dlopen() is "too hard" better go back to whatever Microsoft is selling that replaced VB and play with their pretty form designers ...
      For all you know he's a rocket scientist or brain surgeon who's bored and wants to get into something interesting, like programming

      So tell me .... were you born knowing how to use dlopen() et all? Or was there some time when YOU were a beginning programmer, and had no idea wtf you were doing half the time?

      What's that quote ..... "There are no stupid questions - only stupid answers" Guess there's some life in that old saw after all

      Stop being arrogant. Who bloody cares WHY he doesn't know? At least he's trying to learn, and has brains enough to try to learn by asking questions in a forum where somebody might know the answer, instead of staring at the screen, not knowing what to do next.

      It seems to me that the biggest barrier to him doing anything productive is the arrogance of those that have come before him.
  17. 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.

  18. Re:Why closed? by dhfoo · · Score: 5, Insightful

    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.

  19. Re:Actually, won't help anyway by AdamKG · · Score: 2, Interesting

    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.
  20. 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.
    1. Re:LGPLv3 by Creepy · · Score: 2, Informative
      seems they noticed my (or other similar) rants about LGPLv2, because the definitions (section 0), the combined library clause (section 5) and clause 4d1a finally make mac application bundles with shared frameworks that include an LGPL library legal.

      still, 4d1 is ugly and seems to imply static linking is still not allowed by the LGPL (contrary to thread starter)...

      Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

      Since a statically linked library is bound and copied into the application at compile time, it would be in violation of 4d1a.

      And while I'm sure this clause is meant to forbid static linked libraries, it also inadvertently could make a closed source application violate the LGPL without trying. Here's how: create an LGPL plugin (which is a really a dynamic library that does linking in runtime) and then have a non GPL/LGPL browser download and use it without shutting down. Think of how browsers load something like Flash players now - you don't restart the browser, you just click a link to download and install it, then you view Flash media. Since the library did not exist at the OS when the application was started, you could argue that the plugin did not exist on the OS at run time and therefore violates the LGPLv3. The other alternative is to say that a plugin is not a library - fair enough, then the plugin cannot be LGPLv3 because according to clause 0:

      "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.

      That said, you could alway do something like that by removing a non-LGPL library and replacing it with an LGPL library to cause the application to violate parts of the LGPL, so I would expect that is unenforcible. I'm just giving a hypothetical scenario of how someone like Microsoft might read it, just so they can say LGPL is EVIL.
  21. Hardware gives you a leg up, though in that case.. by maillemaker · · Score: 5, Insightful

    >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'm not in the software industry, and I don't know much about GPL.

    But I do know that if my sole /product/ was software, I, too, would be leary about giving away the code for free.

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

    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.
  22. Re:Why closed? by dpninerSLASH · · Score: 2, Insightful

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

  23. Research here, advice there by tepples · · Score: 2, Interesting

    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.

  24. Re:IV 3rd Party Support by DaveWick79 · · Score: 2, Insightful

    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.

  25. 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.
  26. Re:Hardware gives you a leg up, though in that cas by Brotherred · · Score: 3, Insightful

    > I'm not in the software industry, and I don't know much about GPL.

    But I do know that if my sole /product/ was software, I, too, would be leary about giving away the code for free.

    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.
  27. Re:Why closed? by 91degrees · · Score: 2, Informative

    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.

  28. Re:Hardware gives you a leg up, though in that cas by Alioth · · Score: 4, Insightful

    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.

  29. Re:Hardware gives you a leg up, though in that cas by Dare+nMc · · Score: 2, Informative

    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 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?.)
  30. Re:Hardware gives you a leg up, though in that cas by shywolf9982 · · Score: 2, Interesting

    > 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
  31. Uh, guess what by weierstrass · · Score: 2, Interesting

    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'
    1. 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.
  32. Try Prelinking Libraries by elzbal · · Score: 2, Informative

    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!

  33. Free software as a business. by Anonymous Coward · · Score: 2, Informative

    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.

  34. So hard to make an application on Linux by iONiUM · · Score: 4, Insightful

    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.

  35. Answers by ajs318 · · Score: 2, Informative

    1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
    Yes, though you will have to distribute Source Code for any GPL and similarly-licenced components you distribute. As for GPL4, who knows?

    2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)
    Not unless the libraries are released under LGPL. Many libraries nowadays are under the full GPL specifically in order to prevent people statically linking closed code against them.

    3. Can I obfuscate my code (e.g. encode it)?
    There's no point obfuscating Source Code which you aren't releasing because nobody else is going to see it. There's no point obfuscating binaries because the code to de-obfuscate them is required to run them.

    4. Could I be forced to publish this code by some 3-d party?
    Only as part of a settlement package if you were doing something you shouldn't, and even then only by mutual agreement unless the law changes in future to make "intellectual property" subject to forfeiture. There will always be an alternative (though that may well be to pay out a large sum of money and not sell any more of your product).

    5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?
    Not necessarily. Even BSD systems contain some components which are under GPL and/or LGPL. Of course, you can buy commercial versions which do not have such restrictions.

    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!
  36. Interesting question by rileym65 · · Score: 2, Interesting

    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???

  37. 1 acronym - IANAL by pjr.cc · · Score: 2, Interesting

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

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

  39. Re:A sense of morality, perhaps? by ChronosWS · · Score: 2, Insightful

    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.

  40. Future considerations by Coward+Anonymous · · Score: 2, Informative

    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.

  41. Not using other people's code? by iabervon · · Score: 3, Insightful

    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.

  42. 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!
  43. More answers by HiThere · · Score: 2, Insightful

    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.
  44. Re:Hardware gives you a leg up, though in that cas by elhedran · · Score: 2, Interesting

    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.


    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.
  45. The real answers... by SETIGuy · · Score: 3, Insightful
    IANAL, of course, but I have some experience in these areas.

    1. Can I do it with Linux today (GPL2) and tomorrow (GPL3)?
    Yes, of course. However if GPL licensed binaries are distributed with it, you must provide source for those binaries for a period of no less than 3 years longer than you distribute the device or application. This, of course, applies to GPL licensed binaries even if they are running on a BSD kernel. This provision applies whether you have modified the code or not. You can rely on a third party to distribute the source code. However, if that third party ceases distribution of the source before the 3 years are up, you are still obligated to distribute the source.

    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.

    2. Can I statically link the code with Linux libraries? (My own experience shows that dynamic linking is too much to bear.)
    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.

    3. Can I obfuscate my code (e.g. encode it)?
    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.

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

    5. Am I correct that programming in and selling BSD-based boxes won't raise any of the above problems?

    No, you are not. Not all code in a BSD distribution is necessarily licensed under the BSD. Nor are you protected from anyone who claims that their code was improperly included in a BSD licensed application. Worse yet, there are potential patent violations in just about any device you might want to sell.

    I only have one follow-on question. Why are you so afraid of releasing your sources? What's the worst that could happen?

  46. What is left for professional engineers to do? by Douglas+Goodall · · Score: 2, Interesting
    On one side we have closed source operating systems with closed source development tools and libraries that are riddled with bugs, are inefficient, and expensive to get support for. Examples being Microsoft Windows, Visual Studio... People actually get paid to work for commercial companies that provide serious software in the space. The get to have families, homes, cars, and a life.

    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.

  47. Re:The "TiVO" argument by maillemaker · · Score: 2, Insightful

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