On Oct 29, 2018, at 01:15, Ken Cunningham wrote:
> I notice homebrew is forcing the installation of binaries built on their
> 10.12 or 10.13 builders onto 10.14 to get around the 32bit build problem on
> 10.14.
>
> I don't believe there is any way to force our binary installer to install
> older system builds in the same way -- but if there was, it would grant us a
> reprieve for a year for the 32bit issue.
>
> So I thought I'd ask if anyone can imagine how this might be done.
At the moment, you're right, we don't have anything that can do that. So at the
moment we would need to find a way to compile 32-bit on 10.14. Jack Howarth
mentioned that the system dylib still has 32-bit symbols (of course, so that it
can run 32-bit software) but that the tbd file for the system library doesn't
have the 32-bit symbols anymore, which is what causes the build failure, and
that there is a way to force the build to look at the dylib instead of at the
tbd, but he didn't elaborate about how that would be accomplished. If we can
figure that out, that might be the answer.
As for the method you suggested, it's part of a larger problem. More and more
we are encountering ports that can run on earlier systems but only if they are
built on newer systems -- this seems to match what Apple wants their developers
to do (use the latest OS, Xcode, SDK, and use an earlier deployment target to
offer the app to older systems) -- and therefore we can't at present offer them
to those older systems in MacPorts. It might be good if we could specify for
those ports that they should have an older deployment target, and that older
systems should download the binary built on the newer system. I haven't given
much thought yet to what kind of portfile syntax we might want to use to convey
that. It also wouldn't help users who build from source, which would include
nondistributable ports, so it still seems like focusing on being able to build
a port on the OS version where we want to use it, as we have always done, is
still what we should be doing.