Switch jgit library to the EDL (3-clause BSD)
commit53a2cc3f6144ddcc10954d3abf68a5b90ed95248
authorShawn O. Pearce <spearce@spearce.org>
Mon, 26 May 2008 04:01:26 +0000 (26 00:01 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 26 May 2008 04:38:27 +0000 (26 00:38 -0400)
treef2520eca933b091e5617dc2132894d04e933aa89
parent5ef1605f0a2afc0baed14bad60a5b44450ba7fbc
Switch jgit library to the EDL (3-clause BSD)

This is a machine transform of the headers in the jgit packages,
switching the license to the EDL, which is a 3-clause BSD license.
The script used (attached below) updated the copyright statements
based upon the output of git-blame, as not all copyright statements
were actually current.

This change is based upon the following emails to the Git mailing
list by myself, Robin Rosenburg and David Watson:

  http://article.gmane.org/gmane.comp.version-control.git/81585
  > From Shawn O. Pearce <spearce@spearce.org>
  >
  > Since its inception on March 6, 2006 jgit has been under the
  > GPLv2 license.  To make the library available to a wider audience
  > (including but not limited to the Eclipse Git plugin, numerous
  > Apache projects such as Ant/Maven, the Netbeans IDE, etc.) we are
  > switching to a dual license between a 3-clause BSD (the EDL)
  > and the EPL.

  http://article.gmane.org/gmane.comp.version-control.git/81604
  > From Robin Rosenberg <robin.rosenburg@dewire.com>
  >
  > I confirm this is fine with me.

  http://article.gmane.org/gmane.comp.version-control.git/81594
  > From Dave Watson <dwatson@mimvista.com>
  >
  > I have no objection to the relicense, if it will help things out.

No other parties consent is required for this change, as according
to git-blame more than 99.9% of the jgit code is owned by these
three individuals.

Confirmed-by: Robin Rosenberg <robin.rosenburg@dewire.com>
Confirmed-by: Dave Watson <dwatson@mimvista.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
--8<--

open(F, '-|','git','ls-files');
while (<F>) {
chop;
next unless m,^org.spearce.jgit(?:.test)?/,;
next unless m,\.java$,;

my $old_file = $_;
my $new_file = "$old_file.license.$$";
my $header = '';
my $package = '';

open(I,'<',$old_file);
while (<I>) {
if (/^package /) {
$package = $_;
last;
}

$header .= $_;
}
die "$old_file has no package line.\n" unless $package;

if ($header =~ / - Redistributions of source code must retain/) {
close I;
next;
}

my $lineno = $.;
my $author_name;
my $author_email;
my %all_years;
my %author_years;

print "$old_file\n";
open(B,'-|','git','blame',
"-L$lineno,",
'-C','-C',
'--whitespace',
'-p',
$old_file);
while (<B>) {
chop;
if (/^author (.*)$/) {
$author_name = $1;
next;
}
if (/^author-mail (<.*>)$/) {
$author_email = $1;
next;
}
if (/^author-time (\d+)$/) {
my $year = (localtime($1))[5] + 1900;
$all_years{$year} = 1;
$author_years{"$author_name $author_email"}{$year} = 1;
}
}
close B;

open(O,'>',$new_file);
print O "/*\n";

my %used_author;
foreach my $year (sort {$a cmp $b} keys %all_years) {
foreach my $who (sort keys %author_years) {
next if $used_author{$who}++;
my $y = (sort {$b cmp $a} keys %{$author_years{$who}})[0];
print O " * Copyright (C) $y, $who\n";
}
}

print O <<'EOF';
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above
 *   copyright notice, this list of conditions and the following
 *   disclaimer in the documentation and/or other materials provided
 *   with the distribution.
 *
 * - Neither the name of the Git Development Community nor the
 *   names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior
 *   written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

EOF
print O $package;
print O while <I>;
close I;
close O;
rename($new_file, $old_file);
}
close F;
216 files changed:
README
SUBMITTING_PATCHES
org.spearce.egit-feature/feature.xml
org.spearce.jgit.test/COPYING [deleted file]
org.spearce.jgit.test/LICENSE [new file with mode: 0644]
org.spearce.jgit.test/exttst/org/spearce/jgit/lib/SpeedTestBase.java
org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0005_ShallowSpeedTest.java
org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0006_DeepSpeedTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/IndexDiffTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/IndexTreeWalkerTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/ObjectIdMapTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/ReadTreeTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0001_ObjectId.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0001_PersonIdent.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0002_Tree.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0003_Basic.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0004_PackReader.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0007_Index.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0008_testparserev.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/TreeIteratorLeafOnlyTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/TreeIteratorPostOrderTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/TreeIteratorPreOrderTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/WorkDirCheckoutTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/lib/XInputStream.java
org.spearce.jgit.test/tst/org/spearce/jgit/transport/IndexPackTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTestCase.java
org.spearce.jgit.test/tst/org/spearce/jgit/transport/RemoteConfigTest.java
org.spearce.jgit.test/tst/org/spearce/jgit/transport/URIishTest.java
org.spearce.jgit/COPYING [deleted file]
org.spearce.jgit/LICENSE [new file with mode: 0644]
org.spearce.jgit/src/org/spearce/jgit/awtui/AwtAuthenticator.java
org.spearce.jgit/src/org/spearce/jgit/awtui/CommitGraphPane.java
org.spearce.jgit/src/org/spearce/jgit/awtui/SwingCommitList.java
org.spearce.jgit/src/org/spearce/jgit/errors/CheckoutConflictException.java
org.spearce.jgit/src/org/spearce/jgit/errors/CompoundException.java
org.spearce.jgit/src/org/spearce/jgit/errors/CorruptObjectException.java
org.spearce.jgit/src/org/spearce/jgit/errors/EntryExistsException.java
org.spearce.jgit/src/org/spearce/jgit/errors/IncorrectObjectTypeException.java
org.spearce.jgit/src/org/spearce/jgit/errors/MissingObjectException.java
org.spearce.jgit/src/org/spearce/jgit/errors/NotSupportedException.java
org.spearce.jgit/src/org/spearce/jgit/errors/ObjectWritingException.java
org.spearce.jgit/src/org/spearce/jgit/errors/PackProtocolException.java
org.spearce.jgit/src/org/spearce/jgit/errors/RevWalkException.java
org.spearce.jgit/src/org/spearce/jgit/errors/RevisionSyntaxException.java
org.spearce.jgit/src/org/spearce/jgit/errors/StopWalkException.java
org.spearce.jgit/src/org/spearce/jgit/errors/SymlinksNotSupportedException.java
org.spearce.jgit/src/org/spearce/jgit/errors/TransportException.java
org.spearce.jgit/src/org/spearce/jgit/lib/AbstractIndexTreeVisitor.java
org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java
org.spearce.jgit/src/org/spearce/jgit/lib/BinaryDelta.java
org.spearce.jgit/src/org/spearce/jgit/lib/ByteArrayWindow.java
org.spearce.jgit/src/org/spearce/jgit/lib/ByteBufferWindow.java
org.spearce.jgit/src/org/spearce/jgit/lib/ByteWindow.java
org.spearce.jgit/src/org/spearce/jgit/lib/Commit.java
org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
org.spearce.jgit/src/org/spearce/jgit/lib/CoreConfig.java
org.spearce.jgit/src/org/spearce/jgit/lib/DeltaOfsPackedObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/DeltaPackedObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/DeltaRefPackedObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/FileMode.java
org.spearce.jgit/src/org/spearce/jgit/lib/FileTreeEntry.java
org.spearce.jgit/src/org/spearce/jgit/lib/ForceModified.java
org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java
org.spearce.jgit/src/org/spearce/jgit/lib/IndexDiff.java
org.spearce.jgit/src/org/spearce/jgit/lib/IndexTreeVisitor.java
org.spearce.jgit/src/org/spearce/jgit/lib/IndexTreeWalker.java
org.spearce.jgit/src/org/spearce/jgit/lib/InflaterCache.java
org.spearce.jgit/src/org/spearce/jgit/lib/LockFile.java
org.spearce.jgit/src/org/spearce/jgit/lib/MutableObjectId.java
org.spearce.jgit/src/org/spearce/jgit/lib/NullProgressMonitor.java
org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java
org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java
org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdSubclassMap.java
org.spearce.jgit/src/org/spearce/jgit/lib/ObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/ObjectWriter.java
org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java
org.spearce.jgit/src/org/spearce/jgit/lib/PackIndex.java
org.spearce.jgit/src/org/spearce/jgit/lib/PackIndexV1.java
org.spearce.jgit/src/org/spearce/jgit/lib/PackIndexV2.java
org.spearce.jgit/src/org/spearce/jgit/lib/PackedObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/PersonIdent.java
org.spearce.jgit/src/org/spearce/jgit/lib/ProgressMonitor.java
org.spearce.jgit/src/org/spearce/jgit/lib/Ref.java
org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java
org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
org.spearce.jgit/src/org/spearce/jgit/lib/RefUpdate.java
org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java
org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryState.java
org.spearce.jgit/src/org/spearce/jgit/lib/SymlinkTreeEntry.java
org.spearce.jgit/src/org/spearce/jgit/lib/Tag.java
org.spearce.jgit/src/org/spearce/jgit/lib/TextProgressMonitor.java
org.spearce.jgit/src/org/spearce/jgit/lib/Tree.java
org.spearce.jgit/src/org/spearce/jgit/lib/TreeEntry.java
org.spearce.jgit/src/org/spearce/jgit/lib/TreeIterator.java
org.spearce.jgit/src/org/spearce/jgit/lib/TreeVisitor.java
org.spearce.jgit/src/org/spearce/jgit/lib/TreeVisitorWithCurrentDirectory.java
org.spearce.jgit/src/org/spearce/jgit/lib/Treeish.java
org.spearce.jgit/src/org/spearce/jgit/lib/UnpackedObjectCache.java
org.spearce.jgit/src/org/spearce/jgit/lib/UnpackedObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/WholePackedObjectLoader.java
org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java
org.spearce.jgit/src/org/spearce/jgit/lib/WindowCursor.java
org.spearce.jgit/src/org/spearce/jgit/lib/WindowedFile.java
org.spearce.jgit/src/org/spearce/jgit/lib/WorkDirCheckout.java
org.spearce.jgit/src/org/spearce/jgit/lib/WriteTree.java
org.spearce.jgit/src/org/spearce/jgit/pgm/Die.java
org.spearce.jgit/src/org/spearce/jgit/pgm/DiffTree.java
org.spearce.jgit/src/org/spearce/jgit/pgm/Fetch.java
org.spearce.jgit/src/org/spearce/jgit/pgm/Glog.java
org.spearce.jgit/src/org/spearce/jgit/pgm/IndexPack.java
org.spearce.jgit/src/org/spearce/jgit/pgm/Log.java
org.spearce.jgit/src/org/spearce/jgit/pgm/LsRemote.java
org.spearce.jgit/src/org/spearce/jgit/pgm/LsTree.java
org.spearce.jgit/src/org/spearce/jgit/pgm/Main.java
org.spearce.jgit/src/org/spearce/jgit/pgm/MergeBase.java
org.spearce.jgit/src/org/spearce/jgit/pgm/RevList.java
org.spearce.jgit/src/org/spearce/jgit/pgm/RevWalkTextBuiltin.java
org.spearce.jgit/src/org/spearce/jgit/pgm/ShowRef.java
org.spearce.jgit/src/org/spearce/jgit/pgm/TextBuiltin.java
org.spearce.jgit/src/org/spearce/jgit/revplot/AbstractPlotRenderer.java
org.spearce.jgit/src/org/spearce/jgit/revplot/PlotCommit.java
org.spearce.jgit/src/org/spearce/jgit/revplot/PlotCommitList.java
org.spearce.jgit/src/org/spearce/jgit/revplot/PlotLane.java
org.spearce.jgit/src/org/spearce/jgit/revplot/PlotWalk.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/AbstractRevQueue.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/BlockObjQueue.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/BlockRevQueue.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/BoundaryGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/DateRevQueue.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/EndGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/FIFORevQueue.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/Generator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/LIFORevQueue.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/MergeBaseGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/ObjectWalk.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/PendingGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevBlob.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevCommit.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevCommitList.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevFlag.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevFlagSet.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObject.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObjectList.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevSort.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTag.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTree.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RewriteGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/RewriteTreeFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/StartGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/TopoSortGenerator.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/AndRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/AuthorRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/CommitTimeRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/CommitterRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/MessageRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/NotRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/OrRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/PatternMatchRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/RevFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/RevFlagFilter.java
org.spearce.jgit/src/org/spearce/jgit/revwalk/filter/SubStringRevFilter.java
org.spearce.jgit/src/org/spearce/jgit/stgit/StGitPatch.java
org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
org.spearce.jgit/src/org/spearce/jgit/transport/FetchConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/FetchHeadRecord.java
org.spearce.jgit/src/org/spearce/jgit/transport/FetchProcess.java
org.spearce.jgit/src/org/spearce/jgit/transport/FetchResult.java
org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java
org.spearce.jgit/src/org/spearce/jgit/transport/PackFetchConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/PackTransport.java
org.spearce.jgit/src/org/spearce/jgit/transport/PacketLineIn.java
org.spearce.jgit/src/org/spearce/jgit/transport/PacketLineOut.java
org.spearce.jgit/src/org/spearce/jgit/transport/PushConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/RefSpec.java
org.spearce.jgit/src/org/spearce/jgit/transport/RemoteConfig.java
org.spearce.jgit/src/org/spearce/jgit/transport/SideBandInputStream.java
org.spearce.jgit/src/org/spearce/jgit/transport/SshSessionFactory.java
org.spearce.jgit/src/org/spearce/jgit/transport/TagOpt.java
org.spearce.jgit/src/org/spearce/jgit/transport/TrackingRefUpdate.java
org.spearce.jgit/src/org/spearce/jgit/transport/Transport.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportBundle.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportGitAnon.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportGitSsh.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportHttp.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportLocal.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportSftp.java
org.spearce.jgit/src/org/spearce/jgit/transport/URIish.java
org.spearce.jgit/src/org/spearce/jgit/transport/WalkFetchConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
org.spearce.jgit/src/org/spearce/jgit/transport/WalkTransport.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/AbstractTreeIterator.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/CanonicalTreeParser.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/EmptyTreeIterator.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/FileTreeIterator.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/TreeWalk.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/filter/AndTreeFilter.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/filter/NotTreeFilter.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/filter/OrTreeFilter.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/filter/PathFilter.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/filter/PathFilterGroup.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/filter/TreeFilter.java
org.spearce.jgit/src/org/spearce/jgit/util/FS.java
org.spearce.jgit/src/org/spearce/jgit/util/FS_POSIX_Java5.java
org.spearce.jgit/src/org/spearce/jgit/util/FS_POSIX_Java6.java
org.spearce.jgit/src/org/spearce/jgit/util/FS_Win32.java
org.spearce.jgit/src/org/spearce/jgit/util/FS_Win32_Cygwin.java
org.spearce.jgit/src/org/spearce/jgit/util/MutableInteger.java
org.spearce.jgit/src/org/spearce/jgit/util/NB.java
org.spearce.jgit/src/org/spearce/jgit/util/RawCharSequence.java
org.spearce.jgit/src/org/spearce/jgit/util/RawParseUtils.java
org.spearce.jgit/src/org/spearce/jgit/util/RawSubStringPattern.java