treewide: dynamically generate copyright line

A copyright line with hardcoded year was shown in various places of the
UI. Instead, take the year from the commit date.

Change-Id: I424d6c5b3aff34fe4479c37f30f9ea280b7eb4af
Reviewed-on: https://review.monogon.dev/c/monogon/+/4168
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/metropolis/installer/BUILD.bazel b/metropolis/installer/BUILD.bazel
index 27eb5a5..7e62727 100644
--- a/metropolis/installer/BUILD.bazel
+++ b/metropolis/installer/BUILD.bazel
@@ -10,7 +10,11 @@
         "//metropolis/node/core/abloader",  #keep
     ],
     importpath = "source.monogon.dev/metropolis/installer",
+    stampsrcs = ["//build:stabler_status"],
     visibility = ["//visibility:private"],
+    x_defs = {
+        "copyrightLine": "{STABLER_MONOGON_copyright}",
+    },
     deps = [
         "//osbase/blockdev",
         "//osbase/bringup",
diff --git a/metropolis/installer/main.go b/metropolis/installer/main.go
index ad0fa30..c79bf9e 100644
--- a/metropolis/installer/main.go
+++ b/metropolis/installer/main.go
@@ -32,6 +32,9 @@
 //go:embed metropolis/node/core/abloader/abloader_bin.efi
 var abloader []byte
 
+// Filled at linking time.
+var copyrightLine string
+
 const mib = 1024 * 1024
 
 // mountInstallerESP mounts the filesystem the installer was loaded from based
@@ -112,7 +115,7 @@
 	l := supervisor.Logger(ctx)
 
 	l.Info("Metropolis Installer")
-	l.Info("Copyright (c) 2024 The Monogon Project Authors")
+	l.Info(copyrightLine)
 	l.Info("")
 
 	// Validate we are running via EFI.