Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#40297 closed defect (fixed)

py-robotframework-ride: fix the wxWidgets variants and explicit supported_archs

Reported by: mojca (Mojca Miklavec) Owned by: jyrkiwahlstedt
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: py-robotframework-ride

Description (last modified by mojca (Mojca Miklavec))

The port py-robotframework-ride should be fixed properly after upgrading the wxWidgets ports. It should not use explicit supported_archs, but rather something like wxWidgets.use wxGTK-2.8/wxWidgets-2.8/wxWidgets-2.8 depending on which variant of wxpython is being used (or something along those lines).

The buildbot failed to build the port due to some architectures mismatch.

See also http://code.google.com/p/robotframework-ride/issues/detail?id=888 for the upstream ticket about compatibility with wxWidgets 3.0.

Attachments (2)

py-robotframework-ride.Portfile (2.1 KB) - added by mojca (Mojca Miklavec) 10 years ago.
py-robotframework-ride.Portfile.diff (1.8 KB) - added by mojca (Mojca Miklavec) 10 years ago.

Download all attachments as: .zip

Change History (11)

comment:1 Changed 11 years ago by mojca (Mojca Miklavec)

Cc: ryandesign@… added

comment:2 Changed 11 years ago by mojca (Mojca Miklavec)

To Ryan for the comment in #40310: I would say "I told you so", but I didn't. See https://build.macports.org/builders/buildports-snowleopard-x86_64/builds/20177:

Error: Cannot install py27-robotframework-ride for the arch(s) 'x86_64' because
Error: its dependency py27-wxpython-2.8 only supports the arch(s) 'i386 ppc'.

Can you please help me fix the port? I'm 99% sure that this is also a problem with all ports that depend on py-wxpython-2.8.

comment:3 Changed 11 years ago by mojca (Mojca Miklavec)

See also #40333.

comment:4 Changed 10 years ago by mojca (Mojca Miklavec)

Description: modified (diff)

comment:5 Changed 10 years ago by mojca (Mojca Miklavec)

See also the other comments in #40333, but here's one possible way of fixing the variants in py-robotframework-ride:

    variant wxwidgets30 conflicts wxgtk28 wxwidgets28 description {Use wxPython 3.0 (not fully functional yet)} {
        wxWidgets.use           wxPython-3.0
        depends_lib-append      port:py${python.version}-wxpython-3.0
    }

    variant wxwidgets28 conflicts wxgtk28 wxwidgets30 description {Use 32-bit Carbon-based wxPython 2.8} {
        wxWidgets.use           wxWidgets-2.8
        depends_lib-append      port:py${python.version}-wxpython-2.8
        require_active_variants port:py${python.version}-wxpython-2.8 carbon gtk
        # TODO: conditionally use the following notes on x86_64 only
        notes "To run, use 'arch -i386 ride.py-${python.branch}' to use 32-bit architecture"
    }

    variant wxgtk28 conflicts wxwidgets28 wxwidgets30 description {Use GTK-based wxPython 2.8} {
        wxWidgets.use           wxGTK-2.8
        depends_lib-append      port:py${python.version}-wxpython-2.8
        require_active_variants port:py${python.version}-wxpython-2.8 gtk carbon
    }

    if {![variant_isset wxwidgets30] && ![variant_isset wxwidgets28] && ![variant_isset wxgtk28]} {
        if {[vercmp $xcodeversion 4.4] < 0} {
            # if wxWidgets 2.8 can be installed, it is best to use py-wxpython-2.8 anyway (except that one needs to enable 32-bit by default)
            default_variants +wxwidgets28
        } else {
            if { ${python.version} == 27} {
                # buggy/broken - up to you if you want to make wxWidgets-3.0 or wxGTK-2.8 the default variant
                default_variants +wxwidgets30
            } else {
                default_variants +wxgtk28
            }
        }
    }

Changed 10 years ago by mojca (Mojca Miklavec)

Changed 10 years ago by mojca (Mojca Miklavec)

comment:6 Changed 10 years ago by mojca (Mojca Miklavec)

In the light of the change in r116066 (see #40333) and decision to not even try to properly support users who want to keep using the +carbon variant in wxPython I attached my proposal for changing the py-robotframework-ride port. After r116066 the port builds fine on the 10.6 buildbot. If users want to play with Carbon, they are free to do so, but unsupported. And we can close this ticket and stop worrying about how to properly add supported_archs to the port.

    variant wxpython30 conflicts wxpython28 description {Use wxPython 3.0 with Cocoa (experimental)} {
        depends_lib-append  port:py${python.version}-wxpython-3.0
        notes-append "Warning: wxPython 3.0 is not fully compatible with robotframework-ride.\n"
    }

    variant wxpython28 conflicts wxpython28 description {Use wxPython 2.8 with GTK} {
        depends_lib-append  port:py${python.version}-wxpython-2.8
    }

    if {![variant_isset wxpython30] && ![variant_isset wxpython28]} {
        default_variants    +wxpython28
    }

(PS: I think I forgot to increase the revision in the two attachments. Please don't forget about that if you commit the change.)

comment:7 Changed 10 years ago by mojca (Mojca Miklavec)

So - can my latest patch (py-robotframework-ride.Portfile.diff) be applied and we close the ticket? That is: if you want the ability to occasionally test wxWidgets 3.0.

If you don't need that and are happy with unconditionally using wxGTK 2.8, please just close this ticket with wontfix.

Now the port at least works and it compiles without errors on 10.6 (which was the main reason why I opened this port in the first place).

comment:8 Changed 10 years ago by jyrkiwahlstedt

Resolution: fixed
Status: newclosed

done in r116242

comment:9 Changed 10 years ago by mojca (Mojca Miklavec)

Thanks.

Note: See TracTickets for help on using tickets.