Opened 14 years ago

Closed 14 years ago

Last modified 12 years ago

#12137 closed defect (fixed)

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

Reported by: ryandesign (Ryan Schmidt) Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.4.42
Keywords: Cc: ryandesign (Ryan Schmidt)
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 (3)

comment:1 Changed 14 years ago by ryandesign (Ryan Schmidt)

Component: baseports
Milestone: Needs developer reviewPort Bugs
Owner: changed from macports-dev@… to ryandesign@…
Summary: BUG: +universal variant for ports that depend on lib:libX11.6:XFree86, for exampleBUG: +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.

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

Resolution: fixed
Status: newclosed

comment:3 Changed 12 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.