I just thought of what if git is missing.

Then it returns 127 and not 128.

So maybe the test should be "-gt 0" instead of "-eq 128".

Svenne




On Thursday, 24 April 2025 at 11:05:37 +02:00, Svenne Krap <svenne@kracon.dk> wrote:

Hi all,

I stumbled over, that Bird 3.1.0 in Arch Linux is missing all version information.

Having peeked at the PKGBUILD it seems to do nothing weird, so I have reproduced it by hand.

Steps:

$ wget https://gitlab.nic.cz/labs/bird/-/archive/v3.1.0/bird-v3.1.0.tar.gz
$ tar axvf bird-v3.1.0.tar.gz
$ cd bird-v3.1.0
$ autoreconf -vif
$ ./configure
$ make
$ ./bird --version

The latter shows (like "show status" on the real Arch package)

BIRD version +detached.

It seems like the error is in tools/version, that only works in a git repo.

The following patch is a suggestion for a fix

--- ../bird-v3.1.0-failed/tools/version 2025-04-03 20:39:22.000000000 +0200
+++ tools/version 2025-04-24 11:02:58.276023973 +0200
@@ -1,5 +1,12 @@
#!/bin/bash

+# Are we in a release tarball?
+git status >& /dev/null
+if [ $? -eq 128 ]; then
+ realpath .  | awk -F/ '{print $NF}' | cut -dv -f 2
+ exit 0
+fi
+
# Aren't we directly at version?
TAG=$(git tag | grep -F $(git describe))
if [ -n "$TAG" ]; then

Otherwise, the Arch package seems to work fine.

Regards, 

Svenne