Opened 4 years ago

Closed 2 years ago

#60919 closed defect (fixed)

inkscape @0.92.5_2+x11 build failure due to incorrect libiconv

Reported by: delphym (DelphyM) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.6.3
Keywords: Cc: cooljeanius (Eric Gallager)
Port: inkscape

Description

Hi there, after a while I performed sudo port selfupdate; sudo port upgrade outdated The process ended up with a few warnings and failure to install inkscape port. Following the documentation about port installation process (https://guide.macports.org/#using.port.install) I repeated the installation process:

  1. sudo port clean inkscape
  2. sudo port -t install inkscape

which failed again, so I'm providing the main.log from the install process.

Attachments (1)

main.log (3.1 MB) - added by delphym (DelphyM) 4 years ago.
inkscape/main.log

Change History (14)

Changed 4 years ago by delphym (DelphyM)

Attachment: main.log added

inkscape/main.log

comment:1 Changed 4 years ago by jmroot (Joshua Root)

Milestone: MacPorts 2.7.0
Owner: set to dbevans
Status: newassigned

comment:2 Changed 4 years ago by jmroot (Joshua Root)

Summary: Inkscape port failed to install (upgrade) with the message "Processing of port inkscape failed"inkscape @0.92.5_2+x11 build failure due to incorrect libiconv

Seems to be finding libiconv (and zlib) in the SDK rather than in $prefix.

comment:3 Changed 4 years ago by kencu (Ken)

looks like in CMakeScripts/Modules/FindIconv.cmake they do a test compile without taking into account MacPorts' paths and libs, and so they find the system libiconv instead of MacPorts' version.

Probably just have to set them ICONV_INCLUDE_DIR AND ICONV_LIBRARIES

Last edited 4 years ago by kencu (Ken) (previous) (diff)

comment:4 Changed 4 years ago by kencu (Ken)

This worked:

configure.args-append \
    -DICONV_INCLUDE_DIR=${prefix}/include \
    -DICONV_LIBRARIES=${prefix}/lib/libiconv.dylib

I guess we need to do the same for libz too

comment:5 Changed 4 years ago by cctile (Charles Choi)

Seeing similar issue with libiconv

:info:build Undefined symbols for architecture x86_64:
:info:build   "_libiconv", referenced from:
:info:build       _U_Utf32leToUtf16le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf16leToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Latin1ToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf8ToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf32leToUtf8 in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf8ToUtf16le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf16leToUtf8 in libuemf_LIB.a(uemf_utf.c.o)
:info:build       ...
:info:build   "_libiconv_close", referenced from:
:info:build       _U_Utf32leToUtf16le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf16leToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Latin1ToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf8ToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf32leToUtf8 in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf8ToUtf16le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf16leToUtf8 in libuemf_LIB.a(uemf_utf.c.o)
:info:build       ...
:info:build   "_libiconv_open", referenced from:
:info:build       _U_Utf32leToUtf16le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf16leToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Latin1ToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf8ToUtf32le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf32leToUtf8 in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf8ToUtf16le in libuemf_LIB.a(uemf_utf.c.o)
:info:build       _U_Utf16leToUtf8 in libuemf_LIB.a(uemf_utf.c.o)
:info:build       ...
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)

comment:6 Changed 4 years ago by kencu (Ken)

Michael pushed a fix for cmake that was to fix all these ports at once; hopefully that will fix this one.

comment:7 Changed 4 years ago by delphym (DelphyM)

Thanks for update.

FYI: It was not clear to me if the fix has been available for normal users or not, so I've tried to perform classic macport update running those commands sudo port selfupdate; sudo port upgrade outdated.

Unfortunately the results are still the same.

Let me know how could I verify the fix. Many thanks in advance, -d

comment:8 Changed 4 years ago by kencu (Ken)

My apologies that it seems to be taking a bit longer than expected.

If you do this (or use your favourite editor):

bbedit `port file inkscape`

and on line 90, right below the existing configure.args block, paste this:

configure.args-append \
    -DICONV_INCLUDE_DIR=${prefix}/include \
    -DICONV_LIBRARIES=${prefix}/lib/libiconv.dylib

Then save, and install inkscape

sudo port -v install inkscape

I believe you will find success, as it worked for me.

A proper fix should be coming shortly.

comment:9 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

The fix was supposed to have been bc5236adc362f024aebd41ca198130bc40db49d0/macports-ports, wasn't it?

comment:10 Changed 4 years ago by kencu (Ken)

yes, hopefully that cmake fix will do it, now that it's in...

comment:11 in reply to:  8 Changed 4 years ago by delphym (DelphyM)

Replying to kencu:

My apologies that it seems to be taking a bit longer than expected.

If you do this (or use your favourite editor):

bbedit `port file inkscape`

and on line 90, right below the existing configure.args block, paste this:

configure.args-append \
    -DICONV_INCLUDE_DIR=${prefix}/include \
    -DICONV_LIBRARIES=${prefix}/lib/libiconv.dylib

Then save, and install inkscape

sudo port -v install inkscape

I believe you will find success, as it worked for me.

Worked like a magic! Many thanks for that and sorry it took me a while to verify the fix.

...
...
x ./opt/local/bin/inkview
gtk-update-icon-cache: Cache file created successfully.
--->  Cleaning inkscape
--->  Removing work directory for inkscape
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.

A proper fix should be coming shortly.

Hopefully yes, but how I would find it out? Sorry for asking those silly questions, but really don't have any idea.

comment:12 Changed 2 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:13 Changed 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Since this port has now been updated to 1.1.2, please let us know if this is still an issue.

If so, we'll reopen.

Note: See TracTickets for help on using tickets.