dbusmenu-qt5 build failure on 10.7 and 10.8 buildbots because of using libstdc++
ryandesign at macports.org
Thu Oct 6 05:22:47 PDT 2016
> On Oct 6, 2016, at 7:06 AM, René J.V. Bertin <rjvbertin at gmail.com> wrote:
> On Thursday October 06 2016 06:25:06 Ryan Schmidt wrote:
>> By including the portgroup, you are declaring that the port requires C++11. Users using "vanilla" OS X versions prior to 10.9 who try to install such a port will receive an error message with a link to the wiki page explaining how to reconfigure their systems for libc++.
> Right. I always forget which version got libc++ by default (I skipped 10.7 and 10.8 myself so never had to deal with the situation).
>> This is an extremely invasive procedure for users so (obviously!) do not include the portgroup in ports that do not require C++11.
> Agreed. Sadly it isn't always trivial to figure out which code really needs it, other than waiting for errors like the one I received.
>> We would have to write the code to do that. We have not yet done so.
> How do the bots decide not to build ports for which licensing makes binary redistribution "impossible"? Is that also handled by raising an error?
But the bots do build ports that aren't distributable. They just don't distribute the binaries they built. The buildbot exists not only for the production and distribution of binaries, but also for developers to know that their ports build successfully.
>> Ideally, this would involve changes to MacPorts base so that a port could indicate what systems it can or cannot install on. MacPorts base doesn't yet have that capability.
> Something that doesn't involve raising an error you mean?
> Although, the easiest way to implement this would probably be through a predefined error return code which could then be handled differently on user systems and on the build bots.
I mean that the error that gets raised is not raised by MacPorts base. It's raised by a portgroup, which is included from a portfile. We want to move the matter of determining that an error condition exists from the portfiles and portgroups to MacPorts base. Then it will be easier for the buildbot to query MacPorts base and ask if the port will be installable, and skip it if not. Currently, MacPorts base does not know whether a port would be installable, until it tries to install it. We currently have no way to differentiate between expected errors (e.g. this port does not work on this Mac OS version) which we don't want the buildbot to notify us about, and unexpected errors (e.g. this port failed to compile) which we do want to know about.
More information about the macports-dev