We have a very introductory structure in place with 1 game that works.
This commit is contained in:
parent
9e67fbfb44
commit
4bbfc447b4
531
LICENSE
Normal file
531
LICENSE
Normal file
@ -0,0 +1,531 @@
|
||||
Common Public Attribution License Version 1.0 (CPAL-1.0)
|
||||
|
||||
SPDX short identifier: CPAL-1.0
|
||||
|
||||
Common Public Attribution License Version 1.0 (CPAL-1.0)
|
||||
|
||||
1. “Definitions”
|
||||
|
||||
1.0.1 “Commercial Use” means distribution or otherwise making the Covered
|
||||
Code available to a third party.
|
||||
|
||||
1.1 “Contributor” means each entity that creates or contributes to the
|
||||
creation of Modifications.
|
||||
|
||||
1.2 “Contributor Version” means the combination of the Original Code, prior
|
||||
Modifications used by a Contributor, and the Modifications made by that
|
||||
particular Contributor.
|
||||
|
||||
1.3 “Covered Code” means the Original Code or Modifications or the
|
||||
combination of the Original Code and Modifications, in each case including
|
||||
portions thereof.
|
||||
|
||||
1.4 “Electronic Distribution Mechanism” means a mechanism generally
|
||||
accepted in the software development community for the electronic transfer
|
||||
of data.
|
||||
|
||||
1.5 “Executable” means Covered Code in any form other than Source Code.
|
||||
|
||||
1.6 “Initial Developer” means the individual or entity identified as the
|
||||
Initial Developer in the Source Code notice required by Exhibit A.
|
||||
|
||||
1.7 “Larger Work” means a work which combines Covered Code or portions
|
||||
thereof with code not governed by the terms of this License.
|
||||
|
||||
1.8 “License” means this document.
|
||||
|
||||
1.8.1 “Licensable” means having the right to grant, to the maximum
|
||||
extent possible, whether at the time of the initial grant or
|
||||
subsequently acquired, any and all of the rights conveyed herein.
|
||||
|
||||
1.9 “Modifications” means any addition to or deletion from the substance or
|
||||
structure of either the Original Code or any previous Modifications. When
|
||||
Covered Code is released as a series of files, a Modification is:
|
||||
|
||||
A. Any addition to or deletion from the contents of a file containing
|
||||
Original Code or previous Modifications.
|
||||
|
||||
B. Any new file that contains any part of the Original Code or previous
|
||||
Modifications.
|
||||
|
||||
1.10 “Original Code” means Source Code of computer software code which is
|
||||
described in the Source Code notice required by Exhibit A as Original Code,
|
||||
and which, at the time of its release under this License is not already
|
||||
Covered Code governed by this License.
|
||||
|
||||
1.10.1 “Patent Claims” means any patent claim(s), now owned or
|
||||
hereafter acquired, including without limitation, method, process, and
|
||||
apparatus claims, in any patent Licensable by grantor.
|
||||
|
||||
1.11 “Source Code” means the preferred form of the Covered Code for making
|
||||
modifications to it, including all modules it contains, plus any associated
|
||||
interface definition files, scripts used to control compilation and
|
||||
installation of an Executable, or source code differential comparisons
|
||||
against either the Original Code or another well known, available Covered
|
||||
Code of the Contributor’s choice. The Source Code can be in a compressed or
|
||||
archival form, provided the appropriate decompression or de-archiving
|
||||
software is widely available for no charge.
|
||||
|
||||
1.12 “You” (or “Your”) means an individual or a legal entity exercising
|
||||
rights under, and complying with all of the terms of, this License or a
|
||||
future version of this License issued under Section 6.1. For legal
|
||||
entities, “You” includes any entity which controls, is controlled by, or is
|
||||
under common control with You. For purposes of this definition, “control”
|
||||
means (a) the power, direct or indirect, to cause the direction or
|
||||
management of such entity, whether by contract or otherwise, or (b)
|
||||
ownership of more than fifty percent (50%) of the outstanding shares or
|
||||
beneficial ownership of such entity.
|
||||
|
||||
2. Source Code License.
|
||||
|
||||
2.1 The Initial Developer Grant.
|
||||
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license, subject to third party intellectual property claims:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by Initial Developer to use, reproduce, modify, display,
|
||||
perform, sublicense and distribute the Original Code (or portions
|
||||
thereof) with or without Modifications, and/or as part of a Larger
|
||||
Work; and
|
||||
|
||||
(b) under Patents Claims infringed by the making, using or selling of
|
||||
Original Code, to make, have made, use, practice, sell, and offer for
|
||||
sale, and/or otherwise dispose of the Original Code (or portions
|
||||
thereof).
|
||||
|
||||
(c) the licenses granted in this Section 2.1(a) and (b) are effective
|
||||
on the date Initial Developer first distributes Original Code under the
|
||||
terms of this License.
|
||||
|
||||
(d) Notwithstanding Section 2.1(b) above, no patent license is granted:
|
||||
1) for code that You delete from the Original Code; 2) separate from
|
||||
the Original Code; or 3) for infringements caused by: i) the
|
||||
modification of the Original Code or ii) the combination of the
|
||||
Original Code with other software or devices.
|
||||
|
||||
2.2 Contributor Grant.
|
||||
Subject to third party intellectual property claims, each Contributor
|
||||
hereby grants You a world-wide, royalty-free, non-exclusive license
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by Contributor, to use, reproduce, modify, display, perform,
|
||||
sublicense and distribute the Modifications created by such Contributor
|
||||
(or portions thereof) either on an unmodified basis, with other
|
||||
Modifications, as Covered Code and/or as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims infringed by the making, using, or selling of
|
||||
Modifications made by that Contributor either alone and/or in
|
||||
combination with its Contributor Version (or portions of such
|
||||
combination), to make, use, sell, offer for sale, have made, and/or
|
||||
otherwise dispose of: 1) Modifications made by that Contributor (or
|
||||
portions thereof); and 2) the combination of Modifications made by that
|
||||
Contributor with its Contributor Version (or portions of such
|
||||
combination).
|
||||
|
||||
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on
|
||||
the date Contributor first makes Commercial Use of the Covered Code.
|
||||
|
||||
(d) Notwithstanding Section 2.2(b) above, no patent license is granted:
|
||||
1) for any code that Contributor has deleted from the Contributor
|
||||
Version; 2) separate from the Contributor Version; 3) for infringements
|
||||
caused by: i) third party modifications of Contributor Version or ii)
|
||||
the combination of Modifications made by that Contributor with other
|
||||
software (except as part of the Contributor Version) or other devices;
|
||||
or 4) under Patent Claims infringed by Covered Code in the absence of
|
||||
Modifications made by that Contributor.
|
||||
|
||||
3. Distribution Obligations.
|
||||
|
||||
3.1 Application of License.
|
||||
The Modifications which You create or to which You contribute are governed
|
||||
by the terms of this License, including without limitation Section 2.2. The
|
||||
Source Code version of Covered Code may be distributed only under the terms
|
||||
of this License or a future version of this License released under Section
|
||||
6.1, and You must include a copy of this License with every copy of the
|
||||
Source Code You distribute. You may not offer or impose any terms on any
|
||||
Source Code version that alters or restricts the applicable version of this
|
||||
License or the recipients’ rights hereunder. However, You may include an
|
||||
additional document offering the additional rights described in Section
|
||||
3.5.
|
||||
|
||||
3.2 Availability of Source Code.
|
||||
Any Modification which You create or to which You contribute must be made
|
||||
available in Source Code form under the terms of this License either on the
|
||||
same media as an Executable version or via an accepted Electronic
|
||||
Distribution Mechanism to anyone to whom you made an Executable version
|
||||
available; and if made available via Electronic Distribution Mechanism,
|
||||
must remain available for at least twelve (12) months after the date it
|
||||
initially became available, or at least six (6) months after a subsequent
|
||||
version of that particular Modification has been made available to such
|
||||
recipients. You are responsible for ensuring that the Source Code version
|
||||
remains available even if the Electronic Distribution Mechanism is
|
||||
maintained by a third party.
|
||||
|
||||
3.3 Description of Modifications.
|
||||
You must cause all Covered Code to which You contribute to contain a file
|
||||
documenting the changes You made to create that Covered Code and the date
|
||||
of any change. You must include a prominent statement that the Modification
|
||||
is derived, directly or indirectly, from Original Code provided by the
|
||||
Initial Developer and including the name of the Initial Developer in (a)
|
||||
the Source Code, and (b) in any notice in an Executable version or related
|
||||
documentation in which You describe the origin or ownership of the Covered
|
||||
Code.
|
||||
|
||||
3.4 Intellectual Property Matters
|
||||
|
||||
(a) Third Party Claims.
|
||||
If Contributor has knowledge that a license under a third party’s
|
||||
intellectual property rights is required to exercise the rights granted
|
||||
by such Contributor under Sections 2.1 or 2.2, Contributor must include
|
||||
a text file with the Source Code distribution titled “LEGAL” which
|
||||
describes the claim and the party making the claim in sufficient detail
|
||||
that a recipient will know whom to contact. If Contributor obtains such
|
||||
knowledge after the Modification is made available as described in
|
||||
Section 3.2, Contributor shall promptly modify the LEGAL file in all
|
||||
copies Contributor makes available thereafter and shall take other
|
||||
steps (such as notifying appropriate mailing lists or newsgroups)
|
||||
reasonably calculated to inform those who received the Covered Code
|
||||
that new knowledge has been obtained.
|
||||
|
||||
(b) Contributor APIs.
|
||||
If Contributor’s Modifications include an application programming
|
||||
interface and Contributor has knowledge of patent licenses which are
|
||||
reasonably necessary to implement that API, Contributor must also
|
||||
include this information in the LEGAL file.
|
||||
|
||||
(c) Representations.
|
||||
Contributor represents that, except as disclosed pursuant to Section
|
||||
3.4(a) above, Contributor believes that Contributor’s Modifications are
|
||||
Contributor’s original creation(s) and/or Contributor has sufficient
|
||||
rights to grant the rights conveyed by this License.
|
||||
|
||||
3.5 Required Notices.
|
||||
You must duplicate the notice in Exhibit A in each file of the Source Code.
|
||||
If it is not possible to put such notice in a particular Source Code file
|
||||
due to its structure, then You must include such notice in a location (such
|
||||
as a relevant directory) where a user would be likely to look for such a
|
||||
notice. If You created one or more Modification(s) You may add your name as
|
||||
a Contributor to the notice described in Exhibit A. You must also duplicate
|
||||
this License in any documentation for the Source Code where You describe
|
||||
recipients’ rights or ownership rights relating to Covered Code. You may
|
||||
choose to offer, and to charge a fee for, warranty, support, indemnity or
|
||||
liability obligations to one or more recipients of Covered Code. However,
|
||||
You may do so only on Your own behalf, and not on behalf of the Initial
|
||||
Developer or any Contributor. You must make it absolutely clear than any
|
||||
such warranty, support, indemnity or liability obligation is offered by You
|
||||
alone, and You hereby agree to indemnify the Initial Developer and every
|
||||
Contributor for any liability incurred by the Initial Developer or such
|
||||
Contributor as a result of warranty, support, indemnity or liability terms
|
||||
You offer.
|
||||
|
||||
3.6 Distribution of Executable Versions.
|
||||
You may distribute Covered Code in Executable form only if the requirements
|
||||
of Section 3.1-3.5 have been met for that Covered Code, and if You include
|
||||
a notice stating that the Source Code version of the Covered Code is
|
||||
available under the terms of this License, including a description of how
|
||||
and where You have fulfilled the obligations of Section 3.2. The notice
|
||||
must be conspicuously included in any notice in an Executable version,
|
||||
related documentation or collateral in which You describe recipients’
|
||||
rights relating to the Covered Code. You may distribute the Executable
|
||||
version of Covered Code or ownership rights under a license of Your choice,
|
||||
which may contain terms different from this License, provided that You are
|
||||
in compliance with the terms of this License and that the license for the
|
||||
Executable version does not attempt to limit or alter the recipient’s
|
||||
rights in the Source Code version from the rights set forth in this
|
||||
License. If You distribute the Executable version under a different license
|
||||
You must make it absolutely clear that any terms which differ from this
|
||||
License are offered by You alone, not by the Initial Developer, Original
|
||||
Developer or any Contributor. You hereby agree to indemnify the Initial
|
||||
Developer, Original Developer and every Contributor for any liability
|
||||
incurred by the Initial Developer, Original Developer or such Contributor
|
||||
as a result of any such terms You offer.
|
||||
|
||||
3.7 Larger Works.
|
||||
You may create a Larger Work by combining Covered Code with other code not
|
||||
governed by the terms of this License and distribute the Larger Work as a
|
||||
single product. In such a case, You must make sure the requirements of this
|
||||
License are fulfilled for the Covered Code.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this License
|
||||
with respect to some or all of the Covered Code due to statute, judicial
|
||||
order, or regulation then You must: (a) comply with the terms of this
|
||||
License to the maximum extent possible; and (b) describe the limitations
|
||||
and the code they affect. Such description must be included in the LEGAL
|
||||
file described in Section 3.4 and must be included with all distributions
|
||||
of the Source Code. Except to the extent prohibited by statute or
|
||||
regulation, such description must be sufficiently detailed for a recipient
|
||||
of ordinary skill to be able to understand it.
|
||||
|
||||
5. Application of this License.
|
||||
|
||||
This License applies to code to which the Initial Developer has attached
|
||||
the notice in Exhibit A and to related Covered Code.
|
||||
|
||||
6. Versions of the License.
|
||||
|
||||
6.1 New Versions.
|
||||
Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of
|
||||
the License from time to time. Each version will be given a distinguishing
|
||||
version number.
|
||||
|
||||
6.2 Effect of New Versions.
|
||||
Once Covered Code has been published under a particular version of the
|
||||
License, You may always continue to use it under the terms of that version.
|
||||
You may also choose to use such Covered Code under the terms of any
|
||||
subsequent version of the License published by Socialtext. No one other
|
||||
than Socialtext has the right to modify the terms applicable to Covered
|
||||
Code created under this License.
|
||||
|
||||
6.3 Derivative Works.
|
||||
If You create or use a modified version of this License (which you may only
|
||||
do in order to apply it to code which is not already Covered Code governed
|
||||
by this License), You must (a) rename Your license so that the phrases
|
||||
“Socialtext”, “CPAL” or any confusingly similar phrase do not appear in
|
||||
your license (except to note that your license differs from this License)
|
||||
and (b) otherwise make it clear that Your version of the license contains
|
||||
terms which differ from the CPAL. (Filling in the name of the Initial
|
||||
Developer, Original Developer, Original Code or Contributor in the notice
|
||||
described in Exhibit A shall not of themselves be deemed to be
|
||||
modifications of this License.)
|
||||
|
||||
7. DISCLAIMER OF WARRANTY.
|
||||
|
||||
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT
|
||||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
|
||||
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS,
|
||||
MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
|
||||
RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU.
|
||||
SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
|
||||
INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
|
||||
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
|
||||
WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY
|
||||
COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
|
||||
8. TERMINATION.
|
||||
|
||||
8.1 This License and the rights granted hereunder will terminate
|
||||
automatically if You fail to comply with terms herein and fail to cure such
|
||||
breach within 30 days of becoming aware of the breach. All sublicenses to
|
||||
the Covered Code which are properly granted shall survive any termination
|
||||
of this License. Provisions which, by their nature, must remain in effect
|
||||
beyond the termination of this License shall survive.
|
||||
|
||||
8.2 If You initiate litigation by asserting a patent infringement claim
|
||||
(excluding declatory judgment actions) against Initial Developer, Original
|
||||
Developer or a Contributor (the Initial Developer, Original Developer or
|
||||
Contributor against whom You file such action is referred to as
|
||||
“Participant”) alleging that:
|
||||
|
||||
|
||||
|
||||
(a) such Participant’s Contributor Version directly or indirectly
|
||||
infringes any patent, then any and all rights granted by such
|
||||
Participant to You under Sections 2.1 and/or 2.2 of this License shall,
|
||||
upon 60 days notice from Participant terminate prospectively, unless if
|
||||
within 60 days after receipt of notice You either: (i) agree in writing
|
||||
to pay Participant a mutually agreeable reasonable royalty for Your
|
||||
past and future use of Modifications made by such Participant, or (ii)
|
||||
withdraw Your litigation claim with respect to the Contributor Version
|
||||
against such Participant. If within 60 days of notice, a reasonable
|
||||
royalty and payment arrangement are not mutually agreed upon in writing
|
||||
by the parties or the litigation claim is not withdrawn, the rights
|
||||
granted by Participant to You under Sections 2.1 and/or 2.2
|
||||
automatically terminate at the expiration of the 60 day notice period
|
||||
specified above.
|
||||
|
||||
(b) any software, hardware, or device, other than such Participant’s
|
||||
Contributor Version, directly or indirectly infringes any patent, then
|
||||
any rights granted to You by such Participant under Sections 2.1(b) and
|
||||
2.2(b) are revoked effective as of the date You first made, used, sold,
|
||||
distributed, or had made, Modifications made by that Participant.
|
||||
|
||||
8.3 If You assert a patent infringement claim against Participant alleging
|
||||
that such Participant’s Contributor Version directly or indirectly
|
||||
infringes any patent where such claim is resolved (such as by license or
|
||||
settlement) prior to the initiation of patent infringement litigation, then
|
||||
the reasonable value of the licenses granted by such Participant under
|
||||
Sections 2.1 or 2.2 shall be taken into account in determining the amount
|
||||
or value of any payment or license.
|
||||
|
||||
8.4 In the event of termination under Sections 8.1 or 8.2 above, all end
|
||||
user license agreements (excluding distributors and resellers) which have
|
||||
been validly granted by You or any distributor hereunder prior to
|
||||
termination shall survive termination.
|
||||
|
||||
9. LIMITATION OF LIABILITY.
|
||||
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
|
||||
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER,
|
||||
ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED
|
||||
CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
|
||||
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
|
||||
STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL
|
||||
DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
|
||||
TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S
|
||||
NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME
|
||||
JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO
|
||||
YOU.
|
||||
|
||||
10. U.S. GOVERNMENT END USERS.
|
||||
|
||||
The Covered Code is a “commercial item,” as that term is defined in 48
|
||||
C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and
|
||||
“commercial computer software documentation,” as such terms are used in 48
|
||||
C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
|
||||
227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
|
||||
acquire Covered Code with only those rights set forth herein.
|
||||
|
||||
11. MISCELLANEOUS.
|
||||
|
||||
This License represents the complete agreement concerning subject matter
|
||||
hereof. If any provision of this License is held to be unenforceable, such
|
||||
provision shall be reformed only to the extent necessary to make it
|
||||
enforceable. This License shall be governed by California law provisions
|
||||
(except to the extent applicable law, if any, provides otherwise),
|
||||
excluding its conflict-of-law provisions. With respect to disputes in which
|
||||
at least one party is a citizen of, or an entity chartered or registered to
|
||||
do business in the United States of America, any litigation relating to
|
||||
this License shall be subject to the jurisdiction of the Federal Courts of
|
||||
the Northern District of California, with venue lying in Santa Clara
|
||||
County, California, with the losing party responsible for costs, including
|
||||
without limitation, court costs and reasonable attorneys’ fees and
|
||||
expenses. The application of the United Nations Convention on Contracts for
|
||||
the International Sale of Goods is expressly excluded. Any law or
|
||||
regulation which provides that the language of a contract shall be
|
||||
construed against the drafter shall not apply to this License.
|
||||
|
||||
12. RESPONSIBILITY FOR CLAIMS.
|
||||
|
||||
As between Initial Developer, Original Developer and the Contributors, each
|
||||
party is responsible for claims and damages arising, directly or
|
||||
indirectly, out of its utilization of rights under this License and You
|
||||
agree to work with Initial Developer, Original Developer and Contributors
|
||||
to distribute such responsibility on an equitable basis. Nothing herein is
|
||||
intended or shall be deemed to constitute any admission of liability.
|
||||
|
||||
13. MULTIPLE-LICENSED CODE.
|
||||
|
||||
Initial Developer may designate portions of the Covered Code as
|
||||
Multiple-Licensed. Multiple-Licensed means that the Initial Developer
|
||||
permits you to utilize portions of the Covered Code under Your choice of
|
||||
the CPAL or the alternative licenses, if any, specified by the Initial
|
||||
Developer in the file described in Exhibit A.
|
||||
|
||||
14. ADDITIONAL TERM: ATTRIBUTION
|
||||
|
||||
(a) As a modest attribution to the organizer of the development of the
|
||||
Original Code (“Original Developer”), in the hope that its promotional
|
||||
value may help justify the time, money and effort invested in writing the
|
||||
Original Code, the Original Developer may include in Exhibit B
|
||||
(“Attribution Information”) a requirement that each time an Executable and
|
||||
Source Code or a Larger Work is launched or initially run (which includes
|
||||
initiating a session), a prominent display of the Original Developer’s
|
||||
Attribution Information (as defined below) must occur on the graphic user
|
||||
interface employed by the end user to access such Covered Code (which may
|
||||
include display on a splash screen), if any. The size of the graphic image
|
||||
should be consistent with the size of the other elements of the Attribution
|
||||
Information. If the access by the end user to the Executable and Source
|
||||
Code does not create a graphic user interface for access to the Covered
|
||||
Code, this obligation shall not apply. If the Original Code displays such
|
||||
Attribution Information in a particular form (such as in the form of a
|
||||
splash screen, notice at login, an “about” display, or dedicated
|
||||
attribution area on user interface screens), continued use of such form for
|
||||
that Attribution Information is one way of meeting this requirement for
|
||||
notice.
|
||||
|
||||
(b) Attribution information may only include a copyright notice, a brief
|
||||
phrase, graphic image and a URL (“Attribution Information”) and is subject
|
||||
to the Attribution Limits as defined below. For these purposes, prominent
|
||||
shall mean display for sufficient duration to give reasonable notice to the
|
||||
user of the identity of the Original Developer and that if You include
|
||||
Attribution Information or similar information for other parties, You must
|
||||
ensure that the Attribution Information for the Original Developer shall be
|
||||
no less prominent than such Attribution Information or similar information
|
||||
for the other party. For greater certainty, the Original Developer may
|
||||
choose to specify in Exhibit B below that the above attribution requirement
|
||||
only applies to an Executable and Source Code resulting from the Original
|
||||
Code or any Modification, but not a Larger Work. The intent is to provide
|
||||
for reasonably modest attribution, therefore the Original Developer cannot
|
||||
require that You display, at any time, more than the following information
|
||||
as Attribution Information: (a) a copyright notice including the name of
|
||||
the Original Developer; (b) a word or one phrase (not exceeding 10 words);
|
||||
(c) one graphic image provided by the Original Developer; and (d) a URL
|
||||
(collectively, the “Attribution Limits”).
|
||||
|
||||
(c) If Exhibit B does not include any Attribution Information, then there
|
||||
are no requirements for You to display any Attribution Information of the
|
||||
Original Developer.
|
||||
|
||||
(d) You acknowledge that all trademarks, service marks and/or trade names
|
||||
contained within the Attribution Information distributed with the Covered
|
||||
Code are the exclusive property of their owners and may only be used with
|
||||
the permission of their owners, or under circumstances otherwise permitted
|
||||
by law or as expressly set out in this License.
|
||||
|
||||
15. ADDITIONAL TERM: NETWORK USE.
|
||||
|
||||
The term “External Deployment” means the use, distribution, or
|
||||
communication of the Original Code or Modifications in any way such that
|
||||
the Original Code or Modifications may be used by anyone other than You,
|
||||
whether those works are distributed or communicated to those persons or
|
||||
made available as an application intended for use over a network. As an
|
||||
express condition for the grants of license hereunder, You must treat any
|
||||
External Deployment by You of the Original Code or Modifications as a
|
||||
distribution under section 3.1 and make Source Code available under Section
|
||||
3.2.
|
||||
|
||||
EXHIBIT A. Common Public Attribution License Version 1.0.
|
||||
|
||||
“The contents of this file are subject to the Common Public Attribution
|
||||
License Version 1.0 (the “License”); you may not use this file except in
|
||||
compliance with the License. You may obtain a copy of the License at
|
||||
https://opensource.org/licenses/CPAL-1.0. The License is based on the Mozilla Public License Version
|
||||
1.1 but Sections 14 and 15 have been added to cover use of software over a
|
||||
computer network and provide for limited attribution for the Original
|
||||
Developer. In addition, Exhibit A has been modified to be consistent with
|
||||
Exhibit B.
|
||||
|
||||
|
||||
|
||||
Software distributed under the License is distributed on an “AS IS” basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is Linux Game Manager.
|
||||
|
||||
The Original Developer is not the Initial Developer and is __________. If
|
||||
left blank, the Original Developer is the Initial Developer.
|
||||
|
||||
The Initial Developer of the Original Code is Billy "Storm Dragon" Wolfe. All portions of
|
||||
the code written by Billy Wolfe are Copyright (c) 2020. All Rights
|
||||
Reserved.
|
||||
|
||||
Contributor Michael Taboada.
|
||||
|
||||
[NOTE: The text of this Exhibit A may differ slightly from the text of the
|
||||
notices in the Source Code files of the Original Code. You should use the
|
||||
text of this Exhibit A rather than the text found in the Original Code
|
||||
Source Code for Your Modifications.]
|
||||
|
||||
EXHIBIT B. Attribution Information
|
||||
|
||||
Attribution Copyright Notice: Linux Game manager copyright 2022 Storm Dragon. All rights reserved.
|
||||
|
||||
|
||||
|
||||
Attribution Phrase (not exceeding 10 words): A Stormux project
|
||||
|
||||
Attribution URL: https://stormgames.wolfe.casa
|
||||
|
||||
Graphic Image as provided in the Covered Code, if any.
|
||||
|
||||
Display of Attribution Information is required in Larger
|
||||
Works which are defined in the CPAL as a work which combines Covered Code
|
||||
or portions thereof with code not governed by the terms of the CPAL.
|
||||
|
325
linux-game-manager.sh
Executable file
325
linux-game-manager.sh
Executable file
@ -0,0 +1,325 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
license() {
|
||||
cat << EOF
|
||||
■The contents of this file are subject to the Common Public Attribution
|
||||
License Version 1.0 (the ■License■); you may not use this file except in
|
||||
compliance with the License. You may obtain a copy of the License at
|
||||
https://opensource.org/licenses/CPAL-1.0. The License is based on the Mozilla Public License Version
|
||||
1.1 but Sections 14 and 15 have been added to cover use of software over a
|
||||
computer network and provide for limited attribution for the Original
|
||||
Developer. In addition, Exhibit A has been modified to be consistent with
|
||||
Exhibit B.
|
||||
|
||||
Software distributed under the License is distributed on an ■AS IS■ basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is linux-game-manager.
|
||||
|
||||
The Original Developer is not the Initial Developer and is . If
|
||||
left blank, the Original Developer is the Initial Developer.
|
||||
|
||||
The Initial Developer of the Original Code is Billy "Storm Dragon" Wolfe. All portions of
|
||||
the code written by Billy Wolfe are Copyright (c) 2020. All Rights
|
||||
Reserved.
|
||||
|
||||
Contributor Michael Taboada.
|
||||
|
||||
Attribution Copyright Notice: linux-game-manager copyright 2022 Storm Dragon. All rights reserved.
|
||||
|
||||
Attribution Phrase (not exceeding 10 words): A Stormux project
|
||||
|
||||
Attribution URL: https://stormgames.wolfe.casa
|
||||
|
||||
Graphic Image as provided in the Covered Code, if any.
|
||||
|
||||
Display of Attribution Information is required in Larger
|
||||
Works which are defined in the CPAL as a work which combines Covered Code
|
||||
or portions thereof with code not governed by the terms of the CPAL.
|
||||
EOF
|
||||
}
|
||||
|
||||
# Dialog accessibility
|
||||
export DIALOGOPTS='--no-lines --visit-items'
|
||||
|
||||
|
||||
# Function to open urls
|
||||
open_url() {
|
||||
xdg-open "${*}" 2> /dev/null
|
||||
}
|
||||
|
||||
# Create desktop launcher file
|
||||
desktop_launcher() {
|
||||
local desktopFile="${HOME}/linux-game-manager.desktop"
|
||||
if [[ -e "${desktopFile}" ]]; then
|
||||
echo "the file ${desktopFile} exists. Cannot create the launcher."
|
||||
exit 1
|
||||
fi
|
||||
local dotDesktop
|
||||
local terminal
|
||||
# Try to find an accessible terminal
|
||||
for i in mate-terminal lxterminal terminator gnome-terminal ; do
|
||||
if command -v $i &> /dev/null ; then
|
||||
terminal="$i"
|
||||
break
|
||||
fi
|
||||
done
|
||||
dotDesktop=('[Desktop Entry]'
|
||||
'Name=Linux game manager'
|
||||
'GenericName=Linux game Manager'
|
||||
'Comment=Install and launch games that are accessible to the blind'
|
||||
"Exec=${terminal} -t \"Linux Game Manager\" -e \"/usr/bin/bash -c 'nohup $(readlink -e "$0") 2> /dev/null'\""
|
||||
'Terminal=false'
|
||||
'Type=Application'
|
||||
'StartupNotify=false'
|
||||
'Keywords=game;'
|
||||
'Categories=Game;'
|
||||
'Version=1.0')
|
||||
for i in "${dotDesktop[@]}" ; do
|
||||
echo "$i" >> "${desktopFile}"
|
||||
done
|
||||
desktop-file-install --dir "${HOME}/.local/share/applications" -m 755 "${desktopFile}"
|
||||
xdg-desktop-icon install ~/.local/share/applications/linux-game-manager.desktop
|
||||
rm "${desktopFile}"
|
||||
exit 0
|
||||
}
|
||||
|
||||
clear_cache() {
|
||||
local answer
|
||||
if [[ ! -d "${cache}" ]]; then
|
||||
echo "No cache found at ${cache}."
|
||||
return
|
||||
fi
|
||||
while ! [[ "${answer,,}" =~ ^yes$|^no$ ]]; do
|
||||
echo "This will delete all contents of ${cache}. Are you sure you want to continue?"
|
||||
echo "Please type yes or no."
|
||||
echo
|
||||
read -r answer
|
||||
done
|
||||
if [[ "$answer" == "no" ]]; then
|
||||
return
|
||||
fi
|
||||
# All safety checks done. Delete the cache.
|
||||
rm -rfv "${cache}"
|
||||
echo "Cache deleted."
|
||||
}
|
||||
|
||||
download() {
|
||||
local source=($@)
|
||||
for i in "${source[@]}" ; do
|
||||
local dest="${i##*/}"
|
||||
dest="${dest//%20/ }"
|
||||
# Remove the destination file if it is empty.
|
||||
test -s "${cache}/${dest}" || rm -f "${cache}/${dest}" 2> /dev/null
|
||||
if [[ "${redownload}" == "true" ]] && [[ -e "${cache}/${dest}" ]]; then
|
||||
rm -v "${cache}/${dest}"
|
||||
fi
|
||||
# Skip if the item is in cache.
|
||||
test -e "${cache}/${dest}" && continue
|
||||
if ! wget -4 -O "${cache}/${dest}" "${i}" ; then
|
||||
echo "Could not download \"$i\"..."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
get_installer() {
|
||||
trap "exit 0" SIGINT
|
||||
# If the file is in cache nothing else needs to be done.
|
||||
if [[ -f "${cache}/$1" ]]; then
|
||||
return
|
||||
fi
|
||||
# Create message for dialog.
|
||||
local message="Make sure $1 is available in either your Downloads or Desktop directory and press enter to continue."
|
||||
if [[ -n "$2" ]]; then
|
||||
message+="\n\nThe last good known URL for $game is:"
|
||||
message+="\n$2"
|
||||
fi
|
||||
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
|
||||
message+="\n\nThe URL has been copied to the clipboard."
|
||||
fi
|
||||
dialog --ok-label "Continue" \
|
||||
--backtitle "Linux Game Manager" \
|
||||
--msgbox "$message" -1 -1
|
||||
# Search the Desktop and Downloads directories for the installation file
|
||||
for i in ~/Downloads ~/Desktop ; do
|
||||
find $i -type f -name "$1" -exec cp -v {} "${cache}/" \;
|
||||
done
|
||||
# If the file is still not available abort.
|
||||
if [[ ! -f "${cache}/$1" ]]; then
|
||||
echo "couldn't find $1. Please download the file and try again."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
help() {
|
||||
echo "${0##*/}"
|
||||
echo "Released under the terms of the Common Public Attribution License Version 1.0"
|
||||
echo -e "This is a Stormux project: https://stormux.org\n"
|
||||
echo -e "Usage:\n"
|
||||
echo "With no arguments, open the game launcher."
|
||||
for i in "${!command[@]}" ; do
|
||||
echo "-${i/:/ <parameter>}: ${command[${i}]}"
|
||||
done | sort
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# main script
|
||||
|
||||
add_launcher() {
|
||||
local launchSettings="${game}|${*}"
|
||||
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
|
||||
echo "${launchSettings}" >> "${configFile}"
|
||||
sort -o "${configFile}" "${configFile}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Install games
|
||||
game_installer() {
|
||||
mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
|
||||
# Create the menu of installed games
|
||||
declare -a menuList
|
||||
for i in "${gameList[@]}" ; do
|
||||
local menuItem="$i"
|
||||
for j in "${installedGames[@]}" ; do
|
||||
if [[ "$j" == "$menuItem" ]]; then
|
||||
unset menuItem
|
||||
fi
|
||||
done
|
||||
if [[ -n "$menuItem" ]]; then
|
||||
menuList+=("$menuItem" "$menuItem")
|
||||
fi
|
||||
done
|
||||
if [[ ${#menuList[@]} -eq 0 ]]; then
|
||||
echo "All games are already installed."
|
||||
exit 0
|
||||
fi
|
||||
menuList+=("Donate" "Donate")
|
||||
game="$(dialog --backtitle "Game Installer" \
|
||||
--clear \
|
||||
--no-tags \
|
||||
--menu "Please select a game to install" 0 0 0 "${menuList[@]}" --stdout)"
|
||||
}
|
||||
|
||||
# launch games that are installed
|
||||
game_launcher() {
|
||||
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
|
||||
if [[ ${#lines} -eq 0 ]]; then
|
||||
echo "Install some games first."
|
||||
exit 0
|
||||
fi
|
||||
# Create the menu of installed games
|
||||
declare -a menuList
|
||||
for i in "${lines[@]}" ; do
|
||||
menuList+=("${i#*|}" "${i%|*}")
|
||||
done
|
||||
menuList+=("Donate" "Donate")
|
||||
game="$(dialog --backtitle "Linux Game Launcher" \
|
||||
--clear \
|
||||
--no-tags \
|
||||
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
|
||||
local menuCode=$?
|
||||
if [[ $menuCode -eq 1 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" == "Donate" ]]; then
|
||||
open_url "https://ko-fi.com/stormux"
|
||||
exit 0
|
||||
fi
|
||||
exec ${game%|}
|
||||
}
|
||||
|
||||
|
||||
# If display isn't set assume we are launching from console and an X environment is running using display :0
|
||||
if [[ -z "$DISPLAY" ]]; then
|
||||
export DISPLAY=":0"
|
||||
fi
|
||||
# Settings file
|
||||
cache="${XDG_CACHE_HOME:-$HOME/.cache}/linux-game-manager"
|
||||
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/linux-game-manager/games.conf"
|
||||
mkdir -p "${cache}"
|
||||
mkdir -p "${configFile%/*}"
|
||||
# Load any arguments from settings.conf file
|
||||
if [[ -r "${configFile%/*}/settings.conf" ]]; then
|
||||
source "${configFile%/*}/settings.conf"
|
||||
fi
|
||||
unset noCache
|
||||
|
||||
# Set up logging
|
||||
echo -e "\n\n-----> Logging started at $(date '+%A, %B %d, %Y at %I:%M%p')\n" >> "${cache}/linux-game-manager.log"
|
||||
exec &> >(/usr/bin/tee -a "${cache}/linux-game-manager.log")
|
||||
|
||||
# The list of games available for installation.
|
||||
# Use menu friendly names.
|
||||
gameList=(
|
||||
"Fantasy Story II"
|
||||
)
|
||||
|
||||
# Check for required packages
|
||||
requiredPackages=(
|
||||
"curl"
|
||||
"unzip"
|
||||
"wget"
|
||||
)
|
||||
for i in "${requiredPackages}" ; do
|
||||
if ! command -v $i &> /dev/null ; then
|
||||
echo "Please install $i before continuing."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
# With no arguments, open the game launcher.
|
||||
if [[ $# -eq 0 ]]; then
|
||||
game_launcher
|
||||
fi
|
||||
|
||||
# Array of command line arguments
|
||||
declare -A command=(
|
||||
[C]="Clear the cache. All game installers will be deleted."
|
||||
[D]="Create desktop shortcut. You can launch Linux Game Manager from the desktop or applications menu."
|
||||
[h]="This help screen."
|
||||
[i]="Install games."
|
||||
[L]="Display license information."
|
||||
[N]="No cache, delete the installer after it has been extracted."
|
||||
[R]="Redownload. Removes old versions of packages from cache before installing."
|
||||
)
|
||||
|
||||
# Convert the keys of the associative array to a format usable by getopts
|
||||
args="${!command[*]}"
|
||||
args="${args//[[:space:]]/}"
|
||||
while getopts "${args}" i ; do
|
||||
case "$i" in
|
||||
C) clear_cache;;
|
||||
D) desktop_launcher;;
|
||||
h) help;;
|
||||
i) game_installer;;
|
||||
L) license;;
|
||||
N) noCache="true";;
|
||||
R) redownload="true";;
|
||||
esac
|
||||
done
|
||||
|
||||
# Install game based on the selection above.
|
||||
installPath="${HOME}/.local/games"
|
||||
mkdir -p "${installPath}"
|
||||
case "${game}" in
|
||||
"Fantasy Story II")
|
||||
get_installer "FS2_2.6_Linux.zip" "https://drive.google.com/file/d/187OaD1HhPoty85yJafZyvfqD5_G3P04c/view?usp=sharing"
|
||||
pushd "${installPath}"
|
||||
unzip "${cache}/FS2_2.6_Linux.zip"
|
||||
popd
|
||||
chmod +x "${installPath}/FS2_2.6_Linux/FS2.x86_64"
|
||||
add_launcher "${installPath}/FS2_2.6_Linux/FS2.x86_64" "-ESpeakApplication=espeak-ng"
|
||||
;;
|
||||
"Donate")
|
||||
open_url "https://ko-fi.com/stormux"
|
||||
;;
|
||||
*)
|
||||
[[ -n "${game}" ]] && echo "Game \"${game}\" not found."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user