diff options
author | Jakov Smolić <jsmolic@gentoo.org> | 2024-11-16 19:18:44 +0100 |
---|---|---|
committer | Jakov Smolić <jsmolic@gentoo.org> | 2024-11-16 19:19:57 +0100 |
commit | 4f5b65e1dc625a4101cb11b0c02d8ae1af3f2284 (patch) | |
tree | ca9d1a35fedf7f7bd59e85a56107ff8f3ab785a8 /dev-db | |
parent | dev-libs/dmalloc: Stabilize 5.6.5-r2 ppc64, #943646 (diff) | |
download | gentoo-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.patch | 122 | ||||
-rw-r--r-- | dev-db/sqlite/sqlite-3.47.0-r1.ebuild | 1 |
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() { |