This repository has been archived by the owner. It is now read-only.

Better --universal support #14009

Closed
adamv opened this Issue Aug 6, 2012 · 23 comments

Comments

Projects
None yet
6 participants
@adamv
Contributor

adamv commented Aug 6, 2012

--universal should be supported better.

(TODO: Is Mountain Lion 64-bit only? If so, should we deprecated universal support instead?)

If a top-level formula is installed either with --unversal or by the formula unconditionally doing ENV.universal (which should move out of def install into the DSL), then all non-build (?) dependencies should be Required to also be universal.

The install tabs can be used to determine if the deps have been installed universally or not.

ENV.universal (or the new DSL version) should also add --universal as a synthetic install option, OR the Formula interface provides a new method that can be used to check.

References #4257 #10476

@MikeMcQuaid

This comment has been minimized.

Show comment Hide comment
@MikeMcQuaid

MikeMcQuaid Aug 6, 2012

Owner

Mountain Lion and Lion are 64-bit only.

Owner

MikeMcQuaid commented Aug 6, 2012

Mountain Lion and Lion are 64-bit only.

@MikeMcQuaid

This comment has been minimized.

Show comment Hide comment
@MikeMcQuaid

MikeMcQuaid Aug 6, 2012

Owner

--universal is possibly still needed for some odd stuff like Wine but broadly I don't think it's worth the effort (which is why I dropped 32-bit bottles).

Owner

MikeMcQuaid commented Aug 6, 2012

--universal is possibly still needed for some odd stuff like Wine but broadly I don't think it's worth the effort (which is why I dropped 32-bit bottles).

@adamv

This comment has been minimized.

Show comment Hide comment
@adamv

adamv Aug 6, 2012

Contributor

I'm going to update the "options DSL" request based on this to not provide helpers for 32-bit only options, then.

Contributor

adamv commented Aug 6, 2012

I'm going to update the "options DSL" request based on this to not provide helpers for 32-bit only options, then.

@MikeMcQuaid

This comment has been minimized.

Show comment Hide comment
@MikeMcQuaid

MikeMcQuaid Aug 6, 2012

Owner

Yes, 32-bit only is stupid at this point.

Owner

MikeMcQuaid commented Aug 6, 2012

Yes, 32-bit only is stupid at this point.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Aug 7, 2012

Contributor

Have an idea for this, but will wait for your options branch to land before I start anything.

Contributor

jacknagel commented Aug 7, 2012

Have an idea for this, but will wait for your options branch to land before I start anything.

@mrjbq7

This comment has been minimized.

Show comment Hide comment
@mrjbq7

mrjbq7 Aug 7, 2012

Contributor

See #14032, for more discussion.

Contributor

mrjbq7 commented Aug 7, 2012

See #14032, for more discussion.

@mxcl

This comment has been minimized.

Show comment Hide comment
@mxcl

mxcl Aug 8, 2012

Member

People will always want universal. If we can make it work well easily (and we have the domain knowledge now, right?) then it will be appreciated. But practically speaking, its day is done.

Member

mxcl commented Aug 8, 2012

People will always want universal. If we can make it work well easily (and we have the domain knowledge now, right?) then it will be appreciated. But practically speaking, its day is done.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Aug 10, 2012

Contributor

Two ideas:

  • ENV.universal_binary is automatically called if build.has_option? :universal and build.universal?, or
  • an ENV method is added to the DSL, and it is done like this:
ENV :universal if build.universal?
Contributor

jacknagel commented Aug 10, 2012

Two ideas:

  • ENV.universal_binary is automatically called if build.has_option? :universal and build.universal?, or
  • an ENV method is added to the DSL, and it is done like this:
ENV :universal if build.universal?
@MikeMcQuaid

This comment has been minimized.

Show comment Hide comment
@MikeMcQuaid

MikeMcQuaid Aug 10, 2012

Owner

Sounds good!

Owner

MikeMcQuaid commented Aug 10, 2012

Sounds good!

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Aug 11, 2012

Contributor

