Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/Homebrew/brew.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. Jan 29, 2013
  2. Jan 28, 2013
  3. Jan 27, 2013
    • Misty De Meo's avatar
      superenv: --use-gcc should specify gcc-4.2 · 2e23e9a2
      Misty De Meo authored
      Since 'gcc' is a symlink to 'llvm-gcc' on Xcode 4.3+, --use-gcc and
      --use-llvm were doing exactly the same thing. Combined with the
      previous commit, this allows users with either a leftover
      /usr/bin/gcc-4.2 or a homebrewed apple-gcc42 to build with gcc.
      
      This doesn't however fix Xcode-only systems with apple-gcc42.
      
      Fixes Homebrew/homebrew#17243.
      2e23e9a2
    • Misty De Meo's avatar
      xcrun: actually try fallbacks · 88609dd6
      Misty De Meo authored
      xcrun has a lot of fallbacks if the first case fails but never actually
      reaches them on CLT systems since it doesn't check the validity of the
      first path before executing it.
      
      (When should it reach these? Mainly for non-Xcode compilers we
      support, e.g. apple-gcc42 which can be found by xcrun but which isn't
      in /usr/bin)
      
      The xcrun invocation also needed chomping.
      88609dd6
    • Jack Nagel's avatar
      Split dependency classes into separate files · adf90691
      Jack Nagel authored
      adf90691
    • Jack Nagel's avatar
      Generate options immediately following depends_on · f62762b3
      Jack Nagel authored
      Given
      
        depends_on 'gnutls' => :recommended
        depends_on 'libgcrypt' unless build.without? 'gnutls'
      
      the dependency on libgcrypt should be enabled by default. However, the
      corresponding option has not yet been generated, so the condition is
      true and the dependency is disabled.
      
      Instead, add a hook method that fires after each depends_on and adds the
      appropriate option.
      f62762b3
    • Jack Nagel's avatar
      Don't force universal for build deps · 036f3e7b
      Jack Nagel authored
      036f3e7b
    • Jack Nagel's avatar
      FormulaInstaller: wrap --build-from-source in an Option object · b8a884bc
      Jack Nagel authored
      c.f. Homebrew/homebrew#17327.
      b8a884bc
    • Jack Nagel's avatar
      locks: ensure lock directory exists · 9a179d8b
      Jack Nagel authored
      Fixes Homebrew/homebrew#17326.
      9a179d8b
    • Jack Nagel's avatar
      2534c1d4
    • Jack Nagel's avatar
      upgrade: use standard Tab accessor · 5ac4e4f0
      Jack Nagel authored
      Yes, the formula object does refer to a version that has not yet been
      installed, but we were not looking into Formula#prefix, but #linked_keg,
      which is version agnostic (since the original patch was committed, we
      Tab#for_formula learned to look into #opt_prefix as well). The rest of
      the logic is already embedded in the Tab accessors.
      5ac4e4f0
    • Jack Nagel's avatar
      Fix Dependencies -> Array conversion · 8d03c760
      Jack Nagel authored
      8d03c760
    • Jack Nagel's avatar
      Tag Xcode and CLT requirements as build-time · e05a509f
      Jack Nagel authored
      This way they can be skipped when installing bottles.
      e05a509f
    • samueljohn's avatar
      Add "depends_on :clt" · 620c063f
      samueljohn authored
      620c063f
    • Jack Nagel's avatar
    • Jack Nagel's avatar
      upgrade: offload dependency expansion to FormulaInstaller · 82051a56
      Jack Nagel authored
      Now that FormulaInstaller does dependency expansion the _right_ way,
      avoid duplicating the logic in upgrade. Instead, offload it to the
      installer, which will generate an exception in check_install_sanity that
      we can safely ignore when formulae in the outdated list are upgraded as
      part of the dependency tree of another outdated formula.
      82051a56
    • Jack Nagel's avatar
      uses: utilize modern dependency API · 18836d93
      Jack Nagel authored
      18836d93
    • Jack Nagel's avatar
      fe802f05
    • Jack Nagel's avatar
      FormulaInstaller: construct new ARGV from an Options collection · cf08b71b
      Jack Nagel authored
      The array of options that is passed to the spawned build process is a
      combination of the current ARGV, options passed in by a dependent
      formula, and an existing install receipt. The objects that are
      interacting here each expect the resulting collection to have certain
      properties, and the expectations are not consistent.
      
      Clear up this confusing mess by only dealing with Options collections.
      This keeps our representation of options uniform across the codebase.
      
      We can remove BuildOptions dependency on HomebrewArgvExtension, which
      allows us to pass any Array-like collection to Tab.create. The only
      other site inside of FormulaInstaller that uses the array is the #exec
      call, and there it is splatted and thus we can substitute our Options
      collection there as well.
      cf08b71b
    • Jack Nagel's avatar
      FormulaInstaller: allow formulae to pass options to deps · 046d802d
      Jack Nagel authored
      Formulae can now pass build options to dependencies. The following
      syntax is supported:
      
        depends_on 'foo' => 'with-bar'
        depends_on 'foo' => ['with-bar', 'with-baz']
      
      If a dependency is already installed but lacks the required build
      options, an exception is raised. Eventually we may be able to just stash
      the existing keg and reinstall it with the combined set of used_options
      and passed options, but enabling that is left for another day.
      046d802d
    • Jack Nagel's avatar
    • Jack Nagel's avatar
    • Jack Nagel's avatar
      Dependency.expand_dependencies · 55681ca2
      Jack Nagel authored
      Move Formula.expand_dependencies into the Dependency class, and extend
      it to allow arbitrary filters to be applied when enumerating deps.
      
      When supplied with a block, expand_dependencies will yield a [dependent,
      dependency] pair for each dependency, allowing callers to filter out
      dependencies that may not be applicable or useful in a given situation.
      
      Deps can be skipped by simple calling Dependency.prune in the block,
      e.g.:
      
        Dependency.expand_dependencies do |f, dep|
          Dependency.prune if dep.to_formula.installed?
        end
      
      The return value of the method is the filtered list.
      
      If no block is supplied, a default filter that omits optional or
      recommended deps based on what the dependent formula has requested is
      applied.
      
      Formula#recursive_dependencies is now implemented on top of this,
      allowing FormulaInstaller to exact detailed control over what deps are
      installed. `brew missing` and `brew upgrade` can learn to use this to
      apply the installed options set when expanding dependencies.
      
      Move Formula.expand_deps and Formula#recursive_deps into compat, because
      these methods do not respect the new optional and recommended tags and
      thus should no longer be used.
      55681ca2
    • Adam Vandenberg's avatar
      d0161091
    • Adam Vandenberg's avatar
      Add support for optional and recommended deps · 6193167f
      Adam Vandenberg authored
      Optional deps are not installed by default but generate a corresponding
      "with-foo" option for the formula. Recommended deps _are_ installed by
      default, and generate a corresponding "without-foo" option.
      6193167f
    • Adam Vandenberg's avatar
      Formula::finalize_dsl · 99850fcb
      Adam Vandenberg authored
      99850fcb
    • Jack Nagel's avatar
      FormulaInstaller: implement installation locks · 37a56fa5
      Jack Nagel authored
      FormulaInstaller now attempts to take a lock on a "foo.brewing" file for
      the formula and all of its dependencies before attempting installation.
      
      The lock is an advisory lock implemented using flock(), and as such it
      only locks out other processes that attempt to take the lock. It also
      means that it is never necessary to manually remove the lock file,
      because the lock is not enforced by I/O.
      
      The uninstall, link, and unlink commands all learn to respect this lock
      as well, so that the installation cannot be corrupted by a concurrent
      Homebrew process, and keg operations cannot occur simultaneously.
      37a56fa5
Loading