#45949 closed defect (fixed)
pinentry-mac @0.8.1: error: -fobjc-arc is not supported on platforms using the legacy runtime
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | Ionic (Mihai Moldovan) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.99 |
Keywords: | Cc: | ||
Port: | pinentry-mac |
Description
pinentry-mac fails to build for me on Yosemite:
error: -fobjc-arc is not supported on platforms using the legacy runtime
Attachments (1)
Change History (14)
Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
comment:1 Changed 9 years ago by Ionic (Mihai Moldovan)
comment:2 Changed 9 years ago by Ionic (Mihai Moldovan)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
If this is going to be the solution, then you will also have to disable the universal variant of every port that has a library dependency on pinentry-mac, and every port that has a library dependency on those ports, and so on.
comment:4 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
In addition, if pinentry-mac requires x86_64, then you should add this line to the portfile:
supported_archs x86_64
There should also be a comment above this line and the one that disables the universal variant, explaining why. For example for pinentry-mac, it would be:
# error: -fobjc-arc is not supported on platforms using the legacy runtime supported_archs x86_64 universal_variant no
In gpg-agent, which depends on pinentry-mac, it would be:
# pinentry-mac is not universal universal_variant no
Note, there was no reason to increase the revision when you disabled pinentry-mac's universal variant, and should not do so on other ports either.
comment:5 follow-up: 6 Changed 9 years ago by Ionic (Mihai Moldovan)
I can't change that, ARC is x86_64-only and pinentry-mac is utilizing that feature.
Currently, the only port depending on pinentry-mac
under certain circumstances (variant pinentry_mac
, may be set by default on supported systems and if the pinentry
port or variant are not installed/enabled) is gpg-agent
. I will add depends_skip_archcheck
to it.
supported_archs
is r128371
comment:6 follow-up: 8 Changed 9 years ago by Ionic (Mihai Moldovan)
Replying to ionic@…:
Currently, the only port depending on
pinentry-mac
under certain circumstances (variantpinentry_mac
, may be set by default on supported systems and if thepinentry
port or variant are not installed/enabled) isgpg-agent
. I will adddepends_skip_archcheck
to it.
If that's even possible... can a 32bit binary spawn a 64bit one? If not, I'm in for some trouble.
comment:7 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
You were responding while I was writing this, so some is redundant:
Replying to ryandesign@…:
In gpg-agent, which depends on pinentry-mac, it would be:
# pinentry-mac is not universal universal_variant no
In the case of gpg-agent, this should occur in the pinentry_mac variant only. And that leads us to a somewhat crappy situation: gpg-agent can be universal with the pinentry variant, but cannot be universal with the pinentry_mac variant. Should dependencies of gpg-agent offer a universal variant? We don't have a way to handle this situation in MacPorts. We can either leave the universal variants in gpg-agent dependents, with the understanding that they will not work if gpg-agent is installed with the pinentry_mac variant, or remove them, unnecessarily depriving users who have selected the pinentry variant of universal variants that would work fine.
comment:8 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to ionic@…:
Replying to ionic@…:
Currently, the only port depending on
pinentry-mac
under certain circumstances (variantpinentry_mac
, may be set by default on supported systems and if thepinentry
port or variant are not installed/enabled) isgpg-agent
. I will adddepends_skip_archcheck
to it.If that's even possible... can a 32bit binary spawn a 64bit one? If not, I'm in for some trouble.
If we are only spawning an executable, then there's no problem. If so, then pinentry-mac should declare:
installs_libs no
Then gpg-agent and dependents should still be able to be universal.
comment:9 Changed 9 years ago by Ionic (Mihai Moldovan)
Yes, it doesn't install any libraries, merely the executable which is spawned by gpg-agent. Still... I have no idea if a i386 binary can (v)fork and exec an x86_64 binary. That's the point I'm worried about.
comment:10 Changed 9 years ago by Ionic (Mihai Moldovan)
ionic@nopileos/tmp/exec-test% ./x86 running in 32bit mode. forking. running in 64bit mode.
OK, that's a relief. I'll add installs_libs no
right away.
Related to
universal
variant. Will remove it.