├── .config
└── nvim
│ └── ftplugin
│ └── c.lua
├── .editorconfig
├── .gitattributes
├── .private
└── .gitkeep
├── .vim
└── coc-settings.json
├── .vscode
├── c_cpp_properties.json
├── cosmo-project.code-workspace
├── launch.json
├── settings.json
└── tasks.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Doxyfile
├── LICENSE
├── Makefile
├── README.md
├── SECURITY.md
├── SUPPORT.md
├── bin
└── .gitkeep
├── build
└── .gitkeep
├── cosmo-project.zip
├── docs
├── .gitkeep
└── draft
│ └── licenses
│ ├── AGPL-3.0.txt
│ ├── Apache-2.0-License.txt
│ ├── BSD-2Clause-Simplified-License.txt
│ ├── BSD-3Clause-New-License.txt
│ ├── CDDL.txt
│ ├── EclipsePublicLicense.txt
│ ├── GPL-2.txt
│ ├── GPL-3.txt
│ ├── LGPL-2.1.txt
│ ├── LGPL-3.0.txt
│ ├── MIT-License.txt
│ └── Mozilla-Public-License-2.0.txt
├── examples
└── .gitkeep
├── include
└── .gitkeep
├── lib
└── .gitkeep
├── src
└── main.c
├── test
└── .gitkeep
├── third_party
└── .gitkeep
└── tools
└── .gitkeep
/.config/nvim/ftplugin/c.lua:
--------------------------------------------------------------------------------
1 | -- Neovim C filetype plugin for multi-toolchain support
2 | local api = vim.api
3 | local fn = vim.fn
4 | local lsp = vim.lsp
5 |
6 | -- Check for toolchain indicator files
7 | local function detect_toolchain()
8 | -- Check for .cosmo file to indicate Cosmopolitan toolchain
9 | if fn.filereadable('.cosmo') == 1 then
10 | return 'cosmo'
11 | end
12 |
13 | -- Default to gcc
14 | return 'gcc'
15 | end
16 |
17 | -- Set up LSP based on detected toolchain
18 | local toolchain = detect_toolchain()
19 |
20 | if toolchain == 'cosmo' then
21 | -- Cosmopolitan-specific settings
22 | lsp.buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
23 |
24 | -- Add Cosmopolitan include paths
25 | local cosmo_include = fn.getcwd() .. '/tools/cosmocc/include'
26 | api.nvim_command('setlocal path+=' .. cosmo_include)
27 |
28 | -- Set up C compiler for Cosmopolitan
29 | api.nvim_command('compiler gcc')
30 | api.nvim_command('setlocal makeprg=make\\ TOOLCHAIN=cosmo')
31 | else
32 | -- Standard GCC/Clang setup
33 | lsp.buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
34 | api.nvim_command('compiler gcc')
35 | api.nvim_command('setlocal makeprg=make')
36 | end
37 |
38 | -- Common C settings
39 | api.nvim_command('setlocal expandtab')
40 | api.nvim_command('setlocal tabstop=4')
41 | api.nvim_command('setlocal shiftwidth=4')
42 | api.nvim_command('setlocal softtabstop=4')
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Top-most EditorConfig file
2 | root = true
3 |
4 | # Common settings for all files
5 | [*]
6 | end_of_line = lf
7 | insert_final_newline = true
8 | trim_trailing_whitespace = true
9 | charset = utf-8
10 | indent_style = space
11 | indent_size = 4
12 |
13 | # Make files use tabs
14 | [Makefile]
15 | indent_style = tab
16 |
17 | # C source files
18 | [*.{c,h}]
19 | # For gcc/clang
20 | indent_size = 4
21 |
22 | # Cosmopolitan-specific settings
23 | # Can be enabled by creating a .cosmo file in the project
24 | [*.{c,h}]
25 | cpp_include_path = include
26 | cpp_standard = c23
27 |
28 | # VS Code/IDE-specific configurations are better placed in their respective config files
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.private/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/.private/.gitkeep
--------------------------------------------------------------------------------
/.vim/coc-settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "languageserver": {
3 | "c": {
4 | "command": "clangd",
5 | "filetypes": ["c"],
6 | "rootPatterns": ["compile_commands.json", ".git/"],
7 | "initializationOptions": {
8 | "fallbackFlags": ["-std=c23"]
9 | }
10 | }
11 | },
12 | "clangd.path": "clangd",
13 | "clangd.arguments": ["--background-index", "--clang-tidy"],
14 |
15 | "workspace.rootPatterns": [".git", "Makefile"]
16 | }
--------------------------------------------------------------------------------
/.vscode/c_cpp_properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations": [
3 | {
4 | "name": "GCC-Linux",
5 | "includePath": [
6 | "${workspaceFolder}/include",
7 | "${workspaceFolder}/src",
8 | "${workspaceFolder}/lib",
9 | "${workspaceFolder}/test/**"
10 | ],
11 | "defines": [],
12 | "compilerPath": "/usr/bin/gcc",
13 | "cStandard": "c23",
14 | "intelliSenseMode": "linux-gcc-x64"
15 | },
16 | {
17 | "name": "GCC-Mac",
18 | "includePath": [
19 | "${workspaceFolder}/include",
20 | "${workspaceFolder}/src",
21 | "${workspaceFolder}/lib",
22 | "${workspaceFolder}/test/**"
23 | ],
24 | "defines": [],
25 | "compilerPath": "/usr/local/bin/gcc",
26 | "cStandard": "c23",
27 | "intelliSenseMode": "macos-gcc-x64"
28 | },
29 | {
30 | "name": "GCC-Win32",
31 | "includePath": [
32 | "${workspaceFolder}/include",
33 | "${workspaceFolder}/src",
34 | "${workspaceFolder}/lib",
35 | "${workspaceFolder}/test/**"
36 | ],
37 | "defines": [],
38 | "compilerPath": "C:/MinGW/bin/gcc.exe",
39 | "cStandard": "c23",
40 | "intelliSenseMode": "windows-gcc-x86"
41 | },
42 | {
43 | "name": "Clang-Linux",
44 | "includePath": [
45 | "${workspaceFolder}/include",
46 | "${workspaceFolder}/src",
47 | "${workspaceFolder}/lib",
48 | "${workspaceFolder}/test/**"
49 | ],
50 | "defines": [],
51 | "compilerPath": "/usr/bin/clang",
52 | "cStandard": "c23",
53 | "intelliSenseMode": "linux-clang-x64"
54 | },
55 | {
56 | "name": "Clang-Mac",
57 | "includePath": [
58 | "${workspaceFolder}/include",
59 | "${workspaceFolder}/src",
60 | "${workspaceFolder}/lib",
61 | "${workspaceFolder}/test/**"
62 | ],
63 | "defines": [],
64 | "compilerPath": "/usr/bin/clang",
65 | "cStandard": "c23",
66 | "intelliSenseMode": "macos-clang-x64"
67 | },
68 | {
69 | "name": "Clang-Win32",
70 | "includePath": [
71 | "${workspaceFolder}/include",
72 | "${workspaceFolder}/src",
73 | "${workspaceFolder}/lib",
74 | "${workspaceFolder}/test/**"
75 | ],
76 | "defines": [],
77 | "compilerPath": "C:/Program Files/LLVM/bin/clang.exe",
78 | "cStandard": "c23",
79 | "intelliSenseMode": "windows-clang-x86"
80 | },
81 | {
82 | "name": "Cosmopolitan-Linux",
83 | "includePath": [
84 | "${workspaceFolder}/include",
85 | "${workspaceFolder}/src",
86 | "${workspaceFolder}/lib",
87 | "${workspaceFolder}/test/**",
88 | "${workspaceFolder}/tools/cosmocc/include"
89 | ],
90 | "defines": [],
91 | "compilerPath": "${workspaceFolder}/tools/cosmocc",
92 | "cStandard": "c23",
93 | "intelliSenseMode": "linux-clang-x64"
94 | },
95 | {
96 | "name": "Cosmopolitan-Mac",
97 | "includePath": [
98 | "${workspaceFolder}/include",
99 | "${workspaceFolder}/src",
100 | "${workspaceFolder}/lib",
101 | "${workspaceFolder}/test/**",
102 | "${workspaceFolder}/tools/cosmocc/include"
103 | ],
104 | "defines": [],
105 | "compilerPath": "${workspaceFolder}/tools/cosmocc",
106 | "cStandard": "c23",
107 | "intelliSenseMode": "macos-clang-x64"
108 | },
109 | {
110 | "name": "Cosmopolitan-Win32",
111 | "includePath": [
112 | "${workspaceFolder}/include",
113 | "${workspaceFolder}/src",
114 | "${workspaceFolder}/lib",
115 | "${workspaceFolder}/test/**",
116 | "${workspaceFolder}/tools/cosmocc/include"
117 | ],
118 | "defines": [],
119 | "compilerPath": "${workspaceFolder}/tools/cosmocc",
120 | "cStandard": "c23",
121 | "intelliSenseMode": "windows-clang-x86"
122 | }
123 | ],
124 | "version": 4
125 | }
--------------------------------------------------------------------------------
/.vscode/cosmo-project.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": ".."
5 | }
6 | ],
7 | "settings": {}
8 | }
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Debug (GCC/Clang)",
6 | "type": "cppdbg",
7 | "request": "launch",
8 | "program": "${workspaceFolder}/bin/doze",
9 | "args": [],
10 | "stopAtEntry": false,
11 | "cwd": "${workspaceFolder}",
12 | "environment": [],
13 | "externalConsole": false,
14 | "MIMode": "lldb",
15 | "preLaunchTask": "build"
16 | },
17 | {
18 | "name": "Debug (Cosmopolitan)",
19 | "type": "cppdbg",
20 | "request": "launch",
21 | "program": "${workspaceFolder}/bin/doze.com",
22 | "args": [],
23 | "stopAtEntry": false,
24 | "cwd": "${workspaceFolder}",
25 | "environment": [],
26 | "externalConsole": false,
27 | "MIMode": "gdb",
28 | "preLaunchTask": "build-cosmo"
29 | }
30 | ]
31 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.formatOnSave": true,
3 | "editor.rulers": [80],
4 | "files.associations": {
5 | "*.h": "c"
6 | },
7 | "C_Cpp.default.compilerPath": "/usr/bin/gcc",
8 | "C_Cpp.default.cStandard": "c23",
9 | "C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
10 |
11 | // Set configuration by placing a .cosmo file in the project root
12 | // If there's a .cosmo file, use Cosmopolitan settings
13 | "C_Cpp.autoAddFileAssociations": false,
14 |
15 | // Optional: Add Cosmopolitan-specific settings using a script
16 | // "C_Cpp.default.compilerPath": "${workspaceFolder}/tools/cosmocc",
17 | // "C_Cpp.default.includePath": [
18 | // "${workspaceFolder}/include",
19 | // "${workspaceFolder}/tools/cosmocc/include"
20 | // ],
21 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [
4 | {
5 | "label": "build",
6 | "type": "shell",
7 | "command": "make",
8 | "group": {
9 | "kind": "build",
10 | "isDefault": true
11 | },
12 | "problemMatcher": ["$gcc"]
13 | },
14 | {
15 | "label": "build-cosmo",
16 | "type": "shell",
17 | "command": "make TOOLCHAIN=cosmo",
18 | "group": "build",
19 | "problemMatcher": ["$gcc"]
20 | },
21 | {
22 | "label": "build-clang",
23 | "type": "shell",
24 | "command": "make TOOLCHAIN=clang",
25 | "group": "build",
26 | "problemMatcher": ["$gcc"]
27 | },
28 | {
29 | "label": "clean",
30 | "type": "shell",
31 | "command": "make clean",
32 | "group": "build",
33 | "problemMatcher": []
34 | },
35 | {
36 | "label": "run",
37 | "type": "shell",
38 | "command": "make run",
39 | "group": "build",
40 | "problemMatcher": []
41 | },
42 | {
43 | "label": "setup-cosmo",
44 | "type": "shell",
45 | "command": "make setup-cosmo",
46 | "group": "build",
47 | "problemMatcher": []
48 | }
49 | ]
50 | }
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 |
8 | ## [Unreleased]
9 |
10 | ### Added
11 |
12 | - (added)
13 |
14 | ### Changed
15 |
16 | - (changed)
17 |
18 | ### Deprecated
19 |
20 | - (deprecated)
21 |
22 | ### Removed
23 |
24 | - (removed)
25 |
26 | ### Fixed
27 |
28 | - (fixed)
29 |
30 | ### Security
31 |
32 | - (security)
33 |
34 | ## [0.1.0] - YYYY-MM-DD
35 |
36 | ### Added
37 |
38 | - Initial release.
39 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | [INSERT CONTACT METHOD].
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series
86 | of actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or
93 | permanent ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within
113 | the community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.0, available at
119 | [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
120 |
121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
122 | enforcement ladder][mozilla ladder].
123 |
124 | For answers to common questions about this code of conduct, see the FAQ at
125 | [https://www.contributor-covenant.org/faq][faq]. Translations are available
126 | at [https://www.contributor-covenant.org/translations][translations].
127 |
128 | [homepage]: https://www.contributor-covenant.org
129 | [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
130 | [mozilla ladder]: https://github.com/mozilla/diversity
131 | [faq]: https://www.contributor-covenant.org/faq
132 | [translations]: https://www.contributor-covenant.org/translations
133 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to Cosmo Project
2 |
3 | Thank you for considering contributing to this Cosmopolitan C project! This document outlines the process for contributing to the project and how to get started as a contributor.
4 |
5 | ## Code of Conduct
6 |
7 | Please read and follow our [Code of Conduct](project/CODE_OF_CONDUCT.md) to keep our community respectful and inclusive.
8 |
9 | ## Getting Started
10 |
11 | ### Prerequisites
12 |
13 | - Cosmopolitan C toolchain (cosmocc)
14 | - GCC or Clang (as alternative toolchains)
15 | - Make
16 | - Git
17 |
18 | ### Setting Up the Development Environment
19 |
20 | 1. Clone the repository
21 |
22 | ```sh
23 | git clone https://github.com/your-username/cosmo-project.git
24 | cd cosmo-project
25 | ```
26 |
27 | 2. Explore the project structure to understand the organization
28 | - `src/`: Source code files
29 | - `include/`: Header files
30 | - `test/`: Test files
31 | - `docs/`: Documentation
32 | - `examples/`: Example code
33 |
34 | 3. Build the project
35 |
36 | ```sh
37 | make
38 | ```
39 |
40 | 4. Run the project
41 |
42 | ```sh
43 | make run
44 | ```
45 |
46 | ## Development Workflow
47 |
48 | 1. Create a new branch for your feature or fix
49 |
50 | ```sh
51 | git checkout -b feature/your-feature-name
52 | ```
53 |
54 | 2. Make your changes, adhering to the coding standards
55 |
56 | 3. Build and test your changes
57 |
58 | ```sh
59 | make rebuild
60 | make test
61 | ```
62 |
63 | 4. Commit your changes with a descriptive message
64 |
65 | ```sh
66 | git commit -m "Add feature: description of the feature"
67 | ```
68 |
69 | 5. Push your branch to your fork
70 |
71 | ```sh
72 | git push origin feature/your-feature-name
73 | ```
74 |
75 | 6. Create a pull request against the main repository
76 |
77 | ## Pull Request Process
78 |
79 | 1. Ensure your code builds without errors and passes all tests
80 | 2. Update documentation if necessary
81 | 3. Include a clear description of the changes in your pull request
82 | 4. Link any related issues in your pull request description
83 | 5. Wait for review and address any feedback
84 |
85 | ## Coding Standards
86 |
87 | ### C Code Style
88 |
89 | - Follow the C23 standard as specified in the Makefile
90 | - Use 4 spaces for indentation (not tabs)
91 | - Keep lines under 100 characters when possible
92 | - Use descriptive variable and function names
93 | - Add comments for non-obvious code sections
94 | - Include proper header documentation for all files
95 |
96 | ### Documentation
97 |
98 | - Document all public functions, types, and constants
99 | - Keep documentation up-to-date with code changes
100 | - Use Doxygen-style comments for API documentation
101 |
102 | ## Testing Guidelines
103 |
104 | - Write tests for all new features and bug fixes
105 | - Ensure all tests pass before submitting a pull request
106 | - Cover edge cases and error conditions in your tests
107 |
108 | ## Reporting Issues
109 |
110 | - Use the GitHub issue tracker to report bugs or suggest features
111 | - Provide clear steps to reproduce bugs
112 | - Include relevant information like OS, compiler version, etc.
113 | - Use labels appropriately to categorize issues
114 |
115 | ## License
116 |
117 | By contributing to this project, you agree that your contributions will be licensed under the same license as the project (Public Domain or the most permissive terms available).
118 |
119 | ## Questions and Support
120 |
121 | If you have questions or need support, please refer to the [SUPPORT.md](SUPPORT.md) file or visit the official [documentation](https://dun.dev/cosmo-project) for additional resources.
122 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | ISC License
2 |
3 | Copyright 2025 Matt Dunleavy.
4 |
5 | Permission to use, copy, modify, and/or distribute this software for
6 | any purpose with or without fee is hereby granted, provided that the
7 | above copyright notice and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 | WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 | AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 | PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 | PERFORMANCE OF THIS SOFTWARE.
17 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # Default compiler selection - can be overridden with TOOLCHAIN=gcc|clang|cosmo
2 | TOOLCHAIN ?= auto
3 |
4 | # Installation prefix - can be overridden, e.g., make PREFIX=/usr/local install
5 | PREFIX ?= $(HOME)/.local
6 | DESTDIR ?=
7 |
8 | # Determine compiler based on TOOLCHAIN value
9 | ifeq ($(TOOLCHAIN), gcc)
10 | CC = gcc
11 | DEBUGGER = gdb
12 | else ifeq ($(TOOLCHAIN), clang)
13 | CC = clang
14 | DEBUGGER = lldb
15 | else ifeq ($(TOOLCHAIN), cosmo)
16 | CC = cosmocc
17 | CFLAGS_EXTRA = -DAPE=1 -O2
18 | DEBUGGER = lldb
19 | else ifeq ($(TOOLCHAIN), auto)
20 | # Auto-detect available compiler - defaulting to cosmocc
21 | CC = cosmocc
22 | CFLAGS_EXTRA = -DAPE=1 -O2
23 | DEBUGGER = lldb
24 | else
25 | $(error Unknown toolchain: $(TOOLCHAIN). Use 'gcc', 'clang', 'cosmo', or 'auto')
26 | endif
27 |
28 | # Common flags
29 | # -MMD generates dependency files (.d)
30 | # -MP ensures dummy targets for headers are created, preventing errors if a header is deleted
31 | CFLAGS = -std=c23 -Wall -Wextra -pedantic -g -MMD -MP $(CFLAGS_EXTRA)
32 | INCLUDE = -Iinclude
33 | SRC_DIR = src
34 | BUILD_DIR = build/$(TOOLCHAIN)
35 | BIN_DIR = bin
36 | TARGET = $(BIN_DIR)/cosmo-project
37 | SRCS = $(wildcard $(SRC_DIR)/*.c)
38 | OBJS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SRCS))
39 | DEPS = $(OBJS:.o=.d) # Dependency files
40 |
41 | # Check if source files exist
42 | ifneq ($(SRCS),)
43 | all: directories $(TARGET)
44 | else
45 | all:
46 | @echo "No source files found in $(SRC_DIR). Nothing to build."
47 | @exit 1
48 | endif
49 |
50 | directories:
51 | @mkdir -p $(BUILD_DIR)
52 | @mkdir -p $(BIN_DIR)
53 |
54 | # Compile
55 | $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
56 | $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
57 |
58 | # Link
59 | $(TARGET): $(OBJS)
60 | $(CC) $(CFLAGS) $(OBJS) -o $(TARGET)
61 |
62 | # Clean - Remove build artifacts and the target binary directory
63 | clean:
64 | rm -rf $(BUILD_DIR) $(BIN_DIR)
65 |
66 | # Rebuild
67 | rebuild: clean all
68 |
69 | # Run
70 | run: all
71 | $(TARGET)
72 |
73 | # Install the binary to $(DESTDIR)$(PREFIX)/bin
74 | install: all
75 | mkdir -p $(DESTDIR)$(PREFIX)/bin
76 | cp $(TARGET) $(DESTDIR)$(PREFIX)/bin/$(notdir $(TARGET))
77 | chmod +x $(DESTDIR)$(PREFIX)/bin/$(notdir $(TARGET))
78 |
79 | # Uninstall the binary from $(DESTDIR)$(PREFIX)/bin
80 | uninstall:
81 | rm -f $(DESTDIR)$(PREFIX)/bin/$(notdir $(TARGET))
82 |
83 | # Debug
84 | debug: all
85 | $(DEBUGGER) $(TARGET)
86 |
87 | # Show the current toolchain configuration
88 | info:
89 | @echo "Current configuration:"
90 | @echo " Compiler: $(CC)"
91 | @echo " Debugger: $(DEBUGGER)"
92 | @echo " CFLAGS: $(CFLAGS)"
93 | @echo " Build directory: $(BUILD_DIR)"
94 | @echo " Target binary: $(TARGET)"
95 |
96 | # Include dependency files, suppressing errors if they don't exist yet
97 | -include $(DEPS)
98 |
99 | .PHONY: all directories clean rebuild run debug info
100 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Boilerplate Cross-Platform C Project Layout (Cosmopolitan)
2 |
3 | ## Overview
4 |
5 | This is a basic layout and boilerplate project template for building cross-platform applications in C using the Cosmopolitan toolchain. The package provides everything you'll need to get started quickly, including:
6 |
7 | - a Makefile that allows you to toggle the compiler toolchain between cosmopolitan, GCC and clang
8 | - optimized editor configurations for a better development experience using VSCode, Vim, NeoVim (and others)
9 | - customizable documentation, packaging and license templates based on current open-source conventions to simplify distribution
10 |
11 | If you are creating a simple application or learning Cosmopolitan, this project layout provides a general structure for organizing your applications, focusing on the layout rather than specific implementation details. This template is high-level and doesn't delve into architectural patterns like layered architectures or specific design paradigms.
12 |
13 | This is **`NOT an official standard defined by the developers of Cosmopolitan or C standards groups`**. This is a suggested organizational structure to help maintain clean code separation and organization. While the Cosmopolitan library itself doesn't mandate any specific project layout, this structure builds on common C project conventions and adds Cosmopolitan-specific considerations.
14 |
15 | ## Usage
16 |
17 | 1. Clone this repository (or simply download and unpack `cosmo-project.zip`)
18 | 2. Build something
19 |
20 | You can download the latest version of the template archive file at:
21 |
22 | https://storebrand.angelfire.com/download/cosmo-project.zip
23 |
24 | > [!IMPORTANT]
25 | >
26 | > The `.gitignore` file is only included in the .zip archive to ensure all directories are provided in the public repo.
27 |
28 | ## Building with Cosmopolitan LibC
29 |
30 | Cosmopolitan allows you to create single-file executables that run on multiple platforms, including Linux, macOS, Windows, FreeBSD, OpenBSD, and NetBSD. To build with Cosmopolitan:
31 |
32 | 1. Install the Cosmopolitan library (instructions at https://github.com/jart/cosmopolitan)
33 | 2. Configure your build system to link against Cosmopolitan
34 | 3. Use the provided build scripts to generate portable executables
35 |
36 | Refer to the [Cosmopolitan documentation](https://justine.lol/cosmopolitan/documentation.html) for detailed build instructions and options.
37 |
38 | ## Build Configuration
39 |
40 | The project includes a versatile Makefile that supports multiple compiler toolchains:
41 |
42 | - **Cosmopolitan (default)**: Uses `cosmocc` to build APE (Actually Portable Executable) binaries
43 | - **GCC**: Standard GNU C Compiler
44 | - **Clang**: LLVM C Compiler
45 |
46 | ### Using the Makefile
47 |
48 | The Makefile supports the following commands:
49 |
50 | ```bash
51 | # Build with default toolchain (auto-detected, defaults to Cosmopolitan)
52 | make
53 |
54 | # Build with a specific toolchain
55 | make TOOLCHAIN=gcc
56 | make TOOLCHAIN=clang
57 | make TOOLCHAIN=cosmo
58 |
59 | # Clean build artifacts
60 | make clean
61 |
62 | # Rebuild from scratch
63 | make rebuild
64 |
65 | # Run the application
66 | make run
67 |
68 | # Debug the application
69 | make debug
70 |
71 | # Install to $PREFIX/bin (defaults to ~/.local/bin)
72 | make install
73 | make PREFIX=/usr/local install
74 |
75 | # Get build information
76 | make info
77 | ```
78 |
79 | ### Toggling Between Toolchains
80 |
81 | You can easily toggle between toolchains by setting the `TOOLCHAIN` environment variable:
82 |
83 | ```bash
84 | # Set temporarily for a single command
85 | TOOLCHAIN=gcc make
86 |
87 | # Set for the current shell session
88 | export TOOLCHAIN=clang
89 | make
90 |
91 | # Or pass directly to the make command
92 | make TOOLCHAIN=cosmo
93 | ```
94 |
95 | This allows you to quickly test your code with different compilers without changing any configuration files.
96 |
97 | ## Editor Configuration
98 |
99 | This project includes optimized configurations for multiple editors to provide a seamless development experience:
100 |
101 | ### Visual Studio Code
102 |
103 | The `.vscode` directory contains:
104 |
105 | - **tasks.json**: Build tasks for different toolchains
106 | - **launch.json**: Debug configurations
107 | - **c_cpp_properties.json**: IntelliSense configurations for all supported platforms and toolchains
108 | - **settings.json**: Editor settings optimized for C development with Cosmopolitan
109 |
110 | VS Code tasks include:
111 |
112 | - `build`: Default build (uses the auto-detected toolchain)
113 | - `build-cosmo`: Build specifically with Cosmopolitan
114 | - `build-clang`: Build with Clang
115 | - `run`: Run the application
116 | - `clean`: Clean build artifacts
117 |
118 | ### Vim/Neovim
119 |
120 | The project includes configurations for both Vim and Neovim:
121 |
122 | - **`.vim/coc-settings.json`**: Configuration for Conquer of Completion (CoC) extension, with C language server settings
123 | - **`.config/nvim`**: Neovim-specific configurations
124 |
125 | These configurations provide:
126 |
127 | - Language server integration via clangd
128 | - C23 standard support
129 | - Project-aware navigation and code intelligence
130 |
131 | To get the most from these configurations, ensure you have:
132 |
133 | - For Vim: CoC extension and clangd language server installed
134 | - For Neovim: Language server support configured
135 |
136 | ## Directories
137 |
138 | ### `/src`
139 |
140 | Main source code for your application.
141 |
142 | This directory contains all your C source code (`.c` files). For larger projects, you might organize this directory further into subdirectories based on functionality or modules.
143 |
144 | ### `/include`
145 |
146 | Header files for your project.
147 |
148 | Public header files that define your project's API live here. The directory structure should mirror that of `/src` to make it easy to find corresponding headers and source files.
149 |
150 | ### `/lib`
151 |
152 | Internal libraries that are specific to your project.
153 |
154 | If your project has code that can be logically separated into libraries, place that code here. This helps maintain separation of concerns and makes your codebase more modular.
155 |
156 | ### `/third_party`
157 |
158 | External dependencies and libraries.
159 |
160 | This directory contains external code that your project depends on. If you're using git submodules to manage dependencies, they would typically be placed here.
161 |
162 | ## Build and Distribution Directories
163 |
164 | ### `/build`
165 |
166 | Build artifacts and configurations.
167 |
168 | Contains scripts and configuration files needed for building your project. This might include specialized build steps for Cosmopolitan's APE (Actually Portable Executable) format.
169 |
170 | ### `/bin`
171 |
172 | Binary executables output directory.
173 |
174 | The compiled binaries from your project go here. Your build system should output executables to this directory.
175 |
176 | ## Additional Directories
177 |
178 | ### `/test`
179 |
180 | Test code and test data.
181 |
182 | Contains unit tests, integration tests, and test data for your application. For larger projects, consider subdividing this directory to organize different types of tests.
183 |
184 | ### `/docs`
185 |
186 | Documentation for your project.
187 |
188 | Project documentation, including API documentation, usage guides, and other helpful resources.
189 |
190 | ### `/scripts`
191 |
192 | Utility scripts for development, building, and deployment.
193 |
194 | Various scripts that aid in development, building, packaging, or deploying your application.
195 |
196 | ### `/examples`
197 |
198 | Example code demonstrating how to use your project.
199 |
200 | Simple examples that show how to use your code, API, or library. These examples should be easy to understand and well-documented.
201 |
202 | ### `/tools`
203 |
204 | Tools and utilities specific to your project.
205 |
206 | Development tools that help with building, testing, or other aspects of your project.
207 |
208 | ## License
209 |
210 | **This package is released to the public domain.** For the purpose of compliance in and for international jurisdictions which do not recognize the public domain as a license under law, this package is thereby distributed under the most permissive terms and conditions available under the laws of said jurisdiction.
211 |
212 | The software is provided "as is" and the author disclaims all warranties with regard to this software including all implied warranties of merchantability and fitness. In no event shall the author be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software.
213 |
214 | Third-party software and libraries containing all or part of the contents of this package are governed by the provisions of their respective licenses.
215 |
216 |
217 |
218 | ###
219 |
220 |
221 |
222 | ### **One last thing...**
223 |
224 | If this package helped you out or made things alittle easier, **please ⭐ it before you leave!** They won't send me the actual star, but it still means alot!
225 |
226 |
227 |
228 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | | Version | Supported |
6 | | ------- | ------------------ |
7 | | 1.0.x | :white_check_mark: |
8 | | < 1.0 | :x: |
9 |
10 | ## Reporting a Vulnerability
11 |
12 | We take the security of our project seriously. If you believe you've found a security vulnerability, please follow these guidelines:
13 |
14 | 1. **Do not** disclose the vulnerability publicly
15 | 2. Email us at [security@example.com](mailto:security@example.com) with details about the vulnerability
16 | 3. Allow time for us to respond (typically within 48 hours)
17 | 4. Provide sufficient information to reproduce and validate the issue
18 |
19 | ## Disclosure Policy
20 |
21 | When we receive a security report, our team will:
22 |
23 | 1. Confirm receipt of the report within 48 hours
24 | 2. Verify the vulnerability and its impact
25 | 3. Develop and test a fix
26 | 4. Release a patch and acknowledge contributors (unless anonymity is requested)
27 |
28 | ## Security Updates
29 |
30 | Security updates will be released as part of our standard release cycle or as emergency patches for critical vulnerabilities.
31 |
32 | ## Contact
33 |
34 | For security-related inquiries, please contact:
35 |
36 | - Email: [security@example.com](mailto:security@example.com)
37 |
--------------------------------------------------------------------------------
/SUPPORT.md:
--------------------------------------------------------------------------------
1 | # Support
2 |
3 | This document outlines the various support channels available for this project.
4 |
5 | ## How to Get Help
6 |
7 | Before seeking help, please check the following resources:
8 |
9 | 1. **Documentation**: Check our [documentation](https://example.com/docs) for information about features and common issues.
10 | 2. **FAQ**: Review our [Frequently Asked Questions](https://example.com/faq) page.
11 | 3. **Search Issues**: Search for similar issues in our [issue tracker](https://github.com/example/repo/issues).
12 |
13 | ## Asking Questions
14 |
15 | If you still need help, you can:
16 |
17 | - **Open an Issue**: For bugs, feature requests, or questions, [create a new issue](https://github.com/example/repo/issues/new/choose) using the appropriate template.
18 | - **Discussions**: For general questions and community discussions, use our [Discussions forum](https://github.com/example/repo/discussions).
19 |
20 | ## Community Channels
21 |
22 | Join our community through these channels:
23 |
24 | - **Discord**: [Join our Discord server](https://discord.gg/example)
25 | - **Twitter**: Follow us [@exampleproject](https://twitter.com/exampleproject)
26 | - **Community Meetings**: We host monthly community calls. See our [community calendar](https://example.com/community-calendar) for details.
27 |
28 | ## Commercial Support
29 |
30 | For enterprise users requiring dedicated support, please contact [support@example.com](mailto:support@example.com) for information about our commercial support options.
31 |
32 | ## Issue Reporting Guidelines
33 |
34 | When reporting issues, please include:
35 |
36 | 1. Project version
37 | 2. Operating system/environment
38 | 3. Steps to reproduce the issue
39 | 4. Expected vs. actual behavior
40 | 5. Screenshots or logs (if applicable)
41 |
42 | ## Support Policy
43 |
44 | - Community support is provided on a best-effort basis
45 | - Issues are prioritized based on impact and community need
46 | - Security issues receive the highest priority
47 |
--------------------------------------------------------------------------------
/bin/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/bin/.gitkeep
--------------------------------------------------------------------------------
/build/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/build/.gitkeep
--------------------------------------------------------------------------------
/cosmo-project.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/cosmo-project.zip
--------------------------------------------------------------------------------
/docs/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/docs/.gitkeep
--------------------------------------------------------------------------------
/docs/draft/licenses/AGPL-3.0.txt:
--------------------------------------------------------------------------------
1 | How to Apply These Terms to Your New Programs
2 |
3 | If you develop a new program, and you want it to be of the greatest possible
4 | use to the public, the best way to achieve this is to make it free software
5 | which everyone can redistribute and change under these terms.
6 |
7 | To do so, attach the following notices to the program. It is safest to attach
8 | them to the start of each source file to most effectively state the exclusion
9 | of warranty; and each file should have at least the "copyright" line and a
10 | pointer to where the full notice is found.
11 |
12 |
13 | Copyright (C)
14 |
15 | This program is free software: you can redistribute it and/or modify
16 | it under the terms of the GNU Affero General Public License as
17 | published by the Free Software Foundation, either version 3 of the
18 | License, or (at your option) any later version.
19 |
20 | This program is distributed in the hope that it will be useful,
21 | but WITHOUT ANY WARRANTY; without even the implied warranty of
22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 | GNU Affero General Public License for more details.
24 |
25 | You should have received a copy of the GNU Affero General Public License
26 | along with this program. If not, see .
27 | Also add information on how to contact you by electronic and paper mail.
28 |
29 | If your software can interact with users remotely through a computer network,
30 | you should also make sure that it provides a way for users to get its source.
31 | For example, if your program is a web application, its interface could display
32 | a "Source" link that leads users to an archive of the code. There are many ways
33 | you could offer source, and different solutions will be better for different
34 | programs; see section 13 for the specific requirements.
35 |
36 | You should also get your employer (if you work as a programmer) or school, if
37 | any, to sign a "copyright disclaimer" for the program, if necessary. For more
38 | information on this, and how to apply and follow the GNU AGPL, see
39 | .
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | Copyright (C) 2007 Free Software Foundation, Inc.
48 | Everyone is permitted to copy and distribute verbatim copies of this license
49 | document, but changing it is not allowed.
50 |
51 | Preamble
52 | The GNU Affero General Public License is a free, copyleft license for software
53 | and other kinds of works, specifically designed to ensure cooperation with the
54 | community in the case of network server software.
55 |
56 | The licenses for most software and other practical works are designed to take
57 | away your freedom to share and change the works. By contrast, our General
58 | Public Licenses are intended to guarantee your freedom to share and change all
59 | versions of a program--to make sure it remains free software for all its users.
60 |
61 | When we speak of free software, we are referring to freedom, not price. Our
62 | General Public Licenses are designed to make sure that you have the freedom to
63 | distribute copies of free software (and charge for them if you wish), that you
64 | receive source code or can get it if you want it, that you can change the
65 | software or use pieces of it in new free programs, and that you know you can do
66 | these things.
67 |
68 | Developers that use our General Public Licenses protect your rights with two
69 | steps: (1) assert copyright on the software, and (2) offer you this License
70 | which gives you legal permission to copy, distribute and/or modify the
71 | software.
72 |
73 | A secondary benefit of defending all users' freedom is that improvements made
74 | in alternate versions of the program, if they receive widespread use, become
75 | available for other developers to incorporate. Many developers of free software
76 | are heartened and encouraged by the resulting cooperation. However, in the case
77 | of software used on network servers, this result may fail to come about. The
78 | GNU General Public License permits making a modified version and letting the
79 | public access it on a server without ever releasing its source code to the
80 | public.
81 |
82 | The GNU Affero General Public License is designed specifically to ensure that,
83 | in such cases, the modified source code becomes available to the community. It
84 | requires the operator of a network server to provide the source code of the
85 | modified version running there to the users of that server. Therefore, public
86 | use of a modified version, on a publicly accessible server, gives the public
87 | access to the source code of the modified version.
88 |
89 | An older license, called the Affero General Public License and published by
90 | Affero, was designed to accomplish similar goals. This is a different license,
91 | not a version of the Affero GPL, but Affero has released a new version of the
92 | Affero GPL which permits relicensing under this license.
93 |
94 | The precise terms and conditions for copying, distribution and modification
95 | follow.
96 |
97 | TERMS AND CONDITIONS
98 | 0. Definitions.
99 |
100 | "This License" refers to version 3 of the GNU Affero General Public License.
101 |
102 | "Copyright" also means copyright-like laws that apply to other kinds of works,
103 | such as semiconductor masks.
104 |
105 | "The Program" refers to any copyrightable work licensed under this License.
106 | Each licensee is addressed as "you". "Licensees" and "recipients" may be
107 | individuals or organizations.
108 |
109 | To "modify" a work means to copy from or adapt all or part of the work in a
110 | fashion requiring copyright permission, other than the making of an exact copy.
111 | The resulting work is called a "modified version" of the earlier work or a work
112 | "based on" the earlier work.
113 |
114 | A "covered work" means either the unmodified Program or a work based on the
115 | Program.
116 |
117 | To "propagate" a work means to do anything with it that, without permission,
118 | would make you directly or secondarily liable for infringement under applicable
119 | copyright law, except executing it on a computer or modifying a private copy.
120 | Propagation includes copying, distribution (with or without modification),
121 | making available to the public, and in some countries other activities as well.
122 |
123 | To "convey" a work means any kind of propagation that enables other parties to
124 | make or receive copies. Mere interaction with a user through a computer
125 | network, with no transfer of a copy, is not conveying.
126 |
127 | An interactive user interface displays "Appropriate Legal Notices" to the
128 | extent that it includes a convenient and prominently visible feature that (1)
129 | displays an appropriate copyright notice, and (2) tells the user that there is
130 | no warranty for the work (except to the extent that warranties are provided),
131 | that licensees may convey the work under this License, and how to view a copy
132 | of this License. If the interface presents a list of user commands or options,
133 | such as a menu, a prominent item in the list meets this criterion.
134 |
135 | 1. Source Code.
136 |
137 | The "source code" for a work means the preferred form of the work for making
138 | modifications to it. "Object code" means any non-source form of a work.
139 |
140 | A "Standard Interface" means an interface that either is an official standard
141 | defined by a recognized standards body, or, in the case of interfaces specified
142 | for a particular programming language, one that is widely used among developers
143 | working in that language.
144 |
145 | The "System Libraries" of an executable work include anything, other than the
146 | work as a whole, that (a) is included in the normal form of packaging a Major
147 | Component, but which is not part of that Major Component, and (b) serves only
148 | to enable use of the work with that Major Component, or to implement a Standard
149 | Interface for which an implementation is available to the public in source code
150 | form. A "Major Component", in this context, means a major essential component
151 | (kernel, window system, and so on) of the specific operating system (if any) on
152 | which the executable work runs, or a compiler used to produce the work, or an
153 | object code interpreter used to run it.
154 |
155 | The "Corresponding Source" for a work in object code form means all the source
156 | code needed to generate, install, and (for an executable work) run the object
157 | code and to modify the work, including scripts to control those activities.
158 | However, it does not include the work's System Libraries, or general-purpose
159 | tools or generally available free programs which are used unmodified in
160 | performing those activities but which are not part of the work. For example,
161 | Corresponding Source includes interface definition files associated with source
162 | files for the work, and the source code for shared libraries and dynamically
163 | linked subprograms that the work is specifically designed to require, such as
164 | by intimate data communication or control flow between those subprograms and
165 | other parts of the work.
166 |
167 | The Corresponding Source need not include anything that users can regenerate
168 | automatically from other parts of the Corresponding Source.
169 |
170 | The Corresponding Source for a work in source code form is that same work.
171 |
172 | 2. Basic Permissions.
173 |
174 | All rights granted under this License are granted for the term of copyright on
175 | the Program, and are irrevocable provided the stated conditions are met. This
176 | License explicitly affirms your unlimited permission to run the unmodified
177 | Program. The output from running a covered work is covered by this License only
178 | if the output, given its content, constitutes a covered work. This License
179 | acknowledges your rights of fair use or other equivalent, as provided by
180 | copyright law.
181 |
182 | You may make, run and propagate covered works that you do not convey, without
183 | conditions so long as your license otherwise remains in force. You may convey
184 | covered works to others for the sole purpose of having them make modifications
185 | exclusively for you, or provide you with facilities for running those works,
186 | provided that you comply with the terms of this License in conveying all
187 | material for which you do not control copyright. Those thus making or running
188 | the covered works for you must do so exclusively on your behalf, under your
189 | direction and control, on terms that prohibit them from making any copies of
190 | your copyrighted material outside their relationship with you.
191 |
192 | Conveying under any other circumstances is permitted solely under the
193 | conditions stated below. Sublicensing is not allowed; section 10 makes it
194 | unnecessary.
195 |
196 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
197 |
198 | No covered work shall be deemed part of an effective technological measure
199 | under any applicable law fulfilling obligations under article 11 of the WIPO
200 | copyright treaty adopted on 20 December 1996, or similar laws prohibiting or
201 | restricting circumvention of such measures.
202 |
203 | When you convey a covered work, you waive any legal power to forbid
204 | circumvention of technological measures to the extent such circumvention is
205 | effected by exercising rights under this License with respect to the covered
206 | work, and you disclaim any intention to limit operation or modification of the
207 | work as a means of enforcing, against the work's users, your or third parties'
208 | legal rights to forbid circumvention of technological measures.
209 |
210 | 4. Conveying Verbatim Copies.
211 |
212 | You may convey verbatim copies of the Program's source code as you receive it,
213 | in any medium, provided that you conspicuously and appropriately publish on
214 | each copy an appropriate copyright notice; keep intact all notices stating that
215 | this License and any non-permissive terms added in accord with section 7 apply
216 | to the code; keep intact all notices of the absence of any warranty; and give
217 | all recipients a copy of this License along with the Program.
218 |
219 | You may charge any price or no price for each copy that you convey, and you may
220 | offer support or warranty protection for a fee.
221 |
222 | 5. Conveying Modified Source Versions.
223 |
224 | You may convey a work based on the Program, or the modifications to produce it
225 | from the Program, in the form of source code under the terms of section 4,
226 | provided that you also meet all of these conditions:
227 |
228 | a) The work must carry prominent notices stating that you modified it, and
229 | giving a relevant date.
230 | b) The work must carry prominent notices stating that it is released under this
231 | License and any conditions added under section 7. This requirement modifies the
232 | requirement in section 4 to "keep intact all notices".
233 | c) You must license the entire work, as a whole, under this License to anyone
234 | who comes into possession of a copy. This License will therefore apply, along
235 | with any applicable section 7 additional terms, to the whole of the work, and
236 | all its parts, regardless of how they are packaged. This License gives no
237 | permission to license the work in any other way, but it does not invalidate
238 | such permission if you have separately received it.
239 | d) If the work has interactive user interfaces, each must display Appropriate
240 | Legal Notices; however, if the Program has interactive interfaces that do not
241 | display Appropriate Legal Notices, your work need not make them do so.
242 | A compilation of a covered work with other separate and independent works,
243 | which are not by their nature extensions of the covered work, and which are not
244 | combined with it such as to form a larger program, in or on a volume of a
245 | storage or distribution medium, is called an "aggregate" if the compilation and
246 | its resulting copyright are not used to limit the access or legal rights of the
247 | compilation's users beyond what the individual works permit. Inclusion of a
248 | covered work in an aggregate does not cause this License to apply to the other
249 | parts of the aggregate.
250 |
251 | 6. Conveying Non-Source Forms.
252 |
253 | You may convey a covered work in object code form under the terms of sections 4
254 | and 5, provided that you also convey the machine-readable Corresponding Source
255 | under the terms of this License, in one of these ways:
256 |
257 | a) Convey the object code in, or embodied in, a physical product (including a
258 | physical distribution medium), accompanied by the Corresponding Source fixed on
259 | a durable physical medium customarily used for software interchange.
260 | b) Convey the object code in, or embodied in, a physical product (including a
261 | physical distribution medium), accompanied by a written offer, valid for at
262 | least three years and valid for as long as you offer spare parts or customer
263 | support for that product model, to give anyone who possesses the object code
264 | either (1) a copy of the Corresponding Source for all the software in the
265 | product that is covered by this License, on a durable physical medium
266 | customarily used for software interchange, for a price no more than your
267 | reasonable cost of physically performing this conveying of source, or (2)
268 | access to copy the Corresponding Source from a network server at no charge.
269 | c) Convey individual copies of the object code with a copy of the written offer
270 | to provide the Corresponding Source. This alternative is allowed only
271 | occasionally and noncommercially, and only if you received the object code with
272 | such an offer, in accord with subsection 6b.
273 | d) Convey the object code by offering access from a designated place (gratis or
274 | for a charge), and offer equivalent access to the Corresponding Source in the
275 | same way through the same place at no further charge. You need not require
276 | recipients to copy the Corresponding Source along with the object code. If the
277 | place to copy the object code is a network server, the Corresponding Source may
278 | be on a different server (operated by you or a third party) that supports
279 | equivalent copying facilities, provided you maintain clear directions next to
280 | the object code saying where to find the Corresponding Source. Regardless of
281 | what server hosts the Corresponding Source, you remain obligated to ensure that
282 | it is available for as long as needed to satisfy these requirements.
283 | e) Convey the object code using peer-to-peer transmission, provided you inform
284 | other peers where the object code and Corresponding Source of the work are
285 | being offered to the general public at no charge under subsection 6d.
286 | A separable portion of the object code, whose source code is excluded from the
287 | Corresponding Source as a System Library, need not be included in conveying the
288 | object code work.
289 |
290 | A "User Product" is either (1) a "consumer product", which means any tangible
291 | personal property which is normally used for personal, family, or household
292 | purposes, or (2) anything designed or sold for incorporation into a dwelling.
293 | In determining whether a product is a consumer product, doubtful cases shall be
294 | resolved in favor of coverage. For a particular product received by a
295 | particular user, "normally used" refers to a typical or common use of that
296 | class of product, regardless of the status of the particular user or of the way
297 | in which the particular user actually uses, or expects or is expected to use,
298 | the product. A product is a consumer product regardless of whether the product
299 | has substantial commercial, industrial or non-consumer uses, unless such uses
300 | represent the only significant mode of use of the product.
301 |
302 | "Installation Information" for a User Product means any methods, procedures,
303 | authorization keys, or other information required to install and execute
304 | modified versions of a covered work in that User Product from a modified
305 | version of its Corresponding Source. The information must suffice to ensure
306 | that the continued functioning of the modified object code is in no case
307 | prevented or interfered with solely because modification has been made.
308 |
309 | If you convey an object code work under this section in, or with, or
310 | specifically for use in, a User Product, and the conveying occurs as part of a
311 | transaction in which the right of possession and use of the User Product is
312 | transferred to the recipient in perpetuity or for a fixed term (regardless of
313 | how the transaction is characterized), the Corresponding Source conveyed under
314 | this section must be accompanied by the Installation Information. But this
315 | requirement does not apply if neither you nor any third party retains the
316 | ability to install modified object code on the User Product (for example, the
317 | work has been installed in ROM).
318 |
319 | The requirement to provide Installation Information does not include a
320 | requirement to continue to provide support service, warranty, or updates for a
321 | work that has been modified or installed by the recipient, or for the User
322 | Product in which it has been modified or installed. Access to a network may be
323 | denied when the modification itself materially and adversely affects the
324 | operation of the network or violates the rules and protocols for communication
325 | across the network.
326 |
327 | Corresponding Source conveyed, and Installation Information provided, in accord
328 | with this section must be in a format that is publicly documented (and with an
329 | implementation available to the public in source code form), and must require
330 | no special password or key for unpacking, reading or copying.
331 |
332 | 7. Additional Terms.
333 |
334 | "Additional permissions" are terms that supplement the terms of this License by
335 | making exceptions from one or more of its conditions. Additional permissions
336 | that are applicable to the entire Program shall be treated as though they were
337 | included in this License, to the extent that they are valid under applicable
338 | law. If additional permissions apply only to part of the Program, that part may
339 | be used separately under those permissions, but the entire Program remains
340 | governed by this License without regard to the additional permissions.
341 |
342 | When you convey a copy of a covered work, you may at your option remove any
343 | additional permissions from that copy, or from any part of it. (Additional
344 | permissions may be written to require their own removal in certain cases when
345 | you modify the work.) You may place additional permissions on material, added
346 | by you to a covered work, for which you have or can give appropriate copyright
347 | permission.
348 |
349 | Notwithstanding any other provision of this License, for material you add to a
350 | covered work, you may (if authorized by the copyright holders of that material)
351 | supplement the terms of this License with terms:
352 |
353 | a) Disclaiming warranty or limiting liability differently from the terms of
354 | sections 15 and 16 of this License; or
355 | b) Requiring preservation of specified reasonable legal notices or author
356 | attributions in that material or in the Appropriate Legal Notices displayed by
357 | works containing it; or
358 | c) Prohibiting misrepresentation of the origin of that material, or requiring
359 | that modified versions of such material be marked in reasonable ways as
360 | different from the original version; or
361 | d) Limiting the use for publicity purposes of names of licensors or authors of
362 | the material; or
363 | e) Declining to grant rights under trademark law for use of some trade names,
364 | trademarks, or service marks; or
365 | f) Requiring indemnification of licensors and authors of that material by
366 | anyone who conveys the material (or modified versions of it) with contractual
367 | assumptions of liability to the recipient, for any liability that these
368 | contractual assumptions directly impose on those licensors and authors.
369 | All other non-permissive additional terms are considered "further restrictions"
370 | within the meaning of section 10. If the Program as you received it, or any
371 | part of it, contains a notice stating that it is governed by this License along
372 | with a term that is a further restriction, you may remove that term. If a
373 | license document contains a further restriction but permits relicensing or
374 | conveying under this License, you may add to a covered work material governed
375 | by the terms of that license document, provided that the further restriction
376 | does not survive such relicensing or conveying.
377 |
378 | If you add terms to a covered work in accord with this section, you must place,
379 | in the relevant source files, a statement of the additional terms that apply to
380 | those files, or a notice indicating where to find the applicable terms.
381 |
382 | Additional terms, permissive or non-permissive, may be stated in the form of a
383 | separately written license, or stated as exceptions; the above requirements
384 | apply either way.
385 |
386 | 8. Termination.
387 |
388 | You may not propagate or modify a covered work except as expressly provided
389 | under this License. Any attempt otherwise to propagate or modify it is void,
390 | and will automatically terminate your rights under this License (including any
391 | patent licenses granted under the third paragraph of section 11).
392 |
393 | However, if you cease all violation of this License, then your license from a
394 | particular copyright holder is reinstated (a) provisionally, unless and until
395 | the copyright holder explicitly and finally terminates your license, and (b)
396 | permanently, if the copyright holder fails to notify you of the violation by
397 | some reasonable means prior to 60 days after the cessation.
398 |
399 | Moreover, your license from a particular copyright holder is reinstated
400 | permanently if the copyright holder notifies you of the violation by some
401 | reasonable means, this is the first time you have received notice of violation
402 | of this License (for any work) from that copyright holder, and you cure the
403 | violation prior to 30 days after your receipt of the notice.
404 |
405 | Termination of your rights under this section does not terminate the licenses
406 | of parties who have received copies or rights from you under this License. If
407 | your rights have been terminated and not permanently reinstated, you do not
408 | qualify to receive new licenses for the same material under section 10.
409 |
410 | 9. Acceptance Not Required for Having Copies.
411 |
412 | You are not required to accept this License in order to receive or run a copy
413 | of the Program. Ancillary propagation of a covered work occurring solely as a
414 | consequence of using peer-to-peer transmission to receive a copy likewise does
415 | not require acceptance. However, nothing other than this License grants you
416 | permission to propagate or modify any covered work. These actions infringe
417 | copyright if you do not accept this License. Therefore, by modifying or
418 | propagating a covered work, you indicate your acceptance of this License to do
419 | so.
420 |
421 | 10. Automatic Licensing of Downstream Recipients.
422 |
423 | Each time you convey a covered work, the recipient automatically receives a
424 | license from the original licensors, to run, modify and propagate that work,
425 | subject to this License. You are not responsible for enforcing compliance by
426 | third parties with this License.
427 |
428 | An "entity transaction" is a transaction transferring control of an
429 | organization, or substantially all assets of one, or subdividing an
430 | organization, or merging organizations. If propagation of a covered work
431 | results from an entity transaction, each party to that transaction who receives
432 | a copy of the work also receives whatever licenses to the work the party's
433 | predecessor in interest had or could give under the previous paragraph, plus a
434 | right to possession of the Corresponding Source of the work from the
435 | predecessor in interest, if the predecessor has it or can get it with
436 | reasonable efforts.
437 |
438 | You may not impose any further restrictions on the exercise of the rights
439 | granted or affirmed under this License. For example, you may not impose a
440 | license fee, royalty, or other charge for exercise of rights granted under this
441 | License, and you may not initiate litigation (including a cross-claim or
442 | counterclaim in a lawsuit) alleging that any patent claim is infringed by
443 | making, using, selling, offering for sale, or importing the Program or any
444 | portion of it.
445 |
446 | 11. Patents.
447 |
448 | A "contributor" is a copyright holder who authorizes use under this License of
449 | the Program or a work on which the Program is based. The work thus licensed is
450 | called the contributor's "contributor version".
451 |
452 | A contributor's "essential patent claims" are all patent claims owned or
453 | controlled by the contributor, whether already acquired or hereafter acquired,
454 | that would be infringed by some manner, permitted by this License, of making,
455 | using, or selling its contributor version, but do not include claims that would
456 | be infringed only as a consequence of further modification of the contributor
457 | version. For purposes of this definition, "control" includes the right to grant
458 | patent sublicenses in a manner consistent with the requirements of this
459 | License.
460 |
461 | Each contributor grants you a non-exclusive, worldwide, royalty-free patent
462 | license under the contributor's essential patent claims, to make, use, sell,
463 | offer for sale, import and otherwise run, modify and propagate the contents of
464 | its contributor version.
465 |
466 | In the following three paragraphs, a "patent license" is any express agreement
467 | or commitment, however denominated, not to enforce a patent (such as an express
468 | permission to practice a patent or covenant not to sue for patent
469 | infringement). To "grant" such a patent license to a party means to make such
470 | an agreement or commitment not to enforce a patent against the party.
471 |
472 | If you convey a covered work, knowingly relying on a patent license, and the
473 | Corresponding Source of the work is not available for anyone to copy, free of
474 | charge and under the terms of this License, through a publicly available
475 | network server or other readily accessible means, then you must either (1)
476 | cause the Corresponding Source to be so available, or (2) arrange to deprive
477 | yourself of the benefit of the patent license for this particular work, or (3)
478 | arrange, in a manner consistent with the requirements of this License, to
479 | extend the patent license to downstream recipients. "Knowingly relying" means
480 | you have actual knowledge that, but for the patent license, your conveying the
481 | covered work in a country, or your recipient's use of the covered work in a
482 | country, would infringe one or more identifiable patents in that country that
483 | you have reason to believe are valid.
484 |
485 | If, pursuant to or in connection with a single transaction or arrangement, you
486 | convey, or propagate by procuring conveyance of, a covered work, and grant a
487 | patent license to some of the parties receiving the covered work authorizing
488 | them to use, propagate, modify or convey a specific copy of the covered work,
489 | then the patent license you grant is automatically extended to all recipients
490 | of the covered work and works based on it.
491 |
492 | A patent license is "discriminatory" if it does not include within the scope of
493 | its coverage, prohibits the exercise of, or is conditioned on the non-exercise
494 | of one or more of the rights that are specifically granted under this License.
495 | You may not convey a covered work if you are a party to an arrangement with a
496 | third party that is in the business of distributing software, under which you
497 | make payment to the third party based on the extent of your activity of
498 | conveying the work, and under which the third party grants, to any of the
499 | parties who would receive the covered work from you, a discriminatory patent
500 | license (a) in connection with copies of the covered work conveyed by you (or
501 | copies made from those copies), or (b) primarily for and in connection with
502 | specific products or compilations that contain the covered work, unless you
503 | entered into that arrangement, or that patent license was granted, prior to 28
504 | March 2007.
505 |
506 | Nothing in this License shall be construed as excluding or limiting any implied
507 | license or other defenses to infringement that may otherwise be available to
508 | you under applicable patent law.
509 |
510 | 12. No Surrender of Others' Freedom.
511 |
512 | If conditions are imposed on you (whether by court order, agreement or
513 | otherwise) that contradict the conditions of this License, they do not excuse
514 | you from the conditions of this License. If you cannot convey a covered work so
515 | as to satisfy simultaneously your obligations under this License and any other
516 | pertinent obligations, then as a consequence you may not convey it at all. For
517 | example, if you agree to terms that obligate you to collect a royalty for
518 | further conveying from those to whom you convey the Program, the only way you
519 | could satisfy both those terms and this License would be to refrain entirely
520 | from conveying the Program.
521 |
522 | 13. Remote Network Interaction; Use with the GNU General Public License.
523 |
524 | Notwithstanding any other provision of this License, if you modify the Program,
525 | your modified version must prominently offer all users interacting with it
526 | remotely through a computer network (if your version supports such interaction)
527 | an opportunity to receive the Corresponding Source of your version by providing
528 | access to the Corresponding Source from a network server at no charge, through
529 | some standard or customary means of facilitating copying of software. This
530 | Corresponding Source shall include the Corresponding Source for any work
531 | covered by version 3 of the GNU General Public License that is incorporated
532 | pursuant to the following paragraph.
533 |
534 | Notwithstanding any other provision of this License, you have permission to
535 | link or combine any covered work with a work licensed under version 3 of the
536 | GNU General Public License into a single combined work, and to convey the
537 | resulting work. The terms of this License will continue to apply to the part
538 | which is the covered work, but the work with which it is combined will remain
539 | governed by version 3 of the GNU General Public License.
540 |
541 | 14. Revised Versions of this License.
542 |
543 | The Free Software Foundation may publish revised and/or new versions of the GNU
544 | Affero General Public License from time to time. Such new versions will be
545 | similar in spirit to the present version, but may differ in detail to address
546 | new problems or concerns.
547 |
548 | Each version is given a distinguishing version number. If the Program specifies
549 | that a certain numbered version of the GNU Affero General Public License "or
550 | any later version" applies to it, you have the option of following the terms
551 | and conditions either of that numbered version or of any later version
552 | published by the Free Software Foundation. If the Program does not specify a
553 | version number of the GNU Affero General Public License, you may choose any
554 | version ever published by the Free Software Foundation.
555 |
556 | If the Program specifies that a proxy can decide which future versions of the
557 | GNU Affero General Public License can be used, that proxy's public statement of
558 | acceptance of a version permanently authorizes you to choose that version for
559 | the Program.
560 |
561 | Later license versions may give you additional or different permissions.
562 | However, no additional obligations are imposed on any author or copyright
563 | holder as a result of your choosing to follow a later version.
564 |
565 | 15. Disclaimer of Warranty.
566 |
567 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
568 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
569 | PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
570 | EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
571 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
572 | QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
573 | DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
574 | CORRECTION.
575 |
576 | 16. Limitation of Liability.
577 |
578 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
579 | COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS
580 | PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
581 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
582 | THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
583 | INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
584 | PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY
585 | HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
586 |
587 | 17. Interpretation of Sections 15 and 16.
588 |
589 | If the disclaimer of warranty and limitation of liability provided above cannot
590 | be given local legal effect according to their terms, reviewing courts shall
591 | apply local law that most closely approximates an absolute waiver of all civil
592 | liability in connection with the Program, unless a warranty or assumption of
593 | liability accompanies a copy of the Program in return for a fee.
594 |
595 | END OF TERMS AND CONDITIONS
596 |
--------------------------------------------------------------------------------
/docs/draft/licenses/Apache-2.0-License.txt:
--------------------------------------------------------------------------------
1 | To apply the Apache License to your work, attach the following boilerplate
2 | notice, with the fields enclosed by brackets "[]" replaced with your own
3 | identifying information. (Don't include the brackets!) The text should be
4 | enclosed in the appropriate comment syntax for the file format. We also
5 | recommend that a file or class name and description of purpose be included on
6 | the same "printed page" as the copyright notice for easier identification
7 | within third-party archives.
8 |
9 |
10 | Copyright [yyyy] [name of copyright owner]
11 |
12 | Licensed under the Apache License, Version 2.0 (the "License");
13 | you may not use this file except in compliance with the License.
14 | You may obtain a copy of the License at
15 |
16 | http://www.apache.org/licenses/LICENSE-2.0
17 |
18 | Unless required by applicable law or agreed to in writing, software
19 | distributed under the License is distributed on an "AS IS" BASIS,
20 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | See the License for the specific language governing permissions and
22 | limitations under the License.
23 |
--------------------------------------------------------------------------------
/docs/draft/licenses/BSD-2Clause-Simplified-License.txt:
--------------------------------------------------------------------------------
1 | The following is a BSD 2-Clause license template. To generate your own license,
2 | change the values of OWNER and YEAR from their original values as given here,
3 | and substitute your own.
4 |
5 |
6 | Copyright (c) ,
7 | All rights reserved.
8 |
9 | Redistribution and use in source and binary forms, with or without
10 | modification, are permitted provided that the following conditions are met:
11 |
12 | 1. Redistributions of source code must retain the above copyright notice, this
13 | list of conditions and the following disclaimer.
14 |
15 | 2. Redistributions in binary form must reproduce the above copyright notice,
16 | this list of conditions and the following disclaimer in the documentation
17 | and/or other materials provided with the distribution.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
30 |
--------------------------------------------------------------------------------
/docs/draft/licenses/BSD-3Clause-New-License.txt:
--------------------------------------------------------------------------------
1 | The following is a BSD 3-Clause ("BSD New" or "BSD Simplified") license
2 | template. To generate your own license, change the values of OWNER,
3 | ORGANIZATION and YEAR from their original values as given here, and substitute
4 | your own
5 |
6 |
7 |
8 | Copyright (c) ,
9 | All rights reserved.
10 |
11 | Redistribution and use in source and binary forms, with or without
12 | modification, are permitted provided that the following conditions are met:
13 |
14 | 1. Redistributions of source code must retain the above copyright notice, this
15 | list of conditions and the following disclaimer.
16 |
17 | 2. Redistributions in binary form must reproduce the above copyright notice,
18 | this list of conditions and the following disclaimer in the documentation
19 | and/or other materials provided with the distribution.
20 |
21 | 3. Neither the name of the copyright holder nor the names of its contributors
22 | may be used to endorse or promote products derived from this software without
23 | specific prior written permission.
24 |
25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
26 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 |
36 |
--------------------------------------------------------------------------------
/docs/draft/licenses/CDDL.txt:
--------------------------------------------------------------------------------
1 | COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0 (CDDL-1.0)
2 | 1. Definitions.
3 |
4 | 1.1. Contributor means each individual or entity that creates or contributes to
5 | the creation of Modifications.
6 |
7 | 1.2. Contributor Version means the combination of the Original Software, prior
8 | Modifications used by a Contributor (if any), and the Modifications made by
9 | that particular Contributor.
10 |
11 | 1.3. Covered Software means (a) the Original Software, or (b) Modifications, or
12 | (c) the combination of files containing Original Software with files containing
13 | Modifications, in each case including portions thereof.
14 |
15 | 1.4. Executable means the Covered Software in any form other than Source Code.
16 |
17 | 1.5. Initial Developer means the individual or entity that first makes Original
18 | Software available under this License.
19 |
20 | 1.6. Larger Work means a work which combines Covered Software or portions
21 | thereof with code not governed by the terms of this License.
22 |
23 | 1.7. License means this document.
24 |
25 | 1.8. Licensable means having the right to grant, to the maximum extent
26 | possible, whether at the time of the initial grant or subsequently acquired,
27 | any and all of the rights conveyed herein.
28 |
29 | 1.9. Modifications means the Source Code and Executable form of any of the
30 | following:
31 |
32 | A. Any file that results from an addition to, deletion from or modification of
33 | the contents of a file containing Original Software or previous Modifications;
34 |
35 | B. Any new file that contains any part of the Original Software or previous
36 | Modification; or
37 |
38 | C. Any new file that is contributed or otherwise made available under the terms
39 | of this License.
40 |
41 | 1.10. Original Software means the Source Code and Executable form of computer
42 | software code that is originally released under this License.
43 |
44 | 1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired,
45 | including without limitation, method, process, and apparatus claims, in any
46 | patent Licensable by grantor.
47 |
48 | 1.12. Source Code means (a) the common form of computer software code in which
49 | modifications are made and (b) associated documentation included in or with
50 | such code.
51 |
52 | 1.13. You (or Your) means an individual or a legal entity exercising rights
53 | under, and complying with all of the terms of, this License. For legal
54 | entities, You includes any entity which controls, is controlled by, or is under
55 | common control with You. For purposes of this definition, control means (a) the
56 | power, direct or indirect, to cause the direction or management of such entity,
57 | whether by contract or otherwise, or (b) ownership of more than fifty percent
58 | (50%) of the outstanding shares or beneficial ownership of such entity.
59 |
60 | 2. License Grants.
61 |
62 | 2.1. The Initial Developer Grant.
63 |
64 | Conditioned upon Your compliance with Section 3.1 below and subject to third
65 | party intellectual property claims, the Initial Developer hereby grants You a
66 | world-wide, royalty-free, non-exclusive license:
67 |
68 | (a) under intellectual property rights (other than patent or trademark)
69 | Licensable by Initial Developer, to use, reproduce, modify, display, perform,
70 | sublicense and distribute the Original Software (or portions thereof), with or
71 | without Modifications, and/or as part of a Larger Work; and
72 |
73 | (b) under Patent Claims infringed by the making, using or selling of Original
74 | Software, to make, have made, use, practice, sell, and offer for sale, and/or
75 | otherwise dispose of the Original Software (or portions thereof).
76 |
77 | (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date
78 | Initial Developer first distributes or otherwise makes the Original Software
79 | available to a third party under the terms of this License.
80 |
81 | (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for
82 | code that You delete from the Original Software, or (2) for infringements
83 | caused by: (i) the modification of the Original Software, or (ii) the
84 | combination of the Original Software with other software or devices.
85 |
86 | 2.2. Contributor Grant.
87 |
88 | Conditioned upon Your compliance with Section 3.1 below and subject to third
89 | party intellectual property claims, each Contributor hereby grants You a
90 | world-wide, royalty-free, non-exclusive license:
91 |
92 | (a) under intellectual property rights (other than patent or trademark)
93 | Licensable by Contributor to use, reproduce, modify, display, perform,
94 | sublicense and distribute the Modifications created by such Contributor (or
95 | portions thereof), either on an unmodified basis, with other Modifications, as
96 | Covered Software and/or as part of a Larger Work; and
97 |
98 | (b) under Patent Claims infringed by the making, using, or selling of
99 | Modifications made by that Contributor either alone and/or in combination with
100 | its Contributor Version (or portions of such combination), to make, use, sell,
101 | offer for sale, have made, and/or otherwise dispose of: (1) Modifications made
102 | by that Contributor (or portions thereof); and (2) the combination of
103 | Modifications made by that Contributor with its Contributor Version (or
104 | portions of such combination).
105 |
106 | (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the
107 | date Contributor first distributes or otherwise makes the Modifications
108 | available to a third party.
109 |
110 | (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for
111 | any code that Contributor has deleted from the Contributor Version; (2) for
112 | infringements caused by: (i) third party modifications of Contributor Version,
113 | or (ii) the combination of Modifications made by that Contributor with other
114 | software (except as part of the Contributor Version) or other devices; or (3)
115 | under Patent Claims infringed by Covered Software in the absence of
116 | Modifications made by that Contributor.
117 |
118 | 3. Distribution Obligations.
119 |
120 | 3.1. Availability of Source Code.
121 |
122 | Any Covered Software that You distribute or otherwise make available in
123 | Executable form must also be made available in Source Code form and that Source
124 | Code form must be distributed only under the terms of this License. You must
125 | include a copy of this License with every copy of the Source Code form of the
126 | Covered Software You distribute or otherwise make available. You must inform
127 | recipients of any such Covered Software in Executable form as to how they can
128 | obtain such Covered Software in Source Code form in a reasonable manner on or
129 | through a medium customarily used for software exchange.
130 |
131 | 3.2. Modifications.
132 |
133 | The Modifications that You create or to which You contribute are governed by
134 | the terms of this License. You represent that You believe Your Modifications
135 | are Your original creation(s) and/or You have sufficient rights to grant the
136 | rights conveyed by this License.
137 |
138 | 3.3. Required Notices.
139 |
140 | You must include a notice in each of Your Modifications that identifies You as
141 | the Contributor of the Modification. You may not remove or alter any copyright,
142 | patent or trademark notices contained within the Covered Software, or any
143 | notices of licensing or any descriptive text giving attribution to any
144 | Contributor or the Initial Developer.
145 |
146 | 3.4. Application of Additional Terms.
147 |
148 | You may not offer or impose any terms on any Covered Software in Source Code
149 | form that alters or restricts the applicable version of this License or the
150 | recipients rights hereunder. You may choose to offer, and to charge a fee for,
151 | warranty, support, indemnity or liability obligations to one or more recipients
152 | of Covered Software. However, you may do so only on Your own behalf, and not on
153 | behalf of the Initial Developer or any Contributor. You must make it absolutely
154 | clear that any such warranty, support, indemnity or liability obligation is
155 | offered by You alone, and You hereby agree to indemnify the Initial Developer
156 | and every Contributor for any liability incurred by the Initial Developer or
157 | such Contributor as a result of warranty, support, indemnity or liability terms
158 | You offer.
159 |
160 | 3.5. Distribution of Executable Versions.
161 |
162 | You may distribute the Executable form of the Covered Software under the terms
163 | of this License or under the terms of a license of Your choice, which may
164 | contain terms different from this License, provided that You are in compliance
165 | with the terms of this License and that the license for the Executable form
166 | does not attempt to limit or alter the recipients rights in the Source Code
167 | form from the rights set forth in this License. If You distribute the Covered
168 | Software in Executable form under a different license, You must make it
169 | absolutely clear that any terms which differ from this License are offered by
170 | You alone, not by the Initial Developer or Contributor. You hereby agree to
171 | indemnify the Initial Developer and every Contributor for any liability
172 | incurred by the Initial Developer or such Contributor as a result of any such
173 | terms You offer.
174 |
175 | 3.6. Larger Works.
176 |
177 | You may create a Larger Work by combining Covered Software with other code not
178 | governed by the terms of this License and distribute the Larger Work as a
179 | single product. In such a case, You must make sure the requirements of this
180 | License are fulfilled for the Covered Software.
181 |
182 | 4. Versions of the License.
183 |
184 | 4.1. New Versions.
185 |
186 | Sun Microsystems, Inc. is the initial license steward and may publish revised
187 | and/or new versions of this License from time to time. Each version will be
188 | given a distinguishing version number. Except as provided in Section 4.3, no
189 | one other than the license steward has the right to modify this License.
190 |
191 | 4.2. Effect of New Versions.
192 |
193 | You may always continue to use, distribute or otherwise make the Covered
194 | Software available under the terms of the version of the License under which
195 | You originally received the Covered Software. If the Initial Developer includes
196 | a notice in the Original Software prohibiting it from being distributed or
197 | otherwise made available under any subsequent version of the License, You must
198 | distribute and make the Covered Software available under the terms of the
199 | version of the License under which You originally received the Covered
200 | Software. Otherwise, You may also choose to use, distribute or otherwise make
201 | the Covered Software available under the terms of any subsequent version of the
202 | License published by the license steward.
203 |
204 | 4.3. Modified Versions.
205 |
206 | When You are an Initial Developer and You want to create a new license for Your
207 | Original Software, You may create and use a modified version of this License if
208 | You: (a) rename the license and remove any references to the name of the
209 | license steward (except to note that the license differs from this License);
210 | and (b) otherwise make it clear that the license contains terms which differ
211 | from this License.
212 |
213 | 5. DISCLAIMER OF WARRANTY.
214 |
215 | COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN AS IS BASIS, WITHOUT
216 | WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
217 | LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
218 | MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
219 | AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
220 | ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
221 | DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING,
222 | REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
223 | OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT
224 | UNDER THIS DISCLAIMER.
225 |
226 | 6. TERMINATION.
227 |
228 | 6.1. This License and the rights granted hereunder will terminate automatically
229 | if You fail to comply with terms herein and fail to cure such breach within 30
230 | days of becoming aware of the breach. Provisions which, by their nature, must
231 | remain in effect beyond the termination of this License shall survive.
232 |
233 | 6.2. If You assert a patent infringement claim (excluding declaratory judgment
234 | actions) against Initial Developer or a Contributor (the Initial Developer or
235 | Contributor against whom You assert such claim is referred to as Participant)
236 | alleging that the Participant Software (meaning the Contributor Version where
237 | the Participant is a Contributor or the Original Software where the Participant
238 | is the Initial Developer) directly or indirectly infringes any patent, then any
239 | and all rights granted directly or indirectly to You by such Participant, the
240 | Initial Developer (if the Initial Developer is not the Participant) and all
241 | Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
242 | notice from Participant terminate prospectively and automatically at the
243 | expiration of such 60 day notice period, unless if within such 60 day period
244 | You withdraw Your claim with respect to the Participant Software against such
245 | Participant either unilaterally or pursuant to a written agreement with
246 | Participant.
247 |
248 | 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user
249 | licenses that have been validly granted by You or any distributor hereunder
250 | prior to termination (excluding licenses granted to You by any distributor)
251 | shall survive termination.
252 |
253 | 7. LIMITATION OF LIABILITY.
254 |
255 | UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
256 | NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
257 | OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
258 | ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
259 | INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
260 | LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER
261 | FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN
262 | IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS
263 | LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
264 | INJURY RESULTING FROM SUCH PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW
265 | PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
266 | LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
267 | LIMITATION MAY NOT APPLY TO YOU.
268 |
269 | 8. U.S. GOVERNMENT END USERS.
270 |
271 | The Covered Software is a commercial item, as that term is defined in 48 C.F.R.
272 | 2.101 (Oct. 1995), consisting of commercial computer software (as that term is
273 | defined at 48 C.F.R. 252.227-7014(a)(1)) and commercial computer software
274 | documentation as such terms are used in 48 C.F.R. 12.212 (Sept. 1995).
275 | Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4
276 | (June 1995), all U.S. Government End Users acquire Covered Software with only
277 | those rights set forth herein. This U.S. Government Rights clause is in lieu
278 | of, and supersedes, any other FAR, DFAR, or other clause or provision that
279 | addresses Government rights in computer software under this License.
280 |
281 | 9. MISCELLANEOUS.
282 |
283 | This License represents the complete agreement concerning subject matter
284 | hereof. If any provision of this License is held to be unenforceable, such
285 | provision shall be reformed only to the extent necessary to make it
286 | enforceable. This License shall be governed by the law of the jurisdiction
287 | specified in a notice contained within the Original Software (except to the
288 | extent applicable law, if any, provides otherwise), excluding such
289 | jurisdictions conflict-of-law provisions. Any litigation relating to this
290 | License shall be subject to the jurisdiction of the courts located in the
291 | jurisdiction and venue specified in a notice contained within the Original
292 | Software, with the losing party responsible for costs, including, without
293 | limitation, court costs and reasonable attorneys fees and expenses. The
294 | application of the United Nations Convention on Contracts for the International
295 | Sale of Goods is expressly excluded. Any law or regulation which provides that
296 | the language of a contract shall be construed against the drafter shall not
297 | apply to this License. You agree that You alone are responsible for compliance
298 | with the United States export administration regulations (and the export
299 | control laws and regulation of any other countries) when You use, distribute or
300 | otherwise make available any Covered Software.
301 |
302 | 10. RESPONSIBILITY FOR CLAIMS.
303 |
304 | As between Initial Developer and the Contributors, each party is responsible
305 | for claims and damages arising, directly or indirectly, out of its utilization
306 | of rights under this License and You agree to work with Initial Developer and
307 | Contributors to distribute such responsibility on an equitable basis. Nothing
308 | herein is intended or shall be deemed to constitute any admission of liability.
309 |
--------------------------------------------------------------------------------
/docs/draft/licenses/EclipsePublicLicense.txt:
--------------------------------------------------------------------------------
1 | Eclipse Public License, Version 1.0 (EPL-1.0)
2 |
3 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
4 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
5 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
6 |
7 | 1. DEFINITIONS
8 |
9 | "Contribution" means:
10 |
11 | a) in the case of the initial Contributor, the initial code and documentation
12 | distributed under this Agreement, and
13 | b) in the case of each subsequent Contributor:
14 | i) changes to the Program, and
15 | ii) additions to the Program;
16 | where such changes and/or additions to the Program originate from and are
17 | distributed by that particular Contributor. A Contribution 'originates' from a
18 | Contributor if it was added to the Program by such Contributor itself or anyone
19 | acting on such Contributor's behalf. Contributions do not include additions to
20 | the Program which: (i) are separate modules of software distributed in
21 | conjunction with the Program under their own license agreement, and (ii) are
22 | not derivative works of the Program.
23 | "Contributor" means any person or entity that distributes the Program.
24 |
25 | "Licensed Patents " mean patent claims licensable by a Contributor which are
26 | necessarily infringed by the use or sale of its Contribution alone or when
27 | combined with the Program.
28 |
29 | "Program" means the Contributions distributed in accordance with this
30 | Agreement.
31 |
32 | "Recipient" means anyone who receives the Program under this Agreement,
33 | including all Contributors.
34 |
35 | 2. GRANT OF RIGHTS
36 |
37 | a) Subject to the terms of this Agreement, each Contributor hereby grants
38 | Recipient a non-exclusive, worldwide, royalty-free copyright license to
39 | reproduce, prepare derivative works of, publicly display, publicly perform,
40 | distribute and sublicense the Contribution of such Contributor, if any, and
41 | such derivative works, in source code and object code form.
42 | b) Subject to the terms of this Agreement, each Contributor hereby grants
43 | Recipient a non-exclusive, worldwide, royalty-free patent license under
44 | Licensed Patents to make, use, sell, offer to sell, import and otherwise
45 | transfer the Contribution of such Contributor, if any, in source code and
46 | object code form. This patent license shall apply to the combination of the
47 | Contribution and the Program if, at the time the Contribution is added by the
48 | Contributor, such addition of the Contribution causes such combination to be
49 | covered by the Licensed Patents. The patent license shall not apply to any
50 | other combinations which include the Contribution. No hardware per se is
51 | licensed hereunder.
52 | c) Recipient understands that although each Contributor grants the licenses to
53 | its Contributions set forth herein, no assurances are provided by any
54 | Contributor that the Program does not infringe the patent or other intellectual
55 | property rights of any other entity. Each Contributor disclaims any liability
56 | to Recipient for claims brought by any other entity based on infringement of
57 | intellectual property rights or otherwise. As a condition to exercising the
58 | rights and licenses granted hereunder, each Recipient hereby assumes sole
59 | responsibility to secure any other intellectual property rights needed, if any.
60 | For example, if a third party patent license is required to allow Recipient to
61 | distribute the Program, it is Recipient's responsibility to acquire that
62 | license before distributing the Program.
63 | d) Each Contributor represents that to its knowledge it has sufficient
64 | copyright rights in its Contribution, if any, to grant the copyright license
65 | set forth in this Agreement.
66 | 3. REQUIREMENTS
67 |
68 | A Contributor may choose to distribute the Program in object code form under
69 | its own license agreement, provided that:
70 |
71 | a) it complies with the terms and conditions of this Agreement; and
72 | b) its license agreement:
73 | i) effectively disclaims on behalf of all Contributors all warranties and
74 | conditions, express and implied, including warranties or conditions of title
75 | and non-infringement, and implied warranties or conditions of merchantability
76 | and fitness for a particular purpose;
77 | ii) effectively excludes on behalf of all Contributors all liability for
78 | damages, including direct, indirect, special, incidental and consequential
79 | damages, such as lost profits;
80 | iii) states that any provisions which differ from this Agreement are offered by
81 | that Contributor alone and not by any other party; and
82 | iv) states that source code for the Program is available from such Contributor,
83 | and informs licensees how to obtain it in a reasonable manner on or through a
84 | medium customarily used for software exchange.
85 | When the Program is made available in source code form:
86 |
87 | a) it must be made available under this Agreement; and
88 | b) a copy of this Agreement must be included with each copy of the Program.
89 | Contributors may not remove or alter any copyright notices contained within the
90 | Program.
91 | Each Contributor must identify itself as the originator of its Contribution, if
92 | any, in a manner that reasonably allows subsequent Recipients to identify the
93 | originator of the Contribution.
94 |
95 | 4. COMMERCIAL DISTRIBUTION
96 |
97 | Commercial distributors of software may accept certain responsibilities with
98 | respect to end users, business partners and the like. While this license is
99 | intended to facilitate the commercial use of the Program, the Contributor who
100 | includes the Program in a commercial product offering should do so in a manner
101 | which does not create potential liability for other Contributors. Therefore, if
102 | a Contributor includes the Program in a commercial product offering, such
103 | Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
104 | every other Contributor ("Indemnified Contributor") against any losses, damages
105 | and costs (collectively "Losses") arising from claims, lawsuits and other legal
106 | actions brought by a third party against the Indemnified Contributor to the
107 | extent caused by the acts or omissions of such Commercial Contributor in
108 | connection with its distribution of the Program in a commercial product
109 | offering. The obligations in this section do not apply to any claims or Losses
110 | relating to any actual or alleged intellectual property infringement. In order
111 | to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
112 | Contributor in writing of such claim, and b) allow the Commercial Contributor
113 | to control, and cooperate with the Commercial Contributor in, the defense and
114 | any related settlement negotiations. The Indemnified Contributor may
115 | participate in any such claim at its own expense.
116 |
117 | For example, a Contributor might include the Program in a commercial product
118 | offering, Product X. That Contributor is then a Commercial Contributor. If that
119 | Commercial Contributor then makes performance claims, or offers warranties
120 | related to Product X, those performance claims and warranties are such
121 | Commercial Contributor's responsibility alone. Under this section, the
122 | Commercial Contributor would have to defend claims against the other
123 | Contributors related to those performance claims and warranties, and if a court
124 | requires any other Contributor to pay any damages as a result, the Commercial
125 | Contributor must pay those damages.
126 |
127 | 5. NO WARRANTY
128 |
129 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
130 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
131 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
132 | NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
133 | Recipient is solely responsible for determining the appropriateness of using
134 | and distributing the Program and assumes all risks associated with its exercise
135 | of rights under this Agreement , including but not limited to the risks and
136 | costs of program errors, compliance with applicable laws, damage to or loss of
137 | data, programs or equipment, and unavailability or interruption of operations.
138 |
139 | 6. DISCLAIMER OF LIABILITY
140 |
141 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
142 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
143 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
144 | PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
145 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
146 | WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
147 | GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
148 |
149 | 7. GENERAL
150 |
151 | If any provision of this Agreement is invalid or unenforceable under applicable
152 | law, it shall not affect the validity or enforceability of the remainder of the
153 | terms of this Agreement, and without further action by the parties hereto, such
154 | provision shall be reformed to the minimum extent necessary to make such
155 | provision valid and enforceable.
156 |
157 | If Recipient institutes patent litigation against any entity (including a
158 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself
159 | (excluding combinations of the Program with other software or hardware)
160 | infringes such Recipient's patent(s), then such Recipient's rights granted
161 | under Section 2(b) shall terminate as of the date such litigation is filed.
162 |
163 | All Recipient's rights under this Agreement shall terminate if it fails to
164 | comply with any of the material terms or conditions of this Agreement and does
165 | not cure such failure in a reasonable period of time after becoming aware of
166 | such noncompliance. If all Recipient's rights under this Agreement terminate,
167 | Recipient agrees to cease use and distribution of the Program as soon as
168 | reasonably practicable. However, Recipient's obligations under this Agreement
169 | and any licenses granted by Recipient relating to the Program shall continue
170 | and survive.
171 |
172 | Everyone is permitted to copy and distribute copies of this Agreement, but in
173 | order to avoid inconsistency the Agreement is copyrighted and may only be
174 | modified in the following manner. The Agreement Steward reserves the right to
175 | publish new versions (including revisions) of this Agreement from time to time.
176 | No one other than the Agreement Steward has the right to modify this Agreement.
177 | The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation
178 | may assign the responsibility to serve as the Agreement Steward to a suitable
179 | separate entity. Each new version of the Agreement will be given a
180 | distinguishing version number. The Program (including Contributions) may always
181 | be distributed subject to the version of the Agreement under which it was
182 | received. In addition, after a new version of the Agreement is published,
183 | Contributor may elect to distribute the Program (including its Contributions)
184 | under the new version. Except as expressly stated in Sections 2(a) and 2(b)
185 | above, Recipient receives no rights or licenses to the intellectual property of
186 | any Contributor under this Agreement, whether expressly, by implication,
187 | estoppel or otherwise. All rights in the Program not expressly granted under
188 | this Agreement are reserved.
189 |
190 | This Agreement is governed by the laws of the State of New York and the
191 | intellectual property laws of the United States of America. No party to this
192 | Agreement will bring a legal action under this Agreement more than one year
193 | after the cause of action arose. Each party waives its rights to a jury trial
194 | in any resulting litigation.
195 |
--------------------------------------------------------------------------------
/docs/draft/licenses/GPL-2.txt:
--------------------------------------------------------------------------------
1 | How to Apply These Terms to Your New Programs
2 |
3 | If you develop a new program, and you want it to be of the greatest possible
4 | use to the public, the best way to achieve this is to make it free software
5 | which everyone can redistribute and change under these terms.
6 |
7 | To do so, attach the following notices to the program. It is safest to attach
8 | them to the start of each source file to most effectively convey the exclusion
9 | of warranty; and each file should have at least the "copyright" line and a
10 | pointer to where the full notice is found.
11 |
12 | One line to give the program's name and a brief idea of what it does.
13 | Copyright (C)
14 |
15 | This program is free software; you can redistribute it and/or modify it under
16 | the terms of the GNU General Public License as published by the Free Software
17 | Foundation; either version 2 of the License, or (at your option) any later
18 | version.
19 |
20 | This program is distributed in the hope that it will be useful, but WITHOUT ANY
21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
22 | PARTICULAR PURPOSE. See the GNU General Public License for more details.
23 |
24 | You should have received a copy of the GNU General Public License along with
25 | this program; if not, write to the Free Software Foundation, Inc., 59 Temple
26 | Place, Suite 330, Boston, MA 02111-1307 USA
27 | Also add information on how to contact you by electronic and paper mail.
28 |
29 | If the program is interactive, make it output a short notice like this when it
30 | starts in an interactive mode:
31 |
32 | Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
33 | with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
34 | and you are welcome to redistribute it under certain conditions; type `show c'
35 | for details.
36 | The hypothetical commands `show w' and `show c' should show the appropriate
37 | parts of the General Public License. Of course, the commands you use may be
38 | called something other than `show w' and `show c'; they could even be
39 | mouse-clicks or menu items--whatever suits your program.
40 |
41 | You should also get your employer (if you work as a programmer) or your school,
42 | if any, to sign a "copyright disclaimer" for the program, if necessary. Here is
43 | a sample; alter the names:
44 |
45 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
46 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
47 |
48 | signature of Ty Coon, 1 April 1989
49 | Ty Coon, President of Vice
50 | This General Public License does not permit incorporating your program into
51 | proprietary programs. If your program is a subroutine library, you may consider
52 | it more useful to permit linking proprietary applications with the library. If
53 | this is what you want to do, use the GNU Library General Public License instead
54 | of this License.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | GNU GENERAL PUBLIC LICENSE
63 | Version 2, June 1991
64 |
65 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.
66 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
67 |
68 | Everyone is permitted to copy and distribute verbatim copies
69 | of this license document, but changing it is not allowed.
70 |
71 | Preamble
72 |
73 | The licenses for most software are designed to take away your freedom to share
74 | and change it. By contrast, the GNU General Public License is intended to
75 | guarantee your freedom to share and change free software--to make sure the
76 | software is free for all its users. This General Public License applies to most
77 | of the Free Software Foundation's software and to any other program whose
78 | authors commit to using it. (Some other Free Software Foundation software is
79 | covered by the GNU Library General Public License instead.) You can apply it to
80 | your programs, too.
81 |
82 | When we speak of free software, we are referring to freedom, not price. Our
83 | General Public Licenses are designed to make sure that you have the freedom to
84 | distribute copies of free software (and charge for this service if you wish),
85 | that you receive source code or can get it if you want it, that you can change
86 | the software or use pieces of it in new free programs; and that you know you
87 | can do these things.
88 |
89 | To protect your rights, we need to make restrictions that forbid anyone to deny
90 | you these rights or to ask you to surrender the rights. These restrictions
91 | translate to certain responsibilities for you if you distribute copies of the
92 | software, or if you modify it.
93 |
94 | For example, if you distribute copies of such a program, whether gratis or for
95 | a fee, you must give the recipients all the rights that you have. You must make
96 | sure that they, too, receive or can get the source code. And you must show them
97 | these terms so they know their rights.
98 |
99 | We protect your rights with two steps: (1) copyright the software, and (2)
100 | offer you this license which gives you legal permission to copy, distribute
101 | and/or modify the software.
102 |
103 | Also, for each author's protection and ours, we want to make certain that
104 | everyone understands that there is no warranty for this free software. If the
105 | software is modified by someone else and passed on, we want its recipients to
106 | know that what they have is not the original, so that any problems introduced
107 | by others will not reflect on the original authors' reputations.
108 |
109 | Finally, any free program is threatened constantly by software patents. We wish
110 | to avoid the danger that redistributors of a free program will individually
111 | obtain patent licenses, in effect making the program proprietary. To prevent
112 | this, we have made it clear that any patent must be licensed for everyone's
113 | free use or not licensed at all.
114 |
115 | The precise terms and conditions for copying, distribution and modification
116 | follow.
117 |
118 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
119 |
120 | 0. This License applies to any program or other work which contains a notice
121 | placed by the copyright holder saying it may be distributed under the terms of
122 | this General Public License. The "Program", below, refers to any such program
123 | or work, and a "work based on the Program" means either the Program or any
124 | derivative work under copyright law: that is to say, a work containing the
125 | Program or a portion of it, either verbatim or with modifications and/or
126 | translated into another language. (Hereinafter, translation is included without
127 | limitation in the term "modification".) Each licensee is addressed as "you".
128 |
129 | Activities other than copying, distribution and modification are not covered by
130 | this License; they are outside its scope. The act of running the Program is not
131 | restricted, and the output from the Program is covered only if its contents
132 | constitute a work based on the Program (independent of having been made by
133 | running the Program). Whether that is true depends on what the Program does.
134 |
135 | 1. You may copy and distribute verbatim copies of the Program's source code as
136 | you receive it, in any medium, provided that you conspicuously and
137 | appropriately publish on each copy an appropriate copyright notice and
138 | disclaimer of warranty; keep intact all the notices that refer to this License
139 | and to the absence of any warranty; and give any other recipients of the
140 | Program a copy of this License along with the Program.
141 |
142 | You may charge a fee for the physical act of transferring a copy, and you may
143 | at your option offer warranty protection in exchange for a fee.
144 |
145 | 2. You may modify your copy or copies of the Program or any portion of it, thus
146 | forming a work based on the Program, and copy and distribute such modifications
147 | or work under the terms of Section 1 above, provided that you also meet all of
148 | these conditions:
149 |
150 | a) You must cause the modified files to carry prominent notices stating that
151 | you changed the files and the date of any change.
152 |
153 | b) You must cause any work that you distribute or publish, that in whole or in
154 | part contains or is derived from the Program or any part thereof, to be
155 | licensed as a whole at no charge to all third parties under the terms of this
156 | License.
157 |
158 | c) If the modified program normally reads commands interactively when run, you
159 | must cause it, when started running for such interactive use in the most
160 | ordinary way, to print or display an announcement including an appropriate
161 | copyright notice and a notice that there is no warranty (or else, saying that
162 | you provide a warranty) and that users may redistribute the program under these
163 | conditions, and telling the user how to view a copy of this License.
164 | (Exception: if the Program itself is interactive but does not normally print
165 | such an announcement, your work based on the Program is not required to print
166 | an announcement.)
167 | These requirements apply to the modified work as a whole. If identifiable
168 | sections of that work are not derived from the Program, and can be reasonably
169 | considered independent and separate works in themselves, then this License, and
170 | its terms, do not apply to those sections when you distribute them as separate
171 | works. But when you distribute the same sections as part of a whole which is a
172 | work based on the Program, the distribution of the whole must be on the terms
173 | of this License, whose permissions for other licensees extend to the entire
174 | whole, and thus to each and every part regardless of who wrote it.
175 |
176 | Thus, it is not the intent of this section to claim rights or contest your
177 | rights to work written entirely by you; rather, the intent is to exercise the
178 | right to control the distribution of derivative or collective works based on
179 | the Program.
180 |
181 | In addition, mere aggregation of another work not based on the Program with the
182 | Program (or with a work based on the Program) on a volume of a storage or
183 | distribution medium does not bring the other work under the scope of this
184 | License.
185 |
186 | 3. You may copy and distribute the Program (or a work based on it, under
187 | Section 2) in object code or executable form under the terms of Sections 1 and
188 | 2 above provided that you also do one of the following:
189 |
190 | a) Accompany it with the complete corresponding machine-readable source code,
191 | which must be distributed under the terms of Sections 1 and 2 above on a medium
192 | customarily used for software interchange; or,
193 |
194 | b) Accompany it with a written offer, valid for at least three years, to give
195 | any third party, for a charge no more than your cost of physically performing
196 | source distribution, a complete machine-readable copy of the corresponding
197 | source code, to be distributed under the terms of Sections 1 and 2 above on a
198 | medium customarily used for software interchange; or,
199 |
200 | c) Accompany it with the information you received as to the offer to distribute
201 | corresponding source code. (This alternative is allowed only for noncommercial
202 | distribution and only if you received the program in object code or executable
203 | form with such an offer, in accord with Subsection b above.)
204 | The source code for a work means the preferred form of the work for making
205 | modifications to it. For an executable work, complete source code means all the
206 | source code for all modules it contains, plus any associated interface
207 | definition files, plus the scripts used to control compilation and installation
208 | of the executable. However, as a special exception, the source code distributed
209 | need not include anything that is normally distributed (in either source or
210 | binary form) with the major components (compiler, kernel, and so on) of the
211 | operating system on which the executable runs, unless that component itself
212 | accompanies the executable.
213 |
214 | If distribution of executable or object code is made by offering access to copy
215 | from a designated place, then offering equivalent access to copy the source
216 | code from the same place counts as distribution of the source code, even though
217 | third parties are not compelled to copy the source along with the object code.
218 |
219 | 4. You may not copy, modify, sublicense, or distribute the Program except as
220 | expressly provided under this License. Any attempt otherwise to copy, modify,
221 | sublicense or distribute the Program is void, and will automatically terminate
222 | your rights under this License. However, parties who have received copies, or
223 | rights, from you under this License will not have their licenses terminated so
224 | long as such parties remain in full compliance.
225 |
226 | 5. You are not required to accept this License, since you have not signed it.
227 | However, nothing else grants you permission to modify or distribute the Program
228 | or its derivative works. These actions are prohibited by law if you do not
229 | accept this License. Therefore, by modifying or distributing the Program (or
230 | any work based on the Program), you indicate your acceptance of this License to
231 | do so, and all its terms and conditions for copying, distributing or modifying
232 | the Program or works based on it.
233 |
234 | 6. Each time you redistribute the Program (or any work based on the Program),
235 | the recipient automatically receives a license from the original licensor to
236 | copy, distribute or modify the Program subject to these terms and conditions.
237 | You may not impose any further restrictions on the recipients' exercise of the
238 | rights granted herein. You are not responsible for enforcing compliance by
239 | third parties to this License.
240 |
241 | 7. If, as a consequence of a court judgment or allegation of patent
242 | infringement or for any other reason (not limited to patent issues), conditions
243 | are imposed on you (whether by court order, agreement or otherwise) that
244 | contradict the conditions of this License, they do not excuse you from the
245 | conditions of this License. If you cannot distribute so as to satisfy
246 | simultaneously your obligations under this License and any other pertinent
247 | obligations, then as a consequence you may not distribute the Program at all.
248 | For example, if a patent license would not permit royalty-free redistribution
249 | of the Program by all those who receive copies directly or indirectly through
250 | you, then the only way you could satisfy both it and this License would be to
251 | refrain entirely from distribution of the Program.
252 |
253 | If any portion of this section is held invalid or unenforceable under any
254 | particular circumstance, the balance of the section is intended to apply and
255 | the section as a whole is intended to apply in other circumstances.
256 |
257 | It is not the purpose of this section to induce you to infringe any patents or
258 | other property right claims or to contest validity of any such claims; this
259 | section has the sole purpose of protecting the integrity of the free software
260 | distribution system, which is implemented by public license practices. Many
261 | people have made generous contributions to the wide range of software
262 | distributed through that system in reliance on consistent application of that
263 | system; it is up to the author/donor to decide if he or she is willing to
264 | distribute software through any other system and a licensee cannot impose that
265 | choice.
266 |
267 | This section is intended to make thoroughly clear what is believed to be a
268 | consequence of the rest of this License.
269 |
270 | 8. If the distribution and/or use of the Program is restricted in certain
271 | countries either by patents or by copyrighted interfaces, the original
272 | copyright holder who places the Program under this License may add an explicit
273 | geographical distribution limitation excluding those countries, so that
274 | distribution is permitted only in or among countries not thus excluded. In such
275 | case, this License incorporates the limitation as if written in the body of
276 | this License.
277 |
278 | 9. The Free Software Foundation may publish revised and/or new versions of the
279 | General Public License from time to time. Such new versions will be similar in
280 | spirit to the present version, but may differ in detail to address new problems
281 | or concerns.
282 |
283 | Each version is given a distinguishing version number. If the Program specifies
284 | a version number of this License which applies to it and "any later version",
285 | you have the option of following the terms and conditions either of that
286 | version or of any later version published by the Free Software Foundation. If
287 | the Program does not specify a version number of this License, you may choose
288 | any version ever published by the Free Software Foundation.
289 |
290 | 10. If you wish to incorporate parts of the Program into other free programs
291 | whose distribution conditions are different, write to the author to ask for
292 | permission. For software which is copyrighted by the Free Software Foundation,
293 | write to the Free Software Foundation; we sometimes make exceptions for this.
294 | Our decision will be guided by the two goals of preserving the free status of
295 | all derivatives of our free software and of promoting the sharing and reuse of
296 | software generally.
297 |
298 | NO WARRANTY
299 |
300 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
301 | THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
302 | STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
303 | PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
304 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
305 | FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
306 | PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU
307 | ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
308 |
309 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
310 | ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
311 | PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
312 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
313 | INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
314 | BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
315 | FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
316 | OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
317 |
318 | END OF TERMS AND CONDITIONS
319 |
320 |
--------------------------------------------------------------------------------
/docs/draft/licenses/GPL-3.txt:
--------------------------------------------------------------------------------
1 | How to Apply These Terms to Your New Programs
2 | If you develop a new program, and you want it to be of the greatest possible
3 | use to the public, the best way to achieve this is to make it free software
4 | which everyone can redistribute and change under these terms.
5 |
6 | To do so, attach the following notices to the program. It is safest to attach
7 | them to the start of each source file to most effectively state the exclusion
8 | of warranty; and each file should have at least the “copyright” line and a
9 | pointer to where the full notice is found.
10 |
11 |
12 | Copyright (C)
13 |
14 | This program is free software: you can redistribute it and/or modify
15 | it under the terms of the GNU General Public License as published by
16 | the Free Software Foundation, either version 3 of the License, or
17 | (at your option) any later version.
18 |
19 | This program is distributed in the hope that it will be useful,
20 | but WITHOUT ANY WARRANTY; without even the implied warranty of
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 | GNU General Public License for more details.
23 |
24 | You should have received a copy of the GNU General Public License
25 | along with this program. If not, see .
26 | Also add information on how to contact you by electronic and paper mail.
27 |
28 | If the program does terminal interaction, make it output a short notice like
29 | this when it starts in an interactive mode:
30 |
31 | Copyright (C)
32 |
33 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
34 | This is free software, and you are welcome to redistribute it
35 | under certain conditions; type `show c' for details.
36 | The hypothetical commands `show w' and `show c' should show the appropriate
37 | parts of the General Public License. Of course, your program's commands might
38 | be different; for a GUI interface, you would use an “about box”.
39 |
40 | You should also get your employer (if you work as a programmer) or school, if
41 | any, to sign a “copyright disclaimer” for the program, if necessary. For more
42 | information on this, and how to apply and follow the GNU GPL, see
43 | .
44 |
45 | The GNU General Public License does not permit incorporating your program into
46 | proprietary programs. If your program is a subroutine library, you may consider
47 | it more useful to permit linking proprietary applications with the library. If
48 | this is what you want to do, use the GNU Lesser General Public License instead
49 | of this License. But first, please read
50 | .
51 |
52 |
53 |
54 |
55 | GNU GENERAL PUBLIC LICENSE
56 | Version 3, 29 June 2007
57 |
58 | Copyright (C) 2007 Free Software Foundation, Inc.
59 |
60 | Everyone is permitted to copy and distribute verbatim copies of this license
61 | document, but changing it is not allowed.
62 |
63 | Preamble
64 | The GNU General Public License is a free, copyleft license for software and
65 | other kinds of works.
66 |
67 | The licenses for most software and other practical works are designed to take
68 | away your freedom to share and change the works. By contrast, the GNU General
69 | Public License is intended to guarantee your freedom to share and change all
70 | versions of a program--to make sure it remains free software for all its users.
71 | We, the Free Software Foundation, use the GNU General Public License for most
72 | of our software; it applies also to any other work released this way by its
73 | authors. You can apply it to your programs, too.
74 |
75 | When we speak of free software, we are referring to freedom, not price. Our
76 | General Public Licenses are designed to make sure that you have the freedom to
77 | distribute copies of free software (and charge for them if you wish), that you
78 | receive source code or can get it if you want it, that you can change the
79 | software or use pieces of it in new free programs, and that you know you can do
80 | these things.
81 |
82 | To protect your rights, we need to prevent others from denying you these rights
83 | or asking you to surrender the rights. Therefore, you have certain
84 | responsibilities if you distribute copies of the software, or if you modify it:
85 | responsibilities to respect the freedom of others.
86 |
87 | For example, if you distribute copies of such a program, whether gratis or for
88 | a fee, you must pass on to the recipients the same freedoms that you received.
89 | You must make sure that they, too, receive or can get the source code. And you
90 | must show them these terms so they know their rights.
91 |
92 | Developers that use the GNU GPL protect your rights with two steps: (1) assert
93 | copyright on the software, and (2) offer you this License giving you legal
94 | permission to copy, distribute and/or modify it.
95 |
96 | For the developers' and authors' protection, the GPL clearly explains that
97 | there is no warranty for this free software. For both users' and authors' sake,
98 | the GPL requires that modified versions be marked as changed, so that their
99 | problems will not be attributed erroneously to authors of previous versions.
100 |
101 | Some devices are designed to deny users access to install or run modified
102 | versions of the software inside them, although the manufacturer can do so. This
103 | is fundamentally incompatible with the aim of protecting users' freedom to
104 | change the software. The systematic pattern of such abuse occurs in the area of
105 | products for individuals to use, which is precisely where it is most
106 | unacceptable. Therefore, we have designed this version of the GPL to prohibit
107 | the practice for those products. If such problems arise substantially in other
108 | domains, we stand ready to extend this provision to those domains in future
109 | versions of the GPL, as needed to protect the freedom of users.
110 |
111 | Finally, every program is threatened constantly by software patents. States
112 | should not allow patents to restrict development and use of software on
113 | general-purpose computers, but in those that do, we wish to avoid the special
114 | danger that patents applied to a free program could make it effectively
115 | proprietary. To prevent this, the GPL assures that patents cannot be used to
116 | render the program non-free.
117 |
118 | The precise terms and conditions for copying, distribution and modification
119 | follow.
120 |
121 | TERMS AND CONDITIONS
122 | 0. Definitions.
123 | “This License” refers to version 3 of the GNU General Public License.
124 |
125 | “Copyright” also means copyright-like laws that apply to other kinds of works,
126 | such as semiconductor masks.
127 |
128 | “The Program” refers to any copyrightable work licensed under this License.
129 | Each licensee is addressed as “you”. “Licensees” and “recipients” may be
130 | individuals or organizations.
131 |
132 | To “modify” a work means to copy from or adapt all or part of the work in a
133 | fashion requiring copyright permission, other than the making of an exact copy.
134 | The resulting work is called a “modified version” of the earlier work or a work
135 | “based on” the earlier work.
136 |
137 | A “covered work” means either the unmodified Program or a work based on the
138 | Program.
139 |
140 | To “propagate” a work means to do anything with it that, without permission,
141 | would make you directly or secondarily liable for infringement under applicable
142 | copyright law, except executing it on a computer or modifying a private copy.
143 | Propagation includes copying, distribution (with or without modification),
144 | making available to the public, and in some countries other activities as well.
145 |
146 | To “convey” a work means any kind of propagation that enables other parties to
147 | make or receive copies. Mere interaction with a user through a computer
148 | network, with no transfer of a copy, is not conveying.
149 |
150 | An interactive user interface displays “Appropriate Legal Notices” to the
151 | extent that it includes a convenient and prominently visible feature that (1)
152 | displays an appropriate copyright notice, and (2) tells the user that there is
153 | no warranty for the work (except to the extent that warranties are provided),
154 | that licensees may convey the work under this License, and how to view a copy
155 | of this License. If the interface presents a list of user commands or options,
156 | such as a menu, a prominent item in the list meets this criterion.
157 |
158 | 1. Source Code.
159 | The “source code” for a work means the preferred form of the work for making
160 | modifications to it. “Object code” means any non-source form of a work.
161 |
162 | A “Standard Interface” means an interface that either is an official standard
163 | defined by a recognized standards body, or, in the case of interfaces specified
164 | for a particular programming language, one that is widely used among developers
165 | working in that language.
166 |
167 | The “System Libraries” of an executable work include anything, other than the
168 | work as a whole, that (a) is included in the normal form of packaging a Major
169 | Component, but which is not part of that Major Component, and (b) serves only
170 | to enable use of the work with that Major Component, or to implement a Standard
171 | Interface for which an implementation is available to the public in source code
172 | form. A “Major Component”, in this context, means a major essential component
173 | (kernel, window system, and so on) of the specific operating system (if any) on
174 | which the executable work runs, or a compiler used to produce the work, or an
175 | object code interpreter used to run it.
176 |
177 | The “Corresponding Source” for a work in object code form means all the source
178 | code needed to generate, install, and (for an executable work) run the object
179 | code and to modify the work, including scripts to control those activities.
180 | However, it does not include the work's System Libraries, or general-purpose
181 | tools or generally available free programs which are used unmodified in
182 | performing those activities but which are not part of the work. For example,
183 | Corresponding Source includes interface definition files associated with source
184 | files for the work, and the source code for shared libraries and dynamically
185 | linked subprograms that the work is specifically designed to require, such as
186 | by intimate data communication or control flow between those subprograms and
187 | other parts of the work.
188 |
189 | The Corresponding Source need not include anything that users can regenerate
190 | automatically from other parts of the Corresponding Source.
191 |
192 | The Corresponding Source for a work in source code form is that same work.
193 |
194 | 2. Basic Permissions.
195 | All rights granted under this License are granted for the term of copyright on
196 | the Program, and are irrevocable provided the stated conditions are met. This
197 | License explicitly affirms your unlimited permission to run the unmodified
198 | Program. The output from running a covered work is covered by this License only
199 | if the output, given its content, constitutes a covered work. This License
200 | acknowledges your rights of fair use or other equivalent, as provided by
201 | copyright law.
202 |
203 | You may make, run and propagate covered works that you do not convey, without
204 | conditions so long as your license otherwise remains in force. You may convey
205 | covered works to others for the sole purpose of having them make modifications
206 | exclusively for you, or provide you with facilities for running those works,
207 | provided that you comply with the terms of this License in conveying all
208 | material for which you do not control copyright. Those thus making or running
209 | the covered works for you must do so exclusively on your behalf, under your
210 | direction and control, on terms that prohibit them from making any copies of
211 | your copyrighted material outside their relationship with you.
212 |
213 | Conveying under any other circumstances is permitted solely under the
214 | conditions stated below. Sublicensing is not allowed; section 10 makes it
215 | unnecessary.
216 |
217 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
218 | No covered work shall be deemed part of an effective technological measure
219 | under any applicable law fulfilling obligations under article 11 of the WIPO
220 | copyright treaty adopted on 20 December 1996, or similar laws prohibiting or
221 | restricting circumvention of such measures.
222 |
223 | When you convey a covered work, you waive any legal power to forbid
224 | circumvention of technological measures to the extent such circumvention is
225 | effected by exercising rights under this License with respect to the covered
226 | work, and you disclaim any intention to limit operation or modification of the
227 | work as a means of enforcing, against the work's users, your or third parties'
228 | legal rights to forbid circumvention of technological measures.
229 |
230 | 4. Conveying Verbatim Copies.
231 | You may convey verbatim copies of the Program's source code as you receive it,
232 | in any medium, provided that you conspicuously and appropriately publish on
233 | each copy an appropriate copyright notice; keep intact all notices stating that
234 | this License and any non-permissive terms added in accord with section 7 apply
235 | to the code; keep intact all notices of the absence of any warranty; and give
236 | all recipients a copy of this License along with the Program.
237 |
238 | You may charge any price or no price for each copy that you convey, and you may
239 | offer support or warranty protection for a fee.
240 |
241 | 5. Conveying Modified Source Versions.
242 | You may convey a work based on the Program, or the modifications to produce it
243 | from the Program, in the form of source code under the terms of section 4,
244 | provided that you also meet all of these conditions:
245 |
246 | a) The work must carry prominent notices stating that you modified it, and
247 | giving a relevant date.
248 | b) The work must carry prominent notices stating that it is released under this
249 | License and any conditions added under section 7. This requirement modifies the
250 | requirement in section 4 to “keep intact all notices”.
251 | c) You must license the entire work, as a whole, under this License to anyone
252 | who comes into possession of a copy. This License will therefore apply, along
253 | with any applicable section 7 additional terms, to the whole of the work, and
254 | all its parts, regardless of how they are packaged. This License gives no
255 | permission to license the work in any other way, but it does not invalidate
256 | such permission if you have separately received it.
257 | d) If the work has interactive user interfaces, each must display Appropriate
258 | Legal Notices; however, if the Program has interactive interfaces that do not
259 | display Appropriate Legal Notices, your work need not make them do so.
260 | A compilation of a covered work with other separate and independent works,
261 | which are not by their nature extensions of the covered work, and which are not
262 | combined with it such as to form a larger program, in or on a volume of a
263 | storage or distribution medium, is called an “aggregate” if the compilation and
264 | its resulting copyright are not used to limit the access or legal rights of the
265 | compilation's users beyond what the individual works permit. Inclusion of a
266 | covered work in an aggregate does not cause this License to apply to the other
267 | parts of the aggregate.
268 |
269 | 6. Conveying Non-Source Forms.
270 | You may convey a covered work in object code form under the terms of sections 4
271 | and 5, provided that you also convey the machine-readable Corresponding Source
272 | under the terms of this License, in one of these ways:
273 |
274 | a) Convey the object code in, or embodied in, a physical product (including a
275 | physical distribution medium), accompanied by the Corresponding Source fixed on
276 | a durable physical medium customarily used for software interchange.
277 | b) Convey the object code in, or embodied in, a physical product (including a
278 | physical distribution medium), accompanied by a written offer, valid for at
279 | least three years and valid for as long as you offer spare parts or customer
280 | support for that product model, to give anyone who possesses the object code
281 | either (1) a copy of the Corresponding Source for all the software in the
282 | product that is covered by this License, on a durable physical medium
283 | customarily used for software interchange, for a price no more than your
284 | reasonable cost of physically performing this conveying of source, or (2)
285 | access to copy the Corresponding Source from a network server at no charge.
286 | c) Convey individual copies of the object code with a copy of the written offer
287 | to provide the Corresponding Source. This alternative is allowed only
288 | occasionally and noncommercially, and only if you received the object code with
289 | such an offer, in accord with subsection 6b.
290 | d) Convey the object code by offering access from a designated place (gratis or
291 | for a charge), and offer equivalent access to the Corresponding Source in the
292 | same way through the same place at no further charge. You need not require
293 | recipients to copy the Corresponding Source along with the object code. If the
294 | place to copy the object code is a network server, the Corresponding Source may
295 | be on a different server (operated by you or a third party) that supports
296 | equivalent copying facilities, provided you maintain clear directions next to
297 | the object code saying where to find the Corresponding Source. Regardless of
298 | what server hosts the Corresponding Source, you remain obligated to ensure that
299 | it is available for as long as needed to satisfy these requirements.
300 | e) Convey the object code using peer-to-peer transmission, provided you inform
301 | other peers where the object code and Corresponding Source of the work are
302 | being offered to the general public at no charge under subsection 6d.
303 | A separable portion of the object code, whose source code is excluded from the
304 | Corresponding Source as a System Library, need not be included in conveying the
305 | object code work.
306 |
307 | A “User Product” is either (1) a “consumer product”, which means any tangible
308 | personal property which is normally used for personal, family, or household
309 | purposes, or (2) anything designed or sold for incorporation into a dwelling.
310 | In determining whether a product is a consumer product, doubtful cases shall be
311 | resolved in favor of coverage. For a particular product received by a
312 | particular user, “normally used” refers to a typical or common use of that
313 | class of product, regardless of the status of the particular user or of the way
314 | in which the particular user actually uses, or expects or is expected to use,
315 | the product. A product is a consumer product regardless of whether the product
316 | has substantial commercial, industrial or non-consumer uses, unless such uses
317 | represent the only significant mode of use of the product.
318 |
319 | “Installation Information” for a User Product means any methods, procedures,
320 | authorization keys, or other information required to install and execute
321 | modified versions of a covered work in that User Product from a modified
322 | version of its Corresponding Source. The information must suffice to ensure
323 | that the continued functioning of the modified object code is in no case
324 | prevented or interfered with solely because modification has been made.
325 |
326 | If you convey an object code work under this section in, or with, or
327 | specifically for use in, a User Product, and the conveying occurs as part of a
328 | transaction in which the right of possession and use of the User Product is
329 | transferred to the recipient in perpetuity or for a fixed term (regardless of
330 | how the transaction is characterized), the Corresponding Source conveyed under
331 | this section must be accompanied by the Installation Information. But this
332 | requirement does not apply if neither you nor any third party retains the
333 | ability to install modified object code on the User Product (for example, the
334 | work has been installed in ROM).
335 |
336 | The requirement to provide Installation Information does not include a
337 | requirement to continue to provide support service, warranty, or updates for a
338 | work that has been modified or installed by the recipient, or for the User
339 | Product in which it has been modified or installed. Access to a network may be
340 | denied when the modification itself materially and adversely affects the
341 | operation of the network or violates the rules and protocols for communication
342 | across the network.
343 |
344 | Corresponding Source conveyed, and Installation Information provided, in accord
345 | with this section must be in a format that is publicly documented (and with an
346 | implementation available to the public in source code form), and must require
347 | no special password or key for unpacking, reading or copying.
348 |
349 | 7. Additional Terms.
350 | “Additional permissions” are terms that supplement the terms of this License by
351 | making exceptions from one or more of its conditions. Additional permissions
352 | that are applicable to the entire Program shall be treated as though they were
353 | included in this License, to the extent that they are valid under applicable
354 | law. If additional permissions apply only to part of the Program, that part may
355 | be used separately under those permissions, but the entire Program remains
356 | governed by this License without regard to the additional permissions.
357 |
358 | When you convey a copy of a covered work, you may at your option remove any
359 | additional permissions from that copy, or from any part of it. (Additional
360 | permissions may be written to require their own removal in certain cases when
361 | you modify the work.) You may place additional permissions on material, added
362 | by you to a covered work, for which you have or can give appropriate copyright
363 | permission.
364 |
365 | Notwithstanding any other provision of this License, for material you add to a
366 | covered work, you may (if authorized by the copyright holders of that material)
367 | supplement the terms of this License with terms:
368 |
369 | a) Disclaiming warranty or limiting liability differently from the terms of
370 | sections 15 and 16 of this License; or
371 | b) Requiring preservation of specified reasonable legal notices or author
372 | attributions in that material or in the Appropriate Legal Notices displayed by
373 | works containing it; or
374 | c) Prohibiting misrepresentation of the origin of that material, or requiring
375 | that modified versions of such material be marked in reasonable ways as
376 | different from the original version; or
377 | d) Limiting the use for publicity purposes of names of licensors or authors of
378 | the material; or
379 | e) Declining to grant rights under trademark law for use of some trade names,
380 | trademarks, or service marks; or
381 | f) Requiring indemnification of licensors and authors of that material by
382 | anyone who conveys the material (or modified versions of it) with contractual
383 | assumptions of liability to the recipient, for any liability that these
384 | contractual assumptions directly impose on those licensors and authors.
385 | All other non-permissive additional terms are considered “further restrictions”
386 | within the meaning of section 10. If the Program as you received it, or any
387 | part of it, contains a notice stating that it is governed by this License along
388 | with a term that is a further restriction, you may remove that term. If a
389 | license document contains a further restriction but permits relicensing or
390 | conveying under this License, you may add to a covered work material governed
391 | by the terms of that license document, provided that the further restriction
392 | does not survive such relicensing or conveying.
393 |
394 | If you add terms to a covered work in accord with this section, you must place,
395 | in the relevant source files, a statement of the additional terms that apply to
396 | those files, or a notice indicating where to find the applicable terms.
397 |
398 | Additional terms, permissive or non-permissive, may be stated in the form of a
399 | separately written license, or stated as exceptions; the above requirements
400 | apply either way.
401 |
402 | 8. Termination.
403 | You may not propagate or modify a covered work except as expressly provided
404 | under this License. Any attempt otherwise to propagate or modify it is void,
405 | and will automatically terminate your rights under this License (including any
406 | patent licenses granted under the third paragraph of section 11).
407 |
408 | However, if you cease all violation of this License, then your license from a
409 | particular copyright holder is reinstated (a) provisionally, unless and until
410 | the copyright holder explicitly and finally terminates your license, and (b)
411 | permanently, if the copyright holder fails to notify you of the violation by
412 | some reasonable means prior to 60 days after the cessation.
413 |
414 | Moreover, your license from a particular copyright holder is reinstated
415 | permanently if the copyright holder notifies you of the violation by some
416 | reasonable means, this is the first time you have received notice of violation
417 | of this License (for any work) from that copyright holder, and you cure the
418 | violation prior to 30 days after your receipt of the notice.
419 |
420 | Termination of your rights under this section does not terminate the licenses
421 | of parties who have received copies or rights from you under this License. If
422 | your rights have been terminated and not permanently reinstated, you do not
423 | qualify to receive new licenses for the same material under section 10.
424 |
425 | 9. Acceptance Not Required for Having Copies.
426 | You are not required to accept this License in order to receive or run a copy
427 | of the Program. Ancillary propagation of a covered work occurring solely as a
428 | consequence of using peer-to-peer transmission to receive a copy likewise does
429 | not require acceptance. However, nothing other than this License grants you
430 | permission to propagate or modify any covered work. These actions infringe
431 | copyright if you do not accept this License. Therefore, by modifying or
432 | propagating a covered work, you indicate your acceptance of this License to do
433 | so.
434 |
435 | 10. Automatic Licensing of Downstream Recipients.
436 | Each time you convey a covered work, the recipient automatically receives a
437 | license from the original licensors, to run, modify and propagate that work,
438 | subject to this License. You are not responsible for enforcing compliance by
439 | third parties with this License.
440 |
441 | An “entity transaction” is a transaction transferring control of an
442 | organization, or substantially all assets of one, or subdividing an
443 | organization, or merging organizations. If propagation of a covered work
444 | results from an entity transaction, each party to that transaction who receives
445 | a copy of the work also receives whatever licenses to the work the party's
446 | predecessor in interest had or could give under the previous paragraph, plus a
447 | right to possession of the Corresponding Source of the work from the
448 | predecessor in interest, if the predecessor has it or can get it with
449 | reasonable efforts.
450 |
451 | You may not impose any further restrictions on the exercise of the rights
452 | granted or affirmed under this License. For example, you may not impose a
453 | license fee, royalty, or other charge for exercise of rights granted under this
454 | License, and you may not initiate litigation (including a cross-claim or
455 | counterclaim in a lawsuit) alleging that any patent claim is infringed by
456 | making, using, selling, offering for sale, or importing the Program or any
457 | portion of it.
458 |
459 | 11. Patents.
460 | A “contributor” is a copyright holder who authorizes use under this License of
461 | the Program or a work on which the Program is based. The work thus licensed is
462 | called the contributor's “contributor version”.
463 |
464 | A contributor's “essential patent claims” are all patent claims owned or
465 | controlled by the contributor, whether already acquired or hereafter acquired,
466 | that would be infringed by some manner, permitted by this License, of making,
467 | using, or selling its contributor version, but do not include claims that would
468 | be infringed only as a consequence of further modification of the contributor
469 | version. For purposes of this definition, “control” includes the right to grant
470 | patent sublicenses in a manner consistent with the requirements of this
471 | License.
472 |
473 | Each contributor grants you a non-exclusive, worldwide, royalty-free patent
474 | license under the contributor's essential patent claims, to make, use, sell,
475 | offer for sale, import and otherwise run, modify and propagate the contents of
476 | its contributor version.
477 |
478 | In the following three paragraphs, a “patent license” is any express agreement
479 | or commitment, however denominated, not to enforce a patent (such as an express
480 | permission to practice a patent or covenant not to sue for patent
481 | infringement). To “grant” such a patent license to a party means to make such
482 | an agreement or commitment not to enforce a patent against the party.
483 |
484 | If you convey a covered work, knowingly relying on a patent license, and the
485 | Corresponding Source of the work is not available for anyone to copy, free of
486 | charge and under the terms of this License, through a publicly available
487 | network server or other readily accessible means, then you must either (1)
488 | cause the Corresponding Source to be so available, or (2) arrange to deprive
489 | yourself of the benefit of the patent license for this particular work, or (3)
490 | arrange, in a manner consistent with the requirements of this License, to
491 | extend the patent license to downstream recipients. “Knowingly relying” means
492 | you have actual knowledge that, but for the patent license, your conveying the
493 | covered work in a country, or your recipient's use of the covered work in a
494 | country, would infringe one or more identifiable patents in that country that
495 | you have reason to believe are valid.
496 |
497 | If, pursuant to or in connection with a single transaction or arrangement, you
498 | convey, or propagate by procuring conveyance of, a covered work, and grant a
499 | patent license to some of the parties receiving the covered work authorizing
500 | them to use, propagate, modify or convey a specific copy of the covered work,
501 | then the patent license you grant is automatically extended to all recipients
502 | of the covered work and works based on it.
503 |
504 | A patent license is “discriminatory” if it does not include within the scope of
505 | its coverage, prohibits the exercise of, or is conditioned on the non-exercise
506 | of one or more of the rights that are specifically granted under this License.
507 | You may not convey a covered work if you are a party to an arrangement with a
508 | third party that is in the business of distributing software, under which you
509 | make payment to the third party based on the extent of your activity of
510 | conveying the work, and under which the third party grants, to any of the
511 | parties who would receive the covered work from you, a discriminatory patent
512 | license (a) in connection with copies of the covered work conveyed by you (or
513 | copies made from those copies), or (b) primarily for and in connection with
514 | specific products or compilations that contain the covered work, unless you
515 | entered into that arrangement, or that patent license was granted, prior to 28
516 | March 2007.
517 |
518 | Nothing in this License shall be construed as excluding or limiting any implied
519 | license or other defenses to infringement that may otherwise be available to
520 | you under applicable patent law.
521 |
522 | 12. No Surrender of Others' Freedom.
523 | If conditions are imposed on you (whether by court order, agreement or
524 | otherwise) that contradict the conditions of this License, they do not excuse
525 | you from the conditions of this License. If you cannot convey a covered work so
526 | as to satisfy simultaneously your obligations under this License and any other
527 | pertinent obligations, then as a consequence you may not convey it at all. For
528 | example, if you agree to terms that obligate you to collect a royalty for
529 | further conveying from those to whom you convey the Program, the only way you
530 | could satisfy both those terms and this License would be to refrain entirely
531 | from conveying the Program.
532 |
533 | 13. Use with the GNU Affero General Public License.
534 | Notwithstanding any other provision of this License, you have permission to
535 | link or combine any covered work with a work licensed under version 3 of the
536 | GNU Affero General Public License into a single combined work, and to convey
537 | the resulting work. The terms of this License will continue to apply to the
538 | part which is the covered work, but the special requirements of the GNU Affero
539 | General Public License, section 13, concerning interaction through a network
540 | will apply to the combination as such.
541 |
542 | 14. Revised Versions of this License.
543 | The Free Software Foundation may publish revised and/or new versions of the GNU
544 | General Public License from time to time. Such new versions will be similar in
545 | spirit to the present version, but may differ in detail to address new problems
546 | or concerns.
547 |
548 | Each version is given a distinguishing version number. If the Program specifies
549 | that a certain numbered version of the GNU General Public License “or any later
550 | version” applies to it, you have the option of following the terms and
551 | conditions either of that numbered version or of any later version published by
552 | the Free Software Foundation. If the Program does not specify a version number
553 | of the GNU General Public License, you may choose any version ever published by
554 | the Free Software Foundation.
555 |
556 | If the Program specifies that a proxy can decide which future versions of the
557 | GNU General Public License can be used, that proxy's public statement of
558 | acceptance of a version permanently authorizes you to choose that version for
559 | the Program.
560 |
561 | Later license versions may give you additional or different permissions.
562 | However, no additional obligations are imposed on any author or copyright
563 | holder as a result of your choosing to follow a later version.
564 |
565 | 15. Disclaimer of Warranty.
566 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
567 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
568 | PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
569 | EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
570 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
571 | QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
572 | DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
573 | CORRECTION.
574 |
575 | 16. Limitation of Liability.
576 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
577 | COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS
578 | PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
579 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
580 | THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
581 | INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
582 | PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY
583 | HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
584 |
585 | 17. Interpretation of Sections 15 and 16.
586 | If the disclaimer of warranty and limitation of liability provided above cannot
587 | be given local legal effect according to their terms, reviewing courts shall
588 | apply local law that most closely approximates an absolute waiver of all civil
589 | liability in connection with the Program, unless a warranty or assumption of
590 | liability accompanies a copy of the Program in return for a fee.
591 |
592 | END OF TERMS AND CONDITIONS
593 |
--------------------------------------------------------------------------------
/docs/draft/licenses/LGPL-2.1.txt:
--------------------------------------------------------------------------------
1 | How to Apply These Terms to Your New Libraries
2 | If you develop a new library, and you want it to be of the greatest possible
3 | use to the public, we recommend making it free software that everyone can
4 | redistribute and change. You can do so by permitting redistribution under these
5 | terms (or, alternatively, under the terms of the ordinary General Public
6 | License).
7 | To apply these terms, attach the following notices to the library. It is safest
8 | to attach them to the start of each source file to most effectively convey the
9 | exclusion of warranty; and each file should have at least the "copyright" line
10 | and a pointer to where the full notice is found.
11 |
12 | Copyright
13 | (C)
14 |
15 | This library is free software; you can redistribute it and/or modify it under
16 | the terms of the GNU Lesser General Public License as published by the Free
17 | Software Foundation; either version 2.1 of the License, or (at your option) any
18 | later version.
19 |
20 | This library is distributed in the hope that it will be useful, but WITHOUT ANY
21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
22 | PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
23 |
24 | You should have received a copy of the GNU Lesser General Public License along
25 | with this library; if not, write to the Free Software Foundation, Inc., 59
26 | Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 | Also add information on how to contact you by electronic and paper mail.
28 |
29 | You should also get your employer (if you work as a programmer) or your school,
30 | if any, to sign a "copyright disclaimer" for the library, if necessary. Here is
31 | a sample; alter the names:
32 |
33 | Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob'
34 | (a library for tweaking knobs) written by James Random Hacker.
35 |
36 | signature of Ty Coon, 1 April 1990
37 | Ty Coon, President of Vice
38 |
39 |
40 |
41 |
42 | GNU Lesser General Public License
43 | Version 2.1, February 1999
44 |
45 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite
46 | 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute
47 | verbatim copies of this license document, but changing it is not allowed.
48 |
49 | [This is the first released version of the Lesser GPL. It also counts as the
50 | successor of the GNU Library Public License, version 2, hence the version
51 | number 2.1.]
52 | Preamble
53 | The licenses for most software are designed to take away your freedom to share
54 | and change it. By contrast, the GNU General Public Licenses are intended to
55 | guarantee your freedom to share and change free software--to make sure the
56 | software is free for all its users.
57 |
58 | This license, the Lesser General Public License, applies to some specially
59 | designated software packages--typically libraries--of the Free Software
60 | Foundation and other authors who decide to use it. You can use it too, but we
61 | suggest you first think carefully about whether this license or the ordinary
62 | General Public License is the better strategy to use in any particular case,
63 | based on the explanations below.
64 |
65 | When we speak of free software, we are referring to freedom of use, not price.
66 | Our General Public Licenses are designed to make sure that you have the freedom
67 | to distribute copies of free software (and charge for this service if you
68 | wish); that you receive source code or can get it if you want it; that you can
69 | change the software and use pieces of it in new free programs; and that you are
70 | informed that you can do these things.
71 |
72 | To protect your rights, we need to make restrictions that forbid distributors
73 | to deny you these rights or to ask you to surrender these rights. These
74 | restrictions translate to certain responsibilities for you if you distribute
75 | copies of the library or if you modify it.
76 |
77 | For example, if you distribute copies of the library, whether gratis or for a
78 | fee, you must give the recipients all the rights that we gave you. You must
79 | make sure that they, too, receive or can get the source code. If you link other
80 | code with the library, you must provide complete object files to the
81 | recipients, so that they can relink them with the library after making changes
82 | to the library and recompiling it. And you must show them these terms so they
83 | know their rights.
84 |
85 | We protect your rights with a two-step method: (1) we copyright the library,
86 | and (2) we offer you this license, which gives you legal permission to copy,
87 | distribute and/or modify the library.
88 |
89 | To protect each distributor, we want to make it very clear that there is no
90 | warranty for the free library. Also, if the library is modified by someone else
91 | and passed on, the recipients should know that what they have is not the
92 | original version, so that the original author's reputation will not be affected
93 | by problems that might be introduced by others.
94 |
95 | Finally, software patents pose a constant threat to the existence of any free
96 | program. We wish to make sure that a company cannot effectively restrict the
97 | users of a free program by obtaining a restrictive license from a patent
98 | holder. Therefore, we insist that any patent license obtained for a version of
99 | the library must be consistent with the full freedom of use specified in this
100 | license.
101 |
102 | Most GNU software, including some libraries, is covered by the ordinary GNU
103 | General Public License. This license, the GNU Lesser General Public License,
104 | applies to certain designated libraries, and is quite different from the
105 | ordinary General Public License. We use this license for certain libraries in
106 | order to permit linking those libraries into non-free programs.
107 |
108 | When a program is linked with a library, whether statically or using a shared
109 | library, the combination of the two is legally speaking a combined work, a
110 | derivative of the original library. The ordinary General Public License
111 | therefore permits such linking only if the entire combination fits its criteria
112 | of freedom. The Lesser General Public License permits more lax criteria for
113 | linking other code with the library.
114 |
115 | We call this license the "Lesser" General Public License because it does Less
116 | to protect the user's freedom than the ordinary General Public License. It also
117 | provides other free software developers Less of an advantage over competing
118 | non-free programs. These disadvantages are the reason we use the ordinary
119 | General Public License for many libraries. However, the Lesser license provides
120 | advantages in certain special circumstances.
121 |
122 | For example, on rare occasions, there may be a special need to encourage the
123 | widest possible use of a certain library, so that it becomes a de-facto
124 | standard. To achieve this, non-free programs must be allowed to use the
125 | library. A more frequent case is that a free library does the same job as
126 | widely used non-free libraries. In this case, there is little to gain by
127 | limiting the free library to free software only, so we use the Lesser General
128 | Public License.
129 |
130 | In other cases, permission to use a particular library in non-free programs
131 | enables a greater number of people to use a large body of free software. For
132 | example, permission to use the GNU C Library in non-free programs enables many
133 | more people to use the whole GNU operating system, as well as its variant, the
134 | GNU/Linux operating system.
135 |
136 | Although the Lesser General Public License is Less protective of the users'
137 | freedom, it does ensure that the user of a program that is linked with the
138 | Library has the freedom and the wherewithal to run that program using a
139 | modified version of the Library.
140 |
141 | The precise terms and conditions for copying, distribution and modification
142 | follow. Pay close attention to the difference between a "work based on the
143 | library" and a "work that uses the library". The former contains code derived
144 | from the library, whereas the latter must be combined with the library in order
145 | to run.
146 |
147 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
148 | 0. This License Agreement applies to any software library or other program
149 | which contains a notice placed by the copyright holder or other authorized
150 | party saying it may be distributed under the terms of this Lesser General
151 | Public License (also called "this License"). Each licensee is addressed as
152 | "you".
153 |
154 | A "library" means a collection of software functions and/or data prepared so as
155 | to be conveniently linked with application programs (which use some of those
156 | functions and data) to form executables.
157 |
158 | The "Library", below, refers to any such software library or work which has
159 | been distributed under these terms. A "work based on the Library" means either
160 | the Library or any derivative work under copyright law: that is to say, a work
161 | containing the Library or a portion of it, either verbatim or with
162 | modifications and/or translated straightforwardly into another language.
163 | (Hereinafter, translation is included without limitation in the term
164 | "modification".)
165 |
166 | "Source code" for a work means the preferred form of the work for making
167 | modifications to it. For a library, complete source code means all the source
168 | code for all modules it contains, plus any associated interface definition
169 | files, plus the scripts used to control compilation and installation of the
170 | library.
171 |
172 | Activities other than copying, distribution and modification are not covered by
173 | this License; they are outside its scope. The act of running a program using
174 | the Library is not restricted, and output from such a program is covered only
175 | if its contents constitute a work based on the Library (independent of the use
176 | of the Library in a tool for writing it). Whether that is true depends on what
177 | the Library does and what the program that uses the Library does.
178 |
179 | 1. You may copy and distribute verbatim copies of the Library's complete source
180 | code as you receive it, in any medium, provided that you conspicuously and
181 | appropriately publish on each copy an appropriate copyright notice and
182 | disclaimer of warranty; keep intact all the notices that refer to this License
183 | and to the absence of any warranty; and distribute a copy of this License along
184 | with the Library.
185 |
186 | You may charge a fee for the physical act of transferring a copy, and you may
187 | at your option offer warranty protection in exchange for a fee.
188 |
189 | 2. You may modify your copy or copies of the Library or any portion of it, thus
190 | forming a work based on the Library, and copy and distribute such modifications
191 | or work under the terms of Section 1 above, provided that you also meet all of
192 | these conditions:
193 |
194 | a) The modified work must itself be a software library.
195 |
196 | b) You must cause the files modified to carry prominent notices stating that
197 | you changed the files and the date of any change.
198 |
199 | c) You must cause the whole of the work to be licensed at no charge to all
200 | third parties under the terms of this License.
201 |
202 | d) If a facility in the modified Library refers to a function or a table of
203 | data to be supplied by an application program that uses the facility, other
204 | than as an argument passed when the facility is invoked, then you must make a
205 | good faith effort to ensure that, in the event an application does not supply
206 | such function or table, the facility still operates, and performs whatever part
207 | of its purpose remains meaningful.
208 |
209 | (For example, a function in a library to compute square roots has a purpose
210 | that is entirely well-defined independent of the application. Therefore,
211 | Subsection 2d requires that any application-supplied function or table used by
212 | this function must be optional: if the application does not supply it, the
213 | square root function must still compute square roots.)
214 |
215 | These requirements apply to the modified work as a whole. If identifiable
216 | sections of that work are not derived from the Library, and can be reasonably
217 | considered independent and separate works in themselves, then this License, and
218 | its terms, do not apply to those sections when you distribute them as separate
219 | works. But when you distribute the same sections as part of a whole which is a
220 | work based on the Library, the distribution of the whole must be on the terms
221 | of this License, whose permissions for other licensees extend to the entire
222 | whole, and thus to each and every part regardless of who wrote it.
223 |
224 | Thus, it is not the intent of this section to claim rights or contest your
225 | rights to work written entirely by you; rather, the intent is to exercise the
226 | right to control the distribution of derivative or collective works based on
227 | the Library.
228 |
229 | In addition, mere aggregation of another work not based on the Library with the
230 | Library (or with a work based on the Library) on a volume of a storage or
231 | distribution medium does not bring the other work under the scope of this
232 | License.
233 | 3. You may opt to apply the terms of the ordinary GNU General Public License
234 | instead of this License to a given copy of the Library. To do this, you must
235 | alter all the notices that refer to this License, so that they refer to the
236 | ordinary GNU General Public License, version 2, instead of to this License. (If
237 | a newer version than version 2 of the ordinary GNU General Public License has
238 | appeared, then you can specify that version instead if you wish.) Do not make
239 | any other change in these notices.
240 |
241 | Once this change is made in a given copy, it is irreversible for that copy, so
242 | the ordinary GNU General Public License applies to all subsequent copies and
243 | derivative works made from that copy.
244 |
245 | This option is useful when you wish to copy part of the code of the Library
246 | into a program that is not a library.
247 |
248 | 4. You may copy and distribute the Library (or a portion or derivative of it,
249 | under Section 2) in object code or executable form under the terms of Sections
250 | 1 and 2 above provided that you accompany it with the complete corresponding
251 | machine-readable source code, which must be distributed under the terms of
252 | Sections 1 and 2 above on a medium customarily used for software interchange.
253 |
254 | If distribution of object code is made by offering access to copy from a
255 | designated place, then offering equivalent access to copy the source code from
256 | the same place satisfies the requirement to distribute the source code, even
257 | though third parties are not compelled to copy the source along with the object
258 | code.
259 |
260 | 5. A program that contains no derivative of any portion of the Library, but is
261 | designed to work with the Library by being compiled or linked with it, is
262 | called a "work that uses the Library". Such a work, in isolation, is not a
263 | derivative work of the Library, and therefore falls outside the scope of this
264 | License.
265 |
266 | However, linking a "work that uses the Library" with the Library creates an
267 | executable that is a derivative of the Library (because it contains portions of
268 | the Library), rather than a "work that uses the library". The executable is
269 | therefore covered by this License. Section 6 states terms for distribution of
270 | such executables.
271 |
272 | When a "work that uses the Library" uses material from a header file that is
273 | part of the Library, the object code for the work may be a derivative work of
274 | the Library even though the source code is not. Whether this is true is
275 | especially significant if the work can be linked without the Library, or if the
276 | work is itself a library. The threshold for this to be true is not precisely
277 | defined by law.
278 |
279 | If such an object file uses only numerical parameters, data structure layouts
280 | and accessors, and small macros and small inline functions (ten lines or less
281 | in length), then the use of the object file is unrestricted, regardless of
282 | whether it is legally a derivative work. (Executables containing this object
283 | code plus portions of the Library will still fall under Section 6.)
284 |
285 | Otherwise, if the work is a derivative of the Library, you may distribute the
286 | object code for the work under the terms of Section 6. Any executables
287 | containing that work also fall under Section 6, whether or not they are linked
288 | directly with the Library itself.
289 |
290 | 6. As an exception to the Sections above, you may also combine or link a "work
291 | that uses the Library" with the Library to produce a work containing portions
292 | of the Library, and distribute that work under terms of your choice, provided
293 | that the terms permit modification of the work for the customer's own use and
294 | reverse engineering for debugging such modifications.
295 |
296 | You must give prominent notice with each copy of the work that the Library is
297 | used in it and that the Library and its use are covered by this License. You
298 | must supply a copy of this License. If the work during execution displays
299 | copyright notices, you must include the copyright notice for the Library among
300 | them, as well as a reference directing the user to the copy of this License.
301 | Also, you must do one of these things:
302 |
303 | a) Accompany the work with the complete corresponding machine-readable source
304 | code for the Library including whatever changes were used in the work (which
305 | must be distributed under Sections 1 and 2 above); and, if the work is an
306 | executable linked with the Library, with the complete machine-readable "work
307 | that uses the Library", as object code and/or source code, so that the user can
308 | modify the Library and then relink to produce a modified executable containing
309 | the modified Library. (It is understood that the user who changes the contents
310 | of definitions files in the Library will not necessarily be able to recompile
311 | the application to use the modified definitions.)
312 |
313 | b) Use a suitable shared library mechanism for linking with the Library. A
314 | suitable mechanism is one that (1) uses at run time a copy of the library
315 | already present on the user's computer system, rather than copying library
316 | functions into the executable, and (2) will operate properly with a modified
317 | version of the library, if the user installs one, as long as the modified
318 | version is interface-compatible with the version that the work was made with.
319 |
320 | c) Accompany the work with a written offer, valid for at least three years, to
321 | give the same user the materials specified in Subsection 6a, above, for a
322 | charge no more than the cost of performing this distribution.
323 |
324 | d) If distribution of the work is made by offering access to copy from a
325 | designated place, offer equivalent access to copy the above specified materials
326 | from the same place.
327 |
328 | e) Verify that the user has already received a copy of these materials or that
329 | you have already sent this user a copy.
330 | For an executable, the required form of the "work that uses the Library" must
331 | include any data and utility programs needed for reproducing the executable
332 | from it. However, as a special exception, the materials to be distributed need
333 | not include anything that is normally distributed (in either source or binary
334 | form) with the major components (compiler, kernel, and so on) of the operating
335 | system on which the executable runs, unless that component itself accompanies
336 | the executable.
337 |
338 | It may happen that this requirement contradicts the license restrictions of
339 | other proprietary libraries that do not normally accompany the operating
340 | system. Such a contradiction means you cannot use both them and the Library
341 | together in an executable that you distribute.
342 |
343 | 7. You may place library facilities that are a work based on the Library
344 | side-by-side in a single library together with other library facilities not
345 | covered by this License, and distribute such a combined library, provided that
346 | the separate distribution of the work based on the Library and of the other
347 | library facilities is otherwise permitted, and provided that you do these two
348 | things:
349 |
350 | a) Accompany the combined library with a copy of the same work based on the
351 | Library, uncombined with any other library facilities. This must be distributed
352 | under the terms of the Sections above.
353 |
354 | b) Give prominent notice with the combined library of the fact that part of it
355 | is a work based on the Library, and explaining where to find the accompanying
356 | uncombined form of the same work.
357 | 8. You may not copy, modify, sublicense, link with, or distribute the Library
358 | except as expressly provided under this License. Any attempt otherwise to copy,
359 | modify, sublicense, link with, or distribute the Library is void, and will
360 | automatically terminate your rights under this License. However, parties who
361 | have received copies, or rights, from you under this License will not have
362 | their licenses terminated so long as such parties remain in full compliance.
363 |
364 | 9. You are not required to accept this License, since you have not signed it.
365 | However, nothing else grants you permission to modify or distribute the Library
366 | or its derivative works. These actions are prohibited by law if you do not
367 | accept this License. Therefore, by modifying or distributing the Library (or
368 | any work based on the Library), you indicate your acceptance of this License to
369 | do so, and all its terms and conditions for copying, distributing or modifying
370 | the Library or works based on it.
371 |
372 | 10. Each time you redistribute the Library (or any work based on the Library),
373 | the recipient automatically receives a license from the original licensor to
374 | copy, distribute, link with or modify the Library subject to these terms and
375 | conditions. You may not impose any further restrictions on the recipients'
376 | exercise of the rights granted herein. You are not responsible for enforcing
377 | compliance by third parties with this License.
378 |
379 | 11. If, as a consequence of a court judgment or allegation of patent
380 | infringement or for any other reason (not limited to patent issues), conditions
381 | are imposed on you (whether by court order, agreement or otherwise) that
382 | contradict the conditions of this License, they do not excuse you from the
383 | conditions of this License. If you cannot distribute so as to satisfy
384 | simultaneously your obligations under this License and any other pertinent
385 | obligations, then as a consequence you may not distribute the Library at all.
386 | For example, if a patent license would not permit royalty-free redistribution
387 | of the Library by all those who receive copies directly or indirectly through
388 | you, then the only way you could satisfy both it and this License would be to
389 | refrain entirely from distribution of the Library.
390 |
391 | If any portion of this section is held invalid or unenforceable under any
392 | particular circumstance, the balance of the section is intended to apply, and
393 | the section as a whole is intended to apply in other circumstances.
394 |
395 | It is not the purpose of this section to induce you to infringe any patents or
396 | other property right claims or to contest validity of any such claims; this
397 | section has the sole purpose of protecting the integrity of the free software
398 | distribution system which is implemented by public license practices. Many
399 | people have made generous contributions to the wide range of software
400 | distributed through that system in reliance on consistent application of that
401 | system; it is up to the author/donor to decide if he or she is willing to
402 | distribute software through any other system and a licensee cannot impose that
403 | choice.
404 |
405 | This section is intended to make thoroughly clear what is believed to be a
406 | consequence of the rest of this License.
407 |
408 | 12. If the distribution and/or use of the Library is restricted in certain
409 | countries either by patents or by copyrighted interfaces, the original
410 | copyright holder who places the Library under this License may add an explicit
411 | geographical distribution limitation excluding those countries, so that
412 | distribution is permitted only in or among countries not thus excluded. In such
413 | case, this License incorporates the limitation as if written in the body of
414 | this License.
415 |
416 | 13. The Free Software Foundation may publish revised and/or new versions of the
417 | Lesser General Public License from time to time. Such new versions will be
418 | similar in spirit to the present version, but may differ in detail to address
419 | new problems or concerns.
420 |
421 | Each version is given a distinguishing version number. If the Library specifies
422 | a version number of this License which applies to it and "any later version",
423 | you have the option of following the terms and conditions either of that
424 | version or of any later version published by the Free Software Foundation. If
425 | the Library does not specify a license version number, you may choose any
426 | version ever published by the Free Software Foundation.
427 |
428 | 14. If you wish to incorporate parts of the Library into other free programs
429 | whose distribution conditions are incompatible with these, write to the author
430 | to ask for permission. For software which is copyrighted by the Free Software
431 | Foundation, write to the Free Software Foundation; we sometimes make exceptions
432 | for this. Our decision will be guided by the two goals of preserving the free
433 | status of all derivatives of our free software and of promoting the sharing and
434 | reuse of software generally.
435 |
436 | NO WARRANTY
437 |
438 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
439 | THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
440 | STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
441 | LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
442 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
443 | FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
444 | PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU
445 | ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
446 |
447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
448 | ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
449 | LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
450 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
451 | INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
452 | BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
453 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER
454 | OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
455 |
456 | END OF TERMS AND CONDITIONS
457 |
--------------------------------------------------------------------------------
/docs/draft/licenses/LGPL-3.0.txt:
--------------------------------------------------------------------------------
1 | This license is a set of additional permissions added to version 3 of the GNU
2 | General Public License.
3 |
4 |
5 |
6 |
7 |
8 | GNU LESSER GENERAL PUBLIC LICENSE
9 | Version 3, 29 June 2007
10 |
11 | Copyright (C) 2007 Free Software Foundation, Inc.
12 |
13 | Everyone is permitted to copy and distribute verbatim copies of this license
14 | document, but changing it is not allowed.
15 |
16 | This version of the GNU Lesser General Public License incorporates the terms
17 | and conditions of version 3 of the GNU General Public License, supplemented by
18 | the additional permissions listed below.
19 |
20 | 0. Additional Definitions.
21 | As used herein, “this License” refers to version 3 of the GNU Lesser General
22 | Public License, and the “GNU GPL” refers to version 3 of the GNU General Public
23 | License.
24 |
25 | “The Library” refers to a covered work governed by this License, other than an
26 | Application or a Combined Work as defined below.
27 |
28 | An “Application” is any work that makes use of an interface provided by the
29 | Library, but which is not otherwise based on the Library. Defining a subclass
30 | of a class defined by the Library is deemed a mode of using an interface
31 | provided by the Library.
32 |
33 | A “Combined Work” is a work produced by combining or linking an Application
34 | with the Library. The particular version of the Library with which the Combined
35 | Work was made is also called the “Linked Version”.
36 |
37 | The “Minimal Corresponding Source” for a Combined Work means the Corresponding
38 | Source for the Combined Work, excluding any source code for portions of the
39 | Combined Work that, considered in isolation, are based on the Application, and
40 | not on the Linked Version.
41 |
42 | The “Corresponding Application Code” for a Combined Work means the object code
43 | and/or source code for the Application, including any data and utility programs
44 | needed for reproducing the Combined Work from the Application, but excluding
45 | the System Libraries of the Combined Work.
46 |
47 | 1. Exception to Section 3 of the GNU GPL.
48 | You may convey a covered work under sections 3 and 4 of this License without
49 | being bound by section 3 of the GNU GPL.
50 |
51 | 2. Conveying Modified Versions.
52 | If you modify a copy of the Library, and, in your modifications, a facility
53 | refers to a function or data to be supplied by an Application that uses the
54 | facility (other than as an argument passed when the facility is invoked), then
55 | you may convey a copy of the modified version:
56 |
57 | a) under this License, provided that you make a good faith effort to ensure
58 | that, in the event an Application does not supply the function or data, the
59 | facility still operates, and performs whatever part of its purpose remains
60 | meaningful, or
61 | b) under the GNU GPL, with none of the additional permissions of this License
62 | applicable to that copy.
63 | 3. Object Code Incorporating Material from Library Header Files.
64 | The object code form of an Application may incorporate material from a header
65 | file that is part of the Library. You may convey such object code under terms
66 | of your choice, provided that, if the incorporated material is not limited to
67 | numerical parameters, data structure layouts and accessors, or small macros,
68 | inline functions and templates (ten or fewer lines in length), you do both of
69 | the following:
70 |
71 | a) Give prominent notice with each copy of the object code that the Library is
72 | used in it and that the Library and its use are covered by this License.
73 | b) Accompany the object code with a copy of the GNU GPL and this license
74 | document.
75 | 4. Combined Works.
76 | You may convey a Combined Work under terms of your choice that, taken together,
77 | effectively do not restrict modification of the portions of the Library
78 | contained in the Combined Work and reverse engineering for debugging such
79 | modifications, if you also do each of the following:
80 |
81 | a) Give prominent notice with each copy of the Combined Work that the Library
82 | is used in it and that the Library and its use are covered by this License.
83 | b) Accompany the Combined Work with a copy of the GNU GPL and this license
84 | document.
85 | c) For a Combined Work that displays copyright notices during execution,
86 | include the copyright notice for the Library among these notices, as well as a
87 | reference directing the user to the copies of the GNU GPL and this license
88 | document.
89 | d) Do one of the following:
90 | 0) Convey the Minimal Corresponding Source under the terms of this License, and
91 | the Corresponding Application Code in a form suitable for, and under terms that
92 | permit, the user to recombine or relink the Application with a modified version
93 | of the Linked Version to produce a modified Combined Work, in the manner
94 | specified by section 6 of the GNU GPL for conveying Corresponding Source.
95 | 1) Use a suitable shared library mechanism for linking with the Library. A
96 | suitable mechanism is one that (a) uses at run time a copy of the Library
97 | already present on the user's computer system, and (b) will operate properly
98 | with a modified version of the Library that is interface-compatible with the
99 | Linked Version.
100 | e) Provide Installation Information, but only if you would otherwise be
101 | required to provide such information under section 6 of the GNU GPL, and only
102 | to the extent that such information is necessary to install and execute a
103 | modified version of the Combined Work produced by recombining or relinking the
104 | Application with a modified version of the Linked Version. (If you use option
105 | 4d0, the Installation Information must accompany the Minimal Corresponding
106 | Source and Corresponding Application Code. If you use option 4d1, you must
107 | provide the Installation Information in the manner specified by section 6 of
108 | the GNU GPL for conveying Corresponding Source.)
109 | 5. Combined Libraries.
110 | You may place library facilities that are a work based on the Library side by
111 | side in a single library together with other library facilities that are not
112 | Applications and are not covered by this License, and convey such a combined
113 | library under terms of your choice, if you do both of the following:
114 |
115 | a) Accompany the combined library with a copy of the same work based on the
116 | Library, uncombined with any other library facilities, conveyed under the terms
117 | of this License.
118 | b) Give prominent notice with the combined library that part of it is a work
119 | based on the Library, and explaining where to find the accompanying uncombined
120 | form of the same work.
121 | 6. Revised Versions of the GNU Lesser General Public License.
122 | The Free Software Foundation may publish revised and/or new versions of the GNU
123 | Lesser General Public License from time to time. Such new versions will be
124 | similar in spirit to the present version, but may differ in detail to address
125 | new problems or concerns.
126 |
127 | Each version is given a distinguishing version number. If the Library as you
128 | received it specifies that a certain numbered version of the GNU Lesser General
129 | Public License “or any later version” applies to it, you have the option of
130 | following the terms and conditions either of that published version or of any
131 | later version published by the Free Software Foundation. If the Library as you
132 | received it does not specify a version number of the GNU Lesser General Public
133 | License, you may choose any version of the GNU Lesser General Public License
134 | ever published by the Free Software Foundation.
135 |
136 | If the Library as you received it specifies that a proxy can decide whether
137 | future versions of the GNU Lesser General Public License shall apply, that
138 | proxy's public statement of acceptance of any version is permanent
139 | authorization for you to choose that version for the Library.
140 |
--------------------------------------------------------------------------------
/docs/draft/licenses/MIT-License.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c)
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of
5 | this software and associated documentation files (the "Software"), to deal in
6 | the Software without restriction, including without limitation the rights to
7 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8 | of the Software, and to permit persons to whom the Software is furnished to do
9 | so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all
12 | copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | SOFTWARE.
21 |
--------------------------------------------------------------------------------
/docs/draft/licenses/Mozilla-Public-License-2.0.txt:
--------------------------------------------------------------------------------
1 | Mozilla Public License, version 2.0
2 | 1. Definitions
3 | 1.1. “Contributor”
4 | means each individual or legal entity that creates, contributes to the creation
5 | of, or owns Covered Software.
6 |
7 | 1.2. “Contributor Version”
8 | means the combination of the Contributions of others (if any) used by a
9 | Contributor and that particular Contributor’s Contribution.
10 |
11 | 1.3. “Contribution”
12 | means Covered Software of a particular Contributor.
13 |
14 | 1.4. “Covered Software”
15 | means Source Code Form to which the initial Contributor has attached the notice
16 | in Exhibit A, the Executable Form of such Source Code Form, and Modifications
17 | of such Source Code Form, in each case including portions thereof.
18 |
19 | 1.5. “Incompatible With Secondary Licenses”
20 | means
21 |
22 | that the initial Contributor has attached the notice described in Exhibit B to
23 | the Covered Software; or
24 |
25 | that the Covered Software was made available under the terms of version 1.1 or
26 | earlier of the License, but not also under the terms of a Secondary License.
27 |
28 | 1.6. “Executable Form”
29 | means any form of the work other than Source Code Form.
30 |
31 | 1.7. “Larger Work”
32 | means a work that combines Covered Software with other material, in a separate
33 | file or files, that is not Covered Software.
34 |
35 | 1.8. “License”
36 | means this document.
37 |
38 | 1.9. “Licensable”
39 | means having the right to grant, to the maximum extent possible, whether at the
40 | time of the initial grant or subsequently, any and all of the rights conveyed
41 | by this License.
42 |
43 | 1.10. “Modifications”
44 | means any of the following:
45 |
46 | any file in Source Code Form that results from an addition to, deletion from,
47 | or modification of the contents of Covered Software; or
48 |
49 | any new file in Source Code Form that contains any Covered Software.
50 |
51 | 1.11. “Patent Claims” of a Contributor
52 | means any patent claim(s), including without limitation, method, process, and
53 | apparatus claims, in any patent Licensable by such Contributor that would be
54 | infringed, but for the grant of the License, by the making, using, selling,
55 | offering for sale, having made, import, or transfer of either its Contributions
56 | or its Contributor Version.
57 |
58 | 1.12. “Secondary License”
59 | means either the GNU General Public License, Version 2.0, the GNU Lesser
60 | General Public License, Version 2.1, the GNU Affero General Public License,
61 | Version 3.0, or any later versions of those licenses.
62 |
63 | 1.13. “Source Code Form”
64 | means the form of the work preferred for making modifications.
65 |
66 | 1.14. “You” (or “Your”)
67 | means an individual or a legal entity exercising rights under this License. For
68 | legal entities, “You” includes any entity that controls, is controlled by, or
69 | is under common control with You. For purposes of this definition, “control”
70 | means (a) the power, direct or indirect, to cause the direction or management
71 | of such entity, whether by contract or otherwise, or (b) ownership of more than
72 | fifty percent (50%) of the outstanding shares or beneficial ownership of such
73 | entity.
74 |
75 | 2. License Grants and Conditions
76 | 2.1. Grants
77 | Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive
78 | license:
79 |
80 | under intellectual property rights (other than patent or trademark) Licensable
81 | by such Contributor to use, reproduce, make available, modify, display,
82 | perform, distribute, and otherwise exploit its Contributions, either on an
83 | unmodified basis, with Modifications, or as part of a Larger Work; and
84 |
85 | under Patent Claims of such Contributor to make, use, sell, offer for sale,
86 | have made, import, and otherwise transfer either its Contributions or its
87 | Contributor Version.
88 |
89 | 2.2. Effective Date
90 | The licenses granted in Section 2.1 with respect to any Contribution become
91 | effective for each Contribution on the date the Contributor first distributes
92 | such Contribution.
93 |
94 | 2.3. Limitations on Grant Scope
95 | The licenses granted in this Section 2 are the only rights granted under this
96 | License. No additional rights or licenses will be implied from the distribution
97 | or licensing of Covered Software under this License. Notwithstanding Section
98 | 2.1(b) above, no patent license is granted by a Contributor:
99 |
100 | for any code that a Contributor has removed from Covered Software; or
101 |
102 | for infringements caused by: (i) Your and any other third party’s modifications
103 | of Covered Software, or (ii) the combination of its Contributions with other
104 | software (except as part of its Contributor Version); or
105 |
106 | under Patent Claims infringed by Covered Software in the absence of its
107 | Contributions.
108 |
109 | This License does not grant any rights in the trademarks, service marks, or
110 | logos of any Contributor (except as may be necessary to comply with the notice
111 | requirements in Section 3.4).
112 |
113 | 2.4. Subsequent Licenses
114 | No Contributor makes additional grants as a result of Your choice to distribute
115 | the Covered Software under a subsequent version of this License (see Section
116 | 10.2) or under the terms of a Secondary License (if permitted under the terms
117 | of Section 3.3).
118 |
119 | 2.5. Representation
120 | Each Contributor represents that the Contributor believes its Contributions are
121 | its original creation(s) or it has sufficient rights to grant the rights to its
122 | Contributions conveyed by this License.
123 |
124 | 2.6. Fair Use
125 | This License is not intended to limit any rights You have under applicable
126 | copyright doctrines of fair use, fair dealing, or other equivalents.
127 |
128 | 2.7. Conditions
129 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
130 | Section 2.1.
131 |
132 | 3. Responsibilities
133 | 3.1. Distribution of Source Form
134 | All distribution of Covered Software in Source Code Form, including any
135 | Modifications that You create or to which You contribute, must be under the
136 | terms of this License. You must inform recipients that the Source Code Form of
137 | the Covered Software is governed by the terms of this License, and how they can
138 | obtain a copy of this License. You may not attempt to alter or restrict the
139 | recipients’ rights in the Source Code Form.
140 |
141 | 3.2. Distribution of Executable Form
142 | If You distribute Covered Software in Executable Form then:
143 |
144 | such Covered Software must also be made available in Source Code Form, as
145 | described in Section 3.1, and You must inform recipients of the Executable Form
146 | how they can obtain a copy of such Source Code Form by reasonable means in a
147 | timely manner, at a charge no more than the cost of distribution to the
148 | recipient; and
149 |
150 | You may distribute such Executable Form under the terms of this License, or
151 | sublicense it under different terms, provided that the license for the
152 | Executable Form does not attempt to limit or alter the recipients’ rights in
153 | the Source Code Form under this License.
154 |
155 | 3.3. Distribution of a Larger Work
156 | You may create and distribute a Larger Work under terms of Your choice,
157 | provided that You also comply with the requirements of this License for the
158 | Covered Software. If the Larger Work is a combination of Covered Software with
159 | a work governed by one or more Secondary Licenses, and the Covered Software is
160 | not Incompatible With Secondary Licenses, this License permits You to
161 | additionally distribute such Covered Software under the terms of such Secondary
162 | License(s), so that the recipient of the Larger Work may, at their option,
163 | further distribute the Covered Software under the terms of either this License
164 | or such Secondary License(s).
165 |
166 | 3.4. Notices
167 | You may not remove or alter the substance of any license notices (including
168 | copyright notices, patent notices, disclaimers of warranty, or limitations of
169 | liability) contained within the Source Code Form of the Covered Software,
170 | except that You may alter any license notices to the extent required to remedy
171 | known factual inaccuracies.
172 |
173 | 3.5. Application of Additional Terms
174 | You may choose to offer, and to charge a fee for, warranty, support, indemnity
175 | or liability obligations to one or more recipients of Covered Software.
176 | However, You may do so only on Your own behalf, and not on behalf of any
177 | Contributor. You must make it absolutely clear that any such warranty, support,
178 | indemnity, or liability obligation is offered by You alone, and You hereby
179 | agree to indemnify every Contributor for any liability incurred by such
180 | Contributor as a result of warranty, support, indemnity or liability terms You
181 | offer. You may include additional disclaimers of warranty and limitations of
182 | liability specific to any jurisdiction.
183 |
184 | 4. Inability to Comply Due to Statute or Regulation
185 | If it is impossible for You to comply with any of the terms of this License
186 | with respect to some or all of the Covered Software due to statute, judicial
187 | order, or regulation then You must: (a) comply with the terms of this License
188 | to the maximum extent possible; and (b) describe the limitations and the code
189 | they affect. Such description must be placed in a text file included with all
190 | distributions of the Covered Software under this License. Except to the extent
191 | prohibited by statute or regulation, such description must be sufficiently
192 | detailed for a recipient of ordinary skill to be able to understand it.
193 |
194 | 5. Termination
195 | 5.1. The rights granted under this License will terminate automatically if You
196 | fail to comply with any of its terms. However, if You become compliant, then
197 | the rights granted under this License from a particular Contributor are
198 | reinstated (a) provisionally, unless and until such Contributor explicitly and
199 | finally terminates Your grants, and (b) on an ongoing basis, if such
200 | Contributor fails to notify You of the non-compliance by some reasonable means
201 | prior to 60 days after You have come back into compliance. Moreover, Your
202 | grants from a particular Contributor are reinstated on an ongoing basis if such
203 | Contributor notifies You of the non-compliance by some reasonable means, this
204 | is the first time You have received notice of non-compliance with this License
205 | from such Contributor, and You become compliant prior to 30 days after Your
206 | receipt of the notice.
207 |
208 | 5.2. If You initiate litigation against any entity by asserting a patent
209 | infringement claim (excluding declaratory judgment actions, counter-claims, and
210 | cross-claims) alleging that a Contributor Version directly or indirectly
211 | infringes any patent, then the rights granted to You by any and all
212 | Contributors for the Covered Software under Section 2.1 of this License shall
213 | terminate.
214 |
215 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
216 | license agreements (excluding distributors and resellers) which have been
217 | validly granted by You or Your distributors under this License prior to
218 | termination shall survive termination.
219 |
220 | 6. Disclaimer of Warranty
221 | Covered Software is provided under this License on an “as is” basis, without
222 | warranty of any kind, either expressed, implied, or statutory, including,
223 | without limitation, warranties that the Covered Software is free of defects,
224 | merchantable, fit for a particular purpose or non-infringing. The entire risk
225 | as to the quality and performance of the Covered Software is with You. Should
226 | any Covered Software prove defective in any respect, You (not any Contributor)
227 | assume the cost of any necessary servicing, repair, or correction. This
228 | disclaimer of warranty constitutes an essential part of this License. No use of
229 | any Covered Software is authorized under this License except under this
230 | disclaimer.
231 |
232 | 7. Limitation of Liability
233 | Under no circumstances and under no legal theory, whether tort (including
234 | negligence), contract, or otherwise, shall any Contributor, or anyone who
235 | distributes Covered Software as permitted above, be liable to You for any
236 | direct, indirect, special, incidental, or consequential damages of any
237 | character including, without limitation, damages for lost profits, loss of
238 | goodwill, work stoppage, computer failure or malfunction, or any and all other
239 | commercial damages or losses, even if such party shall have been informed of
240 | the possibility of such damages. This limitation of liability shall not apply
241 | to liability for death or personal injury resulting from such party’s
242 | negligence to the extent applicable law prohibits such limitation. Some
243 | jurisdictions do not allow the exclusion or limitation of incidental or
244 | consequential damages, so this exclusion and limitation may not apply to You.
245 |
246 | 8. Litigation
247 | Any litigation relating to this License may be brought only in the courts of a
248 | jurisdiction where the defendant maintains its principal place of business and
249 | such litigation shall be governed by laws of that jurisdiction, without
250 | reference to its conflict-of-law provisions. Nothing in this Section shall
251 | prevent a party’s ability to bring cross-claims or counter-claims.
252 |
253 | 9. Miscellaneous
254 | This License represents the complete agreement concerning the subject matter
255 | hereof. If any provision of this License is held to be unenforceable, such
256 | provision shall be reformed only to the extent necessary to make it
257 | enforceable. Any law or regulation which provides that the language of a
258 | contract shall be construed against the drafter shall not be used to construe
259 | this License against a Contributor.
260 |
261 | 10. Versions of the License
262 | 10.1. New Versions
263 | Mozilla Foundation is the license steward. Except as provided in Section 10.3,
264 | no one other than the license steward has the right to modify or publish new
265 | versions of this License. Each version will be given a distinguishing version
266 | number.
267 |
268 | 10.2. Effect of New Versions
269 | You may distribute the Covered Software under the terms of the version of the
270 | License under which You originally received the Covered Software, or under the
271 | terms of any subsequent version published by the license steward.
272 |
273 | 10.3. Modified Versions
274 | If you create software not governed by this License, and you want to create a
275 | new license for such software, you may create and use a modified version of
276 | this License if you rename the license and remove any references to the name of
277 | the license steward (except to note that such modified license differs from
278 | this License).
279 |
280 | 10.4. Distributing Source Code Form that is Incompatible With Secondary
281 | Licenses
282 | If You choose to distribute Source Code Form that is Incompatible With
283 | Secondary Licenses under the terms of this version of the License, the notice
284 | described in Exhibit B of this License must be attached.
285 |
286 | Exhibit A - Source Code Form License Notice
287 | This Source Code Form is subject to the terms of the Mozilla Public License, v.
288 | 2.0. If a copy of the MPL was not distributed with this file, You can obtain
289 | one at http://mozilla.org/MPL/2.0/.
290 | If it is not possible or desirable to put the notice in a particular file, then
291 | You may include the notice in a location (such as a LICENSE file in a relevant
292 | directory) where a recipient would be likely to look for such a notice.
293 |
294 | You may add additional accurate notices of copyright ownership.
295 |
296 | Exhibit B - “Incompatible With Secondary Licenses” Notice
297 |
--------------------------------------------------------------------------------
/examples/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/examples/.gitkeep
--------------------------------------------------------------------------------
/include/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/include/.gitkeep
--------------------------------------------------------------------------------
/lib/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/lib/.gitkeep
--------------------------------------------------------------------------------
/src/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | int main(void) {
4 | printf("Hello World\n");
5 | return 0;
6 | }
7 |
--------------------------------------------------------------------------------
/test/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/test/.gitkeep
--------------------------------------------------------------------------------
/third_party/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/third_party/.gitkeep
--------------------------------------------------------------------------------
/tools/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matt-dunleavy/cosmo-project/0c81723b245d81b611600e6d5a53ff50dd5bd01d/tools/.gitkeep
--------------------------------------------------------------------------------