diff mbox series

[v3] sqlite3: upgrade 3.48.0 -> 3.50.4

Message ID 20251002211744.3418535-1-anna-lena.marx@inovex.de
State New
Headers show
Series [v3] sqlite3: upgrade 3.48.0 -> 3.50.4 | expand

Commit Message

Anna-Lena Marx Oct. 2, 2025, 9:17 p.m. UTC
With the upgrade to 3.50.4, some configure options changed
as the project switched from `autotools` to `autosetup`.
The PACKAGECONFIG "dyn_ext" is not longer available.
Besides, the default CONFIGUREOPTS "target", "exec_prefix"
and "oldincludedir" became invalid.

Changelog: https://sqlite.org/releaselog/3_50_4.html

Signed-off-by: Anna-Lena Marx <anna-lena.marx@inovex.de>
---
 meta/recipes-support/sqlite/sqlite3.inc       | 15 +++--
 ...eenable-disable-rpath-configure-flag.patch | 57 +++++++++++++++++++
 meta/recipes-support/sqlite/sqlite3_3.48.0.bb |  8 ---
 meta/recipes-support/sqlite/sqlite3_3.50.4.bb | 10 ++++
 4 files changed, 78 insertions(+), 12 deletions(-)
 create mode 100644 meta/recipes-support/sqlite/sqlite3/0001-backport-reenable-disable-rpath-configure-flag.patch
 delete mode 100644 meta/recipes-support/sqlite/sqlite3_3.48.0.bb
 create mode 100644 meta/recipes-support/sqlite/sqlite3_3.50.4.bb

Comments

Mathieu Dubois-Briand Oct. 5, 2025, 7:02 p.m. UTC | #1
On Thu Oct 2, 2025 at 11:17 PM CEST, Anna-Lena Marx wrote:
> With the upgrade to 3.50.4, some configure options changed
> as the project switched from `autotools` to `autosetup`.
> The PACKAGECONFIG "dyn_ext" is not longer available.
> Besides, the default CONFIGUREOPTS "target", "exec_prefix"
> and "oldincludedir" became invalid.
>
> Changelog: https://sqlite.org/releaselog/3_50_4.html
>
> Signed-off-by: Anna-Lena Marx <anna-lena.marx@inovex.de>
> ---

Hi Anna-Lena,

Thanks for the new version.

I can't explain why, but it looks like this is breaking the
imagefeatures.ImageFeatures.test_mandb test:

ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of ['kernel-6.16.9-yocto-standard'] have failed. If the intention is to defer them to first boot,
then please place them into pkg_postinst_ontarget:${PN} ().
Deferring to first boot via 'exit 1' is no longer supported.
...
2025-10-05 14:14:59,584 - oe-selftest - INFO - imagefeatures.ImageFeatures.test_mandb (subunit.RemotedTestCase)
2025-10-05 14:14:59,586 - oe-selftest - INFO -  ... FAIL

https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2478
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2391

I was not able to reproduce this locally, I will try to extract logs
from the autobuilder in the coming days to provide a bit more context.

