From 20b62c649142972d75ad2ecabed1521ef5ed508e Mon Sep 17 00:00:00 2001 From: alfonsodelavega Date: Tue, 1 Aug 2023 13:26:08 +0200 Subject: [PATCH] Add license headers to generated codebases --- plantuml-asl/asl-license.txt | 66 +++++++++++++++ plantuml-asl/build.gradle.kts | 3 +- plantuml-bsd/bsd-license.txt | 78 ++++++++++++++++++ plantuml-bsd/build.gradle.kts | 3 +- plantuml-epl/build.gradle.kts | 3 +- plantuml-epl/epl-license.txt | 70 ++++++++++++++++ plantuml-lgpl/build.gradle.kts | 3 +- plantuml-lgpl/lgpl-license.txt | 64 ++++++++++++++ plantuml-mit/build.gradle.kts | 3 +- plantuml-mit/mit-license.txt | 73 ++++++++++++++++ sjpp.jar | Bin 13704 -> 14851 bytes .../sourceforge/plantuml/version/License.java | 19 ++++- 12 files changed, 377 insertions(+), 8 deletions(-) create mode 100644 plantuml-asl/asl-license.txt create mode 100644 plantuml-bsd/bsd-license.txt create mode 100644 plantuml-epl/epl-license.txt create mode 100644 plantuml-lgpl/lgpl-license.txt create mode 100644 plantuml-mit/mit-license.txt diff --git a/plantuml-asl/asl-license.txt b/plantuml-asl/asl-license.txt new file mode 100644 index 000000000..43e70b6fe --- /dev/null +++ b/plantuml-asl/asl-license.txt @@ -0,0 +1,66 @@ +/* +======================================================================= + * | + * | PlantUML : a free UML diagram generator + * | + * +======================================================================= + * + * (C) Copyright 2009-2024, Arnaud Roques + * + * Project Info: https://plantuml.com + * + * If you like this project or if you find it useful, you can support us at: + * + * https://plantuml.com/patreon (only 1$ per month!) + * https://plantuml.com/liberapay (only 1€ per month!) + * https://plantuml.com/paypal + * + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the Apache Software License. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * PlantUML can occasionally display sponsored or advertising messages. Those + * messages are usually generated on welcome or error images and never on + * functional diagrams. + * See https://plantuml.com/professional if you want to remove them + * + * Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML + * are owned by the author of their corresponding sources code (that is, their + * textual description in PlantUML language). Those images are not covered by + * this APACHE license. + * + * The generated images can then be used without any reference to the APACHE license. + * It is not even necessary to stipulate that they have been generated with PlantUML, + * although this will be appreciated by the PlantUML team. + * + * There is an exception : if the textual description in PlantUML language is also covered + * by any license, then the generated images are logically covered + * by the very same license. + * + * This is the IGY distribution (Install GraphViz by Yourself). + * You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable + * (see https://plantuml.com/graphviz-dot ) + * + * Icons provided by OpenIconic : https://useiconic.com/open + * Archimate sprites provided by Archi : http://www.archimatetool.com + * Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML + * Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites + * ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen + * ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman + * CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli + * Brotli (c) by the Brotli Authors https://github.com/google/brotli + * Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes + * Twemoji (c) by Twitter at https://twemoji.twitter.com/ + * + */ \ No newline at end of file diff --git a/plantuml-asl/build.gradle.kts b/plantuml-asl/build.gradle.kts index 8740bc05a..9832a7912 100644 --- a/plantuml-asl/build.gradle.kts +++ b/plantuml-asl/build.gradle.kts @@ -105,7 +105,8 @@ val preprocessLicenceAntTask by tasks.registering() { "sjpp"( "src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath, "dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath, - "define" to "__ASL__" + "define" to "__ASL__", + "header" to project.layout.buildDirectory.file("../asl-license.txt").get().asFile.absolutePath ) } } diff --git a/plantuml-bsd/bsd-license.txt b/plantuml-bsd/bsd-license.txt new file mode 100644 index 000000000..ba0f633ff --- /dev/null +++ b/plantuml-bsd/bsd-license.txt @@ -0,0 +1,78 @@ +/* +======================================================================= + * | + * | PlantUML : a free UML diagram generator + * | + * +======================================================================= + * + * (C) Copyright 2009-2024, Arnaud Roques + * + * Project Info: https://plantuml.com + * + * If you like this project or if you find it useful, you can support us at: + * + * https://plantuml.com/patreon (only 1$ per month!) + * https://plantuml.com/liberapay (only 1€ per month!) + * https://plantuml.com/paypal + * + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the Revised BSD License. + * + * 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 University of California, Berkeley 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 REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND 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. + * + * PlantUML can occasionally display sponsored or advertising messages. Those + * messages are usually generated on welcome or error images and never on + * functional diagrams. + * See https://plantuml.com/professional if you want to remove them + * + * Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML + * are owned by the author of their corresponding sources code (that is, their + * textual description in PlantUML language). Those images are not covered by + * this BSD license. + * + * The generated images can then be used without any reference to the BSD license. + * It is not even necessary to stipulate that they have been generated with PlantUML, + * although this will be appreciated by the PlantUML team. + * + * There is an exception : if the textual description in PlantUML language is also covered + * by any license, then the generated images are logically covered + * by the very same license. + * + * This is the IGY distribution (Install GraphViz by Yourself). + * You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable + * (see https://plantuml.com/graphviz-dot ) + * + * Icons provided by OpenIconic : https://useiconic.com/open + * Archimate sprites provided by Archi : http://www.archimatetool.com + * Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML + * Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites + * ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen + * ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman + * CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli + * Brotli (c) by the Brotli Authors https://github.com/google/brotli + * Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes + * Twemoji (c) by Twitter at https://twemoji.twitter.com/ + * + */ \ No newline at end of file diff --git a/plantuml-bsd/build.gradle.kts b/plantuml-bsd/build.gradle.kts index 64632036a..b0ea6582c 100644 --- a/plantuml-bsd/build.gradle.kts +++ b/plantuml-bsd/build.gradle.kts @@ -105,7 +105,8 @@ val preprocessLicenceAntTask by tasks.registering() { "sjpp"( "src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath, "dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath, - "define" to "__BSD__" + "define" to "__BSD__", + "header" to project.layout.buildDirectory.file("../bsd-license.txt").get().asFile.absolutePath ) } } diff --git a/plantuml-epl/build.gradle.kts b/plantuml-epl/build.gradle.kts index f110de628..5d9bcc819 100644 --- a/plantuml-epl/build.gradle.kts +++ b/plantuml-epl/build.gradle.kts @@ -105,7 +105,8 @@ val preprocessLicenceAntTask by tasks.registering() { "sjpp"( "src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath, "dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath, - "define" to "__EPL__" + "define" to "__EPL__", + "header" to project.layout.buildDirectory.file("../epl-license.txt").get().asFile.absolutePath ) } } diff --git a/plantuml-epl/epl-license.txt b/plantuml-epl/epl-license.txt new file mode 100644 index 000000000..d47c9ab36 --- /dev/null +++ b/plantuml-epl/epl-license.txt @@ -0,0 +1,70 @@ +/* +======================================================================= + * | + * | PlantUML : a free UML diagram generator + * | + * +======================================================================= + * + * (C) Copyright 2009-2024, Arnaud Roques + * + * Project Info: https://plantuml.com + * + * If you like this project or if you find it useful, you can support us at: + * + * https://plantuml.com/patreon (only 1$ per month!) + * https://plantuml.com/liberapay (only 1€ per month!) + * https://plantuml.com/paypal + * + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the Eclipse Public License. + * + * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC + * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0] + * + * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + * + * You may obtain a copy of the License at + * + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * PlantUML can occasionally display sponsored or advertising messages. Those + * messages are usually generated on welcome or error images and never on + * functional diagrams. + * See https://plantuml.com/professional if you want to remove them + * + * Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML + * are owned by the author of their corresponding sources code (that is, their + * textual description in PlantUML language). Those images are not covered by + * this EPL license. + * + * The generated images can then be used without any reference to the EPL license. + * It is not even necessary to stipulate that they have been generated with PlantUML, + * although this will be appreciated by the PlantUML team. + * + * There is an exception : if the textual description in PlantUML language is also covered + * by any license, then the generated images are logically covered + * by the very same license. + * + * This is the IGY distribution (Install GraphViz by Yourself). + * You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable + * (see https://plantuml.com/graphviz-dot ) + * + * Icons provided by OpenIconic : https://useiconic.com/open + * Archimate sprites provided by Archi : http://www.archimatetool.com + * Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML + * Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites + * ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen + * ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman + * CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli + * Brotli (c) by the Brotli Authors https://github.com/google/brotli + * Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes + * Twemoji (c) by Twitter at https://twemoji.twitter.com/ + * + */ \ No newline at end of file diff --git a/plantuml-lgpl/build.gradle.kts b/plantuml-lgpl/build.gradle.kts index e7c1411a1..98fce577b 100644 --- a/plantuml-lgpl/build.gradle.kts +++ b/plantuml-lgpl/build.gradle.kts @@ -105,7 +105,8 @@ val preprocessLicenceAntTask by tasks.registering() { "sjpp"( "src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath, "dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath, - "define" to "__LGPL__" + "define" to "__LGPL__", + "header" to project.layout.buildDirectory.file("../lgpl-license.txt").get().asFile.absolutePath ) } } diff --git a/plantuml-lgpl/lgpl-license.txt b/plantuml-lgpl/lgpl-license.txt new file mode 100644 index 000000000..93e279de7 --- /dev/null +++ b/plantuml-lgpl/lgpl-license.txt @@ -0,0 +1,64 @@ +/* +======================================================================= + * | + * | PlantUML : a free UML diagram generator + * | + * +======================================================================= + * + * (C) Copyright 2009-2024, Arnaud Roques + * + * Project Info: https://plantuml.com + * + * If you like this project or if you find it useful, you can support us at: + * + * https://plantuml.com/patreon (only 1$ per month!) + * https://plantuml.com/liberapay (only 1€ per month!) + * https://plantuml.com/paypal + * + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * PlantUML 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 Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see . + * + * PlantUML can occasionally display sponsored or advertising messages. Those + * messages are usually generated on welcome or error images and never on + * functional diagrams. + * See https://plantuml.com/professional if you want to remove them + * + * Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML + * are owned by the author of their corresponding sources code (that is, their + * textual description in PlantUML language). Those images are not covered by + * this LGPL license. + * + * The generated images can then be used without any reference to the LGPL license. + * It is not even necessary to stipulate that they have been generated with PlantUML, + * although this will be appreciated by the PlantUML team. + * + * There is an exception : if the textual description in PlantUML language is also covered + * by any license, then the generated images are logically covered + * by the very same license. + * + * This is the IGY distribution (Install GraphViz by Yourself). + * You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable + * (see https://plantuml.com/graphviz-dot ) + * + * Icons provided by OpenIconic : https://useiconic.com/open + * Archimate sprites provided by Archi : http://www.archimatetool.com + * Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML + * Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites + * ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen + * ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman + * CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli + * Brotli (c) by the Brotli Authors https://github.com/google/brotli + * Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes + * Twemoji (c) by Twitter at https://twemoji.twitter.com/ + * + */ \ No newline at end of file diff --git a/plantuml-mit/build.gradle.kts b/plantuml-mit/build.gradle.kts index 98d40d130..b5279c149 100644 --- a/plantuml-mit/build.gradle.kts +++ b/plantuml-mit/build.gradle.kts @@ -105,7 +105,8 @@ val preprocessLicenceAntTask by tasks.registering() { "sjpp"( "src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath, "dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath, - "define" to "__MIT__" + "define" to "__MIT__", + "header" to project.layout.buildDirectory.file("../mit-license.txt").get().asFile.absolutePath ) } } diff --git a/plantuml-mit/mit-license.txt b/plantuml-mit/mit-license.txt new file mode 100644 index 000000000..017ea1be9 --- /dev/null +++ b/plantuml-mit/mit-license.txt @@ -0,0 +1,73 @@ +/* +======================================================================= + * | + * | PlantUML : a free UML diagram generator + * | + * +======================================================================= + * + * (C) Copyright 2009-2024, Arnaud Roques + * + * Project Info: https://plantuml.com + * + * If you like this project or if you find it useful, you can support us at: + * + * https://plantuml.com/patreon (only 1$ per month!) + * https://plantuml.com/liberapay (only 1€ per month!) + * https://plantuml.com/paypal + * + * + * PlantUML is free software; you can redistribute it and/or modify it + * under the terms of the MIT License. + * + * See http://opensource.org/licenses/MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall 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. + * + * PlantUML can occasionally display sponsored or advertising messages. Those + * messages are usually generated on welcome or error images and never on + * functional diagrams. + * See https://plantuml.com/professional if you want to remove them + * + * Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML + * are owned by the author of their corresponding sources code (that is, their + * textual description in PlantUML language). Those images are not covered by + * this MIT license. + * + * The generated images can then be used without any reference to the MIT license. + * It is not even necessary to stipulate that they have been generated with PlantUML, + * although this will be appreciated by the PlantUML team. + * + * There is an exception : if the textual description in PlantUML language is also covered + * by any license, then the generated images are logically covered + * by the very same license. + * + * This is the IGY distribution (Install GraphViz by Yourself). + * You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable + * (see https://plantuml.com/graphviz-dot ) + * + * Icons provided by OpenIconic : https://useiconic.com/open + * Archimate sprites provided by Archi : http://www.archimatetool.com + * Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML + * Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites + * ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen + * ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman + * CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli + * Brotli (c) by the Brotli Authors https://github.com/google/brotli + * Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes + * Twemoji (c) by Twitter at https://twemoji.twitter.com/ + * + */ \ No newline at end of file diff --git a/sjpp.jar b/sjpp.jar index 9ada3b17ecd03eeb9d81e20de491997deb1de84e..1f2b3248d2f0b2bf2aeb7b3a391ffd7e8999d40c 100644 GIT binary patch literal 14851 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 literal 13704 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 q53v7xRsM{7e* lines = License.getCurrent().getTextFull(); + for (int line = 0; line < lines.size(); line++) { + if (line == 0) { + System.out.print("/* "); + } else { + System.out.print(" * "); + } + System.out.println(lines.get(line)); + } + System.out.println(" */"); + } + @Override public String toString() { // ::comment when __CORE__ or __MIT__ or __EPL__ or __BSD__ or __ASL__ or __LGPL__