+no_x11 as default

Ryan Schmidt ryandesign at macports.org
Thu Aug 9 16:07:24 PDT 2012

On Aug 9, 2012, at 09:30, Federico Calboli wrote:

> On 9 Aug 2012, at 15:25, Brandon Allbery wrote:
>> On Thu, Aug 9, 2012 at 10:18 AM, Federico Calboli <f.calboli at gmail.com> wrote:
>> Is it there a way of making the option +no_x11 (where available, obviously), the default?  I hate when macports tries to install X11 -- I can do
>> Yes and no.  "No" because +no_x11 is deprecated and being removed from the ports that still have it;
> Ok, so what happens when ghostscript, ImageMagick, libsdl etc switch option?  I ask because:
> ~$ port installed|grep x11
>  ghostscript @9.05_2+no_x11 (active)
>  ImageMagick @6.7.8-3_0+no_x11+q16 (active)
>  libsdl @1.2.15_0+no_x11 (active)
> will the +no_x11 be automagically transformed in -x11?

Yes, when port authors make this switch, they should be doing so in a way that provides a seamless upgrade. Part of the solution is what Bradley said:

On Aug 9, 2012, at 13:48, Bradley Giesbrecht wrote:

> Check out libsdl:
> ...
> port cat libsdl | grep -A4 "variant_isset no_x11"
> if {[variant_isset no_x11]} {
>    default_variants -x11
> } else {
>    default_variants +x11
> }
> ...

That ensures that the x11 variant is marked as on or off, depending on whether the user had selected the old no_x11 variant. In addition, a placeholder no_x11 variant needs to be retained in the port, marked as conflicting with the new x11 variant, to facilitate upgrades; we recommend this remain for a period of no less than one year.

variant no_x11 conflicts x11 description {Legacy compatibility variant} {}

variant x11 conflicts no_x11 {
    # whatever you need to do to enable x11 functionality

if {[variant_isset no_x11]} {
    default_variants -x11
} else {
    default_variants +x11

After the year is up and the old no_x11 placeholder variant can be removed, this will simplify down to:

variant x11 {
    # whatever you need to do to enable x11 functionality

default_variants +x11

More information about the macports-users mailing list