https://bugs.kde.org/show_bug.cgi?id=526895

--- Comment #3 from Seitaro Sugawara <[email protected]> ---
Hi Jasem,

Thank you for the explanation. I looked into this further, and both ZWO and
SVBONY now provide native macOS arm64 builds of their SDKs. I downloaded them
from the official websites and checked the libraries on my M1 Mac.

=== ZWO ===

>From the official ZWO Product SDK page
(https://www.zwoastro.com/software/product-sdk/):

1. ASI Camera SDK V1.41 (released 2026-01-12)

The download is labeled "Windows" on the page, but the package also contains
ASI_linux_mac_SDK_V1.41, which has a separate mac_arm64 directory next to the
Intel "mac" directory:

  $ ls ASI_Camera_SDK/ASI_linux_mac_SDK_V1.41/lib
  armv6  armv7  armv8  asi.rules  mac  mac_arm64  README.txt  x64  x86

  $ lipo -info
ASI_Camera_SDK/ASI_linux_mac_SDK_V1.41/lib/mac_arm64/libASICamera2.dylib.1.41
  Non-fat file: .../lib/mac_arm64/libASICamera2.dylib.1.41 is architecture:
arm64

  $ lipo -info
ASI_Camera_SDK/ASI_linux_mac_SDK_V1.41/lib/mac_arm64/libASICamera2.a
  Non-fat file: .../lib/mac_arm64/libASICamera2.a is architecture: arm64

2. EAF SDK V1.8.1

  $ ls EAF_SDK_V1.8.1/eaf/lib
  armv6  armv7  armv8  eaf.rules  mac_arm64  mac_x64  x64  x86

  $ lipo -info EAF_SDK_V1.8.1/eaf/lib/mac_arm64/libEAFFocuser.*
  Non-fat file: mac_arm64/libEAFFocuser.a is architecture: arm64
  Non-fat file: mac_arm64/libEAFFocuser.dylib is architecture: arm64

3. EFW SDK (library version 1.8.4)

  $ ls EFW_SDK/efw/lib
  armv6  armv7  armv8  efw.rules  mac_arm64  mac_x64  x64  x86

  $ lipo -info EFW_SDK/efw/lib/mac_arm64/libEFWFilter.*
  Non-fat file: mac_arm64/libEFWFilter.a is architecture: arm64
  Non-fat file: mac_arm64/libEFWFilter.dylib is architecture: arm64
  Non-fat file: mac_arm64/libEFWFilter.dylib.1.8.4 is architecture: arm64

4. CAA SDK (library version 1.5.9)

  $ ls CAA_SDK/caa/lib
  armv6  armv7  armv8  caa.rules  mac_arm64  mac_x64  x64  x86

  $ lipo -info CAA_SDK/caa/lib/mac_arm64/libCAA.*
  Non-fat file: mac_arm64/libCAA.a is architecture: arm64
  Non-fat file: mac_arm64/libCAA.dylib is architecture: arm64
  Non-fat file: mac_arm64/libCAA.dylib.1.5.9 is architecture: arm64

I have not checked the USB2ST4 SDK.

Note: libusb is not bundled with the ZWO SDK, and the camera library links to
the Homebrew path directly:

  $ otool -L
ASI_Camera_SDK/ASI_linux_mac_SDK_V1.41/lib/mac_arm64/libASICamera2.dylib.1.41
  @loader_path/libASICamera2.dylib
  /opt/homebrew/opt/libusb/lib/libusb-1.0.0.dylib
  /usr/lib/libc++.1.dylib
  /usr/lib/libSystem.B.dylib

So the libusb path would probably need to be changed with install_name_tool
when bundling these libraries in the DMG.

=== SVBONY ===

The SVBONY camera SDK (SVBCameraSDK v1.13.4, dated 2025-02-05 in readme.txt,
downloaded from the official SVBONY website) provides arm64, x64 and universal
(x86_64 + arm64) builds for macOS, with libusb bundled:

  $ ls SVBCameraSDK/lib
  all  arm64  x64  x86

  $ lipo -info SVBCameraSDK/lib/arm64/lib*
  Non-fat file: arm64/libSVBCameraSDK.a is architecture: arm64
  Non-fat file: arm64/libSVBCameraSDK.dylib is architecture: arm64
  Non-fat file: arm64/libusb-1.0.0.dylib is architecture: arm64
  Non-fat file: arm64/libusb-1.0.dylib is architecture: arm64

  $ lipo -info SVBCameraSDK/lib/all/lib*
  Architectures in the fat file: all/libSVBCameraSDK.a are: x86_64 arm64
  Architectures in the fat file: all/libSVBCameraSDK.dylib are: x86_64 arm64
  Architectures in the fat file: all/libusb-1.0.0.dylib are: x86_64 arm64
  Architectures in the fat file: all/libusb-1.0.dylib are: x86_64 arm64

The library uses @rpath for libusb, so it should be easy to bundle:

  $ otool -L SVBCameraSDK/lib/arm64/libSVBCameraSDK.dylib
  @rpath/libSVBCameraSDK.dylib
  ...
  @rpath/libusb-1.0.0.dylib
  ...

So it may also be possible to build indi_svbony_ccd for arm64. I am not sure
whether indi_svbonycam_* use this SDK or a different one.

=== Request ===

Would it be possible to update libasi and libsvbony in indi-3rdparty with these
SDKs, so that the ZWO drivers (indi_asi_ccd, indi_asi_single_ccd,
indi_asi_focuser, indi_asi_wheel and indi_asi_rotator) and indi_svbony_ccd can
be included in the macOS arm64 DMG?

I have not been able to confirm whether Atik, Astroasis and SBIG provide macOS
arm64 SDKs, so I will contact those manufacturers separately.

Thanks again for your work on KStars and INDI.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to