forked from jenkinsci/jenkins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
licenseCompleter.groovy
104 lines (90 loc) · 3.69 KB
/
licenseCompleter.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
* This script augments the missing license information in our dependencies.
*/
complete {
// license constants
def apacheLicense = license("The Apache Software License, Version 2.0", "http://www.apache.org/licenses/LICENSE-2.0.txt")
def cddl = license("CDDL", "http://www.sun.com/cddl/")
def lgpl = license("LGPL 2.1", "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html")
def mitLicense = license("MIT License", "http://www.opensource.org/licenses/mit-license.php")
def bsdLicense = license("BSD License", "http://opensource.org/licenses/BSD-2-Clause")
def jenkinsLicense = license("MIT License", "https://www.jenkins.io/mit-license")
def ccby = license("Creative Commons Attribution License", "http://creativecommons.org/licenses/by/2.5")
match("asm:*") {
if (dependency.licenses.isEmpty())
rewriteLicense([], license("BSD License", "http://asm.ow2.org/license.html"))
}
// Apache components
// logkit is a part of Avalon
match([
"org.apache.ant:*",
"commons-jelly:*",
"log4j:*",
"avalon-framework:*",
"logkit:logkit",
"oro:oro",
"commons-codec:*",
"commons-beanutils:*",
"commons-net:*",
"commons-cli:*",
"*:commons-jelly",
"org.jvnet.hudson:commons-jelly-tags-define",
"slide:slide-webdavlib"
]) {
if (dependency.licenses.isEmpty())
rewriteLicense([], apacheLicense)
}
// GlassFish components are dual-licensed between CDDL and GPL+Classpath Exception
// we elect to take them under CDDL.
// note that central has a different POM from m.g.o-public (http://repo2.maven.org/maven2/javax/mail/mail/1.4/mail-1.4.pom
// vs http://maven.glassfish.org/content/groups/public/javax/mail/mail/1.4/mail-1.4.pom), so we aren't using rewriteLicense here
match([
"javax.mail:*",
"org.jvnet.hudson:activation",
"org.jvnet:tiger-types",
"javax.servlet:jstl",
"javax.xml.stream:stax-api"
]) {
if (dependency.licenses.isEmpty())
dependency.licenses=[cddl]
}
/* TODO
// according to JSR-250 1.0-20050927.133100 POM, it came from JAX-WS, which is under CDDL.
match("javax.annotation:jsr250-api") {
rewriteLicense([], cddl)
}
*/
match("org.jenkins-ci.dom4j:dom4j") {
rewriteLicense([], license("BSD License", "http://dom4j.sourceforge.net/dom4j-1.6.1/license.html"))
}
match(["org.jenkins-ci.groovy:*"]) {
// see https://groovy-lang.org/faq.html
// see http://jmdns.sourceforge.net/license.html
rewriteLicense([], apacheLicense)
}
match("relaxngDatatype:relaxngDatatype") {
// see http://sourceforge.net/projects/relaxng/
rewriteLicense([], bsdLicense)
}
match(["org.kohsuke.jinterop:j-interop", "org.kohsuke.jinterop:j-interopdeps"]) {
rewriteLicense([license("MIT license", "http://www.opensource.org/licenses/mit-license.php")], license("LGPL v3", "http://www.j-interop.org/license.html"))
}
// these are our own modules that have license in the trunk but not in these released versions
// as we upgrade them, we should just pick up the license info from POM
match(["*:maven2.1-interceptor", "*:lib-jenkins-maven-embedder"]) {
rewriteLicense([], jenkinsLicense)
}
match("org.codehaus.plexus:plexus-interactivity-api") {
rewriteLicense([], mitLicense)
}
match("de.zeigermann.xml:xml-im-exporter:1.1") {
rewriteLicense([], license("BSD License", "http://xml-im-exporter.cvs.sourceforge.net/viewvc/xml-im-exporter/xml-im-exporter/Copying.txt?revision=1.3&view=markup"))
}
match("*:sezpoz") {
// GPL-phobia people react to "GPL" strongly, so accept sezpoz under CDDL
rewriteLicense([license("CDDL or GPL 2 with Classpath Exception", null)], cddl)
}
match("net.jcip:jcip-annotations") {
rewriteLicense([], ccby)
}
}