The attempt to get at Berkeley DB, installed from packages, via tkinter fails with some undefined symbol messages.
Is there something I have not done which would make this work? I tried this because the bsddb3 (Python) package is not supported at Python 10, and it's replacement, berkeleydb, does not support the Berkeley DB versions provided as OpenBSD packages. Script started on Sat Dec 17 11:42:08 2022 d630amd64$ python3.9 Python 3.9.15 (main, Oct 21 2022, 14:01:40) [Clang 13.0.0 ] on openbsd7 Type "help", "copyright", "credits" or "license" for more information. >>> import tkinter >>> tkinter.TclVersion 8.6 >>> exit() d630amd64$ tclsh8.6 % package require Db_tcl can't find package Db_tcl % lappend auto_path /usr/local/lib/db4 /usr/local/lib/tcl/tcl8.6 /usr/local/lib/tcl /usr/local/lib/db4 % package require Db_tcl 4.6 % exit d630amd64$ python3.9 Python 3.9.15 (main, Oct 21 2022, 14:01:40) [Clang 13.0.0 ] on openbsd7 Type "help", "copyright", "credits" or "license" for more information. >>> import tkinter >>> tcl =tkinter.Tk(useTk=False) >>> tcl.tk.call("package", "require", "Db_tcl") Traceback (most recent call last): File "<stdin>", line 1, in <module> _tkinter.TclError: can't find package Db_tcl >>> tcl.tk.call("lappend", "auto_path", "/usr/local/lib/db4") (<path object: '/usr/local/lib/tcl/tcl8.6'>, <path object: '/usr/local/lib/tcl'>, '/usr/local/lib/db4') >>> tcl.tk.call("package", "require", "Db_tcl") python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_DeleteCommand' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_ResetResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_WrongNumArgs' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetIndexFromObjStruct' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetStringFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewStringObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewListObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewIntObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetObjResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewWideIntObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_ListObjGetElements' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_CreateObjCommand' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_ListObjAppendElement' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewByteArrayObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_EvalObjv' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'TclFreeObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetObjResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetByteArrayFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_PkgProvideEx' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_LinkVar' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetWideIntFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetIntFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetLongFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewLongObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetErrno' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_PosixError' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_AppendResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetErrorCode' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_AddErrorInfo' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_AppendToObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_DeleteCommand' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_ResetResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_WrongNumArgs' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetIndexFromObjStruct' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetStringFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewStringObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewListObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewIntObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetObjResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewWideIntObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_ListObjGetElements' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_CreateObjCommand' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_ListObjAppendElement' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewByteArrayObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_EvalObjv' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'TclFreeObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetObjResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetByteArrayFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_PkgProvideEx' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_LinkVar' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetWideIntFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetIntFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_GetLongFromObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_NewLongObj' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetErrno' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_PosixError' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_AppendResult' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_SetErrorCode' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_AddErrorInfo' python3.9:/usr/local/lib/db4/libdb_tcl.so.6.0: undefined symbol 'Tcl_AppendToObj' Traceback (most recent call last): File "<stdin>", line 1, in <module> _tkinter.TclError: couldn't load file "/usr/local/lib/db4/libdb_tcl.so.6.0": Cannot load specified object >>> exit() d630amd64$ tclsh8.6 % package require sqlite3 3.39.2 % exit d630amd64$ python3.9 Python 3.9.15 (main, Oct 21 2022, 14:01:40) [Clang 13.0.0 ] on openbsd7 Type "help", "copyright", "credits" or "license" for more information. >>> import tkinter >>> tcl = tkinter.Tk(useTk=False) >>> tcl.tk.call("package", "require", "sqlite3") '3.39.2' >>> exit() d630amd64$ ls /usr/local/lib/db4 libdb.a libdb_cxx.a libdb_tcl.a pkgIndex.tcl libdb.la libdb_cxx.la libdb_tcl.la libdb.so.5.0 libdb_cxx.so.6.0 libdb_tcl.so.6.0 d630amd64$ uname -a OpenBSD d630amd64.home 7.2 GENERIC.MP#2 amd64 d630amd64$ exit Script done on Sat Dec 17 11:53:34 2022 Thanks, Roger