diff --git a/sqlite-3.47.0-buildtclext.patch b/sqlite-3.47.0-buildtclext.patch new file mode 100644 index 0000000000000000000000000000000000000000..13170c6acd2d99fbd06f554a5dfbcb60d6b1dceb --- /dev/null +++ b/sqlite-3.47.0-buildtclext.patch @@ -0,0 +1,133 @@ +# https://sqlite.org/forum/forumpost/0683a49cb02f31a1 +# https://bugs.gentoo.org/942918 +# Compiled from https://sqlite.org/forum/forumpost/6fd4ca69e86eafc6, https://www.sqlite.org/src/info/38136b33f9536b63 and https://www.sqlite.org/src/info/2f6e5946cf34e094 + +--- a/tool/buildtclext.tcl ++++ b/tool/buildtclext.tcl +@@ -140,12 +140,13 @@ + if {[string length $OPTS]>1} { + append LDFLAGS $OPTS + } +- set CMD [subst $cmd] + if {$TCLMAJOR>8} { + set OUT libtcl9sqlite$VERSION.$SUFFIX + } else { + set OUT libsqlite$VERSION.$SUFFIX + } ++ set @ $OUT; # workaround for https://sqlite.org/forum/forumpost/6b1af7eb10884373 ++ set CMD [subst $cmd] + } + + # Show information about prior installs + +From b03592c324a4d066e12c3af945dd510dc28b6d65 Mon Sep 17 00:00:00 2001 +From: stephan +Date: Sat, 16 Nov 2024 14:33:01 +0000 +Subject: [PATCH] Add DESTDIR support to the tclextension-install target, via + [67a3ca0c013b] and [d1663cf05f7d]. + +--- a/Makefile.in ++++ b/Makefile.in +@@ -1600,7 +1600,7 @@ tclextension: tclsqlite3.c + # to find it. + # + tclextension-install: tclsqlite3.c +- $(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --cc "$(CC)" $(CFLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) ++ $(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --destdir "$(DESTDIR)" --cc "$(CC)" $(CFLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) + + # Install the SQLite TCL extension that is used by $TCLSH_CMD + # ++38136b33f9536b63520d3810f397a3b4b5372028b31108806f84fe44bf338425 +--- a/tool/buildtclext.tcl ++++ b/tool/buildtclext.tcl +@@ -15,6 +15,7 @@ Options: + --info Show info on existing SQLite TCL extension installs + --install-only Install an extension previously build + --uninstall Uninstall the extension ++ --destdir DIR Installation root (used by "make install DESTDIR=...") + + Other options are retained and passed through into the compiler.} + +@@ -25,6 +26,7 @@ set uninstall 0 + set infoonly 0 + set CC {} + set OPTS {} ++set DESTDIR ""; # --destdir "$(DESTDIR)" + for {set ii 0} {$ii<[llength $argv]} {incr ii} { + set a0 [lindex $argv $ii] + if {$a0=="--install-only"} { +@@ -42,6 +44,9 @@ for {set ii 0} {$ii<[llength $argv]} {incr ii} { + } elseif {$a0=="--cc" && $ii+1<[llength $argv]} { + incr ii + set CC [lindex $argv $ii] ++ } elseif {$a0=="--destdir" && $ii+1<[llength $argv]} { ++ incr ii ++ set DESTDIR [lindex $argv $ii] + } elseif {[string match -* $a0]} { + append OPTS " $a0" + } else { +@@ -245,7 +250,7 @@ package ifneeded sqlite3 $VERSION \\ + + if {$install} { + # Install the extension +- set DEST2 $DEST/sqlite$VERSION ++ set DEST2 ${DESTDIR}$DEST/sqlite$VERSION + file mkdir $DEST2 + puts "installing $DEST2/pkgIndex.tcl" + file copy -force pkgIndex.tcl $DEST2 + +From 375552f224813c7e2fac0e67dd13ecd6ba3a3571 Mon Sep 17 00:00:00 2001 +From: stephan +Date: Sat, 16 Nov 2024 17:12:17 +0000 +Subject: [PATCH] Handle DESTDIR at an earlier phase in buildtclext.tcl to + account for the is-writable-dir check and to filter out //zipfs: dirs as + (im)possible installation targets. +--- a/tool/buildtclext.tcl ++++ b/tool/buildtclext.tcl +@@ -198,7 +198,15 @@ if {$install} { + # + set DEST {} + foreach dir $auto_path { +- if {[file writable $dir]} { ++ if {[string match //*:* $dir]} { ++ # We can't install to //zipfs: paths ++ continue ++ } elseif {"" ne $DESTDIR && ![file writable $DESTDIR]} { ++ continue ++ } ++ set dir ${DESTDIR}$dir ++ if {[file writable $dir] || "" ne $DESTDIR} { ++ # the dir will be created later ^^^^^^^^ + set DEST $dir + break + } elseif {[glob -nocomplain $dir/sqlite3*/pkgIndex.tcl]!=""} { +@@ -216,7 +224,7 @@ if {$install} { + puts "to work around this problem.\n" + puts "These are the (unwritable) \$auto_path directories:\n" + foreach dir $auto_path { +- puts " * $dir" ++ puts " * ${DESTDIR}$dir" + } + exit 1 + } +@@ -250,7 +258,7 @@ package ifneeded sqlite3 $VERSION \\ + + if {$install} { + # Install the extension +- set DEST2 ${DESTDIR}$DEST/sqlite$VERSION ++ set DEST2 $DEST/sqlite$VERSION + file mkdir $DEST2 + puts "installing $DEST2/pkgIndex.tcl" + file copy -force pkgIndex.tcl $DEST2 + +--- a/tool/buildtclext.tcl.orig 2024-11-18 14:01:05.040080030 +0800 ++++ b/tool/buildtclext.tcl 2024-11-18 14:01:27.998394871 +0800 +@@ -232,7 +232,7 @@ + + # Generate and execute the command with which to do the compilation. + # +- set cmd "$CMD tclsqlite3.c -o $OUT $LIBS" ++ set cmd "$CMD tclsqlite3.c -o $OUT $LIBS -lm" + puts $cmd + file delete -force $OUT + catch {exec {*}$cmd} errmsg diff --git a/sqlite-autoconf-3460100.tar.gz b/sqlite-autoconf-3470000.tar.gz similarity index 31% rename from sqlite-autoconf-3460100.tar.gz rename to sqlite-autoconf-3470000.tar.gz index 8572d3c7a5ccf169af8e105157fffe34781219b7..3fcd23cc70996b39dad1ccfd7a5345fb254216ec 100644 Binary files a/sqlite-autoconf-3460100.tar.gz and b/sqlite-autoconf-3470000.tar.gz differ diff --git a/sqlite-doc-3460100.zip b/sqlite-doc-3470000.zip similarity index 68% rename from sqlite-doc-3460100.zip rename to sqlite-doc-3470000.zip index f5d5cd19d575fb611e891d8f3f83d8bc39e5ae36..3a8a157c521148ecd253f6db62110e31c4fea272 100644 Binary files a/sqlite-doc-3460100.zip and b/sqlite-doc-3470000.zip differ diff --git a/sqlite-src-3460100.zip b/sqlite-src-3470000.zip similarity index 80% rename from sqlite-src-3460100.zip rename to sqlite-src-3470000.zip index 30a04a37cf36773d94445c21b1aaf14f9f7ca1c4..9d0969f95cb2f0fb4d698fa12f724615b1428ef7 100644 Binary files a/sqlite-src-3460100.zip and b/sqlite-src-3470000.zip differ diff --git a/sqlite.spec b/sqlite.spec index 571d60816e3bf885ae220b327566c1f424a037c4..74ad21219fea034e4ee372fe72634c68eea5316a 100644 --- a/sqlite.spec +++ b/sqlite.spec @@ -1,10 +1,7 @@ %bcond_without check -%global tcl_version 8.6 -%global tcl_sitearch %{_libdir}/tcl%{tcl_version} - Name: sqlite -Version: 3.46.1 +Version: 3.47.0 %global extver %(echo %{version} |awk -F. '{printf "%d%02d%02d00", $1,$2,$3}') Release: 1 Summary: Embeded SQL database @@ -14,9 +11,11 @@ URL: http://www.sqlite.org/ Source0: https://www.sqlite.org/2024/sqlite-src-%{extver}.zip Source1: http://www.sqlite.org/2024/sqlite-doc-%{extver}.zip Source2: https://www.sqlite.org/2024/sqlite-autoconf-%{extver}.tar.gz +Patch0: sqlite-3.47.0-buildtclext.patch BuildRequires: gcc autoconf tcl tcl-devel BuildRequires: ncurses-devel readline-devel glibc-devel +BuildRequires: rpm_macro(tcl_sitearch) Provides: %{name}-libs = %{version}-%{release} Obsoletes: %{name}-libs < %{version}-%{release} @@ -54,6 +53,7 @@ This contains man files and HTML files for the using of sqlite. %prep #autosetup will fail because of 2 zip files %setup -q -a1 -n %{name}-src-%{extver} +%autopatch -p1 rm -f %{name}-doc-%{extver}/sqlite.css~ || : @@ -82,6 +82,7 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %make_build sqlite3_analyzer %install +mkdir -p %{buildroot}/%{tcl_sitearch}/sqlite3 %make_install %delete_la @@ -89,8 +90,10 @@ install -D -m 755 lemon %{buildroot}%{_bindir}/lemon install -D -m 644 tool/lempar.c %{buildroot}%{_datadir}/lemon/lempar.c install -D -m 644 sqlite3.1 %{buildroot}%{_mandir}/man1/sqlite3.1 install -D -m 755 sqlite3_analyzer %{buildroot}%{_bindir}/sqlite3_analyzer -chmod 755 %{buildroot}/%{tcl_sitearch}/sqlite3/*.so +mkdir -p %{buildroot}%{tcl_sitearch} +mv %{buildroot}%{tcl_sitelib}/sqlite%{version} %{buildroot}%{tcl_sitearch} +chmod 755 %{buildroot}/%{tcl_sitearch}/sqlite%{version}/*.so %if %{with check} %check @@ -114,7 +117,7 @@ rm -rf test/thread2.test %{_bindir}/{sqlite3,lemon,sqlite3_analyzer} %{_libdir}/*.so.* %{_datadir}/lemon -%{tcl_sitearch}/sqlite3 +%{tcl_sitearch}/sqlite%{version} %files devel %{_includedir}/*.h @@ -126,6 +129,9 @@ rm -rf test/thread2.test %{_mandir}/man*/* %changelog +* Tue Oct 22 2024 Funda Wang - 3.47.0-1 +- update to 3.47.0 + * Tue Aug 13 2024 Funda Wang - 3.46.1-1 - update to 3.46.1