New Ticket     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #12137 (closed defect: fixed)

Opened 5 years ago

Last modified 3 years ago

BUG: +universal variant for ports that depend on lib:libX11.6:XFree86

Reported by: ryandesign@… Owned by: ryandesign@…
Priority: Normal Milestone:
Component: ports Version: 1.4.42
Keywords: Cc: ryandesign@…
Port:

Description

I want to install "glitz +universal" but it doesn't work:

$ sudo port install glitz +universal
Error: Error executing universal: Default universal variant only works with ports based on configure
Error: Unable to execute port: Error evaluating variants

This is unexpected because glitz is based on configure.

Debug output shows it's actually complaining about the XFree86 dependency:

$ sudo port -dv install glitz +universal
DEBUG: Found port in file:///Users/rschmidt/macports/dports/graphics/glitz
DEBUG: Changing to port directory: /Users/rschmidt/macports/dports/graphics/glitz
DEBUG: Requested variant darwin is not provided by port glitz.
DEBUG: Requested variant i386 is not provided by port glitz.
DEBUG: Requested variant macosx is not provided by port glitz.
DEBUG: Executing variant universal provides universal
DEBUG: Found port in file:///Users/rschmidt/macports/dports/x11/XFree86
DEBUG: Changing to port directory: /Users/rschmidt/macports/dports/x11/XFree86
DEBUG: Requested variant i386 is not provided by port XFree86.
DEBUG: Executing variant universal provides universal
DEBUG: Default universal variant only works with ports based on configure
[snip]

But I'm not even using the XFree86 port; I'm using Apple's X11 quite happily.

I tried sudo port -n install glitz +universal to tell it not to follow dependencies, but it makes no difference.

Removing depends_lib lib:libX11.6:XFree86 from the glitz portfile does allow glitz +universal to build and install properly, so that confirms that this is indeed the problem. Now how do we fix it?

Change History

Changed 5 years ago by ryandesign@…

  • owner changed from macports-dev@… to ryandesign@…
  • milestone changed from Needs developer review to Port Bugs
  • component changed from base to ports
  • summary changed from BUG: +universal variant for ports that depend on lib:libX11.6:XFree86, for example to BUG: +universal variant for ports that depend on lib:libX11.6:XFree86

So, I think this is why the problem occurred: I asked for "glitz +universal" and MacPorts automatically checked each port on which glitz depends to see if it has a +universal variant. Since MacPorts makes a +universal variant available to all ports, it found one in the XFree86 port, and since the default +universal variant doesn't work with ports that don't use configure, and since XFree86 doesn't use configure, it bailed.

I fixed this in r26296 for ports that depend on XFree86 by specifying "universal_variant no" in XFree86 to delete the universal variant. However, the issue will still remain for other ports that are like XFree86, and I also think there are still some infrastructure problems that this situation exposes, which I'll file as separate issues:

#12169: MacPorts shouldn't evaluate variants of non-required dependencies

#12170: the default +universal variant shouldn't appear in ports where we know it won't work

This bug, now being only about the specific problem of installing +universal versions of ports that depend on XFree86, can now be closed.

Changed 5 years ago by ryandesign@…

  • status changed from new to closed
  • resolution set to fixed

Changed 3 years ago by anonymous

  • milestone Port Bugs deleted

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.