<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.xgmailsignatureprefix
        {mso-style-name:x_gmail_signature_prefix;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">I think people in the open source world just become good problem solvers and fix things for themselves. In this case, is it correct for Cuis to add homebrew libs by default on the Mac?  I’m not so sure. Maybe
 if it was installed via homebrew then it should be added, but the reason Apple added this restriction was specifically to prevent bad actors from adding compromised libraries and fiddling with the path in order to compromise applications. Technically things
 are more secure like this.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Anyway, for your issue, just edit the RunCuisOnMacTerminal.sh script and add something like this at the beginning:<br>
<br>
export DYLD_LIBRARY_PATH="$(brew --prefix)/lib:${DYLD_LIBRARY_PATH}"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Jon<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">Mark Volkmann <r.mark.volkmann@gmail.com><br>
<b>Date: </b>Sunday, October 20, 2024 at 7:32</span><span style="font-family:"Arial",sans-serif;color:black"> </span><span style="color:black">AM<br>
<b>To: </b>Discussion of Cuis Smalltalk <cuis-dev@lists.cuis.st><br>
<b>Cc: </b>Jon Raiford <raiford@labware.com><br>
<b>Subject: </b>Re: [Cuis-dev] ODBC error<o:p></o:p></span></p>
</div>
<p class="MsoNormal">I should have asked “Is it possible that nobody that uses Cuis Smalltalk in macOS accesses relational databases?”<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">---<o:p></o:p></p>
<div>
<p class="MsoNormal">R. Mark Volkmann<o:p></o:p></p>
<div>
<p class="MsoNormal">Object Computing, Inc.<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-bottom:12.0pt">On Oct 20, 2024, at 6:26<span style="font-family:"Arial",sans-serif"> </span>AM, Mark Volkmann <r.mark.volkmann@gmail.com> wrote:<o:p></o:p></p>
</blockquote>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif"></span>Yikes! Sounds complicated. Can you point me to any documentation that describes how I could reference a lib path in the Open Smalltalk VM?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Is it possible that nobody that uses Cuis Smalltalk accesses relational databases?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">---<o:p></o:p></p>
<div>
<p class="MsoNormal">R. Mark Volkmann<o:p></o:p></p>
<div>
<p class="MsoNormal">Object Computing, Inc.<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-bottom:12.0pt">On Oct 19, 2024, at 9:46<span style="font-family:"Arial",sans-serif"> </span>PM, Jon Raiford via Cuis-dev <cuis-dev@lists.cuis.st> wrote:<o:p></o:p></p>
</blockquote>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif"></span> <o:p>
</o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">I assume you are on a Mac. You are running into Apple “courage“ like when they removed headphone jacks. They stop applications from using library paths that weren’t explicitly allowed when the application was compiled. In the old days you
 could add to the library path in your bash profile but the only way to make it work now is to add to the library path in a launch script. One potential option is to explicitly reference the homebrew lib paths in the Open Smalltalk vm and recompile it, assuming
 you installed the drivers using homebrew. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Jon <o:p></o:p></p>
</div>
</div>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black"> Cuis-dev <cuis-dev-bounces@lists.cuis.st> on behalf of Mark Volkmann
 via Cuis-dev <cuis-dev@lists.cuis.st><br>
<b>Sent:</b> Saturday, October 19, 2024 7:20:15 PM<br>
<b>To:</b> Discussion of Cuis Smalltalk <cuis-dev@lists.cuis.st><br>
<b>Cc:</b> Mark Volkmann <r.mark.volkmann@gmail.com><br>
<b>Subject:</b> [Cuis-dev] ODBC error</span> <o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I really want to learn how to access relational databases like SQLite and Postgres from Cuis Smalltalk so I can do that as part of an HTTP endpoint implemented using the WebClient package. I have the Cuis ODBC package installed and have
 registered a DSN for my database which is "TodoDSN". I tested it by entering `isql TodoDSN` which supposedly verifies that it can be accessed using ODBC. That works great. I can enter "select * from todos;" and I see the records I expect. Then I tried this
 in a Workspace: <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> conn := ODBCConnection dsn: dsn user: user password: password.<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">That gives "Error: External module not found" which comes from this code in the class ODBCLibrary:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New"">sqlAllocEnv: environmentHandle
<br>
    "SQLRETURN SQLAllocEnv(SQLHENV *EnvironmentHandle);"<br>
    <cdecl: int16 'SQLAllocEnv' (SQLHENV*)><br>
    ^ self externalCallFailed</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Can anyone explain what this is doing and what "module" it is looking for?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><span class="xgmailsignatureprefix">-- </span><o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif">R. Mark Volkmann</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif">Object Computing, Inc.</span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal">-- <br>
Cuis-dev mailing list<br>
Cuis-dev@lists.cuis.st<br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><o:p></o:p></p>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</body>
</html>