On 2018-03-26 00:34, Mojca Miklavec wrote: > On 26 March 2018 at 00:14, Rainer Müller wrote: >> On 2018-03-25 06:11, Ryan Schmidt wrote: >>> >>> Currently PRs are tested by a separate build infrastructure on Travis. It >>> runs on three systems: Xcode 7.3 on OS X 10.11, Xcode 8.3 on macOS 10.12, >>> and Xcode 9.3beta on macOS 10.13. These builds deliver different results >>> than the Buildbot would. For example, if a port requires pkgconfig, and >>> that dependency has not been declared, the build on the Buildbot will >>> likely fail because pkgconfig is not there; the developer can notice this >>> and correct the error. But on Travis, pkgconfig often gets installed as a >>> dependency earlier in the process, so we won't notice if a port has failed >>> to declare that dependency (until the PR gets merged and then built by the >>> Buildbot). >> >> How could this be a difference between buildbot and Travis? Both are >> using mpbb to build, which deactivates all ports between builds. It >> should give the same results in any execution environment. > > When you are building port A which depends on a non-distributable > dependency B and forgets to add a dependency to pkg-config, while B > correctly declares dependency on pkg-config, then pkg-config will be > installed on Travis, but (usually) not on the buildbot.
Correct, it will be installed in order to build port B. But that does not mean it will be *active* for the build of port A. Each build in mpbb starts from scratch. It deactivates all active ports after building each port dependency [1] and only activates the required dependencies at the end again. Therefore, it should not matter whether port B came from an archive or was built locally, the result should be the same. Rainer [1] https://github.com/macports/mpbb/blob/387064c27c616757509ec8462b72cfe512b228ad/mpbb-install-dependencies#L144-L147