GPL To Be Tested by Mattel?
radja writes, "It seems people are beginning to notice that CPHack falls under the GPL. According to this article in Wired, Mattel may have a little trouble getting CPHack off the Web." Check out yesterday's article about the win Mattel had recently with CPHack.
If you had, you would know that they didn't set out to break the passwords. However, it was done in an incidental fashion. Here's the fast-food version:
Cyber Patrol has admin, deputy, and peon levels of access. The admin can do anything on the system, and change Cyber Patrol settings. The deputy can use the system without filtering, but can't modify Cyber Patrol. Peons are the ones being filtered.
When the list was decrypted, our heroic crypto geeks also discovered that the SAME method was used to encrypt the deputy password. Thus, if you can decrypt the list, you can also gain free access to the net.
The admin password used some kind of hash on top of that, so it was not so easily compromised.
But the point, is that you can't just "take out" the password decryption. The password and list decryption are the same thing. Maybe the Cyber Patrol geeks realized the advantage it would give them in this situation. However, more likely, they were just lazy and it happened to work to their advantage.
Thank you for your time.
- Your friendly neighborhood AC
I tend to agree that this code was not GPL'd. The GNU site gives recommendations on how to best identify your program as being released under the GPL, but how much is required to legally be considered a GPL release?
>One thing most people seem to assume is that once you release under
>the GPL, you cannot change your license. That is not true.
Actually when you changed the license, you forked what was being licensed. There are now *TWO* versions of whatever was being licensed. This holds true for anything under a GPL or BSD type-license agreement.
I don't believe this is correct, you can't force someone to sign away their rights. Even if I sign the form when I go skydiving, if I die due to neglegence on the part of the skydiving company, my estate has the right to sue. You can not force someone to give up rights in this way. That is, afterall, why they are rights.
--
Mike Mangino Consultant, Analysts International
Mike Mangino
mmangino@acm.org
Here is a minor point where law works aside from common sense. The GPL is the GNU General Public License. They did not "assign" any "rights" to copy, modify, and/or redistribute. What they did (as stated ad nauseum elsewhere) is grant license to do so. This does not mean you have the right to copy, etc. -- it means that you have been granted permission to do so. Under the GPL, this permission is irrevocable.
--
: remove whitespace to e-mail me
We may not imagine how our lives could be more frustrating and complex—but Congress can. – Cullen Hightower
--
--
--
Insurance premiums are high because the costs of government regulation are low, because our country has (correctly) decided not to have a million and one regulations and taxes to "protect" the people, but rather to set people free and let them protect themselves. Which is done by means of lawsuits, which are litigated by fucken lawyers.
Ever worked in health care? Insurance? They are expensive because the ARE over-regulated, as well as over-litigated. The litigation happens because there's always confusion over what's the law and what is right, as well as those that don't mind harrassing others.
I am also not a Stalinist or a Marxist, but I still believe that lawyers don't earn their keep, they simply get overpaid based on an inflated market value.
Any lawyer that charges 200$ PER MAN HOUR should be shot (does that mean all of them?). Lawyers are the reasons why people of LEGITIMATE professions, such as MD or engineers have a harder time earning their keep, they pay the outrageous insurance, the insurance is used to pay idiotic settlements instigated by LAWYERS. And the unwashed sheep elect LAWYERS to make new laws to help out their cronies at home. Vicious cycle, eh?
Expensive productive machine time can be easily had for half that cost per hour of operation, and machines don't try to impress you with lousy ivy-league degrees, they just produce. That run time cost also usually includes maintainance and operation personell too.
Show me a lawyer that has actually done something worthwhile for the good of his client and society and I'll show you a person that switched careers to sell dope for 'medicinal' conditions.
OK, I'll admit here that I should have admitted in my previous post... I was wrong, or at the very least aggrivated to extreme.
I DO get totally pissed off when a lawyer charges a full hour for a full 5 minutes worth of work, or even less, charge a client an hour for stepping into the office to ask if there was a change in the case, get a reply "I'll call when I hear something". Was that worth an hour? Another slashdotter said this happened to him, but he was smart enough to fire the guy. Is this common practice? Do you do this? Does anyone really earning their keep when they do this?
I still believe that the legal / judicial / political system is too fraught with the possibility of manipulation, as there are lawyers in all three areas, and even those in political office still part of a law office at home, so how tempting is it for a Senator to vote for a bill that might make it easier for his partners to make more money? It's still illegal, but making something illegal doesn't mean it doesn't happen. What happened at Chapaquiddick was illegal, but was that particular perpetrator ever fully investigated and charged? Wasn't he a lawyer? Was he a Senator at the time?
Well, I suppose that the development process could be forked. But this time, include the various licences. Of course, this could lead to major legal testing of the GPL, and since the original developers didn't go through _all_ the motions, it could turn out to be a really lousy testcase.
You get absolutely no protection if you assign you copyright to the FSF. The reason is that it's no longer your code. You no longer need the protection. This is like saying you can protect yourself from deadbeat tenants by giving the deeds to your property to someone else.
It's the best protection available. Let me demonstrate: "Here's my grenade. It's yours now. Oh.. and did I mention I seem to have lost the pin?"
When something (like the pinless grenade or cpcrack) is a severe liability, it's always best if you can manage to give it away.
Anyone have any ideas how to prevent this from happening again in the future?
Assigning your copyright to the Free Software Foundation will afford you some degree of protection.
Mattel could change the code slightly and release it closed-source.
Besides the obvious fact that Mattel would have no real reason to want to do this, dosen't the GPL prevent just this type of thing from happening? All derivitive works also fall under the GPL. I think you're confusing it with the Artistic License (I believe), or several other licenses out there.
actually it just hit me! doesn't this mean that we as programmers can demand the software from mattel since it is under gpl? can't "we" now sue mattel for the source code. they are preventing us from obtaining the source code with their actions, a clear violation of the gpl!
--
J Perry Fecteau, 5-time Mr. Internet
Ejercisio Perfecto: from Geek to GOD in WEEKS!
--
And Justice for None
Of course people would notice. But the idea is that you first reclaim your loss in market share by adding new features, then when you have enough of the market, you cut compatibility with the competing (still open-source) product, to render it essentially useless.
It's a technique that must be performed just right, otherwise it will backfire. However, this is exactly what Netscape and MS did when they had control, and it's what other companies do, too, so there's no reason it can't be applied here.
If I understand correctly, Mattel has a solution available to them. While the current version of CPHack is under the GPL, future versions do not have to be. The trick it to get people to use the new version -- which can be done by adding more features, getting the non-GPL version popular, and then making the new version incompatible with the old (note that this is a recipe for de-GPL'ing any software, not just CPHack).
Another issue here, according to the authors, is whether the GPL was applied to the utility legally. If it wasn't, then I don't think there is any question of who owns the rights.
Mattel is just steamed at geeks 'cause that other toy company is selling so much Lego stuff these days.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
Did I read that the sites hosting the craked list had been black balled on a revised list?
Hmm... Do Hasbro, Irwin and the other toy makers know what kind of anti competition power a closed list gives Mattel?
How do they know that sites listing/selling their toys aren't on there? The list is a secret... Why? What's supposed to be a big secret.
Its Mattel's and only an idiot would try to steal what's freely available unless they've done things in there they'd rather we not know about.
Like, suddenly the only toys left in the world are Hot Wheels and Barbie...
If I was the competition I'd wonder about WHY does Mattel want the list to remain secret and why are they pursuing that goal so doggedly?
Just a word to the wise.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Technicaly he is the only current POW in us custody. The fact that he was tried for drug crimes once his feet touched US soil is irrelivent. That was just to keep his stay longer, as they would have had to turn around and release him to the international red cross or other international humaniarian bodies per the Geniva convention as soon as they pulled all US troops out of Panama.
--
James Michael Keller
"Linux is not our destination, it is simply the open road to tommorow"
The reason that they and other censor ware vendors keep their lists secret is because that's their only asset. Access to the list is the only thing they're selling. If vendor A came along and released their list of 10,000,000 sites, in an open fashion, then vendor B could take those 10,000,000 sites, add 5,000,000 more, and have a 15,000,000 site list... C could come along and do nothing but still release a 15,000,000 name list.
I know, that's the same issue that's being faced with GPLed software, as companies like Mandrake and LinuxOne show, but I don't think that things such as support are nearly as much of an issue for Microsystems as compared to Redhat. Microsystems just needs to hold someones hands for 15 minutes, if that, where as Redhat has a much larger role to play with their customers.
Well, the similarity is that in both cases you are disclaiming responsibility for your actions. I'm afraid I can't draw a closer parallel, but on the other hand the software licensing that I was complaining about was not of the "not suitable for military and/or real-time control, etc." variety.
I think you missed my original point, which was that just writing a disclaimer doesn't necessarily make it disclaimable, especially if it is a "click-wrap" license. That is the real comparison here - just as illegal software distribution (not that I'm saying that cphack is) isn't made legal solely by stating that in the license, so it is that Microsoft's disclaimers of liability may not be entirely true either.
I don't think that is the case. Often software comes with a license which absolves the supplier of any liability for any actions taken by the software, which is a lack of liability that the producers of any other product do not share. These licenses are within the bounds of the law only by default; they just haven't been thrown out in court yet because no one has pursued a suit. The amount of liability disclaimed by a standard commercial software license is unusual and probably shares the legal status of the aforementioned cphack disclaimer - namely, neither would be nearly as enforceable as their authors might wish.
Yes, it is possible that any combination of the two licenses' legality might occur. However, the point I was trying to draw was that one over-the-top blue-sky license has about the same legal value as another - close to zero.
I don't follow you on the whole terrorist thing, sorry.
Your right to not believe: Americans United for Separation of Church and
Have you looked at a commercial software license recently? They all disclaim as much liability as they can! Granted, usually those don't go to court either, but I'm not sure that there's a legal difference between the two disclaimers. Either they are both invalid (in which case commercial software companies are in for a shock) or else they are both valid.
Your right to not believe: Americans United for Separation of Church and
Rushing in where angels fear to tread, I've used my license to modify and posted cphack 0.1.1 on my BoCP4 mirror site. It's just the same cphack with GNU boilerplate comments and Mattel copyright notices, and the GPL in the zip. If you wish to download this new and not at all improved version: http://anon.free.anonymizer.com/http://woodstock.u plink.net/~robinl/mirrors/cphack11.zip
If someone can sue some ministry in iran before an US court, they can bloody well sue programmers operating and living in another country.
The US legal system is a farce. Sadly.
License the program under the GPL and assign the copyright to the Free Software Foundation
I have a question about this: how do you assign copyright to anybody? Does the party to whom you're assigning the copyright has to know? Or to agree?
Or is it enough to say that "Gnomovision is (c)2000 Free Software Foundation", without the FSF ever knowing about it?
It doesn't work that way.
The GPL grants a very specific right. It is a narrow right. The fundamental purpose and philosophy ingrained in GPL is to ensure that the right to copy and distribute the source code exists. The GPL is designed to grant a right so specific that your choices (as holder of a copy) are limited to either copying/distributing the source code with a grant of GPL rights, or doing nothing.
The GPL does NOT grant a right to distribute without also distributing attached GPL rights. The GPL does NOT grant a right to distribute a binary only program (however, distribute is sufficiently liberal that a reference to the available source may be sufficient to be in compliance with the rights).
The GPL places no limits on the owner. It's not a case of being limited, but rather, it is a case of the owner giving away the right to deny what the GPL grants. The owner, by taking the action of initial distribution, gave away that right. You compare to placing a work in public domain. Think of the GPL as placing a very narrow and specific right (the one about copying source code with GPL rights) in the public domain. While the GPL is not literally that, it is similar in concept.
now we need to go OSS in diesel cars
Maybe the authors did have all rights to the code. GPL grants limited rights to those who receive copies. In the scope of those rights granted, the authors then lose rights to modify the rights so granted to the copies. However, they retain all rights to the original code. They can modify that code without the restrictions of GPL and elect to start another tree of distribution under an entirely different license structure, if they wish. Those of us with GPL copies have no such right.
Since I don't have a copy of the agreement between the authors and Mattel, I do not know the wording and cannot say how it will be affected. However, having done agreements like this before, I know how lawyers typically write these. And I've even written a couple of these myself which the other parties (and they were lawyers) agreed to (and IANAL). It could come down to whether they said they have (and assign) full rights to the original code (which they have since GPL applies only to the released copies). or full rights to every copy (which GPL passes away with the copy, so they do not have this).
So if the authors agreed to assign to Mattel all rights to the original code, and if Mattel at the same time agreed to not pursue the case against the authors, this may well be over for the authors. The authors would have no rights to the original code. They could not re-release it under any new terms. If they received a GPL-ed copy, they would gain new rights, and, if they the agreement doesn't require them to hand over future rights, they would now have the GPL rights as non-authors.
Now what will Mattel do with what rights they did have all along in CyberPatrol with respect to those who are distributing the GPL-ed copies of the orignal? I do suspect Mattel has some rights in those countries where the laws on reverse engineering grant them. But I also believe they are hurting their own case by trying to pursue it using untested legal maneuvers such as sending by e-mail copies of court orders to people who are not named in such orders and expecting those people to believe those orders are genuine and apply to them (especially out of the jurisdiction).
As fast as this case was pursued, it's obvious to me that neither side did their legal research.
now we need to go OSS in diesel cars
Ah, true... But... Mattel owns the code. They may not be able to change the license under which someone has already agreed to, but, they can revoke that license. Copyright law gives them that right. I'm not saying I like what they're doing (and they can only have my copies if they take my hard drive, and burn all my backup CDs,) I'm just saying that it appears that they do have legal grounds. Yes, there is no way in hell that they can make this program disappear once it's out (see DeCSS for proof,) but it does mean that they can make all copies truly illegal.
What I am saying is that the GPL needs a clause added that states that once something is GPLed, noone, not even the copyright holder, can change the license. In other words, the GPL not only needs to limit the Licensee, but the copyright owner as well. THEN, the GPL couldn't be removed, no matter who buys the code. (If the GPL contained such a clause, then Mattel defenitely wouldn't have a leg to stand on.) Unfortunately, this couldn't prevent AOL's revokation of GNUtella, since technically AOL is probably the copyright owner, so the authors had no rights to give up to the GPL. I like companies that let their employees own the code they write on their own time...
Remember the distinction... The writer of the code (the copyright owner) always has rights to do with it whatever he wants, no matter what license he puts on it. He can even revoke the license, meaning that all copies of his software are now UNLICENSED. Even if it was GPLed in the first place. Licensees have limited rights, limited to the rights that the owner gives them in their license. If that license is revoked, then NO MATTER WHAT TERMS THEY AGREED TO, their rights to the code are now null and void. However, I have seen nothing saying that Mattel has revoked their license on it, so technically, all copies are still legal until they think to revoke the licenses. Also remember, if I write a piece of GPLed software, and you download it, you are a licensee to me. If you give a copy to someone else, they are not licensing it from you, but still from me. Just because you are a licensee does not give you ownership rights to license it out again. I can't sublicense a copy of Microsoft Word, just as I can't sublicense a copy of Red Hat. Red Hat (or, technically, everyone who owns a piece of Linux code) will always be the copyright holder, so you are always licensing from THEM. If you modify the software I license to you, THEN copy it to someone, they are licensing it from BOTH of us. If I revoke my license, then even though they have a legal license from you, everything I wrote is now unlicensed, so your parts become illegal.
Pardon my rant... I'm done now.
Another non-functioning site was "uncertainty.microsoft.com."
The purpose of that site was not known.
Aha! I just read the more recent article on Wired, which has a way around this in the future. If you sign over your rights to the FSF as soon as you GPL the software, then noone can buy your rights from you (like Mattel did.) They can then harras the FSF, but the FSF is much less likely to fold, and much more likely to fight and win in court. Unfortunately, the authors of cphack didn't do this, so my point still stands.
In fact, the Wired article states both my point and the way around it very clearly. If you haven't yet, read it.
Another non-functioning site was "uncertainty.microsoft.com."
The purpose of that site was not known.
Fine I'll put my money where my mouth is.
-e
All of this is, of course, IMNSHO. Cheers, Elmo
But the GPL doesn't actually assign the rights
to the software. In fact it _disclaims_ them.
Technically the right to modify/distribute
etcetera is a _liberty_, the copy_right_ is
what allows people to preven other's excersing
that liberty in certain cases. The GPL is
a statement (conditionally) relinquishing
these rights.
The authors have not given anyone else the
_rights_ to the software, only the _licsense_
to use/modify/distrubte it.
It is hardly a secret that a proggy is
distributed under the GPL. If they didn't
_volunteer_ this information, and then its
Mattels own fucking fault for not checking
up. I thought it was only Little Aussie
Battlers with a dodgy left leg who could
get away with no reading the fine print.
In legal sense, releasing something under the GPL is not an assignment of rights. You still call it assignment which is ok with me, but that doesn't have significance in court.
Nothing has any significance in court until a judge says so. You feel that it's not an assignment, whereas many of us feel it could be successfully argued as being the functional equivalent, and therefore legally equivalent.
In point of fact, that's a bad thing. If GPL = assignment, then fewer people will want to use it. Nobody wants to give up certain rights. So, I hope they DON'T succeed with an arguement like this, if it ever comes down to it. But the possibility is there, and it's important to be aware of that.
And before you say a judge wouldn't do go that way, think about the ways many judges have gone in various cases recently. I have no friggin' clue what a judge will say, because they have consistantly proven themselves ignorant of issues in the tech arena.
---
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
IANAL, but I can read. :-)
:)
:)
If this turns out the way I think it will, Mattel will nail (or try to nail) those two guys for breach of contract or some such.
When you release something under GPL, you give up some rights to that software to anyone who acquires the software. Thus, when you release using GPL, you are no longer "the sole proprietors of all rights", because you have assigned some of those rights (the right to copy and distribute) to the world. This is NOT the same as public domain software. Essentially, you've assigned the distribution rights to each and every person in existance now or later, individually. Also, it's not really giving up those rights, it's giving up those SOLE rights. In tech speak, you've copied the rights to everybody else.
Anyway, I think the GPL will probably hold. At the time the software was released under GPL, those two guys had all the rights to do so, therefore that's all good. But in doing that, they gave some of those rights away, and thus can't transfer ALL the rights back, without every person with a copy of the software doing that individually, in order to give them to Mattel. The people who downloaded the software have the right to modify, redistribute, etc... all the good GPL clauses apply.
Anyway, screw Mattel. They can shove a Barbie where the sun don't shine, AFAIC.
---
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
They didn't assign the rights, they licenced the use. The GPL is not an assignment of copy-rights, it's a license granting permission to do something that one normally couldn't do.
Perhaps, perhaps not. I think a smart judge might see the GPL for what it is functionally equivalent to, which is a copy of copyright from one person to all other persons. (Copy of copyright.. snicker...)
I mean, a person who uses the GPL on their software cannot revoke it later. That's a bit against a more "traditional" license. However, that's not the only thing. The GPL gives the end-user the ability to: modify and redistribute, without asking the original copyright holder. That's pretty much is the same thing as a copyright, isn't it? Functionally equivalent anyway. Rather, it's copyright with a clause to prevent you holding exclusive copyright.
---
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
So are were they sueing b/c of copyright infingement or that they stole trade secrets??
If trade secrets are covered under state law, then there definitly are some juristiction issues!!
Predestination was doomed from the start.
You can absolve yourself of responsibility. Have you every gone skiing/snowboarding, skydiving, bunge jumping or the like. They have you sign a disclamer. If you include in the license that a piece of software is intended for use A and the author is not resposibile for use B the author would be absolved of resposibility.
Predestination was doomed from the start.
What about the new copyright law? If Matel claims that this is to break their protection on the filtering software, like they did originaly then the software becomes "illegal" and regardless of the license you can be held liable for distributing it.
Predestination was doomed from the start.
They don't have to reverse-engineer anything. Since the distributed version is GPLed, it can't be revoked.
What Mattel CAN do is come up with a new license, and produce new versions of CPhack under their own terms. But the previous (GPLed) version is beyond their reach.
This is sort of like what happened with SSH. SSH version 2 came out under a more restrictive license. So OpenSSH ios based off of SSH1. The software was forked.
'course, Mattel won't likely be supporting their branch...
How can the assignement of rights to Matell be illegal if all the copyright holders agreed to
sign it over?
-- Tov Are Jacobsen
This program is licensed under the GPL
That's all you need.
> and bite these programmers in the ass. Basically, they can "give" Mattel the rights to the
> program, but anyone who had already downloaded cphack and accepted the GPL owns the
> rights to their copy of the software and they are free to distribute and modify it however
> they choose.
> Anyone have any ideas how to prevent this from happening again in the future?
Yes! License the program under the GPL and assign the copyright to the Free Software Foundation
Actually, they make M-16 variants (the C-7 product line) for Canada and a couple of other NATO countries. Actually, now that I think about it, Mattel is a fairly large arms merchant. They make everything up to and including aircraft armnaments.
------------ Baron Von F.
Section one specifically requests that a copy of the GPL be included with the program. No copy was included with CPHack.
Also, keep this in mind:
The files written by Matt Skala, cndecode.c and cph1_rev.c were not GPL'd. hawk pointed out that they could be public domain, but they don't have the license revocation prevention of the GPL.
Now, Jansson's CPHack software *is* under the GPL. He did not include a copy of the license with his program; I've corrected that. I've also separated CPHack from the files Skala specifically wrote.
As for the essay...I've declined to include it in the archive, but a copy is available for your perusal on my site. If Mattel goes restriction-crazy and somehow considers that "redistribution", I'll keep a copy on a floppy shoved six miles up my ass - see if they try to restrict that, too.
Someday, you're going to die. Get over it.
Include a copy of the GPL yourself, and mirror it. Note that you had to add the copy of the GPL to back up Jansson's claim in Unit1.pas, just to be fair.
Oh, and only mirror CPHack. The license on Skala's software is very questionable; Mattel may legitimately be able to exercise limitations on distribution of his cndecode.c and cph1_rev.c files. As for the essay, I'm not sure what to say. I'm not including it in my cphack.zip package, but I have it up for perusal on my site. This way, I'm only offering a properly GPL'd program; Mattel *cannot* revoke this license, no matter what they try. After reading through it, I seriously believe the GPL could hold up in a court of law.
Someday, you're going to die. Get over it.
The point is that you are using your own definition of "assignment" which is different from the legal definition. In legal sense, releasing something under the GPL is not an assignment of rights. You still call it assignment which is ok with me, but that doesn't have significance in court.
But no rights are transferred at all when you release something under a license. You still own the copyright, and you still have all rights.
What is the difference:
If you release under GPL, you no longer have the right to prevent distribution.
If you release under this *proprietary* license you no longer have the right to prevent installation/usage (assuming it's not revocable).
So according to your reasoning, you give up rights in both cases.
In my opinion, someone else having the right to distribute a certain release of your program does not mean at all that you have any less rights on your program. The released copy is not the same as the program.
That after releasing under GPL you can't prohibit that the released copy is used for defense research does not legally mean that you lose any rights on your software.
Otherwise the same would hold for other commercial licences where you can't prohibit the use of the program, unless the license is revocable maybe, but most aren't.
Well, I'm not sure about the programmer in Europe, but a lawsuit was filed in Canadian court against the Canadian programmer.
"You can never have too many elephants on your team."
Whee! I was forced to remove that one.
p
http://www.geocities.com/novalis_dt/cpbreak4.zi
The name of the zip file is changed, because mattel's lawyers are not-too-bright.
Become a FSF associate member before the low #s are used
My mouth:
Censorship is bad, GPL is good.
My money:
http://www.reed.edu/~turnerd/cyberpatrol.tar.gz
Become a FSF associate member before the low #s are used
I just looked at the zip file (cp4break.zip), and took a look inside to see how the GPL was applied.
In so many words, it wasn't.
The source code consists of various C/C++ modules (by Matthew Skala) and various Pascal modules (by Eddy L O Jansson). Only one of these source files mentions the GPL - a module called "Unit1.pas", in which it states "CPHack v0.1.0 by Eddy L O Jansson / Released under the GPL.", near the top of the code, in the unit "Unit1".
Nowhere is the full text of the GPL given, not in the code, not in any HTML files, not in any text file included in the archive. No license file is given, and if a stranger was handed this archive, he would be hard pressed to find a copy of that license, since it doesn't appear like any web site information was given, nor any other contact information, as required by the GPL.
I wouldn't consider that one little blurb about the GPL to mean much - if anything, it only serves to muddle the issue - notice it reads "CPHack v0.1.0 by Eddy L O Jansson" - not "CPHack v0.1.0 by Eddy L O Jansson and Matthew Skala. Yet they both worked on it, and had rights to it (implicit, if anything).
I don't know these two individuals, but it is obvious from looking at the code that they haven't much "real world" development experience - one of the first things you do when developing code is put the banner comments at the top (hell, this should be a "boilerplate" starting template!), and keep updating them as you develop (with change notices, etc). This wasn't done well, if at all, by either author, and I fear this may very well give Mattel the loophole they need, regardless of the authors' original intents...
Reason is the Path to God - Anon
>>And suppose this extra clause said that no matter what, they couldn't be held liable for writing it. Do you think such a thing would stand up in court?
>>Sorry, but if you break the law, not even a fine print disclaimer will save you.
>
>Although if UCITA is passed, this sort of ridiculous license cluase may well become legal in some cases.
OK, so sum up UCITA and DMCA, and we can put clauses into software licences that would get around the DMCA?
(Note: not a serious post)
Cyano
Don't like my sig? I don't either.
This is law, not math, you dink.
--GnrcMan--
Thank you. That was stated much better than I could have, and covers most of the counterpoints I've seen on this topic.
--GnrcMan--
I just spelled "license" wrong in that entire comment. Sorry.
--GnrcMan--
So if this is true then all the software firms that have been aquired in the last twenty years have been bought illegally because there are people out there with licences to their software?
I think not.
Microsoft cannot arbitrarily decide to revoke the license. All terms of revokation must be explicitly spelled out in the license. Think of the chaos that would result if this were otherwise. Licenses would mean absolutely nothing because the licenser could pull the rug out from under you at any time they choose.
So, you have yet to encounter the Office 2000 Registration Wizard. I stole this bit word for word from Woody's Office Watch, a non-GPL'd email newsletter. Shame on me.
======
"Rex unto my cleeb, and thou shalt have everlasting blort." - Zorp 3:16
Sacred cows make the best burgers.
Besides the obvious barbies and board games, what else does MAttel make? I don't particularly want to buy anything they're making, period.
Hope you don't have kids; they'll have to go without a lot of stuff. Besides Barbie, Mattel owns Cabbage Patch Kids, Fisher-Price, Hot Wheels, Tyco RC, Matchbox, and Mattel Interactive (their software division). They also make Sesame Street and Winnie-the-Pooh toys under license. Their Web site has more details.
They're also publicly traded (symbol: MAT) so if you really want to make a statement, make sure you haven't invested in them directly or through managed funds, and encourage others to do the same.
I did not put any GPL notices on the portions of the package that I wrote, and I did not lie to the plaintiffs about what rights I owned or could assign to them. They have signed a document saying, essentially, that they knew what they were getting from me and were satisfied with it. The settlement document is pretty explicit in saying that they accepted responsibility for knowing all the consequences before agreeing to it. I don't know what the comment about the GPL in Unit1.pas may mean from a legal perspective. It is much less definite than the usual GNU GPL notice. I didn't write that file and never claimed to. I only assigned the rights that were mine to assign. I don't know what Eddy Jansson may have promised to the plaintiffs about the licensing of his portions of the code, or whether he has in fact settled with them at all.
So, what did he have the right to sign over?
www.pepper-land.net/bin/cpbreak4.zip
What they've done is selling th ecopyright to Mattel, the copyright has not been publicly licensed, only the license to redistribute and/or modify the code.
The already licenesed copies can't be touched (unless it's demonstrated that teh original authors couldn't hand out GPLed copies), but the original point of distribution must be terminated.
The legislation in quesiton in known as UCITA, not UNITA. UNITA is a central african terrorist organization. (hmmmmmm... conspiracy theories anyone? :)
What part of "shall not be infringed" is so hard to understand?
Warning: IANAL.
But, as to jurisdiction:
a) A US court can still enter a judgement, IIRC, which will matter if the programmers ever have assets within the US. I suspect it may matter if they enter (bodily), as well, but am not sure as it doesn't seem to be a criminal matter (yet).
b) Different countries have different arrangements. Italy, for instance, won't extradite suspects who would face the death penalty, and Israel has the Law of Return. Some nations simply won't cooperate at all, period. However, in many cases nations do cooperate, and may be obligated to do so by treaties...
Only the dead have seen the end of war.
Explain how this is consistent with, say,
a) An $8 *billion* dollar judgement against GM filed by distinctly non-rich people;
b) Microsoft -- one of the world's largest companies -- facing what looks to be a legal Afghanistan;
c) PM, RJR Reynolds and friends all being sued by multiple levels of government to the magnitude that the lawyer's fees alone exceed $1 billion;
d) S&W caving due to HUD repeatedly threatening to use its resources not to improve housing, but instead to sue, with the cooperation of every money-hungry mayor who sees an opportunity to demagogue;
e) The top marginal rate for personal income tax is 39.6%, versus 15% for the bottom.
That's funny. If the rich controlled everything, things would be a LOT different.
Only the dead have seen the end of war.
Please disregard the previous message. This is the correct COPYING.* **************************** ***************************
*************************************************
The following license applies to CP4Hack. No matter who the copyright owner is,
this is the license the software is released under.
*************************************************
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
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.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C) 19yy
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
/* /usr/dict/words or equivalent, or use our ready-made one
* ****************************/
* *****************************/
* ****************************/
* **************************/
0 )];
/* correct for output length */
/* XOR in the CRC */
/* XOR in the free bits */
/* set up output */
/* output forced bits */
/* output free bits */
/* skip past all the entries less than new */
/* add new, if appropriate */
/* replace the skipped entries */
/* check if it's already in the table */ /* if so, just print that */
/* if we're allowed a reverse lookup, take it */
/* finally, we just print it out numerically */ > >16)&0xFF,ip>>24);
/* check if it's already in the table */
/* if no word, attempt reversal */
/* reverse the hash, and see if that worked */
/* compute the score for this guess */ ) ]; /* ~ at start is ignored */
/* if this is an improvement, use it */
/* now print whatever word we found */
* ****************************/
_ not_size)) {
/* find Table 1 in cyber.not */ /* Table 1 offset */ /* Table 1 length */ /* "SD" marker */ /* "ED" marker */
/* initialize our hash table to empty */
/* step through the table, looking for hashes */ /* skip IP address */ /* category mask */ /* skip over mask */
/* we have hash records */ /* yes, this should be assignment */ /* skip length and mask */ /* does this hash exist already? */ /* if not, add it */ /* skip terminating length */
/* not an error! the dictionary need not exist */
/* First pass: word, ~word, word.htm, word.html */ /* word */ /* ~word */ /* word.htm */ /* word.html */
/* Second pass: Xword, ~Xword, wordX, ~wordX, xwordx */ /* Xword */ /* ~Xword */ /* wordX */ /* xwordx */ /* ~wordX */ /* Xword */ /* ~Xword */ /* wordX */ /* ~wordX */
/* Third pass: .htm and .html variants of second pass */ /* wordX.htm */ /* wordX.html */ /* Xword.htm */ /* Xword.html */ /* wordX.htm */ /* wordX.html */ /* Xword.htm */ /* Xword.html */
/* open */
/* this error is not fatal */
/* write */
/* close */
/* find Table 3 in cyber.not */ /* Table 3 offset */ /* Table 3 length */ /* "SD" marker */ /* "ED" marker */
/* get ready to print a new blocking mask key */
/* step through the table, looking for newsgroups */ /* skip length byte */ /* category mask */ /* skip over mask */
/* print the key */
/* initialize our hash table to empty */
/* not an error! the hints file need not exist */
c ,&ipd,name); o ng)ipd<<24);
/* open */
/* this error is not fatal */
/* write */ , tmp->ip>>24,
/* close */
/* find Table 1 in cyber.not */ /* Table 1 offset */ /* Table 1 length */ /* "SD" marker */ /* "ED" marker */
/* find Table 2 in cyber.not */ /* Table 2 offset */ /* Table 2 length */ /* "SD" marker */ /* "ED" marker */
/* step through the table 1, printing out the blocks*/
/* skip IP address */ /* category mask */ /* skip over mask */
/* print the IP address and synonyms */
/* print the individual blocks */ /* yes, this should be assignment */ /* skip length */ /* category mask */ /* skip over mask */ /* skip terminating length */ /* block on entire site */
* ***************************/
/* supplemental */ /* main */
* cndecode.c
* By Matthew Skala
*/
/* CP4Hack.
* Copyright (C) 2000 Matthew Skala
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
/
/*
* Utility to decode the Cyber Patrol 4 cyber.not file
* Usage:
* cndecode cyber.not dictionary suppdict iplist
* all arguments except the first are optional
* "dictionary" is a list (newline separated) of words for the URL-hash attack
* typically
* suppdict is another such list; if it's specified, it will be written to
* with the list of actual words found (saves time next run)
* iplist is lines of ip address and domain name, tab separated; it will be
* written to with any new addresses looked up (if we compile with reverse
* DNS enabled).
*/
/**********************************************
/* System stuff */
/*
* Compiling notes:
* This was written under Linux on a PC, but should be portable to any 32-bit
* little-endian architecture. Since CP4 is PC-specific, that shouldn't be
* too much of a limitation. This program does require structures bigger than
* 64K, and so it might be touch-and-go on a 16-bit PC compiler. If you
* enable reverse DNS with the defines below, you will have to have reasonably
* Linux-ish (which in turn means reasonably BSD-ish) networking libraries.
* Reverse queries can take a long time. If you find this annoying, you
* can set a time limit, and then after that time expires the system will stop
* attempting reverse lookups. This is a win because the reverse lookups it
* already did are saved; next time, it'll pick up where it left off. Real
* Programmers, of course, would run multiple queries at once, but that would
* mean either splitting into several processes, multithreading, or "fake"
* multithreading with custom-written resolver routines. This way is a lot
* less stressful. (I have a perl script that spawns 40 processes to max out
* my modem, but it's a monstrosity.) The amount of CPU power required for
* CRC reversal scales exponentially with the number of characters of CRC
* reversing you choose; that also determines how accurately it'll guess for
* URL hashes that are not in the dictionary. It's probably smarter to get a
* bigger dictionary.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
/* Compile-time configuration */
/* Should we attempt reverse lookups? Requires Net libraries, active
* connection, and a certain amount of time. */
#define REVERSE_DNS
/* After this many seconds, no more reverse DNS queries will be performed.
* Default one hour, and ignored if you turned reverse DNS off. */
#define TIME_LIMIT 3600
/* How many characters of CRC reversal? Five is essentially free, more takes
* exponentially longer time. */
#define REVERSE_CRC_LENGTH 8
/* How many entries in the dictionary hash table? */
#define DICTHASH_SIZE 32767
/* How many entries in the IP address hash table? */
#define IPHASH_SIZE 32767
/* What's the longest line length we expect to see? */
#define LINELEN 256
/* Headers we only need if we're doing reverse DNS */
#ifdef REVERSE_DNS
#include <netdb.h>
#include <sys/socket.h>
#include <time.h>
#endif
/**********************************************
/* Reference tables */
/* Forward CRC polynomial table */
unsigned long crctable[256]={
0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL,
0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L,
0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L,
0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L,
0x1DB71064L, 0x6AB020F2L, 0xF3B97148L, 0x84BE41DEL,
0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L,
0x136C9856L, 0x646BA8C0L, 0xFD62F97AL, 0x8A65C9ECL,
0x14015C4FL, 0x63066CD9L, 0xFA0F3D63L, 0x8D080DF5L,
0x3B6E20C8L, 0x4C69105EL, 0xD56041E4L, 0xA2677172L,
0x3C03E4D1L, 0x4B04D447L, 0xD20D85FDL, 0xA50AB56BL,
0x35B5A8FAL, 0x42B2986CL, 0xDBBBC9D6L, 0xACBCF940L,
0x32D86CE3L, 0x45DF5C75L, 0xDCD60DCFL, 0xABD13D59L,
0x26D930ACL, 0x51DE003AL, 0xC8D75180L, 0xBFD06116L,
0x21B4F4B5L, 0x56B3C423L, 0xCFBA9599L, 0xB8BDA50FL,
0x2802B89EL, 0x5F058808L, 0xC60CD9B2L, 0xB10BE924L,
0x2F6F7C87L, 0x58684C11L, 0xC1611DABL, 0xB6662D3DL,
0x76DC4190L, 0x01DB7106L, 0x98D220BCL, 0xEFD5102AL,
0x71B18589L, 0x06B6B51FL, 0x9FBFE4A5L, 0xE8B8D433L,
0x7807C9A2L, 0x0F00F934L, 0x9609A88EL, 0xE10E9818L,
0x7F6A0DBBL, 0x086D3D2DL, 0x91646C97L, 0xE6635C01L,
0x6B6B51F4L, 0x1C6C6162L, 0x856530D8L, 0xF262004EL,
0x6C0695EDL, 0x1B01A57BL, 0x8208F4C1L, 0xF50FC457L,
0x65B0D9C6L, 0x12B7E950L, 0x8BBEB8EAL, 0xFCB9887CL,
0x62DD1DDFL, 0x15DA2D49L, 0x8CD37CF3L, 0xFBD44C65L,
0x4DB26158L, 0x3AB551CEL, 0xA3BC0074L, 0xD4BB30E2L,
0x4ADFA541L, 0x3DD895D7L, 0xA4D1C46DL, 0xD3D6F4FBL,
0x4369E96AL, 0x346ED9FCL, 0xAD678846L, 0xDA60B8D0L,
0x44042D73L, 0x33031DE5L, 0xAA0A4C5FL, 0xDD0D7CC9L,
0x5005713CL, 0x270241AAL, 0xBE0B1010L, 0xC90C2086L,
0x5768B525L, 0x206F85B3L, 0xB966D409L, 0xCE61E49FL,
0x5EDEF90EL, 0x29D9C998L, 0xB0D09822L, 0xC7D7A8B4L,
0x59B33D17L, 0x2EB40D81L, 0xB7BD5C3BL, 0xC0BA6CADL,
0xEDB88320L, 0x9ABFB3B6L, 0x03B6E20CL, 0x74B1D29AL,
0xEAD54739L, 0x9DD277AFL, 0x04DB2615L, 0x73DC1683L,
0xE3630B12L, 0x94643B84L, 0x0D6D6A3EL, 0x7A6A5AA8L,
0xE40ECF0BL, 0x9309FF9DL, 0x0A00AE27L, 0x7D079EB1L,
0xF00F9344L, 0x8708A3D2L, 0x1E01F268L, 0x6906C2FEL,
0xF762575DL, 0x806567CBL, 0x196C3671L, 0x6E6B06E7L,
0xFED41B76L, 0x89D32BE0L, 0x10DA7A5AL, 0x67DD4ACCL,
0xF9B9DF6FL, 0x8EBEEFF9L, 0x17B7BE43L, 0x60B08ED5L,
0xD6D6A3E8L, 0xA1D1937EL, 0x38D8C2C4L, 0x4FDFF252L,
0xD1BB67F1L, 0xA6BC5767L, 0x3FB506DDL, 0x48B2364BL,
0xD80D2BDAL, 0xAF0A1B4CL, 0x36034AF6L, 0x41047A60L,
0xDF60EFC3L, 0xA867DF55L, 0x316E8EEFL, 0x4669BE79L,
0xCB61B38CL, 0xBC66831AL, 0x256FD2A0L, 0x5268E236L,
0xCC0C7795L, 0xBB0B4703L, 0x220216B9L, 0x5505262FL,
0xC5BA3BBEL, 0xB2BD0B28L, 0x2BB45A92L, 0x5CB36A04L,
0xC2D7FFA7L, 0xB5D0CF31L, 0x2CD99E8BL, 0x5BDEAE1DL,
0x9B64C2B0L, 0xEC63F226L, 0x756AA39CL, 0x026D930AL,
0x9C0906A9L, 0xEB0E363FL, 0x72076785L, 0x05005713L,
0x95BF4A82L, 0xE2B87A14L, 0x7BB12BAEL, 0x0CB61B38L,
0x92D28E9BL, 0xE5D5BE0DL, 0x7CDCEFB7L, 0x0BDBDF21L,
0x86D3D2D4L, 0xF1D4E242L, 0x68DDB3F8L, 0x1FDA836EL,
0x81BE16CDL, 0xF6B9265BL, 0x6FB077E1L, 0x18B74777L,
0x88085AE6L, 0xFF0F6A70L, 0x66063BCAL, 0x11010B5CL,
0x8F659EFFL, 0xF862AE69L, 0x616BFFD3L, 0x166CCF45L,
0xA00AE278L, 0xD70DD2EEL, 0x4E048354L, 0x3903B3C2L,
0xA7672661L, 0xD06016F7L, 0x4969474DL, 0x3E6E77DBL,
0xAED16A4AL, 0xD9D65ADCL, 0x40DF0B66L, 0x37D83BF0L,
0xA9BCAE53L, 0xDEBB9EC5L, 0x47B2CF7FL, 0x30B5FFE9L,
0xBDBDF21CL, 0xCABAC28AL, 0x53B39330L, 0x24B4A3A6L,
0xBAD03605L, 0xCDD70693L, 0x54DE5729L, 0x23D967BFL,
0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L,
0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL
};
/* This answers the question: how many freely-chosen bits do I include
* when I ask for a crc collision with input length (index)? */
char freebits[12]={0,0,0,0,1,4,10,16,22,28,34,40};
/* This says where each forced bit goes */
char bitsforced[32]={0,1,2,3,4,6,
8,9,10,11,12,14,
16,17,18,19,20,22,
24,25,26,27,28,30,
32,33,34,35,38,
40,41,42};
/* This says where each free bit goes */
char bitsfree[40]={36,43,44,46,
48,49,50,51,52,54,
56,57,58,59,60,62,
64,65,66,67,68,70,
72,73,74,75,76,78,
80,81,82,83,84,86,
88,89,90,91,92,94};
/* The portion of the inverted matrix corresponding to the CRC bits */
unsigned long crcmatrix[32]={
0x9BF7B4FE,0x10CEBBDB,0x3EC28E73,0xE516F5B2,
0x3EB07172,0xAC6CB91B,0x2344667F,0x25ECE58C,
0xD24109C4,0x501CB10A,0x97761211,0x0A2EF700,
0x0C806D13,0x55AE3901,0x4C147270,0xDAC3C857,
0x384B8A54,0xF7583CAD,0xA1DA1DC4,0x0028BBDC,
0xB5BB7FE3,0x99610C1A,0x1FC446C4,0x8DE0FF05,
0x01D3D128,0x64FAC9B2,0x3BC5E604,0xE564A85C,
0xADEB84A5,0xCFCDBB2B,0x3E7D9F68,0xA102B971
};
/* The portion of the inverted matrix corresponding to the free bits */
unsigned long freematrix[40]={
0x0CBFC054,0xAEAB35B2,0x315B20B2,0x1F113696,
0x6DA65FB4,0x08F3CFCD,0xC0E8FCF1,0xD928FA77,
0x58C085F6,0x55F7A6A4,0x726948CB,0xBEE706A6,
0xDE9BCF28,0x539FADD8,0xA5D7713D,0xA6B4900F,
0x3CA9547B,0xC98AC9B5,0xAF52FA18,0x60098F5B,
0x142D2C51,0x706AA085,0x46494250,0x54026BCE,
0xEBE4D0A3,0x673646B9,0x945A22D6,0x7C5347FB,
0xC61C9B99,0x97780ADB,0x7E9DB1AE,0x88C43E39,
0x55CEBFB3,0x5C81ADC9,0x0F3DD57C,0x3D44BCF3,
0x0383F8DD,0x73F38757,0xA8F2D5CF,0x2922BEA9
};
/* Matrix columns to take into account the canonicalization */
unsigned long lengthmatrix[12]={
0x84741063,0xC5273406,0xE5A222DF,0x9941CB2B,
0xD9EBE522,0xCB93A8AF,0x962E3D2D,0x90029144,
0x5B298B04,0x575F1D8A,0x78EE4BEC,0x47B6B86A
};
/* The Cyber Patrol blocking categories */
char *category[16]={
"Violence / Profanity",
"Partial Nudity",
"Full Nudity",
"Sexual Acts / Text",
"Gross Depictions / Text",
"Intolerance",
"Satanic or Cult",
"Drugs / Drug Culture",
"Militant / Extremist",
"Sex Education",
"Questionable / Illegal & Gambling",
"Alcohol & Tobacco",
"Reserved 4",
"Reserved 3",
"Reserved 2",
"Reserved 1"
};
/* This indicates the "score" for each possible character value. First
* 32 entries are for characters 32 to 63, second 32 entries are for
* characters 96 to 127. The way this works is that unexpected characters
* get higher scores and so are less likely to be chosen... this gives us
* that little bit of extra guidance to help find good reverse CRCs.
* The baseline is that an ordinary alphabet character is 10 points.
* Illegal characters count 50, ensuring that they're unlikely to ever be
* chosen. Scores assigned manually, and only semi-systematically.
*/
unsigned cscore[64]={
/* SP ! " # $ % & ' */
50,20,30,20,17,50,50,30,
/* ( ) * + , - . / */
20,20,20,17,20,12,12,50,
/* 0 1 2 3 4 5 6 7 */
14,14,15,15,15,15,15,15,
/* 8 9 : ; < = > ? */
15,14,20,20,50,20,50,30,
/* ` a b c d e f g */
30,7,10,10,9,7,10,10,
/* h i j k l m n o */
10,7,12,10,9,10,9,7,
/* p q r s t u v w */
10,15,9,9,9,7,12,10,
/* x y z { | } ~ DEL */
9,10,12,20,30,20,30,50
};
/**********************************************
/* Data structures */
/* Structures for the hash tables */
typedef struct _DICTHASH_ENT {
struct _DICTHASH_ENT *next;
unsigned long hash;
char *word;
} DICTHASH_ENT;
typedef struct _IPHASH_ENT {
struct _IPHASH_ENT *next;
unsigned long ip;
char *name;
} IPHASH_ENT;
/* Linked list of blocking masks, for key printing */
typedef struct _BLOCKING_MASK {
struct _BLOCKING_MASK *next;
unsigned short mask;
} BLOCKING_MASK;
/* Global vars */
char *cyber_not;
long cyber_not_size;
DICTHASH_ENT **dicthash;
IPHASH_ENT **iphash;
BLOCKING_MASK *masks=NULL;
#ifdef REVERSE_DNS
time_t start_time;
#endif
/**********************************************
/* Utility functions */
/* Encryption used to conceal the config files, and the deputy password */
void cpcrypt4(char *data,long length) {
unsigned char key;
long i,j;
key=(unsigned char)(length&0xFF);
for (i=0;i<2;i++) {
for (j=0;j<length;j++) {
key=(key>>1)+(key<<7);
key^=(unsigned char)data[j];
data[j]=(char)key;
}
}
}
/* The slightly nonstandard CRC32 used for URL hashing */
unsigned long forward_crc(char *input,int length) {
int i;
unsigned long rval=0;
for (i=0;i<length;i++)
rval=(rval>>8)^crctable[(rval&0xFF)^(input[i]|0x2
return rval;
}
#define GETBIT(p,b) ((((p)[(b)>>3])>>((b)&7))&1)
#define FLIPBIT(p,b) ((p)[(b)>>3]^=(1<<((b)&7)))
#define FLIPBITR(p,b) { if (length-1-((b)>>3)>=0) \
(p)[length-1-((b)>>3)]^=(1<<((b)&7)); }
/* attempt to reverse the CRC32 function */
void reverse_crc(unsigned long crc,int length,char *in,char *out) {
unsigned long bits;
int i;
bits=lengthmatrix[length-1];
for (i=0;i<32;i++)
if (crc&(1<<i))
bits^=crcmatrix[i];
for (i=0;i<freebits[length-1];i++)
if (GETBIT(in,i))
bits^=freematrix[i];
for (i=0;i<length;i++)
out[i]=0x20;
for (i=0;i<32;i++)
if (bits&(1<<i))
FLIPBITR(out,bitsforced[i]);
for (i=0;i<freebits[length-1];i++)
if (GETBIT(in,i))
FLIPBITR(out,bitsfree[i]);
}
/* load a word into dictionary, if its hash was in cyber.not */
int guess_word(char *word,int length) {
unsigned long hash;
DICTHASH_ENT *tmp;
hash=forward_crc(word,length);
for (tmp=dicthash[hash%DICTHASH_SIZE];
tmp && (tmp->hash!=hash);
tmp=tmp->next);
if (tmp && !tmp->word) {
tmp->word=(char *)malloc(length+1);
if (!tmp->word) {
puts("ERROR - out of memory (dicthash entry)");
exit(1);
}
memcpy(tmp->word,word,length);
tmp->word[length]='\0';
return 1;
} else
return 0;
}
/* clear out the list of blocking masks */
void clear_blockmask_key(void) {
BLOCKING_MASK *tmp;
while (masks) {
tmp=masks;
masks=tmp->next;
free(tmp);
}
}
/* add a mask to the sorted list, if it's not already there. Yes, this
* is O(n**2), but the list never gets over a few tens of entries, and so
* doing it with a more sophisticated structure wouldn't be worthwhile. */
void add_blockmask(unsigned short newmask) {
BLOCKING_MASK *tmp=NULL,*tmp2;
while (masks && (masks->mask<newmask)) {
tmp2=masks->next;
masks->next=tmp;
tmp=masks;
masks=tmp2;
}
if ((!masks) || (masks->mask!=newmask)) {
tmp2=(BLOCKING_MASK *)malloc(sizeof(BLOCKING_MASK));
if (!tmp2) {
puts("ERROR - out of memory (blocking mask entry)");
exit(1);
}
tmp2->next=masks;
masks=tmp2;
tmp2->mask=newmask;
}
while (tmp) {
tmp2=tmp->next;
tmp->next=masks;
masks=tmp;
tmp=tmp2;
}
}
/* print a key of the masks currently on the list */
void print_blockmask_key(void) {
BLOCKING_MASK *tmp;
unsigned short tm;
int print_head,bit;
for (tmp=masks;tmp;tmp=tmp->next) {
printf("%04X: ",tmp->mask);
print_head=6;
tm=tmp->mask;
bit=0;
while (tm>0) {
if (tm&1) {
if (print_head+strlen(category[bit])>71) {
printf("\n ");
print_head=7;
} else {
putchar(' ');
print_head++;
}
printf("%s",category[bit]);
print_head+=strlen(category[bit]);
if (tm&~1) {
putchar(',');
print_head++;
}
}
bit++;
tm>>=1;
}
putchar('\n');
}
}
/* print a pretty IP address, with reverse lookup if we're allowed */
void print_ip(unsigned long ip) {
IPHASH_ENT *tmp;
char *name;
for (tmp=iphash[ip%IPHASH_SIZE];
tmp && (tmp->ip!=ip);
tmp=tmp->next);
if (tmp)
printf("%s",tmp->name);
#ifdef REVERSE_DNS
else if (time(NULL)<start_time+TIME_LIMIT) {
struct hostent *he;
he=gethostbyaddr((char *)&ip,4,AF_INET);
tmp=(IPHASH_ENT *)malloc(sizeof(IPHASH_ENT));
name=(char *)malloc(he?strlen(he->h_name)+1:16);
if (!tmp || !name) {
puts("ERROR - out of memory (IP hash ent)");
exit(1);
}
tmp->next=iphash[ip%IPHASH_SIZE];
iphash[ip%IPHASH_SIZE]=tmp;
tmp->ip=ip;
tmp->name=name;
if (he)
strcpy(name,he->h_name);
else
sprintf(name,"%ld.%ld.%ld.%ld",
ip&0xFF,(ip>>8)&0xFF,(ip>>16)&0xFF,ip>>24);
printf("%s",name);
}
#endif
else
printf("%ld.%ld.%ld.%ld",ip&0xFF,(ip>>8)&0xFF,(ip
}
/* reverse a hash and print the results */
void print_revhash(unsigned long hash) {
DICTHASH_ENT *tmp;
char *neww,freeb[6],plaintext[12];
unsigned score,bestscore=(unsigned)-1;
int length,i,bflip;
for (tmp=dicthash[hash%DICTHASH_SIZE];
tmp && (tmp->hash!=hash);
tmp=tmp->next);
if (!tmp) {
puts("ERROR - reversing unseen hash (should never happen)");
exit(1);
}
if (!tmp->word) {
neww=(char *)malloc(12);
if (neww==NULL) {
puts("ERROR - out of memory (new word)\n");
exit(1);
}
tmp->word=neww;
strcpy(neww,"?UNKNOWN?");
for (length=1;length<=REVERSE_CRC_LENGTH;length++) {
for (i=0;i<6;i++) freeb[i]=0;
do {
reverse_crc(hash,length,freeb,plaintext);
if (hash==forward_crc(plaintext,length)) {
score=0;
for (i=0;i<length;i++)
score+=cscore[plaintext[i]-(plaintext[i]>64?64:32
if (plaintext[0]=='~')
score-=cscore['~'-64];
if (score<bestscore) {
bestscore=score;
memcpy(neww,plaintext,length);
neww[length]='\0';
}
}
for (bflip=0;GETBIT(freeb,bflip);bflip++) FLIPBIT(freeb,bflip);
FLIPBIT(freeb,bflip);
} while (bflip<freebits[length-1]);
}
}
printf("%s",tmp->word);
}
/**********************************************
/* Main functional blocks */
/* Load and decrypt cyber.not */
void load_cyber_not(char *filename) {
FILE *datafile;
datafile=fopen(filename,"rb");
if (!datafile) {
puts("ERROR - can't open cyber.not");
exit(1);
}
if ((fseek(datafile,0,SEEK_END)<0)
|| ((cyber_not_size=ftell(datafile))<0)
|| (fseek(datafile,0,SEEK_SET)<0)) {
puts("ERROR - can't reposition in cyber.not");
exit(1);
}
cyber_not=(char *)malloc(cyber_not_size);
if ((!cyber_not)
|| (fread(cyber_not,1,cyber_not_size,datafile)<cyber
puts("ERROR - can't read cyber.not");
}
fclose(datafile);
cpcrypt4(cyber_not,cyber_not_size);
}
/* Initialize the dictionary hash table with the hashes in cyber.not */
void find_hashes_to_reverse(void) {
long table1_start,table1_end;
long i,hcnt=0;
unsigned long hash;
short mask;
char length;
DICTHASH_ENT *tmp;
memcpy(&table1_start,cyber_not+0x0010,4);
memcpy(&table1_end,cyber_not+0x0014,4);
table1_end+=table1_start;
table1_start+=2;
table1_end-=2;
dicthash=(DICTHASH_ENT **)malloc(DICTHASH_SIZE*sizeof(DICTHASH_ENT *));
if (!dicthash) {
puts("ERROR - can't allocate dictionary hash");
exit(1);
}
for (i=0;i<DICTHASH_SIZE;i++) dicthash[i]=NULL;
for (i=table1_start;i<table1_end;) {
i+=4;
memcpy(&mask,cyber_not+i,2);
i+=2;
if (mask==0) {
for (;(length=cyber_not[i]);) {
i+=3;
for (length-=3;length>0;length-=4) {
memcpy(&hash,cyber_not+i,4);
i+=4;
for (tmp=dicthash[hash%DICTHASH_SIZE];
tmp && (tmp->hash!=hash);
tmp=tmp->next);
if (!tmp) {
tmp=(DICTHASH_ENT *)malloc(sizeof(DICTHASH_ENT));
if (!tmp) {
puts("ERROR - out of memory");
exit(1);
}
tmp->next=dicthash[hash%DICTHASH_SIZE];
dicthash[hash%DICTHASH_SIZE]=tmp;
tmp->hash=hash;
tmp->word=NULL;
hcnt++;
}
}
}
i++;
}
}
printf("Scanning cyber.not, found %ld unique hash values\n",hcnt);
}
/* load a dictionary file */
void load_dictionary(char *filename) {
FILE *datafile;
char textline[LINELEN+8],x;
int length,newwords=0,i;
datafile=fopen(filename,"rt");
if (!datafile) {
printf("Dictionary file %s missing.\n",filename);
return;
}
textline[0]='~';
while (!feof(datafile) && fgets(textline+1,LINELEN,datafile)) {
if (strchr(textline+1,'#') || strchr(textline+1,' '))
continue;
length=strlen(textline+1)-1;
textline[length+1]='\0';
for (i=1;i<=length;i++) textline[i]=tolower(textline[i]);
strcat(textline+1,".html");
newwords+=guess_word(textline+1,length);
newwords+=guess_word(textline,length+1);
newwords+=guess_word(textline+1,length+4);
newwords+=guess_word(textline+1,length+5);
}
fseek(datafile,0,SEEK_SET);
while (!feof(datafile) && fgets(textline+2,LINELEN,datafile)) {
if (strchr(textline+2,'#') || strchr(textline+2,' '))
continue;
length=strlen(textline+2)-1;
for (i=2;i<=length+1;i++) textline[i]=tolower(textline[i]);
for (x='a';x<='z';x++) {
textline[1]=x;
textline[length+2]=x;
newwords+=guess_word(textline+1,length+1);
newwords+=guess_word(textline,length+2);
newwords+=guess_word(textline+2,length+1);
if (x=='x')
newwords+=guess_word(textline+1,length+2);
textline[1]='~';
newwords+=guess_word(textline+1,length+2);
}
for (x='0';x<='9';x++) {
textline[1]=x;
textline[length+2]=x;
newwords+=guess_word(textline+1,length+1);
newwords+=guess_word(textline,length+2);
newwords+=guess_word(textline+2,length+1);
textline[1]='~';
newwords+=guess_word(textline+1,length+2);
}
}
fseek(datafile,0,SEEK_SET);
while (!feof(datafile) && fgets(textline+2,LINELEN,datafile)) {
if (strchr(textline+2,'#') || strchr(textline+2,' '))
continue;
length=strlen(textline+2)-1;
for (i=2;i<=length+1;i++) textline[i]=tolower(textline[i]);
for (x='a';x<='z';x++) {
textline[1]=x;
textline[length+2]=x;
textline[length+3]='\0';
strcat(textline+2,".html");
newwords+=guess_word(textline+2,length+5);
newwords+=guess_word(textline+2,length+6);
textline[length+2]='\0';
strcat(textline+2,".html");
newwords+=guess_word(textline+1,length+5);
newwords+=guess_word(textline+1,length+6);
}
for (x='0';x<='9';x++) {
textline[1]=x;
textline[length+2]=x;
textline[length+3]='\0';
strcat(textline+2,".html");
newwords+=guess_word(textline+2,length+5);
newwords+=guess_word(textline+2,length+6);
textline[length+2]='\0';
strcat(textline+2,".html");
newwords+=guess_word(textline+1,length+5);
newwords+=guess_word(textline+1,length+6);
}
}
fclose(datafile);
printf("Found %d new words in %s\n",newwords,filename);
}
/* save a dictionary file */
void save_dictionary(char *filename) {
FILE *datafile;
long i;
DICTHASH_ENT *tmp;
datafile=fopen(filename,"wt");
if (!datafile) {
printf("ERROR - cannot write dictionary %s (non-fatal)\n",filename);
return;
}
for (i=0;i<DICTHASH_SIZE;i++)
for (tmp=dicthash[i];tmp;tmp=tmp->next)
if (tmp->word)
fprintf(datafile,"%s\n",tmp->word);
fclose(datafile);
}
void dump_newsgroup_blocks(void) {
long table3_start,table3_end;
long i;
short mask;
char length;
puts("*** NEWSGROUP BLOCKS ***\n");
memcpy(&table3_start,cyber_not+0x0024,4);
memcpy(&table3_end,cyber_not+0x0028,4);
table3_end+=table3_start;
table3_start+=2;
table3_end-=2;
clear_blockmask_key();
for (i=table3_start;i<table3_end;) {
length=cyber_not[i];
i+=1;
memcpy(&mask,cyber_not+i,2);
i+=2;
add_blockmask(mask);
printf("%04X ",mask);
for (length-=3;length>0;length--) {
putchar(cyber_not[i]);
i++;
}
putchar('\n');
}
putchar('\n');
print_blockmask_key();
putchar('\n');
}
/* Load a file of reverse-lookup hints. Just initializes the table if
* the filename parameter is null. */
void load_iphints(char *filename) {
FILE *datafile;
char name[LINELEN],*ntmp;
int i,ipa,ipb,ipc,ipd,count=0;
unsigned long ip;
IPHASH_ENT *tmp;
iphash=(IPHASH_ENT **)malloc(IPHASH_SIZE*sizeof(IPHASH_ENT *));
if (!iphash) {
puts("ERROR - can't allocate IP hash");
exit(1);
}
for (i=0;i<IPHASH_SIZE;i++) iphash[i]=NULL;
if (filename==NULL) return;
datafile=fopen(filename,"rt");
if (!datafile) {
printf("IP address file %s missing.\n",filename);
return;
}
while (!feof(datafile)) {
fscanf(datafile,"%d.%d.%d.%d\t%s\n",&ipa,&ipb,&ip
ip=((long)ipa)+((long)ipb<<8)+((long)ipc<<16)+((l
tmp=(IPHASH_ENT *)malloc(sizeof(IPHASH_ENT));
ntmp=(char *)malloc(strlen(name)+1);
if ((!tmp) || (!ntmp)) {
puts("ERROR - out of memory (IP hash entry)");
exit(1);
}
tmp->next=iphash[ip%IPHASH_SIZE];
iphash[ip%IPHASH_SIZE]=tmp;
tmp->ip=ip;
tmp->name=ntmp;
strcpy(ntmp,name);
count++;
}
fclose(datafile);
printf("Found %d IP addresses in %s\n",count,filename);
}
/* save reverse-lookup hints file */
void save_iphints(char *filename) {
FILE *datafile;
long i;
IPHASH_ENT *tmp;
datafile=fopen(filename,"wt");
if (!datafile) {
printf("ERROR - cannot write IP hints %s (non-fatal)\n",filename);
return;
}
for (i=0;i<IPHASH_SIZE;i++)
for (tmp=iphash[i];tmp;tmp=tmp->next)
fprintf(datafile,"%ld.%ld.%ld.%ld\t%s\n",
tmp->ip&0xFF,(tmp->ip>>8)&0xFF,(tmp->ip>>16)&0xFF
tmp->name);
fclose(datafile);
}
/* OK, this is the good part */
void dump_web_blocks(void) {
long table1_start,table1_end,table2_start,table2_end;
long i,j;
unsigned long ip,hash;
short mask;
char length;
memcpy(&table1_start,cyber_not+0x0010,4);
memcpy(&table1_end,cyber_not+0x0014,4);
table1_end+=table1_start;
table1_start+=2;
table1_end-=2;
memcpy(&table2_start,cyber_not+0x001A,4);
memcpy(&table2_end,cyber_not+0x001E,4);
table2_end+=table2_start;
table2_start+=2;
table2_end-=2;
for (i=table1_start;i<table1_end;) {
puts("************************************"
"************************************");
clear_blockmask_key();
memcpy(&ip,cyber_not+i,4);
i+=4;
memcpy(&mask,cyber_not+i,2);
i+=2;
putchar(' ');
putchar(' ');
print_ip(ip);
putchar('\n');
for (j=table2_start;j<table2_end;) {
memcpy(&hash,cyber_not+j,4);
j+=4;
length=cyber_not[j++];
if (hash==ip) {
for (;length>0;length--) {
memcpy(&hash,cyber_not+j,4);
j+=4;
putchar('=');
putchar(' ');
print_ip(hash);
putchar('\n');
}
} else
j+=(length*4);
}
if (mask==0) {
putchar('\n');
for (;(length=cyber_not[i]);) {
i++;
memcpy(&mask,cyber_not+i,2);
i+=2;
add_blockmask(mask);
printf("%04X http://%ld.%ld.%ld.%ld/",mask,
ip&0xFF,(ip>>8)&0xFF,(ip>>16)&0xFF,ip>>24);
for (length-=3;length>0;length-=4) {
memcpy(&hash,cyber_not+i,4);
i+=4;
print_revhash(hash);
putchar('/');
}
putchar('\n');
}
i++;
putchar('\n');
} else {
add_blockmask(mask);
puts("ENTIRE SITE:");
}
print_blockmask_key();
}
}
/**********************************************
/* Main program */
int main(int argc,char **argv) {
puts("cndecode - Cyber Patrol 4 cyber.not decoder");
puts("By Matthew Skala\n");
#ifdef REVERSE_DNS
start_time=time(NULL);
#endif
if (argc<2) {
puts("ERROR - no cyber.not file specified");
return 1;
}
load_cyber_not(argv[1]);
find_hashes_to_reverse();
if (argc>=4)
load_dictionary(argv[3]);
if (argc>=3)
load_dictionary(argv[2]);
if (argc>=5)
load_iphints(argv[4]);
else
load_iphints(NULL);
dump_newsgroup_blocks();
dump_web_blocks();
if (argc>=4)
save_dictionary(argv[3]);
if (argc>=5)
save_iphints(argv[4]);
return 0;
}
************************************************** *************************** The following copyright applies to the Red Hat Linux compilation and any portions of Red Hat Linux/Intel it does not conflict with. Whenever this policy does conflict with the copyright of any individual portion of Red Hat Linux, it does not apply. ************************************************** *************************** GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 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.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
This will not be a test of the validity of GPL. If courts rule that this software is illegal, the type of license it was published under is irrelevant.
just saying in a comment in some .c file that it's "GPL'd" is a very, very bad idea. you must include a copy of the licensing(sp) agreement, otherwise, (and ianal) the license may be void, since the licensee never saw the terms. this is why you put the "if you didn't get a copy..." line in GPL'd stuff, so that there's no question about whether or not the license is valid!
just saying "yeah, yeah, it's GPL'd" is seriously asking for trouble.
And if it was under a BSD licence, it would not matter either. And making it public domain would not have mattered.
All the GPL does in this is give a possible chance to 'test' the 'untested' GPL.
What ever the licence YOU got the software under is the licence it has. If the licence has no clause for the revocation, the only way it can be revoked is by a judge/law. And then the revocation is for where you are. If you were on a barge in international waters, someone with international juristiction would have to come and revoke your licence.
So, all 50 states could make a law outlawing said code. Or the federal level. They can then take away your right to HAVE the code.
Think about this in Microsoft terms:
They KNEW the actions they were taking were anti-competive/monopolistic. Yet they did them until a judge said stop.
If you have this software, you can do what you want. But, be aware, that *IF* a judge/law catches up to you, the previous court case sets the stage for your damages. And, at this time, it looks like you are damaging Mattel if you USE this software.
If it was said on slashdot, it MUST be true!
Umm... excuse me... the GPL IS the license. The phrase GPL (Usually GNU GPL, actually) is short for GNU General Public License . So when you say it isn't the GPL that's stopping them, its the license, you're not really making much sense.
Here is the only mention of licensing
"The source is included, and you can do whatever you want with it. "
AND
"You are allowed to mirror this document and the related files anywhere you see fit"
The essay says do what you want with it. The source says GPL. Two different licenses.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Interesting question. I don't know.
I think that technically by releasing the code under GPL they did not actually assign their rights to anyone - granting a license is not the same thing as re-assigning a copyright. But IANAL. If the agreement does turn out to be invalidated by their prior release, their lawyers screwed up.If not, then Mattel got seriously outmaneuvered here, as I suggested yesterday. I sure hope I was right. ;^)
If not, it's probably time to start taking up a collection to get these guys better lawyers. :~(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Any opinion on whether or not the licensing constitutes an "assignment of rights" in a sense that would invalidate the settlement?
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
According to the wired article:
IANAL, but I don't see how that language was false. They DID have all rights to the code, they had uncontested copyright. The GPL does not affect who owns copyrights - it is just a license. Granting a license - even to the entire public - does not change, grant, or assign your copyright to someone else, AFAICT.
Whether or not I am right, I smell big legal fees on both sides though.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
i wouldn't screw with these mattel guys, just take a look down ken's pants one day and you'll see he found out the hard way (no pun intended)
The only question that I have is whether it is GPL'd "enough"
That's a very good point. In my past examinations of the GPL, I had gotten the feeling that in order
to GPL it, you had to include the GPL with the distribution and state the requirements of the GPL
so that it was stated obviously.
I don't believe that GPL can be considered Prime Facia in that just saying it's under GPL is enough.
Perhaps somebody out there with some legal expertise can fill us in?
Anyone from EFF or FSF?
And if Mattel manages to turn up some laws or get a ruling that the essay is illegal... After all, writing is covered by the United States constitution. And the authors aren't even in the US, even though it seems that US laws are being applied to them by Mattel. From what I've heard (haven't actually had the time to read it), the essay is based on fact.
-RickHunter
Besides Barbie and board games, Mattel also owns The Learning Company, 2nd largest software maker in the world next to M$ (or so they claimed when I was in training there). Their product line is almost exclusively Windows-centric with a few bones thrown to the Mac crowd.
If you were to boycott Mattel, you would also have to boycott Jasc Software, Intuit, and a whole bevy of companies you never would have suspected were owned by the evil empire.
Besides, a boycott isn't really necessary. Everyone knows that a TLC label is as much a symbol of crap as a M$ label, especially their games (which I used to tech).
"From the back of the short bus we present to you a man with the IQ of a genius and the attention span of a goldfish - The gaijin|dog!"
As long as it's not free, there's no way to stop the lawyers or the lawsuits.
Very intresting situation because the contract IS AND IS NOT valid at the same time,
;-)
Kind of makes it a Quantum program, huh?
Actually they would bill you $0.056 a second, rounded to the nearest second!
At least the lawyers don't rip you off like the cell phone companies do with full minute rounding charges...
I suppose so: if the agreement with Mattel was on the condition that Jansson and Skala were "the sole proprietors of all rights", and they weren't, then that agreement presumably gets torn up and they find themselves back in the firing line. Skala will have to give Mattel their $1 back as well. What an unholy mess...
IANAL, but, as the lawyer guy said, this is not a test of the GPL. What's worse, I believe, if this is brought to court, and loses (it shouldn't, but c'mon, these are braindead american courts we're talking about here, it wouldn't be the first time). If it loses, it may damage the GPLs power for when it finally is tested. And we don't want that.
Isn't DeCSS GPL? If so, DeCSS may have a chance. If this is tested in court, it will create a precedent, and that's very powerful, and potentially damaging to the MPAA.
Don't call my crazy, that's what they called me back in the home!
IANAL, but this is my understanding: Every software license I know (open source or closed) grants the user of the software rights which cannot be taken away by the copyright holder unless the license is violated. Any license would cause the same issue: however it was distributed, people who already have the program have rights to it and Mattel can't do shit about that.
-- The Sheep --
Has anybody actually DOWNLOADED the code from a site and looked at it?
IANAL, but it would appear that this program is not technically GPL'ed... or if the authors intended it to be GPL'ed, they did a lousy job.
In the version of the code I have, only one file has any mention of the GPL, and that's a one line statement on top of a Delphi/Pascal bit of code. As I understand it, the GPL could only be applied to THIS ONE FILE, and it would not necessarily extend to the entire program. Additionally, there is no copy of the LICENSE file, nor the required copyright statement and disclaimer of warranty.
In other words, should this go to court, Mattel will have a perfect loophole to say that the terms of the GNU GPL were not met, therefore, they will be free to re-copyright it any way they see fit and restrict distribution accordingly.
It will be interesting to see if the FSF will be required to testify/submit a deposition supporting Mattel's position...
- Andy R.
A pizza of radius z and thickness a has a volume of pi z z a
ahh, (AFAIK, IANAL etc) this is different in UK law (where I live). Nice way for US lawyers to maintain a monopoly on test cases! OK, =who's first to sue the entire US legal profession for this one?
2) & 3)
That's why I specified 2 people, I to write the sw, I to violate the glp on it, pay damages to the first, and have them returned!
4)
Again, (AFAIK, IANAL etc.... can we default slashdot comments to IANAL yet?) this isn't the case in UK law.
I guess that answers my question then!
- Andy R.
A pizza of radius z and thickness a has a volume of pi z z a
I'm intruiged... are potentially confusing US laws not 'pinned down' by case law as they are in the UK? Shouldn't a Judge be able to declare 'the law means this' regardless of the legal abilities of either party?
I'd hate to see how worked up slahdotters would be if there actually WAS a controversy! ;-)
- Andy R.
A pizza of radius z and thickness a has a volume of pi z z a
Hmm...lawyers don't earn their keep, they simply get overpaid...
Sure a few lawyers make millions, but most don't. The U.S. Bureau of Labor Statistics shows the median annual salary for all attorneys in the U.S. in 1996 to be $60,000. See http://stats.bls.gov/oco/ocos053.htm# earnings. I know a lot of .com folks who make a whole lot more than that for doing didlysquat. And how many .com folks are required to give away any of their workproduct for free? Most jurisdictions require lawyers to do pro bono work for the community or for the indigent. Most of my colleagues (yes, I too am an attorney, and I make less than the median salary) work their butts off (60 to 80 hour weeks are not uncommon) to help people defend their rights. Most of us are also saddled with student loans (the average loan load is $66,000, with monthly payments averaging $750 to $1000). See http://www.lawnewsnetwork .com/stories/A5219-1999Sep7.html.
If you really think we are overpaid, then the next time some large corporation hauls you into court over something you have posted on the web, you just go ahead and defend yourself. And don't blame the corporation's lawyers either, slimy as they may be...blame the corporate management who instructed them to do it, and the shareholders who elected the management to maximize profit above all else.
The legal system is just a reflection of the society it operates in. Greedy lawyers "harassing" people with lawsuits wouldn't be able to do it without greedy clients. A personal example: A relative of mine is a doctor. He constantly complains to me about "goddamn lawyers" driving up his malpractice insurance rates with their frivolous lawsuits. He was in a minor traffic accident that involved his car being hit from behind. His neck was sore (possible whiplash, but probably not). He immediately called me up and asked how much I thought he could get in a suit. I told him he could probably get any medical expenses and lost wages for any real injuries. He was really disappointed...he wanted "six or seven figures". Even when I pointed it out, he couldn't see that his attitude was one of the problems he had complained so vociferously about.
Lawyers and the law can do a lot of good. Without civil rights lawyers, schools, motels, and other public places would still be segregated. Without securities lawyers, corporate executives could manipulate insider information to make a killing in the stock market at the expense of the average investor. Without . . . well, you get the idea I'm sure.
Madness takes its toll...
I tell people where some are, and other's are not published. I can do this ad nauseum, to my heart's content, for ever and ever. I have done the same with DeCSS, MS-128 Bit encryption, and other "restricted" lists. There are site's I have no recollection of, password locked away, filenames altered. I will do this about once a month from different anonymous IP's. I will do it for future programs that are censored. I will stay quiet about it for the most part. Some People may not know what the hell they are, but they are out there, and a resourcefull bugger can find them, but Mattel and MPIA, and whatever conglomerate is going to have to work hard as hell to eradicate them all. I'm up for the fight for free information... Hope you all are... --Indeego
fslg503-985-8686503-985-8686503-985-8686503-985-8
After reading the scads of comments below, one thing is quite clear. There are a lot of people willing to give expert testimony on the subject of licensing and copyright in the United States.
But one thing is perfectly clear, the cat is our of the bag. As long as computers are in wide circulation it is possible to get this program Mattel doesn't want anyone to get.
It doesn't really matter who owns the copyright, the patent, or the license in this case. The code is on the web, and it will be available as long as it is useful. When the blocking software from Mattel is no longer available, or CPHack doesn't work anymore then this program will be difficult to find. Eventually it will dissapear for the most part.
Information wants to be free. You can sue, you can holler, you can license, but CPHack and code like it will always be available if you want it.
On the other hand it never hurts to make your elected representatives aware of your intellectual property concerns, i.e. reverse engineering, software patents, etc..
Of course, I was trying to find AOHell the other day, and never did find it. Oh, well.
timbu
I'm just not sure if that would fly in a court of law
---
Zardoz has spoken!
Oper on the Nightstar
Well, technically any General Public License is a GPL. Saying that it is covered under the GNU GPL would be better, I think (however, I'm not sure if even that is sufficient for coverage. IANAL)
Heh. Maybe we should lobby the Unicode consortium to add a copyleft character.
More seriously, doesn't the GPL contain a clause that states that copies of covered source code must contain the GPL? If so, didn't they already violate the terms of the GPL?
---
Zardoz has spoken!
Oper on the Nightstar
Whether the software infringes a copyright, as was alleged by mattell has nothing to do with the licensure or distribution of the software. We're talking about two different causes of action.
First, the Court's injunction can only affect the rights of the authors subsequent to entry of the Court's order. It cannot and does not strip them of any rights they had prior to the injunction.
Second, if we assume that the Authors' original license was valid, and that mattell cannot revoke thos licenses, mattell can still pursue the same original causes of action against mirrors that they did against the original authors.
Mattell may not have sewn up their case as tightly as they would have liked when they acquired the rights from the authors, but they have not lost any of the original causes of action that they had. Further, the judge has yet to rule on whether merely mirroring, or linking to cphack constitutes a violation of the injunction by aiding and abetting distribution.
Let's keep the license issue, and the original infringement issues separate.
Dane Torbenson
Lets see....
Mattel has discovered that although they have the copyright to the code, they cannot stop other people from using or distributing it.
They could still sue, but this would cost more than they would make, and would not solve the problem. Their accountants will probably stop this from happening.
The other problem is that there is a possibility that they will lose, or even funnier, have the judge rule that the software is legal, and that since the terms of the agreement were bogus, all rights to the software revert back to the original copyrighters.
They could try to argue for the licence to be ruled invalid. This also has the problem that ALL software licences could be ruled invalid. This would weaken the licence on their own software.
I get the feeling (or hope) that Mattel may make a lot of noise, but will probably just give up.
More to the point, ol' sorehands.com seem to have a good track record against Mattel. And since they're still retaliating, there's not a lot to lose.
I don't know. Probably Mattel wrote the agreement and offered it on a take it or leave it basis. Whether the agreement was fraudulent or not probably turns on whether the GPL is an assignment of rights or a granting of a license.
Anomalous: inconsistent with or deviating from what is usual, normal, or expected
Anomalous: deviating from what is usual, normal, or expected
Canard: a false or unfounded repor
(smiles) Stories like this are the foundation of a Good Day(tm). I'll bet some Mattel lawyers lose sleep tonight. 8-) I don't think I could have kept a straight face while signing that agreement.
If GPL is challenged by Mattel, they will likely argue that it infringes their copyrights/license agreement. Since they will be unable to eradicate all copies of cphack anway, the obvious remedy for Mattel becomes to rewrite CP and try to sue Skala and Jannson for the costs. Oh no, they signed off and let the lads off scott free. DOH!
Good show, lads! It's been awhile since a story of the little guy getting Corporate America to do themselves has warmed my heart as much The Swindo has. FFEITM! (Fist fuck 'em in the mouth)
cat
According to the article, the agreement they came to with Mattel states that they have not assigned their rights to anyone. Wasn't that done when they released it under GPL? If so, the the agreement maay end up being worthless, and Mattel will go back after them again.
Edward Burr
Edward Burr
Having a smoking section in a restaurant is like having a peeing section in a swimming pool.
Yeah. Understand what you are doing when you issue something under GPL. The only reason this will come back to bite them is because they assigned the rights to the general public and then told Mattel they had not assigned the rights to anyone.
Edward Burr
Edward Burr
Having a smoking section in a restaurant is like having a peeing section in a swimming pool.
<sarcasm>Sorry, you can't do that. DeCSS is illegal. You can't even look at the code, because it's banned from all web sites.</sarcasm>
Edward Burr
Edward Burr
Having a smoking section in a restaurant is like having a peeing section in a swimming pool.
Once one copy is released to the web, it doesn't matter how much money the company has, how many lawyers, how many lawsuits, there is no way they can stop people from having it.
It's the same thing we saw in the DeCSS case, and the same thing we will see in future cases.
This is the Internet, the land of the free. Enjoy it =)
Fight Spammers!
You find me a lawyer in my area that does this and I'll hire him on the spot.
My EX-lawyer once charged me for an hour for walking into his office, seeing him in the LOBBY, asking him if there was any news on my case, and getting the answer, "Not yet, keep in touch."
As a lawyer friend of mine who works for Legal Aid has told me repeatedly, "Never forget that all lawyers are scum, even the GOOD ones!"
>If your actions affect US citizens, they fall under US laws. I.e., why is former Panamanian president Manuel Noriega in a US prison? What a bizzare legal point of view! I dare say you won't find a lawyer anywhere who would back it up. Noriega is in a US jail because of US military action. Period. Noriega could not be tried until he was on US soil, so we damn well put him on US soil. It's might makes right, not a valid point of law. By strictly US law it was illegal under the 4th ammendment. The warrant had no standing in Panama. Are we going to invade Holland and arrest the Queen because drugs and prostitution is legal there and availed by US citizens?
>I am an attorney, but I"m probably not licensed in your jurisdiction. This is not legal advice. Get that from a lawyer who is licensed in your jurisdiction if you need any. You sir, are the first person claiming to be a lawyer on Slashdot whom I have seem make this preface statement. It makes me take you a lot more seriously. >Did I mention that this is a basic issue of license in general, and not the GPL? I have been making this point and several related ones for months now. In the land of the deaf... noone hears, and therefore cares about, the simple facts of the matter.
Oops, forgot to hit plain text. >I am an attorney, but I"m probably not licensed in your jurisdiction. This is not legal advice. Get that from a lawyer who is licensed in your jurisdiction if you need any. You sir, are the first person claiming to be a lawyer on Slashdot whom I have seem make this preface statement. It makes me take you a lot more seriously. >Did I mention that this is a basic issue of license in general, and not the GPL? I have been making this point and several related ones for months now. In the land of the deaf... noone hears, and therefore cares about, the simple facts of the matter. [ Reply to This | Parent ] Post Comment
Mattel can't revoke the GPL. Nor can the authors.
So the authors lied in their agreement.
Upshot:
Mattel lose. The software they bought is GPL.
The authors lose. Mattel can sue them for claiming falsehoods in their agreement.
But, can Mattel reverse-engineer the software, using the source as a "guide"?
Author, Shell Scripting : Expert Re
There seems to be only one file with mention
about GPL, but no GPL within package, so the
main issue will be: Is the program GPLed or not?
Very intresting situation because the contract
IS AND IS NOT valid at the same time, until
some AUTHOR decides which is the case. And that
is yet to see.
So go and distribute it, it is GPLed, and
you can't bite the authors of program because it
is not GPLed. Cool trick.
Usually people would be up in arms about Big Companies (tm) hurting Little People (tm) right about now and would be setting up all sorts of boycott web sites. Has anybody done this to Mattel yet?
Of course, but since that rerelease would be cphack v. 1.1 (or 2.0 or whatever), I could still play around with my cphack 1.0.
Tomorrow will be cancelled due to lack of interest
Only if you happen to be american... AFAIK, the code isn't illegal anywhere else.... yet.
Tomorrow will be cancelled due to lack of interest
Yes... absurd isn't it? I'm still waiting patiently for it to become illegal to view plans of the electricity in your home, just because the electrician who did the job doesn't want you to see how badly he did it...
Tomorrow will be cancelled due to lack of interest
I have Microsoft Windows 98, a licensed copy. Does this mean I own the copyright for it? No? Then why would this be different? The programmers gave away their right to the copyright of the program to Mattel, the GPL grants use, modification and redistribution, but doesn't sign away the copyright.
Tomorrow will be cancelled due to lack of interest
Well not really... The copyright holder may publish the program under any license he/she wishes to... You can't do that with a GPLed program. The GPL grants you the right to use, modify and redistribute a program, it doesn't make it your program.
Tomorrow will be cancelled due to lack of interest
'As Mattel are now the copyright holders shouldn't somebody change the copyright notices in the code to reflect this ?'
I'm not sure what the GNU GPL says should happen when a copyright holder signs all their rights to another body, but surely it couldn't insist that something that is completely incorrect concerning the legal issues of a program be duplicated. I suspect that nobody every actually thought that their might be such a thing as a hostile copyright holder of a GPL'ed program.
It would be really, _really_ funny if instead of killing the program off it ended up being redistributed with Mattel's name on it!
It seems that the authors, in releasing the software under the GPL, have given license to all current copies of the software that are in existence. It seems that the authors, in selling their license to Mattel, have really sold them the same license that I have to use the software. In other words, "Quick, everyone sell Mattel the rights to your copy, before they figure out what's going on!"
I wonder how well the GPL is going to stand up to lawyers? Has it had serious contest before?
What'dya mean there's no BLINK tag!?
Mattel can change the license alright, if they release another version of it :). They cannot however, change the license on software that has already been released. end of story. With copies of that software comes the right to distribute it as much as you want...
Go back to making Barbie's Mattel!
The settlement with Mattel ostensibly transferred rights from the authors to Mattel. This would appear to be an acknowledgment by Mattel that, prior to the settlement, the authors did have rights to their software. I'm no lawyer, but I doubt you can transfer or assign something you don't have. Based on what others have posted, it seems that if the authors did have rights at the time they licensed the software to others, then the earlier licenses stand.
The article mentions Mattel lawyers saying that the authors would be "in big trouble" if it turned out that they did not have the right to sign away all rights. I see the issue as you said, "In good Faith".
If these guys didn't realize that GPLing it would mean that they could not assign all rights because they no longer owned all rights, then they made the deal in GOOD FAITH, and Mattel may have indeed given them nothing.
Kinda makes me laugh...
The Digital Sorceress
put this comment up one, he does have a point
in the grim world of hello kitty there is only war
The only source I've found for what the programmers agreed to is the Wired article which says 'that Jansson and Skala attest they "are the sole proprietors of all rights" involved with cphack and have "not assigned" them to anyone else.' It's not immediately clear to me whether this is merely legal verbage asserting that Jansson and Skala, and only Jansson and Skala, had the right to assign the copyright to cphack, which was true, or a claim that no one else had any rights at all in cphack, which was false, but which is always false whenver published works are transferred. Publication always grants the general public some irrevocable rights, most particularly "fair use" rights.
Furthermore, Mattel knew that cphack had been published on the web and widely distributed, and had the chance to examine the cphack source for themselves before they bought it, making it tough for Mattell to convincingly argue deception or fraud - the GPL statement, while not prominent, was also not hidden.
Anyone have any ideas how to prevent this from happening again in the future?
Sounds like this is bad news for the programmers. Basically, they avoided any further legal problems by giving Mattel all of the rights to cphack. But now that Mattel has learned about the GPL, the deal with the programmers may be considered invalid since the programmers had promised that they were the only ones with rights to the software.
The only source I've found for what the programmers agreed to is the Wired article which says 'that Jansson and Skala attest they "are the sole proprietors of all rights" involved with cphack and have "not assigned" them to anyone else.' It's not immediately clear to me whether this is merely legal verbage asserting that Jansson and Skala, and only Jansson and Skala, had the right to assign the copyright to cphack, which was true, or a claim that no one else had any rights at all in cphack, which was false, but which is always false whenver published works are transferred. Publication always grants the general public some irrevocable rights, most particularly "fair use" rights.
Furthermore, Mattel knew that cphack had been published on the web and widely distributed, and had the chance to examine the cphack source for themselves before they bought it, making it tough for Mattell to convincingly argue deception or fraud - the GPL statement, while not prominent, was also not hidden. To prove fraud, Mattel would not only have to show that *they* didn't know about the GPL, but also that a mythical "reasonable purchaser" would also not have discovered the GPL even though the source was available.
Finally, if Mattel sues Jansson and Skala for fraud, what can they try to get? Their money back? What financial damage has Mattel incurred? It's not like they've lost potential revenue from being able to sell cphack, since they didn't purchase it to sell it, but to lock it up...How has Mattel, in a legal way that they can sue for, been hurt?
Anyone have any ideas how to prevent this from happening again in the future?
Jansson and Skala would be in a lot better position if the web pages that linked to cphack had explicitly mentioned the GPL near the link, and if they had included the GPL text in the distro, then Mattel wouldn't have any room at all to argue fraud.
However, for people in similar situations in the future, GPL is probably the wrong tool. GPL is great for releasing code that you want others to build on when you don't want them to lock up their improvements. For fighting with large corporations on social/political issues (as opposed to technical/mindshare issues), release to the public domain might be more appropriate, since what you're trying to accomplish is to keep the original from being locked up, period. This can probably be accomplished by including "This work is hereby explicitly dedicated to the public domain by its lawful author(s)", sprinkled prominently throughout the source. Then (a) the program could be released anonymously and used by the general public (b) nobody could claim to be confused about who owns what. Of course, if it's in the public domain anybody can do anything with it, including modify and sell it, and a corporation can't back down without losing face by "buying" your GPL'd work.
- Points:
- A reasonable lucid discussion of the GPL/Mattel/cphack issue.
- "Skala said he settled the dispute with Mattel in good faith and that the topic of GNU never came up."
- "The two collaborated on the cphack essay, but each created separate cphack decoding programs, Skala said.
- Article ends with "Computer activists say that the software filters many non-objectionable sites, including those of its critics."
I've seen postings that indicate Skala referenced GPL in a comment string, but does anyone know about the other cphack? Did it even get distributed? If so, was it GPL'ed?a) - I don't know the case in question here so I can't comment.
b) - You don't think the Government's sick of Win95 too? ^_^ Besides, Sun and a lot of other biggies are in there too. The govt. is waay bigger than MS in that case, MS is the small guy for once.
c) A lot of small people acting together makes one big person. Never underestimate the power of stupid people in large groups - any sysadmin can tell you this.
d) Once again, I don't know the case in question so I can't comment.
e) Rich people are powerful 'cause they're somewhat rare.
Keep in mind there are always exceptions to the rules... Just like in Windows, there's always exception 0Es.
I don't know if they still do, but they used to make M16 rifles for the US Army.
--
Do daemons dream of electric sleep()?
And cryptography software!
:)
Amazing coincidence, no?
--
Do daemons dream of electric sleep()?
"But she[A Mattel spokesperson] said cphack authors Eddy Jansson and Matthew Skala had signed a contract with Mattel and if there was any deception, "they'd be in big trouble." The agreement with Jansson gives "all rights, if any" to the cphack source and object code and accompanying essay to Mattel. " If any? Looks like Mattel got screwed, they gave themselvs a nice loophole, Mattel dosn't stand a chance of making "big trouble"
I always prefer to start the year off with a bang - or, to be more precise, a series of loud hums, a crackle or two, and
The fact that they GPLed their code and knowingly left that fact out of the signing agreement with mattel could be a major problem for the coders. Leaving that out was a BIG time No No.
..which just shows that the human brain is ill-adapted for thinking and was probably designed for cooling the blood-T P
Thus (admittedly, I haven't seen the actual agreement, so I'm not on firm footing) but wouldn't Mattel's hedge--purchasing only whatever rights the programmers retained at the time of signing, thereby allowing Mattel to avoid conceding that the authors *had* rights to it--also be a backfire in that even *if* they *had* assigned their rights to the individuals of the general public under GNU GPL, they (programmers) can't be sued for breach of contract?
It kinda looks like there are only 2 big issues: A) did the author's minimal notice of GPL adoption count as use of GPL licensing (seems it would--book publishers don't have to list relevant code/license sections for copyrights, do they?) and B) should both parties (e.g. Mattel) have been reasonably aware of the now-limited status of the authors' remaining rights at the time of signing?
-dumb, ignorant pre-law
Phrased differently, is there a legal differentiation between *writing* the software and holding the copyright on it?
this may raise a question. does this mean that they may look at the DeCSS code to see if it was GPL'd also....
If the court rules that the software is illegal, because the basis is a violation of a copyright, which is protected by international treaties. So unless you want to go use your illegally GPL'd derivative of already copyrighted software in Uganda, or wherever they don't have copyright treaties with the US, well those other countries honor that copyright. Similarly if Mattel were, say, a Dutch company and this all went down in Holland, well, the software's GPL-ness would be invalid in the US. We would have to honor the Dutch courts decision because it would be an issue of Dutch copyright. (forgive me if this is a bad example for any reason, I just grabbed a fairly modern European country out of a hat)
This is ultimately moot because the case was settled before the (il)legality of the software status was settled.
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
"Put yourself in their position. How can you call suicide selfish, when if you were unable to feed yourself you would probably do it too!" "But they were given a supply a free food!"
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
If things are as Volokh says, the thing can be really nasty ...
"Eugene Volokh, a law professor at UCLA, said that Mattel might be able to argue that the GPL is invalid because users don't pay for the free software."
I don't think things can be that extreme but are not also that easy ...
To own something you need a proof of the transaction that had put the thing in your possession (even if it's a gift), otherwise how can you show the original owner allowed you to enter in possession of the thing, am I right? The physical proof of that transaction is what is demanded by several companies when they ask for us to "press this button if agree" or when they say "if you do this then you agree". They want physical evidence the user/buyer/whatever is "signing" with their actions/hands/feet(?) the contract that enforces the conditions of use.
Is this lack of "contract" from the downloader of GPL software that Volokh is thinking about? Or is really money needed to seal the conditions of a valuable license?
"Nonexclusive licenses given for free are generally revocable, even if they purport to be irrevocable," Volokh said. "Even if the GPL license in cphack is treated as signed and is covered by 205(e), it might still be revocable by Mattel as the new owners of the cphack copyright."
As we see here Volock mentions that a contract may even exist between cphack and GPL(EFF) ... but can be revoked!
If this is so, what will happen to the previous downloaders of the software? If for instance I downloaded the GPL version on the 20th and GPL is revoked on the 21st, do I still have a GPL covered product or not?
As a potential Cyber Patrol customer, I am sure that they would be more than happy to entertain an intensive dialogue with me (via phone and e-mail) in order so that I can better understand why it is that I should not know what sites their product will prevent me from seeing and why they are abusing the legal system in an attempt to supress customer-benefiting Consumer Reports-style reviews and analyses of their products.
/anon.free.anonymizer.com/http://www.cyberpatrol.c om/forms/listsub.asp) by using this interface to pose press-conference style questions such as: Why does Mattel insult the good faith of its customers by making additions to its so-called ``CyberLISTS'' for purely political reasons?
... wants to hear from you! Call them, write to them, e-mail them! Let them know what they can do to better serve you, their (potential) customer!
:)
.anonymizer.com/http://www.cyberpatrol.com/central ): If you're looking for support on your Cyber Patrol product, please contact:
/anon.free.anonymizer.com/http://www.cyberpatrol.c om/forms/listsub.asp) to pose your questions (instead of URLs)is the only convenient way for you to contact Mattel, I am sure that they will understand. The important thing, as I am sure they would agree is to get the contact going!
During my lunch hour, I will call their Tech. Support dept. so I can get their side of the issue, and express my side. Who knows... I might even have to ask to speak with a "supervisor" (and perhaps even the supervisor's supervisor). If I can think of something to say to them tomorrow that I hadn't thought of today, then I will call them again. And so on.
Tonight, when I arrive home, I will send the company an e-mail message. If and when they reply, I will send them another e-mail, responding to their points and adding any additional ones of my own. (And if they do not reply I will of course e-mail them to enquire as to whether or not they received my original e-mail). And so on. I think that it would mean a lot to them to know that I cared enough about their company and its product to want to get into a long-term e-mail Pen Pal-esque relationship with the company and its employees.
As as an added convenience -- that is to save them the hardship of having to Xerox(tm) duplicate paper copies of my enquiries for their files, I will send a fax version of each of my e-mails as well.
I will take advantage, so to speak, of Mattel's open invitation for me to submit recomendations for sites to be blocked via a website application (http:/
I assume that if they had wanted this form interface to strictly support only the transmission of URL's (and not insightful questioning) they would have programmed out the polymorphism that permits the latter.
Mattel has a corporate interest to serve the customer. And that's why I am sure that they would be most appreciative if YOU, humble Slashdot Reader, were to likewise contact them in order to let them know that you are interested in finding out more about how their software works and to express to them that it not acceptable for them to pad their list of blocked sites merely for the sake of corporate censorship.
Mattel / Microsystems / The Learning Company
They will thank you for it!
From the cyberpatrol website (http://anon.free
Cyber Patrol technical support at 1-800-828-2608 or 319-247-3333 Monday thru Friday, 9am to 9pm EST,
or email help@tlcsupport.com, fax 319-395-9600,
or mail The Learning Company 1700 Progress Drive P.O. Box 100 Hiawatha, IA 52233-0100
P.S. If using the website interface (http:/
So cphack uses the GPL, and the GPL permits free distribution. I suppose that the Slashdot readers will know assume that this gives cphack users free reign to copy and use this illegal program.
Bzzzt. Wrong.
Suppose, now, that the cphack authors had included an extra clause in the license. And suppose this extra clause said that no matter what, they couldn't be held liable for writing it. Do you think such a thing would stand up in court? Sorry, but if you break the law, not even a fine print disclaimer will save you. This whole license issue is sort of like negotiating with terrorists: you get to make all the demands you want, but you're crazy if you expect them to be met. The GPL, having never been tested in court, is impotent in this case.
Sorry, but I don't see these guys getting off so easy.
Is it not prohibited to buy illegal software ;-) ?
But they did not assign the rights to anyone SPECIFICALLY. They simply released the code to the public (not a legal entity). Think we might have a leg to stand on! Tom Dutton
I'm not sure I understand your question.
Public Domain means anybody can do anything with the code. CPHack is not public domain.
The GPL allows free modification and redistribution, but prevents redistribution under more restrictive terms, therefore it is not public domain. CPHack might be under the GPL, but yes there appears to be some controversy about that.
The Artistic License also allows free modification and redistribution, and also prevents redistribution under more restrictive terms, but is looser than the GPL as to where the more restrictive terms can't be.
If copyrights were assigned to Mattel, than Mattel has the right to redistribute the software under new and different licenses. Under the circumstances, I don't think they will.
Assuming the software actually was distributed under the GPL, than we all have the right to redistribute it, verbatim or in modified form, under the GPL. I don't know where the mention of the Artistic license is coming from, because the only one who can change the license to Artistic is the copyright holder (i.e. Mattel), and the chances of that are slim.
----
----
Open mind, insert foot.
I'm not certain of the details, but the boiler plate usually says (paraphrase) "see COPYING which accompanies this file. If it doesn't, get it from the FSF". Now, I don't know what the one comment had in it exactly, but if I saw something sawing what I was looking at was GPL, and I'ld look up just what GPL means.
Bill - aka taniwha
--
Leave others their otherness. -- Aratak
<sarcasm>Sorry, you can't do that. DeCSS is illegal. You can't even look at the code, because it's banned from all web sites.</sarcasm>
Stephan
[this still isn't legal advice :) ]
If mattel is correct on the copyright claim, then the purported licensing of the code, either as GPL or "do what you want" is invalid. It is a basic legal principal that you can transfer no better title to something than you yourself hold.
On the other hand, even if the authors were to agree that it was a violation, this would not be binding upon those who received the license under the purported license (but they would still be laible for damages if it is indeed a copyright violation.).
hawk, esq.
[still not legal advice]
>In other words, Mattel has signed a document acknowledging that the
>authors (had) all rights to cphack.
>No wonder they settled. They WON!
>Since both Mattel and the authors have agreed in writing that the
>authors had all rights to cphack, then they were certainly within
>their rights to license the programi
THis doesn't follow. Mattel did *not* agree that the authors had any
rights; they purchased whatever rights they *might* have.
hawk, esq.
THe GPL is hardly unique in being irrevocable.
However, given that it is still a nonexclusive license, it isn't anywhere close to an assignment--as is repeatedly said almost everywhere, the authors remain owners of the code even after subjecting it to the GPL.
Furthermore, mattel cannot claim that they were unaware of the license; it was imposible for any vaguely diligent person to find the code without the license. They have either actual or (at worst) constructive notice of the GPL and "do what you want" licensing, and can hardly come back and claim any type of surprise.
Lessseee, where to start?
.
1) without lawyers, the outcome would hardly be persuasive
2) its not possible for someone to violate their own license (which is why
LyX and some other projects (original KDE code?) are quasi-GPL, not
violations of the GPL. No violation means no damages
3) The damages would come from the couple of people trying to test it, why
would they agree to give it away.
4) the suit would be a sham from the beginning, not being an actual controversy,
making the pleadings perjury, etc . .
hawk, esq., still not giving legal advice.
> repeat this 10 times and you might understand:
:)
:)
And I was worried I'd repeated too many times in the original posting
1) It's not that it's a monopoly, it's that the rest of the world won't take what happens with a couple of amateurs as any prediction as to what the results would be with professionals.
2&3) Yes, two individuals in a conspiracy to defraud the court. This couldn't be heard in any Federal court, as there is no real underlying "case or controversy." SOme state courts have the power to grant advisiory opeinions, though.
still a lawyer, still not legal advice . . .
>You feel that it's not an assignment, whereas many of us feel it
>could be successfully argued as being the functional equivalent, and
>therefore legally equivalent.
I'm not trying to be rude or condescending, but no, damnit!
We're talking about words with specific legal meanings. What you
feel, or what I feel, has nothing to do with the matter. If someone
feels that writs from the Grand Poohbah transfer property rights
because he laberls them "Deed," this doesn't make it legally
arguable (at least not in good faith).
>Nothing has any significance in court until a judge says so.
Uh, no. What a judge can and can't "say" is very well defined by
eight hundred years of precedent and assorted statutes. The most
important facet of the rule of law isn't *which* rule it uses,
but that the rule be predicatble. In this case the rule is
preddictable, and the idea that the GPL is an assignment is just
plain peculiar. [However, there is still the copyright issue, which
would invalidate both the GPL and "do what you want" licenses"]
And one more time, even if the GPL were an assignment, this wouldn't
let Mattel off the hook--they knew about the release. If they
misinterpreted it . . . well, recall _Unforgiven_ , and the response
to "You just shot an unarmed man." ? "He should have armed himself."
Same thing here. If Mattel misinterpreted it, they should have armed
themselves with better counsel.
hawk, esq.
>I'm intruiged... are potentially confusing US laws not 'pinned down'
;-)
:)
>by case law as they are in the UK? Shouldn't a Judge be able to
>declare 'the law means this' regardless of the legal abilities of
>either party?
NOt necessarily (and the problem's the same in the UK, too). The
notion of "stare decisis" (already decided) used to be a lot stronger--
once the highest court had ruled, the legal question could never be
revisited, as the law was being "discovered" rather than created. After
a few hundred years, the law had become far too rigid from this, and
the courts of equity were created to get around the problem.
Our systems are adversarial by nature. The idea is that if both sides
to an issue argue to the best of their ability, the truth will come out.
But what if the best argument--the one that would have carried the day--
is never made? The case is wrongly decided under this circumstance.
Today, US courts (and I think UK courts) can decide that older caselaw
was just plain wrong. If the cases weren't well argued, this is
even more likely.
>...there is no real underlying "case or controversy."
>I'd hate to see how worked up slahdotters would be if there actually
>WAS a controversy!
Now you're *really* scaring me . . .
>This is NOT the same as public domain
I didn't call it public domain. I did note that "do whatever you want with this" may well be an additional license.
>Essentially, you've assigned the distribution rights
No. Assignment and licensure are different concepts. I know of no licenses offhand that are assignments. "Assign" has specifict legal meaning which a license does not cover.
> and thus can't transfer ALL the rights back
According to the article, the transfered whatever rights they might have, if any, rather than"all rights."
--
If your actions affect US citizens, they fall under US laws. I.e., why is former Panamanian president Manuel Noriega in a US prison?
If you post something that violates US copyright laws where Americans can download it, best not take any plane trips with stopovers on US soil if you value your freedom. It is routine for the FBI to check passenger manifests for wanted criminals.
Effectively, Mattel will not be able to nail anyone who distributes the GPL'd code for copyright infringement, even though they own the copyright. (Unless the distribution violates the terms of the GPL.) The only way they'd prevail is to charge poeple with something other than copyright infringement.
What Mattel can do, though, is to file nuisance suits against people. Who is going to be willing to spend a lot of money defending this, even if they know they're in the right?
If I can find a copy of the code, I'll be happy to distribute it from my web site.
Disclaimer: I Am Not A Lawyer.
No, because they are the copyright holder, they can release another version under a new license.
They're the ones using an EIGHT BIT key and they call cphack "primitive"?
Doesn't matter tho, it's the same as CSS: they could use a million-bit key, but if the software reads the list, it has to decrypt it, so it has to have the key. I suppose they could use MD5 sums for the blocklist instead. I don't think they have the brightest of bulbs in R&D over there...
I've finally had it: until slashdot gets article moderation, I am not coming back.
No.
Mattel's position is that the authors of CPhack never had the rights to distribute their code in the first place, thus making any claim or issuance under the GPL bogus.)
However, according to the article:
The agreement also states that Jansson and Skala attest they "are the sole proprietors of all rights" involved with cphack and have "not assigned" them to anyone else.
In other words, Mattel has signed a document acknowledging that the authors (had) all rights to cphack.
No wonder they settled. They WON!
Since both Mattel and the authors have agreed in writing that the authors had all rights to cphack, then they were certainly within their rights to license the program under the GPL, or under any other license.
Had the authors licensed the program under conditions that allowed for revocation of the license, then Mattel could go after anyone offering up a copy of cphack, claiming that as the new owner, they have exercised their right to revoke the license. However, the GPL does not allow revocation, leaving Mattel with no recourse.
An important lesson for anyone considering publishing a hack. Use the GPL. Distribute source code, and your work is effectively uncensorable.
Perhaps not exactly what Stallman had in mind when he wrote the GPL, but a nice effect, in my opinion.
GPL: This License Kills Fascists
then that agreement presumably gets torn up and they find themselves back in the firing line. Skala will have to give Mattel their $1 back as well. What an unholy mess...
If it should turn out that the the agreement is torn up and the authors have to give the dollar back to mattel, I hope one of them uses it to wipe their ass with first.
More likely, the Mattel lawyers simply never grokked open source and were smartly outmaneuvered by the authors and their lawyers. If so, the Mattel lawyers have dug their own graves, for which I weep not a single tear.
The Future of Human Evolution: Autonomy
However, as the numerous resurgent web hoaxes (like the 'modem tax') have shown:
a) the public at large enjoys panicking, if you can show them a reason why a geek issue affects them;
b) the groundswell is impossible to stomp out;
c) politicians will support the groundswell, even if it is baseless.
If Mattel wins a case in Virginia (where UNITA allowa them to change the license), then we can readily start a campaign against UNITA. Imagine (just imagine, I'm not hinting at anything, and I certainly don't suggest you do so, either) that Microsoft retroactively changes their license to require annual fees on old OS's or to make them effectively illegal to use.
"The Battle of the Desktop" could move our cause to the next phase, and make some copyright issues very real. It's not necessarily the strategy we should pursue, but we better have some contingency plan if GPL is undermined by UNITA,/b>
"Grovelworm! Prepare a meme based on Good Times!"
"Yes, Your Effulgence!"
__________
If you can go to bed, knowing you did a valuable thing today, you're very lucky. If you can't... it's not bedtime
No one else has "rights" in the sense of copyright law. What other people have is *LICENSES*. The authors presumably continue to have sole copyright of the work in question. They are the owners. They can release it under other terms.
NO ONE ELSE IS ALLOWED TO RELEASE IT UNDER OTHER TERMS.
However, the terms it *WAS ALREADY* under allow for arbitrary copying.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
A clear and unambiguous reference to the GNU General Public License, which we all know as GPL, would be sufficient. Did the authors know that that they were releasing it under the terms of the GPL (it can be argued that they did because they literally put "GPL" on it) and did the recipient believe that what she received was a copy and set of rights as spelled out by the GPL (some did)?
The specifications in the GPL for how to present it are there (IMHO) to help make the points clear and to avoid the confusion of having someone inadvertently violate it. The authors, by leaving out the terms, could be accused of contributing to a misunderstanding, and were it the case that Mattel could itself be liable for violating the GPL (not likely since their role at this point is having taken on whatever rights the authors have, not the rights of a distributor) the authors could be held responsible for that.
Did they misrepresent the rights they had vs. the rights they gave away, to Mattel in their agreement? Perhaps. Maybe it could be argued that under the time pressure of the situation, they didn't have time to evaluate the agreement, which most likely was written entirely by the Mattel lawyers surely entirely in their own (Mattel's) favor.
Mattel's case was weak for a number of reasons, most particularly lack of having pursued it in the proper jurisdictions (e.g. they should have filed their lawsuits in Canada and Sweden). Maybe now they have to start all over? Another way out is to rewrite the terms and re-agree with the authors, and let the authors hand over exact what rights they have.
now we need to go OSS in diesel cars
One thing most people seem to assume is that once you release under the GPL, you cannot change your license. That is not true.
If I release a piece of software (say, a mail program) that is entirely my own work, entirely written by me, on my own time; I own the software. Lets say that I have this piece of software, and that I decide to release it for the world to enjoy. Being a good little boy, I license it under the GNU GPL.
Most of you understand that the GPL limits what the LICENSEE can do. If you download my mail program, then make a modification, you MUST make the modification and the source available under the GPL. But, the original program is still owned by me, and is always covered under the licence I gave it. If, three months down the road, I decide I don't want to support it anymore, I can change the license! There is nothing in the GPL that prevents the ORIGINAL CODE OWNER from changing his licensing scheme. Licenses are changed all the time, and my mail software will be no different.
Now, to the case of cphack... The two authors wrote it, and licensed it under the GPL. But, THEY STILL OWN IT. If they want to revoke the GPL licensing, they can! Now that Mattel has 'bought' the rights to the software (they bought the acutal ownership, not just a license,) Mattel can relicense it any way they want, because they are now the copyright holders. And copyright law takes precedence over licensing issues.
Remember, the GPL only limits LICENSEEs, it does not, and can not, limit the OWNER of the software. The only way to do that would be if the owner of the code specifically signed documents placing his work into the public domain. Then, licensing is uneccesary, as anyone can OWN their own copy of the source, as NOONE owns the entire copyright when something is in the public domain.
But, that all said, IANAL, and this is just my opinion after conferring with a friend who is a lawyer. We'll really find out if and when something regarding this ever goes to court. (Heck, I should write a program, GPL it, revoke the GPL, then have my lawyer friend sue me just so we can set the precedent...)
Another non-functioning site was "uncertainty.microsoft.com."
The purpose of that site was not known.
HAHA!
OMG, those people were smart. They probably settled, signed some NDA, gave the rights to the program over to Mattel. BUt FAILED to mention that the program was GPL'd. Mattell cant change the license that easily.... can they?
If there ever was anything for RMS to get really worked up about, this is IT! And this is a battle worth fighting! IT's more a matter of principle.
All of this is, of course, IMNSHO. Cheers, Elmo
No, it doesn't work that way. Mattel didn't license the code under the GPL. They didn't receive some rights in exchange for giving up others. They got the whole enchilada.
For that matter, as far as I remember (been a few months since I read it), I don't think that you can require ANYONE to give you a copy of their software, even GPLed software. In other words, just because I have on my hard drive a binary of the Red Hat 6.1 ISO image (which is GPL'd), you can't demand that I give you a copy of it. However, if I DO give you a copy of it, you can demand that I make available the source code.
This is not necessarily ethical, or even legal. Consider reporting this to your state's bar association, not to mention the Better Business Bureau.
If I was auditing this guy's books and saw very much of this, I'd be like "What's that smell? Oh, yeah, that's money laundering."
Mattel could change the code slightly and release it closed-source.
So what?
Who gives a dingos' dong if tomorrow's copy ain't free? Yesterday's version is. So go grab it while you can, and redistribute it to your hearts content.
A Government Is a Body of People, Usually Notably Ungoverned
You get absolutely no protection if you assign you copyright to the FSF. The reason is that it's no longer your code. You no longer need the protection. This is like saying you can protect yourself from deadbeat tenants by giving the deeds to your property to someone else.
A Government Is a Body of People, Usually Notably Ungoverned
Rich people are powerful 'cause they're somewhat rare.
Then I guess that makes one legged tapdancers kings!
A Government Is a Body of People, Usually Notably Ungoverned
This is the USA. You have no rights here unless large companies and rich people decide otherwise.
What a sad, sad world you must live in, always afraid of those with one more dollar than you.
Only recently moving into the middle income bracket, I wonder if my former poor peers are now afraid of the immense power I wield over them.
If money can manipulate the system, then fix the system. Bitching about the money does nothing but exercise your whine muscles.
A Government Is a Body of People, Usually Notably Ungoverned
> If not, I suggest you shut up and learn what the GPL actually says.
Or, to phrase it more politely...
IANAL, but I think what the GPL says is that if you distribute software derived from GPL'd code, then you must also distribute the software's source code. But it does not, AFAIK, say that you do have to distribute the derived software. So no, Mattel, doesn't owe anyone anything on this basis.
Moreover, Mattel may have a counterloophole of their own, for I also think the GPL says that if any law or court ruling would prevent you from distributing the GPL-derived code, then you cannot distribute software based on that code. If this is the case, then I suspect that the court, for better or worse, will rule that no one other than Mattel can distribute the copyrighted code, at which point the GPL will say that you cannot distribute the software; both copyright and GPL would thus be satisfied, however disappointed some of us would be over that outcome.
But I am not at all sure about that ruling, because the pivotal issue is what the pre-existing licenses allow. If the court reads the GPL to be a perpetual license to use the source code even though you don't have any claim on the copyright, then the court should IMO rule that the existing licenses still stand.
I suspect that the push will be to rule the code itself illegal, or at least the act of using it, so these issues may never come up in court.
--
Sheesh, evil *and* a jerk. -- Jade
First off, everyone is claiming that Mattel is screwing with the GPL. Folks..they haven't DONE anything yet. They haven't even announced an intention to do anything yet. They haven't tried to fight the GPL yet.
Also, everyone is saying how Mattel can't do anything about it. This maybe true, but if it IS really GPL (which it sure look slike), then the original authors may be in for more trouble. It has been mentioned several times that the settlement required the authors to state that they had not assigned the rights to the software to ANYONE else. This clause is there specifically to prevent against something like this. In other words... when Mattel figures this out (which will be today, probably) they could find themselves back in court on other charges, as they may have LIED about the status of the software.
Of course, it goes without saying that Mattel won't win this battle in the long run.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
I was under the impression that Mattel gained the settlement which gave them ownership of the software in part to avoid going to the trouble of getting such a ruling. We aren't going to get a GPL testcase here but we may end up with one on reverse engineering instead.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
The bit I 'selectively' quoted was chosen for two reasons:
I thought people would be familiar with that section.
It shows that the GPL talks in terms of rights.
If the software was released under GPL and the GPL extends rights to everyone who downloads it, the programmers can't legitimatly claim to be the "sole proprietors of all rights" in their contract with Mattel. That's all.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Perhaps the GPL will be tested in this case, not in the legality of posessing/distributing the software, but in the legality of the contract these guys signed.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Because the original version is still under the GPL.
All the original licencees agreed to those provisions, and all they need to do is abide by them.
It's true that any changes you make won't be GPLed, and it is also true that you can change the licence on the GPLed code you wrote, and people must abide by that licence if they download it, but they can always download the original version from somewhere else, which will continue to be GPLed.
Like you said:
Where in the GPL is there any provision to allow the user of that code to change licence if you want them to? There isn't (unless you add it in, of course), so you can't force them to change licences without downloading another copy of your program.
GPL or not... the fact of the matter is that if the code is out on the net then it's gonna be out there forever. Sure you might have to do a little asking around, or spend some time looking, but it will be there forever. Granted, the guys that wrote it can't "distribute" it from their website, but it's sort of a moot point cause it will live forever. Kinda like locking the barn door shut after the animals have already escaped.
God Bless the digital era where everything you post or write will live until the end of time!!
I really wonder if Mattel will hire a team of people to search the web and yousenet for copies... seems rather silly to me but hey... it's a brave new world
IANAL, but agree this won't test the GPL. The GPL is not and will not be upheld by the courts as a shield against otherwise illegal activities. (In this case, as I understand it, Mattel's position is that the authors of CPhack never had the rights to distribute their code in the first place, thus making any claim or issuance under the GPL bogus.)
Look at it this way, if the GPL was that sort of shield, what's to keep someone from taking any code they don't own (like, say, the source for Windows 2000 or BSD) and distributing it under the GPL? (In either case significantly changing the original license without the permission of the owner.) That would be outright theft.
I know this is an unpopular view here, but I maintain the viral nature of the GPL is a very bad idea and will eventually be held to be unenforceable and/or invalid, ultimately doing great damage to the cause of open source software it seeks to promote. (As a thought excercise, just ask yourself the impact of the GPL (which has never been tested in court to my knowledge) being ruled invalid anywhere in the world...)
"The future's good and the present is nothing to sneeze at." - Roblimo's last
Mattel might have difficulty in arguing that the hackers are in breach of contract. Mattel were perfectly well aware of the wide distribution of the software, and if they have read it they should have been aware of the terms it was distributed under. Hence a court might (IANAL) hold that there was an implied term excepting the GPL licenses from that declaration. At the very least, the lack of due care on the part of Mattel to check this out this should count against any award for damages for breach of contract.
I don't know about US law, but UK law tends to be biased against booby traps in the small print of contracts. What counts is what was in the minds of the parties at the time they signed. Written contracts are merely evidence about what this state of mind was, rather than an absolute definition. Courts are quite free to ignore the terms of a written contract if there is evidence that one of the parties did not know about the terms, and would not have agreed if they did. I don't know if US contract law works the same way.
Paul.
You are lost in a twisty maze of little standards, all different.
(In this case, as I understand it, Mattel's position is that the authors of CPhack never had the rights to distribute their code in the first place, thus making any claim or issuance under the GPL bogus.)
Watch your pronouns; is "their" referring to Mattel, or Skala/Jansson? If the former, then unless someone smuggled out Cyber Patrol's source code, and either of the duo used it in their software, Mattel can't claim stolen code. The software is self-contained, and doesn't appear to use any CP code; the only interactions are with the cyber.not file, and the cyberp.ini file. If the latter, I still don't see what Mattel is bleating about. The encryption is even less effective as copy protection than CSS. If the cyber.not list is a piece of defective or just plain bad software, people have a right to know this. So what's the problem?
Look at it this way, if the GPL was that sort of shield, what's to keep someone from taking any code they don't own (like, say, the source for Windows 2000 or BSD) and distributing it under the GPL?
Because the license on the code they take isn't GPL in the first place. Now, if a piece of previously GPL'd code was taken and added to proprietary code, and the modified (let's say) Windows source were meant to be distributed/sold, then the whole source would be GPL.
To be really specific, an outsider could not steal the closed source, slip a chunk of the Linux kernel into the Windows kernel, and release the whole shebang under the GPL. If that occurred, the license change would be nullified by the fact that an illegal act was required to get the closed source in the first place. No court would even allow a code release in that event, and I think most of the community would agree that the GPL could not supersede the previous license.
OTOH, if a Microsoft programmer, working under the auspices of Microsoft (so that M$ can't just say it was a rogue programmer), knowingly used a piece of GPL'd code in the source code of a proprietary Microsoft program, that program would automatically be GPL. In this case, the GPL code has been "stolen" from the general public and hidden away. Credit for writing the code has been "stolen" from the original programmers who made it GPL (you think a proprietary software maker would credit the authors when just the credit would be glaring proof they knowlingly broke the GPL). I think a court would hold up the GPL under those circumstances.
And now for an interesting twist...search through all of the sources for "GPL" and "Skala". No license is mentioned in the two files that Skala wrote - cndecode.c and cph1_rev.c. Jansson wrote CPHack itself, and while he acknowledges converting some of Skala's C code to Delphi in Unit1.pas, he explicitly says "Released under the GPL" in the same file. Skala handed over his copyright. Someone claiming to be Eddy here says Eddy hasn't done so (yet). Therefore, CPHack itself may still be legit, and existing copies may remain so even if Eddy capitulates.
Also, being lazy, I haven't read the Wired article on the case; what's the word on the essay that came with cp4break.zip? I'd just love to see Mattel try to squash that. Hiding source code is one thing; just release the program under a non-open source license. Trying to suppress an essay, however, is quite another. Do I smell...a big honking loophole?
Corrections welcomed
IANAL, but I play on one Slashdot...
Someday, you're going to die. Get over it.
Nope...they licenced it. AFAIK they did not "assign rights" until they signed with Mattel
As authors they control the copyright on the code, however they licensed the code to everyone under the GPL with then grants the licensee's the rights to copy, modify, distribute, etc, from the authors. I think the authors are in a bit of trouble here as they were not the only ones with rights to the software as soon as the first person downloaded it.
Now, what the authors did was transfer their rights as copyright holders of the software to mattel, now mattel can go on and relicense future works, but this version is already GPL'd, tough luck mattel, better luck next time.
-- iCEBaLM
The clause you selectively quoted refers to the person who *receives* a copy of GPL software, not the author.
Do you really need me to explain why the GPL prohibits people from downloading code, slapping it into their own proprietary code base and selling it to others as their own work?
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
I think the clearest way to demonstrate the difference is in discussing re-licensing. Stary touched on this earlier, but I'd like to drive the point home a bit further.
If I release code, I can license it any way I feel fit. I can license it under the GPL. I can license it under a more restrictive license. I can license it under a number of concurent licenses (see Perl). I can license it under the GPL, then later re-license it under a different license (see SSH).
If I take GPL code, thus accepting the GPL license, I can not then release it under another license. I do not own the code, I do not own the copyright.
If, however, the origional author of GPLed code gave or sold me the rights to a project, I then am the new copyright holder and am free to license it any way I feel fit (again - see SSH for an example). But this is a very different act than providing someone a copy of the code under the GPL license.
An enterprising coder can fork the code today and create OpenCPHack. ;)
It is not moronic. A couple quotes:
1. From the article:
The agreement also states that Jansson and Skala attest they "are the sole proprietors of all rights" involved with cphack and have "not assigned" them to anyone else.
2. From Findlaw:
: a grant by the holder of a copyright or patent to another of any of the rights embodied in the copyright or patent short of an assignment of all rights
The short of an assignment of all rights is VERY important here. Without seeing the contract, you can't see the exact wording, But my interpretation of their paraphrasing is that they are refering to the assignment of ALL rights which, to put it another way, is an assignment of copyright. Plus, a real lawyer seems to agree with me
--GnrcMan--
. I think you're entirely wrong about the restrictions placed on a proprietary copyright holder's ability to revoke.
But the ability to arbitrarily revoke (read "change") the license means that licenses are useless to the end user. While one purpose of licenses are to protect the rights of IP owners, another is essentially a guarantee that once you (the end user) agree to a license, you are assured the rights granted under that license until some clause explicitly stated in the license kicks in. This does not put restrictions on future licenses you may grant(a very important point!). But any software distributed under a license is under that license forever unless specific terms of the license say otherwise. Nothing else really makes sense, as far as I can see.
--GnrcMan--
In general, licenses are not assignments of rights because they don't confer rights, because they are revocable. Commercial software licenses are generally revocable, and contain clauses detailing what is to happen in the event that (for example) Microsoft decides that it no longer wants to license Windows to you under the EULA.
:)
No, Microsoft cannot arbitrarily decide to revoke the license. All terms of revokation must be explicitly spelled out in the license. Think of the chaos that would result if this were otherwise. Licenses would mean absolutely nothing because the licenser could pull the rug out from under you at any time they choose.
I think you're overlooking the fact that the GPL is not as other licenses. In general, licenses are not assignments of rights because they don't confer rights, because they are revocable.
On the contrary. The GPL is exactly like any other license in the area that matters. The contents of the license don't matter. It is still a contract granting permission to use the copyrighted work under certain terms. If the terms are not met, the license is revoked. It is definately not an assignment of copyright, which grants many more rights than the GPL.
And I suppose I should add that I'm not a lawyer. I just play one on TV.
--GnrcMan--
It is possible for a software company to revoke licenses. This isn't typically done, because the license also usually contains a contractual term in which the copyright owner contracts not to do what your example postulates, but licences can be and often are revoked in other fields (check out your "license" to perform a play if Andrew Lloyd-Webber wants to do the same play in your town)
The terms of revocation must be spelled out in the license itself. In this sense, the GPL is exactly like any other license. The terms of revocation are spelled out in the GPL. There are just less instances where the license can be revoked.
--GnrcMan--
Absolutely not. Mattel, as copyright holder, has the right to change the license to whatever they see fit. But they cannot revoke existing licenses. In other words, Mattel can do whatever they want with the software now. They cannot, however, nullify the permissions granted to people who downloaded the software under the GPL.
--GnrcMan--
Now this is where my understanding gets muddy, but I believe the rights can be revoked if you do something which doesn not comply with the license. For example:
I download Emacs, with the source code. I use it. I have specific rights granted under the GPL, including the right to use it. I make source modifications and continue to use it. I do not however redistribute the changes, in binary or source form. Under the GPL, this is fine. I then decide to release my changed binary, refusing to release the changed source.
It is my understanding that in this case, my rights under the GPL are immediately revoked. Right? In other words, the rights granted under GPL can be revoked, but only if you fail to comply with the terms of the GPL.
BTW. Thanks for the "fewer" correction. I wan't paying attention and I hate things like that too.
--GnrcMan--
, the copyright has not been publicly licensed, only the license to redistribute and/or modify the code.
That's my take as well, but to be pedantic, you assign copyrights, not license them. Having a copyright assigned to you gives you the right to license a piece of software for whatever you want. However, it does not give one the right to change the license on previously released works. (Otherwise we'd always be in danger of software companys saying, "Oops! We've just changed the license on Windows 98. Please pay us $50 more dollars to continue using it legally!")
--GnrcMan--
I disagree. Here's a comment from the only (apparent) lawyer to post here(Hawk):
generally, a licensing is not an assignment of rights--especially since the license was exclusive. While licensing, the authors could continue issue under another license (proprietary, perhaps). They can't do this after they assign their rights, which are what had previously let them license.
Which is exactly my take on the matter.
--GnrcMan--
Good analysis, and a good example, however, the injunction is only a preliminary injunction, and as such does not make anything illegal. The injunction prohibits the authors from further distributing the software, but that cannot apply to other holders of the software unless specifically enjoined by the court.
In order to invalidate the GPL - In this case only - the legal process on the original case must continue until a final ruling declares the original program stolen property - which would invalidate the right of the hackers to have licensed it in the first place.
THE YEAR WAS 2081, and everybody was finally equal...
Please see the comments in reply to this one for the source.
(Note: I'll only include the files cndecode.c, COPYING, and cph1_rev.c. The files in the cphack directory have remained unchanged.)
/*
/* correct for output length */
/* XOR in the CRC */
/* XOR in the free bits */
/* set up output */
/* output forced bits */
/* output free bits */
i ]|0x20)]; h ash1;
* cph1_rev.c
* By Matthew Skala
*/
/* CP4Hack.
* Copyright (C) 2000 Matthew Skala
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
/
#include <stdio.h>
/* Polynomial table for forward CRC */
unsigned long crctable[256]={
0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL,
0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L,
0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L,
0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L,
0x1DB71064L, 0x6AB020F2L, 0xF3B97148L, 0x84BE41DEL,
0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L,
0x136C9856L, 0x646BA8C0L, 0xFD62F97AL, 0x8A65C9ECL,
0x14015C4FL, 0x63066CD9L, 0xFA0F3D63L, 0x8D080DF5L,
0x3B6E20C8L, 0x4C69105EL, 0xD56041E4L, 0xA2677172L,
0x3C03E4D1L, 0x4B04D447L, 0xD20D85FDL, 0xA50AB56BL,
0x35B5A8FAL, 0x42B2986CL, 0xDBBBC9D6L, 0xACBCF940L,
0x32D86CE3L, 0x45DF5C75L, 0xDCD60DCFL, 0xABD13D59L,
0x26D930ACL, 0x51DE003AL, 0xC8D75180L, 0xBFD06116L,
0x21B4F4B5L, 0x56B3C423L, 0xCFBA9599L, 0xB8BDA50FL,
0x2802B89EL, 0x5F058808L, 0xC60CD9B2L, 0xB10BE924L,
0x2F6F7C87L, 0x58684C11L, 0xC1611DABL, 0xB6662D3DL,
0x76DC4190L, 0x01DB7106L, 0x98D220BCL, 0xEFD5102AL,
0x71B18589L, 0x06B6B51FL, 0x9FBFE4A5L, 0xE8B8D433L,
0x7807C9A2L, 0x0F00F934L, 0x9609A88EL, 0xE10E9818L,
0x7F6A0DBBL, 0x086D3D2DL, 0x91646C97L, 0xE6635C01L,
0x6B6B51F4L, 0x1C6C6162L, 0x856530D8L, 0xF262004EL,
0x6C0695EDL, 0x1B01A57BL, 0x8208F4C1L, 0xF50FC457L,
0x65B0D9C6L, 0x12B7E950L, 0x8BBEB8EAL, 0xFCB9887CL,
0x62DD1DDFL, 0x15DA2D49L, 0x8CD37CF3L, 0xFBD44C65L,
0x4DB26158L, 0x3AB551CEL, 0xA3BC0074L, 0xD4BB30E2L,
0x4ADFA541L, 0x3DD895D7L, 0xA4D1C46DL, 0xD3D6F4FBL,
0x4369E96AL, 0x346ED9FCL, 0xAD678846L, 0xDA60B8D0L,
0x44042D73L, 0x33031DE5L, 0xAA0A4C5FL, 0xDD0D7CC9L,
0x5005713CL, 0x270241AAL, 0xBE0B1010L, 0xC90C2086L,
0x5768B525L, 0x206F85B3L, 0xB966D409L, 0xCE61E49FL,
0x5EDEF90EL, 0x29D9C998L, 0xB0D09822L, 0xC7D7A8B4L,
0x59B33D17L, 0x2EB40D81L, 0xB7BD5C3BL, 0xC0BA6CADL,
0xEDB88320L, 0x9ABFB3B6L, 0x03B6E20CL, 0x74B1D29AL,
0xEAD54739L, 0x9DD277AFL, 0x04DB2615L, 0x73DC1683L,
0xE3630B12L, 0x94643B84L, 0x0D6D6A3EL, 0x7A6A5AA8L,
0xE40ECF0BL, 0x9309FF9DL, 0x0A00AE27L, 0x7D079EB1L,
0xF00F9344L, 0x8708A3D2L, 0x1E01F268L, 0x6906C2FEL,
0xF762575DL, 0x806567CBL, 0x196C3671L, 0x6E6B06E7L,
0xFED41B76L, 0x89D32BE0L, 0x10DA7A5AL, 0x67DD4ACCL,
0xF9B9DF6FL, 0x8EBEEFF9L, 0x17B7BE43L, 0x60B08ED5L,
0xD6D6A3E8L, 0xA1D1937EL, 0x38D8C2C4L, 0x4FDFF252L,
0xD1BB67F1L, 0xA6BC5767L, 0x3FB506DDL, 0x48B2364BL,
0xD80D2BDAL, 0xAF0A1B4CL, 0x36034AF6L, 0x41047A60L,
0xDF60EFC3L, 0xA867DF55L, 0x316E8EEFL, 0x4669BE79L,
0xCB61B38CL, 0xBC66831AL, 0x256FD2A0L, 0x5268E236L,
0xCC0C7795L, 0xBB0B4703L, 0x220216B9L, 0x5505262FL,
0xC5BA3BBEL, 0xB2BD0B28L, 0x2BB45A92L, 0x5CB36A04L,
0xC2D7FFA7L, 0xB5D0CF31L, 0x2CD99E8BL, 0x5BDEAE1DL,
0x9B64C2B0L, 0xEC63F226L, 0x756AA39CL, 0x026D930AL,
0x9C0906A9L, 0xEB0E363FL, 0x72076785L, 0x05005713L,
0x95BF4A82L, 0xE2B87A14L, 0x7BB12BAEL, 0x0CB61B38L,
0x92D28E9BL, 0xE5D5BE0DL, 0x7CDCEFB7L, 0x0BDBDF21L,
0x86D3D2D4L, 0xF1D4E242L, 0x68DDB3F8L, 0x1FDA836EL,
0x81BE16CDL, 0xF6B9265BL, 0x6FB077E1L, 0x18B74777L,
0x88085AE6L, 0xFF0F6A70L, 0x66063BCAL, 0x11010B5CL,
0x8F659EFFL, 0xF862AE69L, 0x616BFFD3L, 0x166CCF45L,
0xA00AE278L, 0xD70DD2EEL, 0x4E048354L, 0x3903B3C2L,
0xA7672661L, 0xD06016F7L, 0x4969474DL, 0x3E6E77DBL,
0xAED16A4AL, 0xD9D65ADCL, 0x40DF0B66L, 0x37D83BF0L,
0xA9BCAE53L, 0xDEBB9EC5L, 0x47B2CF7FL, 0x30B5FFE9L,
0xBDBDF21CL, 0xCABAC28AL, 0x53B39330L, 0x24B4A3A6L,
0xBAD03605L, 0xCDD70693L, 0x54DE5729L, 0x23D967BFL,
0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L,
0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL
};
/* This answers the question: how many freely-chosen bits do I include
* when I ask for a crc collision with input length (index)? */
char freebits[12]={0,0,0,0,1,4,10,16,22,28,34,40};
/* This says where each forced bit goes */
char bitsforced[32]={0,1,2,3,4,6,
8,9,10,11,12,14,
16,17,18,19,20,22,
24,25,26,27,28,30,
32,33,34,35,38,
40,41,42};
/* This says where each free bit goes */
char bitsfree[40]={36,43,44,46,
48,49,50,51,52,54,
56,57,58,59,60,62,
64,65,66,67,68,70,
72,73,74,75,76,78,
80,81,82,83,84,86,
88,89,90,91,92,94};
/* The portion of the inverted matrix corresponding to the CRC bits */
unsigned long crcmatrix[32]={
0x9BF7B4FE,0x10CEBBDB,0x3EC28E73,0xE516F5B2,
0x3EB07172,0xAC6CB91B,0x2344667F,0x25ECE58C,
0xD24109C4,0x501CB10A,0x97761211,0x0A2EF700,
0x0C806D13,0x55AE3901,0x4C147270,0xDAC3C857,
0x384B8A54,0xF7583CAD,0xA1DA1DC4,0x0028BBDC,
0xB5BB7FE3,0x99610C1A,0x1FC446C4,0x8DE0FF05,
0x01D3D128,0x64FAC9B2,0x3BC5E604,0xE564A85C,
0xADEB84A5,0xCFCDBB2B,0x3E7D9F68,0xA102B971
};
/* The portion of the inverted matrix corresponding to the free bits */
unsigned long freematrix[40]={
0x0CBFC054,0xAEAB35B2,0x315B20B2,0x1F113696,
0x6DA65FB4,0x08F3CFCD,0xC0E8FCF1,0xD928FA77,
0x58C085F6,0x55F7A6A4,0x726948CB,0xBEE706A6,
0xDE9BCF28,0x539FADD8,0xA5D7713D,0xA6B4900F,
0x3CA9547B,0xC98AC9B5,0xAF52FA18,0x60098F5B,
0x142D2C51,0x706AA085,0x46494250,0x54026BCE,
0xEBE4D0A3,0x673646B9,0x945A22D6,0x7C5347FB,
0xC61C9B99,0x97780ADB,0x7E9DB1AE,0x88C43E39,
0x55CEBFB3,0x5C81ADC9,0x0F3DD57C,0x3D44BCF3,
0x0383F8DD,0x73F38757,0xA8F2D5CF,0x2922BEA9
};
/* Matrix columns to take into account the canonicalization */
unsigned long lengthmatrix[12]={
0x84741063,0xC5273406,0xE5A222DF,0x9941CB2B,
0xD9EBE522,0xCB93A8AF,0x962E3D2D,0x90029144,
0x5B298B04,0x575F1D8A,0x78EE4BEC,0x47B6B86A
};
/* Macros to get and flip bits. FLIPBITR does the special reverse indexing
* mandated by the way we numbered our bits. */
#define GETBIT(p,b) ((((p)[(b)>>3])>>((b)&7))&1)
#define FLIPBIT(p,b) ((p)[(b)>>3]^=(1<<((b)&7)))
#define FLIPBITR(p,b) { if (length-1-((b)>>3)>=0) \
(p)[length-1-((b)>>3)]^=(1<<((b)&7)); }
/* Attempt to reverse CRC32, given the desired CRC value, the length, and
* some choices for the "free" bits. */
void reverse_crc(unsigned long crc,int length,char *in,char *out) {
unsigned long bits;
int i;
bits=lengthmatrix[length-1];
for (i=0;i<32;i++)
if (crc&(1<<i))
bits^=crcmatrix[i];
for (i=0;i<freebits[length-1];i++)
if (GETBIT(in,i))
bits^=freematrix[i];
for (i=0;i<length;i++)
out[i]=0x20;
for (i=0;i<32;i++)
if (bits&(1<<i))
FLIPBITR(out,bitsforced[i]);
for (i=0;i<freebits[length-1];i++)
if (GETBIT(in,i))
FLIPBITR(out,bitsfree[i]);
}
/* The CP4 HQ password hash function */
void cp_hash(char *input,int length,
unsigned long *hash1,unsigned long *hash2) {
int i;
*hash1=0;
*hash2=0;
for (i=0;i<length;i++) {
*hash1=(*hash1>>8)^crctable[(*hash1&0xFF)^(input[
*hash2=(*hash2<<5)+(*hash2>>27)+(input[i]|0x20)-*
}
}
/* main program. To use, just type in the 16-digit hex string as seen in the
* ini file. */
int main(void) {
unsigned long hash1,hash2,gothash1,gothash2;
int length,bflip,i;
char freeb[6],plaintext[12];
scanf("%08x%08x",&hash1,&hash2);
for (length=1;length<=12;length++) {
printf("Trying length %d (2^%d possibilities)...\n",
length,freebits[length-1]);
for (i=0;i<6;i++) freeb[i]=0;
do {
reverse_crc(hash1,length,freeb,plaintext);
cp_hash(plaintext,length,&gothash1,&gothash2);
if ((hash1==gothash1) && (hash2==gothash2)) {
printf("Found: \"");
for (i=0;i<length;i++)
putchar(plaintext[i]);
printf("\"\n");
return 0;
}
for (bflip=0;GETBIT(freeb,bflip);bflip++) FLIPBIT(freeb,bflip);
FLIPBIT(freeb,bflip);
} while (bflip<freebits[length-1]);
}
return 1;
}
Total Quality Management is a structured system for satisfying internal and external customers and suppliers by integrating the business environment, continuous improvement, and breakthroughs with development, improvement, and maintenance cycles while changing organizational culture.
What this means is, it's an adaptive process. You can't expect perfection initially, but you push through 'improvements' and 'refinements' as you find flaws. You then write off the past, sometimes irresponsibly, and say 'we were just learning then, we're doing better now and will continue to get better.'
Mattel will certainly use this opportunity to make CyberPatrol even more uncrackable, or so they think. If they're TQM, they don't care about what happened in the past, but they'll keep up appearances by sticking it to the little guys who put out the "old" CPHack.
(Total Quality Management =anagram>Mentally name-tag it 'quota.')
[
You seem to be the one with the grudge against Mattel. Why don't you do it?
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
> If it was GPL'd, then they had already assigned
> the rights to copy, modify and redistribute to
> other people, and so could not legally sign this
> agreement.
Nope...they licenced it. AFAIK they did not
"assign rights" until they signed with Mattel
>If you GPL something, you can still sell the code
> to someone under a non-exclusive license, but
> you cannot transfer exclusive ownership in the
> way the settlement appears to have done
Sure you can. Hell...goto the FSF website. They
even say that if you don't want to take care
of you GPLd program...you can sign over copyright
to them, and they will take care of it, and
defend it legally.
"I opened my eyes, and everything went dark again"
I guess now we know why they settled. :-P
It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
Well, you didn't get moderated down as a troll--you got moderated up as funny! Don't know what's worse. :-)
The thing to keep in mind is this: The rich don't have all the power. The rich have enough default power that it's seldom worth trying to muster the forces or make the sacrifices required to beat the large companies when they're in the wrong. (Not to mention the time involved!)
But it can be done, given enough determination and time. The trick is to pick your fights carefully, and prepare for the worst. Who among us is really willing to go through that?
"People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
Someone correct me on this, becuase I can't seem to differentiate between the Artistic Liscense and public domain software.
The GPL is supposed to protect against that, by introducing the idea of liscensing different versions of the program. If the GPL offers no such protection, then it is in effect the same as the Artistic Liscence. Note, the "supposed". As it is, there is doubt whether the code is explicitly licensed under the GPL, since it does not carry the GPL, and only one line says "licensed under the GPL".
... if cphack includes illegally obtained code. You can't license code that you don't own.
Of course that is the essential issue -- is reverse engineering a violation of the original code license?
I was surprised that the authors of cphack bowed out, especially right on the tails of the ACLU. I'd love to see the ACLU spearhead a case that establishes once and for all that reverse engineering code can constitute a 'fair use' which is inherent to the right to own property, and no amount of license mubo-jumbo can make it go away.
Mattel was aware of the program, the mirrors, and the essay that says you can do what you want.
Fight Spammers!
I could fertilize my lawn for at least a year with it.
Mattel claims that it is not to prevent the publication of the CyberNot list or the Essay. They claim that it is to prevent the publication of the "copyrighted source code for the product" and "primitive software product derived directly from the reverse engineering of the source code"
Based on this, I guess that Mattel does not mind if websites put up the essay, or the CyberNot list.
Fight Spammers!
The reason why I say not to, is it takes away from the Mattel Spin Machine.
Mattel/MSI was claiming that CPHack destroyed the value of the product and allowed children on porn sites. But, by not including it, it takes that spin away from them. It still can show the list.
Fight Spammers!
That's why title insurance is such a big business. :)
Fight Spammers!
One of the points made, is that a lawyer is not required to take every case that comes through the door, they are not a gas station attendant.
Even in house counsel is not required to file every case that management orders.
That is why they have FCRP 11, though it is not enforced enough.
You also left out that if a judge can order a lawyer to take a case. And while in a case, a lawyer may have to request permission to leave the case.
Fight Spammers!
I was not critizing them. I was critizing all the people who said that they wimped out . That it's easy to be an armchair quarterback.
I also was pointing out that I am not, that I have fought the monster and lived to tell about it. They just didn't want me to.
Fight Spammers!
A lawyer dies and is at the pearly gates.
St. Peters: "Well, you have had a good 70 year life."
The laywer:"70?? But I am 35!"
St. Peters:"Your billing records, it shows that you must be 70 years old."
Fight Spammers!
So, does the GPL hold? Or does the good faith following of their instructions hold?
Fight Spammers!
There are somethings going on behind the scenes that I can't discusss yet.
Fight Spammers!
They gave Mattel what remains of their rights.
Fight Spammers!
1. Threaten legal action.
2. Take legal action, even if baseless.
3. Offer to drop it for confidentiality agreement.
4. Litigate until a decision is made.
5. Drop it, with threat of comming back later.
This is what they have done with me. I suspect this is what they did with Barbie Benson, and Eddie and Mathew.
Fight Spammers!
99 percent of lawyers give the rest a bad name.
Words of Steven Wright...
This is the USA. You have no rights here unless large companies and rich people decide otherwise.
(And don't moderate me down as a troll either. I think it has been demonstrated numerous times that large companies or anyone with enough money can toss your so-called-rights in the s**tcan whenever it suits them.)
Suzuran is mad at the world today... Bleh. v_v
"When you have a defective product, you find ways to improve it. Mattel is wasting time, energy and money in a futile attempt to put the decryption genie back in the bottle."
Defective Product is fairly interesting language. It has all kind of nasty implications. Picture this scenerio....
You discover that you childs Mattel(R) brand truck has a defect where a wheel can be easily broken off and swallowed, possibly causing choking. You attempt it to describe the breaking and choking process to others but you are incapible of expressing exactly what is happening. You decide to make a video of the process to better explain what you could not describe otherwise. You put said video on the internet and submit your link to search engines. Several weeks later you recieve a letter to appear in court! You are being sued for 10 million dollars on the grounds that you used their trademark without permission.
You can see the use of technology in CPHack playing the same role. Citizen consumer advocites using some technological media in order to express the failure of a product, and being prosecuted for it.
It seems pretty clear that Mattel is even concerned with ethics or product quality, just apperances. With that type of attitude I don't intend to buy ANYTHING for young children from them.
Read this fast, it will soon be censored by CyberPatrol. :( ...hell I'm going to make that my .sig!
Novel theory: Modern Man evolved from psychopath
"The only reason this will come back to bite them is because they assigned the rights to the general public"
... except, they didn't assign their rights to the general public--`GPL' is not the same as `public domain'.
The GPL entitles the licensee to use, modify, and redistribute the source code, optionally accompanied by binaries. That's it.
The licensee does not have the right to distributes lone binaries or binaries linked against proprietary libraries; the licensee does not have the right to sublicense or in other ways change the license of any part of the software. The licensee does not have the right to do anything that would restrict the future liberty of the software(-users).
The copyright-holder of the software, on the other hand, does have the right to do everything listed above.
What would happen in a situation with the traditional `you can use it, and that's it' license?
With almost any license, licensees get usage-rights, so any statement by almost any author that it has `all rights to the software, exclusively' sounds less than entirely valid.
Once you've given something to someone, under any license that doesn't state `we can revoke this license', you can't just take it back, can you?
As far as simple redistribution is concerned (as in this case), how is the GPL different than any other freeware license?
-rozzin.
But it does say: "You are allowed to mirror this document and the related files anywhere you see fit." Which is what I am doing :)
There is one file -Unit1.pas- which does say "CPHack v0.1.0 by Eddy L O Jansson / Released under the GPL" although the GPL is not included in the package.
Besides the obvious barbies and board games, what else does MAttel make? I don't particularly want to buy anything they're making, period.
Returned Peace Corps IT Volunteer
It seems that signing that settlement may have been a bad idea on behalf of the hackers.
If they did indeed sign contracts stating that they were the 'sole proprietors' of all rights to the software then they have clearly done so falsely, as they extended rights to every single person that downloaded it.
What does this mean for them? Will they be subject to (I imagine rather hideous) penalty clauses in the contract. Or will they be back in front of the judge with the old charges plus whatever breaches of contract law they have made?
The fact that the ACLU lawyers were surprised in yesterdays story is a bad sign, surely if the lawyers had seen the settlements they wouldn't have let these guys sign an (IM undeducated O) obviously false statement.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Umm...why the hell would Mattel release any version of the program, closed-source or not? The whole reason they're fighting this thing is to keep it away from the public. They don't want the rights so they can turn around and release it themselves. What would be the point in Mattel giving out the tool that shows the problems with their product?
"That's Tron. He fights for the Users."
As I understand this, GPL code is *very* similar to land which has had an environmental easement put on it. The owner voluntarily places an irrevokable covenant on his land that prohibits it ever being used for development, agricultural use, whatever. This type of restriction is widely used by small farmers/ranchers to protect their land as cities encroach (preventing forced sales due to high property taxes), and environmentalists who can protect more land for a given amount of money given cooperative sellers (who often set aside a small area for a "wilderness" cabin).
HE STILL OWNS THE LAND. HE CAN STILL SELL THE LAND.
If someone buys the land hoping to put up condos, then is upset to discover the environmental easement on it, it's his own damn fault for not checking the public records to verify no easement exists on the land.
Likewise, anyone "buying" open source code, *or code they merely suspect might be open source*, has the onus on them to check the *public* code to determine if it's been GPL'd. It's not like this is a hidden attribute of the code. They may still wish to buy the code, e.g., to release a subsequent commercial version based on this code, but they can't claim that they didn't know they couldn't retract all distributed copies.
The *only* question in this case is if *one* 1-line comment is sufficient legal notice. It probably isn't. But the same standard would be used on *any* code, commercial or open source. That is why most of us are careful to *always* include full boilerplate on *all* source files, both open and closed source.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
They didn't extend the rights, they licensed the use. It's a very important distinction and one that has just screwed Mattel. The GPL maintains the original authors rights over the software. In fact, the original author may remove the GPL from future versions, but they can't take away the license already granted.
--GnrcMan--
You see, if someone...say, the EFF...were to put the cphack sources up for download, and Microworks were to threaten to sue them... then (IANAL) it seems to me that the EFF would now have grounds to sue _Microworks_ - for violation of contract. And it seems to me the first order of business would be to point out the irrevocable nature of the GPL to the judge and get themselves one of corporate America's favorite legal toys: a restraining order telling Microworks to stop harrassing their licensees...
[...]that this is a basic issue of license in general, and not the GPL?
You understand now? It wouldnt matter if it was released under the BSD license or a use-only license, this is not a test of the license used but of licenses in general.
Think... It aint illegal yet.
Tomorrow will be cancelled due to lack of interest
Replying to sorehands, arker, and Ioldanach at once,
sorehands:
"do whatever you want with this" is a pretty broad license--probably all the way to public domain. Someone receiving under this license before the assignment to mattel was publicised could keep doing so.
Additinally, the claim of GPL'ing means that someone receiving before the assignment could take under the GPL (or a quasi-GPL license).
Either license is valid, and wouldn't be revoked under the later assignment.
Arker:
generally, a licensing is not an assignment of rights--especially since the license was exclusive. While licensing, the authors could continue issue under another license (proprietary, perhaps). They can't do this after they assign their rights, which are what had previously let them license.
Ioldanach:
What matters isn't that it was GPL, but the fact of licensure under any license at all. This turns on ancient legal principals rather than the particulars of the GPL.
hawk, esq.
No one, including mattel, is questioning the validity of the GPL - but reguardless of a product or piece of software`s liscense, if it violates copyrights, trademarks and/or patents then That particular product/piece of software can be 'outlawed' and all users CAN be forced to stop using the product.
For example, If I were to, oh, copy the source code of windows from a server at microsoft, then released it under the 'GPL' - and the courts decided to outlaw my software (as they would have every right to do) - then it wouldn't be the GPL being questioned, it would be the Original intelectual property rights of myself that came in question. Since I did not have the right to distribute the software, its illegal for me to do so, under any liscense.
Mind you, what these guys did via reverse engineering is Not what I would consider to be wrong and/or a punishable offense... but the courts have put up an injunction, and that injunction is against the original creators - it nulifies thier rights to distribute the software. Since they have lost the right to do so, then the GPL they granted to the software is itself invalid IN THIS CASE ONLY due to the authors not holding the intelectual rights (according to the courts) in the first place...
man is machine
Mattel could change the code slightly and release it closed-source.
Another thing, Mattel is a US company and the programmers were not US citizens. How is it possible to sue foreign programmers in US courts? Sounds like they're trying to push US law onto people who aren't in the US.
US businesses that currently accept chip and PIN/signature
And miss the whole TQM craze?
OK, maybe TQM is passe these days, but we should have learned at least a few things about product quality.
(1) Understand the user's requirements.
(2) Understand how your actions result in a product which does or does not meet customer needs.
(3) When you aren't meeting customer needs, accept that this is true and find a way to improve your performance.
Basically, it sounds like Cyberpatrol doesn't accurately enforce the policies described to the user, and is easily circumventable. I'd call this a defective product.
When you have a defective product, you find ways to improve it. Mattel is wasting time, energy and money in a futile attempt to put the decryption genie back in the bottle. They can subpoena until their blue in the face, but they are facing an exponential spread of the decryption software which they can only meet with an exponential increase in their legal fees. In the end, it isn't about serving their users, but hiding the defects in the product from them.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
They didn't assign the rights, they licenced the use. The GPL is not an assignment of copy-rights, it's a license granting permission to do something that one normally couldn't do. Mattel can certanly prohibit the release of all future versions of CPHack written by Mattel, but they are SOL as far as what's currently out there.
--GnrcMan--
If you GPL something, you can still sell the code to someone under a non-exclusive license, but you cannot transfer exclusive ownership in the way the settlement appears to have done.
I suspect this was done unintentionally however - presented with a settlement document full of legalese, it wouldn't have occured to me to look for this problem. Neither is it likely to occur to most mainstream lawyers who might not be familiar with the implications of the GPL.
The lesson for the rest of us is, make sure you have the right to distribute your code before you GPL it, and if someone does prosecute, make sure they know it has already been licensed to others.
Kind of interesting. I'm a huge supporter of the GPL, but it looks like it could come back and bite these programmers in the ass. Basically, they can "give" Mattel the rights to the program, but anyone who had already downloaded cphack and accepted the GPL owns the rights to their copy of the software and they are free to distribute and modify it how they choose.
Anyone have any ideas how to prevent this from happening again in the future?
kwsNI
Now, since it was GPL'd, take out the password decryption (so they can't argue that you are disabling the product), and publish it yourself if you dare. Then you fight Mattel and their hordes of lawyers. Will you wimp out?
That is of course if it's your position that it is legal! I'm not saying to break the law.
Talk is cheap, unless you are talking to a lawyer, then it's $200/hour.
I see everyone talking about being brave and standing up, now lets see who is full of shit.
Mattel can be beat! I won two rounds against them, I am working on winning round three against them!
It's one thing to talk a tough game, it's another thing to DO!
Fight Spammers!
I am an attorney, but I"m probably not licensed in your jurisdiction. This is not legal advice. Get that from a lawyer who is licensed in your jurisdiction if you need any.
Everyone take a breath, and slow down. Whether Mattel backs down, or litigates and loses, this will *not* be a test of the GPL.
OK, repeat after me: this is not a test of the GPL.
If this is to litigate, it's going to turn on basic contract law principles
of license and assignments. The *only* issue of the GPL that is even relevant is the ability to redistribute, which is a licenseing issue. If the facts as described in the article are correct, Mattel can't call in the existing copies. But it isn't the GPL that's stopping them; it's the license.
Did I mention that this is a basic issue of license in general, and not the GPL?
hawk, esq.
What we're loosing sight of here is exactly what ownership is. You don't have to have ownership to use / distribute something. Consider commercial software (that allows you use but not distribution) and shareware (that allows you limited use until you pay a fee and often unlimited distribution). In neither case do you own the copyright to the software - but you are licensed to perform various actions with it.
Matel obviously wanted ownership to "kill" the offending code. But the GPL is a very different kind of license; in effect, it disables this legal tactic. I'm sure Matel's lawyers weren't expecting such a hack to be licensed, much less under such a non-standard license as the GPL.
Of course, Matel's ownership of this code is not without value. They can feel free to re-license it and develop closed improvements to it under that new license. They can lock up a niche market.
That is... until OpenCPHack comes along.