[MacPorts] #66857: alex 3.2.7.1 fails to build
MacPorts
noreply at macports.org
Thu Nov 2 16:19:32 UTC 2023
#66857: alex 3.2.7.1 fails to build
----------------------+--------------------
Reporter: jsalort | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.8.1
Resolution: | Keywords:
Port: alex |
----------------------+--------------------
Changes (by ryandesign):
* cc: saagarjha, CodingMarkus (added)
Comment:
Replying to [comment:7 saagarjha]:
> Presumably this isn't really a fix for upcoming releases of macOS. What
should we do for those?
Are you referring to the situation of new OS versions being released and
buildbot workers not being immediately set up for them, or some other
issue with a specific new version of macOS?
Replying to [comment:8 CodingMarkus]:
> I now have the same problem with alex-3.3.0.0_0 on macOS 14.1 (Sonoma).
>
> fetch alex-3.3.0.0_0+haskell_cabal_use_prebuilt.darwin_23.arm64.tbz2 is
not found
That's correct. There are no "darwin_23.arm64" binaries for any port yet.
I haven't set up that buildbot worker yet.
> and building fails because the symbol _iconv is not found.
>
> What I don't quite understand is:
>
> 1. Why do you force ghc to build against the system libiconv in the
first place? ("because of the way we have built ghc, against the system
libiconv")
Explanations have been offered which I am too stupid to understand.
> 2. If libiconv is so static ("as libiconv is very static"), how can
there be undefined symbols? If it really was that static, then any version
of it would offer the same symbols. Apparently the current version of it
misses a symbol that the system version has, which sounds anything but
static to me.
A system version of libiconv intentionally uses different symbol names
from a non-system version of libiconv. This is how libiconv was designed
to work. It was intended to avoid conflicts, but with the way that ghc
apparently misuses libiconv, it instead causes conflicts. If you have
concerns about this, please have a dialog with the developers of ghc and
libiconv.
> To me this can only be solved in two ways: MacPorts always uses the
system library and MacPorts never uses it. Make up your mind and then go
with it. Any other concept was totally flawed to begin with and relying on
a buildbot is no solution at all, it's a bloody workaround in lack of a
real solution.
MacPorts did decide, 20 years ago
[changeset:aee9d56e39936c59de14c3ad363fbe28f7dc484d/macports-ports when
libiconv was added to MacPorts], that ports would use a MacPorts version
of libiconv. Same goes for most other libraries, even those already
provided by the OS. Those decisions are not set in stone, of course, and
could be changed if there were a good reason to, but I don't think there
is. My uninformed view is that ghc is badly designed and why should
MacPorts be changed to accommodate badly-designed software? I suggest
finding a well-designed alternative to anything ghc-related.
I agree that the buildbot is a nicety and designing ports that rely on its
existence is a flawed strategy.
--
Ticket URL: <https://trac.macports.org/ticket/66857#comment:9>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list