Consolidate dedicated server release notices
Source licenses, attribution, provenance, and font notices from the pinned game checkout while retaining installer compatibility with earlier manifest formats.
This commit is contained in:
parent
0f1d931a7b
commit
be826b5ba6
8 changed files with 92 additions and 421 deletions
134
ASSET-LICENSE.md
134
ASSET-LICENSE.md
|
|
@ -1,134 +0,0 @@
|
||||||
# NETfishing Asset License 1.0
|
|
||||||
|
|
||||||
Copyright © 2026 Alexander Sellite and Rheannon Eisworth. All rights
|
|
||||||
reserved except for the permissions expressly granted below.
|
|
||||||
|
|
||||||
## 1. Scope
|
|
||||||
|
|
||||||
This license applies to original NETfishing artwork, graphics, textures,
|
|
||||||
models, animations, music, sound recordings, narrative content, visual
|
|
||||||
designs, characters, and other creative assets owned by Alexander Sellite and
|
|
||||||
Rheannon Eisworth (the **“NETfishing Assets”**).
|
|
||||||
|
|
||||||
It does not apply to:
|
|
||||||
|
|
||||||
- software source code identified as GPL-3.0-or-later;
|
|
||||||
- third-party material identified in `THIRD-PARTY-NOTICES.md`;
|
|
||||||
- material accompanied by a different license; or
|
|
||||||
- the NETfishing and Woofmeow names and logos, which are addressed in
|
|
||||||
`TRADEMARKS.md`.
|
|
||||||
|
|
||||||
Repository location alone does not change third-party ownership or licensing.
|
|
||||||
|
|
||||||
## 2. Definitions
|
|
||||||
|
|
||||||
**Official NETfishing Software** means:
|
|
||||||
|
|
||||||
- an unmodified binary release published by the NETfishing owners through an
|
|
||||||
official NETfishing distribution channel; or
|
|
||||||
- a build made from an unmodified official NETfishing source release or tagged
|
|
||||||
revision.
|
|
||||||
|
|
||||||
**Mod** means a non-standalone add-on created to operate with Official
|
|
||||||
NETfishing Software. A Mod may add, replace, or alter content loaded by the
|
|
||||||
Official NETfishing Software, but it may not redistribute a replacement copy
|
|
||||||
of the game or represent a fork, clone, sequel, or separate game.
|
|
||||||
|
|
||||||
## 3. Permission to use the official game
|
|
||||||
|
|
||||||
You may reproduce NETfishing Assets as technically necessary to install, run,
|
|
||||||
back up, and privately modify a lawfully obtained copy of Official NETfishing
|
|
||||||
Software.
|
|
||||||
|
|
||||||
You may capture, publish, and monetize screenshots, gameplay videos,
|
|
||||||
livestreams, reviews, tutorials, and similar commentary showing a lawfully
|
|
||||||
obtained copy of NETfishing. This permission does not authorize redistribution
|
|
||||||
of the source asset files or imply endorsement.
|
|
||||||
|
|
||||||
## 4. Community Mod license
|
|
||||||
|
|
||||||
Subject to this license, you may create, modify, and distribute NETfishing
|
|
||||||
Assets solely as part of a Mod for Official NETfishing Software.
|
|
||||||
|
|
||||||
This permission is worldwide, nonexclusive, royalty-free, and available for
|
|
||||||
as long as you comply with this license. It permits only the copies of
|
|
||||||
NETfishing Assets reasonably necessary for the Mod to function. It does not
|
|
||||||
permit distributing the original game, a substantially complete collection of
|
|
||||||
its assets, or a general-purpose asset pack.
|
|
||||||
|
|
||||||
A distributed Mod must:
|
|
||||||
|
|
||||||
1. require a separately obtained copy of Official NETfishing Software;
|
|
||||||
2. be presented as unofficial community content;
|
|
||||||
3. include the following notice in its documentation or distribution page:
|
|
||||||
|
|
||||||
> Contains or adapts NETfishing assets © 2026 Alexander Sellite and
|
|
||||||
> Rheannon Eisworth, used under the NETfishing Asset License 1.0. This Mod
|
|
||||||
> is unofficial and is not endorsed by Woofmeow.
|
|
||||||
|
|
||||||
4. identify material created by the Mod author separately from NETfishing
|
|
||||||
Assets; and
|
|
||||||
5. comply with `TRADEMARKS.md`.
|
|
||||||
|
|
||||||
Mods may be shared without charge and may accept voluntary donations that do
|
|
||||||
not purchase access, features, or preferential treatment. Selling a Mod,
|
|
||||||
charging for access to it, licensing it commercially, or using NETfishing
|
|
||||||
Assets in paid products requires separate written permission from both
|
|
||||||
NETfishing owners.
|
|
||||||
|
|
||||||
## 5. Uses not permitted
|
|
||||||
|
|
||||||
Except with separate written permission from both NETfishing owners, you may
|
|
||||||
not use or distribute NETfishing Assets:
|
|
||||||
|
|
||||||
- in a fork, clone, remake, sequel, or standalone game;
|
|
||||||
- with a modified distribution of the GPL-covered NETfishing code that is not
|
|
||||||
Official NETfishing Software;
|
|
||||||
- in another game, application, asset library, template, or merchandise;
|
|
||||||
- as a substantially complete asset extraction or archive;
|
|
||||||
- in a way that implies sponsorship, endorsement, or official status;
|
|
||||||
- to register a confusingly similar trademark, domain, account, or product
|
|
||||||
identity; or
|
|
||||||
- under terms that claim ownership of the NETfishing Assets themselves.
|
|
||||||
|
|
||||||
The GPL permits forks and redistribution of the GPL-covered code. This asset
|
|
||||||
license does not permit those forks to carry NETfishing Assets. A code fork
|
|
||||||
must remove or replace the NETfishing Assets and reserved branding unless both
|
|
||||||
owners grant separate written permission.
|
|
||||||
|
|
||||||
## 6. Ownership of Mods
|
|
||||||
|
|
||||||
You retain ownership of your original Mod material. Alexander Sellite and
|
|
||||||
Rheannon Eisworth retain ownership of the NETfishing Assets and adaptations of
|
|
||||||
those assets to the extent provided by applicable law.
|
|
||||||
|
|
||||||
This license does not require you to assign your original Mod material to the
|
|
||||||
NETfishing owners. It also does not grant you ownership of the underlying
|
|
||||||
NETfishing Assets.
|
|
||||||
|
|
||||||
## 7. Termination and cure
|
|
||||||
|
|
||||||
Your permissions under this license terminate automatically if you violate
|
|
||||||
its terms. They are reinstated provisionally when you stop the violation and
|
|
||||||
permanently if both NETfishing owners do not notify you of the violation
|
|
||||||
within sixty days after it has been cured.
|
|
||||||
|
|
||||||
Termination does not limit remedies available for activity outside this
|
|
||||||
license.
|
|
||||||
|
|
||||||
## 8. No warranty
|
|
||||||
|
|
||||||
THE NETFISHING ASSETS ARE PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE, TITLE, OR NON-INFRINGEMENT. TO THE MAXIMUM EXTENT
|
|
||||||
PERMITTED BY LAW, THE OWNERS WILL NOT BE LIABLE FOR ANY CLAIM, DAMAGES, OR
|
|
||||||
OTHER LIABILITY ARISING FROM THIS LICENSE OR USE OF THE NETFISHING ASSETS.
|
|
||||||
|
|
||||||
## 9. Additional permission
|
|
||||||
|
|
||||||
Uses not granted here require written permission from both Alexander Sellite
|
|
||||||
and Rheannon Eisworth. A permission granted to one person or project does not
|
|
||||||
amend this license for others.
|
|
||||||
|
|
||||||
This is a custom asset license, not an open-source software license or a
|
|
||||||
Creative Commons license.
|
|
||||||
61
CREDITS.md
61
CREDITS.md
|
|
@ -1,61 +0,0 @@
|
||||||
# Credits
|
|
||||||
|
|
||||||
## Project ownership and development
|
|
||||||
|
|
||||||
NETfishing is jointly owned, developed, and published by Alexander Sellite and
|
|
||||||
Rheannon Eisworth, operating collectively as the independent team Woofmeow.
|
|
||||||
|
|
||||||
- Alexander Sellite: co-owner, developer, project director, and 3D artist.
|
|
||||||
- Rheannon Eisworth: co-owner, developer, and lead 2D artist.
|
|
||||||
|
|
||||||
## Development assistance
|
|
||||||
|
|
||||||
Development has used automated coding assistance for implementation,
|
|
||||||
investigation, testing, documentation, and review. Design choices, supplied
|
|
||||||
artwork, acceptance decisions, repository operations, and releases remain
|
|
||||||
human-controlled.
|
|
||||||
|
|
||||||
This disclosure is intentionally about process. Commit style, code style, or
|
|
||||||
repository metadata cannot reliably prove whether a particular change was
|
|
||||||
written with or without assistance.
|
|
||||||
|
|
||||||
## Fonts
|
|
||||||
|
|
||||||
- Tuffy: Thatcher Ulrich, Karoly Barta, and Michael Evans. The bundled license
|
|
||||||
dedicates the work to the public domain; see `ui/fonts/Tuffy-LICENSE.txt`.
|
|
||||||
- Seattle Avenue: public-domain font by JLH Fonts, bundled as
|
|
||||||
`ui/fonts/seattle_avenue.otf`; see `ui/fonts/Seattle-Avenue-LICENSE.txt`.
|
|
||||||
|
|
||||||
## Music
|
|
||||||
|
|
||||||
- `audio/music/title/as_in_four_wolves.ogg`: original title/ambient music by
|
|
||||||
Alexander Sellite.
|
|
||||||
|
|
||||||
## Sound effects
|
|
||||||
|
|
||||||
- “Spinning reel.wav” by tosha73, used as the source for the fishing fight and
|
|
||||||
manual-reeling loops. Freesound sound 509902, Creative Commons Zero (CC0):
|
|
||||||
https://freesound.org/s/509902/
|
|
||||||
- “Gentle Ocean Waves Loop” by kkenny101, used for the saltwater shoreline
|
|
||||||
ambience. Freesound sound 852826, Creative Commons Zero (CC0):
|
|
||||||
https://freesound.org/s/852826/
|
|
||||||
- Rain Loop Ontario by Ayton -- https://freesound.org/s/212799/ -- License:
|
|
||||||
Attribution 3.0
|
|
||||||
- Dog_Bark.wav by ivolipa -- https://freesound.org/s/328729/ -- License:
|
|
||||||
Creative Commons 0
|
|
||||||
- Cat meow.m4a by Christyboy100 -- https://freesound.org/s/495694/ -- License:
|
|
||||||
Attribution 3.0
|
|
||||||
- “Quick Water Droplet” by qubodup, used for the bobber water-impact sound.
|
|
||||||
Freesound sound 792931, Creative Commons Zero (CC0):
|
|
||||||
https://freesound.org/s/792931/
|
|
||||||
|
|
||||||
## Artwork
|
|
||||||
|
|
||||||
- Original 2D artwork: Rheannon Eisworth.
|
|
||||||
- Original 3D models: Alexander Sellite.
|
|
||||||
|
|
||||||
Asset categories and release-record requirements are listed in
|
|
||||||
[`docs/ASSET-PROVENANCE.md`](docs/ASSET-PROVENANCE.md).
|
|
||||||
|
|
||||||
Complete license wording, modification notices, and Godot Engine attribution
|
|
||||||
are recorded in [`THIRD-PARTY-NOTICES.md`](THIRD-PARTY-NOTICES.md).
|
|
||||||
24
README.md
24
README.md
|
|
@ -20,13 +20,18 @@ game_commit="$(git -C ../netfishing rev-parse HEAD)"
|
||||||
./scripts/stage-build.sh \
|
./scripts/stage-build.sh \
|
||||||
../netfishing/builds/vX.Y.Z-alpha/server-linux-x86_64 \
|
../netfishing/builds/vX.Y.Z-alpha/server-linux-x86_64 \
|
||||||
X.Y.Z-alpha \
|
X.Y.Z-alpha \
|
||||||
"${game_commit}"
|
"${game_commit}" \
|
||||||
|
../netfishing
|
||||||
```
|
```
|
||||||
|
|
||||||
The staged binaries under `dist/` are release inputs and are intentionally not
|
The staged binaries under `dist/` are release inputs and are intentionally not
|
||||||
tracked by Git. `dist/BUILD_INFO` records the version, full game and packaging
|
tracked by Git. `dist/BUILD_INFO` records the version, full game and packaging
|
||||||
commits, export preset, platform, and binary hashes. Packaging refuses a
|
commits, export preset, platform, and binary hashes. Manifest version 3 also
|
||||||
|
records the consolidated notice layout. Packaging refuses a
|
||||||
version mismatch, packaging-tag mismatch, or failed internal checksum.
|
version mismatch, packaging-tag mismatch, or failed internal checksum.
|
||||||
|
Staging also requires the clean main game checkout at that exact commit and
|
||||||
|
copies its authoritative licenses, attribution/provenance record, and font
|
||||||
|
notices into the package. This repository does not maintain duplicate copies.
|
||||||
|
|
||||||
Create a deterministic native archive after staging:
|
Create a deterministic native archive after staging:
|
||||||
|
|
||||||
|
|
@ -123,7 +128,8 @@ For a direct foreground run from staged build inputs:
|
||||||
./scripts/stage-build.sh \
|
./scripts/stage-build.sh \
|
||||||
../netfishing/builds/vX.Y.Z-alpha/server-linux-x86_64 \
|
../netfishing/builds/vX.Y.Z-alpha/server-linux-x86_64 \
|
||||||
X.Y.Z-alpha \
|
X.Y.Z-alpha \
|
||||||
"$(git -C ../netfishing rev-parse HEAD)"
|
"$(git -C ../netfishing rev-parse HEAD)" \
|
||||||
|
../netfishing
|
||||||
docker compose build
|
docker compose build
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
@ -148,12 +154,14 @@ server code are licensed under
|
||||||
[GPL-3.0-or-later](LICENSE). Every binary package includes the license and a
|
[GPL-3.0-or-later](LICENSE). Every binary package includes the license and a
|
||||||
corresponding-source record for its exact game commit.
|
corresponding-source record for its exact game commit.
|
||||||
|
|
||||||
The server PCK contains NETfishing creative assets governed by
|
The server PCK contains NETfishing creative assets and third-party material.
|
||||||
[`ASSET-LICENSE.md`](ASSET-LICENSE.md), along with third-party materials listed
|
Their governing terms, credits, and provenance are maintained once in the
|
||||||
in [`THIRD-PARTY-NOTICES.md`](THIRD-PARTY-NOTICES.md). NETfishing and Woofmeow
|
main game's
|
||||||
branding is reserved as described in [`TRADEMARKS.md`](TRADEMARKS.md).
|
[`docs/ATTRIBUTION.md`](https://forge.makearmy.io/woofmeow/netfishing/src/branch/main/docs/ATTRIBUTION.md),
|
||||||
|
with the asset license and trademark terms beside that record. Every staged
|
||||||
|
server package copies those files from its exact game source commit.
|
||||||
|
|
||||||
Contributions are accepted under [`CONTRIBUTING.md`](CONTRIBUTING.md) and
|
Contributions are accepted under [`CONTRIBUTING.md`](CONTRIBUTING.md) and
|
||||||
[`CONTRIBUTOR-TERMS.md`](CONTRIBUTOR-TERMS.md).
|
[`CONTRIBUTOR-TERMS.md`](CONTRIBUTOR-TERMS.md).
|
||||||
|
|
||||||
Copyright © 2026 Alexander Sellite and Rheannon Eisworth.
|
Copyright © 2026 Woofmeow.
|
||||||
|
|
|
||||||
|
|
@ -1,137 +0,0 @@
|
||||||
# NETfishing third-party notices
|
|
||||||
|
|
||||||
NETfishing includes or is distributed with the materials identified below.
|
|
||||||
They are not relicensed by the NETfishing GPL or Asset License; their own
|
|
||||||
terms continue to apply.
|
|
||||||
|
|
||||||
## Godot Engine
|
|
||||||
|
|
||||||
NETfishing uses Godot Engine. Godot Engine is licensed under the MIT License:
|
|
||||||
|
|
||||||
> Copyright (c) 2014-present Godot Engine contributors.
|
|
||||||
> Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
|
|
||||||
>
|
|
||||||
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
> of this software and associated documentation files (the “Software”), to deal
|
|
||||||
> in the Software without restriction, including without limitation the rights
|
|
||||||
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
> copies of the Software, and to permit persons to whom the Software is
|
|
||||||
> furnished to do so, subject to the following conditions:
|
|
||||||
>
|
|
||||||
> The above copyright notice and this permission notice shall be included in
|
|
||||||
> all copies or substantial portions of the Software.
|
|
||||||
>
|
|
||||||
> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
> SOFTWARE.
|
|
||||||
|
|
||||||
Godot Engine and its bundled third-party-component notices are documented at:
|
|
||||||
|
|
||||||
- https://godotengine.org/license/
|
|
||||||
- https://github.com/godotengine/godot/blob/master/COPYRIGHT.txt
|
|
||||||
|
|
||||||
Godot uses FreeType for font rendering. Portions of the engine are copyright
|
|
||||||
The FreeType Project (https://www.freetype.org). All rights reserved under the
|
|
||||||
FreeType Project’s applicable license.
|
|
||||||
|
|
||||||
## Fonts
|
|
||||||
|
|
||||||
### Tuffy Bold
|
|
||||||
|
|
||||||
- Creators: Thatcher Ulrich, Karoly Barta, and Michael Evans
|
|
||||||
- Repository file: `ui/fonts/Tuffy_Bold.otf`
|
|
||||||
- Status: dedicated to the public domain
|
|
||||||
- Bundled notice: `ui/fonts/Tuffy-LICENSE.txt`
|
|
||||||
|
|
||||||
### Seattle Avenue
|
|
||||||
|
|
||||||
- Creator: JLH Fonts
|
|
||||||
- Repository file: `ui/fonts/seattle_avenue.otf`
|
|
||||||
- Status: dedicated to the public domain by the creator
|
|
||||||
- Source record:
|
|
||||||
https://www.publicdomainfiles.com/show_file.php?id=13486266913972
|
|
||||||
- Additional creator attribution and public-domain listing:
|
|
||||||
https://www.dafont.com/seattle-avenue.font
|
|
||||||
- Bundled notice: `ui/fonts/Seattle-Avenue-LICENSE.txt`
|
|
||||||
|
|
||||||
Public-domain status means these fonts are not subject to the NETfishing Asset
|
|
||||||
License.
|
|
||||||
|
|
||||||
## Sound recordings
|
|
||||||
|
|
||||||
### Spinning Reel
|
|
||||||
|
|
||||||
- Original title: “Spinning reel.wav”
|
|
||||||
- Creator: Freesound user `tosha73`
|
|
||||||
- Source: https://freesound.org/s/509902/
|
|
||||||
- License: Creative Commons Zero (CC0)
|
|
||||||
- Used for: `audio/sfx/fishing/fighting.wav` and
|
|
||||||
`audio/sfx/fishing/reeling.wav`
|
|
||||||
- Changes: edited into separate looping fight and manual-reeling sounds;
|
|
||||||
converted/exported as runtime WAV files
|
|
||||||
|
|
||||||
CC0 information: https://creativecommons.org/publicdomain/zero/1.0/
|
|
||||||
|
|
||||||
### Gentle Ocean Waves Loop
|
|
||||||
|
|
||||||
- Original title: “Gentle Ocean Waves Loop”
|
|
||||||
- Creator: Freesound user `kkenny101`
|
|
||||||
- Source: https://freesound.org/s/852826/
|
|
||||||
- License: Creative Commons Zero (CC0)
|
|
||||||
- Used for: `audio/ambience/waves.wav`
|
|
||||||
- Changes: configured as a quiet looping saltwater ambience
|
|
||||||
|
|
||||||
### Quick Water Droplet
|
|
||||||
|
|
||||||
- Original title: “Quick Water Droplet”
|
|
||||||
- Creator: Freesound user `qubodup`
|
|
||||||
- Source: https://freesound.org/s/792931/
|
|
||||||
- License: Creative Commons Zero (CC0)
|
|
||||||
- Used for: `audio/sfx/fishing/bobber.wav`
|
|
||||||
- Changes: used as the bobber water-impact sound
|
|
||||||
|
|
||||||
### Dog Bark
|
|
||||||
|
|
||||||
- Original title: “Dog_Bark.wav”
|
|
||||||
- Creator: Freesound user `ivolipa`
|
|
||||||
- Source: https://freesound.org/s/328729/
|
|
||||||
- License: Creative Commons Zero (CC0)
|
|
||||||
- Used for: `sound/dialogue/calls/bark.wav`
|
|
||||||
- Changes: edited and exported as a short in-game character-call sound
|
|
||||||
|
|
||||||
### Rain Loop Ontario
|
|
||||||
|
|
||||||
- Original title: “Rain Loop Ontario”
|
|
||||||
- Creator: Freesound user `Ayton`
|
|
||||||
- Source: https://freesound.org/s/212799/
|
|
||||||
- License: Creative Commons Attribution 3.0
|
|
||||||
- License text: https://creativecommons.org/licenses/by/3.0/legalcode
|
|
||||||
- Used for: `audio/ambience/rain_loop_ontario.ogg`
|
|
||||||
- Changes: converted from the supplied AIFF source to Ogg Vorbis and configured
|
|
||||||
as looping weather ambience
|
|
||||||
|
|
||||||
### Cat Meow
|
|
||||||
|
|
||||||
- Original title: “Cat meow.m4a”
|
|
||||||
- Creator: Freesound user `Christyboy100`
|
|
||||||
- Source: https://freesound.org/s/495694/
|
|
||||||
- License: Creative Commons Attribution 3.0
|
|
||||||
- License text: https://creativecommons.org/licenses/by/3.0/legalcode
|
|
||||||
- Used for: `sound/dialogue/calls/meow.wav`
|
|
||||||
- Changes: converted to WAV and edited into a short in-game character-call
|
|
||||||
sound
|
|
||||||
|
|
||||||
The attribution above does not imply that any third-party creator endorses
|
|
||||||
NETfishing, Woofmeow, Alexander Sellite, or Rheannon Eisworth.
|
|
||||||
|
|
||||||
## Complete provenance records
|
|
||||||
|
|
||||||
Source filenames, transformations, and available SHA-256 records are kept in
|
|
||||||
the main game repository’s
|
|
||||||
[`docs/ASSET-PROVENANCE.md`](https://forge.makearmy.io/woofmeow/netfishing/src/branch/main/docs/ASSET-PROVENANCE.md).
|
|
||||||
Absence from that development record does not remove an applicable third-party
|
|
||||||
license or attribution requirement.
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
# NETfishing and Woofmeow branding
|
|
||||||
|
|
||||||
The NETfishing and Woofmeow names, logos, icons, trade dress, and other source
|
|
||||||
identifiers are reserved by Alexander Sellite and Rheannon Eisworth. Their
|
|
||||||
presence in a GPL-licensed repository does not grant trademark rights or imply
|
|
||||||
permission to represent another product as official.
|
|
||||||
|
|
||||||
No trademark registration is asserted by this notice. Applicable rights may
|
|
||||||
exist through use and other law.
|
|
||||||
|
|
||||||
## Permitted references
|
|
||||||
|
|
||||||
You may use the names NETfishing and Woofmeow truthfully to:
|
|
||||||
|
|
||||||
- refer to the official game or development team;
|
|
||||||
- state that software interoperates with or is a Mod for NETfishing;
|
|
||||||
- link to an official repository or distribution page; and
|
|
||||||
- discuss, review, criticize, or report on the Project.
|
|
||||||
|
|
||||||
Use only the amount of branding reasonably necessary to identify the Project.
|
|
||||||
Do not imply sponsorship, certification, endorsement, or official status.
|
|
||||||
|
|
||||||
An unofficial Mod may use wording such as “Example Mod for NETfishing” if its
|
|
||||||
name and presentation remain clearly distinct and it displays an unofficial
|
|
||||||
notice.
|
|
||||||
|
|
||||||
## Forks and redistributed code
|
|
||||||
|
|
||||||
The GNU GPL permits forks and redistribution of covered code. A fork or
|
|
||||||
modified distribution must:
|
|
||||||
|
|
||||||
- use a distinct product name;
|
|
||||||
- remove NETfishing and Woofmeow logos, icons, and official trade dress;
|
|
||||||
- avoid confusingly similar names, domains, package identifiers, and account
|
|
||||||
names; and
|
|
||||||
- clearly identify itself as independent and unofficial.
|
|
||||||
|
|
||||||
These branding terms do not limit rights granted by the GPL to the software
|
|
||||||
code or lawful nominative, descriptive, comparative, or fair use.
|
|
||||||
|
|
||||||
Permission for broader branding use must be obtained in writing from both
|
|
||||||
Alexander Sellite and Rheannon Eisworth.
|
|
||||||
|
|
@ -91,12 +91,39 @@ for filename in NETfishingServer.x86_64 NETfishingServer.pck BUILD_INFO SHA256SU
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
for filename in \
|
|
||||||
GPL-3.0-or-later.txt \
|
manifest_value() {
|
||||||
ASSET-LICENSE.md \
|
local key="$1"
|
||||||
THIRD-PARTY-NOTICES.md \
|
awk -F= -v key="${key}" '$1 == key {sub(/^[^=]*=/, ""); print; exit}' \
|
||||||
TRADEMARKS.md \
|
"${payload_dir}/BUILD_INFO"
|
||||||
CREDITS.md; do
|
}
|
||||||
|
manifest_version="$(manifest_value manifest_version)"
|
||||||
|
case "${manifest_version}" in
|
||||||
|
1|2)
|
||||||
|
required_notice_files=(
|
||||||
|
GPL-3.0-or-later.txt
|
||||||
|
ASSET-LICENSE.md
|
||||||
|
THIRD-PARTY-NOTICES.md
|
||||||
|
TRADEMARKS.md
|
||||||
|
CREDITS.md
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
required_notice_files=(
|
||||||
|
GPL-3.0-or-later.txt
|
||||||
|
ASSET-LICENSE.md
|
||||||
|
ATTRIBUTION.md
|
||||||
|
TRADEMARKS.md
|
||||||
|
Tuffy-LICENSE.txt
|
||||||
|
Seattle-Avenue-LICENSE.txt
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported BUILD_INFO format." >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
for filename in "${required_notice_files[@]}"; do
|
||||||
if [[ ! -f "${payload_dir}/licenses/${filename}" ]]; then
|
if [[ ! -f "${payload_dir}/licenses/${filename}" ]]; then
|
||||||
echo "Archive is missing required notice licenses/${filename}." >&2
|
echo "Archive is missing required notice licenses/${filename}." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -108,20 +135,10 @@ if [[ ! -f "${payload_dir}/SOURCE-CODE.md" ]]; then
|
||||||
fi
|
fi
|
||||||
(cd -- "${payload_dir}" && sha256sum -c SHA256SUMS)
|
(cd -- "${payload_dir}" && sha256sum -c SHA256SUMS)
|
||||||
|
|
||||||
manifest_value() {
|
|
||||||
local key="$1"
|
|
||||||
awk -F= -v key="${key}" '$1 == key {sub(/^[^=]*=/, ""); print; exit}' \
|
|
||||||
"${payload_dir}/BUILD_INFO"
|
|
||||||
}
|
|
||||||
manifest_version="$(manifest_value manifest_version)"
|
|
||||||
game_version="$(manifest_value game_version)"
|
game_version="$(manifest_value game_version)"
|
||||||
game_commit="$(manifest_value game_commit)"
|
game_commit="$(manifest_value game_commit)"
|
||||||
packaging_commit="$(manifest_value packaging_commit)"
|
packaging_commit="$(manifest_value packaging_commit)"
|
||||||
platform="$(manifest_value platform)"
|
platform="$(manifest_value platform)"
|
||||||
if [[ "${manifest_version}" != "1" && "${manifest_version}" != "2" ]]; then
|
|
||||||
echo "Unsupported BUILD_INFO format." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [[ ! "${game_version}" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]; then
|
if [[ ! "${game_version}" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]; then
|
||||||
echo "Invalid game version in BUILD_INFO." >&2
|
echo "Invalid game version in BUILD_INFO." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -130,7 +147,7 @@ if [[ ! "${game_commit}" =~ ^[0-9a-f]{40}$ ]]; then
|
||||||
echo "Invalid game commit in BUILD_INFO." >&2
|
echo "Invalid game commit in BUILD_INFO." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [[ "${manifest_version}" == "2" \
|
if [[ "${manifest_version}" != "1" \
|
||||||
&& ! "${packaging_commit}" =~ ^[0-9a-f]{40}$ ]]; then
|
&& ! "${packaging_commit}" =~ ^[0-9a-f]{40}$ ]]; then
|
||||||
echo "Invalid packaging commit in BUILD_INFO." >&2
|
echo "Invalid packaging commit in BUILD_INFO." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -158,12 +175,7 @@ else
|
||||||
install -m 0444 "${payload_dir}/SHA256SUMS" "${release_stage}/"
|
install -m 0444 "${payload_dir}/SHA256SUMS" "${release_stage}/"
|
||||||
install -m 0444 "${payload_dir}/SOURCE-CODE.md" "${release_stage}/"
|
install -m 0444 "${payload_dir}/SOURCE-CODE.md" "${release_stage}/"
|
||||||
install -d -m 0755 "${release_stage}/licenses"
|
install -d -m 0755 "${release_stage}/licenses"
|
||||||
for filename in \
|
for filename in "${required_notice_files[@]}"; do
|
||||||
GPL-3.0-or-later.txt \
|
|
||||||
ASSET-LICENSE.md \
|
|
||||||
THIRD-PARTY-NOTICES.md \
|
|
||||||
TRADEMARKS.md \
|
|
||||||
CREDITS.md; do
|
|
||||||
install -m 0444 "${payload_dir}/licenses/${filename}" \
|
install -m 0444 "${payload_dir}/licenses/${filename}" \
|
||||||
"${release_stage}/licenses/${filename}"
|
"${release_stage}/licenses/${filename}"
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,10 @@ done
|
||||||
for filename in \
|
for filename in \
|
||||||
GPL-3.0-or-later.txt \
|
GPL-3.0-or-later.txt \
|
||||||
ASSET-LICENSE.md \
|
ASSET-LICENSE.md \
|
||||||
THIRD-PARTY-NOTICES.md \
|
ATTRIBUTION.md \
|
||||||
TRADEMARKS.md \
|
TRADEMARKS.md \
|
||||||
CREDITS.md; do
|
Tuffy-LICENSE.txt \
|
||||||
|
Seattle-Avenue-LICENSE.txt; do
|
||||||
if [[ ! -f "${dist_dir}/licenses/${filename}" ]]; then
|
if [[ ! -f "${dist_dir}/licenses/${filename}" ]]; then
|
||||||
echo "Staged build is missing licenses/${filename}." >&2
|
echo "Staged build is missing licenses/${filename}." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -50,6 +51,10 @@ if ! grep -Fxq "game_version=${version}" "${dist_dir}/BUILD_INFO"; then
|
||||||
echo "Staged BUILD_INFO does not match package version ${version}." >&2
|
echo "Staged BUILD_INFO does not match package version ${version}." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if ! grep -Fxq "manifest_version=3" "${dist_dir}/BUILD_INFO"; then
|
||||||
|
echo "Staged BUILD_INFO does not use the current manifest format." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
packaging_commit="$(
|
packaging_commit="$(
|
||||||
awk -F= '$1 == "packaging_commit" {print tolower($2); exit}' \
|
awk -F= '$1 == "packaging_commit" {print tolower($2); exit}' \
|
||||||
"${dist_dir}/BUILD_INFO"
|
"${dist_dir}/BUILD_INFO"
|
||||||
|
|
@ -91,9 +96,10 @@ install -d "${staging_dir}/${package_name}/licenses"
|
||||||
for filename in \
|
for filename in \
|
||||||
GPL-3.0-or-later.txt \
|
GPL-3.0-or-later.txt \
|
||||||
ASSET-LICENSE.md \
|
ASSET-LICENSE.md \
|
||||||
THIRD-PARTY-NOTICES.md \
|
ATTRIBUTION.md \
|
||||||
TRADEMARKS.md \
|
TRADEMARKS.md \
|
||||||
CREDITS.md; do
|
Tuffy-LICENSE.txt \
|
||||||
|
Seattle-Avenue-LICENSE.txt; do
|
||||||
install -m 0644 "${dist_dir}/licenses/${filename}" \
|
install -m 0644 "${dist_dir}/licenses/${filename}" \
|
||||||
"${staging_dir}/${package_name}/licenses/${filename}"
|
"${staging_dir}/${package_name}/licenses/${filename}"
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,15 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
if [[ $# -ne 3 ]]; then
|
if [[ $# -ne 4 ]]; then
|
||||||
echo "Usage: $0 /path/to/server-linux-x86_64 GAME_VERSION GAME_COMMIT" >&2
|
echo "Usage: $0 /path/to/server-linux-x86_64 GAME_VERSION GAME_COMMIT /path/to/netfishing" >&2
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source_dir="${1%/}"
|
source_dir="${1%/}"
|
||||||
game_version="$2"
|
game_version="$2"
|
||||||
game_commit="${3,,}"
|
game_commit="${3,,}"
|
||||||
|
game_repository="${4%/}"
|
||||||
repository_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
repository_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
destination_dir="${repository_dir}/dist"
|
destination_dir="${repository_dir}/dist"
|
||||||
licenses_dir="${destination_dir}/licenses"
|
licenses_dir="${destination_dir}/licenses"
|
||||||
|
|
@ -28,6 +29,20 @@ if [[ ! "${game_commit}" =~ ^[0-9a-f]{40}$ ]]; then
|
||||||
echo "GAME_COMMIT must be the full 40-character Git commit." >&2
|
echo "GAME_COMMIT must be the full 40-character Git commit." >&2
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
if [[ ! -f "${game_repository}/project.godot" ]]; then
|
||||||
|
echo "The NETfishing game repository was not found: ${game_repository}" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
resolved_game_commit="$(git -C "${game_repository}" rev-parse HEAD)"
|
||||||
|
if [[ "${resolved_game_commit}" != "${game_commit}" ]]; then
|
||||||
|
echo "The NETfishing repository HEAD does not match GAME_COMMIT." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
if ! git -C "${game_repository}" diff --quiet \
|
||||||
|
|| ! git -C "${game_repository}" diff --cached --quiet; then
|
||||||
|
echo "The NETfishing repository must be clean before staging notices." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
if [[ ! "${packaging_commit}" =~ ^[0-9a-f]{40}$ ]]; then
|
if [[ ! "${packaging_commit}" =~ ^[0-9a-f]{40}$ ]]; then
|
||||||
echo "Could not resolve the dedicated packaging Git commit." >&2
|
echo "Could not resolve the dedicated packaging Git commit." >&2
|
||||||
exit 2
|
exit 2
|
||||||
|
|
@ -40,22 +55,25 @@ for filename in NETfishingServer.x86_64 NETfishingServer.pck; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
install -d -m 0755 "${destination_dir}"
|
||||||
install -m 0755 "${source_dir}/NETfishingServer.x86_64" \
|
install -m 0755 "${source_dir}/NETfishingServer.x86_64" \
|
||||||
"${destination_dir}/NETfishingServer.x86_64"
|
"${destination_dir}/NETfishingServer.x86_64"
|
||||||
install -m 0644 "${source_dir}/NETfishingServer.pck" \
|
install -m 0644 "${source_dir}/NETfishingServer.pck" \
|
||||||
"${destination_dir}/NETfishingServer.pck"
|
"${destination_dir}/NETfishingServer.pck"
|
||||||
rm -rf -- "${licenses_dir}"
|
rm -rf -- "${licenses_dir}"
|
||||||
install -d -m 0755 "${licenses_dir}"
|
install -d -m 0755 "${licenses_dir}"
|
||||||
install -m 0644 "${repository_dir}/LICENSE" \
|
install -m 0644 "${game_repository}/LICENSE" \
|
||||||
"${licenses_dir}/GPL-3.0-or-later.txt"
|
"${licenses_dir}/GPL-3.0-or-later.txt"
|
||||||
install -m 0644 "${repository_dir}/ASSET-LICENSE.md" \
|
install -m 0644 "${game_repository}/ASSET-LICENSE.md" \
|
||||||
"${licenses_dir}/ASSET-LICENSE.md"
|
"${licenses_dir}/ASSET-LICENSE.md"
|
||||||
install -m 0644 "${repository_dir}/THIRD-PARTY-NOTICES.md" \
|
install -m 0644 "${game_repository}/docs/ATTRIBUTION.md" \
|
||||||
"${licenses_dir}/THIRD-PARTY-NOTICES.md"
|
"${licenses_dir}/ATTRIBUTION.md"
|
||||||
install -m 0644 "${repository_dir}/TRADEMARKS.md" \
|
install -m 0644 "${game_repository}/TRADEMARKS.md" \
|
||||||
"${licenses_dir}/TRADEMARKS.md"
|
"${licenses_dir}/TRADEMARKS.md"
|
||||||
install -m 0644 "${repository_dir}/CREDITS.md" \
|
install -m 0644 "${game_repository}/ui/fonts/Tuffy-LICENSE.txt" \
|
||||||
"${licenses_dir}/CREDITS.md"
|
"${licenses_dir}/Tuffy-LICENSE.txt"
|
||||||
|
install -m 0644 "${game_repository}/ui/fonts/Seattle-Avenue-LICENSE.txt" \
|
||||||
|
"${licenses_dir}/Seattle-Avenue-LICENSE.txt"
|
||||||
|
|
||||||
cd -- "${destination_dir}"
|
cd -- "${destination_dir}"
|
||||||
executable_sha256="$(sha256sum NETfishingServer.x86_64 | awk '{print $1}')"
|
executable_sha256="$(sha256sum NETfishingServer.x86_64 | awk '{print $1}')"
|
||||||
|
|
@ -64,7 +82,7 @@ pck_sha256="$(sha256sum NETfishingServer.pck | awk '{print $1}')"
|
||||||
apply_umask="$(umask)"
|
apply_umask="$(umask)"
|
||||||
umask 022
|
umask 022
|
||||||
printf '%s\n' \
|
printf '%s\n' \
|
||||||
"manifest_version=2" \
|
"manifest_version=3" \
|
||||||
"game_version=${game_version}" \
|
"game_version=${game_version}" \
|
||||||
"game_commit=${game_commit}" \
|
"game_commit=${game_commit}" \
|
||||||
"packaging_commit=${packaging_commit}" \
|
"packaging_commit=${packaging_commit}" \
|
||||||
|
|
@ -93,8 +111,9 @@ sha256sum \
|
||||||
SOURCE-CODE.md \
|
SOURCE-CODE.md \
|
||||||
licenses/GPL-3.0-or-later.txt \
|
licenses/GPL-3.0-or-later.txt \
|
||||||
licenses/ASSET-LICENSE.md \
|
licenses/ASSET-LICENSE.md \
|
||||||
licenses/THIRD-PARTY-NOTICES.md \
|
licenses/ATTRIBUTION.md \
|
||||||
licenses/TRADEMARKS.md \
|
licenses/TRADEMARKS.md \
|
||||||
licenses/CREDITS.md \
|
licenses/Tuffy-LICENSE.txt \
|
||||||
|
licenses/Seattle-Avenue-LICENSE.txt \
|
||||||
> SHA256SUMS
|
> SHA256SUMS
|
||||||
echo "Staged dedicated server build in ${destination_dir}"
|
echo "Staged dedicated server build in ${destination_dir}"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue