Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Link autoconf after installing autoconf213 on OS X #211

Merged
merged 1 commit into from Feb 6, 2016

Conversation

@aneeshusa
Copy link
Member

aneeshusa commented Feb 2, 2016

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.

Review on Reviewable

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 #210.
Closes servo/servo#9504.
@aneeshusa aneeshusa force-pushed the aneeshusa:link-autoconf-correctly branch from 9918fe8 to 7dce6fa Feb 2, 2016
@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 2, 2016

@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 6, 2016

I was worried about handling version upgrades properly, so I tried testing things out manually. However, autoconf213 is already pinned to a version, and autoconf has been at 2.69 for the last ~3-4 years; homebrew won't install autoconf 2.68 anymore because of the MD5 checksum. Based on some quick searching, it doesn't seem like autoconf 2.70 will be released anytime soon. I'm comfortable punting on the question of if this handles version upgrades properly for now, as there's no good way to test it, and we can handle it if autoconf 2.70 is ever released.

@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 6, 2016

For future reference:
Here are the manual test cases that I'm going to be testing. Starting from each of these states, I'll run the Salt highstate, then attempt to build servo.

  • Start without autoconf or autoconf213 installed
  • Only autoconf is already installed
  • Only autoconf213 is already installed
  • Both autoconf and autoconf213 are already installed

Let me know if you can think of any other cases to test by hand.

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Feb 6, 2016

That's the full set of cases! Thanks again for doing all of this work :-) And I apologize for the slow builds - we're just getting CCACHE support enabled right now, and it really only helps with one part of our build (SpiderMonkey, the JS engine).

@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 6, 2016

These builds are only taking ~5-6 minutes, which is pretty fast to build a whole browser :)

Once I'm done testing these cases, this should be ready for review.

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Feb 6, 2016

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.


Comments from the review on Reviewable.io

@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 6, 2016

OK, all done testing.

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Feb 6, 2016

@bors-servo
Copy link
Contributor

bors-servo commented Feb 6, 2016

📌 Commit 7dce6fa has been approved by larsbergstrom

@bors-servo
Copy link
Contributor

bors-servo commented Feb 6, 2016

Testing commit 7dce6fa with merge 65a4e37...

bors-servo added a commit that referenced this pull request Feb 6, 2016
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 -->
@larsbergstrom
Copy link
Contributor

larsbergstrom commented Feb 6, 2016

Thanks again for all your work on this - much appreciated!

@bors-servo
Copy link
Contributor

bors-servo commented Feb 6, 2016

☀️ Test successful - travis

@bors-servo bors-servo merged commit 7dce6fa into servo:master Feb 6, 2016
3 checks passed
3 checks passed
code-review/reviewable Review complete: all files reviewed, all discussions resolved
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details
@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 6, 2016

Cool, I'll see about applying this to all the Mac builders. But first, I'm off to watch Spectre!

@aneeshusa
Copy link
Member Author

aneeshusa commented Feb 6, 2016

I just checked and it looks like all the Mac builders already have autoconf linked.

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Feb 6, 2016

@aneeshusa Sorry, I missed the earlier comment! Yes, there are a few things where we've manually "fixed" the builders (for better or worse), so we really only notice problems like this when I spin up a new builder.

I hope you enjoyed Spectre!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

3 participants
You can’t perform that action at this time.