Thanks,
Mathieu
Peter Marko Oct. 5, 2025, 8:12 p.m. UTC | #2
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-
> core@lists.openembedded.org> On Behalf Of Mathieu Dubois-Briand via
> lists.openembedded.org
> Sent: Sunday, October 5, 2025 21:03
> To: Anna-Lena Marx <anna-lena.marx@inovex.de>; alex.kanavin@gmail.com;
> openembedded-core@lists.openembedded.org
> Cc: denis@denix.org
> Subject: Re: [OE-core] [PATCH v3] sqlite3: upgrade 3.48.0 -> 3.50.4
> 
> On Thu Oct 2, 2025 at 11:17 PM CEST, Anna-Lena Marx wrote:
> > With the upgrade to 3.50.4, some configure options changed
> > as the project switched from `autotools` to `autosetup`.
> > The PACKAGECONFIG "dyn_ext" is not longer available.
> > Besides, the default CONFIGUREOPTS "target", "exec_prefix"
> > and "oldincludedir" became invalid.
> >
> > Changelog: https://sqlite.org/releaselog/3_50_4.html
> >
> > Signed-off-by: Anna-Lena Marx <anna-lena.marx@inovex.de>
> > ---
> 
> Hi Anna-Lena,
> 
> Thanks for the new version.
> 
> I can't explain why, but it looks like this is breaking the
> imagefeatures.ImageFeatures.test_mandb test:
> 
> ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of ['kernel-
> 6.16.9-yocto-standard'] have failed. If the intention is to defer them to first boot,
> then please place them into pkg_postinst_ontarget:${PN} ().
> Deferring to first boot via 'exit 1' is no longer supported.
> ...
> 2025-10-05 14:14:59,584 - oe-selftest - INFO -
> imagefeatures.ImageFeatures.test_mandb (subunit.RemotedTestCase)
> 2025-10-05 14:14:59,586 - oe-selftest - INFO -  ... FAIL
> 
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2478
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2391
> 
> I was not able to reproduce this locally, I will try to extract logs
> from the autobuilder in the coming days to provide a bit more context.

My two cents - it can be the same issue as in my first patch - wrong soname and restoring from sstate-cache.

But in general, I don't like this patch as it's not addressing the switch from autotools to autosetup properly.
Two topics in particular - it keeps autotools class and it keeps now broken code which is trying to disable zlib.
I hope I'll find some time during the next week and send a new respin of my sqlite upgrade patch.

Peter

Peter

> 
> Thanks,
> Mathieu
> 
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Mathieu Dubois-Briand Oct. 6, 2025, 9:01 a.m. UTC | #3
On Sun Oct 5, 2025 at 9:02 PM CEST, Mathieu Dubois-Briand wrote:
> On Thu Oct 2, 2025 at 11:17 PM CEST, Anna-Lena Marx wrote:
>> With the upgrade to 3.50.4, some configure options changed
>> as the project switched from `autotools` to `autosetup`.
>> The PACKAGECONFIG "dyn_ext" is not longer available.
>> Besides, the default CONFIGUREOPTS "target", "exec_prefix"
>> and "oldincludedir" became invalid.
>>
>> Changelog: https://sqlite.org/releaselog/3_50_4.html
>>
>> Signed-off-by: Anna-Lena Marx <anna-lena.marx@inovex.de>
>> ---
>
> Hi Anna-Lena,
>
> Thanks for the new version.
>
> I can't explain why, but it looks like this is breaking the
> imagefeatures.ImageFeatures.test_mandb test:
>
> ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of ['kernel-6.16.9-yocto-standard'] have failed. If the intention is to defer them to first boot,
> then please place them into pkg_postinst_ontarget:${PN} ().
> Deferring to first boot via 'exit 1' is no longer supported.
> ...
> 2025-10-05 14:14:59,584 - oe-selftest - INFO - imagefeatures.ImageFeatures.test_mandb (subunit.RemotedTestCase)
> 2025-10-05 14:14:59,586 - oe-selftest - INFO -  ... FAIL
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2478
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2391
>
> I was not able to reproduce this locally, I will try to extract logs
> from the autobuilder in the coming days to provide a bit more context.
>

Here is some log from the autobuilder, not sure it helps much:

  Installing       : kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff7   17/56
  Running scriptlet: kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff7   17/56
%post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): scriptlet start
%post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): execv(/bin/sh) pid 1421854
+ set -e
+ [ ! -e /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs/lib/modules/6.16.9-yocto-standard ]
+ [ -n /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs ]
+ depmodwrapper -a -b /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs 6.16.9-yocto-standard kernel
Segmentation fault
%post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): waitpid(1421854) rc 1421854 status 8b00
warning: %post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64) scriptlet failed, exit status 139

Error in POSTIN scriptlet in rpm package kernel-6.16.9-yocto-standard
  Installing       : kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+   18/56
  Running scriptlet: kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+   18/56
%post(kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): scriptlet start
%post(kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): execv(/bin/sh) pid 1421928
+ set -e
+ set +e
+ [ -n /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs ]
+ ln -sf bzImage-6.16.9-yocto-standard /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs/boot/bzImage
+ set -e
%post(kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): waitpid(1421928) rc 1421928 status 0

