forgejo: add missing internal version ldflags

Those two ldlfags provide the version string for the
/api/forgejo/v1/version API endpoint and the forgejo_sem_ver database
table.

Prio to this change, /api/forgejo/v1/version returned "development" and
the database table "1.0.0".

The proper version string, which we are now providing, is a combination
of a hardcoded version compatibility string (like "gitea-1.21.8") and
the forgejo semver version.

The forgejo semver version in forgejo v1.21.8-0 is technically hardcoded
in the Makefile, but will use git describe starting with the next major
release (which will also be the release when forgejo makes this semver
user facing).

So in summary, this commit is a bug fix in our nixpkgs packaging and
prepares us for the next major release.
This commit is contained in:
emilylange 2024-04-02 17:04:16 +02:00
parent d8fe5e6c92
commit dab7aa20ed
No known key found for this signature in database
GPG Key ID: 0AD773CE46FD0F87

View File

@ -46,7 +46,23 @@ buildGoModule rec {
owner = "forgejo";
repo = "forgejo";
rev = "v${version}";
hash = "sha256-nufhGsibpPrGWpVg75Z6qdzlc1K+p36mMjlS2MtsuAI=";
hash = "sha256-eIxITMvb1q4L2lejbmuPPQ8XG5YYjTo+9RosPEJgZ3g=";
# Forgejo has multiple different version strings that need to be provided
# via ldflags. main.ForgejoVersion for example is a combination of a
# hardcoded gitea compatibility version string (in the Makefile) and
# git describe and is easiest to get by invoking the Makefile.
# So we do that, store it the src FOD to then extend the ldflags array
# in preConfigure.
# The `echo -e >> Makefile` is temporary and already part of the next
# major release. Furthermore, the ldflags will change next major release
# and need to be updated accordingly.
leaveDotGit = true;
postFetch = ''
cd "$out"
echo -e 'show-version-full:\n\t@echo ''${FORGEJO_VERSION}' >> Makefile
make show-version-full > FULL_VERSION
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-+1apPnqbIfp2Nu1ieI2DdHo4gndZObmcq/Td+ZtkILM=";
@ -76,6 +92,10 @@ buildGoModule rec {
"-X 'main.Tags=${lib.concatStringsSep " " tags}'"
];
preConfigure = ''
export ldflags+=" -X code.gitea.io/gitea/routers/api/forgejo/v1.ForgejoVersion=$(cat FULL_VERSION) -X main.ForgejoVersion=$(cat FULL_VERSION)"
'';
preBuild = ''
go run build/merge-forgejo-locales.go
'';