]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Expand the libtool-style link support from [0a50e33051] such that if INSTALL_SO_086_L...
authorstephan <stephan@noemail.net>
Sat, 26 Oct 2024 03:19:29 +0000 (03:19 +0000)
committerstephan <stephan@noemail.net>
Sat, 26 Oct 2024 03:19:29 +0000 (03:19 +0000)
FossilOrigin-Name: 2b2ca7dec18d6b53ba7810a2ecf3937d98b5b08232d4f82d16fa2ad5f9fd83b2

main.mk
manifest
manifest.uuid

diff --git a/main.mk b/main.mk
index f2ebad475456f83df94292fb0b4d1b897af9db24..fd789d02703e430adf99a398ad9a6976dc4c89b3 100644 (file)
--- a/main.mk
+++ b/main.mk
@@ -1295,34 +1295,50 @@ all: so
 # hoop-jumping? Can we not simply install the .so as-is to
 # libsqlite3.so (without the versioned bits)?
 #
+# Regarding the historcal installation name of libsqlite3.so.0.8.6:
+#
 # The historical SQLite build always used a version number of 0.8.6
 # for reasons lost to history but having something to do with libtool
 # (which is not longer used in this tree). In order to retain filename
 # compatibility for systems which have libraries installed using those
-# conventions, if libsqlite3.so.0.8.6 is found on then it is re-linked
-# to point to the new names. libsqlite3.so.0 historically symlinks to
-# libsqlite3.so.0.8.6, and that link is left in place. We cannot
-# retain both the old and new installation because they both share the
-# high-level name $(libsqlite3.SO). The down-side of this is that it
-# may well upset packaging tools when we replace libsqlite3.so (from a
-# legacy package) with a new symlink. In this case we also delete
-# libsqlite3.la because it cannot work with the non-libtool library
-# this installation replaces. Since two versions of such a package
-# cannot coexist anyway (they share identical file names), that
-# conflict is believed to be an imaginary problem.
+# conventions:
+#
+# 1) If libsqlite3.so.0.8.6 is found on then it is re-linked to point
+#    to the new names. libsqlite3.so.0 historically symlinks to
+#    libsqlite3.so.0.8.6, and that link is left in place. We cannot
+#    retain both the old and new installation because they both share
+#    the high-level name $(libsqlite3.SO). The down-side of this is
+#    that it may well upset packaging tools when we replace
+#    libsqlite3.so (from a legacy package) with a new symlink.
+#
+# 2) If INSTALL_SO_086_LINKS=1 and point (1) does not apply then links
+#    to the older-style names are created. The primary intent of this
+#    is to enable chains of operations such as the hypothetical (apt
+#    remove sqlite3-3.47.0 && apt install sqlite3-3.48.0). In such
+#    cases, condition (1) would never trigger but applications might
+#    still expect to see the legacy file names.
+#
+# In either case we also delete libsqlite3.la because it cannot work
+# with the non-libtool library this installation installs.
 #
 install-so-1: $(install-dir.lib) $(libsqlite3.SO)
        $(INSTALL) $(libsqlite3.SO) $(install-dir.lib)
        @echo "Setting up SO symlinks..."; \
                cd $(install-dir.lib) || exit $$?; \
-               rm -f $(libsqlite3.SO).3 $(libsqlite3.SO).$(PACKAGE_VERSION) || exit $$?; \
+               rm -f $(libsqlite3.SO).3 $(libsqlite3.SO).$(PACKAGE_VERSION) libsqlite3.la || exit $$?; \
                mv $(libsqlite3.SO) $(libsqlite3.SO).$(PACKAGE_VERSION) || exit $$?; \
                ln -s $(libsqlite3.SO).$(PACKAGE_VERSION) $(libsqlite3.SO).3 || exit $$?; \
                ln -s $(libsqlite3.SO).3 $(libsqlite3.SO) || exit $$?; \
-               ls -la $(libsqlite3.SO) $(libsqlite3.SO).3*; \
+               ls -la $(libsqlite3.SO) $(libsqlite3.SO).3* || exit $$?; \
                if [ -e $(libsqlite3.SO).0.8.6 ]; then \
                        echo "ACHTUNG: older libtool-compatible install found. Re-linking it..."; \