Probably has to be done explicitly (i.e. option #2 above) since calling ENV.universal_binary isn't always sufficient.

Contributor

jacknagel commented Aug 11, 2012

Probably has to be done explicitly (i.e. option #2 above) since calling ENV.universal_binary isn't always sufficient.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Aug 12, 2012

Contributor

wip: https://github.com/jacknagel/homebrew/compare/ENV

allows most ENV options to be requested in the DSL, e.g.

ENV :universal, :O2, :libxml2
Contributor

jacknagel commented Aug 12, 2012

wip: https://github.com/jacknagel/homebrew/compare/ENV

allows most ENV options to be requested in the DSL, e.g.

ENV :universal, :O2, :libxml2
@mxcl

This comment has been minimized.

Show comment Hide comment
@mxcl

mxcl Aug 13, 2012

Member

@jacknagel this is great, but hold off, I have a branch called 'superenv' that I plan to submit for approval, your work can apply after.

Member

mxcl commented Aug 13, 2012

@jacknagel this is great, but hold off, I have a branch called 'superenv' that I plan to submit for approval, your work can apply after.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Aug 13, 2012

Contributor

Will do.

Contributor

jacknagel commented Aug 13, 2012

Will do.

@josegonzalez

This comment has been minimized.

Show comment Hide comment
@josegonzalez

josegonzalez Nov 6, 2012

Member

Re-raising this topic. Should I not have formulae use Env.universal_binary? I have been having issues with certain packages since the move to superenv, and at least a few of them are caused by that option being enabled...

Member

josegonzalez commented Nov 6, 2012

Re-raising this topic. Should I not have formulae use Env.universal_binary? I have been having issues with certain packages since the move to superenv, and at least a few of them are caused by that option being enabled...

@josegonzalez

This comment has been minimized.

Show comment Hide comment
@josegonzalez

josegonzalez Nov 6, 2012

Member

To be honest, I don't even know what it does.

Member

josegonzalez commented Nov 6, 2012

To be honest, I don't even know what it does.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Nov 6, 2012

Contributor

Any executables or libraries will be built fat (i.e., they will contain code for both 32- and 64-bit architectures).

Should I not have formulae use Env.universal_binary?

Not unless there is a reason to. We're gradually moving away from "default to universal" packages in core.

Contributor

jacknagel commented Nov 6, 2012

Any executables or libraries will be built fat (i.e., they will contain code for both 32- and 64-bit architectures).

Should I not have formulae use Env.universal_binary?

Not unless there is a reason to. We're gradually moving away from "default to universal" packages in core.

@josegonzalez

This comment has been minimized.

Show comment Hide comment
@josegonzalez

josegonzalez Nov 8, 2012

Member

So you would recommend the removal of Env.universal_binary? from formulae?

Member

josegonzalez commented Nov 8, 2012

So you would recommend the removal of Env.universal_binary? from formulae?

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Nov 8, 2012

Contributor

It really depends on the situation. Some things need it because things that depend on them require universal deps.

Contributor

jacknagel commented Nov 8, 2012

It really depends on the situation. Some things need it because things that depend on them require universal deps.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Nov 8, 2012

Contributor

But I mean, if there's no reason to have a universal build then by all means remove it. It effectively doubles the compilation time since everything has to be compiled once for 32-bit and once for 64-bit.

Contributor

jacknagel commented Nov 8, 2012

But I mean, if there's no reason to have a universal build then by all means remove it. It effectively doubles the compilation time since everything has to be compiled once for 32-bit and once for 64-bit.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Jan 26, 2013

Contributor

#14456 is merged, meaning that universal is now passed to deps automatically.

Contributor

jacknagel commented Jan 26, 2013

#14456 is merged, meaning that universal is now passed to deps automatically.

@jacknagel jacknagel closed this Jan 26, 2013

@MikeMcQuaid

This comment has been minimized.

Show comment Hide comment
@MikeMcQuaid

MikeMcQuaid Jan 26, 2013

Owner

@jacknagel Amazing. I guess we want to get Wine depending it all for the deps.

Owner

MikeMcQuaid commented Jan 26, 2013

@jacknagel Amazing. I guess we want to get Wine depending it all for the deps.

@jacknagel

This comment has been minimized.

Show comment Hide comment
@jacknagel

jacknagel Jan 26, 2013

Contributor

Yeah, there is a little bit more work that needs to be done to enable that, since wine doesn't have an actual universal "option", but at least there is a natural place to do so now.

Contributor

jacknagel commented Jan 26, 2013

Yeah, there is a little bit more work that needs to be done to enable that, since wine doesn't have an actual universal "option", but at least there is a natural place to do so now.

@MikeMcQuaid

This comment has been minimized.

Show comment Hide comment
@MikeMcQuaid

MikeMcQuaid Jan 26, 2013

Owner

I guess two approaches are to have --universal imply --32bit somehow too or to have Wine always use --universal

Owner

MikeMcQuaid commented Jan 26, 2013

I guess two approaches are to have --universal imply --32bit somehow too or to have Wine always use --universal

@xu-cheng xu-cheng locked and limited conversation to collaborators Feb 16, 2016

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.