license detection: Include the UPL license (#25152)
For projects such as https://github.com/roc-lang/roc that uses this license. Release Notes: - N/A
This commit is contained in:
parent
086f002f44
commit
486e106205
1 changed files with 135 additions and 1 deletions
|
@ -5,7 +5,7 @@ pub const LICENSE_FILES_TO_CHECK: &[&str] = &["LICENSE", "LICENCE", "LICENSE.txt
|
||||||
|
|
||||||
pub fn is_license_eligible_for_data_collection(license: &str) -> bool {
|
pub fn is_license_eligible_for_data_collection(license: &str) -> bool {
|
||||||
// TODO: Include more licenses later (namely, Apache)
|
// TODO: Include more licenses later (namely, Apache)
|
||||||
for pattern in [MIT_LICENSE_REGEX, ISC_LICENSE_REGEX] {
|
for pattern in [MIT_LICENSE_REGEX, ISC_LICENSE_REGEX, UPL_LICENSE_REGEX] {
|
||||||
let regex = Regex::new(pattern.trim()).unwrap();
|
let regex = Regex::new(pattern.trim()).unwrap();
|
||||||
if regex.is_match(license.trim()) {
|
if regex.is_match(license.trim()) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -56,6 +56,44 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE\.$
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE\.$
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
|
const UPL_LICENSE_REGEX: &str = r#"
|
||||||
|
Copyright.*?
|
||||||
|
|
||||||
|
The Universal Permissive License.*?
|
||||||
|
|
||||||
|
Subject to the condition set forth below, permission is hereby granted to any person
|
||||||
|
obtaining a copy of this software, associated documentation and/or data \(collectively
|
||||||
|
the "Software"\), free of charge and under any and all copyright rights in the
|
||||||
|
Software, and any and all patent rights owned or freely licensable by each licensor
|
||||||
|
hereunder covering either \(i\) the unmodified Software as contributed to or provided
|
||||||
|
by such licensor, or \(ii\) the Larger Works \(as defined below\), to deal in both
|
||||||
|
|
||||||
|
\(a\) the Software, and
|
||||||
|
|
||||||
|
\(b\) any piece of software and/or hardware listed in the lrgrwrks\.txt file if one is
|
||||||
|
included with the Software \(each a "Larger Work" to which the Software is
|
||||||
|
contributed by such licensors\),
|
||||||
|
|
||||||
|
without restriction, including without limitation the rights to copy, create
|
||||||
|
derivative works of, display, perform, and distribute the Software and make, use,
|
||||||
|
sell, offer for sale, import, export, have made, and have sold the Software and the
|
||||||
|
Larger Work\(s\), and to sublicense the foregoing rights on either these or other
|
||||||
|
terms\.
|
||||||
|
|
||||||
|
This license is subject to the following condition:
|
||||||
|
|
||||||
|
The above copyright notice and either this complete permission notice or at a minimum
|
||||||
|
a reference to the UPL must be included in all copies or substantial portions of the
|
||||||
|
Software\.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT\. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
|
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||||
|
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\.$
|
||||||
|
"#;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use unindent::unindent;
|
use unindent::unindent;
|
||||||
|
@ -210,4 +248,100 @@ mod tests {
|
||||||
|
|
||||||
assert!(!is_license_eligible_for_data_collection(&example_license));
|
assert!(!is_license_eligible_for_data_collection(&example_license));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_upl_positive_detection() {
|
||||||
|
let example_license = unindent(
|
||||||
|
r#"
|
||||||
|
Copyright (c) 2025, John Doe
|
||||||
|
|
||||||
|
The Universal Permissive License (UPL), Version 1.0
|
||||||
|
|
||||||
|
Subject to the condition set forth below, permission is hereby granted to any person
|
||||||
|
obtaining a copy of this software, associated documentation and/or data (collectively
|
||||||
|
the "Software"), free of charge and under any and all copyright rights in the
|
||||||
|
Software, and any and all patent rights owned or freely licensable by each licensor
|
||||||
|
hereunder covering either (i) the unmodified Software as contributed to or provided
|
||||||
|
by such licensor, or (ii) the Larger Works (as defined below), to deal in both
|
||||||
|
|
||||||
|
(a) the Software, and
|
||||||
|
|
||||||
|
(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is
|
||||||
|
included with the Software (each a "Larger Work" to which the Software is
|
||||||
|
contributed by such licensors),
|
||||||
|
|
||||||
|
without restriction, including without limitation the rights to copy, create
|
||||||
|
derivative works of, display, perform, and distribute the Software and make, use,
|
||||||
|
sell, offer for sale, import, export, have made, and have sold the Software and the
|
||||||
|
Larger Work(s), and to sublicense the foregoing rights on either these or other
|
||||||
|
terms.
|
||||||
|
|
||||||
|
This license is subject to the following condition:
|
||||||
|
|
||||||
|
The above copyright notice and either this complete permission notice or at a minimum
|
||||||
|
a reference to the UPL must be included in all copies or substantial portions of the
|
||||||
|
Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
|
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||||
|
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
"#
|
||||||
|
.trim(),
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(is_license_eligible_for_data_collection(&example_license));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_upl_negative_detection() {
|
||||||
|
let example_license = unindent(
|
||||||
|
r#"
|
||||||
|
UPL License
|
||||||
|
|
||||||
|
Copyright (c) 2024, John Doe
|
||||||
|
|
||||||
|
The Universal Permissive License (UPL), Version 1.0
|
||||||
|
|
||||||
|
Subject to the condition set forth below, permission is hereby granted to any person
|
||||||
|
obtaining a copy of this software, associated documentation and/or data (collectively
|
||||||
|
the "Software"), free of charge and under any and all copyright rights in the
|
||||||
|
Software, and any and all patent rights owned or freely licensable by each licensor
|
||||||
|
hereunder covering either (i) the unmodified Software as contributed to or provided
|
||||||
|
by such licensor, or (ii) the Larger Works (as defined below), to deal in both
|
||||||
|
|
||||||
|
(a) the Software, and
|
||||||
|
|
||||||
|
(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if one is
|
||||||
|
included with the Software (each a "Larger Work" to which the Software is
|
||||||
|
contributed by such licensors),
|
||||||
|
|
||||||
|
without restriction, including without limitation the rights to copy, create
|
||||||
|
derivative works of, display, perform, and distribute the Software and make, use,
|
||||||
|
sell, offer for sale, import, export, have made, and have sold the Software and the
|
||||||
|
Larger Work(s), and to sublicense the foregoing rights on either these or other
|
||||||
|
terms.
|
||||||
|
|
||||||
|
This license is subject to the following condition:
|
||||||
|
|
||||||
|
The above copyright notice and either this complete permission notice or at a minimum
|
||||||
|
a reference to the UPL must be included in all copies or substantial portions of the
|
||||||
|
Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
|
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||||
|
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
This project is dual licensed under the ISC License and the MIT License.
|
||||||
|
"#
|
||||||
|
.trim(),
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(!is_license_eligible_for_data_collection(&example_license));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue