#39782: Add keyword to list compatible graphical environments (X11, Quartz, Wayland)? --------------------------+-------------------------------- Reporter: c.herbig@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: base | Version: Resolution: | Keywords: Port: | --------------------------+-------------------------------- Comment (by larryv@…): Replying to [ticket:39782 c.herbig@…]:
Although some ports list variants like ±x11 and +quartz, some of them don't because the quartz compatibility is handled by a dependency. For example, Gnumeric is +quartz compatible because it is handled by the gtk+quartz dependency, yet there is no indication in the port file that +quartz is an option for gnumeric.
Does gnumeric actually build differently depending on whether gtk is built +quartz or +x11? It is not acceptable for `port install FOO` to produce different results based solely on whether a dependency BAR is installed +baz or -quux or anything. If this is the case, variants need to be added to gnumeric to make its builds reproducible. Each variant would use the [[source:trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl|active_variants-1.1 PortGroup]] to ensure that gtk is built with the necessary variant. For an example of this idiom, see the [[source:trunk/dports/x11/pango/Portfile@106559#L52|pango Portfile’s +quartz variant]]. The PortGroup itself also has rudimentary documentation on usage. If some degree of intelligence is desired, I believe it is possible to check whether a particular dependency is installed with a particular variant, and set `default_variants` accordingly.
So rather than making a variant in the portfile that does nothing other than to list itself in port info
The variants should not do nothing. They should check for the presence or absence of the relevant dependencies’ variants, as I described above.
perhaps it would be wise to make a new keyword (graphics_env ?) that lists the environments that the port is known to work with. If nothing is specified, then assume X11. It is not ok to assume that just because the gtk dependency has been compiled for +quartz that the app is though; as of the writing of this, gnome-chemistry-utils fails to build in a +quartz environment due to some X11 specific OpenGL code.
If gnome-chemistry-utils requires its dependencies to be built as -quartz, it should use active_variants-1.1 to enforce this. Given that one can (sort of) enforce variant selection on dependencies, I don’t see how a new Portfile option meaningfully changes the situation here. -- Ticket URL: <https://trac.macports.org/ticket/39782#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X