]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
ci/profiles: strip everything after the `-' in utsname.release
authorEric Wong <e@80x24.org>
Sun, 10 Sep 2023 02:05:32 +0000 (02:05 +0000)
committerEric Wong <e@80x24.org>
Sun, 10 Sep 2023 10:03:27 +0000 (10:03 +0000)
This fixes the script under FreeBSD (tested 13.2) FreeBSD 13.2
has `13.2-RELEASE-p3' in its uname(2) utsname.release.  While
the `.2' component is a welcome addition over the old script,
Perl parses the `-' as a subtraction operation, which isn't
what we want.

ci/profiles.perl

index 5b441790153b51143753a5ba151bd987dc64512c..720cd24e3d0f89449b48e4290693c847212a293a 100755 (executable)
@@ -49,9 +49,12 @@ $VERSION_ID //= 0; # numeric? could be 'sid', actually...
 my %MIN_VER = (freebsd => v11, openbsd => v7.3, netbsd => v9.3);
 
 if (defined(my $min_ver = $MIN_VER{$^O})) {
-       my $vstr = eval "v$VERSION_ID";
+       my $vid = $VERSION_ID;
+       $vid =~ s/-.*\z//s; # no dashes in v-strings
+       my $vstr = eval "v$vid";
+       die "can't convert VERSION_ID=$VERSION_ID to v-string" if $@;
        die <<EOM if $vstr lt $min_ver;
-ID=$ID release=$release ($version) too old to support
+ID=$ID VERSION_ID=$VERSION_ID release=$release ($version) too old to support
 EOM
 }
 my $PKG_FMT = do {