Re: RFC: New release and abandoning MacOS?

Matt Broughton <[email protected]> Fri, 9 Aug 2024 20:21:27 -0500
Newsgroups gmane.linux.printing.gimp-print.devel
Message-ID <[email protected]>

> On Aug 9, 2024, at 6:55 AM, Michael Sweet via Gimp-print-devel <[email protected]> wrote:
> 
> Matt,
> 
>> On Aug 8, 2024, at 4:01 PM, Matt Broughton <[email protected]> wrote:
>> ...
>> libusb is not included with any version of macos. What I am tyring to do is make an installer package for Gutenprint where gutenprint53+usb will work without having the macos Gutenprint installer actually installing libusb--  to build a statically linked binary or library.
> 
> So I actually do this for my LPrint and hp-printer-app packages on macOS, which depend on PAPPL and libusb.
> 
> The libusb configure script supports the "--disable-shared" option.  Use it and then it will only link statically to libusb.
> 
> I also set the compiler flags before running the configure script as follows to build "fat" for macOS 11 and later:
> 
>    CFLAGS="-mmacosx-version-min=11.0 -arch x86_64 -arch arm64"; export CFLAGS
>    CXXFLAGS="-mmacosx-version-min=11.0 -arch x86_64 -arch arm64"; export CXXFLAGS
>    LDFLAGS="-mmacosx-version-min=11.0 -arch x86_64 -arch arm64"; export LDFLAGS
> 
> You can change the min version to whatever you like, although the code signing and notarization stuff changed between macOS 10.13 and 10.14 so I personally wouldn't go any older than 10.14...  If you decide to do a PPC-compatible build then you'll need an older system and use "-arch i386 -arch ppc" in the compiler options.

Thank you for your help Michael.  Unfortunately, I still can't get it to build all the way.

I did as you said for building libusb and installed --

matt$ file /usr/local/lib/libusb-1.0.a 
/usr/local/lib/libusb-1.0.a: Mach-O universal binary with 2 architectures: [x86_64:current ar archive random library] [arm64:current ar archive random library]
/usr/local/lib/libusb-1.0.a (for architecture x86_64):	current ar archive random library
/usr/local/lib/libusb-1.0.a (for architecture arm64):	current ar archive random library
matt$ lipo -archs /usr/local/lib/libusb-1.0.a 
x86_64 arm64

Then I went to build gutenprint 5.3.5-pre1 fat(x86_64 and arm64), and it errored out building the backend.  Interestingly, if I switch the architecture around (arm64 and x86_64), it will fail with the same error but show capture_entitlements in libusb-1.0a[arm64].......   I went back and built and installed libusb for only arm64.  Same errors when I go to build gutennprint backend.

Undefined symbols for architecture x86_64:
  "_SecTaskCopyValueForEntitlement", referenced from:
      _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o)
  "_SecTaskCreateFromSelf", referenced from:
      _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [backend_gutenprint] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

When run with "-v" added to LDFLAGS ---

Making all in cups
  CC       cups-calibrate.o
  CCLD     cups-calibrate
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 14.5 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -Os -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-835523/cups-calibrate-x86_64.out -L/usr/local/lib cups-calibrate.o -lm -framework IOKit -framework CoreFoundation -arch_multiple -final_output cups-calibrate -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 11.0.0 14.5 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -Os -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-104106/cups-calibrate-arm64.out -L/usr/local/lib cups-calibrate.o -lm -framework IOKit -framework CoreFoundation -arch_multiple -final_output cups-calibrate -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo" -create -output cups-calibrate /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-835523/cups-calibrate-x86_64.out /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-104106/cups-calibrate-arm64.out
  CC       backend_gutenprint-backend_canonselphy.o
  CC       backend_gutenprint-backend_canonselphyneo.o
  CC       backend_gutenprint-backend_kodak1400.o
  CC       backend_gutenprint-backend_kodak6800.o
  CC       backend_gutenprint-backend_kodak605.o
  CC       backend_gutenprint-backend_shinkos2145.o
  CC       backend_gutenprint-backend_sonyupd.o
  CC       backend_gutenprint-backend_sonyupdneo.o
  CC       backend_gutenprint-backend_dnpds40.o
  CC       backend_gutenprint-backend_mitsu70x.o
  CC       backend_gutenprint-backend_mitsu9550.o
  CC       backend_gutenprint-backend_sinfonia.o
  CC       backend_gutenprint-backend_common.o
  CC       backend_gutenprint-backend_shinkos1245.o
  CC       backend_gutenprint-backend_shinkos6145.o
  CC       backend_gutenprint-backend_shinkos6245.o
  CC       backend_gutenprint-backend_mitsup95d.o
  CC       backend_gutenprint-backend_magicard.o
  CC       backend_gutenprint-backend_mitsud90.o
  CC       backend_gutenprint-backend_hiti.o
  CC       backend_gutenprint-backend_mitsu.o
  CC       backend_gutenprint-backend_kodak8800.o
  CCLD     backend_gutenprint
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 14.5 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -Os -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/backend_gutenprint-backend_canonselphy-7e07f3/backend_gutenprint-backend_canonselphy-x86_64.out -L/usr/local/lib -L/usr/local/lib backend_gutenprint-backend_canonselphy.o backend_gutenprint-backend_canonselphyneo.o backend_gutenprint-backend_kodak1400.o backend_gutenprint-backend_kodak6800.o backend_gutenprint-backend_kodak605.o backend_gutenprint-backend_shinkos2145.o backend_gutenprint-backend_sonyupd.o backend_gutenprint-backend_sonyupdneo.o backend_gutenprint-backend_dnpds40.o backend_gutenprint-backend_mitsu70x.o backend_gutenprint-backend_mitsu9550.o backend_gutenprint-backend_sinfonia.o backend_gutenprint-backend_common.o backend_gutenprint-backend_shinkos1245.o backend_gutenprint-backend_shinkos6145.o backend_gutenprint-backend_shinkos6245.o backend_gutenprint-backend_mitsup95d.o backend_gutenprint-backend_magicard.o backend_gutenprint-backend_mitsud90.o backend_gutenprint-backend_hiti.o backend_gutenprint-backend_mitsu.o backend_gutenprint-backend_kodak8800.o /usr/local/lib/libusb-1.0.a -lobjc -ldl -framework IOKit -framework CoreFoundation -arch_multiple -final_output backend_gutenprint -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
  "_SecTaskCopyValueForEntitlement", referenced from:
      _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o)
  "_SecTaskCreateFromSelf", referenced from:
      _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [backend_gutenprint] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


> 
> If it would be useful, I'm happy to share my (currently private) "macbase" project which I use to build a couple dozen common tools and libraries on my Macs, all using static libraries and "fat".

Thank you for your offer.  I think most of it would be over my head and lost on me.  I'll play around with libusb and gutenprint a bit more.  If nothing else, I can at least test the v5.3.5-pre1 release and update the build script and uninstaller.

Matt



_______________________________________________
Gimp-print-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gimp-print-devel