From: Kyle Ackerman Subject: got{,sys,web}d link-kits To: gameoftrees@openbsd.org Date: Mon, 08 Jun 2026 19:55:18 -0600 Below is a patch to add a flag to got{,sys,webd}d to simply print its version. My next diff will be to use this as a target for the new RELINK flag in `bsd.prog.mk`. This will enable link-kits to be generated with `make afterinstall` in each of the respecting directories of a got release (i.e., GOT_RELEASE=Yes). This should not affect anything, since nothing calls the afterinstall tagret. ----------------------------------------------- commit 096bbdd5c19f73da088ad751066c9f8b5a83c530 (link-kit) from: Kyle Ackerman date: Mon Jun 8 23:08:22 2026 UTC Add version flag (-V) to gotsysd diff 5d2011d41318bd291a0b0dd4241f52b8f84ef205 096bbdd5c19f73da088ad751066c9f8b5a83c530 commit - 5d2011d41318bd291a0b0dd4241f52b8f84ef205 commit + 096bbdd5c19f73da088ad751066c9f8b5a83c530 blob - 5f7ed278db7c6256c2c43f1ec3c299af2dd33cfd blob + 80f3d9899205a95228084df9d98014e02547103c --- gotsysd/gotsysd.c +++ gotsysd/gotsysd.c @@ -36,6 +36,7 @@ #include #include +#include "got_version.h" #include "got_error.h" #include "got_path.h" #include "got_object.h" @@ -1683,11 +1684,11 @@ main(int argc, char **argv) uid_t uid; const char *errstr; char *commit_id_str = NULL; - int ch, fd = -1, daemonize = 1, verbosity = 0, noaction = 0; + int ch, fd = -1, daemonize = 1, verbosity = 0, noaction = 0, version_flag = 0; log_init(1, LOG_DAEMON); /* Log to stderr until daemonized. */ - while ((ch = getopt(argc, argv, "df:nT:v")) != -1) { + while ((ch = getopt(argc, argv, "df:nT:vV")) != -1) { switch (ch) { case 'd': daemonize = 0; @@ -1723,6 +1724,9 @@ main(int argc, char **argv) if (verbosity < 3) verbosity++; break; + case 'V': + version_flag = 1; + break; default: usage(); } @@ -1737,6 +1741,11 @@ main(int argc, char **argv) commit_id_str = argv[0]; } else if (argc != 0) usage(); + + if (version_flag) { + got_version_print_str(); + return 0; + } if (geteuid() && (proc_id == GOTSYSD_PROC_GOTSYSD || proc_id == GOTSYSD_PROC_LISTEN || proc_id == GOTSYSD_PROC_PRIV)) ----------------------------------------------- commit 5d2011d41318bd291a0b0dd4241f52b8f84ef205 from: Kyle Ackerman date: Mon Jun 8 23:05:48 2026 UTC Add version flag (-V) to gotwebd diff b927ba2e520952ab93f10cbac289a1a0cc51c698 5d2011d41318bd291a0b0dd4241f52b8f84ef205 commit - b927ba2e520952ab93f10cbac289a1a0cc51c698 commit + 5d2011d41318bd291a0b0dd4241f52b8f84ef205 blob - 9b5f4c0c977df666c415adfe21cc989227c981ee blob + 7fa2bfca9e54426683bbd8697cc6711357bf559c --- gotwebd/gotwebd.c +++ gotwebd/gotwebd.c @@ -43,6 +43,7 @@ #include #include +#include "got_version.h" #include "got_opentemp.h" #include "got_reference.h" #include "got_object.h" @@ -907,7 +908,7 @@ main(int argc, char **argv) struct gotwebd *env; struct passwd *pw; int ch, i, gotwebd_ngroups = NGROUPS_MAX; - int no_action = 0; + int no_action = 0, version_flag = 0; int proc_type = GOTWEBD_PROC_PARENT; const char *conffile = GOTWEBD_CONF; const char *gotwebd_username = GOTWEBD_DEFAULT_USER; @@ -927,7 +928,7 @@ main(int argc, char **argv) fatal("%s: calloc", __func__); config_init(env); - while ((ch = getopt(argc, argv, "A:C:D:dG:f:F:L:nS:vW:")) != -1) { + while ((ch = getopt(argc, argv, "A:C:D:dG:f:F:L:nS:vVW:")) != -1) { switch (ch) { case 'A': proc_type = GOTWEBD_PROC_AUTH; @@ -978,6 +979,9 @@ main(int argc, char **argv) if (env->gotwebd_verbose < 3) env->gotwebd_verbose++; break; + case 'V': + version_flag = 1; + break; default: usage(); } @@ -987,6 +991,10 @@ main(int argc, char **argv) if (argc > 0) usage(); + if (version_flag) { + got_version_print_str(); + return 0; + } gotwebd_env = env; env->gotwebd_conffile = conffile; ----------------------------------------------- commit b927ba2e520952ab93f10cbac289a1a0cc51c698 from: Kyle Ackerman date: Mon Jun 8 23:05:48 2026 UTC Add version flag (-V) to gotd diff 6491565c93d1768e5efefb8aded89b098a3d34f2 b927ba2e520952ab93f10cbac289a1a0cc51c698 commit - 6491565c93d1768e5efefb8aded89b098a3d34f2 commit + b927ba2e520952ab93f10cbac289a1a0cc51c698 blob - e4775c44eadfd1bc72e15c5b05c16358f917e51f blob + 710cabca09101ba03c5106568a96a76da74015d0 --- gotd/gotd.c +++ gotd/gotd.c @@ -43,6 +43,7 @@ #include #include +#include "got_version.h" #include "got_error.h" #include "got_opentemp.h" #include "got_path.h" @@ -3404,7 +3405,7 @@ main(int argc, char **argv) { const struct got_error *error = NULL; struct gotd_secrets *secrets = NULL; - int ch, daemonize = 1, verbosity = 0, noaction = 0; + int ch, daemonize = 1, verbosity = 0, noaction = 0, version_flag = 0; const char *confpath = GOTD_CONF_PATH; char *secretspath = NULL; char *argv0 = argv[0]; @@ -3426,7 +3427,7 @@ main(int argc, char **argv) log_init(1, LOG_DAEMON); /* Log to stderr until daemonized. */ - while ((ch = getopt(argc, argv, "df:nP:s:T:v")) != -1) { + while ((ch = getopt(argc, argv, "df:nP:s:T:vV")) != -1) { switch (ch) { case 'd': daemonize = 0; @@ -3481,6 +3482,9 @@ main(int argc, char **argv) if (verbosity < 3) verbosity++; break; + case 'V': + version_flag = 1; + break; default: usage(); } @@ -3492,6 +3496,10 @@ main(int argc, char **argv) if (argc != 0) usage(); + if (version_flag) { + got_version_print_str(); + return 0; + } if (geteuid() && proc_id == GOTD_PROC_GOTD) fatalx("need root privileges"); if (geteuid() == 0 && proc_id != GOTD_PROC_GOTD) Thoughts/Comments/Suggestions?