summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
authorJakov Smolić <jsmolic@gentoo.org>2024-11-16 19:18:44 +0100
committerJakov Smolić <jsmolic@gentoo.org>2024-11-16 19:19:57 +0100
commit4f5b65e1dc625a4101cb11b0c02d8ae1af3f2284 (patch)
treeca9d1a35fedf7f7bd59e85a56107ff8f3ab785a8 /dev-db
parentdev-libs/dmalloc: Stabilize 5.6.5-r2 ppc64, #943646 (diff)
downloadgentoo-4f5b65e1dc625a4101cb11b0c02d8ae1af3f2284.tar.gz
gentoo-4f5b65e1dc625a4101cb11b0c02d8ae1af3f2284.tar.bz2
gentoo-4f5b65e1dc625a4101cb11b0c02d8ae1af3f2284.zip
dev-db/sqlite: Fix build with USE=tcl
Closes: https://bugs.gentoo.org/942918 Signed-off-by: Jakov Smolić <jsmolic@gentoo.org>
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch122
-rw-r--r--dev-db/sqlite/sqlite-3.47.0-r1.ebuild1
2 files changed, 123 insertions, 0 deletions
diff --git a/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch b/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch
new file mode 100644
index 000000000000..491674f5e993
--- /dev/null
+++ b/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch
@@ -0,0 +1,122 @@
+# 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 <stephan@noemail.net>
+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 <stephan@noemail.net>
+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
+
diff --git a/dev-db/sqlite/sqlite-3.47.0-r1.ebuild b/dev-db/sqlite/sqlite-3.47.0-r1.ebuild
index c7033bdf2661..b3dd1b416b61 100644
--- a/dev-db/sqlite/sqlite-3.47.0-r1.ebuild
+++ b/dev-db/sqlite/sqlite-3.47.0-r1.ebuild
@@ -54,6 +54,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
"${FILESDIR}"/${PN}-3.47.0-nonbash.patch
"${FILESDIR}"/${PN}-3.47.0-allocator-mismatch.patch
+ "${FILESDIR}"/${PN}-3.47.0-buildtclext.patch
)
_fossil_fetch() {