#67205 closed defect (fixed)

msodbcsql17 has dependency on files from Homebrew and does not install

Reported by: posguy99 (Marc Wilson) Owned by: roederja
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: kiwiroy@…
Port: msodbcsql17

Description (last modified by jmroot (Joshua Root))

$ sudo port -d -y rev-upgrade
--->  Scanning binaries for linking errors
Could not open /opt/homebrew/lib/libodbcinst.2.dylib: Error opening or reading file (referenced from /opt/local/lib/libmsodbcsql.17.dylib)
DEBUG: Marking /opt/local/lib/libmsodbcsql.17.dylib as broken
--->  Found 1 broken file, matching files to ports
--->  Found 1 broken port, determining rebuild order
DEBUG: Broken: msodbcsql17
DEBUG: Processing port msodbcsql17 @0:17.10.2.1_0
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt: msodbcsql17 @17.10.2.1
Continue? [Y/n]: 

Change History (14)

comment:1 Changed 13 months ago by posguy99 (Marc Wilson)

Description: modified (diff)

comment:2 Changed 13 months ago by jmroot (Joshua Root)

Description: modified (diff)
Owner: set to roederja
Status: newassigned

comment:3 Changed 13 months ago by roederja

Are you on arm? I cannot reproduce this problem on x86:

% otool -L libmsodbcsql.17.dylib
libmsodbcsql.17.dylib:
	/opt/local/lib/libmsodbcsql.17.dylib (compatibility version 0.0.1, current version 10.2.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1258.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
	/opt/local/lib/libodbcinst.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos (compatibility version 5.0.0, current version 6.0.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
Last edited 13 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:4 Changed 13 months ago by posguy99 (Marc Wilson)

Yes, I'm on arm.

$ otool -L /opt/local/lib/libmsodbcsql.17.dylib 
/opt/local/lib/libmsodbcsql.17.dylib:
	/opt/local/lib/libmsodbcsql.17.dylib (compatibility version 0.0.1, current version 10.2.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1770.255.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
	/opt/homebrew/lib/libodbcinst.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos (compatibility version 5.0.0, current version 6.0.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 904.4.0)

comment:5 Changed 13 months ago by posguy99 (Marc Wilson)

I had both mssql-tools and msodbcsql17 installed right up to your latest update and everything was fine. But the one you just uploaded doesn't work on my M1.

The newest update does still work on my Intel Mac.

comment:6 Changed 13 months ago by roederja

Cc: kiwiroy@… added

Since the latest version Microsoft provides an ARM native version. Kiwiroy (cc'd now) made the port use that in #66992. I don't have an ARM mac, so it's difficult for me to test. I imagine it might be necessary to use install_name_tool to re-point the library. It appears when Microsoft built the library on ARM they had ODBC installed in a different location than on X86. To fix this the build step needs to be amended to use the ARM path when "building" the ARM version.

Last edited 13 months ago by roederja (previous) (diff)

comment:7 Changed 13 months ago by roederja

I have pushed a change that might fix the ARM version. Could you confirm please. Also, could you check the mssql-tools port - it might need a similar fix.

comment:8 Changed 13 months ago by posguy99 (Marc Wilson)

<deleted>

Last edited 13 months ago by posguy99 (Marc Wilson) (previous) (diff)

comment:9 Changed 13 months ago by posguy99 (Marc Wilson)

I spoke much too fast... I tested on the wrong computer.

comment:10 Changed 13 months ago by posguy99 (Marc Wilson)

And no, myodbcsql17 still has the problem.

$ sudo port -d -y rev-upgrade                   
--->  Scanning binaries for linking errors
Could not open /opt/homebrew/lib/libodbcinst.2.dylib: Error opening or reading file (referenced from /opt/local/lib/libmsodbcsql.17.dylib)
DEBUG: Marking /opt/local/lib/libmsodbcsql.17.dylib as broken
--->  Found 1 broken file, matching files to ports
--->  Found 1 broken port, determining rebuild order
DEBUG: Broken: msodbcsql17
DEBUG: Processing port msodbcsql17 @0:17.10.2.1_0
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt: msodbcsql17 @17.10.2.1
Continue? [Y/n]: n
DEBUG: Checking time since last reclaim run

comment:11 in reply to:  6 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to roederja:

It appears when Microsoft built the library on ARM they had ODBC installed in a different location than on X86.

Since they're using Homebrew for their dependencies, yes, they would have to do that. Homebrew installs to /usr/local on x86_64 and to /opt/homebrew on arm64.

comment:12 in reply to:  10 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to posguy99:

And no, myodbcsql17 still has the problem.

DEBUG: Processing port msodbcsql17 @0:17.10.2.1_0

The fixed version of the port is 17.10.2.1_1. Run sudo port selfupdate before trying again.

comment:13 Changed 13 months ago by posguy99 (Marc Wilson)

I had, but I think the mirror hadn't updated it yet. Now it installs. _

And you're right, mssql-tools has the same problem.

comment:14 Changed 13 months ago by roederja

Resolution: fixed
Status: assignedclosed

Mssql-tools should also be fixed now.

Note: See TracTickets for help on using tickets.