Build provenance: origin URL + codename in --version and startup log; fork policy in CONTRIBUTING (#82)

- versioninfo gains GE007_VERSION_CODENAME (larkspur) and GE007_ORIGIN_URL,
  printed by --version (new 'origin' line) and the startup log. A build keeps
  pointing at this repository no matter who compiles or renames it.
- CONTRIBUTING: new 'Forks and derivative works' section — rebranding,
  localizing and extending are welcome without permission; attribution (with
  a link) and preserving/linking the docs/dev engineering record are the ask;
  stripping the attribution is what disqualifies a fork as a descendant.
This commit is contained in:
James Dansereau authored and GitHub committed 2026-09-13 22:14:41 -04:00
1 parent 69582caeb0
commit 8c3ce1c688
4 files changed
+33 -3

No files matched your search

+6
View File
@@ -145,6 +145,12 @@ execute_process(COMMAND git rev-parse --short HEAD
if(NOT VERSION_HASH)
set(VERSION_HASH "unknown")
endif()
# Provenance, printed by --version and at startup (port/src/main.c): a build
# keeps pointing at this repository no matter who compiles or renames it.
set(VERSION_CODENAME "larkspur")
set(ORIGIN_URL "https://github.com/jkdansereau/goldeneye-pc-port")
configure_file(
"${CMAKE_SOURCE_DIR}/port/include/versioninfo.h.in"
"${CMAKE_BINARY_DIR}/port/include/versioninfo.h" @ONLY)
+18
View File
@@ -32,6 +32,24 @@ keep the port faithful to the original game.
- Port-layer code is plain C11 / C++17, SDL2 + OpenGL, no extra dependencies.
- Keep commits focused and describe *why*, not just *what*.
## Forks and derivative works
Fork away — the code is MIT and the `port/` layer exists to be extended.
Rebranding, localizing and extending are all welcome, and none of them need
permission. If you carry the work forward under your own name, please keep
two things:
- **Attribution.** A clear statement, in your README and about page, that the
project derives from this one — with a link. The engine prints its origin at
startup and in its `--version` output; keeping that intact is part of the
ask.
- **The record.** `docs/dev/` (the finding log, porting notes, per-level
status) is the engineering record behind every fix. Derivative projects are
asked to preserve or link to it rather than fork-and-forget.
Stripping the attribution is the one thing that turns a fork into something
we no longer recognize as a descendant of this project.
## Where to look
- `docs/internals.md` — how the port is structured.
+2
View File
@@ -4,6 +4,8 @@
/* Generated by CMake from versioninfo.h.in — do not edit. */
#define GE007_VERSION_HASH "@VERSION_HASH@"
#define GE007_VERSION_CODENAME "@VERSION_CODENAME@"
#define GE007_ORIGIN_URL "@ORIGIN_URL@"
#define GE007_TARGET_PLATFORM "@TARGET_PLATFORM@"
#define GE007_ROMID "@ROMID@"
#define GE007_IS_PAL @VERSION_IS_PAL@
+7 -3
View File
@@ -54,8 +54,10 @@ static void portPrintVersion(void)
printf("GoldenEye 007 PC port\n"
" rom : %s\n"
" platform : %s\n"
" build : %s\n",
GE007_ROMID, GE007_TARGET_PLATFORM, GE007_VERSION_HASH);
" build : %s (%s)\n"
" origin : %s\n",
GE007_ROMID, GE007_TARGET_PLATFORM, GE007_VERSION_HASH,
GE007_VERSION_CODENAME, GE007_ORIGIN_URL);
}
static void portPrintHelp(const char *argv0)
@@ -95,7 +97,9 @@ int main(int argc, char **argv)
}
sysLogPrintf(LOG_INFO, "GoldenEye 007 PC port starting "
"(%s, %s)", GE007_ROMID, GE007_VERSION_HASH);
"(%s, %s %s) -- %s",
GE007_ROMID, GE007_VERSION_HASH, GE007_VERSION_CODENAME,
GE007_ORIGIN_URL);
/* Crash handler first, so any failure below is debuggable. */
crashInit();