Opened 4 years ago
Last modified 4 years ago
#60656 reopened defect
lcms2 +universal: build error
Reported by: | JohnFHall (John Hall) | Owned by: | kencu (Ken) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.2 |
Keywords: | Cc: | someuser12 | |
Port: | lcms2 |
Description
Error: Failed to build lcms2: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_lcms2/lcms2/main.log for details.
Attachments (1)
Change History (13)
Changed 4 years ago by JohnFHall (John Hall)
Attachment: | lcms2_log.gz added |
---|
comment:1 Changed 4 years ago by mf2k (Frank Schima)
Summary: | lcms2 fails to build 2.10_0 → lcms2 +universal: build error |
---|
Error is:
:info:build libtool: link: /usr/bin/clang -pipe -Os -arch i386 -fvisibility=hidden -D_THREAD_SAFE -Wl,-headerpad_max_install_names -arch i386 -Wl,-headerpad_max_install_names -arch i386 -o .libs/tificc tificc.o ../common/xgetopt.o ../common/vprf.o -L/opt/local/lib ../../src/.libs/liblcms2.dylib -ltiff -ljpeg -lz -lm -lpthread :info:build ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS) :info:build Undefined symbols for architecture i386: :info:build "__cmsLCMScolorSpace", referenced from: :info:build _main in tificc.o :info:build "_cmsBuildGamma", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsBuildTabulatedToneCurve16", referenced from: :info:build _main in tificc.o :info:build "_cmsCloseProfile", referenced from: :info:build _main in tificc.o :info:build "_cmsCreateGrayProfileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsCreateInkLimitingDeviceLink", referenced from: :info:build _main in tificc.o :info:build "_cmsCreateLab2ProfileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsCreateLab4ProfileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsCreateLinearizationDeviceLink", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsCreateMultiprofileTransform", referenced from: :info:build _main in tificc.o :info:build "_cmsCreateNULLProfileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsCreateProofingTransform", referenced from: :info:build _main in tificc.o :info:build "_cmsCreateRGBProfileTHR", referenced from: :info:build _main in tificc.o :info:build "_cmsCreateXYZProfileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsCreate_sRGBProfileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsD50_xyY", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsDeleteTransform", referenced from: :info:build _main in tificc.o :info:build "_cmsDoTransform", referenced from: :info:build _main in tificc.o :info:build "_cmsFreeToneCurve", referenced from: :info:build _main in tificc.o :info:build _OpenStockProfile in vprf.o :info:build "_cmsGetColorSpace", referenced from: :info:build _main in tificc.o :info:build "_cmsGetPCS", referenced from: :info:build _main in tificc.o :info:build "_cmsGetProfileInfoASCII", referenced from: :info:build _PrintInfo in vprf.o :info:build "_cmsGetSupportedIntents", referenced from: :info:build _PrintRenderingIntents in vprf.o :info:build "_cmsIsTag", referenced from: :info:build _PrintColorantTable in vprf.o :info:build "_cmsNamedColorCount", referenced from: :info:build _PrintColorantTable in vprf.o :info:build "_cmsNamedColorInfo", referenced from: :info:build _PrintColorantTable in vprf.o :info:build "_cmsOpenProfileFromFile", referenced from: :info:build _main in tificc.o :info:build "_cmsOpenProfileFromFileTHR", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsOpenProfileFromMem", referenced from: :info:build _main in tificc.o :info:build "_cmsPlugin", referenced from: :info:build _main in tificc.o :info:build "_cmsReadTag", referenced from: :info:build _PrintColorantTable in vprf.o :info:build "_cmsSetAdaptationState", referenced from: :info:build _main in tificc.o :info:build "_cmsSetLogErrorHandler", referenced from: :info:build _InitUtils in vprf.o :info:build "_cmsWhitePointFromTemp", referenced from: :info:build _OpenStockProfile in vprf.o :info:build "_cmsfilelength", referenced from: :info:build _main in tificc.o :info:build "_cmsstrcasecmp", referenced from: :info:build _OpenStockProfile in vprf.o :info:build ld: symbol(s) not found for architecture i386 :info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
comment:2 follow-up: 6 Changed 4 years ago by kencu (Ken)
Owner: | set to kencu |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:3 Changed 4 years ago by JohnFHall (John Hall)
I need more help here. I need to build lcms2+universal for wine-devel (and others). Removing the warnings doesn't help build i386... My MacPRO 2009 has no ability to be upgraded past High Sierra, and needs i386 builds.
comment:4 Changed 4 years ago by kencu (Ken)
First of all, I'm on a MacPro 2009 and running Mojave, so there is hope. MacRumors is your friend there.
The changes I uploaded most certainly do fix lcms2 on 10.13, even with Xcode10 -- I just built it several times.
$ port -v installed lcms2 The following ports are currently installed: lcms2 @2.10_0+universal (active) platform='darwin 17' archs='i386 x86_64' date='2020-06-14T17:20:38-0700'
But they may not have got to you yet, as the MacPorts index and ports tree takes a while to percolate down the pipelines.
In the bigger picture, building and running wine is possible for you.
The absolute simplest and most bulletproof method is to downgrade your 10.13 installation to Xcode9, and sudo port -v install wine +universal
. That is the only MacPorts-sanctioned method of getting wine on 10.13 right now, and for the foreseeable future, and it works.
Another user last year was very motivated to get wine going with Xcode 10 on 10.13, and on Mojave and newer, and I worked with him for quite a while 56991#comment:70. He has a very good setup going now, and you might look at that for inspiration, as he's made a real industry out of it now, has an updated repo with very up-to-date wine parts using MacPorts, and lots of instructions on how to get going:
<https://github.com/Gcenx/macports-wine>
That would be a more advanced project for you than downgrading to Xcode9, but has some possible upsides if you need what that offers.
comment:5 Changed 4 years ago by JohnFHall (John Hall)
Thank you. A port sync allowed the 2.10_0+universal to install.
I'll consider the (more technical) options.
Thank you again for the prompt help.
comment:6 Changed 4 years ago by someuser12
Thanks a lot for this fix.
Actually, I needed to disable the linker warnings even with Xcode 9.1 build version 9B55 (on Mac OS 10.13.6) to build lcms2 +universal
.
Therefore I suggest changing 10.0 to 9.1 on line 39 of the Portfile of lcms2
.
comment:7 Changed 4 years ago by someuser12
Cc: | someuser12 added |
---|
comment:9 Changed 4 years ago by kencu (Ken)
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:10 Changed 4 years ago by BenceSzalai (Bence Szalai)
Please note that the fix depends on [vercmp ${xcodeversion} 10.0] >= 0
, but it did not help in my case. I guess it was because I'm using Xcode Command Line Tools instead of the full blown Xcode to compile ports. Probably another check should be added, which checks the version of the xCode CLI Tools, because ${xcodeversion}
is not set on my system.
As a workaround I've just removed that condition from my local portfile which got me lcms2 +universal
building finally. Unfortunately I'm not sure what is the replacement for ${xcodeversion}
when only Command Line Tools are installed.
Looking back now probably a better workaround could have been just to make sure I have ${xcodeversion}
set, but since during the troubleshooting I've set up a local Portfile for lcms2
, it was easier for me just to remove the part checking that.
Anyway, If you know how to check CLI Tools version as well, the condition could be extended in the fix. If not, that's fine as well; I'm leaving this note here for others facing the same problem, so they don't have to spend hours like I did...
comment:11 Changed 4 years ago by BenceSzalai (Bence Szalai)
Apparently the CLI Tools version coresponding to xcodeversion
can be determined by for example: pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
(version: 10.3.0.0.1.1562985497
in my case.) So I think I'll just set xcodeversion
manually to 10.3
in my envrionment (export xcodeversion="10.3"
), and leave it like that for now.
Anyway, I'm happy to have lcms2 +universal
finally after so much struggle!
~ port -v installed lcms2 The following ports are currently installed: lcms2 @2.11_0+universal (active) platform='darwin 18' archs='i386 x86_64' date='2021-01-11T03:10:48+0100'
comment:12 Changed 4 years ago by kencu (Ken)
Yes, supporting CLT- only installs means using xcodeversion in Portfiles or base is presently useless.
main.log