From 0e4219b405c1a10e39b1a7a4690f5e291faa197b Mon Sep 17 00:00:00 2001 From: Anthony Oteri Date: Tue, 3 Oct 2023 09:36:43 -0400 Subject: [PATCH] Change License This changes the effective license from a simple Apache-2.0 license to a dual license consisting of both Apache-2.0 and the MIT license to be more compatible for use in GPL Code. The MIT license requires reproducing countless copies of the same copyright header with diffferent names in the copyright field, for every MIT library in use. The Apache license does not have this drawback. However, this is not the primary motivation for creating these issues. The Apache license also has protections from patent trolls and explicit contribuition licensing clause. However the Apache license is incompatible with GPLv2. This is why Rust is dual-licensed as MIT/Apache (the "primary" license being Apache, MIT only for GPLv2 compat), and doing so would be wise for this project. This also makes this crate suitable for inclusion and unrestricted sharing in the Rust standard distribution and other projects using dual MIT/Apache. --- .../MIT_OR_Apache_2_0__personal_.xml | 6 +++++ .idea/copyright/profiles_settings.xml | 2 +- Cargo.toml | 2 +- LICENSE => LICENSE-APACHE | 0 LICENSE-MIT | 24 ++++++++++++++++++ README.md | 18 ++++++++++++- scripts/generate-changelog.sh | 25 +++++++------------ scripts/make-release.sh | 21 ++++++---------- scripts/update-release-notes.sh | 21 ++++++---------- src/api.rs | 17 ++++--------- src/cli.rs | 17 ++++--------- src/commands.rs | 17 ++++--------- src/error.rs | 17 ++++--------- src/main.rs | 17 ++++--------- 14 files changed, 99 insertions(+), 105 deletions(-) create mode 100644 .idea/copyright/MIT_OR_Apache_2_0__personal_.xml rename LICENSE => LICENSE-APACHE (100%) create mode 100644 LICENSE-MIT diff --git a/.idea/copyright/MIT_OR_Apache_2_0__personal_.xml b/.idea/copyright/MIT_OR_Apache_2_0__personal_.xml new file mode 100644 index 0000000..d1a88f0 --- /dev/null +++ b/.idea/copyright/MIT_OR_Apache_2_0__personal_.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml index e301fa2..c5b7b23 100644 --- a/.idea/copyright/profiles_settings.xml +++ b/.idea/copyright/profiles_settings.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index ea30409..fa76d03 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ description = "A Command Line tool for interracting with the Docker Registry API readme = "README.md" repository = "https://github.com/anthonyoteri/dredge" rust-version = "1.72" -license-file = "LICENSE" +license = "MIT OR Apache-2.0" keywords = [ "docker", "registry", diff --git a/LICENSE b/LICENSE-APACHE similarity index 100% rename from LICENSE rename to LICENSE-APACHE diff --git a/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 0000000..5c6a646 --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,24 @@ +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. + diff --git a/README.md b/README.md index ecaa7f7..7922e50 100644 --- a/README.md +++ b/README.md @@ -106,4 +106,20 @@ Arguments: Options: -h, --help Print help -``` \ No newline at end of file +``` + +## License + +Licensed under either of + +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) +* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any +additional terms or conditions. + diff --git a/scripts/generate-changelog.sh b/scripts/generate-changelog.sh index d9d615d..5b93900 100755 --- a/scripts/generate-changelog.sh +++ b/scripts/generate-changelog.sh @@ -1,21 +1,14 @@ -# -# Copyright 2023 Anthony Oteri -# -# 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. -# - #!/usr/bin/bash +# +# Copyright 2023 Anthony Oteri +# +# Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be +# copied, modified, or distributed except according to those terms. +# + set -e REPO_ROOT=$(git rev-parse --show-toplevel) diff --git a/scripts/make-release.sh b/scripts/make-release.sh index ae369c1..7ebb281 100755 --- a/scripts/make-release.sh +++ b/scripts/make-release.sh @@ -1,20 +1,15 @@ +#!/usr/bin/bash + # -# Copyright 2023 Anthony Oteri +# Copyright 2023 Anthony Oteri # -# 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. +# Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be +# copied, modified, or distributed except according to those terms. # -#!/usr/bin/bash -e +set -e version=$1 previous=$2 diff --git a/scripts/update-release-notes.sh b/scripts/update-release-notes.sh index d22c882..e87aa0d 100755 --- a/scripts/update-release-notes.sh +++ b/scripts/update-release-notes.sh @@ -1,20 +1,15 @@ +#!/usr/bin/bash + # -# Copyright 2023 Anthony Oteri +# Copyright 2023 Anthony Oteri # -# 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. +# Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be +# copied, modified, or distributed except according to those terms. # -#!/usr/bin/bash +set -e REPO_ROOT=$(git rev-parse --show-toplevel) diff --git a/src/api.rs b/src/api.rs index 599a448..1a26cf1 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,17 +1,10 @@ /* - * Copyright 2023 Anthony Oteri + * Copyright 2023 Anthony Oteri * - * 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. + * Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be + * copied, modified, or distributed except according to those terms. */ use http::header; diff --git a/src/cli.rs b/src/cli.rs index 1be9423..8c206cf 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1,17 +1,10 @@ /* - * Copyright 2023 Anthony Oteri + * Copyright 2023 Anthony Oteri * - * 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. + * Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be + * copied, modified, or distributed except according to those terms. */ #![allow(unused_imports)] diff --git a/src/commands.rs b/src/commands.rs index 318f863..c112520 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -1,17 +1,10 @@ /* - * Copyright 2023 Anthony Oteri + * Copyright 2023 Anthony Oteri * - * 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. + * Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be + * copied, modified, or distributed except according to those terms. */ use std::io::Write; diff --git a/src/error.rs b/src/error.rs index a72c5f2..5f3be0a 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,17 +1,10 @@ /* - * Copyright 2023 Anthony Oteri + * Copyright 2023 Anthony Oteri * - * 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. + * Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be + * copied, modified, or distributed except according to those terms. */ #![allow(clippy::enum_variant_names)] diff --git a/src/main.rs b/src/main.rs index a7a6c6c..8a74020 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,17 +1,10 @@ /* - * Copyright 2023 Anthony Oteri + * Copyright 2023 Anthony Oteri * - * 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. + * Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be + * copied, modified, or distributed except according to those terms. */ #![deny(clippy::pedantic)]