[BUG FIX]: invalid meson version detection

Started by Sergey Solovevover 1 year ago2 messages
#1Sergey Solovev
sergey.soloviev@tantorlabs.ru
1 attachment(s)

Hi.

I looked at meson.build file at found an incorrectly used function to

determine postgres version.

if pg_version.endswith('devel')
   pg_version_arr = [pg_version.split('devel')[0], '0']

There should be `pg_version.contains('devel')`, not `endswith`. Like this:

-if pg_version.endswith('devel')
+if pg_version.contains('devel')

Next statement seems to be valid:

elif pg_version.contains('beta')
  pg_version_arr = [pg_version.split('beta')[0], '0']
elif pg_version.contains('rc')
  pg_version_arr = [pg_version.split('rc')[0], '0']
else
  pg_version_arr = pg_version.split('.')
endif

I created a single line patch for it.

Attachments:

0001-Invalid-version-string-split-in-meson.patchtext/x-patch; charset=UTF-8; name=0001-Invalid-version-string-split-in-meson.patchDownload
From b0a46ae68c9370b686ba3b1d2c55ab0eaefd68c1 Mon Sep 17 00:00:00 2001
From: ashenBlade <ashen.blade.dev@gmail.com>
Date: Wed, 14 Aug 2024 16:53:34 +0300
Subject: [PATCH] Invalid version string split in meson

---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 8e3fae3cb7..1159c9d068 100644
--- a/meson.build
+++ b/meson.build
@@ -121,7 +121,7 @@ cdata = configuration_data()
 
 pg_version = meson.project_version()
 
-if pg_version.endswith('devel')
+if pg_version.contains('devel')
   pg_version_arr = [pg_version.split('devel')[0], '0']
 elif pg_version.contains('beta')
   pg_version_arr = [pg_version.split('beta')[0], '0']
-- 
2.34.1

#2Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Sergey Solovev (#1)
Re: [BUG FIX]: invalid meson version detection

On 14/08/2024 17:02, Sergey Solovev wrote:

I looked at meson.build file at found an incorrectly used function to

determine postgres version.

if pg_version.endswith('devel')
   pg_version_arr = [pg_version.split('devel')[0], '0']

There should be `pg_version.contains('devel')`, not `endswith`. Like this:

-if pg_version.endswith('devel')
+if pg_version.contains('devel')

I believe it's correct as it is. With "beta" and "rc" version, the
version strings look like "17beta1" or "16rc2", i.e. there's a number at
the end of the string. But the "devel" version strings never have that,
e.g. "17devel" or "18devel".

See also src/tools/version_stamp.pl

--
Heikki Linnakangas
Neon (https://neon.tech)