Using GPL/BSD Code In Closed Source Projects?
Dan asks: "I am considering writing a program that will use code from OpenSSH and OpenSSL as the base for my network protocol in a closed source project. How can I do this without breaking the GPL/BSD license? If I isolate the borrowed code in a shared library, and then open the source for that whole .so or .dll file, is that sufficient? Or do I also need to open the API for that shared library as well?
It seems to me to be quite reasonable to include code from open source projects in closed source projects, as long as the areas that it touches are open as well. For example: if I develop a network chess game with a protocol based on OpenSSH, it would seem to me to be reasonable to open up the code for the protocol, but not the code to make the entire game...that would seem silly. Any thoughts on this?"
--
Linux user since early January 1992.
Sounds like you're hosed, and FAI is hosed. That's your problem- better develop what you need yourself, or get it from BSD-licensed stuff. You obviously can't use GPLed code. I've written some GPLed code (not that you'd find it useful, you wouldn't) and I wouldn't want you using it under those conditions. If I wanted people to just _use_ what I did, I'd have made it public domain...
Well, the point of the GPL is that it's a fair exchange of code. I give you my networking code and let you use it, and in return you give me your chess code and let me use it.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
But this is Unix. The Unix philisophy is "many small programs chained together". The Unix philosophy is of many small independent components, each of which is independently useful, glued together by an overarching "glue" program (often written in a scripting language, but not necessarily).
I think it's plenty clear that releasing independently-usable programs under the GPL satisfies all terms of the GPL, as well as adding to the large stock of GPL'ed software already out there. The operative phrase is INDEPENDENTLY USABLE. If it requires proprietary components in order to be useful, then it's not in compliance with the GPL. So if I create a new encryption program, let's called it, say, 'aescrypt', so that I can transfer encrypted passwords around my network by calling it from within my own proprietary programs, it is in compliance with the GPL as long as I can post it on Freshmeat and other people can download it and use it in their own scripts and programs. But if I made it require a special file or a special proprietary program in order to be useful, well, that's not in compliance with the GPL. Deciding exactly how independent a program must be in order to qualify as being a GPL'ed program is something that requires some thought. It's obvious that "aescrypt", for example, could be GPL'ed (we actually released it under the BSD license, but that's another story). But if we took the GNU "df" program and modified it to produce output that was easily parsed by shell scripts but that is not easily humanly readable, does the resulting program comply with the GPL? I say yes, because other shell scripts that need file system listings can use "sdf" ("shell df") and thus it is independently useful. But others may disagree.
RMS has covered this to a certain extent in his comments on calling GPL'ed CORBA components from proprietary programs. He's for it -- as long as the CORBA components are independently usable components (i.e., that don't require non-GPL'ed components in order to run). The goal is to increase the number of GPL'ed programs and components in the world so that he never has to use a proprietary program, not necessarily to squash all proprietary vendors (though he disapproves of proprietary vendors, obviously!) But I'm sure there's some possibilities in there that RMS is still thinking about.
-E
Send mail here if you want to reach me.
'mtx', 'tapeinfo', etc. are called from within BRU Professional (via ye olde fork/exec). No more a violation of GPL than calling GNU 'ls' from within a shell script that installs your proprietary program.
Send mail here if you want to reach me.
-E
Send mail here if you want to reach me.
-E
Send mail here if you want to reach me.
While RMS would have preferred that we open sourced the whole application, the fact that we have released independently-usable programs as a result of our work is enough to satisfy the GPL and stave off a little of the grumbling. That is also why RMS says it's okay to call GPL'ed CORBA components from proprietary programs -- every little piece that's GPL'ed helps further his goal of being able to do everything with free software. The requirement is that the GPL'ed component be a complete, independently usable program or component -- this gives RMS something that he can personally run as part of his totally-free system. Just releasing a few unusable fragments of code (or a CORBA component that requires proprietary components in order to be useful) won't do the job.
Regarding network protocols, I wouldn't use 'ssh' or 'openssh' anyhow. Investigate 'openssl', and write your own protocol based upon it. I could not use OpenSSL for the closed source project that I worked on because of the RSA patent (which is now expired so it's not a problem for you, back then it WAS a problem) so I wrote my own Diffie-Hellman based protocol, but nobody should have to go through that hassle nowdays.
-E
Send mail here if you want to reach me.
The rule (well, the law, I should say) is that if the library is GPL'ed, then programs that use the library must be GPL'ed. If you don't agree to that, you have no right under copyright law to use the library, and can be sued for a $100,000 copyright violation for each instance of shipping a proprietary product that uses the library (so if you sold 100,000 copies of your program... whoa, can you count that high?!). Note, however, that I can use 'tapeinfo', 'loaderinfo', and 'scsitape' from a proprietary product without the proprietary product itself being GPL'ed. What matters is that these are complete, useful programs. The fact that they can be called from shell scripts or Python scripts that are not themselves GPL'ed is irrelevant.
-E
Send mail here if you want to reach me.
Posted by polar_bear:
I really think that this guy needs to either suck it up and use the right license or re-write the code that he needs. Most developers use the GPL so that other folks have to use the GPL if they utilize code from the GPL'ed program. If you don't like the GPL that's cool -- but you shouldn't benefit from the work of people who contributed to Free Software.
BSD Licenses do allow what he's talking about, so if there's code available under that license then fine.
I'll probably get flamed into eternity for this but oh well...no one argues that I should be able to co-opt proprietary code from Windows and GPL it. If you want to write proprietary code, then you shouldn't be able to draw on Free Software.
The GPL is of course a license, and it takes a special kind of brain damage to think it isn't. But it's a license designed to achieve RMS's tool of maximising software freedom, so it's a political tool to that end.
It's funny how those who GPL their code get more heat from the likes of idiot you replied to than closed source software providers who give us less freedom with their code.
--
Xenu loves you!
It depends, I suppose, on whether they chose the GPL because it was simply the standard in their area of software, or whether they actually believed in copyleft. Or, in some cases, where they chose GPL just so they could keep close-source competition from gaining unfair advantage from their software (by using pieces without giving back their improvements).
I know Ian Murdock (Debian founder and dpkg developer) has even made noises that he would make an issue of using this sort of technique to use his GPL code with non-GPL programs. I think he ended up softening his stance in the end, though.
What he is saying is he'll take the code, make small changes/additions, and use it for networking in his game. He says he's fully willing to give you the changes/additions he makes.
He's not willing to give you the rest of the game, which is not a change or addition to the code, but something completely separate. I hardly see how you can consider the algorithm powering his chess game a change to the networking code. It's completely separate, and he has a valid point that it's silly to expect him to open that code.
What you'll probably end up with is a chess game that has crappy networking code, and GPL networking code that isn't improved because the license on it is ridiculous. Big win for Open Source(TM)
You are right, of course. Your code is yours and nobody's else. But: if you are accepting this position, like "I give my code to whom I want, and only to those", why calling it "free software" and brag about how much code reuse and public good GPL libraries bring? Say "this library is GPL-proprietary software, only members of FSF political circle may use it", and be good. But calling "free software" something that anybody who slightly disagrees with FSF cannot even touch - that's a gross exaggeration if I ever have seen one.
-- Si hoc legere scis nimium eruditionis habes.
Now my Open Source ignorance is going to shine through. I am a huge advocate but I have to admit that I get lost in what I see as grey areas.
GPL questions...
I understand that copying and pasting somebody's code into your code is a bad thing. What about using a Perl module (you are including source with your source code). Or libraries that are GPLed but your code is not?
I could be missing the boat here. If I am not modifying the work that they have done and I am not including what they did with my software but it requires it to operate, is that wrong.
I can think of scripts I wrote in school that used Perl modules to get stuff done. Should those scripts be opened up?
How far does it reach?
-I just work here... how am I supposed to know?
Aside from the fact that both the products you mention are BSD licence, meaning you can do what the hell you like with the code as long as you retain the author's copyright notice -- let's just explore the hypothetical situation if they had been GPL code.
If you really want to disrespect the wishes of GPL code authors, you might want to look at what the TiVo guys did to implement their proprietary filesystem on Linux.
What they did (or near as dammit) was write something akin to the NFS mounting code, except using UNIX sockets instead of IP sockets. This code had to be part of the Linux kernel, and was hence GPL. Then they wrote a closed-source piece of filesystem code which ran as root in userland. The GPL code in the kernel would then mount the filesystem being exported by the closed-source fileserver code.
This was legal, if not in the spirit of things.
So, you could write a program which proxies IPC messages and SSLifies them, and make it GPL. In fact such a thing might be a valuable tool to the community, since they could easily reuse it in all sorts of situations. Your closed-source program would use this GPL'd component's services to reach the outside world in an SSLified manner.
Oh, by the way, we call SSL TLS these days, for some reason unknown to me...
--
If it's BSD, all you have to do is give proper credit.
If it's LGPL, then you can isolate the code in a shared library and Open-Source that, while keeping the rest closed. It does have to be a shared library, however; static ones won't do.
If it's GPL, your chances are slim, but all is not lost. Ask the authors of the code for permission to use their code in your project. You never know; they just might let you do it.
----------
If you're doing closed-source work, don't even look at GPL code, lest you be accused of stealing code somewhere down the line. And if someone calls you on a suspected GPL violation, how can you prove your innocence? Show them the code? Even if you are inspired by how a piece of GPL code did something, and implement something similar, that's kinda suspect as well.
Play it safe, don't invite the wrath of GPL zealots upon yourself and your project, just steer clear of GPL code altogether.
On the other hand the BSD licence is for people who would rather see good code running things, even if there is no way to get money or code or (assuming the advertising clause is dropped) even fame.
If you spend a month tweeking a LaPlacian predictor for whatever reason and slap the BSDL on it you get code that might make it into your automatic transmition, or anti-lock breaks. If you GPL it chances are very slim.
Either is your right. The GPL is somewhat more likely to force others to open their code. The BSDL won't force anyone to, but people who use it migh feel like contributing on their own. Or not.
Well, if they BSDL it, or (to a lesser extent) LGPL it, I would say it is Ok, because they told you it was. If the code is GPLed, and allready packaged up as a usable program, maybe it is Ok. Is it OK for a comercial web browser to fire up a GPLed helper app? Is it ok for a comercal shell to use GPLed programs inside a pipeline? Is it OK for a comercial program to run under the Linux kernel? Is it OK for the same comercal entity to ship a Linux distribution "for free" along with the comercial (close source) program?
Yeah, but one man's loophole is another's clear intent. Is what TiVo did exploiting a loophole? Or did Linus intend to allow it?
I'll totally admit that taking a GPLed liberey and turning it into a program, and than effectavly into a LGPLed one by talking to that program over a pipe or shared mem or whatever is...distasteful, cheeting, and immoral at least if the program isn't generally useful. The harder part is, what if that program is gennerally useful?
If gzip was only libgzip.a, and GPLed, would writing a commandline gzip and gzcat be immoral? Even if the primary intent is to let it be used from a non-GPLed program?
Code cannot be "stolen". (and this is according to RMS. He gave a talk at my University). However, the GPL code can be "misused" (his term) in exactly the way you describe.
___
___
If you think big enough, you'll never have to do it.
Full disclosure: I just started hang gliding, so the chances that I'll be in the market for a Linux-supported vario in the near future seems to be rather high; I'd love some graphics support :)
--
I think there is a world market for maybe five personal web logs.
Why don't you buy the commercial version of SSH? You can pay your way, and your customers can pay theirs, and eveyrone will be happy.
If you're unwilling to pay yourself, then maybe you should reconsider your model.
Perhaps you could isolate the super-secret-squirrel code in another executable that gets called by the main application which you could then GPL...
There's lots of BSDL code out there too, which would work for you just fine.
"Oh twap!"
Stallman's use of the word "free" very seldom has anything to do with monetary cost and everything to do with freedom.
Or are you under the impression that when people talk about a "free country" they mean that you can get anything without paying for it?
There is a difference between selling software for steep prices, and trying to lock-in the customer through secret code and underhanded anticompetitive practices like Microsoft's "embrace and extend" policy.
"Oh twap!"
You may regard that as a benefit. From my perspsective, if somebody wants to use my code for their project, they should have to open their project's code too. That's the reason why the project I work on uses the GPL.
Others might be happy for their code to be absorbed into closed source projects. Sometimes there are practical reasons for allowing this, sometimes it's just personal preference. Good for them - they can use the BSD license or put their code in the public domain. Just don't expect me to.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
Could be smart and write a small helper-application that is completely open sourced and then use that application to do what you like. Given the likely uses of SSH I doubt anyone would be pissed if you wrote a program to simplify tunneling protocols (even more) that was opensourced and then just passed your data to that in the background. It's no different than a commercial program that runs a bash shell script to do something so it should be okay. If the program happens to be tuned for what you need then oh well - if it's opensource and useful others will tune it to their needs too.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
Actually, I think it's the GPL people who are assuming there is an intrinsic right to use code. That's the whole point of "free" software, after all.
I can only assume Dan is planning on compiling a high-tech spam list with the email addresses from all the flames he gets.
Somehow I doubt the slashdot crowd is going to be overly sympathetic to the stated goal of, essentially, figuring out the LEAST you can do in terms of contribution for what you've taken.
While you may be totally legally clear by just returning all the network side of your app to GPL, I think the moral idea is that if you are clearly benefitting from "borrowed" code, you should be loaning out your own code at more than the bare minimum required so that others can benefit.
The other (comprimise) way of doing this would be neither to give back the chess game nor just your network patches, but something in-between. Develop a generalized gaming network protocol based on OpenSSH that could be used by other game developers for backgammon and checkers, so that while you may be selling your closed-source chess game, you make it easier for others to create similarly polished (and compatible!) games (GPLed or not).
---------------------------------------------
Recursive: Adj. See Recursive.
That said, both codebases are under licenses which allow you to copy code (1 - OpenSSL) as long as you don't claim the finished product to be the original, or use the name of the original to promote your work. (2 - OpenSSL) That derived code include the copyright notice from the original code. And (3 - OpenSHH) that you credit the originators for their work.
So the bottom line is yes, you can use it. GPL code however requires that when redistributing GPLed code, you license it under the GPL, include source code for no additional cost. If you only copy and do not redistribute GPLed code, (i.e. for a project strictly internal to your company/organization) then all bets are off, and you can do with it as you please.
-earl
Don't think you will get away with it. Many have
tried and gotten caught. You will be exposed as
a law breaker and thief.
I don't know, can you point to one place which gives information on people getting caught with GPL'd code in a closed-source program?
I ask because CONSTANTLY it comes up that people say, "Maybe this will be the legal test of the GPL" blahblahblah... From comments like these, it sounds like there has NOT been such a case yet.
Erik
> As a political tool, hey, whatever you can get away with to force other people to release THEIR code, no matter that it has nothing to do with YOUR contribution.
Nice spin. Completely bogus. I can't "force" you to do anything. However, I can withhold my permission for you to use my code.
It's not like using GPL'd code is your only choice when you start a new project. You could write it yourself, like I did. Or you could hire someone else to write it. Or you could obtain it through a license which may or may not cost money, depending on what you want and who is licensing it to you.
The problem with critics of the GPL is that they assume they have some kind of intrinsic right to use GPL'd code, and thus bitch about the restrictions on it. The fact is, however, no one has any intrinsic rights to it at all. You can use it under a license, just like you could with code from Sun or Microsoft. If you don't like the cost or terms of the license, you have to shop elsewhere, whether you're dealing with Sun, Microsoft, or me.
--
Sheesh, evil *and* a jerk. -- Jade
AFAIK, IANAL and all that.
You'll be wanting to read the OpenSSL licence then?
But it seems fine to me. OpenSSL is released under a variant of the BSD licence (enforced credit-where-it's-due), which is more or less carte blanche to do what you like provided you put some thank you's in the appropriate pages. Apart from that, fine, tunnel what you like. Try hacking around with stunnel first (/usr/ports/security/stunnel/).
Dave
I write a blog now, you should be afraid.
There's no reason to disallow GPLed code, except for license nazis who hate RMS.
If I write a game by using 50% GPLed code, I'll get that game out a lot faster. But I'll have to GPL the game source and release it.
If I change my mind, I can simply rewrite that 50% that I borrowed and then I'm free of the GPL.
You can't revoke a license. If you release something under any license you can't change your mind, GPL or BSD, or whatever. But you can relicense your portion of the source. That is, simply rerelease the code with a new license. Or, in this case, remove the GPLed code and then don't release the source.
But, imho, it's pretty sleazy to use open source code to write a game and then close the project when it gets popular. If you used community resources to write something, you should help the community by releasing your code. To do otherwise is terribly greedy.
Counterstrike (to use your example) would still sell just as many copies if it was open sourced. All the content (art, maps, models, etc) is copyrighted quite seperately from the GPL. To release the source code wouldn't involve giving a working copy of the game away.
Nobody would be upset if you did all you could to release as much source-code as possible. Especially if you were hampered not by YOUR desire to keep the code closed, but by that of a clueless company.
You've already finished it (from the sounds of it) but had you been starting now, I'd say that it likely would have been a lot easier if you could have borrowed GPLed code for your tasks. That would probably have ofset any lost time involved in breaking out the device specific routines into a seperate file.
It honestly doesn't sound like an application with a wide market, so don't sweat it.
If I write a program for my own use, I'll send the binary to a friend of testing, without worrying about this technically being distribution, etc. Ditto with something I wrote for myself that someone else wanted a copy of.
I'd only call it distribution if I was offering it to other people, on a web page or something.
That may not technically be the correct meaning, but in the case of a limited audience app, I don't think it matters. (While a high percentage of your friends might use it, I doubt many people worldwide have ever heard of FAI, let alone need to interface with hardware they certified.)
OpenSSH and OpenSSL both fit under variants of the BSD license. The only place the GPL is mentioned in either one is in OpenSSL which specifically DENIES the right to relicense under GPL. Out of the 33 posts ATM, a good dozen or so are about how to include GPL stuff in payware. What part of BSDL don't all of you understand? As far as the inclusion of BSD licensed stuff in payware, Microsoft did it with the early versions of their TCP stack (up until win2K), BSDi does it regularly, and HP is still doing it for now. Mostly it involves making sure that copyright notices stay intact and ensuring that the Copyright holder (often the Regents of UC Berkeley) gets credit where credit is due.
Just because you're paranoid doesn't mean they aren't out to get you
"If you use MY code, you go with MY license!" - Wait a second. Why can we say that and not be hypocritical? I want to use a DVD player. The DVD industry insists that the discs I use be encrypted. I want to watch THEIR movies, shouldn't I agree to THEIR license? What about Napster? I want to listen to THEIR (the artists') music, should I obey THEIR wishes?
Oh wait, everything's okay if it's done in the name of the GPL. Sorry, I don't mean to rant, but we can get pretty hypocritical around here...
...but it's being eaten...by some...Linux or something...
Regrettably, it is now well-settled law that the loading of a computer program into RAM constitutes a "reproduction," of a copy, or copying, under 17 U.S.C. s. 6, which, if unlicensed, constitutes an infringement.
The question whether you will be "found out" and prosecuted or subject to liability is a question different from whether you may legally use, but not distribute, modified or linked-to GPL software that you feel could not be distributed.
Just a note, regarding the level of plugin, the GPL does actually specify at least one point I believe, which is that code of any license can interact with it if the GPL code is entirely contained within a standalone executable or some such, I suggest a careful look around the FSF website, but examples put forward earlier such as Netscape Mail using gzip, etc, suggest that you could do it with only a little work.
You can't win a fight.
why dont you go and get a law degree. It could make your practice.
How we know is more important than what we know.
If it's all about being free and open why don't we just make everything public domain and not restrict users. If closed-source projects use open-source code, they aren't stealing profits from open-source code because it's open anyways.
I think that's the point.. it's all about everything being free and open. RMS is not just trying to encourage Free Software, he is trying to stop closed software, which is all in all, a good thing, because you only do harm to people by closing your source.
How we know is more important than what we know.
bah.. if the Microsoft EULA (which basically declares that you have agreed to the license before you even read it) can stand up in court, so can the GPL. Copyright is lame, outright.
How we know is more important than what we know.
I cant say I agree that GPL forces anyone to open their code. Indeed it does use the force of the state, so this is debatable, but I tend to think that GPL is about not wanting to aid other people in writing non-free software. This would be because non-free software is considered a Bad Thing in that it reduces freedom and causes social harm. Now RMS is not coming out and saying "Thou shalt not harm others with non-free software" (although I wouldn't be suprised if he did say this), he's just saying "If you want to go and build fences and hurt people you can do it without my help and without the help of free software".
How we know is more important than what we know.
The reason that you wouldn't say that is that it's not true. Anyone can use GPL software. The GPL only restricts what gets done with the source code. Specifically, it puts restrictions on source code so that GPL'd code won't make its way into proprietary software.
And that doesn't seem unreasonable to me. When I work on code, and contribute it to the community, I don't want someone else making money off of my effort. Sorry that's just the way I am.
You may decide that since this is a restriction, that it's not free, since "free" would imply without restriction. But "free as in speech" doesn't imply without restriction (e.g. slander, libel, and yelling "fire" in crowded public places), so I don't see the need for "free software" to imply no restrictions.
Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
ofcourse Napster and using GPL in closed source are two different things in copyright law:
Napster is piracy (illegal exploitation): it infringes on the right of sale (or whatever it's called in english. it's not my first language and IANAL)
GPL in closed source: This infringes on the moral right of the creator: the original creator is not fully accredited.
As for my view on copyright: the second case of plagiarism is, IMO, the good part of copyright. the piracy clause should be done away with. But those are just my views.
//rdj
No one can understand the truth until he drinks of coffee's frothy goodness.
--Sheikh Abd-Al-Kadir, 1587
Not that I encourage this, but there is a very elegant way to do this with SysV IPC. Just create a "server" using the library and have it respond to messeges.
A deep unwavering belief is a sure sign you're missing something...
(Assume that I'm the author of the aforementioned code. I'm not, but...)
If you want to use MY code, you have to agree to the terms I give on it. And my terms for using MY code within your program are that you have to release the source code for the entire application.
GPL code is not public domain. You have to satisfy MY price to distribute MY code. Otherwise, you have no rights under copyright law. If you don't like the terms I offer, you can either negotiate other terms with me (which will probably require monetary renumeration), or you don't use the code.
If you want code without these restrictions, either reimplement it yourself, or use public domain. You have no right to use my code.
It also doesn't mean you shouldn't. In the case of OpenSSH, I can say with certainty that the authors don't care how you use it. They don't have an axe to grind.
Copyright is also a really long time. I can't recall the specifics offhand, but 50 years floats to the forefront as a minimum. There's also some stickiness about renewals and rights to survivors and the like.
Greetings from a fellow nut. :-)
I'd probably go PD myself, too, but there's the thorny issue of protecting oneself from people who think that gifts of code should be warranted. Being paranoid about that sort of thing, I'm shooting for an X license (is it just me, or does anyone else think the BSD license has some problems with grammar and punctuation?)
You're the original author of GoodForNothing, so you can do whatever the hell you want with it, plain and simple. There are a few companies that do this for their business model -- release the same code both GPLd and proprietary so they can appease zealots^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H gain support from Linux folk and make money at the same time. (Of course, they must get copyright assignment on any outside contributions in order to keep doing this.)
OpenSSH won't stand in your way in this scheme. It's licensed under the BSD license.
And all versions require copyright reproduction. But with online help documents and thick manuals, that's really not too hard.
-bugg
The GPL is designed to prevent exactly this. While the BSD and, to a lesser extent, the LGPL, has a main purpose of seeing the code in use, hopefully in a free way, the GPL has a main goal of making as much code open as possible. In this, it sacrifices the convenience of the developer for freedom. While this is a goal that you may or may not agree with, it is one that you should respect before trying to use GPL'ed code in a closed application.
Your option under the GPL is this: Open your code or use a closed-source library. Perhaps, instead of trying to find a way to include open code without violating the license, you should explore either one of the above options. Anything else would violate the spirit, if not the letter, of the General Public License.
--
Friends don't let friends misuse the subjunctive.
What's "nasty" about it? You don't like the GPL, so don't use GPL'd code. Write your own stuff. Or do you think it's fair to use someone else's hard work in your own project and then be under no obligation to pay for it? There is NO difference between what the article poster proposes, and taking someone's closed source code and incorporating it into your work without paying for it. In one case the price is monetary, while in the other it is the requirement to open your code. You are free to choose not to use it. Trying to "get around" the license is unethical and morally wrong. No one is forcing anyone to use the GPL.
-Vercingetorix
-Vercingetorix
"Necessitas non habet legem." -St. Augustine
I thought the U of Berkeley removed the advertising clause to their license. This was covered on /.
/.
And what is so hard about actually READING the BSD license?
Oh, wait, as this AC points out...this is
If so, you don't even have to let them know the code is there anymore and don't have to credit them
WRONG, wrong, wrong.
All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite Releases is copyrighted by The Regents of the University of
California.
Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
As you can see, you HAVE to keep the copywrite and disclaimer. You HAVE to keep the copywrite on the code.
Now, you can ADD other copywrites which do not conflict. But you CANNOT do as the AC suggests.
If it was said on slashdot, it MUST be true!
No, the original poster is *NOT* correct.
The removal of clause #3
3.All advertising materials mentioning features or use of this software must display the following acknowledgement:
This product includes software developed by the University of California, Berkeley and its contributors.
Just because #3 is gone, this does not mean #1 and #2 clause go away.
1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
The poster who stated:
If so, you don't even have to let them know the code is there anymore and don't have to credit them
IS WRONG
You have to credit them. And you have to let others know that the code has BSD origins.
You just don't have to do it in the advertising materials is all.
If it was said on slashdot, it MUST be true!
Of course it is. There are tons of closed source user land apps. Every moron looking at some internet appliance running Linux claims it's a GPL violation. It's obviously not as long as they contribute back and distribute and modifications they made to GPLed code. They have NO obligation to make their proprietary client/interface/whatever app that runs and makes a pretty X interface for their appliance/ TV recording device/whatever accessible and fun to use and it probably wouldn't benefit many people if they did anyway.
The true benefit of BSD code is that you don't have to publish your source if you use somebody else's code. Depending on the version of the BSD license you may have to obey the advertising clause, but other than that you're home free. Nothing to give back _ever_.
--
Eric is chisled like a Greek Godess
marotti.com
The questioner completely glosses over this, as if he thinks they are the same. They are not. The BSD license allows you to rip their code for any purpose whatsoever. OpenSSH is under the BSD license, not the GPL, so that answers the question.
Which doesn't mean you should do what you are talking about, only that you can.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Also, who says you can't call a open source (GPL or LGPL) library with a proprietary program? Netscape does it all the time and it's closed. So does alot of other programs. Heck Oracle is as closed source as can be yet they use a open source resource (namely, the kernel(only one I can be positive about)!). Doesn't all closed source programs running on Linux use something that's GPL'D?? Your FAI example doesn't make alot of sense. You said the PROTOCOLS must be closed. Why does the program that produces the graph have to be closed?? It's not the protocol right???
Gorkman
The GPL exists to protect the authors of Free Software from having their work stolen (yes, I said "stolen") by people who aren't willing to give back to the community.
Seriously, why would you think that you can freely partake of the efforts of a programmer without giving him some sort of compensation? The author of GPLed code, I'm sure, *rejoices* every time he sees a project GPLed because it used his code. That's what he charges for his code: that people who use it must also contribute to Free Software.
Honestly, I don't think it's moral to used GPLed code without GPLing your product that takes advantage of it, regardless of whether you can find a legal loophole for doing so. Doing so violates the intent of the author.
Jeremy
Looking for a Python IRC bot?
If you're dealing with the BSD license, you're fine. BSD is about Open Source: The source code is there, it is open, and you can do what you like with it.
If it is GPL, you're screwed. GPL is about deliberate incompatibility -- it won't co-exist with any other license.
Fortunately, OpenSSH is BSD.
Tarsnap: Online backups for the truly paranoid
Molog
So Linus, what are we doing tonight?
So Linus, what are we going to do tonight?
The same thing we do every night Tux. Try to take over the world!
GPL/BSD, whatever floats your boat, it is your code, do whatever. But I personally believe that the GPL can be dangerous, as it actually discourages the reuse of code. And this can seriously hurt a program. Here is an example: Bison is a wonderful tool, a really nice LALR(1) parser generator, and far superior to YACC. However, when you use Bison, it includes a large quantity of code in order to create the parser generator used by the program. 7 or 8 years ago, Bison was under the GPL, and, since it includes a good hunk of itself in any program compiled by bison, the output of Bison was under the GPL. Therefore any program which used Bison to construct it was under the GPL. As a result, nobody used Bison, outside of GCC and class projects. Since then, they changed Bison's liscence so the output is under the LGPL. As a result, it can now be used as a general purpose tool, like GCC.
Nicholas C Weaver
nweaver@cs.berkeley.edu
Test your net with Netalyzr
There is nothing wrong with just cloning the interface AFAIK.
Apparently The Tetris Company didn't think so for a while and sent cease-and-desist form letters to authors of falling tetramino games. (Eventually, they realized they were pissing in the wind, and only sent letters to the authors of games who called their work "Tetris" in violation of the trademark.)
Like Tetris? Like drugs? Ever try combining them?
Will I retire or break 10K?
I'm planning to rob a bank. If I dress up really decently, and use polite language (and a nice looking gun) while adressing the bank staff, will I get away with it?
It seems to me quite reasonable for the bank to give me some of their money. They've got so much of it.
there should really be a lgpl libssh around, but i guess they never made one.
no, you can't wrap gpl code in a shared library, lgpl it, and say "whoopee, i did it". you would be lowering the license level of the code, which you cannot do.
this is one of the drawbacks of the gpl -- if the fundamental architecture isn't properly thought out, it makes life pretty difficult for *users* of gpl code, which is what you want to do...*use* some gpl code.
maybe that would be a cool thing to do...take the bsd code, and make a nice libssh. you can't lgpl that, though, i don't think, but you could be nice and give it away under the bsd/autistic license.
Treatment, not tyranny. End the drug war and free our American POWs.
See my user info for links.
But never mind, I assume you wrote this out of ignorance and innocence, and not bad will... so here's the answer:
It seems to me to be quite reasonable to include code from open source projects in closed source projects
...
it would seem to me to be reasonable to open up the code for the protocol, but not the code to make the entire game...that would seem silly
Why?
All I can observe is:
That being said, you are lucky that OpenSSL and OpenSSH are both BSD licensed programs (IIRC) and thus you can do with it whatever you want. But I am really concerned about your attitude towards Open Source. Why the heck is it "silly" to make your own program open? Why on earth did you choose it to be closed anyway?
I know I sound like a hippie father trying to understand why his son joined the army, but please do consider this. Open Source has got tons of benefits (see here for more info) PLUS idealistic advantages (see here for more info). Why go closed? Your program would hardly have any impact to the Linux community in closed source form, nor would people contribute to your work, etc.
It's... It's...
"We can confirm that Debian does *not* ship the version with the trojan horse. Our version predates it." [CA-2002-28]
Completely bogus. I can't "force" you to do anything.
OK then. Microsoft can't force us to do anything either. You must accept that to be consistant.
Yes. You *can* force us to do things. There are already a few things I can think of where the best tool for the job is GPL, and there are no close seconds. Under that circumstance, the choice that we must make is a direct result of programmers choosing the GPL.
Back when only a few people were GPL'ing; your statement about not being able to force people might have been true. Now there is huge and growing market penetration. Now you are no longer the rebels. You are the authorities. You must deal with your power now. Like all rebel movements that come to power, the Free Software movement is likely to be very authoritarian. We'll see.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
The GPL is pretty clear that you must release all of the code that you link with any GPL'd code you use. Section 2 spells it out about as clearly as possible:
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:- a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
- b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
- c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
It's hard to speak for other authors/programmers, but it's been my impression that many choose the GPL specifically because of these terms.The fact that your application has a requirement to be closed source doesn't give you a right to use other people's code in violation of their license terms. Just because it would "really help" you doesn't change a thing. As far as the GPL is concerned, you're out of luck (at least that's how I read it, IANAL). I personally don't like closed source software, and when I release code under the GPL, I want it to help whoever gets it, and other GPL'd projects, but never a closed-source-friendly code base.
But never is a really long time... copyright does eventually expire, and in the meantime, you can always contact the author and ask if they'll release it to you under a license more to your liking. Offering money probably helps your chances.
PJRC: Electronic Projects, 8051 Microcontroller Tools
Then again, we're all a bunch of zealot free software hippies, and I'm sure RMS would complain.
It's not about cash. Stallman initially created the GPL after he had some problems with closed-source software that the manufacturer refused to fix. He didn't want this to happen to anyone else, so he decided to create his own versions of the Unix tools with the source code freely available so that anyone who used them and wanted to customise them, could, without an corporation making commercial decisions as to what needed to be changed. The GPL doesn't preclude making money from their software, it just means that the people you sell it to have the right to customise it for their own use.
The GPL is all about being a hypocrit. Open source zealots don't like how you can't benefit from closed-source projects so they will make sure closed-source won't benefit from open-source either. I know that on the project I work on the licensing creates way too many headaches.
If it's all about being free and open why don't we just make everything public domain and not restrict users. If closed-source projects use open-source code, they aren't stealing profits from open-source code because it's open anyways. And if closed-source projects used the open-source code wouldn't that make the closed-source projects better because they are using open, tested code? My flame for today, I guess it's just because of all the licensing headaches I get at work.
The GPL is more than a political statement. It is a choice that I or another programmer make about how their work is to be used. I am sorry that the terms of the GPL hinder your work, but you have no more right to demand to use the code that I or any other programmer who published under the GPL writes for free then you have a right to force your plumber to work for free or your doctor to work for free.
This is really what the GPL is about. It is about making an intentional choice about how your labors as a programmer can be used by others.
I choose to contribute to the GPL software community. I do not choose to give my work away for free. My payment for my work is the other contributions of the other memebers of the community, including those of people who modify or reuse my code. You don't have to contribute to this community if you don't want to, you just can't use our resources for purposes which don't contribute.
When code is published under an open source license it is a choice by the programmers writing that code to make it available to others under a specific set of restrictions. It is wrong of you to try to take the work of those programmers and use it in ways they explicitely do not approve of by virtue of their choice of licensing agreement.
If they choose to publish under a BSD style license you are free to reuse their code and incorporate it into a closed source product. That was the way the people who wrote the code intended you to use it.
Many of us who publish under the GPL feel differently about how we want our work used. We do not object to others who are contributing to our community on the same terms reusing our code, but we do object to people simply taking our work and using it as a free ride. When you release derived works under the GPL you are in a sense paying us for our work by enriching our community. When you simply take our labor and use it in your closed source product you are stealing our work as surely as someone who pirates your closed source software is stealing yours.
Please respect the wishes of those of us who choose to contribute our time, efforts, and talents under the GPL and respect both the letter and the spirit of that license.
I fail to see how GPL can constrain you as long as you don't distribute your software.
... I would just prefer to write software that my fellow pilots can use too.
Well, I'm talking about the version that I distribute to other programming-challenged pilots here. I'm quite aware that I can use whatever GPL code I want however I please for my own software
You write a closed-source daemon that talks to the hardware and exports the data via HTTP or RPC or whatever interface style you happen to like.
Well, that certainly does make a lot of sense. But where exactly is the line drawn here? If I can use HTTP, can I use platform specific IPC, like AppleEvents? Can I link directly to a shared library? Can I link to a static library?
Pardon me if the GPL specifically addresses what level of plugin integration is allowable somewhere, but I've never noticed it if it does...
is there a reason why you can't just release those 38500 lines of code as open source?
The immediate reason is that there isn't a clean separation between the device-communicating code and the rest of it, so the easiest way to avoid any kerfluffle with FAI is to keep it all closed.
I certainly could put the device code into its own library/daemon as people have suggested, and it seems that there's some level of separation of the two at which the GPL would be technically adhered to in the main program -- but that strikes me as obviously subverting the spirit of the GPL so the GPL crusaders would still be mad with me anyway. *shrug* I'll probably give it a try next time I do a major rev and see what happens...
If you are using a device and software to take measurements for indicating a world record, why would you NOT want the software to be public anyway?
The way that aerial records work is that you submit the documentation to them along with the instrument you carried on the flight, and they and ONLY they open up the instrument and see if its recordings match your claims.
It's easy to tell if a device has mechanically been tampered with, not so easy to tell if its been electronically tampered with, so the advent of communications-enabled varios got them in a bit of a snit. The current status is that a very few electronic varios are certified, but under strict conditions about who is allowed to know what the protocols are.
Yes, it's security through obscurity, yes it doesn't stop you or me hacking the device for a second, but pointing that out to them would not let us open the source, it would just make them decertify electronic devices. People who buy these things wouldn't find that a worthwhile tradeoff, trust me on this one.
They are the administrative implementation of 2.6.3:
"2.6.3 Memory used for flight data. The memory used for storage of the flight data to be used in the flight verification process should be of a type and design so that it cannot be accessed, combined (such as in a storage device with software partitions), altered or corrupted by other data legitimately or otherwise present in the equipment..."
Their interpretation is that allowing public disclosure of the protocols is an unacceptable risk of contravening the above provision.
And, if you're not distributing this application, what difference does any of this make?
:)
Well, that's the whole problem -- I *DO* want other Ball owners to use it. If I didn't the GPL wouldn't be any kind of a concern, I know.
As for the driver thing -- I thought that would be unacceptably subverting the spirit of the GPL, but it certainly seems that most people think it'd be fine. I'll probably do that next rev then
it would seem to me to be reasonable to open up the code for the protocol, but not the code to make the entire game...that would seem silly. Any thoughts on this?
:)
I see you're new here
What you're missing is that the GPL is a political tool, not a source code license.
As a source code license, of COURSE it is utterly ludicrous that you should have to open up source code unrelated to what you're using.
As a political tool, hey, whatever you can get away with to force other people to release THEIR code, no matter that it has nothing to do with YOUR contribution.
This also puts me in an annoying situation. I write free-as-in-beer software to download flight data from the Ball Varios variometers. Now, there's a number of GPL projects it would be nice to include code from, graphing libraries for instance; but if I did, I would have to open ALL the source, which includes the part that communicates with the hardware device, although that obviously has nothing to do with a graphing library for instance.
This is a problem, because the Ball varios are certified by FAI as being acceptable as documentation of a world record flight. And one of FAI's conditions for that certification is that the protocols for communicating with these devices may not be made public. Which means, not releasing the source code containing those protocols. Which means, I can't use any GPLd code at all, no matter how completely unrelated it is to the actual problem and how perfectly willing I'd be to contribute back any work I did to the source I used.
So my users lose out on functionality they'd get quicker otherwise, and the Open Source community loses out on the work I would put towards something licensable.
Now whose interests exactly is the GPL serving here? Nobody's that I can see.
(Don't bother saying "change FAI's mind". They have no motivation to do so whatsoever; there's no way you'd ever get even time to explain the CONCEPT of Open Source, never mind why their certification process should accomodate the GPL...)
If you want to ditribute this for no benefit to you/your company, then you'll not have any problem in distributing the source code.
If you want to distribute this project for your own benefit (which may or may not involve money) then you have a moral responsibility to share the code because your code has only come into existance because someone else shared their code with you.
That's the morality of it; the legality of it is that any project which depends on GPL'd code (source or binary) to work must be GPL'd too. "Depends" on here means that the GPL'd section is either the basis of actual code or so important to the project that it must be offered by you to the users of the project.
An interesting legal point here seems to be that if you are so sure that the GPL'd parts are already available to the user that you can refuse to supply them, then you need not GPL your own material. So a binary for *nix which calls the "touch" command need not be GPL'd unless you distribute it with the binary or code for "touch". Seek legal advice before trying this approach.
If you have a problem with this then don't use other people's code (at least people that release code under the GPL).
Those /.ers who are comparing this with DVD are skipping the morality section and the legality angle.
No one sane is arguing that copying movies and/or music and distributing the copies without permission is right or legal. It has never been either. But preventing fair use (ie I make a copy of a CD to listen to in my car, or a copy of a DVD on my hard drive so I can play it back under Linux) is not moral or legal (really, it's not legal according to US law, getting a judge that understands this seems difficult though).
Revolutions occur when the gap between moral and legal grows too wide for too many people.
TWW
"Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
Well, OpenSSH and OpenSSL are under the BSD licesnse, I believe... so you shouldn't have a problem.
You can do what you want with BSD-licensed programs, so long as you credit the original author in the manner described in the license. Closed source or not, you just need to make a copyright notice available. Read it carefully to make sure you are in full compliance. But certainly, you can use it in closed-source software.
GNU-GPL code, on the other hand, is a different issue. Being a complete asshole, RMS will probably track you down and cut your penis off if you include GPL'ed code in a closed-source project. I think the only way out of this unpleasant situation would be to make the GPL'ed portions of code available separately, with source available.
Maybe now it becomes clear that RMS is a hypocrite... He professes the greatness and necessity of free software, and then he proceeds to restrict it with his own license.
This is one reason, albeit a minor one, that I switched to FreeBSD. Better license, better code (more stable, longer USB support), and the ability to run Linux binaries.
PS -- Sorry if you're a woman, making that penis comment. If you are a woman, he'll probably take your left breast instead.
A new year calls for a new signature.
Noble? It seems emminently practical if the whole world were Open-Source. If NT or 9X is giving you one too many BSoDs, you can fire up your VC++ debuggers, your MingWin devtools, your VI editors, and actually fix, debug, and diagnose your problem.
That's one aspect. The other aspect is 'freedom', in the sense that having bought a copy of NT, or 9X, I should be able to tinker with it, in the same way that if I bought a Ford or Chevy, I can pop open the hood, tweak the manifolds, bores, or just do my monthly maintainence, without *having* to go to the mechanic, if I am so skilled or inclined.
NT or 9X is not so generous towards us. We bought it, but we cannot tinker, fix, or modify.
Your scheme of a giant shareable code-base that others can use as they see fit is equivalent to a world where everything is GPL, in the sense that all the code is out there, and everything is open sourced, and anyone can tinker, load, compile, modify, etc.
The minute your world of shareable code starts to hide and obscure code is the minute the GPL would kick in to force the world to *remain* shareable code.
Yet without the GPL as an enforcing mechanism, what would stop the shareable code base from evaporating with time, as people keep developments and changes private and proprietary?
The GPL is one method towards which we can attain this giant shareable code base, as well as a method towards which we maintain it's status.
Otherwise, if there were no clauses of returning code to the public benefit, just through attrition and age, code would probably just disappear with time.
Geek dating!
GPL Deconstructed
In fact, GPL is a license like a binary-only license, only that you get a much better deal: not only do you get the executables, you also get the source code. You can even redistribute it, and you don't have to pay for it. And if you want to reuse the code commercially, you can license it from its author.
But that doesn't make the GPL a "political tool" (a political tool for what, one might ask?) any more or less than it makes your favorite binary-only, costly, we-own-your-firstborn-son license a political tool. At best, one might argue that the GPL is used as a marketing tool by some companies.
As a political tool, hey, whatever you can get away with to force other people to release THEIR code, no matter that it has nothing to do with YOUR contribution.
You aren't forced to do anything. If you don't like the license, don't use the code and don't contribute to it. In fact, in some cases, I would fully agree that it is a bad idea to base one's software on a GPL'ed library.
There are a bunch of pragmatic exceptions to that rule, involving "system libraries". But it is unlikely that authors who placed their code under the GPL intended those exceptions in your case. Even if you can legally get away exploiting a loophole in the GPL, I would consider that unethical.
If in doubt, contact the author and have them clarify any ambiguities in writing. They may ask you to sign a separate commercial license and pay for it. And, given that you intend to charge for your software, you should be happy to pay for their software.
If it's covered by the BSD license, the intent and letter of the license should be clear: you can almost certainly use it.
Personally, I do not hold with principles or morals, but I try not to rile others unduly. What is the point? If you feel the same, you should have a similar attitude.
You know exactly what to do-
Your kiss, your fingers on my thigh-
You know exactly what to do-
Your kiss, your fingers on my thigh-
I think of little else but you.