[MacPorts] #40293: Avoid building broken/incompatible ports on buildbots (or don't report an error)
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) ----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Keywords: | Port: ----------------------------+------------------------- There are certain ports which are known to be broken ({{{hugin-app}}} chokes when including {{{boost}}} headers for example - one could add a keyword to the port to let the buildbot know that) or which are known to be incompatible with a certain version of Mac OS X (wxWidgets 2.8 won't compile on 10.7 and later). Would it be possible to avoid building these ports on the buildbot (or at least avoid treating that failure as an error)? -- Ticket URL: <https://trac.macports.org/ticket/40293> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by larryv@…): How is the buildbot supposed to know whether a port is broken unless it tries building it? We are not going to add a Portfile keyword indicating brokenness. As for version incompatibility, that’s #15712, which I haven’t gotten around to working on. -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by egall@…): You could always set the license to something that isn't distributable... -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by mojca@…): Yes, I had a separate keyword in mind, for example {{{ buildbot.skip }}} Maybe not a keyword for this exclusively, but there might be other things which could be useful to assist the buildbot. I'm not sure what that could be at the moment, but the first example that comes to mind would be {{{ buildbot.variant +quartz buildbot.variant +x11 }}} to request from the buildbot to build with both {{{+x11}}} and {{{+quartz}}}. Before #35897 gets implemented, this could be used to build {{{qt4-mac +universal}}} and other special cases that justify the extra building time. I know it sounds a bit insane, but ... (Why has the other ticket been open for so long? Maybe now that buildbots exist, this would be another reason to fix this.) -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by mojca@…): Replying to [comment:2 egall@…]:
You could always set the license to something that isn't distributable... Are you suggesting to change the licence to something non-distributable just for Snow Leopard? I find this to be a horrible abuse of the system.
-- Ticket URL: <https://trac.macports.org/ticket/40293#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by mojca@…): This should probably be in a separate ticket, but I just realized that if I use {{{ sudo port install wxWidgets-2.8 }}} it will first attempt to build all dependencies with {{{+universal}}} and only fail once all the universal dependencies are installed. Shouldn't this be prevented *before* a whole bunch of dependencies gets installed? -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:6> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by egall@…): Replying to [comment:5 mojca@…]:
Replying to [comment:2 egall@…]:
You could always set the license to something that isn't distributable... Are you suggesting to change the licence to something non-distributable just for Snow Leopard? I find this to be a horrible abuse of the system. Well, yes, it would be a dirty hack, but it would work in the meantime until your idea gets implemented.
-- Ticket URL: <https://trac.macports.org/ticket/40293#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by larryv@…): Replying to [comment:4 mojca@…]:
Yes, I had a separate keyword in mind, for example {{{ buildbot.skip }}}
Maybe not a keyword for this exclusively, but there might be other things which could be useful to assist the buildbot.
I am very much against adding Portfile features that even acknowledge the existence of our Buildbot system, because it is completely accessory and not critical to MacPorts. I’m all for enhancing the system server-side, but not by adding cruft to Portfiles. And I don’t see the problem with allowing failing builds. What happens if Port A requires Port B, which is marked to be skipped without failing? I don’t even think base can handle this situation.
I'm not sure what that could be at the moment, but the first example that comes to mind would be {{{ buildbot.variant +quartz buildbot.variant +x11 }}} to request from the buildbot to build with both {{{+x11}}} and {{{+quartz}}}. Before #35897 gets implemented, this could be used to build {{{qt4-mac +universal}}} and other special cases that justify the extra building time.
Allowing port maintainers to dictate which binary archives get built does not seem like a good idea to me.
(Why has the other ticket been open for so long? Maybe now that buildbots exist, this would be another reason to fix this.)
Frankly, it’s never been fixed because it’s not really a problem. Just erroring out is kind of messy but more-or-less works. Enforcing platform versioning would really just be syntactic sugar for the way it works now. -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by larryv@…): Replying to [comment:7 egall@…]:
Replying to [comment:5 mojca@…]:
Replying to [comment:2 egall@…]:
You could always set the license to something that isn't distributable... Are you suggesting to change the licence to something non-distributable just for Snow Leopard? I find this to be a horrible abuse of the system. Well, yes, it would be a dirty hack, but it would work in the meantime until your idea gets implemented.
DO NOT DO THIS. Failing builds on the buildslaves is //not a problem//. Don’t screw up the Portfiles to work around a non-issue. -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by larryv@…): Replying to [comment:6 mojca@…]:
This should probably be in a separate ticket, but I just realized that if I use {{{ sudo port install wxWidgets-2.8 }}} it will first attempt to build all dependencies with {{{+universal}}} and only fail once all the universal dependencies are installed. Shouldn't this be prevented *before* a whole bunch of dependencies gets installed?
Depends. Why does it fail? -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:10> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by mojca@…): Replying to [comment:10 larryv@…]:
Replying to [comment:6 mojca@…]:
This should probably be in a separate ticket, but I just realized that if I use {{{ sudo port install wxWidgets-2.8 }}} it will first attempt to build all dependencies with {{{+universal}}} and only fail once all the universal dependencies are installed. Shouldn't this be prevented *before* a whole bunch of dependencies gets installed?
Depends. Why does it fail?
{{{ pre-fetch { # 10.8 (or later) -or- 10.7 with Xcode 4.4 (or later) if {${os.major} >= 12 || [vercmp $xcodeversion 4.4] >= 0} { ui_error "${wxWidgets.port} cannot be built on Moc OS X >= 10.7 with Xcode >= 4.4, please use port wxWidgets-3.0 or wxgtk-2.8 instead" return -code return "wxWidgets-2.8 cannot be built on Moc OS X >= 10.7 with Xcode >= 4.4, please use port wxWidgets-3.0 or wxgtk-2.8 instead" } } }}} -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:11> MacPorts <http://www.macports.org/> Ports system for OS X
#40293: Avoid building broken/incompatible ports on buildbots (or don't report an error) -----------------------------+------------------------- Reporter: mojca@… | Owner: wsiegrist@… Type: enhancement | Status: new Priority: Low | Milestone: Component: server/hosting | Version: Resolution: | Keywords: Port: | -----------------------------+------------------------- Comment (by larryv@…): Oh, it’s by design. Yes, it would certainly be better if base just didn’t even bother with those. (Or with ports with unsatisfiable `supported_archs`.) It’s on my to-do list, although it’s admittedly not very high on it. As always, patches are welcome. -- Ticket URL: <https://trac.macports.org/ticket/40293#comment:12> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts