Hi,

On Tue, 24 Jun 2025 at 23:46, Jacob Champion
<jacob.champ...@enterprisedb.com> wrote:
>
> On Tue, Jun 24, 2025 at 1:27 AM Nazir Bilal Yavuz <byavu...@gmail.com> wrote:
> > I think this is a good idea. Another point is that CI images and their
> > packages are updated automatically, so it would be easier to catch if
> > something breaks when the VM is updated.
>
> Yes, that's a great point too. Okay, sounds like there is some
> interest, and I'll add it to my list of patchsets to try (but if
> anyone wants to beat me to it, please go ahead!).

I wanted to experiment with it. First, I got the current list of
features from upstream, then disabled the auto features, then
explicitly enabled these features. I did this only for FreeBSD to show
my idea roughly.

There are two patches; 0001 disables auto features for all of the
tasks and 0002 explicitly enables these features for FreeBSD.

What do you think about this approach? If you are okay with this, I
can apply it to all CI tasks (and possibly create another thread for
it).

-- 
Regards,
Nazir Bilal Yavuz
Microsoft
From e57cf4f5a23312d81b13b4f7cbc7bb728b701621 Mon Sep 17 00:00:00 2001
From: Nazir Bilal Yavuz <byavu...@gmail.com>
Date: Wed, 25 Jun 2025 10:41:26 +0300
Subject: [PATCH v1 1/2] ci: Disable meson auto features

---
 .cirrus.tasks.yml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index 92057006c93..4daaa8ea17b 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -30,6 +30,7 @@ env:
   PGCTLTIMEOUT: 120 # avoids spurious failures during parallel tests
   TEMP_CONFIG: ${CIRRUS_WORKING_DIR}/src/tools/ci/pg_ci_base.conf
   PG_TEST_EXTRA: kerberos ldap ssl libpq_encryption load_balance oauth
+  MESON_AUTO_FEATURES: disabled
 
 
 # What files to preserve in case tests fail
@@ -198,6 +199,7 @@ task:
       meson setup \
         --buildtype=debug \
         -Dcassert=true -Dinjection_points=true \
+        --auto-features=${MESON_AUTO_FEATURES} \
         -Duuid=bsd -Dtcl_version=tcl86 -Ddtrace=auto \
         -Dextra_lib_dirs=/usr/local/lib -Dextra_include_dirs=/usr/local/include/ \
         build
@@ -317,6 +319,7 @@ task:
         --buildtype=debugoptimized \
         --pkg-config-path ${PKGCONFIG_PATH} \
         -Dcassert=true -Dinjection_points=true \
+        --auto-features=${MESON_AUTO_FEATURES} \
         -Dssl=openssl ${UUID} ${TCL} \
         -DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
         build
@@ -508,6 +511,7 @@ task:
           meson setup \
             --buildtype=debug \
             -Dcassert=true -Dinjection_points=true \
+            --auto-features=${MESON_AUTO_FEATURES} \
             ${LINUX_MESON_FEATURES} \
             build
         EOF
@@ -520,6 +524,7 @@ task:
           meson setup \
             --buildtype=debug \
             -Dcassert=true -Dinjection_points=true \
+            --auto-features=${MESON_AUTO_FEATURES} \
             ${LINUX_MESON_FEATURES} \
             -Dllvm=disabled \
             --pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \
@@ -661,6 +666,7 @@ task:
       -Dextra_include_dirs=/opt/local/include \
       -Dextra_lib_dirs=/opt/local/lib \
       -Dcassert=true -Dinjection_points=true \
+      --auto-features=${MESON_AUTO_FEATURES} \
       -Duuid=e2fs -Ddtrace=auto \
       build
 
@@ -733,7 +739,7 @@ task:
   # Use /DEBUG:FASTLINK to avoid high memory usage during linking
   configure_script: |
     vcvarsall x64
-    meson setup --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% build
+    meson setup --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include --auto-features=%MESON_AUTO_FEATURES% -DTAR=%TAR% build
 
   build_script: |
     vcvarsall x64
@@ -793,7 +799,7 @@ task:
 
   # disable -Dnls as the number of files it creates cause a noticable slowdown
   configure_script: |
-    %BASH% -c "meson setup -Ddebug=true -Doptimization=g -Dcassert=true -Dinjection_points=true -Db_pch=true -Dnls=disabled -DTAR=%TAR% build"
+    %BASH% -c "meson setup -Ddebug=true -Doptimization=g -Dcassert=true -Dinjection_points=true -Db_pch=true -Dnls=disabled --auto-features=%MESON_AUTO_FEATURES% -DTAR=%TAR% build"
 
   build_script: |
     %BASH% -c "ninja -C build ${MBUILD_TARGET}"
-- 
2.49.0

From 248aeacbebc29ddd0a3cb3a816209a0780b854e9 Mon Sep 17 00:00:00 2001
From: Nazir Bilal Yavuz <byavu...@gmail.com>
Date: Wed, 25 Jun 2025 11:14:26 +0300
Subject: [PATCH v1 2/2] ci: freebsd: Explicitly enable meson features

ci-os-only: freebsd
---
 .cirrus.tasks.yml | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index 4daaa8ea17b..9dab6a1ebdf 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -165,6 +165,29 @@ task:
       -c debug_parallel_query=regress
     PG_TEST_PG_UPGRADE_MODE: --link
 
+    MESON_FEATURES: >-
+      -Ddtrace=enabled
+      -Dtap_tests=enabled
+      -Ddocs=enabled
+      -Dgssapi=enabled
+      -Dicu=enabled
+      -Dldap=enabled
+      -Dlibcurl=enabled
+      -Dlibxml=enabled
+      -Dlibxslt=enabled
+      -Dlz4=enabled
+      -Dnls=enabled
+      -Dssl=openssl
+      -Dpam=enabled
+      -Dplperl=enabled
+      -Dplpython=enabled
+      -Dtcl_version=tcl86
+      -Dpltcl=enabled
+      -Dreadline=enabled
+      -Duuid=bsd
+      -Dzlib=enabled
+      -Dzstd=enabled
+
   <<: *freebsd_task_template
 
   depends_on: SanityCheck
@@ -199,8 +222,7 @@ task:
       meson setup \
         --buildtype=debug \
         -Dcassert=true -Dinjection_points=true \
-        --auto-features=${MESON_AUTO_FEATURES} \
-        -Duuid=bsd -Dtcl_version=tcl86 -Ddtrace=auto \
+        --auto-features=${MESON_AUTO_FEATURES} ${MESON_FEATURES} \
         -Dextra_lib_dirs=/usr/local/lib -Dextra_include_dirs=/usr/local/include/ \
         build
     EOF
-- 
2.49.0

Reply via email to