[MacPorts] #70107: fastfetch: dyld[----]: Symbol not found : (_AVCaptureDeviceTypeExternal) (was: Unable to Run fastfetch)

MacPorts noreply at macports.org
Wed May 29 21:37:12 UTC 2024


#70107: fastfetch: dyld[----]: Symbol not found : (_AVCaptureDeviceTypeExternal)
--------------------------------------+-------------------------
  Reporter:  TopHatProductions115new  |      Owner:  herbygillot
      Type:  defect                   |     Status:  assigned
  Priority:  Normal                   |  Milestone:
 Component:  ports                    |    Version:  2.9.3
Resolution:                           |   Keywords:
      Port:  fastfetch                |
--------------------------------------+-------------------------
Changes (by ryandesign):

 * status:  new => assigned
 * owner:  (none) => herbygillot
 * cc: herbygillot (removed)


Comment:

 > Would this potentially be related to the issue?

 Perhaps, to the extent that you are on macOS 12, and the error message
 says it cannot find `AVCaptureDeviceTypeExternal`, and
 `AVCaptureDeviceTypeExternal` seems to have been introduced in macOS 14.

 The only place `AVCaptureDeviceTypeExternal` is used in the code is here:

 https://github.com/fastfetch-
 cli/fastfetch/blob/7c1b6c6a10b9272772e6db634715f1d57839dec9/src/detection/camera/camera_apple.m#L16-L25

 {{{#!c
     #ifdef MAC_OS_VERSION_14_0
     if (@available(macOS 14.0, *))
     {
         deviceType = AVCaptureDeviceTypeExternal;
     }
     else
     #endif
     {
         deviceType = AVCaptureDeviceTypeExternalUnknown;
     }
 }}}

 I can't explain why code guarded by checks (both compile-time and runtime)
 for macOS 14 would ever be used on macOS versions earlier than 14.

 The code was just changed two weeks ago specifically for the purpose of
 better supporting older macOS versions; the author of this PR said it
 worked for them on macOS 10.13:

 https://github.com/fastfetch-cli/fastfetch/pull/936

 On macOS 12 the newest macOS SDK provided by your Xcode and/or command
 line tools should be 13. `MAC_OS_VERSION_14_0` is only defined in the
 macOS 14 and later SDKs. So the code that references
 `AVCaptureDeviceTypeExternal` should have been hidden by that `#ifdef` and
 should not have been seen by your compiler. What version of Xcode and the
 command line tools do you have installed? Have you done anything unusual
 with them, like manually added the macOS 14 SDK or made any modifications
 to the SDKs? Do you recall whether the port compiled from source on your
 system or whether you received a binary from our servers?

-- 
Ticket URL: <https://trac.macports.org/ticket/70107#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list