diff --git a/Cargo.toml b/Cargo.toml index 8932df0..724a316 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "pact" version = "0.1.0" -authors = ["Jason Travis Smith "] -description = "Rust bindings for standard C functions." -license = "" -repository = "https://gitlab.com/CyberMages/Core/pact.git" -documentation = "" -keywords = ["c", "libc", "binding", "ffi", "pact", "nostd"] -build = "build.rs" edition = "2024" +description = "Rust bindings for standard C functions." +keywords = ["c", "libc", "binding", "ffi", "pact", "nostd"] +repository = "https://gitlab.com/CyberMages/Core/pact" +authors = ["Jason Travis Smith "] +build = "build.rs" +readme = "README.md" +license = "Apache-2.0" [features] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..cad616a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,174 @@ +# Apache License +Version 2.0, January 2004 + + +## TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +### 1. Definitions. + +**"License"** shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +**"Licensor"** shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +**"Legal Entity"** shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +**"You" (or "Your")** shall mean an individual or Legal Entity exercising +permissions granted by this License. + +**"Source" form** shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +**"Object" form** shall mean any form resulting from mechanical +transformation or translation of a Source form, including but not +limited to compiled object code, generated documentation, and +conversions to other media types. + +**"Work"** shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +**"Derivative Works"** shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +**"Contribution"** shall mean any work of authorship, including the +original version of the Work and any modifications or additions to that +Work or Derivative Works thereof, that is intentionally submitted to +the Licensor for inclusion in the Work by the copyright owner or by an +individual or Legal Entity authorized to submit on behalf of the +copyright owner. + +**"Contributor"** shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +### 2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor +hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, +and distribute the Work and such Derivative Works in Source or Object +form. + +### 3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor +hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those +patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that +the Work or a Contribution incorporated within the Work constitutes +direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of +the date such litigation is filed. + +### 4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works +thereof in any medium, with or without modifications, and in Source or +Object form, provided that You meet the following conditions: + +1. You must give any other recipients of the Work or Derivative Works a + copy of this License; and + +2. You must cause any modified files to carry prominent notices stating + that You changed the files; and + +3. You must retain, in the Source form of any Derivative Works that You + distribute, all copyright, patent, trademark, and attribution notices + from the Source form of the Work, excluding those notices that do not + pertain to any part of the Derivative Works; and + +4. If the Work includes a "NOTICE" text file as part of its distribution, + then any Derivative Works that You distribute must include a readable + copy of the attribution notices contained within such NOTICE file, + excluding those notices that do not pertain to any part of the + Derivative Works, in at least one of the following places: within a + NOTICE text file distributed as part of the Derivative Works; within + the Source form or documentation, if provided along with the Derivative + Works; or, within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents of the + NOTICE file are for informational purposes only and do not modify the + License. You may add Your own attribution notices within Derivative + Works that You distribute, alongside or as an addendum to the NOTICE + text from the Work, provided that such additional attribution notices + cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated +in this License. + +### 5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally +submitted for inclusion in the Work by You to the Licensor shall be +under the terms and conditions of this License, without any additional +terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +### 6. Trademarks. + +This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as +required for describing the origin of the Work and reproducing the +content of the NOTICE file. + +### 7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor +provides the Work (and each Contributor provides its Contributions) on +an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +express or implied, including, without limitation, any warranties or +conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR +A PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +### 8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including +negligence), contract, or otherwise, unless required by applicable law +(such as deliberate and grossly negligent acts) or agreed to in writing, +shall any Contributor be liable to You for damages, including any direct, +indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use +the Work (including but not limited to damages for loss of goodwill, work +stoppage, computer failure or malfunction, or any and all other commercial +damages or losses), even if such Contributor has been advised of the +possibility of such damages. + +### 9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose +to offer, and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this License. +However, in accepting such obligations, You may act only on Your own behalf +and on Your sole responsibility, not on behalf of any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor +harmless for any liability incurred by, or claims asserted against, such +Contributor by reason of your accepting any such warranty or additional +liability. diff --git a/README.md b/README.md index f7d100c..07e99c4 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,18 @@ functions that Rust requires for LLVM. These are: Activates weak linkage on ELF objects. This is only useful when combined with the 'no_mem_manip' feature. + +--- + +## Copyright & License + +Copyright 2017 CyberMages LLC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this library 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 diff --git a/build.rs b/build.rs index 2138fa0..b509c70 100644 --- a/build.rs +++ b/build.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + use std::env; use std::ffi::OsString; use std::path::PathBuf; diff --git a/src/c.rs b/src/c.rs index b2efc8a..b2f7558 100644 --- a/src/c.rs +++ b/src/c.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + //! Handle defining the external functions from what ever C library is //! being linked against. These will use the C99 definitions so that //! this library is as up-to-date as it can be. diff --git a/src/c/errno.rs b/src/c/errno.rs index c7265ce..e4e773d 100644 --- a/src/c/errno.rs +++ b/src/c/errno.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + //use weave::Error; use binding::CInt; diff --git a/src/c/math.rs b/src/c/math.rs index 91849f0..2aac3ff 100644 --- a/src/c/math.rs +++ b/src/c/math.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + use binding::{CFloat, CDouble, CInt}; diff --git a/src/c/stddef.rs b/src/c/stddef.rs index 9470882..02169eb 100644 --- a/src/c/stddef.rs +++ b/src/c/stddef.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + /// This defines the size_t type. #[allow(non_camel_case_types)] pub type size_t = usize; diff --git a/src/c/stdio.rs b/src/c/stdio.rs index 1845ad7..6e6ad9e 100644 --- a/src/c/stdio.rs +++ b/src/c/stdio.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + use binding::{CChar, CInt}; diff --git a/src/c/stdlib.rs b/src/c/stdlib.rs index f8a4458..d79ab9b 100644 --- a/src/c/stdlib.rs +++ b/src/c/stdlib.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + use binding::CVoid; diff --git a/src/c/string.rs b/src/c/string.rs index 126244c..8e2613e 100644 --- a/src/c/string.rs +++ b/src/c/string.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + use binding::{CChar, CInt}; use crate::stddef::{size_t, wchar_t}; diff --git a/src/c/time.rs b/src/c/time.rs index 07812fc..4340db4 100644 --- a/src/c/time.rs +++ b/src/c/time.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + use binding::{CInt, CLong}; diff --git a/src/lib.rs b/src/lib.rs index d694bca..7ea9ded 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + //! // Handle using the core or the std of Rust depending on the chosen feature. diff --git a/src/mem.rs b/src/mem.rs index c630e5c..b97f03f 100644 --- a/src/mem.rs +++ b/src/mem.rs @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. + //! This section deals with the memory manipulation functions. These should //! be in the string module inside the rust module to more closely match //! the 'C' library, but the no library feature needs them as well. diff --git a/src/rust.rs b/src/rust.rs index e69de29..401999c 100644 --- a/src/rust.rs +++ b/src/rust.rs @@ -0,0 +1,3 @@ +// SPDX-License-Identifier: Apache-2.0 +// Sealed with Magistamp. +