Thanks,
Mathieu
Anna-Lena Marx Oct. 6, 2025, 1:19 p.m. UTC | #4
> > Hi Anna-Lena,
> >
> > Thanks for the new version.
> >
> > I can't explain why, but it looks like this is breaking the
> > imagefeatures.ImageFeatures.test_mandb test:
> >
> > ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of ['kernel-6.16.9-yocto-standard'] have failed. If the intention is to defer them to first boot,
> > then please place them into pkg_postinst_ontarget:${PN} ().
> > Deferring to first boot via 'exit 1' is no longer supported.
> > ...
> > 2025-10-05 14:14:59,584 - oe-selftest - INFO - imagefeatures.ImageFeatures.test_mandb (subunit.RemotedTestCase)
> > 2025-10-05 14:14:59,586 - oe-selftest - INFO -  ... FAIL
> >
> > https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/2478
> > https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/2391
> >
> > I was not able to reproduce this locally, I will try to extract logs
> > from the autobuilder in the coming days to provide a bit more context.
> >
>
> Here is some log from the autobuilder, not sure it helps much:
>
>   Installing       : kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff7   17/56
>   Running scriptlet: kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff7   17/56
> %post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): scriptlet start
> %post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): execv(/bin/sh) pid 1421854
> + set -e
> + [ ! -e /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs/lib/modules/6.16.9-yocto-standard ]
> + [ -n /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs ]
> + depmodwrapper -a -b /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs 6.16.9-yocto-standard kernel
> Segmentation fault
> %post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): waitpid(1421854) rc 1421854 status 8b00
> warning: %post(kernel-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64) scriptlet failed, exit status 139
>
> Error in POSTIN scriptlet in rpm package kernel-6.16.9-yocto-standard
>   Installing       : kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+   18/56
>   Running scriptlet: kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+   18/56
> %post(kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): scriptlet start
> %post(kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): execv(/bin/sh) pid 1421928
> + set -e
> + set +e
> + [ -n /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs ]
> + ln -sf bzImage-6.16.9-yocto-standard /srv/pokybuild/yocto-worker/oe-selftest-debian-mathieu-20251004/build/build-st/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/rootfs/boot/bzImage
> + set -e
> %post(kernel-image-bzimage-6.16.9-yocto-standard-6.16.9+git0+1ac1d0ff73_3f9db490a8-r0.qemux86_64): waitpid(1421928) rc 1421928 status 0

Hi Mathieu,
interesting, I also can not reproduce it on my machine and cannot see
a clear dependency, but let me do some research.


> My two cents - it can be the same issue as in my first patch - wrong soname and restoring from sstate-cache.
>
> But in general, I don't like this patch as it's not addressing the switch from autotools to autosetup properly.
> Two topics in particular - it keeps autotools class and it keeps now broken code which is trying to disable zlib.
> I hope I'll find some time during the next week and send a new respin of my sqlite upgrade patch.

I agree a proper autosetup class would be the best solution for this.
I could maybe help in development or testing.

Anna
diff mbox series

Patch

diff --git a/meta/recipes-support/sqlite/sqlite3.inc b/meta/recipes-support/sqlite/sqlite3.inc
index 28a33282ae..a0d6a53ad7 100644
--- a/meta/recipes-support/sqlite/sqlite3.inc
+++ b/meta/recipes-support/sqlite/sqlite3.inc
@@ -23,8 +23,8 @@  CVE_PRODUCT = "sqlite"
 inherit autotools pkgconfig siteinfo
 
 # enable those which are enabled by default in configure
-PACKAGECONFIG ?= "fts4 fts5 rtree dyn_ext"
-PACKAGECONFIG:class-native ?= "fts4 fts5 rtree dyn_ext"
+PACKAGECONFIG ?= "fts4 fts5 rtree"
+PACKAGECONFIG:class-native ?= "fts4 fts5 rtree"
 
 PACKAGECONFIG[editline] = "--enable-editline,--disable-editline,libedit"
 PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline ncurses"
@@ -33,15 +33,22 @@  PACKAGECONFIG[fts4] = "--enable-fts4,--disable-fts4"
 PACKAGECONFIG[fts5] = "--enable-fts5,--disable-fts5"
 PACKAGECONFIG[rtree] = "--enable-rtree,--disable-rtree"
 PACKAGECONFIG[session] = "--enable-session,--disable-session"
-PACKAGECONFIG[dyn_ext] = "--enable-dynamic-extensions,--disable-dynamic-extensions"
 PACKAGECONFIG[zlib] = ",,zlib"
 
 CACHED_CONFIGUREVARS += "${@bb.utils.contains('PACKAGECONFIG', 'zlib', '', 'ac_cv_search_deflate=no',d)}"
 
+# The configure options target, exec_prefix and oldincludedir
+# are not supported by sqlite3 anymore.
+CONFIGUREOPTS:remove = "--target=${TARGET_SYS}"
+CONFIGUREOPTS:remove = "--exec_prefix=${exec_prefix}"
+CONFIGUREOPTS:remove = "--oldincludedir=${includedir}"
+
 EXTRA_OECONF = " \
     --enable-shared \
     --enable-threadsafe \
     --disable-static-shell \
+    --soname=legacy \
+    --disable-rpath \
 "
 
 # pread() is in POSIX.1-2001 so any reasonable system must surely support it
@@ -51,7 +58,7 @@  CFLAGS += "-DUSE_PREAD"
 CFLAGS += "-DSQLITE_ENABLE_COLUMN_METADATA"
 
 # Unless SQLITE_BYTEORDER is predefined, the code falls back to build time