-                       rm -f $(libsqlite3.SO).0.8.6 libsqlite3.la; \
+                       rm -f $(libsqlite3.SO).0.8.6 || exit $$?; \
+                       ln -s $(libsqlite3.SO).$(PACKAGE_VERSION) $(libsqlite3.SO).0.8.6 || exit $$?; \
+                       ls -la $(libsqlite3.SO).0*; \
+               elif [ x1 = "x$(INSTALL_SO_086_LINKS)" ]; then \
+                       echo "ACHTUNG: installing older libtool-style links because INSTALL_SO_086_LINKS=1"; \
+                       rm -f $(libsqlite3.SO).0.8.6 $(libsqlite3.SO).0 || exit $$?; \
+                       ln -s $(libsqlite3.SO).0.8.6 $(libsqlite3.SO).0 || exit $$?; \
                        ln -s $(libsqlite3.SO).$(PACKAGE_VERSION) $(libsqlite3.SO).0.8.6 || exit $$?; \
                        ls -la $(libsqlite3.SO).0*; \
                fi
index 115acf38b9aabbb6d40e0f1b5be6bb1f2316aabb..314ec4dd34cf96185800c6143d49880626cb8fd9 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Disable\sgeneration\sof\sconfig.defines.json\suntil/unless\sit\sproves\sinteresting.\sHonor\sthe\s--disable-largefile\sflag.\sWhen\sinstalling\slibsqlite3.so\sand\san\solder-style\slibtool\sinstallation\sis\sfound,\sre-link\sthe\slibtool-generated\sfiles\sto\sthe\snewly-installed\sones\sto\sretain\stheir\shistorical\snames.
-D 2024-10-26T03:05:20.205
+C Expand\sthe\slibtool-style\slink\ssupport\sfrom\s[0a50e33051]\ssuch\sthat\sif\sINSTALL_SO_086_LINKS=1\sis\spassed\sto\s'make\sinstall'\sthen\sthe\slibtool-style\snames\sare\salways\slinked\sin,\sregardless\sof\swhether\sthey\salready\sexisted\sor\snot.\sIn\seither\scase,\swe\sunconditionally\sremove\slibsqlite3.la\sbecause\sit\scannot\swork\swith\sthe\snewly-installed\snon-libtool\s.so\sfile.
+D 2024-10-26T03:19:29.450
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md b6e6c1baf38e4339bd3f1e0e5e5bfd0a9a93d133360691b2785c2d4b2f2dcec2
@@ -707,7 +707,7 @@ F ext/wasm/wasmfs.make bc8bb227f35d5bd3863a7bd2233437c37472a0d81585979f058f9b9b5
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
-F main.mk 2a1e41234197e59df10160408ca221815f6fecb7de6ad60231b03944c5cd8a8f
+F main.mk 551a9af3801b7d801e02663ccba8f2002fd5e0309a5a6b8acacea688baba7f7c
 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
 F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
@@ -2237,8 +2237,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 63218898ed0a6d466a282f10819d51a7f480d8f12316b74ee8a3f402fcc4e927
-R 7933f107530fbfe42f5cc26d7f7899b9
+P 0a50e33051fbdd5b7b7f0ab7eb2b2561d259098075fa8847868017041d789484
+R e48329e2a4923b776177fca5669845be
 U stephan
-Z fb78edb2f2fc1c6af37f2783aae577ac
+Z b7378c5e10b74962b82afd4525f8ef5f
 # Remove this line to create a well-formed Fossil manifest.
index 069bd27f12dc86c95e3590233ef1d6761c305d28..2198d3671abd2d43756edfb90aae25aeb1fd9989 100644 (file)
@@ -1 +1 @@
-0a50e33051fbdd5b7b7f0ab7eb2b2561d259098075fa8847868017041d789484
+2b2ca7dec18d6b53ba7810a2ecf3937d98b5b08232d4f82d16fa2ad5f9fd83b2