[MacPorts] #57821: libiconv breaks compatibility with OS-provided

MacPorts noreply at macports.org
Thu Jan 3 07:35:21 UTC 2019

#57821: libiconv breaks compatibility with OS-provided
  Reporter:  mouse07410  |      Owner:  ryandesign
      Type:  defect      |     Status:  closed
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:
Resolution:  invalid     |   Keywords:
      Port:  libiconv    |

Comment (by ryandesign):

 Replying to [comment:9 mouse07410]:
 > > I will not add that to the port, because it will cause problems—much
 like the ones you're experiencing now, just in different
 circumstances—which I do not wish to spend time helping users resolve
 > I'm not sure I understand how it could cause problems, especially when
 the majority would use the default that does mangle the function names. I
 wish you'd reconsider adding a port variant.

 If we offered a variant that did not mangle the function names, all of the
 other ports that the user had installed that linked with libiconv would be
 broken, because they expect mangled function names. The user would have to
 uninstall and rebuild all of those ports from source so that they use
 unmangled names. If the user didn't do that, they would receive undefined
 symbol errors, much as you did. MacPorts doesn't contain any feature that
 would make it easy for the user to identify the ports that need to be
 rebuilt, so it would be a manual process. I would not want to be involved
 in assisting the user with that task.

 We have an automated build system that builds and distributes binaries of
 ports to users. Anything built by that system would use libiconv in its
 normal state—with mangled function names. Those binaries would be
 incompatible with a libiconv variant for using unmangled function names
 installed on a user system. The user would have to know this, and would
 have to instruct MacPorts not to use any binaries (i.e. to build from
 source instead). We could inform the user of that by using `notes` in the
 variant, but users often don't read notes, and there's no way to enforce
 that the user has disabled binaries if they use that hypothetical variant.
 For these reasons, we try to avoid adding variants that, when selected,
 cause other ports to build differently.

 Sometimes being a maintainer of a port means knowing when not to offer
 users the opportunity to shoot themselves in the foot, because some users
 inevitably take that opportunity and then either leave MacPorts because
 they perceive it to be broken, or else they ask us for tech support. Some
 of my goals are to reduce the likelihood that a user will need tech
 support or leave us.

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

More information about the macports-tickets mailing list