Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upMac builders fails to compile harfbuzz #9504
Comments
|
Isn't it just a matter of linking autoconf? |
|
@paulrouget What do you mean here by linking? |
|
Install and |
|
Yes, it looks like our saltstack rules are not properly installing autoconf. I just brought a builder back online from scratch, and the auto-provisioning did not work correctly. |
|
OK, it looks like autoconf213 got linked first (instead?) and this caused autoconf to not get linked and thus autoheader was not available. Maybe an ordering issue in our salt config files? I manually fixed servo-mac1 so we should be able to proceed.
|
|
I don't think the config is running the 'brew link' on autoconf, so I'll investigate adding that. Does automake need to be installed before autoconf, or can they be installed together (i.e. in the same command?) |
|
@aneeshusa I think they can be installed together - the conflict seemed to be with autoconf vs. autoconf213 (in particular, autoconf213 being installed first and blocking the link of autoconf). Thanks a ton for all your help with this! |
|
Do we need to install both autoconf and autoconf213? Based on the current master, it looks like we're only installing autoconf213. |
|
I thought that we needed both. autoconf213 is required for the SpiderMonkey JS engine; everything else (like harfbuzz) uses normal autoconf. They are definitely both installed on all our machines. Maybe autoconf is a dependency of automake? |
|
Yes, it seems you're right: automake depends on autoconf |
|
Do you know if there is a way to query if a homebrew package is linked? I couldn't find anything like that in the docs. |
|
Hrm, I don't see anything, either. |
|
Ok, I should have a PR shortly then, but it'll have to be a bit hacky. |
|
Actually, can we just check the symlink manually? |
|
Aha, that sounds like a great plan :-) |
|
I have to go to my first class of the semester, but I should have a quick fix for this today, and a better fix in the next few days. |
|
That's fantastic! Thanks again for all your help, and good luck with classes :-) |
|
I'm trying to understand |
|
Unfortunately, they're all pretty slammed right now. I requested a new one from macstadium this morning, though, and as soon as I have it provisioned enough for you to ssh in, I'll let you know! I don't know how long it will take for them to bring it online. |
|
Ok, thank you! We should also use it for some manual testing when reviewing the PR. |
Use --overwrite because autoconf and autoconf213 are installed, and either one may have been linked beforehand. They overlap in the files they provide, and Homebrew will refuse to destructively overwrite any symlinks without an explicit flag. There's no built-in Salt module for brew link, so for now this is a quick fix. This provides some idempotence for repeated Salt highstate runs by checking the directory where Homebrew keeps track of linked packages (and linking autoconf if it is not linked). It's unknown whether this approach properly handles updates to one or both packages. A better approach would be to write a custom Salt state (perhaps homebrew.linked); even if this state works properly, a custom state would be more declarative and could be upstreamed to Salt proper. Closes servo#213. Closes servo/servo#9504.
Use --overwrite because autoconf and autoconf213 are installed, and either one may have been linked beforehand. They overlap in the files they provide, and Homebrew will refuse to destructively overwrite any symlinks without an explicit flag. There's no built-in Salt module for brew link, so for now this is a quick fix. This provides some idempotence for repeated Salt highstate runs by checking the directory where Homebrew keeps track of linked packages (and linking autoconf if it is not linked). It's unknown whether this approach properly handles updates to one or both packages. A better approach would be to write a custom Salt state (perhaps homebrew.linked); even if this state works properly, a custom state would be more declarative and could be upstreamed to Salt proper. Closes servo#210. Closes servo/servo#9504.
|
@aneeshusa You should be able to ssh as root into servo-macpro1.servo.org. I'm doing some basic timing runs, but feel free to do whatever you need to the box! It's not hooked up to our CI yet. |
|
@aneeshusa Did you have a chance to do some manual testing of these rules? Or is there something that you'd like me to manually test? Thanks! |
|
I got caught up in school the last two days - I should be able to poke around today. How can I run servo builds manually on the Mac (to ensure that the builds using autoconf and autoconf213 work properly)? |
|
No worries at all! You can test the build by doing:
Also, we may need to coordinate a bit with @mbrubeck, as he's also doing some testing of intermittent test failures. Let me know how you were going to do the tests if your classes get a bit overwhelming - I'm happy to help out! I just don't really know how to run salt "standalone" w/o the master to test pending changes. |
|
@larsbergstrom I updated the wiki page with instructions on how to run Salt remotely and locally - let me know if that helps. @mbrubeck, let me know if/when you hop on the machine for some testing; I'll also make sure to check the output of |
|
FYI: This is my fault for not updating the documentation earlier, but @larsbergstrom we should be using the install_salt script from the repo to install salt, instead of just |
|
@larsbergstrom I can't seem to build successfully - I'm getting a lot of errors that say |
|
Gah! Just On Fri, Feb 5, 2016 at 5:48 PM, Aneesh Agrawal notifications@github.com
|
|
@aneeshusa Thanks a ton for fixing up the wiki instructions! I'm sorry - I had seen the "warning, this needs an update" comment there, but when I ran through and fixed up the worst of the bits that were wrong, I assumed that was it. Thanks again for all your help with our infra! |
Link autoconf after installing autoconf213 on OS X This needs to be tested manually on one of the Mac builders before merging. Use --overwrite because autoconf and autoconf213 are installed, and either one may have been linked beforehand. They overlap in the files they provide, and Homebrew will refuse to destructively overwrite any symlinks without an explicit flag. There's no built-in Salt module for brew link, so for now this is a quick fix. This provides some idempotence for repeated Salt highstate runs by checking the directory where Homebrew keeps track of linked packages (and linking autoconf if it is not linked). It's unknown whether this approach properly handles updates to one or both packages. A better approach would be to write a custom Salt state (perhaps homebrew.linked); even if this state works properly, a custom state would be more declarative and could be upstreamed to Salt proper. Closes servo/servo#9504. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/saltfs/211) <!-- Reviewable:end -->
It's the autoconf failure, but now it happens on our mac build machines as well.
cc @larsbergstrom