Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#58715 closed request (wontfix)

libiconv-select

Reported by: jpgoldberg (Jeffrey Goldberg) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port:

Description

There are a number of closed tickets describing problems outside of MacPorts that result of the libraries installed through libiconv port not behaving as things on the system expect.

Any time I build something outside of MacPorts, I have to look for -liconv and wonder whether I will need to changes that to a full path to the system libinconv.dylib. It is more than tiresome doing that each and every time.

I believe that a libiconv-select, allowing me to select "system" may resolve these problems.

Change History (5)

comment:1 Changed 5 years ago by danielluke (Daniel J. Luke)

Macports doesn't install things into a location where the linker looks for libraries by default, though - so why are your 'outside of macports builds' picking up the macports libiconv?

comment:2 Changed 5 years ago by jpgoldberg (Jeffrey Goldberg)

Macports doesn't install things into a location where the linker looks for libraries by default, though

Hmm. In that case, I've got something misconfigured. Let me see if I've got /opt/local/lib in my "outside of MacPorts" configurations ... I'm not finding it. I don't have CFLAGS or LDFLAGS set in my environment, so I don't know what it was being picked up.

Anyway, if what you say is the case (and I have no reason to doubt you), then feel free to close this issue.

comment:3 Changed 5 years ago by mouse07410 (Mouse)

I think it's a bad idea. Because you're going to lose no matter what, as long as some (presumably Macports-installed) software need Macports-installed libiconv, and other packages (like Haskell installed via ghcup) require the system version of libiconv. Because you cannot "select" on a per-package basis, like "use system lib for Haskell package, and Macports lib for everything else".

My solution was to manually edit Haskell configuration file, telling it where to find the system version of libiconv. Nothing else on my machines had any problem, so far.

Last edited 5 years ago by mouse07410 (Mouse) (previous) (diff)

comment:4 Changed 5 years ago by mf2k (Frank Schima)

Resolution: wontfix
Status: newclosed

mouse07410 is correct. -select ports are only meant for user space convenience for bin programs. Any port is not supposed to care what the user preference is and it is considered a bug in the port if it does.

comment:5 Changed 5 years ago by mouse07410 (Mouse)

Also, many packages that you compile yourself, don't care which of the two libiconv is the default,as long as you stick with it. They'll just compile against the correct .h files that map the correct function names, and link against the available library. No-brainer.

Only pre-compiled packages (again, like Haskell) may be unhappy with the default, and require special treatment. And again, those packages that include shared libraries dependent on libiconv are simple (if tedious) to remedy.

Last edited 5 years ago by mouse07410 (Mouse) (previous) (diff)
Note: See TracTickets for help on using tickets.