Opened 7 years ago

Closed 7 years ago

#54666 closed defect (fixed)

MacVim @8.0.snapshot136: fails to build with +universal

Reported by: enxio (Clemens Wittinger) Owned by: raimue (Rainer Müller)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: MacVim

Description

There's a build failure in MacVim/MMBackend.m, some explicit casts are lacking according to the compiler errors.

I'm attaching a patch.

Note that the same errors were also present in the last drops of MacVim.

I'm running 10.12.6, FWIW.

Attachments (1)

MacVIM-136.diff (1.4 KB) - added by enxio (Clemens Wittinger) 7 years ago.
Patch to make MacVim (136) to compile.

Download all attachments as: .zip

Change History (11)

Changed 7 years ago by enxio (Clemens Wittinger)

Attachment: MacVIM-136.diff added

Patch to make MacVim (136) to compile.

comment:1 Changed 7 years ago by mf2k (Frank Schima)

Owner: set to raimue
Status: newassigned

In the future, please Cc the port maintainers (port info --maintainers MacVim), if any.

comment:2 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

I wonder why you experience this problem when our automated build machines didn't.

If you think the changes you propose are correct, you should send them to the developers for inclusion in the next version. That way your fixes could help more users than just those who install it using MacPorts.

comment:3 Changed 7 years ago by raimue (Rainer Müller)

I also did not experience any build errors when testing the upgrades with Xcode 8.3.3 8E3004b. Are you using the Xcode 9 beta (xcodebuild -version)?

comment:4 Changed 7 years ago by enxio (Clemens Wittinger)

Well, same here. Xcode 8.3.3 8E3004b. Is there anything else I could check? By default I should be using the system compiler, right? I don't think I messed with that, though.

I am using the following variants, if that maybe matters: @8.0.snapshot136_0+cscope+huge+universal

I'd agree, that the patches are better applied upstream, btw.

I will look into that, once the "issue" with macports is a bit more clear.

comment:5 Changed 7 years ago by raimue (Rainer Müller)

Ah, +universal would be causing the problem. The default is usually a 64-bit build, which works fine. However, for a 32-bit build, the %ld in the printf format does not match the size of the type. Upstream no longer provides 32-bit builds, so they have noticed either.

Is there a specific reason you need the +universal variant of MacVim?

comment:6 Changed 7 years ago by enxio (Clemens Wittinger)

I see. I put it in variants.conf because one port required it and I thought it wouldn't hurt.

Thanks I'll remove it from variants.conf and see what happens.

comment:7 Changed 7 years ago by raimue (Rainer Müller)

You should apply +universal only for specific ports, as any non-default variants stops you from using any pre-compiled binary archives MacPorts provides. However, removing it from variants.conf now will not remove it from installed ports, as upgrade will use the same set of installed variants again.

You can remove it for a specific port like shown below. port -n does not recurse to dependencies, so it really only affects this single port.

sudo port -n upgrade --enforce-variants MacVim -universal

If you want to try to remove +universal from dependencies, you could try this without -n. If any ports break, they should be detected and fixed by the automatic run of port rev-upgrade afterwards.

comment:8 Changed 7 years ago by enxio (Clemens Wittinger)

Thanks very much for the help in clearing this up.

Would the following work (using your command as a template)

sudo port upgrade --enforce-variants outdated -universal

to get rid of it eventually over time?

comment:9 Changed 7 years ago by raimue (Rainer Müller)

Summary: MacVim 136 build failure.MacVim @8.0.snapshot136: fails to build with +universal

This will immediately force (--enforce-variants) a rebuild of ports to deselect the universal variant, even if now upgrade was necessary otherwise. To get rid of +universal over time on regular port version updates, you could run the upgrade command like this (and ignore the warnings):

$ sudo port upgrade outdated -universal
Warning: Skipping upgrade since gettext 0.19.8.1_0 >= gettext 0.19.8.1_0, even though installed variants "+universal" do not match "". Use 'upgrade --enforce-variants' to switch to the requested variants.
...

As it does not build anyway, I will just disable 32-bit builds for MacVim, as all supported releases of OS X are using 64-bit.

comment:10 Changed 7 years ago by raimue (Rainer Müller)

Resolution: fixed
Status: assignedclosed

In 330d7db7e220eb6c2bff8bcdc41e7cc088fe3f59/macports-ports:

MacVim: Disable builds on i386 and +universal

Closes: #54666

Note: See TracTickets for help on using tickets.