******************************************************************************************************************* *** License Name: IBP Time-Delayed Software License *** *** Version: 6 *** *** Date: March 10th, 2024 *** *** *** *** Copyright (C) 2024 Isaac Benson Powell *** *** https://isaac-the-robot.com/software-license/ *** ******************************************************************************************************************* **************** *** Overview *** **************** In an ideal world, all software would be "open-source". That is, everyone could view and modify all source code for computer software they use. The problem with open-source software is that anyone can create a copy of the computer code, thus the economic model (AKA the ability to sell it) does not work. For example, lets say a software developer named Bob, spends multiple years creating a fantastic computer program. Bob then releases it to the world as open-source, and asks for donations to help reimburse him for his efforts. Alice (who is also a software developer) sees this, and recognizes how great the program is. She copies the computer code for free (making it her own), then with a fraction of the effort Bob put into developing the software, she advertises the software to the world in a better way than Bob did. Now both Bob and Alice have similar (or maybe identical) software programs out there, but Alice's is marketed better, and her version is what becomes popular, and she makes tons of money. Bob ends up becoming destitute and homeless. On the other hand, if Bob's computer program was "closed-source", he would have been the person to make the money from his hard work (if anyone did). However, if Bob is unethical, he might place malicious computer code in the program to setup a backdoor, key-stroke logger, virus, or other bad things. The solution ---> This license enables developer(s) the ability to have [0..3] years of exclusive "closed-source" computer software, when they can attempt to earn money from their hard work. At the end of this time-delay of [0..3] years, they are required to release the source code for their computer program. What this does, is create the ability for developers to be rewarded for their hard work, but at the same time the developer knows the computer code will eventually become open-source, so they will be less likely to add malicious computer code to their program. It also allows people to pickup abandoned software, and make changes or bug fixes. ******************************* *** Example of how it works *** ******************************* 1) A software developer named Bob, creates a source code file named "foo.cpp", and uses this license for it. 2) On January 1st, 2020, Bob creates a binary file (library or executable) using this source file, and makes it available to the public. 3) The release of the binary file to public, is what triggers the start of the "time-delay". Bob now has [0..3] years to release the source code file "foo.cpp" to the public. --- The last date possible for him to release the source code is January 1st, 2023. 4) A month later, on February 1st, 2020, Bob modifies the source file "foo.cpp", and releases an updated binary file to the public. This creates a 2nd (and totally separate) "time-delay". Bob now has [0..3] years to release the modified source code file "foo.cpp" to the public. --- The last date possible for him to release the source code is February 1st, 2023. 5) Because Bob released a binary file 2 times, he has 2 "time-delay" source code releases to perform. --- The 1st version of the file "foo.cpp", must be released to public no later than January 1st, 2023. --- The 2nd version of the file "foo.cpp", must be released to public no later than February 1st, 2023. **************************** *** TERMS AND CONDITIONS *** **************************** 1) Overall goal of the license. The main goal of this software license, is to enable software developer(s) the ability to make money from their hard work, but at the same time ensuring that the source code eventually becomes open-source after [0..3] years. 2) What does "open-source" mean in this license? The term "open-source", with regards to source code under this license, means the ability to view, modify, compile, and distribute source code file(s). 3) Compatibility with other software licenses. This license places no restrictions on how source code under this license can be combined with source code using other licenses (either open-source or proprietary). The code can be combined into one executable or library, separate libraries, or any other technically possible combination. This license places no restrictions on the source code from other licenses. If there is a combination of source code from two or more licenses, this license ONLY pertains to the source code under this license. This license does NOT permit external restrictions placed upon the files it applies to, from other licenses, patents, etc... Note: Other licenses *might* have restrictions which prevent them being compatible with this license, and it is the software developer's responsibility to make this determination. 4) How do I know if source code using this license is "open-source" or "proprietary"? If the source code is available to the public (AKA you can download it), it is open-source. It is the responsibility of the developer(s) to keep the source code private during the time-delay when they consider it to be proprietary. If a company/organization of some kind has multiple people with access to files under this license, they are allowed (where local law permits) to restrict which people are allowed to publish the files (making them "open- source"). This can be used to prevent any rouge employee from just making the files public on their own, which could cause financial harm to the company/organization. 5) What is the [0..3] year "time-delay"? The [0..3] year "time-delay", gives the software developer(s) a maximum of 3 years to attempt to earn money from all their hard work. During this "time-delay", the status of the source code is proprietary, and MUST remain private to them. 6) When does the [0..3] year "time-delay" begin? It begins the day the developer releases a binary form of the software to the public (executable, library, etc...). When it begins, the source code is considered to be proprietary, and MUST remain private to the developer. 7) When does the [0..3] year "time-delay" end? It ends 3 years after "time-delay" began, or when the developer releases the source code used to generate the binary version of the code (which ever comes first). When it ends, the source code is considered to be open-source, and MUST be made available to the public. 8) Responsibility of releasing source code to the public. It is the responsibility of the developer who released the binary code, to release the source code used to create it, before the "time-delay" expires. This is NOT optional. It is highly recommended, that the developer use a trusted 3rd party system, to automatically release the source code for them at the appropriate time. This helps them avoid the situation where they simply forgot, or if they had second thoughts about releasing (which would be a violation of this license). The developer can choose to release the source code before the "time-delay" expires, but 3 years is the maximum allowed time. This means a developer could choose 1 or 2 year delays, or no delay at all, and make the source code available at the same time the binary version is available. 9) Once source code (for a binary release) is made public, how long MUST it be available to the public? One year is the minimum, and their is no maximum. Once source code for a binary release is made public, it MUST be available the rest of the time the binary is also available to the public. Removing the binary from being available to the public, does NOT remove you from being responsible for making the source code available for the minimum of one year. 10) No changes to "time-delay" timeline allowed. For an existing project, NOBODY is allowed (even copyright owners of this file), to change the "time-delay" from [0..3] years, to anything different. This prevents malicious people from changing the max amount of time before source code MUST be released from 3 years, to 5 years, then to infinity... This rule is in place, to help reassure people who use software under this license, that the "time-delay" will never be tampered with. 11) Can I charge a fee for people to view source code? No. The whole goal of this license, is to provide developers the opportunity to have [0..3] years in which they can attempt to earn money from binary versions of their software, but after which, the public is given access to the source code. 12) Disclaimer of warranty. There is no warranty for the program. The program is "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair or correction. 13) Limitation of liability. In no event will any copyright holder, or any other party who modifies and/or conveys the program, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages. 14) Copy and distribute this license document. Everyone is permitted to copy and distribute VERBATIM copies of this license document. It is a requirement, that a copy of this license document be distributed with any files which use this license. 15) Upgrade this license document. The "copyright holder" and "version number" of this license are found at the top of this document. Version numbers are in the range of [1..n], where the larger the integer, the newer the version is. You have the option to upgrade this license to a newer version number from the SAME copyright holder as this document. You are NOT allowed to downgrade this license to an older and thus lower version number. 16) Modifying this license document. The conditions in which you can or can't modify this license document, depend on this question: Are you the copyright holder of this license document? (Not the files under license, but the document you are currently reading.) If you are wondering who is the copyright holder, check the top of this document. *********** *** YES *** *********** You can modify, as long as you increment the the version number by one. Version 1, becomes version 2, etc... ********** *** NO *** ********** You can modify ONLY when ALL conditions below are met: a) The modified license document is NOT being applied to existing files which already have a license. *** Exception to this, is when ALL copyright holders of ALL files the modified license would apply to, agree to the change. *** b) You remove all references to the copyright holder "Isaac Benson Powell", and his initials "IBP". c) You make yourself and/or your organization the new copyright holder of the new license. d) You change the name of the license (see top of document). e) You set the version number to 1 (see top of document), because this is the first version of document under new copyright holder. 17) Creating a "fork" of existing project. If you take existing files (which have this license applied to them) and make any modifications, then re-distribute to the public, what you've done is created a "fork" of an existing project. The following rules apply when doing this. a) You are NOT allowed to change this license file, except for upgrading to newer version of this license as specified in section which specifies rules for "modifying this license document". b) You MUST retain the names of existing copyright holders listed in each file this license applies to. You MUST also add the follow line (without quotes), after their names. "Status: Not maintaining, nor associated with this fork of project." c) You MUST add [1..n] names of new copyright holders to any modified files. d) You MUST re-name the project. For example, if the original project was named "Foo", the "forked" project is required to have a different name. This name change could be as simple as "Foo2", or something completely different like "Bar", etc... *********************************** *** END OF TERMS AND CONDITIONS *** *********************************** **************************************************** *** How to Apply These Terms to Your Source Code *** **************************************************** 1) Include a single copy of this document, with the files you wish it to cover. Typically, it would be named "license.txt", but you can give it a more specific name if you have multiple licenses for your project. 2) Add the following notice (contents between two dashed lines) to the start of each file, which is to be covered by the license. You will need to replace '{' and '}', and the contents within them, with relevant information. ------------------------------------------------------------------------------------------------------------------- { Give the program's name and a brief description of what it does. Keep this very short, maybe 1 or 2 lines. } Copyright (C) { year }, { Name of author/organization } { Optional: Email address } { Optional: URL of website } This file is bound by the "IBP Time-Delayed Software License", version #6, and alternates between being "proprietary" and "open-source". This licensing scheme allows developer(s) the opportunity to earn money from their hard work, but which mandates that the source code becomes open-source [0..3] years after release of a binary version of the source code. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "IBP Time-Delayed Software License" for more details. You should have received a copy of the "IBP Time-Delayed Software License" along with this program. If not, see this link for the latest version. https://isaac-the-robot.com/software-license/ -------------------------------------------------------------------------------------------------------------------