-# huristics, which are not always correct
+# heuristics, which are not always correct
 CFLAGS += "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}"
 
 PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}"
diff --git a/meta/recipes-support/sqlite/sqlite3/0001-backport-reenable-disable-rpath-configure-flag.patch b/meta/recipes-support/sqlite/sqlite3/0001-backport-reenable-disable-rpath-configure-flag.patch
new file mode 100644
index 0000000000..cfb0119233
--- /dev/null
+++ b/meta/recipes-support/sqlite/sqlite3/0001-backport-reenable-disable-rpath-configure-flag.patch
@@ -0,0 +1,57 @@ 
+From 45ab3ac5efa7c08ba5ce3564a86bd348380ce70f Mon Sep 17 00:00:00 2001
+From: Anna-Lena Marx <anna-lena.marx@inovex.de>
+Date: Thu, 2 Oct 2025 20:30:08 +0200
+Subject: [PATCH] backport: reenable --disable-rpath configure flag
+
+Reenable support for `--disable-rpath`.
+This patch is backported and will be obsolete for version 3.51.
+
+Upstream-Status: Backport (https://sqlite.org/src/info/a59d9bb25e518f5d)
+Signed-off-by: Anna-Lena Marx <anna-lena.marx@inovex.de>
+---
+ autosetup/sqlite-config.tcl | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/autosetup/sqlite-config.tcl b/autosetup/sqlite-config.tcl
+index 85fe414..faff00b 100644
+--- a/autosetup/sqlite-config.tcl
++++ b/autosetup/sqlite-config.tcl
+@@ -334,8 +334,7 @@ proc sqlite-configure {buildMode configScript} {
+           => {Link the sqlite3 shell app against the DLL instead of embedding sqlite3.c}
+       }
+       {canonical autoconf} {
+-        # A potential TODO without a current use case:
+-        #rpath=1 => {Disable use of the rpath linker flag}
++        rpath=1 => {Disable use of the rpath linker flag}
+         # soname: https://sqlite.org/src/forumpost/5a3b44f510df8ded
+         soname:=legacy
+           => {SONAME for libsqlite3.so. "none", or not using this flag, sets no
+@@ -2119,7 +2118,6 @@ proc sqlite-handle-tcl {} {
+ ########################################################################
+ # Handle the --enable/disable-rpath flag.
+ proc sqlite-handle-rpath {} {
+-  proj-check-rpath
+   # autosetup/cc-shared.tcl sets the rpath flag definition in
+   # [get-define SH_LINKRPATH], but it does so on a per-platform basis
+   # rather than as a compiler check. Though we should do a proper
+@@ -2128,12 +2126,14 @@ proc sqlite-handle-rpath {} {
+   # for which sqlite-env-is-unix-on-windows returns a non-empty
+   # string.
+ 
+-#  if {[proj-opt-truthy rpath]} {
+-#    proj-check-rpath
+-#  } else {
+-#    msg-result "Disabling use of rpath."
+-#    define LDFLAGS_RPATH ""
+-#  }
++  # https://sqlite.org/forum/forumpost/13cac3b56516f849
++  if {[proj-opt-truthy rpath]} {
++    proj-check-rpath
++  } else {
++    msg-result "Disabling use of rpath."
++    define LDFLAGS_RPATH ""
++
++  }
+ }
+ 
+ ########################################################################
diff --git a/meta/recipes-support/sqlite/sqlite3_3.48.0.bb b/meta/recipes-support/sqlite/sqlite3_3.48.0.bb
deleted file mode 100644
index bd2ac6614d..0000000000
--- a/meta/recipes-support/sqlite/sqlite3_3.48.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@ 
-require sqlite3.inc
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
-
-SRC_URI = "http://www.sqlite.org/2025/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "ac992f7fca3989de7ed1fe99c16363f848794c8c32a158dafd4eb927a2e02fd5"
-
diff --git a/meta/recipes-support/sqlite/sqlite3_3.50.4.bb b/meta/recipes-support/sqlite/sqlite3_3.50.4.bb
new file mode 100644
index 0000000000..5e55c7877a
--- /dev/null
+++ b/meta/recipes-support/sqlite/sqlite3_3.50.4.bb
@@ -0,0 +1,10 @@ 
+require sqlite3.inc
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
+
+SRC_URI = "http://www.sqlite.org/2025/sqlite-autoconf-${SQLITE_PV}.tar.gz \
+           file://0001-backport-reenable-disable-rpath-configure-flag.patch \
+           "
+SRC_URI[sha256sum] = "a3db587a1b92ee5ddac2f66b3edb41b26f9c867275782d46c3a088977d6a5b18"
+